Function at 0x1400465b0
Capabilities:
Hash data using djb2

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push r13
push r14
sub rsp, 0x78
mov r10, qword [r8 + 8]
mov r13, r8
movsxd r8, dword [r10 + 0x44]
lea r9, [r10 + 0x44]
movsxd r14, dword [r10 + 0x44]
lea r11, [r10 + 0x44]
mov qword [rax - 0x18], rbx
add r8, r9
mov qword [rax - 0x20], rbp
xor ebp, ebp
mov qword [rax - 0x28], rsi
mov rsi, rdx
mov qword [rax - 0x30], rdi
mov qword [rax - 0x38], r12
mov r12, qword [rdx + 0x40]
mov qword [rax - 0x40], r15
add r12, 0x1d0
mov r15, qword [rdx + 0x40]
mov eax, ebp
sub eax, dword [r9]
add r15, 0x1d8
neg eax
mov qword [rsp + 0xa8], r15
sbb rax, rax
add r14, r11
and r8, rax
movsxd rax, dword [r10 + 0x40]
lea rcx, [r8 + rax*8]
mov eax, ebp
sub eax, dword [r11]
neg eax
sbb rax, rax
and r14, rax
cmp r14, rcx
je 0x14004671f
mov r13, rcx
nop dword [rax]
mov r15, qword [r15]
mov esi, dword [r14 + 4]
movsxd rbx, dword [r14]
mov edi, dword [r14]
lea rcx, [r15 + 8]
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
test edi, edi
lea r8, [r14 + rbx]
mov edx, esi
lea rcx, [r15 + 0x70]
cmove r8, rbp
call fcn.140017350
cmp eax, 0xffffffff
je 0x14004669b
cdqe
lea rcx, [rax + rax*4]
mov rax, qword [r15 + 0x98]
lea rdx, [rax + rcx*8]
test rdx, rdx
je 0x14004669b
mov byte [rdx + 0x10], 1
lea rcx, [r15 + 8]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov r15, qword [r12]
mov esi, dword [r14 + 4]
movsxd rbx, dword [r14]
mov edi, dword [r14]
lea rcx, [r15 + 0x10]
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
test edi, edi
lea r8, [r14 + rbx]
mov edx, esi
lea rcx, [r15 + 0x18]
cmove r8, rbp
call fcn.140017350
cmp eax, 0xffffffff
je 0x1400466f0
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [r15 + 0x40]
lea rdx, [rax + rcx*8]
test rdx, rdx
je 0x1400466f0
mov dword [rdx], 0x40000000
lea rcx, [r15 + 0x10]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov r15, qword [rsp + 0xa8]
add r14, 8
cmp r14, r13
jne 0x140046650
mov r13, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0x98]
mov rax, qword [r13 + 8]
mov r14d, 1
cmp dword [rax + 0x50], ebp
jle 0x14004695e
mov rax, qword [rsi + 0x40]
lea ecx, [r14 + 0x3f]
mov rbx, qword [rax + 0x110]
call fcn.14005a7bc
mov qword [rax], 0x38
lock add qword [rbx], 0x38
lea rdi, [rax + 8]
mov ecx, 0x408
mov qword [r13 + 0x40], rdi
mov rax, qword [rsi + 0x40]
mov rbx, qword [rax + 0x110]
mov qword [rdi], rbx
call fcn.14005a7bc
mov qword [rax], 0x400
lock add qword [rbx], 0x400
add rax, 8
mov qword [rdi + 0x10], rbp
lea ecx, [r14 + 0x27]
mov qword [rdi + 8], rax
mov qword [rdi + 0x18], 0x400
call fcn.14005a7bc
mov qword [rax], 0x20
lock add qword [rbx], 0x20
add rax, 8
mov qword [rdi + 0x28], rbp
mov qword [rdi + 0x20], rax
mov eax, ebp
mov qword [rdi + 0x30], 8
mov r8, qword [r13 + 8]
sub eax, dword [r8 + 0x54]
lea rcx, [r8 + 0x54]
movsxd rdx, dword [rcx]
lea r9, [r8 + 0x54]
movsxd rbx, dword [r9]
add rdx, rcx
neg eax
sbb rax, rax
add rbx, r9
and rdx, rax
movsxd rax, dword [r8 + 0x50]
lea rdi, [rdx + rax*8]
mov eax, ebp
sub eax, dword [r9]
neg eax
sbb rax, rax
and rbx, rax
cmp rbx, rdi
je 0x140046844
lea rsi, [0x140025480]
nop word [rax + rax]
movsxd rcx, dword [rbx]
lea rdx, [0x14008cf80]
mov r9, qword [r13 + 0x40]
add rcx, rbx
mov eax, ebp
mov qword [rsp + 0x20], rsi
sub eax, dword [rbx]
movzx r8d, r14b
neg eax
sbb rax, rax
and rcx, rax
call fcn.140029190
add rbx, 8
cmp rbx, rdi
jne 0x140046810
mov rax, qword [r13 + 0x40]
mov esi, ebp
cmp dword [rax + 0x28], ebp
jbe 0x14004695e
mov ebp, r14d
nop word [rax + rax]
mov rdx, qword [r13 + 0x40]
mov r8d, 0x1505
mov ecx, esi
mov rax, qword [rdx + 0x20]
mov ebx, dword [rax + rcx*4]
add rbx, qword [rdx + 8]
movzx eax, byte [rbx]
lea r9, [rbx + 1]
test eax, eax
je 0x1400468b0
nop dword [rax]
nop word [rax + rax]
lea ecx, [rax - 0x41]
cmp ecx, 0x1a
lea edx, [rax + 0x20]
lea r9, [r9 + 1]
cmovb eax, edx
imul r8d, r8d, 0x21
add r8d, eax
movzx eax, byte [r9 - 1]
test eax, eax
jne 0x140046890
mov r14, qword [r15]
test r8d, r8d
mov edi, ebp
cmovne edi, r8d
lea rcx, [r14 + 8]
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov r8, rbx
lea rcx, [r14 + 0x70]
mov edx, edi
call fcn.140017350
cmp eax, 0xffffffff
je 0x1400468f3
cdqe
lea rcx, [rax + rax*4]
mov rax, qword [r14 + 0x98]
lea rdx, [rax + rcx*8]
test rdx, rdx
je 0x1400468f3
mov byte [rdx + 0x10], bpl
lea rcx, [r14 + 8]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov r14, qword [r12]
lea rcx, [r14 + 0x10]
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov r8, rbx
lea rcx, [r14 + 0x18]
mov edx, edi
call fcn.140017350
cmp eax, 0xffffffff
je 0x140046937
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [r14 + 0x40]
lea rdx, [rax + rcx*8]
test rdx, rdx
je 0x140046937
mov dword [rdx], 0x40000000
lea rcx, [r14 + 0x10]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rax, qword [r13 + 0x40]
inc esi
mov r15, qword [rsp + 0xa8]
cmp esi, dword [rax + 0x28]
jb 0x140046860
xor ebp, ebp
lea r14d, [rbp + 1]
mov r8, qword [r13 + 8]
mov eax, ebp
sub eax, dword [r8 + 0x4c]
lea rcx, [r8 + 0x4c]
movsxd rdx, dword [rcx]
lea r9, [r8 + 0x4c]
mov r15, qword [rsp + 0x48]
add rdx, rcx
movsxd rcx, dword [r9]
xor r10b, r10b
mov r12, qword [rsp + 0x50]
neg eax
mov rdi, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
sbb rax, rax
sub ebp, dword [r9]
and rdx, rax
movsxd rax, dword [r8 + 0x48]
add rcx, r9
mov rbx, qword [rsp + 0x70]
neg ebp
mov rbp, qword [rsp + 0x68]
lea r8, [rdx + rax*4]
sbb rax, rax
and rcx, rax
cmp rcx, r8
je 0x1400469f1
nop dword [rax]
test byte [rcx], 8
movzx r10d, r10b
cmovne r10d, r14d
add rcx, 4
cmp rcx, r8
jne 0x1400469c0
test r10b, r10b
je 0x1400469f1
mov rdx, qword [rsp + 0x98]
mov r8, r13
mov rcx, qword [rsp + 0x90]
call fcn.140031db0
add rsp, 0x78
pop r14
pop r13
ret