Function at 0x14000a9d0
Capabilities:
Hash data using djb2

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], r12
push r13
push r14
push r15
sub rsp, 0x20
mov r13d, r9d
mov r12, r8
mov r14, rdx
mov rsi, rcx
test rcx, rcx
je 0x14000ac04
test rdx, rdx
je 0x14000ac04
movabs rax, 0x7fffffffffffffff
cmp r8, rax
ja 0x14000ac04
cmp dword [rcx], 0
jne 0x14000aa99
mov edx, 8
mov ecx, pe_nt_image_headers64
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
mov rbx, rax
test rax, rax
je 0x14000ab23
cmp qword [rsi + 8], 0
jbe 0x14000aa85
xor r9d, r9d
cmp dword [rsi], r9d
jbe 0x14000aa85
nop
mov rax, qword [rsi + 0x10]
mov r8, qword [rax + r9*8]
test r8, r8
je 0x14000aa7d
nop dword [rax]
mov rdx, qword [r8 + 0x18]
movzx ecx, byte [r8 + 0x20]
mov rax, qword [rbx + rcx*8]
mov qword [r8 + 0x18], rax
mov qword [rbx + rcx*8], r8
mov r8, rdx
test rdx, rdx
jne 0x14000aa60
inc r9d
cmp r9d, dword [rsi]
jb 0x14000aa50
mov rcx, qword [rsi + 0x10]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov qword [rsi + 0x10], rbx
mov dword [rsi], pe_nt_image_headers64
movzx eax, byte [r14]
mov rcx, r14
mov edi, 0x1505
test al, al
je 0x14000aac5
nop dword [rax]
imul rdi, rdi, 0x21
movzx eax, al
lea rcx, [rcx + 1]
add rdi, rax
movzx eax, byte [rcx]
test al, al
jne 0x14000aab0
xor edx, edx
mov eax, edi
div dword [rsi]
mov rax, qword [rsi + 0x10]
mov r15d, edx
mov rbx, qword [rax + rdx*8]
test rbx, rbx
je 0x14000ab10
nop dword [rax + rax]
cmp dword [rbx + 0x20], edi
jne 0x14000ab07
mov r8, qword [rbx]
mov rax, r14
sub r8, r14
nop
movzx edx, byte [rax]
movzx ecx, byte [rax + r8]
sub edx, ecx
jne 0x14000ab03
inc rax
test ecx, ecx
jne 0x14000aaf0
test edx, edx
je 0x14000ab3d
mov rbx, qword [rbx + 0x18]
test rbx, rbx
jne 0x14000aae0
mov ecx, 0x28
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rbx, rax
test rax, rax
jne 0x14000ab6f
mov rax, qword [rsp + 0x60]
test rax, rax
je 0x14000ac15
mov qword [rax], 0xe
jmp 0x14000ac15
test r13b, 8
je 0x14000ab4a
cmp qword [rbx + 8], 0xffffffffffffffff
jne 0x14000ab55
cmp qword [rbx + 0x10], 0xffffffffffffffff
je 0x14000abf2
mov rax, qword [rsp + 0x60]
test rax, rax
je 0x14000ac15
mov qword [rax], 0xa
jmp 0x14000ac15
mov qword [rax], r14
mov rax, qword [rsi + 0x10]
vxorps xmm1, xmm1, xmm1
mov rcx, qword [rax + r15*8]
mov qword [rbx + 0x18], rcx
mov rax, qword [rsi + 0x10]
mov qword [rax + r15*8], rbx
mov dword [rbx + 0x20], edi
mov qword [rbx + 8], 0xffffffffffffffff
inc qword [rsi + 8]
mov rcx, qword [rsi + 8]
mov edx, dword [rsi]
test rcx, rcx
js 0x14000abab
vcvtsi2sd xmm1, xmm1, rcx
jmp 0x14000abc0
mov rax, rcx
and ecx, 1
shr rax, 1
or rax, rcx
vcvtsi2sd xmm1, xmm1, rax
vaddsd xmm1, xmm1, xmm1
vxorps xmm0, xmm0, xmm0
vcvtsi2sd xmm0, xmm0, rdx
vmulsd xmm0, xmm0, qword [0x14001dda8]
vcomisd xmm1, xmm0
jbe 0x14000abf2
cmp edx, 0x80000000
jae 0x14000abf2
mov r8, qword [rsp + 0x60]
add edx, edx
mov rcx, rsi
call fcn.14000a900
test al, al
je 0x14000ac15
test r13b, 8
je 0x14000abfc
mov qword [rbx + 8], r12
mov qword [rbx + 0x10], r12
mov al, 1
jmp 0x14000ac17
mov rax, qword [rsp + 0x60]
test rax, rax
je 0x14000ac15
mov qword [rax], 0x12
xor al, al
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x50]
mov r12, qword [rsp + 0x58]
add rsp, 0x20
pop r15
pop r14
pop r13
ret