Function at 0x140048940
Capabilities:
Get disk information
Get disk size
Get storage device properties

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x4b8
movaps xmmword [rsp + 0x4a0], xmm6
mov r12, rdx
mov r15, rcx
mov qword [rsp + 0x158], r9
cmp r8, r9
je 0x1400498c9
mov rsi, r8
movabs r13, 0x8000000000000000
lea rax, [r8 + 0x18]
mov qword [rsp + 0x150], rax
mov r14, qword [r8]
cmp r14, r13
jne 0x1400489e9
lea rcx, [rsi + 0x18]
mov rax, r9
sub rax, rcx
movabs rdx, 0xaaaaaaaaaaaaaaab
mul rdx
cmp r9, rcx
je 0x1400498c9
mov rdi, rdx
shr rdi, 4
add rsi, 0x20
jmp 0x1400489cd
add rsi, 0x18
dec rdi
je 0x1400498c9
mov rdx, qword [rsi - 8]
test rdx, rdx
je 0x1400489c0
mov rcx, qword [rsi]
add rdx, rdx
mov r8d, 2
call fcn.140011dc0
jmp 0x1400489c0
xor eax, eax
mov qword [rsp + 0x148], rax
lea rbp, [rsp + 0x290]
xorps xmm6, xmm6
lea rbx, [rsp + 0x160]
mov qword [rsp + 0x190], r15
mov qword [rsp + 0x138], r12
nop word cs:[rax + rax]
mov rdi, qword [rsi + 8]
mov rax, qword [rsi + 0x10]
mov qword [rsp + 0x198], rax
movups xmm0, xmmword [r12]
movups xmm1, xmmword [r12 + 0x10]
movaps xmmword [rsp + 0x1d0], xmm1
movaps xmmword [rsp + 0x1c0], xmm0
mov rax, qword [r12 + 0x20]
mov qword [rsp + 0x1a0], rax
mov qword [rsp + 0x1e0], rax
mov rcx, rdi
call sub.kernel32.dll_GetDriveTypeW
mov esi, eax
and eax, 0xfffffffe
cmp eax, 2
jne 0x140048c80
mov r8d, 0x20a
mov rcx, rbp
xor edx, edx
call sub.msvcrt.dll_memset
movaps xmmword [rsp + 0xf0], xmm6
movaps xmmword [rsp + 0xe0], xmm6
movaps xmmword [rsp + 0xd0], xmm6
movaps xmmword [rsp + 0xc0], xmm6
mov dword [rsp + 0x98], 0
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x98]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x38], 0x20
mov qword [rsp + 0x20], 0
mov rcx, rdi
mov rdx, rbp
mov r8d, 0x105
xor r9d, r9d
call sub.kernel32.dll_GetVolumeInformationW
test eax, eax
je 0x140048c48
mov dword [rsp + 0x144], esi
mov qword [rsp + 0x68], rdi
mov qword [rsp + 0x88], r14
mov eax, dword [rsp + 0x98]
mov dword [rsp + 0x140], eax
mov ecx, 0x208
mov edx, 2
call fcn.140011de0
test rax, rax
je 0x140049975
mov r13, rax
mov dword [rsp + 0x160], 0
mov esi, 0x104
mov ebp, 0x104
mov r12d, 0xa
jmp 0x140048b6f
mov rbp, rsi
mov r13, r14
dec r12d
je 0x140048cb2
mov rcx, qword [rsp + 0x68]
mov rdx, r13
mov r8d, esi
mov r9, rbx
call sub.kernel32.dll_GetVolumePathNamesForVolumeNameW
test eax, eax
jne 0x140048cac
call fcn.14006e2b0
mov rdi, rax
mov qword [rsp + 0x48], rax
mov dword [rsp + 0x50], edx
call fcn.14006e2b0
mov esi, edx
mov qword [rsp + 0x108], rax
mov dword [rsp + 0x110], edx
test rax, rax
je 0x140048bc8
lea rcx, [rsp + 0x108]
call fcn.14006ef90
mov rdi, qword [rsp + 0x48]
test rdi, rdi
je 0x140048bd7
lea rcx, [rsp + 0x48]
call fcn.14006ef90
cmp esi, 0x800700ea
jne 0x140048e39
mov esi, dword [rsp + 0x160]
test rsi, rsi
je 0x140048c20
lea rdi, [rsi + rsi]
mov edx, 2
mov rcx, rdi
call fcn.140011de0
test rax, rax
je 0x140049966
mov r14, rax
test rbp, rbp
jne 0x140048c2f
jmp 0x140048b60
mov r14d, 2
test rbp, rbp
je 0x140048b60
add rbp, rbp
mov r8d, 2
mov rcx, r13
mov rdx, rbp
call fcn.140011dc0
jmp 0x140048b60
call fcn.14006e2b0
mov qword [rsp + 0x110], rax
mov dword [rsp + 0x118], edx
mov qword [rsp + 0x108], 1
test rax, rax
je 0x140048c80
lea rcx, [rsp + 0x110]
call fcn.14006ef90
nop word [rax + rax]
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x78], 8
mov qword [rsp + 0x80], 0
test r14, r14
jne 0x140048efc
jmp 0x140048f10
mov r14, r13
mov rsi, rbp
mov qword [rsp + 0x108], 0
mov qword [rsp + 0x110], 8
mov qword [rsp + 0x118], 0
test rsi, rsi
je 0x140049094
mov r12, r14
mov rbp, rsi
mov qword [rsp + 0x90], r14
jmp 0x140048d29
mov rax, qword [rsp + 0x110]
lea rcx, [r14 + r14*2]
mov qword [rax + rcx*8], r15
mov qword [rax + rcx*8 + 8], rbx
mov qword [rax + rcx*8 + 0x10], r15
inc r14
mov qword [rsp + 0x118], r14
sub r12, r13
sub rbp, r15
mov r14, qword [rsp + 0x90]
je 0x140048de2
cmp word [r12], 0
je 0x140048de2
lea rax, [rbp*2]
neg rax
mov ecx, 1
mov r13, 0xfffffffffffffffe
nop dword [rax]
cmp rax, r13
je 0x140049913
lea r15, [rcx + 1]
add r13, 0xfffffffffffffffe
cmp word [r12 + rcx*2], 0
mov rcx, r15
jne 0x140048d50
lea rax, [r15 - 2]
movabs rcx, 0x3ffffffffffffffd
cmp rax, rcx
ja 0x14004994c
mov rdi, r13
neg rdi
mov rax, qword [0x1401a9e18]
movzx eax, byte [rax]
mov edx, 2
mov rcx, rdi
call fcn.140011db0
test rax, rax
je 0x14004993c
mov rbx, rax
mov rcx, rax
mov rdx, r12
mov r8, rdi
call sub.msvcrt.dll_memcpy
mov r14, qword [rsp + 0x118]
cmp r14, qword [rsp + 0x108]
jne 0x140048cf0
lea rcx, [rsp + 0x108]
call fcn.140042db0
jmp 0x140048cf0
mov rax, qword [rsp + 0x118]
mov qword [rsp + 0xb0], rax
movups xmm0, xmmword [rsp + 0x108]
movaps xmmword [rsp + 0xa0], xmm0
add rsi, rsi
mov r8d, 2
mov rcx, r14
mov rdx, rsi
call fcn.140011dc0
mov r15, qword [rsp + 0x190]
lea rbx, [rsp + 0x160]
mov rdi, qword [rsp + 0xb0]
test rdi, rdi
jne 0x1400490d5
jmp 0x140048e87
mov qword [rsp + 0xa0], 0
mov qword [rsp + 0xa8], 8
mov qword [rsp + 0xb0], 0
test rbp, rbp
je 0x140048e87
add rbp, rbp
mov r8d, 2
mov rcx, r13
mov rdx, rbp
call fcn.140011dc0
mov rdi, qword [rsp + 0xb0]
test rdi, rdi
jne 0x1400490d5
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x78], 8
mov qword [rsp + 0x80], 0
mov rsi, qword [rsp + 0xa8]
mov r14, qword [rsp + 0x88]
mov r12, qword [rsp + 0x138]
movabs r13, 0x8000000000000000
lea rbp, [rsp + 0x290]
mov rax, qword [rsp + 0xa0]
test rax, rax
je 0x140048ef2
shl rax, 3
lea rdx, [rax + rax*2]
mov r8d, 8
mov rcx, rsi
call fcn.140011dc0
mov rdi, qword [rsp + 0x68]
test r14, r14
je 0x140048f10
add r14, r14
mov r8d, 2
mov rcx, rdi
mov rdx, r14
call fcn.140011dc0
movups xmm0, xmmword [rsp + 0x70]
movaps xmmword [rsp + 0x290], xmm0
mov r8, qword [rsp + 0x80]
mov qword [rsp + 0x2a0], r8
lea rcx, [rsp + 0x208]
mov rdx, rbp
call fcn.1400254a0
cmp qword [rsp + 0x1c0], 0
je 0x140048fd0
mov rdi, qword [rsp + 0x1c8]
mov rsi, qword [rsp + 0x1d0]
mov rbx, qword [rsp + 0x1d8]
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x2a0], rax
movups xmm0, xmmword [rsp + 0x208]
movaps xmmword [rsp + 0x290], xmm0
test rsi, rsi
je 0x140048ff0
mov rax, qword [rsp + 0x290]
mov qword [rsp + 0x290], 0
test rax, rax
je 0x14004902a
mov qword [rsi + 0x18], rax
mov qword [rax + 0x20], rsi
mov rsi, qword [rsp + 0x298]
add rbx, qword [rsp + 0x2a0]
movups xmmword [rsp + 0x298], xmm6
jmp 0x14004902a
mov rdi, qword [rsp + 0x208]
mov rsi, qword [rsp + 0x210]
mov rbx, qword [rsp + 0x218]
jmp 0x140049032
mov rax, qword [rsp + 0x290]
mov rsi, qword [rsp + 0x298]
mov qword [rsp + 0x290], rdi
mov qword [rsp + 0x298], 0
mov rcx, qword [rsp + 0x2a0]
mov qword [rsp + 0x2a0], rbx
mov rdi, rax
mov rbx, rcx
mov rcx, rbp
call fcn.140047620
mov qword [r12], 1
mov qword [r12 + 8], rdi
mov qword [r12 + 0x10], rsi
mov qword [r12 + 0x18], rbx
mov rax, qword [rsp + 0x1a0]
mov qword [r12 + 0x20], rax
mov rsi, qword [rsp + 0x150]
mov r9, qword [rsp + 0x158]
cmp rsi, r9
je 0x1400498c9
lea rax, [rsi + 0x18]
mov qword [rsp + 0x150], rax
mov r14, qword [rsi]
cmp r14, r13
lea rbx, [rsp + 0x160]
jne 0x140048a20
jmp 0x140048993
mov rax, qword [rsp + 0x118]
mov qword [rsp + 0xb0], rax
mov rax, qword [rsp + 0x108]
mov qword [rsp + 0xa0], rax
mov rax, qword [rsp + 0x110]
mov qword [rsp + 0xa8], rax
mov rdi, qword [rsp + 0xb0]
test rdi, rdi
je 0x140048e87
mov rdx, qword [rsp + 0x198]
mov rcx, rdx
sub rcx, 2
jb 0x140049986
mov rdx, qword [rsp + 0x68]
lea rax, [rdx + rcx*2]
mov qword [rsp + 0x128], rdx
mov qword [rsp + 0x130], rax
mov qword [rsp + 0x108], 1
mov qword [rsp + 0x110], 0
mov qword [rsp + 0x118], 1
mov word [rsp + 0x120], 0
lea rcx, [rsp + 0x1f0]
lea rdx, [rsp + 0x108]
call fcn.14004f5e0
mov r14, qword [rsp + 0x1f8]
mov r13b, 1
call fcn.14005d750
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 3
mov rcx, r14
xor edx, edx
mov r8d, 3
xor r9d, r9d
call sub.kernel32.dll_CreateFileW
mov rbp, rax
dec rax
cmp rax, 0xfffffffffffffffe
jae 0x140049298
mov qword [rsp + 0x1a8], rbp
mov rsi, qword [rsp + 0xa8]
mov rcx, qword [rsi + 8]
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x160], 0
xor edx, edx
lea r8, [rsp + 0x70]
mov r9, rbx
call sub.kernel32.dll_GetDiskFreeSpaceExW
test eax, eax
je 0x1400492de
mov r12, qword [rsp + 0x70]
test r12, r12
je 0x140049304
mov rax, qword [rsp + 0x160]
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x1b4], 7
mov byte [rsp + 0x1bc], 0
mov dword [rsp + 0x188], 0
mov qword [rsp + 0x180], 0
mov dword [rsp + 0x9c], 0
lea rax, [rsp + 0x9c]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x180]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x28], 0xc
mov rcx, rbp
mov edx, 0x2d1400
lea r8, [rsp + 0x1b4]
mov r9d, 0xc
call sub.kernel32.dll_DeviceIoControl
test eax, eax
je 0x1400493d9
mov r13d, 2
cmp dword [rsp + 0x9c], 0xc
jne 0x140049405
xor r13d, r13d
cmp byte [rsp + 0x188], 0
sete r13b
jmp 0x140049405
call fcn.14006e2b0
mov dword [rsp + 0x58], edx
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x48], 1
test rax, rax
je 0x1400492be
lea rcx, [rsp + 0x50]
call fcn.14006ef90
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x78], 8
mov qword [rsp + 0x80], 0
jmp 0x140049354
call fcn.14006e2b0
mov qword [rsp + 0x50], rax
mov dword [rsp + 0x58], edx
mov qword [rsp + 0x48], 1
test rax, rax
je 0x140049304
lea rcx, [rsp + 0x50]
call fcn.14006ef90
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x78], 8
mov qword [rsp + 0x80], 0
mov rcx, rbp
call sub.kernel32.dll_CloseHandle
test eax, eax
jne 0x140049354
call fcn.14006e2b0
mov qword [rsp + 0x50], rax
mov dword [rsp + 0x58], edx
mov qword [rsp + 0x48], 1
test rax, rax
je 0x140049354
lea rcx, [rsp + 0x50]
call fcn.14006ef90
mov rdx, qword [rsp + 0x1f0]
test rdx, rdx
je 0x140049372
add rdx, rdx
mov r8d, 2
mov rcx, r14
call fcn.140011dc0
mov rsi, qword [rsp + 0xa8]
lea rbx, [rsi + 8]
mov r14, qword [rsp + 0x88]
mov r12, qword [rsp + 0x138]
movabs r13, 0x8000000000000000
lea rbp, [rsp + 0x290]
jmp 0x1400493bd
add rbx, 0x18
dec rdi
je 0x140048ecf
mov rdx, qword [rbx - 8]
test rdx, rdx
je 0x1400493b0
mov rcx, qword [rbx]
add rdx, rdx
mov r8d, 2
call fcn.140011dc0
jmp 0x1400493b0
call fcn.14006e2b0
mov qword [rsp + 0x50], rax
mov dword [rsp + 0x58], edx
mov qword [rsp + 0x48], 1
test rax, rax
je 0x1400493ff
lea rcx, [rsp + 0x50]
call fcn.14006ef90
mov r13d, 2
mov r8d, 2
mov eax, 0x20a
cmp word [rsp + r8*2 + 0x28c], 0
je 0x140049446
cmp word [rsp + r8*2 + 0x28e], 0
je 0x14004944c
cmp word [rsp + r8*2 + 0x290], 0
je 0x14004944f
add r8, 3
add rax, 0xfffffffffffffffa
jne 0x140049410
mov r8d, 0x105
jmp 0x14004944f
add r8, 0xfffffffffffffffe
jmp 0x14004944f
dec r8
mov rcx, rbx
lea rdx, [rsp + 0x290]
call fcn.1400b0250
cmp word [rsp + 0xc0], 0
je 0x140049648
cmp word [rsp + 0xc2], 0
je 0x140049650
cmp word [rsp + 0xc4], 0
je 0x14004965b
cmp word [rsp + 0xc6], 0
je 0x140049666
cmp word [rsp + 0xc8], 0
je 0x140049671
cmp word [rsp + 0xca], 0
je 0x14004967c
cmp word [rsp + 0xcc], 0
je 0x140049687
cmp word [rsp + 0xce], 0
je 0x140049692
cmp word [rsp + 0xd0], 0
je 0x14004969d
cmp word [rsp + 0xd2], 0
je 0x1400496a8
cmp word [rsp + 0xd4], 0
je 0x1400496b3
cmp word [rsp + 0xd6], 0
je 0x1400496be
cmp word [rsp + 0xd8], 0
je 0x1400496c9
cmp word [rsp + 0xda], 0
je 0x1400496d4
cmp word [rsp + 0xdc], 0
je 0x1400496df
cmp word [rsp + 0xde], 0
je 0x1400496e7
cmp word [rsp + 0xe0], 0
je 0x1400496ef
cmp word [rsp + 0xe2], 0
je 0x1400496f7
cmp word [rsp + 0xe4], 0
je 0x1400496ff
cmp word [rsp + 0xe6], 0
je 0x140049707
cmp word [rsp + 0xe8], 0
je 0x14004970f
cmp word [rsp + 0xea], 0
je 0x140049717
cmp word [rsp + 0xec], 0
je 0x14004971f
cmp word [rsp + 0xee], 0
je 0x140049727
cmp word [rsp + 0xf0], 0
je 0x14004972f
cmp word [rsp + 0xf2], 0
je 0x140049737
cmp word [rsp + 0xf4], 0
je 0x14004973f
cmp word [rsp + 0xf6], 0
je 0x140049747
cmp word [rsp + 0xf8], 0
je 0x14004974f
cmp word [rsp + 0xfa], 0
je 0x140049757
cmp word [rsp + 0xfc], 0
je 0x14004975f
cmp word [rsp + 0xfe], 1
mov r8d, 0x20
sbb r8, 0
jmp 0x140049765
xor r8d, r8d
jmp 0x140049765
mov r8d, 1
jmp 0x140049765
mov r8d, 2
jmp 0x140049765
mov r8d, 3
jmp 0x140049765
mov r8d, 4
jmp 0x140049765
mov r8d, 5
jmp 0x140049765
mov r8d, 6
jmp 0x140049765
mov r8d, 7
jmp 0x140049765
mov r8d, 8
jmp 0x140049765
mov r8d, 9
jmp 0x140049765
mov r8d, 0xa
jmp 0x140049765
mov r8d, 0xb
jmp 0x140049765
mov r8d, 0xc
jmp 0x140049765
mov r8d, 0xd
jmp 0x140049765
mov r8d, 0xe
jmp 0x140049765
mov r8d, 0xf
jmp 0x140049765
mov r8d, 0x10
jmp 0x140049765
mov r8d, 0x11
jmp 0x140049765
mov r8d, 0x12
jmp 0x140049765
mov r8d, 0x13
jmp 0x140049765
mov r8d, 0x14
jmp 0x140049765
mov r8d, 0x15
jmp 0x140049765
mov r8d, 0x16
jmp 0x140049765
mov r8d, 0x17
jmp 0x140049765
mov r8d, 0x18
jmp 0x140049765
mov r8d, 0x19
jmp 0x140049765
mov r8d, 0x1a
jmp 0x140049765
mov r8d, 0x1b
jmp 0x140049765
mov r8d, 0x1c
jmp 0x140049765
mov r8d, 0x1d
jmp 0x140049765
mov r8d, 0x1e
lea rcx, [rsp + 0x48]
lea rdx, [rsp + 0xc0]
call fcn.1400b0250
mov r8d, dword [rsp + 0x140]
shr r8d, 0x13
and r8b, 1
cmp dword [rsp + 0x144], 2
mov rax, qword [rsp + 0xa0]
lea rcx, [rdi + rdi*2]
lea rcx, [rsi + rcx*8]
movups xmm0, xmmword [rsp + 0x160]
movups xmm1, xmmword [rsp + 0x170]
lea rdx, [rsp + 0x218]
movups xmmword [rdx + 0x10], xmm1
movups xmmword [rdx], xmm0
movups xmm0, xmmword [rsp + 0x48]
movups xmm1, xmmword [rsp + 0x58]
movups xmmword [rdx + 0x30], xmm1
movups xmmword [rdx + 0x20], xmm0
mov qword [rsp + 0x270], rsi
mov qword [rsp + 0x278], rsi
mov qword [rsp + 0x280], rax
mov qword [rsp + 0x288], rcx
mov qword [rsp + 0x208], r13
mov qword [rsp + 0x210], 0xffffffffffffffff
mov qword [rsp + 0x258], r12
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x260], rax
sete byte [rsp + 0x268]
mov byte [rsp + 0x269], r8b
lea rcx, [rsp + 0x70]
lea rdx, [rsp + 0x208]
call fcn.14004da40
mov rcx, rbp
call sub.kernel32.dll_CloseHandle
test eax, eax
jne 0x140049876
xor r13d, r13d
call fcn.14006e2b0
mov qword [rsp + 0x50], rax
mov dword [rsp + 0x58], edx
mov qword [rsp + 0x48], 1
test rax, rax
je 0x140049876
xor r13d, r13d
lea rcx, [rsp + 0x50]
call fcn.14006ef90
mov rdx, qword [rsp + 0x1f0]
test rdx, rdx
je 0x140049894
add rdx, rdx
mov r8d, 2
mov rcx, r14
call fcn.140011dc0
mov r14, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x68]
mov r12, qword [rsp + 0x138]
movabs r13, 0x8000000000000000
lea rbp, [rsp + 0x290]
test r14, r14
jne 0x140048efc
jmp 0x140048f10
mov rax, qword [r12 + 0x20]
mov qword [r15 + 0x20], rax
mov rax, qword [r12]
mov rcx, qword [r12 + 8]
mov rdx, qword [r12 + 0x10]
mov qword [r15 + 0x10], rdx
mov rdx, qword [r12 + 0x18]
mov qword [r15 + 0x18], rdx
mov qword [r15], rax
mov qword [r15 + 8], rcx
mov rax, r15
movaps xmm6, xmmword [rsp + 0x4a0]
add rsp, 0x4b8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp rbp, 0xffffffffffffffff
jne 0x140049927
lea rcx, str.C:Userswin10_x64.cargo_registry_srcindex.crates.io_6f17d22bba15001f_sysinfo_0.32.0_srcwindowsdisk.rs
call fcn.140106570
jmp 0x140049992
lea rcx, [rbp + 1]
lea r8, str.C:Userswin10_x64.cargo_registry_srcindex.crates.io_6f17d22bba15001f_sysinfo_0.32.0_srcwindowsdisk.rs
mov rdx, rbp
call fcn.140106450
jmp 0x140049992
mov eax, 2
mov qword [rsp + 0x148], rax
mov rbx, rdi
mov rcx, qword [rsp + 0x148]
mov rdx, rbx
mov r14, qword [rsp + 0x90]
call fcn.1400f33e0
jmp 0x140049992
mov ecx, 2
mov rdx, rdi
call fcn.1400f33e0
jmp 0x140049992
mov ecx, 2
mov edx, 0x208
call fcn.1400f33e0
jmp 0x140049992
lea r8, str.C:Userswin10_x64.cargo_registry_srcindex.crates.io_6f17d22bba15001f_sysinfo_0.32.0_srcwindowsdisk.rs
call fcn.140106450
ud2