Function at 0x100015c0
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x304
lea eax, [esp + 0x204]
push ebx
push eax
call dword [sym.imp.USER32.dll_GetKeyboardState]
test eax, eax
jne 0x100015e3
mov al, 0x20
pop ebx
add esp, 0x304
ret
mov cl, byte [esp + 0x21c]
mov al, byte [esp + 0x298]
mov ebx, 1
push ebp
mov ebp, dword [sym.imp.USER32.dll_GetAsyncKeyState]
cmp cl, bl
sete byte [esp + 0xb]
push esi
cmp al, bl
push edi
mov esi, ebx
sete byte [esp + 0x12]
lea edi, [esp + 0x16]
push esi
call ebp
mov word [edi], ax
inc esi
add edi, 2
cmp esi, 0x100
jl 0x10001613
mov ax, word [esp + 0x34]
pop edi
cmp ax, word [esp + 0x150]
pop esi
mov byte [esp + 9], 0
pop ebp
jne 0x10001645
test ax, ax
je 0x10001645
mov byte [esp + 5], bl
cmp ax, word [esp + 0x14a]
jne 0x10001658
test ax, ax
je 0x10001658
mov byte [esp + 5], bl
mov edx, 0xffff8001
cmp word [esp + 0xa], dx
jne 0x1000166e
mov al, bl
pop ebx
add esp, 0x304
ret
cmp word [esp + 0x22], dx
jne 0x1000167f
mov al, 0xd
pop ebx
add esp, 0x304
ret
cmp word [esp + 0x18], dx
jne 0x10001690
mov al, 8
pop ebx
add esp, 0x304
ret
cmp word [esp + 0x1a], dx
jne 0x100016a1
mov al, 9
pop ebx
add esp, 0x304
ret
mov eax, 0x41
lea ecx, [esp + 0x8a]
cmp word [ecx], dx
je 0x100016d7
inc eax
add ecx, 2
cmp eax, 0x5a
jle 0x100016ad
mov eax, 0x30
lea ecx, [esp + 0x68]
cmp word [ecx], dx
je 0x100016f2
inc eax
add ecx, 2
cmp eax, 0x39
jle 0x100016c4
jmp 0x10001767
mov cl, byte [esp + 7]
mov dl, byte [esp + 5]
cmp dl, cl
jne 0x10001a62
add eax, 0x20
pop ebx
add esp, 0x304
ret
mov cl, byte [esp + 5]
test cl, cl
je 0x10001a62
add eax, 0xffffffd0
cmp eax, 8
ja case.default.0x10001706
jmp dword [eax*4 + 0x10001a6c]
mov al, 0x29
pop ebx
add esp, 0x304
ret
mov al, 0x21
pop ebx
add esp, 0x304
ret
mov al, 0x40
pop ebx
add esp, 0x304
ret
mov al, 0x23
pop ebx
add esp, 0x304
ret
mov al, 0x24
pop ebx
add esp, 0x304
ret
mov al, 0x25
pop ebx
add esp, 0x304
ret
mov al, 0x5e
pop ebx
add esp, 0x304
ret
mov al, 0x26
pop ebx
add esp, 0x304
ret
mov al, 0x28
pop ebx
add esp, 0x304
ret
mov al, byte [esp + 5]
test al, al
jne 0x10001853
cmp word [esp + 0x1c0], dx
jne 0x10001787
mov al, 0x5c
pop ebx
add esp, 0x304
ret
cmp word [esp + 0x17c], dx
jne 0x1000179b
mov al, 0x3b
pop ebx
add esp, 0x304
ret
cmp word [esp + 0x17e], dx
jne 0x100017af
mov al, 0x3d
pop ebx
add esp, 0x304
ret
cmp word [esp + 0x180], dx
jne 0x100017c3
mov al, 0x2c
pop ebx
add esp, 0x304
ret
cmp word [esp + 0x182], dx
jne 0x100017d7
mov al, 0x2d
pop ebx
add esp, 0x304
ret
cmp word [esp + 0x184], dx
jne 0x100017eb
mov al, 0x2e
pop ebx
add esp, 0x304
ret
cmp word [esp + 0x186], dx
jne 0x100017ff
mov al, 0x2f
pop ebx
add esp, 0x304
ret
cmp word [esp + 0x188], dx
jne 0x10001813
mov al, 0x60
pop ebx
add esp, 0x304
ret
cmp word [esp + 0x1be], dx
jne 0x10001827
mov al, 0x5b
pop ebx
add esp, 0x304
ret
cmp word [esp + 0x1c4], dx
jne 0x1000183b
mov al, 0x27
pop ebx
add esp, 0x304
ret
cmp word [esp + 0x1c2], dx
jne 0x1000192f
mov al, 0x5d
pop ebx
add esp, 0x304
ret
cmp word [esp + 0x1c0], dx
jne 0x10001867
mov al, 0x7c
pop ebx
add esp, 0x304
ret
cmp word [esp + 0x17c], dx
jne 0x1000187b
mov al, 0x3a
pop ebx
add esp, 0x304
ret
cmp word [esp + 0x17e], dx
jne 0x1000188f
mov al, 0x2b
pop ebx
add esp, 0x304
ret
cmp word [esp + 0x180], dx
jne 0x100018a3
mov al, 0x3c
pop ebx
add esp, 0x304
ret
cmp word [esp + 0x182], dx
jne 0x100018b7
mov al, 0x5f
pop ebx
add esp, 0x304
ret
cmp word [esp + 0x184], dx
jne 0x100018cb
mov al, 0x3e
pop ebx
add esp, 0x304
ret
cmp word [esp + 0x186], dx
jne 0x100018df
mov al, 0x3f
pop ebx
add esp, 0x304
ret
cmp word [esp + 0x188], dx
jne 0x100018f3
mov al, 0x7e
pop ebx
add esp, 0x304
ret
cmp word [esp + 0x1be], dx
jne 0x10001907
mov al, 0x7b
pop ebx
add esp, 0x304
ret
cmp word [esp + 0x1c4], dx
jne 0x1000191b
mov al, 0x22
pop ebx
add esp, 0x304
ret
cmp word [esp + 0x1c2], dx
jne 0x1000192f
mov al, 0x7d
pop ebx
add esp, 0x304
ret
mov al, byte [esp + 6]
test al, al
je 0x10001a17
cmp word [esp + 0xc8], dx
jne 0x1000194f
mov al, 0x30
pop ebx
add esp, 0x304
ret
cmp word [esp + 0xca], dx
jne 0x10001963
mov al, 0x31
pop ebx
add esp, 0x304
ret
cmp word [esp + 0xcc], dx
jne 0x10001977
mov al, 0x32
pop ebx
add esp, 0x304
ret
cmp word [esp + 0xce], dx
jne 0x1000198b
mov al, 0x33
pop ebx
add esp, 0x304
ret
cmp word [esp + 0xd0], dx
jne 0x1000199f
mov al, 0x34
pop ebx
add esp, 0x304
ret
cmp word [esp + 0xd2], dx
jne 0x100019b3
mov al, 0x35
pop ebx
add esp, 0x304
ret
cmp word [esp + 0xd4], dx
jne 0x100019c7
mov al, 0x36
pop ebx
add esp, 0x304
ret
cmp word [esp + 0xd6], dx
jne 0x100019db
mov al, 0x37
pop ebx
add esp, 0x304
ret
cmp word [esp + 0xd8], dx
jne 0x100019ef
mov al, 0x38
pop ebx
add esp, 0x304
ret
cmp word [esp + 0xda], dx
jne 0x10001a03
mov al, 0x39
pop ebx
add esp, 0x304
ret
cmp word [esp + 0xe4], dx
jne 0x10001a17
mov al, 0x2e
pop ebx
add esp, 0x304
ret
cmp word [esp + 0xe6], dx
jne 0x10001a2b
mov al, 0x2f
pop ebx
add esp, 0x304
ret
cmp word [esp + 0xdc], dx
jne 0x10001a3f
mov al, 0x2a
pop ebx
add esp, 0x304
ret
cmp word [esp + 0xde], dx
jne 0x10001a53
mov al, 0x2b
pop ebx
add esp, 0x304
ret
cmp word [esp + 0xe2], dx
setne al
dec eax
and eax, 0x2d
pop ebx
add esp, 0x304
ret