Function at 0x140007060
Capabilities:
Get disk information
Get disk information via ioctl
Read file on windows

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x10e0]
mov eax, 0x11e0
call fcn.140092620
sub rsp, rax
mov rax, qword [0x140106438]
xor rax, rsp
mov qword [rbp + 0x1070], rax
xor ebx, ebx
mov qword [rsp + 0x60], rdx
mov esi, r8d
mov dword [rsp + 0x44], ebx
mov r14, rdx
mov dword [rsp + 0x48], ebx
mov edi, ecx
mov dword [rsp + 0x4c], r9d
xor edx, edx
mov dword [rsp + 0x68], 0x7060401
mov r8d, 0x100
mov dword [rsp + 0x6c], 0xef0e0c0b
lea rcx, [rsp + 0x70]
mov r12d, ebx
mov r15d, r9d
call fcn.140093c00
xor edx, edx
lea rcx, [rbp + 0x70]
mov r8d, 0x1000
call fcn.140093c00
test r14, r14
je 0x140007ca6
xor edx, edx
mov dword [0x14015b560], ebx
mov r8d, 0x580
lea rcx, [0x14015b568]
call fcn.140093c00
mov r13d, 1
mov byte [r14], bl
mov r8d, r13d
xor r9d, r9d
xor edx, edx
mov ecx, edi
call fcn.140003fa0
mov rbx, rax
test rax, rax
je 0x14000715a
mov dword [rsp + 0x38], esi
xor r9d, r9d
xor esi, esi
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x28], rsi
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x20], rsi
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
test eax, eax
jne 0x14000716f
jmp 0x14000715c
xor esi, esi
test r15d, r15d
jne 0x14000716f
mov edx, edi
lea rcx, str.No_volume_information_for_drive_0x_02x
call fcn.140041aa0
mov rcx, rbx
call fcn.14009b5a0
mov ecx, edi
call fcn.140003f00
mov r9d, r13d
xor r8d, r8d
xor edx, edx
mov rcx, rax
mov rbx, rax
call fcn.140003b60
mov rcx, rbx
mov qword [rsp + 0x58], rax
mov r13, rax
call fcn.14009b5a0
cmp r13, 0xffffffffffffffff
je 0x140007ca6
mov qword [rsp + 0x38], rsi
lea rax, [rsp + 0x40]
mov qword [rsp + 0x30], rax
xor r9d, r9d
lea rax, [rsp + 0x70]
mov dword [rsp + 0x28], 0x100
xor r8d, r8d
mov qword [rsp + 0x20], rax
mov edx, 0x700a0
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x140007c7d
cmp dword [rsp + 0x40], r12d
jbe 0x140007c7d
mov rax, qword [rbp - 0x7c]
mov rcx, qword [rbp - 0x78]
mov qword [0x14015b540], rcx
mov dword [0x14015b550], eax
mov dword [0x14015b554], 0xffffffff
cmp eax, 0x200
jae 0x140007240
test r15d, r15d
jne 0x140007236
mov r8d, eax
lea rcx, str.Warning:_Drive_0x_02x_reports_a_sector_size_of__d___Correcting_to_512_bytes.
mov edx, edi
call fcn.140041aa0
mov rcx, qword [0x14015b540]
mov dword [0x14015b550], 0x200
mov eax, dword [rbp - 0x80]
mov ebx, 1
mov dword [0x14015b54c], eax
mov eax, dword [rsp + 0x78]
mov dword [0x14015b558], eax
test r15d, r15d
jne 0x1400072b0
mov r8d, ebx
xor edx, edx
call fcn.140042190
cmp dword [0x14015b558], 0xc
lea rdx, str.Removable
mov r9d, dword [0x14015b550]
lea rcx, str.Disk_type:__s__Disk_size:__s__Sector_size:__d_bytes
mov r8, rax
lea rax, str.FIXED
cmove rdx, rax
call fcn.140041aa0
mov r9d, dword [rbp - 0x80]
lea rcx, str.Cylinders:__lli__Tracks_per_cylinder:__d__Sectors_per_track:__d
mov r8d, dword [rsp + 0x7c]
mov rdx, qword [rsp + 0x70]
call fcn.140041aa0
mov qword [rsp + 0x38], rsi
lea rax, [rsp + 0x40]
mov qword [rsp + 0x30], rax
xor r9d, r9d
lea rax, [rbp + 0x70]
mov dword [rsp + 0x28], 0x1000
xor r8d, r8d
mov qword [rsp + 0x20], rax
mov edx, 0x70050
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x140007c6a
cmp dword [rsp + 0x40], r12d
jbe 0x140007c6a
mov eax, dword [rbp + 0x70]
movaps xmmword [rsp + 0x11d0], xmm6
movaps xmmword [rsp + 0x11c0], xmm7
movaps xmmword [rsp + 0x11b0], xmm8
movaps xmmword [rsp + 0x11a0], xmm9
movaps xmmword [rsp + 0x1190], xmm10
movaps xmmword [rsp + 0x1180], xmm11
test eax, eax
je 0x140007791
cmp eax, 1
je 0x14000735b
mov dword [0x14015b55c], esi
test r15d, r15d
jne 0x140007c22
lea rcx, str.Partition_type:_RAW
call fcn.140041aa0
jmp 0x140007c22
mov dword [0x14015b55c], ebx
test r15d, r15d
jne 0x1400073ad
mov edx, dword [rbp + 0x74]
lea rcx, str.Partition_type:_GPT__NB_Partitions:__d
call fcn.140041aa0
lea rcx, [rbp + 0x78]
call fcn.1400420c0
mov rdx, rax
lea rcx, str.Disk_GUID:__s
call fcn.140041aa0
mov r9, qword [rbp + 0x90]
lea rcx, str.Max_parts:__d__Start_Offset:__lli__Usable___lli_bytes
mov r8, qword [rbp + 0x88]
mov edx, dword [rbp + 0x98]
call fcn.140041aa0
mov r9, qword [rbp + 0x74]
xor r14d, r14d
test r9d, r9d
je 0x140007c22
movsd xmm9, qword [0x1400f64b8]
lea r10, [0x140000000]
movsd xmm8, qword [0x1400f6440]
lea rdx, [0x1400d7fa0]
movsd xmm10, qword [0x1400f6498]
lea r11, [0x140107510]
movsd xmm11, qword [0x1400f6468]
lea r12, [0x1400d756a]
nop dword [rax]
cmp r14d, 0x10
jae 0x140007469
mov eax, r14d
lea rcx, [r14 + r14*8]
imul rdx, rax, 0x58
shl rcx, 4
lea r8, [rbp + 0xe8]
add r8, rcx
mov rax, qword [rbp + rcx + 0xa8]
mov qword [rdx + r10 + 0x15b5b0], rax
mov rax, qword [rbp + rcx + 0xb0]
lea rcx, [r10 + 0x15b568]
mov qword [rdx + r10 + 0x15b5b8], rax
sub rdx, r8
add rcx, rdx
nop dword [rax]
movzx eax, word [r8]
mov word [r8 + rcx], ax
lea r8, [r8 + 2]
test ax, ax
jne 0x140007450
lea rdx, [0x1400d7fa0]
inc dword [0x14015b560]
lea rdi, [r14 + r14*8]
shl rdi, 4
lea rbx, [rbp + 0xe8]
add rbx, rdi
xor ecx, ecx
movzx eax, word [rbx + rcx*2]
cmp ax, word [rdx + rcx*2]
jne 0x1400074a7
movzx eax, word [rbx + rcx*2 + 2]
cmp ax, word [rdx + rcx*2 + 2]
jne 0x1400074a7
add rcx, 2
cmp rcx, 0xa
jne 0x140007483
xor esi, esi
jmp 0x1400074ac
sbb esi, esi
or esi, 1
test r15d, r15d
jne 0x1400076b5
lea rdx, [rbp + 0xc0]
xor r8d, r8d
add rdx, rdi
mov r9, r11
xor r10d, r10d
test rdx, rdx
je 0x1400074f1
mov rax, qword [r9]
test rax, rax
je 0x1400074f1
mov rcx, qword [rdx]
sub rcx, qword [rax]
jne 0x1400074e5
mov rcx, qword [rdx + 8]
sub rcx, qword [rax + 8]
xor eax, eax
test rcx, rcx
sete al
test eax, eax
jne 0x140007501
inc r8d
inc r10
add r9, 0x10
cmp r8d, 0x68
jb 0x1400074c8
cmp r8d, 0x68
jae 0x140007511
add r10, r10
mov rax, qword [r11 + r10*8 + 8]
jmp 0x140007519
mov rcx, rdx
call fcn.1400420c0
lea rcx, str.__UEFI:NTFS_
test esi, esi
mov r8, r12
lea edx, [r14 + 1]
cmove r8, rcx
mov r9, rax
lea rcx, str.Partition__d_s:_r_n__Type:__s
call fcn.140041aa0
cmp word [rbx], 0
je 0x140007551
mov rdx, rbx
lea rcx, str.__Name:__S
call fcn.140041aa0
mov rdx, qword [rbp + rdi + 0xa8]
mov rcx, r13
call fcn.140006be0
mov rdx, rax
lea rcx, str.__Detected_File_System:__s
call fcn.140041aa0
mov rcx, qword [rbp + rdi + 0xb0]
xorps xmm7, xmm7
test rcx, rcx
js 0x140007587
cvtsi2sd xmm7, rcx
jmp 0x14000759c
mov rax, rcx
and ecx, 1
shr rax, 1
or rax, rcx
cvtsi2sd xmm7, rax
addsd xmm7, xmm7
xor ebx, ebx
nop
comisd xmm9, xmm7
ja 0x1400075b5
inc rbx
mulsd xmm7, xmm8
cmp rbx, 5
jl 0x1400075a0
test rbx, rbx
jne 0x1400075dc
mov rax, qword [0x1401091b0]
lea r9, str._s_d_s__s
mov qword [rsp + 0x38], rax
cvttsd2si ecx, xmm7
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], ecx
jmp 0x14000762b
movaps xmm6, xmm7
movaps xmm0, xmm7
mulsd xmm6, xmm10
call fcn.1400bf1f0
lea rax, str._s_0.0f_s__s
mulsd xmm0, xmm10
lea r9, str._s_0.1f_s__s
subsd xmm6, xmm0
comisd xmm11, xmm6
cmova r9, rax
lea rax, [0x140000000]
mov rax, qword [rax + rbx*8 + 0x1091b0]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r12
movsd qword [rsp + 0x28], xmm7
mov r8, 0xffffffffffffffff
mov qword [rsp + 0x20], r12
lea rcx, [0x140155350]
lea edx, [r8 + 0x21]
call fcn.1400034e0
mov ecx, dword [0x14015b550]
mov rax, qword [rbp + rdi + 0xa8]
cqo
mov byte [0x14015536f], 0
idiv rcx
lea rcx, [rbp + 0xd0]
add rcx, rdi
mov rbx, rax
call fcn.1400420c0
mov r9, qword [rbp + rdi + 0xb0]
lea r8, [0x140155350]
mov rdx, rax
lea rcx, str.__ID:__s_r_n__Size:__s___lli_bytes__r_n__Start_Sector:__lli__Attributes:_0x_016llX
mov rax, qword [rbp + rdi + 0xe0]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
call fcn.140041aa0
mov r9, qword [rbp + 0x74]
lea r10, [0x140000000]
lea r11, [0x140107510]
mov ecx, dword [0x14015b550]
mov rax, qword [rbp + rdi + 0xa8]
cqo
idiv rcx
mov ecx, dword [0x14015b554]
cmp ecx, eax
cmovae ecx, eax
mov dword [0x14015b554], ecx
test esi, esi
je 0x140007733
lea rcx, [rbp + 0xc0]
add rcx, rdi
je 0x140007779
mov rdx, qword [rcx]
sub rdx, qword [0x1400d8e00]
jne 0x140007704
mov rdx, qword [rcx + 8]
sub rdx, qword [0x1400d8e08]
xor eax, eax
test rdx, rdx
sete al
test eax, eax
jne 0x140007733
mov rdx, qword [rcx]
sub rdx, qword [0x1400d8930]
jne 0x140007727
mov rdx, qword [rcx + 8]
sub rdx, qword [0x1400d8938]
xor eax, eax
test rdx, rdx
sete al
test eax, eax
je 0x140007743
dec dword [0x14015b560]
lea rcx, [rbp + 0xc0]
add rcx, rdi
test rcx, rcx
je 0x140007779
mov rdx, qword [rcx]
sub rdx, qword [0x1400d8e10]
jne 0x14000775f
mov rdx, qword [rcx + 8]
sub rdx, qword [0x1400d8e18]
mov ecx, dword [rsp + 0x44]
xor eax, eax
test rdx, rdx
mov ebx, 1
sete al
test eax, eax
cmovne ecx, ebx
mov dword [rsp + 0x44], ecx
inc r14d
lea rdx, [0x1400d7fa0]
cmp r14d, r9d
jb 0x140007400
jmp 0x140007c22
mov rcx, qword [rbp + 0x74]
mov dword [0x14015b55c], esi
test ecx, ecx
je 0x1400077bf
lea rax, [rbp + 0xc0]
mov ecx, ecx
cmp byte [rax], r12b
je 0x1400077b3
inc dword [0x14015b560]
add rax, 0x90
sub rcx, 1
jne 0x1400077a8
lea rbx, [0x1400d756a]
cmp byte [rbp + 0xc0], r12b
je 0x1400077fe
cmp qword [rbp + 0xa8], r12
jne 0x1400077fe
test r15d, r15d
jne 0x1400077f0
lea rdx, str.Super_Floppy_Disk
lea rcx, str.Partition_type:_SFD___s__or_unpartitioned
call fcn.140041aa0
mov edx, 1
mov r12d, edx
mov dword [rsp + 0x48], edx
jmp 0x140007871
test r15d, r15d
jne 0x140007848
mov edx, dword [0x14015b560]
lea rcx, str.Partition_type:_MBR__NB_Partitions:__d
call fcn.140041aa0
mov rcx, qword [rbp + 0x78]
mov eax, esi
cmp ecx, 0x49464555
mov edx, ecx
mov r8, rbx
lea rcx, str.Disk_ID:_0x_08X__s
sete al
mov dword [0x14015bb00], eax
lea rax, str._UEFI_target_
cmove r8, rax
call fcn.140041aa0
jmp 0x14000785a
cmp dword [rbp + 0x78], 0x49464555
mov eax, esi
sete al
mov dword [0x14015bb00], eax
mov r8d, r15d
lea rdx, str.Drive
mov rcx, r13
call fcn.140005fb0
mov edx, 1
xor r13d, r13d
cmp dword [rbp + 0x74], r13d
jbe 0x140007c1d
movsd xmm9, qword [0x1400f64b8]
lea rax, str.__UEFI:NTFS_
movsd xmm8, qword [0x1400f6440]
movsd xmm10, qword [0x1400f6498]
movsd xmm11, qword [0x1400f6468]
nop dword [rax]
xor r15d, r15d
mov edi, r13d
lea r14, [r13*8]
mov dword [rsp + 0x50], r15d
add r14, r13
add r14, r14
movzx esi, byte [rbp + r14*8 + 0xc0]
test sil, sil
je 0x140007c0b
cmp sil, 4
jne 0x140007900
test r12d, r12d
je 0x140007994
cmp qword [0x14015b540], 0x1000000
jg 0x140007c1d
jmp 0x140007994
cmp sil, 0xef
jne 0x140007994
mov ecx, dword [0x14015b550]
call fcn.1400966e0
mov rbx, rax
test rax, rax
je 0x140007986
mov rdx, qword [rbp + r14*8 + 0xa8]
xor r9d, r9d
mov rcx, qword [rsp + 0x58]
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x14000797e
mov r8d, dword [0x14015b550]
lea r9, [rsp + 0x40]
mov rcx, qword [rsp + 0x58]
mov rdx, rbx
mov qword [rsp + 0x20], r15
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x14000797e
lea rcx, [rbx + 0x2b]
mov r8d, 9
lea rdx, str.UEFI_NTFS
call fcn.1400a1ff0
test eax, eax
sete r15b
mov dword [rsp + 0x50], r15d
mov rcx, rbx
call fcn.14009b5a0
lea rax, str.__UEFI:NTFS_
lea rbx, [0x1400d756a]
mov edx, dword [rsp + 0x4c]
test edx, edx
jne 0x1400079bf
test r15d, r15d
lea rcx, str.Partition__d_s:
mov edx, r12d
mov r8, rbx
cmovne r8, rax
xor edx, 1
add edx, r13d
call fcn.140041aa0
mov edx, dword [rsp + 0x4c]
xor ecx, ecx
lea rax, [rsp + 0x68]
cmp sil, byte [rax]
je 0x1400079d7
inc ecx
inc rax
cmp ecx, 8
jb 0x1400079c6
jmp 0x1400079df
mov dword [rsp + 0x44], 1
cmp r13d, 0x10
jae 0x140007a12
mov rax, qword [rbp + r14*8 + 0xa8]
imul rcx, rdi, 0x58
lea rdi, [0x140000000]
mov qword [rcx + rdi + 0x15b5b0], rax
mov rax, qword [rbp + r14*8 + 0xb0]
mov qword [rcx + rdi + 0x15b5b8], rax
jmp 0x140007a19
lea rdi, [0x140000000]
test edx, edx
jne 0x140007bae
test r12d, r12d
je 0x140007a2b
xor r12d, r12d
jmp 0x140007a2e
mov r12d, esi
cmp sil, 7
je 0x140007a3b
cmp dword [rsp + 0x48], 0
je 0x140007a45
mov rax, qword [rsp + 0x60]
cmp byte [rax], 0
jne 0x140007a4e
movzx ecx, sil
call fcn.140009320
mov rcx, qword [rbp + r14*8 + 0xb0]
mov r15, rax
xorps xmm7, xmm7
test rcx, rcx
js 0x140007a68
cvtsi2sd xmm7, rcx
jmp 0x140007a7d
mov rax, rcx
and ecx, 1
shr rax, 1
or rax, rcx
cvtsi2sd xmm7, rax
addsd xmm7, xmm7
xor ebx, ebx
nop
comisd xmm9, xmm7
ja 0x140007a95
inc rbx
mulsd xmm7, xmm8
cmp rbx, 5
jl 0x140007a80
test rbx, rbx
jne 0x140007ac3
mov rax, qword [0x1401091b0]
lea r9, str._s_d_s__s
mov qword [rsp + 0x38], rax
lea rax, [0x1400d756a]
cvttsd2si ecx, xmm7
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], ecx
jmp 0x140007b12
movaps xmm6, xmm7
movaps xmm0, xmm7
mulsd xmm6, xmm10
call fcn.1400bf1f0
lea rax, str._s_0.0f_s__s
mulsd xmm0, xmm10
lea r9, str._s_0.1f_s__s
subsd xmm6, xmm0
comisd xmm11, xmm6
cmova r9, rax
mov rax, qword [rdi + rbx*8 + 0x1091b0]
mov qword [rsp + 0x38], rax
lea rax, [0x1400d756a]
mov qword [rsp + 0x30], rax
movsd qword [rsp + 0x28], xmm7
mov r8, 0xffffffffffffffff
mov qword [rsp + 0x20], rax
lea rcx, [0x140155350]
lea edx, [r8 + 0x21]
call fcn.1400034e0
mov r9, qword [rbp + r14*8 + 0xa8]
lea rax, [0x1400d7eb8]
mov ecx, dword [0x14015b550]
lea rdi, [0x1400d7ebc]
cmp byte [rbp + r14*8 + 0xc1], 0
mov byte [0x14015536f], 0
cmovne rdi, rax
mov rax, r9
cqo
idiv rcx
mov rcx, qword [rsp + 0x58]
mov rdx, r9
mov rbx, rax
call fcn.140006be0
mov r9, rax
mov qword [rsp + 0x38], rdi
mov rax, qword [rbp + r14*8 + 0xb0]
lea rcx, str.__Type:__s__0x_02x__r_n__Detected_File_System:__s_r_n__Size:__s___lld_bytes__r_n__Start_Sector:__lld__Boot:__s
mov qword [rsp + 0x30], rbx
mov r8d, r12d
mov qword [rsp + 0x28], rax
mov rdx, r15
lea rax, [0x140155350]
mov qword [rsp + 0x20], rax
call fcn.140041aa0
mov ecx, dword [0x14015b550]
mov rax, qword [rbp + r14*8 + 0xa8]
cqo
idiv rcx
mov ecx, dword [0x14015b554]
cmp ecx, eax
cmovae ecx, eax
mov dword [0x14015b554], ecx
cmp sil, 0xea
je 0x140007bdf
cmp dword [rsp + 0x50], 0
je 0x140007be5
dec dword [0x14015b560]
mov eax, dword [0x14015bafc]
lea rbx, [0x1400d756a]
cmp sil, 0xee
mov edx, 1
cmove eax, edx
mov dword [0x14015bafc], eax
lea rax, str.__UEFI:NTFS_
mov r12d, dword [rsp + 0x48]
inc r13d
cmp r13d, dword [rbp + 0x74]
jb 0x1400078b0
mov r13, qword [rsp + 0x58]
movaps xmm11, xmmword [rsp + 0x1180]
movaps xmm10, xmmword [rsp + 0x1190]
movaps xmm9, xmmword [rsp + 0x11a0]
movaps xmm8, xmmword [rsp + 0x11b0]
movaps xmm7, xmmword [rsp + 0x11c0]
movaps xmm6, xmmword [rsp + 0x11d0]
test r13, r13
je 0x140007c64
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [rsp + 0x44]
jmp 0x140007ca8
test r15d, r15d
jne 0x140007c98
call fcn.140041e50
lea rcx, str.Could_not_get_layout_for_drive_0x_02x:__s
jmp 0x140007c8e
test r15d, r15d
jne 0x140007c98
call fcn.140041e50
lea rcx, str.Could_not_get_geometry_for_drive_0x_02x:__s
mov r8, rax
mov edx, edi
call fcn.140041aa0
test r13, r13
je 0x140007ca6
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
mov rcx, qword [rbp + 0x1070]
xor rcx, rsp
call fcn.140092060
mov rbx, qword [rsp + 0x1238]
add rsp, 0x11e0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret