Function at 0x660d7069
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x1c
push ebx
push ebp
push esi
push edi
call fcn.660106d9
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x30]
xor edi, edi
mov dword [esp + 0x10], eax
xor esi, esi
lea eax, [eax + ecx*2]
mov dword [0x66111c78], edi
mov dword [0x66111c70], edi
mov dword [0x66111c80], edi
mov dword [0x66111c74], edi
mov dword [esp + 0x18], esi
mov dword [0x66111c84], 1
mov dword [esp + 0x28], eax
mov ebp, 0x100
push 0xa
pop ebx
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x10], eax
jae 0x660d72c1
mov eax, dword [esp + 0x10]
add dword [esp + 0x10], 2
mov dword [esp + 0x30], 1
mov ax, word [eax]
push eax
mov dword [esp + 0x18], eax
push dword [esp + 0x20]
call fcn.660e5c5f
mov dword [esp + 0x34], eax
movzx eax, ax
cmp eax, 0x28
jg 0x660d7188
je 0x660d7147
cmp eax, 0x25
jne 0x660d7321
cmp dword [0x66111c70], edi
jne 0x660d72c9
mov eax, dword [0x66111c80]
push dword [0x66111c84]
neg eax
sbb eax, eax
push 0x12
and al, 0xfc
add eax, 0x104
movzx eax, ax
push eax
call fcn.660d7668
mov dword [0x66111c84], edi
mov dword [0x66111c70], ebx
jmp 0x660d70be
inc esi
cmp esi, 3
mov dword [esp + 0x18], esi
jg 0x660d72c9
cmp dword [0x66111c74], ebx
jne 0x660d7163
mov dword [0x66111c74], esi
cmp dword [0x66111c80], ebx
jne 0x660d7171
mov dword [0x66111c80], esi
cmp dword [0x66111c70], ebx
jne 0x660d70be
mov dword [0x66111c70], esi
jmp 0x660d70be
sub eax, 0x29
je 0x660d7289
dec eax
dec eax
je 0x660d7262
sub eax, 0x33
je 0x660d7237
sub eax, 0x1d
je 0x660d72d0
dec eax
dec eax
je 0x660d72c9
dec eax
jne 0x660d7321
push 0xd
pop esi
dec dword [esp + 0x30]
js 0x660d75bb
mov eax, dword [esp + 0x30]
movzx esi, si
lea ebx, [eax + 1]
cmp dword [0x66111c70], edi
je 0x660d7630
mov eax, dword [0x66111c80]
neg eax
sbb eax, eax
and al, 0xfc
add eax, 0x104
push dword [0x66111c84]
movzx eax, ax
push esi
push eax
call fcn.660d7668
cmp dword [0x66111c70], edi
mov dword [0x66111c84], edi
je 0x660d763a
mov eax, dword [0x66111c80]
neg eax
sbb eax, eax
and al, 0xfc
add eax, 0x105
movzx eax, ax
push edi
push esi
push eax
call fcn.660d7668
dec dword [esp + 0x30]
dec ebx
je 0x660d75bb
jmp 0x660d71d1
cmp dword [0x66111c80], edi
jne 0x660d72c9
push dword [0x66111c84]
push 0x11
push ebp
call fcn.660d7668
mov dword [0x66111c84], edi
mov dword [0x66111c80], ebx
jmp 0x660d70be
cmp dword [0x66111c74], edi
jne 0x660d72c9
push dword [0x66111c84]
push 0x10
push ebp
call fcn.660d7668
mov dword [0x66111c84], edi
mov dword [0x66111c74], ebx
jmp 0x660d70be
cmp esi, edi
jle 0x660d72c9
push esi
push 0x66111c78
push 0x66111c70
push 0x66111c80
push 0x66111c74
call fcn.660d7828
dec esi
mov dword [esp + 0x18], esi
jne 0x660d70be
mov dword [0x66111c84], 1
jmp 0x660d70be
cmp esi, edi
je 0x660d7644
push 5
call fcn.66025592
push dword [esp + 0x28]
push 0x7d
push dword [esp + 0x18]
call fcn.660d76f7
mov ebx, eax
cmp ebx, edi
je 0x660d72c9
mov eax, dword [esp + 0x10]
push ebx
push 0x20
lea ebp, [eax + 2]
push ebp
call fcn.660d76f7
mov esi, eax
cmp esi, edi
jne 0x660d746f
mov eax, ebx
cmp ebp, eax
jne 0x660d75fe
mov eax, dword [esp + 0x10]
add ebx, 2
mov dword [esp + 0x10], ebx
mov ebp, 0x100
mov ax, word [eax]
mov word [esp + 0x14], ax
cmp dword [0x6610fd90], edi
je 0x660d7515
push edi
push edi
lea eax, [esp + 0x28]
push 2
push eax
lea eax, [esp + 0x24]
push 1
push eax
push edi
push edi
mov dword [esp + 0x40], edi
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
cmp eax, 1
jne 0x660d750d
push dword [esp + 0x20]
call dword [sym.imp.USER32.dll_VkKeyScanA]
movsx ebx, ax
cmp ebx, 0xffffffff
je 0x660d750d
mov eax, dword [esp + 0x20]
mov dword [esp + 0x14], eax
cmp ebx, 0xffffffff
je 0x660d7527
cmp dword [0x6610fd90], edi
je 0x660d738e
cmp word [esp + 0x14], 0xff
ja 0x660d7527
mov esi, ebx
and esi, 0xff
cmp dword [0x66111c74], edi
jne 0x660d73c0
test ebp, ebx
je 0x660d73c0
push dword [0x66111c84]
push 0x10
push ebp
call fcn.660d7668
mov dword [0x66111c84], edi
mov dword [0x66111c74], 0xa
cmp dword [0x66111c80], edi
jne 0x660d73eb
test bh, 2
je 0x660d73eb
push dword [0x66111c84]
push 0x11
push ebp
call fcn.660d7668
mov dword [0x66111c84], edi
mov dword [0x66111c80], 0xa
cmp dword [0x66111c70], edi
jne 0x660d7416
test bh, 4
je 0x660d7416
push dword [0x66111c84]
push 0x12
push ebp
call fcn.660d7668
mov dword [0x66111c84], edi
mov dword [0x66111c70], 0xa
mov ax, word [0x6610ffdc]
and ax, 0x3ff
cmp ax, 0x11
jne 0x660d71bd
cmp dword [0x66111c78], edi
jne 0x660d71bd
test bh, 8
je 0x660d71bd
push dword [0x66111c84]
push 0x15
push ebp
call fcn.660d7668
push edi
push 0x15
push 0x101
mov dword [0x66111c84], edi
call fcn.660d7668
mov dword [0x66111c78], 0xa
jmp 0x660d71bd
mov dword [esp + 0x20], esi
mov ax, word [esi]
cmp ax, di
je 0x660d7498
push eax
push dword [esp + 0x20]
call fcn.660e5c5f
push eax
mov dword [esp + 0x38], eax
call fcn.660ef871
test eax, eax
pop ecx
je 0x660d7498
inc esi
inc esi
jmp 0x660d7473
cmp word [esi], di
je 0x660d74af
push dword [esp + 0x34]
call fcn.660ef861
test eax, eax
pop ecx
je 0x660d72c9
mov dword [esp + 0x30], edi
cmp word [esi], di
je 0x660d74fc
push dword [esp + 0x34]
call fcn.660ef861
test eax, eax
pop ecx
je 0x660d74fc
mov eax, dword [esp + 0x30]
inc esi
movzx ecx, word [esp + 0x34]
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
mov dword [esp + 0x30], eax
mov ax, word [esi]
push eax
push dword [esp + 0x20]
call fcn.660e5c5f
cmp dword [esp + 0x30], 0x1ff0
mov dword [esp + 0x34], eax
jl 0x660d74b3
jmp 0x660d72c9
cmp esi, ebx
jne 0x660d72c9
mov eax, dword [esp + 0x20]
jmp 0x660d7301
or ebx, 0xffffffff
jmp 0x660d7370
push dword [esp + 0x14]
call dword [sym.imp.USER32.dll_VkKeyScanW]
movsx ebx, ax
jmp 0x660d7370
dec dword [esp + 0x30]
js 0x660d75bb
mov eax, dword [esp + 0x30]
mov ebx, 0xff
mov esi, 0x102
lea ebp, [eax + 1]
cmp dword [0x6610fd90], edi
je 0x660d75f1
push edi
push edi
lea eax, [esp + 0x2c]
push 2
push eax
lea eax, [esp + 0x24]
push 1
push eax
push edi
push edi
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
cmp eax, 2
jl 0x660d7596
mov eax, dword [esp + 0x24]
push dword [0x66111c84]
and eax, ebx
push eax
push esi
call fcn.660d7668
mov dword [0x66111c84], edi
push edi
movzx eax, word [esp + 0x28]
shr eax, 8
push eax
push esi
call fcn.660d7668
jmp 0x660d75b4
cmp eax, 1
jl 0x660d75b4
mov eax, dword [esp + 0x24]
push dword [0x66111c84]
and eax, ebx
push eax
push esi
call fcn.660d7668
mov dword [0x66111c84], edi
dec dword [esp + 0x30]
dec ebp
jne 0x660d7542
push 0xa
push 0x66111c78
push 0x66111c70
push 0x66111c80
push 0x66111c74
call fcn.660d7828
mov esi, dword [esp + 0x18]
cmp esi, edi
jne 0x660d70b6
mov dword [0x66111c84], 1
jmp 0x660d70b6
push dword [0x66111c84]
movzx eax, word [esp + 0x18]
jmp 0x660d758d
push eax
push dword [esp + 0x14]
call fcn.660d773e
mov esi, eax
cmp esi, 0xffffffff
je 0x660d72c9
add ebx, 2
cmp esi, edi
mov dword [esp + 0x10], ebx
jne 0x660d71bd
mov esi, dword [esp + 0x18]
mov ebp, 0x100
jmp 0x660d70bb
mov eax, 0x100
jmp 0x660d71ed
mov eax, 0x101
jmp 0x660d721f
push ebx
push 0x66111c78
push 0x66111c70
push 0x66111c80
push 0x66111c74
call fcn.660d7828
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret 8