Function at 0x180049d60
Capabilities:
Log keystrokes via polling

Disassembly:
mov r11, rsp
push rbp
lea rbp, [r11 - 0x118]
sub rsp, 0x210
movaps xmmword [r11 - 0x38], xmm6
movaps xmmword [r11 - 0x48], xmm7
movaps xmmword [r11 - 0x58], xmm8
movaps xmmword [r11 - 0xb8], xmm14
mov rax, qword [0x1800a6478]
xor rax, rsp
mov qword [rbp + 0x40], rax
mov qword [r11 + 8], rbx
mov qword [r11 + 0x18], rdi
mov qword [r11 - 0x10], r12
mov qword [r11 - 0x18], r13
call fcn.180055eb0
movss xmm14, dword [0x180086e4c]
xor r12d, r12d
test eax, eax
je 0x18004a875
mov rdi, qword [0x1800a7708]
lea edx, [r12 + 8]
mov ebx, r12d
lea rcx, [rdi + 0x4a0]
call qword [sym.imp.KERNEL32.dll_IsBadHugeReadPtr]
test eax, eax
jne 0x180049de7
mov rbx, qword [rdi + 0x4a0]
lea rax, [rbx - 0xffff]
mov qword [0x1800a7710], rbx
movabs r13, 0x7fffffff0000
cmp rax, r13
ja 0x18004a875
test bl, 7
jne 0x18004a875
mov edx, 4
lea rcx, [rbx + 0x15bc]
xorps xmm6, xmm6
call qword [sym.imp.KERNEL32.dll_IsBadHugeReadPtr]
test eax, eax
jne 0x180049e32
movss xmm6, dword [rbx + 0x15bc]
mov rbx, qword [0x1800a7710]
mov edx, recv
movss dword [0x1800a7930], xmm6
mov qword [rsp + 0x40], r12
mov dword [rsp + 0x48], r12d
lea rcx, [rbx + 0x15c4]
call qword [sym.imp.KERNEL32.dll_IsBadHugeReadPtr]
test eax, eax
jne 0x180049e71
movsd xmm0, qword [rbx + 0x15c4]
mov eax, dword [rbx + 0x15cc]
jmp 0x180049e7b
mov eax, dword [rsp + 0x48]
movsd xmm0, qword [rsp + 0x40]
mov rbx, qword [0x1800a7710]
mov edx, recv
movsd qword [0x1800a7918], xmm0
mov dword [0x1800a7920], eax
mov qword [rsp + 0x40], r12
lea rcx, [rbx + 0x15d4]
mov dword [rsp + 0x48], r12d
call qword [sym.imp.KERNEL32.dll_IsBadHugeReadPtr]
test eax, eax
jne 0x180049ec0
movsd xmm0, qword [rbx + 0x15d4]
mov eax, dword [rbx + 0x15dc]
jmp 0x180049eca
mov eax, dword [rsp + 0x48]
movsd xmm0, qword [rsp + 0x40]
movsd qword [0x1800a7924], xmm0
mov dword [0x1800a792c], eax
call fcn.1800562d0
test eax, eax
je 0x18004a875
call fcn.1800568d0
test eax, eax
je 0x18004a875
mov rax, qword [0x1800a77e8]
cmp rax, qword [0x1800a77f0]
mov qword [rsp + 0x1f0], r15
movaps xmmword [rsp + 0x150], xmm15
je 0x180049f1a
mov qword [0x1800a77f0], rax
mov rax, qword [0x1800a7850]
cmp rax, qword [0x1800a7858]
je 0x180049f31
mov qword [0x1800a7858], rax
cmp byte [0x1800a62b3], r12b
xorps xmm1, xmm1
movss dword [0x1800a7738], xmm1
mov dword [0x1800a7734], r12d
je 0x180049f91
mov rax, qword [0x1800a7888]
cmp rax, qword [0x1800a7890]
je 0x180049f63
mov qword [0x1800a7890], rax
mov rax, qword [0x1800a7820]
cmp rax, qword [0x1800a7828]
je 0x180049f7a
mov qword [0x1800a7828], rax
mov rax, qword [0x1800a7838]
cmp rax, qword [0x1800a7840]
je 0x180049f91
mov qword [0x1800a7840], rax
cmp byte [0x1800a62c3], r12b
movss xmm6, dword [0x18008e0d0]
movss xmm7, dword [0x180086e7c]
je 0x18004a01e
mov rcx, qword [0x1800a78e0]
add rcx, 0x1180
call fcn.180045c90
lea ecx, [rax - 1]
cmp ecx, 8
ja 0x18004a016
movups xmm0, xmmword [0x1800a63a0]
lea r8, [rbp - 0x80]
mov dword [rsp + 0x28], eax
movss xmm1, dword [0x1800a7294]
lea rax, str.__d_
movdqa xmmword [rbp - 0x80], xmm0
movaps xmm3, xmm7
movss xmm0, dword [0x1800a7288]
subss xmm0, dword [0x18008e104]
divss xmm1, xmm6
mov qword [rsp + 0x20], rax
movd r9d, xmm3
movd edx, xmm1
movd ecx, xmm0
call fcn.180055a40
movss xmm1, dword [0x1800a7738]
cmp dword [0x1800a76d4], r12d
mov r15d, r12d
movss xmm15, dword [0x180086e60]
jbe 0x18004a647
mov qword [rsp + 0x228], rsi
movaps xmmword [rsp + 0x190], xmm11
movss xmm11, dword [0x18008e0fc]
movaps xmmword [rsp + 0x180], xmm12
movss xmm12, dword [0x180086e84]
movaps xmmword [rsp + 0x170], xmm13
movss xmm13, dword [0x180086e78]
mov qword [rsp + 0x1f8], r14
movaps xmmword [rsp + 0x1b0], xmm9
movaps xmmword [rsp + 0x1a0], xmm10
nop
mov rax, qword [0x1800a7728]
mov edx, 8
mov ecx, r15d
lea rsi, [rax + rcx*8]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_IsBadHugeReadPtr]
test eax, eax
jne 0x18004a5ea
mov rsi, qword [rsi]
lea rax, [rsi - 0xffff]
cmp rax, r13
ja 0x18004a5ea
test sil, 7
jne 0x18004a5ea
mov edx, 4
lea rcx, [rsi + 0x1c]
mov ebx, r12d
call qword [sym.imp.KERNEL32.dll_IsBadHugeReadPtr]
test eax, eax
jne 0x18004a0ea
mov ebx, dword [rsi + 0x1c]
xor ebx, 0xf9cee029
mov ecx, ebx
shr ecx, 0x1d
lea eax, [rbx*8]
or ecx, eax
mov edx, ecx
shl edx, 0x10
xor edx, ecx
xor edx, 0xe719112a
lea eax, [rdx - 1]
cmp eax, 0xf423f
ja 0x18004a5ea
lea rcx, [rbp + 0x10]
call fcn.18004a9c0
mov edi, dword [rbp + 0x10]
test edi, edi
je 0x18004a5ea
mov edx, 8
lea rcx, [rsi + 0x3c8]
call qword [sym.imp.KERNEL32.dll_IsBadHugeReadPtr]
test eax, eax
jne 0x18004a5ea
mov rdx, qword [rsi + 0x3c8]
test rdx, rdx
je 0x18004a5ea
mov rax, qword [0x1800a72c0]
xor ecx, ecx
call qword [rax + 0x7fd1728]
mov r14, rax
lea rcx, [rax - 0xffff]
cmp rcx, r13
ja 0x18004a5ea
test r14b, 7
jne 0x18004a5ea
mov edx, recv
lea rcx, [rax + 0x2d0]
xorps xmm6, xmm6
xorps xmm8, xmm8
xorps xmm9, xmm9
call qword [sym.imp.KERNEL32.dll_IsBadHugeReadPtr]
test eax, eax
jne 0x18004a1d0
movsd xmm7, qword [r14 + 0x2d0]
mov ebx, dword [r14 + 0x2d8]
movaps xmm0, xmm7
shufps xmm0, xmm0, 0x55
movsd qword [rbp - 0x80], xmm7
movaps xmm8, xmm0
movss xmm6, dword [rbp - 0x80]
movd xmm9, ebx
jmp 0x18004a1dc
xorps xmm7, xmm7
movd ebx, xmm9
unpcklps xmm7, xmm8
subss xmm8, dword [0x1800a791c]
movaps xmm1, xmm14
movaps xmm0, xmm8
call fcn.180071010
subss xmm6, dword [0x1800a7918]
movaps xmm8, xmm0
movaps xmm1, xmm14
movaps xmm0, xmm6
call fcn.180071010
subss xmm9, dword [0x1800a7920]
addss xmm8, xmm0
movaps xmm1, xmm14
movaps xmm0, xmm9
call fcn.180071010
addss xmm8, xmm0
xorps xmm1, xmm1
ucomiss xmm1, xmm8
ja 0x18004a23d
xorps xmm6, xmm6
sqrtss xmm6, xmm8
jmp 0x18004a249
movaps xmm0, xmm8
call fcn.18006d364
movaps xmm6, xmm0
divss xmm6, xmm12
comiss xmm14, xmm6
jae 0x18004a5ea
comiss xmm6, dword [0x18008e144]
ja 0x18004a5ea
lea rdx, [rsp + 0x60]
movsd qword [rsp + 0x60], xmm7
lea rcx, [rsp + 0x50]
mov dword [rsp + 0x68], ebx
call fcn.180056c20
movups xmm9, xmmword [rbp + 0x20]
lea eax, [rdi - 1]
movsd xmm10, qword [rsp + 0x50]
movups xmm8, xmmword [rbp + 0x10]
cmp eax, 1
ja 0x18004a2d4
lea r9, [rsp + 0x70]
movsd qword [rsp + 0x70], xmm7
movaps xmm2, xmm6
mov dword [rsp + 0x78], ebx
lea rdx, [rbp + 0x10]
movaps xmmword [rbp + 0x10], xmm8
mov rcx, rsi
movaps xmmword [rbp + 0x20], xmm9
movsd qword [rsp + 0x20], xmm10
call fcn.180048a50
movaps xmm2, xmm6
mov rdx, r14
mov rcx, rsi
call fcn.180054cf0
cmp edi, 6
jne 0x18004a371
movdqa xmm0, xmm8
lea rdx, str.A
psrldq xmm0, 8
movq rbx, xmm0
mov rcx, rbx
call fcn.18006d420
test eax, eax
je 0x18004a34b
lea rdx, str.S
mov rcx, rbx
call fcn.18006d420
test eax, eax
je 0x18004a34b
lea rdx, str.T
mov rcx, rbx
call fcn.18006d420
test eax, eax
je 0x18004a34b
lea rdx, str.R
mov rcx, rbx
call fcn.18006d420
test eax, eax
je 0x18004a34b
lea rdx, str.C
mov rcx, rbx
call fcn.18006d420
test eax, eax
jne 0x18004a371
movq r9, xmm10
movaps xmmword [rbp + 0x10], xmm8
movaps xmm2, xmm6
movaps xmmword [rbp + 0x20], xmm9
lea rdx, [rbp + 0x10]
mov dword [rsp + 0x20], 1
mov rcx, rsi
call fcn.180049c40
cmp byte [0x1800a62b2], r12b
je 0x18004a4bc
cmp edi, 9
jne 0x18004a4bc
comiss xmm12, xmm6
jbe 0x18004a5ea
comiss xmm13, xmm6
jbe 0x18004a3a8
movaps xmm0, xmmword [0x18008e1b0]
lea rax, [rbp - 0x60]
movups xmmword [rbp - 0x60], xmm0
jmp 0x18004a3d2
comiss xmm11, xmm6
movaps xmm0, xmmword [0x18008e1c0]
jbe 0x18004a3bf
movups xmmword [rbp - 0x50], xmm0
lea rax, [rbp - 0x50]
jmp 0x18004a3c7
movups xmmword [rbp - 0x40], xmm0
lea rax, [rbp - 0x40]
movups xmm0, xmmword [rax]
lea rax, [rbp - 0x30]
movups xmmword [rbp - 0x30], xmm0
movups xmm0, xmmword [rax]
movss xmm7, dword [rsp + 0x50]
movss xmm8, dword [rsp + 0x54]
movups xmmword [rbp + 0x10], xmm0
movss dword [rsp + 0x40], xmm7
movss dword [rsp + 0x44], xmm8
call fcn.18000a6f0
lea rcx, [rbp + 0x10]
mov rbx, rax
call fcn.180007e70
mov r9d, eax
mov dword [rsp + 0x20], 0x64
movaps xmm2, xmm15
lea rdx, [rsp + 0x40]
mov rcx, rbx
call fcn.18001b670
comiss xmm13, xmm6
jbe 0x18004a437
movaps xmm0, xmmword [0x18008e1b0]
lea rax, [rbp - 0x20]
movups xmmword [rbp - 0x20], xmm0
jmp 0x18004a461
comiss xmm11, xmm6
movaps xmm0, xmmword [0x18008e1c0]
jbe 0x18004a44e
movups xmmword [rbp - 0x10], xmm0
lea rax, [rbp - 0x10]
jmp 0x18004a456
movups xmmword [rbp], xmm0
lea rax, [rbp]
movups xmm0, xmmword [rax]
lea rax, [rbp - 0x70]
movups xmmword [rbp - 0x70], xmm0
movups xmm2, xmmword [rax]
lea rax, str._.0fm
subss xmm8, dword [0x18008e0d0]
addss xmm7, dword [0x180086e6c]
xorps xmm3, xmm3
movaps xmmword [rbp + 0x10], xmm2
cvtss2sd xmm3, xmm6
lea r8, [rbp + 0x10]
movaps xmm1, xmm8
movaps xmm0, xmm7
movsd qword [rsp + 0x28], xmm3
movss xmm3, dword [0x18008e0d8]
movd r9d, xmm3
movd edx, xmm1
movd ecx, xmm0
mov qword [rsp + 0x20], rax
call fcn.180055a40
jmp 0x18004a5ea
cmp byte [0x1800a72a1], r12b
jne 0x18004a5ea
cmp edi, 6
jne 0x18004a4f6
movq r9, xmm10
movaps xmmword [rbp + 0x10], xmm8
movaps xmm2, xmm6
movaps xmmword [rbp + 0x20], xmm9
lea rdx, [rbp + 0x10]
mov dword [rsp + 0x20], r12d
mov rcx, rsi
call fcn.180049c40
jmp 0x18004a5ea
lea eax, [rdi - 0xc]
cmp eax, 1
ja 0x18004a51c
movq r9, xmm10
movaps xmmword [rbp + 0x10], xmm8
movaps xmm2, xmm6
movaps xmmword [rbp + 0x20], xmm9
lea rdx, [rbp + 0x10]
mov rcx, rsi
call fcn.180047500
cmp edi, 3
jne 0x18004a5c7
cmp byte [0x1800a62c5], r12b
je 0x18004a5ea
comiss xmm6, dword [0x180086e3c]
jb 0x18004a5ea
movss xmm0, dword [0x1800a62d4]
comiss xmm0, xmm6
jb 0x18004a5ea
lea edx, [rdi + 5]
lea rcx, [rsi + 0x430]
call qword [sym.imp.KERNEL32.dll_IsBadHugeReadPtr]
test eax, eax
jne 0x18004a5ea
mov rdx, qword [rsi + 0x430]
test rdx, rdx
je 0x18004a5ea
mov rax, qword [0x1800a72c0]
xor ecx, ecx
call qword [rax + 0x7fd1728]
lea rcx, [rax - 0xffff]
cmp rcx, r13
ja 0x18004a5ea
test al, 7
jne 0x18004a5ea
lea rcx, [rax + 0xa8]
call fcn.180045cf0
lea rcx, [rax + 0x248]
call fcn.180045c90
lea ecx, [rax - 1]
cmp ecx, 0xf423f
ja 0x18004a5ea
movaps xmm2, xmm6
movq rdx, xmm10
mov ecx, eax
call fcn.180047cc0
jmp 0x18004a5ea
cmp edi, 4
jne 0x18004a5ea
movq r9, xmm10
movaps xmmword [rbp + 0x10], xmm8
movaps xmm2, xmm6
movaps xmmword [rbp + 0x20], xmm9
lea rdx, [rbp + 0x10]
mov rcx, rsi
call fcn.180047740
inc r15d
cmp r15d, dword [0x1800a76d4]
jb 0x18004a090
movaps xmm13, xmmword [rsp + 0x170]
movaps xmm12, xmmword [rsp + 0x180]
movaps xmm11, xmmword [rsp + 0x190]
movaps xmm10, xmmword [rsp + 0x1a0]
movaps xmm9, xmmword [rsp + 0x1b0]
mov r14, qword [rsp + 0x1f8]
mov rsi, qword [rsp + 0x228]
movss xmm1, dword [0x1800a7738]
movss xmm7, dword [0x180086e7c]
cmp byte [0x1800a62c4], r12b
mov r15, qword [rsp + 0x1f0]
je 0x18004a711
comiss xmm1, xmm15
jbe 0x18004a711
cmp dword [0x1800a7734], r12d
jbe 0x18004a711
movss xmm2, dword [0x1800a62cc]
cvtps2pd xmm0, xmm2
cvtps2pd xmm3, xmm1
divsd xmm0, qword [0x18008e058]
comisd xmm3, xmm0
jbe 0x18004a698
lea rax, [0x1800a63d0]
jmp 0x18004a6b5
divss xmm2, dword [0x180086e54]
lea rax, [0x1800a63c0]
lea rcx, [0x1800a63b0]
comiss xmm1, xmm2
cmovbe rax, rcx
movups xmm0, xmmword [rax]
lea r8, [rbp - 0x70]
mov eax, dword [0x1800a7734]
movss xmm1, dword [0x1800a7294]
divss xmm1, dword [0x18008e0cc]
movsd qword [rsp + 0x30], xmm3
movaps xmm3, xmm7
movaps xmmword [rbp - 0x70], xmm0
movss xmm0, dword [0x1800a7288]
subss xmm0, dword [0x18008e110]
mov dword [rsp + 0x28], eax
lea rax, str.__d___.1f_
movd edx, xmm1
movd r9d, xmm3
mov qword [rsp + 0x20], rax
movd ecx, xmm0
call fcn.180055a40
cmp byte [0x1800a62b3], 1
movaps xmm15, xmmword [rsp + 0x150]
jne 0x18004a87c
cmp dword [0x1800a7730], 1
je 0x18004a87c
mov r8, qword [0x1800a7820]
mov rdx, qword [0x1800a7828]
sub rdx, r8
sar rdx, 2
test rdx, rdx
je 0x18004a86c
movss xmm1, dword [r8]
mov ecx, 1
mov ebx, r12d
cmp rdx, rcx
jbe 0x18004a794
mov eax, ecx
nop word [rax + rax]
movss xmm0, dword [r8 + rax*4]
movaps xmm2, xmm1
comiss xmm1, xmm0
jbe 0x18004a781
movaps xmm1, xmm0
mov eax, ecx
comiss xmm2, xmm0
cmovbe eax, ebx
inc ecx
mov ebx, eax
mov eax, ecx
cmp rax, rdx
jb 0x18004a770
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18004a86c
mov rax, qword [0x1800a7888]
mov r8d, ebx
mov rcx, qword [rax + r8*8]
mov rax, qword [0x1800a7838]
mov qword [0x1800a77a8], rcx
movss xmm0, dword [rax + r8*8]
subss xmm0, dword [0x1800a7288]
cvtps2pd xmm1, xmm0
movss xmm0, dword [0x1800a62b8]
mulsd xmm1, qword [0x18008e010]
cvtps2pd xmm0, xmm0
mulsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [rax + r8*8], xmm0
mov rax, qword [0x1800a7838]
movss xmm1, dword [0x1800a62b8]
cvtps2pd xmm1, xmm1
movss xmm0, dword [rax + r8*8 + 4]
subss xmm0, dword [0x1800a728c]
cvtps2pd xmm2, xmm0
mulsd xmm2, qword [0x18008e010]
mulsd xmm2, xmm1
cvtpd2ps xmm0, xmm2
movss dword [rax + r8*8 + 4], xmm0
mov rdx, qword [0x1800a7838]
mov dword [rbp + 0x10], r12d
cvttss2si eax, dword [rdx + r8*8]
mov dword [rbp + 0x18], eax
cvttss2si eax, dword [rdx + r8*8 + 4]
mov r8d, 0x28
mov dword [rbp + 0x24], 1
lea rdx, [rbp + 0x10]
lea ecx, [r8 - 0x27]
mov dword [rbp + 0x1c], eax
call qword [sym.imp.USER32.dll_SendInput]
jmp 0x18004a87c
mov qword [0x1800a77a8], r12
jmp 0x18004a87c
mov qword [0x1800a78e0], r12
cmp byte [0x1800a72a3], 0
mov r13, qword [rsp + 0x200]
mov r12, qword [rsp + 0x208]
mov rdi, qword [rsp + 0x230]
mov rbx, qword [rsp + 0x220]
je 0x18004a8f5
movss xmm8, dword [0x1800a62bc]
movss xmm7, dword [0x1800a728c]
movss xmm6, dword [0x1800a7288]
call fcn.18000a6f0
movss dword [rsp + 0x28], xmm14
lea rdx, [rsp + 0x40]
mov r9d, 0xffffffff
movss dword [rsp + 0x40], xmm6
movaps xmm2, xmm8
movss dword [rsp + 0x44], xmm7
mov rcx, rax
mov dword [rsp + 0x20], 0x64
call fcn.18001b580
mov rcx, qword [rbp + 0x40]
xor rcx, rsp
call fcn.180057710
lea r11, [rsp + 0x210]
movaps xmm6, xmmword [r11 - 0x30]
movaps xmm7, xmmword [r11 - 0x40]
movaps xmm8, xmmword [r11 - 0x50]
movaps xmm14, xmmword [r11 - 0xb0]
mov rsp, r11
pop rbp
ret