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

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x20
mov rax, qword [rcx + 0x10]
test rax, rax
je 0x140032f5c
mov rsi, rcx
mov r8, qword [rcx + 8]
mov rcx, qword [rcx + 0x38]
shr rcx, 3
cmp rcx, rax
jbe 0x140032e9a
mov rdx, qword [r8]
mov rcx, rsi
add rsp, 0x20
pop rbx
pop rdi
pop rsi
jmp 0x140032f70
mov rax, qword [r8 + 8]
mov qword [rax], 0
mov rdi, qword [r8]
test rdi, rdi
je 0x140032ed1
nop dword [rax]
mov rbx, qword [rdi]
lea rcx, [rdi + 0x10]
call fcn.140026ff0
mov edx, 0x50
mov rcx, rdi
call fcn.1400f0ba0
mov rdi, rbx
test rbx, rbx
jne 0x140032eb0
mov rax, qword [rsi + 8]
mov qword [rax], rax
mov rax, qword [rsi + 8]
mov qword [rax + 8], rax
mov qword [rsi + 0x10], 0
mov rdx, qword [rsi + 0x18]
mov rax, qword [rsi + 0x20]
cmp rdx, rax
je 0x140032f5c
mov rcx, qword [rsi + 8]
mov r9, rax
sub r9, rdx
add r9, 0xfffffffffffffff8
cmp r9, 0x18
jae 0x140032f0e
mov r8, rdx
jmp 0x140032f50
shr r9, 3
inc r9
mov r10, r9
and r10, 0xfffffffffffffffc
lea r8, [rdx + r10*8]
movq xmm0, rcx
pshufd xmm0, xmm0, 0x44
xor r11d, r11d
nop dword [rax]
movdqu xmmword [rdx + r11*8], xmm0
movdqu xmmword [rdx + r11*8 + 0x10], xmm0
add r11, 4
cmp r10, r11
jne 0x140032f30
cmp r9, r10
je 0x140032f5c
nop dword [rax + rax]
mov qword [r8], rcx
add r8, 8
cmp r8, rax
jne 0x140032f50
add rsp, 0x20
pop rbx
pop rdi
pop rsi
ret
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov rbx, rdx
cmp rdx, r8
je 0x140032f9f
mov rsi, r8
mov rdi, rcx
mov r8, qword [rbx + 0x20]
cmp qword [rbx + 0x28], 0x10
jb 0x140032fa7
mov rax, qword [rbx + 0x10]
jmp 0x140032fab
mov rsi, rbx
jmp 0x1400330f5
lea rax, [rbx + 0x10]
mov r14, qword [rdi + 0x18]
test r8, r8
je 0x140032fd9
mov ecx, r8d
and ecx, 3
movabs rdx, 0x100000001b3
cmp r8, 4
jae 0x140032fe8
movabs r9, 0xcbf29ce484222325
xor r10d, r10d
jmp 0x14003303c
movabs r8, 0xcbf29ce484222325
jmp 0x140033067
and r8, 0xfffffffffffffffc
movabs r9, 0xcbf29ce484222325
xor r10d, r10d
nop dword [rax]
movzx r11d, byte [rax + r10]
xor r11, r9
imul r11, rdx
movzx r9d, byte [rax + r10 + 1]
xor r9, r11
imul r9, rdx
movzx r11d, byte [rax + r10 + 2]
xor r11, r9
imul r11, rdx
movzx r9d, byte [rax + r10 + 3]
xor r9, r11
imul r9, rdx
add r10, 4
cmp r8, r10
jne 0x140033000
mov r8, r9
test rcx, rcx
je 0x140033067
add rax, r10
xor r10d, r10d
nop word [rax + rax]
movzx r8d, byte [rax + r10]
xor r8, r9
imul r8, rdx
inc r10
mov r9, r8
cmp rcx, r10
jne 0x140033050
mov rax, qword [rdi + 8]
mov qword [rsp + 0x30], rax
and r8, qword [rdi + 0x30]
mov rax, qword [rbx + 8]
mov qword [rsp + 0x38], rax
lea rax, [r8 + r8]
lea rcx, [r8*2 + 1]
mov qword [rsp + 0x40], rcx
shl r8, 4
lea r13, [r14 + r8]
mov r15, qword [r14 + r8]
mov qword [rsp + 0x28], r14
mov r12, qword [r14 + rax*8 + 8]
mov rbp, rbx
jmp 0x1400330b5
cmp rbp, rsi
je 0x1400330e9
mov r14, rbp
mov rbp, qword [rbp]
lea rcx, [r14 + 0x10]
call fcn.140026ff0
mov edx, 0x50
mov rcx, r14
call fcn.1400f0ba0
dec qword [rdi + 0x10]
cmp r14, r12
je 0x140033109
cmp rbp, rsi
jne 0x1400330b0
cmp r15, rbx
jne 0x1400330b0
mov qword [r13], rsi
mov rax, qword [rsp + 0x38]
mov qword [rax], rsi
mov qword [rsi + 8], rax
mov rax, rsi
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rsp + 0x38]
cmp r15, rbx
mov rcx, qword [rsp + 0x28]
jne 0x140033121
mov rax, qword [rsp + 0x30]
mov qword [r13], rax
mov rdx, qword [rsp + 0x40]
mov qword [rcx + rdx*8], rax
cmp rbp, rsi
je 0x1400330e9
movabs r8, 0xcbf29ce484222325
movabs r14, 0x100000001b3
cmp qword [rbp + 0x28], 0x10
jb 0x140033150
mov rax, qword [rbp + 0x10]
jmp 0x140033154
lea rax, [rbp + 0x10]
mov rcx, qword [rbp + 0x20]
mov r13, r8
test rcx, rcx
je 0x1400331e7
cmp rcx, 4
jae 0x14003316e
xor edx, edx
jmp 0x1400331bc
mov r9, rcx
and r9, 0xfffffffffffffffc
xor edx, edx
nop word [rax + rax]
movzx r10d, byte [rax + rdx]
xor r10, r8
imul r10, r14
movzx r8d, byte [rax + rdx + 1]
xor r8, r10
imul r8, r14
movzx r10d, byte [rax + rdx + 2]
xor r10, r8
imul r10, r14
movzx r8d, byte [rax + rdx + 3]
xor r8, r10
imul r8, r14
add rdx, 4
cmp r9, rdx
jne 0x140033180
mov r13, r8
and ecx, 3
je 0x1400331e7
add rax, rdx
xor edx, edx
nop dword [rax]
movzx r13d, byte [rax + rdx]
xor r13, r8
imul r13, r14
inc rdx
mov r8, r13
cmp rcx, rdx
jne 0x1400331d0
and r13, qword [rdi + 0x30]
lea rax, [r13*2]
lea r15, [r13*2 + 1]
shl r13, 4
mov rcx, qword [rsp + 0x28]
add r13, rcx
mov r12, qword [rcx + rax*8 + 8]
nop dword [rax]
mov rbx, rbp
mov rbp, qword [rbp]
lea rcx, [rbx + 0x10]
call fcn.140026ff0
mov edx, 0x50
mov rcx, rbx
call fcn.1400f0ba0
dec qword [rdi + 0x10]
cmp rbx, r12
je 0x140033240
cmp rbp, rsi
jne 0x140033210
jmp 0x1400330e5
mov rcx, qword [rsp + 0x30]
mov qword [r13], rcx
mov rax, qword [rsp + 0x28]
mov qword [rax + r15*8], rcx
cmp rbp, rsi
movabs r8, 0xcbf29ce484222325
jne 0x140033143
jmp 0x1400330e9