Function at 0x140008090
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 [0x140193440]
xor rax, rsp
mov qword [rsp + 0x300], rax
mov eax, dword [0x140156978]
mov r14, r8
movsd xmm0, qword [str.:_autorun.inf]
mov rsi, rdx
mov dword [rsp + 0x60], eax
mov ebx, ecx
movzx eax, word [0x14015697c]
xor r12d, r12d
mov word [rsp + 0x64], ax
xor edx, edx
movzx eax, byte [0x14015697e]
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.140136540
lea r13, str.NO_LABEL
xor r8d, r8d
mov rdx, rsi
mov qword [r14], r13
mov ecx, ebx
call fcn.140007750
test eax, eax
je 0x140008456
movzx eax, byte [rsi]
mov ecx, ebx
test al, al
jne 0x14000822a
xor r9d, r9d
xor r8d, r8d
xor edx, edx
call fcn.140006090
mov rbx, rax
test rax, rax
jne 0x140008165
lea rcx, str.No_logical_drive_found__unpartitioned__
call fcn.14004f2f0
jmp 0x140008180
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.140005bf0
mov rcx, rbx
mov rdi, rax
call fcn.1400e8c70
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 0x14000820e
mov qword [rsp + 0x38], r12
lea rsi, [0x1401d0620]
mov qword [rsp + 0x30], r12
lea r8, [rsp + 0xf0]
mov dword [rsp + 0x28], 0x105
mov r9, 0xffffffffffffffff
xor edx, edx
mov qword [rsp + 0x20], rsi
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
cmp byte [0x1401d0620], r12b
cmovne r13, rsi
mov qword [r14], r13
lea rax, [rdi - 1]
cmp rax, 0xfffffffffffffffd
ja 0x140008451
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x140008451
mov qword [rsp + 0x368], rbp
mov byte [rsp + 0x58], al
mov byte [rsp + 0x40], al
call fcn.140005f90
mov r9d, 1
xor r8d, r8d
xor edx, edx
mov rcx, rax
mov rbx, rax
call fcn.140005bf0
mov rcx, rbx
mov rbp, rax
call fcn.1400e8c70
mov qword [rsp + 0x38], r12
xor r9d, r9d
mov qword [rsp + 0x30], r12
xor r8d, r8d
mov dword [rsp + 0x28], r12d
mov edx, 0x2d4800
mov rcx, rbp
mov qword [rsp + 0x20], r12
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x1400082a8
mov r8d, 1
lea rdx, [rsp + 0x58]
lea rcx, str.label
call fcn.140026e40
mov rdi, rax
jmp 0x1400082ce
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x15
jne 0x1400082ce
test r15d, r15d
jne 0x1400082ce
movsx ecx, byte [rsi]
call fcn.1400fc5e0
mov edx, eax
lea rcx, str.Ignoring_autorun.inf_label_for_drive__c:_No_media
call fcn.14004f2f0
lea rax, [rbp - 1]
cmp rax, 0xfffffffffffffffd
ja 0x1400082e1
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test rdi, rdi
je 0x140008355
test r15d, r15d
jne 0x140008304
movsx ecx, byte [rsi]
call fcn.1400fc5e0
mov edx, eax
lea rcx, str.Using_autorun.inf_label_for_drive__c:__s
mov r8, rdi
call fcn.14004f2f0
mov r9, 0xffffffffffffffff
nop dword [rax + rax]
cmp byte [rdi + r9 + 1], r12b
lea r9, [r9 + 1]
jne 0x140008310
lea rax, [r9 + 1]
mov ebx, 0x105
cmp rax, rbx
lea rsi, [0x1401d0620]
mov rdx, rdi
mov rcx, rsi
cmovb rbx, rax
mov r8, rbx
call fcn.140135ea0
mov rcx, rdi
mov byte [rbx + rsi - 1], r12b
call fcn.1400e8c70
mov qword [r14], rsi
jmp 0x140008449
lea rcx, [rsp + 0x40]
call fcn.1400051a0
mov ebx, 0x105
mov edx, 2
mov ecx, ebx
mov rbp, rax
call fcn.1400c4f6c
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, [0x1401d0620]
mov r12d, eax
test r15d, r15d
je 0x1400083f0
xor eax, eax
mov r9, 0xffffffffffffffff
mov qword [rsp + 0x38], rax
mov r8, rdi
mov qword [rsp + 0x30], rax
xor edx, edx
mov dword [rsp + 0x28], ebx
mov ecx, 0xfde9
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test eax, eax
jne 0x1400083f0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r12d, eax
xor r15d, r15d
test rdi, rdi
je 0x1400083fd
mov rcx, rdi
call fcn.1400e8c70
test rbp, rbp
je 0x14000840a
mov rcx, rbp
call fcn.1400e8c70
mov ecx, r12d
call qword [sym.imp.KERNEL32.dll_SetLastError]
test r15d, r15d
je 0x140008425
cmp byte [0x1401d0620], 0
jne 0x14000834d
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [rsp + 0x44]
mov ebx, eax
call fcn.140015440
mov qword [r14], rax
test rax, rax
jne 0x140008449
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.1400b2a30
add rsp, 0x310
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret