Function at 0x100184f0
Capabilities:
Create directory

Disassembly:
sub esp, 0x484
mov eax, dword [0x10063790]
xor eax, esp
mov dword [esp + 0x47c], eax
mov eax, dword [esp + 0x48c]
push ebx
push ebp
push esi
push edi
xor ebp, ebp
push 0x206
mov ebx, edx
lea edx, [esp + 0x286]
push ebp
push edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], ecx
mov word [esp + 0x28c], bp
call fcn.1003d360
mov esi, dword [esp + 0x4a4]
lea eax, [esp + 0x28c]
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x1c], ebp
mov edx, 0x104
sub esi, ecx
lea ecx, [edx + 0x7ffffefa]
test ecx, ecx
je 0x10018584
movzx ecx, word [eax + esi]
cmp cx, bp
je 0x10018584
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x10018564
jmp 0x10018588
cmp edx, ebp
jne 0x1001858b
sub eax, 2
mov edi, dword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
lea edx, [esp + 0x280]
push edx
mov word [eax], bp
call edi
mov ecx, 0x104
lea eax, [esp + 0x280]
lea ebx, [ebx]
cmp word [eax], bp
je 0x100185bf
add eax, 2
sub ecx, 1
jne 0x100185b0
jmp 0x100185e2
cmp ecx, ebp
je 0x100185e2
mov eax, 0x104
sub eax, ecx
mov edx, 0x104
sub edx, eax
lea ecx, [esp + eax*2 + 0x280]
mov eax, str.bootmgr
call fcn.100067e0
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x284]
push ecx
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, 0xffffffff
je 0x10018603
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
jmp 0x1001861c
lea edx, [esp + 0x280]
mov ecx, str.BOOTMGR
call fcn.10018ef0
cmp eax, ebp
jne 0x10018cf5
mov edx, 0x104
lea eax, [esp + 0x280]
jmp 0x10018630
lea ecx, [edx + 0x7ffffefa]
test ecx, ecx
je 0x10018650
movzx ecx, word [eax + esi]
cmp cx, bp
je 0x10018650
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x10018630
jmp 0x10018654
cmp edx, ebp
jne 0x10018657
sub eax, 2
lea edx, [esp + 0x280]
push edx
mov word [eax], bp
call edi
mov ecx, 0x104
lea eax, [esp + 0x280]
cmp word [eax], bp
je 0x1001867f
add eax, 2
sub ecx, 1
jne 0x10018670
jmp 0x100186a2
cmp ecx, ebp
je 0x100186a2
mov eax, 0x104
sub eax, ecx
mov edx, 0x104
sub edx, eax
lea ecx, [esp + eax*2 + 0x280]
mov eax, str.Boot
call fcn.100067e0
push ebp
lea eax, [esp + 0x284]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov edx, 0x104
lea eax, [esp + 0x280]
lea ecx, [ecx]
lea ecx, [edx + 0x7ffffefa]
test ecx, ecx
je 0x100186e0
movzx ecx, word [eax + esi]
cmp cx, bp
je 0x100186e0
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x100186c0
jmp 0x100186e4
cmp edx, ebp
jne 0x100186e7
sub eax, 2
lea edx, [esp + 0x280]
push edx
mov word [eax], bp
call edi
mov ecx, 0x104
lea eax, [esp + 0x280]
cmp word [eax], bp
je 0x1001870f
add eax, 2
sub ecx, 1
jne 0x10018700
jmp 0x10018732
cmp ecx, ebp
je 0x10018732
mov eax, 0x104
sub eax, ecx
mov edx, 0x104
sub edx, eax
lea ecx, [esp + eax*2 + 0x280]
mov eax, str.BootBCD
call fcn.100067e0
lea eax, [esp + 0x280]
push eax
call fcn.1000b750
add esp, 4
test eax, eax
jne 0x1001875f
lea edx, [esp + 0x280]
mov ecx, 0x1005ad18
call fcn.10018ef0
cmp eax, ebp
jne 0x10018cf5
lea edi, [esp + 0x280]
call fcn.100191d0
test eax, eax
jne 0x10018783
mov edx, edi
mov ecx, 0x1005ad18
call fcn.10018ef0
cmp eax, ebp
jne 0x10018cf5
call fcn.10033080
mov edi, eax
cmp edi, ebp
jne 0x100187cc
test byte [0x10065ac4], 1
jne 0x100187b0
or dword [0x10065ac4], 1
call fcn.1001db00
push 0x10051230
call fcn.1003c413
add esp, 4
push str.Cannot_retrieve_ISTBcdStore_interface.
mov eax, 0x10065ac8
call fcn.1001e660
add esp, 4
mov eax, 8
jmp 0x10018cf5
mov edx, dword [edi]
mov edx, dword [edx + 4]
lea eax, [esp + 0x280]
push eax
mov ecx, edi
call edx
cmp eax, 0x800401f0
jne 0x100187fc
push ebp
call dword [sym.imp.ole32.dll_CoInitialize]
mov eax, dword [edi]
mov edx, dword [eax + 4]
lea ecx, [esp + 0x280]
push ecx
mov ecx, edi
call edx
cmp eax, ebp
je 0x10018836
push eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
lea eax, [esp + 0x280]
push eax
push str.ISTBcdStore::OpenStore__s_.
call fcn.100020c0
mov ebx, eax
call fcn.1001e430
mov edx, dword [edi]
mov eax, dword [edx + 0x30]
add esp, 8
mov ecx, edi
call eax
mov eax, 0x801e000e
jmp 0x10018cf5
mov edx, dword [edi]
mov eax, dword [edx + 0x14]
mov ecx, edi
call eax
cmp eax, ebp
je 0x10018875
push eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
push str.Cannot_enumerate_BCD.
push ecx
call fcn.100020c0
add esp, 4
mov ebx, eax
call fcn.1001e430
mov edx, dword [edi]
mov eax, dword [edx + 0x30]
add esp, 4
mov ecx, edi
call eax
mov eax, 0x801e000e
jmp 0x10018cf5
push str.Get_bootmgr_BCD_object.
push ecx
call fcn.100020c0
add esp, 4
call fcn.1001e660
mov edx, dword [edi]
mov edx, dword [edx + 0x18]
add esp, 4
lea eax, [esp + 0x18]
push eax
push 0x10100002
mov ecx, edi
call edx
mov esi, eax
mov eax, dword [edi]
mov edx, dword [eax + 0x20]
mov ecx, edi
call edx
cmp esi, ebp
je 0x100188da
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
push str.Get_bootmgr_BCD_object.
push ecx
call fcn.100020c0
add esp, 4
mov ebx, eax
call fcn.1001e430
mov eax, dword [edi]
mov edx, dword [eax + 0x30]
add esp, 4
mov ecx, edi
call edx
jmp 0x10018cf3
lea esi, [ebx + 4]
push esi
push str.Set_Application_OS_Device_of_bootmgr_to_the_active_partition___s_.
call fcn.100020c0
call fcn.1001e660
mov edx, dword [esp + 0x20]
push esi
mov ecx, edi
call fcn.1000f0c0
mov ebx, eax
add esp, 0xc
cmp ebx, ebp
je 0x10018924
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx]
mov edx, dword [eax + 0x3c]
call edx
mov eax, dword [edi]
mov edx, dword [eax + 0x30]
mov ecx, edi
call edx
mov eax, ebx
jmp 0x10018cf5
cmp dword [esp + 0x4a0], ebp
je 0x100189e4
push str.Get_memdiag_BCD_object.
push ecx
call fcn.100020c0
add esp, 4
call fcn.1001e660
mov ecx, dword [esp + 0x1c]
add esp, 4
lea eax, [esp + 0x2c]
push eax
push 0x24000010
mov ebx, edi
call fcn.1000bb70
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x1001899f
push ebp
call dword [sym.imp.KERNEL32.dll_SetLastError]
push str.Get_memdiag_BCD_object.
push ecx
call fcn.100020c0
add esp, 4
mov ebx, eax
call fcn.1001e430
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x3c]
add esp, 4
call eax
mov edx, dword [edi]
mov eax, dword [edx + 0x30]
mov ecx, edi
call eax
mov eax, ebp
jmp 0x10018cf5
push esi
push str.Set_Application_OS_Device_of_memdiag_to_the_active_partition___s_.
call fcn.100020c0
call fcn.1001e660
mov edx, dword [esp + 0x34]
push esi
mov ecx, edi
call fcn.1000f0c0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x100189e4
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
mov eax, dword [edx + 0x3c]
call eax
mov edx, dword [edi]
mov eax, dword [edx + 0x30]
mov ecx, edi
call eax
jmp 0x10018cf3
push str.Get_default_BCD_object.
push ecx
call fcn.100020c0
add esp, 4
call fcn.1001e660
mov ecx, dword [esp + 0x1c]
add esp, 4
lea ebx, [esp + 0x14]
call fcn.1000bd50
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
mov esi, eax
mov eax, dword [edx + 0x3c]
call eax
test esi, esi
je 0x10018a45
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
push str.Get_default_BCD_object.
push ecx
call fcn.100020c0
add esp, 4
mov ebx, eax
call fcn.1001e430
mov edx, dword [edi]
mov eax, dword [edx + 0x30]
add esp, 4
mov ecx, edi
call eax
jmp 0x10018cf3
mov ecx, dword [esp + 0x14]
call fcn.1000be10
test eax, eax
je 0x10018ac8
mov ebx, dword [esp + 0x24]
cmp dword [ebx + 0x20c], 0xffffffff
jne 0x10018a7c
push str.No_Recovery_Environment_found.
push ecx
call fcn.100020c0
add esp, 4
call fcn.1001e660
add esp, 4
mov esi, 0x801e0011
jmp 0x10018af4
add ebx, 4
push ebx
push str.Set_Application_OS_Device_of_default_to_the_Recovery_Environment_partition___s_.
call fcn.100020c0
call fcn.1001e660
mov ecx, dword [esp + 0x1c]
add esp, 8
call fcn.1001b9d0
mov esi, eax
test esi, esi
je 0x10018ab1
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov ecx, dword [esp + 0x14]
jmp 0x100189cf
mov ecx, dword [esp + 0x4a4]
mov edx, dword [esp + 0x14]
push ecx
push ebx
push edx
mov ecx, edi
call fcn.1000f490
jmp 0x10018aeb
mov esi, dword [esp + 0x28]
add esi, 4
push esi
push str.Set_Application_OS_Device_of_default_to_the_Windows_partition___s_.
call fcn.100020c0
call fcn.1001e660
mov edx, dword [esp + 0x1c]
push esi
mov ecx, edi
call fcn.1000f0c0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x10018b14
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov edx, dword [eax + 0x3c]
call edx
mov eax, dword [edi]
mov edx, dword [eax + 0x30]
mov ecx, edi
call edx
jmp 0x10018cf3
push str.Get_recovery_BCD_object.
push ecx
call fcn.100020c0
add esp, 4
call fcn.1001e660
mov ecx, dword [esp + 0x18]
add esp, 4
lea eax, [esp + 0x1c]
push eax
push 0x14000008
mov ebx, edi
call fcn.1000bb70
mov ebp, dword [sym.imp.KERNEL32.dll_SetLastError]
add esp, 8
test eax, eax
jne 0x10018c73
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 0x20c], 0xffffffff
mov ecx, dword [esp + 0x1c]
jne 0x10018bf1
mov edx, dword [ecx]
mov eax, dword [edx + 0x3c]
call eax
push str.Remove_Recovery_Sequence_Element_of_default_theres_no_recovery_environment.
push ecx
call fcn.100020c0
add esp, 4
call fcn.1001e660
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
mov eax, dword [edx + 0x38]
add esp, 4
push 0x14000008
call eax
test eax, eax
je 0x10018bb5
push eax
call ebp
push str.ISTBcdObject::DeleteElement_BcdLibraryObjectList_RecoverySequence__failed.
push ecx
call fcn.100020c0
add esp, 4
mov ebx, eax
call fcn.1001e430
add esp, 4
push 0
call ebp
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov eax, dword [edx + 0x38]
push 0x16000009
call eax
test eax, eax
je 0x10018c73
push eax
call ebp
push str.ISTBcdObject::DeleteElement_BcdLibraryBoolean_AutoRecoveryEnabled__failed.
push ecx
call fcn.100020c0
add esp, 4
mov ebx, eax
call fcn.1001e430
add esp, 4
push 0
call ebp
jmp 0x10018c73
call fcn.1001b9d0
mov esi, eax
test esi, esi
je 0x10018c2f
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
push str.AddElementsRecoveryObject_failed.
push ecx
call fcn.100020c0
add esp, 4
mov ebx, eax
call fcn.1001e430
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx]
mov eax, dword [edx + 0x3c]
add esp, 4
call eax
mov ecx, dword [esp + 0x14]
jmp 0x100189cf
mov esi, dword [esp + 0x24]
add esi, 4
push esi
push str.Set_Application_OS_Device_of_recovery_to_the_Recovery_Environment_partition___s_.
call fcn.100020c0
call fcn.1001e660
mov ecx, dword [esp + 0x4ac]
mov edx, dword [esp + 0x24]
push ecx
push esi
push edx
mov ecx, edi
call fcn.1000f490
mov ecx, dword [esp + 0x30]
mov esi, eax
mov eax, dword [ecx]
mov edx, dword [eax + 0x3c]
add esp, 0x14
call edx
test esi, esi
jne 0x10018af4
push str.Get_resume_BCD_object.
push ecx
call fcn.100020c0
add esp, 4
call fcn.1001e660
mov ecx, dword [esp + 0x18]
add esp, 4
lea ebx, [esp + 0x20]
call fcn.1000bd50
mov ecx, dword [esp + 0x14]
mov esi, eax
mov eax, dword [ecx]
mov edx, dword [eax + 0x3c]
call edx
test esi, esi
je 0x10018cb4
push esi
call ebp
push str.Get_resume_BCD_object.
jmp 0x100188b9
mov esi, dword [esp + 0x28]
add esi, 4
push esi
push str.Set_Application_OS_Device_of_resume_to_the_Windows_partition___s_.
call fcn.100020c0
call fcn.1001e660
mov edx, dword [esp + 0x28]
push esi
mov ecx, edi
call fcn.1000f0c0
mov ecx, dword [esp + 0x2c]
mov esi, eax
mov eax, dword [ecx]
mov edx, dword [eax + 0x3c]
add esp, 0xc
call edx
mov eax, dword [edi]
mov edx, dword [eax + 0x30]
mov ecx, edi
call edx
push esi
call ebp
mov eax, esi
mov ecx, dword [esp + 0x48c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1003c13d
add esp, 0x484
ret