Function at 0x411844
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 0x41187c
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 0x411867
cmp dword [rbp - 0x3c], 0
jne 0x4118a1
add dword [rbp - 0x3c], 1
lea rax, [0x005319d8]
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 0x4118c1
add dword [rbp - 0x34], 1
mov eax, dword [rbp - 0x34]
mov dword [rbp - 0x38], eax
mov rax, qword [0x00528f80]
mov edx, dword [rbp - 0x38]
shl rdx, 4
add rax, rdx
mov eax, dword [rax]
test eax, eax
je 0x411a3e
mov rax, qword [0x00528f80]
mov edx, dword [rbp - 0x38]
shl rdx, 4
add rax, rdx
mov eax, dword [rax]
cmp dword [rbp - 0x34], eax
jne 0x41195a
mov rax, qword [0x00528f80]
mov edx, dword [rbp - 0x38]
shl rdx, 4
add rax, rdx
mov rax, qword [rax + 8]
test rax, rax
je 0x41192b
mov rax, qword [0x00528f80]
mov edx, dword [rbp - 0x38]
shl rdx, 4
add rax, rdx
mov rdx, qword [rax + 8]
jmp 0x411932
lea rdx, str._NULL_
cmp qword [rbp - 0x10], 0
je 0x41193f
mov rax, qword [rbp - 0x10]
jmp 0x411946
lea rax, str._NULL_
mov rcx, rax
call sym.strcmp
test eax, eax
jne 0x41195a
mov eax, dword [rbp - 0x38]
jmp 0x411be5
lea rax, [0x005319d8]
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 0x411996
lea rax, [0x005319d8]
mov edx, dword [rax]
mov eax, dword [rbp - 0x38]
add eax, edx
sub eax, dword [rbp - 0x50]
mov dword [rbp - 0x38], eax
jmp 0x41199c
mov eax, dword [rbp - 0x50]
sub dword [rbp - 0x38], eax
mov eax, dword [rbp - 0x38]
cmp eax, dword [rbp - 0x34]
je 0x411a3d
mov rax, qword [0x00528f80]
mov edx, dword [rbp - 0x38]
shl rdx, 4
add rax, rdx
mov eax, dword [rax]
cmp dword [rbp - 0x34], eax
jne 0x411a20
mov rax, qword [0x00528f80]
mov edx, dword [rbp - 0x38]
shl rdx, 4
add rax, rdx
mov rax, qword [rax + 8]
test rax, rax
je 0x4119f1
mov rax, qword [0x00528f80]
mov edx, dword [rbp - 0x38]
shl rdx, 4
add rax, rdx
mov rdx, qword [rax + 8]
jmp 0x4119f8
lea rdx, str._NULL_
cmp qword [rbp - 0x10], 0
je 0x411a05
mov rax, qword [rbp - 0x10]
jmp 0x411a0c
lea rax, str._NULL_
mov rcx, rax
call sym.strcmp
test eax, eax
jne 0x411a20
mov eax, dword [rbp - 0x38]
jmp 0x411be5
mov rax, qword [0x00528f80]
mov edx, dword [rbp - 0x38]
shl rdx, 4
add rax, rdx
mov eax, dword [rax]
test eax, eax
jne 0x411978
jmp 0x411a3e
nop
lea rax, [0x005319f0]
mov edx, dword [rax]
lea rax, [0x005319d8]
mov eax, dword [rax]
cmp edx, eax
jb 0x411a88
lea rax, [0x005319d8]
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 0x411be5
lea rcx, [0x00528f88]
call sym.usbi_mutex_lock
mov rax, qword [0x00528f80]
mov edx, dword [rbp - 0x38]
shl rdx, 4
add rax, rdx
mov rax, qword [rax + 8]
test rax, rax
je 0x411ae4
mov rax, qword [0x00528f80]
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 [0x00528f80]
mov edx, dword [rbp - 0x38]
shl rdx, 4
add rax, rdx
mov qword [rax + 8], 0
mov rax, qword [0x00528f80]
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 0x411b10
mov rcx, qword [rbp - 0x10]
call sym.strlen
add rax, 1
jmp 0x411b15
mov eax, 1
mov rdx, qword [0x00528f80]
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 [0x00528f80]
mov edx, dword [rbp - 0x38]
shl rdx, 4
add rax, rdx
mov rax, qword [rax + 8]
test rax, rax
jne 0x411b82
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, [0x00528f88]
call sym.usbi_mutex_unlock
mov eax, 0
jmp 0x411be5
cmp qword [rbp - 0x10], 0
je 0x411b98
mov rcx, qword [rbp - 0x10]
call sym.strlen
lea rcx, [rax + 1]
jmp 0x411b9d
mov ecx, 1
mov rax, qword [0x00528f80]
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, [0x005319f0]
mov eax, dword [rax]
lea edx, [rax + 1]
lea rax, [0x005319f0]
mov dword [rax], edx
lea rcx, [0x00528f88]
call sym.usbi_mutex_unlock
mov eax, dword [rbp - 0x38]
add rsp, 0x58
pop rbx
pop rbp
ret