Function at 0x1400096b0
Capabilities:
Hash data using djb2

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x60
mov rdi, rcx
movzx eax, word [rcx]
movzx ecx, byte [rcx + 2]
mov r8d, 0x1502
mov esi, 0x1501
movzx r10d, byte [rdi + 0x14]
movzx edx, byte [rdi + 0x17]
movzx ebx, byte [rdi + 0x29]
movzx r9d, byte [rdi + 0x2c]
mov r14d, dword [rdi + 0x3c]
and ecx, 0x1f
shl r10d, 0x10
and edx, 0x1f
shl ebx, 0x10
and r9d, 0x1f
shr r14d, 3
shl ecx, 0x10
shl edx, 0x10
shl r9d, 0x10
imul r11, r14, 0x215d1
or rcx, rax
movzx eax, word [rdi + 5]
mov qword [rsp + 0x30], rcx
movzx ecx, byte [rdi + 7]
shl ecx, 0x10
or ecx, eax
bextr eax, ecx, r8d
movzx ecx, byte [rdi + 0xf]
mov qword [rsp + 0x28], rax
movzx eax, word [rdi + 0xd]
shl ecx, 0x10
or ecx, eax
bextr eax, ecx, esi
movzx ecx, byte [rdi + 0x1c]
mov qword [rsp + 8], rax
movzx eax, word [rdi + 0x12]
shl ecx, 0x10
or r10d, eax
movzx eax, word [rdi + 0x15]
shr r10d, 3
or rdx, rax
movzx eax, word [rdi + 0x1a]
or ecx, eax
bextr eax, ecx, r8d
movzx ecx, byte [rdi + 0x24]
mov qword [rsp], rax
movzx eax, word [rdi + 0x22]
shl ecx, 0x10
or ecx, eax
bextr eax, ecx, esi
movzx ecx, word [rdi + 0x27]
or ebx, ecx
movzx ecx, word [rdi + 0x2a]
shr ebx, 3
add r11, rbx
imul rbx, r14, 0x9fb67
or r9, rcx
movzx ecx, word [rdi + 0x2f]
mov qword [rsp + 0x58], r9
movzx r9d, byte [rdi + 0x31]
shl r9d, 0x10
or r9d, ecx
movzx ecx, word [rdi + 0x37]
bextr r12d, r9d, r8d
movzx r8d, byte [rdi + 0x39]
mov r9d, 0x1506
shl r8d, 0x10
or r8d, ecx
bextr ecx, dword [rdi + 0x24], r9d
bextr r13d, r8d, esi
bextr esi, dword [rdi + 0x39], r9d
imul r8, r14, 0xfffffffffff0c653
mov r9d, 0x1507
mov qword [rsp + 0x10], r13
bextr r9d, dword [rdi + 0x1c], r9d
add r8, rcx
imul rcx, r14, 0xa2c13
imul r15, rsi, 0x72d18
add r15, rcx
imul rcx, rsi, 0xfffffffffff0c653
add rcx, rbx
imul rbx, rsi, 0x215d1
add rbx, r8
imul r8, rsi, 0xfffffffffff59083
add r8, r11
imul r11, r14, 0x72d18
mov qword [rsp + 0x20], r8
imul r8, r13, 0x9fb67
add r8, r15
mov qword [rsp + 0x18], r8
mov r8d, 0x1504
bextr r8d, dword [rdi + 0x34], r8d
imul rbp, r8, 0xfffffffffff59083
imul r13, r8, 0x215d1
imul r15, r8, 0x9fb67
add rbp, rax
mov eax, 0x1507
add r13, r11
add rbp, rcx
bextr ecx, dword [rdi + 0x31], eax
mov eax, 0x1505
bextr eax, dword [rdi + 0x17], eax
imul r11, rcx, 0xa2c13
add r11, r10
imul r10, rcx, 0x72d18
add r10, rdx
imul rdx, rcx, 0x9fb67
add rdx, rax
imul rax, r8, 0x72d18
add rdx, rax
imul rax, rcx, 0xfffffffffff0c653
add rax, qword [rsp]
add rax, r15
imul r15, rcx, 0x215d1
imul rcx, rcx, 0xfffffffffff59083
add r15, r9
imul r9, r8, 0xfffffffffff0c653
imul r8, r8, 0xa2c13
add r15, r9
mov r9d, 0x1504
add r10, r8
imul r8, r12, 0xfffffffffff0c653
bextr r9d, dword [rdi + 0x1f], r9d
add r8, rdx
imul rdx, r12, 0xfffffffffff59083
add rcx, r9
imul r9, rsi, 0x9fb67
add rdx, r15
add rdx, qword [rsp + 0x18]
add rcx, r13
imul r13, r12, 0x72d18
add rcx, r9
imul r9, r12, 0xa2c13
add r13, r11
imul r11, r12, 0x215d1
add r11, rax
imul rax, rsi, 0xa2c13
add r11, rax
mov eax, 0x1506
bextr eax, dword [rdi + 0xf], eax
lea r15, [r9 + rax]
lea rax, [r9 + rax + 0x100000]
mov r9, qword [rsp + 0x10]
mov rsi, rax
and rax, 0xffffffffffe00000
shr rsi, 0x15
sub r15, rax
imul rax, r12, 0x9fb67
mov qword [rsp], r15
lea r15, [r10 + rax]
lea r10, [rax + r10 + 0x100000]
imul rax, r9, 0xa2c13
mov qword [rsp + 0x38], r10
add r8, rax
movabs rax, 0xfffffe00000
and rax, r10
sub r15, rax
imul rax, r9, 0x72d18
mov qword [rsp + 0x48], r15
lea r10, [r11 + rax]
lea r12, [rax + r11 + 0x100000]
imul rax, r9, 0xfffffffffff0c653
mov r11, qword [rsp + 0x58]
mov qword [rsp + 0x50], r10
mov qword [rsp + 0x40], r12
lea r15, [rcx + rax]
lea rcx, [rax + rcx + 0x100000]
imul rax, r9, 0x215d1
add rbp, rax
mov rax, rcx
and rcx, 0xffffffffffe00000
sar rax, 0x15
sub r15, rcx
imul rcx, r9, 0xfffffffffff59083
lea r10, [rbx + rcx]
lea rcx, [rcx + rbx + 0x100000]
mov r9, rcx
and rcx, 0xffffffffffe00000
sar r9, 0x15
sub r10, rcx
imul rcx, r14, 0xfffffffffff59083
lea rbx, [rcx + r11]
lea rcx, [rcx + r11 + 0x100000]
mov r11d, 0x1505
bextr r14d, dword [rdi + 0x2c], r11d
mov r11, rcx
sar r11, 0x15
and rcx, 0xffffffffffe00000
sub rbx, rcx
movabs rcx, 0x1fffffe00000
add r11, r14
lea r14, [r13 + rsi]
lea rsi, [rsi + r13 + 0x100000]
and rcx, rsi
shr rsi, 0x15
sub r14, rcx
mov rcx, qword [rsp + 0x38]
shr rcx, 0x15
lea r13, [r8 + rcx]
lea r8, [rcx + r8 + 0x100000]
mov rcx, r12
sar rcx, 0x15
lea r12, [rdx + rcx]
lea rcx, [rcx + rdx + 0x100000]
mov qword [rsp + 0x18], r13
mov r13, rcx
and rcx, 0xffffffffffe00000
sar r13, 0x15
sub r12, rcx
imul rcx, r11, 0x215d1
add rcx, qword [rsp + 0x18]
add r13, r15
mov qword [rsp + 0x58], r12
lea r12, [rbp + rax]
lea rax, [rax + rbp + 0x100000]
mov rbp, rax
and rax, 0xffffffffffe00000
sar rbp, 0x15
sub r12, rax
mov rax, qword [rsp + 0x20]
add rbp, r10
imul r10, r11, 0x9fb67
add r10, r14
lea rdx, [rax + r9]
lea rax, [r9 + rax + 0x100000]
imul r9, r11, 0x72d18
add r9, qword [rsp]
mov r15, rax
and rax, 0xffffffffffe00000
sar r15, 0x15
sub rdx, rax
imul rax, r11, 0xa2c13
add rax, qword [rsp + 8]
mov qword [rsp + 8], r8
and r8, 0xffffffffffe00000
add r15, rbx
imul rbx, r11, 0xfffffffffff0c653
add rbx, qword [rsp + 0x48]
sub rcx, r8
mov r8, qword [rsp + 0x40]
imul r14, r15, 0x9fb67
mov qword [rsp + 0x10], rdx
mov qword [rsp], rcx
imul rcx, r11, 0xfffffffffff59083
add rcx, qword [rsp + 0x50]
imul r11, r15, 0x215d1
add r14, r9
imul r9, r15, 0xfffffffffff0c653
add rbx, rsi
imul rsi, r15, 0xa2c13
and r8, 0xffffffffffe00000
add r11, rbx
imul rbx, rdx, 0xa2c13
sub rcx, r8
add r9, r10
mov qword [rsp + 0x20], rcx
mov ecx, 0x1504
bextr r8d, dword [rdi + 0xa], ecx
mov rcx, rdx
imul r10, rcx, 0x9fb67
imul rdx, rdx, 0x72d18
add rsi, r8
imul r8, r15, 0x72d18
add rdx, rsi
imul rsi, rcx, 0x215d1
add r8, rax
mov eax, 0x1507
add r10, r8
imul r8, rcx, 0xfffffffffff0c653
bextr eax, dword [rdi + 7], eax
add rsi, r9
imul r9, r12, 0x72d18
imul rcx, rbp, 0x72d18
add r8, r14
imul r14, rbp, 0x215d1
add rbx, rax
imul rax, rbp, 0xa2c13
add rax, qword [rsp + 0x28]
add r14, r8
imul r8, rbp, 0xfffffffffff59083
add rcx, rbx
add r8, rsi
imul rsi, r12, 0xa2c13
mov qword [rsp + 0x50], r8
mov r8d, 0x1505
add r9, rax
imul rax, r12, 0x9fb67
bextr r8d, dword [rdi + 2], r8d
add rax, rcx
imul rcx, rbp, 0x9fb67
add rsi, r8
imul r8, r12, 0xfffffffffff0c653
add r8, rcx
imul rcx, rbp, 0xfffffffffff0c653
imul rbp, r13, 0xfffffffffff59083
add r8, rdx
imul rdx, r12, 0x215d1
add rdx, rcx
mov rcx, qword [rsp + 0x30]
add rdx, r10
imul r10, r13, 0x72d18
add rbp, rdx
add r10, rsi
imul rsi, r13, 0xfffffffffff0c653
add rsi, rax
imul rax, r13, 0xa2c13
lea rbx, [rax + rcx]
lea rcx, [rax + rcx + 0x100000]
imul rax, r13, 0x9fb67
lea rdx, [r9 + rax]
lea rax, [rax + r9 + 0x100000]
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x38], rax
imul rax, r13, 0x215d1
lea rdx, [r8 + rax]
lea r13, [rax + r8 + 0x100000]
mov rax, rcx
and rcx, 0xffffffffffe00000
sar rax, 0x15
sub rbx, rcx
imul rcx, r12, 0xfffffffffff59083
mov qword [rsp + 0x30], rdx
mov rdx, qword [rsp + 0x20]
lea r12, [rax + r10 + 0x100000]
mov qword [rsp + 0x18], rbx
lea rbx, [r14 + rcx]
lea rcx, [rcx + r14 + 0x100000]
mov r14, rcx
and rcx, 0xffffffffffe00000
sar r14, 0x15
sub rbx, rcx
imul rcx, qword [rsp + 0x10], 0xfffffffffff59083
lea r9, [r11 + rcx]
lea rcx, [rcx + r11 + 0x100000]
imul r11, r15, 0xfffffffffff59083
add r11, qword [rsp]
mov r15, rcx
and rcx, 0xffffffffffe00000
sar r15, 0x15
sub r9, rcx
mov rcx, qword [rsp + 8]
sar rcx, 0x15
lea r8, [rdx + rcx]
lea rcx, [rdx + rcx + 0x100000]
mov rdx, rcx
and rcx, 0xffffffffffe00000
sar rdx, 0x15
sub r8, rcx
lea rcx, [r10 + rax]
mov r10, qword [rsp + 0x38]
mov qword [rsp + 0x40], rcx
mov rax, r10
sar rax, 0x15
and r10, 0xffffffffffe00000
lea rcx, [rsi + rax]
lea rsi, [rax + rsi + 0x100000]
mov rax, r13
sar rax, 0x15
and r13, 0xffffffffffe00000
mov qword [rsp + 0x10], rcx
lea rcx, [rbp + rax]
lea rax, [rax + rbp + 0x100000]
mov qword [rsp + 0x48], rcx
mov rcx, rax
sar rcx, 0x15
and rax, 0xffffffffffe00000
add rcx, rbx
mov rbx, qword [rsp + 0x50]
lea rbp, [rbx + r14]
lea r14, [r14 + rbx + 0x100000]
mov rbx, r14
sar rbx, 0x15
and r14, 0xffffffffffe00000
add rbx, r9
lea r9, [r15 + r11 + 0x100000]
sub rbp, r14
mov qword [rsp], rbp
lea rbp, [r11 + r15]
mov r15, r12
sar r15, 0x15
and r12, 0xffffffffffe00000
mov r14, r9
sar r14, 0x15
and r9, 0xffffffffffe00000
add r14, r8
mov r8, qword [rsp + 0x58]
sub rbp, r9
mov qword [rsp + 0x20], rbp
lea r9, [rdx + r8]
lea r8, [rdx + r8 + 0x100000]
mov rdx, r8
sar rdx, 0x15
and r8, 0xffffffffffe00000
imul r11, rdx, 0x9fb67
add r11, qword [rsp + 0x28]
sub r9, r8
imul r8, rdx, 0xa2c13
add r8, qword [rsp + 0x18]
mov qword [rsp + 8], r9
imul r9, rdx, 0x72d18
add r9, qword [rsp + 0x40]
sub r11, r10
imul r10, rdx, 0x215d1
add r10, qword [rsp + 0x30]
add r11, r15
imul r15, rdx, 0xfffffffffff0c653
imul rdx, rdx, 0xfffffffffff59083
add rdx, qword [rsp + 0x48]
add r15, qword [rsp + 0x10]
sub r9, r12
mov r12, rsi
and rsi, 0xffffffffffe00000
sar r12, 0x15
sub r10, r13
sub rdx, rax
mov rax, r8
sar rax, 0x15
sub r15, rsi
add r10, r12
and r8d, 0x1fffff
add rax, r9
mov r9, rax
sar r9, 0x15
and eax, 0x1fffff
add r9, r11
mov r12, r9
sar r12, 0x15
and r9d, 0x1fffff
add r12, r15
mov r13, r12
sar r13, 0x15
and r12d, 0x1fffff
add r13, r10
mov rbp, r13
sar rbp, 0x15
and r13d, 0x1fffff
add rbp, rdx
mov r10, rbp
sar r10, 0x15
and ebp, 0x1fffff
add r10, rcx
mov r11, r10
sar r11, 0x15
add r11, qword [rsp]
and r10d, 0x1fffff
mov rcx, r11
sar rcx, 0x15
and r11d, 0x1fffff
add rcx, rbx
mov rdx, rcx
sar rdx, 0x15
add rdx, qword [rsp + 0x20]
and ecx, 0x1fffff
mov qword [rsp + 0x30], rdx
sar rdx, 0x15
add rdx, r14
mov r15, rdx
sar r15, 0x15
add r15, qword [rsp + 8]
mov qword [rsp + 0x28], rdx
mov qword [rsp + 8], r15
sar r15, 0x15
imul rbx, r15, 0xa2c13
imul rdx, r15, 0x72d18
imul rsi, r15, 0xfffffffffff0c653
imul r14, r15, 0x215d1
add rbx, r8
add rdx, rax
imul rax, r15, 0x9fb67
add rsi, r12
add r14, r13
imul r13, r15, 0xfffffffffff59083
mov r8, rbx
sar r8, 0x15
mov byte [rdi], bl
mov byte [rdi + 1], bh
add r8, rdx
mov rdx, r8
add rax, r9
sar rdx, 0x15
add r13, rbp
mov r9d, 0x510
add rdx, rax
bextr ebp, ebx, r9d
mov rax, rdx
sar rax, 0x15
add rax, rsi
mov r12, rax
sar r12, 0x15
add r12, r14
mov r15, r12
sar r15, 0x15
add r15, r13
mov r14, r15
sar r14, 0x15
add r14, r10
mov r10d, r8d
shr r10d, 3
mov rsi, r14
sar rsi, 0x15
add rsi, r11
mov r11d, 0x70e
mov rbx, rsi
sar rbx, 0x15
add rbx, rcx
mov ecx, r8d
shl ecx, 5
or ecx, ebp
mov byte [rdi + 2], cl
mov byte [rdi + 3], r10b
mov r10d, 0x213
mov ecx, r8d
shr ecx, 0xb
bextr r8d, r8d, r10d
mov byte [rdi + 4], cl
mov ecx, edx
shr ecx, 6
lea r8d, [r8 + rdx*4]
bextr edx, edx, r11d
mov byte [rdi + 5], r8b
mov byte [rdi + 6], cl
mov ecx, eax
shl ecx, 7
mov r8, qword [rsp + 0x28]
or ecx, edx
bextr edx, ebx, r9d
mov byte [rdi + 7], cl
mov ecx, eax
shr ecx, 1
mov byte [rdi + 8], cl
mov ecx, 0x411
bextr ecx, eax, ecx
shr eax, 9
mov byte [rdi + 9], al
mov eax, r12d
shl eax, 4
and r8d, 0x1fffff
or eax, ecx
mov ecx, r12d
shr ecx, 0xc
mov byte [rdi + 0xa], al
mov eax, r12d
shr eax, 4
mov byte [rdi + 0xb], al
mov eax, 0x114
mov byte [rdi + 0xc], cl
mov ecx, r15d
shr ecx, 7
bextr eax, r12d, eax
lea eax, [rax + r15*2]
mov byte [rdi + 0xd], al
mov eax, 0x60f
mov byte [rdi + 0xe], cl
mov ecx, r14d
shl ecx, 6
bextr eax, r15d, eax
or ecx, eax
mov eax, r14d
shr eax, 2
mov byte [rdi + 0xf], cl
mov byte [rdi + 0x10], al
mov eax, 0x312
mov ecx, r14d
shr ecx, 0xa
bextr eax, r14d, eax
mov byte [rdi + 0x11], cl
lea eax, [rax + rsi*8]
mov byte [rdi + 0x12], al
mov eax, esi
shr eax, 5
shr esi, 0xd
mov byte [rdi + 0x13], al
mov rax, qword [rsp + 0x30]
mov byte [rdi + 0x14], sil
mov byte [rdi + 0x15], bl
mov byte [rdi + 0x16], bh
sar rbx, 0x15
mov rsi, qword [rsp + 8]
and eax, 0x1fffff
and esi, 0x1fffff
add rbx, rax
mov rcx, rbx
sar rcx, 0x15
add rcx, r8
mov r8d, ebx
shl r8d, 5
or r8d, edx
mov edx, ebx
shr edx, 3
mov rax, rcx
shr rax, 0x15
mov byte [rdi + 0x17], r8b
mov byte [rdi + 0x18], dl
bextr edx, ebx, r10d
shr ebx, 0xb
add eax, esi
bextr r8d, ecx, r11d
lea edx, [rdx + rcx*4]
shr ecx, 6
mov byte [rdi + 0x19], bl
mov byte [rdi + 0x1a], dl
mov byte [rdi + 0x1b], cl
mov ecx, eax
shl ecx, 7
or ecx, r8d
mov byte [rdi + 0x1c], cl
mov ecx, eax
shr ecx, 1
mov byte [rdi + 0x1d], cl
mov ecx, eax
shr ecx, 9
shr eax, 0x11
mov byte [rdi + 0x1e], cl
mov byte [rdi + 0x1f], al
add rsp, 0x60
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret