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

Disassembly:
sub esp, 0x20
push ebx
push ebp
mov ebp, dword [esp + 0x2c]
push esi
push edi
mov ecx, ebp
call fcn.00435b80
mov esi, dword [esp + 0x3c]
fld dword [esi + 0xec]
mov edi, dword [esp + 0x38]
fsub dword [esi + 0xe4]
lea ebx, [esi + 0xe4]
fld dword [0x569340]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x41240e
fld dword [ebx + 0xc]
fsub dword [ebx + 4]
fld dword [0x569340]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x41240e
mov al, byte [esi + 0xe0]
test al, al
jne 0x41230b
fild dword [esi + 0xfc]
fadd dword [edi]
call fcn.004ed938
fild dword [esi + 0xf4]
mov dword [esp + 0x20], eax
fadd dword [edi + 4]
call fcn.004ed938
fild dword [esi + 0x100]
mov dword [esp + 0x24], eax
fadd dword [edi + 8]
call fcn.004ed938
fild dword [esi + 0xf8]
mov dword [esp + 0x28], eax
fadd dword [edi + 0xc]
call fcn.004ed938
mov dword [esp + 0x2c], eax
push ebx
lea eax, [esp + 0x24]
push eax
mov ecx, ebp
call fcn.00438190
jmp 0x41240e
fld dword [edi + 8]
fsub dword [edi]
fisub dword [esi + 0xfc]
fisub dword [esi + 0x100]
fld dword [ebx + 8]
fsub dword [ebx]
fdivp st(1)
call fcn.004ed938
fld dword [edi + 0xc]
fsub dword [edi + 4]
mov dword [esp + 0x14], eax
fisub dword [esi + 0xf4]
fisub dword [esi + 0xf8]
fld dword [ebx + 0xc]
fsub dword [ebx + 4]
fdivp st(1)
call fcn.004ed938
test eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], 0
jle 0x41240e
nop
mov ecx, dword [esp + 0x14]
test ecx, ecx
mov dword [esp + 0x3c], 0
jle 0x4123fd
fild dword [esp + 0x10]
fstp dword [esp + 0x18]
lea esp, [esp]
fld dword [ebx + 8]
fsub dword [ebx]
fimul dword [esp + 0x3c]
fiadd dword [esi + 0xfc]
fadd dword [edi]
call fcn.004ed938
fld dword [ebx + 0xc]
fsub dword [ebx + 4]
mov dword [esp + 0x20], eax
fmul dword [esp + 0x18]
fiadd dword [esi + 0xf4]
fadd dword [edi + 4]
call fcn.004ed938
fld dword [ebx + 8]
fsub dword [ebx]
mov dword [esp + 0x24], eax
fiadd dword [esp + 0x20]
call fcn.004ed938
fld dword [ebx + 0xc]
fsub dword [ebx + 4]
mov dword [esp + 0x28], eax
fiadd dword [esp + 0x24]
call fcn.004ed938
push ebx
lea ecx, [esp + 0x24]
push ecx
mov ecx, ebp
mov dword [esp + 0x34], eax
call fcn.00438190
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x14]
inc eax
cmp eax, ecx
mov dword [esp + 0x3c], eax
jl 0x412380
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
inc ecx
cmp ecx, eax
mov dword [esp + 0x10], ecx
jl 0x412360
cmp dword [esi], 0
je 0x4124a0
fild dword [esi + 0x78]
fiadd dword [esi + 0x60]
fadd dword [edi]
call fcn.004ed938
fild dword [esi + 0x98]
mov ebx, eax
mov dword [esp + 0x1c], ebx
fadd dword [edi + 8]
fisub dword [esi + 0x80]
call fcn.004ed938
sub eax, ebx
cdq
idiv dword [esi]
mov dword [esp + 0x3c], 0
test eax, eax
mov dword [esp + 0x18], eax
jle 0x4124a0
mov ebx, dword [esi]
fld dword [edi + 4]
imul ebx, dword [esp + 0x3c]
add ebx, dword [esp + 0x1c]
mov dword [esp + 0x20], ebx
call fcn.004ed938
mov edx, dword [esi + 4]
mov ecx, dword [esi]
add edx, eax
mov dword [esp + 0x24], eax
lea eax, [esi + 8]
add ecx, ebx
push eax
lea eax, [esp + 0x24]
mov dword [esp + 0x2c], ecx
push eax
mov ecx, ebp
mov dword [esp + 0x34], edx
call fcn.00438190
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x18]
inc eax
cmp eax, ecx
mov dword [esp + 0x3c], eax
jl 0x412453
mov eax, dword [esi + 0x18]
test eax, eax
je 0x412545
fild dword [esi + 0xb8]
fiadd dword [esi + 0xa0]
fadd dword [edi]
call fcn.004ed938
fild dword [esi + 0xd8]
mov ebx, eax
mov dword [esp + 0x1c], ebx
fadd dword [edi + 8]
fisub dword [esi + 0xc0]
call fcn.004ed938
sub eax, ebx
cdq
idiv dword [esi + 0x18]
mov dword [esp + 0x3c], 0
test eax, eax
mov dword [esp + 0x18], eax
jle 0x412545
mov edi, edi
mov ebx, dword [esi + 0x18]
fild dword [esi + 0x1c]
imul ebx, dword [esp + 0x3c]
fsubr dword [edi + 0xc]
add ebx, dword [esp + 0x1c]
mov dword [esp + 0x20], ebx
call fcn.004ed938
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0x18]
fld dword [edi + 0xc]
add eax, ebx
mov dword [esp + 0x28], eax
call fcn.004ed938
mov dword [esp + 0x2c], eax
lea eax, [esi + 0x20]
push eax
lea ecx, [esp + 0x24]
push ecx
mov ecx, ebp
call fcn.00438190
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x18]
inc eax
cmp eax, ecx
mov dword [esp + 0x3c], eax
jl 0x4124f0
mov eax, dword [esi + 0x30]
test eax, eax
je 0x4125ce
fild dword [esi + 0x7c]
fiadd dword [esi + 0x64]
fadd dword [edi + 4]
call fcn.004ed938
fild dword [esi + 0xbc]
mov ebx, eax
mov dword [esp + 0x3c], ebx
fadd dword [edi + 0xc]
fisub dword [esi + 0xa4]
call fcn.004ed938
sub eax, ebx
cdq
idiv dword [esi + 0x34]
xor ebx, ebx
test eax, eax
mov dword [esp + 0x1c], eax
jle 0x4125ce
fld dword [edi]
call fcn.004ed938
mov ecx, dword [esi + 0x34]
mov edx, dword [esp + 0x3c]
imul ecx, ebx
add ecx, edx
mov edx, dword [esi + 0x30]
add edx, eax
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0x34]
add eax, ecx
mov dword [esp + 0x2c], eax
lea eax, [esi + 0x38]
push eax
lea eax, [esp + 0x24]
mov dword [esp + 0x28], ecx
push eax
mov ecx, ebp
mov dword [esp + 0x30], edx
call fcn.00438190
mov eax, dword [esp + 0x1c]
inc ebx
cmp ebx, eax
jl 0x412588
mov eax, dword [esi + 0x48]
test eax, eax
je 0x41266a
fild dword [esi + 0x9c]
fiadd dword [esi + 0x84]
fadd dword [edi + 4]
call fcn.004ed938
fild dword [esi + 0xdc]
mov ebx, eax
mov dword [esp + 0x3c], ebx
fadd dword [edi + 0xc]
fisub dword [esi + 0xc4]
call fcn.004ed938
sub eax, ebx
cdq
idiv dword [esi + 0x4c]
xor ebx, ebx
test eax, eax
mov dword [esp + 0x1c], eax
jle 0x41266a
jmp 0x412620
fild dword [esi + 0x48]
fsubr dword [edi + 8]
call fcn.004ed938
mov edx, dword [esi + 0x34]
mov ecx, ebx
imul ecx, edx
add ecx, dword [esp + 0x3c]
mov edx, dword [esi + 0x30]
add edx, eax
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0x34]
mov dword [esp + 0x24], ecx
add ecx, eax
lea eax, [esi + 0x50]
push eax
lea eax, [esp + 0x24]
mov dword [esp + 0x30], ecx
push eax
mov ecx, ebp
mov dword [esp + 0x30], edx
call fcn.00438190
mov eax, dword [esp + 0x1c]
inc ebx
cmp ebx, eax
jl 0x412620
mov eax, dword [esi + 0x60]
test eax, eax
je 0x4126b9
mov eax, dword [esi + 0x64]
test eax, eax
je 0x4126b9
fild dword [esi + 0x78]
fadd dword [edi]
call fcn.004ed938
fild dword [esi + 0x7c]
mov ebx, eax
mov dword [esp + 0x20], ebx
fadd dword [edi + 4]
call fcn.004ed938
mov ecx, dword [esi + 0x60]
add ecx, ebx
mov dword [esp + 0x28], ecx
mov ecx, dword [esi + 0x64]
add ecx, eax
mov dword [esp + 0x2c], ecx
lea ecx, [esi + 0x68]
push ecx
lea edx, [esp + 0x24]
push edx
mov ecx, ebp
mov dword [esp + 0x2c], eax
call fcn.00438190
mov eax, dword [esi + 0x80]
test eax, eax
je 0x412728
mov eax, dword [esi + 0x84]
test eax, eax
je 0x412728
mov ebx, dword [esi + 0x80]
mov dword [esp + 0x3c], ebx
fild dword [esp + 0x3c]
fsubr dword [edi + 8]
fiadd dword [esi + 0x98]
call fcn.004ed938
fild dword [esi + 0x9c]
mov dword [esp + 0x20], eax
fadd dword [edi + 4]
call fcn.004ed938
mov ecx, dword [esp + 0x20]
add ecx, ebx
mov dword [esp + 0x28], ecx
mov ecx, dword [esi + 0x84]
mov dword [esp + 0x24], eax
add eax, ecx
lea edx, [esi + 0x88]
mov dword [esp + 0x2c], eax
push edx
lea eax, [esp + 0x24]
push eax
mov ecx, ebp
call fcn.00438190
mov eax, dword [esi + 0xa0]
test eax, eax
je 0x412798
mov eax, dword [esi + 0xa4]
test eax, eax
je 0x412798
fild dword [esi + 0xb8]
fadd dword [edi]
call fcn.004ed938
mov ecx, dword [esi + 0xa4]
mov dword [esp + 0x3c], ecx
fild dword [esp + 0x3c]
mov ebx, eax
mov dword [esp + 0x20], ebx
fsubr dword [edi + 0xc]
fiadd dword [esi + 0xbc]
call fcn.004ed938
mov edx, dword [esp + 0x3c]
mov ecx, dword [esi + 0xa0]
mov dword [esp + 0x24], eax
add eax, edx
add ecx, ebx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], ecx
lea eax, [esi + 0xa8]
push eax
lea ecx, [esp + 0x24]
push ecx
mov ecx, ebp
call fcn.00438190
mov eax, dword [esi + 0xc0]
test eax, eax
je 0x412813
mov eax, dword [esi + 0xc4]
test eax, eax
je 0x412813
mov ebx, dword [esi + 0xc0]
mov dword [esp + 0x3c], ebx
fild dword [esp + 0x3c]
fsubr dword [edi + 8]
fiadd dword [esi + 0xd8]
call fcn.004ed938
mov edx, dword [esi + 0xc4]
mov dword [esp + 0x3c], edx
fild dword [esp + 0x3c]
mov dword [esp + 0x20], eax
fsubr dword [edi + 0xc]
fiadd dword [esi + 0xdc]
call fcn.004ed938
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x24], eax
add eax, edx
add ecx, ebx
add esi, 0xc8
mov dword [esp + 0x2c], eax
push esi
lea eax, [esp + 0x24]
mov dword [esp + 0x2c], ecx
push eax
mov ecx, ebp
call fcn.00438190
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret