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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x595ee0
sub esp, 0x80
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0xa0]
cmp eax, ecx
jl 0x595e12
test eax, eax
je 0x595de4
test ecx, ecx
je 0x595de4
cmp ecx, 1
je 0x595d68
mov edx, dword [esp + 0x8c]
test edx, edx
jle 0x595d53
mov ebx, dword [esp + 0x98]
test ebx, ebx
jle 0x595d45
lea ebp, [edx - 1]
cmp ebp, edx
jae 0x595ed9
mov ebp, dword [esp + 0x84]
lea esi, [ebp + edx*4 - 4]
lea edi, [ebx - 1]
cmp edi, ebx
jae 0x595ed9
mov edi, dword [esp + 0x90]
lea edi, [edi + ebx*4 - 4]
cmp edi, esi
xchg esi, ebx
sete bl
xchg esi, ebx
xchg esi, eax
test al, al
xchg esi, eax
je 0x595cd8
xor edx, edx
xor ebp, ebp
mov esi, dword [0xb8c130]
cmp ecx, esi
jl 0x595bfa
mov dword [esp + 0x7c], edx
mov dword [esp + 0x38], ebp
mov dword [esp], ecx
call fcn.00595680
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x98]
cmp eax, ecx
ja 0x595ec4
mov edx, dword [esp + 0xa4]
cmp eax, edx
ja 0x595ebd
lea ebx, [eax + eax*2]
shl ebx, 1
mov ebp, dword [esp + 0xa0]
mov esi, dword [esp + 0x94]
lea edi, [esi + ebp]
cmp ebx, edi
jle 0x595bf3
mov dword [esp + 0x50], eax
mov dword [esp + 0x30], edi
mov esi, dword [esp + 0x38]
cmp ebx, esi
jg 0x595bb3
ja 0x595eb6
mov dword [esp + 0x38], esi
mov ebp, dword [esp + 0x7c]
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], esi
mov ebx, dword [esp + 0x90]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
mov edi, dword [esp + 0x9c]
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
call fcn.00594eb0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x38]
cmp eax, ecx
ja 0x595eaf
mov edx, dword [esp + 0x50]
mov ebx, edx
shl edx, 1
cmp edx, eax
ja 0x595ea8
sub ecx, edx
mov esi, ecx
neg ecx
shl ebx, 3
sar ecx, 0x1f
and ebx, ecx
mov ecx, dword [esp + 0x7c]
add ebx, ecx
mov dword [esp], ebx
sub eax, edx
mov dword [esp + 4], eax
mov dword [esp + 8], esi
call fcn.00594000
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0xa0]
cmp eax, ecx
jge 0x595ba2
mov ecx, dword [esp + 0x90]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov edx, dword [esp + 0x98]
mov dword [esp + 8], edx
call fcn.00594040
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0xa0]
cmp eax, ecx
ja 0x595ea1
mov dword [esp], 0
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov edx, dword [esp + 0xa4]
sub edx, eax
mov dword [esp + 0x44], edx
mov ebp, edx
neg edx
mov esi, eax
shl eax, 2
sar edx, 0x1f
and eax, edx
mov edx, dword [esp + 0x9c]
add eax, edx
mov dword [esp + 0x68], eax
mov dword [esp + 0x18], eax
sub ecx, esi
mov dword [esp + 0x40], ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], ebp
call fcn.005956c0
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x58], ecx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x74], edx
mov ebx, dword [esp + 0x7c]
mov dword [esp], ebx
mov ebp, dword [esp + 0x30]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0x38]
mov dword [esp + 8], esi
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
mov edi, dword [esp + 0x50]
mov dword [esp + 0x18], edi
call fcn.00595570
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0xa4]
mov dword [esp + 8], ecx
call fcn.00594040
mov eax, dword [esp + 0x14]
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x48], ecx
mov edx, dword [esp + 0xc]
mov dword [esp + 0x6c], edx
mov ebx, dword [esp + 0x50]
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0x5c]
mov edi, dword [esp + 0x58]
jmp 0x595af7
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00594040
mov eax, dword [esp + 0x14]
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x64], ecx
mov edx, dword [esp + 0xc]
mov dword [esp + 0x70], edx
mov ebx, dword [esp + 0x78]
mov dword [esp], ebx
mov ebx, dword [esp + 0x58]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x5c]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x18], ebx
mov ebp, dword [esp + 0x48]
mov dword [esp + 0x1c], ebp
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x20], esi
call fcn.005956c0
mov eax, dword [esp + 0x28]
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x74], ecx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x5c], edx
mov ebx, dword [esp + 0x7c]
mov dword [esp], ebx
mov ebp, dword [esp + 0x30]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0x38]
mov dword [esp + 8], esi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov edi, dword [esp + 0x60]
mov dword [esp + 0x18], edi
call fcn.00595570
mov eax, dword [esp + 0x74]
mov dword [esp], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x1c], ecx
mov edx, dword [esp + 0x44]
mov dword [esp + 0x20], edx
call fcn.005956c0
mov eax, dword [esp + 0x24]
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x58], ecx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x5c], edx
mov ebx, dword [esp + 0x7c]
mov dword [esp], ebx
mov ebp, dword [esp + 0x30]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0x38]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov edi, dword [esp + 0x60]
mov esi, dword [esp + 0x50]
add edi, esi
mov dword [esp + 0x64], edi
mov dword [esp + 0x18], edi
call fcn.00595570
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0x5c]
mov edi, dword [esp + 0x58]
mov eax, dword [esp + 0x94]
cmp ebx, eax
jge 0x595b5e
ja 0x595e9a
mov dword [esp + 0x78], ebp
mov dword [esp + 0x60], ebx
mov dword [esp + 0x5c], esi
mov dword [esp + 0x58], edi
sub eax, ebx
mov ecx, dword [esp + 0x98]
sub ecx, ebx
mov dword [esp + 0x54], ecx
neg ecx
shl ebx, 2
sar ecx, 0x1f
and ebx, ecx
mov ecx, dword [esp + 0x90]
add ebx, ecx
mov ecx, dword [esp + 0x50]
cmp eax, ecx
jle 0x595b53
mov eax, dword [esp + 0x54]
cmp ecx, eax
jbe 0x595999
jmp 0x595e93
mov ecx, eax
mov eax, dword [esp + 0x54]
jmp 0x595999
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 8], eax
call fcn.00594040
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov dword [esp + 0xa8], edx
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], eax
add esp, 0x80
ret
mov edx, dword [esp + 0x94]
cmp edx, ecx
jne 0x59587b
jmp 0x595b5e
lea eax, [0x7cf6e0]
mov dword [esp], eax
mov dword [esp + 4], ebx
lea eax, [ebx + 4]
mov dword [esp + 8], eax
call fcn.00439eb0
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x50]
jmp 0x5957e4
mov ebx, edi
jmp 0x5957ca
lea esi, [eax + ecx]
cmp esi, ebp
jg 0x595c98
ja 0x595ecb
mov dword [esp + 0x34], esi
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x7c], edx
mov dword [esp], edx
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
mov edi, dword [esp + 0x90]
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebx
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x20], eax
call fcn.00594930
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], eax
call fcn.00594040
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov dword [esp + 0xa8], edx
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], eax
add esp, 0x80
ret
lea edx, [0x7cf6e0]
mov dword [esp], edx
mov dword [esp + 4], esi
lea edx, [ecx + eax + 4]
mov dword [esp + 8], edx
call fcn.00439eb0
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x98]
jmp 0x595c0b
test edx, edx
jle 0x595d3a
mov esi, dword [esp + 0xa4]
test esi, esi
jle 0x595d36
lea edi, [edx - 1]
cmp edi, edx
jae 0x595ed2
lea edi, [ebp + edx*4 - 4]
lea ebx, [esi - 1]
cmp ebx, esi
jae 0x595ed2
mov ebx, dword [esp + 0x9c]
lea ebx, [ebx + esi*4 - 4]
cmp ebx, edi
sete bl
test bl, bl
je 0x595d21
mov ebx, dword [esp + 0x98]
jmp 0x595768
mov ebx, dword [esp + 0x98]
mov edx, ebp
mov ebp, dword [esp + 0x8c]
jmp 0x59576c
xor ebx, ebx
jmp 0x595d11
mov esi, dword [esp + 0xa4]
xor ebx, ebx
jmp 0x595d11
mov ebp, dword [esp + 0x84]
xor esi, esi
jmp 0x59575e
mov ebx, dword [esp + 0x98]
mov ebp, dword [esp + 0x84]
xor esi, esi
jmp 0x59575e
mov ecx, dword [esp + 0x9c]
mov ecx, dword [ecx]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp], ecx
mov ecx, dword [esp + 0x88]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x8c]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x90]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], 0
call fcn.00594790
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov dword [esp + 0xa8], edx
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], eax
add esp, 0x80
ret
mov eax, dword [esp + 0x84]
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], 0
mov eax, dword [esp + 0x8c]
mov dword [esp + 0xb0], eax
add esp, 0x80
ret
mov edx, dword [esp + 0x84]
mov dword [esp], edx
mov edx, dword [esp + 0x88]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x8c]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x9c]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x20], eax
call fcn.005956c0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], edx
add esp, 0x80
ret
call fcn.00426ad0
ud2
call fcn.00426ad0
ud2
call fcn.00426ad0
ud2
call fcn.00426ad0
ud2
call fcn.00426ad0
ud2
call fcn.00426ad0
ud2
call fcn.00426ad0
ud2
call fcn.00426ad0
ud2
call fcn.00426ad0
ud2
call fcn.00426a70
ud2
call fcn.00426a70
ud2
call fcn.0044c200
jmp fcn.005956c0