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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x5c9b87
sub esp, 0x58
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x5c9772
mov eax, dword [esp + 0x68]
xor ecx, ecx
xor edx, edx
xor ebx, ebx
xor ebp, ebp
jmp 0x5c983c
nop
cmp eax, 0x14
jae 0x5c9b6e
mov ecx, dword [0xa7b334]
mov edx, dword [0xa7b330]
cmp eax, ecx
jae 0x5c9b69
movzx ecx, byte [edx + eax]
mov edx, dword [esp + 0x68]
cmp edx, ecx
je 0x5c97cd
lea eax, [0x769820]
mov dword [esp], eax
call fcn.0040bcc0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x28
lea ecx, [0x7cf5df]
mov dword [eax], ecx
xor ecx, ecx
lea edx, [0x844124]
mov ebx, eax
xor ebp, ebp
xor eax, eax
jmp 0x5c983c
mov dword [esp + 0x44], ecx
mov ecx, dword [0xa82cbc]
lea edx, [0x75b8a0]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.0040e8d0
mov eax, dword [esp + 0xc]
movzx ecx, byte [esp + 0x10]
mov edx, dword [eax]
mov eax, dword [eax + 4]
test cl, cl
je 0x5c980d
mov ecx, eax
xor ebx, ebx
mov ebp, edx
mov eax, dword [esp + 0x44]
xor edx, edx
jmp 0x5c983c
lea eax, [0x769820]
mov dword [esp], eax
call fcn.0040bcc0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x25
lea ecx, [0x7cdc89]
mov dword [eax], ecx
xor ecx, ecx
lea edx, [0x844124]
mov ebx, eax
xor ebp, ebp
xor eax, eax
test edx, edx
jne 0x5c99c9
mov dword [esp + 0x38], eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x50], ebp
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax]
nop
mov edx, dword [ecx + 4]
mov ebx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
call fcn.00546940
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x38]
lea edx, [ecx + eax]
lea ebx, [ecx + eax + 0xb]
mov ebp, dword [esp + 0xc]
lea esi, [ebp + 7]
sar esi, 0x1f
shr esi, 0x1d
lea ebp, [esi + ebp + 7]
sar ebp, 3
cmp ebx, ebp
jg 0x5c99ae
mov ebx, dword [esp + 0x74]
cmp ebx, ebp
jne 0x5c9993
mov dword [esp + 0x30], edx
mov dword [esp + 0x28], ebp
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
mov eax, dword [esp + 0x78]
mov dword [esp + 0xc], eax
call fcn.005ca490
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
test eax, eax
jne 0x5c9978
test edx, edx
jbe 0x5c9b60
movzx ebp, byte [ecx]
cmp edx, 1
jbe 0x5c9b54
movzx esi, byte [ecx + 1]
dec ebp
shr ebp, 0x1f
xor esi, 1
xchg esi, eax
movzx eax, al
xchg esi, eax
dec esi
shr esi, 0x1f
and ebp, esi
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x38]
mov edi, eax
sub eax, esi
cmp ebx, edi
jb 0x5c9b4b
cmp edi, eax
jb 0x5c9b44
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x54], ecx
mov esi, edi
sub edi, eax
sub ebx, eax
neg ebx
sar ebx, 0x1f
and ebx, eax
add ebx, ecx
mov edx, dword [esp + 0x68]
cmp edx, edi
je 0x5c9957
xor edx, edx
jmp 0x5c9a1f
mov dword [esp + 0x44], eax
mov edx, dword [esp + 0x64]
mov dword [esp + 0x48], eax
xor eax, eax
mov dword [esp + 0x34], eax
xor eax, eax
mov byte [esp + 0x27], al
mov eax, dword [esp + 0x48]
jmp 0x5c9a00
mov eax, dword [0xa83e10]
mov ecx, dword [0xa83e14]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ecx
add esp, 0x58
ret
mov eax, dword [0xa83e10]
mov ecx, dword [0xa83e14]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ecx
add esp, 0x58
ret
mov eax, dword [0xa83e10]
mov ecx, dword [0xa83e14]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ecx
add esp, 0x58
ret
mov dword [esp + 0x7c], edx
mov dword [esp + 0x80], ebx
add esp, 0x58
ret
lea ecx, [esi + 1]
movzx eax, byte [esi + ebx]
movzx esi, byte [esi + edx]
xor esi, eax
movzx eax, byte [esp + 0x27]
or eax, esi
mov esi, dword [esp + 0x28]
mov dword [esp + 0x34], ecx
mov byte [esp + 0x27], al
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x34]
cmp esi, edi
jge 0x5c9a0f
jb 0x5c99d8
jmp 0x5c9b3b
movzx edx, byte [esp + 0x27]
movzx edx, dl
dec edx
shr edx, 0x1f
mov esi, dword [esp + 0x28]
and edx, ebp
mov ebx, dword [esp + 0x30]
sub esi, ebx
cmp esi, eax
ja 0x5c9b32
sub eax, esi
mov ebx, dword [esp + 0x40]
sub ebx, esi
neg ebx
sar ebx, 0x1f
and ebx, esi
add ebx, ecx
mov ebp, dword [esp + 0x2c]
cmp ebp, eax
je 0x5c9a4c
xor ebx, ebx
jmp 0x5c9a9e
mov dword [esp + 0x44], esi
mov ebp, dword [esp + 0x50]
xor edi, edi
xor edi, edi
xchg edi, eax
mov byte [esp + 0x26], al
xchg edi, eax
xor edi, edi
jmp 0x5c9a87
lea ecx, [edi + 1]
movzx esi, byte [edi + ebx]
movzx edi, byte [ebp + edi]
xor edi, esi
movzx esi, byte [esp + 0x26]
or esi, edi
mov edi, ecx
xchg esi, eax
mov byte [esp + 0x26], al
xchg esi, eax
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x44]
cmp edi, eax
jge 0x5c9a92
jb 0x5c9a62
jmp 0x5c9b29
movzx ebx, byte [esp + 0x26]
movzx ebx, bl
dec ebx
shr ebx, 0x1f
and ebx, edx
lea eax, [esi - 1]
mov edx, dword [esp + 0x3c]
cmp edx, eax
jbe 0x5c9b22
movzx ebp, byte [esi + ecx - 1]
dec ebp
shr ebp, 0x1f
and ebx, ebp
mov ebp, 2
jmp 0x5c9ad8
lea esi, [ebp + 1]
movzx edi, byte [ebp + ecx]
xchg edi, ebx
not ebx
xchg edi, ebx
xchg edi, eax
movzx eax, al
xchg edi, eax
dec edi
shr edi, 0x1f
and ebx, edi
mov ebp, esi
cmp ebp, eax
jge 0x5c9ae2
cmp ebp, edx
jb 0x5c9abd
jmp 0x5c9b19
cmp ebx, 1
je 0x5c9b02
mov eax, dword [0xa83e10]
mov ecx, dword [0xa83e14]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ecx
add esp, 0x58
ret
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
add esp, 0x58
ret
mov eax, ebp
mov ecx, edx
call fcn.00464430
mov ecx, edx
call fcn.00464430
mov ecx, eax
mov eax, edi
call fcn.00464430
mov ecx, eax
mov eax, esi
call fcn.00464490
mov eax, esi
mov ecx, edi
call fcn.00464430
mov ecx, edi
call fcn.00464490
mov ecx, edi
mov edx, ebx
call fcn.00464470
mov eax, 1
mov ecx, eax
call fcn.00464430
xor eax, eax
mov ecx, eax
call fcn.00464430
call fcn.00464440
lea eax, [0x758c80]
mov dword [esp], eax
lea eax, [0x8433dc]
mov dword [esp + 4], eax
call fcn.00436340
nop
call fcn.00462fa0
jmp fcn.005c9740