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

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0xc8
cmp byte [0x18039a674], 0
je 0x18009ec23
mov rcx, qword [0x18039f608]
mov rax, qword [rcx]
mov r8, qword [rax + 0x118]
call r8
test al, al
jne 0x18009e2f1
mov rcx, qword [0x18039f608]
mov rax, qword [rcx]
mov rdx, qword [rax + 0x120]
call rdx
test al, al
je 0x18009ec23
mov eax, dword [0x18039a670]
test eax, eax
jne 0x18009e309
mov ecx, dword [0x18039a66c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
jmp 0x18009e31a
cmp eax, 1
jne 0x18009e32a
mov ecx, dword [0x18039a66c]
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
setne al
test al, al
je 0x18009ec23
jmp 0x18009e333
cmp eax, 2
jne 0x18009ec23
mov rcx, qword [0x18039f608]
lea rdx, [rsp + 0xd0]
xor r8d, r8d
mov qword [rsp + 0xc0], rbx
mov dword [rsp + 0xd0], 0xffffffff
mov rax, qword [rcx]
call qword [rax + 0x178]
mov rax, qword [0x18039f620]
mov edx, dword [rsp + 0xd0]
inc edx
mov rcx, qword [rax + 0x58]
call fcn.1800795f0
mov rbx, rax
test rax, rax
je 0x18009ec1b
mov rcx, qword [0x18039f620]
mov edx, dword [0x180399320]
mov qword [rsp + 0xb8], rbp
movabs rbp, 0x9241b8778dd136bd
mov qword [rsp + 0xb0], rsi
mov qword [rsp + 0xa8], rdi
mov rdi, qword [rcx + 0x58]
mov rcx, qword gs:[0x58]
mov qword [rsp + 0x88], r15
mov esi, 4
mov r15, qword [rcx + rdx*8]
mov qword [rsp + 0x58], r15
mov ecx, dword [r15 + rsi]
cmp dword [0x18039f5e0], ecx
jle 0x18009e413
lea rcx, [0x18039f5e0]
call fcn.18015d060
cmp dword [0x18039f5e0], 0xffffffff
jne 0x18009e413
mov rcx, rbp
call fcn.18009d530
lea rcx, [0x18039f5e0]
mov dword [0x18039fa88], eax
call fcn.18015cff4
mov edx, dword [0x18039fa88]
mov edx, dword [rdx + rbx]
cmp edx, 0xffffffff
je 0x18009ebfb
and edx, 0x7fff
mov qword [rsp + 0xa0], r12
mov rcx, rdi
call fcn.1800795f0
mov qword [rsp + 0x60], rax
mov r12, rax
test rax, rax
je 0x18009ebf3
mov rcx, qword [0x18039f620]
movabs rax, 0xaaaaaaaaaaaaaaa
mov qword [rsp + 0x98], r13
xor r13d, r13d
mov qword [rsp + 0x90], r14
xor r14d, r14d
mov qword [rsp + 0x48], r13
mov rdx, qword [rcx + 0x58]
movsxd rdi, dword [rdx + 0x1510]
mov dword [rsp + 0xe8], edi
test edi, edi
je 0x18009e4b7
cmp rdi, rax
ja 0x18009ec37
lea rax, [rdi + rdi*2]
lea rbx, [rax*8]
mov rcx, rbx
call fcn.1800466e0
mov r14, rax
lea r13, [rbx + rax]
mov qword [rsp + 0x48], r13
mov ecx, 1
movaps xmmword [rsp + 0x70], xmm6
mov dword [rsp + 0xe0], ecx
mov rbp, r14
mov qword [rsp + 0x40], r14
movabs rbx, 0x2aaaaaaaaaaaaaab
cmp edi, ecx
jl 0x18009e8fd
mov qword [rsp + 0x40], r14
lea r12, [0x18039cd68]
nop
mov rax, qword [0x18039f620]
mov edx, ecx
mov rcx, qword [rax + 0x58]
call fcn.1800795f0
mov qword [rsp + 0x38], rax
mov rbx, rax
test rax, rax
je 0x18009e8d6
mov qword [rsp + 0x50], 0
lea rdx, [rsp + 0x50]
mov r8, qword [rax]
mov rcx, rax
call qword [r8 + 0x130]
mov r9, qword [rsp + 0x50]
test r9, r9
je 0x18009e8d6
mov r9, qword [r9 + 8]
movabs r8, 0xcbf29ce484222325
mov rcx, r9
cmp byte [r9], 0
je 0x18009e55b
inc rcx
cmp byte [rcx], 0
jne 0x18009e553
mov edx, 0
sub rcx, r9
je 0x18009e8d6
movabs rsi, 0x100000001b3
nop dword [rax]
nop word [rax + rax]
movsx rax, byte [rdx + r9]
inc rdx
xor r8, rax
imul r8, rsi
cmp rdx, rcx
jb 0x18009e580
movabs rax, 0xc106a596b87eca81
mov esi, 4
cmp r8, rax
jne 0x18009e8d6
mov eax, dword [r15 + rsi]
cmp dword [0x18039f5e0], eax
jle 0x18009e5ee
lea rcx, [0x18039f5e0]
call fcn.18015d060
cmp dword [0x18039f5e0], 0xffffffff
jne 0x18009e5ee
movabs rcx, 0x9241b8778dd136bd
call fcn.18009d530
lea rcx, [0x18039f5e0]
mov dword [0x18039fa88], eax
call fcn.18015cff4
mov edx, dword [0x18039fa88]
mov edx, dword [rdx + rbx]
cmp edx, 0xffffffff
jne 0x18009e604
mov rax, r12
jmp 0x18009e71c
mov rax, qword [0x18039f620]
and edx, 0x7fff
mov rcx, qword [rax + 0x58]
call fcn.1800795f0
mov rbx, rax
test rax, rax
je 0x18009e714
mov ecx, dword [0x18039fcc4]
cmp ecx, dword [r15 + rsi]
jle 0x18009e670
lea rcx, [0x18039fcc4]
call fcn.18015d060
mov ecx, dword [0x18039fcc4]
cmp ecx, 0xffffffff
jne 0x18009e670
movabs rcx, 0x9f4c773fb92eaba8
call fcn.18009d530
lea rcx, [0x18039fcc4]
mov dword [0x18039fcac], eax
call fcn.18015cff4
mov ecx, dword [0x18039fcc4]
mov eax, dword [0x18039fcac]
cmp qword [rax + rbx], 0
je 0x18009e714
cmp ecx, dword [r15 + rsi]
jle 0x18009e6bd
lea rcx, [0x18039fcc4]
call fcn.18015d060
cmp dword [0x18039fcc4], 0xffffffff
jne 0x18009e6bd
movabs rcx, 0x9f4c773fb92eaba8
call fcn.18009d530
lea rcx, [0x18039fcc4]
mov dword [0x18039fcac], eax
call fcn.18015cff4
mov eax, dword [0x18039fcac]
mov rbx, qword [rax + rbx]
mov eax, dword [r15 + rsi]
cmp dword [0x18039fd94], eax
jle 0x18009e709
lea rcx, [0x18039fd94]
call fcn.18015d060
cmp dword [0x18039fd94], 0xffffffff
jne 0x18009e709
movabs rcx, 0x89b727c10692e033
call fcn.18009d530
lea rcx, [0x18039fd94]
mov dword [0x18039fda8], eax
call fcn.18015cff4
mov eax, dword [0x18039fda8]
add rax, rbx
jmp 0x18009e717
mov rax, r12
mov rbx, qword [rsp + 0x38]
movss xmm0, dword [0x18039f6d0]
subss xmm0, dword [rax + 8]
movss xmm1, dword [0x18039f6c8]
movss xmm2, dword [0x18039f6cc]
subss xmm2, dword [rax + 4]
subss xmm1, dword [rax]
mulss xmm0, xmm0
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm2, xmm1
addss xmm2, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm2
ja 0x18009e767
xorps xmm6, xmm6
sqrtss xmm6, xmm2
jmp 0x18009e772
movaps xmm0, xmm2
call fcn.1801905e8
movaps xmm6, xmm0
lea rdx, [rsp + 0x30]
mov rcx, rbx
call fcn.18008ccd0
mov r12, rax
cmp r14, r13
je 0x18009e7a7
mov eax, dword [rax]
movss dword [r14 + 0xc], xmm6
mov qword [r14], rbx
mov dword [r14 + 8], eax
mov dword [r14 + 0x10], 0
add r14, 0x18
jmp 0x18009e8cf
sub r14, rbp
movabs rcx, 0x2aaaaaaaaaaaaaab
mov rax, rcx
movabs r8, 0xaaaaaaaaaaaaaaa
imul r14
mov rdi, rdx
sar rdi, 2
mov rax, rdi
shr rax, 0x3f
add rdi, rax
cmp rdi, r8
je 0x18009ec2b
mov rax, rcx
lea r15, [rdi + 1]
sub r13, rbp
imul r13
mov rsi, rdx
sar rsi, 2
mov rax, rsi
shr rax, 0x3f
add rsi, rax
mov rax, r8
mov rcx, rsi
shr rcx, 1
sub rax, rcx
cmp rsi, rax
jbe 0x18009e812
mov rcx, r8
jmp 0x18009e829
lea rax, [rcx + rsi]
mov rcx, r15
cmp rax, r15
cmovae rcx, rax
cmp rcx, r8
ja 0x18009ec43
lea rax, [rcx + rcx*2]
lea r13, [rax*8]
mov rcx, r13
call fcn.1800466e0
mov ecx, dword [r12]
lea rdx, [rdi + rdi*2]
mov rbx, rax
mov r8, r14
mov rax, qword [rsp + 0x38]
mov dword [rbx + rdx*8 + 8], ecx
mov rcx, rbx
movss dword [rbx + rdx*8 + 0xc], xmm6
mov qword [rbx + rdx*8], rax
mov dword [rbx + rdx*8 + 0x10], 0
mov rdx, rbp
call fcn.18015f7f0
test rbp, rbp
je 0x18009e8ab
lea rdx, [rsi + rsi*2]
shl rdx, 3
cmp rdx, 0x1000
jb 0x18009e8a3
mov rcx, qword [rbp - 8]
add rdx, 0x27
sub rbp, rcx
lea rax, [rbp - 8]
cmp rax, 0x1f
ja 0x18009ec3d
mov rbp, rcx
mov rcx, rbp
call fcn.18015cfec
mov edi, dword [rsp + 0xe8]
lea rax, [r15 + r15*2]
mov r15, qword [rsp + 0x58]
lea r14, [rbx + rax*8]
add r13, rbx
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x48], r13
mov rbp, rbx
lea r12, [0x18039cd68]
mov ecx, dword [rsp + 0xe0]
inc ecx
mov dword [rsp + 0xe0], ecx
cmp ecx, edi
jle 0x18009e4f0
mov r12, qword [rsp + 0x60]
movabs rbx, 0x2aaaaaaaaaaaaaab
mov rcx, r14
mov dword [rsp + 0x20], 0xc
sub rcx, rbp
mov rax, rbx
imul rcx
xor r9d, r9d
mov rcx, rbp
sar rdx, 2
mov r8, rdx
shr r8, 0x3f
add r8, rdx
mov rdx, r14
call fcn.18009fac0
cmp rbp, r14
je 0x18009eb91
mov r13, qword [rsp + 0xd8]
lea rdi, [rbp + 0x10]
mov ebp, 4
nop word [rax + rax]
mov edx, dword [rdi - 8]
cmp edx, 0xffffffff
je 0x18009eb6c
cmp dword [rdi], 0
jne 0x18009eb6c
mov rax, qword [0x18039f620]
and edx, 0x7fff
mov rcx, qword [rax + 0x58]
call fcn.1800795f0
mov rbx, rax
test rax, rax
je 0x18009eb6c
mov rcx, qword [0x18039f620]
mov rsi, qword [rcx + 0x58]
mov ecx, dword [r15 + rbp]
cmp dword [0x18039f5e0], ecx
jle 0x18009e9d4
lea rcx, [0x18039f5e0]
call fcn.18015d060
cmp dword [0x18039f5e0], 0xffffffff
jne 0x18009e9d4
movabs rcx, 0x9241b8778dd136bd
call fcn.18009d530
lea rcx, [0x18039f5e0]
mov dword [0x18039fa88], eax
call fcn.18015cff4
mov edx, dword [0x18039fa88]
mov edx, dword [rdx + rbx]
cmp edx, 0xffffffff
je 0x18009eb6c
and edx, 0x7fff
mov rcx, rsi
call fcn.1800795f0
mov rbx, rax
test rax, rax
je 0x18009eb6c
mov esi, 4
mov ecx, dword [r15 + rsi]
cmp dword [0x18039f6d8], ecx
jle 0x18009ea47
lea rcx, [0x18039f6d8]
call fcn.18015d060
cmp dword [0x18039f6d8], 0xffffffff
jne 0x18009ea47
movabs rcx, 0x9320aed4f2ddf04b
call fcn.18009d530
lea rcx, [0x18039f6d8]
mov dword [0x18039f6f4], eax
call fcn.18015cff4
mov eax, dword [0x18039f6f4]
cmp dword [rax + rbx], 0
jle 0x18009eb67
mov rdx, rbx
mov rcx, r12
call fcn.1800e58a0
test al, al
je 0x18009eb67
mov eax, dword [r15 + rsi]
cmp dword [0x18039fcc4], eax
jle 0x18009eaac
lea rcx, [0x18039fcc4]
call fcn.18015d060
cmp dword [0x18039fcc4], 0xffffffff
jne 0x18009eaac
movabs rcx, 0x9f4c773fb92eaba8
call fcn.18009d530
lea rcx, [0x18039fcc4]
mov dword [0x18039fcac], eax
call fcn.18015cff4
mov eax, dword [0x18039fcac]
mov ebp, 4
mov rsi, qword [rax + rbx]
mov eax, dword [r15 + rbp]
cmp dword [0x18039fca0], eax
jle 0x18009eafd
lea rcx, [0x18039fca0]
call fcn.18015d060
cmp dword [0x18039fca0], 0xffffffff
jne 0x18009eafd
movabs rcx, 0xfbb517d29079c514
call fcn.18009d530
lea rcx, [0x18039fca0]
mov dword [0x18039fcbc], eax
call fcn.18015cff4
mov eax, dword [0x18039fcbc]
cmp byte [rax + rsi], 0
jne 0x18009eb6c
mov eax, dword [r15 + rbp]
cmp dword [0x18039fca4], eax
jle 0x18009eb4b
lea rcx, [0x18039fca4]
call fcn.18015d060
cmp dword [0x18039fca4], 0xffffffff
jne 0x18009eb4b
movabs rcx, 0x4ff1a61db0a3a408
call fcn.18009d530
lea rcx, [0x18039fca4]
mov dword [0x18039fcc0], eax
call fcn.18015cff4
mov eax, dword [0x18039fcc0]
cmp byte [rax + rbx], 0
jne 0x18009eb6c
mov r8, r13
mov rdx, rbx
mov rcx, r12
call fcn.18009e050
jmp 0x18009eb6c
mov ebp, 4
add rdi, 0x18
lea rcx, [rdi - 0x10]
cmp rcx, r14
jne 0x18009e950
mov rbp, qword [rsp + 0x40]
movabs rbx, 0x2aaaaaaaaaaaaaab
mov r13, qword [rsp + 0x48]
test rbp, rbp
je 0x18009ebde
sub r13, rbp
mov rax, rbx
imul r13
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rdx, [rdx + rdx*2]
shl rdx, 3
cmp rdx, 0x1000
jb 0x18009ebd6
mov rcx, qword [rbp - 8]
add rdx, 0x27
sub rbp, rcx
lea rax, [rbp - 8]
cmp rax, 0x1f
ja 0x18009ec31
mov rbp, rcx
mov rcx, rbp
call fcn.18015cfec
movaps xmm6, xmmword [rsp + 0x70]
mov r14, qword [rsp + 0x90]
mov r13, qword [rsp + 0x98]
mov r12, qword [rsp + 0xa0]
mov rdi, qword [rsp + 0xa8]
mov rsi, qword [rsp + 0xb0]
mov rbp, qword [rsp + 0xb8]
mov r15, qword [rsp + 0x88]
mov rbx, qword [rsp + 0xc0]
add rsp, 0xc8
ret
call fcn.18009cad0
int3
call fcn.18016c8a4
int3
call fcn.18009cad0
int3
call fcn.18016c8a4
int3
call fcn.180031a70
int3