Function at 0x140228bb0
Capabilities:
Hash data using djb2

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x28
lea rsi, [0x1402c13a0]
mov rdi, rcx
mov rcx, qword [rcx + 0x10]
mov r12, rdx
mov r14, r8
mov r15, qword [rdi + 8]
mov r13, r9
lea rbp, [rdi + 0x18]
mov r10, qword [rsi + rcx*8]
cmp qword [rdi], r10
jae 0x140228ca0
movsx rdx, byte [r12]
test rdx, rdx
je 0x140228e38
mov r8, r12
mov esi, 0x1505
nop word [rax + rax]
mov rax, rsi
add r8, 1
shl rax, 5
add rax, rsi
lea rsi, [rdx + rax]
movsx rdx, byte [r8]
test rdx, rdx
jne 0x140228c08
mov rax, rsi
xor edx, edx
div r10
shl rdx, 4
add r15, rdx
mov rbx, qword [r15]
cmp rbx, rbp
jne 0x140228c4e
jmp 0x140228db0
cmp rbx, qword [r15 + 8]
je 0x140228dc0
mov rbx, qword [rbx + 8]
mov rcx, qword [rbx - 8]
cmp rsi, rcx
jne 0x140228c40
lea rcx, [rbx + 0x20]
mov rdx, r12
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x140228c40
mov rcx, qword [rbx + 0x10]
test rcx, rcx
je 0x140228c88
mov rax, qword [rcx + 8]
cmp rax, 0xffffffffffffffff
je 0x140228c88
sub rax, 1
mov qword [rcx + 8], rax
je 0x140228e2a
mov qword [rbx + 0x10], r13
xor eax, eax
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, r15
call fcn.14022b270
mov rax, qword [rdi + 0x10]
add rax, 1
mov rbx, qword [rsi + rax*8]
mov qword [rdi + 0x10], rax
mov rcx, rbx
shl rcx, 4
call fcn.14022b250
mov qword [rdi + 8], rax
mov r15, rax
test rax, rax
je 0x140228e6a
mov rcx, qword [rdi + 0x10]
mov r10, qword [rsi + rcx*8]
test r10, r10
je 0x140228d22
mov r8, r10
vmovq xmm3, rbp
shl r8, 4
vpunpcklqdq xmm0, xmm3, xmm3
lea rdx, [r8 + rax]
and r8d, 0x10
je 0x140228d10
vmovdqu xmmword [rax], xmm0
lea rax, [rax + 0x10]
cmp rax, rdx
je 0x140228d22
nop dword [rax + rax]
vmovdqu xmmword [rax], xmm0
add rax, 0x20
vmovdqu xmmword [rax - 0x10], xmm0
cmp rax, rdx
jne 0x140228d10
mov r11, qword [rdi + 0x20]
vmovq xmm2, rbp
vpunpcklqdq xmm0, xmm2, xmm2
vmovdqu xmmword [rdi + 0x18], xmm0
cmp r11, rbp
jne 0x140228d66
jmp 0x140228bec
mov rsi, qword [rax]
vmovq xmm1, rsi
vpinsrq xmm0, xmm1, rax, 1
vmovdqu xmmword [r8], xmm0
mov qword [rsi + 8], r8
mov qword [rax], r8
mov qword [rdx], r8
cmp rbp, r11
je 0x140228bec
mov r8, r11
xor edx, edx
mov r11, qword [r11 + 8]
mov rax, qword [r8 - 8]
div rbx
shl rdx, 4
add rdx, r15
mov rax, qword [rdx]
cmp rbp, rax
jne 0x140228d40
cmp qword [rdx + 8], rbp
jne 0x140228d40
mov rax, qword [rdi + 0x18]
vmovq xmm5, rax
vpinsrq xmm0, xmm5, rbp, 1
vmovdqu xmmword [r8], xmm0
mov qword [rax + 8], r8
mov qword [rdi + 0x18], r8
mov qword [rdx + 8], r8
jmp 0x140228d5a
cmp rbp, qword [r15 + 8]
jne 0x140228c52
nop word [rax + rax]
mov rcx, r12
call sub.msvcrt.dll_strlen
lea rcx, [rax + 0x29]
call fcn.14022b250
mov rbx, rax
test rax, rax
je 0x140228e6a
mov qword [rax], rsi
mov rdx, r12
lea rcx, [rax + 0x28]
mov qword [rax + 0x20], r14
call sub.msvcrt.dll_strcpy
mov rdx, qword [r15]
lea rax, [rbx + 8]
mov qword [rbx + 0x18], r13
mov qword [rbx + 8], rax
cmp rdx, rbp
je 0x140228e42
mov rcx, qword [rdx]
vmovq xmm4, rcx
vpinsrq xmm0, xmm4, rdx, 1
vmovdqu xmmword [rbx + 8], xmm0
mov qword [rcx + 8], rax
mov qword [rdx], rax
mov qword [r15], rax
add qword [rdi], 1
jmp 0x140228c8c
call fcn.14022c4c0
mov qword [rbx + 0x10], r13
jmp 0x140228c8c
mov esi, 0x1505
jmp 0x140228c23
cmp qword [r15 + 8], rbp
jne 0x140228e04
mov rdx, qword [rdi + 0x18]
vmovq xmm5, rdx
vpinsrq xmm0, xmm5, rbp, 1
vmovdqu xmmword [rbx + 8], xmm0
mov qword [rdx + 8], rax
mov qword [rdi + 0x18], rax
mov qword [r15 + 8], rax
jmp 0x140228e1e
mov eax, 0xffffffff
jmp 0x140228c8e