Function at 0x180079fd0
Capabilities:
Log keystrokes via polling

Disassembly:
push rbx
push rbp
push rdi
sub rsp, 0x50
mov edx, 0x1b
movzx ebx, cl
call fcn.1800afc50
mov edx, 0x13
call fcn.1800afc50
mov edx, 0x55
call fcn.1800afc50
mov edx, 0x51
call fcn.1800afc50
mov edx, 0x52
call fcn.1800afc50
mov edx, 0x53
call fcn.1800afc50
mov edx, 0x54
call fcn.1800afc50
call fcn.1800c8ef0
mov edx, 3
lea rcx, str.Rotate_Up__CTRL_
call fcn.1800c9100
mov edx, 3
lea rcx, str.Rotate_Down__Shift_
call fcn.1800c9100
mov edx, 3
lea rcx, str.Forward__W_
call fcn.1800c9100
mov edx, 3
lea rcx, str.Backward__S_
call fcn.1800c9100
mov edx, 3
lea rcx, str.Left__A_
call fcn.1800c9100
mov edx, 3
lea rcx, str.Right__D_
call fcn.1800c9100
call fcn.1800c92a0
movabs rbp, 0xd80958fc74e988a6
mov qword [0x18033c890], rbp
test bl, bl
je 0x18007ad49
xor ebx, ebx
mov dword [0x1802bdc48], ebx
mov dword [0x1802bdc58], ebx
call fcn.1800cdff0
mov qword [rsp + 0x78], rbx
movabs rdi, 0x6094ad011a2ea87d
mov qword [0x18033c890], rdi
mov ecx, dword [rax]
mov dword [rsp + 0x78], ecx
mov rax, qword [rsp + 0x78]
mov qword [0x1802bdd20], rax
mov dword [0x1802bdc58], ebx
mov dword [0x1802bdc48], 1
call fcn.1800cdff0
mov qword [0x18033c890], rbp
cmp dword [rax], ebx
mov dword [0x1802bdc48], ebx
mov dword [0x1802bdc58], ebx
je 0x18007acb3
mov qword [rsp + 0x80], rsi
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x40], r15
movaps xmmword [rsp + 0x30], xmm6
call fcn.1800cdff0
mov qword [rsp + 0x78], rbx
mov qword [0x18033c890], rdi
mov ecx, dword [rax]
mov dword [rsp + 0x78], ecx
mov rax, qword [rsp + 0x78]
mov qword [0x1802bdd20], rax
mov dword [0x1802bdc58], ebx
mov dword [0x1802bdc48], 1
call fcn.1800cdff0
mov qword [rsp + 0x78], rbx
mov ecx, dword [rax]
movabs rax, 0x89f149b6131e57da
mov dword [rsp + 0x78], ecx
mov qword [0x18033c890], rax
mov rax, qword [rsp + 0x78]
mov qword [0x1802bdd20], rax
mov dword [0x1802bdc58], ebx
mov qword [0x1802bdd28], rbx
mov dword [0x1802bdc48], 2
call fcn.1800cdff0
mov dword [0x1802bdc48], ebx
mov dword [0x1802bdc58], ebx
mov qword [0x18033c890], rbp
call fcn.1800cdff0
mov qword [rsp + 0x78], rbx
mov qword [0x18033c890], rdi
mov ecx, dword [rax]
mov dword [rsp + 0x78], ecx
mov rax, qword [rsp + 0x78]
mov qword [0x1802bdd20], rax
mov dword [0x1802bdc58], ebx
mov dword [0x1802bdc48], 1
call fcn.1800cdff0
mov qword [rsp + 0x78], rbx
mov ecx, dword [rax]
movabs rax, 0xd45dc2893621e1fe
mov dword [rsp + 0x78], ecx
mov qword [0x18033c890], rax
mov rax, qword [rsp + 0x78]
mov qword [0x1802bdd20], rax
mov dword [0x1802bdc58], ebx
mov dword [0x1802bdc48], 1
call fcn.1800cdff0
mov qword [0x18033c890], rbp
movss xmm0, dword [rax]
movss dword [0x18031c2f4], xmm0
mov dword [0x1802bdc48], ebx
mov dword [0x1802bdc58], ebx
call fcn.1800cdff0
mov qword [rsp + 0x78], rbx
mov qword [0x18033c890], rdi
mov ecx, dword [rax]
mov dword [rsp + 0x78], ecx
mov rax, qword [rsp + 0x78]
mov qword [0x1802bdd20], rax
mov dword [0x1802bdc58], ebx
mov dword [0x1802bdc48], 1
call fcn.1800cdff0
mov qword [rsp + 0x78], rbx
mov ecx, dword [rax]
movabs rax, 0xd5037ba82e12416f
mov dword [rsp + 0x78], ecx
mov qword [0x18033c890], rax
mov rax, qword [rsp + 0x78]
mov qword [0x1802bdd20], rax
mov dword [0x1802bdc58], ebx
mov dword [0x1802bdc48], 1
call fcn.1800cdff0
lea ecx, [rbx + 0x57]
movss xmm6, dword [rax]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
movabs r14, 0xe2587f8cbbd87b1d
jb 0x18007a5f3
mov qword [rsp + 0x78], rbx
mov dword [rsp + 0x78], 0xd0
mov rax, qword [rsp + 0x78]
mov qword [0x1802bdd28], rax
mov dword [0x1802bdc58], ebx
mov qword [0x18033c890], r14
mov qword [0x1802bdd20], rbx
mov dword [0x1802bdc48], 2
call fcn.1800cdff0
cmp dword [rax], ebx
jne 0x18007a5f3
lea ecx, [rbx + 0x53]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
jb 0x18007a4cc
mov qword [rsp + 0x78], rbx
mov dword [rsp + 0x78], 0xcf
mov rax, qword [rsp + 0x78]
mov qword [0x1802bdd28], rax
mov dword [0x1802bdc58], ebx
mov qword [0x18033c890], r14
mov qword [0x1802bdd20], rbx
mov dword [0x1802bdc48], 2
call fcn.1800cdff0
cmp dword [rax], ebx
jne 0x18007a4cc
mov dword [0x1802bdc48], ebx
mov dword [0x1802bdc58], ebx
mov qword [0x18033c890], rbp
call fcn.1800cdff0
mov qword [rsp + 0x78], rbx
mov qword [0x18033c890], rdi
mov ecx, dword [rax]
mov dword [rsp + 0x78], ecx
mov rax, qword [rsp + 0x78]
mov qword [0x1802bdd20], rax
mov dword [0x1802bdc58], ebx
mov dword [0x1802bdc48], 1
call fcn.1800cdff0
movss xmm3, dword [0x18031c2f8]
movss xmm2, dword [0x18031c2f0]
movss xmm1, dword [0x18031c2f4]
mov ecx, dword [rax]
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], 2
call fcn.1800aeec0
comiss xmm6, dword [0x18026c2ec]
jbe 0x18007a463
cmp byte [rsp + 0x70], bl
je 0x18007a463
mov dword [0x1802bdc48], ebx
mov dword [0x1802bdc58], ebx
mov qword [0x18033c890], rbp
call fcn.1800cdff0
mov qword [rsp + 0x78], rbx
mov qword [0x18033c890], rdi
mov ecx, dword [rax]
mov dword [rsp + 0x78], ecx
mov rax, qword [rsp + 0x78]
mov qword [0x1802bdd20], rax
mov dword [0x1802bdc58], ebx
mov dword [0x1802bdc48], 1
call fcn.1800cdff0
subss xmm6, dword [0x18026c2ec]
jmp 0x18007a714
mov dword [0x1802bdc48], ebx
mov dword [0x1802bdc58], ebx
mov qword [0x18033c890], rbp
call fcn.1800cdff0
mov qword [rsp + 0x78], rbx
mov qword [0x18033c890], rdi
mov ecx, dword [rax]
mov dword [rsp + 0x78], ecx
mov rax, qword [rsp + 0x78]
mov qword [0x1802bdd20], rax
mov dword [0x1802bdc58], ebx
mov dword [0x1802bdc48], 1
call fcn.1800cdff0
mov qword [rsp + 0x78], rbx
mov ecx, dword [rax]
mov dword [rsp + 0x78], ecx
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x78], rbx
mov dword [rsp + 0x78], ebx
jmp 0x18007a72f
mov dword [0x1802bdc48], ebx
mov dword [0x1802bdc58], ebx
mov qword [0x18033c890], rbp
call fcn.1800cdff0
mov qword [rsp + 0x78], rbx
mov qword [0x18033c890], rdi
mov ecx, dword [rax]
mov dword [rsp + 0x78], ecx
mov rax, qword [rsp + 0x78]
mov qword [0x1802bdd20], rax
mov dword [0x1802bdc58], ebx
mov dword [0x1802bdc48], 1
call fcn.1800cdff0
movss xmm3, dword [0x18031c2f8]
xorps xmm2, xmm2
movss xmm1, dword [0x18031c2f4]
mov dword [rsp + 0x28], 1
mov ecx, dword [rax]
mov dword [rsp + 0x20], 2
call fcn.1800aeec0
mov dword [0x1802bdc48], ebx
mov dword [0x1802bdc58], ebx
mov qword [0x18033c890], rbp
call fcn.1800cdff0
mov qword [rsp + 0x78], rbx
mov qword [0x18033c890], rdi
mov ecx, dword [rax]
mov dword [rsp + 0x78], ecx
mov rax, qword [rsp + 0x78]
mov qword [0x1802bdd20], rax
mov dword [0x1802bdc58], ebx
mov dword [0x1802bdc48], 1
call fcn.1800cdff0
mov ecx, dword [rax]
call fcn.18003fb40
mov dword [0x1802bdc48], ebx
mov dword [0x1802bdc58], ebx
mov qword [0x18033c890], rbp
call fcn.1800cdff0
mov qword [rsp + 0x78], rbx
mov qword [0x18033c890], rdi
mov ecx, dword [rax]
mov dword [rsp + 0x78], ecx
mov rax, qword [rsp + 0x78]
mov qword [0x1802bdd20], rax
mov dword [0x1802bdc58], ebx
mov dword [0x1802bdc48], 1
call fcn.1800cdff0
mulss xmm6, dword [0x18026e2a4]
subss xmm6, dword [0x18026c2ec]
jmp 0x18007a714
mov dword [0x1802bdc48], ebx
mov dword [0x1802bdc58], ebx
mov qword [0x18033c890], rbp
call fcn.1800cdff0
mov qword [rsp + 0x78], rbx
mov qword [0x18033c890], rdi
mov ecx, dword [rax]
mov dword [rsp + 0x78], ecx
mov rax, qword [rsp + 0x78]
mov qword [0x1802bdd20], rax
mov dword [0x1802bdc58], ebx
mov dword [0x1802bdc48], 1
call fcn.1800cdff0
movss xmm3, dword [0x18031c2f8]
xorps xmm2, xmm2
movss xmm1, dword [0x18031c2f4]
mov dword [rsp + 0x28], 1
mov ecx, dword [rax]
mov dword [rsp + 0x20], 2
call fcn.1800aeec0
mov dword [0x1802bdc48], ebx
mov dword [0x1802bdc58], ebx
mov qword [0x18033c890], rbp
call fcn.1800cdff0
mov qword [rsp + 0x78], rbx
mov qword [0x18033c890], rdi
mov ecx, dword [rax]
mov dword [rsp + 0x78], ecx
mov rax, qword [rsp + 0x78]
mov qword [0x1802bdd20], rax
mov dword [0x1802bdc58], ebx
mov dword [0x1802bdc48], 1
call fcn.1800cdff0
mov ecx, dword [rax]
call fcn.18003fb40
movd xmm0, dword [0x1802af318]
cvtdq2ps xmm0, xmm0
mov dword [0x1802bdc48], ebx
mov dword [0x1802bdc58], ebx
mov qword [0x18033c890], rbp
addss xmm6, xmm0
call fcn.1800cdff0
mov qword [rsp + 0x78], rbx
mov qword [0x18033c890], rdi
mov ecx, dword [rax]
mov dword [rsp + 0x78], ecx
mov rax, qword [rsp + 0x78]
mov qword [0x1802bdd20], rax
mov dword [0x1802bdc58], ebx
mov dword [0x1802bdc48], 1
call fcn.1800cdff0
mov ecx, dword [rax]
mov qword [rsp + 0x78], rbx
mov dword [rsp + 0x78], ecx
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x78], rbx
movss dword [rsp + 0x78], xmm6
mov qword [0x1802bdd20], rax
movabs rsi, 0xab54a438726d25d5
mov rax, qword [rsp + 0x78]
mov qword [0x1802bdd28], rax
mov dword [0x1802bdc58], ebx
mov qword [0x18033c890], rsi
mov dword [0x1802bdc48], 2
call fcn.1800cdff0
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
movaps xmm6, xmmword [rsp + 0x30]
jb 0x18007a7c3
mov qword [rsp + 0x78], rbx
mov dword [rsp + 0x78], 0xbd
mov rax, qword [rsp + 0x78]
mov qword [0x1802bdd28], rax
mov dword [0x1802bdc58], ebx
mov qword [0x18033c890], r14
mov qword [0x1802bdd20], rbx
mov dword [0x1802bdc48], 2
call fcn.1800cdff0
cmp dword [rax], ebx
je 0x18007a85c
movss xmm1, dword [0x18031c2f8]
movd xmm0, dword [0x1802af314]
cvtdq2ps xmm0, xmm0
mov dword [0x1802bdc48], ebx
mov dword [0x1802bdc58], ebx
mov qword [0x18033c890], rbp
addss xmm1, xmm0
movss dword [0x18031c2f8], xmm1
call fcn.1800cdff0
mov qword [rsp + 0x78], rbx
mov qword [0x18033c890], rdi
mov ecx, dword [rax]
mov dword [rsp + 0x78], ecx
mov rax, qword [rsp + 0x78]
mov qword [0x1802bdd20], rax
mov dword [0x1802bdc58], ebx
mov dword [0x1802bdc48], 1
call fcn.1800cdff0
movss xmm3, dword [0x18031c2f8]
movss xmm2, dword [0x18031c2f0]
movss xmm1, dword [0x18031c2f4]
mov ecx, dword [rax]
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], 2
call fcn.1800aeec0
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
jb 0x18007a8b2
mov qword [rsp + 0x78], rbx
mov dword [rsp + 0x78], 0xbe
mov rax, qword [rsp + 0x78]
mov qword [0x1802bdd28], rax
mov dword [0x1802bdc58], ebx
mov qword [0x18033c890], r14
mov qword [0x1802bdd20], rbx
mov dword [0x1802bdc48], 2
call fcn.1800cdff0
cmp dword [rax], ebx
je 0x18007a94b
movss xmm1, dword [0x18031c2f8]
movd xmm0, dword [0x1802af310]
cvtdq2ps xmm0, xmm0
mov dword [0x1802bdc48], ebx
mov dword [0x1802bdc58], ebx
mov qword [0x18033c890], rbp
subss xmm1, xmm0
movss dword [0x18031c2f8], xmm1
call fcn.1800cdff0
mov qword [rsp + 0x78], rbx
mov qword [0x18033c890], rdi
mov ecx, dword [rax]
mov dword [rsp + 0x78], ecx
mov rax, qword [rsp + 0x78]
mov qword [0x1802bdd20], rax
mov dword [0x1802bdc58], ebx
mov dword [0x1802bdc48], 1
call fcn.1800cdff0
movss xmm3, dword [0x18031c2f8]
movss xmm2, dword [0x18031c2f0]
movss xmm1, dword [0x18031c2f4]
mov ecx, dword [rax]
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], 2
call fcn.1800aeec0
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
jb 0x18007a9a1
mov qword [rsp + 0x78], rbx
mov dword [rsp + 0x78], 0xbc
mov rax, qword [rsp + 0x78]
mov qword [0x1802bdd28], rax
mov dword [0x1802bdc58], ebx
mov qword [0x18033c890], r14
mov qword [0x1802bdd20], rbx
mov dword [0x1802bdc48], 2
call fcn.1800cdff0
cmp dword [rax], ebx
je 0x18007aa3a
movss xmm1, dword [0x18031c2f4]
movd xmm0, dword [0x1802af30c]
cvtdq2ps xmm0, xmm0
mov dword [0x1802bdc48], ebx
mov dword [0x1802bdc58], ebx
mov qword [0x18033c890], rbp
subss xmm1, xmm0
movss dword [0x18031c2f4], xmm1
call fcn.1800cdff0
mov qword [rsp + 0x78], rbx
mov qword [0x18033c890], rdi
mov ecx, dword [rax]
mov dword [rsp + 0x78], ecx
mov rax, qword [rsp + 0x78]
mov qword [0x1802bdd20], rax
mov dword [0x1802bdc58], ebx
mov dword [0x1802bdc48], 1
call fcn.1800cdff0
movss xmm3, dword [0x18031c2f8]
movss xmm2, dword [0x18031c2f0]
movss xmm1, dword [0x18031c2f4]
mov ecx, dword [rax]
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], 2
call fcn.1800aeec0
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
jb 0x18007aa90
mov qword [rsp + 0x78], rbx
mov dword [rsp + 0x78], 0xad
mov rax, qword [rsp + 0x78]
mov qword [0x1802bdd28], rax
mov dword [0x1802bdc58], ebx
mov qword [0x18033c890], r14
mov qword [0x1802bdd20], rbx
mov dword [0x1802bdc48], 2
call fcn.1800cdff0
cmp dword [rax], ebx
je 0x18007ab29
movss xmm1, dword [0x18031c2f4]
movd xmm0, dword [0x18031c2fc]
cvtdq2ps xmm0, xmm0
mov dword [0x1802bdc48], ebx
mov dword [0x1802bdc58], ebx
mov qword [0x18033c890], rbp
addss xmm1, xmm0
movss dword [0x18031c2f4], xmm1
call fcn.1800cdff0
mov qword [rsp + 0x78], rbx
mov qword [0x18033c890], rdi
mov ecx, dword [rax]
mov dword [rsp + 0x78], ecx
mov rax, qword [rsp + 0x78]
mov qword [0x1802bdd20], rax
mov dword [0x1802bdc58], ebx
mov dword [0x1802bdc48], 1
call fcn.1800cdff0
movss xmm3, dword [0x18031c2f8]
movss xmm2, dword [0x18031c2f0]
movss xmm1, dword [0x18031c2f4]
mov ecx, dword [rax]
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], 2
call fcn.1800aeec0
mov ecx, 0x20
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
mov r14, qword [rsp + 0x48]
mov r15, qword [rsp + 0x40]
jae 0x18007aca3
mov dword [0x1802bdc48], ebx
mov dword [0x1802bdc58], ebx
mov qword [0x18033c890], rbp
call fcn.1800cdff0
mov qword [rsp + 0x78], rbx
mov qword [0x18033c890], rdi
mov ecx, dword [rax]
mov dword [rsp + 0x78], ecx
mov rax, qword [rsp + 0x78]
mov qword [0x1802bdd20], rax
mov dword [0x1802bdc58], ebx
mov dword [0x1802bdc48], 1
call fcn.1800cdff0
movss xmm3, dword [0x18031c2f8]
xorps xmm1, xmm1
movss xmm2, dword [0x18031c2f0]
mov dword [rsp + 0x28], 1
mov ecx, dword [rax]
mov dword [rsp + 0x20], 2
call fcn.1800aeec0
mov dword [0x1802bdc48], ebx
mov dword [0x1802bdc58], ebx
mov qword [0x18033c890], rbp
call fcn.1800cdff0
mov qword [rsp + 0x78], rbx
mov qword [0x18033c890], rdi
mov ecx, dword [rax]
mov dword [rsp + 0x78], ecx
mov rax, qword [rsp + 0x78]
mov qword [0x1802bdd20], rax
mov dword [0x1802bdc58], ebx
mov dword [0x1802bdc48], 1
call fcn.1800cdff0
mov ecx, dword [rax]
call fcn.18003fb40
mov dword [0x1802bdc48], ebx
mov dword [0x1802bdc58], ebx
mov qword [0x18033c890], rbp
call fcn.1800cdff0
mov qword [rsp + 0x78], rbx
mov qword [0x18033c890], rdi
mov ecx, dword [rax]
mov dword [rsp + 0x78], ecx
mov rax, qword [rsp + 0x78]
mov qword [0x1802bdd20], rax
mov dword [0x1802bdc58], ebx
mov dword [0x1802bdc48], 1
call fcn.1800cdff0
mov qword [rsp + 0x78], rbx
mov qword [0x18033c890], rsi
mov ecx, dword [rax]
mov dword [rsp + 0x78], ecx
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x78], rbx
mov qword [0x1802bdd20], rax
mov dword [rsp + 0x78], ebx
mov rax, qword [rsp + 0x78]
mov qword [0x1802bdd28], rax
mov dword [0x1802bdc58], ebx
mov dword [0x1802bdc48], 2
call fcn.1800cdff0
mov rsi, qword [rsp + 0x80]
add rsp, 0x50
pop rdi
pop rbp
pop rbx
ret
call fcn.1800cdff0
mov ecx, dword [rax]
mov qword [rsp + 0x78], rbx
mov dword [rsp + 0x78], ecx
mov rax, qword [rsp + 0x78]
mov qword [0x1802bdd20], rax
mov dword [0x1802bdc58], ebx
mov qword [0x18033c890], rdi
mov dword [0x1802bdc48], 1
call fcn.1800cdff0
mov qword [rsp + 0x78], rbx
mov ecx, dword [rax]
movabs rax, 0x89f149b6131e57da
mov dword [rsp + 0x78], ecx
mov qword [0x18033c890], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x78], rbx
mov qword [0x1802bdd20], rax
mov dword [rsp + 0x78], 1
mov rax, qword [rsp + 0x78]
mov qword [0x1802bdd28], rax
mov dword [0x1802bdc58], ebx
mov dword [0x1802bdc48], 2
call fcn.1800cdff0
add rsp, 0x50
pop rdi
pop rbp
pop rbx
ret
xor ebx, ebx
mov dword [0x1802bdc48], ebx
mov dword [0x1802bdc58], ebx
call fcn.1800cdff0
movabs rdi, 0x6094ad011a2ea87d
jmp 0x18007acb8