Function at 0x180003040
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], rbx
push rsi
push rdi
push r14
sub rsp, 0xf0
mov rbx, qword [rsp + 0x130]
mov rsi, rcx
movaps xmmword [rax - 0x28], xmm6
lea rcx, [rsp + 0x40]
movaps xmmword [rax - 0x38], xmm7
movaps xmm7, xmm1
movaps xmmword [rax - 0x48], xmm8
movaps xmm8, xmm3
movaps xmmword [rax - 0x68], xmm10
lea r14, [rbx + 0x50]
movaps xmmword [rax - 0x78], xmm11
mov rdx, r14
movaps xmmword [rsp + 0x60], xmm14
movaps xmm10, xmm2
movaps xmmword [rax - 0x58], xmm9
movaps xmmword [rax - 0x88], xmm12
movaps xmmword [rsp + 0x70], xmm13
call fcn.180001950
mov rdx, rax
mov rcx, rbx
call fcn.180005a40
mov rcx, qword [rsi]
xor edi, edi
movss xmm11, dword [0x180013038]
movaps xmm3, xmm8
mov dword [rsp + 0x30], edi
movaps xmm2, xmm10
movd xmm0, eax
movaps xmm1, xmm7
mov eax, dword [0x180016010]
mov rdx, qword [rcx]
cvtdq2ps xmm0, xmm0
mov dword [rsp + 0x28], eax
movaps xmm6, xmm0
mulss xmm0, xmm11
mulss xmm6, dword [0x18001305c]
addss xmm6, dword [0x18001305c]
addss xmm6, xmm0
movss dword [rsp + 0x20], xmm6
call qword [rdx + 0x50]
mov eax, dword [0x180016014]
movaps xmm3, xmm8
mov dword [rsp + 0x28], eax
movaps xmm2, xmm10
movaps xmm1, xmm7
movss dword [rsp + 0x20], xmm6
mov rcx, rsi
call fcn.18000ecc0
movaps xmm3, xmm8
mov byte [rsp + 0x28], dil
movaps xmm2, xmm10
movss dword [rsp + 0x20], xmm6
movaps xmm1, xmm7
mov rcx, rsi
call fcn.180003a20
cmp qword [rbx + 0x18], 8
mov rax, rbx
jb 0x180003158
mov rax, qword [rbx]
movss xmm13, dword [0x18001304c]
movaps xmm9, xmm10
addss xmm9, dword [0x180013044]
mov rcx, qword [rsi]
movaps xmm1, xmm7
addss xmm1, dword [0x180013040]
mov qword [rsp + 0x30], rax
movaps xmm3, xmm13
mov dword [rsp + 0x118], 0xffbfbfbf
mov eax, dword [rsp + 0x118]
movaps xmm12, xmm9
subss xmm12, dword [0x18001303c]
movd r9d, xmm3
movd edx, xmm1
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x120], r15
movaps xmm2, xmm12
mov dword [rsp + 0x20], eax
movd r8d, xmm2
call fcn.180003d60
mov ecx, dword [rbx + 0x20]
movss xmm14, dword [0x180013050]
sub ecx, 1
je 0x1800037f2
sub ecx, 2
je 0x180003613
sub ecx, 1
je 0x18000340e
cmp ecx, 2
jne 0x180003941
movzx ecx, byte [rbx + 0x4a]
lea r15, [rbx + 0x28]
test cl, cl
je 0x180003210
mov rax, qword [rbx + 0x30]
mov edx, dword [rax]
jmp 0x180003213
mov edx, dword [r15]
mov r8, qword [rbx + 0x40]
cmp dword [r8], edx
jle 0x18000322e
test cl, cl
je 0x180003226
mov rax, qword [rbx + 0x30]
jmp 0x180003229
mov rax, r15
mov eax, dword [rax]
mov dword [r8], eax
mov rax, qword [rbx + 0x40]
mov ecx, dword [rbx + 0x24]
cmp dword [rax], ecx
jge 0x18000323b
mov dword [rax], ecx
mov rcx, qword [rbx + 0x40]
mov eax, dword [rbx + 0x24]
movss xmm9, dword [0x180013020]
movss xmm11, dword [0x180012ff4]
cmp dword [rcx], eax
jle 0x1800032a4
movaps xmm1, xmm7
movaps xmm0, xmm6
addss xmm1, xmm8
movaps xmm2, xmm10
subss xmm0, xmm9
movaps xmm3, xmm14
addss xmm2, xmm11
mov rcx, rsi
subss xmm1, dword [0x180013090]
movss dword [rsp + 0x20], xmm0
call fcn.18000f040
test al, al
je 0x1800032a4
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x1800032a4
mov rax, qword [rbx + 0x40]
dec dword [rax]
cmp byte [rbx + 0x4a], dil
je 0x1800032ae
mov r15, qword [rbx + 0x30]
mov rcx, qword [rbx + 0x40]
mov eax, dword [r15]
cmp dword [rcx], eax
jge 0x180003302
movaps xmm1, xmm7
subss xmm6, xmm9
addss xmm1, xmm8
movaps xmm2, xmm10
addss xmm2, xmm11
movaps xmm3, xmm14
mov rcx, rsi
movss dword [rsp + 0x20], xmm6
subss xmm1, dword [0x180013060]
call fcn.18000f040
test al, al
je 0x180003302
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x180003302
mov rax, qword [rbx + 0x40]
inc dword [rax]
mov rcx, qword [rsi]
lea rax, [0x180011380]
mov qword [rsp + 0x30], rax
movaps xmm6, xmm7
addss xmm6, xmm8
mov dword [rsp + 0x118], 0xffbfbfbf
mov eax, dword [rsp + 0x118]
movaps xmm3, xmm13
movaps xmm2, xmm12
movd r9d, xmm3
movd r8d, xmm2
mov dword [rsp + 0x28], 2
movaps xmm1, xmm6
mov dword [rsp + 0x20], eax
subss xmm1, dword [0x18001308c]
movd edx, xmm1
call fcn.180003d60
subss xmm6, dword [0x18001306c]
mov rcx, qword [rsi]
lea rax, [0x180011388]
mov qword [rsp + 0x30], rax
movaps xmm3, xmm13
movaps xmm2, xmm12
mov dword [rsp + 0x118], 0xffbfbfbf
mov eax, dword [rsp + 0x118]
movaps xmm1, xmm6
movd r9d, xmm3
movd edx, xmm1
movd r8d, xmm2
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], eax
call fcn.180003d60
mov rax, qword [rbx + 0x40]
movaps xmm3, xmm13
subss xmm6, dword [0x180013078]
mov rcx, qword [rsi]
movaps xmm2, xmm12
mov qword [rsp + 0x38], rax
lea rax, [0x180011390]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x118], 0xffbfbfbf
mov eax, dword [rsp + 0x118]
movaps xmm1, xmm6
movd edx, xmm1
movd r9d, xmm3
movd r8d, xmm2
mov dword [rsp + 0x28], 0xc
mov dword [rsp + 0x20], eax
call fcn.180003d60
jmp 0x180003938
addss xmm7, dword [0x18001307c]
addss xmm8, dword [0x1800130d0]
lea rcx, [rsp + 0x130]
mov qword [rsp + 0x110], rbp
call qword [sym.imp.USER32.dll_GetCursorPos]
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov rcx, rax
lea rdx, [rsp + 0x130]
call qword [sym.imp.USER32.dll_ScreenToClient]
mov rcx, qword [rsi]
movaps xmm3, xmm8
mov dword [rsp + 0x30], edi
movaps xmm2, xmm10
mov dword [rsp + 0x28], 0xff10232e
movaps xmm1, xmm7
movss dword [rsp + 0x20], xmm6
mov rax, qword [rcx]
call qword [rax + 0x50]
mov rax, qword [rbx + 0x40]
mov ecx, dword [rbx + 0x28]
cmp dword [rax], ecx
jle 0x18000347f
mov dword [rax], ecx
mov rax, qword [rbx + 0x40]
mov ecx, dword [rbx + 0x24]
cmp dword [rax], ecx
jge 0x18000348c
mov dword [rax], ecx
mov rax, qword [rbx + 0x40]
movd xmm2, dword [rsp + 0x130]
cvtdq2ps xmm2, xmm2
mov ecx, dword [rax]
sub ecx, dword [rbx + 0x24]
mov eax, dword [rbx + 0x28]
sub eax, dword [rbx + 0x24]
comiss xmm2, xmm7
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm1, xmm8
divss xmm1, xmm0
cvttss2si ebp, xmm1
jb 0x18000353f
movaps xmm0, xmm7
addss xmm0, xmm8
comiss xmm0, xmm2
jb 0x18000353f
movd xmm1, dword [rsp + 0x134]
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm10
jb 0x18000353f
movaps xmm0, xmm10
addss xmm0, dword [0x180013064]
comiss xmm0, xmm1
jb 0x18000353f
mov ecx, 1
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x18000353f
mov eax, dword [rbx + 0x28]
sub eax, dword [rbx + 0x24]
movd xmm1, dword [rsp + 0x130]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
mov rax, qword [rbx + 0x40]
subss xmm1, xmm7
cvtdq2ps xmm0, xmm0
mulss xmm1, xmm0
divss xmm1, xmm8
addss xmm1, dword [0x180012ff4]
cvttss2si ecx, xmm1
mov dword [rax], ecx
mov rcx, qword [rsi]
movaps xmm2, xmm10
movss xmm6, dword [0x180013068]
movaps xmm1, xmm7
movd xmm3, ebp
mov dword [rsp + 0x30], edi
mov rax, qword [rcx]
cvtdq2ps xmm3, xmm3
mov dword [rsp + 0x28], 0xff20bfd4
movss dword [rsp + 0x20], xmm6
call qword [rax + 0x50]
mov eax, dword [0x180016014]
movaps xmm3, xmm8
mov dword [rsp + 0x28], eax
movaps xmm2, xmm10
movaps xmm1, xmm7
movss dword [rsp + 0x20], xmm6
mov rcx, rsi
call fcn.18000ecc0
mov rax, qword [rbx + 0x40]
movaps xmm1, xmm8
mulss xmm1, dword [0x180012ff0]
movaps xmm3, xmm13
mov rcx, qword [rsi]
movaps xmm2, xmm9
mov dword [rsp + 0x118], 0xffbfbfbf
mov eax, dword [rax]
mov dword [rsp + 0x38], eax
addss xmm1, xmm7
lea rax, [0x180011390]
movd r9d, xmm3
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x118]
movd r8d, xmm2
movd edx, xmm1
mov dword [rsp + 0x28], 0xc
mov dword [rsp + 0x20], eax
call fcn.180003d60
addss xmm7, dword [0x1800130cc]
addss xmm8, dword [0x180013080]
mov rbp, qword [rsp + 0x110]
jmp 0x180003941
mov rax, qword [rbx + 0x40]
movss xmm11, dword [0x180013020]
movss xmm12, dword [0x180012ff4]
cmp dword [rax], edi
jle 0x180003679
movaps xmm1, xmm7
movaps xmm0, xmm6
addss xmm1, xmm8
movaps xmm2, xmm10
subss xmm0, xmm11
movaps xmm3, xmm14
addss xmm2, xmm12
mov rcx, rsi
subss xmm1, dword [0x180013090]
movss dword [rsp + 0x20], xmm0
call fcn.18000f040
test al, al
je 0x180003679
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x180003679
mov rax, qword [rbx + 0x40]
dec dword [rax]
mov rdx, qword [rbx + 0x70]
sub rdx, qword [rbx + 0x68]
mov rax, qword [rbx + 0x40]
sar rdx, 5
dec rdx
movsxd rcx, dword [rax]
cmp rcx, rdx
jae 0x1800036dd
movaps xmm1, xmm7
subss xmm6, xmm11
addss xmm1, xmm8
movaps xmm2, xmm10
addss xmm2, xmm12
movaps xmm3, xmm14
mov rcx, rsi
movss dword [rsp + 0x20], xmm6
subss xmm1, dword [0x180013060]
call fcn.18000f040
test al, al
je 0x1800036dd
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x1800036dd
mov rax, qword [rbx + 0x40]
inc dword [rax]
mov rcx, qword [rsi]
lea rax, [0x180011380]
mov qword [rsp + 0x30], rax
movaps xmm6, xmm7
addss xmm6, xmm8
mov dword [rsp + 0x118], 0xffbfbfbf
mov eax, dword [rsp + 0x118]
movaps xmm3, xmm13
movaps xmm2, xmm9
movd r9d, xmm3
movd r8d, xmm2
mov dword [rsp + 0x28], 2
movaps xmm1, xmm6
mov dword [rsp + 0x20], eax
subss xmm1, dword [0x18001308c]
movd edx, xmm1
call fcn.180003d60
subss xmm6, dword [0x18001306c]
mov rcx, qword [rsi]
lea rax, [0x180011388]
mov qword [rsp + 0x30], rax
movaps xmm3, xmm13
movaps xmm2, xmm9
mov dword [rsp + 0x118], 0xffbfbfbf
mov eax, dword [rsp + 0x118]
movaps xmm1, xmm6
movd r9d, xmm3
movd edx, xmm1
movd r8d, xmm2
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], eax
call fcn.180003d60
mov rax, qword [rbx + 0x40]
movsxd rcx, dword [rax]
shl rcx, 5
add rcx, qword [rbx + 0x68]
cmp qword [rcx + 0x18], 8
jb 0x1800037a1
mov rcx, qword [rcx]
subss xmm6, dword [0x180013078]
mov qword [rsp + 0x30], rcx
movaps xmm3, xmm13
mov rcx, qword [rsi]
movaps xmm2, xmm9
mov dword [rsp + 0x118], 0xffbfbfbf
mov eax, dword [rsp + 0x118]
movaps xmm1, xmm6
movd r9d, xmm3
movd edx, xmm1
movd r8d, xmm2
mov dword [rsp + 0x28], 0xc
mov dword [rsp + 0x20], eax
call fcn.180003d60
jmp 0x180003938
movss xmm13, dword [0x180013088]
movaps xmm9, xmm7
mov eax, dword [0x180016014]
addss xmm9, xmm8
movss xmm12, dword [0x180013054]
movaps xmm6, xmm10
addss xmm6, dword [0x180013020]
mov dword [rsp + 0x28], eax
movaps xmm3, xmm13
mov rcx, rsi
movss dword [rsp + 0x20], xmm12
subss xmm9, xmm13
movaps xmm11, xmm6
addss xmm11, dword [0x180013020]
subss xmm9, dword [0x180013040]
movaps xmm2, xmm11
movaps xmm1, xmm9
call fcn.18000ecc0
mov r15, qword [rbx + 0x40]
movaps xmm3, xmm13
movaps xmm2, xmm6
movss dword [rsp + 0x20], xmm12
movaps xmm1, xmm9
mov rcx, rsi
call fcn.18000f040
test al, al
je 0x180003895
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x180003895
cmp dword [r15], edi
mov eax, edi
sete al
mov dword [r15], eax
mov rcx, qword [rsi]
movaps xmm3, xmm13
mov dword [rsp + 0x30], edi
movaps xmm2, xmm11
mov dword [rsp + 0x28], 0xff10232e
movaps xmm1, xmm9
movss dword [rsp + 0x20], xmm12
mov rax, qword [rcx]
call qword [rax + 0x50]
mov ecx, dword [r15]
test ecx, ecx
je 0x1800038e7
cmp ecx, 1
jne 0x180003913
movss xmm3, dword [0x180013074]
movaps xmm1, xmm9
mov dword [rsp + 0x30], edi
addss xmm1, xmm3
mov dword [rsp + 0x28], 0xff47c3b8
jmp 0x1800038ff
movss xmm3, dword [0x180013074]
movaps xmm1, xmm9
mov dword [rsp + 0x30], edi
mov dword [rsp + 0x28], 0xff838b98
mov rcx, qword [rsi]
movaps xmm2, xmm11
movss dword [rsp + 0x20], xmm12
mov rax, qword [rcx]
call qword [rax + 0x50]
mov eax, dword [0x180016014]
movaps xmm3, xmm13
mov dword [rsp + 0x28], eax
movaps xmm2, xmm11
movaps xmm1, xmm9
movss dword [rsp + 0x20], xmm12
mov rcx, rsi
call fcn.18000ecc0
movss xmm11, dword [0x180013038]
cmp dword [rbx + 0x20], 1
movaps xmm6, xmm10
addss xmm6, dword [0x18001305c]
movaps xmm13, xmmword [rsp + 0x70]
movaps xmm12, xmmword [rsp + 0x80]
movaps xmm9, xmmword [rsp + 0xb0]
mov r15, qword [rsp + 0x120]
jne 0x18000397b
mov rax, qword [rbx + 0x40]
cmp dword [rax], edi
jle 0x1800039db
mov rdx, qword [r14]
mov rax, qword [r14 + 8]
sub rax, rdx
sar rax, 3
test rax, rax
je 0x1800039db
addss xmm7, dword [0x180013040]
subss xmm8, xmm14
mov rbx, rdi
nop
mov rax, qword [rbx + rdx]
movaps xmm3, xmm8
movaps xmm2, xmm6
mov qword [rsp + 0x20], rax
movaps xmm1, xmm7
mov rcx, rsi
call fcn.180003040
mov rdx, qword [r14]
addss xmm6, xmm0
mov rcx, qword [r14 + 8]
inc edi
sub rcx, rdx
movsxd rax, edi
sar rcx, 3
add rbx, 8
cmp rax, rcx
jb 0x1800039a0
movaps xmm14, xmmword [rsp + 0x60]
lea r11, [rsp + 0xf0]
mov rbx, qword [r11 + 0x38]
subss xmm6, xmm10
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm10, xmmword [r11 - 0x50]
addss xmm6, xmm11
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm0, xmm6
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop r14
pop rdi
pop rsi
ret