Function at 0x10004dca8
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, [0x100003cb8]
mov r12d, 1
cmp r10, r13
je 0x10004dd0c
test byte [r10 + 0x1c], r12b
je 0x10004dd0c
cmp byte [r10 + 0x19], 4
jb 0x10004dd0c
mov rcx, qword [r10 + 0x10]
mov edx, 0x12f
mov r8, r14
call fcn.10001c854
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 0x10004ddb5
test byte [r10 + 0x1c], r12b
je 0x10004ddb5
cmp byte [r10 + 0x19], 4
jb 0x10004ddb5
lea rcx, [rsp + 0xb0]
mov rdx, rbx
call fcn.10009b894
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.10001df74
mov r10, qword [0x1001653b8]
mov rdx, qword [rbx]
lea rcx, [0x10000f0f8]
cmp rdx, qword [rcx]
jne 0x10004ddd2
mov rdx, qword [rbx + 8]
cmp rdx, qword [rcx + 8]
jne 0x10004ddd2
mov eax, ebp
jmp 0x10004ddd7
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebp
je 0x10004e0b8
cmp rdi, rbp
je 0x10004e0b8
lea r8, [rsp + 0x40]
xor r9d, r9d
xor edx, edx
mov rcx, rbx
call fcn.10009cbc4
mov rsi, qword [rsp + 0x40]
cmp eax, ebp
mov ebx, eax
jl 0x10004de6f
lea rdx, [rsp + 0x38]
mov rcx, rsi
call fcn.10009b954
cmp eax, ebp
mov ebx, eax
jl 0x10004de6f
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x50]
mov r8d, r12d
call fcn.100137d30
cmp eax, ebp
mov ebx, eax
jge 0x10004de7b
mov r10, qword [0x1001653b8]
cmp r10, r13
je 0x10004e0bd
test byte [r10 + 0x1c], r12b
je 0x10004e0bd
cmp byte [r10 + 0x19], 2
jb 0x10004e0bd
mov edx, 0x131
mov dword [rsp + 0x20], eax
mov r9, qword [rsp + 0x38]
mov rcx, qword [r10 + 0x10]
mov r8, r14
call fcn.10001ddb0
mov r10, qword [0x1001653b8]
jmp 0x10004e0bd
mov rcx, qword [rsp + 0x38]
lea rdx, [rsp + 0x30]
call fcn.1001358e0
cmp eax, ebp
mov ebx, eax
jge 0x10004debc
mov r10, qword [0x1001653b8]
cmp r10, r13
je 0x10004e0bd
test byte [r10 + 0x1c], r12b
je 0x10004e0bd
cmp byte [r10 + 0x19], 2
jb 0x10004e0bd
mov edx, 0x132
jmp 0x10004de5a
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 0x10004e071
cmp cl, bpl
je 0x10004e071
mov rcx, qword [rsp + 0x38]
lea rdx, [rsp + 0x31]
call fcn.1001359e4
cmp eax, ebp
mov ebx, eax
jge 0x10004df3b
mov r10, qword [0x1001653b8]
cmp r10, r13
je 0x10004e0bd
test byte [r10 + 0x1c], r12b
je 0x10004e0bd
cmp byte [r10 + 0x19], 2
jb 0x10004e0bd
mov rcx, qword [r10 + 0x10]
mov edx, VarBstrCmp
mov r9d, eax
mov r8, r14
call fcn.10001c878
jmp 0x10004de6f
cmp byte [rsp + 0x31], bpl
je 0x10004df87
mov ebx, 0x80780047
mov r10, qword [0x1001653b8]
cmp r10, r13
je 0x10004e0bd
test byte [r10 + 0x1c], r12b
je 0x10004e0bd
cmp byte [r10 + 0x19], 2
jb 0x10004e0bd
mov r9, qword [rsp + 0x38]
mov rcx, qword [r10 + 0x10]
mov edx, VarBstrCmp
mov r8, r14
call fcn.10001db08
jmp 0x10004de6f
mov rcx, qword [rsp + 0x38]
call fcn.10010ae80
cmp eax, ebp
mov ebx, eax
jge 0x10004dfc6
mov r10, qword [0x1001653b8]
cmp r10, r13
je 0x10004e0bd
test byte [r10 + 0x1c], r12b
je 0x10004e0bd
cmp byte [r10 + 0x19], 2
jb 0x10004e0bd
mov edx, VarBstrCmp
jmp 0x10004de5a
mov rcx, qword [rsp + 0x38]
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_SetVolumeLabelW]
cmp eax, ebp
jne 0x10004e01f
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 0x10004e0bd
test byte [r10 + 0x1c], r12b
je 0x10004e0bd
cmp byte [r10 + 0x19], 2
jb 0x10004e0bd
mov edx, VarBstrCmp
mov dword [rsp + 0x20], ebx
jmp 0x10004de5e
mov rcx, qword [rsp + 0x38]
call fcn.10011cfbc
cmp eax, ebp
mov ebx, eax
jge 0x10004de6f
mov r10, qword [0x1001653b8]
cmp r10, r13
je 0x10004e06d
test byte [r10 + 0x1c], r12b
je 0x10004e06d
cmp byte [r10 + 0x19], 3
jb 0x10004e06d
mov r9, qword [rsp + 0x38]
mov rcx, qword [r10 + 0x10]
mov edx, reloc.OLEAUT32.dll_VarBstrCmp
mov r8, r14
mov dword [rsp + 0x20], eax
call fcn.10001ddb0
mov r10, qword [0x1001653b8]
mov ebx, ebp
jmp 0x10004e0bd
mov ebx, 0x8078000c
mov r10, qword [0x1001653b8]
cmp r10, r13
je 0x10004e0bd
test byte [r10 + 0x1c], r12b
je 0x10004e0bd
cmp byte [r10 + 0x19], 2
jb 0x10004e0bd
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.10001e4b0
jmp 0x10004de6f
mov ebx, 0x80070057
mov rcx, qword [rsp + 0x38]
cmp rcx, rbp
je 0x10004e0d9
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov r10, qword [0x1001653b8]
mov qword [rsp + 0x38], rbp
cmp rsi, rbp
je 0x10004e0ee
mov rcx, rsi
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov r10, qword [0x1001653b8]
cmp r10, r13
je 0x10004e111
test byte [r10 + 0x1c], r12b
je 0x10004e111
cmp byte [r10 + 0x19], 4
jb 0x10004e111
mov rcx, qword [r10 + 0x10]
mov edx, reloc.OLEAUT32.dll_VarR8Pow
mov r8, r14
call fcn.10001c854
lea rcx, [rsp + 0x50]
call fcn.100137470
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