Function at 0x140045624
Capabilities:
Create directory

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1d0]
sub rsp, 0x2d0
mov rax, qword [0x1400b8288]
xor rax, rsp
mov qword [rbp + 0x1c8], rax
mov qword [rbp + 0x1c0], r8
mov r15, rdx
mov qword [rsp + 0x68], rdx
mov edi, 0x118
mov qword [rsp + 0x40], rcx
xor ebx, ebx
mov r8d, edi
lea rcx, [rbp + 0xa4]
xor edx, edx
mov r12d, ebx
call sub.msvcrt.dll_memset
mov r8d, edi
lea rcx, [rbp - 0x7c]
xor edx, edx
call sub.msvcrt.dll_memset
lea rcx, [rbp + 0xa0]
mov qword [rsp + 0x70], rbx
mov r14d, ebx
mov qword [rsp + 0x50], rbx
mov r13d, ebx
mov dword [rsp + 0x48], ebx
mov dword [rbp + 0xa0], 0x11c
call fcn.1400967ac
test eax, eax
jne 0x1400456f0
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ecx, ax
lea edi, [rbx + 1]
or ecx, 0x80070000
lea r9, str.Failed_to_get_host_OS_version.
test eax, eax
mov r12d, eax
cmovle ecx, eax
mov eax, 0xb4d
jmp 0x140045bfb
mov esi, dword [rbp + 0xa4]
cmp esi, 6
jb 0x140045be5
mov edi, dword [rbp + 0xa8]
jne 0x140045710
cmp edi, 2
jb 0x140045be5
call fcn.1400453f4
test eax, eax
jne 0x14004573c
call fcn.14004e964
test eax, eax
je 0x14004572b
cmp qword [0x1400bad28], rbx
jne 0x14004573c
lea r9, str.CI_EA_only_supported_on_either_WinPE_host_or_one_which_supports_extracted_catalog_folder.
mov eax, 0xb5c
jmp 0x140045bf1
mov rcx, qword [rsp + 0x40]
lea rdx, [rbp - 0x80]
mov dword [rbp - 0x80], 0x11c
call fcn.14002dcb0
test eax, eax
jne 0x140045766
lea r9, str.CI_EA_only_supported_on_images_with_OS_version_info.
mov eax, 0xb64
jmp 0x140045bf1
cmp esi, 6
jne 0x140045789
cmp edi, 2
jb 0x140045bd7
cmp edi, 3
jne 0x140045789
cmp dword [rbp + 0xac], 0x24aa
jb 0x140045bd7
cmp esi, dword [rbp - 0x7c]
jne 0x140045bd7
cmp edi, dword [rbp - 0x78]
jne 0x140045bd7
call fcn.1400964dc
mov qword [rsp + 0x70], rax
test rax, rax
jne 0x1400457da
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ecx, ax
mov edi, 1
or ecx, 0x80070000
lea r9, str.Failed_to_get_GUID_string.
test eax, eax
cmovle ecx, eax
mov eax, 0xb79
jmp 0x140045bfb
mov rdx, rax
mov rcx, r15
call fcn.14000c2d8
mov r14, rax
test rax, rax
jne 0x14004581c
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ecx, ax
lea edi, [r14 + 1]
or ecx, 0x80070000
lea r9, str.Failed_to_build_path_to_GUID_folder.
test eax, eax
cmovle ecx, eax
mov eax, 0xb7f
jmp 0x140045bfb
mov r15d, ebx
or rsi, 0xffffffffffffffff
inc rsi
cmp word [rax + rsi*2], bx
jne 0x140045823
mov edi, 1
test esi, esi
je 0x140045844
lea ecx, [rsi - 1]
lea eax, [rdi + 0x5b]
cmp ax, word [r14 + rcx*2]
cmovne r15d, edi
mov rcx, qword gs:[0x60]
lea eax, [r15 + 7]
add eax, esi
mov edx, 8
mov r13d, eax
mov rcx, qword [rcx + 0x30]
lea r8, [rax*2]
call qword [sym.imp.ntdll.dll_RtlAllocateHeap]
nop dword [rax + rax]
mov qword [rsp + 0x78], rax
test rax, rax
jne 0x140045892
mov rax, qword gs:[0x30]
mov dword [rax + 0x68], 8
jmp 0x140045bac
lea rax, [rsp + 0x58]
mov r9d, esi
mov qword [rsp + 0x28], rax
mov rdx, r13
mov r13, qword [rsp + 0x78]
lea rax, [rsp + 0x60]
mov r8, r14
mov qword [rsp + 0x20], rax
mov rcx, r13
call fcn.14000c208
mov esi, eax
test eax, eax
js 0x140045b7f
test r15d, r15d
je 0x140045902
mov rdx, qword [rsp + 0x58]
lea rax, [rsp + 0x58]
mov rcx, qword [rsp + 0x60]
lea r8, [0x14009b488]
mov qword [rsp + 0x28], rax
mov r9, rdi
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
call fcn.14000c208
mov esi, eax
test eax, eax
js 0x140045b7f
mov rdx, qword [rsp + 0x58]
lea r8, str.ci.dll
mov rcx, qword [rsp + 0x60]
mov r9d, 6
call fcn.14000107c
mov esi, eax
test eax, eax
js 0x140045b7f
mov rax, qword gs:[0x30]
xor edx, edx
mov rcx, r14
mov dword [rax + 0x68], ebx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
nop dword [rax + rax]
test eax, eax
jne 0x140045974
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ecx, ax
lea r9, str.Failed_to_create_GUID_folder.
or ecx, 0x80070000
test eax, eax
cmovle ecx, eax
mov eax, 0xb8a
jmp 0x140045bfb
mov rcx, qword [rsp + 0x40]
lea rdx, str.WindowsSystem32ci.dll
mov r9d, 0x20000
mov qword [rsp + 0x20], rbx
mov r8, r13
call fcn.1400491a0
test eax, eax
jne 0x1400459c2
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ecx, ax
lea r9, str.Failed_to_extract_ci.dll_from_WIM.
or ecx, 0x80070000
test eax, eax
cmovle ecx, eax
mov eax, 0xb8f
jmp 0x140045bfb
mov r15, qword [rbp + 0x1c0]
mov r8d, ebx
mov rcx, r13
test dword [r15], 0x6000
setne r8b
xor r9d, r9d
xor edx, edx
call fcn.14004ea4c
test eax, eax
jne 0x140045a51
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
cmp eax, 0x241
jne 0x140045a26
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ecx, ax
lea r9, str.CI_EA_not_supported_because_host_OS_and_applied_image_have_signature_type_mismatch.
or ecx, 0x80070000
test eax, eax
cmovle ecx, eax
mov eax, 0xb9a
jmp 0x140045c02
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ecx, ax
lea r9, str.Failed_to_set_CI_EA_on_temporarily_extracted_ci.dll.
or ecx, 0x80070000
test eax, eax
cmovle ecx, eax
mov eax, 0xb9e
jmp 0x140045c02
call fcn.1400453f4
mov r15, qword [rsp + 0x68]
test eax, eax
je 0x140045b0a
lea rdx, [rsp + 0x50]
mov rcx, r15
call fcn.140030314
mov ecx, eax
test eax, eax
jns 0x140045a87
lea r9, str.Failed_to_get_volume_root_from_path.
mov eax, 0xbab
jmp 0x140045bfb
mov rsi, qword [rsp + 0x50]
xor edx, edx
mov rcx, rsi
call fcn.140045458
test eax, eax
jne 0x140045b0a
mov rcx, rsi
call fcn.14004555c
test eax, eax
je 0x140045adf
xor r8d, r8d
mov dword [rsp + 0x30], 0xbb4
mov dword [rsp + 0x48], edi
lea rsi, str.CheckCIEASupport
mov rdi, qword [rsp + 0x40]
lea r9, str.Journaling_is_enabled_successfully_on_the_apply_volume.
mov qword [rsp + 0x28], rsi
mov rdx, rdi
lea ecx, [r8 + 3]
mov dword [rsp + 0x20], ebx
call fcn.14002aaa0
jmp 0x140045b0f
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ecx, ax
lea r9, str.Failed_to_enable_journaling_on_the_apply_volume.
or ecx, 0x80070000
test eax, eax
cmovle ecx, eax
mov eax, 0xbb8
jmp 0x140045bf6
mov rdi, qword [rsp + 0x40]
cmp dword [rsp + 0x48], ebx
je 0x140045c76
movzx edx, word [r15]
lea eax, [rdx - 0x61]
cmp ax, 0x19
jbe 0x140045b2f
lea eax, [rdx - 0x41]
cmp ax, 0x19
ja 0x140045b78
mov eax, 0x3a
cmp ax, word [r15 + 2]
jne 0x140045b78
mov eax, dword [0x14009eb28]
lea r8, [rbp + 0x1c0]
mov dword [rbp + 0x1c0], eax
movzx eax, word [0x14009eb2c]
mov word [rbp + 0x1c4], ax
mov word [rbp + 0x1c0], dx
xor r9d, r9d
mov edx, 0x949b
mov rcx, rdi
call fcn.1400286f0
jmp 0x140045c76
mov r8, qword [rsp + 0x50]
jmp 0x140045b63
mov rcx, qword gs:[0x60]
mov r8, r13
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, si
mov dword [rax + 0x68], ecx
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ecx, ax
lea r9, str.Failed_to_build_path_to_ci.dll_inside_GUID_folder.
or ecx, 0x80070000
mov r13, rbx
test eax, eax
cmovle ecx, eax
mov eax, 0xb85
jmp 0x140045bfb
lea r9, str.CI_EA_not_supported_due_to_version_mismatch_between_host_OS_and_applied_image.
mov eax, 0xb6b
jmp 0x140045bf1
lea r9, str.CI_EA_only_supported_on_Windows_8_and_higher.
mov eax, 0xb54
mov ecx, 0x80070032
mov edi, 2
mov r15, qword [rbp + 0x1c0]
mov rdx, qword [rsp + 0x40]
lea rsi, str.CheckCIEASupport
mov dword [rsp + 0x30], eax
xor r8d, r8d
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x20], ecx
mov ecx, edi
call fcn.14002aaa0
mov rdi, qword [rsp + 0x40]
xor r9d, r9d
mov rcx, rdi
xor r8d, r8d
mov edx, 0x949a
call fcn.1400286f0
cmp eax, 0xffffffff
je 0x140045c70
btr dword [r15], 0xc
lea r9, str.Continuing_to_apply_the_image_without_setting_CI_EA.
xor r8d, r8d
mov dword [rsp + 0x30], 0xbcd
mov qword [rsp + 0x28], rsi
mov rdx, rdi
mov dword [rsp + 0x20], ebx
lea ecx, [r8 + 3]
call fcn.14002aaa0
jmp 0x140045c76
mov r12d, 0x4c7
mov rsi, qword [rsp + 0x50]
test rsi, rsi
je 0x140045ca0
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 r14, r14
je 0x140045cc1
mov rcx, r14
call fcn.14000c064
test eax, eax
je 0x140045cc1
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, r14
call fcn.14000a9c4
test r13, r13
je 0x140045ce6
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, r13
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
test r14, r14
je 0x140045d0b
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, r14
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
mov rdi, qword [rsp + 0x70]
test rdi, rdi
je 0x140045d35
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 r12d, r12d
je 0x140045d4c
mov ecx, r12d
call qword [sym.imp.KERNEL32.dll_SetLastError]
nop dword [rax + rax]
test r12d, r12d
sete bl
mov eax, ebx
mov rcx, qword [rbp + 0x1c8]
xor rcx, rsp
call fcn.140096bd0
mov rbx, qword [rsp + 0x328]
add rsp, 0x2d0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret