Function at 0x10018260
Capabilities:
Unmount volume via ioctl

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x160
mov eax, dword [0x10021b00]
mov dword [ebp - 0x134], eax
mov ecx, dword [0x10021b04]
mov dword [ebp - 0x130], ecx
mov edx, dword [0x10021b08]
mov dword [ebp - 0x12c], edx
mov ax, word [0x10021b0c]
mov word [ebp - 0x128], ax
mov byte [ebp - 0x122], 1
mov byte [ebp - 0x13d], 0
mov byte [ebp - 0x121], 0
lea ecx, [ebp - 0x120]
push ecx
movzx edx, word [ebp + 8]
push edx
call fcn.1001a010
test eax, eax
jne 0x100182de
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x10021b10
call fcn.1001c330
add esp, 8
xor eax, eax
jmp 0x10018969
cmp dword [ebp - 0x11c], 1
je 0x100182fb
push 0x10021b54
call fcn.1001c330
add esp, 4
xor eax, eax
jmp 0x10018969
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 0x1001834f
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x10021b84
call fcn.1001c330
add esp, 8
xor eax, eax
jmp 0x10018969
push 0x10021bb0
push 0x10021bc0
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 0x1001849a
cmp dword [ebp + 0x10], 0
je 0x10018435
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 0x10018409
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x148]
push eax
push 0x10021bdc
call fcn.1001c330
add esp, 8
mov ecx, dword [ebp - 0x84]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp - 0x148]
push edx
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
jmp 0x10018969
mov byte [ebp - 0x13d], 1
push 0
lea eax, [ebp - 0x13c]
push eax
push 0
push 0
push 0
push 0
push 0x90018
mov ecx, dword [ebp - 0x84]
push ecx
call dword [ebp - 0x138]
jmp 0x1001849a
movzx edx, byte [ebp - 0x122]
test edx, edx
je 0x10018459
mov byte [ebp - 0x122], 0
mov eax, dword [ebp - 0x84]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x100182fb
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x14c], eax
mov ecx, dword [ebp - 0x14c]
push ecx
push 0x10021c14
call fcn.1001c330
add esp, 8
mov edx, dword [ebp - 0x84]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x14c]
push eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
jmp 0x10018969
mov ecx, dword [ebp - 0x120]
push ecx
push str.DpShadow
push 0x10021c44
push 0x40
lea edx, [ebp - 0x80]
push edx
call fcn.1000ba18
add esp, 0x14
push 0
push 0x80
push 3
push 0
push 3
push 0xc0000000
lea eax, [ebp - 0x80]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x144], eax
cmp dword [ebp - 0x144], 0xffffffff
jne 0x1001854c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x150], eax
mov ecx, dword [ebp - 0x150]
push ecx
lea edx, [ebp - 0x80]
push edx
push 0x10021c58
call fcn.1001c330
add esp, 0xc
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 - 0x150]
push eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
jmp 0x10018969
push 0
lea ecx, [ebp - 0x13c]
push ecx
push 0
push 0
push 0
push 0
push 0x90018
mov edx, dword [ebp - 0x144]
push edx
call dword [ebp - 0x138]
test eax, eax
jne 0x10018639
push 0
lea eax, [ebp - 0x13c]
push eax
push 0
push 0
push 0
push 0
push 0x90020
mov ecx, dword [ebp - 0x144]
push ecx
call dword [ebp - 0x138]
test eax, eax
jne 0x1001860f
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x154], eax
mov edx, dword [ebp - 0x154]
push edx
push 0x10021c90
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 - 0x144]
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 - 0x154]
push ecx
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
jmp 0x10018969
mov byte [ebp - 0x121], 1
push 0
lea edx, [ebp - 0x13c]
push edx
push 0
push 0
push 0
push 0
push 0x90018
mov eax, dword [ebp - 0x144]
push eax
call dword [ebp - 0x138]
push 0
lea ecx, [ebp - 0x13c]
push ecx
push 0
push 0
push 0
push 0
push 0x90020
mov edx, dword [ebp - 0x144]
push edx
call dword [ebp - 0x138]
test eax, eax
jne 0x10018707
movzx eax, byte [ebp - 0x121]
test eax, eax
jne 0x10018707
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x158], eax
mov ecx, dword [ebp - 0x158]
push ecx
push str.Dismount_Volume3_failed__d
call fcn.1001c330
add esp, 8
push 0
lea edx, [ebp - 0x13c]
push edx
push 0
push 0
push 0
push 0
push 0x9001c
mov eax, dword [ebp - 0x144]
push eax
call dword [ebp - 0x138]
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 - 0x144]
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 0x10018969
push 0
lea eax, [ebp - 0x13c]
push eax
push 0
push 0
push 0
push 0
push 0x90020
mov ecx, dword [ebp - 0x84]
push ecx
call dword [ebp - 0x138]
test eax, eax
jne 0x100187d5
movzx edx, byte [ebp - 0x13d]
test edx, edx
jne 0x100187d5
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x15c], eax
mov eax, dword [ebp - 0x15c]
push eax
push str.Dismount_Volume4_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 - 0x144]
push edx
call dword [ebp - 0x138]
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 - 0x144]
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 - 0x15c]
push ecx
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
jmp 0x10018969
jmp 0x10054652
mov esp, ebp
pop ebp
ret 0x10