Function at 0x1401167d4
Capabilities:
Hash data using djb2

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
push rdi
push r12
push r14
sub rsp, 0x40
xor r14d, r14d
lea rcx, [0x1403625b8]
mov ebp, r14d
mov qword [rax - 0x28], rcx
mov dword [rax - 0x20], r14d
mov dword [rax - 0x1c], r14d
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [r14 + 1]
lock xadd dword [rsp + 0x38], eax
inc eax
cmp eax, 1
jne 0x140116837
cmp dword [rsp + 0x3c], r14d
je 0x14011682d
mov ecx, 0x103753
call fcn.140175954
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [rsp + 0x3c], eax
cmp qword [0x1403624d8], r14
jne 0x140116acf
cmp qword [0x140362598], r14
jne 0x140116857
mov ebp, 0x80004005
jmp 0x140116acf
mov ecx, dword [0x140362590]
lea r12, [0x1403625e0]
mov qword [0x1403624e8], rcx
mov eax, 0x50
mul rcx
mov rsi, 0xffffffffffffffff
mov dword [0x140362504], r14d
mov rcx, r12
cmovo rax, rsi
mov rdx, rax
call fcn.1401174a0
mov rbx, rax
lea edi, [rsi + 9]
mov eax, edi
mov rcx, r12
mul qword [0x1403624e8]
cmovo rax, rsi
mov rdx, rax
call fcn.1401174a0
mov qword [0x1403624f0], rax
mov rcx, r12
mov eax, edi
mul qword [0x1403624e8]
cmovo rax, rsi
mov rdx, rax
call fcn.1401174a0
mov rdx, qword [0x1403624f0]
mov qword [0x1403624f8], rax
test rbx, rbx
je 0x140116a73
test rdx, rdx
je 0x140116a73
test rax, rax
je 0x140116a73
mov rax, qword [0x1403624e8]
xor edx, edx
mov rcx, rbx
lea r8, [rax + rax*4]
shl r8, 4
call fcn.1401380c0
mov rax, qword [0x140362598]
test rax, rax
je 0x14011692f
cmp dword [rax + 8], r14d
jne 0x14011692f
mov dword [rbx + 0x14], 1
mov dword [rbx + 0x34], 1
cmp qword [0x1403624e8], r14
mov esi, r14d
jbe 0x140116a61
mov rcx, r14
mov r12d, 0x3039
lea rdi, [rcx + rcx*4]
shl rdi, 4
add rdi, rbx
mov qword [rdi], rcx
lea rcx, [rcx + rcx*2]
mov rax, qword [0x140362598]
mov r9, qword [rax + rcx*8]
mov qword [rdi + 8], r9
mov rax, qword [0x140362598]
mov ecx, dword [rax + rcx*8 + 8]
mov dword [rdi + 0x10], ecx
movzx ecx, cx
imul eax, ecx, 0x4e6d
add eax, r12d
movzx edx, ax
imul eax, ecx, 0xdcd0000
add eax, 0x10000
or edx, eax
mov dword [rdi + 0x48], edx
test r9, r9
jne 0x1401169a0
or ecx, 0xffffffff
jmp 0x1401169ea
movzx ecx, word [r9]
mov edx, 0x1505
mov r8, r14
jmp 0x1401169ca
lea eax, [rcx - 0x41]
cmp ax, 0x19
movzx eax, cx
ja 0x1401169bd
add eax, 0x20
imul edx, edx, 0x21
xor edx, eax
inc r8
movzx ecx, word [r9 + r8*2]
test cx, cx
jne 0x1401169ae
imul ecx, edx, 0x41c64e6d
imul eax, edx, 0x10dcd
add ecx, r12d
inc eax
shr ecx, 0x10
and eax, 0xffff0000
or ecx, eax
mov eax, dword [rdi + 0x10]
sub eax, 0x800
mov dword [rdi + 0x4c], ecx
test eax, 0xfffff7ff
je 0x140116a2b
mov r9d, dword [0x1403624e8]
lea rax, [0x14011676c]
mov r8d, dword [0x140362500]
mov rcx, rdi
mov rdx, qword [0x1403624f0]
mov qword [rsp + 0x20], rax
call fcn.1401161f8
inc dword [0x140362500]
mov r9d, dword [0x1403624e8]
lea rax, [0x140116794]
mov rdx, qword [0x1403624f8]
mov r8d, esi
mov rcx, rdi
mov qword [rsp + 0x20], rax
call fcn.1401161f8
inc esi
mov ecx, esi
cmp rcx, qword [0x1403624e8]
jb 0x140116948
mov eax, esi
mov qword [0x1403624e0], rax
xchg qword [0x1403624d8], rbx
jmp 0x140116acf
mov qword [0x1403624e8], r14
mov ebp, 0x8007000e
test rbx, rbx
je 0x140116a9d
mov rdx, rbx
mov rcx, r12
call fcn.1401174f0
mov rdx, qword [0x1403624f0]
mov rax, qword [0x1403624f8]
test rdx, rdx
je 0x140116ab1
mov rcx, r12
call fcn.1401174f0
mov rax, qword [0x1403624f8]
test rax, rax
je 0x140116ac1
mov rdx, rax
mov rcx, r12
call fcn.1401174f0
mov qword [0x1403624f0], r14
mov qword [0x1403624f8], r14
lea rcx, [rsp + 0x30]
call fcn.14010a290
mov rbx, qword [rsp + 0x60]
mov eax, ebp
mov rbp, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
add rsp, 0x40
pop r14
pop r12
pop rdi
ret