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

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rsi
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rdi
sub rsp, 0x70
mov rsi, rdx
xor edi, edi
mov rdx, rcx
mov rdx, qword [rcx]
cmp qword [rdx + 0x58], rdi
je 0x164ebee8b
cmp dword [rdx + 0x68], edi
je 0x164ebed48
cmp qword [rdx + 0x38], rdi
je 0x164ebed48
cmp qword [rdx + 0x48], rdi
jne 0x164ebed44
cmp qword [rdx + 0x58], rdi
jne 0x164ebed48
mov al, 1
jmp 0x164ebed4a
xor al, al
test al, al
je 0x164ebeea4
mov rax, rdx
cmp qword [rdx + 0x18], 7
jbe 0x164ebed5f
mov rax, qword [rdx]
mov r8, qword [rdx + 0x10]
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x30], xmm1
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.164e485e0
nop
lea rcx, [rsp + 0x20]
cmp qword [rsp + 0x38], 7
cmova rcx, qword [rsp + 0x20]
movabs rbx, 0xcbf29ce484222325
mov rax, qword [rsp + 0x30]
lea rdx, [rax + rax]
test rdx, rdx
je 0x164ebedd3
movabs r8, 0x100000001b3
nop word [rax + rax]
movzx eax, byte [rdi + rcx]
xor rbx, rax
imul rbx, r8
inc rdi
cmp rdi, rdx
jb 0x164ebedc0
mov r9, rbx
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x48]
mov rcx, rsi
call fcn.164ebf4e0
mov rdi, qword [rax + 8]
test rdi, rdi
je 0x164ebee6f
mov rcx, qword [rsi + 0x30]
and rcx, rbx
shl rcx, 4
mov rdx, qword [rsi + 0x18]
add rdx, rcx
mov rax, qword [rdx]
cmp qword [rdx + 8], rdi
jne 0x164ebee28
cmp rax, rdi
jne 0x164ebee1e
mov rax, qword [rsi + 8]
mov qword [rdx], rax
mov qword [rdx + 8], rax
jmp 0x164ebee33
mov rax, qword [rdi + 8]
mov qword [rdx + 8], rax
jmp 0x164ebee33
cmp rax, rdi
jne 0x164ebee33
mov rax, qword [rdi]
mov qword [rdx], rax
mov rcx, qword [rdi]
dec qword [rsi + 0x10]
mov rax, qword [rdi + 8]
mov qword [rax], rcx
mov rax, qword [rdi + 8]
mov qword [rcx + 8], rax
lea rcx, [rdi + 0x30]
cmp byte [rcx + 0x30], 0
je 0x164ebee58
call fcn.164ea5890
lea rcx, [rdi + 0x10]
call fcn.164e54bf0
mov edx, 0x70
mov rcx, rdi
call fcn.1650010a0
nop
lea rcx, [rsp + 0x20]
call fcn.164e54bf0
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret
mov rcx, rsi
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
jmp 0x164ebf5a0
lea r8, str.Path_is_not_valid
mov edx, 0x10dd
lea rcx, [rsp + 0x48]
call fcn.164e47cf0
lea rdx, [0x165147450]
lea rcx, [rsp + 0x48]
call fcn.165003be0
int3
mov rax, rsp
mov qword [rax + 0x18], rbx
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x70
mov rsi, qword [rcx + 8]
lea r12, [rcx + 8]
mov r13, qword [rcx + 0x10]
mov r15, rcx
mov rbx, qword [rsi]
cmp rbx, rsi
je 0x164ebf681
mov rdi, rdx
nop dword [rax]
cmp dword [rdi + 0x68], 0
lea r14, [rbx + 0x10]
je 0x164ebf603
cmp qword [rdi + 0x38], 0
je 0x164ebf603
cmp qword [rdi + 0x48], 0
jne 0x164ebf5ff
cmp qword [rdi + 0x58], 0
jne 0x164ebf603
mov al, 1
jmp 0x164ebf605
xor al, al
test al, al
je 0x164ebf799
cmp qword [rdi + 0x18], 7
mov rdx, rdi
jbe 0x164ebf61a
mov rdx, qword [rdi]
mov r8, qword [rdi + 0x10]
lea rcx, [rsp + 0x20]
xorps xmm0, xmm0
mov qword [rsp + 0x30], 0
movups xmmword [rsp + 0x20], xmm0
mov qword [rsp + 0x38], 0
call fcn.164e485e0
cmp qword [rsp + 0x38], 7
lea rax, [rsp + 0x20]
mov r9, r14
cmova rax, qword [rsp + 0x20]
cmp qword [r14 + 0x18], 7
jbe 0x164ebf660
mov r9, qword [r14]
mov rcx, qword [rsp + 0x30]
cmp qword [r14 + 0x10], rcx
jae 0x164ebf6a0
lea rcx, [rsp + 0x20]
call fcn.164e54bf0
mov rbx, qword [rbx]
cmp rbx, rsi
jne 0x164ebf5e0
sub r13, qword [r15 + 0x10]
mov rbx, qword [rsp + 0xc0]
mov rax, r13
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
xor ebp, ebp
test rcx, rcx
je 0x164ebf6d3
sub r9, rax
nop word [rax + rax]
movzx edx, word [rax + r9]
cmp dx, word [rax]
jne 0x164ebf6c6
add rax, 2
sub rcx, 1
jne 0x164ebf6b0
jmp 0x164ebf6d3
mov ebp, 1
mov eax, 0xffffffff
cmovb ebp, eax
lea rcx, [rsp + 0x20]
call fcn.164e54bf0
test ebp, ebp
jne 0x164ebf675
cmp qword [r14 + 0x18], 7
mov r8, qword [r14 + 0x10]
jbe 0x164ebf6ef
mov r14, qword [r14]
xor ecx, ecx
movabs rdx, 0xcbf29ce484222325
add r8, r8
je 0x164ebf728
movabs r12, 0x100000001b3
nop word [rax + rax]
movzx eax, byte [rcx + r14]
inc rcx
xor rdx, rax
imul rdx, r12
cmp rcx, r8
jb 0x164ebf710
lea r12, [r15 + 8]
and rdx, qword [r15 + 0x30]
shl rdx, 4
add rdx, qword [r15 + 0x18]
mov rax, qword [rdx]
cmp qword [rdx + 8], rbx
jne 0x164ebf77b
cmp rax, rbx
jne 0x164ebf760
mov rax, qword [r12]
mov rcx, r12
mov qword [rdx], rax
mov qword [rdx + 8], rax
mov rdx, rbx
call fcn.164ebf460
mov rbx, rax
jmp 0x164ebf678
mov rax, qword [rbx + 8]
mov rcx, r12
mov qword [rdx + 8], rax
mov rdx, rbx
call fcn.164ebf460
mov rbx, rax
jmp 0x164ebf678
cmp rax, rbx
jne 0x164ebf786
mov rax, qword [rbx]
mov qword [rdx], rax
mov rdx, rbx
mov rcx, r12
call fcn.164ebf460
mov rbx, rax
jmp 0x164ebf678
lea r8, str.Path_is_not_valid
mov edx, 0x10dd
lea rcx, [rsp + 0x48]
call fcn.164e47cf0
lea rdx, [0x165147450]
lea rcx, [rsp + 0x48]
call fcn.165003be0
int3