Function at 0x409f21
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x34
mov eax, dword [ebp + 8]
mov dword [ebp - 0x10], 0x39c0947c
lea ecx, [eax + 8]
mov dword [ebp - 0x2c], ecx
add eax, 4
mov dword [ebp - 0x28], eax
mov edi, dword [ebp - 0x34]
mov eax, dword [ebp - 0x10]
cmp eax, 0xe7eb6c87
jg 0x409fa4
cmp eax, 0xb227df7d
jg 0x40a010
cmp eax, 0x95a43c8a
jle 0x40a0a7
cmp eax, 0xa63a7ff4
jg 0x40a1c2
cmp eax, 0x95a43c8b
je 0x40a289
cmp eax, 0xa42e8fd6
jne 0x409f43
mov eax, dword [ebp - 0x24]
movzx eax, word [eax]
cmp eax, 0xcd03
je 0x40a1ad
movzx eax, ax
cmp eax, 0xf0b
je 0x40a1ad
jmp 0x40a245
cmp eax, 0x389c77e8
jle 0x40a04e
cmp eax, 0x5e69fb00
jle 0x40a0f1
cmp eax, 0x79fe424a
jg 0x40a217
cmp eax, 0x5e69fb01
je 0x40a2ba
cmp eax, 0x70ca823d
jne 0x409f43
imul eax, edi, 0x71
add eax, 0x2c95
shr eax, 7
mov edi, eax
shl edi, 8
sub edi, eax
sub edi, eax
add edi, 0xffff11e0
mov eax, 0xd6ff24ad
cmp edi, 0xaa
jl 0x40a45b
mov eax, 0xfc344944
jmp 0x40a45b
cmp eax, 0xbe8dfb6b
jle 0x40a147
cmp eax, 0xd5aac675
jle 0x40a263
cmp eax, 0xd5aac676
je 0x40a2d2
cmp eax, 0xd6ff24ad
jne 0x409f43
mov eax, dword [ebp + 4]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x10], 0xc252d93
jmp 0x409f43
cmp eax, 0xc252d92
jg 0x40a18c
cmp eax, 0xe7eb6c88
je 0x40a303
cmp eax, 0xed35f764
je 0x40a31e
cmp eax, 0xfc344944
jne 0x409f43
add edi, 0x97
shr edi, 0xe
add edi, 0xfffffdd4
shr edi, 0xf
mov eax, 0xa63a7ff5
cmp edi, 0xbe
je 0x40a45b
mov eax, 0x3206c62a
jmp 0x40a45b
cmp eax, 0x81aacd54
je 0x40a32a
cmp eax, 0x83db9c68
je 0x40a245
cmp eax, 0x8b38ceed
jne 0x409f43
add edi, edi
add edi, 0x144
push edi
call fcn.00408b4c
add esp, 4
mov eax, 0xb9ce6b7e
cmp edi, 4
jb 0x40a45b
mov eax, 0xad3225e8
jmp 0x40a45b
cmp eax, 0x389c77e9
je 0x40a33e
cmp eax, 0x39c0947c
je 0x40a375
cmp eax, 0x55681dea
jne 0x409f43
imul eax, dword [ebp - 0x14], 0x93
mov ecx, eax
imul ecx, eax
shr eax, 1
imul edx, ecx, 0x5a0d
dec edx
imul eax, eax, 0xbd1
mov dword [ebp - 0x14], eax
mov eax, 0xf0a6a98d
cmp ecx, edx
je 0x40a45b
mov eax, 0xa42e8fd6
jmp 0x40a45b
cmp eax, 0xb227df7e
je 0x40a393
cmp eax, 0xb9ce6b7e
je 0x40a3be
cmp eax, 0xba26994b
jne 0x409f43
shl edi, 4
and edi, 0x1fffff0
mov eax, 0xb9ce6b7e
cmp edi, 0xd9
jb 0x40a45b
mov eax, 0x10c6cb07
jmp 0x40a45b
cmp eax, 0xc252d93
je 0x40a3d5
cmp eax, 0x2e480e9e
je 0x40a3e9
cmp eax, 0x3206c62a
jne 0x409f43
mov dword [ebp - 0x30], edi
popal
jmp 0x40a1b1
cmp eax, 0xa63a7ff5
je 0x40a42a
cmp eax, 0xad3225e8
jne 0x409f43
push dword [ebp - 0x3c]
push dword [ebp - 0x20]
mov esi, dword [0x46f21c]
call esi
call fcn.00405bf5
push 0x46411e
call fcn.0043cabc
add esp, 4
push eax
push dword [ebp - 0x20]
call esi
call fcn.00405bf5
push dword [ebp + 0xc]
push dword [ebp - 0x20]
call esi
mov dword [ebp - 0x10], 0xd6ff24ad
jmp 0x409f43
cmp eax, 0x79fe424b
je 0x40a463
cmp eax, 0x7c26b309
jne 0x409f43
shl edi, 0xd
or edi, 4
imul edi, edi, 0xf8
mov dword [ebp - 0x10], 0xe7eb6c88
jmp 0x409f43
push 2
push 0x104
call fcn.0044e041
add esp, 8
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x10], 0xd5aac676
jmp 0x409f43
cmp eax, 0xbe8dfb6c
jne 0x40a480
mov cl, byte [ebp - 0x15]
mov eax, 0x95a43c8b
cmp cl, 0xcc
je 0x40a45b
mov eax, 0x55681dea
jmp 0x40a45b
mov ecx, dword [ebp - 0x14]
mov eax, ecx
shr eax, 6
imul eax, eax
imul edx, eax, 0x7bab
shr ecx, 0xa
and ecx, 0xfffffff0
dec edx
mov dword [ebp - 0x14], ecx
mov ecx, 0x8b38ceed
cmp edx, eax
je 0x40a2b2
mov ecx, 0x3206c62a
mov dword [ebp - 0x10], ecx
jmp 0x409f43
mov eax, dword [ebp - 0x14]
shl eax, 0x19
or eax, 0x42
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], 0xbe8dfb6c
jmp 0x409f43
mov eax, dword [ebp + 8]
push dword [eax]
push dword [ebp - 0x1c]
mov esi, dword [0x46f21c]
call esi
push 0x464178
push dword [ebp - 0x1c]
call esi
call fcn.00405bf5
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x10], 0x2e480e9e
jmp 0x409f43
add edi, 0xffffffbf
mov eax, 0xbe8dfb6c
cmp edi, 0xb
jge 0x40a45b
mov eax, 0xd6ff24ad
jmp 0x40a45b
mov dword [ebp - 0x10], 0xb9ce6b7e
jmp 0x409f43
mov eax, dword [ebp - 0x38]
mov eax, dword [eax]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x10], 0xad3225e8
jmp 0x409f43
mov eax, dword [ebp - 0x14]
lea ecx, [eax - 0xcb]
imul ecx, ecx
imul edx, ecx, 0x3ad5
dec edx
lea eax, [eax*8 - 0x248]
shr eax, 2
mov dword [ebp - 0x14], eax
mov eax, 0xb9ce6b7e
cmp edx, ecx
je 0x40a45b
mov eax, 0x81aacd54
jmp 0x40a45b
push 2
push 0x104
call fcn.0044e041
add esp, 8
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x10], 0xed35f764
jmp 0x409f43
shl edi, 0x10
add edi, 0xff1e0000
mov eax, edi
shr eax, 5
mov ecx, 0xad3225e8
test edi, edi
je 0x40a3af
mov ecx, 0xba26994b
add eax, 0xffffff4b
mov dword [ebp - 0x10], ecx
mov edi, eax
jmp 0x409f43
call fcn.00405bf5
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x10], 0x389c77e9
jmp 0x409f43
mov eax, dword [ebp - 0x24]
mov al, byte [eax]
mov byte [ebp - 0x15], al
mov dword [ebp - 0x10], 0x5e69fb01
jmp 0x409f43
mov eax, dword [ebp - 0x40]
push dword [eax]
push dword [ebp - 0x1c]
mov esi, dword [0x46f21c]
call esi
push 0x46417c
call fcn.0043cabc
add esp, 4
push eax
push dword [ebp - 0x1c]
call esi
call fcn.00405bf5
push dword [ebp + 0x10]
push dword [ebp - 0x1c]
call esi
call fcn.00405bf5
mov dword [ebp - 0x10], 0xcac22c0f
jmp 0x409f43
imul esi, edi, 0x478000
add esi, 0xff9a0000
mov edi, esi
shr edi, 0xf
push edi
push 0x30a9
call fcn.00407cd2
add esp, 8
mov eax, 0xad3225e8
cmp esi, 0x7b8000
jb 0x40a45b
mov eax, 0xbe8dfb6c
mov dword [ebp - 0x10], eax
jmp 0x409f43
mov eax, dword [ebp - 0x14]
lea eax, [eax + eax*4]
shl eax, 9
add eax, 0x7cf20
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], 0x83db9c68
jmp 0x409f43
cmp eax, 0xcac22c0f
jne 0x409f43
mov dword [ebp - 0x34], edi
push 0x4641ae
call fcn.0043cabc
add esp, 4
push dword [ebp + 0x14]
push 0
push dword [ebp - 0x1c]
push eax
push dword [ebp - 0x20]
call fcn.00412a5c
add esp, 0x48
pop esi
pop edi
pop ebx
pop ebp
ret