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

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0xe8
mov qword [rbp - 0x19], 0xfffffffffffffffe
mov rsi, r8
mov r14, rcx
xor r12d, r12d
mov dword [rsp + 0x20], r12d
mov qword [rcx], r12
mov qword [rcx + 8], r12
mov qword [rcx + 0x10], r12
mov dword [rsp + 0x20], 1
mov rbx, qword [rdx]
mov qword [rsp + 0x38], rbx
mov r15, qword [rdx + 8]
mov qword [rbp - 0x39], r15
cmp rbx, r15
je 0x140040ca5
movabs r13, 0x100000001b3
nop
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x69], xmm0
mov rcx, r12
mov qword [rbp - 0x59], rcx
movups xmm0, xmmword [rbx]
movups xmmword [rsp + 0x40], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rbp - 0x79], xmm1
mov rdi, qword [rbx + 0x20]
mov qword [rsp + 0x28], rdi
mov rdx, qword [rbx + 0x28]
mov qword [rbp + 0x6f], rdx
cmp rdi, rdx
je 0x140040c3a
nop dword [rax]
cmp byte [rdi], 4
je 0x140040bf7
cmp byte [rsi + 0x40], 0
je 0x140040a5d
lea rdx, [rdi + 0x58]
lea rcx, [rbp - 0x31]
call fcn.14010dd70
nop
lea rdx, [rbp - 0x11]
mov rcx, rax
call fcn.14010ffa0
movzx ebx, al
mov rcx, qword [rbp - 0x31]
test rcx, rcx
je 0x140040a36
mov rdx, qword [rbp - 0x21]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x140040a25
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140040cbc
call fcn.14014f740
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x31], xmm0
mov qword [rbp - 0x21], r12
test bl, bl
je 0x140040bf3
lea rcx, [rsi + 0x41]
mov r8d, 0x20
lea rdx, [rbp - 0x11]
call fcn.14016dc00
mov rdx, qword [rbp + 0x6f]
test eax, eax
jne 0x140040bf7
cmp qword [rsi + 0x10], 0
je 0x140040bc8
mov rax, qword [rdi + 0x80]
mov qword [rsp + 0x30], rax
mov rcx, qword [rdi + 0x88]
mov qword [rbp - 0x49], rcx
cmp rax, rcx
je 0x140040bf7
mov r11, qword [rsi + 0x30]
mov qword [rbp - 0x41], r11
mov r10, qword [rsi + 0x18]
mov qword [rbp + 0x7f], r10
mov r12, qword [rsi + 8]
lea r14, [rax + 8]
mov r9, qword [r14 + 0x10]
mov r8, r14
mov rcx, qword [r14 + 0x18]
cmp rcx, 0x10
jb 0x140040ab4
mov r8, qword [r14]
movabs rdx, 0xcbf29ce484222325
xor eax, eax
test r9, r9
je 0x140040ae8
nop word [rax + rax]
movzx ecx, byte [rax + r8]
xor rdx, rcx
imul rdx, r13
inc rax
cmp rax, r9
jb 0x140040ad0
mov rcx, qword [r14 + 0x18]
mov rax, r11
and rax, rdx
shl rax, 4
mov r13, qword [rax + r10]
mov rbx, r13
add rax, 8
mov qword [rbp - 0x51], rax
cmp r13, r12
jne 0x140040b0b
mov rax, r12
jmp 0x140040b12
mov rax, qword [rax + r10]
mov rax, qword [rax]
cmp rbx, rax
je 0x140040b92
lea rdi, [rbx + 0x10]
mov rdx, r14
cmp rcx, 0x10
jb 0x140040b27
mov rdx, qword [r14]
mov rsi, qword [rdi + 0x10]
mov rcx, rdi
mov r15, qword [rdi + 0x18]
cmp r15, 0x10
jb 0x140040b3b
mov rcx, qword [rdi]
cmp rsi, qword [r14 + 0x10]
jne 0x140040b51
mov r8, rsi
call fcn.14016dc00
test eax, eax
je 0x140040b5e
mov r10, qword [rbp + 0x7f]
mov rbx, qword [rbx]
mov rax, qword [rbp - 0x51]
mov rcx, qword [r14 + 0x18]
jmp 0x140040b01
cmp r15, 0x10
jb 0x140040b67
mov rdi, qword [rdi]
mov rcx, r14
cmp qword [r14 + 0x18], 0x10
jb 0x140040b74
mov rcx, qword [r14]
mov r8, qword [r14 + 0x10]
cmp r8, rsi
jne 0x140040b8e
mov rdx, rdi
call fcn.14016dc00
test eax, eax
jne 0x140040b8e
cmp rbx, r12
jne 0x140040bc3
mov r10, qword [rbp + 0x7f]
mov rax, qword [rsp + 0x30]
add rax, 0x30
mov qword [rsp + 0x30], rax
add r14, 0x30
cmp rax, qword [rbp - 0x49]
mov r11, qword [rbp - 0x41]
movabs r13, 0x100000001b3
jne 0x140040aa0
mov rdi, qword [rsp + 0x28]
jmp 0x140040bf3
mov rdi, qword [rsp + 0x28]
mov rbx, qword [rbp - 0x61]
mov r8, rdi
mov rdx, rbx
lea rcx, [rbp - 0x69]
cmp qword [rbp - 0x59], rbx
je 0x140040bee
call fcn.140035fa0
add rbx, 0x98
mov qword [rbp - 0x61], rbx
jmp 0x140040bf3
call fcn.140033a70
mov rdx, qword [rbp + 0x6f]
add rdi, 0x98
mov qword [rsp + 0x28], rdi
cmp rdi, rdx
mov rsi, qword [rbp + 0x77]
movabs r13, 0x100000001b3
mov r12d, 0
jne 0x1400409c0
movups xmm1, xmmword [rbp - 0x79]
movups xmm0, xmmword [rsp + 0x40]
mov rcx, qword [rbp - 0x59]
mov rbx, qword [rsp + 0x38]
mov r14, qword [rbp + 0x67]
mov r15, qword [rbp - 0x39]
mov rax, qword [rbx + 0x28]
cmp qword [rbx + 0x20], rax
je 0x140040c8a
mov rdx, qword [r14 + 8]
cmp qword [r14 + 0x10], rdx
je 0x140040c7c
movups xmmword [rdx], xmm0
movups xmmword [rdx + 0x10], xmm1
mov rax, qword [rbp - 0x69]
mov qword [rdx + 0x20], rax
mov rax, qword [rbp - 0x61]
mov qword [rdx + 0x28], rax
mov qword [rdx + 0x30], rcx
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x69], xmm0
mov qword [rbp - 0x59], r12
add qword [r14 + 8], 0x38
jmp 0x140040c8a
lea r8, [rsp + 0x40]
mov rcx, r14
call fcn.140034480
nop
lea rcx, [rbp - 0x69]
call fcn.140037410
add rbx, 0x38
mov qword [rsp + 0x38], rbx
cmp rbx, r15
jne 0x140040980
mov rax, r14
add rsp, 0xe8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.1401705dc
int3