Function at 0x10004dc58
Capabilities:
Get disk information

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x120
mov rdi, r8
mov rbx, rdx
mov r10, qword [0x1001653b8]
lea r13, [0x1001653b8]
lea r14, [0x100003cf8]
mov r12d, 1
cmp r10, r13
je 0x10004dcbc
test byte [r10 + 0x1c], r12b
je 0x10004dcbc
cmp byte [r10 + 0x19], 4
jb 0x10004dcbc
mov rcx, qword [r10 + 0x10]
mov edx, 0x12f
mov r8, r14
call fcn.10001c7b8
mov r10, qword [0x1001653b8]
xor ebp, ebp
mov dword [rsp + 0x78], 0xa
mov byte [rsp + 0x30], bpl
mov byte [rsp + 0x31], bpl
mov qword [rsp + 0x38], rbp
mov rsi, rbp
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x58], rbp
mov qword [rsp + 0x60], rbp
mov qword [rsp + 0x68], rbp
mov qword [rsp + 0x70], rbp
mov qword [rsp + 0x88], rbp
mov dword [rsp + 0x90], ebp
mov qword [rsp + 0x98], rbp
mov byte [rsp + 0xa0], bpl
mov dword [rsp + 0x80], ebp
cmp r10, r13
je 0x10004dd65
test byte [r10 + 0x1c], r12b
je 0x10004dd65
cmp byte [r10 + 0x19], 4
jb 0x10004dd65
lea rcx, [rsp + 0xb0]
mov rdx, rbx
call fcn.10009b2bc
mov rcx, qword [0x1001653b8]
mov edx, 0x130
mov rcx, qword [rcx + 0x10]
mov r8, r14
mov r9, rax
mov qword [rsp + 0x20], rdi
call fcn.10001df38
mov r10, qword [0x1001653b8]
mov rdx, qword [rbx]
lea rcx, [0x100001fe0]
cmp rdx, qword [rcx]
jne 0x10004dd82
mov rdx, qword [rbx + 8]
cmp rdx, qword [rcx + 8]
jne 0x10004dd82
mov eax, ebp
jmp 0x10004dd87
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebp
je 0x10004e068
cmp rdi, rbp
je 0x10004e068
lea r8, [rsp + 0x40]
xor r9d, r9d
xor edx, edx
mov rcx, rbx
call fcn.10009c5ec
mov rsi, qword [rsp + 0x40]
cmp eax, ebp
mov ebx, eax
jl 0x10004de1f
lea rdx, [rsp + 0x38]
mov rcx, rsi
call fcn.10009b37c
cmp eax, ebp
mov ebx, eax
jl 0x10004de1f
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x50]
mov r8d, r12d
call fcn.100137ce4
cmp eax, ebp
mov ebx, eax
jge 0x10004de2b
mov r10, qword [0x1001653b8]
cmp r10, r13
je 0x10004e06d
test byte [r10 + 0x1c], r12b
je 0x10004e06d
cmp byte [r10 + 0x19], 2
jb 0x10004e06d
mov edx, 0x131
mov dword [rsp + 0x20], eax
mov r9, qword [rsp + 0x38]
mov rcx, qword [r10 + 0x10]
mov r8, r14
call fcn.10001daa4
mov r10, qword [0x1001653b8]
jmp 0x10004e06d
mov rcx, qword [rsp + 0x38]
lea rdx, [rsp + 0x30]
call fcn.100135894
cmp eax, ebp
mov ebx, eax
jge 0x10004de6c
mov r10, qword [0x1001653b8]
cmp r10, r13
je 0x10004e06d
test byte [r10 + 0x1c], r12b
je 0x10004e06d
cmp byte [r10 + 0x19], 2
jb 0x10004e06d
mov edx, 0x132
jmp 0x10004de0a
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_GetDriveTypeW]
mov dl, byte [rsp + 0x30]
movzx ecx, bpl
cmp eax, 3
cmove ecx, r12d
cmp dl, bpl
je 0x10004e021
cmp cl, bpl
je 0x10004e021
mov rcx, qword [rsp + 0x38]
lea rdx, [rsp + 0x31]
call fcn.100135998
cmp eax, ebp
mov ebx, eax
jge 0x10004deeb
mov r10, qword [0x1001653b8]
cmp r10, r13
je 0x10004e06d
test byte [r10 + 0x1c], r12b
je 0x10004e06d
cmp byte [r10 + 0x19], 2
jb 0x10004e06d
mov rcx, qword [r10 + 0x10]
mov edx, 0x135
mov r9d, eax
mov r8, r14
call fcn.10001c7dc
jmp 0x10004de1f
cmp byte [rsp + 0x31], bpl
je 0x10004df37
mov ebx, 0x80780047
mov r10, qword [0x1001653b8]
cmp r10, r13
je 0x10004e06d
test byte [r10 + 0x1c], r12b
je 0x10004e06d
cmp byte [r10 + 0x19], 2
jb 0x10004e06d
mov r9, qword [rsp + 0x38]
mov rcx, qword [r10 + 0x10]
mov edx, 0x136
mov r8, r14
call fcn.10001da24
jmp 0x10004de1f
mov rcx, qword [rsp + 0x38]
call fcn.10010a9f0
cmp eax, ebp
mov ebx, eax
jge 0x10004df76
mov r10, qword [0x1001653b8]
cmp r10, r13
je 0x10004e06d
test byte [r10 + 0x1c], r12b
je 0x10004e06d
cmp byte [r10 + 0x19], 2
jb 0x10004e06d
mov edx, 0x137
jmp 0x10004de0a
mov rcx, qword [rsp + 0x38]
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_SetVolumeLabelW]
cmp eax, ebp
jne 0x10004dfcf
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx ebx, ax
or ebx, 0x80070000
cmp eax, ebp
cmovle ebx, eax
mov r10, qword [0x1001653b8]
cmp r10, r13
je 0x10004e06d
test byte [r10 + 0x1c], r12b
je 0x10004e06d
cmp byte [r10 + 0x19], 2
jb 0x10004e06d
mov edx, 0x138
mov dword [rsp + 0x20], ebx
jmp 0x10004de0e
mov rcx, qword [rsp + 0x38]
call fcn.10011cf18
cmp eax, ebp
mov ebx, eax
jge 0x10004de1f
mov r10, qword [0x1001653b8]
cmp r10, r13
je 0x10004e01d
test byte [r10 + 0x1c], r12b
je 0x10004e01d
cmp byte [r10 + 0x19], 3
jb 0x10004e01d
mov r9, qword [rsp + 0x38]
mov rcx, qword [r10 + 0x10]
mov edx, 0x139
mov r8, r14
mov dword [rsp + 0x20], eax
call fcn.10001daa4
mov r10, qword [0x1001653b8]
mov ebx, ebp
jmp 0x10004e06d
mov ebx, 0x8078000c
mov r10, qword [0x1001653b8]
cmp r10, r13
je 0x10004e06d
test byte [r10 + 0x1c], r12b
je 0x10004e06d
cmp byte [r10 + 0x19], 2
jb 0x10004e06d
mov r9, qword [rsp + 0x38]
movzx eax, cl
movzx ecx, dl
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ecx
mov rcx, qword [r10 + 0x10]
mov edx, 0x134
mov r8, r14
call fcn.10001dd64
jmp 0x10004de1f
mov ebx, 0x80070057
mov rcx, qword [rsp + 0x38]
cmp rcx, rbp
je 0x10004e089
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov r10, qword [0x1001653b8]
mov qword [rsp + 0x38], rbp
cmp rsi, rbp
je 0x10004e09e
mov rcx, rsi
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov r10, qword [0x1001653b8]
cmp r10, r13
je 0x10004e0c1
test byte [r10 + 0x1c], r12b
je 0x10004e0c1
cmp byte [r10 + 0x19], 4
jb 0x10004e0c1
mov rcx, qword [r10 + 0x10]
mov edx, 0x13a
mov r8, r14
call fcn.10001c7b8
lea rcx, [rsp + 0x50]
call fcn.100137424
lea r11, [rsp + 0x120]
mov eax, ebx
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x48]
mov rsp, r11
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret