Function at 0x180036660
Capabilities:
Log keystrokes via polling

Disassembly:
mov byte [rsp + 0x20], r9b
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
sub rsp, 0x4a0
lea rbp, [rsp + 0x30]
lea rdi, [rsp + 0x30]
mov ecx, 0xbc
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0x4c8]
mov rax, qword [0x180050288]
xor rax, rbp
mov qword [rbp + 0x460], rax
lea rcx, [0x1800915dd]
call fcn.18003a400
mov dword [0x180087470], 0
movzx eax, byte [rbp + 0x4a8]
test eax, eax
jne 0x1800366d5
xor al, al
jmp 0x180036b06
mov rax, qword [rbp + 0x498]
movss xmm2, dword [rax + 4]
mov rax, qword [rbp + 0x498]
movss xmm1, dword [rax]
lea rcx, [rbp + 0x1e4]
call fcn.1800072e0
mov rdx, qword [rbp + 0x4a0]
mov rcx, qword [rax]
call fcn.180027fd0
mov byte [rbp + 4], al
cmp dword [0x18005004c], 0xffffffff
je 0x18003672d
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
jne 0x18003672d
mov dword [0x18005004c], 0xffffffff
movzx eax, byte [0x180087149]
test eax, eax
je 0x18003674d
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
je 0x18003674d
jmp 0x180036864
movzx eax, byte [rbp + 4]
test eax, eax
jne 0x18003676c
movss xmm0, dword [0x180087660]
ucomiss xmm0, dword [0x18004c8e8]
jp 0x18003676c
je 0x18003685d
movzx eax, byte [0x180087149]
test eax, eax
jne 0x18003685d
mov r8b, 1
mov edx, dword [0x180087470]
xor ecx, ecx
call fcn.1800267e0
movzx eax, al
test eax, eax
je 0x18003683a
lea rcx, [rbp + 0x28]
call fcn.180022290
movss xmm0, dword [rbp + 0x28]
subss xmm0, dword [rbp + 0x4a0]
movss dword [rbp + 0x28], xmm0
movss xmm0, dword [rbp + 0x2c]
subss xmm0, dword [rbp + 0x4a4]
movss dword [rbp + 0x2c], xmm0
movss xmm0, dword [0x180087660]
ucomiss xmm0, dword [0x18004c8e8]
jp 0x180036807
jne 0x180036807
mov rax, qword [rbp + 0x498]
movss xmm0, dword [rbp + 0x28]
subss xmm0, dword [rax]
movss dword [0x180087660], xmm0
mov rax, qword [rbp + 0x498]
movss xmm0, dword [rbp + 0x2c]
subss xmm0, dword [rax + 4]
movss dword [0x180087664], xmm0
movss xmm0, dword [rbp + 0x28]
subss xmm0, dword [0x180087660]
mov rax, qword [rbp + 0x498]
movss dword [rax], xmm0
movss xmm0, dword [rbp + 0x2c]
subss xmm0, dword [0x180087664]
mov rax, qword [rbp + 0x498]
movss dword [rax + 4], xmm0
jmp 0x18003685b
xorps xmm2, xmm2
xorps xmm1, xmm1
lea rcx, [rbp + 0x204]
call fcn.1800072e0
mov rdx, rax
lea rcx, [0x180087660]
call fcn.180007a20
jmp 0x180036864
mov byte [0x180087149], 0
xorps xmm0, xmm0
movss dword [0x180087468], xmm0
xorps xmm0, xmm0
movss dword [0x18008746c], xmm0
mov rax, qword [rbp + 0x498]
movss xmm2, dword [rax + 4]
mov rax, qword [rbp + 0x498]
movss xmm1, dword [rax]
lea rcx, [rbp + 0x224]
call fcn.1800072e0
mov rdx, rax
lea rcx, [0x180089ab8]
call fcn.180007a20
xorps xmm2, xmm2
xorps xmm1, xmm1
lea rcx, [rbp + 0x244]
call fcn.1800072e0
mov rdx, rax
lea rcx, [0x180087670]
call fcn.180007a20
xorps xmm2, xmm2
xorps xmm1, xmm1
lea rcx, [rbp + 0x264]
call fcn.1800072e0
mov rdx, rax
lea rcx, [0x180087680]
call fcn.180007a20
xorps xmm2, xmm2
xorps xmm1, xmm1
lea rcx, [rbp + 0x284]
call fcn.1800072e0
mov rdx, rax
lea rcx, [0x180087668]
call fcn.180007a20
lea rax, [rbp + 0x2e8]
lea rcx, [0x180050080]
mov rdi, rax
mov rsi, rcx
mov ecx, 0x10
rep movsb byte [rdi], byte [rsi]
mov rax, qword [rbp + 0x498]
movss xmm2, dword [rax + 4]
mov rax, qword [rbp + 0x498]
movss xmm1, dword [rax]
lea rcx, [rbp + 0x2a4]
call fcn.1800072e0
mov rax, qword [rax]
mov qword [rbp + 0x2c8], rax
lea rax, [rbp + 0x3e0]
lea rcx, [rbp + 0x2e8]
mov rdi, rax
mov rsi, rcx
mov ecx, 0x10
rep movsb byte [rdi], byte [rsi]
lea r9, [rbp + 0x3e0]
movss xmm2, dword [rbp + 0x4a4]
movss xmm1, dword [rbp + 0x4a0]
mov rcx, qword [rbp + 0x2c8]
call fcn.180037ee0
lea rax, [rbp + 0x358]
lea rcx, [0x180050090]
mov rdi, rax
mov rsi, rcx
mov ecx, 0x10
rep movsb byte [rdi], byte [rsi]
mov rax, qword [rbp + 0x498]
movss xmm2, dword [rax + 4]
mov rax, qword [rbp + 0x498]
movss xmm1, dword [rax]
lea rcx, [rbp + 0x314]
call fcn.1800072e0
mov rax, qword [rax]
mov qword [rbp + 0x338], rax
lea rax, [rbp + 0x410]
lea rcx, [rbp + 0x358]
mov rdi, rax
mov rsi, rcx
mov ecx, 0x10
rep movsb byte [rdi], byte [rsi]
lea r9, [rbp + 0x410]
movss xmm2, dword [0x18004cca0]
movss xmm1, dword [rbp + 0x4a0]
mov rcx, qword [rbp + 0x338]
call fcn.180037ee0
movss xmm0, dword [0x18008746c]
addss xmm0, dword [0x18004cca0]
movss dword [0x18008746c], xmm0
mov rax, qword [rbp + 0x498]
movss xmm0, dword [rax]
addss xmm0, dword [0x18004cd10]
mov rax, qword [rbp + 0x498]
movss xmm1, dword [rax + 4]
addss xmm1, dword [0x18004cc74]
movaps xmm2, xmm1
movaps xmm1, xmm0
lea rcx, [rbp + 0x48]
call fcn.1800072e0
movss xmm0, dword [0x18004cbf4]
movss dword [rbp + 0x388], xmm0
movss xmm0, dword [0x18004cbf4]
movss dword [rbp + 0x38c], xmm0
movss xmm0, dword [0x18004cbf4]
movss dword [rbp + 0x390], xmm0
movss xmm0, dword [0x18004cbf4]
movss dword [rbp + 0x394], xmm0
mov rax, qword [rbp + 0x48]
mov qword [rbp + 0x3b8], rax
mov rcx, qword [rbp + 0x490]
call fcn.180038b90
mov qword [rbp + 0x458], rax
lea rax, [rbp + 0x440]
lea rcx, [rbp + 0x388]
mov rdi, rax
mov rsi, rcx
mov ecx, 0x10
rep movsb byte [rdi], byte [rsi]
mov byte [rsp + 0x20], 0
xor r9d, r9d
lea r8, [rbp + 0x440]
mov rdx, qword [rbp + 0x3b8]
mov rcx, qword [rbp + 0x458]
call fcn.180034420
mov al, 1
mov rdi, rax
lea rcx, [rbp - 0x30]
lea rdx, [0x180040020]
call fcn.18003a370
mov rax, rdi
mov rcx, qword [rbp + 0x460]
xor rcx, rbp
call fcn.18003a640
lea rsp, [rbp + 0x470]
pop rdi
pop rsi
pop rbp
ret