Function at 0x1800d09e0
Capabilities:
Log keystrokes via polling

Disassembly:
push rbx
sub rsp, 0x50
mov ecx, dword [0x1802401c4]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
xor ebx, ebx
test al, 1
je 0x1800d0a45
cmp dword [0x1802401c4], ebx
je 0x1800d0a45
mov rax, qword [0x18023ff58]
mov rcx, qword [rax]
mov rcx, qword [rcx + 8]
test rcx, rcx
je 0x1800d0a45
movsd xmm0, qword [rcx + 0x90]
movss xmm3, dword [rcx + 0x98]
movaps xmm2, xmm0
mov dword [rsp + 0x30], ebx
movaps xmm1, xmm0
shufps xmm2, xmm2, 0x55
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], ebx
movsd qword [rsp + 0x40], xmm0
call qword [0x1802400e0]
mov ecx, dword [0x1802401dc]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x1800d0a8b
cmp dword [0x1802401c4], ebx
je 0x1800d0a8b
mov rax, qword [0x18023ff58]
mov rcx, qword [rax]
mov rcx, qword [rcx + 8]
test rcx, rcx
je 0x1800d0a8b
mov rax, qword [0x18023ffe0]
mov rcx, qword [rax + rcx]
test rcx, rcx
je 0x1800d0a8b
mov rax, qword [0x180240080]
mov byte [rax + rcx], reloc.WS2_32.dll_socket
mov ecx, dword [0x1802401d0]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x1800d0aa8
cmp byte [0x18023bf86], bl
sete byte [0x18023bf86]
mov ecx, dword [0x1802401d4]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x1800d0ac5
cmp byte [0x18023c188], bl
sete byte [0x18023c188]
mov ecx, dword [0x1802401d8]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x1800d0ae2
cmp byte [0x18023c18a], bl
sete byte [0x18023c18a]
mov ecx, dword [0x1802401c8]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x1800d0aff
cmp byte [0x18023bff0], bl
sete byte [0x18023bff0]
mov ecx, dword [0x1802401e0]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x1800d0b1c
cmp byte [0x18023bf5d], bl
sete byte [0x18023bf5d]
mov ecx, dword [reloc.WLDAP32.dll_Ordinal_33]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x1800d0b39
cmp byte [0x18023bf94], bl
sete byte [0x18023bf94]
mov ecx, dword [0x1802401bc]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x1800d0b56
cmp byte [0x18023bf6a], bl
sete byte [0x18023bf6a]
mov ecx, dword [0x1802401c0]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x1800d0c9b
cmp dword [0x1802401c0], ebx
je 0x1800d0c9b
mov rcx, qword [0x18023d4d0]
test rcx, rcx
je 0x1800d0c9b
mov rdx, qword [rcx + 0x30]
test rdx, rdx
je 0x1800d0c9b
mov rax, qword [0x18023ff88]
movss xmm0, dword [0x1801bab20]
movsd xmm5, qword [rax + 0x20]
ucomiss xmm5, xmm0
movsd qword [rsp + 0x40], xmm5
jp 0x1800d0bb8
je 0x1800d0c9b
movss xmm2, dword [rsp + 0x44]
ucomiss xmm2, xmm0
jp 0x1800d0bc9
je 0x1800d0c9b
movss xmm3, dword [rax + 0x28]
ucomiss xmm3, xmm0
jp 0x1800d0bd9
je 0x1800d0c9b
mov rax, qword [0x18023ff90]
movaps xmm0, xmm5
mov dword [rsp + 0x30], ebx
movaps xmm1, xmm5
mov dword [rsp + 0x28], ebx
unpcklps xmm0, xmm2
mov dword [rsp + 0x20], ebx
cmp byte [rax], bl
je 0x1800d0c4c
mov rax, qword [0x18023ffe0]
mov rcx, qword [rcx + rax]
mov rax, qword [rcx + 0x30]
mov qword [rax + 0x30], rbx
mov dword [rax + 0x38], ebx
mov qword [rcx + 0x320], rbx
mov dword [rcx + 0x328], ebx
mov rdx, qword [rcx + 0x30]
movsd qword [rcx + 0x90], xmm0
movaps xmm0, xmm5
movss dword [rcx + 0x98], xmm3
unpcklps xmm0, xmm2
movsd qword [rdx + 0x50], xmm0
movss dword [rdx + 0x58], xmm3
call qword [0x1802400e0]
add rsp, 0x50
pop rbx
ret
mov qword [rdx + 0x30], rbx
mov dword [rdx + 0x38], ebx
mov rax, qword [0x18023d4d0]
mov qword [rax + 0x320], rbx
mov dword [rax + 0x328], ebx
mov rcx, qword [0x18023d4d0]
movsd qword [rcx + 0x90], xmm0
movaps xmm0, xmm5
movss dword [rcx + 0x98], xmm3
unpcklps xmm0, xmm2
movsd qword [rdx + 0x50], xmm0
movss dword [rdx + 0x58], xmm3
mov rcx, qword [0x18023d4d0]
call qword [0x1802400e0]
add rsp, 0x50
pop rbx
ret