Function at 0x404a20
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
mov esi, ecx
push edi
mov dword [esi], 0xf0f0f00f
mov dword [esi + 4], 0xf0f0f0f0
jmp 0x404a40
mov byte [esi + 0xe0], 0xff
mov byte [esi + 0x102], 0
test byte [esi + 0x199], 1
je 0x404a5d
or byte [esi + 0x14], 2
jmp 0x404a61
and byte [esi + 0x14], 0xfd
mov al, byte [esi + 0x13]
and byte [esi + 0x14], 0xfe
test al, 4
je 0x404a81
movzx ebx, byte [esi + 0x74]
xor al, 4
mov byte [esi + 0x13], al
movzx eax, word [esi + 0xe2]
jmp 0x404ead
and byte [esi + 0x19a], 0xfe
xor eax, eax
mov byte [esi + 0x72], 0
mov word [esi + 0x70], ax
mov word [esi + 0x77], 0x600
mov edi, dword [esi + 0x1b8]
add edi, dword [esi + 0x190]
mov eax, dword [esi + 0x1bc]
mov edx, edi
adc eax, dword [esi + 0x194]
sub edx, dword [esi]
xor ebx, ebx
mov dword [ebp - 0x14], eax
lea esp, [esp]
cmp edx, 0x1000
jae 0x404ad4
mov eax, dword [esi + 8]
mov cl, byte [edx + eax]
inc edx
mov byte [ebp - 3], cl
jmp 0x404afc
push ebx
lea eax, [ebp - 3]
mov edx, 1
push eax
mov ecx, esi
call 0x3adfe0
mov dl, al
mov byte [ebp - 1], dl
test dl, dl
jne 0x404f46
mov cl, byte [ebp - 3]
mov edx, edi
sub edx, dword [esi]
inc edx
add edx, ebx
movzx eax, cl
add eax, 0xffffffda
mov dword [ebp - 0xc], edx
mov byte [ebx + esi + 0x80], cl
cmp eax, 0xcd
ja 0x404bab
movzx eax, byte [eax + 0x6ae3b4c0]
jmp dword [eax*4 + 0x6ae3b490]
inc ebx
cmp cl, 0xf
jne 0x404c06
cmp edx, 0x1000
jae 0x404bc5
mov eax, dword [esi + 8]
mov al, byte [edx + eax]
inc edx
mov byte [ebp - 3], al
jmp 0x404beb
push ebx
lea eax, [ebp - 3]
mov edx, 1
push eax
mov ecx, esi
call 0x3adfe0
mov dl, al
mov byte [ebp - 1], dl
test dl, dl
jne 0x404f46
mov al, byte [ebp - 3]
mov edx, 1
mov byte [ebx + esi + 0x80], al
mov ecx, 0x100
movzx eax, al
inc ebx
add ax, cx
mov dword [ebp - 0xc], edx
movzx eax, ax
jmp 0x404c09
movzx eax, cl
movzx edi, ax
shl edi, 4
mov dword [ebp - 0x14], eax
mov word [esi + 0xe2], ax
mov al, byte [edi + 0x6b22c44c]
mov byte [ebp - 2], al
test al, 0x10
je 0x404c3e
mov ecx, 0x300
test word [esi + 0x70], cx
je 0x404c3e
test byte [esi + 0x13], 0x20
je 0x404c3e
mov dl, 0xf
jmp 0x404f43
test al, 2
je 0x404c6e
movzx eax, word [esi + 0x70]
test al, 8
je 0x404c51
mov ecx, 8
jmp 0x404c6b
and al, 0x80
movzx ecx, al
neg ecx
sbb ecx, ecx
and ecx, 6
cmp byte [esi + 0x16], 3
sbb eax, eax
and eax, 0xfffffffe
add eax, 4
xor ecx, eax
mov byte [esi + 0x79], cl
mov al, byte [edi + 0x6b22c44d]
mov byte [esi + 0x73], al
test al, al
je 0x404d78
movzx eax, al
add eax, 0xfffffffb
cmp eax, 0xc
ja 0x404d78
movzx eax, byte [eax + 0x6ae3b5ac]
jmp dword [eax*4 + 0x6ae3b590]
mov cl, byte [ebp - 2]
mov al, cl
and al, 1
mov byte [ebp - 4], al
jne 0x404d90
cmp byte [esi + 0x78], 6
jne 0x404db4
mov byte [esi + 0x78], 3
jmp 0x404db4
lea edx, [ebp - 0xc]
mov byte [esi + 0x74], bl
mov ecx, esi
call 0x3af3e0
mov dl, al
mov byte [ebp - 1], dl
test dl, dl
jne 0x404f46
movzx ebx, byte [esi + 0x74]
mov edx, dword [ebp - 0xc]
mov cl, byte [ebp - 2]
mov al, byte [esi + 0x73]
test al, al
je 0x404e7c
movzx edi, al
lea ecx, [esi + 0x68]
mov dword [ecx], 0
mov dword [ecx + 4], 0
lea eax, [edi + edx]
cmp eax, 0x1000
ja 0x404e33
lea eax, [edi - 1]
cmp eax, 7
ja 0x404e1d
jmp dword [eax*4 + 0x6ae3b5bc]
xor ecx, ecx
nop
mov eax, dword [esi + 8]
add eax, ecx
mov al, byte [eax + edx]
mov byte [esi + ecx + 0x68], al
inc ecx
cmp ecx, edi
jb 0x404e20
jmp 0x404e4b
push ebx
push ecx
mov edx, edi
mov ecx, esi
call 0x3adfe0
mov dl, al
mov byte [ebp - 1], dl
test dl, dl
jne 0x404f46
mov cl, byte [ebp - 2]
test cl, 4
je 0x404e7a
cmp byte [edi + esi + 0x67], 0
jge 0x404e7a
mov eax, edi
sub eax, 1
je 0x404e68
sub eax, 1
je 0x404e6c
jmp 0x404e73
mov byte [esi + 0x69], 0xff
or eax, 0xffffffff
mov word [esi + 0x6a], ax
mov dword [esi + 0x6c], 0xffffffff
add ebx, edi
cmp ebx, 0xf
jbe 0x404e92
mov dword [esi + 0xdc], 0
mov dl, 0x1d
jmp 0x404f43
movzx eax, word [esi + 0x70]
test al, 0x20
je 0x404ea7
test byte [esi + 0x13], 0x10
je 0x404f01
xor eax, 0x20
mov word [esi + 0x70], ax
mov eax, dword [ebp - 0x14]
mov byte [esi + 0x74], bl
movzx edi, ax
mov ecx, esi
shl edi, 4
mov eax, dword [edi + 0x6b22c440]
call eax
mov ecx, dword [esi + 0x18]
mov dl, al
mov byte [ebp - 1], dl
add dword [ecx], 1
adc dword [ecx + 4], 0
mov eax, dword [edi + 0x6b22c448]
add dword [ecx + 0x10], eax
adc dword [ecx + 0x14], 0
mov eax, dword [edi + 0x6b22c444]
add dword [ecx + 8], eax
adc dword [ecx + 0xc], 0
cmp dl, 8
jae 0x404f1a
movzx eax, byte [esi + 0x74]
cdq
add dword [esi + 0x190], eax
adc dword [esi + 0x194], edx
mov dl, byte [ebp - 1]
jmp 0x404f1f
test cl, 8
jne 0x404f0a
mov dl, 0x16
jmp 0x404f43
cmp byte [ebp - 4], 0
je 0x404ea7
cmp byte [esi + 0x77], 0x10
jae 0x404ea7
mov dl, 0x16
jmp 0x404f43
cmp dl, 0xa
je 0x404f46
mov al, byte [esi + 0x14]
test al, 2
je 0x404f46
xor al, 2
mov byte [esi + 0x14], al
cmp dl, 9
ja 0x404f46
or byte [esi + 0x2f9], 0x40
mov dl, 0x11
mov dword [esi + 0xdc], 2
mov byte [ebp - 1], dl
mov byte [esi + 0x74], bl
mov edi, dword [esi + 0x44]
mov byte [ebp - 2], dl
dec dword [edi + 0x38]
cmp dword [edi + 0x38], 0
jle 0x405482
movzx eax, byte [esi + 0x72]
lea ecx, [esi + 0x80]
add ecx, eax
movzx eax, byte [ecx]
add eax, 0xfffffff1
cmp eax, 0xd3
ja 0x404faa
movzx eax, byte [eax + 0x6ae3b5ec]
jmp dword [eax*4 + 0x6ae3b5dc]
mov al, byte [ecx]
mov byte [edi + 0x2a], al
cmp dl, 0x13
je 0x404ff6
cmp dl, 0x14
je 0x404ff6
cmp dl, 0x11
jne 0x405004
cmp dword [esi + 0xdc], 3
jne 0x405004
movzx eax, byte [esi + 0x74]
sub word [esi + 0x190], ax
mov byte [esi + 0x68], 1
jmp 0x404ffc
sub dl, 0x10
mov byte [esi + 0x68], dl
mov dl, 0xc
mov byte [ebp - 2], dl
mov byte [ebp - 1], dl
movzx ebx, dl
mov eax, ebx
mov dword [ebp - 0xc], ebx
cmp eax, 0x30
ja 0x40538c
jmp 0x405020
movzx eax, byte [eax + 0x6ae3b738]
jmp dword [eax*4 + 0x6ae3b714]
mov cl, byte [ebp - 2]
cmp cl, 0x10
jb 0x405409
cmp cl, 0x2f
ja 0x405409
movzx eax, cl
add eax, 0xfffffff0
cmp eax, 0xe
ja 0x405473
movzx eax, byte [eax + 0x6ae3b784]
jmp dword [eax*4 + 0x6ae3b76c]
cmp cl, 0x30
jb 0x404a40
cmp cl, 0x33
ja 0x404a40
mov al, cl
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov cl, 0x30
mov byte [edi + 0x28], 0xe3
mov al, cl
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov byte [edi + 0x28], 0xe2
pop edi
pop esi
mov al, 0x30
pop ebx
mov esp, ebp
pop ebp
ret