Function at 0x1401875c0
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, [0x1403dafd0]
mov ebp, r14d
mov qword [rax - 0x28], rcx
mov qword [rax - 0x20], r14
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [r14 + 1]
lock xadd dword [rsp + 0x38], eax
test eax, eax
jne 0x140187615
cmp dword [rsp + 0x3c], r14d
jne 0x1401878d6
call sub.KERNEL32.dll_GetCurrentThreadId
mov dword [rsp + 0x3c], eax
cmp qword [0x1403d6d40], r14
jne 0x1401878b1
cmp qword [0x1403dafb0], r14
jne 0x140187635
mov ebp, 0x80004005
jmp 0x1401878b1
mov ecx, dword [0x1403dafa8]
lea r12, [0x1403daff8]
mov qword [0x1403d6d50], rcx
mov eax, 0x50
mul rcx
mov rsi, 0xffffffffffffffff
mov dword [0x1403d6d6c], r14d
mov rcx, r12
cmovo rax, rsi
mov rdx, rax
call fcn.14018888c
mov rbx, rax
lea edi, [rsi + 9]
mov eax, edi
mov rcx, r12
mul qword [0x1403d6d50]
cmovo rax, rsi
mov rdx, rax
call fcn.14018888c
mov qword [0x1403d6d58], rax
mov rcx, r12
mov eax, edi
mul qword [0x1403d6d50]
cmovo rax, rsi
mov rdx, rax
call fcn.14018888c
mov rdx, qword [0x1403d6d58]
mov qword [0x1403d6d60], rax
test rbx, rbx
je 0x140187855
test rdx, rdx
je 0x140187855
test rax, rax
je 0x140187855
mov rax, qword [0x1403d6d50]
xor edx, edx
mov rcx, rbx
lea r8, [rax + rax*4]
shl r8, 4
call fcn.1402108c0
mov rax, qword [0x1403dafb0]
test rax, rax
je 0x14018770d
cmp dword [rax + 8], r14d
jne 0x14018770d
mov dword [rbx + 0x14], 1
mov dword [rbx + 0x34], 1
cmp qword [0x1403d6d50], r14
mov esi, r14d
jbe 0x14018783e
mov rcx, r14
mov r12d, 0x3039
lea rdi, [rcx + rcx*4]
shl rdi, 4
add rdi, rbx
mov qword [rdi], rcx
add rcx, rcx
mov rax, qword [0x1403dafb0]
mov r9, qword [rax + rcx*8]
mov qword [rdi + 8], r9
mov rax, qword [0x1403dafb0]
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 0x14018777d
or ecx, 0xffffffff
jmp 0x1401877c7
movzx ecx, word [r9]
mov edx, 0x1505
mov r8, r14
jmp 0x1401877a7
lea eax, [rcx - 0x41]
cmp ax, 0x19
movzx eax, cx
ja 0x14018779a
add eax, 0x20
imul edx, edx, 0x21
xor edx, eax
inc r8
movzx ecx, word [r9 + r8*2]
test cx, cx
jne 0x14018778b
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 0x140187808
mov r9d, dword [0x1403d6d50]
lea rax, [0x140187550]
mov r8d, dword [0x1403d6d68]
mov rcx, rdi
mov rdx, qword [0x1403d6d58]
mov qword [rsp + 0x20], rax
call fcn.140186e68
inc dword [0x1403d6d68]
mov r9d, dword [0x1403d6d50]
lea rax, [0x140187580]
mov rdx, qword [0x1403d6d60]
mov r8d, esi
mov rcx, rdi
mov qword [rsp + 0x20], rax
call fcn.140186e68
inc esi
mov ecx, esi
cmp rcx, qword [0x1403d6d50]
jb 0x140187726
mov eax, esi
mov qword [0x1403d6d48], rax
xchg qword [0x1403d6d40], rbx
call fcn.140186f10
jmp 0x1401878b1
mov qword [0x1403d6d50], r14
mov ebp, 0x8007000e
test rbx, rbx
je 0x14018787f
mov rdx, rbx
mov rcx, r12
call fcn.1401888e0
mov rdx, qword [0x1403d6d58]
mov rax, qword [0x1403d6d60]
test rdx, rdx
je 0x140187893
mov rcx, r12
call fcn.1401888e0
mov rax, qword [0x1403d6d60]
test rax, rax
je 0x1401878a3
mov rdx, rax
mov rcx, r12
call fcn.1401888e0
mov qword [0x1403d6d58], r14
mov qword [0x1403d6d60], r14
lea rcx, [rsp + 0x30]
call fcn.1401763b8
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
xor edx, edx
mov ecx, 0x131f4c4
call fcn.1400235f8
int3