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

Disassembly:
push rbp
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x58
lea rbp, [rsp + 0x50]
mov qword [rbp], 0xfffffffffffffffe
mov rsi, rcx
movaps xmm0, xmmword [0x1800d9a70]
movaps xmmword [rbp - 0x30], xmm0
mov dword [rbp - 0x20], 0x8ccbdcfb
lea rdi, [rbp - 0x30]
mov rcx, rdi
call fcn.1800102f0
mov ecx, 0x20
call fcn.1800a77e0
movdqa xmm0, xmmword [rbp - 0x30]
movdqu xmmword [rax], xmm0
movzx ecx, byte [rax]
movabs r15, 0xcbf29ce484222325
xor rcx, r15
movabs r14, 0x100000001b3
imul rcx, r14
movzx edx, byte [rax + 1]
xor rdx, rcx
imul rdx, r14
movzx ecx, byte [rax + 2]
xor rcx, rdx
imul rcx, r14
movzx edx, byte [rax + 3]
xor rdx, rcx
imul rdx, r14
movzx ecx, byte [rax + 4]
xor rcx, rdx
imul rcx, r14
movzx edx, byte [rax + 5]
xor rdx, rcx
imul rdx, r14
movzx ecx, byte [rax + 6]
xor rcx, rdx
imul rcx, r14
movzx edx, byte [rax + 7]
xor rdx, rcx
imul rdx, r14
movzx ecx, byte [rax + 8]
xor rcx, rdx
imul rcx, r14
movzx edx, byte [rax + 9]
xor rdx, rcx
imul rdx, r14
movzx ecx, byte [rax + 0xa]
xor rcx, rdx
imul rcx, r14
movzx edx, byte [rax + 0xb]
xor rdx, rcx
imul rdx, r14
movzx ecx, byte [rax + 0xc]
xor rcx, rdx
imul rcx, r14
movzx edx, byte [rax + 0xd]
xor rdx, rcx
imul rdx, r14
movzx ecx, byte [rax + 0xe]
xor rcx, rdx
imul rcx, r14
movzx edx, byte [rax + 0xf]
xor rdx, rcx
imul rdx, r14
and rdx, qword [rsi + 0x30]
mov rbx, qword [rsi + 8]
mov r8, qword [rsi + 0x18]
mov rcx, rdx
shl rcx, 4
mov rcx, qword [r8 + rcx + 8]
cmp rcx, rbx
je 0x180049601
add rdx, rdx
mov rdx, qword [r8 + rdx*8]
cmp qword [rcx + 0x20], 0x10
jne 0x1800495ef
nop dword [rax + rax]
cmp qword [rcx + 0x28], 0x10
jb 0x1800495d0
mov r8, qword [rcx + 0x10]
jmp 0x1800495d4
lea r8, [rcx + 0x10]
movdqu xmm0, xmmword [rax]
movdqu xmm1, xmmword [r8]
pcmpeqb xmm1, xmm0
pmovmskb r8d, xmm1
cmp r8d, 0xffff
je 0x180049603
cmp rcx, rdx
je 0x180049601
mov rcx, qword [rcx + 8]
cmp qword [rcx + 0x20], 0x10
je 0x1800495c0
jmp 0x1800495ef
xor ecx, ecx
test rcx, rcx
cmovne rbx, rcx
mov edx, 0x20
mov rcx, rax
call fcn.1800a77d0
cmp rbx, qword [rsi + 8]
je 0x180049808
lea rcx, [rbx + 0x30]
xor edx, edx
call fcn.1800394d0
cmp eax, 0x5767ece
je 0x18004963e
cmp eax, 0xdd60b16f
jne 0x180049808
lea rcx, [rbx + 0x10]
mov r8, qword [rbx + 0x20]
cmp qword [rbx + 0x28], 0x10
mov rax, rcx
jb 0x180049654
mov rax, qword [rbx + 0x10]
test r8, r8
je 0x1800496f7
mov edx, r8d
and edx, 3
cmp r8, 4
jae 0x180049678
movabs r9, 0xcbf29ce484222325
xor r10d, r10d
jmp 0x1800496cc
and r8, 0xfffffffffffffffc
movabs r9, 0xcbf29ce484222325
xor r10d, r10d
nop dword [rax]
movzx r11d, byte [rax + r10]
xor r11, r9
imul r11, r14
movzx r9d, byte [rax + r10 + 1]
xor r9, r11
imul r9, r14
movzx r11d, byte [rax + r10 + 2]
xor r11, r9
imul r11, r14
movzx r9d, byte [rax + r10 + 3]
xor r9, r11
imul r9, r14
add r10, 4
cmp r8, r10
jne 0x180049690
mov r15, r9
test rdx, rdx
je 0x1800496f7
add rax, r10
xor r8d, r8d
nop word [rax + rax]
movzx r15d, byte [rax + r8]
xor r15, r9
imul r15, r14
inc r8
mov r9, r15
cmp rdx, r8
jne 0x1800496e0
and r15, qword [rsi + 0x30]
mov rax, qword [rsi + 0x18]
lea rdx, [r15 + r15]
mov r8, r15
shl r8, 4
mov r9, qword [rax + r8]
cmp qword [rax + rdx*8 + 8], rbx
je 0x180049723
cmp r9, rbx
jne 0x180049746
mov r8, qword [rbx]
mov qword [rax + rdx*8], r8
jmp 0x180049746
lea r8, [r15*2 + 1]
cmp r9, rbx
je 0x18004973a
mov rdx, qword [rbx + 8]
mov qword [rax + r8*8], rdx
jmp 0x180049746
mov r9, qword [rsi + 8]
mov qword [rax + rdx*8], r9
mov qword [rax + r8*8], r9
mov rax, qword [rbx]
dec qword [rsi + 0x10]
mov rdx, qword [rbx + 8]
mov qword [rdx], rax
mov qword [rax + 8], rdx
call fcn.18000c1c0
mov edx, 0x50
mov rcx, rbx
call fcn.1800a77d0
lea rbx, [rsi + 0x40]
mov rcx, rdi
mov rdx, rbx
call fcn.180060b90
cmp rbx, rdi
je 0x1800497cd
mov rax, qword [rsi + 0x58]
cmp rax, 0x10
jb 0x1800497b8
mov rcx, qword [rbx]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x1800497b3
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x180049816
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1800a77d0
movdqu xmm0, xmmword [rbp - 0x30]
movdqu xmm1, xmmword [rbp - 0x20]
movdqu xmmword [rbx + 0x10], xmm1
movdqu xmmword [rbx], xmm0
jmp 0x180049808
mov rax, qword [rbp - 0x18]
cmp rax, 0x10
jb 0x180049808
mov rcx, qword [rbp - 0x30]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x180049803
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x18004981b
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1800a77d0
nop
add rsp, 0x58
pop rbx
pop rdi
pop rsi
pop r14
pop r15
pop rbp
ret
call fcn.1800b109c
call fcn.1800b109c
int3