Function at 0x4027f0
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov edx, dword [ebp + 0xc]
xorps xmm0, xmm0
xor cl, cl
mov dword [ebp - 0x18], 0x410c50
push ebx
mov ebx, dword [ebp + 8]
movdqu xmmword [edx], xmm0
mov byte [ebp - 0x10], cl
movq qword [edx + 0x10], xmm0
mov dword [edx + 0x18], 0
mov byte [ebp - 5], 0x10
mov ch, byte [ebx]
inc ebx
movzx eax, ch
sub eax, 0x26
mov byte [ebp - 1], ch
cmp eax, 0xcd
ja case.0x40283a.39
movzx eax, byte [eax + 0x402d5c]
jmp dword [eax*4 + 0x402d40]
mov byte [edx + 1], ch
or cl, 4
jmp 0x40286f
mov byte [edx + 1], ch
or cl, 2
jmp 0x40286f
mov byte [edx + 2], ch
or cl, 0x20
jmp 0x40286f
mov byte [edx + 3], ch
or cl, 0x40
jmp 0x40286f
mov byte [edx + 4], ch
or cl, 8
jmp 0x40286f
mov byte [edx + 5], ch
or cl, 0x10
dec byte [ebp - 5]
jne 0x402820
movzx eax, cl
shl eax, 0x17
test cl, cl
push esi
mov dword [edx + 0x18], eax
mov esi, 1
movzx eax, cl
cmove eax, esi
mov byte [edx + 6], ch
mov dword [ebp - 0xc], eax
push edi
cmp ch, 0xf
jne 0x4028a9
mov ch, byte [ebx]
inc ebx
mov byte [ebp - 1], ch
mov byte [edx + 7], ch
mov dword [ebp - 0x18], 0x410c9a
jmp 0x4028c3
mov al, ch
add al, 0x60
cmp al, 3
ja 0x4028c3
mov eax, dword [ebp - 0xc]
test al, 0x10
je 0x4028bd
or eax, 8
jmp 0x4028c0
and eax, 0xfffffff7
mov dword [ebp - 0xc], eax
movzx eax, ch
mov edi, eax
mov dword [ebp - 0x1c], eax
mov esi, eax
shr edi, 2
and esi, 0x80000003
jns 0x4028dd
dec esi
or esi, 0xfffffffc
inc esi
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x20], esi
movzx eax, byte [edi + eax]
add eax, esi
mov al, byte [eax + edx]
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x14], eax
cmp al, 0xff
jne 0x402921
mov eax, dword [ebp - 0x1c]
xor cl, cl
or dword [edx + 0x18], 0x3000
and eax, 0xfffffffd
movzx esi, cl
cmp eax, 0x24
mov dword [ebp - 0x14], esi
mov eax, esi
mov esi, 1
cmove eax, esi
mov esi, dword [ebp - 0x20]
mov dword [ebp - 0x14], eax
mov byte [ebp - 0x20], 0
test al, al
jns 0x402942
mov edx, dword [ebp - 0x18]
movzx eax, al
and eax, 0x7f
movzx eax, word [eax + edx]
mov edx, dword [ebp + 0xc]
mov byte [ebp - 0x14], al
shr eax, 8
mov dword [ebp - 0x20], eax
mov al, byte [edx + 7]
mov byte [ebp - 5], al
test al, al
je 0x402969
movzx eax, byte [edi + 0x410d80]
mov edx, dword [ebp - 0xc]
test byte [eax + esi + 0x410d80], dl
mov edx, dword [ebp + 0xc]
je 0x402969
or dword [edx + 0x18], 0x3000
mov eax, dword [ebp - 0x14]
test al, 1
je 0x402c4f
mov cl, byte [ebx]
or dword [edx + 0x18], 1
mov al, cl
shr al, 6
mov byte [ebp - 4], al
mov byte [edx + 9], al
mov al, cl
and al, 7
mov byte [edx + 8], cl
shr cl, 3
and cl, 7
mov byte [ebp - 3], al
mov byte [edx + 0xb], al
mov eax, dword [ebp - 0x20]
mov byte [ebp - 2], cl
mov byte [edx + 0xa], cl
test al, al
je 0x4029b5
movzx eax, al
shl eax, cl
test al, al
jns 0x4029b5
or dword [edx + 0x18], 0x3000
mov al, byte [ebp - 5]
test al, al
jne 0x402a02
mov al, ch
add al, 0x27
cmp al, 6
ja 0x4029ff
mov al, ch
add al, 0x27
cmp byte [ebp - 4], 3
jne 0x4029e4
movzx ecx, al
movzx eax, byte [ebp - 2]
mov al, byte [eax + ecx*8 + 0x410d48]
mov cl, byte [ebp - 3]
mov ch, byte [ebp - 1]
jmp 0x4029ed
movzx eax, al
mov al, byte [eax + 0x410d41]
shl al, cl
test al, al
mov al, byte [ebp - 5]
jns 0x402a02
or dword [edx + 0x18], 0x3000
jmp 0x402a02
mov al, byte [ebp - 5]
test byte [ebp - 0xc], 0x20
je 0x402a51
cmp byte [ebp - 4], 3
je 0x402a4a
mov cl, ch
test al, al
je 0x402a20
mov esi, 0x410e09
mov edi, 0x410e1b
jmp 0x402a30
mov cl, ch
mov esi, 0x410df1
mov edi, 0x410e09
and cl, 0xfe
nop
cmp byte [esi], cl
je 0x402a3d
add esi, 2
cmp esi, edi
jne 0x402a30
jmp 0x402a4a
movzx eax, byte [esi + 1]
mov cl, byte [ebp - 2]
shl eax, cl
test al, al
jns 0x402a51
or dword [edx + 0x18], 0x9000
mov cl, byte [ebp - 5]
mov esi, dword [ebp - 0x1c]
test cl, cl
je 0x402aa2
lea eax, [esi - 0x20]
cmp eax, 3
ja case.default.0x402a63
jmp dword [eax*4 + 0x402e2c]
mov al, byte [ebp - 2]
mov byte [ebp - 4], 3
cmp al, 4
ja case.0x402b15.197
cmp al, 1
jne case.0x402b15.81
jmp case.0x402b15.197
mov al, byte [ebp - 2]
mov byte [ebp - 4], 3
cmp al, 4
je case.0x402b15.197
cmp al, 5
jne case.0x402b15.81
jmp case.0x402b15.197
mov eax, esi
sub eax, 0x8c
je 0x402b37
sub eax, 2
je 0x402b2c
cmp byte [ebp - 4], 3
jne 0x402b00
test cl, cl
je 0x402aca
mov ecx, 0x410e2a
mov esi, 0x410e54
jmp 0x402ad4
mov ecx, 0x410e1b
mov esi, 0x410e2a
mov ah, byte [ebp - 1]
mov al, byte [ecx]
cmp al, ah
je 0x402ae6
add ecx, 3
cmp ecx, esi
jne 0x402ad7
jmp 0x402b47
mov edx, dword [ebp - 0xc]
test byte [ecx + 1], dl
mov edx, dword [ebp + 0xc]
je 0x402b47
movzx eax, byte [ecx + 2]
mov cl, byte [ebp - 2]
shl eax, cl
test al, al
jns case.0x402b15.197
jmp case.0x402b15.81
test cl, cl
je case.0x402b15.81
lea eax, [esi - 0x50]
cmp eax, 0xa7
ja case.0x402b15.81
movzx eax, byte [eax + 0x402e4c]
jmp dword [eax*4 + 0x402e3c]
test byte [ebp - 0xc], 9
jne case.0x402b15.197
jmp case.0x402b15.81
test byte [ebp - 0xc], 6
jne case.0x402b15.197
jmp case.0x402b15.81
mov al, byte [ebp - 2]
cmp al, 1
je case.0x402b15.197
cmp al, 5
jmp 0x402b3b
cmp byte [ebp - 2], 5
jbe case.0x402b15.81
or dword [edx + 0x18], 0x11000
mov ah, byte [ebp - 1]
mov al, byte [ebx + 1]
add ebx, 2
cmp byte [ebp - 2], 1
mov byte [ebp + 0xf], al
ja 0x402b6a
cmp ah, 0xf6
jne 0x402b61
or byte [ebp - 0x14], 2
jmp 0x402b6a
cmp ah, 0xf7
jne 0x402b6a
or byte [ebp - 0x14], 0x10
movzx eax, byte [ebp - 4]
mov esi, 4
mov ecx, dword [ebp - 0xc]
sub eax, 0
je 0x402b99
dec eax
je 0x402b93
dec eax
mov al, byte [ebp - 3]
jne 0x402bbe
mov byte [ebp - 0x10], 2
test cl, 0x10
jne 0x402bbe
mov byte [ebp - 0x10], 4
jmp 0x402bbe
mov byte [ebp - 0x10], 1
jmp 0x402bbb
test cl, 0x10
je 0x402bab
mov al, byte [ebp - 3]
cmp al, 6
jne 0x402bbe
mov byte [ebp - 0x10], 2
jmp 0x402bbe
mov eax, dword [ebp - 0x10]
cmp byte [ebp - 3], 5
movzx eax, al
cmove eax, esi
mov dword [ebp - 0x10], eax
mov al, byte [ebp - 3]
cmp byte [ebp - 4], 3
je 0x402c06
cmp al, 4
jne 0x402c06
test cl, 0x10
jne 0x402c06
mov ah, byte [ebp + 0xf]
inc ebx
or dword [edx + 0x18], 2
mov al, ah
shr al, 6
mov byte [edx + 0xd], al
mov al, ah
shr al, 3
and al, 7
mov byte [edx + 0xc], ah
mov byte [edx + 0xe], al
movzx eax, ah
and eax, 7
mov byte [edx + 0xf], al
cmp al, 5
mov eax, dword [ebp - 0x10]
jne 0x402c09
test byte [ebp - 4], 1
movzx eax, al
cmove eax, esi
jmp 0x402c09
mov eax, dword [ebp - 0x10]
movzx esi, al
dec ebx
mov eax, esi
dec eax
je 0x402c3f
dec eax
je 0x402c2d
sub eax, 2
jne 0x402c48
mov eax, dword [ebx]
or dword [edx + 0x18], 0x80
add ebx, esi
mov dword [edx + 0x14], eax
mov eax, dword [ebp - 0x14]
jmp 0x402c5e
mov ax, word [ebx]
or dword [edx + 0x18], 0x40
add ebx, esi
mov word [edx + 0x14], ax
mov eax, dword [ebp - 0x14]
jmp 0x402c5e
mov al, byte [ebx]
or dword [edx + 0x18], 0x20
mov byte [edx + 0x14], al
mov eax, dword [ebp - 0x14]
add ebx, esi
jmp 0x402c5e
mov ecx, dword [ebp - 0xc]
test cl, 0x20
je 0x402c5e
or dword [edx + 0x18], 0x9000
pop edi
pop esi
test al, 0x10
je 0x402ca8
test al, 0x40
je 0x402c87
test cl, 8
je 0x402cff
mov ax, word [ebx]
or dword [edx + 0x18], 0x108
add ebx, 2
mov word [edx + 0x10], ax
jmp 0x402d22
test cl, 8
je 0x402c9c
mov ax, word [ebx]
or dword [edx + 0x18], 8
add ebx, 2
mov word [edx + 0x10], ax
jmp 0x402ca8
mov eax, dword [ebx]
or dword [edx + 0x18], 0x10
add ebx, 4
mov dword [edx + 0x10], eax
mov ecx, dword [ebp - 0x14]
test cl, 4
je 0x402ceb
mov eax, dword [edx + 0x18]
test al, 0x10
je 0x402cc6
or eax, 8
mov dword [edx + 0x18], eax
mov ax, word [ebx]
mov word [edx + 0x14], ax
jmp 0x402ce8
test al, 8
je 0x402cdb
or eax, 0x800
mov dword [edx + 0x18], eax
mov ax, word [ebx]
mov word [edx + 0x14], ax
jmp 0x402ce8
or eax, 8
mov dword [edx + 0x18], eax
mov ax, word [ebx]
mov word [edx + 0x10], ax
add ebx, 2
test cl, 2
je 0x402cfa
mov al, byte [ebx]
or dword [edx + 0x18], 4
inc ebx
mov byte [edx + 0x10], al
test cl, 0x40
je 0x402d10
mov eax, dword [ebx]
or dword [edx + 0x18], 0x110
add ebx, 4
mov dword [edx + 0x10], eax
jmp 0x402d22
test cl, 0x20
je 0x402d22
mov al, byte [ebx]
or dword [edx + 0x18], 0x104
inc ebx
mov byte [edx + 0x10], al
sub ebx, dword [ebp + 8]
mov byte [edx], bl
cmp bl, 0xf
pop ebx
jbe 0x402d37
or dword [edx + 0x18], 0x5000
mov byte [edx], 0xf
movzx eax, byte [edx]
mov esp, ebp
pop ebp
ret 8