Function at 0x14003d830
Capabilities:
Hash data using djb2

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r13
push r14
push r15
sub rsp, 0x150
mov rax, qword [0x1402376b8]
xor rax, rsp
mov qword [rsp + 0x140], rax
mov rbx, r8
mov qword [rsp + 0x38], rdx
xor edi, edi
mov qword [rsp + 0x30], rbx
mov rsi, 0xffffffffffffffff
mov r14, rdx
mov r13d, edi
mov rdx, rsi
mov rbp, rcx
inc rdx
cmp byte [r8 + rdx], dil
jne 0x14003d876
mov rax, rsi
inc rax
cmp byte [r14 + rax], dil
jne 0x14003d882
add rax, 0x140
mov qword [rsp + 0x1a8], r12
add rdx, rax
mov ecx, 1
call qword [0x14018c4e8]
mov r15, rax
mov eax, dword [0x1402382b4]
cmp eax, 0x4e
jne 0x14003d930
lea ecx, [rax - 0xd]
call qword [0x14018c518]
mov r12, rax
test rax, rax
jne 0x14003d8cb
mov r12, rdi
jmp 0x14003d8ff
mov ebx, edi
lea r14, [0x1432bfc30]
movzx r8d, byte [r14]
lea ecx, [rbx + rbx]
add rcx, r12
lea rdx, [0x140218548]
call fcn.140021430
inc ebx
lea r14, [r14 + 1]
cmp ebx, 0x20
jb 0x14003d8d4
mov rbx, qword [rsp + 0x30]
mov r14, qword [rsp + 0x38]
mov rax, qword [0x1432bfc50]
lea rdx, [0x1402179f0]
mov qword [rsp + 0x28], r12
mov r9, rbx
mov r8, r14
mov qword [rsp + 0x20], rax
mov rcx, r15
call fcn.140021430
mov rcx, r12
call qword [0x14018c510]
jmp 0x14003d945
mov r9, rbx
lea rdx, [0x140217a70]
mov r8, r14
mov rcx, r15
call fcn.140021430
mov rdx, r15
mov rcx, rbp
call fcn.140044c50
test eax, eax
je 0x14003dcaf
mov rcx, rbp
call fcn.140044dc0
mov rbx, rax
test rax, rax
je 0x14003d9dc
nop dword [rax + rax]
mov rdx, rbx
mov rcx, rbp
call fcn.140047e90
mov rcx, rbx
test eax, eax
je 0x14003d9a6
call qword [0x14018c510]
mov rcx, rbp
call fcn.140044dc0
mov rbx, rax
test rax, rax
jne 0x14003d970
mov rcx, r15
call qword [0x14018c510]
jmp 0x14003dcd9
lea r8, [rsp + 0x40]
call fcn.14002bd70
mov rcx, rbx
mov r13, rax
call qword [0x14018c510]
test r13, r13
jne 0x14003d9ea
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 0x14003dcd9
cmp dword [r13], edi
jne 0x14003dc96
mov ebx, 0x1505
lea rax, [0x1402172b4]
mov r9d, ebx
mov ecx, 0x72
nop dword [rax + rax]
imul r9, r9, 0x21
lea rax, [rax + 1]
add r9, rcx
movsx rcx, byte [rax]
test rcx, rcx
jne 0x14003da10
mov r10, qword [r13 + 0x20]
lea r12, [0x1401c5670]
xor edx, edx
lea r8, [0x1402172b4]
mov rax, r9
lea rcx, [r13 + 0x10]
div qword [r12 + r10*8]
shl rdx, 4
add rdx, qword [r13 + 0x18]
call fcn.14002a1c0
mov r14, rdi
test rax, rax
je 0x14003da5c
mov r14, qword [rax + 0x18]
lea rax, [0x140217ae4]
mov r9, rbx
mov ecx, 0x65
nop dword [rax + rax]
imul r9, r9, 0x21
lea rax, [rax + 1]
add r9, rcx
movsx rcx, byte [rax]
test rcx, rcx
jne 0x14003da70
mov r10, qword [r13 + 0x20]
lea r8, [0x140217ae4]
xor edx, edx
lea rcx, [r13 + 0x10]
mov rax, r9
div qword [r12 + r10*8]
shl rdx, 4
add rdx, qword [r13 + 0x18]
call fcn.14002a1c0
mov rbp, rdi
test rax, rax
je 0x14003dab5
mov rbp, qword [rax + 0x18]
test r14, r14
je 0x14003db82
cmp dword [r14], 6
je 0x14003db82
test rbp, rbp
je 0x14003dad7
cmp dword [rbp], 7
jne 0x14003db82
mov rcx, r13
call fcn.14003c650
cmp dword [r14], edi
jne 0x14003db57
lea rax, [0x140217b50]
mov ecx, 0x6a
imul rbx, rbx, 0x21
lea rax, [rax + 1]
add rbx, rcx
movsx rcx, byte [rax]
test rcx, rcx
jne 0x14003daf0
mov r9, qword [r14 + 0x20]
lea r8, [0x140217b50]
xor edx, edx
lea rcx, [r14 + 0x10]
mov rax, rbx
div qword [r12 + r9*8]
mov r9, rbx
shl rdx, 4
add rdx, qword [r14 + 0x18]
call fcn.14002a1c0
test rax, rax
je 0x14003db35
mov rdi, qword [rax + 0x18]
lea rcx, [0x1432bf620]
call fcn.140182070
test rdi, rdi
je 0x14003db63
lea rdx, [0x1432bff50]
mov rcx, rdi
call fcn.14003bc60
jmp 0x14003db63
lea rcx, [0x1432bf620]
call fcn.140182070
lea rcx, [0x1432bf620]
call fcn.140182650
mov edi, 1
mov rcx, r15
call qword [0x14018c510]
jmp 0x14003dcbd
lea rdx, [0x140217af0]
xor ecx, ecx
call fcn.1400432a0
test rbp, rbp
je 0x14003dcaf
cmp dword [rbp], edi
jne 0x14003db74
lea rax, [0x140217b10]
mov ecx, 0x6d
nop word [rax + rax]
imul rbx, rbx, 0x21
lea rax, [rax + 1]
add rbx, rcx
movsx rcx, byte [rax]
test rcx, rcx
jne 0x14003dbb0
mov r10, qword [rbp + 0x20]
lea r8, [0x140217b10]
xor edx, edx
lea rcx, [rbp + 0x10]
mov rax, rbx
mov r9, rbx
div qword [r12 + r10*8]
shl rdx, 4
add rdx, qword [rbp + 0x18]
call fcn.14002a1c0
test rax, rax
je 0x14003db74
mov rbx, qword [rax + 0x18]
test rbx, rbx
je 0x14003db74
cmp dword [rbx], 2
jne 0x14003db74
mov rbx, qword [rbx + 0x10]
test rbx, rbx
je 0x14003dcaf
inc rsi
cmp byte [rbx + rsi], dil
jne 0x14003dc14
test rsi, rsi
je 0x14003dcaf
lea rdx, [0x140217b18]
mov rcx, rbx
call qword [0x14018c318]
test rax, rax
je 0x14003dc77
mov rcx, qword [0x1432d06c0]
test rcx, rcx
je 0x14003dc77
call qword [0x14018c4b0]
test eax, eax
jne 0x14003dc77
mov r8, qword [0x1432d06c0]
lea rdx, [0x140217b30]
lea ecx, [rax + 3]
call fcn.1400432a0
call fcn.14003d1f0
mov rcx, r15
call qword [0x14018c510]
jmp 0x14003dcbd
mov r8, rbx
lea rdx, [0x140216724]
mov ecx, 2
call fcn.1400432a0
mov rcx, r15
call qword [0x14018c510]
jmp 0x14003dcbd
lea rdx, [0x140217af0]
xor ecx, ecx
call fcn.1400432a0
mov rcx, r15
call qword [0x14018c510]
jmp 0x14003dcbd
mov rcx, r15
call qword [0x14018c510]
test r13, r13
je 0x14003dcd9
mov rax, qword [r13 + 8]
cmp rax, 0xffffffffffffffff
je 0x14003dcd9
sub rax, 1
mov qword [r13 + 8], rax
jne 0x14003dcd9
mov rcx, r13
call fcn.14002c610
mov r12, qword [rsp + 0x1a8]
mov eax, edi
mov rcx, qword [rsp + 0x140]
xor rcx, rsp
call fcn.140189f20
add rsp, 0x150
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbp
pop rbx
ret