Function at 0x180118b30
Capabilities:
Log keystrokes via polling

Disassembly:
push rbp
lea rbp, [rsp - 0x10]
sub rsp, 0x110
mov rax, qword [0x18018e040]
xor rax, rsp
mov qword [rbp - 0x70], rax
mov ecx, 0x73
mov qword [rsp + 0x108], r12
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x180118b95
mov rcx, qword [0x180196358]
test rcx, rcx
je 0x180118b95
call fcn.18010a4f0
test rax, rax
je 0x180118b95
cmp byte [0x180196004], 0
mov rcx, qword [0x180196358]
sete dl
mov byte [0x180196004], dl
call fcn.18010a2d0
mov ecx, 0x71
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x180118ba9
call fcn.180060d10
mov ecx, 0x74
mov qword [rsp + 0x120], rbx
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x180118c04
mov rbx, qword [0x180196358]
test rbx, rbx
je 0x180118c04
mov rcx, qword [rbx + 0x628]
mov dword [rsp + 0x78], 0x5f5e0ff
call fcn.180105c50
test al, al
je 0x180118bf7
mov rcx, qword [0x180196358]
mov rcx, qword [rcx + 0x628]
call fcn.1801055e0
lea rdx, [rsp + 0x78]
mov rcx, rbx
call fcn.180104d10
mov ecx, 0x75
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x180118c1f
movzx ecx, byte [0x180195ff1]
call fcn.180060ab0
cmp byte [0x180195fec], 0
movaps xmmword [rsp + 0xe0], xmm6
je 0x180118c70
movss xmm6, dword [0x180196008]
mov byte [0x1801b32fa], 1
call fcn.18005c930
test rax, rax
jne 0x180118c51
mov byte [0x180195fec], al
jmp 0x180118cb1
mov rax, qword [rax + 0x30]
test rax, rax
je 0x180118cb1
mov rax, qword [rax + 0x298]
test rax, rax
je 0x180118cb1
movss dword [rax + 0x3c8], xmm6
jmp 0x180118cb1
cmp byte [0x1801b32fa], 0
je 0x180118cb1
mov byte [0x1801b32fa], 0
call fcn.18005c930
test rax, rax
jne 0x180118c92
mov byte [0x180195fec], al
jmp 0x180118cb1
mov rax, qword [rax + 0x30]
test rax, rax
je 0x180118cb1
mov rax, qword [rax + 0x298]
test rax, rax
je 0x180118cb1
mov dword [rax + 0x3c8], 0x3f800000
cmp byte [0x180195fed], 0
je 0x180118cf4
mov eax, dword [0x180196018]
mov rbx, qword [0x180196358]
mov byte [0x1801b32f8], 1
lea ecx, [rax + rax*4]
add ecx, ecx
test rbx, rbx
je 0x180118d2f
mov rax, qword [rbx + 0x628]
test rax, rax
je 0x180118d2f
cmp dword [rax + 0x12c], ecx
je 0x180118d2f
mov dword [rax + 0x12c], ecx
jmp 0x180118d2f
cmp byte [0x1801b32f8], 0
je 0x180118d2f
mov rbx, qword [0x180196358]
mov byte [0x1801b32f8], 0
test rbx, rbx
je 0x180118d2f
mov rax, qword [rbx + 0x628]
test rax, rax
je 0x180118d2f
cmp dword [rax + 0x12c], 1
je 0x180118d2f
mov dword [rax + 0x12c], 1
cmp byte [0x180195fee], 0
je 0x180118d72
mov eax, dword [0x18019601c]
mov rbx, qword [0x180196358]
mov byte [0x1801b32f9], 1
lea ecx, [rax + rax*4]
add ecx, ecx
test rbx, rbx
je 0x180118dad
mov rax, qword [rbx + 0x628]
test rax, rax
je 0x180118dad
cmp dword [rax + 0x130], ecx
je 0x180118dad
mov dword [rax + 0x130], ecx
jmp 0x180118dad
cmp byte [0x1801b32f9], 0
je 0x180118dad
mov rbx, qword [0x180196358]
mov byte [0x1801b32f9], 0
test rbx, rbx
je 0x180118dad
mov rax, qword [rbx + 0x628]
test rax, rax
je 0x180118dad
cmp dword [rax + 0x130], 1
je 0x180118dad
mov dword [rax + 0x130], 1
mov qword [rsp + 0x128], rsi
xor r12d, r12d
cmp byte [0x180195ff5], r12b
mov qword [rsp + 0x130], rdi
mov qword [rsp + 0xf8], r14
mov qword [rsp + 0xf0], r15
movaps xmmword [rsp + 0xd0], xmm7
je 0x180118f47
movss xmm7, dword [0x180196038]
mov ebx, r12d
mov dword [rbp - 0x80], ebx
mov esi, r12d
mov qword [rsp + 0x78], r12
mov dword [rbp - 0x7c], r12d
call fcn.18005c930
test rax, rax
je 0x180118e33
mov rcx, qword [rax + 0x1b8]
test rcx, rcx
je 0x180118e33
mov rcx, qword [rcx + 0x568]
test rcx, rcx
je 0x180118e33
lea rdx, [rsp + 0x78]
call fcn.180105390
mov ebx, dword [rbp - 0x80]
mov rsi, qword [rsp + 0x78]
test ebx, ebx
je 0x180118f47
movss xmm6, dword [0x18017acf0]
mov r15d, ebx
nop word [rax + rax]
mov rdi, qword [rsi]
test rdi, rdi
je 0x180118f39
call fcn.1801085a0
mov rcx, qword [rdi + 0x10]
test rcx, rcx
je 0x180118f39
nop
cmp rcx, rax
je 0x180118e83
mov rcx, qword [rcx + 0x40]
test rcx, rcx
jne 0x180118e70
jmp 0x180118f39
mov rbx, qword [0x180196358]
test rbx, rbx
je 0x180118f39
mov rcx, rbx
call fcn.18010a4f0
test rax, rax
je 0x180118f39
mov r14, qword [rax + 0x348]
test r14, r14
je 0x180118f39
lea rdx, [rsp + 0x78]
mov rcx, rbx
call fcn.180103030
lea rdx, [rsp + 0x60]
mov rcx, r14
call fcn.180103280
xorps xmm2, xmm2
lea rdx, [rsp + 0x48]
movaps xmm0, xmm7
mov rcx, rdi
mulss xmm0, xmm6
cvtss2sd xmm2, xmm0
movaps xmm1, xmm2
movaps xmm0, xmm2
mulsd xmm1, qword [rax]
mulsd xmm0, qword [rax + 8]
mulsd xmm2, qword [rax + 0x10]
addsd xmm1, qword [rsp + 0x78]
addsd xmm0, qword [rbp - 0x80]
addsd xmm2, qword [rbp - 0x78]
movsd qword [rsp + 0x30], xmm1
movsd qword [rsp + 0x38], xmm0
movsd qword [rsp + 0x40], xmm2
call fcn.180102de0
lea rdx, [rsp + 0x30]
mov rcx, rdi
call fcn.180102b00
lea rdx, [rsp + 0x48]
mov rcx, rdi
call fcn.1801028b0
add rsi, 8
sub r15, 1
jne 0x180118e50
cmp byte [0x180195fff], r12b
je 0x180119142
mov rbx, qword [0x180196358]
movss xmm7, dword [0x180196010]
mov r15d, dword [0x180196014]
test rbx, rbx
je 0x180119142
mov rax, qword [rbx + 0x628]
test rax, rax
je 0x180119142
mov qword [rsp + 0x100], r13
mov r13, qword [rax + 0xf0]
mov qword [rsp + 0x78], r12
mov qword [rbp - 0x80], r12
call fcn.18005c930
test rax, rax
je 0x18011913a
mov rax, qword [rax + 0x1b8]
test rax, rax
je 0x18011913a
mov rcx, qword [rax + 0x568]
test rcx, rcx
je 0x18011913a
lea rdx, [rsp + 0x78]
call fcn.180105390
mov eax, dword [rbp - 0x80]
test eax, eax
je 0x18011913a
mov rsi, qword [rsp + 0x78]
mov r14d, eax
movaps xmmword [rsp + 0xc0], xmm8
movsd xmm8, qword [0x18017ac40]
movaps xmmword [rsp + 0xb0], xmm9
movss xmm9, dword [0x18017aba8]
movaps xmmword [rsp + 0xa0], xmm10
movsd xmm10, qword [0x18017ac10]
nop dword [rax]
mov rdi, qword [rsi]
test rdi, rdi
je 0x180119111
call fcn.1801085a0
mov rcx, qword [rdi + 0x10]
test rcx, rcx
je 0x180119111
nop
cmp rcx, rax
je 0x180119053
mov rcx, qword [rcx + 0x40]
test rcx, rcx
jne 0x180119040
jmp 0x180119111
cmp rdi, r13
je 0x180119111
lea rdx, [rsp + 0x78]
mov rcx, rbx
call fcn.180103030
lea rdx, [rsp + 0x30]
mov rcx, rdi
call fcn.180103030
movsd xmm0, qword [rsp + 0x38]
movaps xmm1, xmm10
subsd xmm0, qword [rbp - 0x80]
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movaps xmm6, xmm0
movaps xmm1, xmm10
movsd xmm0, qword [rsp + 0x30]
subsd xmm0, qword [rsp + 0x78]
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
addsd xmm6, xmm0
movaps xmm1, xmm10
movsd xmm0, qword [rsp + 0x40]
subsd xmm0, qword [rbp - 0x78]
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
addsd xmm6, xmm0
xorps xmm1, xmm1
ucomisd xmm1, xmm6
ja 0x1801190d0
xorps xmm0, xmm0
sqrtsd xmm0, xmm6
jmp 0x1801190d8
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
divsd xmm0, xmm8
xorps xmm2, xmm2
cvtsd2ss xmm2, xmm0
comiss xmm2, xmm7
ja 0x180119111
divss xmm2, xmm7
mov rcx, rdi
movd xmm0, r15d
movaps xmm1, xmm9
cvtdq2ps xmm0, xmm0
subss xmm1, xmm2
mulss xmm1, xmm0
cvttss2si r15d, xmm1
mov edx, r15d
call fcn.180060990
add rsi, 8
sub r14, 1
jne 0x180119020
movaps xmm10, xmmword [rsp + 0xa0]
movaps xmm9, xmmword [rsp + 0xb0]
movaps xmm8, xmmword [rsp + 0xc0]
mov r13, qword [rsp + 0x100]
cmp byte [0x180195fef], r12b
movaps xmm7, xmmword [rsp + 0xd0]
movaps xmm6, xmmword [rsp + 0xe0]
je 0x1801191fc
mov rbx, qword [0x180196358]
test rbx, rbx
je 0x18011917c
mov rcx, qword [rbx + 0x628]
test rcx, rcx
je 0x18011917c
call fcn.180105800
call fcn.18005c930
mov ebx, r12d
mov rcx, qword [rax + 0x30]
movups xmm0, xmmword [rcx + 0x98]
mov r15d, dword [rcx + 0xa0]
movups xmmword [rsp + 0x78], xmm0
test r15d, r15d
jle 0x1801191fc
mov r14, qword [rsp + 0x78]
mov esi, ebx
mov rdi, qword [r14 + rsi*8]
test rdi, rdi
je 0x1801191f5
call fcn.180104b90
mov rcx, qword [rdi + 0x10]
test rcx, rcx
je 0x1801191f5
nop
cmp rcx, rax
je 0x1801191d0
mov rcx, qword [rcx + 0x40]
test rcx, rcx
jne 0x1801191c0
jmp 0x1801191f5
mov rdi, qword [r14 + rsi*8]
mov rcx, qword [rdi + 0x628]
test rcx, rcx
je 0x1801191f5
call fcn.180105a20
test al, al
je 0x1801191f5
mov rcx, qword [rdi + 0x628]
call fcn.180105800
inc ebx
cmp ebx, r15d
jl 0x1801191a5
cmp byte [0x180195ff0], r12b
mov r15, qword [rsp + 0xf0]
mov r14, qword [rsp + 0xf8]
mov rdi, qword [rsp + 0x130]
mov rsi, qword [rsp + 0x128]
je 0x180119269
mov rbx, qword [0x180196358]
test rbx, rbx
je 0x1801192c7
mov rcx, qword [rbx + 0x818]
call fcn.180107610
mov qword [rsp + 0x78], r12
test rax, rax
je 0x180119269
lea rdx, [rsp + 0x78]
mov rcx, rax
call fcn.180107840
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x180119269
mov dword [rax + 0x7c], 0x1e
mov rbx, qword [0x180196358]
test rbx, rbx
je 0x1801192c7
mov rcx, qword [rbx + 0x800]
test rcx, rcx
je 0x1801192c7
call fcn.18010cb00
test rax, rax
je 0x1801192c7
mov rcx, qword [0x180196358]
mov rcx, qword [rcx + 0x800]
call fcn.18010cd30
test al, al
je 0x1801192c7
mov rcx, qword [0x180196358]
cmp byte [0x180195ff2], r12b
sete r12b
mov rcx, qword [rcx + 0x800]
call fcn.18010cb00
mov byte [rax + 0x362], r12b
cmp byte [0x180195ff6], 0
mov r12, qword [rsp + 0x108]
je 0x180119328
mov rbx, qword [0x180196358]
test rbx, rbx
je 0x180119328
mov rax, qword [rbx + 0x628]
test rax, rax
je 0x180119328
mov rcx, qword [rax + 0x108]
test rcx, rcx
je 0x180119328
lea rdx, [rsp + 0x78]
call fcn.1801071a0
cmp qword [rax], 0x7fffffff
jge 0x180119328
mov rcx, qword [0x180196358]
lea rdx, [rsp + 0x78]
mov dword [rsp + 0x78], 0x7fffffff
call fcn.180104d10
mov rbx, qword [rsp + 0x120]
mov rcx, qword [rbp - 0x70]
xor rcx, rsp
call fcn.180126690
add rsp, 0x110
pop rbp
ret