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

Disassembly:
mov ecx, dword [0x84873c]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x5966e6
sub esp, 0x60
mov edx, dword [esp + 0x68]
test edx, edx
jbe 0x5966dc
mov ebx, dword [esp + 0x64]
mov ebp, dword [ebx]
lea ebp, [ebp + ebp*4]
cmp edx, 1
jbe 0x5966d0
shl ebp, 3
add ebp, dword [ebx + 4]
mov dword [esp + 0x50], ebp
mov eax, ebp
sar ebp, 0x1f
test ebp, ebp
xchg esi, ebx
sete bl
xchg esi, ebx
test eax, eax
xchg edi, ebx
sete bl
xchg edi, ebx
and edi, esi
xchg edi, eax
test al, al
xchg edi, eax
je 0x5963e6
mov edi, 1
jmp 0x59642f
mov ecx, ebp
mov esi, eax
xor edi, edi
jmp 0x596408
shr eax, 7
mov edx, ebp
shl edx, 0x19
or eax, edx
sar ebp, 7
inc edi
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x64]
mov esi, dword [esp + 0x50]
test ebp, ebp
setg bl
sete dl
test eax, eax
xchg esi, ebx
seta bl
xchg esi, ebx
and esi, edx
or ebx, esi
test bl, bl
jne 0x5963ee
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x64]
mov ebp, ecx
mov dword [esp + 0x30], ebp
lea esi, [edi - 1]
mov edi, dword [esp + 0x70]
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x54], eax
xor eax, eax
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x54]
jmp 0x59646d
mov byte [eax + edi - 1], dl
dec esi
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x64]
mov ecx, ebp
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x50]
mov ebp, dword [esp + 0x30]
test esi, esi
jl 0x596534
mov dword [esp + 0x48], ecx
lea ebx, [esi + esi*2]
lea edx, [esi + ebx*2 - 0x20]
mov dword [esp + 0x4c], edx
neg edx
mov ecx, edx
shl ebp, cl
lea ebx, [esi + ebx*2]
mov ecx, ebx
shr eax, cl
shr ecx, 5
cmp ecx, 1
sbb ecx, ecx
xor ecx, 0xffffffff
cmp ebx, 0x20
sbb ebx, ebx
and eax, ebx
cmp edx, 0x20
sbb edx, edx
and edx, ebp
or eax, edx
mov edx, dword [esp + 0x4c]
cmp edx, 0x20
sbb ebx, ebx
not ebx
or ebx, edx
mov edx, ecx
mov ecx, ebx
mov ebp, dword [esp + 0x30]
mov ebx, ebp
sar ebp, cl
and ebp, edx
or eax, ebp
mov edx, eax
and eax, 0x7f
test esi, esi
je 0x5964d7
or edx, 0xffffff80
jmp 0x5964d9
mov edx, eax
mov eax, dword [esp + 0x44]
inc eax
mov ebp, dword [esp + 0x48]
cmp ebp, eax
jae 0x59644e
mov dword [esp + 0x38], esi
mov byte [esp + 0x23], dl
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x64c660]
mov dword [esp + 0x10], eax
call fcn.0044fab0
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
movzx edx, byte [esp + 0x23]
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x38]
mov ebp, ecx
jmp 0x59644e
mov eax, dword [esp + 0x44]
mov ebp, 2
jmp 0x59654e
mov esi, dword [esp + 0x3c]
lea ebp, [esi + 1]
mov ebx, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
cmp edx, ebp
jle 0x5965a8
mov dword [esp + 0x3c], ebp
mov esi, dword [ebx + ebp*4]
mov dword [esp + 0x50], esi
sar esi, 0x1f
mov dword [esp + 0x2c], esi
mov ebx, dword [esp + 0x50]
test ebx, ebx
sete dl
test esi, esi
xchg ebp, ebx
sete bl
xchg ebp, ebx
and edx, ebp
test dl, dl
je 0x596583
mov edx, 1
jmp 0x5965a5
mov dword [esp + 0x40], eax
mov edx, esi
mov ebp, ebx
xor edx, edx
mov dword [esp + 0x28], edx
mov edx, esi
jmp 0x5965ca
mov eax, dword [esp + 0x40]
mov ebx, dword [esp + 0x50]
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
dec edx
jmp 0x5965f6
add esp, 0x60
ret
shr ebx, 7
mov eax, esi
shl eax, 0x19
or ebx, eax
sar esi, 7
mov eax, dword [esp + 0x28]
inc eax
mov edx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x50]
mov dword [esp + 0x28], eax
test esi, esi
xchg ebp, ebx
sete bl
xchg ebp, ebx
setg dl
test ebx, ebx
seta al
and eax, ebp
or edx, eax
test dl, dl
jne 0x5965ac
jmp 0x596595
xchg ebp, ebx
mov byte [eax + edi - 1], bl
xchg ebp, ebx
dec edx
mov ebp, dword [esp + 0x50]
mov ecx, ebx
mov ebx, ebp
test edx, edx
jl 0x59653f
mov dword [esp + 0x24], ecx
mov dword [esp + 0x5c], edi
lea ebp, [edx + edx*2]
lea edi, [edx + ebp*2 - 0x20]
mov dword [esp + 0x4c], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
mov ecx, edi
shl esi, cl
lea ebp, [edx + ebp*2]
mov ecx, ebp
shr ebx, cl
shr ecx, 5
cmp ecx, 1
sbb ecx, ecx
xor ecx, 0xffffffff
cmp edi, 0x20
sbb edi, edi
and esi, edi
cmp ebp, 0x20
sbb ebp, ebp
and ebx, ebp
or ebx, esi
mov ebp, dword [esp + 0x4c]
cmp ebp, 0x20
sbb esi, esi
xchg esi, ebx
not ebx
xchg esi, ebx
or esi, ebp
mov ebp, ecx
mov ecx, esi
mov edi, dword [esp + 0x2c]
mov esi, edi
sar edi, cl
and edi, ebp
or ebx, edi
mov ebp, ebx
and ebx, 0x7f
test edx, edx
je 0x59666c
or ebp, 0xffffff80
jmp 0x59666e
mov ebp, ebx
inc eax
mov ebx, dword [esp + 0x24]
cmp ebx, eax
jb 0x596680
mov edi, dword [esp + 0x5c]
jmp 0x5965e5
mov dword [esp + 0x34], edx
xchg ebp, eax
mov byte [esp + 0x22], al
xchg ebp, eax
mov ecx, dword [esp + 0x5c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x64c660]
mov dword [esp + 0x10], eax
call fcn.0044fab0
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x34]
movzx ebp, byte [esp + 0x22]
mov esi, dword [esp + 0x2c]
mov ebx, ecx
jmp 0x5965e5
mov eax, 1
mov ecx, eax
call fcn.0046a670
xor eax, eax
mov ecx, eax
call fcn.0046a670
nop
call fcn.00469200
jmp fcn.00596380