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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x3c]
cmp eax, dword [ecx + 8]
jbe 0x595725
sub esp, 0xbc
mov ecx, dword [0x7b5894]
mov edx, dword [str._n_____BEGIN]
mov ebx, dword [0x7b5898]
cmp ecx, 1
jb 0x59571a
dec ebx
neg ebx
sar ebx, 0x1f
and ebx, 1
add edx, ebx
lea ebx, [ecx - 1]
mov ecx, dword [esp + 0xc4]
cmp ecx, ebx
jge 0x594bf8
xor eax, eax
jmp 0x594c1b
mov eax, dword [esp + 0xc0]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.004025e0
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0xc4]
test al, al
je 0x594c51
mov edx, dword [0x7b5894]
lea eax, [edx - 1]
cmp ecx, eax
jb 0x595715
mov ebx, dword [esp + 0xc8]
sub ebx, edx
inc ebx
mov esi, ebx
neg ebx
sar ebx, 0x1f
and ebx, eax
sub ecx, edx
mov edx, dword [esp + 0xc0]
add ebx, edx
inc ecx
jmp 0x594cac
mov eax, dword [str._n_____BEGIN]
mov edx, dword [0x7b5894]
mov ebx, dword [0x7b5898]
mov ebp, dword [esp + 0xc0]
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov esi, dword [esp + 0xc8]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ebx
call fcn.004e5cc0
movzx eax, byte [esp + 0x30]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
test al, al
je 0x594e95
mov esi, ebx
mov ebx, ecx
mov ecx, edx
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
call fcn.00594990
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [0x7b5884]
mov ebx, dword [0x7b5880]
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x7c], ebp
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0xc]
mov ebp, dword [esp + 0x14]
cmp esi, edx
jl 0x594e2d
mov dword [esp + 0x40], esi
mov dword [esp + 0x8c], ebx
sub esi, edx
mov ebx, dword [esp + 0x40]
cmp ebx, esi
jb 0x59570c
mov dword [esp + 0xb8], eax
mov dword [esp + 0x78], ecx
mov dword [esp + 0x84], edi
mov dword [esp + 0x44], ebp
sub ebx, esi
sub ebp, esi
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, esi
add ebp, edi
cmp edx, ebx
je 0x594d34
xor edx, edx
jmp 0x594d64
mov dword [esp], ebp
mov eax, dword [esp + 0x8c]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.004025e0
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0x78]
mov edi, dword [esp + 0x84]
mov edx, eax
mov eax, dword [esp + 0xb8]
test dl, dl
je 0x594e2d
mov ebx, dword [0x7b5884]
mov ebp, dword [esp + 0x40]
sub ebp, ebx
mov edx, dword [esp + 0x44]
cmp edx, ebp
jb 0x595705
mov dword [esp + 0x40], ebp
call fcn.0040bf30
mov eax, dword [esp]
mov dword [esp + 0xb4], eax
lea ecx, [0x622de0]
mov dword [esp], ecx
call fcn.0040b460
mov eax, dword [esp + 4]
mov dword [esp + 0xb0], eax
mov ecx, dword [0x7e0970]
test ecx, ecx
jne 0x594dc6
mov ecx, dword [esp + 0xb4]
mov dword [eax + 8], ecx
jmp 0x594dd5
lea edi, [eax + 8]
mov eax, dword [esp + 0xb4]
call fcn.0045e4b0
mov dword [esp], 0
mov eax, dword [esp + 0x84]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x40]
mov dword [esp + 8], ecx
call fcn.0044af00
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0xb0]
mov dword [edi + 4], ecx
mov ecx, dword [0x7e0970]
test ecx, ecx
jne 0x594e14
mov dword [edi], eax
jmp 0x594e19
call fcn.0045e4b0
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0xb8]
jmp 0x594ee7
mov edx, dword [esp + 0xc0]
mov dword [esp], edx
mov edx, dword [esp + 0xc4]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xc8]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x14], eax
call fcn.00595730
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd8], edx
add esp, 0xbc
ret
mov dword [esp + 0xcc], 0
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0xd8], eax
add esp, 0xbc
ret
mov edi, dword [esp + 0xb0]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x98]
test eax, eax
je 0x595699
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], eax
mov dword [esp + 0x90], edx
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00594990
mov eax, dword [esp + 0x18]
mov dword [esp + 0x98], eax
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x58], ecx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x5c], edx
mov ebx, dword [esp + 0xc]
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov edi, dword [0x7b5860]
mov eax, dword [0x7b5864]
mov ecx, dword [0x7b5868]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
call fcn.004e5cc0
movzx eax, byte [esp + 0x30]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
test al, al
je 0x595095
mov dword [esp + 0x3c], edi
mov dword [esp + 0x80], ecx
mov dword [esp + 0x38], esi
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
call fcn.004e5430
mov eax, dword [esp + 0xc]
mov dword [esp + 0x9c], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x64], ecx
mov edx, dword [esp + 0x80]
mov dword [esp], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 8], edx
call fcn.004e5430
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov dword [esp], 0
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.0044af00
mov eax, dword [esp + 0xb0]
mov ecx, dword [eax + 8]
mov dword [esp + 0xac], ecx
mov edx, dword [esp + 0xc]
mov dword [esp + 0xa8], edx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x7c], ebx
mov dword [esp], 0
mov ebp, dword [esp + 0x9c]
mov dword [esp + 4], ebp
mov ebp, dword [esp + 0x64]
mov dword [esp + 8], ebp
call fcn.0044af00
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
lea edx, [0x613dc0]
mov dword [esp], edx
mov ebx, dword [esp + 0xac]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
call fcn.0040f4b0
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x7c]
mov dword [edi + 4], eax
mov eax, dword [0x7e0970]
test eax, eax
jne 0x595084
mov eax, dword [esp + 0xa8]
mov dword [edi], eax
jmp 0x594ed1
mov eax, dword [esp + 0xa8]
call fcn.0045e4b0
jmp 0x594ed1
mov edx, dword [esp + 0xb0]
mov ebx, dword [edx + 8]
test ebx, ebx
je 0x5950a7
mov ebx, dword [ebx]
jmp 0x5950a9
xor ebx, ebx
test ebx, ebx
jne 0x59511c
mov ecx, dword [0x7b5874]
mov ebx, dword [str._n_____END]
mov ebp, dword [0x7b5878]
cmp ecx, 1
jb 0x5956fb
dec ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 1
add ebx, ebp
lea ebp, [ecx - 1]
mov ecx, dword [esp + 0x48]
cmp ecx, ebp
jge 0x5950e6
xor eax, eax
jmp 0x59510d
mov eax, dword [esp + 0x90]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
call fcn.004025e0
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0xb0]
test al, al
je 0x595120
mov ebx, dword [0x7b5874]
dec ebx
xor eax, eax
jmp 0x595171
mov ecx, dword [esp + 0x48]
mov eax, dword [str._n_____END]
mov edx, dword [0x7b5874]
mov ebx, dword [0x7b5878]
mov ebp, dword [esp + 0x90]
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov esi, dword [esp + 0x4c]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ebx
call fcn.004e5830
mov eax, dword [esp + 0x18]
mov ecx, dword [0x7b5874]
lea ebx, [eax + ecx]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0xb0]
test eax, eax
jl 0x59562a
cmp ebx, ecx
ja 0x5956f4
mov ebp, ecx
sub ecx, ebx
mov esi, dword [esp + 0x4c]
sub esi, ebx
mov dword [esp + 0x6c], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and ebx, esi
mov esi, dword [esp + 0x90]
add ebx, esi
mov edx, dword [0x7b5884]
mov edi, dword [esp + 0x40]
add edx, edi
cmp ecx, edx
jl 0x5955c2
jb 0x5956ed
mov dword [esp + 0x70], eax
mov dword [esp + 0x68], edx
mov ebp, dword [esp + 0x6c]
sub ebp, edx
mov dword [esp + 0x54], ebp
sub ecx, edx
mov dword [esp + 0x50], ecx
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, edx
add ebp, ebx
mov dword [esp + 0x94], ebp
cmp edi, edx
jle 0x5951f1
xor edi, edi
jmp 0x595237
mov dword [esp + 0xa0], ebx
mov dword [esp], ebx
mov eax, dword [esp + 0x84]
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.004025e0
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0xa0]
mov ebp, dword [esp + 0x94]
mov esi, dword [esp + 0x90]
mov edi, eax
mov eax, dword [esp + 0x70]
xchg edi, eax
test al, al
xchg edi, eax
je 0x595556
mov edi, dword [0x7b5884]
mov ebp, dword [0x7b5880]
cmp edi, edx
jg 0x5952af
mov dword [esp + 0x88], ebp
sub edx, edi
mov ebp, dword [esp + 0x68]
cmp edx, ebp
ja 0x5956e4
sub ebp, edx
mov eax, dword [esp + 0x6c]
sub eax, edx
neg eax
sar eax, 0x1f
and edx, eax
lea eax, [edx + ebx]
cmp edi, ebp
je 0x595280
xor eax, eax
jmp 0x5952a7
mov dword [esp], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
call fcn.004025e0
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x90]
mov edx, eax
mov eax, dword [esp + 0x70]
jmp 0x5952b1
xor edx, edx
test dl, dl
je 0x595556
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x54]
mov dword [esp + 8], eax
call fcn.00594990
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x5954e3
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x4c]
cmp ecx, edx
ja 0x5956df
mov eax, dword [esp + 0x90]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00594ab0
mov eax, dword [0x7b9988]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xa4], ecx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x60], edx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x74], ebx
cmp dword [eax + 0x140], 0xffffffff
jne 0x595346
lea eax, [edx + edx*2]
mov ebp, eax
shl eax, 1
sar eax, 0x1f
shr eax, 0x1d
lea eax, [eax + ebp*2]
sar eax, 3
jmp 0x59534c
shr edx, 2
lea eax, [edx + edx*2]
mov dword [esp + 0x34], eax
lea ecx, [0x612b40]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], eax
call fcn.004476a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0xb0]
mov dword [edx + 0x10], ecx
mov dword [edx + 0x14], ecx
mov ebx, dword [0x7e0970]
test ebx, ebx
jne 0x59538a
mov dword [edx + 0xc], eax
jmp 0x595392
lea edi, [edx + 0xc]
call fcn.0045e4b0
mov eax, dword [0x7b9988]
mov ebx, dword [edx + 0xc]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x18], eax
call fcn.004e31c0
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x595470
mov ebx, dword [esp + 0xb0]
mov edx, dword [ebx + 0x14]
cmp edx, ecx
jb 0x5956da
mov dword [ebx + 0x10], ecx
mov edx, dword [0x7b5874]
mov ebp, dword [esp + 0x70]
lea esi, [edx + ebp]
lea eax, [ebp + edx - 1]
mov ecx, dword [esp + 0x48]
cmp ecx, eax
jb 0x5956d5
mov edx, dword [esp + 0x4c]
sub edx, esi
inc edx
mov ebx, edx
neg edx
sar edx, 0x1f
and eax, edx
mov edx, dword [esp + 0x90]
add eax, edx
mov dword [esp], eax
sub ecx, esi
lea eax, [ecx + 1]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.00594990
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0xb0]
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd8], edx
add esp, 0xbc
ret
mov eax, dword [esp + 0xc0]
mov dword [esp], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x14], eax
call fcn.00595730
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd8], edx
add esp, 0xbc
ret
mov eax, dword [esp + 0xc0]
mov dword [esp], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x14], eax
call fcn.00595730
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd8], edx
add esp, 0xbc
ret
mov eax, dword [esp + 0xc0]
mov dword [esp], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 8], eax
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0x48]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x14], eax
call fcn.00595730
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd8], edx
add esp, 0xbc
ret
mov eax, dword [esp + 0xc0]
mov dword [esp], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 8], eax
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebp
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x14], eax
call fcn.00595730
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd8], edx
add esp, 0xbc
ret
mov eax, dword [esp + 0xc0]
mov dword [esp], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x14], eax
call fcn.00595730
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd8], edx
add esp, 0xbc
ret
mov dword [esp + 0xcc], 0
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0xd8], eax
add esp, 0xbc
ret
call fcn.0045e590
call fcn.0045e570
call fcn.0045e570
mov eax, edx
mov ecx, ebp
call fcn.0045e590
mov eax, edx
call fcn.0045e590
mov eax, ebx
call fcn.0045e590
mov eax, 1
call fcn.0045e590
mov ecx, ebp
call fcn.0045e570
mov eax, esi
mov ecx, ebx
call fcn.0045e590
call fcn.0045e590
mov eax, 1
call fcn.0045e590
nop
call fcn.0045d0a0
jmp fcn.00594ba0