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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov eax, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
mov esi, dword [esp + 0x78]
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x40], eax
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x43882f
mov dword [esp], eax
call fcn.00648a36
mov dword [esp + 0x30], eax
cmp dword [ebx + 0x18], 0
je 0x438840
cmp dword [esp + 0x30], 0
je 0x438daa
cmp dword [esp + 0x40], 0
je 0x438d96
mov eax, dword [ebx + 8]
mov edx, 0x6ca9e0
mov ecx, dword [eax]
mov eax, 0x6ca9e3
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x18], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x1c], esi
mov dword [esp + 8], 0x6ca9f7
mov dword [esp + 0x10], ecx
mov dword [esp + 4], 0x20
mov dword [esp], 0
call fcn.00647705
mov eax, dword [ebx + 0x48c]
mov edx, 0x6caa0d
call fcn.004378a1
cmp dword [esp + 0x40], 0
jne 0x438b7c
mov dword [esp + 8], 0x6caa10
mov dword [esp + 4], 0x20
mov dword [esp], 0
call fcn.00647705
mov edx, dword [ebx + 0x434]
mov eax, dword [ebx + 0x430]
lea ecx, [edx - 0x80000000]
or ecx, eax
je 0x438994
cmp edx, 0x7fffffff
jl 0x4388f0
xor esi, esi
cmp eax, 0xffffec77
ja 0x4388f5
mov esi, 0x1388
xor edi, edi
add esi, eax
mov dword [esp + 8], 0xf4240
adc edi, edx
mov dword [esp], esi
mov dword [esp + 0xc], 0
mov dword [esp + 4], edi
mov ebp, 0x3c
call fcn.0068a1b7
cdq
mov dword [esp + 0x28], eax
mov dword [esp], esi
idiv ebp
mov dword [esp + 8], 0xf4240
mov dword [esp + 0xc], 0
mov esi, 0x2710
mov dword [esp + 4], edi
mov dword [esp + 0x44], edx
mov dword [esp + 0x38], eax
call fcn.0068a2f7
cdq
mov ecx, 0xe10
mov dword [esp + 8], 0x6caa1d
idiv esi
mov dword [esp + 4], 0x20
mov dword [esp], 0
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x38]
cdq
idiv ebp
mov eax, dword [esp + 0x28]
mov dword [esp + 0x10], edx
cdq
idiv ecx
mov dword [esp + 0xc], eax
call fcn.00647705
jmp 0x4389b0
mov dword [esp + 8], 0x6ca46c
mov dword [esp + 4], 0x20
mov dword [esp], 0
call fcn.00647705
mov eax, dword [ebx + 0x42c]
add eax, 0x80000000
or eax, dword [ebx + 0x428]
je 0x438ad4
mov dword [esp + 8], 0x6caa31
mov dword [esp + 4], 0x20
mov dword [esp], 0
call fcn.00647705
mov ecx, dword [ebx + 0x428]
mov esi, dword [ebx + 0x42c]
mov dword [esp + 8], 0xf4240
mov dword [esp + 0xc], 0
mov dword [esp], ecx
mov dword [esp + 4], esi
mov dword [esp + 0x44], ecx
call fcn.0068a1b7
mov ecx, edx
mov dword [esp + 8], 0xf4240
mov dword [esp + 0xc], 0
sar ecx, 0x1f
mov dword [esp + 4], esi
mov dword [esp + 0x10], 0xf4240
xor eax, ecx
xor edx, ecx
mov dword [esp + 0x28], ecx
mov edi, eax
sub edi, dword [esp + 0x28]
mov dword [esp + 0x2c], ecx
mov ebp, edx
mov ecx, dword [esp + 0x44]
sbb ebp, dword [esp + 0x2c]
mov dword [esp + 0x14], 0
mov dword [esp], ecx
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], ebp
call fcn.0068a2f7
mov ecx, edx
mov dword [esp + 8], 0xf4240
mov dword [esp + 0xc], 0
sar ecx, 0x1f
xor edx, ecx
mov dword [esp + 0x28], ecx
xor eax, ecx
sub eax, dword [esp + 0x28]
mov dword [esp + 0x2c], ecx
sbb edx, dword [esp + 0x2c]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00647e5c
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x38]
test esi, esi
mov ecx, 0x6ca9f5
mov edx, 0x6ca4ec
mov dword [esp + 8], 0x6caa3b
cmovs edx, ecx
mov dword [esp + 4], 0x20
mov dword [esp], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edx
call fcn.00647705
mov dword [esp + 8], 0x6caa45
mov dword [esp + 4], 0x20
mov dword [esp], 0
call fcn.00647705
mov eax, dword [ebx + 0x43c]
mov edx, dword [ebx + 0x438]
mov ecx, eax
or ecx, edx
je 0x438b44
mov dword [esp + 8], 0x3e8
mov dword [esp + 0xc], 0
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.0068a1b7
mov dword [esp + 8], 0x6caa51
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 4], 0x20
mov dword [esp], 0
call fcn.00647705
jmp 0x438b60
mov dword [esp + 8], 0x6ca46c
mov dword [esp + 4], 0x20
mov dword [esp], 0
call fcn.00647705
mov dword [esp + 8], 0x6ca435
mov dword [esp + 4], 0x20
mov dword [esp], 0
call fcn.00647705
xor esi, esi
cmp dword [ebx + 0x484], esi
jbe 0x438c44
mov eax, dword [ebx + 0x488]
mov edi, dword [eax + esi*4]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x10], esi
mov dword [esp + 8], 0x6caa5b
inc esi
mov dword [esp + 4], 0x20
mov dword [esp], 0
mov dword [esp + 0xc], eax
call fcn.00647705
fild dword [edi + 8]
fidivr dword [edi + 4]
fstp qword [esp + 0x48]
fld qword [esp + 0x48]
fild qword [edi + 0x10]
mov dword [esp + 8], 0x6caa70
mov dword [esp + 4], 0x20
mov dword [esp], 0
fstp qword [esp + 0x48]
fld qword [esp + 0x48]
fmulp st(1)
fstp qword [esp + 0xc]
call fcn.00647705
fild dword [edi + 8]
fidivr dword [edi + 4]
fstp qword [esp + 0x48]
fld qword [esp + 0x48]
fild qword [edi + 0x18]
mov dword [esp + 8], 0x6caa7b
mov dword [esp + 4], 0x20
mov dword [esp], 0
fstp qword [esp + 0x48]
fld qword [esp + 0x48]
fmulp st(1)
fstp qword [esp + 0xc]
call fcn.00647705
mov eax, dword [edi + 0x20]
mov edx, 0x6ca61c
call fcn.004378a1
jmp 0x438b7e
cmp dword [ebx + 0x468], 0
je 0x438d5e
mov dword [esp + 0x28], 0
xor esi, esi
cmp dword [ebx + 0x468], esi
jbe 0x438d39
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
lea ebp, [esi*4]
mov dword [esp + 4], 0x6caa83
mov eax, dword [ebx + 0x46c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x14]
mov dword [esp], eax
call fcn.006403ef
test eax, eax
mov edx, 0x6ca4ec
je 0x438ca6
mov edx, dword [eax + 4]
mov dword [esp + 0x10], edx
mov eax, dword [ebx + 0x46c]
xor edi, edi
mov eax, dword [eax + ebp]
mov eax, dword [eax]
mov dword [esp + 8], 0x6caa88
mov dword [esp + 4], 0x20
mov dword [esp], 0
mov dword [esp + 0xc], eax
call fcn.00647705
mov eax, dword [ebx + 0x46c]
mov edx, 0x6ca61c
mov eax, dword [eax + ebp]
mov eax, dword [eax + 0x14]
call fcn.004378a1
mov eax, dword [ebx + 0x46c]
mov edx, dword [eax + ebp]
mov eax, dword [edx + 0x10]
cmp eax, edi
jbe 0x438d2f
mov eax, dword [edx + 0xc]
mov ecx, dword [esp + 0x34]
mov edx, dword [eax + edi*4]
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov eax, ebx
call fcn.00437a6c
mov eax, dword [ebx + 0x46c]
mov ecx, dword [esp + 0x30]
mov eax, dword [eax + ebp]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + edi*4]
inc edi
mov byte [ecx + eax], 1
jmp 0x438ced
add dword [esp + 0x28], eax
inc esi
jmp 0x438c5b
mov eax, dword [esp + 0x28]
cmp dword [ebx + 0x18], eax
jbe 0x438d5e
mov dword [esp + 8], 0x6caa99
mov dword [esp + 4], 0x20
mov dword [esp], 0
call fcn.00647705
xor esi, esi
cmp dword [ebx + 0x18], esi
mov eax, dword [esp + 0x30]
jbe 0x438d86
cmp byte [eax + esi], 0
jne 0x438d83
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x34]
mov edx, esi
mov dword [esp], eax
mov eax, ebx
call fcn.00437a6c
inc esi
jmp 0x438d60
mov dword [esp + 0x70], eax
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.006489d6
mov eax, dword [ebx + 4]
mov edx, 0x6ca9ea
mov ecx, dword [eax]
mov eax, 0x6ca9ef
jmp 0x43885a
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret