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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x38]
cmp eax, dword [ecx + 8]
jbe 0x50272e
sub esp, 0xb8
mov edx, dword [esp + 0xd8]
mov ecx, dword [esp + 0xe4]
mov ebx, edx
sub edx, ecx
lea eax, [ecx - 1]
cmp eax, ecx
jae 0x502728
mov ebp, dword [esp + 0xe0]
mov esi, dword [ebp + ecx*4 - 4]
nop
nop
cmp esi, 0x10000
jb 0x502685
shr esi, 0x10
mov edi, 0x10
cmp esi, 0x100
jb 0x501ecc
shr esi, 8
add edi, 8
cmp esi, 0x100
jae 0x50271c
mov dword [esp + 0x6c], edx
mov dword [esp + 0x74], eax
mov dword [esp + 0x68], edi
lea eax, [0x879540]
movzx eax, byte [eax + esi]
mov dword [esp + 0x70], eax
mov dword [esp], ecx
call fcn.00501d20
mov eax, dword [esp + 4]
mov dword [esp + 0x9c], eax
mov ecx, dword [eax + 4]
mov dword [esp + 0x4c], ecx
mov edx, dword [eax]
mov dword [esp + 0xa4], edx
mov ebx, dword [eax + 8]
mov dword [esp + 0x50], ebx
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov ebp, dword [esp + 0xe0]
mov dword [esp + 0xc], ebp
mov ebp, dword [esp + 0xe4]
mov dword [esp + 0x10], ebp
mov esi, dword [esp + 0xe8]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x70]
lea esi, [edi + esi - 0x20]
xchg esi, ebx
neg ebx
xchg esi, ebx
mov dword [esp + 0x70], esi
mov dword [esp + 0x18], esi
call fcn.00507b80
mov ecx, dword [esp + 0xd8]
lea eax, [ecx + 1]
mov edx, dword [esp + 0xd0]
cmp eax, edx
jg 0x502610
ja 0x502715
mov ebx, dword [esp + 0xc8]
cmp ecx, edx
ja 0x502710
mov dword [esp + 0x3c], eax
mov dword [esp + 0xb0], ebx
mov dword [esp + 0x40], edx
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov eax, dword [esp + 0xd4]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x18], eax
call fcn.00507b80
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0x3c]
cmp ecx, edx
jae 0x502707
mov ebx, dword [esp + 0xb0]
mov dword [ebx + ecx*4], eax
mov ecx, dword [esp + 0xc4]
test ecx, ecx
jle 0x5025fe
lea eax, [ecx - 1]
cmp eax, ecx
jae 0x502702
mov ebp, dword [esp + 0xbc]
lea esi, [ebp + ecx*4 - 4]
mov edi, dword [esp + 0x40]
lea eax, [edi - 1]
cmp eax, edi
jae 0x5026fb
lea eax, [ebx + edi*4 - 4]
cmp esi, eax
sete al
test al, al
je 0x5025f7
xor eax, eax
xor ecx, ecx
mov ebp, dword [esp + 0x6c]
lea esi, [ebp + 1]
cmp esi, ecx
jg 0x502590
ja 0x5026f0
mov dword [esp + 0x2c], esi
mov dword [esp + 0xac], eax
mov dword [esp + 0x30], ecx
mov edx, dword [esp + 0xe4]
lea ebx, [edx + 1]
mov dword [esp], ebx
call fcn.00501d20
mov eax, dword [esp + 4]
mov edx, dword [eax + 8]
mov ecx, dword [eax]
mov ebx, dword [eax + 4]
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0x4c]
cmp ebp, esi
jae 0x5026e7
mov dword [esp + 0xa0], eax
mov dword [esp + 0x5c], edx
mov dword [esp + 0xa8], ecx
mov dword [esp + 0x58], ebx
mov ebp, dword [esp + 0xe4]
mov edi, dword [esp + 0xa4]
mov ebx, dword [edi + ebp*4 - 4]
mov dword [esp + 0x48], ebx
jmp 0x5022d2
mov dword [esp + 0x80], eax
mov dword [esp + 0x54], ebx
mov dword [esp], eax
mov ecx, dword [esp + 0x44]
mov dword [esp + 4], ecx
call fcn.00507a60
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0x54]
mov edx, dword [esp + 0xe4]
mov ebx, dword [esp + 0x6c]
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0xb0]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x64], eax
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x60], ecx
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x84]
mov esi, dword [esp + 0x64]
cmp eax, esi
jbe 0x502448
mov eax, 1
test al, al
je 0x502439
mov eax, dword [esp + 0x60]
dec eax
mov ecx, edi
mov edi, dword [esp + 0x48]
lea ebx, [esi + edi]
cmp ebx, esi
jae 0x5020c3
mov ebx, dword [esp + 0x5c]
cmp edx, ebx
ja 0x5026ba
mov dword [esp + 0x60], eax
mov ecx, dword [esp + 0xa8]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0xc], ebp
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x10], esi
mov edi, dword [esp + 0x50]
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0
call fcn.00507c20
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0xe4]
mov edx, dword [esp + 0x58]
cmp ecx, edx
jae 0x5026b1
mov ebx, dword [esp + 0xa8]
mov dword [ebx + ecx*4], eax
mov eax, dword [esp + 0x6c]
lea ebp, [eax + edx]
mov esi, dword [esp + 0x40]
cmp ebp, esi
ja 0x5026a8
cmp eax, ebp
ja 0x5026a1
sub esi, eax
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
shl eax, 2
sar esi, 0x1f
and esi, eax
mov ebp, dword [esp + 0xb0]
add esi, ebp
mov ebp, dword [esp + 0x6c]
mov ebx, dword [esp + 0x3c]
cmp ebp, ebx
ja 0x502698
mov dword [esp + 0x7c], edi
mov dword [esp + 0xb4], esi
mov dword [esp], esi
mov dword [esp + 4], edx
mov dword [esp + 8], edi
mov dword [esp + 0xc], esi
sub ebx, ebp
mov dword [esp + 0x78], ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], edi
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x20], edx
call fcn.00507ae0
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x5023bd
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x2c]
cmp ebx, ecx
jae 0x50268c
mov edx, dword [esp + 0xac]
mov dword [edx + ebx*4], eax
lea eax, [ebx - 1]
mov ebx, dword [esp + 0xb0]
mov ebp, dword [esp + 0x48]
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0x5c]
mov ebx, ebp
mov ebp, dword [esp + 0xe4]
mov esi, edi
mov edi, dword [esp + 0xa4]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0xa0]
mov esi, dword [esp + 0x6c]
test esi, esi
jl 0x502470
lea edi, [ebp + esi]
mov ebp, dword [esp + 0x3c]
cmp edi, ebp
jae 0x5026de
mov dword [esp + 0x74], edi
mov ebp, dword [esp + 0xb0]
mov edi, dword [ebp + edi*4]
cmp edi, ebx
je 0x50245b
mov edx, dword [esp + 0xe4]
lea esi, [esi + edx - 1]
mov edx, dword [esp + 0x3c]
cmp esi, edx
jae 0x5026d5
mov eax, dword [ebp + esi*4]
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.00507a80
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xe4]
lea ebx, [edx - 2]
mov ebp, dword [esp + 0x4c]
cmp ebx, ebp
jae 0x5026cc
mov dword [esp + 0x60], eax
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0xa4]
mov ebx, dword [ecx + edx*4 - 8]
mov dword [esp + 0x44], ebx
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.00507a60
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xe4]
mov ebx, dword [esp + 0x6c]
lea ebp, [ebx + edx - 2]
mov esi, dword [esp + 0x3c]
cmp ebp, esi
jae 0x5026c3
mov edi, dword [esp + 0xb0]
mov ebp, dword [edi + ebp*4]
mov dword [esp + 0x38], ebp
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x94]
jmp 0x502142
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x74]
cmp eax, ecx
ja 0x502693
mov eax, dword [esp + 0xb4]
mov dword [esp], eax
mov ecx, dword [esp + 0xe4]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x7c]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x1c], edx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x20], ebx
call fcn.00507aa0
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0xb0]
mov edx, dword [ecx + eax*4]
add edx, dword [esp + 0x24]
mov dword [ecx + eax*4], edx
mov eax, dword [esp + 0x60]
dec eax
jmp 0x50227a
mov ecx, edi
mov edi, dword [esp + 0x48]
mov eax, dword [esp + 0x60]
jmp 0x502171
jne 0x502454
cmp ecx, ebp
seta al
jmp 0x502153
xor eax, eax
jmp 0x502153
mov ecx, ebp
mov edx, dword [esp + 0xe4]
mov edi, ebx
mov eax, 0xffffffff
jmp 0x502171
nop
lea eax, [0x8ae0c0]
mov dword [esp], eax
lea ecx, [0x69ed00]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x9c]
mov dword [esp + 8], edx
call fcn.0045bbc0
nop
lea eax, [0x8ae0c0]
mov dword [esp], eax
lea eax, [0x69ed00]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 8], eax
call fcn.0045bbc0
mov eax, dword [esp + 0xac]
mov dword [esp], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 8], eax
call fcn.004fe7c0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x7c], ecx
mov edx, dword [esp + 0xc]
mov dword [esp + 0xb4], edx
mov ebx, dword [esp + 0xb0]
mov dword [esp], ebx
mov ebp, dword [esp + 0x3c]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0x40]
mov dword [esp + 8], esi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], esi
mov edi, dword [esp + 0x70]
mov dword [esp + 0x18], edi
call fcn.00507bd0
mov eax, dword [esp + 0xb0]
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 8], eax
call fcn.004fe7c0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0xb4]
mov dword [esp + 0xec], ebx
mov ebx, dword [esp + 0x7c]
mov dword [esp + 0xf0], ebx
mov ebx, dword [esp + 0x74]
mov dword [esp + 0xf4], ebx
mov dword [esp + 0xf8], edx
mov dword [esp + 0xfc], ecx
mov dword [esp + 0x100], eax
add esp, 0xb8
ret
test ebp, ebp
jne 0x5025c5
lea eax, [0x659340]
mov dword [esp], eax
mov dword [esp + 4], 1
mov dword [esp + 8], 1
call fcn.0043c2b0
mov eax, dword [esp + 0xc]
mov esi, 1
mov ecx, 1
jmp 0x502055
mov dword [esp + 0x2c], esi
lea eax, [0x659340]
mov dword [esp], eax
mov dword [esp + 4], esi
lea eax, [ebp + 5]
mov dword [esp + 0x30], eax
mov dword [esp + 8], eax
call fcn.0043c2b0
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
jmp 0x502055
mov eax, ebp
jmp 0x502040
mov ebp, dword [esp + 0xbc]
mov edi, dword [esp + 0x40]
xor eax, eax
jmp 0x502034
test ecx, ecx
jne 0x50264c
lea eax, [0x659340]
mov dword [esp], eax
mov dword [esp + 4], 1
mov dword [esp + 8], 1
call fcn.0043c2b0
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0xd8]
mov eax, 1
mov edx, 1
jmp 0x501f8d
mov dword [esp + 0x28], eax
lea edx, [0x659340]
mov dword [esp], edx
mov dword [esp + 4], eax
lea ebx, [ecx + 5]
mov dword [esp + 0x34], ebx
mov dword [esp + 8], ebx
call fcn.0043c2b0
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0xd8]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x34]
jmp 0x501f8d
xor edi, edi
jmp 0x501ebe
mov eax, ebx
call fcn.00450da0
call fcn.00450e00
mov eax, ebp
mov ecx, ebx
call fcn.00450e00
mov ecx, ebp
call fcn.00450e00
mov ecx, ebp
mov edx, esi
call fcn.00450de0
mov eax, ecx
mov ecx, edx
call fcn.00450da0
mov ecx, edx
mov edx, ebx
call fcn.00450de0
mov eax, ebp
mov ecx, esi
call fcn.00450da0
mov eax, ebx
mov ecx, ebp
call fcn.00450da0
mov eax, esi
mov ecx, edx
call fcn.00450da0
mov eax, edi
mov ecx, ebp
call fcn.00450da0
mov eax, ebp
mov ecx, esi
call fcn.00450da0
mov eax, ecx
mov ecx, esi
mov edx, eax
call fcn.00450de0
mov ecx, edi
call fcn.00450da0
call fcn.00450da0
mov eax, ecx
mov ecx, edx
call fcn.00450da0
call fcn.00450de0
mov ecx, eax
call fcn.00450de0
mov eax, esi
mov ecx, 0x100
call fcn.00450db0
call fcn.00450da0
nop
call fcn.0044f4e0
jmp fcn.00501e60