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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov r12, r8
mov qword [rsp + 0x20], rdx
mov r15, qword [r12 + 0x10]
cmp qword [r12 + 0x18], 0xf
mov rdi, r12
jbe 0x14004b42c
mov rdi, qword [r12]
movabs rbx, 0xcbf29ce484222325
test r15, r15
je 0x14004b459
movabs rax, 0x100000001b3
lea rdx, [r15 - 1]
mov esi, r15d
and esi, 3
cmp rdx, 3
jae 0x14004b45e
xor edx, edx
jmp 0x14004b4a8
mov rbp, rbx
jmp 0x14004b4d7
mov r8, r15
sub r8, rsi
xor edx, edx
nop word cs:[rax + rax]
movzx ebp, byte [rdi + rdx]
xor rbp, rbx
imul rbp, rax
movzx ebx, byte [rdi + rdx + 1]
xor rbx, rbp
imul rbx, rax
movzx ebp, byte [rdi + rdx + 2]
xor rbp, rbx
imul rbp, rax
movzx ebx, byte [rdi + rdx + 3]
xor rbx, rbp
imul rbx, rax
add rdx, 4
cmp r8, rdx
jne 0x14004b470
mov rbp, rbx
test rsi, rsi
je 0x14004b4d7
add rdx, rdi
neg rsi
nop word cs:[rax + rax]
movzx ebp, byte [rdx]
xor rbp, rbx
imul rbp, rax
add rdx, 1
mov rbx, rbp
add rsi, 1
jne 0x14004b4c0
and rbp, qword [rcx + 0x30]
mov r14, qword [rcx + 8]
mov qword [rsp + 0x30], rcx
mov rax, qword [rcx + 0x18]
mov rcx, rbp
shl rcx, 4
mov r13, rbp
add r13, rbp
mov rbx, qword [rax + rcx]
mov rbp, r14
cmp rbx, r14
je 0x14004b520
lea rcx, [r13*8]
or rcx, 8
mov rax, qword [rax + rcx]
mov rbp, qword [rax]
nop word cs:[rax + rax]
cmp rbx, rbp
je 0x14004b55f
mov rbp, qword [rbp + 8]
cmp r15, qword [rbp + 0x20]
jne 0x14004b520
cmp qword [rbp + 0x28], 0xf
jbe 0x14004b540
mov rdx, qword [rbp + 0x10]
jmp 0x14004b544
lea rdx, [rbp + 0x10]
mov rcx, rdi
mov r8, r15
call fcn.1400f1140
test eax, eax
jne 0x14004b520
xor eax, eax
mov rsi, qword [rsp + 0x20]
jmp 0x14004b6f9
mov r15, qword [r14]
mov rdi, qword [r15 + 8]
mov ecx, 0x30
call fcn.1400edc90
mov rsi, rax
test r15, r15
mov qword [rsp + 0x28], rdi
mov rax, rdi
cmove rax, rsi
mov rcx, r15
cmove rcx, rsi
mov qword [rsi], rcx
mov qword [rsi + 8], rax
xorps xmm0, xmm0
movups xmmword [rsi + 0x20], xmm0
mov rbp, qword [r12 + 0x10]
cmp qword [r12 + 0x18], 0xf
jbe 0x14004b5a8
mov r12, qword [r12]
mov rdi, rsi
add rdi, 0x10
cmp rbp, 0xf
ja 0x14004b5c5
movups xmm0, xmmword [r12]
movups xmmword [rdi], xmm0
mov r14d, 0xf
jmp 0x14004b618
mov r14, rbp
or r14, 0xf
movabs rax, 0x7fffffffffffffff
cmp r14, rax
cmovae r14, rax
cmp r14, 0xfff
jb 0x14004b5fd
lea rcx, [r14 + 0x28]
call fcn.1400edc90
lea rcx, [rax + 0x27]
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
jmp 0x14004b609
lea rcx, [r14 + 1]
call fcn.1400edc90
mov rcx, rax
mov qword [rdi], rcx
lea r8, [rbp + 1]
mov rdx, r12
call fcn.1400f0ce0
mov qword [rsi + 0x20], rbp
mov qword [rsi + 0x28], r14
mov rcx, qword [rsp + 0x30]
mov rax, qword [rcx + 0x10]
movabs rdx, 0x555555555555554
cmp rax, rdx
je 0x14004b713
add rax, 1
mov qword [rcx + 0x10], rax
mov qword [r15 + 8], rsi
mov rax, qword [rsp + 0x28]
mov qword [rax], rsi
mov rsi, qword [rcx + 8]
mov rbp, qword [rsi]
mov rax, qword [rbp]
cmp rax, rbx
je 0x14004b691
mov rdx, qword [rbp + 8]
mov qword [rdx], rax
mov rdx, qword [rax + 8]
mov qword [rdx], rbx
mov rdx, qword [rbx + 8]
mov qword [rdx], rbp
mov rdi, qword [rbx + 8]
mov rdx, qword [rax + 8]
mov qword [rbx + 8], rdx
mov rdx, qword [rbp + 8]
mov qword [rax + 8], rdx
mov qword [rbp + 8], rdi
mov rsi, qword [rcx + 8]
mov rdx, qword [rcx + 0x18]
lea rax, [rdx + r13*8]
mov rdi, qword [rdx + r13*8]
cmp rdi, rsi
je 0x14004b6d5
mov r8, rbp
cmp rdi, rbx
mov rsi, qword [rsp + 0x20]
je 0x14004b6ef
or r13, 1
mov rax, qword [rdx + r13*8]
mov rax, qword [rax]
mov qword [rdx + r13*8], rax
cmp rbp, rax
je 0x14004b6f2
mov rdx, qword [rcx + 0x18]
lea rax, [rdx + r13*8]
mov rdx, qword [rdx + r13*8]
mov r8, qword [rdx + 8]
jmp 0x14004b6ef
mov qword [rax], rbp
shl r13, 3
or r13, 8
add r13, qword [rcx + 0x18]
mov rax, r13
mov r8, rbp
mov rsi, qword [rsp + 0x20]
mov qword [rax], r8
call fcn.14004b730
mov al, 1
mov qword [rsi], rbp
mov byte [rsi + 8], al
mov rax, rsi
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, str.list_T__too_long
call fcn.1400ef190
ud2