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

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x138]
sub rsp, 0x238
mov qword [rbp + 0x70], 0xfffffffffffffffe
mov rax, qword [0x1800b0070]
xor rax, rsp
mov qword [rbp + 0x120], rax
mov r14, r9
mov qword [rsp + 0x70], r9
mov rbx, r8
mov qword [rsp + 0x78], rbx
mov rsi, rdx
mov qword [rbp - 0x20], rdx
mov rdi, rcx
mov qword [rbp - 0x10], rcx
xor r15d, r15d
mov dword [rsp + 0x44], r15d
movzx eax, byte [rsp + 0x40]
mov byte [rbp - 0x70], al
call fcn.180068060
mov qword [rbp - 0x60], rax
mov qword [rbp - 0x58], r15
mov qword [rsp + 0x48], rax
lea r8, [rsp + 0x48]
lea rcx, [rbp - 0x50]
call fcn.180048710
nop
mov qword [rbp - 0x30], 1
mov qword [rbp - 0x28], 1
movzx eax, byte [rsp + 0x40]
mov byte [rbp + 0x20], al
call fcn.180068060
mov qword [rbp + 0x30], rax
mov qword [rbp + 0x38], r15
mov qword [rsp + 0x48], rax
lea r8, [rsp + 0x48]
lea rcx, [rbp + 0x40]
call fcn.180048710
nop
mov qword [rbp + 0x60], 1
mov qword [rbp + 0x68], 1
call fcn.180070130
mov qword [rsp + 0x58], rax
mov byte [rax + 0x49], 1
mov rax, qword [rsp + 0x58]
mov qword [rax + 8], rax
mov rax, qword [rsp + 0x58]
mov qword [rax], rax
mov rax, qword [rsp + 0x58]
mov qword [rax + 0x10], rax
mov qword [rsp + 0x60], r15
lea rax, [rbp + 0x20]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x70]
mov r8, rbx
mov rdx, rsi
mov rcx, rdi
call fcn.18006ac10
xor edi, edi
mov r12d, edi
mov qword [rsp + 0x48], rdi
test rbx, rbx
je 0x18006b9ce
mov r13, qword [rbp - 0x30]
mov rbx, qword [rbp + 0x60]
or rcx, 0xffffffffffffffff
mov r15, qword [rsi + r12*8]
mov qword [rbp - 0x18], r15
mov rdx, qword [r15]
mov qword [rbp + 0x98], 7
mov qword [rbp + 0x90], rdi
mov word [rbp + 0x80], di
mov r8, rcx
nop dword [rax + rax]
inc r8
cmp word [rdx + r8*2], 0
jne 0x18006b150
lea rcx, [rbp + 0x78]
call fcn.180046e10
nop
lea rdx, [rbp + 0x80]
cmp qword [rbp + 0x98], 8
cmovae rdx, qword [rbp + 0x80]
mov rax, qword [rbp + 0x90]
lea rdx, [rdx + rax*2]
lea rax, [rbp + 0x80]
cmovae rax, qword [rbp + 0x80]
mov ecx, 0x811c9dc5
cmp rax, rdx
je 0x18006b1b7
imul rcx, rcx, 0x1000193
movzx r8d, word [rax]
xor rcx, r8
add rax, 2
cmp rax, rdx
jne 0x18006b1a0
mov edx, 0x1f31d
call qword [sym.imp.msvcrt.dll_ldiv]
mov qword [rsp + 0x68], rax
shr rax, 0x20
imul ecx, eax, 0x41a7
imul eax, dword [rsp + 0x68], 0xb14
sub ecx, eax
jns 0x18006b1e3
add ecx, 0x7fffffff
movsxd rdx, ecx
and rdx, rbx
cmp qword [rbp + 0x68], rdx
ja 0x18006b1ff
mov rcx, rbx
shr rcx, 1
or rax, 0xffffffffffffffff
sub rax, rcx
add rdx, rax
mov rcx, qword [rbp + 0x48]
mov rax, qword [rcx + rdx*8]
mov rbx, qword [rcx + rdx*8 + 8]
mov rdi, qword [rbp + 0x98]
mov r11, qword [rbp + 0x90]
mov rsi, qword [rbp + 0x80]
cmp rax, rbx
je 0x18006b406
lea rdx, [rbp + 0x80]
cmp rdi, 8
cmovae rdx, rsi
mov r10, qword [rax + 0x28]
cmp qword [rax + 0x30], 8
jb 0x18006b24a
mov r8, qword [rax + 0x18]
jmp 0x18006b24e
lea r8, [rax + 0x18]
mov r9, r11
cmp r10, r11
cmovb r9, r10
test r9, r9
je 0x18006b291
nop dword [rax]
movzx ecx, word [rdx]
cmp word [r8], cx
jne 0x18006b278
add r8, 2
add rdx, 2
dec r9
jne 0x18006b260
jmp 0x18006b291
mov r9d, 1
cmp word [r8], cx
mov rcx, 0xffffffffffffffff
cmovb r9d, ecx
xor edx, edx
jmp 0x18006b296
xor edx, edx
mov r9d, edx
movsxd rcx, r9d
test r9d, r9d
jne 0x18006b2a8
cmp r10, r11
jb 0x18006b2ac
mov ecx, edx
setne cl
test ecx, ecx
jns 0x18006b2b4
mov rax, qword [rax]
jmp 0x18006b221
cmp qword [rax + 0x30], 8
jb 0x18006b2c1
mov r8, qword [rax + 0x18]
jmp 0x18006b2c5
lea r8, [rax + 0x18]
lea rdx, [rbp + 0x80]
cmp rdi, 8
cmovae rdx, rsi
mov r9, r10
cmp r11, r10
cmovb r9, r11
test r9, r9
je 0x18006b311
movzx ecx, word [r8]
cmp word [rdx], cx
jne 0x18006b2fb
add rdx, 2
add r8, 2
dec r9
jne 0x18006b2e3
jmp 0x18006b311
mov r9d, 1
cmp word [rdx], cx
mov rcx, 0xffffffffffffffff
cmovb r9d, ecx
jmp 0x18006b314
xor r9d, r9d
movsxd rcx, r9d
test r9d, r9d
jne 0x18006b329
cmp r11, r10
jb 0x18006b337
xor ecx, ecx
cmp r11, r10
setne cl
test ecx, ecx
js 0x18006b337
mov qword [rbp + 8], rax
lea rax, [rbp + 8]
jmp 0x18006b343
mov rax, qword [rbp + 0x30]
mov qword [rbp + 0x10], rax
lea rax, [rbp + 0x10]
mov rcx, qword [rbp + 0x30]
cmp qword [rax], rcx
je 0x18006b406
mov rax, qword [rbp - 0x10]
movzx eax, byte [rax + 0x1c8]
test al, al
je 0x18006b3f6
cmp byte [r15 + 8], 0
jne 0x18006b3ee
mov qword [rbp + 0xe8], 0xf
xor edi, edi
mov qword [rbp + 0xe0], rdi
mov byte [rbp + 0xd0], dil
lea rdx, [rbp + 0xc8]
mov rcx, qword [r15]
call fcn.1800620d0
mov ebx, eax
mov dword [rsp + 0x44], eax
test eax, eax
js 0x18006b8b1
lea rdx, [rbp + 0xc8]
lea rcx, [rsp + 0x50]
call fcn.18006d970
mov qword [rax], r15
cmp qword [rbp + 0xe8], 0x10
jb 0x18006b3d0
mov rcx, qword [rbp + 0xd0]
call sub.msvcrt.dll_free
mov qword [rbp + 0xe8], 0xf
mov qword [rbp + 0xe0], rdi
mov byte [rbp + 0xd0], 0
jmp 0x18006b866
test al, al
jne 0x18006b864
cmp byte [r15 + 8], 0
je 0x18006b864
jmp 0x18006b7e6
lea rax, [rbp + 0x80]
cmp rdi, 8
cmovae rax, rsi
lea rdx, [rax + r11*2]
lea rax, [rbp + 0x80]
cmovae rax, rsi
mov ecx, 0x811c9dc5
cmp rax, rdx
je 0x18006b447
nop
imul rcx, rcx, 0x1000193
movzx r8d, word [rax]
xor rcx, r8
add rax, 2
cmp rax, rdx
jne 0x18006b430
mov edx, 0x1f31d
call qword [sym.imp.msvcrt.dll_ldiv]
mov qword [rsp + 0x68], rax
shr rax, 0x20
imul ecx, eax, 0x41a7
imul eax, dword [rsp + 0x68], 0xb14
sub ecx, eax
jns 0x18006b473
add ecx, 0x7fffffff
movsxd rdx, ecx
and rdx, r13
cmp qword [rbp - 0x28], rdx
ja 0x18006b48f
mov rcx, r13
shr rcx, 1
or rax, 0xffffffffffffffff
sub rax, rcx
add rdx, rax
mov rcx, qword [rbp - 0x48]
mov rax, qword [rcx + rdx*8]
mov rbx, qword [rcx + rdx*8 + 8]
cmp rax, rbx
je 0x18006b5e9
mov rdi, qword [rbp + 0x98]
mov r11, qword [rbp + 0x90]
mov rsi, qword [rbp + 0x80]
nop word [rax + rax]
lea rdx, [rbp + 0x80]
cmp rdi, 8
cmovae rdx, rsi
mov r10, qword [rax + 0x28]
cmp qword [rax + 0x30], 8
jb 0x18006b4e0
mov r8, qword [rax + 0x18]
jmp 0x18006b4e4
lea r8, [rax + 0x18]
mov r9, r11
cmp r10, r11
cmovb r9, r10
test r9, r9
je 0x18006b524
movzx ecx, word [rdx]
cmp word [r8], cx
jne 0x18006b50b
add r8, 2
add rdx, 2
dec r9
jne 0x18006b4f3
jmp 0x18006b524
mov r9d, 1
cmp word [r8], cx
mov rcx, 0xffffffffffffffff
cmovb r9d, ecx
xor edx, edx
jmp 0x18006b529
xor edx, edx
mov r9d, edx
movsxd rcx, r9d
test r9d, r9d
jne 0x18006b53b
cmp r10, r11
jb 0x18006b53f
mov ecx, edx
setne cl
test ecx, ecx
jns 0x18006b550
mov rax, qword [rax]
cmp rax, rbx
je 0x18006b5e9
jmp 0x18006b4c0
cmp qword [rax + 0x30], 8
jb 0x18006b55d
mov r8, qword [rax + 0x18]
jmp 0x18006b561
lea r8, [rax + 0x18]
lea rdx, [rbp + 0x80]
cmp rdi, 8
cmovae rdx, rsi
mov r9, r10
cmp r11, r10
cmovb r9, r11
test r9, r9
je 0x18006b5ae
nop
movzx ecx, word [r8]
cmp word [rdx], cx
jne 0x18006b598
add rdx, 2
add r8, 2
dec r9
jne 0x18006b580
jmp 0x18006b5ae
mov r9d, 1
cmp word [rdx], cx
mov rcx, 0xffffffffffffffff
cmovb r9d, ecx
jmp 0x18006b5b1
xor r9d, r9d
movsxd rcx, r9d
test r9d, r9d
jne 0x18006b5c6
cmp r11, r10
jb 0x18006b5d8
xor ecx, ecx
cmp r11, r10
setne cl
test ecx, ecx
js 0x18006b5d8
mov qword [rbp - 0x80], rax
lea rax, [rbp - 0x80]
mov rcx, qword [rbp - 0x60]
jmp 0x18006b5e4
mov rcx, qword [rbp - 0x60]
mov qword [rbp - 8], rcx
lea rax, [rbp - 8]
mov rax, qword [rax]
jmp 0x18006b5f0
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rax, rcx
je 0x18006b7e6
mov qword [rbp + 0xc0], 0xf
xor edi, edi
mov qword [rbp + 0xb8], rdi
mov byte [rbp + 0xa8], dil
lea rdx, [rbp + 0xa0]
mov rcx, qword [r15]
call fcn.1800620d0
mov ebx, eax
mov dword [rsp + 0x44], eax
test eax, eax
js 0x18006b957
mov r13, qword [rsp + 0x58]
mov rdi, qword [r13 + 8]
mov rbx, r13
mov r15, qword [rbp + 0xc0]
mov r14, qword [rbp + 0xb8]
mov r12, qword [rbp + 0xa8]
cmp byte [rdi + 0x49], 0
jne 0x18006b6bd
nop dword [rax + rax]
lea rdx, [rbp + 0xa8]
cmp r15, 0x10
cmovae rdx, r12
mov rsi, qword [rdi + 0x30]
cmp qword [rdi + 0x38], 0x10
jb 0x18006b680
mov rcx, qword [rdi + 0x20]
jmp 0x18006b684
lea rcx, [rdi + 0x20]
mov r8, r14
cmp rsi, r14
cmovb r8, rsi
call sub.msvcrt.dll_memcmp
movsxd rcx, eax
test eax, eax
jne 0x18006b6a7
cmp rsi, r14
jb 0x18006b6b3
cmp rsi, r14
setne al
mov ecx, eax
test ecx, ecx
js 0x18006b6b3
mov rbx, rdi
mov rdi, qword [rdi]
jmp 0x18006b6b7
mov rdi, qword [rdi + 0x10]
cmp byte [rdi + 0x49], 0
je 0x18006b660
cmp rbx, r13
je 0x18006b711
mov rdi, qword [rbx + 0x30]
cmp qword [rbx + 0x38], 0x10
jb 0x18006b6d3
mov rdx, qword [rbx + 0x20]
jmp 0x18006b6d7
lea rdx, [rbx + 0x20]
lea rcx, [rbp + 0xa8]
cmp r15, 0x10
cmovae rcx, r12
mov r8, rdi
cmp r14, rdi
cmovb r8, r14
call sub.msvcrt.dll_memcmp
movsxd rcx, eax
test eax, eax
jne 0x18006b709
cmp r14, rdi
jb 0x18006b711
cmp r14, rdi
setne al
mov ecx, eax
test ecx, ecx
jns 0x18006b79a
mov qword [rbp + 0x110], 0xf
xor edi, edi
mov qword [rbp + 0x108], rdi
mov byte [rbp + 0xf8], dil
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rbp + 0xa0]
lea rcx, [rbp + 0xf0]
call fcn.18003df70
nop
mov qword [rbp + 0x118], rdi
lea r9, [rbp + 0xf0]
mov r8, rbx
lea rdx, [rbp]
lea rcx, [rsp + 0x50]
call fcn.18006e0c0
mov rbx, qword [rax]
cmp qword [rbp + 0x110], 0x10
jb 0x18006b77f
mov rcx, qword [rbp + 0xf8]
call sub.msvcrt.dll_free
mov qword [rbp + 0x110], 0xf
mov qword [rbp + 0x108], rdi
mov byte [rbp + 0xf8], 0
jmp 0x18006b79c
xor edi, edi
mov rax, qword [rbp - 0x18]
mov qword [rbx + 0x40], rax
cmp qword [rbp + 0xc0], 0x10
jb 0x18006b7ba
mov rcx, qword [rbp + 0xa8]
call sub.msvcrt.dll_free
mov qword [rbp + 0xc0], 0xf
mov qword [rbp + 0xb8], rdi
mov byte [rbp + 0xa8], 0
mov r14, qword [rsp + 0x70]
mov r12, qword [rsp + 0x48]
mov r13, qword [rbp - 0x30]
jmp 0x18006b866
mov rcx, qword [r14 + 0x20]
movzx eax, byte [r14 + 0x18]
add al, cl
test al, 1
jne 0x18006b80a
lea rax, [rcx + 2]
shr rax, 1
cmp qword [r14 + 0x10], rax
ja 0x18006b80a
mov rcx, r14
call fcn.18003f1f0
mov rbx, qword [r14 + 0x18]
add rbx, qword [r14 + 0x20]
mov rax, rbx
shr rax, 1
mov rcx, qword [r14 + 0x10]
cmp rcx, rax
ja 0x18006b824
sub rax, rcx
lea rdi, [rax*8]
mov rax, qword [r14 + 8]
cmp qword [rdi + rax], 0
jne 0x18006b849
mov ecx, 0x10
call fcn.18003a64c
mov rcx, qword [r14 + 8]
mov qword [rdi + rcx], rax
mov rax, qword [r14 + 8]
and ebx, 1
mov rax, qword [rdi + rax]
lea rcx, [rax + rbx*8]
test rcx, rcx
je 0x18006b860
mov qword [rcx], r15
inc qword [r14 + 0x20]
xor edi, edi
cmp qword [rbp + 0x98], 8
jb 0x18006b87c
mov rcx, qword [rbp + 0x80]
call sub.msvcrt.dll_free
mov qword [rbp + 0x98], 7
mov qword [rbp + 0x90], rdi
mov word [rbp + 0x80], di
inc r12
mov qword [rsp + 0x48], r12
cmp r12, qword [rsp + 0x78]
jae 0x18006b9ce
mov rsi, qword [rbp - 0x20]
jmp 0x18006b11c
mov dword [rsp + 0x38], eax
lea rax, [0x1800186e0]
mov qword [rsp + 0x30], rax
lea rax, [0x180002160]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 1
mov r9d, 0x346
lea r8, [0x180018730]
lea rdx, [0x180016a30]
mov ecx, 1
call sym.StorageClientLib.dll_griteLog
nop
cmp qword [rbp + 0xe8], 0x10
jb 0x18006b90a
mov rcx, qword [rbp + 0xd0]
call sub.msvcrt.dll_free
mov qword [rbp + 0xe8], 0xf
mov qword [rbp + 0xe0], rdi
mov byte [rbp + 0xd0], 0
cmp qword [rbp + 0x98], 8
jb 0x18006b939
mov rcx, qword [rbp + 0x80]
call sub.msvcrt.dll_free
mov qword [rbp + 0x98], 7
mov qword [rbp + 0x90], rdi
mov word [rbp + 0x80], di
jmp 0x18006ba59
mov dword [rsp + 0x38], eax
lea rax, [0x1800186e0]
mov qword [rsp + 0x30], rax
lea rax, [0x180002160]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 1
mov r9d, 0x351
lea r8, [0x180018730]
lea rdx, [0x180016a30]
mov ecx, 1
call sym.StorageClientLib.dll_griteLog
nop
cmp qword [rbp + 0xc0], 0x10
jb 0x18006b9b0
mov rcx, qword [rbp + 0xa8]
call sub.msvcrt.dll_free
mov qword [rbp + 0xc0], 0xf
mov qword [rbp + 0xb8], rdi
mov byte [rbp + 0xa8], 0
jmp 0x18006b923
mov rax, qword [rsp + 0x58]
mov rbx, qword [rax]
cmp rbx, rax
je 0x18006ba55
nop dword [rax + rax]
lea rdx, [rbx + 0x40]
mov rcx, r14
call fcn.18003f130
cmp byte [rbx + 0x49], 0
je 0x18006ba08
mov qword [rsp + 0x20], rdi
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.18003b960
jmp 0x18006ba4e
mov rax, qword [rbx + 0x10]
cmp byte [rax + 0x49], 0
jne 0x18006ba2e
mov rbx, rax
mov rax, qword [rax]
cmp byte [rax + 0x49], 0
jne 0x18006ba4e
nop
mov rbx, rax
mov rax, qword [rax]
cmp byte [rax + 0x49], 0
je 0x18006ba20
jmp 0x18006ba4e
mov rax, qword [rbx + 8]
cmp byte [rax + 0x49], 0
jne 0x18006ba4b
cmp rbx, qword [rax + 0x10]
jne 0x18006ba4b
mov rbx, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x49], 0
je 0x18006ba38
mov rbx, rax
cmp rbx, qword [rsp + 0x58]
jne 0x18006b9e0
mov ebx, dword [rsp + 0x44]
mov r8, qword [rsp + 0x58]
mov r9, r8
mov r8, qword [r8]
lea rdx, [rbp]
lea rcx, [rsp + 0x50]
call fcn.18006eed0
mov rcx, qword [rsp + 0x58]
call sub.msvcrt.dll_free
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x60], rdi
mov rcx, qword [rbp + 0x48]
test rcx, rcx
je 0x18006ba94
call sub.msvcrt.dll_free
mov qword [rbp + 0x48], rdi
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x50], xmm0
lea rcx, [rbp + 0x28]
call fcn.18006e410
mov rcx, qword [rbp + 0x30]
call sub.msvcrt.dll_free
mov qword [rbp + 0x30], rdi
mov rcx, qword [rbp - 0x48]
test rcx, rcx
je 0x18006bac4
call sub.msvcrt.dll_free
mov qword [rbp - 0x48], rdi
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x40], xmm0
lea rcx, [rbp - 0x68]
call fcn.18006e410
mov rcx, qword [rbp - 0x60]
call sub.msvcrt.dll_free
mov qword [rbp - 0x60], rdi
mov eax, ebx
mov rcx, qword [rbp + 0x120]
xor rcx, rsp
call fcn.18003b8c0
add rsp, 0x238
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret