Function at 0x41bbaa
Capabilities:
Log keystrokes via polling
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x7c
xor eax, eax
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
cmp edi, dword [0x60b8f8]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x48], eax
jne 0x41bbfa
cmp edi, eax
jne 0x41bc21
cmp edi, eax
mov dword [0x60b8e8], eax
mov dword [0x60b8ec], eax
mov dword [0x60b8f0], eax
mov dword [0x60b8f4], eax
mov dword [0x60b8f8], edi
mov dword [0x60b900], eax
je 0x41ce1f
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x14]
push eax
xor ebx, ebx
xor esi, esi
call fcn.00419c28
mov esi, edi
call fcn.00419e0c
mov byte [ebp - 0x4c], al
call fcn.00419cdc
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x58]
push eax
lea edi, [ebp - 0x60]
lea ebx, [ebp - 0x20]
call fcn.0041dca8
add esp, 0x20
call fcn.0041baa3
mov dword [ebp - 0x78], eax
call fcn.0041b3d5
xor ebx, ebx
test al, 0x4e
mov dword [ebp - 0x5c], ebx
je 0x41bc87
mov dword [ebp - 0x5c], 1
movzx eax, al
shr eax, 5
and eax, 1
mov dword [ebp - 0x64], eax
call fcn.0041b407
push ebx
mov dword [ebp - 0x6c], eax
call fcn.0041b423
cmp dword [0x60b900], ebx
pop ecx
je 0x41bcc0
mov eax, dword [ebp + 8]
call fcn.004ccb8b
mov dword [0x60b900], ebx
push 0x77
pop eax
jmp 0x41ce21
cmp dword [0x60b8fc], ebx
je 0x41bcf8
cmp dword [0x602848], ebx
jl 0x41bcf8
cmp dword [0x60284c], ebx
jle 0x41bcf8
mov edi, esi
call fcn.0041d777
cmp dword [0x602848], eax
jne 0x41bcf8
mov eax, dword [0x60284c]
cmp eax, dword [ebp - 0x38]
mov dword [ebp - 0x44], 1
je 0x41bcfb
mov dword [ebp - 0x44], ebx
cmp dword [ebp + 8], ebx
je 0x41ce1f
cmp dword [ebp - 0x14], ebx
je 0x41ce1f
cmp dword [ebp - 0x28], ebx
je 0x41ce1f
cmp dword [ebp - 0x44], ebx
mov edi, 0x60b848
jne 0x41bd4b
or dword [0x602848], 0xffffffff
or dword [0x60284c], 0xffffffff
mov eax, edi
mov dword [0x60b8fc], ebx
call fcn.004ccc2f
test eax, eax
jne 0x41bd4b
push 0x50
push ebx
push edi
call fcn.005306b0
add esp, 0xc
lea ebx, [ebp - 0x10]
lea esi, [ebp - 0xc]
call fcn.00414880
mov eax, dword [ebp - 0x28]
inc eax
push eax
xor esi, esi
push esi
push dword [ebp + 8]
call fcn.005306b0
add esp, 0xc
cmp dword [ebp - 0x44], esi
mov dword [ebp - 4], esi
mov dword [ebp - 8], esi
je 0x41be06
xor ecx, ecx
cmp byte [0x60b848], cl
je 0x41bdac
mov esi, dword [ebp + 8]
sub esi, edi
cmp ecx, dword [0x60284c]
jge 0x41bdac
cmp ecx, dword [ebp - 0x28]
jge 0x41bdac
inc dword [ebp - 4]
lea eax, [ecx + 0x60b848]
mov dl, byte [eax]
inc ecx
mov byte [esi + eax], dl
cmp byte [ecx + 0x60b848], 0
jne 0x41bd87
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x14]
mov ebx, ecx
sub ebx, eax
mov dword [ebp - 8], ecx
jns 0x41bdbd
xor ebx, ebx
lea esi, [ebx + eax]
cmp esi, ecx
jle 0x41bdc6
mov esi, ecx
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.004147ba
mov eax, dword [ebp + 8]
push 0
sub esi, ebx
add ebx, eax
push esi
push ebx
call fcn.004120fb
and dword [0x60b8fc], 0
or dword [0x602848], 0xffffffff
or dword [0x60284c], 0xffffffff
add esp, 0x14
push 0x50
push 0
push edi
call fcn.005306b0
add esp, 0xc
xor edi, edi
mov dword [ebp - 0x68], edi
call fcn.004fa8e4
mov dword [ebp - 0x74], eax
call fcn.0041190c
cmp eax, edi
mov dword [ebp - 0x44], eax
je 0x41caef
call fcn.004fa8e4
mov dword [ebp - 0x74], eax
call fcn.004119b0
mov dword [ebp - 0x18], eax
mov ebx, dword [ebp - 0x18]
push 0x1b
pop esi
cmp ebx, esi
je 0x41ccb6
cmp ebx, 0xd
je 0x41c9ef
push 0xa
pop edi
cmp ebx, edi
je 0x41c9ef
cmp ebx, 8
je 0x41bf5f
cmp ebx, 0xe0
je 0x41c062
xor esi, esi
cmp ebx, esi
jne 0x41c784
call fcn.004119b0
mov ebx, eax
cmp ebx, 0x4b
jg 0x41befc
je 0x41bef3
cmp ebx, 0x44
jg 0x41bec9
cmp ebx, 0x43
jge 0x41c71c
cmp ebx, 0x3b
jl 0x41caef
cmp ebx, 0x40
jle 0x41beb0
cmp ebx, 0x41
je 0x41c624
cmp ebx, 0x42
jne 0x41caef
mov esi, dword [ebp + 0xc]
call fcn.0041bb64
cmp eax, 1
jne 0x41c71c
mov dword [ebp - 0x18], edi
jmp 0x41be33
sub ebx, 0x47
je 0x41beea
dec ebx
je 0x41bee1
dec ebx
jne 0x41caef
mov dword [ebp - 0x18], 0x39
jmp 0x41bf55
mov dword [ebp - 0x18], 0x38
jmp 0x41bf55
mov dword [ebp - 0x18], 0x37
jmp 0x41bf55
mov dword [ebp - 0x18], 0x34
jmp 0x41bf55
sub ebx, 0x4c
je 0x41bf4e
dec ebx
je 0x41bf45
dec ebx
dec ebx
je 0x41bf3c
dec ebx
je 0x41bf33
dec ebx
je 0x41bf2a
dec ebx
je 0x41bf21
dec ebx
jne 0x41caef
mov dword [ebp - 0x18], 0x2e
jmp 0x41bf55
mov dword [ebp - 0x18], 0x30
jmp 0x41bf55
mov dword [ebp - 0x18], 0x33
jmp 0x41bf55
mov dword [ebp - 0x18], 0x32
jmp 0x41bf55
mov dword [ebp - 0x18], 0x31
jmp 0x41bf55
mov dword [ebp - 0x18], 0x36
jmp 0x41bf55
mov dword [ebp - 0x18], 0x35
call fcn.0043bf5b
jmp 0x41be33
cmp dword [ebp - 8], 0
jle 0x41caef
mov esi, dword [ebp + 0xc]
call fcn.0041b296
test eax, eax
je 0x41bf9b
xor eax, eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x34]
push eax
mov eax, esi
call fcn.0041b0bc
pop ecx
pop ecx
mov eax, esi
call fcn.0041a804
call fcn.0041b296
test eax, eax
jne 0x41caef
push dword [ebp - 0x20]
push dword [ebp - 0x24]
push dword [ebp - 0x3c]
push 2
call fcn.0041ce26
mov ebx, dword [ebp + 8]
add esp, 0x10
dec dword [ebp - 8]
mov eax, dword [ebp - 8]
call fcn.004cd6f8
dec dword [ebp - 4]
mov eax, dword [ebp - 4]
mov byte [eax + ebx], 0
xor ebx, ebx
lea esi, [ebp - 0x44]
mov dword [ebp - 0x44], 0xffffff22
call fcn.00414880
mov edi, dword [ebp - 0x44]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
sub eax, edi
add ecx, eax
mov eax, dword [ebp - 0x14]
cdq
sub eax, edx
sar eax, 1
add eax, dword [ebp - 0xc]
lea esi, [ecx + 1]
cmp edi, eax
jg 0x41c00b
test esi, esi
jle 0x41c00b
mov esi, ecx
jmp 0x41c00c
dec edi
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
add ecx, eax
cmp edi, ecx
jne 0x41c01d
mov edi, 0xffffff22
test esi, esi
jge 0x41c023
xor esi, esi
lea ebx, [esi + eax]
cmp ebx, dword [ebp - 4]
jle 0x41c02e
mov ebx, dword [ebp - 4]
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.004147ba
push dword [ebp - 0x4c]
mov eax, dword [ebp + 8]
sub ebx, esi
push ebx
add esi, eax
push esi
call fcn.004120fb
add esp, 0x14
cmp edi, 0xffffff22
je 0x41caef
push dword [ebp - 0x10]
push edi
jmp 0x41c9c4
call fcn.004119b0
mov ebx, eax
cmp ebx, 0x86
jg 0x41caef
cmp ebx, 0x85
jge 0x41c5aa
cmp ebx, 0x4d
jg 0x41c33a
je 0x41c241
sub eax, 0x47
je 0x41c19f
dec eax
je 0x41c161
dec eax
je 0x41c149
dec eax
dec eax
jne 0x41caef
xor esi, esi
cmp dword [ebp - 4], esi
jne 0x41c0d7
mov eax, dword [ebp + 0xc]
call fcn.0041b235
test eax, eax
je 0x41c0d7
cmp dword [ebp - 0x2c], esi
jle 0x41c0d7
dec dword [ebp - 0x2c]
push 0
push dword [ebp - 0x20]
push dword [ebp - 0x24]
jmp 0x41cae5
cmp dword [ebp - 8], esi
jle 0x41caef
push dword [ebp - 0x20]
mov dword [ebp - 0x44], esi
push dword [ebp - 0x24]
push dword [ebp - 0x3c]
push 2
call fcn.0041ce26
add esp, 0x10
xor ebx, ebx
lea esi, [ebp - 0x44]
call fcn.00414880
mov edi, dword [ebp - 0xc]
dec dword [ebp - 8]
cmp dword [ebp - 0x44], edi
jg 0x41c13b
mov ebx, dword [ebp - 8]
test ebx, ebx
jge 0x41c114
xor ebx, ebx
mov eax, dword [ebp - 0x14]
lea esi, [ebx + eax]
cmp esi, dword [ebp - 4]
jle 0x41c122
mov esi, dword [ebp - 4]
push dword [ebp - 0x10]
push edi
call fcn.004147ba
mov eax, dword [ebp + 8]
push 0
sub esi, ebx
push esi
add ebx, eax
push ebx
jmp 0x41c045
push 0
push 0
call fcn.0043c092
jmp 0x41c9c9
mov esi, dword [ebp + 0xc]
lea ebx, [ebp - 0x40]
xor edi, edi
call fcn.0041d920
mov eax, dword [ebp - 0x40]
sub dword [ebp - 0x1c], eax
jmp 0x41c0ca
mov esi, dword [ebp + 0xc]
xor edi, edi
inc edi
push edi
call fcn.00419ee8
test eax, eax
pop ecx
je 0x41c197
mov eax, esi
call fcn.0041b1df
test eax, eax
jne 0x41c197
cmp dword [ebp - 4], eax
je 0x41ccd0
push 0
push str.IllegalKey.wav
call fcn.004c9c3f
jmp 0x41c9c9
dec dword [ebp - 0x1c]
jmp 0x41c0ca
push dword [ebp - 0x20]
push dword [ebp - 0x24]
push dword [ebp - 0x3c]
push 2
call fcn.0041ce26
xor edi, edi
add esp, 0x10
cmp dword [ebp - 4], edi
jg 0x41c231
mov esi, dword [ebp + 0xc]
call fcn.0041b296
test eax, eax
jne 0x41c0ca
call fcn.00419d0c
cmp dword [ebp - 0x28], eax
jl 0x41c0ca
mov eax, dword [ebp + 8]
or ecx, 0xffffffff
call fcn.0041d961
push dword [ebp + 8]
call fcn.00530f70
mov esi, dword [ebp - 0x14]
cmp esi, eax
pop ecx
mov dword [ebp - 4], eax
mov dword [ebp - 8], edi
jle 0x41c1fa
mov esi, eax
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.004147ba
push edi
push esi
push dword [ebp + 8]
call fcn.004120fb
add esp, 0x14
cmp dword [ebp - 0xc], 0xffffff22
je 0x41c0ca
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.004147ba
pop ecx
pop ecx
jmp 0x41c0ca
mov esi, dword [ebp - 0x14]
cmp esi, dword [ebp - 4]
mov dword [ebp - 8], edi
jle 0x41c1fa
mov esi, dword [ebp - 4]
jmp 0x41c1fa
mov edi, dword [ebp - 4]
test edi, edi
jne 0x41c25c
mov eax, dword [ebp + 0xc]
call fcn.0041b235
test eax, eax
je 0x41c25c
inc dword [ebp - 0x2c]
jmp 0x41c0ca
cmp dword [ebp - 8], edi
jge 0x41c2c6
push dword [ebp - 0x20]
and dword [ebp - 0x44], 0
push dword [ebp - 0x24]
push dword [ebp - 0x3c]
push 2
call fcn.0041ce26
add esp, 0x10
xor ebx, ebx
lea esi, [ebp - 0x44]
call fcn.00414880
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
inc dword [ebp - 8]
lea edx, [eax + ecx - 1]
cmp dword [ebp - 0x44], edx
jl 0x41c2bc
mov ebx, dword [ebp - 8]
sub ebx, eax
jns 0x41c29d
xor ebx, ebx
lea esi, [ebx + eax]
cmp esi, edi
jle 0x41c2a6
mov esi, edi
push dword [ebp - 0x10]
push ecx
call fcn.004147ba
mov eax, dword [ebp + 8]
push 0
sub esi, ebx
push esi
add ebx, eax
push ebx
jmp 0x41c32d
call fcn.0043c0fc
jmp 0x41caef
test edi, edi
jg 0x41caef
mov esi, dword [ebp + 0xc]
call fcn.0041b296
test eax, eax
jne 0x41caef
call fcn.00419d0c
cmp dword [ebp - 0x28], eax
jl 0x41caef
mov edi, dword [ebp + 8]
mov eax, edi
or ecx, 0xffffffff
call fcn.0041d961
push edi
call fcn.00530f70
pop ecx
mov ecx, dword [ebp - 0x14]
mov esi, eax
sub esi, ecx
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
jns 0x41c311
xor esi, esi
lea ebx, [esi + ecx]
cmp ebx, eax
jle 0x41c31a
mov ebx, eax
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.004147ba
push 0
sub ebx, esi
push ebx
add esi, edi
push esi
call fcn.004120fb
add esp, 0x14
jmp 0x41caef
mov eax, ebx
sub eax, 0x4f
je 0x41c4f9
dec eax
je 0x41c486
dec eax
je 0x41c46e
dec eax
dec eax
jne 0x41caef
xor ebx, ebx
cmp dword [ebp - 8], ebx
jl 0x41c0ca
mov edi, dword [ebp - 4]
cmp edi, ebx
jle 0x41c0ca
mov esi, dword [ebp + 0xc]
call fcn.0041b296
test eax, eax
je 0x41c3a1
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x34]
push eax
mov eax, esi
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x2c], ebx
call fcn.0041b0bc
pop ecx
pop ecx
mov eax, esi
call fcn.0041a804
call fcn.0041b296
test eax, eax
jne 0x41c0ca
cmp dword [ebp - 8], edi
jge 0x41c0ca
push dword [ebp - 0x20]
push dword [ebp - 0x24]
push dword [ebp - 0x58]
push 2
call fcn.0041ce26
mov eax, dword [ebp - 8]
mov ebx, dword [ebp + 8]
add esp, 0x10
call fcn.004cd6f8
dec edi
cmp dword [ebp - 8], edi
mov dword [ebp - 4], edi
mov byte [edi + ebx], 0
jl 0x41c3eb
cmp dword [ebp - 8], 0
jle 0x41c3eb
dec dword [ebp - 8]
mov edi, 0xffffff22
xor ebx, ebx
lea esi, [ebp - 0x18]
mov dword [ebp - 0x18], edi
call fcn.00414880
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 8]
add ecx, eax
mov eax, dword [ebp - 0x14]
cdq
sub eax, edx
sar eax, 1
add eax, dword [ebp - 0xc]
lea ebx, [ecx + 1]
cmp dword [ebp - 0x18], eax
jg 0x41c423
test ebx, ebx
jle 0x41c423
mov ebx, ecx
jmp 0x41c426
dec dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
add ecx, eax
cmp dword [ebp - 0x18], ecx
jne 0x41c436
mov dword [ebp - 0x18], edi
test ebx, ebx
jge 0x41c43c
xor ebx, ebx
lea esi, [ebx + eax]
cmp esi, dword [ebp - 4]
jle 0x41c447
mov esi, dword [ebp - 4]
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.004147ba
push dword [ebp - 0x4c]
mov eax, dword [ebp + 8]
sub esi, ebx
add ebx, eax
push esi
push ebx
call fcn.004120fb
add esp, 0x14
cmp dword [ebp - 0x18], edi
jmp 0x41c9b8
mov esi, dword [ebp + 0xc]
xor ebx, ebx
lea edi, [ebp - 0x40]
call fcn.0041d920
mov eax, dword [ebp - 0x40]
add dword [ebp - 0x1c], eax
jmp 0x41c0ca
mov esi, dword [ebp + 0xc]
push 0xffffffffffffffff
call fcn.00419ee8
test eax, eax
pop ecx
je 0x41c4f1
mov eax, esi
call fcn.0041b1df
test eax, eax
jne 0x41c4f1
cmp dword [ebp - 4], eax
jne 0x41c186
mov edx, dword [ebp + 8]
mov byte [edx], al
call fcn.004ccc0d
test eax, eax
jne 0x41c4ea
test esi, esi
je 0x41c4ea
mov edi, esi
mov dword [0x60b8fc], 1
call fcn.0041d777
push dword [ebp + 8]
mov dword [0x602848], eax
mov eax, dword [ebp - 0x38]
push 0x50
mov dword [0x60284c], eax
pop ecx
mov eax, 0x60b848
call fcn.004ccc3f
pop ecx
push 0x28
jmp 0x41cd10
inc dword [ebp - 0x1c]
jmp 0x41c0ca
push dword [ebp - 0x20]
push dword [ebp - 0x24]
push dword [ebp - 0x3c]
push 2
call fcn.0041ce26
mov eax, dword [ebp - 4]
add esp, 0x10
test eax, eax
jg 0x41c57f
mov esi, dword [ebp + 0xc]
call fcn.0041b296
test eax, eax
jne 0x41c0ca
call fcn.00419d0c
cmp dword [ebp - 0x28], eax
jl 0x41c0ca
mov edi, dword [ebp + 8]
mov eax, edi
or ecx, 0xffffffff
call fcn.0041d961
push edi
call fcn.00530f70
pop ecx
mov ecx, dword [ebp - 0x14]
mov esi, eax
sub esi, ecx
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
jns 0x41c556
xor esi, esi
lea ebx, [esi + ecx]
cmp ebx, eax
jle 0x41c55f
mov ebx, eax
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.004147ba
sub ebx, esi
add esi, edi
push 0
push ebx
push esi
call fcn.004120fb
add esp, 0x14
jmp 0x41c0ca
mov ecx, dword [ebp - 0x14]
mov esi, eax
sub esi, ecx
mov dword [ebp - 8], eax
jns 0x41c58d
xor esi, esi
lea ebx, [esi + ecx]
cmp ebx, eax
jle 0x41c596
mov ebx, eax
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.004147ba
mov eax, dword [ebp + 8]
sub ebx, esi
add esi, eax
jmp 0x41c56e
mov edi, dword [ebp + 0xc]
lea eax, [ebx - 0x7a]
mov esi, edi
call fcn.00419f7e
test eax, eax
je 0x41caef
push 0
push dword [ebp - 0x20]
xor esi, esi
push dword [ebp - 0x24]
inc esi
push esi
call fcn.0041ce26
mov eax, dword [ebp - 4]
mov edx, dword [ebp + 8]
add esp, 0x10
mov byte [eax + edx], 0
call fcn.004ccc0d
test eax, eax
jne 0x41c613
test edi, edi
je 0x41c613
mov dword [0x60b8fc], esi
call fcn.0041d777
push dword [ebp + 8]
mov dword [0x602848], eax
mov eax, dword [ebp - 0x38]
push 0x50
mov dword [0x60284c], eax
pop ecx
mov eax, 0x60b848
call fcn.004ccc3f
pop ecx
push esi
mov eax, edi
call fcn.00419ffc
pop ecx
lea eax, [ebx - 0xb]
jmp 0x41ce21
cmp dword [ebp - 4], 0
jle 0x41c6be
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
or ecx, 0xffffffff
call fcn.0041d961
and dword [ebp - 0x18], 0
xor ebx, ebx
lea esi, [ebp - 0x18]
call fcn.00414880
mov edi, dword [ebp - 0xc]
jmp 0x41c669
push 1
push dword [ebp - 0x4c]
call fcn.0043c092
and dword [ebp - 0x18], 0
pop ecx
pop ecx
xor ebx, ebx
lea esi, [ebp - 0x18]
call fcn.00414880
cmp dword [ebp - 0x18], edi
jg 0x41c64f
push dword [ebp + 8]
xor ebx, ebx
mov dword [ebp - 8], ebx
call fcn.00530f70
mov esi, dword [ebp - 0x14]
cmp esi, eax
pop ecx
jle 0x41c685
mov esi, eax
push dword [ebp - 0x10]
push edi
call fcn.004147ba
push esi
push dword [ebp + 8]
call fcn.00412383
add esp, 0x10
cmp edi, 0xffffff22
je 0x41c6ad
push dword [ebp - 0x10]
push edi
call fcn.004147ba
pop ecx
pop ecx
mov eax, dword [ebp + 8]
call fcn.004ccb8b
mov dword [ebp - 4], ebx
push ebx
jmp 0x41c0cc
call fcn.004fa8e4
mov ecx, eax
mov eax, dword [0x60b8f0]
sub ecx, eax
cmp ecx, 0x3e8
jb 0x41c6dc
test eax, eax
jne 0x41cd13
call fcn.004fa8e4
mov edi, dword [ebp + 0xc]
mov dword [0x60b8f0], eax
call fcn.0041d777
test eax, eax
jne 0x41cd29
mov eax, edi
call fcn.0041afff
cmp eax, 3
jl 0x41cd29
cmp dword [0x60b8f4], 1
jl 0x41cd49
push 0
push 0
jmp 0x41cae2
mov esi, dword [ebp + 0xc]
lea eax, [ebx - 0x3a]
call fcn.00419f7e
test eax, eax
je 0x41caef
push 0
push dword [ebp - 0x20]
xor edi, edi
push dword [ebp - 0x24]
inc edi
push edi
call fcn.0041ce26
mov eax, dword [ebp - 4]
mov edx, dword [ebp + 8]
add esp, 0x10
mov byte [eax + edx], 0
call fcn.004ccc0d
test eax, eax
jne 0x41cd84
test esi, esi
je 0x41cd84
cmp ebx, 0x42
jne 0x41cd55
call fcn.0041bb64
cmp eax, 2
jne 0x41cd55
mov dword [0x60b900], edi
jmp 0x41cdc8
cmp ebx, 0x20
jl 0x41c9d0
cmp ebx, 0x7e
jg 0x41caef
cmp ebx, 0x3d
mov dword [ebp - 0x68], 1
jne 0x41c7ae
cmp dword [ebp - 0x5c], esi
je 0x41c7ae
mov dword [ebp - 0x18], 0x2b
cmp dword [ebp - 0x48], esi
mov ebx, dword [ebp - 4]
je 0x41c7ba
cmp ebx, esi
jne 0x41c7c2
mov edi, dword [ebp - 0x44]
mov dword [ebp - 0x48], edi
jmp 0x41c7c5
mov edi, dword [ebp - 0x44]
cmp dword [ebp - 0x64], esi
je 0x41c872
mov al, byte [ebp - 0x18]
call fcn.004cddce
test eax, eax
jne 0x41c801
push dword [ebp - 0x18]
call fcn.004ccbe7
test eax, eax
pop ecx
je 0x41caef
mov edx, dword [ebp + 8]
mov byte [ebx + edx], 0
call fcn.004ccc0d
test eax, eax
je 0x41caef
jmp 0x41c83f
cmp ebx, esi
jle 0x41c83f
mov eax, dword [ebp + 8]
movsx eax, byte [esi + eax]
push eax
call fcn.004ccbe7
test eax, eax
pop ecx
je 0x41c834
mov ebx, dword [ebp + 8]
mov eax, dword [ebp - 4]
mov byte [eax + ebx], 0
mov eax, esi
call fcn.004cd6f8
cmp dword [ebp - 8], esi
jle 0x41c830
dec dword [ebp - 8]
dec dword [ebp - 4]
dec esi
mov ebx, dword [ebp - 4]
inc esi
cmp esi, ebx
jl 0x41c805
mov edi, dword [ebp - 0x44]
cmp dword [ebp - 8], 0
jle 0x41c872
mov eax, dword [ebp - 0x38]
dec eax
cmp dword [ebp - 8], eax
jl 0x41c872
cmp ebx, dword [ebp - 8]
jl 0x41c872
sub edi, dword [ebp - 0x48]
mov eax, ebx
imul eax, eax, 0x25
cmp edi, eax
jae 0x41c872
mov esi, dword [ebp + 0xc]
push 1
call fcn.0041b423
pop ecx
push 0xd
pop esi
call fcn.004119b5
cmp ebx, dword [ebp - 0x28]
jge 0x41c8af
call fcn.0041190c
test eax, eax
jne 0x41c8af
cmp dword [ebp - 0x6c], eax
je 0x41c889
test ebx, ebx
je 0x41c8af
push dword [ebp - 0x18]
call fcn.004cde15
test eax, eax
pop ecx
push 0
je 0x41c89f
push 0
push dword [ebp - 0x20]
jmp 0x41c8a5
push dword [ebp - 0x20]
push dword [ebp - 0x60]
push 5
call fcn.0041ce26
add esp, 0x10
mov esi, dword [ebp + 0xc]
call fcn.0041b296
test eax, eax
je 0x41c8e1
xor eax, eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x34]
push eax
mov eax, esi
call fcn.0041b0bc
pop ecx
pop ecx
mov eax, esi
call fcn.0041a804
call fcn.0041b296
test eax, eax
jne 0x41caef
cmp ebx, dword [ebp - 0x28]
jge 0x41caef
push dword [ebp - 0x18]
mov eax, dword [ebp - 8]
mov edi, dword [ebp + 8]
call fcn.004cdba1
mov edi, dword [ebp - 8]
inc edi
inc dword [ebp - 4]
cmp edi, dword [ebp - 0x28]
pop ecx
mov dword [ebp - 8], edi
jl 0x41c926
call fcn.0041bb0c
test eax, eax
je 0x41c926
push 0xd
pop esi
call fcn.004119b5
cmp edi, dword [ebp - 4]
mov dword [ebp - 0x18], 0xffffff22
jne 0x41c93c
mov ecx, dword [ebp - 0xc]
mov esi, edi
sub esi, dword [ebp - 0x14]
jmp 0x41c981
xor ebx, ebx
lea esi, [ebp - 0x18]
call fcn.00414880
mov ebx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
mov eax, ebx
cdq
mov esi, ebx
sub esi, dword [ebp - 0x18]
sub eax, edx
add esi, ecx
sar eax, 1
cmp esi, eax
jl 0x41c96c
mov eax, ecx
sub eax, dword [ebp - 0x18]
inc dword [ebp - 0x18]
lea esi, [eax + edi - 1]
jmp 0x41c981
mov esi, ecx
sub esi, dword [ebp - 0x18]
add ebx, ecx
add esi, edi
cmp dword [ebp - 0x18], ebx
jne 0x41c981
mov dword [ebp - 0x18], 0xffffff22
test esi, esi
jge 0x41c987
xor esi, esi
mov eax, dword [ebp - 0x14]
lea ebx, [esi + eax]
cmp ebx, dword [ebp - 4]
jle 0x41c995
mov ebx, dword [ebp - 4]
push dword [ebp - 0x10]
push ecx
call fcn.004147ba
mov eax, dword [ebp + 8]
push 0
sub ebx, esi
add esi, eax
push ebx
push esi
call fcn.004120fb
add esp, 0x14
cmp dword [ebp - 0x18], 0xffffff22
je 0x41caef
push dword [ebp - 0x10]
push dword [ebp - 0x18]
call fcn.004147ba
pop ecx
pop ecx
jmp 0x41caef
cmp ebx, esi
jle 0x41caef
mov esi, dword [ebp + 0xc]
call fcn.00419e74
test eax, eax
je 0x41caef
mov eax, ebx
jmp 0x41ce21
mov edi, dword [ebp - 4]
mov eax, dword [ebp + 8]
xor ebx, ebx
cmp dword [ebp - 0x64], ebx
mov byte [edi + eax], 0
je 0x41ca19
cmp edi, ebx
jne 0x41ca19
cmp dword [ebp - 0x68], ebx
jne 0x41ca19
cmp dword [ebp - 0x6c], ebx
je 0x41ca19
mov esi, dword [ebp + 0xc]
push 1
call fcn.0041b423
pop ecx
mov eax, dword [ebp + 8]
call fcn.004ccc2f
test eax, eax
jne 0x41ca5f
mov edx, dword [ebp + 8]
call fcn.004ccc0d
test eax, eax
je 0x41ca5f
mov esi, dword [ebp + 0xc]
xor eax, eax
or ecx, 0xffffffff
call fcn.0041da05
mov eax, dword [ebp + 8]
call fcn.004ccb8b
mov eax, esi
mov dword [ebp - 4], ebx
mov dword [ebp - 8], ebx
call fcn.0041a804
push ebx
push ebx
push dword [ebp - 0x70]
push 2
jmp 0x41cae7
mov eax, dword [ebp + 8]
call fcn.004ccc2f
test eax, eax
je 0x41cdb0
call fcn.004fa8e4
sub eax, dword [0x60b8e8]
cmp eax, 0x190
jae 0x41cd9e
and dword [ebp - 0x44], ebx
and dword [ebp - 0x18], ebx
mov esi, dword [ebp + 0xc]
lea ebx, [ebp - 0x18]
lea edi, [ebp - 0x44]
call fcn.0041d920
call fcn.004fa8e4
mov dword [0x60b8e8], eax
or eax, 0xffffffff
call fcn.0041db7d
test eax, eax
je 0x41cd96
mov eax, esi
call fcn.0041afff
cmp eax, 3
jl 0x41cd96
xor eax, eax
cmp dword [ebp - 0x44], eax
jne 0x41cad3
cmp dword [ebp - 0x18], eax
je 0x41cd96
cmp dword [0x60b8ec], 2
jl 0x41cdc8
push eax
push eax
push dword [ebp - 0x50]
push 1
call fcn.0041ce26
add esp, 0x10
mov esi, dword [ebp + 0xc]
test esi, esi
je 0x41cc56
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x41cba8
add dword [ebp - 0x30], eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x34]
push eax
mov eax, esi
call fcn.0041b0bc
pop ecx
pop ecx
mov eax, esi
call fcn.0041a804
call fcn.0041b296
test eax, eax
jne 0x41cba1
lea ebx, [ebp - 0x10]
lea esi, [ebp - 0xc]
call fcn.00414880
xor ebx, ebx
lea esi, [ebp - 0x44]
mov dword [ebp - 0x44], 0xffffff22
call fcn.00414880
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
mov edi, dword [ebp - 0x44]
sub esi, ecx
add ecx, eax
cmp edi, ecx
jne 0x41cb5e
mov edi, 0xffffff22
test esi, esi
jge 0x41cb64
xor esi, esi
mov ecx, dword [ebp - 0x14]
lea ebx, [esi + ecx]
cmp ebx, dword [ebp - 4]
jle 0x41cb72
mov ebx, dword [ebp - 4]
push dword [ebp - 0x10]
push eax
call fcn.004147ba
mov eax, dword [ebp + 8]
push 0
sub ebx, esi
add esi, eax
push ebx
push esi
call fcn.004120fb
add esp, 0x14
cmp edi, 0xffffff22
je 0x41cba1
push dword [ebp - 0x10]
push edi
call fcn.004147ba
pop ecx
pop ecx
and dword [ebp - 0x2c], 0
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x41cc56
add dword [ebp - 0x34], eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x34]
push eax
mov eax, esi
call fcn.0041b0bc
pop ecx
pop ecx
mov eax, esi
call fcn.0041a804
call fcn.0041b296
test eax, eax
jne 0x41cc4f
lea ebx, [ebp - 0x10]
lea esi, [ebp - 0xc]
call fcn.00414880
xor ebx, ebx
lea esi, [ebp - 0x44]
mov dword [ebp - 0x44], 0xffffff22
call fcn.00414880
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
mov edi, dword [ebp - 0x44]
sub esi, ecx
add ecx, eax
cmp edi, ecx
jne 0x41cc0c
mov edi, 0xffffff22
test esi, esi
jge 0x41cc12
xor esi, esi
mov ecx, dword [ebp - 0x14]
lea ebx, [esi + ecx]
cmp ebx, dword [ebp - 4]
jle 0x41cc20
mov ebx, dword [ebp - 4]
push dword [ebp - 0x10]
push eax
call fcn.004147ba
mov eax, dword [ebp + 8]
push 0
sub ebx, esi
add esi, eax
push ebx
push esi
call fcn.004120fb
add esp, 0x14
cmp edi, 0xffffff22
je 0x41cc4f
push dword [ebp - 0x10]
push edi
call fcn.004147ba
pop ecx
pop ecx
and dword [ebp - 0x1c], 0
mov esi, dword [ebp + 0xc]
call fcn.00411e46
test eax, eax
je 0x41cc6f
push 0x2710
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.004119b0
xor edi, edi
push edi
mov eax, esi
call fcn.00419ffc
cmp dword [ebp - 0x78], edi
pop ecx
jbe 0x41cc90
call fcn.004fa8e4
sub eax, dword [ebp - 0x74]
cmp eax, dword [ebp - 0x78]
ja 0x41cdcf
push 0x76
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
js 0x41cca9
mov dword [0x60b8f4], edi
mov dword [0x60b8f0], edi
push 0x19
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x41be13
mov eax, dword [ebp + 8]
call fcn.004ccb8b
mov eax, dword [ebp + 0xc]
push 1
call fcn.00419ffc
pop ecx
mov eax, esi
jmp 0x41ce21
mov edx, dword [ebp + 8]
mov byte [edx], 0
call fcn.004ccc0d
test eax, eax
jne 0x41cd0e
test esi, esi
je 0x41cd0e
mov dword [0x60b8fc], edi
mov edi, esi
call fcn.0041d777
push dword [ebp + 8]
mov dword [0x602848], eax
mov eax, dword [ebp - 0x38]
push 0x50
mov dword [0x60284c], eax
pop ecx
mov eax, 0x60b848
call fcn.004ccc3f
pop ecx
push 0x26
pop esi
jmp 0x41ccbe
call fcn.004fa8e4
and dword [0x60b8f4], 0
mov edi, dword [ebp + 0xc]
mov dword [0x60b8f0], eax
jmp 0x41cd2f
inc dword [0x60b8f4]
call fcn.0041d777
test eax, eax
jle 0x41cd49
push 0
push 0
push dword [ebp - 0x54]
push 1
call fcn.0041ce26
add esp, 0x10
mov eax, dword [ebp + 8]
call fcn.004ccb8b
push 0x76
jmp 0x41cd10
mov edi, esi
mov dword [0x60b8fc], 1
call fcn.0041d777
push dword [ebp + 8]
mov dword [0x602848], eax
mov eax, dword [ebp - 0x38]
push 0x50
mov dword [0x60284c], eax
pop ecx
mov eax, 0x60b848
call fcn.004ccc3f
pop ecx
push 1
mov eax, esi
call fcn.00419ffc
pop ecx
lea eax, [ebx + 0x35]
jmp 0x41ce21
inc dword [0x60b8ec]
jmp 0x41cdc8
call fcn.004fa8e4
mov dword [0x60b8e8], eax
mov dword [0x60b8ec], ebx
jmp 0x41cdc8
mov eax, dword [ebp - 0x44]
imul edi, edi, 0x25
sub eax, dword [ebp - 0x48]
cmp eax, edi
jae 0x41cdc8
mov esi, dword [ebp + 0xc]
push 1
call fcn.0041b423
pop ecx
push 0xd
jmp 0x41bcba
mov eax, dword [ebp - 4]
mov edx, dword [ebp + 8]
mov byte [eax + edx], 0
call fcn.004ccc0d
test eax, eax
jne 0x41ce15
cmp esi, edi
je 0x41ce15
mov edi, esi
mov dword [0x60b8fc], 1
call fcn.0041d777
push dword [ebp + 8]
mov dword [0x602848], eax
mov eax, dword [ebp - 0x38]
push 0x50
mov dword [0x60284c], eax
pop ecx
mov eax, 0x60b848
call fcn.004ccc3f
pop ecx
mov esi, 0x92
jmp 0x41ccbe
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret