Function at 0x1400052b0
Capabilities:
Get disk information

Disassembly:
mov r11, rsp
push rbx
push r12
push r14
sub rsp, 0x210
mov rax, qword [0x140106438]
xor rax, rsp
mov qword [rsp + 0x1e0], rax
mov qword [r11 + 0x20], rbp
mov r14, rdx
mov qword [r11 - 0x20], rsi
xor ebp, ebp
mov qword [r11 - 0x28], rdi
mov ebx, ebp
mov qword [r11 - 0x30], r13
mov edi, ecx
mov r13, r8
mov qword [rsp + 0x48], rdx
mov dword [rsp + 0x40], ecx
mov r8d, 0x100
xor edx, edx
mov qword [r11 - 0x38], r15
lea rcx, [r11 - 0x148]
call fcn.140093c00
cmp qword [0x140142b08], rbx
mov r12d, ebp
mov eax, dword [str..:]
mov r15d, ebp
mov dword [rsp + 0x68], eax
movzx eax, word [0x1400d776c]
mov word [rsp + 0x6c], ax
movzx eax, byte [0x1400d776e]
mov byte [rsp + 0x6e], al
jne 0x14000544b
mov dword [rsp + 0x28], ebp
lea r9d, [rbp - 1]
lea r8, str.Ntdll
mov qword [rsp + 0x20], rbp
xor edx, edx
mov ecx, 0xfde9
mov esi, ebp
mov edi, ebp
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movsxd rbp, eax
cmp ebp, 1
jle 0x140005426
mov rcx, rbp
lea edx, [rdi + 2]
call fcn.1400966e0
mov rdi, rax
test rax, rax
je 0x140005426
mov dword [rsp + 0x28], ebp
lea r9d, [rsi - 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 0x140005426
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rsi, rax
test rax, rax
jne 0x140005426
cmp word [0x1401128d4], 0x40
jb 0x1400053d8
lea rcx, str.Error:_MAX_LIBRARY_HANDLES_is_too_small_n
call fcn.140041aa0
jmp 0x140005426
xor edx, edx
mov r8d, 0x800
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov rsi, rax
test rax, rax
je 0x14000540f
movzx ecx, word [0x1401128d4]
lea rdx, [0x14015a360]
mov qword [rdx + rcx*8], rax
inc cx
mov word [0x1401128d4], cx
jmp 0x140005426
call fcn.140041e50
mov r8, rax
lea rcx, str.Unable_to_load__S.dll:__s
mov rdx, rdi
call fcn.140041aa0
mov rcx, rdi
call fcn.14009b5a0
lea rdx, str.NtQueryVolumeInformationFile
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, dword [rsp + 0x40]
xor ebp, ebp
mov qword [0x140142b08], rax
test r14, r14
je 0x140005453
mov byte [r14], bl
test r13, r13
je 0x14000545c
mov dword [r13], ebp
test edi, edi
js 0x14000571b
lea eax, [rdi - 0x80]
cmp eax, 0x40
jbe 0x140005485
mov r8d, 0x458
lea rdx, str.C:_src_r3dusb_srcdrive.c
lea rcx, str._DriveIndex___DRIVE_INDEX_MIN____DriveIndex___DRIVE_INDEX_MAX_
call fcn.1400a15c4
lea eax, [rdi - 0x80]
cmp eax, 0x40
ja 0x14000571b
lea rdx, [rsp + 0x70]
mov ecx, 0x69
call qword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsA]
mov dword [rsp + 0x44], eax
test eax, eax
jne 0x1400054c2
call fcn.140041e50
mov rdx, rax
lea rcx, str.GetLogicalDriveStrings_failed:__s
call fcn.140041aa0
jmp 0x14000571b
cmp eax, 0x69
jbe 0x1400054e0
mov r8d, 0x69
lea rcx, str.GetLogicalDriveStrings:_Buffer_too_small__required__lu_vs.__zu_
mov edx, eax
call fcn.140041aa0
jmp 0x14000571b
movzx eax, byte [rsp + 0x70]
lea rbx, [rsp + 0x70]
test al, al
je 0x1400055b3
movsx ecx, al
call fcn.1400a1bd0
test eax, eax
je 0x1400056fe
movsx ecx, byte [rbx]
call fcn.1400a1974
mov rcx, rbx
mov byte [rbx], al
call qword [sym.imp.KERNEL32.dll_GetDriveTypeA]
mov ebp, eax
add eax, 0xfffffffe
cmp eax, 1
ja 0x140005584
movsx ecx, byte [rbx]
call fcn.1400a1974
mov edx, 7
mov dword [rsp + 0x20], eax
lea r9, str.._c:
lea rcx, [rsp + 0x68]
lea r8, [rdx - 8]
call fcn.1400034e0
lea rcx, [rsp + 0x68]
mov byte [rsp + 0x6e], 0
call fcn.140042a20
mov rdi, rax
cmp rax, 0xffffffffffffffff
jne 0x140005671
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x102
jne 0x140005584
movsx ecx, byte [rbx]
call fcn.1400a1974
mov edx, eax
lea rcx, str.Warning:_Time_out_while_trying_to_query_drive__c
call fcn.140041aa0
mov rax, 0xffffffffffffffff
nop dword [rax + rax]
inc rax
cmp byte [rbx + rax], 0
jne 0x140005590
inc rbx
add rbx, rax
movzx eax, byte [rbx]
test al, al
jne 0x1400054f2
mov r14, qword [rsp + 0x48]
mov edi, dword [rsp + 0x40]
mov ebx, 1
test r15d, r15d
jne 0x14000571b
test r13, r13
je 0x14000571b
mov ecx, edi
call fcn.140003f00
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rax
mov rbx, rax
call fcn.140003b60
mov rcx, rbx
mov rdi, rax
call fcn.14009b5a0
mov qword [rsp + 0x38], 0
lea rax, [rsp + 0x44]
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 0x140005640
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test ebx, ebx
je 0x14000571b
cmp dword [rsp + 0x44], 0
jbe 0x14000571b
mov rax, qword [rsp + 0xe8]
cmp eax, 0xc
jne 0x14000570e
mov dword [r13], 3
jmp 0x14000571b
mov rax, qword [0x140142b08]
test rax, rax
je 0x1400056a9
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 0x1400056a9
test byte [rsp + 0x54], 4
jne 0x140005584
lea rdx, [rsp + 0x68]
mov rcx, rdi
call fcn.140005150
mov esi, eax
test rdi, rdi
je 0x1400056c6
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [rsp + 0x40]
add eax, 0xffffff80
cmp esi, eax
jne 0x140005584
inc r15d
cmp qword [rsp + 0x48], 0
je 0x1400056ec
movzx eax, byte [rbx]
inc r12d
mov byte [r14], al
inc r14
test r13, r13
je 0x140005584
mov dword [r13], ebp
jmp 0x140005584
test rbx, rbx
jne 0x140005584
xor eax, eax
jmp 0x140005599
cmp eax, 0xb
jne 0x14000571b
mov dword [r13], 2
mov r15, qword [rsp + 0x1f0]
mov r13, qword [rsp + 0x1f8]
mov rdi, qword [rsp + 0x200]
mov rsi, qword [rsp + 0x208]
mov rbp, qword [rsp + 0x248]
test r14, r14
je 0x140005750
movsxd rax, r12d
mov byte [rax + r14], 0
mov eax, ebx
mov rcx, qword [rsp + 0x1e0]
xor rcx, rsp
call fcn.140092060
add rsp, 0x210
pop r14
pop r12
pop rbx
ret