Function at 0x140062160
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.1400ddd60
sub rsp, rax
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
test rdx, rdx
je 0x1400627d9
cmp word [rdx], 0
je 0x1400627d9
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 0x140062367
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.1400c4200
xor esi, esi
cmp word [rdi], si
jne 0x1400621eb
mov ebx, 0x100
jmp 0x140062282
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 0x140062204
lea ebx, [rax + 5]
jmp 0x140062282
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 0x14006221d
lea ebx, [rax + 2]
jmp 0x140062282
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 0x140062236
lea ebx, [rax + 3]
jmp 0x140062282
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 0x14006224f
lea ebx, [rax + 4]
jmp 0x140062282
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 0x140062268
lea ebx, [rax + 6]
jmp 0x140062282
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.0x140062561.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 0x1400622cf
cmp ebx, 0x100
jne 0x1400622da
cmp eax, 1
je 0x1400622da
inc r12d
mov word [r15], r13w
add r15, 2
inc dil
cmp dil, 0x5a
jbe 0x1400622a0
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.1400c4200
mov r13, qword [rsp + 0x108a0]
mov r12, qword [rsp + 0x108f0]
cmp word [rsp + 0x60], si
jne 0x140062925
mov rsi, qword [rbp + 0x107e0]
mov rax, qword [0x140112060]
lea rdx, [0x1400f5d5c]
test byte [rax + 0x140], 1
je 0x140062466
lea r9, [0x1400e0674]
xor r8d, r8d
mov rcx, rsi
call fcn.14004d3c0
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 0x140062816
lea rdx, [0x1400fce10]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
je 0x140062816
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 0x1400623b3
lea ebx, [rax + 3]
jmp 0x14006281b
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 0x14006248e
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 0x140062400
test rax, rax
je 0x140062428
cmp word [rbp + rax*2 + 0x79e], 0x5c
je 0x140062428
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 0x14006243f
cmp ax, 9
jne 0x140062445
add rdx, 2
jmp 0x140062430
lea rcx, [rbp + 0x7a0]
call qword [sym.imp.KERNEL32.dll_SetVolumeLabelW]
test eax, eax
lea rcx, [0x1400e0704]
lea rdx, [0x1400f5d5c]
cmovne rdx, rcx
mov rcx, qword [0x1401156c0]
xor r9d, r9d
mov byte [rsp + 0x20], 1
lea r8, [r9 - 1]
call fcn.1400c4200
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 0x1400624aa
lea ebx, [rax + 5]
jmp 0x14006281b
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 0x1400625bd
mov rbx, qword [0x1401179f0]
xor r9d, r9d
xor edx, edx
mov byte [rsp + 0x20], 1
mov rcx, rbx
lea r8, [r9 - 1]
call fcn.1400c4200
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 0x140062510
test rax, rax
je 0x140062538
cmp word [rbp + rax*2 + 0x79e], 0x5c
je 0x140062538
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.0x140062561.1
lea rdx, [0x140000000]
mov eax, eax
mov ecx, dword [rdx + rax*4 + 0x62954]
add rcx, rdx
jmp rcx
lea rdx, str.Unknown
mov rcx, rbx
jmp 0x140062914
lea rdx, str.Removable
mov rcx, rbx
jmp 0x140062914
lea rdx, str.Fixed
mov rcx, rbx
jmp 0x140062914
lea rdx, str.Network
mov rcx, rbx
jmp 0x140062914
lea rdx, str.CDROM
mov rcx, rbx
jmp 0x140062914
lea rdx, str.RAMDisk
mov rcx, rbx
jmp 0x140062914
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 0x1400626d2
mov rbx, qword [0x1401179f0]
xor r9d, r9d
xor edx, edx
mov byte [rsp + 0x20], 1
mov rcx, rbx
lea r8, [r9 - 1]
call fcn.1400c4200
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 0x140062620
test rax, rax
je 0x140062648
cmp word [rbp + rax*2 + 0x79e], 0x5c
je 0x140062648
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 0x1400626c3
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x1400626c3
cmp eax, 3
je 0x1400626b4
cmp eax, 0x13
je 0x1400626a5
lea rcx, str.NotReady
cmp eax, 0x15
lea rdx, str.Unknown
cmove rdx, rcx
mov rcx, rbx
jmp 0x140062914
lea rdx, str.ReadOnly
mov rcx, rbx
jmp 0x140062914
lea rdx, str.Invalid
mov rcx, rbx
jmp 0x140062914
lea rdx, str.Ready
mov rcx, rbx
jmp 0x140062914
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 0x1400627b1
mov rsi, qword [0x1401179f0]
xor r9d, r9d
xor edx, edx
mov byte [rsp + 0x20], 1
mov rcx, rsi
lea r8, [r9 - 1]
call fcn.1400c4200
cmp word [rdi], 0
jne 0x14006272e
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 0x14006279c
mov r9, rdi
lea r8, str.open__s_type_cdaudio_alias_cd_wait_shareable
mov edx, 0x100
lea rcx, [rbp + 0x1a0]
call fcn.1400bf370
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.0x140062561.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.0x140062561.1
lea rdx, [rbp + 0xa0]
mov rcx, rsi
jmp 0x140062914
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 0x1400627f8
lea rdx, [0x1400fce80]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
je 0x1400627f8
mov rcx, qword [0x1401179f0]
xor r9d, r9d
xor edx, edx
mov byte [rsp + 0x20], 1
lea r8, [r9 - 1]
call fcn.1400c4200
jmp 0x14006232a
xor r8d, r8d
mov rdx, rdi
mov rcx, rsi
call fcn.140061cc0
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.1400c4200
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 0x140062865
test rax, rax
je 0x14006288e
cmp word [rbp + rax*2 + 0x79e], 0x5c
je 0x14006288e
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.0x140062561.1
sub ebx, 2
je 0x14006290a
sub ebx, 1
je 0x140062901
cmp ebx, 2
jne 0x140062925
mov edx, dword [rbp + 0x107e8]
mov r8b, reloc.OLEAUT32.dll_SafeArrayGetElement
mov rcx, r15
call fcn.140001430
jmp 0x140062925
lea rdx, [rbp + 0x3a0]
jmp 0x140062911
lea rdx, [rbp + 0x5a0]
mov rcx, r15
xor r9d, r9d
mov byte [rsp + 0x20], 1
lea r8, [r9 - 1]
call fcn.1400c4200
mov rcx, qword [0x1401156c0]
lea rdx, [0x1400e0704]
xor r9d, r9d
mov byte [rsp + 0x20], 1
lea r8, [r9 - 1]
call fcn.1400c4200
add rsp, 0x108a8
pop r15
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret