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

Disassembly:
sub esp, 0xf4
push ebx
push ebp
mov ebp, ecx
push esi
push edi
mov dword [esp + 0x50], ebp
mov eax, dword [ebp + 0x50]
test eax, eax
je 0x412b50
mov ecx, dword [ebp]
mov esi, dword [ecx + 4]
test esi, esi
je 0x412b50
mov dword [esp + 0x20], eax
mov eax, dword [0x5bb290]
cmp eax, 0xffffffff
je 0x4124a6
push 0xffffffffffffffff
push 0x1000
call fcn.00460990
add esp, 8
mov edx, dword [ebp]
mov dword [esp + 0x24], 0
cmp dword [edx], 0
jle 0x4128c7
mov ebx, dword [esp + 0x108]
fld dword [esi]
fstp dword [esp + 0x54]
fld dword [esi + 4]
fstp dword [esp + 0x58]
fld dword [esi + 8]
fstp dword [esp + 0x5c]
fld dword [esi + 0xc]
fstp dword [esp + 0x60]
fld dword [esi + 4]
fstp dword [esp + 0x64]
fld dword [esi + 8]
fstp dword [esp + 0x68]
fld dword [esi]
fstp dword [esp + 0x6c]
fld dword [esi + 0x10]
fstp dword [esp + 0x70]
fld dword [esi + 8]
fstp dword [esp + 0x74]
fld dword [esi + 0xc]
fstp dword [esp + 0x78]
fld dword [esi + 0x10]
fstp dword [esp + 0x7c]
fld dword [esi + 8]
fstp dword [esp + 0x80]
fld dword [esi]
fstp dword [esp + 0x84]
fld dword [esi + 4]
fstp dword [esp + 0x88]
fld dword [esi + 0x14]
fstp dword [esp + 0x8c]
fld dword [esi + 0xc]
fstp dword [esp + 0x90]
fld dword [esi + 4]
fstp dword [esp + 0x94]
fld dword [esi + 0x14]
fstp dword [esp + 0x98]
fld dword [esi]
fstp dword [esp + 0x9c]
fld dword [esi + 0x10]
fstp dword [esp + 0xa0]
fld dword [esi + 0x14]
fstp dword [esp + 0xa4]
fld dword [esi + 0xc]
fstp dword [esp + 0xa8]
fld dword [esi + 0x10]
fstp dword [esp + 0xac]
fld dword [esi + 0x14]
xor edi, edi
fstp dword [esp + 0xb0]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], edi
mov eax, dword [esp + edi + 0x54]
mov ecx, dword [esp + edi + 0x58]
mov edx, dword [esp + edi + 0x5c]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ecx
lea eax, [esp + 0x40]
push 0x57fc60
lea ecx, [esp + 0xf8]
push eax
push ecx
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], 0x3f800000
call fcn.0051f660
mov edx, dword [eax]
add esp, 0xc
mov dword [esp + 0x40], edx
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x44], ecx
fld dword [eax + 8]
fst dword [esp + 0x48]
fld dword [eax + 0xc]
cmp dword [0x5bb290], edx
jne 0x412621
mov eax, dword [esp + edi + 0x54]
mov ecx, dword [esp + edi + 0x58]
mov edx, dword [esp + edi + 0x5c]
mov dword [edi + 0x581c80], eax
mov dword [edi + 0x581c84], ecx
mov dword [edi + 0x581c88], edx
fld st(1)
fcomp dword [0x552458]
fnstsw ax
test ah, 5
jp 0x412634
inc dword [esp + 0x28]
fld st(0)
fchs
fld dword [esp + 0x40]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x412649
inc dword [esp + 0x2c]
fld dword [esp + 0x40]
fcomp st(2)
fnstsw ax
and eax, 0x4100
jne 0x41265c
inc dword [esp + 0x30]
fld dword [esp + 0x44]
fcompp
fnstsw ax
test ah, 5
jp 0x41266d
inc dword [esp + 0x34]
fld dword [esp + 0x44]
fcomp st(1)
fnstsw ax
and eax, 0x4100
jne 0x412680
inc dword [esp + 0x38]
fxch st(1)
fcompp
fnstsw ax
and eax, 0x4100
jne 0x412691
inc dword [esp + 0x3c]
add edi, 0xc
cmp edi, 0x60
jl 0x4125a6
mov edx, dword [esp + 0x20]
xor ecx, ecx
mov edi, 2
mov dword [edx + 4], 1
mov eax, dword [esp + ecx*4 + 0x28]
cmp eax, 8
je 0x4126c7
test eax, eax
jle 0x4126bf
mov dword [edx + 4], edi
inc ecx
cmp ecx, 6
jl 0x4126af
jmp 0x4126ce
mov dword [edx + 4], 0
mov eax, dword [esp + 0x24]
mov dword [edx], eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x4126e7
mov dword [edx + 8], 0
jmp 0x4128a3
fld dword [esi]
fcomp dword [ebx + 0x18]
fnstsw ax
and eax, 0x100
je 0x412746
fld dword [esi + 0xc]
fcomp dword [ebx + 0x18]
fnstsw ax
test ah, 5
jnp 0x412746
fld dword [esi + 8]
fcomp dword [ebx + 0x20]
fnstsw ax
and eax, 0x100
je 0x412746
fld dword [esi + 0x14]
fcomp dword [ebx + 0x20]
fnstsw ax
test ah, 5
jnp 0x412746
fld dword [esi + 4]
fcomp dword [ebx + 0x1c]
fnstsw ax
and eax, 0x100
je 0x412746
fld dword [esi + 0x10]
fcomp dword [ebx + 0x1c]
fnstsw ax
test ah, 5
jnp 0x412746
mov dword [edx + 8], 0xbf800000
jmp 0x4128a3
lea ecx, [esp + 0x78]
lea edx, [esp + 0x6c]
push ecx
lea eax, [esp + 0x58]
push edx
push eax
lea ecx, [esp + 0xc0]
call fcn.005213f0
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x78]
push ecx
lea eax, [esp + 0x64]
push edx
push eax
lea ecx, [esp + 0xd0]
call fcn.005213f0
lea ecx, [esp + 0x9c]
lea edx, [esp + 0xa8]
push ecx
lea eax, [esp + 0x94]
push edx
push eax
lea ecx, [esp + 0xe0]
call fcn.005213f0
lea ecx, [esp + 0x6c]
lea edx, [esp + 0x9c]
push ecx
lea eax, [esp + 0x88]
push edx
push eax
lea ecx, [esp + 0xf0]
call fcn.005213f0
fld dword [esp + 0xb8]
fmul dword [ebx + 0x1c]
fld dword [esp + 0xbc]
fmul dword [ebx + 0x20]
mov eax, dword [0x581d34]
sub eax, 0
faddp st(1)
fld dword [esp + 0xb4]
fmul dword [ebx + 0x18]
faddp st(1)
fadd dword [esp + 0xc0]
fld dword [esp + 0xc8]
fmul dword [ebx + 0x1c]
fld dword [esp + 0xcc]
fmul dword [ebx + 0x20]
faddp st(1)
fld dword [esp + 0xc4]
fmul dword [ebx + 0x18]
faddp st(1)
fadd dword [esp + 0xd0]
fstp dword [esp + 0x14]
fld dword [esp + 0xd8]
fmul dword [ebx + 0x1c]
fld dword [esp + 0xdc]
fmul dword [ebx + 0x20]
faddp st(1)
fld dword [esp + 0xd4]
fmul dword [ebx + 0x18]
faddp st(1)
fadd dword [esp + 0xe0]
fstp dword [esp + 0x18]
fld dword [esp + 0xe8]
fmul dword [ebx + 0x1c]
fld dword [esp + 0xec]
fmul dword [ebx + 0x20]
faddp st(1)
fld dword [esp + 0xe4]
fmul dword [ebx + 0x18]
faddp st(1)
fadd dword [esp + 0xf0]
fstp dword [esp + 0x1c]
je 0x412a33
dec eax
je 0x41296e
dec eax
jne 0x4128a1
fld dword [esp + 0x1c]
fadd dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
fadd dword [esp + 0x14]
fadd st(1)
fstp dword [ecx + 8]
fstp st(0)
mov ecx, dword [ebp]
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
inc eax
mov edx, dword [ecx]
add esi, 0x1c
add edi, 0xc
cmp eax, edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], edi
jl 0x4124c1
mov edx, dword [ebp]
mov ecx, dword [ebp + 0x50]
push 0x412b60
push 0xc
mov eax, dword [edx]
push eax
push ecx
call fcn.005338b8
mov eax, dword [0x5acdb0]
mov edx, dword [0x581d4c]
mov dword [esp + 0x30], edx
push 0x19
lea eax, [eax + eax*2]
lea eax, [eax + eax*4]
lea ecx, [eax + eax*4]
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 0x19]
push ecx
call fcn.0043c600
mov dword [esp + 0x3c], eax
add esp, 0x18
fild dword [esp + 0x24]
fsqrt
fimul dword [esp + 0x20]
fmul qword [0x5547b0]
call fcn.00533a88
mov ecx, dword [ebp]
mov edi, dword [0x581d1c]
xor esi, esi
cmp dword [ecx], 0
jle 0x412b50
xor ebx, ebx
mov edx, dword [ebp + 0x50]
mov ebp, dword [edx + ebx + 4]
add edx, ebx
test ebp, ebp
jne 0x412aea
mov edx, dword [edx]
mov ecx, dword [ecx + 4]
lea ebp, [edx*8]
sub ebp, edx
mov dword [ecx + ebp*4 + 0x18], 0xffffffff
jmp 0x412b3d
fld dword [esp + 0x18]
fcomp dword [esp + 0x1c]
fnstsw ax
and eax, 0x4100
jne 0x412985
fld dword [esp + 0x18]
jmp 0x412989
fld dword [esp + 0x1c]
fld dword [esp + 0x14]
fcompp
fnstsw ax
and eax, 0x4100
jne 0x41299e
fld dword [esp + 0x14]
jmp 0x4129b9
fld dword [esp + 0x18]
fcomp dword [esp + 0x1c]
fnstsw ax
and eax, 0x4100
jne 0x4129b5
fld dword [esp + 0x18]
jmp 0x4129b9
fld dword [esp + 0x1c]
fld st(1)
fcompp
fnstsw ax
and eax, 0x4100
je 0x412a27
fstp st(0)
fld dword [esp + 0x18]
fcomp dword [esp + 0x1c]
fnstsw ax
and eax, 0x4100
jne 0x4129df
fld dword [esp + 0x18]
jmp 0x4129e3
fld dword [esp + 0x1c]
fld dword [esp + 0x14]
fcompp
fnstsw ax
and eax, 0x4100
jne 0x412a02
fld dword [esp + 0x14]
mov edx, dword [esp + 0x20]
fstp dword [edx + 8]
jmp 0x4128a3
fld dword [esp + 0x18]
fcomp dword [esp + 0x1c]
fnstsw ax
and eax, 0x4100
jne 0x412a23
fld dword [esp + 0x18]
mov edx, dword [esp + 0x20]
fstp dword [edx + 8]
jmp 0x4128a3
fld dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
fstp dword [edx + 8]
jmp 0x4128a3
fld dword [esp + 0x18]
fcomp dword [esp + 0x1c]
fnstsw ax
test ah, 5
jp 0x412a48
fld dword [esp + 0x18]
jmp 0x412a4c
fld dword [esp + 0x1c]
fld dword [esp + 0x14]
fcompp
fnstsw ax
test ah, 5
jp 0x412a5f
fld dword [esp + 0x14]
jmp 0x412a78
fld dword [esp + 0x18]
fcomp dword [esp + 0x1c]
fnstsw ax
test ah, 5
jp 0x412a74
fld dword [esp + 0x18]
jmp 0x412a78
fld dword [esp + 0x1c]
fld st(1)
fcompp
fnstsw ax
test ah, 5
jnp 0x412ade
fstp st(0)
fld dword [esp + 0x18]
fcomp dword [esp + 0x1c]
fnstsw ax
test ah, 5
jp 0x412a9a
fld dword [esp + 0x18]
jmp 0x412a9e
fld dword [esp + 0x1c]
fld dword [esp + 0x14]
fcompp
fnstsw ax
test ah, 5
jp 0x412abb
fld dword [esp + 0x14]
mov eax, dword [esp + 0x20]
fstp dword [eax + 8]
jmp 0x4128a3
fld dword [esp + 0x18]
fcomp dword [esp + 0x1c]
fnstsw ax
test ah, 5
jp 0x412ada
fld dword [esp + 0x18]
mov eax, dword [esp + 0x20]
fstp dword [eax + 8]
jmp 0x4128a3
fld dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
fstp dword [eax + 8]
jmp 0x4128a3
test eax, eax
je 0x412b07
mov edx, dword [edx]
lea ebp, [edx*8]
sub ebp, edx
mov edx, dword [ecx + 4]
dec eax
mov dword [edx + ebp*4 + 0x18], 2
jmp 0x412b3d
mov ebp, dword [0x581d04]
test ebp, ebp
jne 0x412953
mov edx, dword [edx]
lea ebp, [edx*8]
sub ebp, edx
test edi, edi
je 0x412b32
mov edx, dword [ecx + 4]
dec edi
mov dword [edx + ebp*4 + 0x18], 1
jmp 0x412b3d
mov ecx, dword [ecx + 4]
mov dword [ecx + ebp*4 + 0x18], 0
mov ebp, dword [esp + 0x50]
inc esi
add ebx, 0xc
mov ecx, dword [ebp]
cmp esi, dword [ecx]
jl 0x412942
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf4
ret 4