Function at 0x140004490
Capabilities:
Get disk size

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1d30]
mov eax, 0x1e30
call fcn.140092330
sub rsp, rax
mov qword [rbp + 0x60], 0xfffffffffffffffe
mov qword [rsp + 0x1e70], rbx
mov rax, qword [0x1400f58f0]
xor rax, rsp
mov qword [rbp + 0x1d20], rax
mov rsi, r9
mov qword [rsp + 0x68], r9
mov rbx, r8
mov qword [rsp + 0x70], rbx
mov r15, rdx
mov r14d, ecx
mov qword [rbp + 0x58], rbx
mov qword [rbp + 0x50], r9
xor r12d, r12d
mov dword [rsp + 0x64], r12d
mov qword [rbp - 0x30], r12
mov qword [rbp - 0x28], r12
mov qword [rbp - 0x20], r12
lea rax, vtable.com::Utf8Str.0
mov qword [rbp - 0x38], rax
mov qword [rbp - 0x50], r12
mov qword [rbp - 0x78], r12
mov qword [rbp - 0x70], r12
mov qword [rbp - 0x68], r12
mov qword [rbp - 0x80], rax
mov edx, r12d
mov qword [rbp - 0x58], rdx
mov byte [rsp + 0x60], dl
mov qword [rsp + 0x78], r12
mov qword [rbp - 0x10], r12
mov qword [rbp - 8], r12
mov r13d, r12d
test ecx, ecx
jle 0x14000544f
lea r12d, [rdx + 1]
mov rbx, r15
nop dword [rax]
mov r8, qword [rbx]
lea rdi, str._filename
mov rsi, r8
mov ecx, 0xa
repe cmpsb byte [rsi], byte [rdi]
jne 0x140004594
cmp r14d, r12d
jle 0x140004678
inc r13d
inc r12d
add rbx, 8
mov rdx, qword [rbx]
lea rcx, [rbp - 0x38]
call qword [sym.imp.BstkRT.dll_public:_class_RTCString____ptr64___cdecl_RTCString::operator_char_const____ptr64____ptr64]
movzx esi, byte [rsp + 0x60]
mov rdx, qword [rbp - 0x58]
jmp 0x14000465c
lea rdi, str._mbr
mov rsi, r8
mov ecx, 5
repe cmpsb byte [rsi], byte [rdi]
jne 0x1400045cb
cmp r14d, r12d
jle 0x1400046e0
inc r13d
inc r12d
add rbx, 8
mov rax, qword [rbx]
mov qword [rbp - 0x50], rax
movzx esi, byte [rsp + 0x60]
jmp 0x140004660
lea rdi, str._rawdisk
mov rsi, r8
mov ecx, 9
repe cmpsb byte [rsi], byte [rdi]
jne 0x140004609
cmp r14d, r12d
jle 0x140004727
inc r13d
inc r12d
add rbx, 8
mov rdx, qword [rbx]
lea rcx, [rbp - 0x80]
call qword [sym.imp.BstkRT.dll_public:_class_RTCString____ptr64___cdecl_RTCString::operator_char_const____ptr64____ptr64]
movzx esi, byte [rsp + 0x60]
mov rdx, qword [rbp - 0x58]
jmp 0x14000465c
lea rdi, str._partitions
mov rsi, r8
mov ecx, SafeArrayGetDim
repe cmpsb byte [rsi], byte [rdi]
jne 0x14000463d
cmp r14d, r12d
jle 0x140004771
inc r13d
inc r12d
add rbx, 8
mov rdx, qword [rbx]
mov qword [rbp - 0x58], rdx
movzx esi, byte [rsp + 0x60]
jmp 0x14000465c
lea rdi, str._relative
mov rsi, r8
mov ecx, 0xa
repe cmpsb byte [rsi], byte [rdi]
jne 0x1400053f5
mov sil, 1
mov byte [rsp + 0x60], sil
mov rax, qword [rbp - 0x50]
inc r13d
inc r12d
add rbx, 8
cmp r13d, r14d
jge 0x1400047bb
jmp 0x140004550
movsxd rdx, r13d
mov rdx, qword [r15 + rdx*8]
lea rcx, str.Missing_argument_to__s
call fcn.14003c170
mov edi, eax
lea rcx, [rbp - 0x80]
call qword [sym.imp.BstkRT.dll_public_virtual:_void___cdecl_RTCString::destructor_void____ptr64]
nop
lea rcx, [rbp - 0x38]
call qword [sym.imp.BstkRT.dll_public_virtual:_void___cdecl_RTCString::destructor_void____ptr64]
nop
mov rbx, qword [rsp + 0x70]
mov rcx, qword [rbx]
test rcx, rcx
je 0x1400046bd
mov rdx, qword [rcx]
call qword [rdx + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov qword [rbx], 0
mov rbx, qword [rsp + 0x68]
mov rcx, qword [rbx]
test rcx, rcx
je 0x14000549f
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov qword [rbx], 0
jmp 0x14000549f
movsxd rdx, r13d
mov rdx, qword [r15 + rdx*8]
lea rcx, str.Missing_argument_to__s
call fcn.14003c170
mov edi, eax
lea rcx, [rbp - 0x80]
call qword [sym.imp.BstkRT.dll_public_virtual:_void___cdecl_RTCString::destructor_void____ptr64]
nop
lea rcx, [rbp - 0x38]
call qword [sym.imp.BstkRT.dll_public_virtual:_void___cdecl_RTCString::destructor_void____ptr64]
nop
mov rbx, qword [rsp + 0x70]
mov rcx, qword [rbx]
test rcx, rcx
je 0x140004725
mov rdx, qword [rcx]
call qword [rdx + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov qword [rbx], 0
jmp 0x1400046bd
movsxd rdx, r13d
mov rdx, qword [r15 + rdx*8]
lea rcx, str.Missing_argument_to__s
call fcn.14003c170
mov edi, eax
lea rcx, [rbp - 0x80]
call qword [sym.imp.BstkRT.dll_public_virtual:_void___cdecl_RTCString::destructor_void____ptr64]
nop
lea rcx, [rbp - 0x38]
call qword [sym.imp.BstkRT.dll_public_virtual:_void___cdecl_RTCString::destructor_void____ptr64]
nop
mov rbx, qword [rsp + 0x70]
mov rcx, qword [rbx]
test rcx, rcx
je 0x14000476c
mov rdx, qword [rcx]
call qword [rdx + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov qword [rbx], 0
jmp 0x1400046bd
movsxd rdx, r13d
mov rdx, qword [r15 + rdx*8]
lea rcx, str.Missing_argument_to__s
call fcn.14003c170
mov edi, eax
lea rcx, [rbp - 0x80]
call qword [sym.imp.BstkRT.dll_public_virtual:_void___cdecl_RTCString::destructor_void____ptr64]
nop
lea rcx, [rbp - 0x38]
call qword [sym.imp.BstkRT.dll_public_virtual:_void___cdecl_RTCString::destructor_void____ptr64]
nop
mov rbx, qword [rsp + 0x70]
mov rcx, qword [rbx]
test rcx, rcx
je 0x1400047b6
mov rdx, qword [rcx]
call qword [rdx + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov qword [rbx], 0
jmp 0x1400046bd
cmp qword [rbp - 0x28], 0
je 0x140005442
cmp qword [rbp - 0x70], 0
jne 0x14000481a
lea rdx, str.Mandatory_parameter__rawdisk_missing
movabs rcx, 0x400000000
call fcn.14003be40
mov edi, eax
lea rcx, [rbp - 0x80]
call qword [sym.imp.BstkRT.dll_public_virtual:_void___cdecl_RTCString::destructor_void____ptr64]
nop
lea rcx, [rbp - 0x38]
call qword [sym.imp.BstkRT.dll_public_virtual:_void___cdecl_RTCString::destructor_void____ptr64]
nop
mov rbx, qword [rsp + 0x70]
mov rcx, qword [rbx]
test rcx, rcx
je 0x140004815
mov rdx, qword [rcx]
call qword [rdx + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov qword [rbx], 0
jmp 0x1400046bd
test rdx, rdx
jne 0x140004871
test rax, rax
je 0x140004871
lea rdx, str.The_parameter__mbr_is_only_valid_when_the_parameter__partitions_is_also_present
movabs rcx, 0x400000000
call fcn.14003be40
mov edi, eax
lea rcx, [rbp - 0x80]
call qword [sym.imp.BstkRT.dll_public_virtual:_void___cdecl_RTCString::destructor_void____ptr64]
nop
lea rcx, [rbp - 0x38]
call qword [sym.imp.BstkRT.dll_public_virtual:_void___cdecl_RTCString::destructor_void____ptr64]
nop
mov rbx, qword [rsp + 0x70]
mov rcx, qword [rbx]
test rcx, rcx
je 0x14000486c
mov rdx, qword [rcx]
call qword [rdx + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov qword [rbx], 0
jmp 0x1400046bd
lea rcx, [rbp - 0x80]
call qword [sym.imp.BstkRT.dll_public:_char_const____ptr64___cdecl_RTCString::c_str_void_const___ptr64]
mov rdx, rax
mov r8d, 0x721
lea rcx, [rbp - 0x60]
call qword [sym.imp.BstkRT.dll_RTFileOpen]
mov edi, eax
test eax, eax
jns 0x1400048b6
lea rcx, [rbp - 0x80]
call qword [sym.imp.BstkRT.dll_public:_char_const____ptr64___cdecl_RTCString::c_str_void_const___ptr64]
mov rdx, rax
mov r8d, edi
lea rcx, str.Cannot_open_the_raw_disk__s:__Rrc
call qword [sym.imp.BstkRT.dll_RTMsgError]
jmp 0x140005393
mov rcx, qword [rbp - 0x60]
call qword [sym.imp.BstkRT.dll_RTFileToNative]
mov rcx, rax
xor r15d, r15d
mov qword [rsp + 0x38], r15
lea rax, [rbp + 8]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], reloc.OLEAUT32.dll_SafeArrayGetElement
lea rax, [rbp + 0xd0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x70000
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x140004a1b
mov eax, dword [rbp + 0xd8]
cmp eax, 0xc
je 0x140004930
cmp eax, 0xb
je 0x140004930
lea rcx, [rbp - 0x80]
call qword [sym.imp.BstkRT.dll_public:_char_const____ptr64___cdecl_RTCString::c_str_void_const___ptr64]
mov rdx, rax
lea rcx, str.File__s_is_no_fixed_removable_medium_device
call qword [sym.imp.BstkRT.dll_RTMsgError]
jmp 0x14000538e
mov ecx, dword [rbp + 0xe4]
mov eax, dword [rbp + 0xe0]
imul rcx, rax
mov eax, dword [rbp + 0xdc]
imul rcx, rax
imul rcx, qword [rbp + 0xd0]
mov qword [rsp + 0x78], rcx
mov rcx, qword [rbp - 0x60]
call qword [sym.imp.BstkRT.dll_RTFileToNative]
mov rcx, rax
mov qword [rsp + 0x38], r15
lea rax, [rbp - 0x48]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 8
lea rax, [rbp - 0x40]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x7405c
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov rcx, qword [rsp + 0x78]
test eax, eax
cmovne rcx, qword [rbp - 0x40]
mov qword [rsp + 0x78], rcx
test sil, sil
je 0x1400049e0
lea rdx, str..PhysicalDrive
lea rcx, [rbp + 0x68]
call qword [sym.imp.BstkRT.dll_public:_void___cdecl_RTCString::constructor_char_const____ptr64____ptr64]
nop
mov esi, 1
mov dword [rsp + 0x64], esi
mov r8d, esi
lea rdx, [rbp + 0x68]
lea rcx, [rbp - 0x80]
call qword [sym.imp.BstkRT.dll_public:_bool___cdecl_RTCString::startsWith_class_RTCString_const____ptr64__enum_RTCString::CaseSensitivity_const___ptr64]
test al, al
jne 0x1400049e4
movzx edi, sil
jmp 0x1400049e7
mov esi, dword [rsp + 0x64]
xor dil, dil
test sil, 1
je 0x1400049f7
lea rcx, [rbp + 0x68]
call qword [sym.imp.BstkRT.dll_public_virtual:_void___cdecl_RTCString::destructor_void____ptr64]
test dil, dil
je 0x140004a77
lea rcx, [rbp - 0x80]
call qword [sym.imp.BstkRT.dll_public:_char_const____ptr64___cdecl_RTCString::c_str_void_const___ptr64]
mov rdx, rax
lea rcx, str.The__relative_parameter_is_invalid_for_raw_disk__s
call qword [sym.imp.BstkRT.dll_RTMsgError]
jmp 0x14000538e
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call qword [sym.imp.BstkRT.dll_RTErrConvertFromWin32]
mov edi, eax
lea rdx, [rsp + 0x78]
mov rcx, qword [rbp - 0x60]
call qword [sym.imp.BstkRT.dll_RTFileGetSize]
test eax, eax
jns 0x140004a60
lea rcx, [rbp - 0x80]
call qword [sym.imp.BstkRT.dll_public:_char_const____ptr64___cdecl_RTCString::c_str_void_const___ptr64]
mov rdx, rax
mov r8d, edi
lea rcx, str.Cannot_get_the_geometry_of_the_raw_disk__s:__Rrc
call qword [sym.imp.BstkRT.dll_RTMsgError]
jmp 0x140005393
test sil, sil
je 0x140004a77
lea rcx, str.The__relative_parameter_is_invalid_for_raw_images
call qword [sym.imp.BstkRT.dll_RTMsgError]
jmp 0x14000538e
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x14000536f
test rax, 0x1ff
jne 0x14000536f
mov dword [rbp + 0x88], 0x574152
mov r12, qword [rbp - 0x58]
test r12, r12
jne 0x140004ac4
mov dword [rbp + 0x8c], 1
lea rcx, [rbp - 0x80]
call qword [sym.imp.BstkRT.dll_public:_char_const____ptr64___cdecl_RTCString::c_str_void_const___ptr64]
mov qword [rbp + 0x90], rax
jmp 0x140005102
mov dword [rbp + 0x8c], r15d
mov qword [rbp + 0x90], r15
mov dword [rbp + 0x98], r15d
mov qword [rbp + 0xa0], r15
mov r13d, r15d
mov esi, r15d
mov dword [rsp + 0x64], r15d
mov rax, r12
cmp byte [r12], sil
je 0x140004b63
lea r9, [rbp - 0x48]
xor r8d, r8d
lea rdx, [rbp]
mov rcx, rax
call qword [sym.imp.BstkRT.dll_RTStrToUInt32Ex]
mov edi, eax
test eax, eax
js 0x140004b51
mov ecx, dword [rbp - 0x48]
mov edx, 1
shl edx, cl
or r13d, edx
mov rax, qword [rbp]
cmp byte [rax], 0x72
jne 0x140004b2d
or esi, edx
mov dword [rsp + 0x64], esi
inc rax
cmp byte [rax], 0x2c
jne 0x140004b3a
inc rax
cmp byte [rax], 0
jmp 0x140004af2
cmp byte [rax], 0
je 0x140004b63
lea rcx, str.Incorrect_separator_in_partitions_parameter
call qword [sym.imp.BstkRT.dll_RTMsgError]
jmp 0x14000538e
lea rcx, str.Incorrect_value_in_partitions_parameter
call qword [sym.imp.BstkRT.dll_RTMsgError]
jmp 0x140005393
lea rdx, [rbp + 0xf0]
mov rcx, qword [rbp - 0x60]
call fcn.140002c30
mov edi, eax
test eax, eax
jns 0x140004b98
lea rcx, [rbp - 0x80]
call qword [sym.imp.BstkRT.dll_public:_char_const____ptr64___cdecl_RTCString::c_str_void_const___ptr64]
mov rdx, rax
lea rcx, str.Cannot_read_the_partition_information_from__s
call qword [sym.imp.BstkRT.dll_RTMsgError]
jmp 0x140005393
mov eax, dword [rbp + 0xf0]
mov dword [rbp + 0xa8], eax
mov r12d, dword [rbp + 0xf4]
test r12d, r12d
je 0x140004f57
lea rdi, [rbp + 0xf8]
mov ebx, r12d
nop
mov esi, dword [rdi]
bt r13d, esi
jae 0x140004bf9
mov eax, dword [rdi + 8]
cmp eax, 5
je 0x140004bdc
cmp eax, 0xf
je 0x140004bdc
cmp eax, 0x85
jne 0x140004bf9
mov edx, esi
lea rcx, str.It_is_not_possible__and_necessary__to_explicitly_give_access_to_the_extended_partition__u._If_required__enable_access_to_all_logical_partitions_inside_this_extended_partition.
call qword [sym.imp.BstkRT.dll_RTMsgWarning]
mov ecx, esi
mov eax, 1
shl eax, cl
not eax
and r13d, eax
add rdi, 0x48
dec rbx
jne 0x140004bc0
test r12d, r12d
je 0x140004f57
lea rbx, [rbp + 0x130]
mov rdi, qword [rbx + 8]
test rdi, rdi
je 0x140004d57
mov eax, dword [rbp + 0x98]
inc eax
mov dword [rbp + 0x98], eax
lea rdx, [rax + rax*2]
shl rdx, 4
lea r8, str.C:_virtualbox_srcVBoxFrontendsVBoxManageVBoxInternalManage.cpp
mov rcx, qword [rbp + 0xa0]
call qword [sym.imp.BstkRT.dll_RTMemReallocTag]
mov qword [rbp + 0xa0], rax
test rax, rax
je 0x140004f03
mov ecx, dword [rbp + 0x98]
lea rdx, [rcx + rcx*2]
add rdx, rdx
lea rsi, [rax + rdx*8 - 0x30]
xor eax, eax
mov qword [rsi], rax
mov qword [rsi + 8], rax
mov qword [rsi + 0x10], rax
mov qword [rsi + 0x18], rax
mov qword [rsi + 0x20], rax
mov qword [rsi + 0x28], rax
test rsi, rsi
je 0x140004f03
mov ecx, VarR4FromUI1
cmp rdi, rcx
cmovbe rcx, rdi
shl rcx, 9
mov qword [rsi + 0x20], rcx
mov r14, qword [rbx]
mov rdi, r14
shl rdi, 9
mov qword [rsi + 0x18], rdi
lea rdx, str.C:_virtualbox_srcVBoxFrontendsVBoxManageVBoxInternalManage.cpp
call qword [sym.imp.BstkRT.dll_RTMemAllocTag]
mov r12, rax
test rax, rax
je 0x140004edf
mov qword [rsp + 0x20], 0
mov r9, qword [rsi + 0x20]
mov r8, rax
mov rdx, rdi
mov rcx, qword [rbp - 0x60]
call qword [sym.imp.BstkRT.dll_RTFileReadAt]
mov edi, eax
test eax, eax
js 0x140004ebd
test r14, r14
jne 0x140004d4c
mov r14, qword [rbp - 0x50]
test r14, r14
je 0x140004d4c
mov r8d, 0x721
mov rdx, r14
lea rcx, [rbp - 0x40]
call qword [sym.imp.BstkRT.dll_RTFileOpen]
mov edi, eax
test eax, eax
js 0x140004ea5
mov qword [rsp + 0x20], 0
mov r9d, 0x1be
mov r8, r12
xor edx, edx
mov rcx, qword [rbp - 0x40]
call qword [sym.imp.BstkRT.dll_RTFileReadAt]
mov edi, eax
mov rcx, qword [rbp - 0x40]
call qword [sym.imp.BstkRT.dll_RTFileClose]
test edi, edi
js 0x140004e8d
mov qword [rsi + 8], r12
mov r12d, dword [rbp + 0xf4]
mov eax, dword [rbx - 0x30]
cmp eax, 5
je 0x140004e78
cmp eax, 0xf
je 0x140004e78
cmp eax, 0x85
je 0x140004e78
lea rcx, [rbp - 0x80]
call qword [sym.imp.BstkRT.dll_public:_char_const____ptr64___cdecl_RTCString::c_str_void_const___ptr64]
mov rsi, rax
mov r12, qword [rbx - 0x10]
shl r12, 9
mov r14, r12
mov ecx, dword [rbp + 0x98]
inc ecx
mov dword [rbp + 0x98], ecx
lea rdx, [rcx + rcx*2]
shl rdx, 4
lea r8, str.C:_virtualbox_srcVBoxFrontendsVBoxManageVBoxInternalManage.cpp
mov rcx, qword [rbp + 0xa0]
call qword [sym.imp.BstkRT.dll_RTMemReallocTag]
mov qword [rbp + 0xa0], rax
test rax, rax
je 0x140004f03
mov ecx, dword [rbp + 0x98]
lea rdx, [rcx + rcx*2]
add rdx, rdx
lea rdi, [rax + rdx*8 - 0x30]
xor eax, eax
mov qword [rdi], rax
mov qword [rdi + 8], rax
mov qword [rdi + 0x10], rax
mov qword [rdi + 0x18], rax
mov qword [rdi + 0x20], rax
mov qword [rdi + 0x28], rax
test rdi, rdi
je 0x140004f03
mov ecx, dword [rbx - 0x38]
mov eax, 1
shl eax, cl
test r13d, eax
je 0x140004e58
test dword [rsp + 0x64], eax
je 0x140004e16
or dword [rdi + 0x28], 2
cmp byte [rsp + 0x60], 0
je 0x140004e4f
lea rcx, [rbp - 0x80]
call qword [sym.imp.BstkRT.dll_public:_char_const____ptr64___cdecl_RTCString::c_str_void_const___ptr64]
mov r9d, dword [rbx - 0x34]
lea r8, [rax + 0x11]
lea rdx, str..Harddisk_sPartition_u
lea rcx, [rbp - 0x18]
call fcn.140002770
mov rsi, qword [rbp - 0x18]
test rsi, rsi
je 0x140004f27
xor r14d, r14d
mov qword [rdi], rsi
mov qword [rdi + 0x10], r14
jmp 0x140004e61
xor eax, eax
mov qword [rdi], rax
mov qword [rdi + 0x10], rax
mov qword [rdi + 0x18], r12
mov rax, qword [rbx - 8]
shl rax, 9
mov qword [rdi + 0x20], rax
mov r12d, dword [rbp + 0xf4]
inc r15d
add rbx, 0x48
cmp r15d, r12d
jae 0x140004f57
jmp 0x140004c12
mov r8d, edi
mov rdx, r14
lea rcx, str.Cannot_read_replacement_MBR_file__s:__Rrc
call qword [sym.imp.BstkRT.dll_RTMsgError]
jmp 0x140005393
mov r8d, eax
mov rdx, r14
lea rcx, str.Cannot_open_replacement_MBR_file__s_specified_with__mbr:__Rrc
call qword [sym.imp.BstkRT.dll_RTMsgError]
jmp 0x140005393
lea rcx, [rbp - 0x80]
call qword [sym.imp.BstkRT.dll_public:_char_const____ptr64___cdecl_RTCString::c_str_void_const___ptr64]
mov rdx, rax
mov r8d, edi
lea rcx, str.Cannot_read_partition_data_from_raw_device__s:__Rrc
call qword [sym.imp.BstkRT.dll_RTMsgError]
jmp 0x140005393
lea rcx, [rbp - 0x80]
call qword [sym.imp.BstkRT.dll_public:_char_const____ptr64___cdecl_RTCString::c_str_void_const___ptr64]
mov rdx, rax
lea rcx, str.Out_of_memory_allocating_the_partition_descriptor_for__s
call qword [sym.imp.BstkRT.dll_RTMsgError]
mov edi, 0xfffffff8
jmp 0x140005393
lea rcx, [rbp - 0x80]
call qword [sym.imp.BstkRT.dll_public:_char_const____ptr64___cdecl_RTCString::c_str_void_const___ptr64]
mov rdx, rax
lea rcx, str.Out_of_memory_allocating_the_partition_list_for__s
call qword [sym.imp.BstkRT.dll_RTMsgError]
mov edi, 0xfffffff8
jmp 0x140005393
mov edi, 0xffffffc0
mov eax, r15d
lea rcx, [rax + rax*8]
mov r9d, edi
mov r8d, dword [rbp + rcx*8 + 0xfc]
mov edx, dword [rbp + rcx*8 + 0xf8]
lea rcx, str.Cannot_create_reference_to_individual_partition__u__numbered__u___rc_Rrc
call qword [sym.imp.BstkRT.dll_RTMsgError]
jmp 0x140005393
xor r15d, r15d
mov r10d, r15d
mov r13d, r15d
mov esi, dword [rbp + 0x98]
lea eax, [rsi - 1]
mov r11, qword [rbp + 0xa0]
test eax, eax
je 0x14000506f
mov r12d, r15d
nop dword [rax + rax]
mov r9d, r10d
mov rbx, r13
mov r8, qword [r12 + r11 + 0x18]
lea r14d, [r10 + 1]
mov eax, r14d
inc r13
mov rdx, r13
cmp r14d, esi
jae 0x14000505c
lea rcx, [r12 + r11 + 0x48]
mov rdi, qword [rcx]
cmp rdi, r8
jae 0x140004fb7
mov r9d, eax
mov rbx, rdx
mov r8, rdi
inc eax
inc rdx
add rcx, 0x30
cmp eax, esi
jb 0x140004fa6
cmp r9d, r10d
je 0x14000505c
mov rdx, qword [r12 + r11]
mov rdi, qword [r12 + r11 + 8]
mov rsi, qword [r12 + r11 + 0x10]
mov r8, qword [r12 + r11 + 0x18]
mov r9, qword [r12 + r11 + 0x20]
mov r10, qword [r12 + r11 + 0x28]
lea rcx, [rbx + rbx*2]
add rcx, rcx
mov rax, qword [r11 + rcx*8]
mov qword [r12 + r11], rax
mov rax, qword [r11 + rcx*8 + 8]
mov qword [r12 + r11 + 8], rax
mov rax, qword [r11 + rcx*8 + 0x10]
mov qword [r12 + r11 + 0x10], rax
mov rax, qword [r11 + rcx*8 + 0x18]
mov qword [r12 + r11 + 0x18], rax
mov rax, qword [r11 + rcx*8 + 0x20]
mov qword [r12 + r11 + 0x20], rax
mov rax, qword [r11 + rcx*8 + 0x28]
mov qword [r12 + r11 + 0x28], rax
mov rax, qword [rbp + 0xa0]
mov qword [rax + rcx*8], rdx
mov qword [rax + rcx*8 + 8], rdi
mov qword [rax + rcx*8 + 0x10], rsi
mov qword [rax + rcx*8 + 0x18], r8
mov qword [rax + rcx*8 + 0x20], r9
mov qword [rax + rcx*8 + 0x28], r10
mov r11, qword [rbp + 0xa0]
mov esi, dword [rbp + 0x98]
mov r10d, r14d
add r12, 0x30
lea eax, [rsi - 1]
cmp r14d, eax
jb 0x140004f80
mov edi, r15d
test esi, esi
je 0x1400050fe
mov rdx, r15
nop dword [rax]
cmp qword [rdx + r11 + 8], r15
je 0x1400050ce
mov rcx, qword [rdx + r11 + 0x48]
sub rcx, qword [rdx + r11 + 0x18]
mov rax, qword [rdx + r11 + 0x20]
cmp rcx, rax
cmovbe rax, rcx
mov qword [rdx + r11 + 0x20], rax
mov r11, qword [rbp + 0xa0]
cmp qword [rdx + r11 + 0x20], r15
jne 0x1400050c8
cmp dword [rbp + 0xa8], r15d
je 0x1400050ec
lea eax, [rdi + 1]
mov esi, dword [rbp + 0x98]
cmp esi, eax
jne 0x1400050da
jmp 0x1400050ce
mov esi, dword [rbp + 0x98]
inc edi
add rdx, 0x30
cmp edi, esi
jae 0x1400050fe
jmp 0x140005080
lea rcx, str.GPT_overlaps_with_data_area
call qword [sym.imp.BstkRT.dll_RTMsgError]
jmp 0x14000538e
lea rcx, str.MBR_EPT_overlaps_with_data_area
call qword [sym.imp.BstkRT.dll_RTMsgError]
jmp 0x14000538e
mov r12, qword [rbp - 0x58]
mov rcx, qword [rbp - 0x60]
call qword [sym.imp.BstkRT.dll_RTFileClose]
lea rdx, [0x140002bc0]
mov qword [rbp + 0x40], rdx
lea rax, [0x140002c20]
mov qword [rbp + 0x48], rax
lea rax, [rbp + 0xfe8]
cmp rax, 0x2000
jb 0x140005173
lea rcx, [rbp - 0x18]
movabs rax, 0xffff800000000000
test rax, rcx
jne 0x140005173
mov dword [rbp + 0x10], 0x19701015
mov qword [rbp + 0x30], VarR4FromUI1
lea rax, str.VBoxManage_IError
mov qword [rbp + 0x18], rax
mov dword [rbp + 0x28], r15d
mov qword [rbp + 0x38], r15
mov qword [rbp + 0x20], r15
lea rax, [rbp + 0x10]
mov ebx, r15d
jmp 0x14000517c
mov ebx, 0xfffffffe
mov rax, qword [rbp - 8]
mov dword [rsp + 0x64], ebx
lea r8, [rbp - 0x10]
mov edx, 1
mov rcx, rax
call qword [sym.imp.BstkDDU.dll_VDCreate]
mov edi, eax
test eax, eax
jns 0x1400051ac
mov edx, eax
lea rcx, str.Cannot_create_the_virtual_disk_container:__Rrc
call qword [sym.imp.BstkRT.dll_RTMsgError]
jmp 0x140005393
mov rcx, qword [rsp + 0x78]
shr rcx, 0xd
movabs rax, 0x410410410410411
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 5
mov eax, 0x3fff
cmp rcx, rax
cmovbe eax, ecx
mov dword [rbp + 0xb0], eax
mov dword [rbp + 0xb4], reloc.OLEAUT32.dll_SafeArrayGetDim
mov dword [rbp + 0xb8], VarR4FromUI1
mov qword [rbp + 0xc0], 0
mov dword [rbp + 0xc8], r15d
lea rcx, [rbp - 0x38]
call qword [sym.imp.BstkRT.dll_public:_char_const____ptr64___cdecl_RTCString::c_str_void_const___ptr64]
mov r8, rax
mov qword [rsp + 0x58], r15
mov qword [rsp + 0x50], r15
mov dword [rsp + 0x48], r15d
mov qword [rsp + 0x40], r15
lea rax, [rbp + 0xc0]
mov qword [rsp + 0x38], rax
lea rax, [rbp + 0xb0]
mov qword [rsp + 0x30], rax
lea rax, [rbp + 0x88]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x10002
mov r9, qword [rsp + 0x78]
lea rdx, str.VMDK
mov rcx, qword [rbp - 0x10]
call qword [sym.imp.BstkDDU.dll_VDCreateBase]
mov edi, eax
test eax, eax
jns 0x140005283
mov edx, eax
lea rcx, str.Cannot_create_the_raw_disk_VMDK:__Rrc
call qword [sym.imp.BstkRT.dll_RTMsgError]
jmp 0x140005393
lea rcx, [rbp - 0x38]
call qword [sym.imp.BstkRT.dll_public:_char_const____ptr64___cdecl_RTCString::c_str_void_const___ptr64]
mov rdx, rax
lea rcx, str.RAW_host_disk_access_VMDK_file__s_created_successfully._n
call qword [sym.imp.BstkRT.dll_RTPrintf]
mov rcx, qword [rbp - 0x10]
call qword [sym.imp.BstkDDU.dll_VDCloseAll]
test r12, r12
je 0x14000531b
mov esi, r15d
mov rcx, qword [rbp + 0xa0]
cmp dword [rbp + 0x98], 0
jbe 0x140005310
mov rdi, r15
movzx ebx, byte [rsp + 0x60]
test bl, bl
je 0x1400052e4
mov rax, qword [rdi + rcx]
test rax, rax
je 0x1400052e4
mov rcx, rax
call qword [sym.imp.BstkRT.dll_RTStrFree]
mov rcx, qword [rbp + 0xa0]
mov rax, qword [rdi + rcx + 8]
test rax, rax
je 0x1400052fe
mov rcx, rax
call qword [sym.imp.BstkRT.dll_RTMemFree]
mov rcx, qword [rbp + 0xa0]
inc esi
add rdi, 0x30
cmp esi, dword [rbp + 0x98]
jb 0x1400052c7
mov ebx, dword [rsp + 0x64]
test rcx, rcx
je 0x14000531b
call qword [sym.imp.BstkRT.dll_RTMemFree]
mov edi, r15d
test ebx, ebx
sets dil
lea rcx, [rbp - 0x80]
call qword [sym.imp.BstkRT.dll_public_virtual:_void___cdecl_RTCString::destructor_void____ptr64]
nop
lea rcx, [rbp - 0x38]
call qword [sym.imp.BstkRT.dll_public_virtual:_void___cdecl_RTCString::destructor_void____ptr64]
nop
mov rbx, qword [rsp + 0x70]
mov rcx, qword [rbx]
test rcx, rcx
je 0x140005350
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov qword [rbx], r15
mov rbx, qword [rsp + 0x68]
mov rcx, qword [rbx]
test rcx, rcx
je 0x14000549f
mov rdx, qword [rcx]
call qword [rdx + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov qword [rbx], r15
jmp 0x14000549f
lea rcx, [rbp - 0x80]
call qword [sym.imp.BstkRT.dll_public:_char_const____ptr64___cdecl_RTCString::c_str_void_const___ptr64]
mov rdx, rax
mov r8, qword [rsp + 0x78]
lea rcx, str.Detected_size_of_raw_disk__s_is__s__an_invalid_value
call qword [sym.imp.BstkRT.dll_RTMsgError]
mov edi, 0xfffffffe
lea rcx, str.The_raw_disk_vmdk_file_was_not_created
call qword [sym.imp.BstkRT.dll_RTMsgError]
xor r12d, r12d
mov esi, r12d
test edi, edi
sets sil
lea rcx, [rbp - 0x80]
call qword [sym.imp.BstkRT.dll_public_virtual:_void___cdecl_RTCString::destructor_void____ptr64]
nop
lea rcx, [rbp - 0x38]
call qword [sym.imp.BstkRT.dll_public_virtual:_void___cdecl_RTCString::destructor_void____ptr64]
nop
mov rbx, qword [rsp + 0x70]
mov rcx, qword [rbx]
test rcx, rcx
je 0x1400053d8
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov qword [rbx], r12
mov rbx, qword [rsp + 0x68]
mov rcx, qword [rbx]
test rcx, rcx
je 0x1400053ee
mov rdx, qword [rcx]
call qword [rdx + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov qword [rbx], r12
mov eax, esi
jmp 0x1400054a1
lea rdx, str.Invalid_parameter__s
movabs rcx, 0x400000000
call fcn.14003be40
mov edi, eax
lea rcx, [rbp - 0x80]
call qword [sym.imp.BstkRT.dll_public_virtual:_void___cdecl_RTCString::destructor_void____ptr64]
nop
lea rcx, [rbp - 0x38]
call qword [sym.imp.BstkRT.dll_public_virtual:_void___cdecl_RTCString::destructor_void____ptr64]
nop
mov rbx, qword [rsp + 0x70]
mov rcx, qword [rbx]
test rcx, rcx
je 0x14000543d
mov rdx, qword [rcx]
call qword [rdx + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov qword [rbx], 0
jmp 0x1400046bd
mov rsi, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x70]
xor r12d, r12d
lea rdx, str.Mandatory_parameter__filename_missing
movabs rcx, 0x400000000
call fcn.14003be40
mov edi, eax
lea rcx, [rbp - 0x80]
call qword [sym.imp.BstkRT.dll_public_virtual:_void___cdecl_RTCString::destructor_void____ptr64]
nop
lea rcx, [rbp - 0x38]
call qword [sym.imp.BstkRT.dll_public_virtual:_void___cdecl_RTCString::destructor_void____ptr64]
nop
mov rcx, qword [rbx]
test rcx, rcx
je 0x14000548e
mov rdx, qword [rcx]
call qword [rdx + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov qword [rbx], r12
mov rcx, qword [rsi]
test rcx, rcx
je 0x14000549f
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov qword [rsi], r12
mov eax, edi
mov rcx, qword [rbp + 0x1d20]
xor rcx, rsp
call fcn.140092190
mov rbx, qword [rsp + 0x1e70]
add rsp, 0x1e30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret