Function at 0x660d5c18
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x1c
push ebx
push ebp
push esi
push edi
call fcn.66010656
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 [0x66110c60], edi
mov dword [0x66110c58], edi
mov dword [0x66110c68], edi
mov dword [0x66110c5c], edi
mov dword [esp + 0x18], esi
mov dword [0x66110c6c], 1
mov dword [esp + 0x28], eax
mov ebp, 0x100
push 0xa
pop ebx
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x10], eax
jae 0x660d5e70
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.660e479f
mov dword [esp + 0x34], eax
movzx eax, ax
cmp eax, 0x28
jg 0x660d5d37
je 0x660d5cf6
cmp eax, 0x25
jne 0x660d5ed0
cmp dword [0x66110c58], edi
jne 0x660d5e78
mov eax, dword [0x66110c68]
push dword [0x66110c6c]
neg eax
sbb eax, eax
push 0x12
and al, 0xfc
add eax, 0x104
movzx eax, ax
push eax
call fcn.660d6217
mov dword [0x66110c6c], edi
mov dword [0x66110c58], ebx
jmp 0x660d5c6d
inc esi
cmp esi, 3
mov dword [esp + 0x18], esi
jg 0x660d5e78
cmp dword [0x66110c5c], ebx
jne 0x660d5d12
mov dword [0x66110c5c], esi
cmp dword [0x66110c68], ebx
jne 0x660d5d20
mov dword [0x66110c68], esi
cmp dword [0x66110c58], ebx
jne 0x660d5c6d
mov dword [0x66110c58], esi
jmp 0x660d5c6d
sub eax, 0x29
je 0x660d5e38
dec eax
dec eax
je 0x660d5e11
sub eax, 0x33
je 0x660d5de6
sub eax, 0x1d
je 0x660d5e7f
dec eax
dec eax
je 0x660d5e78
dec eax
jne 0x660d5ed0
push 0xd
pop esi
dec dword [esp + 0x30]
js 0x660d616a
mov eax, dword [esp + 0x30]
movzx esi, si
lea ebx, [eax + 1]
cmp dword [0x66110c58], edi
je 0x660d61df
mov eax, dword [0x66110c68]
neg eax
sbb eax, eax
and al, 0xfc
add eax, 0x104
push dword [0x66110c6c]
movzx eax, ax
push esi
push eax
call fcn.660d6217
cmp dword [0x66110c58], edi
mov dword [0x66110c6c], edi
je 0x660d61e9
mov eax, dword [0x66110c68]
neg eax
sbb eax, eax
and al, 0xfc
add eax, 0x105
movzx eax, ax
push edi
push esi
push eax
call fcn.660d6217
dec dword [esp + 0x30]
dec ebx
je 0x660d616a
jmp 0x660d5d80
cmp dword [0x66110c68], edi
jne 0x660d5e78
push dword [0x66110c6c]
push 0x11
push ebp
call fcn.660d6217
mov dword [0x66110c6c], edi
mov dword [0x66110c68], ebx
jmp 0x660d5c6d
cmp dword [0x66110c5c], edi
jne 0x660d5e78
push dword [0x66110c6c]
push 0x10
push ebp
call fcn.660d6217
mov dword [0x66110c6c], edi
mov dword [0x66110c5c], ebx
jmp 0x660d5c6d
cmp esi, edi
jle 0x660d5e78
push esi
push 0x66110c60
push 0x66110c58
push 0x66110c68
push 0x66110c5c
call fcn.660d63d7
dec esi
mov dword [esp + 0x18], esi
jne 0x660d5c6d
mov dword [0x66110c6c], 1
jmp 0x660d5c6d
cmp esi, edi
je 0x660d61f3
push 5
call fcn.66024fdc
push dword [esp + 0x28]
push 0x7d
push dword [esp + 0x18]
call fcn.660d62a6
mov ebx, eax
cmp ebx, edi
je 0x660d5e78
mov eax, dword [esp + 0x10]
push ebx
push 0x20
lea ebp, [eax + 2]
push ebp
call fcn.660d62a6
mov esi, eax
cmp esi, edi
jne 0x660d601e
mov eax, ebx
cmp ebp, eax
jne 0x660d61ad
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 [0x6610ed74], edi
je 0x660d60c4
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 0x660d60bc
push dword [esp + 0x20]
call dword [sym.imp.USER32.dll_VkKeyScanA]
movsx ebx, ax
cmp ebx, 0xffffffff
je 0x660d60bc
mov eax, dword [esp + 0x20]
mov dword [esp + 0x14], eax
cmp ebx, 0xffffffff
je 0x660d60d6
cmp dword [0x6610ed74], edi
je 0x660d5f3d
cmp word [esp + 0x14], 0xff
ja 0x660d60d6
mov esi, ebx
and esi, 0xff
cmp dword [0x66110c5c], edi
jne 0x660d5f6f
test ebp, ebx
je 0x660d5f6f
push dword [0x66110c6c]
push 0x10
push ebp
call fcn.660d6217
mov dword [0x66110c6c], edi
mov dword [0x66110c5c], 0xa
cmp dword [0x66110c68], edi
jne 0x660d5f9a
test bh, 2
je 0x660d5f9a
push dword [0x66110c6c]
push 0x11
push ebp
call fcn.660d6217
mov dword [0x66110c6c], edi
mov dword [0x66110c68], 0xa
cmp dword [0x66110c58], edi
jne 0x660d5fc5
test bh, 4
je 0x660d5fc5
push dword [0x66110c6c]
push 0x12
push ebp
call fcn.660d6217
mov dword [0x66110c6c], edi
mov dword [0x66110c58], 0xa
mov ax, word [0x6610efc4]
and ax, 0x3ff
cmp ax, 0x11
jne 0x660d5d6c
cmp dword [0x66110c60], edi
jne 0x660d5d6c
test bh, 8
je 0x660d5d6c
push dword [0x66110c6c]
push 0x15
push ebp
call fcn.660d6217
push edi
push 0x15
push 0x101
mov dword [0x66110c6c], edi
call fcn.660d6217
mov dword [0x66110c60], 0xa
jmp 0x660d5d6c
mov dword [esp + 0x20], esi
mov ax, word [esi]
cmp ax, di
je 0x660d6047
push eax
push dword [esp + 0x20]
call fcn.660e479f
push eax
mov dword [esp + 0x38], eax
call fcn.660ee2d1
test eax, eax
pop ecx
je 0x660d6047
inc esi
inc esi
jmp 0x660d6022
cmp word [esi], di
je 0x660d605e
push dword [esp + 0x34]
call fcn.660ee2c1
test eax, eax
pop ecx
je 0x660d5e78
mov dword [esp + 0x30], edi
cmp word [esi], di
je 0x660d60ab
push dword [esp + 0x34]
call fcn.660ee2c1
test eax, eax
pop ecx
je 0x660d60ab
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.660e479f
cmp dword [esp + 0x30], 0x1ff0
mov dword [esp + 0x34], eax
jl 0x660d6062
jmp 0x660d5e78
cmp esi, ebx
jne 0x660d5e78
mov eax, dword [esp + 0x20]
jmp 0x660d5eb0
or ebx, 0xffffffff
jmp 0x660d5f1f
push dword [esp + 0x14]
call dword [sym.imp.USER32.dll_VkKeyScanW]
movsx ebx, ax
jmp 0x660d5f1f
dec dword [esp + 0x30]
js 0x660d616a
mov eax, dword [esp + 0x30]
mov ebx, 0xff
mov esi, 0x102
lea ebp, [eax + 1]
cmp dword [0x6610ed74], edi
je 0x660d61a0
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 0x660d6145
mov eax, dword [esp + 0x24]
push dword [0x66110c6c]
and eax, ebx
push eax
push esi
call fcn.660d6217
mov dword [0x66110c6c], edi
push edi
movzx eax, word [esp + 0x28]
shr eax, 8
push eax
push esi
call fcn.660d6217
jmp 0x660d6163
cmp eax, 1
jl 0x660d6163
mov eax, dword [esp + 0x24]
push dword [0x66110c6c]
and eax, ebx
push eax
push esi
call fcn.660d6217
mov dword [0x66110c6c], edi
dec dword [esp + 0x30]
dec ebp
jne 0x660d60f1
push 0xa
push 0x66110c60
push 0x66110c58
push 0x66110c68
push 0x66110c5c
call fcn.660d63d7
mov esi, dword [esp + 0x18]
cmp esi, edi
jne 0x660d5c65
mov dword [0x66110c6c], 1
jmp 0x660d5c65
push dword [0x66110c6c]
movzx eax, word [esp + 0x18]
jmp 0x660d613c
push eax
push dword [esp + 0x14]
call fcn.660d62ed
mov esi, eax
cmp esi, 0xffffffff
je 0x660d5e78
add ebx, 2
cmp esi, edi
mov dword [esp + 0x10], ebx
jne 0x660d5d6c
mov esi, dword [esp + 0x18]
mov ebp, 0x100
jmp 0x660d5c6a
mov eax, 0x100
jmp 0x660d5d9c
mov eax, 0x101
jmp 0x660d5dce
push ebx
push 0x66110c60
push 0x66110c58
push 0x66110c68
push 0x66110c5c
call fcn.660d63d7
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret 8