Function at 0x180097850
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbp
push rdi
sub rsp, 0x1b8
lea rbp, [rsp + 0x20]
lea rdi, [rsp + 0x20]
mov ecx, 0x36
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0x1d8]
mov rax, qword [0x18013ec00]
xor rax, rbp
mov qword [rbp + 0x188], rax
lea rcx, [0x18014f205]
call fcn.1800eb6d0
call fcn.18001d940
test rax, rax
jne 0x1800978b8
xor eax, eax
jmp 0x18009803a
call fcn.18001ea60
mov qword [rbp + 8], rax
call fcn.180096380
mov qword [rbp + 0x28], rax
mov eax, dword [rbp + 0x1b8]
mov dword [rbp + 0x184], eax
cmp dword [rbp + 0x184], 0x200
ja 0x180097932
cmp dword [rbp + 0x184], 0x200
je 0x180097974
mov eax, dword [rbp + 0x184]
sub eax, 7
mov dword [rbp + 0x184], eax
cmp dword [rbp + 0x184], 0xfe
ja case.0x180097972.14
mov eax, dword [rbp + 0x184]
lea rcx, [0x180000000]
movzx eax, byte [rcx + rax + 0x98090]
mov eax, dword [rcx + rax*4 + 0x9806c]
add rax, rcx
jmp rax
mov eax, dword [rbp + 0x184]
sub eax, 0x201
mov dword [rbp + 0x184], eax
cmp dword [rbp + 0x184], 0xa2
ja case.0x180097972.14
mov eax, dword [rbp + 0x184]
lea rcx, [0x180000000]
movzx eax, byte [rcx + rax + 0x981d4]
mov eax, dword [rcx + rax*4 + 0x98190]
add rax, rcx
jmp rax
mov rax, qword [rbp + 0x28]
mov rcx, qword [rbp + 0x1b0]
mov qword [rax + 8], rcx
mov rax, qword [rbp + 0x28]
movzx eax, byte [rax + 0x10]
test eax, eax
jne 0x1800979c1
mov dword [rbp + 0x48], 0x18
mov dword [rbp + 0x4c], 2
mov rax, qword [rbp + 0x1b0]
mov qword [rbp + 0x50], rax
mov dword [rbp + 0x58], 0
lea rcx, [rbp + 0x48]
call qword [sym.imp.USER32.dll_TrackMouseEvent]
mov rax, qword [rbp + 0x28]
mov byte [rax + 0x10], 1
jmp case.0x180097972.14
mov rax, qword [rbp + 0x28]
mov rcx, qword [rbp + 0x1b0]
cmp qword [rax + 8], rcx
jne 0x1800979e3
mov rax, qword [rbp + 0x28]
mov qword [rax + 8], 0
mov rax, qword [rbp + 0x28]
mov byte [rax + 0x10], 0
jmp case.0x180097972.14
mov dword [rbp + 0x74], 0
cmp dword [rbp + 0x1b8], 0x201
je 0x180097a0f
cmp dword [rbp + 0x1b8], 0x203
jne 0x180097a16
mov dword [rbp + 0x74], 0
cmp dword [rbp + 0x1b8], 0x204
je 0x180097a2e
cmp dword [rbp + 0x1b8], 0x206
jne 0x180097a35
mov dword [rbp + 0x74], 1
cmp dword [rbp + 0x1b8], 0x207
je 0x180097a4d
cmp dword [rbp + 0x1b8], 0x209
jne 0x180097a54
mov dword [rbp + 0x74], 2
cmp dword [rbp + 0x1b8], 0x20b
je 0x180097a6c
cmp dword [rbp + 0x1b8], 0x20d
jne 0x180097aa4
mov rax, qword [rbp + 0x1c0]
shr rax, 0x10
and rax, 0xffff
movzx eax, ax
cmp eax, 1
jne 0x180097a91
mov dword [rbp + 0x184], 3
jmp 0x180097a9b
mov dword [rbp + 0x184], 4
mov eax, dword [rbp + 0x184]
mov dword [rbp + 0x74], eax
call fcn.180025d60
movzx eax, al
test eax, eax
jne 0x180097ac8
call qword [sym.imp.USER32.dll_GetCapture]
test rax, rax
jne 0x180097ac8
mov rcx, qword [rbp + 0x1b0]
call qword [sym.imp.USER32.dll_SetCapture]
movsxd rax, dword [rbp + 0x74]
mov rcx, qword [rbp + 8]
mov byte [rcx + rax + 0x128], 1
xor eax, eax
jmp 0x18009803a
mov dword [rbp + 0x94], 0
cmp dword [rbp + 0x1b8], 0x202
jne 0x180097aff
mov dword [rbp + 0x94], 0
cmp dword [rbp + 0x1b8], 0x205
jne 0x180097b15
mov dword [rbp + 0x94], 1
cmp dword [rbp + 0x1b8], 0x208
jne 0x180097b2b
mov dword [rbp + 0x94], 2
cmp dword [rbp + 0x1b8], 0x20c
jne 0x180097b72
mov rax, qword [rbp + 0x1c0]
shr rax, 0x10
and rax, 0xffff
movzx eax, ax
cmp eax, 1
jne 0x180097b5c
mov dword [rbp + 0x184], 3
jmp 0x180097b66
mov dword [rbp + 0x184], 4
mov eax, dword [rbp + 0x184]
mov dword [rbp + 0x94], eax
movsxd rax, dword [rbp + 0x94]
mov rcx, qword [rbp + 8]
mov byte [rcx + rax + 0x128], 0
call fcn.180025d60
movzx eax, al
test eax, eax
jne 0x180097ba6
call qword [sym.imp.USER32.dll_GetCapture]
cmp rax, qword [rbp + 0x1b0]
jne 0x180097ba6
call qword [sym.imp.USER32.dll_ReleaseCapture]
xor eax, eax
jmp 0x18009803a
mov rax, qword [rbp + 0x1c0]
shr rax, 0x10
and rax, 0xffff
cwde
cvtsi2ss xmm0, eax
divss xmm0, dword [0x18010fea0]
mov rax, qword [rbp + 8]
movss xmm1, dword [rax + 0x130]
addss xmm1, xmm0
movaps xmm0, xmm1
mov rax, qword [rbp + 8]
movss dword [rax + 0x130], xmm0
xor eax, eax
jmp 0x18009803a
mov rax, qword [rbp + 0x1c0]
shr rax, 0x10
and rax, 0xffff
cwde
cvtsi2ss xmm0, eax
divss xmm0, dword [0x18010fea0]
mov rax, qword [rbp + 8]
movss xmm1, dword [rax + 0x134]
addss xmm1, xmm0
movaps xmm0, xmm1
mov rax, qword [rbp + 8]
movss dword [rax + 0x134], xmm0
xor eax, eax
jmp 0x18009803a
cmp dword [rbp + 0x1b8], 0x100
je 0x180097c59
cmp dword [rbp + 0x1b8], 0x104
je 0x180097c59
mov dword [rbp + 0x184], 0
jmp 0x180097c63
mov dword [rbp + 0x184], 1
movzx eax, byte [rbp + 0x184]
mov byte [rbp + 0xb4], al
cmp qword [rbp + 0x1c0], 0x100
jae 0x180097c9b
mov rax, qword [rbp + 0x1c0]
mov rcx, qword [rbp + 8]
add rcx, rax
mov rax, rcx
movzx ecx, byte [rbp + 0xb4]
mov byte [rax + 0x13c], cl
cmp qword [rbp + 0x1c0], 0x11
jne 0x180097d9a
mov ecx, 0xa2
call qword [sym.imp.USER32.dll_GetKeyState]
cwde
and eax, 0x8000
test eax, eax
je 0x180097cca
mov dword [rbp + 0x184], 1
jmp 0x180097cd4
mov dword [rbp + 0x184], 0
mov eax, 1
imul rax, rax, 0xa2
mov rcx, qword [rbp + 8]
movzx edx, byte [rbp + 0x184]
mov byte [rcx + rax + 0x13c], dl
mov ecx, 0xa3
call qword [sym.imp.USER32.dll_GetKeyState]
cwde
and eax, 0x8000
test eax, eax
je 0x180097d13
mov dword [rbp + 0x184], 1
jmp 0x180097d1d
mov dword [rbp + 0x184], 0
mov eax, 1
imul rax, rax, 0xa3
mov rcx, qword [rbp + 8]
movzx edx, byte [rbp + 0x184]
mov byte [rcx + rax + 0x13c], dl
mov eax, 1
imul rax, rax, 0xa2
mov rcx, qword [rbp + 8]
movzx eax, byte [rcx + rax + 0x13c]
test eax, eax
jne 0x180097d7f
mov eax, 1
imul rax, rax, 0xa3
mov rcx, qword [rbp + 8]
movzx eax, byte [rcx + rax + 0x13c]
test eax, eax
jne 0x180097d7f
mov dword [rbp + 0x184], 0
jmp 0x180097d89
mov dword [rbp + 0x184], 1
mov rax, qword [rbp + 8]
movzx ecx, byte [rbp + 0x184]
mov byte [rax + 0x138], cl
cmp qword [rbp + 0x1c0], 0x10
jne 0x180097e99
mov ecx, 0xa0
call qword [sym.imp.USER32.dll_GetKeyState]
cwde
and eax, 0x8000
test eax, eax
je 0x180097dc9
mov dword [rbp + 0x184], 1
jmp 0x180097dd3
mov dword [rbp + 0x184], 0
mov eax, 1
imul rax, rax, 0xa0
mov rcx, qword [rbp + 8]
movzx edx, byte [rbp + 0x184]
mov byte [rcx + rax + 0x13c], dl
mov ecx, 0xa1
call qword [sym.imp.USER32.dll_GetKeyState]
cwde
and eax, 0x8000
test eax, eax
je 0x180097e12
mov dword [rbp + 0x184], 1
jmp 0x180097e1c
mov dword [rbp + 0x184], 0
mov eax, 1
imul rax, rax, 0xa1
mov rcx, qword [rbp + 8]
movzx edx, byte [rbp + 0x184]
mov byte [rcx + rax + 0x13c], dl
mov eax, 1
imul rax, rax, 0xa0
mov rcx, qword [rbp + 8]
movzx eax, byte [rcx + rax + 0x13c]
test eax, eax
jne 0x180097e7e
mov eax, 1
imul rax, rax, 0xa1
mov rcx, qword [rbp + 8]
movzx eax, byte [rcx + rax + 0x13c]
test eax, eax
jne 0x180097e7e
mov dword [rbp + 0x184], 0
jmp 0x180097e88
mov dword [rbp + 0x184], 1
mov rax, qword [rbp + 8]
movzx ecx, byte [rbp + 0x184]
mov byte [rax + 0x139], cl
cmp qword [rbp + 0x1c0], 0x12
jne 0x180097f98
mov ecx, 0xa4
call qword [sym.imp.USER32.dll_GetKeyState]
cwde
and eax, 0x8000
test eax, eax
je 0x180097ec8
mov dword [rbp + 0x184], 1
jmp 0x180097ed2
mov dword [rbp + 0x184], 0
mov eax, 1
imul rax, rax, 0xa4
mov rcx, qword [rbp + 8]
movzx edx, byte [rbp + 0x184]
mov byte [rcx + rax + 0x13c], dl
mov ecx, 0xa5
call qword [sym.imp.USER32.dll_GetKeyState]
cwde
and eax, 0x8000
test eax, eax
je 0x180097f11
mov dword [rbp + 0x184], 1
jmp 0x180097f1b
mov dword [rbp + 0x184], 0
mov eax, 1
imul rax, rax, 0xa5
mov rcx, qword [rbp + 8]
movzx edx, byte [rbp + 0x184]
mov byte [rcx + rax + 0x13c], dl
mov eax, 1
imul rax, rax, 0xa4
mov rcx, qword [rbp + 8]
movzx eax, byte [rcx + rax + 0x13c]
test eax, eax
jne 0x180097f7d
mov eax, 1
imul rax, rax, 0xa5
mov rcx, qword [rbp + 8]
movzx eax, byte [rcx + rax + 0x13c]
test eax, eax
jne 0x180097f7d
mov dword [rbp + 0x184], 0
jmp 0x180097f87
mov dword [rbp + 0x184], 1
mov rax, qword [rbp + 8]
movzx ecx, byte [rbp + 0x184]
mov byte [rax + 0x13a], cl
xor eax, eax
jmp 0x18009803a
cmp dword [rbp + 0x1b8], 7
jne 0x180097fb1
mov byte [rbp + 0x184], 1
jmp 0x180097fb8
mov byte [rbp + 0x184], 0
movzx edx, byte [rbp + 0x184]
mov rcx, qword [rbp + 8]
call fcn.18000b030
xor eax, eax
jmp 0x18009803a
cmp qword [rbp + 0x1c0], 0
jbe 0x180097ff3
cmp qword [rbp + 0x1c0], 0x10000
jae 0x180097ff3
movzx edx, word [rbp + 0x1c0]
mov rcx, qword [rbp + 8]
call fcn.18000b130
xor eax, eax
jmp 0x18009803a
mov rax, qword [rbp + 0x1c8]
and rax, 0xffff
movzx eax, ax
cmp eax, 1
jne 0x18009801f
call fcn.1800974e0
movzx eax, al
test eax, eax
je 0x18009801f
mov eax, 1
jmp 0x18009803a
xor eax, eax
jmp 0x18009803a
cmp dword [rbp + 0x1c0], 7
jne 0x180098034
mov rax, qword [rbp + 0x28]
mov byte [rax + 0x2d], 1
xor eax, eax
jmp 0x18009803a
xor eax, eax
mov rdi, rax
lea rcx, [rbp - 0x20]
lea rdx, [0x18011c3f0]
call fcn.1800eb4a0
mov rax, rdi
mov rcx, qword [rbp + 0x188]
xor rcx, rbp
call fcn.1800eb970
lea rsp, [rbp + 0x198]
pop rdi
pop rbp
ret