Function at 0x18003db30
Capabilities:
Log keystrokes via polling

Disassembly:
mov dword [rsp + 8], ecx
sub rsp, 0x128
mov rax, qword [0x18008b900]
xor rax, rsp
mov qword [rsp + 0x110], rax
movzx eax, byte [0x1800c2edc]
test eax, eax
jne 0x18003db96
mov eax, dword [0x18008b81c]
cmp dword [rsp + 0x130], eax
jne 0x18003db96
mov byte [0x1800c2edc], 1
movzx eax, byte [0x1800c2ebf]
test eax, eax
jne 0x18003db83
mov dword [rsp + 0x20], 1
jmp 0x18003db8b
mov dword [rsp + 0x20], 0
movzx eax, byte [rsp + 0x20]
mov byte [0x1800c2ebf], al
movzx eax, byte [0x1800c2edd]
test eax, eax
je 0x18003dbc2
cmp dword [rsp + 0x130], 0
je 0x18003dbc2
mov rax, qword [0x1800c2f30]
mov ecx, dword [rsp + 0x130]
mov dword [rax], ecx
mov byte [0x1800c2edd], 0
movzx eax, byte [0x1800c3778]
test eax, eax
je 0x18003de11
mov rdx, qword [0x1800c3780]
lea rcx, [rsp + 0x70]
call fcn.180030240
nop
mov ecx, dword [rsp + 0x130]
call fcn.18005f700
mov qword [rsp + 0x28], rax
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x50]
call fcn.180030240
nop
cmp dword [rsp + 0x130], 0x61
jl 0x18003dc18
cmp dword [rsp + 0x130], 0x7a
jle 0x18003dc26
cmp dword [rsp + 0x130], 8
jne 0x18003dcfc
lea rdx, str.backspace
mov rcx, qword [rsp + 0x28]
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
test eax, eax
je 0x18003dc45
cmp dword [rsp + 0x130], 8
jne 0x18003dc8d
lea rcx, [rsp + 0x50]
call fcn.18001d7e0
dec rax
mov r9, rax
xor r8d, r8d
lea rdx, [rsp + 0x90]
lea rcx, [rsp + 0x50]
call fcn.18001d8d0
mov qword [rsp + 0x30], rax
mov rdx, qword [rsp + 0x30]
lea rcx, [rsp + 0x50]
call fcn.1800062d0
lea rcx, [rsp + 0x90]
call fcn.1800037b0
jmp 0x18003dceb
mov rcx, qword [0x1800c3780]
call fcn.18001d7e0
cmp rax, 0x16
jae 0x18003dceb
lea rdx, str.space
mov rcx, qword [rsp + 0x28]
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
test eax, eax
jne 0x18003dcc7
lea rdx, [0x18007ee24]
lea rcx, [rsp + 0x50]
call fcn.180003f40
jmp 0x18003dceb
lea rdx, str.none
mov rcx, qword [rsp + 0x28]
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
test eax, eax
je 0x18003dceb
mov rdx, qword [rsp + 0x28]
lea rcx, [rsp + 0x50]
call fcn.180003f40
lea rdx, [rsp + 0x50]
mov rcx, qword [0x1800c3780]
call fcn.1800313a0
mov ecx, 0xba
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
and eax, 1
test eax, eax
je 0x18003dd4e
lea r8, [0x18007ee30]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0xb0]
call fcn.18002bec0
mov qword [rsp + 0x38], rax
mov rdx, qword [rsp + 0x38]
lea rcx, [rsp + 0x50]
call fcn.1800062d0
lea rcx, [rsp + 0xb0]
call fcn.1800037b0
jmp 0x18003ddea
mov ecx, 0xbe
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
and eax, 1
test eax, eax
je 0x18003dd9d
lea r8, [0x18007ee34]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0xd0]
call fcn.18002bec0
mov qword [rsp + 0x40], rax
mov rdx, qword [rsp + 0x40]
lea rcx, [rsp + 0x50]
call fcn.1800062d0
lea rcx, [rsp + 0xd0]
call fcn.1800037b0
jmp 0x18003ddea
mov ecx, 0xdc
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
and eax, 1
test eax, eax
je 0x18003ddea
lea r8, [0x18007ee38]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0xf0]
call fcn.18002bec0
mov qword [rsp + 0x48], rax
mov rdx, qword [rsp + 0x48]
lea rcx, [rsp + 0x50]
call fcn.1800062d0
lea rcx, [rsp + 0xf0]
call fcn.1800037b0
lea rdx, [rsp + 0x50]
mov rcx, qword [0x1800c3780]
call fcn.1800313a0
nop
lea rcx, [rsp + 0x50]
call fcn.1800037b0
nop
lea rcx, [rsp + 0x70]
call fcn.1800037b0
mov rcx, qword [rsp + 0x110]
xor rcx, rsp
call fcn.180071ed0
add rsp, 0x128
ret