Function at 0x1400a9c80
Capabilities:
Create thread
Log keystrokes via polling

Disassembly:
push rbx
sub rsp, 0xb0
xor ebx, ebx
lea r8, [0x1400aa2a0]
mov qword [rsp + 0x28], rbx
xor r9d, r9d
xor edx, edx
mov dword [rsp + 0x20], ebx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
xor r9d, r9d
mov qword [rsp + 0x28], rbx
lea r8, [0x1400acb20]
mov dword [rsp + 0x20], ebx
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
lea rcx, [rsp + 0xc0]
call fcn.1400abcf0
lea rcx, [rsp + 0xc8]
call fcn.1400abcf0
lea rcx, [rsp + 0xc8]
call fcn.1400abcf0
cmp byte [reloc.WS2_32.dll_accept], bl
je 0x1400aa26a
mov rbx, qword [rsp + 0xc0]
mov qword [rsp + 0xd0], rbp
mov ebp, 0x1f40
mov qword [rsp + 0xa8], rsi
movabs rsi, 0xb2f4fc0794908cf3
movaps xmmword [rsp + 0x60], xmm9
movsd xmm9, qword [0x14015c418]
movaps xmmword [rsp + 0x50], xmm10
movss xmm10, dword [0x140140028]
movaps xmmword [rsp + 0x40], xmm11
movsd xmm11, qword [0x14015c420]
movaps xmmword [rsp + 0x30], xmm12
movsd xmm12, qword [0x14014e088]
mov qword [rsp + 0xa0], rdi
movaps xmmword [rsp + 0x90], xmm6
movaps xmmword [rsp + 0x80], xmm7
movaps xmmword [rsp + 0x70], xmm8
nop dword [rax]
mov eax, dword [0x140194e00]
cmp eax, 1
jbe 0x1400a9df1
cmp eax, 2
jne 0x1400a9d9c
mov dword [0x140194e04], 1
jmp 0x1400a9dfb
cmp eax, 3
jne 0x1400a9dad
mov dword [0x140194e04], 5
jmp 0x1400a9dfb
cmp eax, 4
jne 0x1400a9dbe
mov dword [0x140194e04], 6
jmp 0x1400a9dfb
cmp eax, 5
jne 0x1400a9dcf
mov dword [0x140194e04], 0x10
jmp 0x1400a9dfb
cmp eax, 6
jne 0x1400a9de0
mov dword [0x140194e04], 0x12
jmp 0x1400a9dfb
cmp eax, 7
jne 0x1400a9dfb
mov dword [0x140194e04], 0x45
jmp 0x1400a9dfb
mov dword [0x140194e04], 2
mov eax, dword [0x140194e14]
cmp eax, 1
jbe 0x1400a9e6c
cmp eax, 2
jne 0x1400a9e17
mov dword [0x140194e08], 1
jmp 0x1400a9e76
cmp eax, 3
jne 0x1400a9e28
mov dword [0x140194e08], 5
jmp 0x1400a9e76
cmp eax, 4
jne 0x1400a9e39
mov dword [0x140194e08], 6
jmp 0x1400a9e76
cmp eax, 5
jne 0x1400a9e4a
mov dword [0x140194e08], 0x10
jmp 0x1400a9e76
cmp eax, 6
jne 0x1400a9e5b
mov dword [0x140194e08], 0x12
jmp 0x1400a9e76
cmp eax, 7
jne 0x1400a9e76
mov dword [0x140194e08], 0x45
jmp 0x1400a9e76
mov dword [0x140194e08], 2
mov eax, dword [0x140194e10]
cmp eax, 1
jbe 0x1400a9ee7
cmp eax, 2
jne 0x1400a9e92
mov dword [0x140194e0c], 1
jmp 0x1400a9ef1
cmp eax, 3
jne 0x1400a9ea3
mov dword [0x140194e0c], 5
jmp 0x1400a9ef1
cmp eax, 4
jne 0x1400a9eb4
mov dword [0x140194e0c], 6
jmp 0x1400a9ef1
cmp eax, 5
jne 0x1400a9ec5
mov dword [0x140194e0c], 0x10
jmp 0x1400a9ef1
cmp eax, 6
jne 0x1400a9ed6
mov dword [0x140194e0c], 0x12
jmp 0x1400a9ef1
cmp eax, 7
jne 0x1400a9ef1
mov dword [0x140194e0c], 0x45
jmp 0x1400a9ef1
mov dword [0x140194e0c], 2
cmp byte [0x140194d9b], 0
jne 0x1400a9f1c
cmp byte [0x140194d9f], 0
jne 0x1400a9f1c
cmp byte [0x140194d9d], 0
jne 0x1400a9f1c
mov ecx, 0x3e8
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x1400aa217
movss xmm0, dword [0x14018d9c4]
movaps xmm8, xmm12
cvtps2pd xmm0, xmm0
divsd xmm8, xmm0
call sub.MSVCP140.dll__Query_perf_frequency
mov rdi, rax
call sub.MSVCP140.dll__Query_perf_counter
mov rcx, rax
cmp rdi, 0x989680
jne 0x1400a9f4f
imul rdx, rcx, 0x64
jmp 0x1400a9fc2
cmp rdi, 0x16e3600
jne 0x1400a9fa1
mov rax, rsi
imul rcx
lea r8, [rcx + rdx]
sar r8, 0x18
mov rax, r8
shr rax, 0x3f
add r8, rax
imul rax, r8, 0x16e3600
sub rcx, rax
mov rax, rsi
imul rcx, rcx, 0x3b9aca00
imul rcx
add rdx, rcx
sar rdx, 0x18
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul rax, r8, 0x3b9aca00
jmp 0x1400a9fbf
cqo
idiv rdi
mov rcx, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rdi
mov rdx, rax
imul rax, rcx, 0x3b9aca00
add rdx, rax
mov ecx, dword [0x140194e04]
sub rdx, rbx
cmp byte [0x140194d9c], 0
xorps xmm6, xmm6
cvtsi2sd xmm6, rdx
divsd xmm6, xmm11
je 0x1400a9fec
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jmp 0x1400a9ff5
call qword [sym.imp.USER32.dll_GetKeyState]
test bp, ax
setne dil
cmp byte [0x140194d9d], 0
jne 0x1400aa00f
cmp byte [0x140194d9f], 0
je 0x1400aa0fc
comisd xmm6, xmm9
jbe 0x1400aa0fc
call sub.MSVCP140.dll__Query_perf_frequency
mov rbx, rax
call sub.MSVCP140.dll__Query_perf_counter
mov rcx, rax
cmp rbx, 0x989680
jne 0x1400aa039
imul rbx, rcx, 0x64
jmp 0x1400aa0ad
cmp rbx, 0x16e3600
jne 0x1400aa08c
mov rax, rsi
imul rcx
lea r8, [rcx + rdx]
sar r8, 0x18
mov rax, r8
shr rax, 0x3f
add r8, rax
imul rax, r8, 0x16e3600
sub rcx, rax
mov rax, rsi
imul rcx, rcx, 0x3b9aca00
imul rcx
lea rbx, [rcx + rdx]
sar rbx, 0x18
mov rax, rbx
shr rax, 0x3f
add rbx, rax
imul rax, r8, 0x3b9aca00
jmp 0x1400aa0aa
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
mov rbx, rax
imul rax, rcx, 0x3b9aca00
add rbx, rax
call sub.MSVCP140.dll__Query_perf_frequency
call sub.MSVCP140.dll__Query_perf_counter
cmp byte [0x140194d9f], 0
je 0x1400aa0fc
cmp byte [0x140194d98], 0
je 0x1400aa0fc
mov ecx, dword [0x140194e08]
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x1400aa0fc
mov ecx, dword [0x140194e1c]
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 1
call qword [0x140194d78]
mov ecx, 2
call qword [0x140194d78]
cmp byte [0x140194d9b], 0
je 0x1400aa217
test dil, dil
je 0x1400aa217
comisd xmm6, xmm9
jbe 0x1400aa217
lea rcx, [rsp + 0xc0]
call fcn.1400abcf0
lea rcx, [rsp + 0xc8]
mov rbx, qword [rax]
call fcn.1400abcf0
mov eax, dword [0x140194d90]
mov ecx, dword [0x140194d94]
movd xmm7, eax
movd xmm0, ecx
cvtdq2pd xmm7, xmm7
cvtdq2pd xmm0, xmm0
mulsd xmm7, xmm8
mulsd xmm0, xmm8
test eax, eax
jne 0x1400aa168
test ecx, ecx
je 0x1400aa1d4
cvttsd2si edi, xmm7
cvttsd2si edx, xmm0
mov ecx, edi
call qword [0x140194d80]
cmp byte [0x140194d9d], 0
je 0x1400aa1d4
mov ecx, 1
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x1400aa273
movss xmm0, dword [0x14018d9d8]
cvtps2pd xmm0, xmm0
comisd xmm6, xmm0
jb 0x1400aa1d4
cvttss2si edx, dword [0x14018d9d4]
mov ecx, edi
call qword [0x140194d80]
cvttss2si ecx, dword [0x14018d9dc]
mov byte [0x140194d99], 1
mov byte [0x140194d9a], 0
add ecx, ecx
call qword [sym.imp.KERNEL32.dll_Sleep]
cmp byte [0x140194d99], 0
jne 0x1400aa217
mov ecx, 1
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jne 0x1400aa217
cmp byte [0x140194d9a], al
jne 0x1400aa217
movss xmm0, dword [0x14018d9d4]
mulss xmm0, xmm10
cvttsd2si ecx, xmm7
cvttss2si edx, xmm0
call qword [0x140194d80]
mov byte [0x140194d9a], 1
cmp byte [reloc.WS2_32.dll_accept], 0
jne 0x1400a9d80
movaps xmm12, xmmword [rsp + 0x30]
movaps xmm11, xmmword [rsp + 0x40]
movaps xmm10, xmmword [rsp + 0x50]
movaps xmm9, xmmword [rsp + 0x60]
movaps xmm8, xmmword [rsp + 0x70]
movaps xmm7, xmmword [rsp + 0x80]
movaps xmm6, xmmword [rsp + 0x90]
mov rdi, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0xa8]
mov rbp, qword [rsp + 0xd0]
add rsp, 0xb0
pop rbx
ret
mov byte [0x140194d99], 0
jmp 0x1400aa1dd