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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0xe0
movzx r9d, r8b
mov r15, rdx
mov r14, rcx
xor r12d, r12d
cmp r9b, 1
ja 0x1801584bd
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
mov qword [rbp - 0x79], r12
mov qword [rbp - 0x71], r12
mov qword [rbp - 0x79], 8
mov qword [rbp - 0x71], 0xf
movabs r10, 0x6b63697473796f6a
mov qword [rsp + 0x20], r10
mov byte [rsp + 0x28], r12b
movabs rbx, 0xcbf29ce484222325
mov rcx, rbx
mov edx, r12d
movabs rsi, 0x100000001b3
nop dword [rax]
movzx eax, byte [rsp + rdx + 0x20]
xor rcx, rax
imul rcx, rsi
inc rdx
cmp rdx, 8
jb 0x180158060
and rcx, qword [r14 + 0x9c8]
shl rcx, 4
mov r8, qword [r14 + 0x9b0]
add r8, rcx
mov rcx, qword [r8 + 8]
cmp rcx, qword [r14 + 0x9a0]
je 0x1801580c8
mov r8, qword [r8]
nop word [rax + rax]
lea rax, [rcx + 0x10]
mov rdx, qword [rax + 0x10]
cmp qword [rax + 0x18], 0xf
jbe 0x1801580b2
mov rax, qword [rax]
cmp rdx, 8
jne 0x1801580bd
cmp r10, qword [rax]
je 0x1801580cb
cmp rcx, r8
je 0x1801580c8
mov rcx, qword [rcx + 8]
jmp 0x1801580a0
mov rcx, r12
mov qword [rbp - 0x79], r12
mov qword [rbp - 0x71], 0xf
mov byte [rsp + 0x20], 0
test rcx, rcx
je 0x1801584bd
imul r13, r9, 0x2c8
lea rdi, [r14 + r13]
lea rdx, [rbp - 0x49]
mov rcx, r14
call fcn.1801579f0
mov r10, rax
mov r8, qword [rax + 0x10]
mov rdx, rax
cmp qword [rax + 0x18], 0xf
jbe 0x180158110
mov rdx, qword [rax]
mov r9, rbx
mov rcx, r12
test r8, r8
je 0x180158133
nop dword [rax + rax]
movzx eax, byte [rcx + rdx]
xor r9, rax
imul r9, rsi
inc rcx
cmp rcx, r8
jb 0x180158120
mov r8, r10
lea rdx, [rsp + 0x20]
lea rcx, [rdi + 0xc40]
call fcn.18004a290
mov rsi, qword [rax + 8]
test rsi, rsi
je 0x18015815c
lea rdi, [r14 + 0xc48]
add rdi, r13
jmp 0x180158166
add rdi, 0xc48
mov rsi, qword [rdi]
mov rdx, qword [rbp - 0x31]
cmp rdx, 0xf
jbe 0x1801581a1
inc rdx
mov rcx, qword [rbp - 0x49]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18015819c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1801584f2
call fcn.180286270
movdqa xmm0, xmmword [0x1802f5620]
movdqu xmmword [rbp - 0x39], xmm0
mov byte [rbp - 0x49], 0
cmp rsi, qword [rdi]
je 0x1801584bd
xorps xmm0, xmm0
movups xmmword [rbp - 0x69], xmm0
mov qword [rbp - 0x59], r12
mov qword [rbp - 0x51], r12
mov qword [rbp - 0x59], 8
mov qword [rbp - 0x51], 0xf
movabs r10, 0x6b63697473796f6a
mov qword [rbp - 0x69], r10
mov byte [rbp - 0x61], 0
mov rdx, rbx
mov rcx, r12
movabs r9, 0x100000001b3
nop dword [rax]
movzx eax, byte [rbp + rcx - 0x69]
xor rdx, rax
imul rdx, r9
inc rcx
cmp rcx, 8
jb 0x180158200
and rdx, qword [rsi + 0x60]
add rdx, rdx
mov rax, qword [rsi + 0x48]
mov rcx, qword [rax + rdx*8 + 8]
cmp rcx, qword [rsi + 0x38]
je 0x180158258
mov r8, qword [rax + rdx*8]
nop
lea rax, [rcx + 0x10]
mov rdx, qword [rax + 0x10]
cmp qword [rax + 0x18], 0xf
jbe 0x180158242
mov rax, qword [rax]
cmp rdx, 8
jne 0x18015824d
cmp r10, qword [rax]
je 0x18015825b
cmp rcx, r8
je 0x180158258
mov rcx, qword [rcx + 8]
jmp 0x180158230
mov rcx, r12
mov qword [rbp - 0x59], r12
mov qword [rbp - 0x51], 0xf
mov byte [rbp - 0x69], 0
xorps xmm0, xmm0
test rcx, rcx
je 0x180158328
movups xmmword [rsp + 0x20], xmm0
mov qword [rbp - 0x79], r12
mov qword [rbp - 0x71], r12
mov qword [rbp - 0x79], 8
mov qword [rbp - 0x71], 0xf
mov qword [rsp + 0x20], r10
mov byte [rsp + 0x28], 0
mov rcx, r12
movzx eax, byte [rsp + rcx + 0x20]
xor rbx, rax
imul rbx, r9
inc rcx
cmp rcx, 8
jb 0x1801582a1
and rbx, qword [r14 + 0x9c8]
add rbx, rbx
mov rax, qword [r14 + 0x9b0]
mov rcx, qword [rax + rbx*8 + 8]
mov r9, qword [r14 + 0x9a0]
cmp rcx, r9
je 0x180158308
mov r8, qword [rax + rbx*8]
nop dword [rax]
lea rax, [rcx + 0x10]
mov rdx, qword [rax + 0x10]
cmp qword [rax + 0x18], 0xf
jbe 0x1801582f2
mov rax, qword [rax]
cmp rdx, 8
jne 0x1801582fd
cmp r10, qword [rax]
je 0x18015830b
cmp rcx, r8
je 0x180158308
mov rcx, qword [rcx + 8]
jmp 0x1801582e0
mov rcx, r12
test rcx, rcx
cmovne r9, rcx
mov qword [rbp - 0x79], r12
mov qword [rbp - 0x71], 0xf
mov byte [rsp + 0x20], 0
jmp 0x1801583e2
movups xmmword [rbp - 0x69], xmm0
mov qword [rbp - 0x59], r12
mov qword [rbp - 0x51], r12
mov qword [rbp - 0x59], 8
mov qword [rbp - 0x51], 0xf
movabs r10, 0x6461706863756f74
mov qword [rbp - 0x69], r10
mov byte [rbp - 0x61], 0
mov rcx, r12
nop dword [rax]
movzx eax, byte [rbp + rcx - 0x69]
xor rbx, rax
imul rbx, r9
inc rcx
cmp rcx, 8
jb 0x180158360
mov r8, qword [r14 + 0x9c8]
and r8, rbx
add r8, r8
mov rax, qword [r14 + 0x9b0]
mov rcx, qword [rax + r8*8 + 8]
mov r9, qword [r14 + 0x9a0]
cmp rcx, r9
je 0x1801583c8
mov r8, qword [rax + r8*8]
nop
lea rax, [rcx + 0x10]
mov rdx, qword [rax + 0x10]
cmp qword [rax + 0x18], 0xf
jbe 0x1801583b2
mov rax, qword [rax]
cmp rdx, 8
jne 0x1801583bd
cmp r10, qword [rax]
je 0x1801583cb
cmp rcx, r8
je 0x1801583c8
mov rcx, qword [rcx + 8]
jmp 0x1801583a0
mov rcx, r12
test rcx, rcx
cmovne r9, rcx
mov qword [rbp - 0x59], r12
mov qword [rbp - 0x51], 0xf
mov byte [rbp - 0x69], 0
cmp r9, qword [r14 + 0x9a0]
je 0x1801584bd
mov rax, qword [r9 + 0x30]
mov dword [rbp - 0x21], 0x3a
xorps xmm0, xmm0
movups xmmword [rbp - 0x19], xmm0
mov qword [rbp - 0x11], rax
mov rax, qword [r13 + r14 + 0xb68]
mov qword [rbp - 9], rax
mov dword [rbp - 1], 0x19
xor eax, eax
movups xmmword [rbp + 7], xmm0
movups xmmword [rbp + 0x17], xmm0
mov qword [rbp + 0x27], rax
lea r8, [rbp - 1]
lea rdx, [rbp - 0x21]
mov rcx, qword [r14 + 0x420]
call fcn.1801c4fa0
test eax, eax
je 0x1801584e6
mov r8d, eax
lea rdx, [rbp - 0x49]
mov rcx, r14
call fcn.180157e60
nop
lea rcx, str._VR__Failed_to_get_stick_action_state:_
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x28], 0x29
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.180023cc0
nop
mov rdx, qword [rbp - 0x31]
cmp rdx, 0xf
jbe 0x1801584ac
inc rdx
mov rcx, qword [rbp - 0x49]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1801584a7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1801584ec
call fcn.180286270
movdqa xmm0, xmmword [0x1802f5620]
movdqu xmmword [rbp - 0x39], xmm0
mov byte [rbp - 0x49], 0
xor eax, eax
mov qword [r15], rax
mov rax, r15
lea r11, [rsp + 0xe0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov rax, qword [rbp + 0xf]
jmp 0x1801584bf
call fcn.18028ddc0
int3
call fcn.18028ddc0
int3