Function at 0x4021b9
Capabilities:
Check for software breakpoints

Disassembly:
push 0x21c
mov eax, 0x437adf
call fcn.004200dc
mov ebx, ecx
mov dword [ebp - 0x1dc], ebx
call fcn.00405e13
call fcn.0040214a
test eax, eax
jne 0x4021f8
movzx eax, byte [0x514d35]
push dword [eax*4 + 0x44a828]
mov esi, ebx
call fcn.00403b7e
jmp 0x4027e5
mov eax, dword [0x514d10]
cmp eax, 0x13
jae 0x402212
movzx eax, byte [0x514d35]
push dword [eax*4 + 0x44a8c0]
jmp 0x4021ec
cmp eax, 0x30
jb 0x402227
movzx eax, byte [0x514d35]
push dword [eax*4 + 0x44a8c8]
jmp 0x4021ec
push 1
push 0x1ffff800
lea edi, [ebp - 0x1d5]
call fcn.00401ff0
pop ecx
pop ecx
test eax, eax
je 0x4021de
push 0x48
push 0x1ffff7a0
lea edi, [ebp - 0xac]
call fcn.00401ff0
pop ecx
pop ecx
test eax, eax
je 0x4021de
push 0x100
push 0x800fc00
lea edi, [ebp - 0x1ac]
call fcn.00401ff0
pop ecx
pop ecx
test eax, eax
je 0x4021de
push 0x10
push 0x8000c1c
lea edi, [ebp - 0x24]
call fcn.00401ff0
pop ecx
pop ecx
test eax, eax
je 0x4021de
call fcn.0040a75b
push eax
lea ecx, [ebp - 0x1d0]
call fcn.00401660
and dword [ebp - 4], 0
push 0x7f
lea ebx, [ebp - 0x1d0]
call fcn.0040521f
mov ecx, ebx
mov dword [esp], 0x43d87c
call fcn.00401d46
call fcn.0040a75b
push eax
lea ecx, [ebp - 0x1d4]
call fcn.00401660
mov byte [ebp - 4], 1
movzx eax, byte [ebp - 0x1d5]
push eax
lea eax, [ebp - 0x1d4]
push str._02X_
push eax
call fcn.00401d63
mov eax, dword [ebp - 0x1d4]
add esp, 0xc
push dword [eax - 0xc]
mov ecx, ebx
push eax
call fcn.004019e6
xor ebx, ebx
mov edi, 0x43d880
movzx eax, byte [ebp + ebx - 0xac]
push eax
lea eax, [ebp - 0x1d4]
push edi
push eax
call fcn.00401d63
mov eax, dword [ebp - 0x1d4]
add esp, 0xc
push dword [eax - 0xc]
lea ecx, [ebp - 0x1d0]
push eax
call fcn.004019e6
inc ebx
cmp ebx, 0x48
jb 0x402308
push 0x43d88c
lea eax, [ebp - 0x1d0]
push eax
call fcn.00401431
xor ebx, ebx
movzx eax, byte [ebp + ebx - 0x24]
push eax
lea eax, [ebp - 0x1d4]
push edi
push eax
call fcn.00401d63
mov eax, dword [ebp - 0x1d4]
add esp, 0xc
push dword [eax - 0xc]
lea ecx, [ebp - 0x1d0]
push eax
call fcn.004019e6
inc ebx
cmp ebx, 0x10
jb 0x40234f
mov esi, 0x43d890
push esi
lea eax, [ebp - 0x1d0]
push eax
call fcn.00401431
xor ebx, ebx
movzx eax, byte [ebp + ebx - 0x1ac]
push eax
lea eax, [ebp - 0x1d4]
push edi
push eax
call fcn.00401d63
mov eax, dword [ebp - 0x1d4]
add esp, 0xc
push dword [eax - 0xc]
lea ecx, [ebp - 0x1d0]
push eax
call fcn.004019e6
inc ebx
cmp ebx, 0x10
jb 0x402394
push 0x2d
lea ecx, [ebp - 0x1d0]
call fcn.00401ddd
push 0x40
pop ebx
movzx eax, byte [ebp + ebx - 0x1ac]
push eax
lea eax, [ebp - 0x1d4]
push edi
push eax
call fcn.00401d63
mov eax, dword [ebp - 0x1d4]
add esp, 0xc
push dword [eax - 0xc]
lea ecx, [ebp - 0x1d0]
push eax
call fcn.004019e6
inc ebx
cmp ebx, 0x50
jb 0x4023d8
push 0x2d
lea ecx, [ebp - 0x1d0]
call fcn.00401ddd
mov ebx, 0x80
movzx eax, byte [ebp + ebx - 0x1ac]
push eax
lea eax, [ebp - 0x1d4]
push edi
push eax
call fcn.00401d63
mov eax, dword [ebp - 0x1d4]
add esp, 0xc
push dword [eax - 0xc]
lea ecx, [ebp - 0x1d0]
push eax
call fcn.004019e6
inc ebx
cmp ebx, 0x90
jb 0x40241e
push 0x2d
lea ecx, [ebp - 0x1d0]
call fcn.00401ddd
mov ebx, 0xa0
movzx eax, byte [ebp + ebx - 0x1ac]
push eax
lea eax, [ebp - 0x1d4]
push edi
push eax
call fcn.00401d63
mov eax, dword [ebp - 0x1d4]
add esp, 0xc
push dword [eax - 0xc]
lea ecx, [ebp - 0x1d0]
push eax
call fcn.004019e6
inc ebx
cmp ebx, 0xb0
jb 0x402467
push esi
lea eax, [ebp - 0x1d0]
push eax
call fcn.00401431
lea eax, [ebp - 0x1d0]
push eax
mov ecx, 0x514db0
call fcn.004016a3
xor esi, esi
inc esi
cmp byte [ebp - 0x1d5], 0xcc
mov dword [0x514db8], esi
je 0x402511
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
xor esi, esi
push 0xa
call edi
mov eax, dword [0x514db8]
test eax, eax
je 0x4024ec
inc esi
cmp esi, 0x12c
jb 0x4024d6
movzx eax, byte [0x514d35]
push dword [eax*4 + 0x44a880]
mov esi, dword [ebp - 0x1dc]
call fcn.00403b7e
push 0x3e8
call edi
jmp 0x4027c9
lea eax, [ebp - 0xa0]
call fcn.00404a0a
mov edi, eax
lea eax, [ebp - 0xac]
push eax
call fcn.00404a52
pop ecx
mov dword [ebp - 0x1e8], eax
xor ebx, ebx
mov eax, edi
call fcn.00404a6b
mov edi, eax
cmp dword [ebp + ebx*4 - 0x1ac], edi
jne 0x402594
inc ebx
cmp ebx, 0x10
jb 0x402533
push 4
mov dword [ebp - 0x1e4], edi
xor edi, edi
pop ebx
inc dword [ebp - 0x1e4]
lea ecx, [ebp - 0x1e4]
call fcn.00401af8
mov dword [ebp + edi - 0x208], eax
mov dword [ebp + edi - 0x64], eax
add edi, ebx
cmp edi, 0x20
jl 0x402556
xor eax, eax
mov ecx, dword [ebp + eax - 0x208]
cmp ecx, dword [ebp + eax - 0x12c]
jne 0x4025a7
add eax, ebx
cmp eax, 0x20
jl 0x40257b
jmp 0x4025a9
movzx eax, byte [0x514d35]
push dword [eax*4 + 0x44a8d8]
jmp 0x4027b3
xor esi, esi
mov eax, dword [ebp - 0x1e8]
xor edi, edi
call fcn.00404a97
mov dword [ebp + edi - 0x228], eax
mov dword [ebp + edi - 0x44], eax
add edi, ebx
cmp edi, 0x20
jl 0x4025b1
xor eax, eax
mov ecx, dword [ebp + eax - 0x228]
cmp ecx, dword [ebp + eax - 0x10c]
jne 0x4026bf
add eax, ebx
cmp eax, 0x20
jl 0x4025ca
xor eax, eax
inc eax
test esi, esi
je 0x4025f0
test eax, eax
jne 0x402644
cmp dword [0x514da4], 0
je 0x4027a5
cmp dword [0x514d10], 0x14
jne 0x4027a5
xor eax, eax
cmp dword [ebp + eax*4 - 0x12c], 0xffffffff
jne 0x40261c
inc eax
cmp eax, 8
jl 0x40260c
cmp eax, 8
jne 0x4027a5
lea eax, [ebp - 0x64]
push eax
push 0x800fc80
call fcn.00402091
lea eax, [ebp - 0x44]
push eax
push 0x800fca0
call fcn.00402091
add esp, 0x10
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
xor esi, esi
mov eax, dword [0x514db8]
test eax, eax
je 0x402676
push 0x20
push 0x8000000
lea edi, [ebp - 0x1cc]
call fcn.00401ff0
pop ecx
pop ecx
push 0xa
call ebx
inc esi
cmp esi, 0x12c
jb 0x40264c
xor eax, eax
cmp dword [0x514d90], eax
je 0x4026c6
cmp dword [0x514d94], eax
je 0x4026c6
mov ecx, dword [0x514db8]
test ecx, ecx
jne 0x40269a
cmp dword [0x514d98], eax
jne 0x4026c6
movzx eax, byte [0x514d35]
push dword [eax*4 + 0x44a800]
mov esi, dword [ebp - 0x1dc]
call fcn.00403b7e
push 0x3e8
call ebx
jmp 0x4027c9
xor eax, eax
jmp 0x4025e8
cmp dword [ebp - 0x20], 0xffffffff
je 0x402757
call fcn.0040116b
cmp eax, dword [ebp - 0x20]
je 0x402757
movzx eax, byte [0x514d35]
push dword [eax*4 + 0x44a8d0]
mov esi, dword [ebp - 0x1dc]
call fcn.00403b7e
movzx eax, byte [0x514d35]
push dword [eax*4 + 0x44a900]
call fcn.00403b7e
call fcn.0040a75b
push eax
lea ecx, [ebp - 0x1e0]
call fcn.00401660
mov byte [ebp - 4], 2
movzx eax, word [ebp - 0x20]
push eax
lea eax, [ebp - 0x1e0]
push 0x43d8c0
push eax
call fcn.00401d63
add esp, 0xc
lea eax, [ebp - 0x1e0]
push eax
call fcn.00403b53
push 0x7d0
call ebx
mov ecx, dword [ebp - 0x1e0]
add ecx, 0xfffffff0
call fcn.00401108
jmp 0x4027c9
movzx eax, byte [0x514d35]
push dword [eax*4 + 0x44a910]
mov esi, dword [ebp - 0x1dc]
call fcn.00403b7e
push 0x43d894
call fcn.00403b7e
push 0x43d8ac
call fcn.00403b7e
mov ecx, dword [ebp - 0x1d4]
add ecx, 0xfffffff0
call fcn.00401108
mov ecx, dword [ebp - 0x1d0]
add ecx, 0xfffffff0
call fcn.00401108
xor eax, eax
inc eax
jmp 0x4027e7
movzx eax, byte [0x514d35]
push dword [eax*4 + 0x44a8e0]
mov esi, dword [ebp - 0x1dc]
call fcn.00403b7e
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [ebp - 0x1d4]
add ecx, 0xfffffff0
call fcn.00401108
mov ecx, dword [ebp - 0x1d0]
add ecx, 0xfffffff0
call fcn.00401108
xor eax, eax
call fcn.0042015f
ret