Function at 0x180049390
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 [0x1800dca60]
movaps xmmword [rbp - 0x30], xmm0
mov dword [rbp - 0x20], 0xb6bc2940
lea rdi, [rbp - 0x30]
mov rcx, rdi
call fcn.18000fee0
mov ecx, 0x20
call fcn.1800aa410
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 0x180049511
add rdx, rdx
mov rdx, qword [r8 + rdx*8]
cmp qword [rcx + 0x20], 0x10
jne 0x1800494ff
nop dword [rax + rax]
cmp qword [rcx + 0x28], 0x10
jb 0x1800494e0
mov r8, qword [rcx + 0x10]
jmp 0x1800494e4
lea r8, [rcx + 0x10]
movdqu xmm0, xmmword [rax]
movdqu xmm1, xmmword [r8]
pcmpeqb xmm1, xmm0
pmovmskb r8d, xmm1
cmp r8d, 0xffff
je 0x180049513
cmp rcx, rdx
je 0x180049511
mov rcx, qword [rcx + 8]
cmp qword [rcx + 0x20], 0x10
je 0x1800494d0
jmp 0x1800494ff
xor ecx, ecx
test rcx, rcx
cmovne rbx, rcx
mov edx, 0x20
mov rcx, rax
call fcn.1800aa400
cmp rbx, qword [rsi + 8]
je 0x180049718
lea rcx, [rbx + 0x30]
xor edx, edx
call fcn.180038e90
cmp eax, 0x5767ece
je 0x18004954e
cmp eax, 0xdd60b16f
jne 0x180049718
lea rcx, [rbx + 0x10]
mov r8, qword [rbx + 0x20]
cmp qword [rbx + 0x28], 0x10
mov rax, rcx
jb 0x180049564
mov rax, qword [rbx + 0x10]
test r8, r8
je 0x180049607
mov edx, r8d
and edx, 3
cmp r8, 4
jae 0x180049588
movabs r9, 0xcbf29ce484222325
xor r10d, r10d
jmp 0x1800495dc
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 0x1800495a0
mov r15, r9
test rdx, rdx
je 0x180049607
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 0x1800495f0
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 0x180049633
cmp r9, rbx
jne 0x180049656
mov r8, qword [rbx]
mov qword [rax + rdx*8], r8
jmp 0x180049656
lea r8, [r15*2 + 1]
cmp r9, rbx
je 0x18004964a
mov rdx, qword [rbx + 8]
mov qword [rax + r8*8], rdx
jmp 0x180049656
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.18000bdb0
mov edx, 0x50
mov rcx, rbx
call fcn.1800aa400
lea rbx, [rsi + 0x40]
mov rcx, rdi
mov rdx, rbx
call fcn.180062f70
cmp rbx, rdi
je 0x1800496dd
mov rax, qword [rsi + 0x58]
cmp rax, 0x10
jb 0x1800496c8
mov rcx, qword [rbx]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x1800496c3
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x180049726
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1800aa400
movdqu xmm0, xmmword [rbp - 0x30]
movdqu xmm1, xmmword [rbp - 0x20]
movdqu xmmword [rbx + 0x10], xmm1
movdqu xmmword [rbx], xmm0
jmp 0x180049718
mov rax, qword [rbp - 0x18]
cmp rax, 0x10
jb 0x180049718
mov rcx, qword [rbp - 0x30]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x180049713
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x18004972b
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1800aa400
nop
add rsp, 0x58
pop rbx
pop rdi
pop rsi
pop r14
pop r15
pop rbp
ret
call fcn.1800b3cac
call fcn.1800b3cac
int3