Function at 0x4029c0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x4ab5d9
mov eax, dword fs:[0]
push eax
sub esp, 0x68
push ebx
push esi
push edi
mov eax, dword [0x4cbddc]
xor eax, esp
push eax
lea eax, [esp + 0x78]
mov dword fs:[0], eax
mov ebx, ecx
mov eax, dword [ebp + 0xc]
sub eax, dword [ebp + 8]
call fcn.00402940
mov edi, eax
mov eax, dword [ebp + 0x20]
sub eax, dword [ebp + 0x1c]
call fcn.00402940
fldz
sub esp, 0x10
fst qword [esp + 8]
fstp qword [esp]
lea esi, [ebx + 0x54]
fld1
push 0
push ecx
fstp dword [esp]
fld dword [0x4b3de8]
mov dword [esp + 0x30], eax
push 0
push ecx
fstp dword [esp]
push 0x4b3c20
mov ecx, esi
call dword [0x4b221c]
mov eax, dword [ebp + 8]
sub eax, edi
cdq
idiv edi
mov ecx, dword [esp + 0x18]
imul eax, edi
mov dword [ebp + 8], eax
mov eax, dword [ebp + 0xc]
add eax, edi
cdq
idiv edi
imul eax, edi
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0x1c]
sub eax, ecx
cdq
idiv ecx
mov edx, dword [ebp + 0x20]
imul eax, ecx
mov dword [ebp + 0x1c], eax
lea eax, [ecx + edx]
cdq
idiv ecx
imul eax, ecx
mov dword [ebp + 0x20], eax
mov eax, dword [ebx + 0x17a4]
push eax
mov ecx, esi
call dword [0x4b2220]
sub esp, 0x20
fild dword [ebp + 0x1c]
mov ecx, esi
fmul qword [ebp + 0x24]
fst qword [esp + 0x3c]
fild dword [ebp + 0xc]
fld qword [ebp + 0x10]
fmul st(1), st(0)
fxch st(1)
fst qword [esp + 0x5c]
fild dword [ebp + 8]
fmulp st(2)
fxch st(1)
fst qword [esp + 0x44]
fxch st(2)
fst qword [esp + 0x18]
fxch st(1)
fstp qword [esp + 0x10]
fstp qword [esp + 8]
fstp qword [esp]
call dword [0x4b21bc]
lea ecx, [esp + 0x14]
call dword [0x4b32a8]
mov eax, dword [ebp + 8]
cmp eax, dword [ebp + 0xc]
mov dword [esp + 0x80], 0
mov dword [esp + 0x10], eax
jg 0x402bbd
fld qword [esp + 0x1c]
fsub qword [0x4b3de0]
fstp qword [esp + 0x34]
lea ebx, [ebx]
mov ecx, dword [ebx + 0x17a4]
push ecx
mov ecx, esi
call dword [0x4b2220]
fild dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cdq
lea ecx, [edi + edi]
fmul qword [ebp + 0x10]
idiv ecx
fst qword [esp + 0x2c]
fld qword [esp + 0x1c]
sub esp, 0x20
mov ecx, esi
test edx, edx
jne 0x402b39
fld qword [0x4b3dd8]
jmp 0x402b3f
fld qword [0x4b3dd0]
fsubr st(1)
fstp qword [esp + 0x18]
fxch st(1)
fst qword [esp + 0x10]
fxch st(1)
fstp qword [esp + 8]
fstp qword [esp]
call dword [0x4b21bc]
mov edx, dword [ebx + 0x17a8]
push edx
mov ecx, esi
call dword [0x4b2220]
mov eax, dword [esp + 0x10]
push eax
lea ecx, [esp + 0x18]
push 0x4b3dc8
push ecx
call dword [0x4b32a0]
add esp, 0xc
push 0
push 1
lea ecx, [esp + 0x1c]
call dword [0x4b334c]
fld qword [esp + 0x3c]
push eax
sub esp, 0x10
fstp qword [esp + 8]
mov ecx, esi
fld qword [esp + 0x48]
fstp qword [esp]
call dword [0x4b2214]
mov eax, dword [esp + 0x10]
add eax, edi
cmp eax, dword [ebp + 0xc]
mov dword [esp + 0x10], eax
jle 0x402b00
mov edx, dword [ebx + 0x17a8]
mov edi, dword [0x4b2220]
push edx
mov ecx, esi
call edi
fld qword [esp + 0x1c]
mov eax, dword [ebp + 0x18]
fld qword [0x4b3dc0]
push 0
fsub st(1), st(0)
push 1
fxch st(1)
push eax
sub esp, 0x10
fstp qword [esp + 8]
mov ecx, esi
fadd qword [esp + 0x58]
fstp qword [esp]
call dword [0x4b2214]
mov ecx, dword [ebx + 0x17a4]
push ecx
mov ecx, esi
call edi
fild dword [ebp + 0x20]
sub esp, 0x20
mov ecx, esi
fmul qword [ebp + 0x24]
fst qword [esp + 0x54]
fstp qword [esp + 0x18]
fld qword [esp + 0x44]
fst qword [esp + 0x10]
fld qword [esp + 0x3c]
fstp qword [esp + 8]
fstp qword [esp]
call dword [0x4b21bc]
mov edi, dword [ebp + 0x1c]
cmp edi, dword [ebp + 0x20]
mov dword [esp + 0x10], edi
jg 0x402d06
fld qword [esp + 0x24]
fsub qword [0x4b3de0]
fstp qword [esp + 0x3c]
nop
mov edx, dword [ebx + 0x17a4]
push edx
mov ecx, esi
call dword [0x4b2220]
fild dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov eax, edi
add ecx, ecx
fmul qword [ebp + 0x24]
cdq
idiv ecx
fst qword [esp + 0x2c]
sub esp, 0x20
mov ecx, esi
fst qword [esp + 0x18]
fld qword [esp + 0x44]
test edx, edx
jne 0x402c8e
fld qword [0x4b3dd8]
jmp 0x402c94
fld qword [0x4b3dd0]
fsubr st(1)
fstp qword [esp + 0x10]
fxch st(1)
fstp qword [esp + 8]
fstp qword [esp]
call dword [0x4b21bc]
mov eax, dword [ebx + 0x17a8]
push eax
mov ecx, esi
call dword [0x4b2220]
push edi
lea ecx, [esp + 0x18]
push 0x4b3dc8
push ecx
call dword [0x4b32a0]
add esp, 0xc
push 0
push 1
lea ecx, [esp + 0x1c]
call dword [0x4b334c]
fld qword [esp + 0x34]
push eax
sub esp, 0x10
fstp qword [esp + 8]
mov ecx, esi
fld qword [esp + 0x58]
fstp qword [esp]
call dword [0x4b2214]
add edi, dword [esp + 0x18]
cmp edi, dword [ebp + 0x20]
mov dword [esp + 0x10], edi
jle 0x402c50
mov edx, dword [ebx + 0x17a8]
push edx
mov ecx, esi
call dword [0x4b2220]
fld qword [esp + 0x34]
mov eax, dword [ebp + 0x2c]
fld qword [0x4b3dc0]
push 0
fadd st(1), st(0)
push 1
fxch st(1)
push eax
sub esp, 0x10
fstp qword [esp + 8]
mov ecx, esi
fsubr qword [esp + 0x40]
fstp qword [esp]
call dword [0x4b2214]
lea ecx, [esp + 0x14]
call dword [0x4b3340]
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x28