Function at 0x140005af0
Capabilities:
Get disk information

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x310
mov rax, qword [0x140106438]
xor rax, rsp
mov qword [rsp + 0x300], rax
mov eax, dword [0x1400d78f8]
mov r14, r8
movsd xmm0, qword [str.:_autorun.inf]
mov rsi, rdx
mov dword [rsp + 0x60], eax
mov ebx, ecx
movzx eax, word [0x1400d78fc]
xor r12d, r12d
mov word [rsp + 0x64], ax
xor edx, edx
movzx eax, byte [0x1400d78fe]
mov r8d, 0x20a
mov dword [rsp + 0x44], ecx
mov r15d, r9d
lea rcx, [rsp + 0xf0]
mov byte [rsp + 0x66], al
mov dword [rsp + 0x40], 0x5c3a23
mov edi, r12d
movsd qword [rsp + 0x58], xmm0
call fcn.140093c00
lea r13, str.NO_LABEL
xor r8d, r8d
mov rdx, rsi
mov qword [r14], r13
mov ecx, ebx
call fcn.1400052b0
test eax, eax
je 0x140005eb1
movzx eax, byte [rsi]
mov ecx, ebx
test al, al
jne 0x140005c8b
xor r9d, r9d
xor r8d, r8d
xor edx, edx
call fcn.140003fa0
mov rbx, rax
test rax, rax
jne 0x140005bc5
lea rcx, str.No_logical_drive_found__unpartitioned__
call fcn.140041aa0
jmp 0x140005be0
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.140003b60
mov rcx, rbx
mov rdi, rax
call fcn.14009b5a0
mov dword [rsp + 0x38], 0x40
lea rax, [rsp + 0x70]
mov qword [rsp + 0x30], rax
lea r9, [rsp + 0x50]
lea rax, [rsp + 0x48]
mov r8d, 0x40
mov qword [rsp + 0x28], rax
lea rdx, [rsp + 0xf0]
lea rax, [rsp + 0x4c]
mov rcx, rdi
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_GetVolumeInformationByHandleW]
test eax, eax
je 0x140005c6f
mov qword [rsp + 0x38], r12
lea rsi, [0x140142b10]
mov qword [rsp + 0x30], r12
lea r8, [rsp + 0xf0]
mov ebx, 0x105
mov r9, 0xffffffffffffffff
mov dword [rsp + 0x28], ebx
xor edx, edx
mov ecx, 0xfde9
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
cmp byte [0x140142b10], r12b
cmovne r13, rsi
mov qword [r14], r13
lea rax, [rdi - 1]
cmp rax, 0xfffffffffffffffd
ja 0x140005eac
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x140005eac
mov qword [rsp + 0x368], rbp
mov byte [rsp + 0x58], al
mov byte [rsp + 0x40], al
call fcn.140003f00
mov r9d, 1
xor r8d, r8d
xor edx, edx
mov rcx, rax
mov rbx, rax
call fcn.140003b60
mov rcx, rbx
mov rbp, rax
call fcn.14009b5a0
mov qword [rsp + 0x38], r12
lea rax, [rsp + 0x54]
mov qword [rsp + 0x30], rax
xor r9d, r9d
mov dword [rsp + 0x28], r12d
xor r8d, r8d
mov edx, 0x2d4800
mov qword [rsp + 0x20], r12
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x140005d0e
mov r8d, 1
lea rdx, [rsp + 0x58]
lea rcx, str.label
call fcn.140020e30
mov rdi, rax
jmp 0x140005d34
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x15
jne 0x140005d34
test r15d, r15d
jne 0x140005d34
movsx ecx, byte [rsi]
call fcn.1400a1974
mov edx, eax
lea rcx, str.Ignoring_autorun.inf_label_for_drive__c:_No_media
call fcn.140041aa0
lea rax, [rbp - 1]
cmp rax, 0xfffffffffffffffd
ja 0x140005d47
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test rdi, rdi
je 0x140005db3
test r15d, r15d
jne 0x140005d6a
movsx ecx, byte [rsi]
call fcn.1400a1974
mov edx, eax
lea rcx, str.Using_autorun.inf_label_for_drive__c:__s
mov r8, rdi
call fcn.140041aa0
mov rax, 0xffffffffffffffff
inc rax
cmp byte [rdi + rax], r12b
jne 0x140005d71
inc rax
lea rsi, [0x140142b10]
mov ebx, 0x105
mov rdx, rdi
cmp rax, rbx
mov rcx, rsi
cmovb rbx, rax
mov r8, rbx
call fcn.140093550
mov rcx, rdi
mov byte [rbx + rsi - 1], r12b
call fcn.14009b5a0
mov qword [r14], rsi
jmp 0x140005ea4
lea rcx, [rsp + 0x40]
call fcn.140003550
mov ebx, 0x105
mov edx, 2
mov ecx, ebx
mov rbp, rax
call fcn.1400966e0
mov dword [rsp + 0x38], r12d
xor r9d, r9d
mov qword [rsp + 0x30], r12
mov r8d, ebx
mov qword [rsp + 0x28], r12
mov rdx, rax
mov rcx, rbp
mov qword [rsp + 0x20], r12
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
mov r15d, eax
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rsi, [0x140142b10]
mov r12d, eax
test r15d, r15d
je 0x140005e4b
xor eax, eax
mov r8, rdi
mov qword [rsp + 0x38], rax
xor edx, edx
mov qword [rsp + 0x30], rax
mov ecx, 0xfde9
mov dword [rsp + 0x28], ebx
lea r9, [rax - 1]
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test eax, eax
jne 0x140005e4b
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r12d, eax
xor r15d, r15d
test rdi, rdi
je 0x140005e58
mov rcx, rdi
call fcn.14009b5a0
test rbp, rbp
je 0x140005e65
mov rcx, rbp
call fcn.14009b5a0
mov ecx, r12d
call qword [sym.imp.KERNEL32.dll_SetLastError]
test r15d, r15d
je 0x140005e80
cmp byte [0x140142b10], 0
jne 0x140005dab
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [rsp + 0x44]
mov ebx, eax
call fcn.140010d40
mov qword [r14], rax
test rax, rax
jne 0x140005ea4
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov qword [r14], r13
mov rbp, qword [rsp + 0x368]
mov eax, 1
mov rcx, qword [rsp + 0x300]
xor rcx, rsp
call fcn.140092060
add rsp, 0x310
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret