Function at 0x140049b80
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, 0x428
movdqa xmmword [rsp + 0x410], xmm7
movaps xmmword [rsp + 0x400], xmm6
mov rsi, rdx
mov r14, rcx
mov rbx, qword [rsp + 0x4a8]
mov ebp, dword [rsp + 0x4a0]
mov r12d, dword [rsp + 0x498]
mov rax, qword [rsp + 0x490]
mov qword [rsp + 0x120], rdx
mov qword [rsp + 0x1e8], rax
shr rsi, 1
cmp rsi, rax
jae 0x14004a5ef
cmp r12d, ebp
jae 0x14004a620
mov rsi, qword [rbx]
mov ebx, 8
lea r15, [rsp + 0x48]
lea r13, [rsp + 0x1f0]
xorps xmm6, xmm6
movdqa xmm7, xmmword [0x140059020]
xor eax, eax
mov qword [rsp + 0xa0], rax
xor edi, edi
mov qword [rsp + 0xe0], rsi
mov qword [rsp + 0x100], r14
mov dword [rsp + 0xc0], ebp
jmp 0x140049c6d
lea rcx, [rdi + rdi*8]
shl rcx, 4
add rcx, rbx
mov r8d, 0x90
lea rdx, [rsp + 0x138]
call sub.msvcrt.dll_memcpy
inc rdi
inc r12d
cmp r12d, ebp
je 0x14004a636
mov eax, dword [rsi]
bt eax, r12d
jae 0x140049c61
mov qword [rsp + 0x50], rdi
lea edi, [r12 + 0x41]
mov word [rsp + 0x48], di
mov dword [rsp + 0x4a], 0x5c003a
mov word [rsp + 0x4e], 0
mov rcx, r15
call sub.KERNEL32.dll_GetDriveTypeW
mov ecx, eax
and ecx, 0xfffffffe
cmp ecx, 2
jne 0x140049d80
mov dword [rsp + 0xc4], eax
mov r8d, 0x20a
mov rcx, r13
xor edx, edx
call sub.msvcrt.dll_memset
movaps xmmword [rsp + 0x90], xmm6
movaps xmmword [rsp + 0x80], xmm6
movaps xmmword [rsp + 0x70], xmm6
movaps xmmword [rsp + 0x60], xmm6
lea rax, [rsp + 0x60]
mov qword [rsp + 0x30], rax
movups xmmword [rsp + 0x20], xmm6
mov dword [rsp + 0x38], 0x20
mov rcx, r15
mov rdx, r13
mov r8d, 0x105
xor r9d, r9d
call sub.KERNEL32.dll_GetVolumeInformationW
test eax, eax
je 0x140049d80
mov ecx, 5
cmp word [rsp + rcx*2 + 0x1e6], 0
je 0x140049d6f
nop dword [rax]
cmp word [rsp + rcx*2 + 0x1e8], 0
je 0x140049da5
cmp word [rsp + rcx*2 + 0x1ea], 0
je 0x140049dab
cmp rcx, 0x107
je 0x140049db1
cmp word [rsp + rcx*2 + 0x1ec], 0
je 0x140049db8
cmp word [rsp + rcx*2 + 0x1ee], 0
je 0x140049dbe
cmp word [rsp + rcx*2 + 0x1f0], 0
je 0x140049dc1
add rcx, 6
cmp word [rsp + rcx*2 + 0x1e6], 0
jne 0x140049d20
add rcx, 0xfffffffffffffffb
jmp 0x140049dc1
mov qword [rsp + 0x138], 3
mov rdi, qword [rsp + 0x50]
cmp qword [rsp + 0x138], 3
je 0x140049c61
jmp 0x14004a55b
add rcx, 0xfffffffffffffffc
jmp 0x140049dc1
add rcx, 0xfffffffffffffffd
jmp 0x140049dc1
mov ecx, 0x105
jmp 0x140049dce
add rcx, 0xfffffffffffffffe
jmp 0x140049dc1
dec rcx
cmp rcx, 0x106
jae 0x14004a917
lea rax, [rsp + rcx*2]
add rax, 0x1f0
mov qword [rsp + 0xc8], r13
mov qword [rsp + 0xd0], rax
mov word [rsp + 0xd8], 0
lea rcx, [rsp + 0x1c8]
lea rdx, [rsp + 0xc8]
call fcn.14004c150
mov rax, qword [rsp + 0x1d0]
mov qword [rsp + 0xb8], rax
mov rax, qword [rsp + 0x1d8]
mov qword [rsp + 0xe8], rax
movzx eax, word [rsp + 0x60]
test ax, ax
mov word [rsp + 0x46], ax
je 0x140049fe6
cmp word [rsp + 0x62], 0
je 0x140049ff3
cmp word [rsp + 0x64], 0
je 0x140049ffd
cmp word [rsp + 0x66], 0
je 0x14004a007
cmp word [rsp + 0x68], 0
je 0x14004a011
cmp word [rsp + 0x6a], 0
je 0x14004a01b
cmp word [rsp + 0x6c], 0
je 0x14004a025
cmp word [rsp + 0x6e], 0
je 0x14004a02f
cmp word [rsp + 0x70], 0
je 0x14004a039
cmp word [rsp + 0x72], 0
je 0x14004a043
cmp word [rsp + 0x74], 0
je 0x14004a04d
cmp word [rsp + 0x76], 0
je 0x14004a057
cmp word [rsp + 0x78], 0
je 0x14004a061
cmp word [rsp + 0x7a], 0
je 0x14004a068
cmp word [rsp + 0x7c], 0
je 0x14004a06f
cmp word [rsp + 0x7e], 0
je 0x14004a076
cmp word [rsp + 0x80], 0
je 0x14004a07d
cmp word [rsp + 0x82], 0
je 0x14004a084
cmp word [rsp + 0x84], 0
je 0x14004a08b
cmp word [rsp + 0x86], 0
je 0x14004a092
cmp word [rsp + 0x88], 0
je 0x14004a099
cmp word [rsp + 0x8a], 0
je 0x14004a0a0
cmp word [rsp + 0x8c], 0
je 0x14004a0a7
cmp word [rsp + 0x8e], 0
je 0x14004a0ae
cmp word [rsp + 0x90], 0
je 0x14004a0b5
cmp word [rsp + 0x92], 0
je 0x14004a0bc
cmp word [rsp + 0x94], 0
je 0x14004a0c3
cmp word [rsp + 0x96], 0
je 0x14004a0ca
cmp word [rsp + 0x98], 0
je 0x14004a0d1
cmp word [rsp + 0x9a], 0
je 0x14004a0d8
cmp word [rsp + 0x9c], 0
je 0x14004a0df
cmp word [rsp + 0x9e], 1
mov esi, 0x20
sbb rsi, 0
jmp 0x14004a0e4
mov r15d, 1
xor esi, esi
jmp 0x14004a1a1
mov esi, 1
jmp 0x14004a0e4
mov esi, 2
jmp 0x14004a0e4
mov esi, 3
jmp 0x14004a0e4
mov esi, 4
jmp 0x14004a0e4
mov esi, 5
jmp 0x14004a0e4
mov esi, 6
jmp 0x14004a0e4
mov esi, 7
jmp 0x14004a0e4
mov esi, 8
jmp 0x14004a0e4
mov esi, 9
jmp 0x14004a0e4
mov esi, 0xa
jmp 0x14004a0e4
mov esi, 0xb
jmp 0x14004a0e4
mov esi, 0xc
jmp 0x14004a0e4
mov esi, 0xd
jmp 0x14004a0e4
mov esi, 0xe
jmp 0x14004a0e4
mov esi, 0xf
jmp 0x14004a0e4
mov esi, 0x10
jmp 0x14004a0e4
mov esi, 0x11
jmp 0x14004a0e4
mov esi, 0x12
jmp 0x14004a0e4
mov esi, 0x13
jmp 0x14004a0e4
mov esi, 0x14
jmp 0x14004a0e4
mov esi, 0x15
jmp 0x14004a0e4
mov esi, 0x16
jmp 0x14004a0e4
mov esi, 0x17
jmp 0x14004a0e4
mov esi, 0x18
jmp 0x14004a0e4
mov esi, 0x19
jmp 0x14004a0e4
mov esi, 0x1a
jmp 0x14004a0e4
mov esi, 0x1b
jmp 0x14004a0e4
mov esi, 0x1c
jmp 0x14004a0e4
mov esi, 0x1d
jmp 0x14004a0e4
mov esi, 0x1e
movzx eax, byte [0x1401b51a8]
xor ecx, ecx
mov rdx, rsi
call fcn.14003e800
test rax, rax
je 0x14004a928
mov r15, rax
cmp rsi, 0xf
ja 0x14004a10e
xor eax, eax
jmp 0x14004a190
mov eax, esi
and eax, 0x30
movdqa xmm0, xmmword [rsp + 0x60]
pand xmm0, xmm7
movdqa xmm1, xmmword [rsp + 0x70]
pand xmm1, xmm7
packuswb xmm0, xmm1
movdqu xmmword [r15], xmm0
cmp rax, 0x10
je 0x14004a19c
movdqa xmm0, xmmword [rsp + 0x80]
pand xmm0, xmm7
movdqa xmm1, xmmword [rsp + 0x90]
pand xmm1, xmm7
packuswb xmm0, xmm1
movdqu xmmword [r15 + 0x10], xmm0
cmp eax, 0x20
je 0x14004a19c
movdqa xmm0, xmmword [rsp + 0xa0]
pand xmm0, xmm7
movdqa xmm1, xmmword [rsp + 0xb0]
pand xmm1, xmm7
packuswb xmm0, xmm1
movdqu xmmword [r15 + 0x20], xmm0
jmp 0x14004a19c
movzx ecx, byte [rsp + rax*2 + 0x60]
mov byte [r15 + rax], cl
inc rax
cmp rsi, rax
jne 0x14004a190
movabs rax, 0x5c002e005c005c
mov qword [rsp + 0xf0], rax
mov word [rsp + 0xf8], di
mov dword [rsp + 0xfa], 0x3a
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 3
lea rcx, [rsp + 0xf0]
xor edx, edx
mov r8d, 3
xor r9d, r9d
call sub.KERNEL32.dll_CreateFileW
cmp rax, 0xffffffffffffffff
je 0x14004a5b1
mov r13, rax
mov qword [rsp + 0xa8], 0
mov qword [rsp + 0xc8], 0
lea rcx, [rsp + 0x48]
xor edx, edx
lea r8, [rsp + 0xa8]
lea r9, [rsp + 0xc8]
call sub.KERNEL32.dll_GetDiskFreeSpaceExW
test eax, eax
mov rdi, qword [rsp + 0x50]
je 0x14004a4e9
mov rax, qword [rsp + 0xa8]
test rax, rax
je 0x14004a4e9
mov qword [rsp + 0x110], rax
mov qword [rsp + 0x118], rbx
mov rax, qword [rsp + 0xc8]
mov qword [rsp + 0x108], rax
mov qword [rsp + 0x12c], 7
mov byte [rsp + 0x134], 0
mov dword [rsp + 0xb0], 0
mov qword [rsp + 0xa8], 0
mov dword [rsp + 0x5c], 0
lea rax, [rsp + 0x5c]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0xa8]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x28], 0xc
mov rcx, r13
mov edx, 0x2d1400
lea r8, [rsp + 0x12c]
mov r9d, 0xc
call sub.KERNEL32.dll_DeviceIoControl
xor ebx, ebx
cmp byte [rsp + 0xb0], 0
sete bl
cmp dword [rsp + 0x5c], 0xc
mov ecx, 2
cmovne rbx, rcx
test eax, eax
cmove rbx, rcx
mov r14d, 1
mov ebp, 1
mov rdi, qword [rsp + 0xe8]
test rdi, rdi
je 0x14004a348
js 0x14004a988
movzx eax, byte [0x1401b51a8]
xor ecx, ecx
mov rdx, rdi
call fcn.14003e800
mov rbp, rax
test rax, rax
je 0x14004a98d
mov rcx, rbp
mov rdx, qword [rsp + 0xb8]
mov r8, rdi
call sub.msvcrt.dll_memcpy
test rsi, rsi
je 0x14004a37d
movzx eax, byte [0x1401b51a8]
xor ecx, ecx
mov rdx, rsi
call fcn.14003e800
mov r14, rax
test rax, rax
je 0x14004a928
mov rcx, r14
mov rdx, r15
mov r8, rsi
call sub.msvcrt.dll_memcpy
movzx eax, byte [0x1401b51a8]
mov edx, 8
xor ecx, ecx
call fcn.14003e800
test rax, rax
je 0x14004a961
mov rdi, rax
mov rax, qword [rsp + 0x48]
mov qword [rdi], rax
lea rax, [rsp + 0x48]
mov qword [rsp + 0xc8], rax
lea rax, [rsp + 0x4e]
mov qword [rsp + 0xd0], rax
mov word [rsp + 0xd8], 0
lea rcx, [rsp + 0x198]
lea rdx, [rsp + 0xc8]
call fcn.14004c150
cmp dword [rsp + 0xc4], 2
mov rax, qword [rsp + 0xe8]
mov qword [rsp + 0x148], rax
mov qword [rsp + 0x150], rbp
mov qword [rsp + 0x158], rax
mov byte [rsp + 0x160], 0
mov qword [rsp + 0x138], rbx
mov qword [rsp + 0x140], 0xffffffffffffffff
mov qword [rsp + 0x168], rsi
mov qword [rsp + 0x170], r14
mov qword [rsp + 0x178], rsi
mov qword [rsp + 0x180], 4
mov qword [rsp + 0x188], rdi
mov qword [rsp + 0x190], 4
mov rax, qword [rsp + 0x110]
mov qword [rsp + 0x1b0], rax
mov rax, qword [rsp + 0x108]
mov qword [rsp + 0x1b8], rax
sete byte [rsp + 0x1c0]
mov rcx, r13
call sub.KERNEL32.dll_CloseHandle
cmp word [rsp + 0x46], 0
je 0x14004a4b0
mov rcx, qword [0x1401b5178]
xor edx, edx
mov r8, r15
call fcn.140053cc4
cmp qword [rsp + 0x1c8], 0
mov r14, qword [rsp + 0x100]
mov ebp, dword [rsp + 0xc0]
mov rbx, qword [rsp + 0x118]
mov rsi, qword [rsp + 0xe0]
lea r13, [rsp + 0x1f0]
mov rdi, qword [rsp + 0x50]
jne 0x14004a531
jmp 0x14004a547
mov qword [rsp + 0x138], 3
mov rcx, r13
call sub.KERNEL32.dll_CloseHandle
cmp word [rsp + 0x46], 0
mov rsi, qword [rsp + 0xe0]
lea r13, [rsp + 0x1f0]
je 0x14004a526
mov rcx, qword [0x1401b5178]
xor edx, edx
mov r8, r15
call fcn.140053cc4
cmp qword [rsp + 0x1c8], 0
je 0x14004a547
mov rcx, qword [0x1401b5178]
xor edx, edx
mov r8, qword [rsp + 0xb8]
call fcn.140053cc4
lea r15, [rsp + 0x48]
cmp qword [rsp + 0x138], 3
je 0x140049c61
mov rdx, qword [rsp + 0xa0]
mov qword [rsp + 0x1f0], rdx
mov qword [rsp + 0x1f8], rbx
mov qword [rsp + 0x200], rdi
cmp rdi, rdx
jne 0x140049c40
mov rcx, r13
call fcn.14004ab50
mov rdi, qword [rsp + 0x200]
mov rax, qword [rsp + 0x1f0]
mov qword [rsp + 0xa0], rax
mov rbx, qword [rsp + 0x1f8]
jmp 0x140049c40
mov rcx, 0xffffffffffffffff
call sub.KERNEL32.dll_CloseHandle
mov qword [rsp + 0x138], 3
mov rdi, qword [rsp + 0x50]
cmp word [rsp + 0x46], 0
mov rsi, qword [rsp + 0xe0]
lea r13, [rsp + 0x1f0]
jne 0x14004a515
jmp 0x14004a526
mov rdi, r9
test r8b, r8b
je 0x14004a687
call fcn.140010760
test rax, rax
je 0x14004a99a
mov rax, qword [rax]
test rax, rax
je 0x14004a6e9
add rax, 0x110
jmp 0x14004a6ee
pxor xmm0, xmm0
movdqu xmmword [r14], xmm0
mov qword [r14 + 0x10], 0
jmp 0x14004a8b1
test rdi, rdi
je 0x14004a695
movzx eax, byte [0x1401b51a8]
mov edx, 0x28
xor ecx, ecx
call fcn.14003e800
test rax, rax
mov rcx, qword [rsp + 0xa0]
je 0x14004a9c6
mov qword [rax], rcx
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rdi
pxor xmm0, xmm0
movdqu xmmword [rax + 0x18], xmm0
mov qword [r14], rax
mov qword [r14 + 8], rax
mov qword [r14 + 0x10], 1
jmp 0x14004a8b1
test rdi, rdi
je 0x140049be5
shr rdi, 1
jmp 0x14004a702
pxor xmm0, xmm0
movdqu xmmword [r14], xmm0
mov qword [r14 + 0x10], 0
cmp qword [rsp + 0xa0], 0
je 0x14004a8b1
mov rcx, qword [0x1401b5178]
xor edx, edx
mov r8, rbx
movaps xmm6, xmmword [rsp + 0x400]
movaps xmm7, xmmword [rsp + 0x410]
add rsp, 0x428
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.140053cc4
call fcn.140011cf0
mov rax, qword [rax]
mov rax, qword [rax + 0x210]
shr rdi, 1
cmp rax, rdi
cmova rdi, rax
mov qword [rsp + 0x1e0], rdi
mov qword [rsp + 0x60], rsi
xor eax, eax
mov ecx, ebp
sub ecx, r12d
cmovb ecx, eax
cmp rsi, rcx
ja 0x14004a970
add esi, r12d
movd xmm0, esi
movd xmm1, r12d
punpckldq xmm1, xmm0
movd xmm2, ebp
punpckldq xmm0, xmm2
lea rax, [rsp + 0x120]
mov qword [rsp + 0x1f0], rax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x1f8], rax
lea rcx, [rsp + 0x1e0]
mov qword [rsp + 0x200], rcx
mov qword [rsp + 0x208], rbx
movq qword [rsp + 0x210], xmm0
mov qword [rsp + 0x218], rax
mov qword [rsp + 0x220], rcx
mov qword [rsp + 0x228], rbx
movq qword [rsp + 0x230], xmm1
call fcn.140010760
test rax, rax
je 0x14004a935
mov r8, qword [rax]
test r8, r8
jne 0x14004a7de
call fcn.140011cf0
mov rsi, qword [rax]
call fcn.140010760
test rax, rax
je 0x14004a935
mov r8, qword [rax]
test r8, r8
je 0x14004a8d5
cmp qword [r8 + 0x110], rsi
jne 0x14004a8f6
lea rcx, [rsp + 0x138]
lea rdx, [rsp + 0x1f0]
xor r9d, r9d
call fcn.14004ad30
mov rsi, qword [rsp + 0x138]
mov r8, qword [rsp + 0x140]
mov r9, qword [rsp + 0x150]
mov rax, qword [rsp + 0x158]
mov rdx, qword [rsp + 0x160]
test r8, r8
je 0x14004a83d
mov rcx, qword [rsp + 0x148]
test r9, r9
je 0x14004a8a3
mov qword [r8 + 0x18], r9
mov qword [r9 + 0x20], r8
add rcx, rdx
jmp 0x14004a8a6
mov qword [r14], r9
mov qword [r14 + 8], rax
mov qword [r14 + 0x10], rdx
test rsi, rsi
jne 0x14004a869
jmp 0x14004a8b1
mov rcx, qword [0x1401b5178]
xor edx, edx
mov r8, rsi
call fcn.140053cc4
mov rsi, rbx
test rbx, rbx
je 0x14004a8b1
mov rbx, qword [rsi + 0x18]
test rbx, rbx
je 0x14004a87a
mov qword [rbx + 0x20], 0
mov rdi, qword [rsi + 8]
mov rdx, qword [rsi + 0x10]
mov rcx, rdi
call fcn.14004aab0
cmp qword [rsi], 0
je 0x14004a850
mov rcx, qword [0x1401b5178]
xor edx, edx
mov r8, rdi
call fcn.140053cc4
jmp 0x14004a850
mov rax, r8
mov qword [r14], rsi
mov qword [r14 + 8], rax
mov qword [r14 + 0x10], rcx
movaps xmm6, xmmword [rsp + 0x400]
movaps xmm7, xmmword [rsp + 0x410]
add rsp, 0x428
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
sub rsi, 0xffffffffffffff80
lea rcx, [rsp + 0x138]
lea r8, [rsp + 0x1f0]
mov rdx, rsi
call fcn.14004ac20
jmp 0x14004a7f6
sub rsi, 0xffffffffffffff80
lea rcx, [rsp + 0x138]
lea r9, [rsp + 0x1f0]
mov rdx, rsi
call fcn.14004b0d0
jmp 0x14004a7f6
lea r8, str._.cargo_registry_src_index.crates.io_6f17d22bba15001f_sysinfo_0.29.11_src_windows_disk.rs
mov edx, 0x105
call fcn.140007970
mov ecx, 1
mov rdx, rsi
call fcn.140005ca0
lea rax, [0x1401ad468]
mov qword [rsp + 0x20], rax
lea rcx, str.cannot_access_a_Thread_Local_Storage_value_during_or_after_destruction_rustc_25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04library_std_src_threadlocal.rs
lea r9, [0x1401ad5d8]
lea r8, [rsp + 0x138]
mov edx, 0x46
call fcn.140008b30
mov ecx, 2
mov edx, 8
call fcn.140005ca0
lea rcx, str.assertion_failed:_index___self.range.len___.cargo_registry_src_index.crates.io_6f17d22bba15001f_rayon_1.9.0_src_range.rs
lea r8, [0x1401a9440]
mov edx, 0x2b
call fcn.140007d10
call fcn.140005c60
mov ecx, 1
mov rdx, rdi
call fcn.140005ca0
lea rax, [0x1401ad468]
mov qword [rsp + 0x20], rax
lea rcx, str.cannot_access_a_Thread_Local_Storage_value_during_or_after_destruction_rustc_25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04library_std_src_threadlocal.rs
lea r9, [0x1401a9618]
lea r8, [rsp + 0x138]
mov edx, 0x46
call fcn.140008b30
mov ecx, 8
mov edx, 0x28
call fcn.140005ca0
int3