Function at 0x5010f0
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff7c
push ebx
push esi
push edi
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov byte [ebp - 9], 0
mov dword [ebp - 0x2c], 0x51fafc
mov eax, dword [ebp - 4]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x1c], 0xffffffff
xor eax, eax
mov dword [ebp - 0x24], eax
xor eax, eax
push ebp
push 0x501580
push dword fs:[eax]
mov dword fs:[eax], esp
jmp 0x5014c7
lea edx, [ebp - 0x84]
mov eax, dword [ebp - 0x10]
call fcn.00500c04
call fcn.00500c3c
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x10]
cmp byte [eax + edx], 0xe8
jne 0x50117d
cmp dword [ebp - 8], 0
jne 0x50117d
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x10]
lea eax, [eax + edx + 1]
mov eax, dword [eax]
add eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x28]
mov dword [0x514d24], eax
jmp 0x50148f
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x10]
cmp byte [eax + edx], 0xcc
jne 0x5011a8
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x10]
lea eax, [eax + edx + 1]
mov ax, word [eax]
push eax
call dword [0x514d1c]
movsx eax, ax
add dword [ebp - 0x10], eax
jmp 0x5014c7
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x10]
cmp byte [eax + edx], 0xe9
jne 0x5011ce
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x10]
lea eax, [eax + edx + 1]
mov eax, dword [eax]
add eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x28]
mov dword [ebp - 0x10], eax
jmp 0x5014c7
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x10]
cmp byte [eax + edx], 0x68
jne 0x5011f5
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x10]
lea eax, [eax + edx + 1]
mov eax, dword [eax]
mov edx, dword [ebp - 0x1c]
mov dword [ebp + edx*4 - 0x5c], eax
jmp 0x50148f
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x10]
cmp byte [eax + edx], 0x81
jne 0x501233
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x10]
cmp byte [eax + edx + 1], 0x34
jne 0x501233
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x10]
cmp byte [eax + edx + 2], 0x24
jne 0x501233
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x10]
lea eax, [eax + edx + 3]
mov eax, dword [eax]
mov edx, dword [ebp - 0x1c]
xor dword [ebp + edx*4 - 0x5c], eax
jmp 0x50148f
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x10]
cmp byte [eax + edx], 0x81
jne 0x501271
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x10]
cmp byte [eax + edx + 1], 0x2c
jne 0x501271
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x10]
cmp byte [eax + edx + 2], 0x24
jne 0x501271
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x10]
lea eax, [eax + edx + 3]
mov eax, dword [eax]
mov edx, dword [ebp - 0x1c]
sub dword [ebp + edx*4 - 0x5c], eax
jmp 0x50148f
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x10]
cmp byte [eax + edx], 0xff
jne 0x501403
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x10]
cmp byte [eax + edx + 1], 0x14
jne 0x501403
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x10]
cmp byte [eax + edx + 2], 0x24
jne 0x501403
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x5c]
and eax, 0xffff
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x1c], 1
jne 0x5012d4
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x60]
and eax, 0xff00
cmp eax, 0xc200
jne 0x5012d4
cmp dword [ebp - 0x34], 0x8166
je 0x5012d8
xor eax, eax
jmp 0x5012da
mov al, 1
mov byte [ebp - 0x2d], al
cmp dword [ebp - 0x1c], 2
jne 0x50130b
mov eax, dword [ebp - 0x1c]
cmp dword [ebp + eax*4 - 0x60], 0x10c20000
jne 0x50130b
cmp dword [ebp - 0x34], 0xf281
je 0x50130f
cmp dword [ebp - 0x34], 0xc281
je 0x50130f
cmp dword [ebp - 0x34], 0xea81
je 0x50130f
xor eax, eax
jmp 0x501311
mov al, 1
mov byte [ebp - 0x2e], al
cmp byte [ebp - 0x2d], 0
je 0x50134d
imul eax, dword [ebp - 8], 0x7d
lea eax, [eax*4 + 0x527b00]
mov edx, dword [ebp - 0x20]
add eax, edx
mov edx, dword [ebp - 0x58]
mov dword [eax], edx
imul eax, dword [ebp - 8], 0x7d
lea eax, [eax*4 + 0x527b00]
mov edx, dword [ebp - 0x20]
mov cl, byte [ebp - 0x5c]
mov byte [eax + edx + 4], cl
add dword [ebp - 0x20], 5
inc dword [ebp - 0x24]
jmp 0x501388
cmp byte [ebp - 0x2e], 0
je 0x501388
imul eax, dword [ebp - 8], 0x7d
lea eax, [eax*4 + 0x527b00]
mov edx, dword [ebp - 0x20]
add eax, edx
mov edx, dword [ebp - 0x54]
mov dword [eax], edx
imul eax, dword [ebp - 8], 0x7d
lea eax, [eax*4 + 0x527b00]
mov edx, dword [ebp - 0x20]
lea eax, [eax + edx + 4]
mov dx, word [ebp - 0x58]
mov word [eax], dx
add dword [ebp - 0x20], 6
inc dword [ebp - 0x24]
cmp dword [ebp - 0x1c], 0
jl 0x5013f7
mov eax, dword [ebp - 0x1c]
inc eax
shl eax, 2
mov edx, 0x8000
sub edx, eax
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x1c]
cmp eax, 0
jl 0x5013ce
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x14]
shl eax, 2
add eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x2c]
lea eax, [edx + eax]
mov edx, dword [ebp - 0x14]
mov edx, dword [ebp + edx*4 - 0x5c]
mov dword [eax], edx
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xffffffff
jne 0x5013aa
lea edx, [ebp - 0x84]
mov eax, dword [ebp - 0x18]
call fcn.00500c04
push ebp
mov al, byte [ebp - 0x2d]
or al, byte [ebp - 0x2e]
push eax
call fcn.00500c3c
mov ecx, eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x2c]
call fcn.005010d8
pop ecx
mov dword [ebp - 0x1c], 0xffffffff
jmp 0x50148f
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x10]
cmp byte [eax + edx], 0x81
jne 0x501471
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x10]
mov al, byte [eax + edx + 1]
sub al, 0xc2
je 0x501425
sub al, 0x28
je 0x501425
sub al, 8
jne 0x501471
imul eax, dword [ebp - 8], 0x7d
lea eax, [eax*4 + 0x527b00]
mov edx, dword [ebp - 0x20]
lea edx, [eax + edx]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x10]
add eax, ecx
mov ecx, 6
call fcn.00402f20
add dword [ebp - 0x20], 6
inc dword [ebp - 0x24]
lea edx, [ebp - 0x84]
mov eax, dword [ebp - 0x10]
call fcn.00500c04
push ebp
push 1
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x2c]
call fcn.005010d8
pop ecx
jmp 0x50148f
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x10]
cmp byte [eax + edx], 0x54
je 0x50148f
push ebp
push 0
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x2c]
call fcn.005010d8
pop ecx
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x10]
cmp byte [eax + edx], 0xc3
je 0x5014dc
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x10]
cmp byte [eax + edx], 0xc2
jne 0x5014c1
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x10]
cmp byte [eax + edx + 1], 4
jne 0x5014c1
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x10]
cmp byte [eax + edx + 2], 0
je 0x5014dc
mov eax, dword [ebp - 0x28]
add dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jle 0x5014dc
mov eax, dword [ebp - 0x10]
cmp eax, dword [0x527afc]
jl 0x501139
cmp dword [ebp - 0x24], 0
jne 0x5014ef
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x50158a
imul eax, dword [ebp - 8], 0x7d
lea eax, [eax*4 + 0x527b00]
mov dword [eax], 0x66e58955
imul eax, dword [ebp - 8], 0x7d
lea eax, [eax*4 + 0x527b04]
mov word [eax], 0x558b
imul eax, dword [ebp - 8], 0x7d
mov byte [eax*4 + 0x527b06], 8
imul eax, dword [ebp - 8], 0x7d
lea eax, [eax*4 + 0x527b00]
mov edx, dword [ebp - 0x20]
add eax, edx
mov dword [eax], 0x8966c031
imul eax, dword [ebp - 8], 0x7d
lea eax, [eax*4 + 0x527b00]
mov edx, dword [ebp - 0x20]
lea eax, [eax + edx + 4]
mov dword [eax], 0x4c25dd0
imul eax, dword [ebp - 8], 0x7d
lea eax, [eax*4 + 0x527b00]
mov edx, dword [ebp - 0x20]
mov byte [eax + edx + 8], 0
imul eax, dword [ebp - 8], 0x7d
lea eax, [eax*4 + 0x527b00]
mov edx, dword [ebp - 8]
mov dword [edx*4 + 0x514d1c], eax
mov byte [ebp - 9], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x50158a
mov al, byte [ebp - 9]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret