Function at 0x14015d520
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x10], rdx
push rdi
sub rsp, 0x30
mov rdi, rdx
mov rbx, rcx
mov dword [rsp + 0x20], 0
xor r8d, r8d
lea edx, [r8 + 0x40]
mov rcx, rdi
call fcn.140039c30
mov eax, 1
mov dword [rsp + 0x20], eax
movzx r8d, byte [rbx]
not r8b
movzx edx, r8b
movzx ecx, dl
xor cl, byte [rbx + rax]
mov r8, rdi
cmp qword [rdi + 0x18], 0xf
jbe 0x14015d573
mov r8, qword [rdi]
mov byte [r8 + rax - 1], cl
movzx ecx, cl
xor ecx, edx
imul r8d, ecx, 0x1000193
movzx edx, r8b
xor dl, byte [rax + rbx + 1]
mov rcx, rdi
cmp qword [rdi + 0x18], 0xf
jbe 0x14015d599
mov rcx, qword [rdi]
mov byte [rcx + rax], dl
movzx ecx, dl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, r8b
xor cl, byte [rax + rbx + 2]
mov rdx, rdi
cmp qword [rdi + 0x18], 0xf
jbe 0x14015d5be
mov rdx, qword [rdi]
mov byte [rdx + rax + 1], cl
movzx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, r8b
xor cl, byte [rax + rbx + 3]
mov rdx, rdi
cmp qword [rdi + 0x18], 0xf
jbe 0x14015d5e4
mov rdx, qword [rdi]
mov byte [rdx + rax + 2], cl
movzx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, r8b
xor cl, byte [rax + rbx + 4]
mov rdx, rdi
cmp qword [rdi + 0x18], 0xf
jbe 0x14015d60a
mov rdx, qword [rdi]
mov byte [rdx + rax + 3], cl
movzx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, r8b
xor cl, byte [rax + rbx + 5]
mov rdx, rdi
cmp qword [rdi + 0x18], 0xf
jbe 0x14015d630
mov rdx, qword [rdi]
mov byte [rdx + rax + 4], cl
movzx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, r8b
xor cl, byte [rax + rbx + 6]
mov rdx, rdi
cmp qword [rdi + 0x18], 0xf
jbe 0x14015d656
mov rdx, qword [rdi]
mov byte [rdx + rax + 5], cl
movzx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, r8b
xor cl, byte [rax + rbx + 7]
mov rdx, rdi
cmp qword [rdi + 0x18], 0xf
jbe 0x14015d67c
mov rdx, qword [rdi]
mov byte [rdx + rax + 6], cl
movzx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, r8b
xor cl, byte [rax + rbx + 8]
mov rdx, rdi
cmp qword [rdi + 0x18], 0xf
jbe 0x14015d6a2
mov rdx, qword [rdi]
mov byte [rdx + rax + 7], cl
movzx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, r8b
xor cl, byte [rax + rbx + 9]
mov rdx, rdi
cmp qword [rdi + 0x18], 0xf
jbe 0x14015d6c8
mov rdx, qword [rdi]
mov byte [rdx + rax + 8], cl
movzx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, r8b
xor cl, byte [rax + rbx + 0xa]
mov rdx, rdi
cmp qword [rdi + 0x18], 0xf
jbe 0x14015d6ee
mov rdx, qword [rdi]
mov byte [rdx + rax + 9], cl
movzx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, r8b
xor cl, byte [rax + rbx + 0xb]
mov rdx, rdi
cmp qword [rdi + 0x18], 0xf
jbe 0x14015d714
mov rdx, qword [rdi]
mov byte [rdx + rax + 0xa], cl
movzx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, r8b
xor cl, byte [rax + rbx + 0xc]
mov rdx, rdi
cmp qword [rdi + 0x18], 0xf
jbe 0x14015d73a
mov rdx, qword [rdi]
mov byte [rdx + rax + 0xb], cl
movzx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, r8b
xor cl, byte [rax + rbx + 0xd]
mov rdx, rdi
cmp qword [rdi + 0x18], 0xf
jbe 0x14015d760
mov rdx, qword [rdi]
mov byte [rdx + rax + 0xc], cl
movzx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, r8b
xor cl, byte [rax + rbx + 0xe]
mov rdx, rdi
cmp qword [rdi + 0x18], 0xf
jbe 0x14015d786
mov rdx, qword [rdi]
mov byte [rdx + rax + 0xd], cl
movzx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, r8b
xor cl, byte [rax + rbx + 0xf]
mov rdx, rdi
cmp qword [rdi + 0x18], 0xf
jbe 0x14015d7ac
mov rdx, qword [rdi]
mov byte [rdx + rax + 0xe], cl
movzx ecx, cl
xor ecx, r8d
imul edx, ecx, 0x1000193
add rax, 0x10
cmp rax, 0x41
jb 0x14015d560
mov rax, rdi
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret