Function at 0x1400457e0
Capabilities:
Hash data using djb2

Disassembly:
push rbp
push rsi
push r12
push r13
push r15
sub rsp, 0x360
mov rax, qword [0x1402376b8]
xor rax, rsp
mov qword [rsp + 0x350], rax
xor esi, esi
xor r12d, r12d
xor r15d, r15d
mov dword [rsp + 0x30], esi
xor ebp, ebp
mov r13, rcx
cmp dword [rcx + 0x210], esi
je 0x140045823
lea eax, [rbp + 1]
jmp 0x140045cdc
mov qword [rsp + 0x398], rbx
mov qword [rsp + 0x3a0], rdi
mov qword [rsp + 0x3a8], r14
lea rbx, [0x1401c5670]
mov rax, qword [r13 + 0x140]
test rax, rax
je 0x140045860
mov rcx, 0xffffffffffffffff
inc rcx
cmp byte [rax + rcx], 0
jne 0x140045855
jmp 0x140045862
xor ecx, ecx
sub rcx, 0xffffffffffffff80
call qword [0x14018c518]
mov r14, rax
test esi, esi
je 0x14004587c
lea rdx, [0x140218770]
jmp 0x1400458a0
mov r8, qword [r13 + 0x140]
test r8, r8
je 0x140045899
lea rdx, [0x1402187b0]
mov rcx, r14
call fcn.140021430
jmp 0x1400458a8
lea rdx, [0x140218800]
mov rcx, r14
call fcn.140021430
mov rdx, r14
mov rcx, r13
call fcn.140044c50
test eax, eax
je 0x140045c7d
mov rax, qword [r13 + 0x118]
lea rdx, [rsp + 0x140]
mov qword [rsp + 0x148], rax
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x140], 1
mov qword [rsp + 0x38], 0xa
lea ecx, [rax + 1]
lea rax, [rsp + 0x38]
mov qword [rsp + 0x20], rax
call qword [0x14018c438]
test eax, eax
jle 0x140045c6f
mov rcx, r13
call fcn.140044dc0
mov r12, rax
test rax, rax
je 0x140045c7d
lea r8, [rsp + 0x40]
mov rcx, rax
call fcn.14002bd70
mov rcx, r12
mov r15, rax
call qword [0x14018c510]
test r15, r15
jne 0x140045962
mov r8d, dword [rsp + 0x40]
lea r9, [rsp + 0x9c]
lea rdx, [0x140217ac8]
xor ecx, ecx
call fcn.1400432a0
mov rcx, r14
call qword [0x14018c510]
jmp 0x140045ca7
cmp dword [r15], 0
jne 0x1400459d3
lea rax, [0x1402172d4]
mov ecx, 0x69
mov r9d, 0x1505
nop word [rax + rax]
imul r9, r9, 0x21
lea rax, [rax + 1]
add r9, rcx
movsx rcx, byte [rax]
test rcx, rcx
jne 0x140045980
mov r8, qword [r15 + 0x20]
lea rcx, [r15 + 0x10]
xor edx, edx
mov rax, r9
div qword [rbx + r8*8]
lea r8, [0x1402172d4]
shl rdx, 4
add rdx, qword [r15 + 0x18]
call fcn.14002a1c0
test rax, rax
je 0x1400459d3
mov rax, qword [rax + 0x18]
test rax, rax
je 0x1400459d3
cmp dword [rax], 3
jne 0x1400459d3
cmp qword [rax + 0x10], 1
je 0x1400459e4
lea rdx, [0x140218868]
mov ecx, 1
call fcn.1400432a0
cmp dword [r15], 0
jne 0x140045c17
lea rax, [0x1402172b4]
mov ecx, 0x72
mov r9d, 0x1505
imul r9, r9, 0x21
lea rax, [rax + 1]
add r9, rcx
movsx rcx, byte [rax]
test rcx, rcx
jne 0x140045a00
mov r8, qword [r15 + 0x20]
lea rcx, [r15 + 0x10]
xor edx, edx
mov rax, r9
div qword [rbx + r8*8]
lea r8, [0x1402172b4]
shl rdx, 4
add rdx, qword [r15 + 0x18]
call fcn.14002a1c0
test rax, rax
jne 0x140045a42
xor edi, edi
jmp 0x140045a46
mov rdi, qword [rax + 0x18]
lea rax, [0x140217ae4]
mov ecx, 0x65
mov r9d, 0x1505
nop dword [rax + rax]
imul r9, r9, 0x21
lea rax, [rax + 1]
add r9, rcx
movsx rcx, byte [rax]
test rcx, rcx
jne 0x140045a60
mov r8, qword [r15 + 0x20]
lea rcx, [r15 + 0x10]
xor edx, edx
mov rax, r9
div qword [rbx + r8*8]
lea r8, [0x140217ae4]
shl rdx, 4
add rdx, qword [r15 + 0x18]
call fcn.14002a1c0
test rax, rax
jne 0x140045aa2
xor ebx, ebx
jmp 0x140045aa6
mov rbx, qword [rax + 0x18]
test rdi, rdi
je 0x140045c19
cmp dword [rdi], 7
je 0x140045c19
test rbx, rbx
je 0x140045ac6
cmp dword [rbx], 7
jne 0x140045c19
mov r8d, 1
mov rdx, rdi
mov rcx, r13
call fcn.1400455a0
test eax, eax
je 0x140045c7d
cmp dword [rdi], 1
mov dword [rsp + 0x34], 1
jne 0x140045b68
cmp qword [rdi + 0x18], 0
jbe 0x140045b68
mov rax, qword [rdi + 0x20]
mov rsi, qword [rax]
test rsi, rsi
je 0x140045b68
cmp dword [rsi], 1
jne 0x140045b68
mov rax, qword [rsi + 0x18]
xor edi, edi
test eax, eax
jle 0x140045b68
movsxd rbp, eax
cmp dword [rsi], 1
jne 0x140045b68
cmp rdi, qword [rsi + 0x18]
jae 0x140045b68
mov rax, qword [rsi + 0x20]
mov rbx, qword [rax + rdi*8]
test rbx, rbx
je 0x140045b68
cmp dword [rbx], 1
jne 0x140045b68
cmp qword [rbx + 0x18], 0
jbe 0x140045b60
mov rax, qword [rbx + 0x20]
mov rcx, qword [rax]
test rcx, rcx
je 0x140045b60
cmp dword [rcx], 2
jne 0x140045b60
mov rcx, qword [rcx + 0x10]
test rcx, rcx
je 0x140045b60
lea rdx, [0x140218670]
call qword [0x14018c770]
test eax, eax
je 0x140045bba
inc rdi
cmp rdi, rbp
jl 0x140045b11
xor ebx, ebx
cmp dword [0x1432bf3a8], 0
je 0x140045b8c
test rbx, rbx
je 0x140045b8c
mov r8, rbx
lea rdx, [0x140218898]
mov ecx, 4
call fcn.1400432a0
lea rcx, [0x1432bf348]
call fcn.140182070
mov rcx, qword [r13 + 0x140]
test rcx, rcx
je 0x140045baa
call qword [0x14018c510]
test rbx, rbx
je 0x140045bde
mov rcx, rbx
call qword [0x14018c730]
jmp 0x140045be0
cmp dword [rbx], 1
jne 0x140045b68
cmp qword [rbx + 0x18], 1
jbe 0x140045b68
mov rax, qword [rbx + 0x20]
mov rbx, qword [rax + 8]
test rbx, rbx
je 0x140045b68
cmp dword [rbx], 2
jne 0x140045b68
mov rbx, qword [rbx + 0x10]
jmp 0x140045b6a
xor eax, eax
mov qword [r13 + 0x140], rax
lea rcx, [0x1432bf348]
movabs rax, 0x3ff0000000000000
mov qword [r13 + 0x130], rax
call fcn.140182650
mov rcx, r14
call qword [0x14018c510]
mov esi, dword [rsp + 0x30]
mov ebp, dword [rsp + 0x34]
jmp 0x140045c8b
xor ebx, ebx
cmp dword [0x1432bf3a8], 0
jne 0x140045c26
test esi, esi
je 0x140045c7d
mov rcx, r14
call qword [0x14018c510]
test rbx, rbx
je 0x140045c43
mov edx, 3
mov rcx, rbx
call fcn.14002a020
jmp 0x140045c50
lea rcx, [0x140218468]
call qword [0x14018c730]
mov r8, rax
lea rdx, [0x140218480]
xor ecx, ecx
mov rbx, rax
call fcn.1400432a0
mov rcx, rbx
call qword [0x14018c510]
jmp 0x140045c8b
lea rdx, [0x140218848]
xor ecx, ecx
call fcn.1400432a0
mov rcx, r14
call qword [0x14018c510]
test r15, r15
je 0x140045ca7
mov rax, qword [r15 + 8]
cmp rax, 0xffffffffffffffff
je 0x140045ca7
sub rax, 1
mov qword [r15 + 8], rax
jne 0x140045ca7
mov rcx, r15
call fcn.14002c610
test ebp, ebp
jne 0x140045cc2
test r12, r12
je 0x140045cc2
test esi, esi
jne 0x140045cc2
mov esi, 1
mov dword [rsp + 0x30], esi
jmp 0x14004583b
mov r14, qword [rsp + 0x3a8]
mov eax, ebp
mov rdi, qword [rsp + 0x3a0]
mov rbx, qword [rsp + 0x398]
mov rcx, qword [rsp + 0x350]
xor rcx, rsp
call fcn.140189f20
add rsp, 0x360
pop r15
pop r13
pop r12
pop rsi
pop rbp
ret