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

Disassembly:
push rbp
push rbx
push rdi
push r13
lea rbp, [rsp - 0x668]
sub rsp, 0x768
mov rbx, rdx
lea r8, [rbp + 0x1c0]
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 0x14003c2e0
mov rax, qword [rdi]
mov qword [r8], rax
mov eax, dword [rdi + 8]
mov dword [r8 + 8], eax
mov rax, qword [rbp + 0x1c0]
mov rcx, rax
shr rax, 0x20
shr ax, 1
and ax, 1
shr rcx, 0x30
cmp cx, ax
jbe 0x14003c372
dec cx
mov word [rbp + 0x1c6], cx
jmp 0x14003c379
movzx ecx, word [rbp + 0x1c6]
cmp word [rdx + 6], cx
jne 0x14003c3e1
cmp word [rdx + 6], 0
je 0x14003c468
movzx r8d, word [rdx + 6]
lea rcx, [rdx + 0xa]
add r8, r8
lea rdx, [rbp + 0x1ca]
call fcn.140050840
test eax, eax
jne 0x14003c3e1
movzx eax, word [rbx + 6]
cmp eax, 1
jbe 0x14003c3be
movsxd rcx, eax
movzx edx, word [rbx + rcx*2 + 8]
sub dx, word [rbx + rax*2 + 6]
jmp 0x14003c3c2
movzx edx, word [rbx + 0xa]
movzx r8d, dx
lea rcx, [rbx + 0x8a]
lea rdx, [rbp + 0x24a]
call fcn.140050840
test eax, eax
je 0x14003c468
lea rdx, [rbp + 0x1c0]
mov rcx, r13
call fcn.14003c2b0
test al, al
je 0x14003ce02
movzx r9d, word [rbx + 6]
lea rcx, [rbp - 0x40]
dec r9d
xor r8d, r8d
mov rdx, rbx
call fcn.140042120
movzx edx, byte [rbp - 0x40]
lea r8, [rbp - 0x3f]
mov edi, 0x1505
test edx, edx
je 0x14003c43e
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 0x14003c420
mov r9d, 1
lea r8, [rbp - 0x40]
test edi, edi
lea rcx, [rsp + 0x30]
mov rdx, r13
cmovne r9d, edi
call fcn.14004afb0
mov ecx, dword [rsp + 0x30]
mov eax, ecx
shr eax, 3
test al, 1
je 0x14003c477
mov al, 1
add rsp, 0x768
pop r13
pop rdi
pop rbx
pop rbp
ret
shr ecx, 2
test cl, 1
jne 0x14003ce02
mov qword [rsp + 0x790], rsi
lea r8, [rbp - 0x40]
mov qword [rsp + 0x798], r12
lea rdx, str.create_dir___s_
mov qword [rsp + 0x7a0], r14
mov ecx, 0x10
mov qword [rsp + 0x760], r15
call fcn.140014f80
movsx ecx, byte [rbp - 0x40]
call fcn.140059d60
test eax, eax
je 0x14003c4d7
cmp word [rbp - 0x3f], 0x5c3a
jne 0x14003c4d7
cmp byte [rbp - 0x3d], 0
je 0x14003cdb6
mov rbx, 0xffffffffffffffff
lea rax, [rbp - 0x40]
mov r9, rbx
inc r9
cmp byte [rax + r9], 0
jne 0x14003c4e5
xor r12d, r12d
lea r8, [rbp - 0x40]
mov dword [rsp + 0x28], r12d
xor edx, edx
mov ecx, 0xfde9
mov qword [rsp + 0x20], r12
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movabs r14, 0x7ffffffffffffffe
mov qword [rsp + 0x40], r12
movsxd r15, eax
xorps xmm0, xmm0
mov rsi, r15
movups xmmword [rsp + 0x30], xmm0
cmp r15, r14
ja 0x14003ce17
cmp r15, 8
jae 0x14003c562
mov qword [rsp + 0x40], r15
mov r8d, 7
mov qword [rsp + 0x48], r8
test eax, eax
je 0x14003c5d5
movzx eax, r12w
lea rdi, [rsp + 0x30]
mov rcx, r15
rep stosw word [rdi], ax
jmp 0x14003c5cb
mov rdi, r15
mov qword [rsp + 0x48], 7
or rdi, 7
lea rcx, [rsp + 0x30]
cmp rdi, r14
jbe 0x14003c592
movabs rdx, 0x7fffffffffffffff
call fcn.140016040
mov qword [rsp + 0x48], r14
jmp 0x14003c5ac
mov eax, 0xa
cmp rdi, rax
cmovb rdi, rax
lea rdx, [rdi + 1]
call fcn.140016040
mov qword [rsp + 0x48], rdi
mov rdx, rax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x40], r15
mov rdi, rdx
movzx eax, r12w
mov rcx, r15
rep stosw word [rdi], ax
mov word [rdx + r15*2], r12w
mov rsi, qword [rsp + 0x40]
mov r8, qword [rsp + 0x48]
test r15d, r15d
je 0x14003c61e
cmp r8, 8
lea rax, [rsp + 0x30]
lea rdx, [rbp - 0x40]
mov r9, rbx
cmovae rax, qword [rsp + 0x30]
inc r9
cmp byte [rdx + r9], r12b
jne 0x14003c5f0
mov dword [rsp + 0x28], r15d
lea r8, [rbp - 0x40]
xor edx, edx
mov qword [rsp + 0x20], rax
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov r8, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x30]
mov r12d, 4
lea r11, str._UNC_
lea r15d, [r12 + 4]
test rsi, rsi
je 0x14003ccd4
cmp rsi, r12
lea r9, [rsp + 0x30]
mov r10d, r12d
lea rcx, str.._
cmovb r10, rsi
cmp r8, r15
mov rdx, r10
cmovae r9, rdi
cmp r10, r12
cmova rdx, r12
test rdx, rdx
je 0x14003c684
sub r9, rcx
nop dword [rax]
movzx eax, word [rcx + r9]
cmp ax, word [rcx]
jne 0x14003c68d
add rcx, 2
sub rdx, 1
jne 0x14003c670
cmp r10, r12
je 0x14003c71d
cmp rsi, r12
lea r9, [rsp + 0x30]
mov r10, r12
lea rcx, str.__
cmovb r10, rsi
cmp r8, r15
mov rdx, r10
cmovae r9, rdi
cmp r10, r12
cmova rdx, r12
test rdx, rdx
je 0x14003c6d4
sub r9, rcx
nop dword [rax]
movzx eax, word [rcx + r9]
cmp ax, word [rcx]
jne 0x14003c6d9
add rcx, 2
sub rdx, 1
jne 0x14003c6c0
cmp r10, r12
je 0x14003c71d
cmp rsi, r15
lea r9, [rsp + 0x30]
mov r10, r15
mov rcx, r11
cmovb r10, rsi
cmp r8, r15
mov rdx, r10
cmovae r9, rdi
cmp r10, r15
cmova rdx, r15
test rdx, rdx
je 0x14003c718
sub r9, r11
movzx eax, word [rcx + r9]
cmp ax, word [rcx]
jne 0x14003c750
add rcx, 2
sub rdx, 1
jne 0x14003c704
cmp r10, r15
jne 0x14003c750
test rsi, rsi
je 0x14003ccd4
cmp r8, r15
lea rcx, [rsp + 0x30]
lea r8, [rbp - 0x70]
cmovae rcx, rdi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesExW]
mov r8, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x30]
test eax, eax
jne 0x14003ccd4
cmp r8, r15
lea rcx, [rsp + 0x30]
lea r8, [rbp + 0x450]
mov edx, 0x104
cmovae rcx, rdi
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_GetFullPathNameW]
test eax, eax
je 0x14003c878
xor esi, esi
mov qword [rsp + 0x68], 7
mov qword [rsp + 0x60], rsi
xorps xmm0, xmm0
movups xmmword [rsp + 0x50], xmm0
mov word [rsp + 0x50], si
cmp eax, 0xf8
jae 0x14003c7c9
lea rax, [rbp + 0x450]
inc rbx
cmp word [rax + rbx*2], si
jne 0x14003c7a4
mov r8, rbx
lea rdx, [rbp + 0x450]
lea rcx, [rsp + 0x50]
call fcn.140015f10
xor r12d, r12d
jmp 0x14003cb89
mov edx, eax
add rdx, r15
cmp rdx, 7
ja 0x14003c7ee
mov qword [rsp + 0x60], rdx
lea rdi, [rsp + 0x50]
movzx eax, si
mov rcx, rdx
rep stosw word [rdi], ax
mov word [rsp + rdx*2 + 0x50], si
jmp 0x14003c800
mov r9, rdx
mov word [rsp + 0x20], si
lea rcx, [rsp + 0x50]
call fcn.1400161b0
cmp qword [rsp + 0x68], r15
lea r8, [rsp + 0x50]
mov edx, dword [rsp + 0x60]
lea rcx, [rsp + 0x30]
cmovae r8, qword [rsp + 0x50]
cmp qword [rsp + 0x48], r15
cmovae rcx, qword [rsp + 0x30]
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_GetFullPathNameW]
mov ebx, eax
test eax, eax
jne 0x14003c8c1
mov rdx, qword [rsp + 0x68]
cmp rdx, r15
jb 0x14003c878
mov rcx, qword [rsp + 0x50]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x14003c873
mov rdi, qword [rcx - 8]
add rdx, 0x27
sub rcx, rdi
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14003ce23
mov rcx, rdi
call fcn.14004d934
mov rdx, qword [rsp + 0x48]
cmp rdx, r15
jb 0x14003c8b9
mov rcx, qword [rsp + 0x30]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x14003c8b4
mov rdi, qword [rcx - 8]
add rdx, 0x27
sub rcx, rdi
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14003ce11
mov rcx, rdi
call fcn.14004d934
xor dil, dil
jmp 0x14003cdb9
mov qword [rsp + 0x78], rsi
lea r9, [rsp + 0x50]
mov esi, 2
mov qword [rbp - 0x80], r12
cmp qword [rsp + 0x60], rsi
lea rcx, [0x14008c014]
mov r10d, esi
mov r11d, 7
cmovb r10, qword [rsp + 0x60]
movabs r15, 0x5c003f005c005c
cmp qword [rsp + 0x68], 8
mov rdi, r10
mov qword [rbp - 0x78], r11
cmovae r9, qword [rsp + 0x50]
cmp r10, rsi
mov qword [rsp + 0x70], r15
cmova rdi, rsi
test rdi, rdi
je 0x14003c933
sub r9, rcx
movzx eax, word [r9 + rcx]
cmp ax, word [rcx]
jne 0x14003c995
add rcx, rsi
sub rdi, 1
jne 0x14003c920
cmp r10, rsi
jne 0x14003c995
mov r8d, 8
lea rdx, str._UNC_
lea rcx, [rsp + 0x70]
call fcn.140015f10
mov rdi, qword [rsp + 0x60]
lea rcx, [rsp + 0x50]
cmp rdi, rsi
cmovb rsi, rdi
cmp qword [rsp + 0x68], 8
cmovae rcx, qword [rsp + 0x50]
sub rdi, rsi
lea r8, [rdi*2 + 2]
lea rdx, [rcx + rsi*2]
call fcn.14004fbf0
mov r11, qword [rbp - 0x78]
add ebx, 0xfffffffe
mov r12, qword [rbp - 0x80]
mov r15, qword [rsp + 0x70]
mov qword [rsp + 0x60], rdi
cmp r11, 8
lea r8, [rsp + 0x70]
mov r9, r12
lea rcx, [rsp + 0x50]
cmovae r8, r15
call fcn.140015d30
mov r8, qword [rsp + 0x60]
mov ecx, ebx
add rcx, qword [rbp - 0x80]
cmp rcx, r8
ja 0x14003c9df
cmp qword [rsp + 0x68], 8
lea rax, [rsp + 0x50]
mov qword [rsp + 0x60], rcx
cmovae rax, qword [rsp + 0x50]
xor r12d, r12d
mov word [rax + rcx*2], r12w
jmp 0x14003ca40
mov rdi, qword [rsp + 0x68]
mov rdx, rcx
mov rax, rdi
sub rdx, r8
sub rax, r8
cmp rdx, rax
ja 0x14003ca2a
cmp rdi, 8
mov qword [rsp + 0x60], rcx
lea r9, [rsp + 0x50]
cmovae r9, qword [rsp + 0x50]
xor r12d, r12d
lea rdi, [r9 + r8*2]
test rdx, rdx
je 0x14003ca1f
movzx eax, r12w
mov rcx, rdx
rep stosw word [rdi], ax
lea rax, [r8 + rdx]
mov word [r9 + rax*2], r12w
jmp 0x14003ca40
xor r12d, r12d
lea rcx, [rsp + 0x50]
mov r9, rdx
mov word [rsp + 0x20], r12w
call fcn.1400161b0
mov rax, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x60]
cmp rax, 8
jb 0x14003cb48
cmp rbx, 8
jae 0x14003cab8
mov rdi, qword [rsp + 0x50]
lea r8, [rbx*2 + 2]
mov rdx, rdi
lea rcx, [rsp + 0x50]
call fcn.14004fbf0
mov rax, qword [rsp + 0x68]
lea rdx, [rax*2 + 2]
cmp rdx, 0x1000
jb 0x14003caa6
mov rcx, qword [rdi - 8]
add rdx, 0x27
sub rdi, rcx
lea rax, [rdi - 8]
cmp rax, 0x1f
ja 0x14003ce23
mov rdi, rcx
mov rcx, rdi
call fcn.14004d934
mov eax, 7
jmp 0x14003cb3e
mov rdi, rbx
or rdi, 7
cmp rdi, r14
cmova rdi, r14
cmp rdi, rax
jae 0x14003cb48
lea rdx, [rdi + 1]
lea rcx, [rsp + 0x50]
call fcn.140016040
mov r8, qword [rsp + 0x60]
mov rcx, rax
mov rdx, qword [rsp + 0x50]
mov rbx, rax
lea r8, [r8*2 + 2]
call fcn.14004fbf0
mov rcx, qword [rsp + 0x68]
lea rdx, [rcx*2 + 2]
mov rcx, qword [rsp + 0x50]
cmp rdx, 0x1000
jb 0x14003cb31
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14003ce23
mov rcx, r8
call fcn.14004d934
mov rax, rdi
mov qword [rsp + 0x50], rbx
mov rbx, qword [rsp + 0x60]
mov qword [rsp + 0x68], rax
mov rdx, qword [rbp - 0x78]
cmp rdx, 8
jb 0x14003cb93
mov rcx, qword [rsp + 0x70]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x14003cb84
mov rdi, qword [rcx - 8]
add rdx, 0x27
sub rcx, rdi
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14003ce23
mov rcx, rdi
call fcn.14004d934
mov rbx, qword [rsp + 0x60]
mov rax, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x48]
lea r15, [rsp + 0x50]
cmp rax, 8
cmovae r15, qword [rsp + 0x50]
cmp rbx, rsi
ja 0x14003cbde
cmp rsi, 8
mov qword [rsp + 0x40], rbx
lea rdi, [rsp + 0x30]
mov rdx, r15
cmovae rdi, qword [rsp + 0x30]
lea r8, [rbx + rbx]
mov rcx, rdi
call fcn.14004fbf0
mov word [rdi + rbx*2], r12w
mov rdi, qword [rsp + 0x30]
jmp 0x14003cc88
cmp rbx, r14
ja 0x14003ce1d
mov rdx, rbx
or rdx, 7
cmp rdx, r14
ja 0x14003cc17
mov rcx, rsi
mov rax, r14
shr rcx, 1
sub rax, rcx
cmp rsi, rax
ja 0x14003cc17
mov rax, rsi
mov r14, rdx
shr rax, 1
add rax, rsi
cmp rdx, rax
cmovb r14, rax
lea rdx, [r14 + 1]
lea rcx, [rsp + 0x30]
call fcn.140016040
lea r8, [rbx + rbx]
mov qword [rsp + 0x40], rbx
mov rdx, r15
mov qword [rsp + 0x48], r14
mov rcx, rax
mov rdi, rax
call fcn.14004fbf0
mov word [rdi + rbx*2], r12w
cmp rsi, 8
jb 0x14003cc83
mov rcx, qword [rsp + 0x30]
lea rdx, [rsi*2 + 2]
cmp rdx, 0x1000
jb 0x14003cc7e
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14003ce23
mov rcx, r8
call fcn.14004d934
mov qword [rsp + 0x30], rdi
mov rdx, qword [rsp + 0x68]
cmp rdx, 8
jb 0x14003cd0c
mov rcx, qword [rsp + 0x50]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x14003ccc5
mov rdi, qword [rcx - 8]
add rdx, 0x27
sub rcx, rdi
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14003ce23
mov rcx, rdi
call fcn.14004d934
mov r8, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x30]
cmp r8, 8
lea rcx, [rsp + 0x30]
cmovae rcx, rdi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x14003cd78
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x14003cd13
mov rdx, qword [rsp + 0x48]
cmp rdx, 8
jmp 0x14003c880
mov r8, qword [rsp + 0x48]
jmp 0x14003ccd4
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 dil
cmp rdx, 8
jb 0x14003cdb9
mov rcx, qword [rsp + 0x30]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x14003cd71
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14003ce11
mov rcx, r8
call fcn.14004d934
jmp 0x14003cdb9
mov rdx, qword [rsp + 0x48]
cmp rdx, 8
jb 0x14003cdb6
mov rcx, qword [rsp + 0x30]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x14003cdb1
mov rdi, qword [rcx - 8]
add rdx, 0x27
sub rcx, rdi
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14003ce11
mov rcx, rdi
call fcn.14004d934
mov dil, 1
lea rcx, [rbp - 0x40]
call fcn.140003960
mov r8d, eax
lea rdx, [rbp - 0x40]
mov rcx, r13
call fcn.14004af30
mov r14, qword [rsp + 0x7a0]
movzx eax, dil
mov r12, qword [rsp + 0x798]
mov rsi, qword [rsp + 0x790]
mov r15, qword [rsp + 0x760]
add rsp, 0x768
pop r13
pop rdi
pop rbx
pop rbp
ret
xor al, al
add rsp, 0x768
pop r13
pop rdi
pop rbx
pop rbp
ret
call fcn.140055668
int3
call fcn.140001350
int3
call fcn.140001350
int3
call fcn.140055668
int3