Function at 0x18004efc0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x90
mov rax, qword [0x1800e7ca0]
mov rdx, qword [0x1800e7bb8]
mov rcx, qword [rax + 0x10]
cmp byte [rdx + 0x170], 0
mov rdi, qword [rcx]
je 0x18004f007
test rdi, rdi
je 0x18004f007
mov rax, qword [rdi + 8]
test rax, rax
je 0x18004f007
mov byte [rax + 0x189], 1
mov rdx, qword [0x1800e7bb8]
cmp byte [rdx + 0x175], 0
mov qword [rsp + 0xa8], rbx
lea rbx, [rdi + 8]
je 0x18004f054
test rdi, rdi
je 0x18004f091
mov r8, qword [rbx]
test r8, r8
je 0x18004f091
mov rcx, qword [0x1800e7c90]
mov rax, qword [rcx + 0x38]
mov r9, qword [r8 + rax]
test r9, r9
je 0x18004f098
movd xmm0, dword [rdx + 0x164]
mov rax, qword [rcx + 8]
cvtdq2ps xmm0, xmm0
movss dword [r9 + rax], xmm0
jmp 0x18004f08a
test rdi, rdi
je 0x18004f091
mov r9, qword [rdi + 8]
test r9, r9
je 0x18004f091
mov rcx, qword [0x1800e7c90]
lea rbx, [rdi + 8]
mov rax, qword [rcx + 0x38]
mov r10, qword [r9 + rax]
test r10, r10
je 0x18004f098
mov rax, qword [rcx + 8]
lea rbx, [rdi + 8]
mov dword [r10 + rax], 0x3f800000
mov rdx, qword [0x1800e7bb8]
mov rcx, qword [0x1800e7c90]
cmp byte [rdx + 0x172], 0
je 0x18004f0d7
test rdi, rdi
je 0x18004f0d7
mov r8, qword [rbx]
test r8, r8
je 0x18004f0d7
mov rax, qword [rcx + 0x38]
mov r9, qword [r8 + rax]
test r9, r9
je 0x18004f0d7
mov rcx, qword [rcx + 0x30]
mov eax, dword [rdx + 0x168]
mov dword [r9 + rcx], eax
mov rdx, qword [0x1800e7bb8]
mov rcx, qword [0x1800e7c90]
cmp byte [rdx + 0x16f], 0
je 0x18004f114
test rdi, rdi
je 0x18004f114
mov r8, qword [rbx]
test r8, r8
je 0x18004f114
mov rax, qword [rcx + 0x38]
mov r9, qword [r8 + rax]
test r9, r9
je 0x18004f114
mov rax, qword [rcx + 0x30]
mov dword [r9 + rax], 0x16000
mov rdx, qword [0x1800e7bb8]
mov rcx, qword [0x1800e7c90]
cmp byte [rdx + 0x1c4], 0
je 0x18004f151
test rdi, rdi
je 0x18004f151
mov r8, qword [rbx]
test r8, r8
je 0x18004f151
mov rax, qword [rcx + 0x38]
mov r9, qword [r8 + rax]
test r9, r9
je 0x18004f151
mov rax, qword [rcx + 0x30]
mov dword [r9 + rax], 0x5800
mov rdx, qword [0x1800e7bb8]
mov rcx, qword [0x1800e7c90]
cmp byte [rdx + 0x1c5], 0
je 0x18004f18e
test rdi, rdi
je 0x18004f18e
mov r8, qword [rbx]
test r8, r8
je 0x18004f18e
mov rax, qword [rcx + 0x38]
mov r9, qword [r8 + rax]
test r9, r9
je 0x18004f18e
mov rax, qword [rcx + 0x30]
mov dword [r9 + rax], 0xb000
mov rdx, qword [0x1800e7bb8]
mov rcx, qword [0x1800e7c90]
cmp byte [rdx + 0x16d], 0
je 0x18004f1c4
test rdi, rdi
je 0x18004f1c4
mov r8, qword [rbx]
test r8, r8
je 0x18004f1c4
mov rax, qword [rcx + 0x38]
mov r9, qword [r8 + rax]
test r9, r9
je 0x18004f1c4
mov rax, qword [rcx + 0x30]
mov dword [r9 + rax], 2
mov rdx, qword [0x1800e7bb8]
cmp byte [rdx + 0x171], 0
je 0x18004f213
test rdi, rdi
je 0x18004f25a
mov rax, qword [rbx]
test rax, rax
je 0x18004f25a
mov rax, qword [rax + 0x30]
test rax, rax
je 0x18004f25a
mov rax, qword [rax + 0x10]
test rax, rax
je 0x18004f25a
mov rcx, qword [rax + 0x20]
test rcx, rcx
je 0x18004f25a
mov rax, qword [rcx + 0x70]
test rax, rax
je 0x18004f25a
mov rax, qword [rax]
test rax, rax
je 0x18004f25a
mov dword [rax + 0x2c], 0xbf800000
jmp 0x18004f253
test rdi, rdi
je 0x18004f25a
mov rax, qword [rbx]
test rax, rax
je 0x18004f25a
mov rax, qword [rax + 0x30]
test rax, rax
je 0x18004f25a
mov rax, qword [rax + 0x10]
test rax, rax
je 0x18004f25a
mov rcx, qword [rax + 0x20]
test rcx, rcx
je 0x18004f25a
mov rax, qword [rcx + 0x70]
test rax, rax
je 0x18004f25a
mov rax, qword [rax]
test rax, rax
je 0x18004f25a
mov dword [rax + 0x2c], 0x3e800000
mov rdx, qword [0x1800e7bb8]
cmp byte [rdx + 0x16c], 0
je 0x18004f2b8
mov rax, qword [0x1800e7ca0]
mov rax, qword [rax + 0x30]
test rax, rax
je 0x18004f278
mov rax, qword [rax]
jmp 0x18004f280
mov rax, qword [rsp + 0xa0]
test rax, rax
je 0x18004f2b8
test rdi, rdi
je 0x18004f2b8
mov rcx, qword [rbx]
test rcx, rcx
je 0x18004f2b8
mov rcx, qword [rcx + 0x30]
test rcx, rcx
je 0x18004f2b8
movsd xmm0, qword [rax + 0x3d0]
movsd qword [rcx + 0x30], xmm0
mov eax, dword [rax + 0x3d8]
mov dword [rcx + 0x38], eax
mov rdx, qword [0x1800e7bb8]
cmp byte [rdx + 0x173], 0
mov qword [rsp + 0xb8], rsi
je 0x18004f30c
cmp byte [0x1800e71b1], 0
jne 0x18004f30c
mov rcx, qword [0x1800e7ca0]
mov rax, qword [rcx + 0x10]
mov rsi, qword [rcx + 0x88]
mov rdx, qword [rax]
mov rax, qword [rcx + 0x60]
test rdx, rdx
jne 0x18004f2f4
xor ecx, ecx
jmp 0x18004f2f8
mov rcx, qword [rdx + 8]
call rax
mov ecx, eax
call rsi
mov rdx, qword [0x1800e7bb8]
mov byte [0x1800e71b1], 1
cmp byte [rdx + 0x174], 0
je 0x18004f5ff
mov ecx, dword [rdx + 0x160]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x18004f33b
cmp byte [0x1800e71b2], 0
sete al
mov byte [0x1800e71b2], al
jmp 0x18004f342
movzx eax, byte [0x1800e71b2]
test al, al
je 0x18004f618
mov rax, qword [0x1800e7ca0]
mov rcx, qword [rax + 0x30]
test rcx, rcx
je 0x18004f35f
mov r8, qword [rcx]
jmp 0x18004f367
mov r8, qword [rsp + 0xa0]
test r8, r8
je 0x18004f5ff
mov qword [rsp + 0xb0], rbp
movaps xmmword [rsp + 0x80], xmm6
xorps xmm6, xmm6
movaps xmmword [rsp + 0x40], xmm10
movaps xmmword [rsp + 0x30], xmm11
movaps xmmword [rsp + 0x70], xmm7
movaps xmmword [rsp + 0x60], xmm8
movaps xmmword [rsp + 0x50], xmm9
test rdi, rdi
je 0x18004f45e
mov rax, qword [rbx]
test rax, rax
je 0x18004f3c1
mov rcx, qword [rax + 0x30]
xorps xmm0, xmm0
test rcx, rcx
je 0x18004f3c1
movups xmmword [rcx + 0x30], xmm0
mov rcx, qword [rbx]
test rcx, rcx
je 0x18004f3e6
mov rdx, qword [0x1800e7c90]
mov rax, qword [rdx + 0x38]
mov rcx, qword [rcx + rax]
mov rax, qword [rdx + 0x10]
mov qword [rcx + rax], 2
jmp 0x18004f3fd
mov rax, qword [0x1800e7c90]
mov rcx, qword [rax + 0x10]
mov qword [rcx], 2
test rdi, rdi
je 0x18004f470
mov rcx, qword [rbx]
test rcx, rcx
je 0x18004f427
mov byte [rcx + 0x2c], 0x25
mov rcx, qword [rbx]
test rcx, rcx
je 0x18004f427
xorps xmm0, xmm0
unpcklps xmm0, xmm6
movsd qword [rcx + 0x320], xmm0
movss dword [rcx + 0x328], xmm6
test rdi, rdi
je 0x18004f470
mov rsi, qword [rbx]
test rsi, rsi
je 0x18004f470
movsd xmm7, qword [rsi + 0x90]
mov esi, dword [rsi + 0x98]
movaps xmm8, xmm7
movsd qword [rsp + 0x20], xmm7
movss xmm9, dword [rsp + 0x20]
shufps xmm8, xmm8, 0x55
movd xmm6, esi
jmp 0x18004f483
mov rax, qword [0x1800e7c90]
mov rcx, qword [rax + 0x10]
mov qword [rcx], 2
xorps xmm8, xmm8
movd esi, xmm6
xorps xmm7, xmm7
xorps xmm9, xmm9
unpcklps xmm7, xmm8
movsd xmm0, qword [r8 + 0x3d0]
mov ecx, reloc.WS2_32.dll_recv
mov ebp, dword [r8 + 0x3d8]
movsd qword [rsp + 0x20], xmm0
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18004f4b3
movss xmm0, dword [0x1800d7ed0]
jmp 0x18004f4bb
movss xmm0, dword [0x1800d7e90]
mov ecx, 0x57
movss dword [0x1800e60b8], xmm0
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movss xmm11, dword [rsp + 0x24]
movd xmm10, ebp
mov rbp, qword [rsp + 0xb0]
test ax, ax
jns 0x18004f525
movss xmm2, dword [0x1800e60b8]
movaps xmm1, xmm11
movaps xmm0, xmm2
mulss xmm1, xmm2
mulss xmm0, dword [rsp + 0x20]
addss xmm8, xmm1
addss xmm9, xmm0
movaps xmm0, xmm10
mulss xmm0, xmm2
addss xmm6, xmm0
movaps xmm7, xmm9
unpcklps xmm7, xmm8
movaps xmm7, xmm7
movd esi, xmm6
mov ecx, 0x53
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x18004f56e
movss xmm1, dword [0x1800e60b8]
movaps xmm0, xmm1
mulss xmm11, xmm1
mulss xmm0, dword [rsp + 0x20]
mulss xmm10, xmm1
subss xmm8, xmm11
subss xmm9, xmm0
subss xmm6, xmm10
movaps xmm7, xmm9
unpcklps xmm7, xmm8
movaps xmm7, xmm7
movd esi, xmm6
mov ecx, reloc.WLDAP32.dll_Ordinal_32
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movaps xmm11, xmmword [rsp + 0x30]
movaps xmm10, xmmword [rsp + 0x40]
movaps xmm9, xmmword [rsp + 0x50]
movaps xmm8, xmmword [rsp + 0x60]
test ax, ax
jns 0x18004f5a2
addss xmm6, dword [0x1800e60b8]
movd esi, xmm6
mov ecx, reloc.WS2_32.dll_recvfrom
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x18004f5be
subss xmm6, dword [0x1800e60b8]
movd esi, xmm6
movaps xmm6, xmmword [rsp + 0x80]
test rdi, rdi
je 0x18004f5fa
mov rax, qword [rbx]
test rax, rax
je 0x18004f5fa
movsd qword [rax + 0x90], xmm7
mov dword [rax + 0x98], esi
mov rax, qword [rbx]
test rax, rax
je 0x18004f5fa
mov rcx, qword [rax + 0x30]
test rcx, rcx
je 0x18004f5fa
movsd qword [rcx + 0x50], xmm7
mov dword [rcx + 0x58], esi
movaps xmm7, xmmword [rsp + 0x70]
mov rsi, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0xa8]
add rsp, 0x90
pop rdi
ret
mov rdx, qword [0x1800e7c90]
test rdi, rdi
je 0x18004f642
mov rcx, qword [rbx]
test rcx, rcx
je 0x18004f642
mov rax, qword [rdx + 0x38]
mov rcx, qword [rcx + rax]
mov rax, qword [rdx + 0x10]
mov qword [rcx + rax], 0
jmp 0x18004f5ff
mov rax, qword [rdx + 0x10]
xor ecx, ecx
mov qword [rcx + rax], rcx
jmp 0x18004f5ff