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

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rdx
push r14
sub rsp, 0x80
mov r9, rdx
mov r14, rcx
cmp rcx, rdx
je 0x180141cb1
mov qword [rax - 0x28], r12
lea r12, [rcx + 0x30]
cmp r12, rdx
je 0x180141c9f
mov qword [rax + 0x18], rbx
mov qword [rax - 0x10], rbp
mov qword [rax - 0x18], rsi
lea rsi, [r12 + 0x20]
mov qword [rax - 0x20], rdi
mov qword [rax - 0x30], r13
mov qword [rax - 0x38], r15
mov qword [rsp + 0x90], rsi
nop word [rax + rax]
movups xmm2, xmmword [r12 + 0x10]
lea r8, [rsp + 0x20]
mov r15, r12
movups xmm1, xmmword [r12]
mov ebx, 0x811c9dc5
mov rdx, 0xffffffffffffffff
movups xmmword [rsp + 0x30], xmm2
movups xmmword [rsp + 0x20], xmm1
mov qword [rsi - 0x10], 0
mov qword [rsi - 8], 0xf
movq r13, xmm1
mov byte [r12], 0
movsd xmm0, qword [rsi]
mov eax, dword [rsi + 8]
psrldq xmm2, 8
movq rdi, xmm2
movsd qword [rsp + 0x40], xmm0
cmp rdi, 0xf
mov dword [rsp + 0x48], eax
mov qword [rsp + 0xa8], rdi
cmova r8, r13
nop
inc rdx
cmp byte [r8 + rdx], 0
jne 0x180141950
xor ecx, ecx
test rdx, rdx
je 0x180141985
nop dword [rax]
nop word [rax + rax]
movsx eax, byte [r8 + rcx]
inc rcx
xor eax, ebx
imul ebx, eax, 0x1000193
cmp rcx, rdx
jb 0x180141970
mov edx, 0xc10bf213
lea rcx, [0x180254b99]
call fcn.1800ea660
mov r11d, eax
cmp ebx, eax
je 0x180141bf4
mov r10, qword [r14 + 0x18]
mov r8, r14
cmp r10, 0xf
jbe 0x1801419b1
mov r8, qword [r14]
mov rcx, 0xffffffffffffffff
mov r9d, 0x811c9dc5
nop
inc rcx
cmp byte [r8 + rcx], 0
jne 0x1801419c0
xor edx, edx
test rcx, rcx
je 0x1801419e8
movsx eax, byte [r8 + rdx]
inc rdx
xor eax, r9d
imul r9d, eax, 0x1000193
cmp rdx, rcx
jb 0x1801419d1
mov ebp, dword [rsp + 0x44]
mov rsi, qword [rsp + 0x30]
cmp r9d, r11d
je 0x180141a53
cmp ebp, dword [r14 + 0x24]
je 0x180141a01
setg al
jmp 0x180141a4b
mov rbx, qword [r14 + 0x10]
mov rdx, r14
cmp r10, 0xf
jbe 0x180141a11
mov rdx, qword [r14]
cmp rdi, 0xf
lea rcx, [rsp + 0x20]
mov r8, rsi
cmova rcx, r13
cmp rbx, rsi
cmovb r8, rbx
call fcn.1801cff60
test eax, eax
je 0x180141a37
jns 0x180141a42
mov al, 0xff
jmp 0x180141a48
cmp rsi, rbx
jae 0x180141a40
mov al, 0xff
jmp 0x180141a48
jbe 0x180141a46
mov al, 1
jmp 0x180141a48
xor al, al
shr al, 7
test al, al
jne 0x180141bec
mov rbx, r12
nop word [rax + rax]
sub rbx, 0x30
lea r8, [rsp + 0x20]
cmp rdi, 0xf
mov rcx, 0xffffffffffffffff
mov edi, 0x811c9dc5
cmova r8, r13
nop dword [rax]
inc rcx
cmp byte [r8 + rcx], 0
jne 0x180141a80
xor edx, edx
test rcx, rcx
je 0x180141ab5
nop dword [rax]
nop word [rax + rax]
movsx eax, byte [r8 + rdx]
inc rdx
xor eax, edi
imul edi, eax, 0x1000193
cmp rdx, rcx
jb 0x180141aa0
mov edx, 0xc10bf213
lea rcx, [0x180254b99]
call fcn.1800ea660
cmp edi, eax
je 0x180141b9c
cmp qword [rbx + 0x18], 0xf
mov r8, rbx
jbe 0x180141adb
mov r8, qword [rbx]
mov edi, 0x811c9dc5
mov rax, 0xffffffffffffffff
nop word [rax + rax]
inc rax
cmp byte [r8 + rax], 0
jne 0x180141af0
xor edx, edx
test rax, rax
je 0x180141b25
nop dword [rax]
nop word [rax + rax]
movsx ecx, byte [r8 + rdx]
inc rdx
xor ecx, edi
imul edi, ecx, 0x1000193
cmp rdx, rax
jb 0x180141b10
mov edx, 0xc10bf213
lea rcx, [0x180254b99]
call fcn.1800ea660
cmp edi, eax
je 0x180141bc9
cmp ebp, dword [rbx + 0x24]
je 0x180141b48
setg al
jmp 0x180141b98
cmp qword [rbx + 0x18], 0xf
mov rdx, rbx
mov rdi, qword [rbx + 0x10]
jbe 0x180141b59
mov rdx, qword [rbx]
cmp qword [rsp + 0xa8], 0xf
lea rcx, [rsp + 0x20]
mov r8, rsi
cmova rcx, r13
cmp rdi, rsi
cmovb r8, rdi
call fcn.1801cff60
test eax, eax
je 0x180141b84
jns 0x180141b8f
mov al, 0xff
jmp 0x180141b95
cmp rsi, rdi
jae 0x180141b8d
mov al, 0xff
jmp 0x180141b95
jbe 0x180141b93
mov al, 1
jmp 0x180141b95
xor al, al
shr al, 7
test al, al
je 0x180141bc9
mov rdx, rbx
mov rcx, r15
call fcn.180099d80
movsd xmm0, qword [rbx + 0x20]
mov rdi, qword [rsp + 0xa8]
movsd qword [r15 + 0x20], xmm0
mov eax, dword [rbx + 0x28]
mov dword [r15 + 0x28], eax
mov r15, rbx
jmp 0x180141a60
lea rdx, [rsp + 0x20]
mov rcx, r15
call fcn.180099d80
movsd xmm0, qword [rsp + 0x40]
mov eax, dword [rsp + 0x48]
movsd qword [r15 + 0x20], xmm0
mov dword [r15 + 0x28], eax
jmp 0x180141c4b
mov rsi, qword [rsp + 0x90]
cmp r12, r14
je 0x180141c2a
nop dword [rax]
mov rdi, rsi
sub rsi, 0x30
lea rbx, [rsi - 0x20]
mov rdx, rbx
lea rcx, [rsi + 0x10]
call fcn.180099d80
movsd xmm0, qword [rsi]
movsd qword [rdi], xmm0
mov eax, dword [rsi + 8]
mov dword [rdi + 8], eax
cmp rbx, r14
jne 0x180141c00
lea rdx, [rsp + 0x20]
mov rcx, r14
call fcn.180099d80
movsd xmm0, qword [rsp + 0x40]
mov eax, dword [rsp + 0x48]
movsd qword [r14 + 0x20], xmm0
mov dword [r14 + 0x28], eax
lea rcx, [rsp + 0x20]
call fcn.18009a190
mov rsi, qword [rsp + 0x90]
add r12, 0x30
mov r9, qword [rsp + 0x98]
add rsi, 0x30
mov qword [rsp + 0x90], rsi
cmp r12, r9
jne 0x1801418e0
mov r15, qword [rsp + 0x50]
mov r13, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
mov rbx, qword [rsp + 0xa0]
mov r12, qword [rsp + 0x60]
mov rax, r9
add rsp, 0x80
pop r14
ret
mov rax, r9
add rsp, 0x80
pop r14
ret