Function at 0x140045880
Capabilities:
Hash data using djb2

Disassembly:
mov dword [rsp + 0x10], edx
push rbp
push rbx
push rsi
push rdi
push r14
mov rbp, rsp
sub rsp, 0x70
movzx r10d, byte [r9]
lea r11, [r9 + 1]
mov rdi, r9
mov r14d, r8d
mov rsi, rcx
mov ebx, 0x1505
test r10d, r10d
je 0x1400458d7
nop dword [rax]
lea eax, [r10 - 0x41]
cmp eax, 0x1a
lea edx, [r10 + 0x20]
lea r11, [r11 + 1]
cmovb r10d, edx
imul rbx, rbx, 0x21
mov ecx, r10d
movzx r10d, byte [r11 - 1]
add rbx, rcx
test r10d, r10d
jne 0x1400458b0
mov rax, qword [rbp + 0x50]
test rbx, rbx
mov ecx, 1
cmovne rcx, rbx
xor rcx, qword [rax]
mov rax, qword [rax + 8]
mov qword [rbp - 0x48], rax
mov rax, qword [rsi]
mov qword [rbp - 0x50], rcx
mov r8, qword [rax]
mov rdx, qword [rax]
add r8, 8
xor eax, eax
sub eax, dword [r8]
movsxd rcx, dword [r8]
mov edx, dword [rdx + 4]
add rcx, r8
neg eax
lea r8, [rbp - 0x50]
sbb rax, rax
and rcx, rax
call fcn.1400068f0
mov r10, rax
test rax, rax
je 0x140045d8d
mov rcx, qword [rsi]
mov rbx, qword [rsi + 8]
mov qword [rsp + 0xa0], r12
mov qword [rsp + 0xb0], r15
mov rdx, qword [rcx]
mov r9, qword [rcx]
add rdx, 8
xor ecx, ecx
add r9, 0xc
sub ecx, dword [rdx]
movsxd r8, dword [rdx]
add r8, rdx
neg ecx
movsxd rcx, dword [r9]
sbb rax, rax
add rcx, r9
and r8, rax
xor eax, eax
sub eax, dword [r9]
sub r10, r8
sar r10, 4
movsxd r15, r10d
shl r15, 4
neg eax
sbb rax, rax
and rcx, rax
add r15, rcx
cmp byte [rbx + 0x20], 0
movsxd r12, dword [r15 + 8]
je 0x1400459a9
mov r8d, 1
mov byte [rbp + 0x38], 0x2c
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.140037fc0
mov r8d, 1
mov byte [rbp + 0x38], 0x7b
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.140037fc0
mov byte [rbx + 0x20], 0
mov rbx, qword [rsi + 8]
cmp byte [rbx + 0x20], 0
je 0x1400459e3
mov r8d, 1
mov byte [rbp + 0x38], 0x2c
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.140037fc0
mov r8d, 1
mov byte [rbp + 0x38], 0x22
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.140037fc0
mov r8, 0xffffffffffffffff
lea rdx, str.file
mov rcx, rbx
call fcn.1400380c0
mov r8d, 1
mov byte [rbp + 0x38], 0x22
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.140037fc0
mov r8d, 1
mov byte [rbx + 0x20], 1
lea rdx, [rbp + 0x38]
mov byte [rbp + 0x38], 0x3a
mov rcx, rbx
call fcn.140037fc0
mov byte [rbx + 0x20], 0
mov rbx, qword [rsi + 8]
cmp byte [rbx + 0x20], 0
je 0x140045a63
mov r8d, 1
mov byte [rbp + 0x38], 0x2c
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.140037fc0
mov r8d, 1
mov byte [rbp + 0x38], 0x22
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.140037fc0
mov r8, 0xffffffffffffffff
mov rdx, rdi
mov rcx, rbx
call fcn.1400380c0
mov r8d, 1
mov byte [rbp + 0x38], 0x22
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.140037fc0
mov rcx, qword [rsi + 0x10]
mov r8, rdi
mov edx, r14d
mov byte [rbx + 0x20], 1
call fcn.140017350
cmp eax, 0xffffffff
je 0x140045b9c
mov rbx, qword [rsi + 8]
cmp byte [rbx + 0x20], 0
je 0x140045add
mov r8d, 1
mov byte [rbp + 0x38], 0x2c
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.140037fc0
mov r8d, 1
mov byte [rbp + 0x38], 0x22
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.140037fc0
mov r8, 0xffffffffffffffff
lea rdx, str.direct
mov rcx, rbx
call fcn.1400380c0
mov r8d, 1
mov byte [rbp + 0x38], 0x22
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.140037fc0
mov r8d, 1
mov byte [rbx + 0x20], 1
lea rdx, [rbp + 0x38]
mov byte [rbp + 0x38], 0x3a
mov rcx, rbx
call fcn.140037fc0
mov byte [rbx + 0x20], 0
mov rbx, qword [rsi + 8]
cmp byte [rbx + 0x20], 0
je 0x140045b5d
mov r8d, 1
mov byte [rbp + 0x38], 0x2c
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.140037fc0
mov r9d, 1
lea r8, str._lli
lea rcx, [rbp - 0x40]
lea edx, [r9 + 0x31]
call fcn.140003900
lea rax, [rbp - 0x40]
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], 0
jne 0x140045b82
lea rdx, [rbp - 0x40]
mov rcx, rbx
call fcn.140037fc0
mov byte [rbx + 0x20], 1
mov rbx, qword [rsi + 8]
cmp byte [rbx + 0x20], 0
je 0x140045bbc
mov r8d, 1
mov byte [rbp + 0x38], 0x2c
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.140037fc0
mov r8d, 1
mov byte [rbp + 0x38], 0x22
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.140037fc0
mov r8, 0xffffffffffffffff
lea rdx, str.includes
mov rcx, rbx
call fcn.1400380c0
mov r8d, 1
mov byte [rbp + 0x38], 0x22
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.140037fc0
mov r8d, 1
mov byte [rbx + 0x20], 1
lea rdx, [rbp + 0x38]
mov byte [rbp + 0x38], 0x3a
mov rcx, rbx
call fcn.140037fc0
mov byte [rbx + 0x20], 0
mov rbx, qword [rsi + 8]
cmp byte [rbx + 0x20], 0
je 0x140045c3c
mov r8d, 1
mov byte [rbp + 0x38], 0x2c
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.140037fc0
mov r8d, 1
mov byte [rbp + 0x38], 0x5b
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.140037fc0
mov rcx, qword [rsi + 8]
lea rdx, str._n_EWIDS
mov r8d, 1
mov byte [rbx + 0x20], 0
call fcn.140037fc0
test r12, r12
jle 0x140045d41
xor r14d, r14d
add r15, 0xc
nop dword [rax]
movsxd rcx, dword [r15]
xor eax, eax
sub eax, dword [r15]
add rcx, r15
mov rbx, qword [rsi + 8]
neg eax
sbb rax, rax
and rcx, rax
xor eax, eax
sub eax, dword [rcx + r14*8]
lea rcx, [rcx + r14*8]
movsxd rdi, dword [rcx]
add rdi, rcx
neg eax
sbb rax, rax
and rdi, rax
cmp byte [rbx + 0x20], 0
je 0x140045ccb
mov r8d, 1
mov byte [rbp + 0x38], 0x2c
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.140037fc0
mov rcx, rbx
test rdi, rdi
jne 0x140045ce0
lea r8d, [rdi + 4]
lea rdx, str.null
jmp 0x140045d16
mov r8d, 1
mov byte [rbp + 0x38], 0x22
lea rdx, [rbp + 0x38]
call fcn.140037fc0
mov r8, 0xffffffffffffffff
mov rdx, rdi
mov rcx, rbx
call fcn.1400380c0
mov r8d, 1
mov byte [rbp + 0x38], 0x22
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.140037fc0
mov rcx, qword [rsi + 8]
lea rdx, str._n_EWIDS
mov r8d, 1
mov byte [rbx + 0x20], 1
call fcn.140037fc0
inc r14
cmp r14, r12
jl 0x140045c80
mov rbx, qword [rsi + 8]
lea rdx, [rbp + 0x38]
mov rcx, rbx
mov byte [rbp + 0x38], 0x5d
mov r8d, 1
call fcn.140037fc0
mov byte [rbx + 0x20], 1
lea rdx, [rbp + 0x38]
mov rbx, qword [rsi + 8]
mov r8d, 1
mov rcx, rbx
mov byte [rbp + 0x38], 0x7d
call fcn.140037fc0
mov r15, qword [rsp + 0xb0]
mov r12, qword [rsp + 0xa0]
mov byte [rbx + 0x20], 1
add rsp, 0x70
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret