Function at 0x140007750
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.140136540
mov eax, dword [str..:]
xor r15d, r15d
mov dword [rsp + 0x68], eax
xor r13d, r13d
cmp qword [0x1401d0930], rbx
movzx eax, word [0x1401567ec]
mov word [rsp + 0x6c], ax
movzx eax, byte [0x1401567ee]
mov byte [rsp + 0x6e], al
mov dword [rsp + 0x44], r15d
jne 0x1400078ed
mov dword [rsp + 0x28], ebx
lea r8, str.Ntdll
mov r9d, 0xffffffff
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 0x1400078ca
mov rcx, rbp
mov edx, 2
call fcn.1400c4f6c
mov rdi, rax
test rax, rax
je 0x1400078ca
mov dword [rsp + 0x28], ebp
lea r8, str.Ntdll
mov r9d, 0xffffffff
mov qword [rsp + 0x20], rax
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
cmp eax, ebp
jne 0x1400078ca
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rsi, rax
test rax, rax
jne 0x1400078ca
cmp word [0x14019f124], 0x40
jb 0x14000787c
lea rcx, str.Error:_MAX_LIBRARY_HANDLES_is_too_small_n
call fcn.14004f2f0
jmp 0x1400078ca
xor edx, edx
mov r8d, 0x800
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov rsi, rax
test rax, rax
je 0x1400078b3
movzx ecx, word [0x14019f124]
lea rdx, [0x1401e87e0]
mov qword [rdx + rcx*8], rax
inc cx
mov word [0x14019f124], cx
jmp 0x1400078ca
call fcn.14004fba0
mov r8, rax
lea rcx, str.Unable_to_load__S.dll:__s
mov rdx, rdi
call fcn.14004f2f0
mov rcx, rdi
call fcn.1400e8c70
lea rdx, str.NtQueryVolumeInformationFile
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, dword [rsp + 0x40]
mov qword [0x1401d0930], rax
test r12, r12
je 0x1400078f6
mov byte [r12], bl
test r14, r14
je 0x1400078fe
mov dword [r14], ebx
test edi, edi
js 0x140007b9e
lea eax, [rdi - 0x80]
cmp eax, 0x40
jbe 0x140007927
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.1400fbe54
lea eax, [rdi - 0x80]
cmp eax, 0x40
ja 0x140007b9e
lea rdx, [rsp + 0x70]
mov ecx, 0x69
call qword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsA]
mov dword [rsp + 0x48], eax
test eax, eax
jne 0x140007964
call fcn.14004fba0
mov rdx, rax
lea rcx, str.GetLogicalDriveStrings_failed:__s
call fcn.14004f2f0
jmp 0x140007b9e
cmp eax, 0x69
jbe 0x140007982
mov r8d, 0x69
lea rcx, str.GetLogicalDriveStrings:_Buffer_too_small__required__lu_vs.__zu_
mov edx, eax
call fcn.14004f2f0
jmp 0x140007b9e
movzx eax, byte [rsp + 0x70]
lea rbx, [rsp + 0x70]
test al, al
je 0x140007ae4
mov r15, r12
movsx ecx, al
call fcn.1400fda70
test eax, eax
je 0x140007a2c
movsx ecx, byte [rbx]
call fcn.1400fc5e0
mov rcx, rbx
mov byte [rbx], al
call qword [sym.imp.KERNEL32.dll_GetDriveTypeA]
mov ebp, eax
add eax, 0xfffffffe
cmp eax, 1
ja 0x140007a2c
movsx ecx, byte [rbx]
call fcn.1400fc5e0
lea r9, str.._c:
mov dword [rsp + 0x20], eax
mov edx, 7
lea rcx, [rsp + 0x68]
mov r8, 0xffffffffffffffff
call fcn.140004fd0
lea rcx, [rsp + 0x68]
mov byte [rsp + 0x6e], 0
call fcn.140050890
mov rdi, rax
cmp rax, 0xffffffffffffffff
jne 0x140007a3c
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x102
jne 0x140007a28
movsx ecx, byte [rbx]
call fcn.1400fc5e0
mov edx, eax
lea rcx, str.Warning:_Time_out_while_trying_to_query_drive__c
call fcn.14004f2f0
mov edi, dword [rsp + 0x40]
test rbx, rbx
jne 0x140007abe
xor eax, eax
jmp 0x140007ace
mov rax, qword [0x1401d0930]
test rax, rax
je 0x140007a70
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 0x140007a70
test byte [rsp + 0x54], 4
jne 0x140007a28
lea rdx, [rsp + 0x68]
mov rcx, rdi
call fcn.1400075f0
mov esi, eax
test rdi, rdi
je 0x140007a8d
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov edi, dword [rsp + 0x40]
lea eax, [rdi - 0x80]
cmp esi, eax
jne 0x140007a2c
inc r13d
test r12, r12
je 0x140007aad
movzx eax, byte [rbx]
inc dword [rsp + 0x44]
mov byte [r15], al
inc r15
test r14, r14
je 0x140007a2c
mov dword [r14], ebp
jmp 0x140007a2c
mov rax, 0xffffffffffffffff
inc rax
cmp byte [rbx + rax], 0
jne 0x140007ac5
inc rbx
add rbx, rax
movzx eax, byte [rbx]
test al, al
jne 0x140007997
mov r15d, dword [rsp + 0x44]
mov ebx, 1
test r13d, r13d
jne 0x140007b9e
test r14, r14
je 0x140007b9e
mov ecx, edi
call fcn.140005f90
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rax
mov rbx, rax
call fcn.140005bf0
mov rcx, rbx
mov rdi, rax
call fcn.1400e8c70
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 0x140007b71
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test ebx, ebx
je 0x140007b9e
cmp dword [rsp + 0x48], 0
jbe 0x140007b9e
mov rax, qword [rsp + 0xe8]
cmp eax, 0xc
jne 0x140007b92
mov dword [r14], 3
jmp 0x140007b9e
cmp eax, 0xb
jne 0x140007b9e
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 0x140007bd3
movsxd rax, r15d
mov byte [rax + r12], 0
mov eax, ebx
mov rcx, qword [rsp + 0x1e0]
xor rcx, rsp
call fcn.1400b2a30
add rsp, 0x210
pop r15
pop r12
pop rbx
ret