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

Disassembly:
test rdx, rdx
je 0x18002594c
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x20]
sub rsp, 0x120
mov rax, qword [0x1800ef040]
xor rax, rsp
mov qword [rbp + 0x10], rax
mov esi, r8d
mov r15, rdx
mov r12, rcx
mov qword [rbp - 0x20], rdx
mov eax, r8d
mov ecx, 0x7fff
and eax, ecx
mov edi, 0xffffffff
cmp r8d, edi
cmove eax, ecx
cmp eax, 0x3fff
ja 0x180025926
mov dword [rsp + 0x28], 0xa8a45978
mov dword [rsp + 0x24], 0xb6dd442e
lea r8, [rsp + 0x24]
lea rdx, [rsp + 0x30]
mov rcx, qword [0x1801ec328]
call fcn.180040490
mov rcx, qword [rax]
add rcx, 0x18
lea r8, [rsp + 0x28]
lea rdx, [rbp - 0x80]
call fcn.1800401e0
mov rcx, qword [rax]
movsxd rax, dword [rcx + 0x1c]
mov r13, qword [rax + r15]
test r13, r13
je 0x18002564a
mov ebx, dword [r13 + 0x10]
mov r14d, ebx
shr r14d, 0xf
mov dword [rsp + 0x20], 0xdc74a14c
mov dword [rsp + 0x2c], 0xae42345f
lea r8, [rsp + 0x2c]
lea rdx, [rsp + 0x60]
mov rcx, qword [0x1801ec328]
call fcn.180040490
mov rcx, qword [rax]
add rcx, 0x18
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x40]
call fcn.1800401e0
mov rcx, qword [rax]
movsxd rax, dword [rcx + 0x1c]
mov ecx, dword [rax + r13]
and ecx, 1
sub r14d, ecx
mov eax, ebx
mov ecx, 0x7fff
and eax, ecx
cmp ebx, edi
cmove eax, ecx
shl r14d, 0xf
mov edi, eax
or edi, r14d
cmp edi, esi
jne 0x180025926
mov rax, qword [r15]
mov rdx, qword [rax + 0x128]
mov rcx, r15
call rdx
mov rdi, qword [rax]
mov rbx, 0xffffffffffffffff
mov r9d, 0x811c9dc5
mov rdx, rbx
inc rdx
cmp byte [rdi + rdx], 0
jne 0x180025674
xor r13d, r13d
mov r8d, r13d
test rdx, rdx
je 0x1800256a9
mov eax, r13d
nop dword [rax + rax]
movsx eax, byte [rax + rdi]
xor eax, r9d
imul r9d, eax, 0x1000193
inc r8d
mov eax, r8d
cmp rax, rdx
jb 0x180025690
mov dword [rsp + 0x20], r9d
lea rdx, [rsp + 0x20]
mov rcx, r12
call fcn.180025e60
mov rdx, qword [rax + 8]
cmp rdx, qword [rax + 0x10]
je 0x1800256cf
mov qword [rdx], r15
add qword [rax + 8], 8
jmp 0x1800256db
lea r8, [rbp - 0x20]
mov rcx, rax
call fcn.180015f50
xorps xmm0, xmm0
movups xmmword [rbp - 0x10], xmm0
mov qword [rbp], r13
mov qword [rbp + 8], r13
nop word [rax + rax]
inc rbx
cmp byte [rdi + rbx], r13b
jne 0x1800256f0
mov r8, rbx
mov rdx, rdi
lea rcx, [rbp - 0x10]
call fcn.18000ecb0
nop
lea rdx, [rsp + 0x20]
mov rcx, r15
call fcn.180024fe0
mov edx, dword [rax]
lea rcx, [rbp - 0x40]
call fcn.180002430
mov r12, rax
movabs rax, 0x7fffffffffffffff
mov rcx, rax
mov r15, qword [rbp]
sub rcx, r15
cmp rcx, 9
jb 0x18002594d
lea r14, [rbp - 0x10]
cmp qword [rbp + 8], 0xf
cmova r14, qword [rbp - 0x10]
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x50], xmm1
lea rsi, [r15 + 9]
mov ebx, 0xf
lea rdi, [rsp + 0x40]
cmp rsi, rbx
jbe 0x1800257f2
mov rbx, rsi
or rbx, 0xf
cmp rbx, rax
jbe 0x1800257ac
mov rbx, rax
movabs rax, 0x8000000000000000
add rax, 0x27
mov rcx, rax
call fcn.18008d360
test rax, rax
je 0x1800257d4
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x1800257ed
mov eax, 0x16
cmp rbx, rax
cmovb rbx, rax
lea rcx, [rbx + 1]
cmp rcx, 0x1000
jb 0x1800257db
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x180025953
jmp 0x180025791
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
test rcx, rcx
je 0x1800257ea
call fcn.18008d360
mov rdi, rax
jmp 0x1800257ed
mov rdi, r13
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x58], rbx
movsd xmm0, qword [str.Added___]
movsd qword [rdi], xmm0
movzx eax, byte [0x1800dc728]
mov byte [rdi + 8], al
lea rcx, [rdi + 9]
mov r8, r15
mov rdx, r14
call sub.VCRUNTIME140.dll_memcpy
mov byte [rdi + rsi], 0
mov r8d, 3
lea rdx, [0x1800dc718]
lea rcx, [rsp + 0x40]
call fcn.18000a8b0
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x80], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x70], xmm1
mov qword [rax + 0x10], r13
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov r9, r12
lea r8, [rbp - 0x80]
lea rcx, [rsp + 0x60]
call fcn.180012a20
nop
lea rax, [rsp + 0x60]
cmp qword [rsp + 0x78], 0xf
cmova rax, qword [rsp + 0x60]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x38], rax
mov qword [rbp - 0x20], r13
mov qword [rbp - 0x18], r13
movaps xmm0, xmmword [rbp - 0x20]
movdqa xmmword [rbp - 0x20], xmm0
movaps xmm1, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm1
lea r8, [rbp - 0x20]
lea rdx, [rsp + 0x30]
lea rcx, [rbp - 0x60]
call fcn.18001cae0
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0xf
jbe 0x1800258c9
mov rax, qword [rax]
mov rdx, rax
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.18001d410
lea rdx, [0x18000e150]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
nop
lea rcx, [rbp - 0x60]
call fcn.18000a7b0
nop
lea rcx, [rsp + 0x60]
call fcn.18000a7b0
nop
lea rcx, [rbp - 0x80]
call fcn.18000a7b0
nop
lea rcx, [rsp + 0x40]
call fcn.18000a7b0
nop
lea rcx, [rbp - 0x40]
call fcn.18000a7b0
nop
lea rcx, [rbp - 0x10]
call fcn.18000a7b0
mov rcx, qword [rbp + 0x10]
xor rcx, rsp
call fcn.18008d340
mov rbx, qword [rsp + 0x170]
add rsp, 0x120
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.180001c30
nop
call fcn.180001b90
int3