Function at 0x140045d00
Capabilities:
Hash data using djb2

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r13
sub rsp, 0x370
mov rax, qword [0x1402376b8]
xor rax, rsp
mov qword [rsp + 0x350], rax
xor r13d, r13d
mov rsi, r8
mov rbx, rdx
mov rdi, rcx
mov ebp, r13d
mov dword [rsp + 0x38], r13d
cmp dword [rcx + 0x210], r13d
je 0x140045d47
call fcn.14003d830
jmp 0x1400462c7
mov rax, 0xffffffffffffffff
mov qword [rsp + 0x360], r15
mov rcx, rax
nop dword [rax]
inc rcx
cmp byte [r8 + rcx], bpl
jne 0x140045d60
nop dword [rax]
inc rax
cmp byte [rdx + rax], bpl
jne 0x140045d70
add rax, 0x50
mov qword [rsp + 0x3b8], r12
add rcx, rax
mov qword [rsp + 0x368], r14
call qword [0x14018c518]
mov r9, rsi
lea rdx, [0x1402188b0]
mov rcx, rax
mov r8, rbx
mov r15, rax
call fcn.140021430
mov rdx, r15
mov rcx, rdi
call fcn.140044c50
test eax, eax
je 0x140046281
mov rcx, rdi
call fcn.140044dc0
mov rbx, rax
test rax, rax
je 0x140045e3d
mov rdx, rbx
mov rcx, rdi
call fcn.140047e90
mov rcx, rbx
test eax, eax
je 0x140045e07
call qword [0x14018c510]
mov rcx, rdi
call fcn.140044dc0
mov rbx, rax
test rax, rax
jne 0x140045dd1
mov rcx, r15
call qword [0x14018c510]
jmp 0x1400462ab
lea r8, [rsp + 0x40]
call fcn.14002bd70
mov rcx, rbx
mov rbp, rax
call qword [0x14018c510]
test rbp, rbp
jne 0x140045e4b
mov r8d, dword [rsp + 0x40]
lea r9, [rsp + 0x9c]
lea rdx, [0x140217ac8]
xor ecx, ecx
call fcn.1400432a0
mov rcx, r15
call qword [0x14018c510]
jmp 0x1400462ab
lea r14, [0x1401c5670]
mov ebx, 0x1505
mov r12d, 0x69
cmp dword [rbp], r13d
jne 0x140045ec3
lea rax, [0x1402172d4]
mov r9d, ebx
mov ecx, r12d
imul r9, r9, 0x21
lea rax, [rax + 1]
add r9, rcx
movsx rcx, byte [rax]
test rcx, rcx
jne 0x140045e70
mov r8, qword [rbp + 0x20]
lea rcx, [rbp + 0x10]
xor edx, edx
mov rax, r9
div qword [r14 + r8*8]
lea r8, [0x1402172d4]
shl rdx, 4
add rdx, qword [rbp + 0x18]
call fcn.14002a1c0
test rax, rax
je 0x140045ec3
mov rax, qword [rax + 0x18]
test rax, rax
je 0x140045ec3
cmp dword [rax], 3
jne 0x140045ec3
cmp qword [rax + 0x10], 2
je 0x140045ed4
lea rdx, [0x1402188f0]
mov ecx, 1
call fcn.1400432a0
cmp dword [rbp], r13d
jne 0x140046268
mov esi, 0x72
lea rax, [0x1402172b4]
mov ecx, esi
mov r9, rbx
nop
imul r9, r9, 0x21
lea rax, [rax + 1]
add r9, rcx
movsx rcx, byte [rax]
test rcx, rcx
jne 0x140045ef0
mov r8, qword [rbp + 0x20]
lea rcx, [rbp + 0x10]
xor edx, edx
mov rax, r9
div qword [r14 + r8*8]
lea r8, [0x1402172b4]
shl rdx, 4
add rdx, qword [rbp + 0x18]
call fcn.14002a1c0
mov r14, r13
test rax, rax
je 0x140045f35
mov r14, qword [rax + 0x18]
lea rax, [0x140217ae4]
mov r9, rbx
mov ecx, 0x65
nop dword [rax]
nop dword [rax + rax]
imul r9, r9, 0x21
lea rax, [rax + 1]
add r9, rcx
movsx rcx, byte [rax]
test rcx, rcx
jne 0x140045f50
mov r10, qword [rbp + 0x20]
lea rcx, [0x1401c5670]
xor edx, edx
lea r8, [0x140217ae4]
mov rax, r9
div qword [rcx + r10*8]
lea rcx, [rbp + 0x10]
shl rdx, 4
add rdx, qword [rbp + 0x18]
call fcn.14002a1c0
test rax, rax
jne 0x140045f9a
mov rax, r13
jmp 0x140045f9e
mov rax, qword [rax + 0x18]
test r14, r14
je 0x140046225
cmp dword [r14], 6
je 0x140046225
test rax, rax
je 0x140045fbf
cmp dword [rax], 7
jne 0x14004622a
xor ecx, ecx
call qword [0x14018c788]
cmp dword [0x14023772c], r13d
mov qword [rdi + 0x208], rax
mov dword [rsp + 0x38], 1
je 0x140046281
lea rdx, [0x140218950]
mov rcx, r15
call fcn.140021430
mov rdx, r15
mov rcx, rdi
call fcn.140044c50
test eax, eax
je 0x140046281
mov rax, qword [rdi + 0x118]
lea rdx, [rsp + 0x140]
mov qword [rsp + 0x148], rax
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x140], 1
mov qword [rsp + 0x30], 1
lea ecx, [rax + 1]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
call qword [0x14018c438]
test eax, eax
jle 0x140046200
mov rcx, rdi
call fcn.140044dc0
mov qword [rsp + 0x30], rax
test rax, rax
je 0x1400461cd
lea r8, [rsp + 0x40]
mov rcx, rax
call fcn.14002bd70
mov r14, rax
test rax, rax
jne 0x1400460a2
mov r8d, dword [rsp + 0x40]
lea r9, [rsp + 0x9c]
lea rdx, [0x140217ac8]
lea ecx, [rax + 1]
call fcn.1400432a0
mov rbx, qword [rsp + 0x30]
jmp 0x1400461c4
cmp dword [rax], r13d
jne 0x1400461db
lea rax, [0x1402172d4]
mov r9, rbx
nop word [rax + rax]
imul r9, r9, 0x21
lea rax, [rax + 1]
add r9, r12
movsx r12, byte [rax]
test r12, r12
jne 0x1400460c0
mov rcx, qword [r14 + 0x20]
lea r8, [0x1401c5670]
xor edx, edx
mov rax, r9
div qword [r8 + rcx*8]
lea r8, [0x1402172d4]
shl rdx, 4
lea rcx, [r14 + 0x10]
add rdx, qword [r14 + 0x18]
call fcn.14002a1c0
test rax, rax
je 0x1400461db
mov rax, qword [rax + 0x18]
test rax, rax
je 0x1400461db
cmp dword [rax], 3
jne 0x1400461db
cmp qword [rax + 0x10], 3
jne 0x1400461db
lea rax, [0x1402172b4]
imul rbx, rbx, 0x21
lea rax, [rax + 1]
add rbx, rsi
movsx rsi, byte [rax]
test rsi, rsi
jne 0x140046131
mov r10, qword [r14 + 0x20]
lea rcx, [0x1401c5670]
xor edx, edx
lea r8, [0x1402172b4]
mov rax, rbx
mov r9, rbx
div qword [rcx + r10*8]
lea rcx, [r14 + 0x10]
shl rdx, 4
add rdx, qword [r14 + 0x18]
call fcn.14002a1c0
test rax, rax
je 0x14004617d
mov r13, qword [rax + 0x18]
cmp dword [0x1432bf3a8], 0
je 0x1400461a3
test r13, r13
je 0x140046192
cmp dword [r13], 6
jne 0x1400461a3
lea rdx, [0x1402189f0]
mov ecx, 4
call fcn.1400432a0
mov rbx, qword [rsp + 0x30]
mov rax, qword [r14 + 8]
cmp rax, 0xffffffffffffffff
je 0x1400461c4
sub rax, 1
mov qword [r14 + 8], rax
jne 0x1400461c4
mov rcx, r14
call fcn.14002c610
mov rcx, rbx
call qword [0x14018c510]
mov rcx, r15
call qword [0x14018c510]
jmp 0x14004628f
mov rbx, qword [rsp + 0x30]
mov rcx, rdi
mov rdx, rbx
call fcn.140047e90
test eax, eax
jne 0x1400461a8
lea rdx, [0x1402189c0]
lea ecx, [rax + 1]
call fcn.1400432a0
jmp 0x1400461a8
cmp dword [0x1432bf3a8], r13d
je 0x14004621a
lea rdx, [0x140218998]
mov ecx, 4
call fcn.1400432a0
mov rcx, r15
call qword [0x14018c510]
jmp 0x14004628f
test rax, rax
je 0x140046268
cmp dword [rax], 1
jne 0x140046268
cmp qword [rax + 0x18], 1
jbe 0x14004624c
mov rax, qword [rax + 0x20]
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x14004624c
cmp dword [rcx], 2
jne 0x14004624c
mov r13, qword [rcx + 0x10]
mov r8, r13
lea rdx, [0x140218920]
xor ecx, ecx
call fcn.1400432a0
mov rcx, r15
call qword [0x14018c510]
jmp 0x14004628f
lea rdx, [0x140217af0]
xor ecx, ecx
call fcn.1400432a0
mov rcx, r15
call qword [0x14018c510]
jmp 0x14004628f
mov rcx, r15
call qword [0x14018c510]
test rbp, rbp
je 0x1400462ab
mov rcx, qword [rbp + 8]
cmp rcx, 0xffffffffffffffff
je 0x1400462ab
sub rcx, 1
mov qword [rbp + 8], rcx
jne 0x1400462ab
mov rcx, rbp
call fcn.14002c610
mov eax, dword [rsp + 0x38]
mov r15, qword [rsp + 0x360]
mov r14, qword [rsp + 0x368]
mov r12, qword [rsp + 0x3b8]
mov rcx, qword [rsp + 0x350]
xor rcx, rsp
call fcn.140189f20
add rsp, 0x370
pop r13
pop rdi
pop rsi
pop rbp
pop rbx
ret