Function at 0x140062230
Capabilities:
Get disk information
Get disk size

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r14
push r15
lea rbp, [rsp - 0x107a8]
mov eax, 0x108a8
call fcn.1400ddab0
sub rsp, rax
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
test rdx, rdx
je 0x1400628a9
cmp word [rdx], 0
je 0x1400628a9
lea rdx, str.List
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
jne 0x140062437
mov rax, qword [0x1401179f0]
xor r9d, r9d
xor edx, edx
mov qword [rbp + 0x107e8], rax
mov rcx, rax
mov byte [rsp + 0x20], 1
lea r8, [r9 - 1]
call fcn.1400c3f40
xor esi, esi
cmp word [rdi], si
jne 0x1400622bb
mov ebx, 0x100
jmp 0x140062352
lea rdx, str.CDRom
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
jne 0x1400622d4
lea ebx, [rax + 5]
jmp 0x140062352
lea rdx, str.Removable
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
jne 0x1400622ed
lea ebx, [rax + 2]
jmp 0x140062352
lea rdx, str.Fixed
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
jne 0x140062306
lea ebx, [rax + 3]
jmp 0x140062352
lea rdx, str.Network
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
jne 0x14006231f
lea ebx, [rax + 4]
jmp 0x140062352
lea rdx, str.Ramdisk
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
jne 0x140062338
lea ebx, [rax + 6]
jmp 0x140062352
lea rdx, str.Unknown
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
jne case.0x140062631.1
mov ebx, esi
mov qword [rsp + 0x108f0], r12
lea r15, [rsp + 0x60]
mov qword [rsp + 0x108a0], r13
mov r12d, esi
mov dil, 0x41
nop dword [rax]
movzx r13d, dil
lea rcx, [rbp - 0x60]
mov word [rbp - 0x60], r13w
mov dword [rbp - 0x5e], 0x5c003a
mov word [rbp - 0x5a], si
call qword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, ebx
je 0x14006239f
cmp ebx, 0x100
jne 0x1400623aa
cmp eax, 1
je 0x1400623aa
inc r12d
mov word [r15], r13w
add r15, 2
inc dil
cmp dil, 0x5a
jbe 0x140062370
mov rcx, qword [rbp + 0x107e8]
lea rdx, [rsp + 0x60]
xor r9d, r9d
movsxd rax, r12d
mov byte [rsp + 0x20], 1
lea r8, [r9 - 1]
mov word [rsp + rax*2 + 0x60], si
call fcn.1400c3f40
mov r13, qword [rsp + 0x108a0]
mov r12, qword [rsp + 0x108f0]
cmp word [rsp + 0x60], si
jne 0x1400629f5
mov rsi, qword [rbp + 0x107e0]
mov rax, qword [0x140112060]
lea rdx, [0x1400f5d6c]
test byte [rax + 0x140], 1
je 0x140062536
lea r9, [0x1400e0684]
xor r8d, r8d
mov rcx, rsi
call fcn.14004d4a0
add rsp, 0x108a8
pop r15
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret
lea rdx, str.FileSystem
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
je 0x1400628e6
lea rdx, [0x1400fce20]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
je 0x1400628e6
lea rdx, str.Label
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
jne 0x140062483
lea ebx, [rax + 3]
jmp 0x1400628eb
mov r8d, 9
lea rdx, str.SetLabel:
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsnicmp]
test eax, eax
jne 0x14006255e
mov r8d, 0x7ffe
lea rcx, [rbp + 0x7a0]
mov rdx, rdi
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncpy]
xor esi, esi
lea rcx, [rbp + 0x7a0]
mov word [rbp + 0x1079c], si
mov rax, 0xffffffffffffffff
nop
inc rax
cmp word [rcx + rax*2], si
jne 0x1400624d0
test rax, rax
je 0x1400624f8
cmp word [rbp + rax*2 + 0x79e], 0x5c
je 0x1400624f8
mov r14d, 0x5c
mov word [rbp + rax*2 + 0x7a0], r14w
lea rdx, [rbx + 0x12]
nop dword [rax]
movzx eax, word [rdx]
cmp ax, 0x20
je 0x14006250f
cmp ax, 9
jne 0x140062515
add rdx, 2
jmp 0x140062500
lea rcx, [rbp + 0x7a0]
call qword [sym.imp.KERNEL32.dll_SetVolumeLabelW]
test eax, eax
lea rcx, [0x1400e0714]
lea rdx, [0x1400f5d6c]
cmovne rdx, rcx
mov rcx, qword [0x1401156c0]
xor r9d, r9d
mov byte [rsp + 0x20], 1
lea r8, [r9 - 1]
call fcn.1400c3f40
add rsp, 0x108a8
pop r15
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret
lea rdx, str.Serial
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
jne 0x14006257a
lea ebx, [rax + 5]
jmp 0x1400628eb
lea rdx, str.Type
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
jne 0x14006268d
mov rbx, qword [0x1401179f0]
xor r9d, r9d
xor edx, edx
mov byte [rsp + 0x20], 1
mov rcx, rbx
lea r8, [r9 - 1]
call fcn.1400c3f40
mov r8d, 0x7ffe
lea rcx, [rbp + 0x7a0]
mov rdx, rdi
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncpy]
xor esi, esi
lea rcx, [rbp + 0x7a0]
mov word [rbp + 0x1079c], si
mov rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp word [rcx + rax*2], si
jne 0x1400625e0
test rax, rax
je 0x140062608
cmp word [rbp + rax*2 + 0x79e], 0x5c
je 0x140062608
mov r14d, 0x5c
mov word [rbp + rax*2 + 0x7a0], r14w
lea rcx, [rbp + 0x7a0]
call qword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 6
ja case.0x140062631.1
lea rdx, [0x140000000]
mov eax, eax
mov ecx, dword [rdx + rax*4 + 0x62a24]
add rcx, rdx
jmp rcx
lea rdx, str.Unknown
mov rcx, rbx
jmp 0x1400629e4
lea rdx, str.Removable
mov rcx, rbx
jmp 0x1400629e4
lea rdx, str.Fixed
mov rcx, rbx
jmp 0x1400629e4
lea rdx, str.Network
mov rcx, rbx
jmp 0x1400629e4
lea rdx, str.CDROM
mov rcx, rbx
jmp 0x1400629e4
lea rdx, str.RAMDisk
mov rcx, rbx
jmp 0x1400629e4
lea rdx, str.Status
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
jne 0x1400627a2
mov rbx, qword [0x1401179f0]
xor r9d, r9d
xor edx, edx
mov byte [rsp + 0x20], 1
mov rcx, rbx
lea r8, [r9 - 1]
call fcn.1400c3f40
mov r8d, 0x7ffe
lea rcx, [rbp + 0x7a0]
mov rdx, rdi
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncpy]
xor esi, esi
lea rcx, [rbp + 0x7a0]
mov word [rbp + 0x1079c], si
mov rax, 0xffffffffffffffff
nop
inc rax
cmp word [rcx + rax*2], si
jne 0x1400626f0
test rax, rax
je 0x140062718
cmp word [rbp + rax*2 + 0x79e], 0x5c
je 0x140062718
mov r14d, 0x5c
mov word [rbp + rax*2 + 0x7a0], r14w
lea rax, [rbp + 0x107f8]
lea r9, [rsp + 0x40]
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x44]
lea rdx, [rsp + 0x48]
lea rcx, [rbp + 0x7a0]
call qword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
test eax, eax
jne 0x140062793
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x140062793
cmp eax, 3
je 0x140062784
cmp eax, 0x13
je 0x140062775
lea rcx, str.NotReady
cmp eax, 0x15
lea rdx, str.Unknown
cmove rdx, rcx
mov rcx, rbx
jmp 0x1400629e4
lea rdx, str.ReadOnly
mov rcx, rbx
jmp 0x1400629e4
lea rdx, str.Invalid
mov rcx, rbx
jmp 0x1400629e4
lea rdx, str.Ready
mov rcx, rbx
jmp 0x1400629e4
lea rdx, str.StatusCD
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
jne 0x140062881
mov rsi, qword [0x1401179f0]
xor r9d, r9d
xor edx, edx
mov byte [rsp + 0x20], 1
mov rcx, rsi
lea r8, [r9 - 1]
call fcn.1400c3f40
cmp word [rdi], 0
jne 0x1400627fe
xor r9d, r9d
lea rdx, [rbp + 0xa0]
mov r8d, 0x80
lea rcx, str.status_cdaudio_mode
call qword [sym.imp.WINMM.dll_mciSendStringW]
test eax, eax
jmp 0x14006286c
mov r9, rdi
lea r8, str.open__s_type_cdaudio_alias_cd_wait_shareable
mov edx, 0x100
lea rcx, [rbp + 0x1a0]
call fcn.1400bf0b0
xor r9d, r9d
lea rcx, [rbp + 0x1a0]
xor r8d, r8d
xor edx, edx
call qword [sym.imp.WINMM.dll_mciSendStringW]
test eax, eax
jne case.0x140062631.1
xor r9d, r9d
lea rdx, [rbp + 0xa0]
mov r8d, 0x80
lea rcx, str.status_cd_mode
call qword [sym.imp.WINMM.dll_mciSendStringW]
xor r9d, r9d
lea rcx, str.close_cd_wait
xor r8d, r8d
xor edx, edx
mov ebx, eax
call qword [sym.imp.WINMM.dll_mciSendStringW]
test ebx, ebx
jne case.0x140062631.1
lea rdx, [rbp + 0xa0]
mov rcx, rsi
jmp 0x1400629e4
lea rdx, str.Capacity
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
je 0x1400628c8
lea rdx, [0x1400fce90]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
je 0x1400628c8
mov rcx, qword [0x1401179f0]
xor r9d, r9d
xor edx, edx
mov byte [rsp + 0x20], 1
lea r8, [r9 - 1]
call fcn.1400c3f40
jmp 0x1400623fa
xor r8d, r8d
mov rdx, rdi
mov rcx, rsi
call fcn.140061d90
add rsp, 0x108a8
pop r15
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ebx, 2
mov r15, qword [0x1401179f0]
xor esi, esi
mov rcx, r15
mov byte [rsp + 0x20], 1
mov edx, esi
xor r9d, r9d
lea r8, [rsi - 1]
call fcn.1400c3f40
mov r8d, 0x7ffe
lea rcx, [rbp + 0x7a0]
mov rdx, rdi
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncpy]
lea rcx, [rbp + 0x7a0]
mov word [rbp + 0x1079c], si
mov rax, 0xffffffffffffffff
inc rax
cmp word [rcx + rax*2], 0
jne 0x140062935
test rax, rax
je 0x14006295e
cmp word [rbp + rax*2 + 0x79e], 0x5c
je 0x14006295e
mov r14d, 0x5c
mov word [rbp + rax*2 + 0x7a0], r14w
mov dword [rsp + 0x38], 0xff
lea rax, [rbp + 0x5a0]
mov qword [rsp + 0x30], rax
lea r9, [rbp + 0x107e8]
lea rax, [rsp + 0x4c]
mov r8d, 0xff
mov qword [rsp + 0x28], rax
lea rdx, [rbp + 0x3a0]
lea rax, [rsp + 0x50]
lea rcx, [rbp + 0x7a0]
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
test eax, eax
je case.0x140062631.1
sub ebx, 2
je 0x1400629da
sub ebx, 1
je 0x1400629d1
cmp ebx, 2
jne 0x1400629f5
mov edx, dword [rbp + 0x107e8]
mov r8b, reloc.OLEAUT32.dll_SafeArrayGetElement
mov rcx, r15
call fcn.140001470
jmp 0x1400629f5
lea rdx, [rbp + 0x3a0]
jmp 0x1400629e1
lea rdx, [rbp + 0x5a0]
mov rcx, r15
xor r9d, r9d
mov byte [rsp + 0x20], 1
lea r8, [r9 - 1]
call fcn.1400c3f40
mov rcx, qword [0x1401156c0]
lea rdx, [0x1400e0714]
xor r9d, r9d
mov byte [rsp + 0x20], 1
lea r8, [r9 - 1]
call fcn.1400c3f40
add rsp, 0x108a8
pop r15
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret