Function at 0x180035de0
Capabilities:
Log keystrokes

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x98
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
lea rcx, [rsp + 0x68]
call fcn.18004d190
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x40], rax
movups xmm0, xmmword [rsp + 0x68]
movaps xmmword [rsp + 0x30], xmm0
movups xmm0, xmmword [rsp + 0x80]
movups xmmword [rsp + 0x48], xmm0
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x58], rax
mov dword [rsp + 0x68], 0x30
mov dword [rsp + 0x20], 0x18
lea r8, [rsp + 0x30]
lea r9, [rsp + 0x68]
mov rcx, rdi
mov edx, 0x10000003
call qword [sym.imp.user32.dll_GetRawInputData]
test bl, bl
jne 0x1800360da
cmp eax, 0xffffffff
je 0x1800360da
mov eax, dword [rsp + 0x30]
test eax, eax
je 0x180035ed8
cmp eax, 1
jne 0x1800360da
movzx r14d, word [rsp + 0x4e]
test r14w, r14w
je 0x1800360da
movzx ebx, word [rsp + 0x4a]
movzx edi, bx
lea eax, [r14 - 0x10]
cmp ax, 2
ja 0x1800360aa
movzx eax, word [rsp + 0x48]
mov edx, eax
or edx, 0xe000
test dil, 2
cmove edx, eax
mov ecx, edx
or ecx, 0xe100
test dil, 4
cmove ecx, edx
mov edx, 3
call qword [sym.imp.user32.dll_MapVirtualKeyA]
test eax, eax
jne 0x1800360ad
jmp 0x1800360bb
movzx eax, word [rsp + 0x4c]
test al, 1
jne 0x180035f4b
test al, 2
jne 0x180035f5d
test al, 4
jne 0x180035f73
test al, 8
jne 0x180035f89
test al, 0x10
jne 0x180035f9f
test al, 0x20
jne 0x180035fb5
test al, 0x40
jne 0x180035fcb
test al, al
js 0x180035fe1
test eax, 0x100
jne 0x180035ffa
test eax, 0x200
jne 0x180036013
movzx ecx, word [rsp + 0x4e]
test eax, 0x400
jne 0x180036031
test eax, 0x800
jne 0x180036072
jmp 0x1800360da
mov byte [rsi + 0xb29], 1
mov byte [rsi + 0xdfc], 1
test al, 2
je 0x180035ee5
mov byte [rsi + 0xb29], 0
mov byte [rsi + 0xdfc], 0
test al, 4
je 0x180035eed
mov byte [rsi + 0xb2a], 1
mov byte [rsi + 0xdfd], 1
test al, 8
je 0x180035ef5
mov byte [rsi + 0xb2a], 0
mov byte [rsi + 0xdfd], 0
test al, 0x10
je 0x180035efd
mov byte [rsi + 0xb2c], 1
mov byte [rsi + 0xdfe], 1
test al, 0x20
je 0x180035f05
mov byte [rsi + 0xb2c], 0
mov byte [rsi + 0xdfe], 0
test al, 0x40
je 0x180035f0d
mov byte [rsi + 0xb2d], 1
mov byte [rsi + 0xdff], 1
test al, al
jns 0x180035f15
mov byte [rsi + 0xb2d], 0
mov byte [rsi + 0xdff], 0
test eax, 0x100
je 0x180035f20
mov byte [rsi + 0xb2e], 1
mov byte [rsi + 0xe00], 1
test eax, 0x200
je 0x180035f2b
mov byte [rsi + 0xb2e], 0
mov byte [rsi + 0xe00], 0
movzx ecx, word [rsp + 0x4e]
test eax, 0x400
je 0x180035f3b
movsx edx, cx
imul edx, edx, 0xffff8889
shr edx, 0x10
add edx, ecx
movzx edx, dx
movsx r8d, dx
shr edx, 0xf
sar r8d, 6
add r8d, edx
movsx edx, r8w
xorps xmm0, xmm0
cvtsi2ss xmm0, edx
addss xmm0, dword [rsi + 0xe04]
movss dword [rsi + 0xe04], xmm0
test eax, 0x800
je 0x1800360da
movsx eax, cx
imul eax, eax, 0xffff8889
shr eax, 0x10
add eax, ecx
movzx eax, ax
movsx ecx, ax
shr eax, 0xf
sar ecx, 6
add ecx, eax
movsx eax, cx
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
addss xmm0, dword [rsi + 0xe08]
movss dword [rsi + 0xe08], xmm0
jmp 0x1800360da
mov eax, r14d
movzx ecx, ax
mov r14d, eax
cmp ecx, 0xfe
ja 0x1800360da
movzx eax, r14w
test bx, bx
jne 0x1800360cc
mov byte [rsi + rax + 0xb28], 1
test dil, 1
je 0x1800360da
mov byte [rsi + rax + 0xb28], 0
add rsp, 0x98
pop rbx
pop rdi
pop rsi
pop r14
ret