Function at 0x1400070a0
Capabilities:
Get disk information

Disassembly:
mov r11, rsp
push rbx
push r12
push r15
sub rsp, 0x210
mov rax, qword [0x140193440]
xor rax, rsp
mov qword [rsp + 0x1e0], rax
mov qword [r11 + 0x20], rbp
mov r12, rdx
mov qword [r11 - 0x20], rsi
xor edx, edx
mov qword [r11 - 0x28], rdi
xor ebx, ebx
mov qword [r11 - 0x30], r13
mov edi, ecx
mov qword [r11 - 0x38], r14
mov r14, r8
mov dword [rsp + 0x40], ecx
mov r8d, 0x100
lea rcx, [r11 - 0x148]
call fcn.140136960
mov eax, dword [str..:]
xor r15d, r15d
mov dword [rsp + 0x68], eax
xor r13d, r13d
cmp qword [0x1401d08b0], rbx
movzx eax, word [0x14015676c]
mov word [rsp + 0x6c], ax
movzx eax, byte [0x14015676e]
mov byte [rsp + 0x6e], al
mov dword [rsp + 0x44], r15d
jne 0x140007237
mov dword [rsp + 0x28], ebx
lea r9d, [rbx - 1]
lea r8, str.Ntdll
mov qword [rsp + 0x20], rbx
xor edx, edx
mov ecx, 0xfde9
xor esi, esi
xor edi, edi
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movsxd rbp, eax
cmp ebp, 1
jle 0x140007214
mov rcx, rbp
lea edx, [rbx + 2]
call fcn.1400c537c
mov rdi, rax
test rax, rax
je 0x140007214
mov dword [rsp + 0x28], ebp
lea r9d, [rbx - 1]
lea r8, str.Ntdll
mov qword [rsp + 0x20], rax
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
cmp eax, ebp
jne 0x140007214
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rsi, rax
test rax, rax
jne 0x140007214
cmp word [0x14019f0a4], 0x40
jb 0x1400071c6
lea rcx, str.Error:_MAX_LIBRARY_HANDLES_is_too_small_n
call fcn.14004f910
jmp 0x140007214
xor edx, edx
mov r8d, 0x800
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov rsi, rax
test rax, rax
je 0x1400071fd
movzx ecx, word [0x14019f0a4]
lea rdx, [0x1401e8860]
mov qword [rdx + rcx*8], rax
inc cx
mov word [0x14019f0a4], cx
jmp 0x140007214
call fcn.140050120
mov r8, rax
lea rcx, str.Unable_to_load__S.dll:__s
mov rdx, rdi
call fcn.14004f910
mov rcx, rdi
call fcn.1400e9080
lea rdx, str.NtQueryVolumeInformationFile
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, dword [rsp + 0x40]
mov qword [0x1401d08b0], rax
test r12, r12
je 0x140007240
mov byte [r12], bl
test r14, r14
je 0x140007248
mov dword [r14], ebx
test edi, edi
js 0x1400074e9
lea eax, [rdi - 0x80]
cmp eax, 0x40
jbe 0x140007271
mov r8d, 0x456
lea rdx, str.D:_a_rufus_rufus_srcdrive.c
lea rcx, str._DriveIndex___DRIVE_INDEX_MIN____DriveIndex___DRIVE_INDEX_MAX_
call fcn.1400fc264
lea eax, [rdi - 0x80]
cmp eax, 0x40
ja 0x1400074e9
lea rdx, [rsp + 0x70]
mov ecx, 0x69
call qword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsA]
mov dword [rsp + 0x48], eax
test eax, eax
jne 0x1400072ae
call fcn.140050120
mov rdx, rax
lea rcx, str.GetLogicalDriveStrings_failed:__s
call fcn.14004f910
jmp 0x1400074e9
cmp eax, 0x69
jbe 0x1400072cc
mov r8d, 0x69
lea rcx, str.GetLogicalDriveStrings:_Buffer_too_small__required__lu_vs.__zu_
mov edx, eax
call fcn.14004f910
jmp 0x1400074e9
movzx eax, byte [rsp + 0x70]
lea rbx, [rsp + 0x70]
test al, al
je 0x14000742f
mov r15, r12
movsx ecx, al
call fcn.1400fde80
test eax, eax
je 0x140007373
movsx ecx, byte [rbx]
call fcn.1400fc9f0
mov rcx, rbx
mov byte [rbx], al
call qword [sym.imp.KERNEL32.dll_GetDriveTypeA]
mov ebp, eax
add eax, 0xfffffffe
cmp eax, 1
ja 0x140007373
movsx ecx, byte [rbx]
call fcn.1400fc9f0
mov edx, 7
mov dword [rsp + 0x20], eax
lea r9, str.._c:
lea rcx, [rsp + 0x68]
lea r8, [rdx - 8]
call fcn.140004960
lea rcx, [rsp + 0x68]
mov byte [rsp + 0x6e], 0
call fcn.140050e40
mov rdi, rax
cmp rax, 0xffffffffffffffff
jne 0x140007383
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x102
jne 0x14000736f
movsx ecx, byte [rbx]
call fcn.1400fc9f0
mov edx, eax
lea rcx, str.Warning:_Time_out_while_trying_to_query_drive__c
call fcn.14004f910
mov edi, dword [rsp + 0x40]
test rbx, rbx
jne 0x140007405
xor eax, eax
jmp 0x140007419
mov rax, qword [0x1401d08b0]
test rax, rax
je 0x1400073b7
mov r9d, 8
mov dword [rsp + 0x20], 4
lea r8, [rsp + 0x50]
mov rcx, rdi
lea rdx, [rsp + 0x58]
call rax
test eax, eax
jne 0x1400073b7
test byte [rsp + 0x54], 4
jne 0x14000736f
lea rdx, [rsp + 0x68]
mov rcx, rdi
call fcn.140006f40
mov esi, eax
test rdi, rdi
je 0x1400073d4
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov edi, dword [rsp + 0x40]
lea eax, [rdi - 0x80]
cmp esi, eax
jne 0x140007373
inc r13d
test r12, r12
je 0x1400073f4
movzx eax, byte [rbx]
inc dword [rsp + 0x44]
mov byte [r15], al
inc r15
test r14, r14
je 0x140007373
mov dword [r14], ebp
jmp 0x140007373
mov rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp byte [rbx + rax], 0
jne 0x140007410
inc rbx
add rbx, rax
movzx eax, byte [rbx]
test al, al
jne 0x1400072e1
mov r15d, dword [rsp + 0x44]
mov ebx, 1
test r13d, r13d
jne 0x1400074e9
test r14, r14
je 0x1400074e9
mov ecx, edi
call fcn.140005900
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rax
mov rbx, rax
call fcn.140005570
mov rcx, rbx
mov rdi, rax
call fcn.1400e9080
mov qword [rsp + 0x38], 0
lea rax, [rsp + 0x48]
mov qword [rsp + 0x30], rax
xor r9d, r9d
lea rax, [rsp + 0xe0]
mov dword [rsp + 0x28], 0x100
xor r8d, r8d
mov qword [rsp + 0x20], rax
mov edx, 0x700a0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
lea rcx, [rdi - 1]
mov ebx, eax
cmp rcx, 0xfffffffffffffffd
ja 0x1400074bc
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test ebx, ebx
je 0x1400074e9
cmp dword [rsp + 0x48], 0
jbe 0x1400074e9
mov rax, qword [rsp + 0xe8]
cmp eax, 0xc
jne 0x1400074dd
mov dword [r14], 3
jmp 0x1400074e9
cmp eax, 0xb
jne 0x1400074e9
mov dword [r14], 2
mov r14, qword [rsp + 0x1f0]
mov r13, qword [rsp + 0x1f8]
mov rdi, qword [rsp + 0x200]
mov rsi, qword [rsp + 0x208]
mov rbp, qword [rsp + 0x248]
test r12, r12
je 0x14000751e
movsxd rax, r15d
mov byte [rax + r12], 0
mov eax, ebx
mov rcx, qword [rsp + 0x1e0]
xor rcx, rsp
call fcn.1400b1f80
add rsp, 0x210
pop r15
pop r12
pop rbx
ret