Function at 0x140003320
Capabilities:
Create directory

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x70
mov qword [rsp + 0x28], 0
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov qword [rsp + 0x30], rax
cmp qword [rsp + 0x30], 0
je 0x140003a1a
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, qword [rsp + 0x80]
call qword [sym.imp.KERNEL32.dll_GetFullPathNameW]
mov dword [rsp + 0x3c], eax
cmp dword [rsp + 0x3c], 0
je 0x140003a07
mov eax, dword [rsp + 0x3c]
add eax, 7
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x3c]
shl rax, 1
mov r8, rax
mov edx, 8
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0
je 0x1400039f4
mov eax, dword [rsp + 0x3c]
shl rax, 1
mov r8, rax
mov edx, 8
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov qword [rsp + 0x50], rax
cmp qword [rsp + 0x50], 0
je 0x1400039cf
xor r9d, r9d
mov r8, qword [rsp + 0x20]
mov edx, dword [rsp + 0x3c]
mov rcx, qword [rsp + 0x80]
call qword [sym.imp.KERNEL32.dll_GetFullPathNameW]
mov dword [rsp + 0x40], eax
cmp dword [rsp + 0x40], 0
je 0x1400039aa
mov rcx, qword [rsp + 0x20]
call fcn.1400032e0
test eax, eax
jne 0x1400039a0
lea r8, [rsp + 0x28]
lea rdx, [0x140001a10]
mov rcx, qword [rsp + 0x20]
call fcn.140004700
mov qword [rsp + 0x48], rax
cmp qword [rsp + 0x48], 0
je 0x140003996
mov r8d, 3
lea rdx, [0x140001a18]
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.msvcrt.dll_wcsncmp]
test eax, eax
jne 0x140003672
mov eax, dword [rsp + 0x3c]
lea r8, [0x140001a20]
mov edx, eax
mov rcx, qword [rsp + 0x50]
call fcn.140002e60
mov dword [rsp + 0x58], eax
cmp dword [rsp + 0x58], 0
jl 0x14000366d
lea r8, [rsp + 0x28]
lea rdx, [0x140001a10]
xor ecx, ecx
call fcn.140004700
mov qword [rsp + 0x48], rax
cmp qword [rsp + 0x48], 0
je 0x140003516
xor eax, eax
mov rcx, 0xffffffffffffffff
mov rdi, qword [rsp + 0x48]
repne scasw ax, word [rdi]
not rcx
dec rcx
mov rax, rcx
cmp rax, 2
jne 0x140003516
mov rax, qword [rsp + 0x48]
movzx eax, word [rax + 2]
cmp eax, 0x3a
jne 0x140003516
mov rax, qword [rsp + 0x48]
movzx ecx, word [rax]
call qword [sym.imp.msvcrt.dll_towupper]
movzx edx, ax
lea rcx, [0x140001a30]
call qword [sym.imp.msvcrt.dll_wcschr]
test rax, rax
je 0x140003516
mov eax, dword [rsp + 0x3c]
mov r8, qword [rsp + 0x48]
mov edx, eax
mov rcx, qword [rsp + 0x50]
call fcn.140002f50
mov dword [rsp + 0x58], eax
jmp 0x14000366d
cmp qword [rsp + 0x48], 0
je 0x140003665
xor eax, eax
mov rcx, 0xffffffffffffffff
mov rdi, qword [rsp + 0x48]
repne scasw ax, word [rdi]
not rcx
dec rcx
mov rax, rcx
cmp rax, 3
jb 0x140003665
mov r8d, 3
mov rdx, qword [rsp + 0x48]
lea rcx, [0x140001a68]
call qword [sym.imp.msvcrt.dll__wcsnicmp]
test eax, eax
jne 0x140003665
mov eax, dword [rsp + 0x3c]
mov r8, qword [rsp + 0x48]
mov edx, eax
mov rcx, qword [rsp + 0x50]
call fcn.140002f50
mov dword [rsp + 0x58], eax
cmp dword [rsp + 0x58], 0
jl 0x140003663
mov eax, dword [rsp + 0x3c]
lea r8, [0x140001a10]
mov edx, eax
mov rcx, qword [rsp + 0x50]
call fcn.140002f50
mov dword [rsp + 0x58], eax
cmp dword [rsp + 0x58], 0
jl 0x140003663
lea r8, [rsp + 0x28]
lea rdx, [0x140001a10]
xor ecx, ecx
call fcn.140004700
mov qword [rsp + 0x48], rax
cmp qword [rsp + 0x48], 0
je 0x14000365b
mov eax, dword [rsp + 0x3c]
mov r8, qword [rsp + 0x48]
mov edx, eax
mov rcx, qword [rsp + 0x50]
call fcn.140002f50
mov dword [rsp + 0x58], eax
cmp dword [rsp + 0x58], 0
jl 0x140003659
mov eax, dword [rsp + 0x3c]
lea r8, [0x140001a10]
mov edx, eax
mov rcx, qword [rsp + 0x50]
call fcn.140002f50
mov dword [rsp + 0x58], eax
cmp dword [rsp + 0x58], 0
jl 0x140003659
lea r8, [rsp + 0x28]
lea rdx, [0x140001a10]
xor ecx, ecx
call fcn.140004700
mov qword [rsp + 0x48], rax
cmp qword [rsp + 0x48], 0
je 0x140003651
mov eax, dword [rsp + 0x3c]
mov r8, qword [rsp + 0x48]
mov edx, eax
mov rcx, qword [rsp + 0x50]
call fcn.140002f50
mov dword [rsp + 0x58], eax
jmp 0x140003659
mov dword [rsp + 0x58], 0x80070057
jmp 0x140003663
mov dword [rsp + 0x58], 0x80070057
jmp 0x14000366d
mov dword [rsp + 0x58], 0x80070057
jmp 0x140003778
xor eax, eax
mov rcx, 0xffffffffffffffff
mov rdi, qword [rsp + 0x48]
repne scasw ax, word [rdi]
not rcx
dec rcx
mov rax, rcx
cmp rax, 2
jne 0x1400036e8
mov rax, qword [rsp + 0x48]
movzx eax, word [rax + 2]
cmp eax, 0x3a
jne 0x1400036e8
mov rax, qword [rsp + 0x48]
movzx ecx, word [rax]
call qword [sym.imp.msvcrt.dll_towupper]
movzx edx, ax
lea rcx, [0x140001a30]
call qword [sym.imp.msvcrt.dll_wcschr]
test rax, rax
je 0x1400036e8
mov eax, dword [rsp + 0x3c]
mov r9, qword [rsp + 0x48]
lea r8, [0x140001a70]
mov edx, eax
mov rcx, qword [rsp + 0x50]
call fcn.140001b70
mov dword [rsp + 0x58], eax
jmp 0x140003778
mov r8d, 2
lea rdx, [0x140001a80]
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.msvcrt.dll_wcsncmp]
test eax, eax
jne 0x140003770
mov eax, dword [rsp + 0x3c]
mov r9, qword [rsp + 0x48]
lea r8, [0x140001a88]
mov edx, eax
mov rcx, qword [rsp + 0x50]
call fcn.140001b70
mov dword [rsp + 0x58], eax
cmp dword [rsp + 0x58], 0
jl 0x14000376e
lea r8, [rsp + 0x28]
lea rdx, [0x140001a10]
xor ecx, ecx
call fcn.140004700
mov qword [rsp + 0x48], rax
cmp qword [rsp + 0x48], 0
je 0x140003766
mov eax, dword [rsp + 0x3c]
mov r8, qword [rsp + 0x48]
mov edx, eax
mov rcx, qword [rsp + 0x50]
call fcn.140002f50
mov dword [rsp + 0x58], eax
jmp 0x14000376e
mov dword [rsp + 0x58], 0x80070057
jmp 0x140003778
mov dword [rsp + 0x58], 0x80070057
cmp dword [rsp + 0x58], 0
jl 0x140003994
lea r8, [rsp + 0x28]
lea rdx, [0x140001a10]
xor ecx, ecx
call fcn.140004700
mov qword [rsp + 0x48], rax
cmp qword [rsp + 0x48], 0
je 0x14000398c
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x60], rax
lea r8, [rsp + 0x28]
lea rdx, [0x140001a10]
xor ecx, ecx
call fcn.140004700
mov qword [rsp + 0x48], rax
cmp dword [rsp + 0x58], 0
jl 0x1400038bc
cmp qword [rsp + 0x48], 0
je 0x1400038bc
mov eax, dword [rsp + 0x3c]
lea r8, [0x140001a10]
mov edx, eax
mov rcx, qword [rsp + 0x50]
call fcn.140002f50
mov dword [rsp + 0x58], eax
cmp dword [rsp + 0x58], 0
jl 0x140003895
mov eax, dword [rsp + 0x3c]
mov r8, qword [rsp + 0x60]
mov edx, eax
mov rcx, qword [rsp + 0x50]
call fcn.140002f50
mov dword [rsp + 0x58], eax
cmp dword [rsp + 0x58], 0
jl 0x140003895
cmp qword [rsp + 0x88], 0
jne 0x14000384a
mov rdx, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov dword [rsp + 0x38], eax
jmp 0x140003869
mov r8, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x88]
call qword [sym.imp.KERNEL32.dll_CreateDirectoryExW]
mov dword [rsp + 0x38], eax
cmp dword [rsp + 0x38], 0
jne 0x140003895
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x40], eax
mov rcx, qword [rsp + 0x50]
call fcn.1400032e0
test eax, eax
jne 0x140003895
mov ecx, dword [rsp + 0x40]
call fcn.140002e20
mov dword [rsp + 0x58], eax
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x60], rax
lea r8, [rsp + 0x28]
lea rdx, [0x140001a10]
xor ecx, ecx
call fcn.140004700
mov qword [rsp + 0x48], rax
jmp 0x1400037c9
cmp dword [rsp + 0x58], 0
jl 0x14000398a
cmp dword [rsp + 0x98], 0
je 0x14000398a
mov eax, dword [rsp + 0x3c]
lea r8, [0x140001a10]
mov edx, eax
mov rcx, qword [rsp + 0x50]
call fcn.140002f50
mov dword [rsp + 0x58], eax
cmp dword [rsp + 0x58], 0
jl 0x14000398a
mov eax, dword [rsp + 0x3c]
mov r8, qword [rsp + 0x60]
mov edx, eax
mov rcx, qword [rsp + 0x50]
call fcn.140002f50
mov dword [rsp + 0x58], eax
cmp dword [rsp + 0x58], 0
jl 0x14000398a
cmp qword [rsp + 0x88], 0
jne 0x14000393f
mov rdx, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov dword [rsp + 0x38], eax
jmp 0x14000395e
mov r8, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x88]
call qword [sym.imp.KERNEL32.dll_CreateDirectoryExW]
mov dword [rsp + 0x38], eax
cmp dword [rsp + 0x38], 0
jne 0x14000398a
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x40], eax
mov rcx, qword [rsp + 0x50]
call fcn.1400032e0
test eax, eax
jne 0x14000398a
mov ecx, dword [rsp + 0x40]
call fcn.140002e20
mov dword [rsp + 0x58], eax
jmp 0x140003994
mov dword [rsp + 0x58], 0x80070057
jmp 0x14000399e
mov dword [rsp + 0x58], 0x80004005
jmp 0x1400039a8
mov dword [rsp + 0x58], 0
jmp 0x1400039bb
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.140002e20
mov dword [rsp + 0x58], eax
mov r8, qword [rsp + 0x50]
xor edx, edx
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x1400039e0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.140002e20
mov dword [rsp + 0x58], eax
mov r8, qword [rsp + 0x20]
xor edx, edx
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x140003a05
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.140002e20
mov dword [rsp + 0x58], eax
jmp 0x140003a18
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.140002e20
mov dword [rsp + 0x58], eax
jmp 0x140003a2b
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.140002e20
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x58]
add rsp, 0x70
pop rdi
ret