Function at 0x180148b60
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rbp
push rdi
push r12
push r14
push r15
mov rbp, rsp
sub rsp, 0x60
mov rax, qword [0x18021d4c0]
xor rax, rsp
mov qword [rbp - 8], rax
mov r15, rcx
xor r14d, r14d
mov qword [rbp - 0x20], r14
mov qword [rbp - 0x18], 7
mov qword [rbp - 0x10], 0xf
mov rax, qword [str.keybind]
mov dword [rbp - 0x28], eax
movzx r9d, word [0x1801e9cfc]
mov word [rbp - 0x24], r9w
movzx r10d, byte [0x1801e9cfe]
mov byte [rbp - 0x22], r10b
mov byte [rbp - 0x21], r14b
movabs rsi, 0xcbf29ce484222325
mov r8, rsi
mov edx, r14d
movabs r12, 0x100000001b3
nop dword [rax]
nop word [rax + rax]
movzx ecx, byte [rbp + rdx - 0x28]
xor r8, rcx
imul r8, r12
inc rdx
cmp rdx, 7
jb 0x180148bf0
and r8, qword [r15 + 0xa0]
add r8, r8
mov rcx, qword [r15 + 0x88]
mov rdx, qword [rcx + r8*8 + 8]
mov rbx, qword [r15 + 0x78]
cmp rdx, rbx
je 0x180148c64
mov r11, qword [rcx + r8*8]
nop dword [rax + rax]
lea rcx, [rdx + 0x10]
mov r8, qword [rcx + 0x10]
cmp qword [rcx + 0x18], 0xf
jbe 0x180148c42
mov rcx, qword [rcx]
cmp r8, 7
jne 0x180148c59
cmp eax, dword [rcx]
jne 0x180148c59
cmp r9w, word [rcx + 4]
jne 0x180148c59
cmp r10b, byte [rcx + 6]
je 0x180148c67
cmp rdx, r11
je 0x180148c64
mov rdx, qword [rdx + 8]
jmp 0x180148c30
mov rdx, r14
test rdx, rdx
je 0x180148c77
cmp rdx, rbx
je 0x180148c77
mov rcx, qword [rdx + 0x30]
jmp 0x180148c7a
mov rcx, r14
test rcx, rcx
jne 0x180148d53
xorps xmm0, xmm0
movups xmmword [rbp - 0x28], xmm0
movdqa xmm1, xmmword [reloc.OLEAUT32.dll_VariantInit]
movdqu xmmword [rbp - 0x18], xmm1
mov dword [rbp - 0x28], eax
mov word [rbp - 0x24], r9w
mov byte [rbp - 0x22], r10b
mov byte [rbp - 0x21], r14b
lea r8, [r15 + 0x50]
lea rdx, [rbp - 0x28]
lea rcx, [rbp - 0x40]
call fcn.18004d180
mov rbx, rax
lea r8, [rbp - 0x28]
lea rdx, [rbp - 0x38]
lea rcx, [r15 + 0x70]
call fcn.180047640
mov r8, qword [rax]
mov rdx, qword [rbx]
mov qword [rbx], r14
mov rcx, qword [r8 + 0x30]
mov qword [r8 + 0x30], rdx
test rcx, rcx
je 0x180148ced
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
nop
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x180148d01
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
nop
mov rdx, qword [rbp - 0x10]
cmp rdx, 0xf
jbe 0x180148d3c
inc rdx
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180148d37
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180148e2e
call fcn.18016ee40
movzx r9d, word [0x1801e9cfc]
movzx r10d, byte [0x1801e9cfe]
mov rax, qword [str.keybind]
mov qword [rbp - 0x20], r14
mov qword [rbp - 0x18], 7
mov qword [rbp - 0x10], 0xf
mov dword [rbp - 0x28], eax
mov word [rbp - 0x24], r9w
mov byte [rbp - 0x22], r10b
mov byte [rbp - 0x21], 0
mov rdx, r14
nop word [rax + rax]
movzx ecx, byte [rbp + rdx - 0x28]
xor rsi, rcx
imul rsi, r12
inc rdx
cmp rdx, 7
jb 0x180148d80
and rsi, qword [r15 + 0xa0]
add rsi, rsi
mov rcx, qword [r15 + 0x88]
mov rdx, qword [rcx + rsi*8 + 8]
mov rbx, qword [r15 + 0x78]
cmp rdx, rbx
je 0x180148df4
mov r11, qword [rcx + rsi*8]
nop dword [rax + rax]
lea rcx, [rdx + 0x10]
mov r8, qword [rcx + 0x10]
cmp qword [rcx + 0x18], 0xf
jbe 0x180148dd2
mov rcx, qword [rcx]
cmp r8, 7
jne 0x180148de9
cmp eax, dword [rcx]
jne 0x180148de9
cmp r9w, word [rcx + 4]
jne 0x180148de9
cmp r10b, byte [rcx + 6]
je 0x180148df7
cmp rdx, r11
je 0x180148df4
mov rdx, qword [rdx + 8]
jmp 0x180148dc0
mov rdx, r14
test rdx, rdx
je 0x180148e05
cmp rdx, rbx
je 0x180148e05
mov r14, qword [rdx + 0x30]
lea rax, [r14 + 0x28]
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.18016e810
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
call fcn.1801819e8
int3