Function at 0x140011724
Capabilities:
Hash data using djb2

Disassembly:
push rbp
push rbx
sub rsp, 0x58
lea rbp, [rsp + 0x80]
mov qword [rbp - 0x10], rcx
mov dword [rbp - 0x3c], 0x1505
mov rax, qword [rbp - 0x10]
mov qword [rbp - 0x48], rax
jmp 0x14001175c
mov eax, dword [rbp - 0x3c]
shl eax, 5
mov edx, eax
mov eax, dword [rbp - 0x3c]
add edx, eax
mov eax, dword [rbp - 0x4c]
add eax, edx
mov dword [rbp - 0x3c], eax
mov rax, qword [rbp - 0x48]
lea rdx, [rax + 1]
mov qword [rbp - 0x48], rdx
movzx eax, byte [rax]
movsx eax, al
mov dword [rbp - 0x4c], eax
cmp dword [rbp - 0x4c], 0
jne 0x140011747
cmp dword [rbp - 0x3c], 0
jne 0x140011781
add dword [rbp - 0x3c], 1
lea rax, [0x140139198]
mov ecx, dword [rax]
mov eax, dword [rbp - 0x3c]
mov edx, 0
div ecx
mov dword [rbp - 0x34], edx
cmp dword [rbp - 0x34], 0
jne 0x1400117a1
add dword [rbp - 0x34], 1
mov eax, dword [rbp - 0x34]
mov dword [rbp - 0x38], eax
mov rax, qword [0x140130f80]
mov edx, dword [rbp - 0x38]
shl rdx, 4
add rax, rdx
mov eax, dword [rax]
test eax, eax
je 0x14001191e
mov rax, qword [0x140130f80]
mov edx, dword [rbp - 0x38]
shl rdx, 4
add rax, rdx
mov eax, dword [rax]
cmp dword [rbp - 0x34], eax
jne 0x14001183a
mov rax, qword [0x140130f80]
mov edx, dword [rbp - 0x38]
shl rdx, 4
add rax, rdx
mov rax, qword [rax + 8]
test rax, rax
je 0x14001180b
mov rax, qword [0x140130f80]
mov edx, dword [rbp - 0x38]
shl rdx, 4
add rax, rdx
mov rdx, qword [rax + 8]
jmp 0x140011812
lea rdx, str._NULL_
cmp qword [rbp - 0x10], 0
je 0x14001181f
mov rax, qword [rbp - 0x10]
jmp 0x140011826
lea rax, str._NULL_
mov rcx, rax
call sym.strcmp
test eax, eax
jne 0x14001183a
mov eax, dword [rbp - 0x38]
jmp 0x140011ac5
lea rax, [0x140139198]
mov eax, dword [rax]
lea ecx, [rax - 2]
mov eax, dword [rbp - 0x34]
mov edx, 0
div ecx
mov eax, edx
add eax, 1
mov dword [rbp - 0x50], eax
mov eax, dword [rbp - 0x38]
cmp eax, dword [rbp - 0x50]
ja 0x140011876
lea rax, [0x140139198]
mov edx, dword [rax]
mov eax, dword [rbp - 0x38]
add eax, edx
sub eax, dword [rbp - 0x50]
mov dword [rbp - 0x38], eax
jmp 0x14001187c
mov eax, dword [rbp - 0x50]
sub dword [rbp - 0x38], eax
mov eax, dword [rbp - 0x38]
cmp eax, dword [rbp - 0x34]
je 0x14001191d
mov rax, qword [0x140130f80]
mov edx, dword [rbp - 0x38]
shl rdx, 4
add rax, rdx
mov eax, dword [rax]
cmp dword [rbp - 0x34], eax
jne 0x140011900
mov rax, qword [0x140130f80]
mov edx, dword [rbp - 0x38]
shl rdx, 4
add rax, rdx
mov rax, qword [rax + 8]
test rax, rax
je 0x1400118d1
mov rax, qword [0x140130f80]
mov edx, dword [rbp - 0x38]
shl rdx, 4
add rax, rdx
mov rdx, qword [rax + 8]
jmp 0x1400118d8
lea rdx, str._NULL_
cmp qword [rbp - 0x10], 0
je 0x1400118e5
mov rax, qword [rbp - 0x10]
jmp 0x1400118ec
lea rax, str._NULL_
mov rcx, rax
call sym.strcmp
test eax, eax
jne 0x140011900
mov eax, dword [rbp - 0x38]
jmp 0x140011ac5
mov rax, qword [0x140130f80]
mov edx, dword [rbp - 0x38]
shl rdx, 4
add rax, rdx
mov eax, dword [rax]
test eax, eax
jne 0x140011858
jmp 0x14001191e
nop
lea rax, [0x1401391b0]
mov edx, dword [rax]
lea rax, [0x140139198]
mov eax, dword [rax]
cmp edx, eax
jb 0x140011968
lea rax, [0x140139198]
mov eax, dword [rax]
mov dword [rsp + 0x20], eax
lea r9, str.hash_table_is_full___d_entries_
lea r8, str.htab_hash
mov edx, 3
mov ecx, 0
call sym.usbi_log
mov eax, 0
jmp 0x140011ac5
lea rcx, [0x140130f88]
call sym.usbi_mutex_lock
mov rax, qword [0x140130f80]
mov edx, dword [rbp - 0x38]
shl rdx, 4
add rax, rdx
mov rax, qword [rax + 8]
test rax, rax
je 0x1400119c4
mov rax, qword [0x140130f80]
mov edx, dword [rbp - 0x38]
shl rdx, 4
add rax, rdx
mov rax, qword [rax + 8]
mov rcx, rax
call sym.free
mov rax, qword [0x140130f80]
mov edx, dword [rbp - 0x38]
shl rdx, 4
add rax, rdx
mov qword [rax + 8], 0
mov rax, qword [0x140130f80]
mov edx, dword [rbp - 0x38]
shl rdx, 4
add rdx, rax
mov eax, dword [rbp - 0x34]
mov dword [rdx], eax
cmp qword [rbp - 0x10], 0
je 0x1400119f0
mov rcx, qword [rbp - 0x10]
call sym.strlen
add rax, 1
jmp 0x1400119f5
mov eax, 1
mov rdx, qword [0x140130f80]
mov ecx, dword [rbp - 0x38]
shl rcx, 4
lea rbx, [rdx + rcx]
mov rdx, rax
mov ecx, 1
call sym.calloc
mov qword [rbx + 8], rax
mov rax, qword [0x140130f80]
mov edx, dword [rbp - 0x38]
shl rdx, 4
add rax, rdx
mov rax, qword [rax + 8]
test rax, rax
jne 0x140011a62
lea r9, str.could_not_duplicate_string_for_hash_table
lea r8, str.htab_hash
mov edx, 3
mov ecx, 0
call sym.usbi_log
lea rcx, [0x140130f88]
call sym.usbi_mutex_unlock
mov eax, 0
jmp 0x140011ac5
cmp qword [rbp - 0x10], 0
je 0x140011a78
mov rcx, qword [rbp - 0x10]
call sym.strlen
lea rcx, [rax + 1]
jmp 0x140011a7d
mov ecx, 1
mov rax, qword [0x140130f80]
mov edx, dword [rbp - 0x38]
shl rdx, 4
add rax, rdx
mov rax, qword [rax + 8]
mov r8, rcx
mov rdx, qword [rbp - 0x10]
mov rcx, rax
call sym.memcpy
lea rax, [0x1401391b0]
mov eax, dword [rax]
lea edx, [rax + 1]
lea rax, [0x1401391b0]
mov dword [rax], edx
lea rcx, [0x140130f88]
call sym.usbi_mutex_unlock
mov eax, dword [rbp - 0x38]
add rsp, 0x58
pop rbx
pop rbp
ret