Function at 0x14003bc60
Capabilities:
Hash data using djb2

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
mov r12, rdx
mov r14, rcx
test rcx, rcx
je 0x14003c0de
cmp dword [rcx], 0
jne 0x14003c0de
mov esi, 0x1505
lea rax, [0x1402170f4]
mov r9d, esi
mov edx, 0x6a
nop dword [rax + rax]
imul r9, r9, 0x21
lea rax, [rax + 1]
add r9, rdx
movsx rdx, byte [rax]
test rdx, rdx
jne 0x14003bcb0
mov rcx, qword [rcx + 0x20]
lea rdi, [0x1401c5670]
mov rax, r9
lea r8, [0x1402170f4]
div qword [rdi + rcx*8]
lea rcx, [r14 + 0x10]
shl rdx, 4
add rdx, qword [r14 + 0x18]
call fcn.14002a1c0
test rax, rax
je 0x14003c0de
mov r15, qword [rax + 0x18]
test r15, r15
je 0x14003c0de
mov eax, dword [0x1402382b4]
xor ebx, ebx
cmp eax, 0x4e
jne 0x14003bdb7
cmp dword [r14], ebx
jne 0x14003bdb7
lea rax, [0x1402170a8]
mov r9, rsi
mov ecx, 0x61
nop dword [rax]
imul r9, r9, 0x21
lea rax, [rax + 1]
add r9, rcx
movsx rcx, byte [rax]
test rcx, rcx
jne 0x14003bd30
mov rcx, qword [r14 + 0x20]
lea r8, [0x1402170a8]
xor edx, edx
mov rax, r9
div qword [rdi + rcx*8]
lea rcx, [r14 + 0x10]
shl rdx, 4
add rdx, qword [r14 + 0x18]
call fcn.14002a1c0
test rax, rax
je 0x14003bdb7
mov rdi, qword [rax + 0x18]
test rdi, rdi
je 0x14003bdb0
cmp dword [rdi], 1
jne 0x14003bde3
mov rbp, qword [rdi + 0x18]
test rbp, rbp
je 0x14003bdb0
cmp dword [rdi], 1
jne 0x14003bdc9
cmp rbx, qword [rdi + 0x18]
jae 0x14003bdc9
mov rax, qword [rdi + 0x20]
mov rcx, qword [rax + rbx*8]
test rcx, rcx
je 0x14003bdc9
call fcn.14003b710
test eax, eax
je 0x14003bdf1
inc rbx
cmp rbx, rbp
jb 0x14003bd85
xor ebx, ebx
lea rdi, [0x1401c5670]
cmp dword [r15], 2
mov dword [0x14023858c], ebx
jne 0x14003bdfd
mov rbp, qword [r15 + 0x10]
jmp 0x14003be00
lea rdx, [0x1402170d0]
xor ecx, ecx
call fcn.1400432a0
lea rdx, [0x140217118]
jmp 0x14003c0e5
lea rdx, [0x1402170b0]
xor ecx, ecx
call fcn.1400432a0
lea rdx, [0x140217118]
jmp 0x14003c0e5
mov rbp, rbx
cmp dword [r14], 0
jne 0x14003c0d5
lea rax, [0x14021713c]
mov ecx, 0x62
nop word [rax + rax]
imul rsi, rsi, 0x21
lea rax, [rax + 1]
add rsi, rcx
movsx rcx, byte [rax]
test rcx, rcx
jne 0x14003be20
mov r10, qword [r14 + 0x20]
lea r8, [0x14021713c]
xor edx, edx
lea rcx, [r14 + 0x10]
mov rax, rsi
mov r9, rsi
div qword [rdi + r10*8]
shl rdx, 4
add rdx, qword [r14 + 0x18]
call fcn.14002a1c0
test rax, rax
je 0x14003c0d5
mov rdi, qword [rax + 0x18]
test rdi, rdi
je 0x14003c0d5
cmp dword [rdi], 2
jne 0x14003be7d
mov rdi, qword [rdi + 0x10]
jmp 0x14003be80
mov rdi, rbx
mov rax, 0xffffffffffffffff
inc rax
cmp byte [rdi + rax], 0
jne 0x14003be87
test al, 1
jne 0x14003c0cc
mov rbx, rax
shr rbx, 1
cmp rbx, 0x28
jae 0x14003bead
test rax, rax
jne 0x14003c0cc
cmp rbx, 0x80
ja 0x14003c0cc
test rax, rax
je 0x14003c02e
lea rcx, [0x1432bf628]
call fcn.140182070
mov rdx, rbx
mov ecx, 1
call qword [0x14018c4e8]
mov r8, rbx
mov rdx, rdi
mov rcx, rax
mov rsi, rax
call fcn.1400446a0
test eax, eax
jne 0x14003bf11
lea rdx, [0x140217148]
xor ecx, ecx
call fcn.1400432a0
lea rcx, [0x1432bf628]
call fcn.140182650
jmp 0x14003c0ec
mov rcx, qword [0x1432bfc58]
test rcx, rcx
je 0x14003bf23
call qword [0x14018c510]
mov rcx, rbx
mov qword [0x1432bfbd0], rbx
call qword [0x14018c518]
mov r8, rbx
mov rdx, rsi
mov rcx, rax
mov qword [0x1432bfc58], rax
call fcn.14018ad02
mov rcx, rsi
call qword [0x14018c510]
lea rdx, [0x140217174]
mov rcx, r14
call fcn.14002c240
test rax, rax
je 0x14003bf9a
cmp dword [rax], 2
jne 0x14003bf85
mov rdx, qword [rax + 0x10]
test rdx, rdx
je 0x14003bf85
mov r8d, 4
lea rcx, [rsp + 0x50]
call fcn.1400446a0
jmp 0x14003bf9a
lea r8, [0x140217174]
xor ecx, ecx
lea rdx, [0x1401c6108]
call fcn.1400432a0
mov ecx, dword [rsp + 0x50]
cmp dword [0x1432bfbe8], ecx
je 0x14003bfc8
movsd xmm1, qword [0x14021aae0]
xorps xmm0, xmm0
cvtsi2sd xmm0, rcx
mov dword [0x1432bfbe8], ecx
divsd xmm1, xmm0
movsd qword [0x1432ae990], xmm1
mov rcx, qword [0x1432bfbd8]
test rcx, rcx
je 0x14003c012
mov r9, rbp
mov rax, rcx
sub r9, rcx
nop dword [rax]
movzx r8d, byte [rax]
movzx edx, byte [rax + r9]
sub r8d, edx
jne 0x14003bff5
inc rax
test edx, edx
jne 0x14003bfe0
mov eax, dword [0x1432ae988]
test r8d, r8d
mov edx, 0
cmovne eax, edx
mov dword [0x1432ae988], eax
call qword [0x14018c510]
mov rcx, rbp
call qword [0x14018c730]
lea rcx, [0x1432bf628]
mov qword [0x1432bfbd8], rax
call fcn.140182650
test r12, r12
je 0x14003c0ae
mov rdx, qword [0x1432bfc58]
test rdx, rdx
jne 0x14003c04b
lea rdx, [0x140217180]
jmp 0x14003c0e5
mov r8, qword [0x1432bfbd0]
mov rcx, r12
call fcn.14018ad02
movdqa xmm0, xmmword [0x14021ace0]
lea rcx, [r12 + 0xc0]
mov eax, dword [0x1432bfbe8]
movups xmmword [rcx], xmm0
movups xmmword [rcx + 0x10], xmm0
mov dword [r12 + 0xdc], eax
call fcn.14003b3a0
mov r9, qword [0x1432bfbd8]
lea rcx, [r12 + 0xe4]
lea r8, [0x140216724]
movsd qword [r12 + 0x1c8], xmm0
mov edx, 0x80
call fcn.140029200
mov ecx, dword [0x1402382b4]
cmp ecx, 0x4e
jne 0x14003c0c5
mov rcx, qword [0x1432bf618]
call fcn.14014b510
mov eax, 1
jmp 0x14003c0ee
lea rdx, [0x140217158]
jmp 0x14003c0e5
lea rdx, [0x140217148]
jmp 0x14003c0e5
lea rdx, [0x140217100]
xor ecx, ecx
call fcn.1400432a0
xor eax, eax
mov rbx, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
ret