Function at 0x1400c4770
Capabilities:
Get disk information

Disassembly:
mov dword [rsp + 0x20], r9d
mov word [rsp + 0x18], r8w
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xf]
sub rsp, 0xd8
mov qword [rbp - 0x19], 0xfffffffffffffffe
mov ecx, 0x10
call fcn.14005e584
mov rdi, rax
mov qword [rsp + 0x20], rax
mov rbx, qword [rbp + 0x57]
test rax, rax
je 0x1400c481a
lea rax, [rsp + 0x48]
mov qword [rsp + 0x38], rax
mov ecx, 0x30
call fcn.14005e584
mov qword [rbp - 0x71], rax
xor r12d, r12d
test rax, rax
je 0x1400c47ed
mov rdx, rbx
mov rcx, rax
call fcn.140027930
jmp 0x1400c47f0
mov rax, r12
mov qword [rsp + 0x48], rax
mov qword [rbp - 0x79], r12
lea r8, [rbp - 0x79]
mov rdx, rax
lea rcx, [rsp + 0x48]
call fcn.14002f4d0
nop
lea rdx, [rsp + 0x48]
mov rcx, rdi
call fcn.140028950
jmp 0x1400c4820
xor r12d, r12d
mov eax, r12d
mov qword [rbx], rax
lea r8, [rbx + 8]
mov qword [r8], r12
mov rdx, rax
mov rcx, rbx
call fcn.14002f550
nop
lea rcx, [rbx + 0x10]
call fcn.140028060
nop
lea rcx, [rbx + 0x30]
call fcn.140028150
nop
lea rcx, [rbx + 0x50]
call fcn.14001f5f0
nop
lea rcx, [rbx + 0x70]
call fcn.14001f5f0
nop
lea rcx, [rbx + 0x90]
call fcn.1400282d0
nop
lea rcx, [rbx + 0xb0]
call fcn.140028450
nop
lea rcx, [rbx + 0xd0]
call fcn.140028540
nop
lea rcx, [rbx + 0xf0]
call fcn.14001f5f0
nop
lea rcx, [rbx + 0x110]
call fcn.140028630
nop
lea rcx, [rbx + 0x130]
call fcn.14001f5f0
nop
lea rcx, [rbx + 0x150]
call fcn.140028720
nop
mov word [rbx + 0x170], 0
mov byte [rbx + 0x172], 0
mov qword [rbx + 0x178], r12
mov qword [rbx + 0x180], r12
mov qword [rbx + 0x188], r12
mov rcx, qword [rbp + 0x5f]
mov rcx, qword [rcx]
sub rcx, 0x18
call fcn.14001e5d0
add rax, 0x18
mov qword [rbp - 0x49], rax
lea rdx, [rbp - 0x49]
lea rcx, [rbx + 0x198]
call fcn.140001a40
nop
movzx eax, word [rbp + 0x67]
mov word [rbx + 0x1a0], ax
mov eax, dword [rbp + 0x6f]
mov dword [rbx + 0x1a4], eax
mov dword [rbx + 0x1a8], r12d
mov rcx, qword [rbp + 0x77]
mov rcx, qword [rcx]
sub rcx, 0x18
call fcn.14001e5d0
add rax, 0x18
mov qword [rbx + 0x1b0], rax
lea r14, [rbx + 0x1b8]
lea rcx, section..data
mov rax, qword [section..data]
call qword [rax + 0x18]
add rax, 0x18
mov qword [r14], rax
lea rcx, section..data
mov rax, qword [section..data]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbx + 0x1c0], rax
lea rcx, section..data
mov rax, qword [section..data]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbx + 0x1c8], rax
mov qword [rbx + 0x1d0], r12
mov qword [rbx + 0x1d8], r12
lea rcx, section..data
mov rax, qword [section..data]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbx + 0x1e0], rax
mov qword [rbx + 0x1e8], r12
mov qword [rbx + 0x1f0], r12
mov dword [rbx + 0x1f8], 3
lea rcx, [rbx + 0x200]
xor eax, eax
mov qword [rcx], rax
mov qword [rcx + 8], rax
mov qword [rcx + 0x10], rax
mov qword [rcx + 0x18], rax
mov qword [rcx + 0x20], rax
xor edx, edx
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
test eax, eax
jne 0x1400c4a1c
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x1400c4a12
movzx eax, ax
or eax, 0x80070000
test eax, eax
jns 0x1400c4a1c
mov ecx, eax
call fcn.14001e940
nop
lea rcx, [rbx + 0x228]
xor eax, eax
mov qword [rcx], rax
mov qword [rcx + 8], rax
mov qword [rcx + 0x10], rax
mov qword [rcx + 0x18], rax
mov qword [rcx + 0x20], rax
xor edx, edx
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
test eax, eax
jne 0x1400c4a62
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x1400c4a58
movzx eax, ax
or eax, 0x80070000
test eax, eax
jns 0x1400c4a62
mov ecx, eax
call fcn.14001e940
nop
mov byte [rbx + 0x250], 1
lea rcx, [rbx + 0x258]
xor eax, eax
mov qword [rcx], rax
mov qword [rcx + 8], rax
mov qword [rcx + 0x10], rax
mov qword [rcx + 0x18], rax
mov qword [rcx + 0x20], rax
xor edx, edx
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
test eax, eax
jne 0x1400c4aaf
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x1400c4aa5
movzx eax, ax
or eax, 0x80070000
test eax, eax
jns 0x1400c4aaf
mov ecx, eax
call fcn.14001e940
nop
mov qword [rbx + 0x280], r12
mov qword [rbx + 0x288], r12
mov qword [rbx + 0x2a0], r12
mov qword [rbx + reloc.SHELL32.dll_IsUserAnAdmin], r12
mov qword [rbx + 0x2b0], r12
mov qword [rbx + 0x2b8], r12
lea rcx, [rbx + 0x2c0]
xor eax, eax
mov qword [rcx], rax
mov qword [rcx + 8], rax
mov qword [rcx + 0x10], rax
mov qword [rcx + 0x18], rax
mov qword [rcx + 0x20], rax
xor edx, edx
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
test eax, eax
jne 0x1400c4b1f
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x1400c4b15
movzx eax, ax
or eax, 0x80070000
test eax, eax
jns 0x1400c4b1f
mov ecx, eax
call fcn.14001e940
nop
lea rcx, [rbx + 0x2e8]
call fcn.14000ce20
nop
mov qword [rbx + 0x308], r12
mov qword [rbx + 0x310], r12
mov qword [rbx + 0x318], r12
mov qword [rbx + 0x320], r12
mov qword [rbx + 0x328], r12
mov qword [rbx + 0x330], r12
mov qword [rbx + 0x338], r12
mov qword [rbx + 0x340], r12
lea rcx, [rbx + 0x348]
xor eax, eax
mov qword [rcx], rax
mov qword [rcx + 8], rax
mov qword [rcx + 0x10], rax
mov qword [rcx + 0x18], rax
mov qword [rcx + 0x20], rax
xor edx, edx
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
test eax, eax
jne 0x1400c4baa
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x1400c4ba0
movzx eax, ax
or eax, 0x80070000
test eax, eax
jns 0x1400c4baa
mov ecx, eax
call fcn.14001e940
nop
mov ecx, 0x30
call fcn.14005e584
mov qword [rsp + 0x20], rax
test rax, rax
je 0x1400c4bd0
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rax
call fcn.1400225a0
jmp 0x1400c4bd3
mov rax, r12
lea r15, [rbx + 0x370]
mov qword [rsp + 0x20], r15
mov qword [r15], rax
lea r8, [r15 + 8]
mov qword [r8], r12
mov rdx, rax
mov rcx, r15
call fcn.140022d20
nop
lea rcx, [rbx + 0x380]
xor eax, eax
mov qword [rcx], rax
mov qword [rcx + 8], rax
mov qword [rcx + 0x10], rax
mov qword [rcx + 0x18], rax
mov qword [rcx + 0x20], rax
xor edx, edx
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
test eax, eax
jne 0x1400c4c3b
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x1400c4c31
movzx eax, ax
or eax, 0x80070000
test eax, eax
jns 0x1400c4c3b
mov ecx, eax
call fcn.14001e940
nop
mov byte [rbx + 0x3a8], 0
lea rcx, [rbx + 0x3b0]
call fcn.140029c90
nop
lea rcx, [rbx + 0x3d0]
xor eax, eax
mov qword [rcx], rax
mov qword [rcx + 8], rax
mov qword [rcx + 0x10], rax
mov qword [rcx + 0x18], rax
mov qword [rcx + 0x20], rax
xor edx, edx
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
test eax, eax
jne 0x1400c4c95
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x1400c4c8b
movzx eax, ax
or eax, 0x80070000
test eax, eax
jns 0x1400c4c95
mov ecx, eax
call fcn.14001e940
nop
lea rdi, [rbx + 0x3f8]
mov qword [rsp + 0x20], rdi
mov qword [rdi], r12
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateMutexW]
mov qword [rdi], rax
xor eax, eax
mov byte [rbp - 0x1c], al
lea rcx, [rdi + 8]
call fcn.140027f70
nop
mov qword [rdi + 0x28], r12
mov qword [rdi + 0x30], r12
lea rcx, [rdi + 0x38]
call fcn.1400355c0
nop
movzx eax, byte [rbp + 0x7f]
mov byte [rbx + 0x448], al
mov qword [rbx + 0x450], r12
mov qword [rbx + 0x458], r12
mov qword [rbx + 0x460], r12
mov qword [rbx + 0x468], r12
mov rcx, qword [rbx + 0x198]
sub rcx, 0x18
call fcn.14001e5d0
add rax, 0x18
mov qword [rsp + 0x40], rax
lea r8, [0x14011aecc]
lea rdx, [rsp + 0x40]
lea rcx, [rbp - 0x41]
call fcn.14000b3f0
nop
mov rdx, rax
lea rcx, [rbx + 0x1c8]
call fcn.14001deb0
nop
mov rdx, qword [rbp - 0x41]
add rdx, 0xffffffffffffffe8
or r13d, 0xffffffff
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400c4d5e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400c4d7e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov qword [rbp - 0x11], r14
mov rax, qword [r14]
mov ecx, 1
sub ecx, dword [rax - 8]
mov eax, dword [rax - 0xc]
sub eax, 0x104
or eax, ecx
jge 0x1400c4da6
mov edx, 0x104
mov rcx, r14
call fcn.14001e8d0
mov rdx, qword [r14]
mov qword [rbp - 9], rdx
mov r8d, 0x104
mov rcx, qword [rbx + 0x1c8]
call qword [sym.imp.KERNEL32.dll_GetVolumeNameForVolumeMountPointW]
mov rcx, qword [r14]
test rcx, rcx
jne 0x1400c4dcd
mov eax, r12d
jmp 0x1400c4dde
movsxd rdx, dword [rcx - 0xc]
call fcn.14005e508
test eax, eax
js 0x1400c5121
mov rcx, qword [r14]
cmp eax, dword [rcx - 0xc]
jg 0x1400c5121
mov dword [rcx - 0x10], eax
movsxd rcx, eax
mov rax, qword [r14]
mov word [rax + rcx*2], r12w
mov rdx, qword [r14]
xor eax, eax
lea rdi, [0x14011af94]
mov rsi, rdx
mov ecx, 1
repe cmpsw word [rsi], word [rdi]
je 0x1400c4e16
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
lea rdi, [rbx + 0x198]
test al, al
je 0x1400c4e40
mov rax, qword [rdi]
cmp dword [rax - 0x10], 2
jne 0x1400c4e40
mov rdx, rdi
lea rcx, [rbx + 0x178]
call fcn.14000b7a0
jmp 0x1400c4e61
lea rcx, [rdx - 0x18]
call fcn.14001e5d0
add rax, 0x18
mov qword [rbp - 0x69], rax
lea rdx, [rbx + 0x178]
lea rcx, [rbp - 0x69]
call fcn.1400d59d0
mov rax, qword [rdi]
cmp dword [rax - 0x10], 2
jne 0x1400c4e97
mov r8, rdi
lea rdx, [0x140124310]
lea rcx, [rbp - 0x39]
call fcn.14001ec90
nop
mov rdx, rax
lea rsi, [rbx + 0x1c0]
mov rcx, rsi
call fcn.14001deb0
nop
mov rdx, qword [rbp - 0x39]
jmp 0x1400c4ec5
mov rax, qword [r14]
mov r8d, dword [rax - 0x10]
dec r8d
lea rdx, [rbp - 0x71]
mov rcx, r14
call fcn.14001f2f0
nop
mov rdx, rax
lea rsi, [rbx + 0x1c0]
mov rcx, rsi
call fcn.14001deb0
nop
mov rdx, qword [rbp - 0x71]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400c4ee0
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov ecx, 0x48
call fcn.14005e584
mov rdi, rax
mov qword [rbp - 0x61], rax
test rax, rax
je 0x1400c4f1a
mov rcx, qword [rsi]
sub rcx, 0x18
call fcn.14001e5d0
add rax, 0x18
mov qword [rsp + 0x38], rax
lea rdx, [rsp + 0x38]
mov rcx, rdi
call fcn.1400275e0
jmp 0x1400c4f1d
mov rax, r12
mov rdx, rax
lea rcx, [rbx + 0x450]
call fcn.14002e5e0
mov r8, rsi
mov rdx, qword [rbp + 0x5f]
lea rcx, [rbx + 0x1a4]
call fcn.1400d71c0
mov dword [rbx + 0x1a8], eax
cmp eax, 4
jne 0x1400c4f77
mov edx, dword [rbx + 0x1a4]
movzx ecx, word [rbx + 0x1a0]
call fcn.1400c3fc0
test al, al
je 0x1400c4f69
mov byte [rbx + 0x172], 1
jmp 0x1400c4f77
mov rcx, rsi
call fcn.1400d6e40
mov byte [rbx + 0x172], al
mov ecx, 0x20
call fcn.14005e584
mov qword [rbp - 0x61], rax
test rax, rax
je 0x1400c4fbe
mov rcx, qword [r15]
mov qword [rbp - 0x31], rcx
mov rcx, qword [r15 + 8]
mov qword [rbp - 0x29], rcx
test rcx, rcx
je 0x1400c4fa2
lock inc dword [rcx + 8]
cmp dword [rbx + 0x1a8], 2
sete r8b
lea rdx, [rbp - 0x31]
mov rcx, rax
call fcn.1400cbe60
mov rsi, rax
jmp 0x1400c4fc1
mov rsi, r12
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x30], r12
mov rdx, rsi
lea rcx, [rsp + 0x20]
call fcn.140030630
mov rdx, qword [rsp + 0x30]
mov rcx, qword [rax]
mov qword [rsp + 0x30], rcx
mov qword [rax], rdx
mov rdi, qword [rsp + 0x20]
test rdi, rdi
je 0x1400c5010
lock dec dword [rdi + 8]
jne 0x1400c5010
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 8]
lock dec dword [rdi + 0xc]
jne 0x1400c5010
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x10]
mov r8, rsi
mov rdx, rsi
lea rcx, [rsp + 0x28]
call fcn.140017020
nop
lea rdx, [rsp + 0x28]
mov rcx, r15
call fcn.14003e010
nop
mov rdi, qword [rsp + 0x30]
test rdi, rdi
je 0x1400c5057
lock dec dword [rdi + 8]
jne 0x1400c5057
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 8]
lock dec dword [rdi + 0xc]
jne 0x1400c5057
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x10]
mov rcx, qword [rbx + 0x450]
call fcn.1400de9e0
mov rcx, rax
call fcn.1400b9c00
mov dword [rbx + 0x1f8], eax
mov rdi, qword [rbx + 0x450]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
dec dword [rdi + 0x40]
cmp dword [rdi + 0x40], 0
jg 0x1400c509d
mov rcx, qword [rdi + 0x28]
test rcx, rcx
je 0x1400c509d
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rdi + 0x28], r12
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea rdx, [0x140124320]
mov qword [rbp - 0x59], rdx
mov dword [rbp - 0x51], 0x50
mov dword [rbp - 0x4d], 1
mov r8, qword [rbx + 0x198]
lea rdx, str.CVolume_object_created_for_volume__s.
lea rcx, [rbp - 0x59]
call fcn.14000b5d0
nop
mov rax, qword [rbp + 0x5f]
mov rdx, qword [rax]
sub rdx, 0x18
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400c50fa
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rax, qword [rbp + 0x77]
mov rdx, qword [rax]
sub rdx, 0x18
lock xadd dword [rdx + 0x10], r13d
dec r13d
test r13d, r13d
jg 0x1400c511c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rax, rbx
jmp 0x1400c512c
mov ecx, 0x80070057
call fcn.14001e940
nop
add rsp, 0xd8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret