Function at 0x18004a090
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x20], rdi
push rbp
lea rbp, [rsp - 0x57]
sub rsp, 0xf0
movaps xmmword [rsp + 0x90], xmm11
mov rax, qword [0x1800e4080]
xor rax, rsp
mov qword [rbp - 0x39], rax
mov rax, qword [0x1800f4540]
mov rdx, qword [0x1800f4420]
mov rcx, qword [rax + 0x10]
cmp byte [rdx + 0x168], 0
mov rdi, qword [rcx]
je 0x18004a133
test rdi, rdi
je 0x18004a133
mov r8, qword [rdi + 8]
test r8, r8
je 0x18004a133
mov rax, qword [0x1800f4530]
mov rcx, qword [rax + 0x68]
mov rax, qword [r8 + rcx]
test rax, rax
je 0x18004a133
mov rax, qword [rax + 0x30]
test rax, rax
je 0x18004a133
mov rax, qword [rax + 0x10]
test rax, rax
je 0x18004a133
mov rcx, qword [rax + 0x20]
test rcx, rcx
je 0x18004a133
mov rax, qword [rcx + 0x70]
test rax, rax
je 0x18004a133
mov rax, qword [rax]
test rax, rax
je 0x18004a133
mov dword [rax + 0x2c], 0xbf800000
mov rdx, qword [0x1800f4420]
cmp byte [rdx + 0x170], 0
mov qword [rsp + 0x100], rbx
mov qword [rsp + 0x108], rsi
movaps xmmword [rsp + 0xe0], xmm6
movaps xmmword [rsp + 0xd0], xmm7
movaps xmmword [rsp + 0xc0], xmm8
je 0x18004a25e
call fcn.180049de0
mov rsi, rax
test rax, rax
je 0x18004a257
mov rcx, qword [0x1800f4420]
mov ecx, dword [rcx + 0x164]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18004a257
mov rdx, qword [0x1800f4540]
mov rax, qword [rdx + 0x30]
test rax, rax
je 0x18004a1ab
mov rcx, qword [rax]
jmp 0x18004a1af
mov rcx, qword [rbp - 0x49]
movsd xmm0, qword [rcx + 0x3d0]
movsd xmm2, qword [rcx + 0x60]
movaps xmm6, xmm0
movss xmm1, dword [0x1800d5c44]
movaps xmm7, xmm0
movss xmm8, dword [rcx + 0x3d8]
mov rax, qword [rdx + 0x60]
mov rbx, qword [rdx + 0x50]
movsd qword [rbp - 0x59], xmm0
movaps xmm0, xmm2
shufps xmm6, xmm6, 0x55
mulss xmm8, xmm1
mulss xmm6, xmm1
addss xmm8, dword [rcx + 0x68]
mulss xmm7, xmm1
mov rcx, rsi
shufps xmm0, xmm0, 0x55
addss xmm6, xmm0
movsd qword [rbp - 0x59], xmm2
addss xmm7, xmm2
call rax
mov ecx, eax
call rbx
mov rax, qword [rsi + 0x30]
xorps xmm0, xmm0
test rax, rax
je 0x18004a224
movups xmmword [rax + 0x30], xmm0
movss dword [rsi + 0x90], xmm7
movss dword [rsi + 0x94], xmm6
movss dword [rsi + 0x98], xmm8
mov rcx, qword [rsi + 0x30]
test rcx, rcx
je 0x18004a257
movaps xmm0, xmm7
unpcklps xmm0, xmm6
movsd qword [rcx + 0x50], xmm0
movss dword [rcx + 0x58], xmm8
mov rdx, qword [0x1800f4420]
cmp byte [rdx + 0x169], 0
je 0x18004a2ad
test rdi, rdi
je 0x18004a2ad
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x18004a2ad
mov r8, qword [0x1800f4530]
mov rax, qword [r8 + 0x68]
mov rcx, qword [rcx + rax]
test rcx, rcx
je 0x18004a2ad
mov rax, qword [r8 + 0x20]
mov rcx, qword [rcx + rax]
test rcx, rcx
je 0x18004a2ad
movd xmm0, dword [rdx + 0x174]
cvtdq2ps xmm0, xmm0
movss dword [rcx + 0x4c], xmm0
mov rdx, qword [0x1800f4420]
cmp byte [rdx + 0x16a], 0
je 0x18004a2f2
test rdi, rdi
je 0x18004a2f2
mov r8, qword [rdi + 8]
test r8, r8
je 0x18004a2f2
mov rax, qword [0x1800f4530]
mov rcx, qword [rax + 0x68]
mov rax, qword [r8 + rcx]
test rax, rax
je 0x18004a2f2
movd xmm0, dword [rdx + 0x174]
cvtdq2ps xmm0, xmm0
movss dword [rax + 0xc3c], xmm0
mov rdx, qword [0x1800f4420]
cmp byte [rdx + 0x171], 0
xorps xmm11, xmm11
je 0x18004a646
mov ecx, dword [rdx + 0x120]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x18004a325
cmp byte [0x1800f4383], 0
sete al
mov byte [0x1800f4383], al
jmp 0x18004a32c
movzx eax, byte [0x1800f4383]
mov qword [rsp + 0x110], r14
movaps xmmword [rsp + 0xb0], xmm9
test al, al
je 0x18004a5f1
mov rax, qword [0x1800f4540]
mov rbx, qword [rax + 0x30]
test rbx, rbx
je 0x18004a35a
mov rbx, qword [rbx]
jmp 0x18004a35e
mov rbx, qword [rbp - 0x49]
test rbx, rbx
je 0x18004a62e
mov rcx, qword [0x1800f4530]
lea rsi, [rdi + 8]
movaps xmmword [rsp + 0x80], xmm12
movaps xmmword [rsp + 0x70], xmm13
movaps xmmword [rsp + 0xa0], xmm10
test rdi, rdi
je 0x18004a433
mov rdx, qword [rsi]
test rdx, rdx
je 0x18004a3bc
mov rax, qword [rcx + 0x68]
mov r8, qword [rdx + rax]
test r8, r8
je 0x18004a3bc
mov dword [r8 + 0xc3c], 0
mov rcx, qword [0x1800f4530]
jmp 0x18004a3c1
test rdi, rdi
je 0x18004a433
mov rdx, qword [rsi]
test rdx, rdx
je 0x18004a3ed
mov rax, qword [rcx + 0x68]
mov r8, qword [rdx + rax]
test r8, r8
je 0x18004a3ed
mov rax, qword [r8 + 0x30]
xorps xmm0, xmm0
test rax, rax
je 0x18004a3ed
movups xmmword [rax + 0x30], xmm0
mov rcx, qword [0x1800f4530]
test rdi, rdi
je 0x18004a433
mov r14, qword [rsi]
test r14, r14
je 0x18004a433
mov rax, qword [rcx + 0x68]
mov r14, qword [r14 + rax]
test r14, r14
je 0x18004a433
movsd xmm9, qword [r14 + 0x90]
mov r14d, dword [r14 + 0x98]
movaps xmm10, xmm9
movsd qword [rbp - 0x49], xmm9
movss xmm8, dword [rbp - 0x49]
shufps xmm10, xmm10, 0x55
movd xmm7, r14d
jmp 0x18004a451
xorps xmm10, xmm10
xorps xmm9, xmm9
unpcklps xmm9, xmm10
xorps xmm7, xmm7
movsd qword [rbp - 0x49], xmm9
xorps xmm8, xmm8
movd r14d, xmm7
movsd xmm6, qword [rbx + 0x3d0]
mov ecx, 0x57
mov ebx, dword [rbx + 0x3d8]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movaps xmm12, xmm6
movsd qword [rbp - 0x59], xmm6
movss xmm6, dword [rbp - 0x59]
movd xmm13, ebx
shufps xmm12, xmm12, 0x55
test ax, ax
jns 0x18004a4ac
addss xmm8, xmm6
addss xmm10, xmm12
addss xmm7, xmm13
movaps xmm0, xmm8
unpcklps xmm0, xmm10
movaps xmm9, xmm0
movsd qword [rbp - 0x49], xmm0
movd r14d, xmm7
mov ecx, 0x53
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x18004a4e1
subss xmm8, xmm6
subss xmm10, xmm12
subss xmm7, xmm13
movaps xmm0, xmm8
unpcklps xmm0, xmm10
movaps xmm9, xmm0
movsd qword [rbp - 0x49], xmm0
movd r14d, xmm7
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movaps xmm13, xmmword [rsp + 0x70]
movaps xmm12, xmmword [rsp + 0x80]
movaps xmm10, xmmword [rsp + 0xa0]
test ax, ax
jns 0x18004a525
movsd xmm1, qword [rbp - 0x49]
addss xmm8, dword [0x1800d5b60]
movss xmm1, xmm8
movsd qword [rbp - 0x49], xmm1
movaps xmm9, xmm1
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movss xmm6, dword [0x1800d5d14]
test ax, ax
jns 0x18004a555
movsd xmm1, qword [rbp - 0x49]
addss xmm8, xmm6
movss xmm1, xmm8
movsd qword [rbp - 0x49], xmm1
movaps xmm9, xmm1
mov ecx, reloc.WLDAP32.dll_Ordinal_32
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x18004a572
addss xmm7, dword [0x1800d5b60]
movd r14d, xmm7
mov ecx, reloc.WS2_32.dll_recvfrom
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x18004a58b
addss xmm7, xmm6
movd r14d, xmm7
test rdi, rdi
je 0x18004a62e
mov rdx, qword [rsi]
test rdx, rdx
je 0x18004a5c0
mov rax, qword [0x1800f4530]
mov rcx, qword [rax + 0x68]
mov rax, qword [rdx + rcx]
test rax, rax
je 0x18004a5c0
movsd qword [rax + 0x90], xmm9
mov dword [rax + 0x98], r14d
mov rdx, qword [rsi]
test rdx, rdx
je 0x18004a62e
mov rax, qword [0x1800f4530]
mov rcx, qword [rax + 0x68]
mov rax, qword [rdx + rcx]
test rax, rax
je 0x18004a62e
mov rax, qword [rax + 0x30]
test rax, rax
je 0x18004a62e
movsd qword [rax + 0x50], xmm9
mov dword [rax + 0x58], r14d
jmp 0x18004a62e
test rdi, rdi
je 0x18004a62e
mov rdx, qword [rdi + 8]
test rdx, rdx
je 0x18004a62e
mov rax, qword [0x1800f4530]
mov rcx, qword [rax + 0x68]
mov r8, qword [rdx + rcx]
test r8, r8
je 0x18004a62e
mov rax, qword [0x1800f4420]
movd xmm0, dword [rax + 0x174]
cvtdq2ps xmm0, xmm0
movss dword [r8 + 0xc3c], xmm0
mov rdx, qword [0x1800f4420]
mov r14, qword [rsp + 0x110]
movaps xmm9, xmmword [rsp + 0xb0]
cmp byte [rdx + 0x172], 0
movaps xmm8, xmmword [rsp + 0xc0]
movaps xmm7, xmmword [rsp + 0xd0]
je 0x18004a74a
call fcn.180049de0
test rax, rax
jne 0x18004a67c
xorps xmm6, xmm6
movd esi, xmm11
unpcklps xmm6, xmm11
jmp 0x18004a68a
movsd xmm6, qword [rax + 0x90]
mov esi, dword [rax + 0x98]
mov rax, qword [0x1800f4540]
lea r8, [rbp - 0x45]
mov rbx, qword [0x1800f3f20]
lea rdx, [rbp - 0x49]
lea rcx, [rbp - 0x59]
movsd qword [rbp - 0x59], xmm6
mov dword [rbp - 0x51], esi
mov qword [rbp - 0x49], 0
call qword [rax + gethostname]
movss xmm1, dword [rbp - 0x49]
lea rax, [rbp - 0x59]
mulss xmm1, dword [rbx + 0x10]
mov dword [rsp + 0x30], 0
movss xmm2, dword [rbp - 0x45]
movaps xmm0, xmmword [0x1800d5ec0]
movss xmm3, dword [0x1800d5bf8]
movss dword [rbp - 0x49], xmm1
mulss xmm2, dword [rbx + 0x14]
mov qword [rsp + 0x28], rax
movss dword [rsp + 0x20], xmm3
movaps xmmword [rbp - 0x59], xmm0
movss dword [rbp - 0x45], xmm2
call fcn.180050d80
mov ecx, 5
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18004a74a
test rdi, rdi
je 0x18004a74a
mov rax, qword [rdi + 8]
test rax, rax
je 0x18004a74a
movsd qword [rax + 0x90], xmm6
mov dword [rax + 0x98], esi
mov rax, qword [rdi + 8]
test rax, rax
je 0x18004a74a
mov rcx, qword [rax + 0x30]
test rcx, rcx
je 0x18004a74a
movsd qword [rcx + 0x50], xmm6
mov dword [rcx + 0x58], esi
movaps xmm6, xmmword [rsp + 0xe0]
mov rsi, qword [rsp + 0x108]
mov rbx, qword [rsp + 0x100]
mov rcx, qword [rbp - 0x39]
xor rcx, rsp
call fcn.18009fa70
lea r11, [rsp + 0xf0]
mov rdi, qword [r11 + 0x28]
movaps xmm11, xmmword [r11 - 0x60]
mov rsp, r11
pop rbp
ret