| 
		 
		                                               
		
		; These instructions uses values from the input and 
		 
		
		
		                       
		; performs simple arithmetic operations 
		
		
		00401F18                
		mov     
		ecx, [esi+0D0h]    
		; ecx = 5 
		
		
		00401F1E                
		sub     
		ecx, [esi+0C4h]    
		; ecx = 5 – 4 = 1 
		
		
		00401F24                
		mov     
		eax, [esi+0C0h]    
		; eax = 8 
		
		
		00401F2A                
		add     
		ecx, [esi+0B8h]    
		; ecx = 1 + 10 = 11 
		
		
		00401F30                
		lea     
		edx, [eax+eax*2]    
		; edx = 8 + 8*2 = 24 
				
		00401F33                
		lea     
		eax, [edx+ecx*2]    
		; eax = 24 + 11*2 = 46 
				
		00401F36                
		sub     
		eax, [esi+0CCh]    
		; eax = 46-10 = 36 
				
		00401F3C                
		mov     
		ecx, [esi+34h]    
		; ecx = 1 
				
		00401F3F                
		sub     
		eax, [esi+0BCh]    
		; eax = 36 – 17 = 19 
				
		00401F45                
		add     
		eax, [esi+0C8h]    
		; eax = 19 + 6 = 25 
				
		00401F4B                
		cmp     
		ecx, 1         
		    ; true 
				
		00401F4E                
		mov     
		[ebp+var_4], eax   ; 
		var4 = 25 
				
		00401F51                
		jnz     
		short loc_401F80   ; 
		jump not taken 
				
		00401F53                
		fild    
		[ebp+var_4]       
		; st0 = 25 
				
		00401F56                
		mov     
		ecx, eax        
		   ; ecx = 25 
				
		00401F58                
		imul    ecx, 
		eax          
		; ecx = 25*25 = 625 
				
		00401F5B                
		fmul    
		ds:dbl_4284C0     
		; st0 = 25*0.00045719 
				
		                          
		                          ; st0 = 0.011429 
				
		00401F61                
		fsubr   
		ds:dbl_4284B8     
		; st0 = 1.21721-0.011429 
				
		                                                   
		; st0 = 1.20578 
				
		00401F67                
		mov     
		[ebp+var_4], ecx   ; 
		var4 = 625 
				
		00401F6A                
		fild    
		[ebp+var_4]       
		; st0=625, st1=1.20578 
				
		00401F6D                
		fmul    
		ds:dbl_4284B0     
		; st0=625*6.7e-07 
				
		                                               
		    ; 
		st0=0.00041875 
				
		00401F73                
		faddp   st(1), st         
		; st0=1.20578+0.00041875 
				
		                                               
		    ; 
		st0=1.20619 
				
		00401F75                
		fild    
		dword ptr [esi+30h]; st0=35, st1=1.20619 
				
		00401F78                
		fmul    
		ds:dbl_4284A8     
		; st0=35*0.00025696 
				
		                                               
		    ; 
		st0=0.0089935 
				
		00401F7E                
		jmp     
		short loc_401FB0 
				
		00401F80  
				
		00401F80 
				
		;--------------------------------------------------------------------------- 
				
		                       
		; This code block is not used here 
				
		00401F80 loc_401F80:                             
		    
				
		00401F80                
		cmp     
		ecx, 2 
				
		00401F83                
		jnz     
		short loc_401FB5 
				
		00401F85                
		fild    
		[ebp+var_4] 
				
		00401F88         
		        mov    
		edx, eax 
				
		00401F8A                
		imul    edx, 
		eax 
				
		00401F8D                
		fmul    
		ds:dbl_4284A0 
				
		00401F93                
		fsubr   
		ds:dbl_428498 
				
		00401F99                
		mov     
		[ebp+var_4], edx 
				
		00401F9C                
		fild    
		[ebp+var_4] 
				
		00401F9F                
		fmul    
		ds:dbl_428490 
				
		00401FA5                
		faddp   st(1), st 
				
		00401FA7                
		fild    
		dword ptr [esi+30h] 
				
		00401FAA                
		fmul    
		ds:dbl_428488 
				
		;--------------------------------------------------------------------------- 
				
		00401FB0 
				
		00401FB0 loc_401FB0: 
				
		00401FB0                
		fsubp   st(1), st     
		; st0=st1-st0=1.20619-0.0089 
				
		                                               
		; st0= 1.1972 
				
		00401FB2                
		fstp    [ebp+var_C]   
		; varC = 1.1972 
				
		00401FB5 
				
		00401FB5 loc_401FB5:                       
		       
				
		00401FB5                
		fild    
		dword_42EBB8   ; st0= 
		510 
				
		00401FBB                
		mov     
		ecx, esi      
		;  
				
		00401FBD                
		fdiv    [ebp+var_C]   
		; st0 = 510/1.1972 
				
		                                               
		; st0 = 425.992 
				
		00401FC0                
		fadd    
		dbl_42EBB0     
		; st0 = 425.992 + 0 
				
		            
		 
				
		                       
		  
				; Here comes the final value -59.0079 
				; 
				
		00401FC6                
		fsub    
		ds:dbl_428440     
		; st0 = 425.992-485 
				
		                                               
		    ; st0 = 
		-59.0079 
		 |