Function at 0x41286f
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 [0x54f18c]
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 0x4128bf
cmp edi, eax
jne 0x4128e6
cmp edi, eax
mov dword [0x54f0dc], eax
mov dword [0x54f180], eax
mov dword [0x54f184], eax
mov dword [0x54f188], eax
mov dword [0x54f18c], edi
mov dword [0x54f194], eax
je 0x413b01
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x14]
push eax
xor ebx, ebx
xor esi, esi
call fcn.004108ed
mov esi, edi
call fcn.00410ad1
mov byte [ebp - 0x4c], al
call fcn.004109a1
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.0041498a
add esp, 0x20
call fcn.00412768
mov dword [ebp - 0x78], eax
call fcn.0041209a
xor ebx, ebx
test al, 0x4e
mov dword [ebp - 0x5c], ebx
je 0x41294c
mov dword [ebp - 0x5c], 1
movzx eax, al
shr eax, 5
and eax, 1
mov dword [ebp - 0x64], eax
call fcn.004120cc
push ebx
mov dword [ebp - 0x6c], eax
call fcn.004120e8
cmp dword [0x54f194], ebx
pop ecx
je 0x412985
mov eax, dword [ebp + 8]
call fcn.0047eb32
mov dword [0x54f194], ebx
push 0x77
pop eax
jmp 0x413b03
cmp dword [0x54f190], ebx
je 0x4129bd
cmp dword [0x546b4c], ebx
jl 0x4129bd
cmp dword [0x546b50], ebx
jle 0x4129bd
mov edi, esi
call fcn.00414459
cmp dword [0x546b4c], eax
jne 0x4129bd
mov eax, dword [0x546b50]
cmp eax, dword [ebp - 0x38]
mov dword [ebp - 0x44], 1
je 0x4129c0
mov dword [ebp - 0x44], ebx
cmp dword [ebp + 8], ebx
je 0x413b01
cmp dword [ebp - 0x14], ebx
je 0x413b01
cmp dword [ebp - 0x28], ebx
je 0x413b01
cmp dword [ebp - 0x44], ebx
mov edi, 0x54f0e0
jne 0x412a10
or dword [0x546b4c], 0xffffffff
or dword [0x546b50], 0xffffffff
mov eax, edi
mov dword [0x54f190], ebx
call fcn.0047ebd1
test eax, eax
jne 0x412a10
push 0x50
push ebx
push edi
call fcn.004b7880
add esp, 0xc
lea ebx, [ebp - 0x10]
lea esi, [ebp - 0xc]
call fcn.0040d2d7
mov eax, dword [ebp - 0x28]
inc eax
push eax
xor esi, esi
push esi
push dword [ebp + 8]
call fcn.004b7880
add esp, 0xc
cmp dword [ebp - 0x44], esi
mov dword [ebp - 4], esi
mov dword [ebp - 8], esi
je 0x412acb
xor ecx, ecx
cmp byte [0x54f0e0], cl
je 0x412a71
mov esi, dword [ebp + 8]
sub esi, edi
cmp ecx, dword [0x546b50]
jge 0x412a71
cmp ecx, dword [ebp - 0x28]
jge 0x412a71
inc dword [ebp - 4]
lea eax, [ecx + 0x54f0e0]
mov dl, byte [eax]
inc ecx
mov byte [esi + eax], dl
cmp byte [ecx + 0x54f0e0], 0
jne 0x412a4c
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x14]
mov ebx, ecx
sub ebx, eax
mov dword [ebp - 8], ecx
jns 0x412a82
xor ebx, ebx
lea esi, [ebx + eax]
cmp esi, ecx
jle 0x412a8b
mov esi, ecx
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.0040d211
mov eax, dword [ebp + 8]
push 0
sub esi, ebx
add ebx, eax
push esi
push ebx
call fcn.0040bbde
and dword [0x54f190], 0
or dword [0x546b4c], 0xffffffff
or dword [0x546b50], 0xffffffff
add esp, 0x14
push 0x50
push 0
push edi
call fcn.004b7880
add esp, 0xc
xor edi, edi
mov dword [ebp - 0x68], edi
call fcn.004a6bcb
mov dword [ebp - 0x74], eax
call fcn.0040b44e
cmp eax, edi
mov dword [ebp - 0x44], eax
je 0x4137d1
call fcn.004a6bcb
mov dword [ebp - 0x74], eax
call fcn.0040b4f2
mov dword [ebp - 0x18], eax
mov ebx, dword [ebp - 0x18]
push 0x1b
pop esi
cmp ebx, esi
je 0x413998
cmp ebx, 0xd
je 0x4136d1
push 0xa
pop edi
cmp ebx, edi
je 0x4136d1
cmp ebx, 8
je 0x412c41
cmp ebx, 0xe0
je 0x412d44
xor esi, esi
cmp ebx, esi
jne 0x413466
call fcn.0040b4f2
mov ebx, eax
cmp ebx, 0x4b
jg 0x412bd1
je 0x412bc5
cmp ebx, 0x44
jg 0x412b92
cmp ebx, 0x43
jge 0x4133fe
cmp ebx, 0x3b
jl 0x4137d1
cmp ebx, 0x40
jle 0x412b79
cmp ebx, 0x41
je 0x413306
cmp ebx, 0x42
jne 0x4137d1
mov esi, dword [ebp + 0xc]
call fcn.00412829
cmp eax, 1
jne 0x4133fe
mov dword [ebp - 0x18], edi
jmp 0x412af8
sub ebx, 0x47
je 0x412bb9
dec ebx
je 0x412bad
dec ebx
jne 0x4137d1
mov dword [ebp - 0x18], 0x39
jmp 0x412af8
mov dword [ebp - 0x18], 0x38
jmp 0x412af8
mov dword [ebp - 0x18], 0x37
jmp 0x412af8
mov dword [ebp - 0x18], 0x34
jmp 0x412af8
sub ebx, 0x4c
je 0x412c35
dec ebx
je 0x412c29
dec ebx
dec ebx
je 0x412c1d
dec ebx
je 0x412c11
dec ebx
je 0x412c05
dec ebx
je 0x412bf9
dec ebx
jne 0x4137d1
mov dword [ebp - 0x18], 0x2e
jmp 0x412af8
mov dword [ebp - 0x18], 0x30
jmp 0x412af8
mov dword [ebp - 0x18], 0x33
jmp 0x412af8
mov dword [ebp - 0x18], 0x32
jmp 0x412af8
mov dword [ebp - 0x18], 0x31
jmp 0x412af8
mov dword [ebp - 0x18], 0x36
jmp 0x412af8
mov dword [ebp - 0x18], 0x35
jmp 0x412af8
cmp dword [ebp - 8], 0
jle 0x4137d1
mov esi, dword [ebp + 0xc]
call fcn.00411f5b
test eax, eax
je 0x412c7d
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.00411d81
pop ecx
pop ecx
mov eax, esi
call fcn.004114c9
call fcn.00411f5b
test eax, eax
jne 0x4137d1
push dword [ebp - 0x20]
push dword [ebp - 0x24]
push dword [ebp - 0x3c]
push 2
call fcn.00413b08
mov ebx, dword [ebp + 8]
add esp, 0x10
dec dword [ebp - 8]
mov eax, dword [ebp - 8]
call fcn.0047f5f4
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.0040d2d7
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 0x412ced
test esi, esi
jle 0x412ced
mov esi, ecx
jmp 0x412cee
dec edi
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
add ecx, eax
cmp edi, ecx
jne 0x412cff
mov edi, 0xffffff22
test esi, esi
jge 0x412d05
xor esi, esi
lea ebx, [esi + eax]
cmp ebx, dword [ebp - 4]
jle 0x412d10
mov ebx, dword [ebp - 4]
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.0040d211
push dword [ebp - 0x4c]
mov eax, dword [ebp + 8]
sub ebx, esi
push ebx
add esi, eax
push esi
call fcn.0040bbde
add esp, 0x14
cmp edi, 0xffffff22
je 0x4137d1
push dword [ebp - 0x10]
push edi
jmp 0x4136a6
call fcn.0040b4f2
mov ebx, eax
cmp ebx, 0x86
jg 0x4137d1
cmp ebx, 0x85
jge 0x41328c
cmp ebx, 0x4d
jg 0x41301c
je 0x412f23
sub eax, 0x47
je 0x412e81
dec eax
je 0x412e43
dec eax
je 0x412e2b
dec eax
dec eax
jne 0x4137d1
xor esi, esi
cmp dword [ebp - 4], esi
jne 0x412db9
mov eax, dword [ebp + 0xc]
call fcn.00411efa
test eax, eax
je 0x412db9
cmp dword [ebp - 0x2c], esi
jle 0x412db9
dec dword [ebp - 0x2c]
push 0
push dword [ebp - 0x20]
push dword [ebp - 0x24]
jmp 0x4137c7
cmp dword [ebp - 8], esi
jle 0x4137d1
push dword [ebp - 0x20]
mov dword [ebp - 0x44], esi
push dword [ebp - 0x24]
push dword [ebp - 0x3c]
push 2
call fcn.00413b08
add esp, 0x10
xor ebx, ebx
lea esi, [ebp - 0x44]
call fcn.0040d2d7
mov edi, dword [ebp - 0xc]
dec dword [ebp - 8]
cmp dword [ebp - 0x44], edi
jg 0x412e1d
mov ebx, dword [ebp - 8]
test ebx, ebx
jge 0x412df6
xor ebx, ebx
mov eax, dword [ebp - 0x14]
lea esi, [ebx + eax]
cmp esi, dword [ebp - 4]
jle 0x412e04
mov esi, dword [ebp - 4]
push dword [ebp - 0x10]
push edi
call fcn.0040d211
mov eax, dword [ebp + 8]
push 0
sub esi, ebx
push esi
add ebx, eax
push ebx
jmp 0x412d27
push 0
push 0
call fcn.00422830
jmp 0x4136ab
mov esi, dword [ebp + 0xc]
lea ebx, [ebp - 0x40]
xor edi, edi
call fcn.00414602
mov eax, dword [ebp - 0x40]
sub dword [ebp - 0x1c], eax
jmp 0x412dac
mov esi, dword [ebp + 0xc]
xor edi, edi
inc edi
push edi
call fcn.00410bad
test eax, eax
pop ecx
je 0x412e79
mov eax, esi
call fcn.00411ea4
test eax, eax
jne 0x412e79
cmp dword [ebp - 4], eax
je 0x4139b2
push 0
push str.IllegalKey.wav
call fcn.0047ce60
jmp 0x4136ab
dec dword [ebp - 0x1c]
jmp 0x412dac
push dword [ebp - 0x20]
push dword [ebp - 0x24]
push dword [ebp - 0x3c]
push 2
call fcn.00413b08
xor edi, edi
add esp, 0x10
cmp dword [ebp - 4], edi
jg 0x412f13
mov esi, dword [ebp + 0xc]
call fcn.00411f5b
test eax, eax
jne 0x412dac
call fcn.004109d1
cmp dword [ebp - 0x28], eax
jl 0x412dac
mov eax, dword [ebp + 8]
or ecx, 0xffffffff
call fcn.00414643
push dword [ebp + 8]
call fcn.004b68f0
mov esi, dword [ebp - 0x14]
cmp esi, eax
pop ecx
mov dword [ebp - 4], eax
mov dword [ebp - 8], edi
jle 0x412edc
mov esi, eax
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.0040d211
push edi
push esi
push dword [ebp + 8]
call fcn.0040bbde
add esp, 0x14
cmp dword [ebp - 0xc], 0xffffff22
je 0x412dac
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.0040d211
pop ecx
pop ecx
jmp 0x412dac
mov esi, dword [ebp - 0x14]
cmp esi, dword [ebp - 4]
mov dword [ebp - 8], edi
jle 0x412edc
mov esi, dword [ebp - 4]
jmp 0x412edc
mov edi, dword [ebp - 4]
test edi, edi
jne 0x412f3e
mov eax, dword [ebp + 0xc]
call fcn.00411efa
test eax, eax
je 0x412f3e
inc dword [ebp - 0x2c]
jmp 0x412dac
cmp dword [ebp - 8], edi
jge 0x412fa8
push dword [ebp - 0x20]
and dword [ebp - 0x44], 0
push dword [ebp - 0x24]
push dword [ebp - 0x3c]
push 2
call fcn.00413b08
add esp, 0x10
xor ebx, ebx
lea esi, [ebp - 0x44]
call fcn.0040d2d7
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 0x412f9e
mov ebx, dword [ebp - 8]
sub ebx, eax
jns 0x412f7f
xor ebx, ebx
lea esi, [ebx + eax]
cmp esi, edi
jle 0x412f88
mov esi, edi
push dword [ebp - 0x10]
push ecx
call fcn.0040d211
mov eax, dword [ebp + 8]
push 0
sub esi, ebx
push esi
add ebx, eax
push ebx
jmp 0x41300f
call fcn.0042289a
jmp 0x4137d1
test edi, edi
jg 0x4137d1
mov esi, dword [ebp + 0xc]
call fcn.00411f5b
test eax, eax
jne 0x4137d1
call fcn.004109d1
cmp dword [ebp - 0x28], eax
jl 0x4137d1
mov edi, dword [ebp + 8]
mov eax, edi
or ecx, 0xffffffff
call fcn.00414643
push edi
call fcn.004b68f0
pop ecx
mov ecx, dword [ebp - 0x14]
mov esi, eax
sub esi, ecx
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
jns 0x412ff3
xor esi, esi
lea ebx, [esi + ecx]
cmp ebx, eax
jle 0x412ffc
mov ebx, eax
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.0040d211
push 0
sub ebx, esi
push ebx
add esi, edi
push esi
call fcn.0040bbde
add esp, 0x14
jmp 0x4137d1
mov eax, ebx
sub eax, 0x4f
je 0x4131db
dec eax
je 0x413168
dec eax
je 0x413150
dec eax
dec eax
jne 0x4137d1
xor ebx, ebx
cmp dword [ebp - 8], ebx
jl 0x412dac
mov edi, dword [ebp - 4]
cmp edi, ebx
jle 0x412dac
mov esi, dword [ebp + 0xc]
call fcn.00411f5b
test eax, eax
je 0x413083
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.00411d81
pop ecx
pop ecx
mov eax, esi
call fcn.004114c9
call fcn.00411f5b
test eax, eax
jne 0x412dac
cmp dword [ebp - 8], edi
jge 0x412dac
push dword [ebp - 0x20]
push dword [ebp - 0x24]
push dword [ebp - 0x58]
push 2
call fcn.00413b08
mov eax, dword [ebp - 8]
mov ebx, dword [ebp + 8]
add esp, 0x10
call fcn.0047f5f4
dec edi
cmp dword [ebp - 8], edi
mov dword [ebp - 4], edi
mov byte [edi + ebx], 0
jl 0x4130cd
cmp dword [ebp - 8], 0
jle 0x4130cd
dec dword [ebp - 8]
mov edi, 0xffffff22
xor ebx, ebx
lea esi, [ebp - 0x18]
mov dword [ebp - 0x18], edi
call fcn.0040d2d7
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 0x413105
test ebx, ebx
jle 0x413105
mov ebx, ecx
jmp 0x413108
dec dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
add ecx, eax
cmp dword [ebp - 0x18], ecx
jne 0x413118
mov dword [ebp - 0x18], edi
test ebx, ebx
jge 0x41311e
xor ebx, ebx
lea esi, [ebx + eax]
cmp esi, dword [ebp - 4]
jle 0x413129
mov esi, dword [ebp - 4]
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.0040d211
push dword [ebp - 0x4c]
mov eax, dword [ebp + 8]
sub esi, ebx
add ebx, eax
push esi
push ebx
call fcn.0040bbde
add esp, 0x14
cmp dword [ebp - 0x18], edi
jmp 0x41369a
mov esi, dword [ebp + 0xc]
xor ebx, ebx
lea edi, [ebp - 0x40]
call fcn.00414602
mov eax, dword [ebp - 0x40]
add dword [ebp - 0x1c], eax
jmp 0x412dac
mov esi, dword [ebp + 0xc]
push 0xffffffffffffffff
call fcn.00410bad
test eax, eax
pop ecx
je 0x4131d3
mov eax, esi
call fcn.00411ea4
test eax, eax
jne 0x4131d3
cmp dword [ebp - 4], eax
jne 0x412e68
mov edx, dword [ebp + 8]
mov byte [edx], al
call fcn.0047ebaf
test eax, eax
jne 0x4131cc
test esi, esi
je 0x4131cc
mov edi, esi
mov dword [0x54f190], 1
call fcn.00414459
push dword [ebp + 8]
mov dword [0x546b4c], eax
mov eax, dword [ebp - 0x38]
push 0x50
mov dword [0x546b50], eax
pop ecx
mov eax, 0x54f0e0
call fcn.0047ebe1
pop ecx
push 0x28
jmp 0x4139f2
inc dword [ebp - 0x1c]
jmp 0x412dac
push dword [ebp - 0x20]
push dword [ebp - 0x24]
push dword [ebp - 0x3c]
push 2
call fcn.00413b08
mov eax, dword [ebp - 4]
add esp, 0x10
test eax, eax
jg 0x413261
mov esi, dword [ebp + 0xc]
call fcn.00411f5b
test eax, eax
jne 0x412dac
call fcn.004109d1
cmp dword [ebp - 0x28], eax
jl 0x412dac
mov edi, dword [ebp + 8]
mov eax, edi
or ecx, 0xffffffff
call fcn.00414643
push edi
call fcn.004b68f0
pop ecx
mov ecx, dword [ebp - 0x14]
mov esi, eax
sub esi, ecx
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
jns 0x413238
xor esi, esi
lea ebx, [esi + ecx]
cmp ebx, eax
jle 0x413241
mov ebx, eax
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.0040d211
sub ebx, esi
add esi, edi
push 0
push ebx
push esi
call fcn.0040bbde
add esp, 0x14
jmp 0x412dac
mov ecx, dword [ebp - 0x14]
mov esi, eax
sub esi, ecx
mov dword [ebp - 8], eax
jns 0x41326f
xor esi, esi
lea ebx, [esi + ecx]
cmp ebx, eax
jle 0x413278
mov ebx, eax
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.0040d211
mov eax, dword [ebp + 8]
sub ebx, esi
add esi, eax
jmp 0x413250
mov edi, dword [ebp + 0xc]
lea eax, [ebx - 0x7a]
mov esi, edi
call fcn.00410c43
test eax, eax
je 0x4137d1
push 0
push dword [ebp - 0x20]
xor esi, esi
push dword [ebp - 0x24]
inc esi
push esi
call fcn.00413b08
mov eax, dword [ebp - 4]
mov edx, dword [ebp + 8]
add esp, 0x10
mov byte [eax + edx], 0
call fcn.0047ebaf
test eax, eax
jne 0x4132f5
test edi, edi
je 0x4132f5
mov dword [0x54f190], esi
call fcn.00414459
push dword [ebp + 8]
mov dword [0x546b4c], eax
mov eax, dword [ebp - 0x38]
push 0x50
mov dword [0x546b50], eax
pop ecx
mov eax, 0x54f0e0
call fcn.0047ebe1
pop ecx
push esi
mov eax, edi
call fcn.00410cc1
pop ecx
lea eax, [ebx - 0xb]
jmp 0x413b03
cmp dword [ebp - 4], 0
jle 0x4133a0
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
or ecx, 0xffffffff
call fcn.00414643
and dword [ebp - 0x18], 0
xor ebx, ebx
lea esi, [ebp - 0x18]
call fcn.0040d2d7
mov edi, dword [ebp - 0xc]
jmp 0x41334b
push 1
push dword [ebp - 0x4c]
call fcn.00422830
and dword [ebp - 0x18], 0
pop ecx
pop ecx
xor ebx, ebx
lea esi, [ebp - 0x18]
call fcn.0040d2d7
cmp dword [ebp - 0x18], edi
jg 0x413331
push dword [ebp + 8]
xor ebx, ebx
mov dword [ebp - 8], ebx
call fcn.004b68f0
mov esi, dword [ebp - 0x14]
cmp esi, eax
pop ecx
jle 0x413367
mov esi, eax
push dword [ebp - 0x10]
push edi
call fcn.0040d211
push esi
push dword [ebp + 8]
call fcn.0040be66
add esp, 0x10
cmp edi, 0xffffff22
je 0x41338f
push dword [ebp - 0x10]
push edi
call fcn.0040d211
pop ecx
pop ecx
mov eax, dword [ebp + 8]
call fcn.0047eb32
mov dword [ebp - 4], ebx
push ebx
jmp 0x412dae
call fcn.004a6bcb
mov ecx, eax
mov eax, dword [0x54f184]
sub ecx, eax
cmp ecx, 0x3e8
jb 0x4133be
test eax, eax
jne 0x4139f5
call fcn.004a6bcb
mov edi, dword [ebp + 0xc]
mov dword [0x54f184], eax
call fcn.00414459
test eax, eax
jne 0x413a0b
mov eax, edi
call fcn.00411cc4
cmp eax, 3
jl 0x413a0b
cmp dword [0x54f188], 1
jl 0x413a2b
push 0
push 0
jmp 0x4137c4
mov esi, dword [ebp + 0xc]
lea eax, [ebx - 0x3a]
call fcn.00410c43
test eax, eax
je 0x4137d1
push 0
push dword [ebp - 0x20]
xor edi, edi
push dword [ebp - 0x24]
inc edi
push edi
call fcn.00413b08
mov eax, dword [ebp - 4]
mov edx, dword [ebp + 8]
add esp, 0x10
mov byte [eax + edx], 0
call fcn.0047ebaf
test eax, eax
jne 0x413a66
test esi, esi
je 0x413a66
cmp ebx, 0x42
jne 0x413a37
call fcn.00412829
cmp eax, 2
jne 0x413a37
mov dword [0x54f194], edi
jmp 0x413aaa
cmp ebx, 0x20
jl 0x4136b2
cmp ebx, 0x7e
jg 0x4137d1
cmp ebx, 0x3d
mov dword [ebp - 0x68], 1
jne 0x413490
cmp dword [ebp - 0x5c], esi
je 0x413490
mov dword [ebp - 0x18], 0x2b
cmp dword [ebp - 0x48], esi
mov ebx, dword [ebp - 4]
je 0x41349c
cmp ebx, esi
jne 0x4134a4
mov edi, dword [ebp - 0x44]
mov dword [ebp - 0x48], edi
jmp 0x4134a7
mov edi, dword [ebp - 0x44]
cmp dword [ebp - 0x64], esi
je 0x413554
mov al, byte [ebp - 0x18]
call fcn.0047fc19
test eax, eax
jne 0x4134e3
push dword [ebp - 0x18]
call fcn.0047eb89
test eax, eax
pop ecx
je 0x4137d1
mov edx, dword [ebp + 8]
mov byte [ebx + edx], 0
call fcn.0047ebaf
test eax, eax
je 0x4137d1
jmp 0x413521
cmp ebx, esi
jle 0x413521
mov eax, dword [ebp + 8]
movsx eax, byte [esi + eax]
push eax
call fcn.0047eb89
test eax, eax
pop ecx
je 0x413516
mov ebx, dword [ebp + 8]
mov eax, dword [ebp - 4]
mov byte [eax + ebx], 0
mov eax, esi
call fcn.0047f5f4
cmp dword [ebp - 8], esi
jle 0x413512
dec dword [ebp - 8]
dec dword [ebp - 4]
dec esi
mov ebx, dword [ebp - 4]
inc esi
cmp esi, ebx
jl 0x4134e7
mov edi, dword [ebp - 0x44]
cmp dword [ebp - 8], 0
jle 0x413554
mov eax, dword [ebp - 0x38]
dec eax
cmp dword [ebp - 8], eax
jl 0x413554
cmp ebx, dword [ebp - 8]
jl 0x413554
sub edi, dword [ebp - 0x48]
mov eax, ebx
imul eax, eax, 0x25
cmp edi, eax
jae 0x413554
mov esi, dword [ebp + 0xc]
push 1
call fcn.004120e8
pop ecx
push 0xd
pop esi
call fcn.0040b4f7
cmp ebx, dword [ebp - 0x28]
jge 0x413591
call fcn.0040b44e
test eax, eax
jne 0x413591
cmp dword [ebp - 0x6c], eax
je 0x41356b
test ebx, ebx
je 0x413591
push dword [ebp - 0x18]
call fcn.0047fc3b
test eax, eax
pop ecx
push 0
je 0x413581
push 0
push dword [ebp - 0x20]
jmp 0x413587
push dword [ebp - 0x20]
push dword [ebp - 0x60]
push 5
call fcn.00413b08
add esp, 0x10
mov esi, dword [ebp + 0xc]
call fcn.00411f5b
test eax, eax
je 0x4135c3
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.00411d81
pop ecx
pop ecx
mov eax, esi
call fcn.004114c9
call fcn.00411f5b
test eax, eax
jne 0x4137d1
cmp ebx, dword [ebp - 0x28]
jge 0x4137d1
push dword [ebp - 0x18]
mov eax, dword [ebp - 8]
mov edi, dword [ebp + 8]
call fcn.0047f9ef
mov edi, dword [ebp - 8]
inc edi
inc dword [ebp - 4]
cmp edi, dword [ebp - 0x28]
pop ecx
mov dword [ebp - 8], edi
jl 0x413608
call fcn.004127d1
test eax, eax
je 0x413608
push 0xd
pop esi
call fcn.0040b4f7
cmp edi, dword [ebp - 4]
mov dword [ebp - 0x18], 0xffffff22
jne 0x41361e
mov ecx, dword [ebp - 0xc]
mov esi, edi
sub esi, dword [ebp - 0x14]
jmp 0x413663
xor ebx, ebx
lea esi, [ebp - 0x18]
call fcn.0040d2d7
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 0x41364e
mov eax, ecx
sub eax, dword [ebp - 0x18]
inc dword [ebp - 0x18]
lea esi, [eax + edi - 1]
jmp 0x413663
mov esi, ecx
sub esi, dword [ebp - 0x18]
add ebx, ecx
add esi, edi
cmp dword [ebp - 0x18], ebx
jne 0x413663
mov dword [ebp - 0x18], 0xffffff22
test esi, esi
jge 0x413669
xor esi, esi
mov eax, dword [ebp - 0x14]
lea ebx, [esi + eax]
cmp ebx, dword [ebp - 4]
jle 0x413677
mov ebx, dword [ebp - 4]
push dword [ebp - 0x10]
push ecx
call fcn.0040d211
mov eax, dword [ebp + 8]
push 0
sub ebx, esi
add esi, eax
push ebx
push esi
call fcn.0040bbde
add esp, 0x14
cmp dword [ebp - 0x18], 0xffffff22
je 0x4137d1
push dword [ebp - 0x10]
push dword [ebp - 0x18]
call fcn.0040d211
pop ecx
pop ecx
jmp 0x4137d1
cmp ebx, esi
jle 0x4137d1
mov esi, dword [ebp + 0xc]
call fcn.00410b39
test eax, eax
je 0x4137d1
mov eax, ebx
jmp 0x413b03
mov edi, dword [ebp - 4]
mov eax, dword [ebp + 8]
xor ebx, ebx
cmp dword [ebp - 0x64], ebx
mov byte [edi + eax], 0
je 0x4136fb
cmp edi, ebx
jne 0x4136fb
cmp dword [ebp - 0x68], ebx
jne 0x4136fb
cmp dword [ebp - 0x6c], ebx
je 0x4136fb
mov esi, dword [ebp + 0xc]
push 1
call fcn.004120e8
pop ecx
mov eax, dword [ebp + 8]
call fcn.0047ebd1
test eax, eax
jne 0x413741
mov edx, dword [ebp + 8]
call fcn.0047ebaf
test eax, eax
je 0x413741
mov esi, dword [ebp + 0xc]
xor eax, eax
or ecx, 0xffffffff
call fcn.004146e7
mov eax, dword [ebp + 8]
call fcn.0047eb32
mov eax, esi
mov dword [ebp - 4], ebx
mov dword [ebp - 8], ebx
call fcn.004114c9
push ebx
push ebx
push dword [ebp - 0x70]
push 2
jmp 0x4137c9
mov eax, dword [ebp + 8]
call fcn.0047ebd1
test eax, eax
je 0x413a92
call fcn.004a6bcb
sub eax, dword [0x54f0dc]
cmp eax, 0x190
jae 0x413a80
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.00414602
call fcn.004a6bcb
mov dword [0x54f0dc], eax
or eax, 0xffffffff
call fcn.0041485f
test eax, eax
je 0x413a78
mov eax, esi
call fcn.00411cc4
cmp eax, 3
jl 0x413a78
xor eax, eax
cmp dword [ebp - 0x44], eax
jne 0x4137b5
cmp dword [ebp - 0x18], eax
je 0x413a78
cmp dword [0x54f180], 2
jl 0x413aaa
push eax
push eax
push dword [ebp - 0x50]
push 1
call fcn.00413b08
add esp, 0x10
mov esi, dword [ebp + 0xc]
test esi, esi
je 0x413938
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x41388a
add dword [ebp - 0x30], eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x34]
push eax
mov eax, esi
call fcn.00411d81
pop ecx
pop ecx
mov eax, esi
call fcn.004114c9
call fcn.00411f5b
test eax, eax
jne 0x413883
lea ebx, [ebp - 0x10]
lea esi, [ebp - 0xc]
call fcn.0040d2d7
xor ebx, ebx
lea esi, [ebp - 0x44]
mov dword [ebp - 0x44], 0xffffff22
call fcn.0040d2d7
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 0x413840
mov edi, 0xffffff22
test esi, esi
jge 0x413846
xor esi, esi
mov ecx, dword [ebp - 0x14]
lea ebx, [esi + ecx]
cmp ebx, dword [ebp - 4]
jle 0x413854
mov ebx, dword [ebp - 4]
push dword [ebp - 0x10]
push eax
call fcn.0040d211
mov eax, dword [ebp + 8]
push 0
sub ebx, esi
add esi, eax
push ebx
push esi
call fcn.0040bbde
add esp, 0x14
cmp edi, 0xffffff22
je 0x413883
push dword [ebp - 0x10]
push edi
call fcn.0040d211
pop ecx
pop ecx
and dword [ebp - 0x2c], 0
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x413938
add dword [ebp - 0x34], eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x34]
push eax
mov eax, esi
call fcn.00411d81
pop ecx
pop ecx
mov eax, esi
call fcn.004114c9
call fcn.00411f5b
test eax, eax
jne 0x413931
lea ebx, [ebp - 0x10]
lea esi, [ebp - 0xc]
call fcn.0040d2d7
xor ebx, ebx
lea esi, [ebp - 0x44]
mov dword [ebp - 0x44], 0xffffff22
call fcn.0040d2d7
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 0x4138ee
mov edi, 0xffffff22
test esi, esi
jge 0x4138f4
xor esi, esi
mov ecx, dword [ebp - 0x14]
lea ebx, [esi + ecx]
cmp ebx, dword [ebp - 4]
jle 0x413902
mov ebx, dword [ebp - 4]
push dword [ebp - 0x10]
push eax
call fcn.0040d211
mov eax, dword [ebp + 8]
push 0
sub ebx, esi
add esi, eax
push ebx
push esi
call fcn.0040bbde
add esp, 0x14
cmp edi, 0xffffff22
je 0x413931
push dword [ebp - 0x10]
push edi
call fcn.0040d211
pop ecx
pop ecx
and dword [ebp - 0x1c], 0
mov esi, dword [ebp + 0xc]
call fcn.0040b94e
test eax, eax
je 0x413951
push 0x2710
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.0040b4f2
xor edi, edi
push edi
mov eax, esi
call fcn.00410cc1
cmp dword [ebp - 0x78], edi
pop ecx
jbe 0x413972
call fcn.004a6bcb
sub eax, dword [ebp - 0x74]
cmp eax, dword [ebp - 0x78]
ja 0x413ab1
push 0x76
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
js 0x41398b
mov dword [0x54f188], edi
mov dword [0x54f184], edi
push 0x19
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x412ad8
mov eax, dword [ebp + 8]
call fcn.0047eb32
mov eax, dword [ebp + 0xc]
push 1
call fcn.00410cc1
pop ecx
mov eax, esi
jmp 0x413b03
mov edx, dword [ebp + 8]
mov byte [edx], 0
call fcn.0047ebaf
test eax, eax
jne 0x4139f0
test esi, esi
je 0x4139f0
mov dword [0x54f190], edi
mov edi, esi
call fcn.00414459
push dword [ebp + 8]
mov dword [0x546b4c], eax
mov eax, dword [ebp - 0x38]
push 0x50
mov dword [0x546b50], eax
pop ecx
mov eax, 0x54f0e0
call fcn.0047ebe1
pop ecx
push 0x26
pop esi
jmp 0x4139a0
call fcn.004a6bcb
and dword [0x54f188], 0
mov edi, dword [ebp + 0xc]
mov dword [0x54f184], eax
jmp 0x413a11
inc dword [0x54f188]
call fcn.00414459
test eax, eax
jle 0x413a2b
push 0
push 0
push dword [ebp - 0x54]
push 1
call fcn.00413b08
add esp, 0x10
mov eax, dword [ebp + 8]
call fcn.0047eb32
push 0x76
jmp 0x4139f2
mov edi, esi
mov dword [0x54f190], 1
call fcn.00414459
push dword [ebp + 8]
mov dword [0x546b4c], eax
mov eax, dword [ebp - 0x38]
push 0x50
mov dword [0x546b50], eax
pop ecx
mov eax, 0x54f0e0
call fcn.0047ebe1
pop ecx
push 1
mov eax, esi
call fcn.00410cc1
pop ecx
lea eax, [ebx + 0x35]
jmp 0x413b03
inc dword [0x54f180]
jmp 0x413aaa
call fcn.004a6bcb
mov dword [0x54f0dc], eax
mov dword [0x54f180], ebx
jmp 0x413aaa
mov eax, dword [ebp - 0x44]
imul edi, edi, 0x25
sub eax, dword [ebp - 0x48]
cmp eax, edi
jae 0x413aaa
mov esi, dword [ebp + 0xc]
push 1
call fcn.004120e8
pop ecx
push 0xd
jmp 0x41297f
mov eax, dword [ebp - 4]
mov edx, dword [ebp + 8]
mov byte [eax + edx], 0
call fcn.0047ebaf
test eax, eax
jne 0x413af7
cmp esi, edi
je 0x413af7
mov edi, esi
mov dword [0x54f190], 1
call fcn.00414459
push dword [ebp + 8]
mov dword [0x546b4c], eax
mov eax, dword [ebp - 0x38]
push 0x50
mov dword [0x546b50], eax
pop ecx
mov eax, 0x54f0e0
call fcn.0047ebe1
pop ecx
mov esi, 0x92
jmp 0x4139a0
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret