Function at 0x401d00
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
push ebx
push esi
push 0x1c
mov esi, edx
mov byte [ebp - 1], 0
mov eax, ecx
mov dword [ebp - 0x18], 0x45cae0
push 0
push esi
mov dword [ebp - 0x2c], eax
mov ebx, eax
mov byte [ebp - 0xc], 0
call fcn.00440bb0
add esp, 0xc
mov cl, 0x10
nop
mov dl, byte ds:[ebx]
inc ebx
movzx eax, dl
add eax, 0xffffffda
cmp eax, 0xcd
ja case.0x401d4e.39
movzx eax, byte [eax + 0x4022cc]
jmp dword [eax*4 + 0x4022b0]
or byte [ebp - 1], 4
mov byte [esi + 1], dl
jmp 0x401d89
or byte [ebp - 1], 2
mov byte [esi + 1], dl
jmp 0x401d89
or byte [ebp - 1], 0x20
mov byte [esi + 2], dl
jmp 0x401d89
or byte [ebp - 1], 0x40
mov byte [esi + 3], dl
jmp 0x401d89
or byte [ebp - 1], 8
mov byte [esi + 4], dl
jmp 0x401d89
or byte [ebp - 1], 0x10
mov byte [esi + 5], dl
add cl, 0xff
jne 0x401d30
mov cl, byte [ebp - 1]
push edi
movzx edi, cl
shl edi, 0x17
test cl, cl
movzx eax, cl
mov ecx, 1
cmovne ecx, eax
mov dword [ebp - 0x14], edi
mov dword [esi + 0x18], edi
mov dh, cl
mov byte [esi + 6], dl
cmp dl, 0xf
jne 0x401dc4
mov dl, byte [ebx]
inc ebx
mov byte [esi + 7], dl
mov dword [ebp - 0x18], 0x45cb2a
jmp 0x401ddd
cmp dl, 0xa0
jb 0x401ddd
mov dh, cl
cmp dl, 0xa3
ja 0x401ddd
test cl, 0x10
je 0x401dda
or dh, 8
jmp 0x401ddd
and dh, 0xf7
movzx ecx, dl
mov eax, ecx
mov dword [ebp - 0x20], ecx
shr eax, 2
mov dword [ebp - 0x24], eax
and ecx, 0x80000003
jns 0x401df8
dec ecx
or ecx, 0xfffffffc
inc ecx
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x28], ecx
movzx eax, byte [eax + edi]
add eax, ecx
mov ecx, edi
mov edi, dword [ebp - 0x14]
mov cl, byte [eax + ecx]
mov dword [ebp - 0x10], ecx
cmp cl, 0xff
jne 0x401e3b
mov eax, dword [ebp - 0x20]
or edi, 0x3000
xor cl, cl
mov dword [ebp - 0x14], edi
and eax, 0xfffffffd
mov dword [esi + 0x18], edi
mov dword [ebp - 0x10], ecx
cmp eax, 0x24
jne 0x401e3b
mov cl, 1
mov dword [ebp - 0x14], edi
mov byte [ebp - 0x1c], 0
jmp 0x401e59
mov byte ds:[ebp - 0x1c], 0
test cl, cl
jns 0x401e5c
movzx eax, cl
mov ecx, dword [ebp - 0x18]
and eax, 0x7f
movzx ecx, word [eax + ecx]
mov eax, ecx
shr eax, 8
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x10], ecx
mov al, byte [esi + 7]
mov byte [ebp - 3], al
test al, al
je 0x401e8b
mov eax, dword ds:[ebp - 0x24]
mov ecx, dword [ebp - 0x28]
mov edi, dword [ebp - 0x14]
movzx eax, byte [eax + str.JJJJKRJJJJOLJJJJJJJJUE_JJJEYMFJ_JJJJJJJJJJJJJJacgNJJkmJJEmJJDEJJ]
test byte [eax + ecx + str.JJJJKRJJJJOLJJJJJJJJUE_JJJEYMFJ_JJJJJJJJJJJJJJacgNJJkmJJEmJJDEJJ], dh
mov ecx, edi
je 0x401e8b
or edi, 0x3000
mov dword [esi + 0x18], edi
mov ecx, dword [ebp - 0x10]
test cl, 1
je 0x4021ab
or edi, 1
mov dword [esi + 0x18], edi
mov cl, byte [ebx]
mov al, cl
mov byte [esi + 8], cl
shr al, 6
mov byte [ebp - 2], al
mov byte [esi + 9], al
mov al, cl
shr cl, 3
and al, 7
and cl, 7
mov byte [ebp - 4], al
cmp byte [ebp - 0x1c], 0
mov byte [esi + 0xb], al
mov byte [ebp - 1], cl
mov byte [esi + 0xa], cl
mov dword [ebp - 0x18], edi
je 0x401ee6
mov eax, dword [ebp - 0x1c]
movzx eax, al
shl eax, cl
mov dword [ebp - 0x18], edi
test al, al
jns 0x401ee6
or edi, 0x3000
mov dword [esi + 0x18], edi
jmp 0x401ee9
mov edi, dword [ebp - 0x18]
mov ch, byte [ebp - 3]
mov eax, edi
test ch, ch
jne 0x401f36
cmp dl, 0xd9
jb 0x401f36
cmp dl, 0xdf
ja 0x401f36
mov al, dl
movzx ecx, cl
add al, 0x27
cmp byte [ebp - 2], 3
movzx eax, al
jne 0x401f18
mov ch, byte [ecx + eax*8 + 0x45cbd8]
mov cl, byte [ebp - 4]
jmp 0x401f23
mov al, byte [eax + 0x45cbd1]
mov byte [ebp - 5], al
mov ch, al
shl ch, cl
mov eax, edi
test ch, ch
mov ch, byte [ebp - 3]
jns 0x401f36
or eax, 0x3000
mov dword [esi + 0x18], eax
test dh, 0x20
je 0x401f93
cmp byte ds:[ebp - 2], 3
jne 0x401f4c
or eax, 0x9000
mov dword [esi + 0x18], eax
jmp 0x401f93
mov ah, dl
test ch, ch
jne 0x401f62
and ah, 0xfe
mov edi, 0x45cc99
mov ecx, 0x45cc81
jmp 0x401f70
mov edi, 0x45ccab
mov ecx, 0x45cc99
nop dword [eax]
mov al, byte [ecx]
cmp al, ah
je 0x401f7f
add ecx, 2
cmp ecx, edi
jne 0x401f70
jmp 0x401f8c
movzx eax, byte [ecx + 1]
mov cl, byte [ebp - 1]
shl eax, cl
test al, al
jns 0x401f93
or dword [esi + 0x18], 0x9000
cmp byte [ebp - 3], 0
mov ecx, dword [ebp - 0x20]
je 0x401fed
lea eax, ds:[ecx - 0x20]
cmp eax, 3
ja case.default.0x401fa5
jmp dword [eax*4 + 0x40239c]
mov al, byte [ebp - 1]
mov byte [ebp - 2], 3
cmp al, 4
ja case.0x40206f.197
nop dword [eax + eax]
cmp al, 1
jne case.0x40206f.81
jmp case.0x40206f.197
mov al, byte [ebp - 1]
mov byte [ebp - 2], 3
cmp al, 4
je case.0x40206f.197
nop dword [eax]
cmp al, 5
jne case.0x40206f.81
jmp case.0x40206f.197
mov eax, ecx
sub eax, 0x8c
je 0x402092
nop word [eax + eax]
sub eax, 2
je 0x402087
cmp byte [ebp - 2], 3
mov al, byte [esi + 7]
jne 0x40205a
test al, al
mov dword [ebp - 0x28], 0x45ccba
mov ecx, 0x45cce4
mov edi, 0x45ccba
cmovne edi, ecx
mov ecx, 0x45ccab
cmovne ecx, dword [ebp - 0x28]
cmp ecx, edi
je case.0x40206f.81
cmp byte [ecx], dl
je 0x402046
add ecx, 3
cmp ecx, edi
jne 0x402035
jmp case.0x40206f.81
test byte [ecx + 1], dh
je case.0x40206f.81
movzx eax, byte [ecx + 2]
mov cl, byte [ebp - 1]
shl eax, cl
test al, al
jns case.0x40206f.197
jmp case.0x40206f.81
test al, al
je case.0x40206f.81
lea eax, [ecx - 0x50]
cmp eax, 0xa7
ja case.0x40206f.81
movzx eax, byte [eax + 0x4023bc]
jmp dword [eax*4 + 0x4023ac]
test dh, 9
jne case.0x40206f.197
jmp case.0x40206f.81
nop dword [eax]
test dh, 6
jne case.0x40206f.197
jmp case.0x40206f.81
mov al, byte [ebp - 1]
cmp al, 1
je case.0x40206f.197
cmp al, 5
jmp 0x402096
cmp byte [ebp - 1], 5
jbe case.0x40206f.81
or dword [esi + 0x18], 0x11000
mov al, byte [ebx + 1]
add ebx, 2
cmp byte [ebp - 1], 1
mov ecx, dword [ebp - 0x10]
mov byte [ebp - 5], al
ja 0x4020c8
cmp dl, 0xf6
jne 0x4020bb
or cl, 2
jmp 0x4020c8
nop dword [eax + eax]
cmp dl, 0xf7
jne 0x4020c8
or cl, 0x10
mov dl, byte [ebp - 2]
mov edi, 4
movzx eax, dl
sub eax, 0
je 0x4020fa
sub eax, 1
je 0x4020f4
nop dword [eax]
sub eax, 1
jne 0x40211f
mov byte [ebp - 0xc], 2
test dh, 0x10
jne 0x40211f
mov byte [ebp - 0xc], 4
jmp 0x40211f
mov byte [ebp - 0xc], 1
jmp 0x40211f
test dh, 0x10
je 0x40210f
cmp byte [ebp - 4], 6
setne al
sub al, 1
and eax, 0xffffff02
jmp 0x40211c
mov eax, dword [ebp - 0xc]
cmp byte [ebp - 4], 5
movzx eax, al
cmove eax, edi
mov dword [ebp - 0xc], eax
nop
cmp dl, 3
je 0x402167
cmp byte [ebp - 4], 4
jne 0x402167
test dh, 0x10
jne 0x402167
mov dl, byte [ebp - 5]
inc ebx
or dword [esi + 0x18], 2
mov al, dl
shr al, 6
mov byte [esi + 0xd], al
mov al, dl
shr al, 3
and al, 7
mov byte [esi + 0xc], dl
and dl, 7
mov byte [esi + 0xe], al
mov eax, dword [ebp - 0xc]
mov byte [esi + 0xf], dl
cmp dl, 5
jne 0x40216a
test byte [ebp - 2], 1
movzx eax, al
cmove eax, edi
jmp 0x40216a
mov eax, dword [ebp - 0xc]
movzx edi, al
dec ebx
mov eax, edi
sub eax, 1
je 0x40219e
sub eax, 1
je 0x40218f
sub eax, 2
jne 0x4021a7
or dword [esi + 0x18], 0x80
mov eax, dword [ebx]
add ebx, edi
mov dword [esi + 0x14], eax
jmp 0x4021b9
or dword [esi + 0x18], 0x40
mov ax, word [ebx]
add ebx, edi
mov word [esi + 0x14], ax
jmp 0x4021b9
or dword [esi + 0x18], 0x20
mov al, byte [ebx]
mov byte [esi + 0x14], al
add ebx, edi
jmp 0x4021b9
test dh, 0x20
je 0x4021b9
or edi, 0x9000
mov dword [esi + 0x18], edi
pop edi
test cl, 0x10
je 0x40220c
and dh, 8
test cl, 0x40
je 0x4021e5
test dh, dh
je 0x402265
or dword [esi + 0x18], 0x108
mov ax, word [ebx]
add ebx, 2
mov word [esi + 0x10], ax
jmp 0x402288
mov eax, dword [esi + 0x18]
test dh, dh
je 0x4021fe
or eax, 8
mov dword [esi + 0x18], eax
mov ax, word [ebx]
add ebx, 2
mov word [esi + 0x10], ax
jmp 0x40220c
or eax, 0x10
mov dword [esi + 0x18], eax
mov eax, dword [ebx]
add ebx, 4
mov dword [esi + 0x10], eax
test cl, 4
je 0x40224c
mov eax, dword [esi + 0x18]
test al, 0x10
je 0x402227
or eax, 8
mov dword [esi + 0x18], eax
mov ax, word [ebx]
mov word [esi + 0x14], ax
jmp 0x402249
test al, 8
je 0x40223c
or eax, 0x800
mov dword [esi + 0x18], eax
mov ax, word [ebx]
mov word [esi + 0x14], ax
jmp 0x402249
or eax, 8
mov dword [esi + 0x18], eax
mov ax, word [ebx]
mov word [esi + 0x10], ax
add ebx, 2
test cl, 2
je 0x40225b
or dword [esi + 0x18], 4
mov al, byte [ebx]
inc ebx
mov byte [esi + 0x10], al
nop dword [eax + eax]
test cl, 0x40
je 0x402276
or dword [esi + 0x18], 0x110
mov eax, dword [ebx]
add ebx, 4
mov dword [esi + 0x10], eax
jmp 0x402288
test cl, 0x20
je 0x402288
or dword [esi + 0x18], 0x104
mov al, byte [ebx]
inc ebx
mov byte [esi + 0x10], al
sub bl, byte [ebp - 0x2c]
mov byte [esi], bl
cmp bl, 0xf
jbe 0x4022a7
or dword [esi + 0x18], 0x5000
mov al, 0xf
mov byte [esi], 0xf
pop esi
movzx eax, al
pop ebx
mov esp, ebp
pop ebp
ret
pop esi
movzx eax, bl
pop ebx
mov esp, ebp
pop ebp
ret