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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x34]
cmp eax, dword [ecx + 8]
jbe 0x502a59
sub esp, 0xb4
mov ecx, dword [esp + 0xbc]
mov ebx, dword [esp + 0xb8]
mov ebp, dword [ebx]
mov eax, dword [ebx + 4]
cmp eax, 0
jne 0x502056
cmp ebp, 0
jne 0x502056
xor eax, eax
mov dword [ecx + 0xc], eax
xor eax, eax
mov dword [ecx + 0x10], eax
mov ebx, dword [esp + 0xb8]
movzx ebp, byte [ebx + 0xc]
xchg ebp, eax
mov byte [ecx + 0x14], al
xchg ebp, eax
mov byte [esp + 0xc8], 1
add esp, 0xb4
ret
mov ebx, dword [esp + 0xb8]
mov ebp, dword [ebx + 8]
cmp ebp, 0
jne 0x502331
mov esi, dword [esp + 0xc0]
cmp esi, 0
je 0x502a52
mov edx, dword [esp + 0xb8]
cmp edx, 0
je 0x502a4b
mov eax, dword [esi]
mov dword [esp + 0x8c], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x90], eax
mov edi, dword [edx]
mov eax, dword [edx + 4]
mov ebx, dword [esp + 0x90]
cmp ebx, eax
jne 0x502331
mov ebx, dword [esp + 0x8c]
cmp ebx, edi
jne 0x502331
mov edi, dword [esi + 8]
mov ebp, dword [edx + 8]
cmp edi, ebp
jne 0x502331
movzx ebp, byte [esi + 0xc]
mov esi, ebp
movzx ebp, byte [edx + 0xc]
xchg esi, eax
xchg ebp, ebx
cmp al, bl
xchg ebp, ebx
xchg esi, eax
jne 0x502331
mov edx, dword [esp + 0xc0]
cmp edx, 0
je 0x502a44
mov esi, dword [esp + 0xc4]
cmp esi, 0
je 0x502a3d
mov eax, dword [edx]
mov dword [esp + 0x8c], eax
mov eax, dword [edx + 4]
mov dword [esp + 0x90], eax
mov edi, dword [esi]
mov eax, dword [esi + 4]
mov ebx, dword [esp + 0x90]
cmp ebx, eax
jne 0x502331
mov ebx, dword [esp + 0x8c]
cmp ebx, edi
jne 0x502331
mov eax, dword [edx + 8]
mov ebp, dword [esi + 8]
cmp eax, ebp
jne 0x502331
movzx ebp, byte [edx + 0xc]
mov edx, ebp
movzx ebp, byte [esi + 0xc]
xchg ebp, eax
cmp dl, al
xchg ebp, eax
jne 0x502331
lea edi, [esp + 0x9c]
xor eax, eax
call fcn.00452fba
mov dword [esp + 0x38], 0x17
mov ebx, dword [esp + 0xb8]
mov ebp, dword [ebx]
mov edx, dword [ebx + 4]
cmp edx, 0
jb 0x50223f
jbe 0x502323
mov dword [esp + 0x5c], ebp
mov dword [esp], ebp
mov dword [esp + 0x60], edx
mov dword [esp + 4], edx
mov dword [esp + 8], 0xa
mov dword [esp + 0xc], 0
call fcn.0044b3b0
mov ecx, dword [esp + 0xbc]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x54], eax
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x88], eax
mov eax, 0xa
xor edx, edx
mov esi, dword [esp + 0x54]
mov ebp, edx
or ebp, edi
jne 0x50230e
mul esi
mov ebp, eax
mov ebx, edx
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x88]
sub eax, ebp
sbb edx, ebx
add eax, 0x30
adc edx, 0
mov ebx, dword [esp + 0x38]
lea ebp, [esp + 0x9c]
cmp ebx, 0x18
jae 0x502307
add ebp, ebx
mov byte [ebp], al
mov ebx, dword [esp + 0x38]
dec ebx
mov dword [esp + 0x38], ebx
mov ebp, dword [esp + 0x54]
mov edx, edi
cmp edx, 0
jae 0x502188
mov ebx, 0x18
sub ebx, dword [esp + 0x38]
dec ebx
mov dword [esp + 0x34], ebx
xor eax, eax
mov ebp, dword [esp + 0x34]
cmp eax, ebp
jge 0x50228a
mov ebx, dword [esp + 0x38]
inc ebx
add ebx, eax
lea ebp, [esp + 0x9c]
cmp ebx, 0x18
jae 0x502300
add ebp, ebx
movzx ebx, byte [ebp]
mov esi, dword [ecx + 4]
cmp eax, esi
jae 0x5022f9
mov esi, dword [ecx]
add esi, eax
mov byte [esi], bl
inc eax
mov ebp, dword [esp + 0x34]
cmp eax, ebp
jl 0x502257
mov eax, dword [esp + 0x34]
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x34]
mov dword [ecx + 0x10], eax
mov ebp, dword [ecx + 0xc]
cmp ebp, 0
jle 0x5022c6
mov eax, dword [ecx + 0xc]
dec eax
mov esi, dword [ecx + 4]
cmp eax, esi
jae 0x5022f2
mov esi, dword [ecx]
add esi, eax
movzx ebx, byte [esi]
cmp bl, 0x30
jne 0x5022c6
mov eax, dword [ecx + 0xc]
dec eax
mov dword [ecx + 0xc], eax
mov ebp, dword [ecx + 0xc]
cmp ebp, 0
jg 0x5022a0
mov ebp, dword [ecx + 0xc]
cmp ebp, 0
jne 0x5022d3
xor eax, eax
mov dword [ecx + 0x10], eax
mov ebx, dword [esp + 0xb8]
movzx ebp, byte [ebx + 0xc]
xchg ebp, eax
mov byte [ecx + 0x14], al
xchg ebp, eax
mov byte [esp + 0xc8], 1
add esp, 0xb4
ret
call fcn.004287a0
ud2
call fcn.004287a0
ud2
call fcn.004287a0
ud2
call fcn.004287a0
ud2
imul edx, esi
mov ebp, eax
imul ebp, edi
add ebp, edx
mov edx, esi
mul edx
add edx, ebp
jmp 0x5021f2
cmp ebp, 0
jbe 0x50223f
jmp 0x50218e
mov ebx, dword [esp + 0xc4]
mov dword [esp], ebx
call fcn.00501230
mov edi, dword [esp + 0xc0]
mov esi, dword [esp + 0xc4]
mov ebx, dword [esp + 0xb8]
mov ecx, dword [ebx + 8]
mov ebp, dword [esi + 8]
cmp ecx, ebp
jle 0x5023ba
mov ebx, dword [esp + 0xb8]
mov edx, dword [ebx]
mov ecx, dword [ebx + 4]
mov ebx, dword [esp + 0xb8]
mov eax, dword [ebx + 8]
mov ebp, dword [esi + 8]
mov dword [esp + 0x50], ebp
mov ebx, dword [esp + 0x50]
mov ebp, eax
sub ebp, ebx
mov eax, edx
mov edx, ecx
mov ecx, ebp
cmp ebp, 0x40
jae 0x502a34
cmp ecx, 0x20
jae 0x502a29
shld edx, eax, cl
shl eax, cl
mov ebx, dword [esp + 0xb8]
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov ebp, dword [esi + 8]
mov ebx, dword [esp + 0xb8]
mov dword [ebx + 8], ebp
mov eax, dword [edi + 8]
mov ebp, dword [esi + 8]
cmp eax, ebp
jle 0x502403
mov edx, dword [edi]
mov eax, dword [edi + 4]
mov dword [esp + 0x90], eax
mov ecx, dword [edi + 8]
mov ebx, dword [esi + 8]
sub ecx, ebx
mov eax, edx
mov edx, dword [esp + 0x90]
cmp ecx, 0x40
jae 0x502a20
cmp ecx, 0x20
jae 0x502a15
shld edx, eax, cl
shl eax, cl
mov dword [edi], eax
mov dword [edi + 4], edx
mov ebp, dword [esi + 8]
mov dword [edi + 8], ebp
mov dword [esp], edi
mov ebx, dword [esp + 0xb8]
mov dword [esp + 4], ebx
mov dword [esp + 8], esi
call fcn.005015e0
mov ebp, dword [esp + 0xc4]
mov edi, dword [esp + 0xbc]
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x48], ebx
mov eax, dword [ebp]
mov edx, dword [ebp + 4]
add eax, 1
adc edx, 0
mov dword [ebp], eax
mov dword [ebp + 4], edx
mov ebx, dword [esp + 0xc0]
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
sub eax, 1
sbb edx, 0
mov ebx, dword [esp + 0xc0]
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov ebx, dword [ebp + 8]
neg ebx
mov dword [esp + 0x30], ebx
mov eax, dword [ebp]
mov edx, dword [ebp + 4]
mov ecx, dword [esp + 0x30]
cmp ecx, 0x40
jae 0x502a0c
cmp ecx, 0x20
jae 0x502a01
shrd eax, edx, cl
shr edx, cl
mov dword [esp + 0x40], eax
mov eax, dword [ebp]
mov dword [esp + 0x84], eax
mov esi, dword [ebp + 4]
mov eax, dword [esp + 0x40]
xor edx, edx
mov ecx, dword [esp + 0x30]
cmp ecx, 0x40
jae 0x5029f8
cmp ecx, 0x20
jae 0x5029ed
shld edx, eax, cl
shl eax, cl
mov ebx, eax
mov ecx, edx
mov eax, dword [esp + 0x84]
mov edx, esi
sub eax, ebx
sbb edx, ecx
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], edx
mov eax, dword [ebp]
mov edx, dword [ebp + 4]
mov ebx, dword [esp + 0xc0]
mov esi, dword [ebx]
mov ebx, dword [ebx + 4]
sub eax, esi
sbb edx, ebx
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], edx
mov eax, dword [ebp]
mov edx, dword [ebp + 4]
mov ebx, dword [esp + 0xb8]
mov ebp, dword [ebx]
mov ecx, dword [ebx + 4]
sub eax, ebp
sbb edx, ecx
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], edx
mov dword [esp + 0x3c], 0
xor ecx, ecx
mov esi, 1
xor ebp, ebp
cmp ecx, 0x14
jge 0x502576
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x84], ebx
xor ebx, ebx
mov eax, dword [esp + 0x84]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], ebx
mov ebx, dword [esp + 0x90]
cmp ebx, ebp
ja 0x5029c0
jb 0x502572
mov ebx, dword [esp + 0x8c]
cmp ebx, esi
jae 0x5029c0
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x44], 0
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x3c]
cmp ebx, ebp
jge 0x50270b
mov ebx, dword [esp + 0x3c]
sub ebx, dword [esp + 0x44]
dec ebx
mov ebp, 0x6b5160
cmp ebx, 0x14
jae 0x5029b9
shl ebx, 3
add ebp, ebx
mov eax, dword [ebp]
mov dword [esp + 0x6c], eax
mov eax, dword [ebp + 4]
mov dword [esp + 0x70], eax
mov ebp, dword [esp + 0x6c]
mov dword [esp + 0x4c], ebp
mov eax, dword [esp + 0x40]
xor edx, edx
div ebp
mov ecx, eax
mov eax, dword [esp + 0x4c]
mov edx, ecx
add edx, 0x30
mov ebp, dword [esp + 0x44]
mov esi, dword [edi + 4]
cmp ebp, esi
jae 0x5029b2
mov esi, dword [edi]
add esi, ebp
mov byte [esi], dl
mov ebp, dword [esp + 0x40]
mov ebx, dword [esp + 0x6c]
imul ebx, ecx
sub ebp, ebx
mov dword [esp + 0x40], ebp
mov eax, dword [esp + 0x40]
xor edx, edx
mov ecx, dword [esp + 0x30]
cmp ecx, 0x40
jae 0x5029a9
cmp ecx, 0x20
jae 0x50299e
shld edx, eax, cl
shl eax, cl
add eax, dword [esp + 0x7c]
adc edx, dword [esp + 0x80]
mov esi, eax
mov ecx, edx
cmp edx, dword [esp + 0x98]
ja 0x5026f2
jb 0x502645
cmp esi, dword [esp + 0x94]
jae 0x5026f2
mov eax, dword [esp + 0x44]
inc eax
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x3c]
add eax, dword [esp + 0x48]
mov dword [edi + 0x10], eax
mov ebx, dword [esp + 0xb8]
movzx ebp, byte [ebx + 0xc]
xchg ebp, eax
mov byte [edi + 0x14], al
xchg ebp, eax
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], ecx
mov eax, dword [esp + 0x64]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x30]
cmp ecx, 0x40
jae 0x5026ec
cmp ecx, 0x20
jae 0x5026e4
shld edx, eax, cl
shl eax, cl
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], 2
mov dword [esp + 0x28], 0
call fcn.00502a70
movzx ebx, byte [esp + 0x2c]
mov byte [esp + 0xc8], bl
add esp, 0xb4
ret
mov edx, eax
shl edx, cl
xor eax, eax
jmp 0x5026b4
xor edx, edx
xor eax, eax
jmp 0x5026aa
mov ebx, dword [esp + 0x44]
inc ebx
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x3c]
cmp ebx, ebp
jl 0x50258e
mov eax, dword [esp + 0x3c]
mov dword [edi + 0xc], eax
mov eax, dword [edi + 0xc]
add eax, dword [esp + 0x48]
mov dword [edi + 0x10], eax
mov ebx, dword [esp + 0xb8]
movzx ebp, byte [ebx + 0xc]
xchg ebp, eax
mov byte [edi + 0x14], al
xchg ebp, eax
mov dword [esp + 0x74], 1
mov dword [esp + 0x78], 0
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x80]
mov esi, 0xa
xor ebx, ebx
mov ebp, edx
or ebp, ebx
jne 0x502989
mul esi
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], edx
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
mov esi, 0xa
xor ebx, ebx
mov ebp, edx
or ebp, ebx
jne 0x502974
mul esi
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], edx
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x30]
cmp ecx, 0x40
jae 0x50296b
cmp ecx, 0x20
jae 0x502960
shrd eax, edx, cl
shr edx, cl
mov ecx, eax
mov edx, eax
add edx, 0x30
mov ebp, dword [edi + 0xc]
mov esi, dword [edi + 4]
cmp ebp, esi
jae 0x502959
mov esi, dword [edi]
add esi, ebp
mov byte [esi], dl
mov eax, dword [edi + 0xc]
inc eax
mov dword [edi + 0xc], eax
mov esi, dword [esp + 0x7c]
mov ebp, dword [esp + 0x80]
mov eax, ecx
cdq
mov ecx, dword [esp + 0x30]
cmp ecx, 0x40
jae 0x502950
cmp ecx, 0x20
jae 0x502945
shld edx, eax, cl
shl eax, cl
mov ebx, eax
mov ecx, edx
mov eax, esi
mov edx, ebp
sub eax, ebx
sbb edx, ecx
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], edx
mov eax, dword [esp + 0x94]
mov edx, dword [esp + 0x98]
mov esi, dword [esp + 0x74]
mov ebx, dword [esp + 0x78]
mov ebp, edx
or ebp, ebx
jne 0x502930
mul esi
cmp edx, dword [esp + 0x80]
jb 0x50273c
ja 0x50284b
cmp eax, dword [esp + 0x7c]
jbe 0x50273c
mov dword [esp], edi
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
mov esi, dword [esp + 0x74]
mov ebx, dword [esp + 0x78]
mov ebp, edx
or ebp, ebx
jne 0x50291b
mul esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x94]
mov edx, dword [esp + 0x98]
mov esi, dword [esp + 0x74]
mov ebx, dword [esp + 0x78]
mov ebp, edx
or ebp, ebx
jne 0x502909
mul esi
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
mov eax, 1
xor edx, edx
mov ecx, dword [esp + 0x30]
cmp ecx, 0x40
jae 0x502903
cmp ecx, 0x20
jae 0x5028fb
shld edx, eax, cl
shl eax, cl
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
shld edx, eax, 1
shl eax, 1
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], edx
call fcn.00502a70
movzx ebx, byte [esp + 0x2c]
mov byte [esp + 0xc8], bl
add esp, 0xb4
ret
mov edx, eax
shl edx, cl
xor eax, eax
jmp 0x5028c5
xor edx, edx
xor eax, eax
jmp 0x5028bb
imul edx, esi
mov ebp, eax
imul ebp, ebx
add ebp, edx
mov edx, esi
mul edx
add edx, ebp
jmp 0x5028a3
imul edx, esi
mov ebp, eax
imul ebp, ebx
add ebp, edx
mov edx, esi
mul edx
add edx, ebp
jmp 0x50287d
imul edx, esi
mov ebp, eax
imul ebp, ebx
add ebp, edx
mov edx, esi
mul edx
add edx, ebp
jmp 0x502832
mov edx, eax
shl edx, cl
xor eax, eax
jmp 0x5027f9
xor edx, edx
xor eax, eax
jmp 0x5027eb
call fcn.004287a0
ud2
mov eax, edx
shr eax, cl
xor edx, edx
jmp 0x5027ae
xor edx, edx
xor eax, eax
jmp 0x5027a0
imul edx, esi
mov ebp, eax
imul ebp, ebx
add ebp, edx
mov edx, esi
mul edx
add edx, ebp
jmp 0x502780
imul edx, esi
mov ebp, eax
imul ebp, ebx
add ebp, edx
mov edx, esi
mul edx
add edx, ebp
jmp 0x50275a
mov edx, eax
shl edx, cl
xor eax, eax
jmp 0x50261a
xor edx, edx
xor eax, eax
jmp 0x50260c
call fcn.004287a0
ud2
call fcn.004287a0
ud2
mov eax, esi
mov edx, ebp
mov esi, 0xa
xor ebx, ebx
or ebp, ebx
jne 0x5029db
mul esi
mov esi, eax
mov ebp, edx
inc ecx
jmp 0x50252b
imul edx, esi
mov ebp, eax
imul ebp, ebx
add ebp, edx
mov edx, esi
mul edx
add edx, ebp
jmp 0x5029d1
mov edx, eax
shl edx, cl
xor eax, eax
jmp 0x5024bc
xor edx, edx
xor eax, eax
jmp 0x5024ae
mov eax, edx
shr eax, cl
xor edx, edx
jmp 0x50248a
xor edx, edx
xor eax, eax
jmp 0x50247c
mov edx, eax
shl edx, cl
xor eax, eax
jmp 0x5023f8
xor edx, edx
xor eax, eax
jmp 0x5023ea
mov edx, eax
shl edx, cl
xor eax, eax
jmp 0x5023a1
xor edx, edx
xor eax, eax
jmp 0x502393
mov dword [esi], eax
jmp 0x502105
mov dword [edx], eax
jmp 0x5020f5
mov dword [edx], eax
jmp 0x502089
mov dword [esi], eax
jmp 0x502079
call fcn.00450ed0
jmp fcn.00501ff0