Function at 0x4050f0
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
xor bl, bl
mov esi, ecx
push edi
mov edi, edx
mov byte [ebp - 4], bl
movzx ecx, bl
xor dh, dh
lea eax, [ecx + 1]
cmp eax, 0xf
ja 0x4053d5
mov cl, byte [ecx + edi]
movzx eax, cl
mov ch, byte [eax + 0x450520]
test ch, ch
je 0x4053af
cmp ch, 1
jne case.0x405145.39
add eax, 0xffffffda
cmp eax, 0xcd
ja case.0x405145.39
movzx eax, byte [eax + 0x405400]
jmp dword [eax*4 + 0x4053e4]
or byte [esi + 7], 8
jmp 0x4051b3
or byte [esi + 7], 0x20
mov byte [esi + 0x19], 0xf3
jmp 0x4051b3
or byte [esi + 7], 0x10
mov byte [esi + 0x19], 0xf2
jmp 0x4051b3
mov al, byte [esi]
and al, 0xf
cmp al, 2
jne 0x4051a0
cmp cl, 0x64
je 0x4051a0
cmp cl, 0x65
je 0x4051a0
cmp cl, 0x3e
jne 0x405191
mov al, byte [esi + 0x1a]
cmp al, 0x64
je 0x405191
cmp al, 0x65
je 0x405191
or byte [esi + 7], 0x40
mov byte [esi + 0x1a], cl
jmp 0x4051b3
mov al, byte [esi + 0x1a]
cmp al, 0x64
je 0x4051b3
cmp al, 0x65
je 0x4051b3
cmp al, 0x3e
je 0x4051b3
or byte [esi + 7], 0x40
mov byte [esi + 0x1a], cl
jmp 0x4051b3
or byte [esi + 7], 2
jmp 0x4051b3
or byte [esi + 7], 4
mov al, byte [esi + 6]
mov dh, 1
test al, 0x10
je case.0x405145.39
and al, 0xef
mov byte [esi + 0x1c], 0
and dword [esi + 0x24], 0xfffffff0
mov byte [esi + 6], al
mov dl, byte [esi]
mov al, dl
and al, 0xf
cmp al, 2
jne 0x40521a
cmp ch, 3
jne 0x405218
movzx edx, cl
mov byte [esi + 0x1c], cl
mov eax, edx
or byte [esi + 6], 0x10
mov ecx, edx
shr ecx, 3
xor ecx, dword [esi + 0x24]
and ecx, 1
shr eax, 1
xor ecx, dword [esi + 0x24]
xor eax, ecx
and eax, 2
xor eax, ecx
lea ecx, [edx + edx]
xor ecx, eax
and ecx, 4
xor ecx, eax
lea eax, [edx*8]
xor eax, ecx
and eax, 8
xor eax, ecx
mov dword [esi + 0x24], eax
jmp 0x40521e
mov dl, byte [esi]
test dh, dh
je 0x40523c
inc byte [esi + 0xc]
inc bl
cmp byte [esi + 0xc], 0xf
mov byte [ebp - 4], bl
jbe 0x405102
pop edi
pop esi
mov eax, 0x80000003
pop ebx
mov esp, ebp
pop ebp
ret
movzx eax, bl
mov dword [ebp - 8], eax
mov cl, byte [eax + edi]
movzx eax, cl
cmp byte [eax + 0x450520], 2
jne 0x4053ab
cmp cl, 0x8f
jne 0x40527c
push ecx
push dword [ebp - 4]
mov edx, edi
mov ecx, esi
call fcn.00404cb0
add esp, 8
cmp eax, 0x80000000
jb 0x4053af
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp cl, 0xc5
jne 0x405359
mov ecx, dword [ebp - 8]
lea eax, [ecx + 2]
cmp eax, 0xf
ja 0x4053d5
and dl, 0xf
cmp dl, 2
je 0x4052aa
mov al, byte [ecx + edi + 1]
and al, 0xc0
cmp al, 0xc0
jne 0x4053af
mov al, byte [esi + 7]
test al, 0x32
jne 0x40534d
mov cl, byte [esi + 6]
test cl, 0x10
jne 0x40534d
test al, 8
jne 0x40534d
or cl, 0x20
mov byte [esi + 3], 2
mov byte [esi + 6], cl
movzx ecx, bl
movzx eax, byte [ecx + edi]
mov byte [esi + 0x20], al
mov al, byte [ecx + edi + 1]
mov ecx, dword [esi + 0x24]
movzx edx, al
and ecx, 0xfffff0ff
mov byte [esi + 0x21], al
or ecx, 0x80
mov eax, edx
add byte [esi + 0xc], 2
shr eax, 7
not eax
add eax, eax
xor eax, ecx
and eax, 2
xor eax, ecx
mov ecx, edx
shr ecx, 3
and eax, 0xfffc3fff
not ecx
and ecx, 0xf
shl ecx, 0xe
xor ecx, eax
mov eax, edx
and eax, 4
shl edx, 5
and ecx, 0xffffcfff
shl eax, 0xa
or ecx, eax
xor edx, ecx
and edx, 0x60
xor edx, ecx
cmp byte [esi + 0xc], 0xf
mov dword [esi + 0x24], edx
jbe 0x4053af
pop edi
pop esi
mov eax, 0x80000003
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0x80000007
pop ebx
mov esp, ebp
pop ebp
ret
cmp cl, 0xc4
jne 0x40537c
push ecx
push dword [ebp - 4]
mov edx, edi
mov ecx, esi
call fcn.00404df0
add esp, 8
cmp eax, 0x80000000
jb 0x4053af
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp cl, 0x62
jne 0x40539f
push ecx
push dword [ebp - 4]
mov edx, edi
mov ecx, esi
call fcn.00404f30
add esp, 8
cmp eax, 0x80000000
jb 0x4053af
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0x80000101
pop ebx
mov esp, ebp
pop ebp
ret
and byte [esi + 3], 0xf0
mov cl, byte [esi + 0xc]
xor cl, byte [esi + 0x12]
movzx eax, byte [esi + 0xd]
and cl, 0xf
xor cl, byte [esi + 0x12]
and al, 0xf
mov byte [esi + 0x12], cl
shl cl, 4
or cl, al
xor eax, eax
pop edi
mov byte [esi + 0xd], cl
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0x80000001
pop ebx
mov esp, ebp
pop ebp
ret