Function at 0x140025120
Capabilities:
Unmount volume via ioctl

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x60
mov esi, dword [rsp + 0xb8]
mov rbx, rdx
lea rdx, [0x140000000]
mov eax, dword [rdx + 0xd9c88]
mov ebp, ecx
lea rcx, [rsp + 0x40]
mov dword [rcx], eax
movzx eax, word [rdx + 0xd9c8c]
xor r12d, r12d
and esi, 0x10
mov r13d, r8d
mov word [rcx + 4], ax
je 0x140025187
cmp rbx, r12
je 0x140025187
movzx eax, word [rbx]
cmp ax, 0x41
jb 0x140025187
cmp ax, 0x5a
ja 0x140025187
or ax, 0x20
mov word [rbx], ax
mov r14d, dword [rsp + 0xb0]
mov edi, 2
cmp r9d, r12d
je 0x1400251c9
mov edx, ebp
xor ecx, ecx
call qword [0x1400f1dd0]
cmp eax, r12d
jne 0x140025688
lea rax, str.Error
cmp rbx, r12
cmove rbx, rax
mov rcx, rbx
call fcn.1400167b0
mov eax, edi
jmp 0x1400257c5
lea rcx, [rsp + 0x48]
mov edx, 0x448
call fcn.14004bc80
mov r12, qword [rsp + 0x48]
test rbx, rbx
jne 0x140025228
mov edx, 0xc0000000
mov ecx, ebp
call qword [0x1400f1e00]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x140025440
mov edx, 0x80000000
mov ecx, ebp
call qword [0x1400f1e00]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x140025440
mov edx, 0x80
mov ecx, ebp
call qword [0x1400f1e00]
jmp 0x140025370
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
cmp eax, edi
jne 0x140025243
xor ecx, ecx
lea ebp, [rcx + 0x3a]
cmp word [rbx + 2], bp
sete cl
jmp 0x140025271
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
cmp eax, 3
jne 0x14002526a
lea rcx, [rbx + 2]
lea rdx, [0x1400d8a78]
call fcn.1400ba7bc
xor ecx, ecx
test eax, eax
sete cl
jmp 0x14002526c
xor ecx, ecx
mov ebp, 0x3a
test ecx, ecx
je 0x14002539b
lea rdx, [0x140000000]
lea rcx, [rsp + 0x50]
mov rax, qword [rdx + 0xd8a68]
mov qword [rcx], rax
mov eax, dword [rdx + 0xd8a70]
mov dword [rcx + 8], eax
movzx eax, word [rdx + 0xd8a74]
movzx edx, word [rbx]
mov word [rcx + 0xc], ax
mov word [rsp + 0x58], dx
test esi, esi
jne 0x1400252dc
xor ecx, ecx
cmp dx, 0x5a
setbe cl
xor eax, eax
cmp dx, 0x41
setae al
test eax, ecx
je 0x1400252dc
test byte [rsp + 0xb8], 0x11
jne 0x1400252dc
movzx ecx, dx
mov r8d, r14d
xor edx, edx
call fcn.1400165fc
and qword [rsp + 0x30], 0
mov eax, 3
mov ebp, 0x20000000
lea rcx, [rsp + 0x50]
xor r9d, r9d
mov edx, 0xc0000000
mov r8d, eax
mov dword [rsp + 0x28], ebp
mov dword [rsp + 0x20], eax
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x140025440
and qword [rsp + 0x30], 0
lea eax, [rsi + 4]
lea rcx, [rsp + 0x50]
mov r8d, eax
xor r9d, r9d
mov edx, 0x80000000
mov dword [rsp + 0x28], ebp
mov dword [rsp + 0x20], eax
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x140025440
and qword [rsp + 0x30], 0
lea eax, [rsi + 4]
lea rcx, [rsp + 0x50]
lea edx, [rax + 0x7d]
xor r9d, r9d
mov r8d, eax
mov dword [rsp + 0x28], ebp
mov dword [rsp + 0x20], eax
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x140025440
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, edi
jne 0x14002538f
lea edi, [rsi + 2]
jmp 0x140025636
lea rcx, str.Error_opening_device:
jmp 0x140025631
mov edx, 0xc0000000
mov rcx, rbx
call qword [0x1400f1e08]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x140025440
mov edx, 0x80000000
mov rcx, rbx
call qword [0x1400f1e08]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x140025440
mov edx, 0x80
mov rcx, rbx
call qword [0x1400f1e08]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x140025440
call qword [sym.imp.KERNEL32.dll_GetLastError]
sub eax, 1
je 0x14002542c
sub eax, 0x56
je 0x14002542c
sub eax, ebp
je 0x140025414
sub eax, 0x7a
je 0x140025414
cmp eax, 0x101b
je 0x140025414
mov rcx, rbx
call fcn.1400167b0
lea edi, [rsi + 0xa]
jmp 0x140025636
call fcn.1400ba598
lea rdx, str.Not_a_mount_point:__1_ws__n
mov r8, rbx
lea rcx, [rax + 0x60]
call fcn.140016728
lea rcx, [rsp + 0x48]
call fcn.140044f24
mov eax, 9
jmp 0x1400257c5
mov rcx, rsi
call fcn.14001682c
mov rcx, rsi
test eax, eax
jne 0x14002545f
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov edi, 5
jmp 0x140025636
and qword [rsp + 0x38], 0
lea rax, [rsp + 0xa8]
xor r9d, r9d
mov qword [rsp + 0x30], rax
xor r8d, r8d
mov edx, 0x83722008
mov dword [rsp + 0x28], 0x448
mov qword [rsp + 0x20], r12
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x1400254b9
mov rcx, rbx
call fcn.1400167b0
call fcn.1400ba598
lea rdx, str._1_ws_:_Is_that_drive_really_an_ImDisk_drive_
mov r8, rbx
lea rcx, [rax + 0x60]
call fcn.140016728
jmp 0x140025636
cmp dword [rsp + 0xa8], 0x36
jb 0x14002549c
movzx edx, word [r12 + 0x2c]
xor r12d, r12d
cmp dx, r12w
mov ecx, r12d
mov eax, r12d
setne cl
cmp rbx, r12
sete al
test eax, ecx
je 0x1400254ed
mov word [rsp + 0x40], dx
lea rbx, [rsp + 0x40]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FlushFileBuffers]
mov qword [rsp + 0x38], r12
lea rax, [rsp + 0xa8]
mov qword [rsp + 0x30], rax
mov ebp, 0x90018
xor r9d, r9d
xor r8d, r8d
mov rcx, rsi
mov edx, ebp
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], r12
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
cmp eax, r12d
jne 0x140025593
cmp r13d, r12d
je 0x140025620
mov qword [rsp + 0x38], r12
lea rax, [rsp + 0xa8]
lea edx, [rbp + 8]
mov qword [rsp + 0x30], rax
xor r9d, r9d
xor r8d, r8d
mov rcx, rsi
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], r12
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov qword [rsp + 0x38], r12
lea rax, [rsp + 0xa8]
mov qword [rsp + 0x30], rax
xor r9d, r9d
xor r8d, r8d
mov edx, ebp
mov rcx, rsi
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], r12
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
jmp 0x1400255c8
mov qword [rsp + 0x38], r12
lea rax, [rsp + 0xa8]
xor r9d, r9d
mov qword [rsp + 0x30], rax
xor r8d, r8d
mov edx, 0x90020
mov rcx, rsi
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], r12
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
cmp eax, r12d
je 0x140025620
mov qword [rsp + 0x38], r12
lea rax, [rsp + 0xa8]
xor r9d, r9d
mov qword [rsp + 0x30], rax
xor r8d, r8d
mov edx, 0x2d4808
mov rcx, rsi
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], r12
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
cmp eax, r12d
jne 0x140025645
cmp r13d, r12d
je 0x140025618
xor edx, edx
mov rcx, rsi
call qword [0x1400f1dd0]
mov ecx, r12d
cmp eax, r12d
sete cl
jmp 0x14002561b
mov ecx, r12d
cmp ecx, r12d
je 0x140025645
lea rax, str.Error
cmp rbx, r12
cmove rbx, rax
mov rcx, rbx
call fcn.1400167b0
lea rcx, [rsp + 0x48]
call fcn.140044f24
jmp 0x1400251c2
mov qword [rsp + 0x38], r12
lea rax, [rsp + 0xa8]
xor r9d, r9d
mov qword [rsp + 0x30], rax
xor r8d, r8d
mov edx, 0x9001c
mov rcx, rsi
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], r12
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rcx, [rsp + 0x48]
call fcn.140044f24
cmp rbx, r12
je 0x1400257c3
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
cmp eax, edi
jne 0x1400256af
mov esi, 0x3a
mov ecx, r12d
cmp word [rbx + 2], si
sete cl
jmp 0x1400256e0
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
cmp eax, 3
jne 0x1400256d8
lea rcx, [rbx + 2]
lea rdx, [0x1400d8a78]
call fcn.1400ba7bc
mov ecx, r12d
cmp eax, r12d
sete cl
jmp 0x1400256db
mov ecx, r12d
mov esi, 0x3a
cmp ecx, r12d
je 0x140025773
lea rcx, [rsp + 0x48]
lea rdx, [0x140000000]
xor r8d, r8d
mov eax, dword [rdx + 0xd9c88]
mov dword [rcx], eax
movzx eax, word [rdx + 0xd9c8c]
lea rdx, [rsp + 0x48]
mov word [rcx + 4], ax
movzx eax, word [rbx]
mov ecx, edi
mov word [rsp + 0x48], ax
call qword [sym.imp.KERNEL32.dll_DefineDosDeviceW]
cmp eax, r12d
jne 0x14002572d
mov rcx, rbx
call fcn.1400167b0
movzx ecx, word [rbx]
call fcn.140048bc8
test byte [rsp + 0xb8], 0x11
jne 0x1400257c3
xor r9d, r9d
lea rax, [rsp + 0x50]
mov edx, 0x219
mov qword [rsp + 0x30], rax
lea r8d, [r9 + 7]
mov ecx, 0xffff
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x20], 3
call qword [sym.imp.USER32.dll_SendMessageTimeoutW]
jmp 0x1400257c3
mov rcx, rbx
call qword [0x1400f1e10]
cmp eax, r12d
jne 0x1400257c3
call qword [sym.imp.KERNEL32.dll_GetLastError]
sub eax, 1
je 0x1400257c3
sub eax, 0x56
je 0x1400257c3
sub eax, esi
je 0x1400257ab
sub eax, 0x7a
je 0x1400257ab
cmp eax, 0x101b
je 0x1400257ab
mov rcx, rbx
call fcn.1400167b0
jmp 0x1400257c3
call fcn.1400ba598
lea rdx, str.Not_a_mount_point:__1_ws__n
mov r8, rbx
lea rcx, [rax + 0x60]
call fcn.140016728
xor eax, eax
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret