Function at 0x14000fc20
Capabilities:
Get disk information
Get storage device properties

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x3c8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x340], 0xfffffffffffffffe
mov r13, r8
mov r15, rcx
bt edx, r13d
jae 0x14000fd45
add r13d, 0x41
mov word [rbp + 0x336], r13w
mov dword [rbp + 0x338], 0x5c003a
mov word [rbp + 0x33c], 0
lea rcx, [rbp + 0x336]
call sub.KERNEL32.dll_GetDriveTypeW
mov r14d, eax
and eax, 0xfffffffe
cmp eax, 2
jne 0x14000fd45
lea rdi, [rbp - 0x1a]
mov r8d, 0x20a
mov rcx, rdi
xor edx, edx
call sub.VCRUNTIME140.dll_memset
pxor xmm0, xmm0
movdqa xmmword [rbp + 0x320], xmm0
movdqa xmmword [rbp + 0x310], xmm0
movdqa xmmword [rbp + 0x300], xmm0
movdqa xmmword [rbp + 0x2f0], xmm0
lea rax, [rbp + 0x2f0]
mov qword [rsp + 0x30], rax
movdqu xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x38], 0x20
lea rcx, [rbp + 0x336]
mov rdx, rdi
mov r8d, 0x105
xor r9d, r9d
call sub.KERNEL32.dll_GetVolumeInformationW
test eax, eax
je 0x14000fd45
lea rax, [rbp + 0x1f0]
xor esi, esi
nop word [rax + rax]
cmp word [rbp + rsi*2 - 0x1a], 0
je 0x14000fd6a
lea rcx, [rsi*2 - 0x1a]
add rcx, rbp
cmp word [rcx + 2], 0
je 0x14000fd60
cmp word [rcx + 4], 0
je 0x14000fd66
add rsi, 3
add rcx, 6
cmp rcx, rax
jne 0x14000fd10
mov esi, 0x105
jmp 0x14000fd77
mov qword [r15], 3
add rsp, 0x3c8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
add rsi, 1
jmp 0x14000fd6a
add rsi, 2
cmp rsi, 0x106
jae 0x1400100e6
pxor xmm0, xmm0
movdqu xmmword [rbp + 0x2c8], xmm0
mov qword [rbp + 0x2c0], 1
mov rax, rsi
shr rax, 1
mov r8d, esi
and r8d, 1
add r8, rax
je 0x14000fdae
lea rcx, [rbp + 0x2c0]
xor edx, edx
call fcn.1400450a0
lea rax, [rsi*2 - 0x1a]
add rax, rbp
mov qword [rbp + 0x1f0], rdi
mov qword [rbp + 0x1f8], rax
mov word [rbp + 0x200], 0
lea rdi, [rbp + 0x1f0]
lea rdx, [rbp + 0x2c0]
mov rcx, rdi
call fcn.14000c0c0
mov rdx, qword [rbp + 0x2c0]
mov rcx, qword [rbp + 0x2d0]
movzx eax, word [rbp + 0x2f0]
mov word [rbp + 0x33e], ax
test ax, ax
mov qword [rbp + 0x2d8], rcx
mov qword [rbp + 0x2e0], rdx
je 0x14000ffd3
cmp word [rbp + 0x2f2], 0
je 0x14000ffff
cmp word [rbp + 0x2f4], 0
je 0x140010009
cmp word [rbp + 0x2f6], 0
je 0x140010013
cmp word [rbp + 0x2f8], 0
je 0x14001001d
cmp word [rbp + 0x2fa], 0
je 0x140010027
cmp word [rbp + 0x2fc], 0
je 0x140010031
cmp word [rbp + 0x2fe], 0
je 0x14001003b
cmp word [rbp + 0x300], 0
je 0x140010045
cmp word [rbp + 0x302], 0
je 0x14001004f
cmp word [rbp + 0x304], 0
je 0x140010059
cmp word [rbp + 0x306], 0
je 0x140010063
cmp word [rbp + 0x308], 0
je 0x14001006d
cmp word [rbp + 0x30a], 0
je 0x140010077
cmp word [rbp + 0x30c], 0
je 0x140010081
cmp word [rbp + 0x30e], 0
je 0x14001008b
cmp word [rbp + 0x310], 0
je 0x140010092
cmp word [rbp + 0x312], 0
je 0x140010099
cmp word [rbp + 0x314], 0
je 0x1400100a0
cmp word [rbp + 0x316], 0
je 0x1400100a7
cmp word [rbp + 0x318], 0
je 0x1400100ae
cmp word [rbp + 0x31a], 0
je 0x1400100b5
cmp word [rbp + 0x31c], 0
je 0x1400100bc
cmp word [rbp + 0x31e], 0
je 0x1400100c3
cmp word [rbp + 0x320], 0
je 0x1400100ca
cmp word [rbp + 0x322], 0
je 0x1400100d1
cmp word [rbp + 0x324], 0
je 0x1400100d8
cmp word [rbp + 0x326], 0
je 0x1400100df
cmp word [rbp + 0x328], 0
je 0x1400100fc
cmp word [rbp + 0x32a], 0
je 0x140010103
cmp word [rbp + 0x32c], 0
je 0x14001010a
cmp word [rbp + 0x32e], 1
mov ebx, 0x20
sbb rbx, 0
jmp 0x14001010f
mov qword [rbp + 0x288], 1
mov qword [rbp + 0x290], 0
mov r12d, 1
xor eax, eax
mov qword [rbp + 0x2e8], rax
xor esi, esi
jmp 0x140010316
mov ebx, 1
jmp 0x14001010f
mov ebx, 2
jmp 0x14001010f
mov ebx, 3
jmp 0x14001010f
mov ebx, 4
jmp 0x14001010f
mov ebx, 5
jmp 0x14001010f
mov ebx, 6
jmp 0x14001010f
mov ebx, 7
jmp 0x14001010f
mov ebx, 8
jmp 0x14001010f
mov ebx, 9
jmp 0x14001010f
mov ebx, 0xa
jmp 0x14001010f
mov ebx, 0xb
jmp 0x14001010f
mov ebx, 0xc
jmp 0x14001010f
mov ebx, 0xd
jmp 0x14001010f
mov ebx, 0xe
jmp 0x14001010f
mov ebx, 0xf
jmp 0x14001010f
mov ebx, 0x10
jmp 0x14001010f
mov ebx, 0x11
jmp 0x14001010f
mov ebx, 0x12
jmp 0x14001010f
mov ebx, 0x13
jmp 0x14001010f
mov ebx, 0x14
jmp 0x14001010f
mov ebx, 0x15
jmp 0x14001010f
mov ebx, 0x16
jmp 0x14001010f
mov ebx, 0x17
jmp 0x14001010f
mov ebx, 0x18
jmp 0x14001010f
mov ebx, 0x19
jmp 0x14001010f
mov ebx, 0x1a
jmp 0x14001010f
mov ebx, 0x1b
jmp 0x14001010f
lea r8, str.C:UsersEmran.cargo_registry_srcmirrors.ustc.edu.cn_61ef6e0cd06fb9b8_sysinfo_0.20.5_srcwindows_tools.rs
mov edx, 0x105
mov rcx, rsi
call fcn.140049bc0
ud2
mov ebx, 0x1c
jmp 0x14001010f
mov ebx, 0x1d
jmp 0x14001010f
mov ebx, 0x1e
mov esi, 1
mov edx, 1
mov rcx, rbx
call fcn.1400035f0
test rax, rax
je 0x1400105f4
mov r12, rax
mov qword [rbp + 0x288], rax
mov qword [rbp + 0x290], rbx
movzx eax, word [rbp + 0x33e]
mov byte [r12], al
cmp rbx, 1
mov qword [rbp + 0x2e8], rbx
je 0x140010316
lea rax, [rbp + 0x2f2]
movabs rdx, 0x7ffffffffffffffe
add rdx, rbx
movabs rcx, 0x7fffffffffffffff
and rcx, rdx
mov esi, 1
cmp rcx, 3
jae 0x14001018b
mov rcx, r12
jmp 0x1400102e9
mov rbx, rdi
add rcx, 1
mov r8, rcx
and r8, 0xfffffffffffffffc
lea rdx, [r8 - 4]
mov r9, rdx
shr r9, 2
add r9, 1
test rdx, rdx
je 0x140010260
mov rdi, r9
and rdi, 0xfffffffffffffffe
pxor xmm1, xmm1
movdqa xmm0, xmmword [0x14004b750]
xor esi, esi
movdqa xmm2, xmmword [0x14004b550]
movdqa xmm3, xmmword [reloc.OLEAUT32.dll_SysReAllocString]
nop word cs:[rax + rax]
movd xmm4, dword [rbp + rsi*2 + 0x2f2]
movd xmm5, dword [rbp + rsi*2 + 0x2f6]
pand xmm4, xmm2
packuswb xmm4, xmm4
pand xmm5, xmm2
packuswb xmm5, xmm5
movd edx, xmm4
mov word [r12 + rsi + 1], dx
movd edx, xmm5
mov word [r12 + rsi + 3], dx
movd xmm4, dword [rbp + rsi*2 + 0x2fa]
movd xmm5, dword [rbp + rsi*2 + 0x2fe]
pand xmm4, xmm2
packuswb xmm4, xmm4
pand xmm5, xmm2
packuswb xmm5, xmm5
movd edx, xmm4
mov word [r12 + rsi + 5], dx
movd edx, xmm5
mov word [r12 + rsi + 7], dx
paddq xmm0, xmm3
paddq xmm1, xmm3
add rsi, 8
add rdi, 0xfffffffffffffffe
jne 0x1400101e0
jmp 0x14001026e
pxor xmm1, xmm1
movdqa xmm0, xmmword [0x14004b750]
xor esi, esi
test r9b, 1
je 0x1400102be
movd xmm2, dword [rbp + rsi*2 + 0x2f2]
movd xmm3, dword [rbp + rsi*2 + 0x2f6]
movdqa xmm4, xmmword [0x14004b550]
pand xmm2, xmm4
packuswb xmm2, xmm2
pand xmm3, xmm4
packuswb xmm3, xmm3
movd edx, xmm2
mov word [r12 + rsi + 1], dx
movd edx, xmm3
mov word [r12 + rsi + 3], dx
pcmpeqd xmm2, xmm2
psubq xmm0, xmm2
psubq xmm1, xmm2
paddq xmm0, xmm1
pshufd xmm1, xmm0, 0xee
paddq xmm1, xmm0
movq rsi, xmm1
cmp rcx, r8
mov rdi, rbx
je 0x140010316
lea rax, [rax + r8*2]
mov rcx, r12
add rcx, r8
mov rbx, qword [rbp + 0x2e8]
lea rdx, [rbx*2 + 0x2f0]
add rdx, rbp
add rcx, 1
nop dword [rax + rax]
movzx ebx, byte [rax]
add rax, 2
mov byte [rcx], bl
add rsi, 1
add rcx, 1
cmp rax, rdx
jne 0x140010300
mov qword [rbp + 0x298], rsi
movabs rax, 0x5c002e005c005c
mov qword [rbp + 0x2a2], rax
mov word [rbp + 0x2aa], r13w
mov dword [rbp + 0x2ac], 0x3a
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 3
lea rcx, [rbp + 0x2a2]
xor edx, edx
mov r8d, 3
xor r9d, r9d
call sub.KERNEL32.dll_CreateFileW
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x140010419
pxor xmm0, xmm0
movdqa xmmword [rbp + 0x270], xmm0
movdqa xmmword [rbp + 0x260], xmm0
movdqa xmmword [rbp + 0x250], xmm0
movdqa xmmword [rbp + 0x240], xmm0
movdqa xmmword [rbp + 0x230], xmm0
movdqa xmmword [rbp + 0x220], xmm0
movdqa xmmword [rbp + 0x210], xmm0
movdqa xmmword [rbp + 0x200], xmm0
movdqa xmmword [rbp + 0x1f0], xmm0
mov dword [rbp + 0x2b0], 0
lea rax, [rbp + 0x2b0]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x28], 0x90
mov rcx, rbx
mov edx, 0x70048
xor r8d, r8d
xor r9d, r9d
call sub.KERNEL32.dll_DeviceIoControl
mov rcx, rdi
cmp eax, 1
jne 0x14001047e
mov rdi, qword [rbp + 0x200]
jmp 0x140010480
mov rcx, 0xffffffffffffffff
call sub.KERNEL32.dll_CloseHandle
cmp r14d, 2
sete byte [rsp + 0x50]
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x48], 0
mov qword [rsp + 0x40], 0xffffffffffffffff
mov qword [rsp + 0x38], 2
mov qword [rsp + 0x20], 4
lea r9, [rbp + 0x336]
mov rcx, r15
mov rdx, qword [rbp + 0x2e0]
mov r8, qword [rbp + 0x2d8]
call fcn.14000d2c0
jmp 0x1400105ae
xor edi, edi
mov qword [rbp + 0x2b0], 8
mov byte [rbp + 0x2b8], 0
mov dword [rbp + 0x1f8], 0
mov qword [rbp + 0x1f0], 0
mov dword [rbp + 0x330], 0
lea rax, [rbp + 0x330]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x28], 0xc
lea r8, [rbp + 0x2b0]
mov rcx, rbx
mov edx, 0x2d1400
mov r9d, 0xc
call sub.KERNEL32.dll_DeviceIoControl
test eax, eax
je 0x140010556
cmp dword [rbp + 0x330], 0xc
jne 0x140010556
mov r13b, byte [rbp + 0x1f8]
mov rcx, rbx
call sub.KERNEL32.dll_CloseHandle
xor eax, eax
test r13b, r13b
setne al
cmp r14d, 2
sete byte [rsp + 0x50]
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x20], 4
lea r9, [rbp + 0x336]
mov rcx, r15
mov rdx, qword [rbp + 0x2e0]
mov r8, qword [rbp + 0x2d8]
call fcn.14000d2c0
jmp 0x1400105ae
mov rcx, rbx
call sub.KERNEL32.dll_CloseHandle
cmp r14d, 2
sete byte [rsp + 0x50]
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x40], 0xffffffffffffffff
mov qword [rsp + 0x38], 2
mov qword [rsp + 0x20], 4
lea r9, [rbp + 0x336]
mov rcx, r15
mov rdx, qword [rbp + 0x2e0]
mov r8, qword [rbp + 0x2d8]
call fcn.14000d2c0
cmp word [rbp + 0x33e], 0
je 0x1400105cd
mov r8d, 1
mov rcx, r12
mov rdx, qword [rbp + 0x2e8]
call fcn.140003600
mov rdx, qword [rbp + 0x2c8]
test rdx, rdx
je 0x14000fd4c
mov rcx, qword [rbp + 0x2c0]
mov r8d, 1
call fcn.140003600
jmp 0x14000fd4c
mov edx, 1
mov rcx, rbx
call fcn.140049940
ud2