Function at 0x40a238
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x2c
mov eax, dword [ebp + 4]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x10], 0xec1ae820
mov bl, byte [ebp - 0x19]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x10]
cmp eax, 0xec1ae81f
jle 0x40a2b7
cmp eax, 0x38aa8f11
jle 0x40a32c
cmp eax, 0x5c4e5be3
jg 0x40a3c5
cmp eax, 0x4b395386
jg 0x40a537
cmp eax, 0x38aa8f12
je 0x40a682
cmp eax, 0x3dfa35e2
jne 0x40a25d
mov eax, dword [ebp - 0x18]
shr eax, 1
and eax, 0xfffffffc
imul eax, eax, 0xd2
add eax, 0x5f
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], 0xa3ca849d
jmp 0x40a25d
cmp eax, 0xcb46c622
jle 0x40a37b
cmp eax, 0xd6e2ff17
jg 0x40a418
cmp eax, 0xd392ed9a
jg 0x40a55d
cmp eax, 0xcb46c623
je 0x40a62a
cmp eax, 0xcc29bac9
jne 0x40a25d
mov eax, dword [ebp - 0x14]
mov ecx, 0xcc
add eax, ecx
shr eax, 0xf
add eax, 0x90
mov dword [ebp - 0x14], eax
push 0x4320
push 0x4eaa
push 0x5e9d
push eax
push 0x4fb0
call fcn.0040a90b
add esp, 0x14
mov dword [ebp - 0x10], 0xfad1b1b1
jmp 0x40a25d
cmp eax, 0x800fd23
jle 0x40a475
cmp eax, 0x1c399551
jg 0x40a591
cmp eax, 0x800fd24
je 0x40a4c3
cmp eax, 0x17d19e4b
jne 0x40a25d
mov eax, dword [ebp - 0x28]
add eax, 2
push dword [ebp - 0x20]
push eax
call fcn.0040a238
add esp, 8
test eax, eax
setne bl
mov dword [ebp - 0x10], 0x1c399552
jmp 0x40a25d
cmp eax, 0x9ca3797b
jle 0x40a4d6
cmp eax, 0xb1bc8a41
jg 0x40a5de
cmp eax, 0x9ca3797c
je 0x40a6bc
cmp eax, 0xa3ca849d
jne 0x40a25d
mov eax, dword [ebp - 0x20]
add eax, 2
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x28]
add eax, 2
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x10], 0xec1ae820
jmp 0x40a25d
cmp eax, 0x6bc14ec8
jg 0x40a5f9
cmp eax, 0x5c4e5be4
je 0x40a6f1
cmp eax, 0x6720407a
jne 0x40a25d
mov esi, dword [ebp - 0x14]
shr esi, 0xa
add esi, 0xa6
mov dword [ebp - 0x14], esi
push 0x4392
push esi
call fcn.0040a238
add esp, 8
push esi
call fcn.0040a8ee
add esp, 4
mov dword [ebp - 0x10], 0x8282ee34
jmp 0x40a25d
cmp eax, 0xe781d287
jle 0x40a667
cmp eax, 0xe781d288
je 0x40a73c
cmp eax, 0xea12167b
jne 0x40a25d
mov eax, dword [ebp - 0x14]
shr eax, 2
lea ecx, [eax + eax*8]
lea esi, [ecx + ecx*2]
add esi, eax
add esi, eax
mov dword [ebp - 0x14], esi
push esi
push 0x4bb8
call fcn.0040a238
add esp, 8
mov eax, 0xfad1b1b1
cmp esi, 0xc8
je 0x40a8c8
mov eax, 0xdbb36fbb
jmp 0x40a8c8
cmp eax, 0xec1ae820
je 0x40a75b
cmp eax, 0xf9b8cbef
je 0x40a773
cmp eax, 0xfad1b1b1
jne 0x40a25d
mov eax, dword [ebp - 0x20]
movzx eax, word [eax]
mov word [ebp - 0x24], ax
xor ebx, ebx
movzx eax, word [ebp - 0x24]
test ax, ax
je 0x40a654
cmp ax, 0x2a
je 0x40a62a
cmp ax, 0x3f
je 0x40a3a7
mov dword [ebp - 0x18], 0xcc000000
mov dword [ebp - 0x10], 0xd67414a0
jmp 0x40a25d
cmp eax, 0x8282ee34
je 0x40a78d
cmp eax, 0x86fc65c9
je 0x40a7bc
cmp eax, 0x971633db
jne 0x40a25d
mov ecx, dword [ebp - 0x18]
add ecx, 0x18
mov eax, ecx
imul eax, ecx
shl ecx, 5
and ecx, 0xffffe0
imul edx, eax, 0x2311
imul ecx, ecx, 0xc1
dec edx
add ecx, 0xffffff6c
mov dword [ebp - 0x18], ecx
mov ecx, 0xdbb36fbb
cmp edx, eax
je 0x40a52f
mov ecx, 0x17d19e4b
mov dword [ebp - 0x10], ecx
jmp 0x40a25d
cmp eax, 0x4b395387
je 0x40a7e3
cmp eax, 0x5575b63a
jne 0x40a25d
add dword [ebp - 0x14], 0xffffffac
mov dword [ebp - 0x10], 0x74d3974c
jmp 0x40a25d
cmp eax, 0xd392ed9b
je 0x40a829
cmp eax, 0xd67414a0
jne 0x40a25d
movzx ecx, word [ebp - 0x22]
mov eax, 0x3dfa35e2
cmp cx, word [ebp - 0x24]
je 0x40a587
mov eax, 0x1c399552
mov dword [ebp - 0x10], eax
xor ebx, ebx
jmp 0x40a25d
cmp eax, 0x1c399552
je 0x40a654
cmp eax, 0x25e6dbde
jne 0x40a25d
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff2
mov ecx, eax
shr ecx, 0xa
imul ecx, ecx
imul edx, ecx, 0x1ffb
dec edx
shr eax, 0xc
and eax, 0x3ffff
mov dword [ebp - 0x18], eax
mov eax, 0x86fc65c9
cmp ecx, edx
je 0x40a8c8
mov eax, 0x6bc14ec9
jmp 0x40a8c8
cmp eax, 0xb1bc8a42
je 0x40a86a
cmp eax, 0xb9a360cd
je 0x40a898
jmp 0x40a25d
cmp eax, 0x6bc14ec9
je 0x40a881
cmp eax, 0x74d3974c
jne 0x40a25d
mov eax, dword [ebp - 0x34]
cmp byte [eax], 0xcc
mov eax, 0xb9a360cd
je 0x40a8c8
mov eax, 0x25e6dbde
jmp 0x40a8c8
mov eax, dword [ebp - 0x20]
add eax, 2
push eax
push dword [ebp - 0x28]
call fcn.0040a238
add esp, 8
mov ecx, 0x971633db
test eax, eax
je 0x40a64a
mov ecx, 0x1c399552
mov dword [ebp - 0x10], ecx
mov bl, 1
jmp 0x40a25d
mov eax, ebx
and al, 1
mov byte [ebp - 0x1b], al
mov dword [ebp - 0x10], 0xd6e2ff18
jmp 0x40a25d
cmp eax, 0xdbb36fbb
je 0x40a8ad
cmp eax, 0xd6e2ff18
jne 0x40a25d
jmp 0x40a8d0
mov eax, dword [ebp - 0x14]
shr eax, 0xa
and eax, 0x1fffff
imul esi, eax, 0xd6
mov dword [ebp - 0x14], esi
push 0x36bf
push esi
call fcn.0040a238
add esp, 8
mov eax, 0xe781d288
cmp esi, 0xa
jae 0x40a8c8
mov eax, 0x4b395387
jmp 0x40a8c8
mov eax, dword [ebp - 0x18]
lea ecx, [eax + eax*8]
lea ecx, [eax + ecx*4]
imul ecx, ecx
imul edx, ecx, 0x37d
dec edx
imul eax, eax, 0x2422
mov dword [ebp - 0x18], eax
mov eax, 0xb1bc8a42
cmp ecx, edx
je 0x40a6e6
mov eax, 0x1c399552
mov dword [ebp - 0x10], eax
mov bl, byte [ebp - 0x1a]
jmp 0x40a25d
mov eax, dword [ebp - 0x14]
lea esi, [eax + eax*2]
shl esi, 0xb
add esi, 0xffffea88
shr esi, 1
mov dword [ebp - 0x14], esi
push 0x13a6
push esi
call fcn.0040a238
add esp, 8
push 0x1b5
push 0x2d5b
push 0x5590
push 0x39a1
push esi
call fcn.0040a90b
add esp, 0x14
mov dword [ebp - 0x10], 0x5575b63a
jmp 0x40a25d
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffffa
mov dword [ebp - 0x14], ecx
mov eax, 0xcc29bac9
cmp ecx, 0xec
jge 0x40a8c3
jmp 0x40a8c8
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10], 0x74d3974c
jmp 0x40a25d
mov eax, dword [ebp - 0x18]
shl eax, 0x14
add eax, 0xfea00000
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], 0xdbb36fbb
jmp 0x40a25d
mov eax, dword [ebp - 0x14]
shl eax, 6
mov ecx, 0xfe
add eax, ecx
shr eax, 0xb
add eax, ecx
mov dword [ebp - 0x14], eax
push 0xd9
push eax
call fcn.0040a238
add esp, 8
mov dword [ebp - 0x10], 0x74d3974c
jmp 0x40a25d
mov ecx, dword [ebp - 0x14]
shl ecx, 4
add ecx, 0xfffffebe
mov dword [ebp - 0x14], ecx
mov eax, 0x5c4e5be4
cmp ecx, 0x4f
jae 0x40a8c8
mov eax, 0x6720407a
jmp 0x40a8c8
mov esi, dword [ebp - 0x14]
mov edi, esi
shr edi, 0xe
add edi, 0x39
shr edi, 0xa
add edi, 0x6a
mov dword [ebp - 0x14], edi
push 0xc76
push edi
call fcn.0040a238
add esp, 8
push edi
call fcn.0040a8ee
add esp, 4
mov eax, 0xfad1b1b1
cmp esi, 0x12f1c000
jb 0x40a8c8
mov eax, 0xea12167b
jmp 0x40a8c8
mov esi, dword [ebp - 0x14]
shr esi, 9
add esi, 0xda
mov dword [ebp - 0x14], esi
push esi
call fcn.0040a8ee
add esp, 4
push esi
push 0x12e
push 0x381d
push 0x2e91
push 0x29bc
call fcn.0040a90b
add esp, 0x14
mov dword [ebp - 0x10], 0x74d3974c
jmp 0x40a25d
mov eax, dword [ebp - 0x20]
cmp word [eax], 0
sete byte [ebp - 0x1a]
mov dword [ebp - 0x10], 0x9ca3797c
jmp 0x40a25d
mov eax, dword [ebp - 0x34]
movzx eax, word [eax]
cmp eax, 0xcd03
je 0x40a898
movzx eax, ax
cmp eax, 0xf0b
jne 0x40a8ad
mov dword [ebp - 0x38], ebx
popal
jmp 0x40a89c
mov eax, dword [ebp - 0x28]
movzx eax, word [eax]
mov word [ebp - 0x22], ax
cmp word [ebp - 0x22], 0
mov eax, 0xb1bc8a42
je 0x40a8c8
mov eax, 0xfad1b1b1
mov dword [ebp - 0x10], eax
jmp 0x40a25d
and bl, 1
mov byte [ebp - 0x19], bl
mov eax, dword [ebp - 0x2c]
mov dword [ebp + 8], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp + 0xc], eax
movzx eax, byte [ebp - 0x1b]
add esp, 0x2c
pop esi
pop edi
pop ebx
pop ebp
ret