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

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffff7c
mov dword [esp + 4], ecx
mov dword [esp], edx
mov ebp, eax
xor edi, edi
mov byte [esp + 0x34], 0
cmp dword [ebp + 0x54c], 0
je 0x5c334e
mov eax, dword [ebp + 0x54c]
call fcn.004072c4
mov dl, 1
mov eax, dword [0x57bc18]
call fcn.00585794
mov dword [ebp + 0x54c], eax
cmp dword [esp], 0xffffffff
jne 0x5c33a3
mov eax, dword [ebp + 0x4b0]
mov eax, dword [eax + 0x54]
mov dword [esp], eax
mov eax, dword [ebp + 0x4b0]
mov eax, dword [eax + 0x58]
mov dword [esp + 4], eax
push 0x40c00000
mov eax, ebp
call fcn.005e9db4
call fcn.005e27ac
mov edi, eax
mov eax, dword [ebp + 0x528]
movzx eax, byte [eax + 0x282]
mov byte [esp + 0x34], al
push 0x20
mov eax, dword [ebp + 0x54c]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
call fcn.00584ba0
mov eax, dword [0x749880]
fld dword [eax]
fmul dword [0x5c3d80]
fdiv dword [0x5c3d84]
fstp dword [esp + 0x4c]
wait
push dword [esp + 0x4c]
call fcn.0051c114
inc eax
imul eax, eax, 0x3c
mov dword [esp + 0x4c], eax
fild dword [esp + 0x4c]
fdiv dword [0x5c3d80]
fstp dword [esp + 0x30]
wait
mov eax, dword [ebp + 0x590]
inc eax
sub eax, 2
jb 0x5c3407
je 0x5c39d3
jmp 0x5c3d75
push 0x3fc00000
mov eax, ebp
call fcn.005e9db4
call fcn.005e27ac
mov dword [esp + 0xc], eax
mov eax, dword [esp]
sar eax, 1
jns 0x5c3426
adc eax, 0
sub eax, dword [esp + 0xc]
sub eax, edi
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x54c]
mov dword [esp + 0x3c], eax
mov eax, dword [ebp + 0x4ac]
mov eax, dword [eax + 0x78]
call fcn.00526b94
and eax, 0xffffff
mov dword [esp + 0x38], eax
push pe_nt_image_headers32
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0x4c]
push eax
lea eax, [esp + 0x58]
push eax
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x48]
xor edx, edx
xor eax, eax
call fcn.00488ce8
lea edx, [esp + 0x54]
mov ecx, dword [esp + 0x3c]
or ecx, 0xfd000000
mov eax, dword [esp + 0x40]
call fcn.00581f7c
mov esi, dword [esp + 8]
neg esi
mov eax, dword [esp + 8]
sub eax, esi
jl 0x5c3700
inc eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 8]
imul dword [esp + 8]
mov edx, esi
imul edx, esi
sub eax, edx
mov dword [esp + 0x4c], eax
fild dword [esp + 0x4c]
add esp, 0xfffffff4
fstp xword [esp]
wait
call fcn.00405bb4
fstp dword [esp + 0x4c]
wait
push dword [esp + 0x4c]
call fcn.0051c114
mov ebx, eax
neg ebx
sub eax, ebx
jl 0x5c36f5
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x4c], ebx
fild dword [esp + 0x4c]
fstp dword [esp + 0x60]
wait
push dword [esp + 0x60]
mov dword [esp + 0x68], esi
fild dword [esp + 0x68]
fstp dword [esp + 0x6c]
wait
push dword [esp + 0x6c]
call fcn.0046e1f8
fld xword [0x5c3d88]
faddp st(1)
fstp dword [esp + 0x18]
wait
cmp byte [esp + 0x34], 0
je 0x5c353e
fld xword [0x5c3d94]
fadd dword [esp + 0x18]
fstp dword [esp + 0x18]
wait
jmp 0x5c353e
fld xword [0x5c3da0]
fadd dword [esp + 0x18]
fstp dword [esp + 0x18]
wait
fldz
fcomp dword [esp + 0x18]
wait
fnstsw ax
sahf
ja 0x5c352f
jmp 0x5c355b
fld xword [0x5c3da0]
fsubr dword [esp + 0x18]
fstp dword [esp + 0x18]
wait
fld xword [0x5c3da0]
fcomp dword [esp + 0x18]
wait
fnstsw ax
sahf
jb 0x5c354c
mov eax, ebx
imul ebx
mov edx, esi
imul edx, esi
add eax, edx
mov dword [esp + 0x4c], eax
fild dword [esp + 0x4c]
add esp, 0xfffffff4
fstp xword [esp]
wait
call fcn.00405bb4
fild dword [esp + 8]
fdivp st(1)
fstp dword [esp + 0x1c]
wait
cmp byte [esp + 0x34], 0
je 0x5c3607
fld dword [esp + 0x18]
fmul dword [0x5c3dac]
fldpi
fdivp st(1)
fdiv dword [0x5c3db0]
fstp dword [esp + 0x4c]
wait
push dword [esp + 0x4c]
call fcn.0051c114
mov dword [esp + 0x4c], eax
fild dword [esp + 0x4c]
fmul dword [0x5c3db0]
fstp dword [esp + 0x18]
wait
fld dword [esp + 0x1c]
fmul dword [0x5c3d80]
fdiv dword [0x5c3d84]
fstp dword [esp + 0x4c]
wait
push dword [esp + 0x4c]
call fcn.0051c114
imul eax, eax, 0x3c
mov dword [esp + 0x4c], eax
fild dword [esp + 0x4c]
fdiv dword [0x5c3d80]
fstp dword [esp + 0x1c]
wait
jmp 0x5c361a
fld dword [esp + 0x18]
fmul dword [0x5c3dac]
fldpi
fdivp st(1)
fstp dword [esp + 0x18]
wait
cmp byte [ebp + 0x594], 0
je 0x5c3675
mov eax, dword [0x7498c0]
fld dword [esp + 0x1c]
fcomp dword [eax]
wait
fnstsw ax
sahf
jb 0x5c3642
fld dword [esp + 0x1c]
fcomp dword [esp + 0x30]
wait
fnstsw ax
sahf
jbe 0x5c3675
push dword [esp + 0x18]
push dword [esp + 0x20]
push 0x3f333333
call fcn.005c15c4
call fcn.00526b94
call fcn.005267b8
mov edx, eax
shl edx, 8
add edx, eax
mov ecx, eax
shl ecx, 0x10
add edx, ecx
shl eax, 0x18
add edx, eax
mov eax, edx
jmp 0x5c36c3
cmp dword [ebp + 0x590], 0
jne 0x5c3692
push dword [esp + 0x18]
push dword [esp + 0x20]
push 0x3f800000
call fcn.005c15c4
jmp 0x5c36c3
push dword [esp + 0x18]
push dword [esp + 0x20]
push 0x3f800000
call fcn.005c15c4
call fcn.00526b94
call fcn.005267b8
mov edx, eax
shl edx, 8
add edx, eax
mov ecx, eax
shl ecx, 0x10
add edx, ecx
shl eax, 0x18
add edx, eax
mov eax, edx
or eax, 0xff000000
push eax
mov ecx, ebx
add ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x10]
add ecx, edi
mov edx, esi
add edx, dword [esp + 0xc]
add edx, dword [esp + 0x10]
add edx, edi
mov eax, dword [esp + 0x40]
call fcn.0057dccc
inc ebx
dec dword [esp + 0x44]
jne 0x5c34e3
inc esi
dec dword [esp + 0x40]
jne 0x5c34a1
mov eax, dword [esp]
sar eax, 1
jns 0x5c370a
adc eax, 0
mov dword [esp + 0x4c], eax
fild dword [esp + 0x4c]
fstp dword [esp + 0x60]
wait
push dword [esp + 0x60]
mov eax, dword [esp + 8]
sar eax, 1
jns 0x5c3726
adc eax, 0
mov dword [esp + 0x68], eax
fild dword [esp + 0x68]
fstp dword [esp + 0x6c]
wait
push dword [esp + 0x6c]
fild dword [esp + 0x10]
fstp dword [esp + 0x74]
wait
push dword [esp + 0x74]
push 0x3fb00000
mov eax, ebp
call fcn.005e9db4
call fcn.005e27ac
add eax, dword [esp + 0x14]
mov dword [esp + 0x7c], eax
fild dword [esp + 0x7c]
fstp dword [esp + 0x80]
wait
push dword [esp + 0x80]
push 0x3f2aaaab
mov edx, 0xff000000
mov eax, dword [esp + 0x50]
call fcn.00580b90
or dword [esp + 0x38], 0xff000000
cmp byte [esp + 0x34], 0
je 0x5c3d75
mov ebx, dword [esp + 8]
jmp 0x5c3840
cmp ebx, dword [esp + 8]
je 0x5c382b
mov eax, dword [esp]
sar eax, 1
jns 0x5c37b3
adc eax, 0
mov dword [esp + 0x4c], eax
fild dword [esp + 0x4c]
fstp dword [esp + 0x60]
wait
push dword [esp + 0x60]
mov eax, dword [esp + 8]
sar eax, 1
jns 0x5c37cf
adc eax, 0
mov dword [esp + 0x68], eax
fild dword [esp + 0x68]
fstp dword [esp + 0x6c]
wait
push dword [esp + 0x6c]
fild dword [esp + 0x10]
fstp dword [esp + 0x74]
wait
push dword [esp + 0x74]
push 0x3fb00000
mov eax, ebp
call fcn.005e9db4
call fcn.005e27ac
add eax, dword [esp + 0x14]
mov dword [esp + 0x7c], eax
fild dword [esp + 0x7c]
fstp dword [esp + 0x80]
wait
push dword [esp + 0x80]
push 0x3f800000
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x50]
call fcn.00580b90
push 0x41a00000
mov eax, ebp
call fcn.005e9db4
call fcn.005e27ac
sub dword [esp + 8], eax
push 0x40a00000
mov eax, ebp
call fcn.005e9db4
call fcn.005e27ac
cmp eax, dword [esp + 8]
jl 0x5c379f
mov dword [esp + 0x18], 0x3e490fdb
mov eax, ebp
call fcn.005e9db4
sub ebx, dword [eax + 0x30]
jmp 0x5c39ba
fld dword [esp + 0x18]
add esp, 0xfffffff4
fstp xword [esp]
wait
call fcn.00405b6c
mov dword [esp + 0x4c], ebx
fild dword [esp + 0x4c]
fmulp st(1)
mov eax, dword [esp]
sar eax, 1
jns 0x5c3896
adc eax, 0
mov dword [esp + 0x4c], eax
fild dword [esp + 0x4c]
faddp st(1)
fstp dword [esp + 0x20]
wait
fld dword [esp + 0x18]
add esp, 0xfffffff4
fstp xword [esp]
wait
call fcn.00405b5c
mov dword [esp + 0x4c], ebx
fild dword [esp + 0x4c]
fmulp st(1)
mov eax, dword [esp + 4]
sar eax, 1
jns 0x5c38ca
adc eax, 0
mov dword [esp + 0x4c], eax
fild dword [esp + 0x4c]
faddp st(1)
fstp dword [esp + 0x28]
wait
push 0x41b00000
mov eax, ebp
call fcn.005e9db4
call fcn.005e27ac
mov dword [esp + 0x4c], eax
fild dword [esp + 0x4c]
fstp xword [esp + 0x78]
wait
fld dword [esp + 0x18]
add esp, 0xfffffff4
fstp xword [esp]
wait
call fcn.00405b6c
fld xword [esp + 0x78]
fmulp st(1)
mov eax, dword [esp]
sar eax, 1
jns 0x5c3917
adc eax, 0
mov dword [esp + 0x4c], eax
fild dword [esp + 0x4c]
faddp st(1)
fstp dword [esp + 0x24]
wait
push 0x41b00000
mov eax, ebp
call fcn.005e9db4
call fcn.005e27ac
mov dword [esp + 0x4c], eax
fild dword [esp + 0x4c]
fstp xword [esp + 0x78]
wait
fld dword [esp + 0x18]
add esp, 0xfffffff4
fstp xword [esp]
wait
call fcn.00405b5c
fld xword [esp + 0x78]
fmulp st(1)
mov eax, dword [esp + 4]
sar eax, 1
jns 0x5c3965
adc eax, 0
mov dword [esp + 0x4c], eax
fild dword [esp + 0x4c]
faddp st(1)
fstp dword [esp + 0x2c]
wait
push dword [esp + 0x20]
push dword [esp + 0x2c]
push dword [esp + 0x2c]
push dword [esp + 0x38]
mov eax, ebp
call fcn.005e9db4
fild dword [eax + 0x30]
fstp dword [esp + 0x5c]
wait
push dword [esp + 0x5c]
push 0x3f800000
xor ecx, ecx
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
call fcn.0057e280
fld xword [0x5c3db4]
fadd dword [esp + 0x18]
fstp dword [esp + 0x18]
wait
fld xword [0x5c3da0]
fcomp dword [esp + 0x18]
wait
fnstsw ax
sahf
ja 0x5c3872
jmp 0x5c3d75
mov eax, dword [ebp + 0x54c]
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 0x4ac]
mov eax, dword [eax + 0x78]
call fcn.004d0324
call fcn.00526b94
mov dword [esp + 0x38], eax
push 0xfa
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + 0x4c]
push eax
lea eax, [esp + 0x58]
push eax
mov eax, dword [esp + 0x54]
mov ecx, dword [eax + 0x48]
xor edx, edx
xor eax, eax
call fcn.00488ce8
lea edx, [esp + 0x54]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x4c]
call fcn.00581f7c
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0x48]
mov edx, edi
add edx, edx
sub eax, edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0x4c]
mov edx, edi
add edx, edx
sub eax, edx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
dec eax
test eax, eax
jl 0x5c3be2
inc eax
mov dword [esp + 0x40], eax
xor ebx, ebx
mov eax, dword [esp + 0x14]
dec eax
test eax, eax
jl 0x5c3bd7
inc eax
mov dword [esp + 0x44], eax
xor esi, esi
mov dword [esp + 0x4c], esi
fild dword [esp + 0x4c]
fild dword [esp + 0x14]
fdivp st(1)
fld1
fsubrp st(1)
fld xword [0x5c3dc0]
fsubp st(1)
fstp dword [esp + 0x18]
wait
fldz
fcomp dword [esp + 0x18]
wait
fnstsw ax
sahf
jbe 0x5c3aa7
fld1
fadd dword [esp + 0x18]
fstp dword [esp + 0x18]
wait
mov dword [esp + 0x4c], ebx
fild dword [esp + 0x4c]
fild dword [esp + 0x10]
fdivp st(1)
fld1
fsubrp st(1)
fstp dword [esp + 0x1c]
wait
cmp byte [esp + 0x34], 0
je 0x5c3b4a
fld dword [esp + 0x18]
fmul dword [0x5c3d80]
fadd dword [0x5c3dcc]
fdiv dword [0x5c3db0]
fstp dword [esp + 0x4c]
wait
push dword [esp + 0x4c]
call fcn.0051c114
mov dword [esp + 0x4c], eax
fild dword [esp + 0x4c]
fmul dword [0x5c3db0]
fdiv dword [0x5c3d80]
fstp dword [esp + 0x18]
wait
fild dword [esp + 0x10]
fdiv dword [0x5c3dd0]
fstp dword [esp + 0x1c]
wait
mov dword [esp + 0x4c], ebx
fild dword [esp + 0x4c]
fdiv dword [esp + 0x1c]
fstp dword [esp + 0x4c]
wait
push dword [esp + 0x4c]
call fcn.0051c114
mov dword [esp + 0x4c], eax
fild dword [esp + 0x4c]
fmul dword [esp + 0x1c]
fild dword [esp + 0x10]
fdivp st(1)
fld1
fsubrp st(1)
fstp dword [esp + 0x1c]
wait
cmp byte [ebp + 0x594], 0
je 0x5c3ba5
mov eax, dword [0x7498c0]
fld dword [esp + 0x1c]
fcomp dword [eax]
wait
fnstsw ax
sahf
jb 0x5c3b72
fld dword [esp + 0x1c]
fcomp dword [esp + 0x30]
wait
fnstsw ax
sahf
jbe 0x5c3ba5
push dword [esp + 0x18]
push 0x3eb33333
push dword [esp + 0x24]
call fcn.00526e30
call fcn.00526b94
call fcn.005267b8
mov edx, eax
shl edx, 8
add edx, eax
mov ecx, eax
shl ecx, 0x10
add edx, ecx
shl eax, 0x18
add edx, eax
mov eax, edx
jmp 0x5c3bb7
push dword [esp + 0x18]
push 0x3f000000
push dword [esp + 0x24]
call fcn.00526e30
or eax, 0xff000000
push eax
lea ecx, [edi + ebx]
lea edx, [edi + esi]
mov eax, dword [esp + 0x4c]
call fcn.0057dccc
inc esi
dec dword [esp + 0x44]
jne 0x5c3a71
inc ebx
dec dword [esp + 0x40]
jne 0x5c3a5d
cmp byte [esp + 0x34], 0
je 0x5c3d09
fild dword [esp + 0x10]
fdiv dword [0x5c3dd4]
fstp dword [esp + 0x18]
wait
xor ebx, ebx
push pe_nt_image_headers32
mov eax, dword [esp + 0x18]
add eax, edi
push eax
lea eax, [esp + 0x58]
push eax
push 0x3f800000
mov eax, ebp
call fcn.005e9db4
call fcn.005e27ac
mov esi, eax
mov dword [esp + 0x58], ebx
fild dword [esp + 0x58]
fmul dword [esp + 0x24]
mov dword [esp + 0x58], edi
fild dword [esp + 0x58]
faddp st(1)
call fcn.00405bc4
add esi, eax
push esi
mov dword [esp + 0x5c], ebx
fild dword [esp + 0x5c]
fmul dword [esp + 0x28]
mov dword [esp + 0x5c], edi
fild dword [esp + 0x5c]
faddp st(1)
call fcn.00405bc4
mov edx, edi
pop ecx
call fcn.00488ce8
lea edx, [esp + 0x54]
mov ecx, 0xff191f23
mov eax, dword [esp + 0x4c]
call fcn.00581f7c
inc ebx
cmp ebx, 0x10
jne 0x5c3bfe
fild dword [esp + 0x14]
fdiv dword [0x5c3dd0]
fstp dword [esp + 0x18]
wait
xor esi, esi
push pe_nt_image_headers32
push 0x3f800000
mov eax, ebp
call fcn.005e9db4
call fcn.005e27ac
mov ebx, eax
mov dword [esp + 0x50], esi
fild dword [esp + 0x50]
fmul dword [esp + 0x1c]
mov dword [esp + 0x50], edi
fild dword [esp + 0x50]
faddp st(1)
call fcn.00405bc4
add ebx, eax
push ebx
lea eax, [esp + 0x58]
push eax
mov dword [esp + 0x58], esi
fild dword [esp + 0x58]
fmul dword [esp + 0x24]
mov dword [esp + 0x58], edi
fild dword [esp + 0x58]
faddp st(1)
call fcn.00405bc4
mov edx, eax
mov ecx, edi
add ecx, dword [esp + 0x1c]
mov eax, edi
call fcn.00488ce8
lea edx, [esp + 0x54]
mov ecx, 0xff191f23
mov eax, dword [esp + 0x4c]
call fcn.00581f7c
inc esi
cmp esi, 6
jne 0x5c3c8c
push pe_nt_image_headers32
push 0x3f800000
mov eax, ebp
call fcn.005e9db4
call fcn.005e27ac
push eax
push 0x3f800000
mov eax, ebp
call fcn.005e9db4
call fcn.005e27ac
mov edx, dword [esp + 0x1c]
add edx, edi
add eax, edx
push eax
lea eax, [esp + 0x5c]
push eax
push 0x3f800000
mov eax, ebp
call fcn.005e9db4
call fcn.005e27ac
mov ecx, eax
mov eax, dword [esp + 0x20]
add eax, edi
add ecx, eax
mov edx, edi
mov eax, edi
call fcn.00488ce8
lea edx, [esp + 0x58]
mov ecx, 0xff191f23
mov eax, dword [esp + 0x50]
call fcn.00581d48
add esp, 0x84
pop ebp
pop edi
pop esi
pop ebx
ret