Function at 0x14003d180
Capabilities:
Encode data using xor
Hash data using fnv
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x1a8]
sub rsp, 0x280
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
movaps xmmword [rax - 0x78], xmm10
movaps xmmword [rax - 0x88], xmm11
movaps xmmword [rax - 0x98], xmm12
movaps xmmword [rax - 0xa8], xmm13
movaps xmmword [rax - 0xb8], xmm14
movaps xmmword [rax - 0xc8], xmm15
mov rax, qword [0x14005d040]
xor rax, rsp
mov qword [rbp + 0xd0], rax
mov ecx, 6
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x14003d898
xor edi, edi
mov rdx, qword [0x14005da20]
test rdx, rdx
jne 0x14003d480
mov r15d, edi
movss xmm7, dword [0x140053830]
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov ebx, eax
lea ecx, [rdi + 1]
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, eax
mov eax, ebx
cdq
sub eax, edx
sar eax, 1
mov r13d, eax
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
mov dword [rsp + 0x30], eax
mov r12, qword [0x14005dda8]
mov rbx, qword [r12]
cmp rbx, r12
je 0x14003d3a6
mov r14, qword [0x14005da50]
movss xmm8, dword [0x1400537ec]
movss xmm9, dword [0x1400537d8]
movss xmm10, dword [0x14005374c]
movss xmm11, dword [0x140053720]
cmp byte [rbx + 0x24], dil
je 0x14003d397
mov eax, dword [r14 + 0xf0]
cmp dword [rbx + 0x108], eax
je 0x14003d397
xorps xmm0, xmm0
cvtsi2ss xmm0, r13d
movss xmm2, dword [rbx + 0xb4]
subss xmm2, xmm0
xorps xmm1, xmm1
cvtsi2ss xmm1, ecx
movss xmm3, dword [rbx + 0xb8]
subss xmm3, xmm1
mulss xmm3, xmm3
mulss xmm2, xmm2
addss xmm3, xmm2
xorps xmm0, xmm0
ucomiss xmm0, xmm3
ja 0x14003d2f3
xorps xmm6, xmm6
sqrtss xmm6, xmm3
jmp 0x14003d2fe
movaps xmm0, xmm3
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movaps xmm6, xmm0
divss xmm6, xmm8
movss xmm2, dword [r14 + 0x98]
subss xmm2, dword [rbx + 0xb0]
movss xmm1, dword [r14 + 0x94]
subss xmm1, dword [rbx + 0xac]
movss xmm3, dword [r14 + 0x90]
subss xmm3, dword [rbx + 0xa8]
mulss xmm3, xmm3
mulss xmm1, xmm1
addss xmm3, xmm1
mulss xmm2, xmm2
addss xmm3, xmm2
xorps xmm0, xmm0
ucomiss xmm0, xmm3
ja 0x14003d35b
xorps xmm0, xmm0
sqrtss xmm0, xmm3
jmp 0x14003d363
movaps xmm0, xmm3
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
divss xmm0, xmm8
mov ecx, dword [rsp + 0x30]
comiss xmm0, xmm9
ja 0x14003d397
movaps xmm1, xmm6
mulss xmm1, xmm6
mulss xmm1, xmm6
mulss xmm1, xmm10
mulss xmm0, xmm11
addss xmm1, xmm0
comiss xmm7, xmm1
jbe 0x14003d397
movaps xmm7, xmm1
lea r15, [rbx + 0x18]
mov rax, qword [rbx]
mov rbx, rax
cmp rax, r12
jne 0x14003d292
test r15, r15
je 0x14003d466
mov rax, qword [r15 + 0xa8]
mov qword [0x14005da20], rax
lea r8, [0x14005da20]
lea rdx, [rsp + 0x40]
call fcn.14003eb60
mov rbx, qword [rax]
lea rdx, [rbx + 0x18]
lea rcx, [rbp - 0x60]
call fcn.14003db20
nop
mov rax, qword [rbx + 0xd8]
mov qword [rbp + 0x60], rax
mov rax, qword [rbx + 0xe0]
mov qword [rbp + 0x68], rax
lea rdx, [rbx + 0xe8]
lea rcx, [rbp + 0x70]
call fcn.14003e3d0
nop
mov eax, dword [rbx + 0x108]
mov dword [rbp + 0x90], eax
mov rax, qword [rbx + 0x110]
mov qword [rbp + 0x98], rax
movsd xmm0, qword [rbx + 0x118]
movsd qword [rbp + 0xa0], xmm0
mov eax, dword [rbx + 0x120]
mov dword [rbp + 0xa8], eax
movzx eax, byte [rbx + 0x124]
mov byte [rbp + 0xac], al
lea rdx, [rbx + 0x128]
lea rcx, [rbp + 0xb0]
call fcn.14003e3d0
nop
lea rcx, [rbp - 0x60]
call fcn.14003dc10
mov rdx, qword [0x14005da20]
test rdx, rdx
je 0x14003daa9
nop word [rax + rax]
movzx ecx, dl
movabs rsi, 0xcbf29ce484222325
xor rcx, rsi
movabs r14, 0x100000001b3
imul rcx, r14
movzx eax, byte [0x14005da21]
xor rcx, rax
imul rcx, r14
movzx eax, byte [0x14005da22]
xor rcx, rax
imul rcx, r14
movzx eax, byte [0x14005da23]
xor rcx, rax
imul rcx, r14
movzx eax, byte [0x14005da24]
xor rcx, rax
imul rcx, r14
movzx eax, byte [0x14005da25]
xor rcx, rax
imul rcx, r14
movzx eax, byte [0x14005da26]
xor rcx, rax
imul rcx, r14
movzx eax, byte [0x14005da27]
xor rcx, rax
imul rcx, r14
and rcx, qword [0x14005ddd0]
add rcx, rcx
mov r8, qword [0x14005ddb8]
mov rax, qword [r8 + rcx*8 + 8]
cmp rax, qword [0x14005dda8]
je 0x14003d541
mov r8, qword [r8 + rcx*8]
cmp rdx, qword [rax + 0x10]
je 0x14003d544
nop dword [rax]
cmp rax, r8
je 0x14003d541
mov rax, qword [rax + 8]
cmp rdx, qword [rax + 0x10]
jne 0x14003d530
jmp 0x14003d544
mov rax, rdi
test rax, rax
je 0x14003daa9
lea r8, [0x14005da20]
lea rdx, [rsp + 0x40]
call fcn.14003eb60
mov rbx, qword [rax]
lea rdx, [rbx + 0x18]
lea rcx, [rbp - 0x60]
call fcn.14003db20
nop
mov rax, qword [rbx + 0xd8]
mov qword [rbp + 0x60], rax
mov rax, qword [rbx + 0xe0]
mov qword [rbp + 0x68], rax
lea rdx, [rbx + 0xe8]
lea rcx, [rbp + 0x70]
call fcn.14003e3d0
nop
mov eax, dword [rbx + 0x108]
mov dword [rbp + 0x90], eax
mov rax, qword [rbx + 0x110]
mov qword [rbp + 0x98], rax
movsd xmm0, qword [rbx + 0x118]
movsd qword [rbp + 0xa0], xmm0
mov eax, dword [rbx + 0x120]
mov dword [rbp + 0xa8], eax
movzx eax, byte [rbx + 0x124]
mov byte [rbp + 0xac], al
lea rdx, [rbx + 0x128]
lea rcx, [rbp + 0xb0]
call fcn.14003e3d0
nop
mov rdx, qword [rbp + 0x60]
add rdx, 0x408
xorps xmm12, xmm12
mov qword [rbp - 0x70], 0
mov dword [rbp - 0x68], 0
mov qword [rsp + 0x20], rdi
mov r9d, 0xc
lea r8, [rbp - 0x70]
mov rcx, qword [0x14005da48]
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov r8, qword [0x14005da50]
add r8, 0x70
lea rdx, [rbp - 0x80]
lea rcx, [0x14005db70]
call fcn.14003e4f0
mov rcx, qword [rax]
movss xmm14, dword [rcx + 0x30]
mov r15, qword [0x14005da50]
cmp byte [r15 + 0x10c], 0
je 0x14003d6d5
lea rbx, [r15 + 0x110]
mov rdx, qword [rbx + 0x10]
mov rcx, rbx
cmp qword [rbx + 0x18], 0xf
jbe 0x14003d677
mov rcx, qword [rbx]
test rdx, rdx
je 0x14003d693
nop dword [rax]
movzx eax, byte [rdi + rcx]
xor rsi, rax
imul rsi, r14
inc rdi
cmp rdi, rdx
jb 0x14003d680
mov r9, rsi
mov r8, rbx
lea rdx, [rsp + 0x60]
lea rcx, [0x14005dc40]
call fcn.14003fec0
cmp qword [rax + 8], 0
je 0x14003d6d5
mov r8, rbx
lea rdx, [rsp + 0x70]
lea rcx, [0x14005dc40]
call fcn.14003e4f0
mov rcx, qword [rax]
movss xmm14, dword [rcx + 0x30]
mov r15, qword [0x14005da50]
movsd xmm1, qword [r15 + 0x90]
movss xmm10, dword [rbp + 0x38]
movaps xmm6, xmm10
subss xmm6, dword [r15 + 0x98]
movss xmm9, dword [rbp + 0x34]
movaps xmm7, xmm9
movaps xmm0, xmm1
shufps xmm0, xmm0, 0x55
subss xmm7, xmm0
movss xmm13, dword [rbp + 0x30]
movaps xmm5, xmm13
movsd qword [rsp + 0x40], xmm1
subss xmm5, xmm1
movss xmm15, dword [rbp - 0x68]
movaps xmm4, xmm15
subss xmm4, xmm12
movss xmm3, dword [rbp - 0x6c]
subss xmm3, xmm12
movss xmm11, dword [rbp - 0x70]
movaps xmm2, xmm11
subss xmm2, xmm12
movaps xmm8, xmm3
mulss xmm8, xmm3
movaps xmm0, xmm2
mulss xmm0, xmm2
addss xmm8, xmm0
movaps xmm1, xmm4
mulss xmm1, xmm4
addss xmm8, xmm1
mulss xmm14, xmm14
subss xmm8, xmm14
movaps xmm14, xmm7
mulss xmm14, xmm3
movaps xmm0, xmm5
mulss xmm0, xmm2
addss xmm14, xmm0
movaps xmm1, xmm6
mulss xmm1, xmm4
addss xmm14, xmm1
addss xmm14, xmm14
mulss xmm7, xmm7
mulss xmm5, xmm5
addss xmm7, xmm5
mulss xmm6, xmm6
addss xmm7, xmm6
movaps xmm1, xmm14
mulss xmm1, xmm14
movaps xmm0, xmm8
mulss xmm0, dword [0x1400537a4]
mulss xmm0, xmm7
subss xmm1, xmm0
comiss xmm12, xmm1
ja 0x14003d849
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x14003d7db
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x14003d7e3
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
addss xmm8, xmm8
movaps xmm1, xmm14
xorps xmm1, xmmword [0x140053940]
subss xmm1, xmm0
divss xmm1, xmm8
subss xmm0, xmm14
divss xmm0, xmm8
comiss xmm1, xmm12
jbe 0x14003d818
comiss xmm0, xmm12
jbe 0x14003d821
minss xmm1, xmm0
jmp 0x14003d821
comiss xmm0, xmm12
jbe 0x14003d849
movaps xmm1, xmm0
mulss xmm15, xmm1
movss xmm0, dword [rbp - 0x6c]
mulss xmm0, xmm1
addss xmm10, xmm15
addss xmm9, xmm0
mulss xmm11, xmm1
addss xmm11, xmm13
movaps xmm0, xmm11
jmp 0x14003d84d
movaps xmm0, xmm13
movd eax, xmm10
unpcklps xmm0, xmm9
movsd qword [rsp + 0x50], xmm0
mov dword [rsp + 0x58], eax
movsd xmm0, qword [r15 + 0x100]
movsd qword [rsp + 0x40], xmm0
mov eax, dword [r15 + 0x108]
mov dword [rsp + 0x48], eax
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x40]
call fcn.14003de40
nop
lea rcx, [rbp - 0x60]
call fcn.14003dc10
jmp 0x14003daa9
mov ecx, 5
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x14003daa0
mov rdx, qword [0x14005da20]
test rdx, rdx
jne 0x14003d8f0
call fcn.14003cea0
test rax, rax
je 0x14003d8d2
mov rdx, qword [rax + 0xa8]
mov qword [0x14005da20], rdx
jmp 0x14003d8d9
mov rdx, qword [0x14005da20]
test rdx, rdx
je 0x14003daa9
nop dword [rax]
nop word [rax + rax]
movzx ecx, dl
movabs rsi, 0xcbf29ce484222325
xor rcx, rsi
movabs r14, 0x100000001b3
imul rcx, r14
movzx eax, byte [0x14005da21]
xor rcx, rax
imul rcx, r14
movzx eax, byte [0x14005da22]
xor rcx, rax
imul rcx, r14
movzx eax, byte [0x14005da23]
xor rcx, rax
imul rcx, r14
movzx eax, byte [0x14005da24]
xor rcx, rax
imul rcx, r14
movzx eax, byte [0x14005da25]
xor rcx, rax
imul rcx, r14
movzx eax, byte [0x14005da26]
xor rcx, rax
imul rcx, r14
movzx eax, byte [0x14005da27]
xor rcx, rax
imul rcx, r14
and rcx, qword [0x14005de10]
add rcx, rcx
mov rax, qword [0x14005ddf8]
mov rdi, qword [rax + rcx*8 + 8]
cmp rdi, qword [0x14005dde8]
je 0x14003d9b1
mov rax, qword [rax + rcx*8]
cmp rdx, qword [rdi + 0x10]
je 0x14003d9b3
nop dword [rax]
cmp rdi, rax
je 0x14003d9b1
mov rdi, qword [rdi + 8]
cmp rdx, qword [rdi + 0x10]
jne 0x14003d9a0
jmp 0x14003d9b3
xor edi, edi
test rdi, rdi
je 0x14003daa9
lea r8, [0x14005da20]
lea rdx, [rsp + 0x70]
call fcn.14003e7d0
mov rdx, qword [rax]
add rdx, 0x18
lea rcx, [rbp - 0x60]
call fcn.14003db20
nop
movss xmm8, dword [rbp + 0x30]
movss xmm7, dword [rbp + 0x34]
movss xmm6, dword [rbp + 0x38]
mov r8, qword [0x14005da50]
add r8, 0x70
lea rdx, [rsp + 0x60]
lea rcx, [0x14005db70]
call fcn.14003e4f0
xorps xmm0, xmm0
ucomiss xmm8, xmm0
jp 0x14003da3e
jne 0x14003da3e
ucomiss xmm7, xmm0
jp 0x14003da3e
jne 0x14003da3e
ucomiss xmm6, xmm0
jp 0x14003da3e
jne 0x14003da3e
movss xmm6, dword [0x14005da30]
movss xmm7, dword [0x14005da2c]
movss xmm8, dword [0x14005da28]
jmp 0x14003da57
movss dword [0x14005da28], xmm8
movss dword [0x14005da2c], xmm7
movss dword [0x14005da30], xmm6
movss dword [rbp - 0x70], xmm8
movss dword [rbp - 0x6c], xmm7
movss dword [rbp - 0x68], xmm6
mov rax, qword [0x14005da50]
movsd xmm0, qword [rax + 0x100]
movsd qword [rsp + 0x40], xmm0
mov eax, dword [rax + 0x108]
mov dword [rsp + 0x48], eax
lea rdx, [rbp - 0x70]
lea rcx, [rsp + 0x40]
call fcn.14003de40
nop
lea rcx, [rbp - 0x60]
call fcn.14003dcf0
jmp 0x14003daa9
xor edi, edi
mov qword [0x14005da20], rdi
mov rcx, qword [rbp + 0xd0]
xor rcx, rsp
call fcn.140048820
lea r11, [rsp + 0x280]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
movaps xmm15, xmmword [r11 - 0xa0]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret