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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x178
push ebx
push ebp
push esi
push edi
mov ebx, ecx
call fcn.005c5c90
test eax, eax
je 0x5c6ca9
mov edi, dword [ebx + 0x68]
xor ebp, ebp
mov ecx, edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x44], ebp
call fcn.005bd390
test eax, eax
jbe 0x5c6ca9
mov dword [esp + 0x34], ebp
nop
mov ecx, dword [ebx + 0x60]
sub ecx, dword [ebx + 0x5c]
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x5c63a2
call fcn.00615e0c
mov esi, dword [ebx + 0x5c]
add esi, dword [esp + 0x34]
lea ecx, [ebx + 0x2c]
mov dword [esp + 0x18], esi
call fcn.005cee90
movzx ecx, al
push ecx
mov ecx, esi
call fcn.005d1e20
test eax, eax
je 0x5c6c90
mov ecx, dword [ebx + 0x24]
push ebp
call fcn.005bd490
fldz
sub eax, 1
fst dword [esp + 0xa8]
fst dword [esp + 0xa4]
fst dword [esp + 0xa0]
fst dword [esp + 0x9c]
fst dword [esp + 0x94]
fst dword [esp + 0x90]
fst dword [esp + 0x8c]
fst dword [esp + 0x88]
fst dword [esp + 0x80]
fst dword [esp + 0x7c]
fst dword [esp + 0x78]
fst dword [esp + 0x74]
fld1
fst dword [esp + 0xac]
fst dword [esp + 0x98]
fst dword [esp + 0x84]
fst dword [esp + 0x70]
je 0x5c661b
sub eax, 1
je 0x5c6560
sub eax, 1
fstp st(1)
fstp st(0)
jne 0x5c6674
fld dword [ebx + 0xc]
lea edx, [esp + 0x38]
push edx
push ecx
mov ecx, dword [ebx + 0x24]
fstp dword [esp]
call fcn.005cf160
fld dword [ebx + 0xc]
mov ecx, dword [0x712408]
fstp qword [esp + 0x28]
lea eax, [esp + 0x108]
push eax
call fcn.00588040
fsubr qword [esp + 0x2c]
push ecx
mov ecx, dword [ebx + 0x24]
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fstp dword [esp]
call fcn.005cf160
fld dword [esp + 0x38]
fsub dword [esp + 0x108]
fstp dword [esp + 0x38]
fld dword [esp + 0x3c]
fsub dword [esp + 0x10c]
fstp dword [esp + 0x3c]
fld dword [esp + 0x40]
fsub dword [esp + 0x110]
fstp dword [esp + 0x40]
fld dword [esp + 0x3c]
fld dword [esp + 0x38]
fld dword [esp + 0x40]
fld st(2)
fmulp st(3)
fld st(1)
fmulp st(2)
fxch st(2)
faddp st(1)
fld st(1)
fmulp st(2)
faddp st(1)
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fcomp dword [0x68c67c]
fnstsw ax
test ah, 0x41
jne 0x5c6674
lea ecx, [esp + 0x38]
push ecx
mov edx, ecx
push edx
call fcn.005db54f
fldz
fst dword [esp + 0xfc]
lea eax, [esp + 0x38]
fld dword [0x6763a0]
push eax
lea ecx, [esp + 0x100]
fstp dword [esp + 0x104]
push ecx
lea edx, [esp + 0x138]
push edx
fstp dword [esp + 0x110]
call fcn.0054ec10
add esp, 0xc
lea eax, [esp + 0x130]
push eax
lea ecx, [esp + 0x74]
push ecx
call fcn.005dcb32
jmp 0x5c6674
fxch st(1)
fst dword [esp + 0xf0]
fst dword [esp + 0xec]
fst dword [esp + 0xe8]
fst dword [esp + 0xe4]
fst dword [esp + 0xdc]
fst dword [esp + 0xd8]
fst dword [esp + 0xd4]
fst dword [esp + 0xd0]
fst dword [esp + 0xc8]
fst dword [esp + 0xc4]
fst dword [esp + 0xc0]
fstp dword [esp + 0xbc]
fst dword [esp + 0xf4]
fst dword [esp + 0xe0]
fst dword [esp + 0xcc]
fstp dword [esp + 0xb8]
call fcn.0055c380
push eax
push 0
lea edx, [esp + 0xc0]
push edx
call fcn.005dc379
fld dword [esp + 0xb8]
fstp dword [esp + 0x70]
fld dword [esp + 0xbc]
fstp dword [esp + 0x74]
fld dword [esp + 0xc8]
fstp dword [esp + 0x80]
fld dword [esp + 0xcc]
fstp dword [esp + 0x84]
jmp 0x5c6674
fstp st(1)
push ecx
fstp st(0)
lea eax, [esp + 0xbc]
fld dword [0x67c414]
fstp dword [esp]
push eax
call fcn.005dc848
call fcn.0055c380
push eax
push 0
lea ecx, [esp + 0x78]
push ecx
call fcn.005dc379
lea edx, [esp + 0x70]
push edx
lea eax, [esp + 0xbc]
push eax
lea ecx, [esp + 0x150]
push ecx
call fcn.005dbe6d
mov ecx, 0x10
lea esi, [esp + 0x148]
lea edi, [esp + 0x70]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebx + 0x24]
push ebp
call fcn.005bd4e0
test eax, eax
jne 0x5c6686
push eax
push 0x1b
jmp 0x5c66be
mov ecx, dword [ebx + 0x24]
push ebp
call fcn.005bd530
mov ecx, dword [ebx + 0x24]
push ebp
movzx esi, al
call fcn.005bd580
mov ecx, dword [0x70f780]
push 1
push 0x1b
movzx edi, al
call fcn.00556cf0
mov ecx, dword [0x70f780]
push esi
push 0x13
call fcn.00556cf0
push edi
push 0x14
mov ecx, dword [0x70f780]
call fcn.00556cf0
fld dword [ebx + 0xc]
lea edx, [esp + 0x114]
push edx
push ecx
mov ecx, dword [ebx + 0x24]
fstp dword [esp]
call fcn.005cf160
fld dword [esp + 0x114]
mov eax, dword [ebx + 4]
fstp dword [esp + 0xa0]
fld dword [esp + 0x118]
push eax
lea ecx, [esp + 0x74]
fstp dword [esp + 0xa8]
fld dword [esp + 0x120]
push ecx
lea edx, [esp + 0x150]
fstp dword [esp + 0xb0]
push edx
call fcn.005dbe6d
lea eax, [esp + 0x70]
mov ecx, 0x10
lea esi, [esp + 0x148]
lea edi, [esp + 0x70]
push eax
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x70f780]
push 0x100
call fcn.00557500
lea ecx, [esp + 0x27]
fld1
push ecx
mov ecx, dword [ebx + 0x24]
fst dword [esp + 0x60]
fst dword [esp + 0x64]
push ebp
fst dword [esp + 0x6c]
fstp dword [esp + 0x70]
call fcn.005bd5d0
test eax, eax
je 0x5c6780
movzx edx, byte [esp + 0x27]
mov ecx, dword [0x70f780]
push edx
push 1
push 0
call fcn.00556d70
mov ecx, dword [ebx + 0x24]
lea eax, [esp + 0x5c]
push eax
push ebp
call fcn.005bd630
fld1
lea ecx, [esp + 0x6c]
fstp dword [esp + 0x10]
push ecx
mov ecx, dword [ebx + 0x24]
push ebp
call fcn.005bd6a0
test eax, eax
je 0x5c69b4
mov esi, dword [esp + 0x6c]
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
mov dword [esp + 0x28], ecx
sub ecx, eax
test ecx, 0xfffffff8
je 0x5c69b4
fld dword [ebx + 0xc]
fstp dword [esp + 0x10]
cmp eax, dword [esp + 0x28]
jbe 0x5c67d8
call fcn.00615e0c
mov ebp, dword [esi + 0xc]
mov edx, dword [esi]
mov dword [esp + 0x120], edx
cmp ebp, dword [esi + 0x10]
jbe 0x5c67ee
call fcn.00615e0c
mov edi, dword [esi]
mov dword [esp + 0xb0], edi
mov dword [esp + 0xb4], ebp
test edi, edi
jne 0x5c6819
call fcn.00615e0c
xor eax, eax
add ebp, 8
cmp ebp, dword [eax + 0x10]
ja 0x5c6824
test edi, edi
je 0x5c681d
mov edi, dword [edi]
jmp 0x5c681f
mov eax, dword [edi]
jmp 0x5c6809
xor edi, edi
cmp ebp, dword [edi + 0xc]
jae 0x5c6829
call fcn.00615e0c
mov eax, dword [esp + 0xb0]
test eax, eax
je 0x5c683d
cmp eax, dword [esp + 0x120]
je 0x5c6842
call fcn.00615e0c
mov edi, dword [esi + 0xc]
cmp ebp, dword [esp + 0x28]
jne 0x5c6876
cmp edi, dword [esi + 0x10]
jbe 0x5c6855
call fcn.00615e0c
mov esi, dword [esi]
test esi, esi
jne 0x5c6872
call fcn.00615e0c
cmp edi, dword [esi + 0x10]
jb 0x5c686a
call fcn.00615e0c
fld dword [edi + 4]
jmp 0x5c69b0
mov esi, dword [esi]
jmp 0x5c6860
cmp edi, dword [esi + 0x10]
jbe 0x5c6880
call fcn.00615e0c
mov eax, dword [esi]
test eax, eax
jne 0x5c68b5
call fcn.00615e0c
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x5c6897
call fcn.00615e0c
fld dword [esp + 0x10]
mov ecx, esi
fld dword [edi]
fcompp
fnstsw ax
test ah, 0x41
jne 0x5c68b9
call fcn.005cf0c0
fld dword [eax + 4]
jmp 0x5c69b0
mov eax, dword [eax]
jmp 0x5c688d
call fcn.005c6090
fld dword [esp + 0x10]
fld dword [eax]
mov ecx, esi
fcompp
fnstsw ax
test ah, 5
jp 0x5c68dc
call fcn.005c6090
fld dword [eax + 4]
jmp 0x5c69b0
lea eax, [esp + 0x128]
push eax
call fcn.005cf090
lea ecx, [esp + 0x140]
push ecx
mov ecx, esi
mov edi, eax
call fcn.00517fa0
mov ecx, dword [edi + 4]
lea edx, [esp + 0x10]
push edx
mov edx, dword [edi]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, dword [eax]
push ecx
push edx
lea eax, [esp + 0x60]
push eax
call fcn.005c62b0
add esp, 0x18
lea ecx, [esp + 0x54]
push ecx
lea ecx, [esp + 0x50]
call fcn.005bd710
lea ecx, [esp + 0x4c]
test al, al
je 0x5c693a
call fcn.005ca870
fld dword [eax + 4]
jmp 0x5c69b0
call fcn.005c5e60
lea ecx, [esp + 0x54]
call fcn.005ca870
fld dword [eax]
fsub dword [esp + 0x10]
lea ecx, [esp + 0x54]
fstp qword [esp + 0x10]
call fcn.005ca870
fld dword [eax]
lea ecx, [esp + 0x4c]
fstp qword [esp + 0x28]
call fcn.005ca870
fld dword [eax]
lea ecx, [esp + 0x4c]
fsubr qword [esp + 0x28]
fdivr qword [esp + 0x10]
fstp dword [esp + 0x28]
call fcn.005ca870
fld dword [eax + 4]
lea ecx, [esp + 0x54]
fstp qword [esp + 0x10]
call fcn.005ca870
fld dword [eax + 4]
fsubr qword [esp + 0x10]
lea ecx, [esp + 0x54]
fmul dword [esp + 0x28]
fstp qword [esp + 0x28]
call fcn.005ca870
fld dword [eax + 4]
fadd qword [esp + 0x28]
fstp dword [esp + 0x10]
mov ebp, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
push ebp
call fcn.005bd3a0
lea ecx, [ebx + 0x2c]
mov edi, eax
call fcn.005cee90
mov ecx, dword [edi + 0xb0]
sub ecx, dword [edi + 0xac]
movzx esi, al
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x5c69f5
call fcn.00615e0c
mov ecx, dword [esp + 0x18]
imul esi, esi, 0x2c
add esi, dword [edi + 0xac]
call fcn.005cee90
mov ecx, dword [ebx + 0x60]
sub ecx, dword [ebx + 0x5c]
movzx edi, al
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ebp, ecx
jb 0x5c6a2c
call fcn.00615e0c
mov edx, dword [ebx + 0x5c]
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + edx + 0x34]
sub ecx, dword [eax + edx + 0x30]
lea eax, [eax + edx + 0x24]
sar ecx, 2
cmp edi, ecx
jae 0x5c6aaa
mov ecx, dword [ebx + 0x60]
sub ecx, edx
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x5c6a67
call fcn.00615e0c
mov ecx, dword [ebx + 0x5c]
mov edx, dword [esp + 0x34]
mov eax, dword [edx + ecx + 0x34]
sub eax, dword [edx + ecx + 0x30]
lea ebp, [edx + ecx + 0x24]
sar eax, 2
cmp edi, eax
jb 0x5c6a86
call fcn.00615e0c
mov ecx, dword [ebp + 0xc]
mov edi, dword [ecx + edi*4]
mov ebp, dword [0x70f780]
mov ecx, edi
call fcn.00565a30
mov ecx, eax
call fcn.0056a9c0
push eax
push 0
mov ecx, ebp
call fcn.00556d30
fld dword [esi + 4]
fmul dword [esp + 0x10]
fstp dword [esp + 0x68]
fld1
fld dword [esp + 0x5c]
fcom st(1)
fnstsw ax
test ah, 1
jne 0x5c6adb
fstp st(0)
mov edi, 0xff
fld qword [0x676648]
fld qword [0x676650]
fldz
jmp 0x5c6b32
fldz
fcom st(1)
fnstsw ax
test ah, 1
jne 0x5c6afc
fstp st(1)
xor edi, edi
fld qword [0x676648]
fld qword [0x676650]
fxch st(1)
fxch st(2)
jmp 0x5c6b32
fld qword [0x676650]
fnstcw word [esp + 0x10]
movzx eax, word [esp + 0x10]
fmul st(2), st(0)
or eax, 0xc00
fld qword [0x676648]
mov dword [esp + 0x18], eax
fadd st(3), st(0)
fldcw word [esp + 0x18]
fxch st(3)
fistp qword [esp + 0x18]
mov edi, dword [esp + 0x18]
fldcw word [esp + 0x10]
fxch st(1)
fld dword [esp + 0x60]
fcom st(4)
fnstsw ax
test ah, 1
jne 0x5c6b48
fstp st(0)
mov edx, 0xff
jmp 0x5c6b7d
fcom st(1)
fnstsw ax
test ah, 0x41
jp 0x5c6b57
fstp st(0)
xor edx, edx
jmp 0x5c6b7d
fnstcw word [esp + 0x10]
movzx eax, word [esp + 0x10]
fmul st(2)
or eax, 0xc00
mov dword [esp + 0x18], eax
fadd st(3)
fldcw word [esp + 0x18]
fistp qword [esp + 0x18]
mov edx, dword [esp + 0x18]
fldcw word [esp + 0x10]
fld dword [esp + 0x64]
fcom st(4)
fnstsw ax
test ah, 1
jne 0x5c6b93
fstp st(0)
mov ecx, 0xff
jmp 0x5c6bc8
fcom st(1)
fnstsw ax
test ah, 0x41
jp 0x5c6ba2
fstp st(0)
xor ecx, ecx
jmp 0x5c6bc8
fnstcw word [esp + 0x10]
movzx eax, word [esp + 0x10]
fmul st(2)
or eax, 0xc00
mov dword [esp + 0x18], eax
fadd st(3)
fldcw word [esp + 0x18]
fistp qword [esp + 0x18]
mov ecx, dword [esp + 0x18]
fldcw word [esp + 0x10]
fld dword [esp + 0x68]
fcom st(4)
fnstsw ax
fstp st(4)
test ah, 1
jne 0x5c6be6
fstp st(3)
mov eax, 0xff
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x5c6c1f
fcomp st(3)
fnstsw ax
test ah, 1
jne 0x5c6bf9
fstp st(2)
xor eax, eax
fstp st(1)
fstp st(0)
jmp 0x5c6c1f
fnstcw word [esp + 0x10]
movzx eax, word [esp + 0x10]
fmulp st(2)
or eax, 0xc00
mov dword [esp + 0x18], eax
faddp st(1)
fldcw word [esp + 0x18]
fistp qword [esp + 0x18]
mov eax, dword [esp + 0x18]
fldcw word [esp + 0x10]
shl eax, 8
or eax, edi
shl eax, 8
or eax, edx
shl eax, 8
or eax, ecx
mov ecx, dword [0x70f780]
push eax
push 0x3c
call fcn.00556cf0
mov ecx, dword [0x70f780]
push 0x102
call fcn.00556dc0
mov ecx, dword [esi + 0x24]
sub ecx, dword [esi + 0x20]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x5c6c6a
call fcn.00615e0c
mov ecx, dword [esi + 0x20]
mov eax, 0xaaaaaaab
mul dword [esi + 0x10]
push 0x14
push ecx
mov ecx, dword [0x70f780]
shr edx, 1
push edx
push 4
call fcn.00556fd0
mov edi, dword [esp + 0x48]
mov ebp, dword [esp + 0x44]
add dword [esp + 0x34], 0x3c
inc ebp
mov ecx, edi
mov dword [esp + 0x44], ebp
call fcn.005bd390
cmp ebp, eax
jb 0x5c6380
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret