Function at 0x140043cbc
Capabilities:
Create directory

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x20], r9
mov dword [rsp + 0x18], r8d
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
xor r14d, r14d
mov rax, r9
mov qword [rbp - 0x38], r14
mov r10, rdx
mov qword [rbp - 0x10], r14
mov r13, rcx
mov esi, r14d
mov r12d, r14d
mov r15d, r14d
test rcx, rcx
je 0x140044476
test rax, rax
je 0x140044476
cmp qword [rcx + 0x48], r14
lea rdx, [rbp - 0x38]
mov rax, rcx
cmovne rax, qword [rcx + 0x48]
mov rcx, r10
mov eax, dword [rax + 0x24]
mov dword [rbp + 0x40], eax
call fcn.14002f99c
mov ebx, eax
test eax, eax
jns 0x140043d59
mov r9d, eax
mov r8d, 0x652
lea rdx, str.onecore_base_ntsetupopktoolsosimagelibmainmiscutil.c
mov qword [rsp + 0x20], r14
lea rcx, str.GetSysVolInfoPathFromMountPath
call fcn.140046874
jmp 0x1400441fb
mov rdx, qword [rbp - 0x38]
mov edi, r14d
or r14, 0xffffffffffffffff
xor ecx, ecx
lea r8d, [r14 + 2]
lea r9d, [r14 + 0x5d]
test rdx, rdx
je 0x140043eaf
mov rbx, r14
inc rbx
cmp word [rdx + rbx*2], cx
jne 0x140043d7a
test ebx, ebx
je 0x140043d93
lea eax, [rbx - 1]
cmp r9w, word [rdx + rax*2]
cmovne edi, r8d
mov rcx, qword gs:[0x60]
lea eax, [rdi + 0x1a]
add eax, ebx
mov edx, 8
mov esi, eax
mov rcx, qword [rcx + 0x30]
lea r8, [rax + rax]
call qword [sym.imp.ntdll.dll_RtlAllocateHeap]
nop dword [rax + rax]
xor ecx, ecx
mov qword [rbp - 0x40], rax
test rax, rax
jne 0x140043de0
mov rax, qword gs:[0x30]
mov edi, ecx
mov esi, ecx
mov dword [rax + 0x68], 8
jmp 0x140043ebf
mov r8, qword [rbp - 0x38]
lea rax, [rbp - 0x30]
mov qword [rsp + 0x28], rax
mov rdx, rsi
mov rsi, qword [rbp - 0x40]
lea rax, [rbp - 0x28]
mov r9d, ebx
mov rcx, rsi
mov qword [rsp + 0x20], rax
call fcn.14000c208
mov ebx, eax
test eax, eax
js 0x140043e7a
test edi, edi
je 0x140043e44
mov rdx, qword [rbp - 0x30]
lea rax, [rbp - 0x30]
mov rcx, qword [rbp - 0x28]
lea r8, [0x14009b488]
mov qword [rsp + 0x28], rax
mov r9d, 1
lea rax, [rbp - 0x28]
mov qword [rsp + 0x20], rax
call fcn.14000c208
mov ebx, eax
test eax, eax
js 0x140043e7a
mov rdx, qword [rbp - 0x30]
lea r8, str.System_Volume_Information
mov rcx, qword [rbp - 0x28]
mov r9d, 0x19
call fcn.14000107c
mov ebx, eax
test eax, eax
js 0x140043e7a
mov rax, qword gs:[0x30]
xor ebx, ebx
mov rdi, rsi
mov dword [rax + 0x68], ebx
jmp 0x140043f0a
mov rcx, qword gs:[0x60]
mov r8, rsi
xor edx, edx
mov rcx, qword [rcx + 0x30]
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
nop dword [rax + rax]
mov rax, qword gs:[0x30]
movzx ecx, bx
mov dword [rax + 0x68], ecx
xor eax, eax
mov edi, eax
mov esi, eax
jmp 0x140043ebf
mov rax, qword gs:[0x30]
mov dword [rax + 0x68], 0x57
mov qword [rbp - 0x40], rsi
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov ecx, eax
movzx eax, ax
or eax, 0x80070000
test ecx, ecx
cmovle eax, ecx
test eax, eax
jns 0x140044460
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
test ebx, ebx
js 0x140044465
xor ebx, ebx
cmp dword [rbp + 0x50], ebx
je 0x140043f7d
test byte [rbp + 0x40], 8
jne 0x140043f7d
mov rcx, rdi
call fcn.14000c064
test eax, eax
jne 0x140043f7d
xor edx, edx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
nop dword [rax + rax]
test eax, eax
jne 0x140043f7d
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov ecx, eax
movzx eax, ax
or eax, 0x80070000
test ecx, ecx
cmovle eax, ecx
test eax, eax
jns 0x140043ff9
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
test ebx, ebx
js 0x140043ffe
xor ebx, ebx
mov esi, ebx
test rdi, rdi
je 0x1400440d6
inc r14
cmp word [rdi + r14*2], bx
jne 0x140043f88
test r14d, r14d
je 0x140043fac
mov eax, 0x5c
lea ecx, [r14 - 1]
cmp ax, word [rdi + rcx*2]
mov eax, 1
cmovne esi, eax
mov rcx, qword gs:[0x60]
lea eax, [rsi + 9]
add eax, r14d
mov edx, 8
mov ebx, eax
mov rcx, qword [rcx + 0x30]
lea r8, [rax + rax]
call qword [sym.imp.ntdll.dll_RtlAllocateHeap]
nop dword [rax + rax]
mov r12, rax
test rax, rax
jne 0x14004400f
mov rax, qword gs:[0x30]
xor r14d, r14d
mov dword [rax + 0x68], 8
mov r12, r14
jmp 0x1400440e9
mov ebx, 0x80004005
xor r14d, r14d
mov r9d, ebx
mov r8d, 0x667
jmp 0x140043d3c
lea rax, [rbp - 0x20]
mov r9d, r14d
mov qword [rsp + 0x28], rax
mov r8, rdi
lea rax, [rbp - 0x18]
mov rdx, rbx
mov rcx, r12
mov qword [rsp + 0x20], rax
call fcn.14000c208
xor r14d, r14d
mov ebx, eax
test eax, eax
js 0x1400440a4
test esi, esi
je 0x14004406f
mov rdx, qword [rbp - 0x20]
lea rax, [rbp - 0x20]
mov rcx, qword [rbp - 0x18]
lea r9d, [r14 + 1]
mov qword [rsp + 0x28], rax
lea r8, [0x14009b488]
lea rax, [rbp - 0x18]
mov qword [rsp + 0x20], rax
call fcn.14000c208
mov ebx, eax
test eax, eax
js 0x1400440a4
mov rdx, qword [rbp - 0x20]
lea r8, str.WimMount
mov rcx, qword [rbp - 0x18]
mov r9d, 8
call fcn.14000107c
mov ebx, eax
test eax, eax
js 0x1400440a4
mov rax, qword gs:[0x30]
mov rdi, r12
mov dword [rax + 0x68], r14d
jmp 0x14004412f
mov rcx, qword gs:[0x60]
mov r8, r12
xor edx, edx
mov rcx, qword [rcx + 0x30]
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
nop dword [rax + rax]
mov rax, qword gs:[0x30]
movzx ecx, bx
mov dword [rax + 0x68], ecx
jmp 0x140043ff1
mov rax, qword gs:[0x30]
xor r14d, r14d
mov dword [rax + 0x68], 0x57
mov rdi, r14
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov ecx, eax
mov esi, 0x80070000
movzx eax, ax
or eax, esi
test ecx, ecx
cmovle eax, ecx
test eax, eax
jns 0x140044450
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ebx, ax
or ebx, esi
test eax, eax
cmovle ebx, eax
test ebx, ebx
js 0x140044455
mov esi, dword [rbp + 0x50]
mov r14d, dword [rbp + 0x40]
test esi, esi
je 0x14004419e
test r14b, 8
jne 0x14004419e
mov rcx, rdi
call fcn.14000c064
test eax, eax
jne 0x14004419e
xor edx, edx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
nop dword [rax + rax]
test eax, eax
jne 0x14004419e
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov ecx, eax
movzx eax, ax
or eax, 0x80070000
test ecx, ecx
cmovle eax, ecx
test eax, eax
jns 0x1400441ce
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
test ebx, ebx
js 0x1400441d3
xor eax, eax
lea r8, [rbp - 0x10]
cmp qword [r13 + 0x48], rax
mov rcx, r13
cmovne rcx, qword [r13 + 0x48]
add rcx, 0x10
lea edx, [rax + 0x10]
call fcn.140043b7c
mov ebx, eax
test eax, eax
jns 0x1400442c3
mov r8d, 0x685
jmp 0x1400441d9
mov ebx, 0x80004005
mov r8d, 0x67d
xor r14d, r14d
mov r9d, ebx
lea rdx, str.onecore_base_ntsetupopktoolsosimagelibmainmiscutil.c
mov qword [rsp + 0x20], r14
lea rcx, str.GetSysVolInfoPathFromMountPath
call fcn.140046874
mov rsi, qword [rbp - 0x40]
mov rdi, qword [rbp - 0x38]
test rdi, rdi
je 0x140044224
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, rdi
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
mov rdi, qword [rbp - 0x10]
test rdi, rdi
je 0x14004424d
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, rdi
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
test rsi, rsi
je 0x140044272
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, rsi
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
test r12, r12
je 0x140044297
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, r12
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
test r15, r15
je 0x1400442bc
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, r15
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
mov eax, ebx
jmp 0x14004447b
mov rdx, qword [rbp - 0x10]
mov rcx, rdi
call fcn.14000c2d8
mov r15, rax
test rax, rax
jne 0x140044313
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
cmovle ecx, eax
test ecx, ecx
jns 0x14004435b
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
test ebx, ebx
js 0x140044360
test esi, esi
je 0x1400443da
test r14b, 8
jne 0x1400443da
mov rcx, r13
call fcn.14002e5e4
xor r14d, r14d
test rax, rax
je 0x14004436b
xor r9d, r9d
mov r8, r15
mov rdx, rax
call fcn.140016d20
mov ebx, eax
test eax, eax
jns 0x1400443dd
mov r9d, eax
mov r8d, 0x69c
jmp 0x1400441df
mov ebx, 0x80004005
mov r8d, 0x68c
jmp 0x1400441d9
mov rcx, r15
call fcn.14000c064
test eax, eax
jne 0x1400443dd
xor edx, edx
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
nop dword [rax + rax]
test eax, eax
jne 0x1400443dd
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
cmovle ecx, eax
test ecx, ecx
jns 0x1400443ca
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
test ebx, ebx
jns 0x1400443dd
jmp 0x1400443cf
mov ebx, 0x80004005
mov r8d, 0x6a3
jmp 0x1400441dc
xor r14d, r14d
xor r8d, r8d
xor edx, edx
mov rcx, r15
call fcn.14002f2f8
mov rcx, qword [rbp + 0x58]
mov qword [rcx], rax
test rax, rax
je 0x1400443fe
mov ebx, r14d
jmp 0x1400441f7
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
cmovle ecx, eax
test ecx, ecx
jns 0x140044440
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
test ebx, ebx
jns 0x1400441f7
jmp 0x140044445
mov ebx, 0x80004005
mov r8d, 0x6ab
jmp 0x1400441dc
mov ebx, 0x80004005
mov r8d, 0x66f
jmp 0x1400441dc
mov ebx, 0x80004005
xor r14d, r14d
mov r9d, ebx
mov r8d, 0x659
jmp 0x140043d3c
mov eax, 0x80070057
mov rbx, qword [rsp + 0xc8]
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret