Function at 0x10018970
Capabilities:
Unmount volume via ioctl

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x164
mov eax, dword [str..C:]
mov dword [ebp - 0x134], eax
mov ecx, dword [0x10021d74]
mov dword [ebp - 0x130], ecx
mov edx, dword [0x10021d78]
mov dword [ebp - 0x12c], edx
mov ax, word [0x10021d7c]
mov word [ebp - 0x128], ax
mov byte [ebp - 0x121], 1
lea ecx, [ebp - 0x120]
push ecx
movzx edx, word [ebp + 8]
push edx
call fcn.1001a010
test eax, eax
jne 0x100189e0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Get_Volume_Information_failed__d
call fcn.1001c330
add esp, 8
xor eax, eax
jmp 0x100190d1
cmp dword [ebp - 0x11c], 1
je 0x100189fd
push str.Volume_is_not_protected
call fcn.1001c330
add esp, 4
xor eax, eax
jmp 0x100190d1
mov ax, word [ebp + 8]
mov word [ebp - 0x12c], ax
push 0
push 0x80
push 3
push 0
push 3
push 0xc0000000
lea ecx, [ebp - 0x134]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x84], eax
cmp dword [ebp - 0x84], 0xffffffff
jne 0x10018a51
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Open_Volume_failed__d
call fcn.1001c330
add esp, 8
xor eax, eax
jmp 0x100190d1
push 0x10021e20
push 0x10021e30
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x138], eax
push 0
lea edx, [ebp - 0x13c]
push edx
push 0
push 0
push 0
push 0
push 0x90018
mov eax, dword [ebp - 0x84]
push eax
call dword [ebp - 0x138]
test eax, eax
jne 0x10018c49
cmp dword [ebp + 0x10], 0
je 0x10018be4
push 0
lea ecx, [ebp - 0x13c]
push ecx
push 0
push 0
push 0
push 0
push 0x90020
mov edx, dword [ebp - 0x84]
push edx
call dword [ebp - 0x138]
test eax, eax
jne 0x10018b0b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x144], eax
mov eax, dword [ebp - 0x144]
push eax
push str.Dismount_Volume1_failed__d
call fcn.1001c330
add esp, 8
mov ecx, dword [ebp - 0x84]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp - 0x144]
push edx
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
jmp 0x100190d1
mov eax, dword [ebp - 0x84]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0
push 0x80
push 3
push 0
push 3
push 0xc0000000
lea ecx, [ebp - 0x134]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x84], eax
cmp dword [ebp - 0x84], 0xffffffff
jne 0x10018b7a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x148], eax
mov edx, dword [ebp - 0x148]
push edx
push str.Open_Volume1_failed__d
call fcn.1001c330
add esp, 8
mov eax, dword [ebp - 0x148]
push eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
jmp 0x100190d1
push 0
lea ecx, [ebp - 0x13c]
push ecx
push 0
push 0
push 0
push 0
push 0x90018
mov edx, dword [ebp - 0x84]
push edx
call dword [ebp - 0x138]
test eax, eax
jne 0x10018be2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x14c], eax
mov eax, dword [ebp - 0x84]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x14c]
push ecx
push 0x10021eb4
call fcn.1001c330
add esp, 8
mov edx, dword [ebp - 0x14c]
push edx
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
jmp 0x100190d1
jmp 0x10018c49
movzx eax, byte [ebp - 0x121]
test eax, eax
je 0x10018c08
mov byte [ebp - 0x121], 0
mov ecx, dword [ebp - 0x84]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x100189fd
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x150]
push edx
push str.Lock_Volume11_failed__d
call fcn.1001c330
add esp, 8
mov eax, dword [ebp - 0x84]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x150]
push ecx
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
jmp 0x100190d1
mov edx, dword [ebp - 0x120]
push edx
push str.DpShadow
push 0x10021f14
push 0x40
lea eax, [ebp - 0x80]
push eax
call fcn.1000ba18
add esp, 0x14
push 0
push 0x80
push 3
push 0
push 3
push 0xc0000000
lea ecx, [ebp - 0x80]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x140], eax
cmp dword [ebp - 0x140], 0xffffffff
jne 0x10018cfb
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x154], eax
mov edx, dword [ebp - 0x154]
push edx
lea eax, [ebp - 0x80]
push eax
push str.Open_Volume2__s__failed__d
call fcn.1001c330
add esp, 0xc
push 0
lea ecx, [ebp - 0x13c]
push ecx
push 0
push 0
push 0
push 0
push 0x9001c
mov edx, dword [ebp - 0x84]
push edx
call dword [ebp - 0x138]
mov eax, dword [ebp - 0x84]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x154]
push ecx
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
jmp 0x100190d1
push 0
lea edx, [ebp - 0x13c]
push edx
push 0
push 0
push 0
push 0
push 0x90018
mov eax, dword [ebp - 0x140]
push eax
call dword [ebp - 0x138]
test eax, eax
jne 0x10018ef2
push 0
lea ecx, [ebp - 0x13c]
push ecx
push 0
push 0
push 0
push 0
push 0x90020
mov edx, dword [ebp - 0x140]
push edx
call dword [ebp - 0x138]
test eax, eax
jne 0x10018dbe
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x158], eax
mov eax, dword [ebp - 0x158]
push eax
push str.Dismount_Volume2_failed__d
call fcn.1001c330
add esp, 8
push 0
lea ecx, [ebp - 0x13c]
push ecx
push 0
push 0
push 0
push 0
push 0x9001c
mov edx, dword [ebp - 0x84]
push edx
call dword [ebp - 0x138]
mov eax, dword [ebp - 0x140]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x84]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp - 0x158]
push edx
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
jmp 0x100190d1
mov eax, dword [ebp - 0x140]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0
push 0x80
push 3
push 0
push 3
push 0xc0000000
lea ecx, [ebp - 0x80]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x140], eax
cmp dword [ebp - 0x140], 0xffffffff
jne 0x10018e5a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x15c], eax
mov edx, dword [ebp - 0x15c]
push edx
push str.Open_Volume3_failed__d
call fcn.1001c330
add esp, 8
push 0
lea eax, [ebp - 0x13c]
push eax
push 0
push 0
push 0
push 0
push 0x9001c
mov ecx, dword [ebp - 0x84]
push ecx
call dword [ebp - 0x138]
mov edx, dword [ebp - 0x84]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x15c]
push eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
jmp 0x100190d1
push 0
lea ecx, [ebp - 0x13c]
push ecx
push 0
push 0
push 0
push 0
push 0x90018
mov edx, dword [ebp - 0x140]
push edx
call dword [ebp - 0x138]
test eax, eax
jne 0x10018ef2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x160], eax
push 0
lea eax, [ebp - 0x13c]
push eax
push 0
push 0
push 0
push 0
push 0x9001c
mov ecx, dword [ebp - 0x84]
push ecx
call dword [ebp - 0x138]
mov edx, dword [ebp - 0x140]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x84]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x160]
push ecx
push str.Lock_Volume12_failed__d
call fcn.1001c330
add esp, 8
mov edx, dword [ebp - 0x160]
push edx
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
jmp 0x100190d1
jmp 0x10054890
mov esp, ebp
pop ebp
ret 0x10