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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x74
mov eax, dword [ebp + 0x14]
push ebx
push esi
push edi
cmp dword [eax + 0x484], 0
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x68], 0
mov ecx, dword [edi]
mov dword [esp + 0x3c], ecx
jle 0x43cb2d
fldz
lea edx, [eax + 0x888]
mov eax, dword [ebp + 0x20]
sub eax, dword [ebp + 0x1c]
fld1
fld qword [0x4a6db8]
mov ebx, dword [ebp + 0x28]
mov dword [esp + 0x38], edx
mov dword [ebp + 0x20], eax
mov esi, dword [edx - 0x400]
cmp dword [ebx + esi*4], 0
jne 0x43c6c5
mov eax, dword [edx]
cmp dword [ebx + eax*4], 0
je 0x43cb04
mov ebx, dword [ebp + 0x18]
mov edi, dword [esp + 0x3c]
mov eax, dword [ebx + esi*4]
mov dword [esp + 0x50], eax
mov eax, dword [edx]
mov edx, dword [esp + 0x50]
mov ebx, dword [ebx + eax*4]
lea edx, [edx + edi*4]
mov dword [esp + 0x4c], ebx
mov edi, dword [ebp + 0x24]
mov dword [esp + 0x34], edx
mov eax, dword [edi + eax*4]
mov edx, dword [edi + esi*4]
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x6c], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x70], edx
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + eax*4 + 0xfc]
fld qword [eax*8 + 0x4f6570]
mov eax, dword [ebp + 8]
fstp dword [esp + 0x2c]
mov eax, dword [edx + eax*4 + 0x138]
fld qword [eax*8 + 0x4f6570]
mov eax, dword [edi + 4]
fstp dword [esp + 0x24]
cmp dword [eax + 0x1f8], 0
je 0x43c73a
mov ecx, dword [eax + 0x200]
mov eax, dword [eax]
mov dword [esp + 0x28], ecx
mov ecx, eax
shl ecx, 4
sub ecx, eax
add ecx, dword [ebp + 8]
cmp dword [esp + 0x3c], 0x3e8
mov eax, dword [edx + ecx*4 + 0x84]
mov ecx, dword [ebp + 0x28]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x38]
mov dword [ecx + esi*4], 1
mov eax, dword [eax]
mov dword [ecx + eax*4], 1
jle 0x43c792
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov eax, dword [eax + ecx*4 + 0x138]
fld qword [eax*8 + 0x4f65b8]
fstp dword [esp + 0x24]
mov ecx, dword [edi]
xor eax, eax
mov dword [esp + 0x64], eax
test ecx, ecx
jle 0x43cb34
fld dword [esp + 0x2c]
xor edi, edi
mov esi, dword [esp + 0x28]
fld dword [esp + 0x24]
mov dword [esp + 0x48], edi
jmp 0x43c7be
fxch st(3)
fxch st(4)
fxch st(3)
fxch st(2)
fxch st(4)
fst dword [esp + 0x1c]
test esi, esi
jle 0x43c96a
mov ecx, dword [esp + 0x70]
mov esi, eax
mov eax, dword [esp + 0x6c]
add ebx, edi
sub eax, ecx
mov dword [esp + 0x20], edi
sub ecx, dword [esp + 0x4c]
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x4c]
sub edx, eax
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x54], edx
sub ecx, eax
lea edx, [eax + edi*4]
mov dword [esp + 0x44], esi
mov edi, dword [esp + 0x54]
sub edx, eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x58], ebx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x30], edx
cmp esi, dword [ebp + 0x2c]
jge 0x43c9ed
cmp esi, dword [esp + 0x60]
jl 0x43c993
fld dword [ecx + ebx]
fabs
fcomp st(5)
fnstsw ax
test ah, 5
jp 0x43c993
fld dword [ebx]
fabs
fcomp st(5)
fnstsw ax
fstp st(4)
test ah, 5
jp 0x43c995
fstp st(0)
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x78]
add eax, ebx
xor ebx, ebx
mov edi, dword [eax + ecx]
mov ecx, 0x1f
mov esi, dword [eax]
cmp esi, edi
mov eax, esi
setg bl
sub eax, edi
cdq
dec ebx
xor eax, edx
sub eax, edx
sub ecx, eax
mov eax, ebx
not eax
and ebx, edi
and eax, esi
mov edi, dword [esp + 0x54]
or eax, ebx
mov ebx, dword [esp + 0x58]
fld dword [eax*4 + 0x4f0650]
xor eax, eax
test ecx, ecx
sets al
sub esp, 8
dec eax
and eax, ecx
mov ecx, dword [esp + 0x28]
fld dword [eax*4 + 0x4f0a50]
mov eax, dword [ebp + 0x1c]
faddp st(3)
fxch st(2)
mov eax, dword [eax]
fstp dword [esp + 0x84]
fld dword [esp + 0x84]
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x84]
fld dword [esp + 0x84]
fmul dword [ecx + eax]
mov eax, dword [esp + 0x38]
fstp dword [edi + ebx]
fxch st(1)
fstp dword [eax + ebx]
fadd dword [edi + ebx]
fstp qword [esp]
call sub.MSVCRT.dll_floor
fldz
add esp, 8
mov esi, dword [esp + 0x44]
fucompp
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x30]
fnstsw ax
test ah, 0x44
mov eax, dword [esp + 0x20]
jp 0x43c923
fld dword [edi + ebx]
fmul st(0), st(0)
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fldz
fld dword [esp + 0x24]
fld dword [esp + 0x2c]
fld1
fld qword [0x4a6db8]
fxch st(3)
fxch st(4)
fxch st(1)
fxch st(3)
fxch st(2)
fxch st(1)
add eax, 4
add ebx, 4
inc esi
mov dword [esp + 0x20], eax
dec dword [esp + 0x5c]
mov dword [esp + 0x58], ebx
mov dword [esp + 0x44], esi
jne 0x43c823
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x48]
mov ecx, dword [ebp + 0x10]
fstp st(0)
fstp st(3)
fstp st(2)
mov eax, dword [ecx + 4]
cmp dword [eax + 0x1f8], 0
je 0x43cab0
xor ebx, ebx
test esi, esi
jle 0x43cab0
fld dword [esp + 0x1c]
jmp 0x43c9fc
fstp st(4)
fld dword [ecx + ebx]
fabs
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x43c9b5
fld dword [ebx]
fabs
fcompp
fnstsw ax
test ah, 5
jp 0x43c9b7
jmp 0x43c85d
fstp st(3)
lea eax, [edx + ebx]
fstp st(2)
push eax
fstp st(0)
lea eax, [edi + ebx]
push eax
fstp st(0)
sub esp, 8
fld dword [ebx]
fstp dword [esp + 4]
fld dword [ecx + ebx]
fstp dword [esp]
call fcn.0043e8d0
mov ecx, dword [esp + 0x50]
add esp, 0x10
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x20]
jmp 0x43c923
fst dword [edi + ebx]
fst dword [edx + ebx]
jmp 0x43c941
fxch st(2)
fxch st(1)
mov eax, dword [ecx + 4]
fcomp qword [eax + 0x208]
fnstsw ax
test ah, 1
jne 0x43caa8
mov esi, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
mov eax, dword [esi + eax]
mov esi, dword [edi + eax]
cmp esi, dword [ebp + 0x2c]
jge 0x43caa0
cmp esi, dword [esp + 0x60]
jl 0x43caa0
fstp st(0)
sub esp, 8
fadd dword [edx + esi*4]
fstp qword [esp]
call sub.MSVCRT.dll_floor
fldz
add esp, 8
mov edx, dword [esp + 0x34]
fucompp
mov ecx, dword [ebp + 0x10]
fnstsw ax
test ah, 0x44
jp 0x43ca78
fld dword [edx + esi*4]
fstp dword [esp + 0x7c]
fld dword [esp + 0x1c]
fld1
mov eax, dword [esp + 0x7c]
fsub st(1), st(0)
and eax, 0xbf800000
fxch st(1)
or eax, 0x3f800000
mov dword [edx + esi*4], eax
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
jmp 0x43ca80
fld dword [esp + 0x1c]
fld1
fxch st(1)
mov esi, dword [esp + 0x28]
inc ebx
fld qword [0x4a6db8]
add edi, 4
cmp ebx, esi
jl 0x43c9f8
mov edi, dword [esp + 0x48]
fstp st(1)
fstp st(0)
jmp 0x43cab2
fstp st(1)
fld dword [esp + 0x1c]
jmp 0x43ca80
mov edi, dword [esp + 0x48]
fstp st(1)
jmp 0x43cab2
fstp st(1)
mov eax, dword [esp + 0x64]
lea ebx, [esi*4]
fldz
add eax, esi
fld dword [esp + 0x24]
add edi, ebx
mov ecx, dword [ecx]
fld dword [esp + 0x2c]
fld qword [0x4a6db8]
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x64], eax
mov dword [esp + 0x48], edi
cmp eax, ecx
jl 0x43c7b6
mov edx, dword [esp + 0x38]
fstp st(3)
mov ebx, dword [ebp + 0x28]
fstp st(1)
fstp st(0)
fstp st(0)
fldz
fld qword [0x4a6db8]
fxch st(1)
fxch st(2)
fxch st(1)
mov eax, dword [esp + 0x68]
add edx, 4
mov esi, dword [ebp + 0x14]
inc eax
add dword [ebp + 0x1c], 4
mov dword [esp + 0x68], eax
mov dword [esp + 0x38], edx
cmp eax, dword [esi + 0x484]
jl 0x43c6ad
fstp st(2)
fstp st(0)
fstp st(0)
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x38]
mov ebx, dword [ebp + 0x28]
jmp 0x43cb04