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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov rdi, rdx
xor ebx, ebx
mov rsi, rcx
mov edx, ebx
mov r8d, dword [rdi]
lea rax, str.Argument
movzx eax, byte [rdx + rax]
inc rdx
xor eax, r8d
imul r8d, eax, 0x1000193
mov dword [rdi], r8d
cmp rdx, 0x10
jne 0x14001cd94
imul eax, r8d, 0x1000193
mov rdx, rbx
mov dword [rdi], eax
movzx eax, byte [rsi + rdx + 8]
inc rdx
xor eax, dword [rdi]
imul ecx, eax, 0x1000193
mov dword [rdi], ecx
cmp rdx, 4
jne 0x14001cdc1
lea rdx, [rsi + 0x38]
cmp qword [rdx + 0x18], 8
mov r9, qword [rdx + 0x10]
jb 0x14001cdeb
mov rdx, qword [rdx]
mov r8, rbx
add r9, r9
je 0x14001ce0a
movzx eax, byte [r8 + rdx]
inc r8
xor eax, ecx
imul ecx, eax, 0x1000193
mov dword [rdi], ecx
cmp r8, r9
jne 0x14001cdf3
imul edx, ecx, 0x1000193
mov dword [rdi], edx
mov rcx, qword [rsi + 0x10]
test rcx, rcx
je 0x14001cfae
mov r9, qword [rcx + 0x78]
add rcx, 0x68
cmp qword [rcx + 0x18], 8
jb 0x14001ce31
mov rcx, qword [rcx]
mov r8, rbx
add r9, r9
je 0x14001ce50
movzx eax, byte [r8 + rcx]
inc r8
xor eax, edx
imul edx, eax, 0x1000193
mov dword [rdi], edx
cmp r8, r9
jne 0x14001ce39
imul r8d, edx, 0x1000193
mov dword [rdi], r8d
mov rcx, qword [rsi + 0x10]
add rcx, 0x88
cmp qword [rcx + 0x18], 8
mov r9, qword [rcx + 0x10]
jb 0x14001ce73
mov rcx, qword [rcx]
mov rdx, rbx
add r9, r9
je 0x14001ce94
movzx eax, byte [rdx + rcx]
inc rdx
xor eax, r8d
imul r8d, eax, 0x1000193
mov dword [rdi], r8d
cmp rdx, r9
jne 0x14001ce7b
imul edx, r8d, 0x1000193
mov dword [rdi], edx
mov rcx, qword [rsi + 0x10]
add rcx, 0x108
cmp qword [rcx + 0x18], 8
mov r9, qword [rcx + 0x10]
jb 0x14001ceb6
mov rcx, qword [rcx]
mov r8, rbx
add r9, r9
je 0x14001ced5
movzx eax, byte [r8 + rcx]
inc r8
xor eax, edx
imul edx, eax, 0x1000193
mov dword [rdi], edx
cmp r8, r9
jne 0x14001cebe
imul r8d, edx, 0x1000193
mov dword [rdi], r8d
mov rcx, qword [rsi + 0x10]
add rcx, 0x128
cmp qword [rcx + 0x18], 8
mov r9, qword [rcx + 0x10]
jb 0x14001cef8
mov rcx, qword [rcx]
mov rdx, rbx
add r9, r9
je 0x14001cf19
movzx eax, byte [rdx + rcx]
inc rdx
xor eax, r8d
imul r8d, eax, 0x1000193
mov dword [rdi], r8d
cmp rdx, r9
jne 0x14001cf00
imul edx, r8d, 0x1000193
mov dword [rdi], edx
mov rcx, qword [rsi + 0x10]
add rcx, 0x148
cmp qword [rcx + 0x18], 8
mov r9, qword [rcx + 0x10]
jb 0x14001cf3b
mov rcx, qword [rcx]
mov r8, rbx
add r9, r9
je 0x14001cf5a
movzx eax, byte [r8 + rcx]
inc r8
xor eax, edx
imul edx, eax, 0x1000193
mov dword [rdi], edx
cmp r8, r9
jne 0x14001cf43
imul eax, edx, 0x1000193
mov dword [rdi], eax
mov rcx, qword [rsi + 0x10]
call fcn.14003069c
test al, al
je 0x14001cfae
mov rcx, qword [rsi + 0x10]
add rcx, 8
cmp qword [rcx + 0x18], 8
mov r9, qword [rcx + 0x10]
jb 0x14001cf85
mov rcx, qword [rcx]
mov edx, dword [rdi]
mov r8, rbx
add r9, r9
je 0x14001cfa6
movzx eax, byte [r8 + rcx]
inc r8
xor eax, edx
imul edx, eax, 0x1000193
mov dword [rdi], edx
cmp r8, r9
jne 0x14001cf8f
imul eax, edx, 0x1000193
mov dword [rdi], eax
cmp byte [rsi + 0x58], bl
mov eax, ebx
setne al
mov dword [rsp + 0x30], eax
movzx eax, byte [rsp + rbx + 0x30]
inc rbx
xor eax, dword [rdi]
imul eax, eax, 0x1000193
mov dword [rdi], eax
cmp rbx, 4
jne 0x14001cfba
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret