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

Disassembly:
push ebx
mov ebx, esp
and esp, 0xfffffff8
push ebp
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x8d991a
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x6c
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x5c], esi
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x18], ecx
push eax
push dword [ebx + 8]
mov dword [ebp - 0x3c], eax
call fcn.005c6a78
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x18]
mov dword [eax], 0xb0c1bc
mov dword [eax + 0xe0], 0
mov edx, dword [0x9c210c]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x3c]
mov ecx, dword [edx]
mov dword [eax + 0xc4], ecx
mov esi, dword [edx + 4]
mov dword [eax + 0xc8], esi
mov edi, dword [edx + 8]
mov dword [eax + 0xcc], edi
mov edx, dword [edx + 0x40]
test dl, 1
je 0x5c62d3
mov edi, dword [ebp - 0x3c]
mov edx, dword [edi + 0x2c]
mov dword [eax + 0xd0], edx
mov esi, dword [edi + 0x30]
mov dword [eax + 0xd4], esi
mov ecx, dword [edi + 0x34]
mov dword [eax + 0xd8], ecx
mov ecx, dword [ebp - 0x18]
add ecx, 0xd0
call fcn.0082df08
fstp st(0)
mov eax, dword [ebp - 0x18]
fld dword [eax + 0xd0]
fmul st(0)
fld dword [eax + 0xd8]
fmul st(0)
faddp st(1)
push edi
fstp dword [esp]
call fcn.0082dc9c
mov edx, dword [ebp - 0x18]
fld dword [edx + 0xd4]
fst dword [ebp - 0x50]
fxch st(1)
fpatan
fmul qword [0x92bc60]
fdiv qword [0x92bc58]
fld dword [edx + 0xd8]
fxch st(1)
fnstcw word [ebp - 0x78]
movzx eax, word [ebp - 0x78]
or eax, 0xc00
mov dword [ebp - 0x70], eax
fldcw word [ebp - 0x70]
fistp dword [ebp - 0x68]
fldcw word [ebp - 0x78]
mov eax, dword [ebp - 0x68]
fld dword [edx + 0xd0]
fst dword [ebp - 0x4c]
fxch st(1)
fst dword [ebp - 0x48]
neg eax
mov dword [edx + 0xf0], eax
fpatan
fmul qword [0x92bc60]
fdiv qword [0x92bc58]
fnstcw word [ebp - 0x78]
movzx eax, word [ebp - 0x78]
or eax, 0xc00
mov dword [ebp - 0x70], eax
fldcw word [ebp - 0x70]
fistp dword [ebp - 0x68]
fldcw word [ebp - 0x78]
mov esi, dword [ebp - 0x68]
mov dword [edx + 0xf4], esi
mov dword [edx + 0xf8], 0
jmp 0x5c6339
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax + 0x28]
call fcn.0082dcbc
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x3c]
fstp dword [eax + 0xd0]
mov dword [eax + 0xd4], 0
mov ecx, dword [edx + 0x28]
call fcn.0082ddd8
fstp dword [ebp - 0x48]
mov edx, dword [ebp - 0x18]
fld dword [ebp - 0x48]
mov eax, dword [ebp - 0x3c]
fld dword [edx + 0xd4]
fld dword [edx + 0xd0]
fxch st(2)
fstp dword [edx + 0xd8]
fstp dword [ebp - 0x50]
fstp dword [ebp - 0x4c]
xor ecx, ecx
mov dword [edx + 0xf0], ecx
mov esi, dword [eax + 0x28]
mov dword [edx + 0xf4], esi
mov dword [edx + 0xf8], ecx
fld dword [ebp - 0x4c]
mov eax, dword [ebp - 0x3c]
fmul dword [eax + 0x38]
fld dword [ebp - 0x50]
fld dword [ebp - 0x48]
fxch st(2)
fstp dword [edx + 0xd0]
fmul dword [eax + 0x38]
fstp dword [edx + 0xd4]
fmul dword [eax + 0x38]
mov dword [edx + 0x30], esi
fstp dword [edx + 0xd8]
fld dword [eax + 0x3c]
fmul st(0)
fstp dword [edx + 0xdc]
mov ecx, dword [eax + 0x44]
mov dword [edx + 0xe8], ecx
mov esi, dword [eax + 0x48]
mov dword [edx + 0xec], esi
mov edi, dword [eax + 0x4c]
mov dword [edx + 0x108], edi
mov ecx, dword [eax + 0x4c]
mov dword [edx + 0x10c], ecx
mov ecx, dword [eax + 0x4c]
mov dword [edx + 0x110], ecx
mov ecx, dword [eax + 0x50]
mov dword [edx + 0xfc], ecx
mov ecx, dword [eax + 0x54]
mov dword [edx + 0x100], ecx
mov ecx, dword [eax + 0x58]
mov dword [edx + 0x104], ecx
mov dword [edx + 0x120], 0x3f800000
xor ecx, ecx
mov dword [edx + 0x114], ecx
mov dword [edx + 0x118], ecx
mov dword [edx + 0x124], 0x3f800000
mov dword [edx + 0x11c], ecx
mov dword [edx + 0xe0], ecx
mov dword [edx + 0x128], 0x3f800000
mov eax, dword [eax + 0x40]
test al, 2
jne 0x5c6406
mov dword [edx + 0x12c], 0
jmp 0x5c64bc
mov edi, dword [0x92bc44]
mov ecx, dword [0x92bc48]
mov eax, dword [0x92bc4c]
mov esi, dword [ebp - 0x3c]
fld dword [esi + 0x64]
fld dword [0x92bc78]
fmul st(1), st(0)
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x30], ecx
push edx
mov dword [ebp - 0x2c], eax
mov eax, dword [0x92bc50]
lea ecx, [edx + 0x24]
mov dword [ebp - 0x28], eax
mov eax, dword [esi + 0x5c]
mov dword [ebp - 0x38], eax
fxch st(1)
fnstcw word [ebp - 0x78]
movzx eax, word [ebp - 0x78]
or eax, 0xc00
mov dword [ebp - 0x70], eax
fldcw word [ebp - 0x70]
fistp qword [ebp - 0x68]
fldcw word [ebp - 0x78]
mov eax, dword [ebp - 0x68]
fld dword [esi + 0x68]
fmul st(1)
mov byte [ebp - 0x2f], al
fnstcw word [ebp - 0x78]
movzx eax, word [ebp - 0x78]
or eax, 0xc00
mov dword [ebp - 0x70], eax
fldcw word [ebp - 0x70]
fistp qword [ebp - 0x68]
fldcw word [ebp - 0x78]
fld dword [esi + 0x6c]
fmulp st(1)
mov eax, dword [ebp - 0x68]
mov byte [ebp - 0x2e], al
fnstcw word [ebp - 0x78]
movzx eax, word [ebp - 0x78]
or eax, 0xc00
mov dword [ebp - 0x70], eax
fldcw word [ebp - 0x70]
fistp qword [ebp - 0x68]
fldcw word [ebp - 0x78]
mov eax, dword [ebp - 0x68]
mov byte [ebp - 0x2d], al
lea eax, [ebp - 0x38]
push eax
push ecx
call fcn.005dd7e8
add esp, 0xc
mov edx, dword [ebp - 0x18]
mov dword [edx + 0x12c], eax
mov edi, dword [ebp - 0x3c]
mov eax, dword [edi + 0x70]
mov dword [edx + 0x138], eax
mov ecx, dword [edi + 0x74]
mov dword [edx + 0x13c], ecx
mov esi, dword [edi + 0x40]
mov dword [edx + 0xe4], esi
mov edx, dword [edi + 0x40]
test edx, 0x800
je 0x5c662f
call fcn.007b8cec
mov eax, dword [ebp - 0x18]
add eax, 0x1c
push eax
call fcn.007b8d60
pop ecx
mov edx, dword [0xaae15c]
xor esi, esi
test edx, edx
je 0x5c68f8
lea eax, [esi + esi]
mov dword [ebp - 0x3c], eax
lea ecx, [eax + eax]
mov eax, dword [ebp - 0x18]
lea edi, [ecx + ecx + 0xaad660]
mov ecx, dword [eax + 0xa0]
mov dword [ebp - 0x44], edi
cmp ecx, 8
jge 0x5c65eb
mov ecx, dword [ebp - 0x3c]
mov edi, dword [ecx*4 + 0xaad660]
movzx ecx, word [edi + 0x1c]
movzx eax, word [eax + 0xa8]
cmp ecx, eax
je 0x5c65eb
mov eax, 1
mov dword [ebp - 0x58], eax
call fcn.00687c48
test eax, eax
je 0x5c656d
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax*4 + 0xaad660]
mov edx, dword [ecx + 0x30]
jmp 0x5c658c
mov ecx, dword [ebp - 0x3c]
mov ecx, dword [ecx*4 + 0xaad660]
mov edx, dword [ecx + 0x30]
mov eax, edx
and eax, 0x60000000
cmp eax, 0x20000000
je 0x5c69e5
test edx, 0x4000000
je 0x5c659c
mov edx, dword [0xaae15c]
jmp 0x5c65eb
mov edx, dword [ebp - 0x3c]
mov edi, dword [edx*4 + 0xaad664]
mov eax, dword [ecx + 0xa4]
mov dword [ebp - 0x54], edi
lea edx, [edi + edi]
add edx, edx
sub edx, edi
add edx, edx
add edx, edx
sub edx, edi
mov eax, dword [eax + edx*4 + 0x18]
test eax, 0x2000000
je 0x5c65cf
mov edx, dword [0xaae15c]
jmp 0x5c65eb
test eax, 0x1000
je 0x5c65de
mov edx, dword [0xaae15c]
jmp 0x5c65eb
test eax, 0x80
je 0x5c65fb
mov edx, dword [0xaae15c]
add esi, 1
cmp esi, edx
jne 0x5c650b
jmp 0x5c68f8
mov eax, dword [ebp - 0x58]
test eax, eax
je 0x5c69da
mov edx, dword [ebp - 0x18]
lea eax, [edx + 0x60]
mov edx, dword [edx + 0xa0]
test edx, edx
je 0x5c6947
cmp ecx, dword [eax]
je 0x5c69c3
add eax, 8
add edx, 0xffffffff
jne 0x5c661a
jmp 0x5c6947
call fcn.007b8cec
mov eax, dword [ebp - 0x18]
add eax, 0x1c
push eax
call fcn.007b976c
pop ecx
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0xc0]
test eax, eax
je 0x5c665b
add edx, 0x1c
push edx
call fcn.007b8d60
pop ecx
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0xbc]
test eax, eax
je 0x5c666f
add edx, 0x1c
push edx
call fcn.007b9788
pop ecx
mov edx, dword [0xaae15c]
xor esi, esi
test edx, edx
je 0x5c6a18
lea eax, [esi + esi]
mov dword [ebp - 0x40], eax
lea ecx, [eax + eax]
mov eax, dword [ebp - 0x18]
lea edi, [ecx + ecx + 0xaad660]
mov ecx, dword [eax + 0xa0]
mov dword [ebp - 0x44], edi
cmp ecx, 8
jge 0x5c675f
mov ecx, dword [ebp - 0x40]
mov edi, dword [ecx*4 + 0xaad660]
movzx ecx, word [edi + 0x1c]
movzx eax, word [eax + 0xa8]
cmp ecx, eax
je 0x5c675f
mov eax, 1
mov dword [ebp - 0x58], eax
call fcn.00687c48
test eax, eax
je 0x5c66e1
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax*4 + 0xaad660]
mov edx, dword [ecx + 0x30]
jmp 0x5c6700
mov ecx, dword [ebp - 0x40]
mov ecx, dword [ecx*4 + 0xaad660]
mov edx, dword [ecx + 0x30]
mov eax, edx
and eax, 0x60000000
cmp eax, 0x20000000
je 0x5c6a44
test edx, 0x4000000
je 0x5c6710
mov edx, dword [0xaae15c]
jmp 0x5c675f
mov edx, dword [ebp - 0x40]
mov edi, dword [edx*4 + 0xaad664]
mov eax, dword [ecx + 0xa4]
mov dword [ebp - 0x54], edi
lea edx, [edi + edi]
add edx, edx
sub edx, edi
add edx, edx
add edx, edx
sub edx, edi
mov eax, dword [eax + edx*4 + 0x18]
test eax, 0x2000000
je 0x5c6743
mov edx, dword [0xaae15c]
jmp 0x5c675f
test eax, 0x1000
je 0x5c6752
mov edx, dword [0xaae15c]
jmp 0x5c675f
test eax, 0x80
je 0x5c676f
mov edx, dword [0xaae15c]
add esi, 1
cmp esi, edx
jne 0x5c667f
jmp 0x5c6a18
mov eax, dword [ebp - 0x58]
test eax, eax
je 0x5c6a39
mov edx, dword [ebp - 0x18]
lea eax, [edx + 0x60]
mov edx, dword [edx + 0xa0]
test edx, edx
je 0x5c679a
cmp ecx, dword [eax]
je 0x5c6a22
add eax, 8
add edx, 0xffffffff
jne 0x5c678a
movzx edx, word [ecx + 0x96]
cmp edx, 1
jne 0x5c67ad
mov edx, 1
jmp 0x5c67af
xor edx, edx
test edx, edx
je 0x5c67f4
mov edx, dword [ebp - 0x40]
mov dword [eax], ecx
mov edi, dword [edx*4 + 0xaad664]
mov ecx, dword [ebp - 0x18]
mov dword [eax + 4], edi
mov edx, dword [ecx]
mov eax, dword [ebp - 0x44]
add dword [ecx + 0xa0], 1
push eax
call dword [edx + 0x10]
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0xa4]
add eax, 0xffffffff
mov dword [edx + 0xa4], eax
je 0x5c67ff
mov edx, dword [0xaae15c]
jmp 0x5c675f
mov edx, dword [0xaae15c]
jmp 0x5c675f
movzx eax, word [edx + 8]
or eax, 0xffff0001
mov word [edx + 8], ax
call fcn.007b8cec
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x78]
cmp eax, 0xffffffff
je 0x5c686b
mov edx, dword [ebp - 0x18]
push eax
add edx, 0x24
push edx
call fcn.00509590
mov edx, eax
add esp, 8
mov eax, dword [ebp - 0x18]
mov dword [eax + 0x130], edx
test edx, edx
je 0x5c6878
mov eax, dword [0x9c2100]
mov esi, dword [0x9c2104]
mov edi, dword [0x9c2108]
mov ecx, dword [ebp - 0x3c]
add eax, dword [ecx + 0x28]
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x24], eax
lea ecx, [ebp - 0x24]
push ecx
mov ecx, edx
call fcn.00508dd0
mov eax, dword [ebp - 0x18]
jmp 0x5c6878
mov eax, dword [ebp - 0x18]
mov dword [eax + 0x130], 0
mov edx, dword [ebp - 0x3c]
mov edx, dword [edx + 0x7c]
cmp edx, 0xffffffff
je 0x5c689d
push edx
add eax, 0x24
push eax
call fcn.00509590
mov edx, eax
add esp, 8
mov eax, dword [ebp - 0x18]
mov dword [eax + 0x134], edx
jmp 0x5c68a7
mov dword [eax + 0x134], 0
mov edx, dword [ebp - 0x3c]
mov ecx, dword [edx + 0x40]
test cl, 0x10
jne 0x5c68be
mov dword [eax + 0x140], 0
jmp 0x5c68df
push 0x2000
push 0x19e
add eax, 0x24
push eax
call fcn.0050981c
mov edx, eax
add esp, 0xc
mov eax, dword [ebp - 0x18]
mov dword [eax + 0x140], edx
mov edi, dword [ebp - 0x60]
mov esi, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 8
call fcn.007b8cec
mov eax, dword [ebp - 0x18]
mov esi, dword [eax + 0x138]
test esi, esi
je 0x5c6923
lea ecx, [eax + 0x24]
lea edx, [eax + 0xd0]
push edx
push ecx
push dword [eax + 0xac]
call esi
add esp, 0xc
mov eax, dword [ebp - 0x18]
movzx ecx, word [eax + 8]
xor edx, edx
mov dword [eax + 0x130], edx
mov dword [eax + 0x134], edx
mov dword [eax + 0x140], edx
or ecx, 0xffff0011
mov word [eax + 8], cx
jmp 0x5c68df
movzx edx, word [ecx + 0x96]
cmp edx, 1
jne 0x5c695a
mov edx, 1
jmp 0x5c695c
xor edx, edx
test edx, edx
je 0x5c69a1
mov edx, dword [ebp - 0x3c]
mov dword [eax], ecx
mov edi, dword [edx*4 + 0xaad664]
mov ecx, dword [ebp - 0x18]
mov dword [eax + 4], edi
mov edx, dword [ecx]
mov eax, dword [ebp - 0x44]
add dword [ecx + 0xa0], 1
push eax
call dword [edx + 0x10]
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0xa4]
add eax, 0xffffffff
mov dword [edx + 0xa4], eax
je 0x5c69ac
mov edx, dword [0xaae15c]
jmp 0x5c65eb
mov edx, dword [0xaae15c]
jmp 0x5c65eb
movzx eax, word [edx + 8]
or eax, 0xffff0001
mov word [edx + 8], ax
call fcn.007b8cec
jmp 0x5c68fd
mov edi, dword [ebp - 0x54]
cmp edi, dword [eax + 4]
jne 0x5c6622
mov edx, dword [0xaae15c]
jmp 0x5c65eb
mov edx, dword [0xaae15c]
jmp 0x5c65eb
call fcn.007ba980
mov ecx, dword [ebp - 0x3c]
mov ecx, dword [ecx*4 + 0xaad660]
mov edx, dword [ebp - 0x18]
movsx eax, ax
cmp ax, word [edx + 0xaa]
je 0x5c6a10
mov edx, dword [ecx + 0x30]
xor eax, eax
mov dword [ebp - 0x58], eax
jmp 0x5c658c
mov edx, dword [ecx + 0x30]
jmp 0x5c658c
call fcn.007b8cec
jmp 0x5c6811
mov edi, dword [ebp - 0x54]
cmp edi, dword [eax + 4]
jne 0x5c6792
mov edx, dword [0xaae15c]
jmp 0x5c675f
mov edx, dword [0xaae15c]
jmp 0x5c675f
call fcn.007ba980
mov ecx, dword [ebp - 0x40]
mov ecx, dword [ecx*4 + 0xaad660]
mov edx, dword [ebp - 0x18]
movsx eax, ax
cmp ax, word [edx + 0xaa]
je 0x5c6a6f
mov edx, dword [ecx + 0x30]
xor eax, eax
mov dword [ebp - 0x58], eax
jmp 0x5c6700
mov edx, dword [ecx + 0x30]
jmp 0x5c6700