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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x20]
cmp eax, dword [ecx + 8]
jbe 0x502105
sub esp, 0xa0
mov eax, dword [esp + 0xc0]
mov ebx, dword [esp + 0xb4]
cmp eax, ebx
jg 0x5019ee
test ebx, ebx
je 0x5019c0
test eax, eax
je 0x5019c0
cmp eax, 1
je 0x501944
mov ebp, dword [esp + 0xac]
test ebp, ebp
jle 0x5017e1
mov esi, dword [esp + 0xa4]
lea edi, [esi + ebp*4 - 4]
mov edx, dword [esp + 0xb8]
mov ecx, ebx
mov ebx, dword [esp + 0xb0]
lea ebx, [ebx + edx*4 - 4]
cmp ebx, edi
je 0x501814
test ebp, ebp
jmp 0x5017f1
mov ecx, ebx
mov edx, dword [esp + 0xb8]
mov esi, dword [esp + 0xa4]
jle 0x50181a
lea ebx, [esi + ebp*4 - 4]
mov edi, dword [esp + 0xc4]
mov eax, dword [esp + 0xbc]
lea eax, [eax + edi*4 - 4]
cmp eax, ebx
jne 0x501821
mov eax, dword [esp + 0xc0]
xor ebp, ebp
xor esi, esi
jmp 0x501828
mov edi, dword [esp + 0xc4]
mov eax, dword [esp + 0xc0]
mov ebx, dword [0x7ee118]
cmp eax, ebx
jl 0x501849
mov dword [esp + 0x8c], esi
nop
mov edi, eax
xor eax, eax
mov dword [esp + 0x70], eax
mov eax, edi
jmp 0x501ad3
lea ebx, [eax + ecx]
cmp ebp, ebx
jl 0x50185b
jae 0x5018e6
jmp 0x501ab8
cmp ebx, 1
jne 0x5018a3
lea eax, [0x62ec80]
mov dword [esp], eax
mov dword [esp + 4], 1
mov dword [esp + 8], 1
call fcn.00447580
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0xb8]
mov ebp, 1
mov ebx, 1
jmp 0x5018e6
mov dword [esp + 0x60], ebx
lea edx, [0x62ec80]
mov dword [esp], edx
mov dword [esp + 4], ebx
lea edx, [eax + ecx + 4]
mov dword [esp + 0x34], edx
mov dword [esp + 8], edx
call fcn.00447580
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0xb8]
mov ebp, dword [esp + 0x34]
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x34], ebp
mov dword [esp + 0x30], ebx
mov dword [esp + 0x88], esi
mov dword [esp], esi
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
mov edi, dword [esp + 0xb0]
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x20], eax
call fcn.005008c0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x88]
mov edx, eax
jmp 0x501a71
mov eax, dword [esp + 0xbc]
mov eax, dword [eax]
mov ecx, dword [esp + 0xa4]
mov dword [esp], ecx
mov ecx, dword [esp + 0xa8]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xac]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0
call fcn.00500710
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xd0], edx
add esp, 0xa0
ret
mov eax, dword [esp + 0xa4]
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], 0
mov eax, dword [esp + 0xac]
mov dword [esp + 0xd0], eax
add esp, 0xa0
ret
mov ecx, dword [esp + 0xa4]
mov dword [esp], ecx
mov ecx, dword [esp + 0xa8]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xac]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ebx
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x20], eax
call fcn.00501760
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xd0], edx
add esp, 0xa0
ret
mov eax, ebx
test eax, eax
jle 0x501a84
lea ebx, [eax - 1]
cmp edx, ebx
jbe 0x501aaf
mov ebp, dword [ecx + eax*4 - 4]
test ebp, ebp
je 0x501a6f
mov edx, dword [esp + 0x34]
cmp eax, edx
ja 0x501aa8
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], edx
add esp, 0xa0
ret
mov ecx, eax
call fcn.0045e7d0
mov eax, ebx
mov ecx, edx
call fcn.0045e790
mov ecx, ebx
mov edx, ebp
call fcn.0045e7d0
sar eax, 1
mov esi, dword [esp + 0x70]
inc esi
mov dword [esp + 0x70], esi
mov esi, dword [esp + 0x8c]
cmp eax, ebx
jg 0x501ac1
mov ebx, dword [esp + 0x70]
cmp ebx, 0x20
sbb esi, esi
mov ecx, ebx
shl eax, cl
and eax, esi
cmp edx, eax
jb 0x5020fd
mov ebx, dword [esp + 0xc4]
cmp ebx, eax
jb 0x5020f4
lea esi, [eax + eax*2]
mov ecx, esi
shl esi, 1
mov ebx, dword [esp + 0xb4]
add ebx, edi
cmp esi, ebx
jg 0x501b13
mov esi, ebx
mov dword [esp + 0x40], eax
mov dword [esp + 0x78], ecx
mov dword [esp + 0x4c], ebx
cmp ebp, esi
jl 0x501b44
jb 0x5020eb
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x7c]
jmp 0x501bc8
cmp esi, 1
jne 0x501b89
lea eax, [0x62ec80]
mov dword [esp], eax
mov dword [esp + 4], 1
mov dword [esp + 8], 1
call fcn.00447580
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0xb8]
mov ebp, 1
mov dword [esp + 0x84], esi
mov esi, 1
jmp 0x501bc8
mov dword [esp + 0x3c], esi
lea eax, [0x62ec80]
mov dword [esp], eax
mov dword [esp + 4], esi
lea eax, [esi + 4]
mov dword [esp + 0x38], eax
mov dword [esp + 8], eax
call fcn.00447580
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0xb8]
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x84], esi
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x38], ebp
mov ecx, dword [esp + 0x84]
mov dword [esp], ecx
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
mov ebx, dword [esp + 0xb0]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov esi, dword [esp + 0xbc]
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], eax
mov edi, dword [esp + 0xc4]
mov dword [esp + 0x20], edi
call fcn.00500fb0
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x4c]
cmp edx, ecx
jb 0x5020e6
mov eax, dword [esp + 0x40]
mov ebx, eax
shl eax, 1
cmp eax, ecx
ja 0x5020e1
sub edx, eax
mov esi, edx
neg edx
shl ebx, 3
sar edx, 0x1f
and edx, ebx
mov ebx, dword [esp + 0x84]
add edx, ebx
mov dword [esp], edx
sub ecx, eax
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
call fcn.004fff20
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0x40]
cmp eax, ecx
jg 0x501c77
mov ebx, dword [esp + 0xb4]
cmp eax, ebx
je 0x502010
mov eax, dword [esp + 0x78]
mov dword [esp], eax
call fcn.00502fe0
mov eax, dword [esp + 4]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov ebx, dword [eax + 8]
mov dword [esp + 0x5c], ebx
nop
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0xb0]
mov edi, ebp
jmp 0x501ca9
mov ebp, ebx
mov ebx, dword [esp + 0x5c]
test ebp, ebp
jle 0x501ccc
lea ebx, [ebp - 1]
cmp edi, ebx
jbe 0x5020d8
mov dword [esp + 0x74], ebp
mov ebp, dword [esi + ebp*4 - 4]
test ebp, ebp
je 0x501ca3
mov ebx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0xb8]
cmp esi, ebp
jb 0x5020cf
mov esi, dword [esp + 0xc0]
cmp esi, edi
jb 0x5020c6
mov dword [esp + 0x98], eax
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov eax, dword [esp + 0xb0]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ebp
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0xc4]
sub edx, edi
mov dword [esp + 0x48], edx
mov ebp, edx
neg edx
shl edi, 2
sar edx, 0x1f
and edx, edi
mov edi, dword [esp + 0xbc]
add edx, edi
mov dword [esp + 0x90], edx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x40]
sub esi, edx
mov dword [esp + 0x44], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], ebp
call fcn.00501760
mov eax, dword [esp + 0x24]
mov dword [esp + 0x9c], 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 + 0x84]
mov dword [esp], ebx
mov ebp, dword [esp + 0x4c]
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 + 0x40]
mov dword [esp + 0x18], edi
call fcn.00501650
nop
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0xbc]
mov edx, eax
jmp 0x501dba
mov eax, ebx
test eax, eax
jle 0x501dd1
lea ebx, [eax - 1]
cmp edx, ebx
jbe 0x5020bd
mov ebp, dword [ecx + eax*4 - 4]
test ebp, ebp
je 0x501db8
mov ebx, dword [esp + 0xc4]
cmp ebx, eax
jb 0x5020b4
mov dword [esp + 0x64], eax
mov ebp, dword [esp + 0xb0]
mov esi, dword [esp + 0xb4]
mov edi, dword [esp + 0xb8]
jmp 0x501f85
mov dword [esp + 0x94], edi
mov edx, dword [esp + 0x9c]
mov dword [esp], edx
mov edx, dword [esp + 0x58]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 8], edx
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ebx
call fcn.00501760
mov eax, dword [esp + 0x24]
mov dword [esp + 0x9c], 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 + 0x84]
mov dword [esp], ebx
mov ebp, dword [esp + 0x4c]
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 + 0x68]
mov dword [esp + 0x18], edi
call fcn.00501650
mov eax, dword [esp + 0x9c]
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 + 0x94]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x1c], ecx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x20], edx
call fcn.00501760
mov eax, dword [esp + 0x24]
mov dword [esp + 0x9c], 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 + 0x84]
mov dword [esp], ebx
mov ebp, dword [esp + 0x4c]
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 + 0x68]
mov esi, dword [esp + 0x40]
add edi, esi
mov dword [esp + 0x68], edi
mov dword [esp + 0x18], edi
call fcn.00501650
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0xb4]
mov ebx, dword [esp + 0xb8]
mov ebp, dword [esp + 0x9c]
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x5c]
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0xbc]
mov ebx, dword [esp + 0xc4]
mov ebp, dword [esp + 0xb0]
mov esi, edx
mov edi, dword [esp + 0xb8]
mov edx, dword [esp + 0x68]
cmp esi, edx
jle 0x501fec
jb 0x5020ab
mov dword [esp + 0x68], edx
sub edi, edx
mov dword [esp + 0x54], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
shl edx, 2
sar edi, 0x1f
and edi, edx
add edi, ebp
mov edx, ebp
mov ebp, dword [esp + 0x68]
sub esi, ebp
mov ebp, dword [esp + 0x40]
cmp ebp, esi
jge 0x501fbd
mov esi, ebp
jmp 0x501fc3
mov ebp, esi
mov esi, dword [esp + 0x40]
mov dword [esp + 0x50], ebp
jmp 0x502075
mov ebx, dword [esp + 0xc4]
mov ebp, dword [esp + 0x6c]
mov esi, dword [esp + 0x40]
mov esi, dword [esp + 0x54]
cmp ebp, esi
jbe 0x501dfe
jmp 0x502099
nop
lea eax, [0x825840]
mov dword [esp], eax
lea eax, [0x65ec60]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 8], eax
call fcn.00465b90
mov ebx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x84]
mov eax, ebx
jmp 0x502021
mov ebx, esi
test ebx, ebx
jle 0x502034
lea esi, [ebx - 1]
cmp esi, eax
jae 0x50205f
mov edi, dword [ebp + ebx*4 - 4]
test edi, edi
je 0x50201f
mov edx, dword [esp + 0x38]
cmp ebx, edx
ja 0x502058
mov dword [esp + 0xc8], ebp
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xd0], edx
add esp, 0xa0
ret
mov ecx, ebx
call fcn.0045e7d0
mov ecx, eax
mov eax, esi
call fcn.0045e790
mov ebx, dword [esp + 0xc4]
mov ebp, esi
mov esi, dword [esp + 0x40]
mov dword [esp + 0x6c], ebp
test ebp, ebp
jle 0x501fdb
lea esi, [ebp - 1]
mov ebx, dword [esp + 0x50]
cmp ebx, esi
jbe 0x5020a2
mov ebp, dword [edi + ebp*4 - 4]
test ebp, ebp
je 0x502068
jmp 0x501fcc
mov ecx, ebp
mov edx, esi
call fcn.0045e7d0
mov eax, esi
mov ecx, ebx
call fcn.0045e790
mov eax, edx
mov ecx, esi
call fcn.0045e7f0
mov ecx, eax
mov edx, ebx
call fcn.0045e7d0
mov eax, ebx
mov ecx, edx
call fcn.0045e790
mov eax, edi
mov ecx, esi
call fcn.0045e7f0
mov ecx, ebp
mov edx, esi
call fcn.0045e7d0
mov eax, ebx
mov ecx, edi
call fcn.0045e790
call fcn.0045e7f0
call fcn.0045e7d0
mov ecx, esi
mov edx, ebp
call fcn.0045e7d0
mov ecx, eax
mov edx, ebx
call fcn.0045e7d0
mov ecx, eax
call fcn.0045e7d0
nop
call fcn.0045d2d0
jmp fcn.00501760