Function at 0x14003a9d0
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 0x14003aa00
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 0x14003aa92
dec cx
mov word [rbp + 0x1c6], cx
jmp 0x14003aa99
movzx ecx, word [rbp + 0x1c6]
cmp word [rdx + 6], cx
jne 0x14003aafe
cmp word [rdx + 6], 0
je 0x14003ab88
movzx r8d, word [rdx + 6]
lea rcx, [rdx + 0xa]
add r8, r8
lea rdx, [rbp + 0x1ca]
call fcn.14004e960
test eax, eax
jne 0x14003aafe
movzx ecx, word [rbx + 6]
cmp ecx, 1
jbe 0x14003aadb
movzx edx, word [rbx + rcx*2 + 8]
sub dx, word [rbx + rcx*2 + 6]
jmp 0x14003aadf
movzx edx, word [rbx + 0xa]
movzx r8d, dx
lea rcx, [rbx + 0x8a]
lea rdx, [rbp + 0x24a]
call fcn.14004e960
test eax, eax
je 0x14003ab88
lea rdx, [rbp + 0x1c0]
mov rcx, r13
call fcn.14003a9d0
test al, al
je 0x14003b51a
mov rdx, rbx
lea rcx, [rbp - 0x40]
call fcn.140040970
movzx edx, byte [rbp - 0x40]
lea r8, [rbp - 0x3f]
mov edi, 0x1505
test edx, edx
je 0x14003ab5e
nop dword [rax]
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 0x14003ab40
mov r9d, 1
lea r8, [rbp - 0x40]
test edi, edi
lea rcx, [rsp + 0x70]
mov rdx, r13
cmovne r9d, edi
call fcn.1400490d0
mov ecx, dword [rsp + 0x70]
mov eax, ecx
shr eax, 3
test al, 1
je 0x14003ab97
mov al, 1
add rsp, 0x768
pop r13
pop rdi
pop rbx
pop rbp
ret
shr ecx, 2
test cl, 1
jne 0x14003b51a
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.140013ae0
movsx ecx, byte [rbp - 0x40]
call fcn.140057ff0
test eax, eax
je 0x14003abf7
cmp word [rbp - 0x3f], 0x5c3a
jne 0x14003abf7
cmp byte [rbp - 0x3d], 0
je 0x14003b4ce
mov rbx, 0xffffffffffffffff
lea rax, [rbp - 0x40]
mov r9, rbx
inc r9
cmp byte [rax + r9], 0
jne 0x14003ac05
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 + 0x60], r12
movsxd r15, eax
xorps xmm0, xmm0
movups xmmword [rsp + 0x50], xmm0
cmp r15, r14
ja 0x14003b52f
mov qword [rsp + 0x68], 7
cmp r15, 8
jae 0x14003ac7f
mov qword [rsp + 0x60], r15
test eax, eax
je 0x14003ac77
movzx eax, r12w
lea rdi, [rsp + 0x50]
mov rcx, r15
rep stosw word [rdi], ax
mov word [rsp + r15*2 + 0x50], r12w
jmp 0x14003acdf
mov rdi, r15
lea rcx, [rsp + 0x50]
or rdi, 7
cmp rdi, r14
jbe 0x14003aca6
movabs rdx, 0x7fffffffffffffff
call fcn.140014bd0
mov qword [rsp + 0x68], r14
jmp 0x14003acc0
mov eax, 0xa
cmp rdi, rax
cmovb rdi, rax
lea rdx, [rdi + 1]
call fcn.140014bd0
mov qword [rsp + 0x68], rdi
mov rdx, rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x60], r15
mov rdi, rdx
movzx eax, r12w
mov rcx, r15
rep stosw word [rdi], ax
mov word [rdx + r15*2], r12w
test r15d, r15d
je 0x14003ad24
cmp qword [rsp + 0x68], 8
lea rax, [rsp + 0x50]
lea rdx, [rbp - 0x40]
mov r9, rbx
cmovae rax, qword [rsp + 0x50]
nop dword [rax]
inc r9
cmp byte [rdx + r9], r12b
jne 0x14003ad00
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 r10, qword [rsp + 0x60]
lea rsi, str._UNC_
mov r8, qword [rsp + 0x68]
mov r12d, 4
mov rdi, qword [rsp + 0x50]
lea r15d, [r12 + 4]
test r10, r10
je 0x14003b3f0
cmp r10, r12
lea r9, [rsp + 0x50]
mov r11d, r12d
lea rcx, str.._
cmovb r11, r10
cmp r8, r15
mov rdx, r11
cmovae r9, rdi
cmp r11, r12
cmova rdx, r12
test rdx, rdx
je 0x14003ad94
sub r9, rcx
nop dword [rax]
movzx eax, word [rcx + r9]
cmp ax, word [rcx]
jne 0x14003ad9d
add rcx, 2
sub rdx, 1
jne 0x14003ad80
cmp r11, r12
je 0x14003ae2d
cmp r10, r12
lea r9, [rsp + 0x50]
mov r11, r12
lea rcx, str.__
cmovb r11, r10
cmp r8, r15
mov rdx, r11
cmovae r9, rdi
cmp r11, r12
cmova rdx, r12
test rdx, rdx
je 0x14003ade4
sub r9, rcx
nop dword [rax]
movzx eax, word [rcx + r9]
cmp ax, word [rcx]
jne 0x14003ade9
add rcx, 2
sub rdx, 1
jne 0x14003add0
cmp r11, r12
je 0x14003ae2d
cmp r10, r15
lea r9, [rsp + 0x50]
mov r11, r15
mov rcx, rsi
cmovb r11, r10
cmp r8, r15
mov rdx, r11
cmovae r9, rdi
cmp r11, r15
cmova rdx, r15
test rdx, rdx
je 0x14003ae28
sub r9, rsi
movzx eax, word [rcx + r9]
cmp ax, word [rcx]
jne 0x14003ae60
add rcx, 2
sub rdx, 1
jne 0x14003ae14
cmp r11, r15
jne 0x14003ae60
test r10, r10
je 0x14003b3f0
cmp r8, r15
lea rcx, [rsp + 0x50]
lea r8, [rbp - 0x70]
cmovae rcx, rdi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesExW]
mov r8, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x50]
test eax, eax
jne 0x14003b3f0
cmp r8, r15
lea rcx, [rsp + 0x50]
lea r8, [rbp + 0x450]
mov edx, 0x104
cmovae rcx, rdi
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_GetFullPathNameW]
test eax, eax
je 0x14003af88
xor esi, esi
mov qword [rsp + 0x48], 7
mov qword [rsp + 0x40], rsi
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
mov word [rsp + 0x30], si
cmp eax, 0xf8
jae 0x14003aed9
lea rax, [rbp + 0x450]
inc rbx
cmp word [rax + rbx*2], si
jne 0x14003aeb4
mov r8, rbx
lea rdx, [rbp + 0x450]
lea rcx, [rsp + 0x30]
call fcn.140014aa0
xor r12d, r12d
jmp 0x14003b2a5
mov edx, eax
add rdx, r15
cmp rdx, 7
ja 0x14003aefe
mov qword [rsp + 0x40], rdx
lea rdi, [rsp + 0x30]
movzx eax, si
mov rcx, rdx
rep stosw word [rdi], ax
mov word [rsp + rdx*2 + 0x30], si
jmp 0x14003af10
mov r9, rdx
mov word [rsp + 0x20], si
lea rcx, [rsp + 0x30]
call fcn.140014d40
cmp qword [rsp + 0x48], r15
lea r8, [rsp + 0x30]
mov edx, dword [rsp + 0x40]
lea rcx, [rsp + 0x50]
cmovae r8, qword [rsp + 0x30]
cmp qword [rsp + 0x68], r15
cmovae rcx, qword [rsp + 0x50]
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_GetFullPathNameW]
mov ebx, eax
test eax, eax
jne 0x14003afd1
mov rdx, qword [rsp + 0x48]
cmp rdx, r15
jb 0x14003af88
mov rcx, qword [rsp + 0x30]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x14003af83
mov rdi, qword [rcx - 8]
add rdx, 0x27
sub rcx, rdi
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14003b53b
mov rcx, rdi
call fcn.14004ba4c
mov rdx, qword [rsp + 0x68]
cmp rdx, r15
jb 0x14003afc9
mov rcx, qword [rsp + 0x50]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x14003afc4
mov rdi, qword [rcx - 8]
add rdx, 0x27
sub rcx, rdi
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14003b529
mov rcx, rdi
call fcn.14004ba4c
xor dil, dil
jmp 0x14003b4d1
xorps xmm0, xmm0
mov qword [rbp - 0x80], r12
movups xmmword [rsp + 0x70], xmm0
mov word [rsp + 0x78], si
lea r9, [rsp + 0x30]
mov esi, 2
lea rcx, [0x14008a044]
cmp qword [rsp + 0x40], rsi
mov r10d, esi
mov r11d, 7
movabs r15, 0x5c003f005c005c
cmovb r10, qword [rsp + 0x40]
cmp qword [rsp + 0x48], 8
mov rdi, r10
mov qword [rbp - 0x78], r11
cmovae r9, qword [rsp + 0x30]
cmp r10, rsi
mov qword [rsp + 0x70], r15
cmova rdi, rsi
test rdi, rdi
je 0x14003b053
sub r9, rcx
nop dword [rax + rax]
movzx eax, word [r9 + rcx]
cmp ax, word [rcx]
jne 0x14003b0b5
add rcx, rsi
sub rdi, 1
jne 0x14003b040
cmp r10, rsi
jne 0x14003b0b5
mov r8d, 8
lea rdx, str._UNC_
lea rcx, [rsp + 0x70]
call fcn.140014aa0
mov rdi, qword [rsp + 0x40]
lea rcx, [rsp + 0x30]
cmp rdi, rsi
cmovb rsi, rdi
cmp qword [rsp + 0x48], 8
cmovae rcx, qword [rsp + 0x30]
sub rdi, rsi
lea r8, [rdi*2 + 2]
lea rdx, [rcx + rsi*2]
call fcn.14004dd10
mov r11, qword [rbp - 0x78]
add ebx, 0xfffffffe
mov r12, qword [rbp - 0x80]
mov r15, qword [rsp + 0x70]
mov qword [rsp + 0x40], rdi
cmp r11, 8
lea r8, [rsp + 0x70]
mov r9, r12
lea rcx, [rsp + 0x30]
cmovae r8, r15
call fcn.1400148c0
mov r8, qword [rsp + 0x40]
mov ecx, ebx
add rcx, qword [rbp - 0x80]
cmp rcx, r8
ja 0x14003b0ff
cmp qword [rsp + 0x48], 8
lea rax, [rsp + 0x30]
mov qword [rsp + 0x40], rcx
cmovae rax, qword [rsp + 0x30]
xor r12d, r12d
mov word [rax + rcx*2], r12w
jmp 0x14003b160
mov rdi, qword [rsp + 0x48]
mov rdx, rcx
mov rax, rdi
sub rdx, r8
sub rax, r8
cmp rdx, rax
ja 0x14003b14a
cmp rdi, 8
mov qword [rsp + 0x40], rcx
lea r9, [rsp + 0x30]
cmovae r9, qword [rsp + 0x30]
xor r12d, r12d
lea rdi, [r9 + r8*2]
test rdx, rdx
je 0x14003b13f
movzx eax, r12w
mov rcx, rdx
rep stosw word [rdi], ax
lea rax, [r8 + rdx]
mov word [r9 + rax*2], r12w
jmp 0x14003b160
xor r12d, r12d
lea rcx, [rsp + 0x30]
mov r9, rdx
mov word [rsp + 0x20], r12w
call fcn.140014d40
mov rax, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x40]
cmp rax, 8
jb 0x14003b264
cmp rbx, 8
jae 0x14003b1d8
mov rdi, qword [rsp + 0x30]
lea r8, [rbx*2 + 2]
mov rdx, rdi
lea rcx, [rsp + 0x30]
call fcn.14004dd10
mov rax, qword [rsp + 0x48]
lea rdx, [rax*2 + 2]
cmp rdx, 0x1000
jb 0x14003b1c6
mov rcx, qword [rdi - 8]
add rdx, 0x27
sub rdi, rcx
lea rax, [rdi - 8]
cmp rax, 0x1f
ja 0x14003b53b
mov rdi, rcx
mov rcx, rdi
call fcn.14004ba4c
mov eax, 7
jmp 0x14003b25a
mov rdi, rbx
or rdi, 7
cmp rdi, r14
cmova rdi, r14
cmp rdi, rax
jae 0x14003b264
lea rdx, [rdi + 1]
lea rcx, [rsp + 0x30]
call fcn.140014bd0
mov r8, qword [rsp + 0x40]
mov rcx, rax
mov rdx, qword [rsp + 0x30]
mov rbx, rax
lea r8, [r8*2 + 2]
call fcn.14004dd10
mov rcx, qword [rsp + 0x48]
lea rdx, [rcx*2 + 2]
mov rcx, qword [rsp + 0x30]
cmp rdx, 0x1000
jb 0x14003b24d
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14003b53b
mov rcx, r8
call fcn.14004ba4c
mov rax, rdi
mov qword [rsp + 0x30], rbx
mov rbx, qword [rsp + 0x40]
mov qword [rsp + 0x48], rax
mov rdx, qword [rbp - 0x78]
cmp rdx, 8
jb 0x14003b2af
mov rcx, qword [rsp + 0x70]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x14003b2a0
mov rdi, qword [rcx - 8]
add rdx, 0x27
sub rcx, rdi
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14003b53b
mov rcx, rdi
call fcn.14004ba4c
mov rbx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x68]
lea r15, [rsp + 0x30]
cmp rax, 8
cmovae r15, qword [rsp + 0x30]
cmp rbx, rsi
ja 0x14003b2fa
cmp rsi, 8
mov qword [rsp + 0x60], rbx
lea rdi, [rsp + 0x50]
mov rdx, r15
cmovae rdi, qword [rsp + 0x50]
lea r8, [rbx + rbx]
mov rcx, rdi
call fcn.14004dd10
mov word [rdi + rbx*2], r12w
mov rdi, qword [rsp + 0x50]
jmp 0x14003b3a4
cmp rbx, r14
ja 0x14003b535
mov rdx, rbx
or rdx, 7
cmp rdx, r14
ja 0x14003b333
mov rcx, rsi
mov rax, r14
shr rcx, 1
sub rax, rcx
cmp rsi, rax
ja 0x14003b333
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 + 0x50]
call fcn.140014bd0
lea r8, [rbx + rbx]
mov qword [rsp + 0x60], rbx
mov rdx, r15
mov qword [rsp + 0x68], r14
mov rcx, rax
mov rdi, rax
call fcn.14004dd10
mov word [rdi + rbx*2], r12w
cmp rsi, 8
jb 0x14003b39f
mov rcx, qword [rsp + 0x50]
lea rdx, [rsi*2 + 2]
cmp rdx, 0x1000
jb 0x14003b39a
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14003b53b
mov rcx, r8
call fcn.14004ba4c
mov qword [rsp + 0x50], rdi
mov rdx, qword [rsp + 0x48]
cmp rdx, 8
jb 0x14003b428
mov rcx, qword [rsp + 0x30]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x14003b3e1
mov rdi, qword [rcx - 8]
add rdx, 0x27
sub rcx, rdi
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14003b53b
mov rcx, rdi
call fcn.14004ba4c
mov r8, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x50]
cmp r8, 8
lea rcx, [rsp + 0x50]
cmovae rcx, rdi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x14003b490
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x14003b42f
mov rdx, qword [rsp + 0x68]
cmp rdx, 8
jmp 0x14003af90
mov r8, qword [rsp + 0x68]
jmp 0x14003b3f0
cmp qword [rsp + 0x68], 8
lea rcx, [rsp + 0x50]
cmovae rcx, qword [rsp + 0x50]
call qword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
mov rdx, qword [rsp + 0x68]
test eax, eax
setne dil
cmp rdx, 8
jb 0x14003b4d1
mov rcx, qword [rsp + 0x50]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x14003b489
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14003b529
mov rcx, r8
call fcn.14004ba4c
jmp 0x14003b4d1
mov rdx, qword [rsp + 0x68]
cmp rdx, 8
jb 0x14003b4ce
mov rcx, qword [rsp + 0x50]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x14003b4c9
mov rdi, qword [rcx - 8]
add rdx, 0x27
sub rcx, rdi
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14003b529
mov rcx, rdi
call fcn.14004ba4c
mov dil, 1
lea rcx, [rbp - 0x40]
call fcn.1400033f0
mov r8d, eax
lea rdx, [rbp - 0x40]
mov rcx, r13
call fcn.140049050
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.14005689c
int3
call fcn.1400138f0
int3
call fcn.1400138f0
int3
call fcn.14005689c
int3