Function at 0x140001000
Capabilities:
Get disk information
Read file on windows
Write file on windows

Disassembly:
push rdi
sub rsp, 0x80
mov rax, qword [0x14001b018]
xor rax, rsp
mov qword [rsp + 0x60], rax
mov rdi, rdx
cmp ecx, 3
jge 0x14000102a
mov eax, 0xa0
jmp 0x140001260
mov rcx, qword [rdi + 8]
lea rdx, section..data
mov qword [rsp + 0x90], rbx
call fcn.1400038d4
mov rbx, rax
test rax, rax
je 0x14000134b
mov rdx, rax
mov ecx, 6
call fcn.1400038e0
cmp eax, 0xffffffff
je 0x140001341
mov rcx, rbx
call fcn.140003664
mov rcx, qword [rdi + 0x10]
lea rdx, [0x14001b004]
call fcn.1400038d4
mov rdi, rax
test rax, rax
je 0x14000134b
mov rcx, rax
call fcn.140003710
cmp eax, 6
jne 0x140001341
mov r9, rdi
mov qword [rsp + 0x78], rsi
lea edx, [rax - 4]
lea r8d, [rax - 5]
lea rcx, [rsp + 0x30]
call fcn.140003c64
cmp rax, 1
jne 0x140001327
movzx eax, word [rsp + 0x30]
ror ax, 8
movzx ecx, ax
mov word [rsp + 0x30], cx
lea rcx, [rcx*2 + 2]
call fcn.140003288
movzx edx, word [rsp + 0x30]
mov r9, rdi
add rdx, rdx
mov r8d, 1
mov rcx, rax
mov rsi, rax
call fcn.140003c64
cmp rax, 1
jne 0x140001327
movzx ecx, word [rsp + 0x30]
lea rax, [rsp + 0x40]
xorps xmm0, xmm0
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x70], r14
xor r9d, r9d
xor r14d, r14d
mov r8d, 0x60000
mov word [rsi + rcx*2], r14w
mov rdx, rsi
lea rcx, [rsp + 0x48]
mov dword [rsp + 0x48], 2
movups xmmword [rsp + 0x4c], xmm0
mov qword [rsp + 0x20], r14
call sub.VirtDisk.dll_OpenVirtualDisk
mov esi, eax
test eax, eax
je 0x140001195
mov rdx, rbx
lea ecx, [r14 + 1]
call fcn.1400038e0
mov ecx, esi
lea edx, [r14 + 4]
bswap ecx
mov dword [rsp + 0x38], ecx
lea r8d, [r14 + 1]
lea rcx, [rsp + 0x38]
mov r9, rbx
call fcn.140003f7c
mov rcx, rbx
call fcn.140003664
mov rcx, rdi
call fcn.140003314
mov rcx, rbx
call fcn.140003314
mov eax, esi
jmp 0x14000124e
mov qword [rsp + 0xa0], rbp
call qword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov rcx, qword [rsp + 0x40]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x28], r14
xor edx, edx
mov qword [rsp + 0x20], r14
mov esi, eax
call sub.VirtDisk.dll_AttachVirtualDisk
mov ebp, eax
test eax, eax
je 0x140001202
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rdx, rbx
mov ecx, 2
call fcn.1400038e0
mov ecx, ebp
mov edx, 4
bswap ecx
mov dword [rsp + 0x38], ecx
mov r9, rbx
lea rcx, [rsp + 0x38]
lea r8d, [rdx - 3]
call fcn.140003f7c
jmp 0x140001308
call qword [sym.imp.KERNEL32.dll_GetLogicalDrives]
not esi
and eax, esi
bsr esi, eax
jne 0x140001276
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rdx, rbx
mov ecx, 3
call fcn.1400038e0
mov rcx, rbx
call fcn.140003664
mov rcx, rdi
call fcn.140003314
mov rcx, rbx
call fcn.140003314
mov eax, 0xf
mov rbp, qword [rsp + 0xa0]
mov r14, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.140001400
add rsp, 0x80
pop rdi
ret
mov rdx, rbx
xor ecx, ecx
call fcn.1400038e0
movsx ecx, sil
mov rdx, rbx
add ecx, 0x41
call fcn.1400038e0
mov rcx, rbx
call fcn.140003664
mov rcx, rdi
call fcn.140003710
mov rcx, qword [rsp + 0x40]
xor r8d, r8d
xor edx, edx
mov esi, eax
call sub.VirtDisk.dll_DetachVirtualDisk
mov ebp, eax
test eax, eax
je 0x1400012ec
test esi, esi
jne 0x1400012ec
mov rdx, rbx
lea ecx, [rsi + 1]
call fcn.1400038e0
mov rcx, rbx
call fcn.140003664
mov rcx, rdi
call fcn.140003710
mov rcx, qword [rsp + 0x40]
xor r8d, r8d
xor edx, edx
mov esi, eax
call sub.VirtDisk.dll_DetachVirtualDisk
mov ebp, eax
test eax, eax
jne 0x1400012b6
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test ebp, ebp
mov rdx, rbx
setne r14b
mov ecx, r14d
call fcn.1400038e0
mov rcx, rbx
call fcn.140003664
mov rcx, rdi
call fcn.140003314
mov rcx, rbx
call fcn.140003314
mov eax, ebp
jmp 0x140001246
mov rcx, rdi
call fcn.140003314
mov rcx, rbx
call fcn.140003314
mov eax, 0x6d
jmp 0x140001253
mov eax, 0x6d
jmp 0x140001258
mov eax, 2
jmp 0x140001258