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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x5c1494
sub esp, 0x7c
mov eax, dword [esp + 0x80]
mov dword [eax + 0x40], 0
movzx ecx, byte [eax + 0x30]
test cl, cl
je 0x5c1475
mov byte [eax + 0x30], 0
mov ecx, dword [eax + 0x28]
cmp dword [eax + 0x20], ecx
ja 0x5c13fa
mov dword [eax + 0x28], 0xffffffff
mov ecx, dword [eax + 0x40]
mov dword [esp + 0x44], ecx
mov edx, dword [eax + 0x3c]
mov ebx, dword [eax + 0x44]
mov ebp, dword [eax + 0x20]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov byte [esp + 0xc], 5
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], 0
call fcn.005c17d0
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x44]
cmp ebx, ecx
jae 0x5c1483
movzx ebp, byte [edx + ebx]
or ebp, 0x20
xchg ebp, eax
mov byte [edx + ebx], al
xchg ebp, eax
mov ebx, dword [esp + 0x80]
mov dword [ebx + 0x40], ecx
mov dword [ebx + 0x44], eax
mov ecx, dword [0x8326a0]
test ecx, ecx
jne 0x5c13eb
mov dword [ebx + 0x3c], edx
mov dword [esp], ebx
lea edi, [esp + 4]
mov dword [esp + 0x50], edi
lea esi, [esp + 0x84]
call fcn.0045b46e
call fcn.005c14a0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
movzx edx, byte [esp + 0x20]
test dl, dl
jne 0x5c1368
mov dword [esp + 0x40], ecx
lea edi, [esp + 0x68]
lea esi, [esp + 0x84]
call fcn.0045b46e
movzx ecx, byte [esp + 0x78]
test cl, cl
je 0x5c133b
xor ecx, ecx
mov byte [esp + 0x3b], cl
test cl, cl
jne 0x5c130a
mov edx, dword [esp + 0x40]
test edx, edx
sete bl
test eax, eax
xchg ebp, ebx
sete bl
xchg ebp, ebx
lea edi, [esp + 0xc]
and ebx, ebp
test bl, bl
je 0x5c1293
mov eax, dword [esp + 0x80]
mov edx, dword [eax + 0x3c]
mov ebx, dword [eax + 0x40]
mov ebp, dword [eax + 0x44]
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
lea esi, [esp + 0x84]
call fcn.0045b46e
movzx ecx, byte [esp + 0x3b]
mov byte [esp + 0x20], cl
call fcn.005c15b0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x80]
mov dword [ebx + 0x40], eax
mov dword [ebx + 0x44], ecx
mov eax, dword [0x8326a0]
test eax, eax
jne 0x5c1287
mov dword [ebx + 0x3c], edx
mov eax, dword [ebx + 0x34]
mov ecx, dword [ebx + 0x38]
mov eax, dword [eax + 0x10]
mov edx, dword [ebx + 0x3c]
mov ebp, dword [ebx + 0x40]
mov esi, dword [ebx + 0x44]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], esi
call eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
test eax, eax
je 0x5c126d
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], edx
add esp, 0x7c
ret
mov ebx, dword [esp + 0x80]
cmp dword [ebx + 0x40], ecx
je 0x5c125b
mov eax, dword [0x81bb90]
mov edx, dword [0x81bb94]
jmp 0x5c125b
lea edi, [ebx + 0x3c]
mov eax, edx
call fcn.0045ace0
jmp 0x5c1228
mov ebx, dword [esp + 0x80]
mov ebp, dword [ebx + 0x3c]
mov ecx, dword [ebx + 0x40]
mov ebx, dword [ebx + 0x44]
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
lea esi, [esp + 0x84]
call fcn.0045b46e
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
movzx eax, byte [esp + 0x3b]
mov byte [esp + 0x28], al
call fcn.005c16d0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x80]
mov dword [ebx + 0x40], eax
mov dword [ebx + 0x44], ecx
mov eax, dword [0x8326a0]
test eax, eax
jne 0x5c12fb
mov dword [ebx + 0x3c], edx
jmp 0x5c1228
lea edi, [ebx + 0x3c]
mov eax, edx
call fcn.0045ace0
jmp 0x5c1228
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
mov edi, dword [esp + 0x50]
lea esi, [esp + 0x84]
call fcn.0045b46e
call fcn.005c1f30
mov eax, dword [esp + 0x3c]
movzx ecx, byte [esp + 0x3b]
jmp 0x5c11ad
lea edi, [esp + 0x54]
lea esi, [esp + 0x84]
call fcn.0045b46e
mov ecx, dword [esp + 0x58]
add ecx, dword [esp + 0x60]
add ecx, 0x20
mov edx, dword [esp + 0x80]
cmp dword [edx + 0x20], ecx
setae cl
jmp 0x5c11a1
mov edx, dword [esp + 0x80]
mov ebx, dword [edx + 0x40]
mov dword [esp + 0x48], ebx
mov ebp, dword [edx + 0x3c]
mov esi, dword [edx + 0x44]
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], esi
mov byte [esp + 0xc], 7
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
call fcn.005c17d0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x48]
cmp ebx, ecx
jae 0x5c147c
movzx ebp, byte [eax + ebx]
or ebp, 0xffffff80
xchg ebp, ecx
mov byte [eax + ebx], cl
xchg ebp, ecx
mov ebx, dword [esp + 0x80]
mov dword [ebx + 0x40], ecx
mov dword [ebx + 0x44], edx
mov ecx, dword [0x8326a0]
test ecx, ecx
jne 0x5c13de
mov dword [ebx + 0x3c], eax
jmp 0x5c1228
lea edi, [ebx + 0x3c]
call fcn.0045ace0
jmp 0x5c1228
lea edi, [ebx + 0x3c]
mov eax, edx
call fcn.0045ace0
jmp 0x5c114d
mov edx, dword [eax + 0x40]
mov dword [esp + 0x4c], edx
mov ebx, dword [eax + 0x3c]
mov ebp, dword [eax + 0x44]
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
mov byte [esp + 0xc], 5
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], 0
call fcn.005c17d0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x4c]
cmp ebx, edx
jae 0x5c148a
movzx ebp, byte [eax + ebx]
or ebp, 0x20
xchg ebp, ecx
mov byte [eax + ebx], cl
xchg ebp, ecx
mov ebx, dword [esp + 0x80]
mov dword [ebx + 0x40], edx
mov dword [ebx + 0x44], ecx
mov ecx, dword [0x8326a0]
test ecx, ecx
jne 0x5c146b
mov dword [ebx + 0x3c], eax
mov eax, ebx
jmp 0x5c10d3
lea edi, [ebx + 0x3c]
call fcn.0045ace0
jmp 0x5c1464
mov ebx, eax
jmp 0x5c114d
mov eax, ebx
call fcn.0045ad60
mov eax, ebx
call fcn.0045ad60
mov eax, ebx
mov ecx, edx
call fcn.0045ad60
nop
call fcn.00459790
jmp fcn.005c1090