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

Disassembly:
sub esp, 0x1e0
cmp dword [edi + 0x3c04], 0
push ebx
push ebp
mov ebp, dword [esp + 0x200]
push esi
mov ebx, eax
jle 0x44633d
mov eax, dword [edi + 0x3c08]
cmp eax, dword [esp + 0x200]
jne 0x44632e
cmp dword [edi], ebx
je 0x44633d
mov ecx, dword [esp + 0x1f0]
push ecx
mov esi, edi
call fcn.004461f0
mov edx, dword [esp + 0x200]
mov dword [edi], ebx
mov dword [edi + 0x3c08], edx
mov eax, dword [ebp + 8]
mov dword [esp + 0xc], eax
neg eax
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
mov eax, dword [ebp + 0xc]
fld qword [0x679300]
mov dword [esp + 0x1c], eax
neg eax
fmul st(1), st(0)
mov dword [esp + 0x14], eax
fxch st(1)
xor esi, esi
fstp dword [esp + 0x18]
fimul dword [esp + 0x14]
fstp dword [esp + 0x14]
fld dword [esp + 0x18]
fst dword [esp + 0x50]
fld dword [esp + 0x14]
fst dword [esp + 0x54]
fxch st(1)
fst dword [esp + 0x58]
fild dword [esp + 0x1c]
fadd st(2)
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esp + 0x5c]
fild dword [esp + 0xc]
faddp st(2)
fxch st(1)
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0x60]
fstp dword [esp + 0x68]
fxch st(1)
fstp dword [esp + 0x64]
fstp dword [esp + 0x6c]
fldz
fst dword [esp + 0x30]
fst dword [esp + 0x34]
fst dword [esp + 0x38]
fst dword [esp + 0x3c]
fst dword [esp + 0x40]
fst dword [esp + 0x44]
fst dword [esp + 0x48]
fstp dword [esp + 0x4c]
mov edi, edi
mov ecx, dword [esp + 0x1f4]
lea edx, [esp + esi + 0x50]
lea eax, [esp + 0x20]
call fcn.005a3690
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp + esi + 0x30], ecx
fld dword [esp + esi + 0x30]
fld qword [0x679300]
mov dword [esp + esi + 0x34], edx
fsub st(1), st(0)
add esi, 8
cmp esi, 0x20
fxch st(1)
fstp dword [esp + esi + 0x28]
fsubr dword [esp + esi + 0x2c]
fstp dword [esp + esi + 0x2c]
jl 0x4463f0
fild dword [ebx + 0x24]
mov eax, dword [ebp]
fld qword [0x65b8f8]
mov ecx, dword [ebp + 4]
fld st(0)
mov edx, dword [ebp + 8]
fdivrp st(2)
mov dword [esp + 0xc], eax
add edx, eax
mov eax, dword [ebp + 0xc]
add eax, ecx
fxch st(1)
fstp dword [esp + 0x1c]
fidiv dword [ebx + 0x28]
fstp dword [esp + 0x14]
fild dword [esp + 0xc]
fld dword [esp + 0x1c]
fld st(0)
mov dword [esp + 0xc], ecx
fmulp st(2)
mov ecx, dword [esp + 0x1fc]
fxch st(1)
fstp dword [esp + 0x28]
fild dword [esp + 0xc]
mov dword [esp + 0xc], edx
fld dword [esp + 0x14]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x14]
fild dword [esp + 0xc]
mov dword [esp + 0xc], eax
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x20]
fimul dword [esp + 0xc]
fstp dword [esp + 0x2c]
call fcn.00564450
mov ebx, dword [edi + 0x3c04]
fld dword [esp + 0x44]
fld dword [esp + 0x40]
mov esi, dword [esp + 0x1f8]
fld dword [esp + 0x3c]
mov ebp, eax
fld dword [esp + 0x38]
lea eax, [ebx + 2]
cmp eax, 0x100
fld dword [esp + 0x30]
mov byte [esp + 0x13], 0
lea edx, [esp + 0x170]
mov dword [esp + 0x1c], eax
jg 0x446779
mov ecx, dword [esi]
test ecx, ecx
mov dword [esp + 0x18], ecx
jne 0x44652c
cmp dword [esi + 4], ecx
jne 0x44652c
cmp dword [esi + 8], 0x3e8
jne 0x44652c
cmp dword [esi + 0xc], 0x258
jne 0x44652c
mov eax, dword [0x6a9f38]
call fcn.00554f90
test al, al
je 0x446528
fstp st(0)
jmp 0x446669
mov ecx, dword [esp + 0x18]
fild dword [esp + 0x18]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fcom st(1)
fnstsw ax
test ah, 0x41
jp 0x446777
mov eax, dword [esi + 8]
add eax, ecx
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fcom st(2)
fnstsw ax
fstp st(2)
test ah, 1
jne 0x446777
fcom st(2)
fnstsw ax
test ah, 0x41
jp 0x446777
fxch st(2)
fcom st(1)
fnstsw ax
test ah, 0x41
jp 0x446685
fxch st(4)
fcom st(2)
fnstsw ax
test ah, 1
jne 0x44668b
fcom st(1)
fnstsw ax
test ah, 0x41
jp 0x44668b
fld dword [esp + 0x48]
fcom st(3)
fnstsw ax
fstp st(3)
test ah, 1
jne 0x44668b
fxch st(2)
fcompp
fnstsw ax
test ah, 0x41
jp 0x44668f
mov ecx, dword [esi + 4]
mov dword [esp + 0xc], ecx
fild dword [esp + 0xc]
fstp dword [esp + 0xc]
fld dword [esp + 0x34]
fld dword [esp + 0xc]
fcom st(1)
fnstsw ax
test ah, 0x41
jp 0x446756
mov eax, dword [esi + 0xc]
add eax, ecx
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fcom st(2)
fnstsw ax
fstp st(2)
test ah, 1
jne 0x446756
fcom st(3)
fnstsw ax
test ah, 0x41
jp 0x446756
fxch st(3)
fcom st(1)
fnstsw ax
test ah, 0x41
jp 0x44675f
fxch st(5)
fcom st(3)
fnstsw ax
test ah, 1
jne 0x446768
fcom st(1)
fnstsw ax
test ah, 0x41
jp 0x446768
fld dword [esp + 0x4c]
fcom st(4)
fnstsw ax
fstp st(4)
test ah, 1
jne 0x446768
fxch st(3)
fcompp
fnstsw ax
fxch st(1)
test ah, 0x41
fxch st(3)
fxch st(1)
jp 0x44668f
fxch st(2)
mov eax, dword [esp + 0x1c]
mov ecx, ebx
shl ecx, 4
sub ecx, ebx
mov byte [esp + 0x13], 1
lea edx, [edi + ecx*4 + 4]
mov dword [edi + 0x3c04], eax
jmp 0x446691
fstp st(1)
fstp st(1)
jmp 0x446691
fstp st(1)
fstp st(1)
fxch st(2)
cmp byte [esp + 0x13], 0
fld dword [esp + 0x30]
fstp dword [edx]
mov dword [edx + 0x10], ebp
fld dword [esp + 0x34]
mov dword [edx + 0x24], ebp
fstp dword [edx + 4]
mov dword [edx + 0x38], ebp
fld dword [esp + 0x28]
mov dword [edx + 0x4c], ebp
fst dword [edx + 8]
mov dword [edx + 0x60], ebp
fld dword [esp + 0x14]
mov dword [edx + 0x74], ebp
fst dword [edx + 0xc]
fxch st(2)
fstp dword [edx + 0x14]
fxch st(2)
fst dword [edx + 0x18]
fxch st(2)
fst dword [edx + 0x1c]
fld dword [esp + 0x2c]
fst dword [edx + 0x20]
fxch st(4)
fst dword [edx + 0x28]
fxch st(5)
fst dword [edx + 0x2c]
fld dword [esp + 0x20]
fst dword [edx + 0x30]
fxch st(3)
fst dword [edx + 0x34]
fxch st(6)
fstp dword [edx + 0x3c]
fstp dword [edx + 0x40]
fxch st(1)
fst dword [edx + 0x44]
fxch st(4)
fstp dword [edx + 0x48]
fld dword [esp + 0x38]
fstp dword [edx + 0x50]
fxch st(1)
fstp dword [edx + 0x54]
fstp dword [edx + 0x58]
fst dword [edx + 0x5c]
fld dword [esp + 0x48]
fstp dword [edx + 0x64]
fld dword [esp + 0x4c]
fstp dword [edx + 0x68]
fxch st(1)
fstp dword [edx + 0x6c]
fstp dword [edx + 0x70]
je 0x446780
cmp dword [edi + 0x3c04], 0x100
jne 0x4468c2
mov ecx, dword [esp + 0x1f0]
push ecx
mov esi, edi
call fcn.004461f0
pop esi
pop ebp
pop ebx
add esp, 0x1e0
ret 0x18
fstp st(1)
fstp st(0)
jmp 0x44668f
fstp st(1)
fstp st(2)
jmp 0x44668f
fstp st(1)
fstp st(2)
fxch st(1)
fxch st(3)
fxch st(1)
jmp 0x44668f
fstp st(1)
fstp st(0)
jmp 0x446691
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov ebx, dword [esi + 8]
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
mov dword [esp + 0x20], ecx
add ebx, eax
mov eax, dword [esi + 0xc]
fstp dword [esp + 0xc]
add eax, ecx
fild dword [esp + 0x20]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], 2
fstp dword [esp + 0x2c]
fild dword [esp + 0x20]
mov dword [esp + 0x20], eax
fstp dword [esp + 0x28]
fild dword [esp + 0x20]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
mov eax, dword [esp + 0x18]
sub esp, 0x10
fstp dword [esp + 0xc]
lea esi, [esp + 0x80]
fld dword [esp + 0x3c]
xor ebp, ebp
fstp dword [esp + 8]
fld dword [esp + 0x38]
fstp dword [esp + 4]
fld dword [esp + 0x1c]
fstp dword [esp]
call fcn.00446100
mov ebx, eax
sub ebx, 2
add esp, 0x10
test ebx, ebx
jle 0x4468b2
nop
mov eax, dword [edi + 0x3c04]
mov ecx, eax
shl ecx, 4
sub ecx, eax
lea eax, [edi + ecx*4 + 4]
mov ecx, dword [esp + 0x70]
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, dword [ecx + 0xc]
mov dword [eax + 0xc], edx
mov ecx, dword [ecx + 0x10]
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + ebp*4 + 0x74]
mov edx, dword [ecx]
mov dword [eax + 0x14], edx
mov edx, dword [ecx + 4]
mov dword [eax + 0x18], edx
mov edx, dword [ecx + 8]
mov dword [eax + 0x1c], edx
mov edx, dword [ecx + 0xc]
mov dword [eax + 0x20], edx
mov ecx, dword [ecx + 0x10]
mov dword [eax + 0x24], ecx
lea ecx, [eax + 0x28]
mov eax, dword [esp + ebp*4 + 0x78]
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov edx, dword [eax + 0xc]
mov dword [ecx + 0xc], edx
mov eax, dword [eax + 0x10]
mov dword [ecx + 0x10], eax
add dword [edi + 0x3c04], 1
cmp dword [edi + 0x3c04], 0x100
jne 0x4468a7
mov ecx, dword [esp + 0x1f0]
push ecx
mov esi, edi
call fcn.004461f0
add ebp, 1
cmp ebp, ebx
jl 0x446810
add dword [esp + 0x18], 0x3c
sub dword [esp + 0x14], 1
jne 0x4467cb
pop esi
pop ebp
pop ebx
add esp, 0x1e0
ret 0x18