; 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
|