Function at 0x180002b70
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdi
push rbp
mov rbp, rsp
sub rsp, 0x40
mov ecx, 0x31
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
xor edi, edi
test ax, ax
mov ebx, edi
setne bl
lea ecx, [rdi + 0x12]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
mov ecx, edi
setne cl
test ebx, ecx
je 0x180002ca7
cmp byte [0x18000b778], dil
sete al
mov byte [0x18000b778], al
cmp al, 1
jne 0x180002c03
movsd xmm0, qword [0x1800094a0]
movzx ecx, word [0x180009560]
movsd qword [rbp - 0x20], xmm0
xor byte [rbp - 0x1f], 0x31
xor byte [rbp - 0x1e], 0x32
movsd xmm0, qword [0x180009558]
mov byte [0x18000b77a], al
movzx eax, byte [0x1800094a8]
xor al, 0x38
mov byte [rbp - 0x18], al
movzx eax, byte [0x180009562]
jmp 0x180002c41
movsd xmm0, qword [0x1800094a0]
movzx eax, byte [0x1800094a8]
movzx ecx, word [0x180009570]
movsd qword [rbp - 0x20], xmm0
xor byte [rbp - 0x1f], 0x31
xor byte [rbp - 0x1e], 0x32
movsd xmm0, qword [0x180009568]
xor al, 0x38
mov byte [rbp - 0x18], al
movzx eax, byte [0x180009572]
mov byte [0x18000b77a], dil
xor byte [rbp - 0x1d], 0x33
lea r8, [rbp - 0x20]
xor byte [rbp - 0x1c], 0x34
lea rdx, [rbp - 0x10]
xor byte [rbp - 0x1b], 0x35
xor al, 0x3a
xor byte [rbp - 0x1a], 0x36
mov r9d, 0x1000
xor byte [rbp - 0x19], 0x37
movsd qword [rbp - 0x10], xmm0
xor byte [rbp - 0xf], 0x31
xor byte [rbp - 0xe], 0x32
xor byte [rbp - 0xd], 0x33
xor byte [rbp - 0xc], 0x34
xor byte [rbp - 0xb], 0x35
xor byte [rbp - 0xa], 0x36
xor byte [rbp - 9], 0x37
mov word [rbp - 8], cx
xor cl, 0x38
xor byte [rbp - 7], 0x39
mov byte [rbp - 8], cl
xor ecx, ecx
mov byte [rbp - 0x20], 0xb6
mov byte [rbp - 0x10], 0xd7
mov byte [rbp - 6], al
call qword [sym.imp.USER32.dll_MessageBoxA]
mov ecx, 0x32
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ebx, edi
mov ecx, 0x12
test ax, ax
setne bl
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
mov ecx, edi
setne cl
test ebx, ecx
je 0x180002cd6
call fcn.1800029c0
mov ecx, 0x33
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ebx, edi
mov ecx, 0x12
test ax, ax
setne bl
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
mov ecx, edi
setne cl
test ebx, ecx
je 0x180002dee
cmp byte [0x18000b77b], dil
sete al
mov byte [0x18000b77b], al
cmp al, 1
jne 0x180002d51
movsd xmm0, qword [0x1800094a0]
movzx eax, byte [0x1800094a8]
movzx ecx, word [0x1800094d8]
movsd qword [rbp - 0x20], xmm0
xor byte [rbp - 0x1f], 0x31
xor byte [rbp - 0x1e], 0x32
movsd xmm0, qword [0x1800094d0]
xor al, 0x38
mov byte [rbp - 0x18], al
movzx eax, byte [0x1800094da]
jmp 0x180002d88
movsd xmm0, qword [0x1800094a0]
movzx eax, byte [0x1800094a8]
movzx ecx, word [0x1800094c8]
movsd qword [rbp - 0x20], xmm0
xor byte [rbp - 0x1f], 0x31
xor byte [rbp - 0x1e], 0x32
movsd xmm0, qword [0x1800094c0]
xor al, 0x38
mov byte [rbp - 0x18], al
movzx eax, byte [0x1800094ca]
xor byte [rbp - 0x1d], 0x33
lea r8, [rbp - 0x20]
xor byte [rbp - 0x1c], 0x34
lea rdx, [rbp - 0x10]
xor byte [rbp - 0x1b], 0x35
xor al, 0x3a
xor byte [rbp - 0x1a], 0x36
mov r9d, 0x1000
xor byte [rbp - 0x19], 0x37
movsd qword [rbp - 0x10], xmm0
xor byte [rbp - 0xf], 0x31
xor byte [rbp - 0xe], 0x32
xor byte [rbp - 0xd], 0x33
xor byte [rbp - 0xc], 0x34
xor byte [rbp - 0xb], 0x35
xor byte [rbp - 0xa], 0x36
xor byte [rbp - 9], 0x37
mov word [rbp - 8], cx
xor cl, 0x38
xor byte [rbp - 7], 0x39
mov byte [rbp - 8], cl
xor ecx, ecx
mov byte [rbp - 0x20], 0xb6
mov byte [rbp - 0x10], 0xb2
mov byte [rbp - 6], al
call qword [sym.imp.USER32.dll_MessageBoxA]
mov ecx, 0x34
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ebx, edi
mov ecx, 0x12
test ax, ax
setne bl
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
mov ecx, edi
setne cl
test ebx, ecx
je 0x180002f1a
cmp byte [0x18000b7c8], dil
sete al
mov byte [0x18000b7c8], al
cmp al, 1
jne 0x180002e73
movsd xmm0, qword [0x1800094a0]
movzx eax, byte [0x1800094a8]
movzx ecx, word [0x180009520]
movsd qword [rbp - 0x20], xmm0
xor byte [rbp - 0x1f], 0x31
xor byte [rbp - 0x1e], 0x32
movsd xmm0, qword [0x180009518]
xor al, 0x38
mov byte [rbp - 0x18], al
movzx eax, byte [0x180009522]
mov dword [0x18000b884], 0x50
jmp 0x180002eb4
movsd xmm0, qword [0x1800094a0]
movzx eax, byte [0x1800094a8]
movzx ecx, word [0x180009550]
movsd qword [rbp - 0x20], xmm0
xor byte [rbp - 0x1f], 0x31
xor byte [rbp - 0x1e], 0x32
movsd xmm0, qword [0x180009548]
xor al, 0x38
mov byte [rbp - 0x18], al
movzx eax, byte [0x180009552]
mov dword [0x18000b884], 0x32
xor byte [rbp - 0x1d], 0x33
lea r8, [rbp - 0x20]
xor byte [rbp - 0x1c], 0x34
lea rdx, [rbp - 0x10]
xor byte [rbp - 0x1b], 0x35
xor al, 0x3a
xor byte [rbp - 0x1a], 0x36
mov r9d, 0x1000
xor byte [rbp - 0x19], 0x37
movsd qword [rbp - 0x10], xmm0
xor byte [rbp - 0xf], 0x31
xor byte [rbp - 0xe], 0x32
xor byte [rbp - 0xd], 0x33
xor byte [rbp - 0xc], 0x34
xor byte [rbp - 0xb], 0x35
xor byte [rbp - 0xa], 0x36
xor byte [rbp - 9], 0x37
mov word [rbp - 8], cx
xor cl, 0x38
xor byte [rbp - 7], 0x39
mov byte [rbp - 8], cl
xor ecx, ecx
mov byte [rbp - 0x20], 0xb6
mov byte [rbp - 0x10], 0xb7
mov byte [rbp - 6], al
call qword [sym.imp.USER32.dll_MessageBoxA]
mov ecx, 0x35
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ebx, edi
mov ecx, 0x12
test ax, ax
setne bl
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
setne dil
test ebx, edi
je 0x180003031
cmp byte [0x18000b7c9], 0
sete al
mov byte [0x18000b7c9], al
cmp al, 1
jne 0x180002f94
movsd xmm0, qword [0x1800094a0]
movzx eax, byte [0x1800094a8]
movzx ecx, word [0x1800095a0]
movsd qword [rbp - 0x20], xmm0
xor byte [rbp - 0x1f], 0x31
xor byte [rbp - 0x1e], 0x32
movsd xmm0, qword [0x180009598]
xor al, 0x38
mov byte [rbp - 0x18], al
movzx eax, byte [0x1800095a2]
jmp 0x180002fcb
movsd xmm0, qword [0x1800094a0]
movzx eax, byte [0x1800094a8]
movzx ecx, word [0x180009590]
movsd qword [rbp - 0x20], xmm0
xor byte [rbp - 0x1f], 0x31
xor byte [rbp - 0x1e], 0x32
movsd xmm0, qword [0x180009588]
xor al, 0x38
mov byte [rbp - 0x18], al
movzx eax, byte [0x180009592]
xor byte [rbp - 0x1d], 0x33
lea r8, [rbp - 0x20]
xor byte [rbp - 0x1c], 0x34
lea rdx, [rbp - 0x10]
xor byte [rbp - 0x1b], 0x35
xor al, 0x3a
xor byte [rbp - 0x1a], 0x36
mov r9d, 0x1000
xor byte [rbp - 0x19], 0x37
movsd qword [rbp - 0x10], xmm0
xor byte [rbp - 0xf], 0x31
xor byte [rbp - 0xe], 0x32
xor byte [rbp - 0xd], 0x33
xor byte [rbp - 0xc], 0x34
xor byte [rbp - 0xb], 0x35
xor byte [rbp - 0xa], 0x36
xor byte [rbp - 9], 0x37
mov word [rbp - 8], cx
xor cl, 0x38
xor byte [rbp - 7], 0x39
mov byte [rbp - 8], cl
xor ecx, ecx
mov byte [rbp - 0x20], 0xb6
mov byte [rbp - 0x10], 0xb9
mov byte [rbp - 6], al
call qword [sym.imp.USER32.dll_MessageBoxA]
mov rbx, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
add rsp, 0x40
pop rbp
ret