Function at 0x180006450
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
movaps xmmword [rsp + 0x60], xmm6
movaps xmmword [rsp + 0x50], xmm7
mov rdi, rdx
mov rbx, rcx
mov rax, qword [rdx]
mov r8, qword [rax + 8]
mov rcx, rdx
call r8
cmp eax, 0x90
jne 0x1800067c7
mov rcx, qword [0x180187dd8]
mov rax, qword [rcx]
mov rdx, qword [rax + 0xe8]
call rdx
mov qword [rbp - 0x30], rax
mov r14b, 0x57
mov r13b, 0x53
mov r12b, 0x44
mov r15b, 0x41
xorps xmm0, xmm0
movups xmmword [rbp - 0x50], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x40], xmm1
mov r8d, 0x1c
lea rdx, str.keyboard_type_0_key.forward:
lea rcx, [rbp - 0x50]
call fcn.180001540
nop
lea rcx, [rbp - 0x50]
call fcn.180072de0
mov ecx, eax
call fcn.180072b90
mov esi, eax
mov rdx, qword [rbp - 0x38]
cmp rdx, 0xf
jbe 0x180006525
inc rdx
mov rcx, qword [rbp - 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180006520
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180006a09
call fcn.18007c3b0
xorps xmm0, xmm0
xorps xmm1, xmm1
lea rcx, [rbp - 0x50]
movups xmmword [rbp - 0x50], xmm0
movdqu xmmword [rbp - 0x40], xmm1
cmp esi, 0x57
je 0x1800067e9
mov r8d, 0x1c
lea rdx, str.keyboard_type_0_key.forward:
call fcn.180001540
nop
lea rcx, [rbp - 0x50]
call fcn.180072de0
mov ecx, eax
call fcn.180072b90
mov r14d, eax
mov rdx, qword [rbp - 0x38]
cmp rdx, 0xf
jbe 0x1800065a2
inc rdx
mov rcx, qword [rbp - 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18000659d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180006a09
call fcn.18007c3b0
mov rsi, qword [rbp - 0x30]
mov rax, qword [rsi + 0x2a0]
movss xmm7, dword [rax + 4]
movsx ecx, r14b
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mulss xmm7, dword [0x180107db0]
test ax, ax
jns 0x18000660d
movss xmm6, dword [rbx + 0xb0]
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_cosf
mulss xmm0, xmm6
addss xmm0, dword [rbx + 0xc0]
movss dword [rbx + 0xc0], xmm0
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
mulss xmm0, xmm6
movss xmm1, dword [rbx + 0xb8]
subss xmm1, xmm0
movss dword [rbx + 0xb8], xmm1
movsx ecx, r13b
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x180006660
movss xmm6, dword [rbx + 0xb0]
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_cosf
mulss xmm0, xmm6
movss xmm1, dword [rbx + 0xc0]
subss xmm1, xmm0
movss dword [rbx + 0xc0], xmm1
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
mulss xmm0, xmm6
addss xmm0, dword [rbx + 0xb8]
movss dword [rbx + 0xb8], xmm0
movsx ecx, r15b
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1800066af
movss xmm6, dword [rbx + 0xb0]
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
mulss xmm0, xmm6
addss xmm0, dword [rbx + 0xc0]
movss dword [rbx + 0xc0], xmm0
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_cosf
mulss xmm0, xmm6
addss xmm0, dword [rbx + 0xb8]
movss dword [rbx + 0xb8], xmm0
movsx ecx, r12b
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x180006706
movss xmm6, dword [rbx + 0xb0]
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
mulss xmm0, xmm6
movss xmm1, dword [rbx + 0xc0]
subss xmm1, xmm0
movss dword [rbx + 0xc0], xmm1
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_cosf
mulss xmm0, xmm6
movss xmm1, dword [rbx + 0xb8]
subss xmm1, xmm0
movss dword [rbx + 0xb8], xmm1
mov ecx, 0x20
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x18000672e
movss xmm0, dword [rbx + 0xb0]
addss xmm0, dword [rbx + 0xbc]
movss dword [rbx + 0xbc], xmm0
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x180006756
movss xmm0, dword [rbx + 0xbc]
subss xmm0, dword [rbx + 0xb0]
movss dword [rbx + 0xbc], xmm0
mov eax, dword [rbx + 0xb8]
mov dword [rdi + 0x38], eax
mov eax, dword [rbx + 0xbc]
mov dword [rdi + 0x3c], eax
mov eax, dword [rbx + 0xc0]
mov dword [rdi + 0x40], eax
mov rcx, qword [rsi + 0x290]
mov eax, dword [rbx + 0xb8]
mov dword [rcx], eax
mov eax, dword [rbx + 0xbc]
mov dword [rcx + 4], eax
mov eax, dword [rbx + 0xc0]
mov dword [rcx + 8], eax
mov eax, dword [rbx + 0xb8]
mov dword [rcx + 0xc], eax
mov eax, dword [rbx + 0xbc]
mov dword [rcx + 0x10], eax
mov eax, dword [rbx + 0xc0]
mov dword [rcx + 0x14], eax
cmp byte [rbx + 0xb4], 0
je 0x1800067c7
mov eax, dword [rdi + 0x38]
mov dword [rcx], eax
mov eax, dword [rdi + 0x3c]
mov dword [rcx + 4], eax
mov eax, dword [rdi + 0x40]
mov dword [rcx + 8], eax
mov rbx, qword [rsp + 0xc0]
movaps xmm6, xmmword [rsp + 0x60]
movaps xmm7, xmmword [rsp + 0x50]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov r8d, 0x19
lea rdx, str.keyboard_type_0_key.back:
call fcn.180001540
nop
lea rcx, [rbp - 0x50]
call fcn.180072de0
mov ecx, eax
call fcn.180072b90
mov esi, eax
mov rdx, qword [rbp - 0x38]
cmp rdx, 0xf
jbe 0x180006849
inc rdx
mov rcx, qword [rbp - 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180006844
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180006a09
call fcn.18007c3b0
xorps xmm0, xmm0
xorps xmm1, xmm1
mov r8d, 0x19
lea rcx, [rbp - 0x50]
movups xmmword [rbp - 0x50], xmm0
movdqu xmmword [rbp - 0x40], xmm1
cmp esi, 0x53
je 0x18000688c
lea rdx, str.keyboard_type_0_key.back:
call fcn.180001540
nop
lea rcx, [rbp - 0x50]
call fcn.180072de0
mov ecx, eax
call fcn.180072b90
mov r13d, eax
jmp 0x180006567
lea rdx, str.keyboard_type_0_key.left:
call fcn.180001540
nop
lea rcx, [rbp - 0x50]
call fcn.180072de0
mov ecx, eax
call fcn.180072b90
mov esi, eax
mov rdx, qword [rbp - 0x38]
cmp rdx, 0xf
jbe 0x1800068e6
inc rdx
mov rcx, qword [rbp - 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800068e1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180006a09
call fcn.18007c3b0
xorps xmm0, xmm0
xorps xmm1, xmm1
lea rcx, [rbp - 0x50]
movups xmmword [rbp - 0x50], xmm0
movdqu xmmword [rbp - 0x40], xmm1
cmp esi, 0x41
je 0x180006929
mov r8d, 0x19
lea rdx, str.keyboard_type_0_key.left:
call fcn.180001540
nop
lea rcx, [rbp - 0x50]
call fcn.180072de0
mov ecx, eax
call fcn.180072b90
mov r15d, eax
jmp 0x180006567
mov r8d, 0x1a
lea rdx, str.keyboard_type_0_key.right:
call fcn.180001540
nop
lea rcx, [rbp - 0x50]
call fcn.180072de0
mov ecx, eax
call fcn.180072b90
mov esi, eax
mov rdx, qword [rbp - 0x38]
cmp rdx, 0xf
jbe 0x180006989
inc rdx
mov rcx, qword [rbp - 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180006984
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180006a09
call fcn.18007c3b0
cmp esi, 0x44
je 0x1800065a2
xorps xmm0, xmm0
movups xmmword [rbp - 0x50], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x40], xmm1
mov r8d, 0x1a
lea rdx, str.keyboard_type_0_key.right:
lea rcx, [rbp - 0x50]
call fcn.180001540
nop
lea rcx, [rbp - 0x50]
call fcn.180072de0
mov ecx, eax
call fcn.180072b90
mov r12d, eax
mov rdx, qword [rbp - 0x38]
cmp rdx, 0xf
jbe 0x1800065a2
inc rdx
mov rcx, qword [rbp - 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18000659d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18000659d
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3