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

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r15
lea rbp, [rsp - 0x107a8]
mov eax, 0x108a8
call fcn.1400c8fe0
sub rsp, rax
xor r12d, r12d
mov rdi, r8
mov rbx, rdx
mov r15, rcx
mov esi, 5
test rdx, rdx
je 0x14005abb5
cmp word [rdx], r12w
je 0x14005abb5
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 0x14005a9d2
lea ebx, [rsi - 4]
jmp 0x14005abb8
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 0x14005abae
lea rdx, [0x1400e7bd8]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
je 0x14005abae
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 0x14005aa1e
lea ebx, [rax + 3]
jmp 0x14005abb8
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
je 0x14005aaf5
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 0x14005aa57
mov ebx, esi
jmp 0x14005abb8
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 0x14005aa73
lea ebx, [rax + 6]
jmp 0x14005abb8
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 0x14005aa8f
lea ebx, [rax + 7]
jmp 0x14005abb8
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 0x14005aaab
lea ebx, [rax + 8]
jmp 0x14005abb8
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 0x14005aad7
lea rdx, [0x1400e7c48]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
jne 0x14005abb5
xor r8d, r8d
mov rdx, rdi
mov rcx, r15
call fcn.14005a4a0
add rsp, 0x108a8
pop r15
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
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], r12w
mov rax, 0xffffffffffffffff
inc rax
cmp word [rcx + rax*2], r12w
jne 0x14005ab21
test rax, rax
je 0x14005ab48
cmp word [rbp + rax*2 + 0x79e], 0x5c
je 0x14005ab48
mov edi, 0x5c
mov word [rbp + rax*2 + 0x7a0], di
lea rdx, [rbx + 0x12]
nop dword [rax]
movzx eax, word [rdx]
cmp ax, 0x20
je 0x14005ab5f
cmp ax, 9
jne 0x14005ab65
add rdx, 2
jmp 0x14005ab50
lea rcx, [rbp + 0x7a0]
call qword [sym.imp.KERNEL32.dll_SetVolumeLabelW]
lea rcx, [0x1400cb6f4]
mov byte [rsp + 0x20], 1
test eax, eax
lea rdx, [0x1400e0c2c]
cmovne rdx, rcx
mov rcx, qword [0x140101c20]
xor r9d, r9d
lea r8, [r9 - 1]
call fcn.1400afca0
add rsp, 0x108a8
pop r15
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ebx, 2
jmp 0x14005abb8
mov ebx, r12d
xor r9d, r9d
mov qword [rsp + 0x108f0], r13
mov qword [rsp + 0x108a0], r14
xor edx, edx
mov r14, qword [0x140103f30]
mov rcx, r14
mov qword [rbp + 0x107e8], r14
lea r8, [r9 - 1]
mov byte [rsp + 0x20], 1
call fcn.1400afca0
lea r13, [0x140000000]
movsxd rax, ebx
mov eax, dword [r13 + rax*4 + 0x5b168]
add rax, r13
jmp rax
cmp word [rdi], r12w
jne 0x14005ac13
mov esi, 0x100
jmp 0x14005aca6
lea rdx, str.CDRom
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
je 0x14005aca6
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 0x14005ac40
lea esi, [rax + 2]
jmp 0x14005aca6
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 0x14005ac59
lea esi, [rax + 3]
jmp 0x14005aca6
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 0x14005ac72
lea esi, [rax + 4]
jmp 0x14005aca6
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 0x14005ac8b
lea esi, [rax + 6]
jmp 0x14005aca6
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.0x14005ac01.0
mov esi, r12d
mov r15d, r12d
lea r14, [rsp + 0x60]
mov bl, 0x41
movzx r13d, bl
lea rcx, [rbp - 0x60]
mov word [rbp - 0x60], r13w
mov dword [rbp - 0x5e], 0x5c003a
mov word [rbp - 0x5a], r12w
call qword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, esi
je 0x14005ace0
cmp esi, 0x100
jne 0x14005aceb
cmp eax, 1
je 0x14005aceb
inc r15d
mov word [r14], r13w
add r14, 2
inc bl
cmp bl, 0x5a
jbe 0x14005acb0
mov rcx, qword [rbp + 0x107e8]
lea rdx, [rsp + 0x60]
xor r9d, r9d
movsxd rax, r15d
mov byte [rsp + 0x20], 1
lea r8, [r9 - 1]
mov word [rsp + rax*2 + 0x60], r12w
call fcn.1400afca0
cmp word [rsp + 0x60], r12w
jne 0x14005ae47
mov r15, qword [rbp + 0x107e0]
mov rax, qword [0x1400fe060]
lea rdx, [0x1400e0c2c]
test byte [rax + 0x140], 1
je 0x14005ae4e
lea r9, [0x1400cb664]
xor r8d, r8d
mov rcx, r15
call fcn.1400465b0
jmp 0x14005ae66
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], r12w
mov rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp word [rcx + rax*2], r12w
jne 0x14005ad90
test rax, rax
je 0x14005adb7
cmp word [rbp + rax*2 + 0x79e], 0x5c
je 0x14005adb7
mov edi, 0x5c
mov word [rbp + rax*2 + 0x7a0], di
mov dword [rsp + 0x38], 0xff
lea rax, [rbp + 0x3a0]
mov qword [rsp + 0x30], rax
lea r9, [rbp + 0x107e8]
lea rax, [rbp + 0x107f8]
mov r8d, 0xff
mov qword [rsp + 0x28], rax
lea rdx, [rbp + 0x1a0]
lea rax, [rsp + 0x40]
lea rcx, [rbp + 0x7a0]
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
test eax, eax
je case.0x14005ac01.0
sub ebx, 2
je 0x14005ae86
sub ebx, 1
je 0x14005ae2c
cmp ebx, 2
jne 0x14005ae47
mov edx, dword [rbp + 0x107e8]
mov r8b, reloc.OLEAUT32.dll_SafeArrayGetElement
mov rcx, r14
call fcn.1400014c0
jmp 0x14005ae47
xor r9d, r9d
mov byte [rsp + 0x20], 1
lea rdx, [rbp + 0x1a0]
lea r8, [r9 - 1]
mov rcx, r14
call fcn.1400afca0
lea rdx, [0x1400cb6f4]
mov rcx, qword [0x140101c20]
xor r9d, r9d
mov byte [rsp + 0x20], 1
lea r8, [r9 - 1]
call fcn.1400afca0
mov r13, qword [rsp + 0x108f0]
mov r14, qword [rsp + 0x108a0]
add rsp, 0x108a8
pop r15
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
xor r9d, r9d
mov byte [rsp + 0x20], 1
lea rdx, [rbp + 0x3a0]
lea r8, [r9 - 1]
jmp 0x14005ae3f