Function at 0x14003b5c0
Capabilities:
Create directory
Hash data using djb2

Disassembly:
push rbp
push rbx
push rdi
push r13
lea rbp, [rsp - 0x3e8]
sub rsp, 0x4e8
mov rbx, rdx
lea r8, [rbp + 0x150]
mov r13, rcx
mov rdi, rdx
mov eax, 5
nop word [rax + rax]
lea r8, [r8 + 0x80]
movups xmm0, xmmword [rdi]
movups xmm1, xmmword [rdi + 0x10]
lea rdi, [rdi + 0x80]
movups xmmword [r8 - 0x80], xmm0
movups xmm0, xmmword [rdi - 0x60]
movups xmmword [r8 - 0x70], xmm1
movups xmm1, xmmword [rdi - 0x50]
movups xmmword [r8 - 0x60], xmm0
movups xmm0, xmmword [rdi - 0x40]
movups xmmword [r8 - 0x50], xmm1
movups xmm1, xmmword [rdi - 0x30]
movups xmmword [r8 - 0x40], xmm0
movups xmm0, xmmword [rdi - 0x20]
movups xmmword [r8 - 0x30], xmm1
movups xmm1, xmmword [rdi - 0x10]
movups xmmword [r8 - 0x20], xmm0
movups xmmword [r8 - 0x10], xmm1
sub rax, 1
jne 0x14003b5f0
mov rax, qword [rdi]
mov qword [r8], rax
mov eax, dword [rdi + 8]
mov dword [r8 + 8], eax
mov rax, qword [rbp + 0x150]
mov rcx, rax
shr rax, 0x20
shr ax, 1
and ax, 1
shr rcx, 0x30
cmp cx, ax
jbe 0x14003b682
dec cx
mov word [rbp + 0x156], cx
jmp 0x14003b689
movzx ecx, word [rbp + 0x156]
movzx edi, word [rdx + 6]
mov qword [rsp + 0x510], rsi
mov qword [rsp + 0x518], r12
mov qword [rsp + 0x520], r14
cmp di, cx
jne 0x14003b6ff
test di, di
je 0x14003b78d
lea r8, [rdi + rdi]
lea rdx, [rbp + 0x15a]
lea rcx, [rbx + 0xa]
call fcn.14004f2d0
test eax, eax
jne 0x14003b6ff
cmp edi, 1
jbe 0x14003b6dc
movzx ecx, word [rbx + rdi*2 + 8]
sub cx, word [rbx + rdi*2 + 6]
jmp 0x14003b6e0
movzx ecx, word [rbx + 0xa]
movzx r8d, cx
lea rdx, [rbp + 0x1da]
lea rcx, [rbx + 0x8a]
call fcn.14004f2d0
test eax, eax
je 0x14003b78d
lea rdx, [rbp + 0x150]
mov rcx, r13
call fcn.14003b5c0
test al, al
je 0x14003bac6
mov rdx, rbx
lea rcx, [rsp + 0x50]
call fcn.140040c50
movzx edx, byte [rsp + 0x50]
lea r8, [rsp + 0x51]
mov r14d, 0x1505
mov edi, r14d
test edx, edx
je 0x14003b75e
nop word [rax + rax]
lea eax, [rdx - 0x41]
cmp eax, 0x1a
lea ecx, [rdx + 0x20]
lea r8, [r8 + 1]
cmovb edx, ecx
imul edi, edi, 0x21
add edi, edx
movzx edx, byte [r8 - 1]
test edx, edx
jne 0x14003b740
mov r12d, 1
lea r8, [rsp + 0x50]
mov r9d, r12d
lea rcx, [rsp + 0x30]
test edi, edi
mov rdx, r13
cmovne r9d, edi
call fcn.140049670
mov ecx, dword [rsp + 0x30]
mov eax, ecx
shr eax, 3
test r12b, al
je 0x14003b794
mov al, 1
jmp 0x14003baa1
shr ecx, 2
test r12b, cl
jne 0x14003bac6
lea r8, [rsp + 0x50]
mov qword [rsp + 0x4e0], r15
lea rdx, str.create_dir___s_
mov ecx, 0x10
call fcn.140013c50
movsx ecx, byte [rsp + 0x50]
call fcn.1400573d4
test eax, eax
je 0x14003b7e0
cmp word [rsp + 0x51], 0x5c3a
jne 0x14003b7e0
cmp byte [rsp + 0x53], 0
je 0x14003ba4d
mov rbx, 0xffffffffffffffff
lea rax, [rsp + 0x50]
mov r9, rbx
nop
inc r9
cmp byte [rax + r9], 0
jne 0x14003b7f0
xor edi, edi
lea r8, [rsp + 0x50]
mov dword [rsp + 0x28], edi
xor edx, edx
mov ecx, 0xfde9
mov qword [rsp + 0x20], rdi
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movsxd r15, eax
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x48], 7
mov word [rsp + 0x30], di
cmp r15, 7
ja 0x14003b85c
mov qword [rsp + 0x40], r15
test eax, eax
je 0x14003b84c
movzx eax, di
mov rcx, r15
lea rdi, [rsp + 0x30]
rep stosw word [rdi], ax
xor edi, edi
mov word [rsp + r15*2 + 0x30], di
mov rdx, qword [rsp + 0x30]
jmp 0x14003b8df
movabs rax, 0x7ffffffffffffffe
cmp r15, rax
ja 0x14003bad0
mov rdi, r15
lea rcx, [rsp + 0x30]
or rdi, 7
cmp rdi, rax
jbe 0x14003b8a3
movabs rdx, 0x7fffffffffffffff
call fcn.140014e00
mov rdx, rax
movabs rax, 0x7ffffffffffffffe
mov qword [rsp + 0x48], rax
jmp 0x14003b8c0
mov eax, 0xa
cmp rdi, rax
cmovb rdi, rax
lea rdx, [rdi + 1]
call fcn.140014e00
mov rdx, rax
mov qword [rsp + 0x48], rdi
xor r8d, r8d
mov qword [rsp + 0x40], r15
movzx eax, r8w
mov rdi, rdx
mov rcx, r15
rep stosw word [rdi], ax
mov word [rdx + r15*2], r8w
mov qword [rsp + 0x30], rdx
test r15d, r15d
je 0x14003b928
cmp qword [rsp + 0x48], 8
lea rax, [rsp + 0x30]
cmovae rax, rdx
lea rdx, [rsp + 0x50]
nop dword [rax + rax]
inc rbx
cmp byte [rdx + rbx], 0
jne 0x14003b900
mov r9, rbx
mov dword [rsp + 0x28], r15d
lea r8, [rsp + 0x50]
mov qword [rsp + 0x20], rax
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
xor edx, edx
lea rcx, [rsp + 0x30]
call fcn.140014240
test al, al
jne 0x14003b981
mov rdx, qword [rsp + 0x48]
cmp rdx, 8
jb 0x14003b97a
mov rcx, qword [rsp + 0x30]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x14003b975
mov rdi, qword [rcx - 8]
add rdx, 0x27
sub rcx, rdi
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14003baca
mov rcx, rdi
call fcn.14004c810
xor bl, bl
jmp 0x14003ba51
cmp qword [rsp + 0x48], 8
lea rcx, [rsp + 0x30]
cmovae rcx, qword [rsp + 0x30]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x14003ba0b
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x14003b938
cmp qword [rsp + 0x48], 8
lea rcx, [rsp + 0x30]
cmovae rcx, qword [rsp + 0x30]
call qword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
mov rdx, qword [rsp + 0x48]
test eax, eax
setne bl
cmp rdx, 8
jb 0x14003ba51
mov rcx, qword [rsp + 0x30]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x14003ba04
mov rdi, qword [rcx - 8]
add rdx, 0x27
sub rcx, rdi
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14003baca
mov rcx, rdi
call fcn.14004c810
jmp 0x14003ba51
mov rdx, qword [rsp + 0x48]
cmp rdx, 8
jb 0x14003ba4d
mov rcx, qword [rsp + 0x30]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x14003ba48
mov rdi, qword [rcx - 8]
add rdx, 0x27
sub rcx, rdi
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14003baca
mov rcx, rdi
call fcn.14004c810
movzx ebx, r12b
movzx edx, byte [rsp + 0x50]
lea rdi, [rsp + 0x51]
test edx, edx
je 0x14003ba7f
nop
lea eax, [rdx - 0x41]
cmp eax, 0x1a
lea ecx, [rdx + 0x20]
lea rdi, [rdi + 1]
cmovb edx, ecx
imul r14d, r14d, 0x21
add r14d, edx
movzx edx, byte [rdi - 1]
test edx, edx
jne 0x14003ba60
test r14d, r14d
lea rdx, [rsp + 0x50]
mov rcx, r13
cmovne r12d, r14d
mov r8d, r12d
call fcn.1400495f0
mov r15, qword [rsp + 0x4e0]
movzx eax, bl
mov r14, qword [rsp + 0x520]
mov r12, qword [rsp + 0x518]
mov rsi, qword [rsp + 0x510]
add rsp, 0x4e8
pop r13
pop rdi
pop rbx
pop rbp
ret
xor al, al
jmp 0x14003baa1
call fcn.1400561ac
int3
call fcn.140013a60
int3