Function at 0x1400059b0
Capabilities:
Hash data using djb2

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x70
mov r14, qword [rsp + 0xd0]
mov ebx, ecx
mov rdi, rdx
mov rsi, r8
mov r8d, 0x10
mov rbp, r9
mov rcx, qword [r14 + 8]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007f10
mov r9, qword [rsp + 0xc8]
mov r8d, 4
movups xmm0, xmmword [r9]
movups xmmword [rax], xmm0
mov rcx, qword [r14 + 0x10]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007f10
mov r8d, 0x10
mov dword [rax], ebx
mov rcx, qword [r14 + 0x10]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007f10
movups xmm0, xmmword [rdi]
mov r8d, 0x10
movups xmmword [rax], xmm0
mov rcx, qword [r14 + 0x10]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007f10
movups xmm0, xmmword [rsi]
mov r8d, 0x10
movups xmmword [rax], xmm0
mov rcx, qword [r14 + 0x10]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007f10
movups xmm0, xmmword [rbp]
mov r13, qword [rsp + 0xc0]
mov r12, qword [rsp + 0xd8]
movups xmmword [rax], xmm0
mov edi, dword [r13 + 0x38]
mov dword [rsp + 0xa0], edi
movups xmm0, xmmword [r14 + 0x10]
movups xmm1, xmmword [r14 + 0x20]
movups xmmword [rsp + 0x50], xmm0
movups xmmword [rsp + 0x60], xmm1
test r12, r12
jne 0x140005aae
xor eax, eax
jmp 0x140005ab3
mov eax, dword [r12 + 0x28]
mov rcx, qword [r14 + 0x10]
lea ebx, [rax + rdi]
mov r8d, 4
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007f10
lea rdx, [rsp + 0x20]
mov dword [rax], ebx
mov rcx, qword [r14 + 0x18]
mov eax, dword [rcx]
mov dword [rsp + 0x20], eax
mov rax, qword [rcx + 0x20]
mov rcx, qword [r14 + 0x10]
mov qword [rsp + 0x28], rax
movaps xmm0, xmmword [rsp + 0x20]
movdqa xmmword [rsp + 0x20], xmm0
call fcn.140007980
mov r15, qword [rsp + 0x60]
mov rsi, 0xffffffffffffffff
test edi, edi
jle 0x140005bf4
xor ebx, ebx
lea r14, [r13 + 0x3c]
mov r13, qword [rsp + 0x58]
mov r12d, ebx
nop dword [rax]
movsxd rcx, dword [r14]
lea rdx, [rsp + 0x30]
add rcx, r14
mov eax, ebx
sub eax, dword [r14]
neg eax
sbb rax, rax
and rcx, rax
mov eax, dword [r15]
mov dword [rsp + 0x20], eax
mov rax, qword [r15 + 0x20]
mov qword [rsp + 0x28], rax
movaps xmm0, xmmword [rsp + 0x20]
lea rbp, [rcx + r12*8]
mov rcx, r13
movdqa xmmword [rsp + 0x30], xmm0
call fcn.140007980
movsxd rdi, dword [rbp]
mov eax, ebx
sub eax, dword [rbp]
add rdi, rbp
neg eax
mov rbx, rsi
sbb rax, rax
and rdi, rax
nop word [rax + rax]
cmp byte [rdi + rbx + 1], 0
lea rbx, [rbx + 1]
jne 0x140005b80
mov rdx, qword [r15 + 0x10]
lea r8, [rbx + 1]
lea rcx, [r15 + 0x18]
call fcn.140007f10
lea r8, [rbx + 1]
mov rdx, rdi
mov rcx, rax
call fcn.14004dd10
mov rdx, qword [r13 + 0x10]
lea rcx, [r13 + 0x18]
mov ebx, dword [rbp + 4]
mov r8d, 4
call fcn.140007f10
movsxd rcx, dword [rsp + 0xa0]
inc r12
mov dword [rax], ebx
mov ebx, 0
cmp r12, rcx
jl 0x140005b20
mov r14, qword [rsp + 0xd0]
mov r13, qword [rsp + 0xc0]
mov r12, qword [rsp + 0xd8]
test r12, r12
je 0x140005cd5
movsxd rax, dword [r12 + 0x28]
test rax, rax
jle 0x140005cd5
xor ebp, ebp
mov r15, rax
mov rcx, qword [r14 + 0x20]
lea rdx, [rsp + 0x30]
mov eax, dword [rcx]
mov dword [rsp + 0x20], eax
mov rax, qword [rcx + 0x20]
mov rcx, qword [r14 + 0x18]
mov qword [rsp + 0x28], rax
movaps xmm0, xmmword [rsp + 0x20]
movdqa xmmword [rsp + 0x30], xmm0
call fcn.140007980
mov rax, qword [r12 + 0x20]
mov rbx, rsi
mov rdx, qword [r14 + 0x20]
mov edi, dword [rax + rbp*4]
add rdi, qword [r12 + 8]
cmp byte [rdi + rbx + 1], 0
lea rbx, [rbx + 1]
jne 0x140005c50
lea rcx, [rdx + 0x18]
mov rdx, qword [rdx + 0x10]
lea r8, [rbx + 1]
call fcn.140007f10
lea r8, [rbx + 1]
mov rdx, rdi
mov rcx, rax
call fcn.14004dd10
movzx ecx, byte [rdi]
lea rdx, [rdi + 1]
mov eax, 0x1505
test ecx, ecx
je 0x140005ca1
nop dword [rax + rax]
imul eax, eax, 0x21
lea rdx, [rdx + 1]
add eax, ecx
movzx ecx, byte [rdx - 1]
test ecx, ecx
jne 0x140005c90
mov rcx, qword [r14 + 0x18]
test eax, eax
mov ebx, 1
mov r8d, 4
cmovne ebx, eax
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007f10
inc rbp
mov dword [rax], ebx
cmp rbp, r15
jl 0x140005c10
mov r15, qword [rsp + 0x60]
mov rcx, qword [r14 + 0x10]
mov r8d, 4
movsxd rbx, dword [r13 + 0x50]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007f10
lea rdx, [rsp + 0x30]
mov dword [rax], ebx
mov rcx, qword [r14 + 0x18]
mov eax, dword [rcx]
mov dword [rsp + 0x20], eax
mov rax, qword [rcx + 0x20]
mov rcx, qword [r14 + 0x10]
mov qword [rsp + 0x28], rax
movaps xmm0, xmmword [rsp + 0x20]
movdqa xmmword [rsp + 0x30], xmm0
call fcn.140007980
mov qword [rsp + 0xd8], rbx
test ebx, ebx
jle 0x140005e09
mov r14, qword [rsp + 0x58]
xor ebx, ebx
mov r12d, ebx
add r13, 0x54
nop dword [rax]
movsxd rcx, dword [r13]
lea rdx, [rsp + 0x30]
add rcx, r13
mov eax, ebx
sub eax, dword [r13]
neg eax
sbb rax, rax
and rcx, rax
mov eax, dword [r15]
mov dword [rsp + 0x20], eax
mov rax, qword [r15 + 0x20]
mov qword [rsp + 0x28], rax
movaps xmm0, xmmword [rsp + 0x20]
lea rbp, [rcx + r12*8]
mov rcx, r14
movdqa xmmword [rsp + 0x30], xmm0
call fcn.140007980
movsxd rdi, dword [rbp]
mov eax, ebx
sub eax, dword [rbp]
add rdi, rbp
neg eax
mov rbx, rsi
sbb rax, rax
and rdi, rax
nop dword [rax + rax]
cmp byte [rdi + rbx + 1], 0
lea rbx, [rbx + 1]
jne 0x140005da0
mov rdx, qword [r15 + 0x10]
lea r8, [rbx + 1]
lea rcx, [r15 + 0x18]
call fcn.140007f10
lea r8, [rbx + 1]
mov rdx, rdi
mov rcx, rax
call fcn.14004dd10
mov rdx, qword [r14 + 0x10]
lea rcx, [r14 + 0x18]
mov ebx, dword [rbp + 4]
mov r8d, 4
call fcn.140007f10
inc r12
mov dword [rax], ebx
mov ebx, 0
cmp r12, qword [rsp + 0xd8]
jl 0x140005d40
mov r14, qword [rsp + 0xd0]
mov r13, qword [rsp + 0xc0]
movsxd rax, dword [r13]
mov r15d, 0
movzx edi, byte [rsp + 0xe0]
add rax, r13
cmp dword [r13], 0
cmove rax, r15
test rax, rax
je 0x140005ead
test dil, dil
je 0x140005ead
mov rcx, qword [r14 + 0x20]
lea rdx, [rsp + 0x30]
mov eax, dword [rcx]
mov dword [rsp + 0x20], eax
mov rax, qword [rcx + 0x20]
mov rcx, qword [r14 + 0x10]
mov qword [rsp + 0x28], rax
movaps xmm0, xmmword [rsp + 0x20]
movdqa xmmword [rsp + 0x30], xmm0
call fcn.140007980
movsxd rbx, dword [r13]
mov eax, r15d
sub eax, dword [r13]
add rbx, r13
mov rdx, qword [r14 + 0x20]
neg eax
sbb rax, rax
and rbx, rax
nop dword [rax + rax]
cmp byte [rbx + rsi + 1], r15b
lea rsi, [rsi + 1]
jne 0x140005e80
lea rcx, [rdx + 0x18]
mov rdx, qword [rdx + 0x10]
lea r8, [rsi + 1]
call fcn.140007f10
lea r8, [rsi + 1]
mov rdx, rbx
mov rcx, rax
call fcn.14004dd10
jmp 0x140005ec7
mov rcx, qword [r14 + 0x10]
mov r8d, 4
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007f10
mov dword [rax], r15d
cmp dword [r13 + 4], r15d
je 0x140005f5b
test dil, dil
je 0x140005f5b
mov rcx, qword [r14 + 0x10]
mov r8d, 4
mov ebx, dword [r13 + 4]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007f10
lea rdx, [rsp + 0x30]
mov dword [rax], ebx
mov rcx, qword [r14 + 0x28]
mov eax, dword [rcx]
mov dword [rsp + 0x20], eax
mov rax, qword [rcx + 0x20]
mov rcx, qword [r14 + 0x10]
mov qword [rsp + 0x28], rax
movaps xmm0, xmmword [rsp + 0x20]
movdqa xmmword [rsp + 0x30], xmm0
call fcn.140007980
mov rcx, qword [r14 + 0x28]
lea rdi, [r13 + 8]
movsxd rbp, dword [r13 + 4]
movsxd rbx, dword [rdi]
mov r8, rbp
mov esi, dword [rdi]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007f10
test esi, esi
lea rdx, [rdi + rbx]
mov r8, rbp
mov rcx, rax
cmove rdx, r15
call fcn.14004dd10
jmp 0x140005f8f
mov rcx, qword [r14 + 0x10]
mov r8d, 4
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007f10
mov r8d, 4
mov dword [rax], r15d
mov rcx, qword [r14 + 0x10]
mov rdx, qword [rcx + 0x10]
add rcx, 0x18
call fcn.140007f10
mov dword [rax], r15d
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret