Function at 0x180054cf0
Capabilities:
Log keystrokes via polling

Disassembly:
push rbp
push rsi
lea rbp, [rsp - 0xa8]
sub rsp, 0x1a8
movaps xmmword [rsp + 0xf0], xmm15
mov rax, qword [0x1800a6478]
xor rax, rsp
mov qword [rbp - 0x18], rax
cmp byte [0x1800a62b3], 0
movaps xmm15, xmm2
mov rsi, rcx
mov qword [rbp - 0x20], rcx
je 0x18005552b
cmp dword [0x1800a7730], 1
je 0x18005552b
cmp dword [0x1800a7740], 0
je 0x18005552b
cmp qword [0x1800a7900], 0
jne 0x18005552b
movaps xmmword [rsp + 0x180], xmm6
add rcx, 0x878
movaps xmmword [rsp + 0x120], xmm12
call fcn.180045cc0
lea rcx, [rsi + 0x124c]
movaps xmm6, xmm0
call fcn.180045cc0
addss xmm0, xmm6
xorps xmm12, xmm12
comiss xmm12, xmm0
jae 0x18005551a
comiss xmm0, dword [0x18008e114]
ja 0x18005551a
comiss xmm12, xmm6
movaps xmmword [rsp + 0x170], xmm7
movss xmm7, dword [0x180086e84]
jae 0x180054dbf
comiss xmm6, xmm7
jbe 0x180054dd3
mov ecx, send
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180055512
lea rcx, [rsi + 0xf20]
call fcn.180045c90
mov r8d, eax
mov eax, 0xd1b71759
mul r8d
shr edx, 0xd
imul ecx, edx, 0x2710
sub r8d, ecx
mov eax, r8d
cmp rax, qword [0x1800a78f8]
jne 0x180054e0f
cmp byte [0x1800a72a4], 0
je 0x180055512
lea rcx, [rsi + 0x540]
mov qword [rsp + 0x198], r14
call fcn.180045cf0
mov r14, rax
lea rcx, [rax - 0xffff]
movabs rax, 0x7fffffff0000
cmp rcx, rax
ja 0x18005550a
test r14b, 7
jne 0x18005550a
cmp r14, qword [0x1800a78f0]
je 0x18005550a
mov qword [rsp + 0x1c8], rbx
lea rcx, [r14 + 0x79c]
mov qword [rsp + 0x1d8], r12
mov qword [rsp + 0x190], r15
mov qword [rsp + 0x1d0], rdi
call fcn.180045c90
mov rcx, qword [0x1800a78f0]
add rcx, 0x79c
call fcn.180045c90
lea rcx, [rsi + 0x1d08]
xor r12d, r12d
call fcn.180045cf0
lea rcx, [rsi + 0x4e0]
mov r15, rax
call fcn.180045cf0
test rax, rax
je 0x180054ed1
mov r8, qword [0x1800a72c0]
mov rdx, rax
xor ecx, ecx
call qword [r8 + 0x7fd1728]
mov rdi, rax
jmp 0x180054ed4
mov rdi, r12
mov edx, 4
mov qword [rsp + 0x1a0], r13
lea rcx, [r15 + 0x220]
call qword [sym.imp.KERNEL32.dll_IsBadHugeReadPtr]
test eax, eax
jne 0x180054f7f
cmp dword [r15 + 0x220], 0xffffffff
jne 0x180054f7f
lea edx, [rax + 0xc]
mov qword [rsp + 0x20], r12
lea rcx, [rdi + 0x3c0]
mov dword [rsp + 0x28], r12d
call qword [sym.imp.KERNEL32.dll_IsBadHugeReadPtr]
test eax, eax
jne 0x180054f36
movsd xmm0, qword [rdi + 0x3c0]
mov eax, dword [rdi + 0x3c8]
movsd qword [rsp + 0x20], xmm0
mov dword [rsp + 0x28], eax
lea r13, [rsp + 0x20]
mov edx, recv
movsd xmm0, qword [r13]
lea rcx, [rdi + 0x398]
mov r13d, dword [r13 + 8]
movsd qword [rsp + 0x48], xmm0
mov qword [rsp + 0x20], r12
mov dword [rsp + 0x28], r12d
call qword [sym.imp.KERNEL32.dll_IsBadHugeReadPtr]
test eax, eax
jne 0x180055005
movsd xmm0, qword [rdi + 0x398]
mov eax, dword [rdi + 0x3a0]
jmp 0x180054ffb
lea rcx, [r15 + 0x260]
call fcn.180045cf0
mov edx, recv
mov qword [rsp + 0x20], r12
mov rbx, rax
mov dword [rsp + 0x28], r12d
lea rcx, [rax + 0x68]
call qword [sym.imp.KERNEL32.dll_IsBadHugeReadPtr]
test eax, eax
jne 0x180054fb6
movsd xmm0, qword [rbx + 0x68]
mov r13d, dword [rbx + 0x70]
jmp 0x180054fc1
mov r13d, dword [rsp + 0x28]
movsd xmm0, qword [rsp + 0x20]
lea rcx, [r15 + 0x260]
movsd qword [rsp + 0x48], xmm0
call fcn.180045cf0
mov edx, recv
mov qword [rsp + 0x20], r12
mov rbx, rax
mov dword [rsp + 0x28], r12d
lea rcx, [rax + 0x40]
call qword [sym.imp.KERNEL32.dll_IsBadHugeReadPtr]
test eax, eax
jne 0x180055005
movsd xmm0, qword [rbx + 0x40]
mov eax, dword [rbx + 0x48]
movsd qword [rsp + 0x20], xmm0
mov dword [rsp + 0x28], eax
lea rax, [rsp + 0x20]
mov ecx, reloc.WS2_32.dll_recv
movsd xmm0, qword [rax]
mov ebx, dword [rax + 8]
movsd qword [rbp - 0x80], xmm0
mov dword [rsp + 0x30], ebx
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18005503a
mov r8d, send
lea rcx, [rsp + 0x60]
jmp 0x180055111
cmp byte [0x1800a62b4], r12b
je 0x180055107
lea rbx, [0x1800a62f0]
nop
mov r8d, dword [rbx]
lea rcx, [rbp - 0x70]
mov rdx, r14
call fcn.18004ca60
mov rdi, qword [0x1800a7710]
mov edx, recv
mov qword [rsp + 0x20], r12
mov dword [rsp + 0x28], r12d
movsd xmm0, qword [rax]
mov r15d, dword [rax + 8]
lea rcx, [rdi + 0x15c4]
movsd qword [rsp + 0x38], xmm0
movsd qword [rsp + 0x70], xmm0
mov dword [rsp + 0x78], r15d
call qword [sym.imp.KERNEL32.dll_IsBadHugeReadPtr]
test eax, eax
jne 0x1800550b5
movsd xmm0, qword [rdi + 0x15c4]
mov eax, dword [rdi + 0x15cc]
movsd qword [rsp + 0x20], xmm0
jmp 0x1800550bf
mov eax, dword [rsp + 0x28]
movsd xmm0, qword [rsp + 0x20]
lea rdx, [rsp + 0x70]
movsd qword [rsp + 0x60], xmm0
lea rcx, [rsp + 0x60]
mov dword [rsp + 0x68], eax
call fcn.180054280
test al, al
jne 0x1800550f2
add rbx, 4
lea rax, [0x1800a6360]
cmp rbx, rax
jl 0x180055050
jmp 0x1800550f8
mov r12d, 1
test r12d, r12d
je 0x1800554e2
mov ebx, dword [rsp + 0x30]
jmp 0x180055127
mov r8d, 4
lea rcx, [rbp - 0x70]
mov rdx, r14
call fcn.18004ca60
movsd xmm0, qword [rax]
mov r15d, dword [rax + 8]
movsd qword [rsp + 0x38], xmm0
comiss xmm7, xmm15
movaps xmmword [rsp + 0x160], xmm8
movaps xmmword [rsp + 0x150], xmm9
movaps xmmword [rsp + 0x140], xmm10
movaps xmmword [rsp + 0x130], xmm11
movaps xmmword [rsp + 0x110], xmm13
movaps xmm13, xmm15
divss xmm13, dword [0x1800a7754]
movaps xmmword [rsp + 0x100], xmm14
jb 0x180055176
movaps xmm14, xmm12
jmp 0x1800551a1
movaps xmm0, xmm15
call fcn.18004ad20
movaps xmm1, xmm13
movaps xmm14, xmm0
mulss xmm1, dword [0x18008e0c8]
mulss xmm1, xmm13
mulss xmm1, dword [0x18008e100]
mulss xmm14, xmm1
lea r8, [rsp + 0x20]
mov qword [rsp + 0x20], 0
lea rdx, [rbp - 0x60]
mov dword [rsp + 0x28], 0
lea rcx, [0x1800a7944]
call fcn.1800543c0
movss xmm11, dword [0x180086e4c]
movaps xmm0, xmm13
movaps xmm1, xmm11
call fcn.180071010
movss xmm1, dword [rbp - 0x80]
movaps xmm10, xmm0
movss xmm6, dword [0x180086e14]
movaps xmm0, xmm13
movss xmm7, dword [0x18008e020]
mulss xmm1, xmm6
mulss xmm10, xmm1
movss xmm1, dword [rsp + 0x48]
mulss xmm1, xmm13
addss xmm10, xmm12
mulss xmm1, xmm7
addss xmm10, xmm1
movaps xmm1, xmm11
addss xmm10, dword [rsp + 0x38]
subss xmm10, dword [0x1800a7938]
call fcn.180071010
movss xmm1, dword [rbp - 0x7c]
movaps xmm9, xmm0
mulss xmm1, xmm6
movaps xmm0, xmm13
mulss xmm9, xmm1
movss xmm1, dword [rsp + 0x4c]
mulss xmm1, xmm13
addss xmm9, xmm12
mulss xmm1, xmm7
addss xmm9, xmm1
movaps xmm1, xmm11
addss xmm9, dword [rsp + 0x3c]
subss xmm9, dword [0x1800a793c]
call fcn.180071010
movaps xmm8, xmm0
movd xmm1, ebx
mulss xmm1, xmm6
addss xmm14, xmm12
movss xmm6, dword [0x180086e3c]
movaps xmm2, xmm9
mulss xmm2, dword [rbp - 0x5c]
mulss xmm8, xmm1
movd xmm1, r13d
mulss xmm1, xmm13
addss xmm8, xmm14
movd xmm0, r15d
mulss xmm1, xmm7
addss xmm8, xmm1
addss xmm8, xmm0
movaps xmm0, xmm10
mulss xmm0, dword [rbp - 0x60]
subss xmm8, dword [0x1800a7940]
addss xmm2, xmm0
movss xmm0, dword [0x1800a7950]
cvtps2pd xmm0, xmm0
movaps xmm1, xmm8
mulsd xmm0, qword [0x18008e070]
mulss xmm1, dword [rbp - 0x58]
divsd xmm0, qword [0x18008e0c0]
addss xmm2, xmm1
cvtpd2ps xmm0, xmm0
maxss xmm6, xmm2
call fcn.180072300
movss xmm7, dword [0x1800a7288]
movaps xmm13, xmm9
mulss xmm13, dword [rbp - 0x4c]
movaps xmm2, xmm7
divss xmm2, xmm0
movaps xmm0, xmm10
movaps xmm1, xmm8
mulss xmm0, dword [rbp - 0x50]
mulss xmm1, dword [rbp - 0x48]
addss xmm13, xmm0
addss xmm13, xmm1
mulss xmm13, xmm2
mulss xmm9, dword [rbp - 0x3c]
movaps xmm1, xmm11
mulss xmm8, dword [rbp - 0x38]
mulss xmm10, dword [rbp - 0x40]
divss xmm13, xmm6
addss xmm9, xmm10
addss xmm13, xmm7
addss xmm9, xmm8
movss dword [rsp + 0x20], xmm13
mulss xmm9, xmm2
movss xmm2, dword [0x1800a728c]
movaps xmm8, xmm2
divss xmm9, xmm6
subss xmm8, xmm9
movaps xmm0, xmm8
movss dword [rsp + 0x24], xmm8
subss xmm0, xmm2
call fcn.180071010
movaps xmm6, xmm0
movaps xmm1, xmm11
movaps xmm0, xmm13
subss xmm0, xmm7
call fcn.180071010
movaps xmm14, xmmword [rsp + 0x100]
addss xmm6, xmm0
movaps xmm11, xmmword [rsp + 0x130]
xorps xmm1, xmm1
movaps xmm10, xmmword [rsp + 0x140]
movaps xmm9, xmmword [rsp + 0x150]
ucomiss xmm1, xmm6
ja 0x1800553f5
sqrtss xmm6, xmm6
jmp 0x180055400
movaps xmm0, xmm6
call fcn.18006d364
movaps xmm6, xmm0
cmp qword [0x1800a77a8], rsi
je 0x18005541a
movss xmm1, dword [0x1800a62bc]
comiss xmm1, xmm6
jb 0x1800554d0
mov rdx, qword [0x1800a7890]
cmp rdx, qword [0x1800a7898]
je 0x180055437
mov qword [rdx], rsi
add qword [0x1800a7890], 8
jmp 0x180055447
lea r8, [rbp - 0x20]
lea rcx, [0x1800a7888]
call fcn.1800461c0
cmp qword [0x1800a77a8], rsi
je 0x180055462
movaps xmm12, xmm6
mulss xmm12, dword [0x180086e6c]
addss xmm12, xmm15
mov rdx, qword [0x1800a7828]
cmp rdx, qword [0x1800a7830]
movss dword [rsp + 0x30], xmm12
je 0x180055488
movss dword [rdx], xmm12
add qword [0x1800a7828], 4
jmp 0x180055499
lea r8, [rsp + 0x30]
lea rcx, [0x1800a7820]
call fcn.180046380
mov rdx, qword [0x1800a7840]
cmp rdx, qword [0x1800a7848]
je 0x1800554bf
movaps xmm0, xmm13
unpcklps xmm0, xmm8
movsd qword [rdx], xmm0
add qword [0x1800a7840], 8
jmp 0x1800554d0
lea r8, [rsp + 0x20]
lea rcx, [0x1800a7838]
call fcn.180045dd0
movaps xmm8, xmmword [rsp + 0x160]
movaps xmm13, xmmword [rsp + 0x110]
mov r13, qword [rsp + 0x1a0]
mov rdi, qword [rsp + 0x1d0]
mov r15, qword [rsp + 0x190]
mov r12, qword [rsp + 0x1d8]
mov rbx, qword [rsp + 0x1c8]
mov r14, qword [rsp + 0x198]
movaps xmm7, xmmword [rsp + 0x170]
movaps xmm6, xmmword [rsp + 0x180]
movaps xmm12, xmmword [rsp + 0x120]
mov rcx, qword [rbp - 0x18]
xor rcx, rsp
call fcn.180057710
movaps xmm15, xmmword [rsp + 0xf0]
add rsp, 0x1a8
pop rsi
pop rbp
ret