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

Disassembly:
sub esp, 0xc4
push ebp
push esi
mov esi, ecx
mov eax, dword [esi + 0x18]
xor ebp, ebp
cmp eax, ebp
mov dword [esp + 0x3c], esi
je 0x5c7d28
cmp dword [eax + 0x78], 4
jne 0x5c7d28
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], 0x7fffffff
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], ebp
mov byte [esp + 0x2c], 0
mov edx, dword [eax + 0x74]
mov ecx, dword [eax + 0x68]
mov eax, dword [eax + 0x70]
push ebx
push edx
push ebp
mov dword [esp + 0x58], ecx
push eax
lea ecx, [esp + 0x1c]
call fcn.005d42bc
mov ecx, dword [esi + 0x18]
mov bl, byte [ecx + 0x7e]
xor edx, edx
cmp bl, 0x21
sete dl
lea eax, [esp + 0xb4]
push eax
lea ecx, [esp + 0x14]
mov dword [esp + 0x4c], edx
call fcn.005d5e6c
mov eax, dword [esp + 0xd4]
cmp eax, ebp
jne 0x5c7995
lea eax, [esi + 0x30]
lea ecx, [esp + 0xb4]
push ecx
push eax
mov edx, ecx
push edx
call fcn.00575d0c
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x1c]
add esp, 0xc
cmp eax, ebp
mov dword [esp + 0x34], ebp
mov dword [esp + 0xc], ebp
je 0x5c79d4
cmp dword [eax + 0xc], ebp
jbe 0x5c79d4
mov ecx, dword [esi + 4]
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0xc], edx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dl, byte [eax + ecx]
inc eax
mov dword [esp + 0x14], eax
mov cl, byte [eax + ecx]
inc eax
mov dword [esp + 0x14], eax
movzx eax, cl
movzx edx, dl
mov dword [esp + 0x44], eax
mov eax, dword [esi + 0x2c]
push edi
xor edi, edi
cmp eax, ebp
mov dword [esp + 0x50], edx
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x60], ebp
mov dword [esp + 0x64], ebp
mov dword [esp + 0x68], ebp
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x70], ebp
mov dword [esp + 0x74], ebp
mov byte [esp + 0x94], 0
je 0x5c7a3b
mov eax, dword [eax + 8]
cmp eax, ebp
je 0x5c7a3b
mov eax, dword [eax + 0x3e0]
jmp 0x5c7a3d
xor eax, eax
push eax
lea ecx, [esp + 0x9c]
push ecx
call fcn.0057611c
add esp, 8
cmp edi, ebp
jne 0x5c7c26
lea ecx, [esp + 0x14]
call fcn.005d471c
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov al, byte [ecx + esi]
movzx ebx, al
inc ecx
cmp ebx, ebp
mov dword [esp + 0x18], ecx
je 0x5c7d01
mov eax, ebx
and eax, 8
mov dword [esp + 0x40], eax
je 0x5c7bd5
lea eax, [ecx + esi]
add ecx, 2
xor edx, edx
mov dword [esp + 0x18], ecx
mov dh, byte [eax + 1]
mov ecx, dword [esp + 0x54]
mov dl, byte [eax]
push edx
call fcn.005d52cc
mov edi, eax
cmp edi, ebp
mov dword [esp + 0x5c], edi
je 0x5c7d19
cmp dword [edi + 0x78], 3
jne 0x5c7d19
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
test bl, 4
je 0x5c7af1
mov eax, dword [esp + 0x4c]
push eax
lea ecx, [esp + 0xb8]
push ecx
lea ecx, [esp + 0x1c]
call fcn.005d440c
mov edx, dword [eax]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x60], edx
test bl, 1
je 0x5c7b16
lea eax, [ecx + esi]
xor edx, edx
add ecx, 2
mov dword [esp + 0x18], ecx
mov dh, byte [eax + 1]
movzx eax, byte [eax]
movsx edx, dx
or edx, eax
mov dword [esp + 0xa8], edx
xor ebp, ebp
test bl, 2
je 0x5c7b39
lea eax, [ecx + esi]
add ecx, 2
xor edx, edx
mov dword [esp + 0x18], ecx
mov dh, byte [eax + 1]
movzx eax, byte [eax]
movsx edx, dx
or edx, eax
mov dword [esp + 0xac], edx
cmp dword [esp + 0x40], ebp
je 0x5c7c0e
lea edx, [ecx + esi]
xor eax, eax
add ecx, 2
mov dword [esp + 0x18], ecx
mov ah, byte [edx + 1]
mov ebp, 0x400
mov dword [esp + 0x3c], 0x44800000
mov al, byte [edx]
mov dword [esp + 0x70], eax
cmp byte [edi + 0x7e], 0x4b
jne 0x5c7b78
mov ebp, 0x5000
mov dword [esp + 0x3c], 0x46a00000
mov edx, dword [esp + 0x44]
mov eax, dword [edx + 0x2c]
test eax, eax
je 0x5c7be6
mov eax, dword [eax + 8]
test eax, eax
je 0x5c7be6
mov edx, dword [eax + 0x3e0]
test edx, edx
je 0x5c7be6
mov ecx, edx
call fcn.005eca3c
test al, al
je 0x5c7bde
fld dword [0x5f6864]
mov eax, dword [esp + 0x70]
test eax, eax
fdiv dword [esp + 0x3c]
fild dword [esp + 0x70]
jge 0x5c7bbb
fadd dword [0x5fb11c]
mov ecx, dword [esp + 0x18]
fmulp st(1)
mov esi, dword [esp + 0x14]
fst dword [esp + 0xa4]
fstp dword [esp + 0x98]
jmp 0x5c7c0c
mov edi, dword [esp + 0x5c]
jmp 0x5c7ac4
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov eax, 0x10000
cdq
idiv ebp
mov dword [esp + 0xb0], 0
imul eax, dword [esp + 0x70]
mov dword [esp + 0xa4], eax
mov dword [esp + 0x98], eax
xor ebp, ebp
mov al, byte [ecx + esi]
inc ecx
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x14]
movzx edi, al
call fcn.005d470c
mov dword [esp + 0x6c], ebp
mov ecx, dword [esp + 0x18]
cmp ecx, ebp
jl 0x5c7d19
mov eax, dword [esp + 0x1c]
cmp eax, 0xffffffff
je 0x5c7c46
add eax, 3
cmp ecx, eax
jg 0x5c7d19
mov ecx, dword [esp + 0x50]
push ecx
lea ecx, [esp + 0x18]
call fcn.005d474c
mov edx, dword [esp + 0x48]
push edx
lea ecx, [esp + 0x18]
mov dword [esp + 0x68], eax
call fcn.005d47dc
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x10]
cmp eax, ebp
mov byte [esp + 0x94], 0
jbe 0x5c7ca0
mov esi, eax
mov eax, dword [esp + 0x38]
mov cl, byte [eax]
dec esi
inc eax
test cl, cl
mov dword [esp + 0x10], esi
mov dword [esp + 0x38], eax
mov byte [esp + 0x94], 1
jne 0x5c7ca0
mov byte [esp + 0x94], 0
lea edx, [esp + 0x78]
push edx
lea eax, [esp + 0xbc]
push eax
lea ecx, [esp + 0xa0]
push ecx
call fcn.00575d0c
mov edx, dword [esp + 0xec]
push edx
lea eax, [esp + 0x68]
push eax
call dword [esp + 0xf0]
add esp, 0x14
test al, al
je 0x5c7d19
mov ecx, dword [esp + 0x74]
mov esi, dword [esp + 0xa8]
mov eax, dword [esp + 0x68]
add esi, ecx
mov ecx, dword [esp + 0x6c]
dec edi
inc ecx
inc eax
mov dword [esp + 0xa8], esi
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x68], eax
jmp 0x5c7a4e
lea ecx, [esp + 0x14]
call fcn.005d471c
pop edi
pop ebx
pop esi
mov al, 1
pop ebp
add esp, 0xc4
ret 0xc
pop edi
pop ebx
pop esi
xor al, al
pop ebp
add esp, 0xc4
ret 0xc
pop esi
xor al, al
pop ebp
add esp, 0xc4
ret 0xc