Function at 0x6ae910
Capabilities:
Hash data using djb2

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
lea rsi, [0x00747b40]
mov r12, r8
mov r8, qword [rcx + 0x10]
mov r15, qword [rcx + 8]
mov r10, qword [rsi + r8*8]
mov rdi, rcx
mov r13, rdx
mov rbp, r9
lea r14, [rcx + 0x18]
cmp qword [rcx], r10
jae 0x6aea00
movsx rdx, byte [r13]
test rdx, rdx
je 0x6aebe0
mov rcx, r13
mov esi, 0x1505
nop word [rax + rax]
mov rax, rsi
shl rax, 5
inc rcx
add rax, rdx
movsx rdx, byte [rcx]
add rsi, rax
test rdx, rdx
jne 0x6ae968
mov rax, rsi
xor edx, edx
div r10
shl rdx, 4
add r15, rdx
mov rbx, qword [r15]
cmp rbx, r14
jne 0x6ae9ae
jmp 0x6aeba8
cmp rbx, qword [r15 + 8]
je 0x6aeb38
mov rbx, qword [rbx + 8]
mov r8, qword [rbx - 8]
cmp rsi, r8
jne 0x6ae9a0
lea rcx, [rbx + 0x20]
mov rdx, r13
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x6ae9a0
mov rcx, qword [rbx + 0x10]
test rcx, rcx
je 0x6ae9e7
mov rdx, qword [rcx + 8]
cmp rdx, 0xffffffffffffffff
je 0x6ae9e7
dec rdx
mov qword [rcx + 8], rdx
je 0x6aebc0
mov qword [rbx + 0x10], rbp
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, r15
call fcn.006b0fc0
mov rax, qword [rdi + 0x10]
inc rax
mov rbx, qword [rsi + rax*8]
mov qword [rdi + 0x10], rax
mov rcx, rbx
shl rcx, 4
call fcn.006b0fa0
mov qword [rdi + 8], rax
mov r15, rax
test rax, rax
je 0x6aec18
mov r8, qword [rdi + 0x10]
mov r10, qword [rsi + r8*8]
test r10, r10
je 0x6aeab2
lea rax, [r10 - 1]
cmp rax, 1
jbe 0x6aec11
mov rdx, r10
shr rdx, 1
shl rdx, 5
vpbroadcastq ymm0, r14
mov rax, r15
add rdx, r15
nop dword [rax]
vmovdqu64 ymmword [rax], ymm0
add rax, 0x20
cmp rdx, rax
jne 0x6aea68
mov rax, r10
and rax, 0xfffffffffffffffe
test r10b, 1
je 0x6aebd2
vzeroupper
mov rdx, rax
shl rdx, 4
add rdx, r15
inc rax
mov qword [rdx + 8], r14
mov qword [rdx], r14
cmp r10, rax
jbe 0x6aeab2
shl rax, 4
add rax, r15
mov qword [rax + 8], r14
mov qword [rax], r14
mov r11, qword [rdi + 0x20]
mov qword [rdi + 0x18], r14
mov qword [rdi + 0x20], r14
cmp r11, r14
jne 0x6aeaf0
jmp 0x6ae94c
mov rsi, qword [rax]
mov qword [rcx + 8], rax
mov qword [rcx], rsi
mov rsi, qword [rax]
mov qword [rsi + 8], rcx
mov qword [rax], rcx
mov qword [rdx], rcx
cmp r11, r14
je 0x6ae94c
mov rcx, r11
mov rax, qword [rcx - 8]
xor edx, edx
div rbx
mov r11, qword [r11 + 8]
shl rdx, 4
add rdx, r15
mov rax, qword [rdx]
cmp rax, r14
jne 0x6aead0
cmp qword [rdx + 8], r14
jne 0x6aead0
mov rax, qword [rdi + 0x18]
mov qword [rcx + 8], r14
mov qword [rcx], rax
mov rax, qword [rdi + 0x18]
mov qword [rax + 8], rcx
mov qword [rdi + 0x18], rcx
mov qword [rdx + 8], rcx
mov qword [rdx], rcx
jmp 0x6aeae7
mov rcx, r13
call sub.msvcrt.dll_strlen
lea rcx, [rax + 0x29]
call fcn.006b0fa0
mov rbx, rax
test rax, rax
je 0x6aec18
mov qword [rax], rsi
mov qword [rax + 0x20], r12
mov rdx, r13
lea rcx, [rax + 0x28]
call sub.msvcrt.dll_strcpy
lea rax, [rbx + 8]
mov qword [rbx + 0x10], rax
mov qword [rbx + 8], rax
mov qword [rbx + 0x18], rbp
mov rdx, qword [r15]
cmp rdx, r14
je 0x6aebea
mov rcx, qword [rdx]
mov qword [rbx + 0x10], rdx
mov qword [rbx + 8], rcx
mov rcx, qword [rdx]
mov qword [rcx + 8], rax
mov qword [rdx], rax
mov qword [r15], rax
inc qword [rdi]
xor eax, eax
jmp 0x6ae9eb
cmp qword [r15 + 8], r14
je 0x6aeb38
mov rbx, r14
jmp 0x6ae9b2
mov dword [rsp + 0x2c], eax
call fcn.006b2260
mov eax, dword [rsp + 0x2c]
jmp 0x6ae9e7
vzeroupper
jmp 0x6aeab2
mov esi, 0x1505
jmp 0x6ae981
cmp qword [r15 + 8], r14
jne 0x6aeb80
mov rdx, qword [rdi + 0x18]
mov qword [rbx + 0x10], r14
mov qword [rbx + 8], rdx
mov rdx, qword [rdi + 0x18]
mov qword [rdx + 8], rax
mov qword [rdi + 0x18], rax
mov qword [r15 + 8], rax
mov qword [r15], rax
jmp 0x6aeb98
xor eax, eax
jmp 0x6aea8b
mov eax, 0xffffffff
jmp 0x6ae9eb