Function at 0x14003ce60
Capabilities:
Log keystrokes via polling

Disassembly:
push rbp
push rsi
push rdi
push r14
lea rbp, [rsp - 0x48]
sub rsp, 0x148
movaps xmmword [rsp + 0xd0], xmm12
movaps xmmword [rsp + 0xc0], xmm13
mov rax, qword [0x140050340]
xor rax, rsp
mov qword [rbp - 0x70], rax
mov rdx, qword [0x1400504f0]
lea r8, [rsp + 0x70]
mov rcx, qword [0x1400504e8]
xor r14d, r14d
add rdx, 0x3e098a8
mov qword [rsp + 0x20], r14
lea r9d, [r14 + 8]
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov rdx, qword [rsp + 0x70]
lea r9d, [r14 + 0x40]
mov rcx, qword [0x1400504e8]
lea r8, [rsp + 0x30]
add rdx, 0x7e0
mov qword [rsp + 0x20], r14
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov rax, qword [0x140050608]
mov edi, r14d
sub rax, qword [0x140050600]
mov esi, r14d
movss xmm13, dword [0x140043f70]
sar rax, 3
movaps xmm12, xmm13
test rax, rax
je 0x14003d645
mov qword [rsp + 0x170], rbx
mov ebx, r14d
mov qword [rsp + 0x178], r12
lea r12, str.VK_TAB
mov qword [rsp + 0x180], r13
lea r13, str.VK_SHIFT
mov qword [rsp + 0x140], r15
lea r15, str.VK_RBUTTON
movaps xmmword [rsp + 0x130], xmm6
movsd xmm6, qword [0x140048418]
movaps xmmword [rsp + 0x120], xmm7
movaps xmmword [rsp + 0x110], xmm8
xorps xmm8, xmm8
movaps xmmword [rsp + 0x100], xmm9
movaps xmmword [rsp + 0xf0], xmm10
movaps xmmword [rsp + 0xe0], xmm11
movaps xmmword [rsp + 0xb0], xmm14
movss xmm14, dword [0x140043fc0]
movaps xmmword [rsp + 0xa0], xmm15
movss xmm15, dword [rsp + 0x64]
nop dword [rax]
mov rax, qword [0x140050600]
lea r8, [rsp + 0x70]
mov rcx, qword [0x1400504e8]
mov r9d, 0xc
mov qword [rsp + 0x20], r14
mov rdx, qword [rbx + rax]
sub rdx, 0x8c
mov qword [rsp + 0x70], r14
mov dword [rsp + 0x78], r14d
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
movss xmm0, dword [rsp + 0x70]
xorps xmm9, xmm9
movss xmm2, dword [rsp + 0x4c]
xorps xmm11, xmm11
movss xmm1, dword [rsp + 0x5c]
movss xmm10, dword [rsp + 0x78]
movss xmm4, dword [rsp + 0x40]
mov eax, dword [0x1400505c4]
movss xmm7, dword [0x140043edc]
mov ecx, dword [0x1400505c0]
cvtps2pd xmm0, xmm0
mulss xmm1, xmm10
subsd xmm0, xmm6
cvtsi2ss xmm9, eax
cvtpd2ps xmm5, xmm0
movss xmm0, dword [rsp + 0x74]
cvtps2pd xmm0, xmm0
cvtsi2ss xmm11, ecx
subsd xmm0, qword [0x140048410]
movaps xmm3, xmm11
movss dword [rsp + 0x70], xmm5
mulss xmm3, dword [0x140043ef8]
cvtpd2ps xmm6, xmm0
movss xmm0, dword [rsp + 0x3c]
mulss xmm4, xmm6
mulss xmm2, xmm6
mulss xmm0, xmm5
movss dword [rsp + 0x74], xmm6
addss xmm2, xmm0
movss xmm0, dword [rsp + 0x30]
mulss xmm0, xmm5
addss xmm2, xmm1
movss xmm1, dword [rsp + 0x50]
addss xmm4, xmm0
mulss xmm1, xmm10
addss xmm2, dword [rsp + 0x6c]
addss xmm4, xmm1
maxss xmm7, xmm2
movaps xmm2, xmm9
addss xmm4, dword [rsp + 0x60]
mulss xmm2, dword [0x140043ef8]
mulss xmm4, xmm2
divss xmm4, xmm7
addss xmm4, xmm2
comiss xmm8, xmm4
ja 0x14003d11a
movss xmm2, dword [rsp + 0x44]
movss xmm0, dword [rsp + 0x34]
movss xmm1, dword [rsp + 0x54]
mulss xmm2, xmm6
mulss xmm0, xmm5
mulss xmm1, xmm10
addss xmm2, xmm0
addss xmm2, xmm1
addss xmm2, xmm15
mulss xmm2, xmm3
divss xmm2, xmm7
subss xmm3, xmm2
comiss xmm8, xmm3
ja 0x14003d11a
comiss xmm4, xmm9
jae 0x14003d11a
comiss xmm3, xmm11
jb 0x14003d122
movaps xmm4, xmm8
movaps xmm3, xmm8
cdq
xorps xmm0, xmm0
sub eax, edx
sar eax, 1
cvtsi2ss xmm0, eax
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
subss xmm4, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
mulss xmm4, xmm4
subss xmm3, xmm0
xorps xmm0, xmm0
mulss xmm3, xmm3
addss xmm3, xmm4
ucomiss xmm0, xmm3
ja 0x14003d161
xorps xmm0, xmm0
sqrtss xmm0, xmm3
jmp 0x14003d169
movaps xmm0, xmm3
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movd xmm1, dword [0x1400501e8]
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm0
jbe 0x14003d18e
comiss xmm12, xmm0
jbe 0x14003d18e
mov rax, qword [0x140050600]
movaps xmm12, xmm0
mov rdi, qword [rbx + rax]
cmp byte [0x140050502], r14b
je 0x14003d5b3
test rdi, rdi
je 0x14003d5b3
movsxd rax, dword [0x1400504fc]
lea rcx, [0x1400502b0]
mov rdx, qword [rcx + rax*8]
lea rax, str.VK_LBUTTON
cmp rdx, rax
jne 0x14003d1cc
mov ecx, 1
jmp 0x14003d2ac
cmp rdx, r15
jne 0x14003d1db
mov ecx, 2
jmp 0x14003d2ac
cmp rdx, r12
jne 0x14003d1ea
mov ecx, 9
jmp 0x14003d2ac
cmp rdx, r13
jne 0x14003d1f9
mov ecx, 0x10
jmp 0x14003d2ac
lea rax, str.VK_LSHIFT
cmp rdx, rax
jne 0x14003d20f
mov ecx, 0xa0
jmp 0x14003d2ac
lea rax, str.VK_RSHIFT
cmp rdx, rax
jne 0x14003d225
mov ecx, 0xa1
jmp 0x14003d2ac
lea rax, str.VK_CONTROL
cmp rdx, rax
jne 0x14003d238
mov ecx, 0x11
jmp 0x14003d2ac
lea rax, str.VK_LCONTROL
cmp rdx, rax
jne 0x14003d24b
mov ecx, 0xa2
jmp 0x14003d2ac
lea rax, str.VK_RCONTROL
cmp rdx, rax
jne 0x14003d25e
mov ecx, 0xa3
jmp 0x14003d2ac
lea rax, str.VK_MENU
cmp rdx, rax
jne 0x14003d271
mov ecx, 0x12
jmp 0x14003d2ac
lea rax, str.VK_LMENU
cmp rdx, rax
jne 0x14003d284
mov ecx, 0xa4
jmp 0x14003d2ac
lea rax, str.VK_RMENU
cmp rdx, rax
jne 0x14003d297
mov ecx, 0xa5
jmp 0x14003d2ac
lea rax, str.VK_CAPITAL
mov ecx, r14d
cmp rdx, rax
mov eax, 0x14
cmove ecx, eax
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14003d5b3
mov rax, qword [0x140050600]
lea r8, [rbp - 0x80]
mov rcx, qword [0x1400504e8]
mov r9d, 0xc
mov qword [rsp + 0x20], r14
mov rdx, qword [rbx + rax]
sub rdx, 0x8c
mov qword [rbp - 0x80], r14
mov dword [rbp - 0x78], r14d
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
movss xmm0, dword [rbp - 0x80]
movsd xmm6, qword [0x140048418]
movss xmm4, dword [rbp - 0x78]
cvtps2pd xmm0, xmm0
subsd xmm0, xmm6
cvtpd2ps xmm3, xmm0
movss xmm0, dword [rbp - 0x7c]
ucomiss xmm3, xmm8
movss dword [rbp - 0x80], xmm3
jp 0x14003d33c
jne 0x14003d33c
ucomiss xmm0, xmm8
jp 0x14003d33c
jne 0x14003d33c
ucomiss xmm4, xmm8
jp 0x14003d33c
jne 0x14003d33c
movaps xmm12, xmm13
mov rdi, r14
jmp 0x14003d5bb
movss xmm2, dword [rsp + 0x4c]
xorps xmm10, xmm10
movss xmm1, dword [rsp + 0x5c]
xorps xmm11, xmm11
movss xmm7, dword [rsp + 0x40]
mov eax, dword [0x1400505c4]
movss xmm6, dword [0x140043edc]
mov ecx, dword [0x1400505c0]
cvtps2pd xmm0, xmm0
mulss xmm1, xmm4
subsd xmm0, qword [0x140047f90]
cvtsi2ss xmm10, eax
cvtpd2ps xmm5, xmm0
movaps xmm0, xmm3
mulss xmm0, dword [rsp + 0x3c]
mulss xmm7, xmm5
mulss xmm2, xmm5
cvtsi2ss xmm11, ecx
addss xmm2, xmm0
movss dword [rbp - 0x7c], xmm5
movaps xmm0, xmm3
movaps xmm9, xmm11
mulss xmm0, dword [rsp + 0x30]
mulss xmm9, dword [0x140043ef8]
addss xmm2, xmm1
movss xmm1, dword [rsp + 0x50]
addss xmm7, xmm0
mulss xmm1, xmm4
addss xmm2, dword [rsp + 0x6c]
addss xmm7, xmm1
maxss xmm6, xmm2
movaps xmm2, xmm10
addss xmm7, dword [rsp + 0x60]
mulss xmm2, dword [0x140043ef8]
mulss xmm7, xmm2
divss xmm7, xmm6
addss xmm7, xmm2
comiss xmm8, xmm7
ja 0x14003d442
movss xmm1, dword [rsp + 0x44]
mulss xmm3, dword [rsp + 0x34]
movss xmm0, dword [rsp + 0x54]
mulss xmm1, xmm5
mulss xmm0, xmm4
addss xmm1, xmm3
addss xmm1, xmm0
addss xmm1, xmm15
mulss xmm1, xmm9
divss xmm1, xmm6
subss xmm9, xmm1
comiss xmm8, xmm9
ja 0x14003d442
comiss xmm7, xmm10
jae 0x14003d442
comiss xmm9, xmm11
jb 0x14003d44a
movaps xmm7, xmm8
movaps xmm9, xmm8
cdq
xorps xmm2, xmm2
sub eax, edx
xorps xmm0, xmm0
sar eax, 1
xorps xmm1, xmm1
cvtss2sd xmm0, xmm7
cvtsi2sd xmm1, eax
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
subsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm2, eax
cvtss2sd xmm0, xmm9
mulsd xmm1, xmm1
subsd xmm2, xmm0
xorps xmm0, xmm0
mulsd xmm2, xmm2
addsd xmm2, xmm1
addsd xmm2, xmm0
ucomisd xmm0, xmm2
ja 0x14003d49a
sqrtpd xmm0, xmm2
jmp 0x14003d4a2
movaps xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
movd xmm1, dword [0x1400501e8]
cvtdq2pd xmm1, xmm1
comisd xmm1, xmm0
jb 0x14003d5b3
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetSystemMetrics]
cdq
mov ecx, 1
sub eax, edx
sar eax, 1
movd xmm6, eax
cvtdq2ps xmm6, xmm6
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, dword [0x1400501f0]
movaps xmm2, xmm8
cdq
movaps xmm1, xmm8
sub eax, edx
sar eax, 1
comiss xmm7, xmm6
movd xmm3, eax
mov eax, dword [0x1400501ec]
cvtdq2ps xmm3, xmm3
jbe 0x14003d522
movaps xmm2, xmm6
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm2, xmm7
xorps xmm2, xmm14
divss xmm2, xmm0
movaps xmm0, xmm6
addss xmm6, xmm6
addss xmm0, xmm2
comiss xmm0, xmm6
jmp 0x14003d541
comiss xmm6, xmm7
jbe 0x14003d547
movd xmm0, ecx
movaps xmm2, xmm7
subss xmm2, xmm6
cvtdq2ps xmm0, xmm0
divss xmm2, xmm0
addss xmm6, xmm2
comiss xmm8, xmm6
jbe 0x14003d547
movaps xmm2, xmm8
comiss xmm9, xmm3
jbe 0x14003d574
movaps xmm1, xmm3
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm1, xmm9
xorps xmm1, xmm14
divss xmm1, xmm0
movaps xmm0, xmm3
addss xmm3, xmm3
addss xmm0, xmm1
comiss xmm0, xmm3
jmp 0x14003d595
comiss xmm3, xmm9
jbe 0x14003d59b
movd xmm0, ecx
movaps xmm1, xmm9
subss xmm1, xmm3
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
addss xmm3, xmm1
comiss xmm8, xmm3
jbe 0x14003d59b
movaps xmm1, xmm8
ucomiss xmm2, xmm8
jp 0x14003d5a3
je 0x14003d5b3
ucomiss xmm1, xmm8
jp 0x14003d5ab
je 0x14003d5b3
movaps xmm0, xmm2
call fcn.140001110
movsd xmm6, qword [0x140048418]
mov rcx, qword [0x140050608]
inc esi
sub rcx, qword [0x140050600]
add rbx, 8
sar rcx, 3
movsxd rax, esi
cmp rax, rcx
jb 0x14003cfb0
movaps xmm15, xmmword [rsp + 0xa0]
movaps xmm14, xmmword [rsp + 0xb0]
movaps xmm11, xmmword [rsp + 0xe0]
movaps xmm10, xmmword [rsp + 0xf0]
movaps xmm9, xmmword [rsp + 0x100]
movaps xmm8, xmmword [rsp + 0x110]
movaps xmm7, xmmword [rsp + 0x120]
movaps xmm6, xmmword [rsp + 0x130]
mov r15, qword [rsp + 0x140]
mov r13, qword [rsp + 0x180]
mov r12, qword [rsp + 0x178]
mov rbx, qword [rsp + 0x170]
mov rcx, qword [rbp - 0x70]
xor rcx, rsp
call fcn.1400407b0
movaps xmm12, xmmword [rsp + 0xd0]
movaps xmm13, xmmword [rsp + 0xc0]
add rsp, 0x148
pop r14
pop rdi
pop rsi
pop rbp
ret