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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x592bc6
sub esp, 0x6c
mov ebx, dword [esp + 0x80]
cmp ebx, 0x102
jl 0x59296d
mov ebx, 0x102
mov ebp, dword [esp + 0x70]
test byte [ebp], al
mov esi, dword [ebp + 0xa003c]
mov edx, dword [ebp + 0xa0044]
mov eax, dword [esp + 0x74]
lea ecx, [ebx + eax]
cmp edx, ecx
jb 0x592bc0
mov edi, dword [ebp + 0xc]
cmp ebx, edi
jg 0x592998
mov edi, ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x34], edi
mov edi, dword [ebp + 0x10]
mov ebx, dword [esp + 0x7c]
cmp dword [ebp + 4], ebx
jg 0x5929af
sar edi, 2
lea ebp, [ebx + eax]
cmp ebp, ecx
jae 0x592bb9
movzx ebp, byte [esi + ebp]
cmp eax, ecx
ja 0x592bb4
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x64], esi
sub edx, eax
mov dword [esp + 0x2c], edx
neg edx
sar edx, 0x1f
and edx, eax
add edx, esi
mov dword [esp + 0x68], edx
lea edx, [eax - 0x8000]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x40], eax
mov dword [esp + 0x54], ecx
xor ecx, ecx
mov dword [esp + 0x48], ecx
xor ecx, ecx
mov byte [esp + 0x23], cl
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x54]
jmp 0x592a30
mov esi, dword [esp + 0x30]
dec esi
mov dword [esp + 0x40], ebx
mov ebx, eax
mov dword [esp + 0x48], ebp
mov eax, dword [esp + 0x74]
mov ebp, edi
mov edi, esi
mov esi, dword [esp + 0x64]
test edi, edi
jle 0x592b7b
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x40]
lea edx, [edi + ebx]
cmp edx, ecx
jae 0x592bad
add edx, esi
xchg ebp, eax
cmp byte [edx], al
xchg ebp, eax
je 0x592a64
mov edx, eax
mov eax, ebx
mov ebx, edi
mov edi, ebp
mov ebp, dword [esp + 0x48]
jmp 0x592b39
cmp edi, ecx
ja 0x592ba6
mov dword [esp + 0x44], ebx
xchg ebp, eax
mov byte [esp + 0x22], al
xchg ebp, eax
mov eax, dword [esp + 0x28]
sub eax, edi
mov ebx, eax
neg eax
sar eax, 0x1f
and eax, edi
add eax, esi
mov dword [esp], eax
sub ecx, edi
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0xc], ecx
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x10], ebx
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], ebx
call fcn.00592d50
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x44]
cmp ecx, eax
jge 0x592b1a
cmp eax, 4
jle 0x592ad0
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x74]
jmp 0x592ae4
mov edx, dword [esp + 0x74]
mov ebx, dword [esp + 0x40]
mov ebp, edx
sub edx, ebx
cmp edx, 0x1000
jg 0x592b22
mov edx, ebp
sub ebp, ebx
mov esi, dword [esp + 0x34]
cmp esi, eax
jle 0x592b66
lea edi, [eax + edx]
mov ecx, dword [esp + 0x24]
cmp edi, ecx
jae 0x592b9f
mov esi, dword [esp + 0x64]
movzx edi, byte [esi + edi]
mov dword [esp + 0x4c], eax
mov eax, 1
mov byte [esp + 0x23], al
mov eax, dword [esp + 0x4c]
jmp 0x592b39
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x74]
mov ecx, dword [esp + 0x24]
mov edx, ebp
mov esi, dword [esp + 0x64]
movzx edi, byte [esp + 0x22]
mov ebp, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x3c]
cmp ebx, edx
je 0x592b74
and ebx, 0x7fff
mov esi, dword [esp + 0x70]
mov ebx, dword [esi + ebx*4 + 0x80034]
sub ebx, dword [esi + 0xa0034]
cmp ebx, edx
jl 0x592b6d
test ebx, ebx
jge 0x592a15
jmp 0x592b6d
mov ecx, 1
jmp 0x592b86
movzx ecx, byte [esp + 0x23]
jmp 0x592b86
movzx ecx, byte [esp + 0x23]
jmp 0x592b86
mov eax, ebx
mov ebp, dword [esp + 0x48]
movzx ecx, byte [esp + 0x23]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], ebp
mov byte [esp + 0x8c], cl
add esp, 0x6c
ret
mov eax, edi
call fcn.0045e650
mov eax, edi
call fcn.0045e6b0
mov eax, edx
call fcn.0045e650
call fcn.0045e6b0
mov eax, ebp
call fcn.0045e650
call fcn.0045e690
nop
call fcn.0045d190
jmp fcn.00592940