Function at 0x14001ef70
Capabilities:
Log keystrokes via polling
Print debug messages

Disassembly:
mov qword [rsp + 0x10], rdi
push rbp
lea rbp, [rsp - 0x10]
sub rsp, 0x110
mov rax, qword [0x140321090]
xor rax, rsp
mov qword [rsp + 0x60], rax
cmp qword [0x1403951d0], 0
mov rdi, rcx
je 0x14001f3c2
mov rdx, qword [0x1403951c0]
test rdx, rdx
je 0x14001f3c2
cmp byte [0x1403939c8], 0
mov qword [rsp + 0x120], rbx
je 0x14001f402
mov ecx, dword [0x1403939cc]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14001f3fb
movaps xmmword [rsp + 0x100], xmm6
xor ebx, ebx
cmp byte [0x1403951a0], bl
movaps xmmword [rsp + 0xf0], xmm7
movaps xmmword [rsp + 0xe0], xmm8
movaps xmmword [rsp + 0xd0], xmm9
movaps xmmword [rsp + 0xc0], xmm10
movaps xmmword [rsp + 0xb0], xmm11
movaps xmmword [rsp + 0xa0], xmm12
movaps xmmword [rsp + 0x90], xmm13
movaps xmmword [rsp + 0x80], xmm14
xorps xmm14, xmm14
movaps xmmword [rsp + 0x70], xmm15
jne 0x14001f0c4
mov rcx, qword [0x1403b22d8]
test rcx, rcx
je 0x14001f07d
cmp dword [0x1403b223c], ebx
je 0x14001f07d
mov rdx, qword [0x1403951c0]
lea r9d, [rbx + 4]
add rdx, 0x2c
mov qword [rsp + 0x20], rbx
lea r8, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov rcx, qword [0x1403b22d8]
movss xmm0, dword [rsp + 0x50]
movss dword [0x1403b23f8], xmm0
mov dword [rsp + 0x58], ebx
test rcx, rcx
je 0x14001f0bd
cmp dword [0x1403b223c], ebx
je 0x14001f0bd
mov rdx, qword [0x1403951c0]
lea r8, [rsp + 0x58]
add rdx, 0x2c
mov qword [rsp + 0x20], rbx
mov r9d, 4
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
mov byte [0x1403951a0], 1
movd xmm6, dword [0x1403939d0]
mov ecx, reloc.WS2_32.dll_recv
cvtdq2ps xmm6, xmm6
divss xmm6, dword [0x14030a664]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14001f0ef
mulss xmm6, dword [0x14030a5a0]
movss xmm8, dword [0x1403b23b8]
mov ecx, 0x57
movss xmm9, dword [0x1403b23bc]
movaps xmm10, xmm8
movss xmm7, dword [0x1403b23c0]
movaps xmm12, xmm9
movaps xmm15, xmm7
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movss xmm11, dword [rdi]
movss xmm13, dword [rdi + 4]
test ax, ax
je 0x14001f161
movaps xmm8, xmm11
movaps xmm9, xmm13
mulss xmm8, xmm6
mulss xmm9, xmm6
addss xmm8, xmm10
movss xmm10, dword [rdi + 8]
movaps xmm7, xmm10
mulss xmm7, xmm6
addss xmm9, xmm12
addss xmm7, xmm15
jmp 0x14001f167
movss xmm10, dword [rdi + 8]
mov ecx, 0x53
movss dword [rsp + 0x50], xmm10
movaps xmm15, xmm13
movaps xmm12, xmm11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14001f1b3
movss xmm10, dword [rsp + 0x50]
movaps xmm0, xmm11
mulss xmm0, xmm6
movaps xmm1, xmm13
mulss xmm1, xmm6
subss xmm8, xmm0
movaps xmm0, xmm10
mulss xmm0, xmm6
subss xmm9, xmm1
subss xmm7, xmm0
mulss xmm10, xmm14
movaps xmm12, xmm13
mov ecx, 0x41
mulss xmm13, xmm14
subss xmm12, xmm10
subss xmm10, xmm11
mulss xmm11, xmm14
subss xmm11, xmm13
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movaps xmm15, xmmword [rsp + 0x70]
movaps xmm13, xmmword [rsp + 0x90]
test ax, ax
je 0x14001f219
movaps xmm0, xmm10
mulss xmm12, xmm6
movaps xmm1, xmm11
mulss xmm0, xmm6
mulss xmm1, xmm6
subss xmm8, xmm12
subss xmm9, xmm0
subss xmm7, xmm1
jmp 0x14001f225
movaps xmm0, xmm6
mulss xmm0, xmm12
movaps xmm12, xmm0
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14001f24e
mulss xmm10, xmm6
addss xmm8, xmm12
mulss xmm11, xmm6
addss xmm9, xmm10
addss xmm7, xmm11
mov ecx, reloc.WLDAP32.dll_Ordinal_32
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movaps xmm12, xmmword [rsp + 0xa0]
movaps xmm11, xmmword [rsp + 0xb0]
movaps xmm10, xmmword [rsp + 0xc0]
test ax, ax
je 0x14001f27d
addss xmm7, xmm6
mov ecx, 0xa2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14001f291
subss xmm7, xmm6
mov rcx, qword [0x1403b22d8]
movaps xmm0, xmm8
mov rdi, qword [0x1403951b0]
mov rdx, qword [0x1403951d0]
movaps xmm6, xmmword [rsp + 0x100]
unpcklps xmm0, xmm9
movsd qword [rsp + 0x40], xmm0
movss dword [rsp + 0x30], xmm8
movss dword [rsp + 0x34], xmm9
movss dword [rsp + 0x38], xmm7
movss dword [rsp + 0x48], xmm7
test rcx, rcx
je 0x14001f307
cmp dword [0x1403b223c], ebx
je 0x14001f307
add rdx, 0x90
mov qword [rsp + 0x20], rbx
mov r9d, ntohl
lea r8, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
mov rcx, qword [0x1403b22d8]
movsd xmm0, qword [rsp + 0x30]
mov eax, dword [rsp + 0x38]
movsd qword [rsp + 0x40], xmm0
mov dword [rsp + 0x48], eax
test rcx, rcx
je 0x14001f342
cmp dword [0x1403b223c], ebx
je 0x14001f342
lea rdx, [rdi + 0x50]
mov qword [rsp + 0x20], rbx
mov r9d, ntohl
lea r8, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
mov r8, qword [0x1403951b8]
mov rcx, qword [0x1403951d0]
movss dword [rsp + 0x30], xmm8
movaps xmm8, xmmword [rsp + 0xe0]
movss dword [rsp + 0x34], xmm9
movaps xmm9, xmmword [rsp + 0xd0]
movss dword [rsp + 0x38], xmm7
movaps xmm7, xmmword [rsp + 0xf0]
test r8, r8
jne 0x14001f392
lea rcx, [0x140108370]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x14001f3b1
xor r9d, r9d
xorps xmm2, xmm2
cmp byte [0x1403939c8], bl
je 0x14001f3e0
mov qword [rsp + 0x30], rbx
lea rdx, [rsp + 0x30]
mov dword [rsp + 0x38], ebx
call r8
movaps xmm14, xmmword [rsp + 0x80]
mov rbx, qword [rsp + 0x120]
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.1400efb60
mov rdi, qword [rsp + 0x128]
add rsp, 0x110
pop rbp
ret
movsd xmm0, qword [rsp + 0x30]
lea rdx, [rsp + 0x40]
mov eax, dword [rsp + 0x38]
movsd qword [rsp + 0x40], xmm0
mov dword [rsp + 0x48], eax
jmp 0x14001f3ae
mov rdx, qword [0x1403951c0]
cmp byte [0x1403951a0], 0
je 0x14001f448
mov rcx, qword [0x1403b22d8]
movss xmm0, dword [0x1403b23f8]
movss dword [rsp + 0x58], xmm0
test rcx, rcx
je 0x14001f448
cmp dword [0x1403b223c], 0
je 0x14001f448
xor ebx, ebx
lea r8, [rsp + 0x58]
add rdx, 0x2c
mov qword [rsp + 0x20], rbx
lea r9d, [rbx + 4]
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
mov byte [0x1403951a0], 0
jmp 0x14001f3ba