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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], r8
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
mov rax, qword [rcx + 0x18]
mov r9, qword [rcx + 0x48]
xor r12d, r12d
shr rax, 2
mov rsi, r8
mov r13, rdx
mov rbp, rcx
cmp r9, rax
ja 0x18004578e
mov r10, qword [rcx + 0x28]
add rcx, 0x20
test r10, r10
jne 0x18004560c
mov eax, r12d
jmp 0x180045617
mov rax, qword [rcx + 0x10]
sub rax, r10
sar rax, 3
dec rax
cmp rax, r9
ja 0x18004564f
test r10, r10
jne 0x180045629
mov rdx, r12
jmp 0x180045634
mov rdx, qword [rcx + 0x10]
sub rdx, r10
sar rdx, 3
mov r8, qword [rbp + 0x10]
lea rdx, [rdx*2 - 3]
mov qword [rbp + 0x40], rdx
add rdx, 2
call fcn.180046f40
jmp 0x180045664
mov rax, qword [rbp + 0x40]
cmp rax, r9
jae 0x180045664
lea rax, [rax*2 + 1]
mov qword [rbp + 0x40], rax
mov rax, qword [rbp + 0x40]
mov r14, qword [rbp + 0x48]
shr rax, 1
sub r14, rax
mov rax, qword [rbp + 0x28]
dec r14
lea r15, [r14*8]
mov rbx, qword [rax + r15]
cmp rbx, qword [rax + r15 + 8]
je 0x18004578a
lea rdx, [rbx + 0x10]
call fcn.180047010
and rax, qword [rbp + 0x40]
cmp rax, r14
jne 0x1800456aa
mov rbx, qword [rbx]
jmp 0x180045776
mov rdi, qword [rbx]
cmp rdi, qword [rbp + 0x10]
je 0x180045748
mov rax, qword [rbp + 0x28]
mov rcx, r14
cmp rbx, qword [r15 + rax]
jne 0x1800456f2
mov rdx, r15
nop word [rax + rax]
mov rax, qword [rbp + 0x28]
mov qword [rdx + rax], rdi
test rcx, rcx
je 0x1800456f2
mov rax, qword [rbp + 0x28]
dec rcx
lea rdx, [rcx*8]
cmp rbx, qword [rdx + rax]
je 0x1800456d0
mov rsi, qword [rbp + 0x10]
lea rcx, [rbp + 8]
cmp rcx, rcx
je 0x180045706
xor edx, edx
call fcn.180048b10
mov rax, qword [rbx + 8]
mov qword [rax], rdi
mov rax, qword [rdi + 8]
mov qword [rax], rsi
mov rax, qword [rsi + 8]
mov qword [rax], rbx
mov rax, qword [rdi + 8]
mov rcx, qword [rsi + 8]
mov qword [rsi + 8], rax
mov rax, qword [rbx + 8]
mov qword [rdi + 8], rax
mov qword [rbx + 8], rcx
mov rdx, qword [rbp + 0x10]
mov rcx, qword [rbp + 0x48]
mov rax, qword [rbp + 0x28]
mov rbx, qword [rdx + 8]
mov qword [rax + rcx*8 + 8], rdx
mov rcx, qword [rbp + 0x48]
cmp r14, rcx
jae 0x18004576d
mov rax, qword [rbp + 0x28]
lea rdx, [rax + rcx*8]
mov rax, qword [rbp + 0x10]
cmp qword [rdx], rax
jne 0x18004576d
dec rcx
mov qword [rdx], rbx
cmp r14, rcx
jb 0x180045751
cmp rdi, qword [rbp + 0x10]
je 0x180045785
mov rbx, rdi
mov rax, qword [rbp + 0x28]
cmp rbx, qword [rax + r15 + 8]
jne 0x180045690
mov rsi, qword [rsp + 0x70]
inc qword [rbp + 0x48]
mov rdx, qword [rsi + 0x20]
lea rdi, [rsi + 8]
cmp rdx, 8
jb 0x1800457a1
mov rcx, qword [rdi]
jmp 0x1800457a4
mov rcx, rdi
mov rax, qword [rsi + 0x18]
lea rcx, [rcx + rax*2]
cmp rdx, 8
jb 0x1800457b7
mov rax, qword [rdi]
jmp 0x1800457ba
mov rax, rdi
mov r8d, 0x811c9dc5
cmp rax, rcx
je 0x1800457e6
nop word [rax + rax]
movzx edx, word [rax]
imul r8, r8, 0x1000193
add rax, 2
xor r8, rdx
cmp rax, rcx
jne 0x1800457d0
mov edx, 0x1f31d
mov ecx, r8d
call qword [sym.imp.msvcrt.dll_ldiv]
mov qword [rsp + 0x60], rax
shr rax, 0x20
imul ecx, eax, 0x41a7
imul eax, dword [rsp + 0x60], 0xb14
sub ecx, eax
jns 0x180045815
add ecx, 0x7fffffff
mov rdx, qword [rbp + 0x40]
movsxd rsi, ecx
or rax, 0xffffffffffffffff
and rsi, rdx
cmp qword [rbp + 0x48], rsi
ja 0x180045832
shr rdx, 1
sub rax, rdx
add rsi, rax
mov r11, qword [rbp + 0x28]
lea r14, [rsi*8]
mov rbx, qword [r11 + r14 + 8]
cmp rbx, qword [r11 + r14]
je 0x180045964
mov rax, qword [rsp + 0x70]
mov r10, qword [rax + 0x18]
mov r15, qword [rax + 0x20]
nop word [rax + rax]
mov rbx, qword [rbx + 8]
cmp qword [rbx + 0x30], 8
mov r9, qword [rbx + 0x28]
jb 0x180045875
mov rdx, qword [rbx + 0x18]
jmp 0x180045879
lea rdx, [rbx + 0x18]
cmp r15, 8
jb 0x180045884
mov rcx, qword [rdi]
jmp 0x180045887
mov rcx, rdi
cmp r10, r9
mov r8, r9
cmovb r8, r10
test r8, r8
je 0x1800458ab
movzx eax, word [rdx]
cmp word [rcx], ax
jne 0x1800458d0
add rcx, 2
add rdx, 2
dec r8
jne 0x180045896
mov r8d, r12d
movsxd rax, r8d
test r8d, r8d
jne 0x1800458c1
cmp r10, r9
jb 0x1800458c5
mov eax, r12d
setne al
test eax, eax
jns 0x1800458e6
cmp rbx, qword [r11 + r14]
jne 0x180045860
jmp 0x180045964
cmp word [rcx], ax
mov r8d, 1
mov rax, 0xffffffffffffffff
cmovb r8d, eax
jmp 0x1800458ae
cmp r15, 8
jb 0x1800458ef
mov rdi, qword [rdi]
cmp qword [rbx + 0x30], 8
jb 0x1800458fc
mov rcx, qword [rbx + 0x18]
jmp 0x180045900
lea rcx, [rbx + 0x18]
cmp r9, r10
mov rdx, r10
cmovb rdx, r9
test rdx, rdx
je 0x180045925
nop
movzx eax, word [rdi]
cmp word [rcx], ax
jne 0x18004594d
add rcx, 2
add rdi, 2
dec rdx
jne 0x180045910
mov edx, r12d
movsxd rax, edx
test edx, edx
jne 0x18004593b
cmp r9, r10
jb 0x180045961
setne r12b
mov eax, r12d
test eax, eax
js 0x180045961
mov qword [r13], rbx
mov byte [r13 + 8], 0
jmp 0x1800459cb
cmp word [rcx], ax
mov edx, 1
mov rax, 0xffffffffffffffff
cmovb edx, eax
jmp 0x180045928
mov rbx, qword [rbx]
mov r9, qword [rsp + 0x70]
mov r8, qword [rbx + 8]
mov rdx, rbx
call fcn.180049500
lea rcx, [rbp + 8]
mov edx, 1
mov rdi, rax
call fcn.180048b10
mov qword [rbx + 8], rdi
mov rcx, qword [rdi + 8]
mov qword [rcx], rdi
mov rcx, qword [rbp + 0x28]
mov rax, qword [rbx + 8]
cmp rbx, qword [r14 + rcx]
jne 0x1800459c2
nop
mov rcx, qword [rbp + 0x28]
mov qword [r14 + rcx], rax
test rsi, rsi
je 0x1800459c2
mov rcx, qword [rbp + 0x28]
dec rsi
lea r14, [rsi*8]
cmp rbx, qword [r14 + rcx]
je 0x1800459a0
mov qword [r13], rax
mov byte [r13 + 8], 1
mov rax, r13
mov rbx, qword [rsp + 0x68]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret