Function at 0x140183c70
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, 0x3d8
movdqa xmmword [rsp + 0x3c0], xmm7
movaps xmmword [rsp + 0x3b0], xmm6
mov r14, rcx
mov rsi, qword [rsp + 0x458]
mov edi, dword [rsp + 0x450]
mov r13d, dword [rsp + 0x448]
mov rax, qword [rsp + 0x440]
mov qword [rsp + 0x158], rdx
mov qword [rsp + 0x178], rax
shr rdx, 1
cmp rdx, rax
jae 0x140183d28
cmp r13d, edi
jae 0x140184817
mov rsi, qword [rsi]
mov eax, 8
mov qword [rsp + 0xb8], rax
lea r15, [rsp + 0x48]
lea r12, [rsp + 0x1a0]
xorps xmm6, xmm6
movdqa xmm7, xmmword [0x14021fae0]
xor eax, eax
mov qword [rsp + 0xd8], rax
xor eax, eax
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0x118], rsi
mov qword [rsp + 0x130], r14
jmp 0x140183e8c
test r8b, r8b
je 0x140184881
mov ebp, edi
mov rbx, r9
mov rdi, rdx
xor ecx, ecx
call fcn.140067760
test rax, rax
je 0x140184afc
mov rax, qword [rax]
test rax, rax
je 0x1401848d9
add rax, 0x110
jmp 0x1401848de
lea rax, [r9 + r9*8]
shl rax, 4
mov qword [r8 + rax], r14
mov qword [r8 + rax + 8], 0xffffffffffffffff
mov rcx, qword [rsp + 0x110]
mov qword [r8 + rax + 0x10], rcx
mov rcx, qword [rsp + 0x140]
mov qword [r8 + rax + 0x18], rcx
mov rcx, qword [rsp + 0x120]
mov qword [r8 + rax + 0x20], rcx
mov byte [r8 + rax + 0x28], 0
mov ecx, dword [rsp + 0x90]
mov edx, dword [rsp + 0x93]
mov dword [r8 + rax + 0x29], ecx
mov dword [r8 + rax + 0x2c], edx
mov rcx, qword [rsp + 0x108]
mov qword [r8 + rax + 0x30], rcx
mov rcx, qword [rsp + 0x138]
mov qword [r8 + rax + 0x38], rcx
mov qword [r8 + rax + 0x40], r12
mov qword [r8 + rax + 0x48], 4
mov qword [r8 + rax + 0x50], rbx
mov qword [r8 + rax + 0x58], 4
movdqa xmm0, xmmword [rsp + 0x50]
movdqu xmmword [r8 + rax + 0x60], xmm0
mov rcx, qword [rsp + 0x60]
mov qword [r8 + rax + 0x70], rcx
mov rcx, qword [rsp + 0x148]
mov qword [r8 + rax + 0x78], rcx
mov rcx, qword [rsp + 0x150]
mov qword [r8 + rax + 0x80], rcx
mov byte [r8 + rax + 0x88], bpl
mov ecx, dword [rsp + 0xc0]
mov edx, dword [rsp + 0xc3]
mov dword [r8 + rax + 0x8c], edx
mov qword [rsp + 0xb8], r8
mov dword [r8 + rax + 0x89], ecx
inc r9
mov qword [rsp + 0xd8], r9
mov r14, qword [rsp + 0x130]
mov rsi, qword [rsp + 0x118]
lea r15, [rsp + 0x48]
lea r12, [rsp + 0x1a0]
nop word [rax + rax]
inc r13d
cmp r13d, edi
je 0x140184820
mov eax, dword [rsi]
bt eax, r13d
jae 0x140183e80
lea ebx, [r13 + 0x41]
mov word [rsp + 0x48], bx
mov dword [rsp + 0x4a], 0x5c003a
mov word [rsp + 0x4e], 0
mov rcx, r15
call sub.KERNEL32.dll_GetDriveTypeW
mov ebp, eax
and eax, 0xfffffffe
cmp eax, 2
jne 0x140183e80
mov r8d, 0x20a
mov rcx, r12
xor edx, edx
call sub.msvcrt.dll_memset
movaps xmmword [rsp + 0x80], xmm6
movaps xmmword [rsp + 0x70], xmm6
movaps xmmword [rsp + 0x60], xmm6
movaps xmmword [rsp + 0x50], xmm6
lea rax, [rsp + 0x50]
mov qword [rsp + 0x30], rax
movups xmmword [rsp + 0x20], xmm6
mov dword [rsp + 0x38], 0x20
mov rcx, r15
mov rdx, r12
mov r8d, 0x105
xor r9d, r9d
call sub.KERNEL32.dll_GetVolumeInformationW
test eax, eax
je 0x140183e80
mov ecx, 0x20a
xor eax, eax
nop
cmp word [rsp + rax*2 + 0x1a0], 0
je 0x140183f5b
cmp word [rsp + rax*2 + 0x1a2], 0
je 0x140183f52
cmp word [rsp + rax*2 + 0x1a4], 0
je 0x140183f57
add rax, 3
add rcx, 0xfffffffffffffffa
jne 0x140183f20
mov eax, 0x105
jmp 0x140183f67
inc rax
jmp 0x140183f5b
add rax, 2
cmp rax, 0x106
jae 0x140184afc
lea rax, [rsp + rax*2]
add rax, 0x1a0
mov qword [rsp + 0xc0], r12
mov qword [rsp + 0xc8], rax
mov word [rsp + 0xd0], 0
mov qword [rsp + 0x90], 0
mov qword [rsp + 0x98], 1
mov qword [rsp + 0xa0], 0
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0xc0]
call fcn.140185a00
mov rcx, qword [rsp + 0x90]
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0xe0], rax
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x120], rax
cmp word [rsp + 0x50], 0
mov qword [rsp + 0x128], rcx
je 0x140184195
cmp word [rsp + 0x52], 0
je 0x1401841a2
cmp word [rsp + 0x54], 0
je 0x1401841ad
cmp word [rsp + 0x56], 0
je 0x1401841b8
cmp word [rsp + 0x58], 0
je 0x1401841c3
cmp word [rsp + 0x5a], 0
je 0x1401841ce
cmp word [rsp + 0x5c], 0
je 0x1401841d9
cmp word [rsp + 0x5e], 0
je 0x1401841e4
cmp word [rsp + 0x60], 0
je 0x1401841ef
cmp word [rsp + 0x62], 0
je 0x1401841fa
cmp word [rsp + 0x64], 0
je 0x140184205
cmp word [rsp + 0x66], 0
je 0x140184210
cmp word [rsp + 0x68], 0
je 0x14018421b
cmp word [rsp + 0x6a], 0
je 0x140184226
cmp word [rsp + 0x6c], 0
je 0x140184231
cmp word [rsp + 0x6e], 0
je 0x140184239
cmp word [rsp + 0x70], 0
je 0x140184241
cmp word [rsp + 0x72], 0
je 0x140184249
cmp word [rsp + 0x74], 0
je 0x140184251
cmp word [rsp + 0x76], 0
je 0x140184259
cmp word [rsp + 0x78], 0
je 0x140184261
cmp word [rsp + 0x7a], 0
je 0x140184269
cmp word [rsp + 0x7c], 0
je 0x140184271
cmp word [rsp + 0x7e], 0
je 0x140184279
cmp word [rsp + 0x80], 0
je 0x140184281
cmp word [rsp + 0x82], 0
je 0x140184289
cmp word [rsp + 0x84], 0
je 0x140184291
cmp word [rsp + 0x86], 0
je 0x140184299
cmp word [rsp + 0x88], 0
je 0x1401842a1
cmp word [rsp + 0x8a], 0
je 0x1401842a9
cmp word [rsp + 0x8c], 0
je 0x1401842b1
cmp word [rsp + 0x8e], 1
mov r12d, 0x20
sbb r12, 0
jmp 0x1401842b7
mov esi, 1
xor r12d, r12d
jmp 0x1401843d9
mov r12d, 1
jmp 0x1401842b7
mov r12d, 2
jmp 0x1401842b7
mov r12d, 3
jmp 0x1401842b7
mov r12d, 4
jmp 0x1401842b7
mov r12d, 5
jmp 0x1401842b7
mov r12d, 6
jmp 0x1401842b7
mov r12d, 7
jmp 0x1401842b7
mov r12d, 8
jmp 0x1401842b7
mov r12d, 9
jmp 0x1401842b7
mov r12d, 0xa
jmp 0x1401842b7
mov r12d, 0xb
jmp 0x1401842b7
mov r12d, 0xc
jmp 0x1401842b7
mov r12d, 0xd
jmp 0x1401842b7
mov r12d, 0xe
jmp 0x1401842b7
mov r12d, 0xf
jmp 0x1401842b7
mov r12d, 0x10
jmp 0x1401842b7
mov r12d, 0x11
jmp 0x1401842b7
mov r12d, 0x12
jmp 0x1401842b7
mov r12d, 0x13
jmp 0x1401842b7
mov r12d, 0x14
jmp 0x1401842b7
mov r12d, 0x15
jmp 0x1401842b7
mov r12d, 0x16
jmp 0x1401842b7
mov r12d, 0x17
jmp 0x1401842b7
mov r12d, 0x18
jmp 0x1401842b7
mov r12d, 0x19
jmp 0x1401842b7
mov r12d, 0x1a
jmp 0x1401842b7
mov r12d, 0x1b
jmp 0x1401842b7
mov r12d, 0x1c
jmp 0x1401842b7
mov r12d, 0x1d
jmp 0x1401842b7
mov r12d, 0x1e
movzx eax, byte [0x141ada129]
xor ecx, ecx
mov rdx, r12
call fcn.14014fee0
test rax, rax
je 0x140184afc
mov rsi, rax
cmp r12, 0x10
jb 0x1401842fa
lea rax, [rsi + r12]
lea rcx, [rsp + r12*2]
add rcx, 0x50
lea rdx, [rsp + 0x50]
cmp rdx, rax
setb al
cmp rcx, rsi
jbe 0x14018435e
test al, al
je 0x14018435e
xor eax, eax
mov rdx, r12
mov rcx, rax
and rdx, 3
je 0x140184322
mov rcx, rax
nop dword [rax + rax]
movzx r8d, byte [rsp + rcx*2 + 0x50]
mov byte [rsi + rcx], r8b
inc rcx
dec rdx
jne 0x140184310
sub rax, r12
cmp rax, 0xfffffffffffffffc
ja 0x1401843d9
nop
movzx eax, byte [rsp + rcx*2 + 0x50]
mov byte [rsi + rcx], al
movzx eax, byte [rsp + rcx*2 + 0x52]
mov byte [rsi + rcx + 1], al
movzx eax, byte [rsp + rcx*2 + 0x54]
mov byte [rsi + rcx + 2], al
movzx eax, byte [rsp + rcx*2 + 0x56]
mov byte [rsi + rcx + 3], al
add rcx, 4
cmp r12, rcx
jne 0x140184330
jmp 0x1401843d9
mov rax, r12
and rax, 0xfffffffffffffff0
movdqa xmm0, xmmword [rsp + 0x50]
pand xmm0, xmm7
movdqa xmm1, xmmword [rsp + 0x60]
pand xmm1, xmm7
packuswb xmm0, xmm1
movdqu xmmword [rsi], xmm0
cmp rax, 0x10
je 0x1401843d0
movdqa xmm0, xmmword [rsp + 0x70]
pand xmm0, xmm7
movdqa xmm1, xmmword [rsp + 0x80]
pand xmm1, xmm7
packuswb xmm0, xmm1
movdqu xmmword [rsi + 0x10], xmm0
cmp rax, 0x20
je 0x1401843d0
movdqa xmm0, xmmword [rsp + 0x90]
pand xmm0, xmm7
movdqa xmm1, xmmword [rsp + 0xa0]
pand xmm1, xmm7
packuswb xmm0, xmm1
movdqu xmmword [rsi + 0x20], xmm0
cmp r12, rax
jne 0x1401842fc
movabs rax, 0x5c002e005c005c
mov qword [rsp + 0xf8], rax
mov word [rsp + 0x100], bx
mov dword [rsp + 0x102], 0x3a
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 3
lea rcx, [rsp + 0xf8]
xor edx, edx
mov r8d, 3
xor r9d, r9d
call sub.KERNEL32.dll_CreateFileW
cmp rax, 0xffffffffffffffff
je 0x1401845d6
mov r15, rax
mov qword [rsp + 0xc0], 0
mov qword [rsp + 0x90], 0
lea rcx, [rsp + 0x48]
xor edx, edx
lea r8, [rsp + 0xc0]
lea r9, [rsp + 0x90]
call sub.KERNEL32.dll_GetDiskFreeSpaceExW
test eax, eax
je 0x140184579
mov rbx, qword [rsp + 0xc0]
test rbx, rbx
je 0x140184579
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x150], rax
mov qword [rsp + 0x164], 7
mov byte [rsp + 0x16c], 0
mov dword [rsp + 0xf0], 0
mov qword [rsp + 0xe8], 0
mov dword [rsp + 0xac], 0
lea rax, [rsp + 0xac]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0xe8]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x28], 0xc
mov rcx, r15
mov edx, 0x2d1400
lea r8, [rsp + 0x164]
mov r9d, 0xc
call sub.KERNEL32.dll_DeviceIoControl
xor r14d, r14d
cmp byte [rsp + 0xf0], 0
sete r14b
cmp dword [rsp + 0xac], 0xc
mov ecx, 2
cmovne r14, rcx
test eax, eax
cmove r14, rcx
mov rdi, qword [rsp + 0x120]
test rdi, rdi
je 0x1401845e9
js 0x140184afc
movzx eax, byte [0x141ada129]
xor ecx, ecx
mov rdx, rdi
call fcn.14014fee0
test rax, rax
je 0x140184afc
mov rcx, rdi
mov qword [rsp + 0x110], rdi
jmp 0x1401845f8
mov rcx, r15
call sub.KERNEL32.dll_CloseHandle
test r12, r12
je 0x140184597
mov rcx, qword [0x141ada118]
xor edx, edx
mov r8, rsi
call fcn.1401cdfe4
cmp qword [rsp + 0x128], 0
mov rsi, qword [rsp + 0x118]
lea r15, [rsp + 0x48]
lea r12, [rsp + 0x1a0]
je 0x140183e80
mov rcx, qword [0x141ada118]
xor edx, edx
mov r8, qword [rsp + 0xe0]
call fcn.1401cdfe4
jmp 0x140183e80
mov rcx, 0xffffffffffffffff
call sub.KERNEL32.dll_CloseHandle
test r12, r12
jne 0x140184586
jmp 0x140184597
xor eax, eax
mov qword [rsp + 0x110], rax
mov eax, 1
mov qword [rsp + 0x140], rax
mov rcx, rax
mov rdx, qword [rsp + 0xe0]
mov r8, rdi
call sub.msvcrt.dll_memcpy
test r12, r12
mov qword [rsp + 0x148], rbx
je 0x140184644
movzx eax, byte [0x141ada129]
xor ecx, ecx
mov rdx, r12
call fcn.14014fee0
test rax, rax
je 0x140184afc
mov qword [rsp + 0x108], r12
jmp 0x140184653
xor eax, eax
mov qword [rsp + 0x108], rax
mov eax, 1
mov qword [rsp + 0x138], rax
mov rcx, rax
mov rdx, rsi
mov r8, r12
call sub.msvcrt.dll_memcpy
mov rdi, qword [rsp + 0x48]
movzx eax, byte [0x141ada129]
mov edx, 8
xor ecx, ecx
call fcn.14014fee0
test rax, rax
je 0x140184afc
mov rbx, rax
cmp ebp, 2
sete bpl
mov qword [rax], rdi
lea rax, [rsp + 0x48]
mov qword [rsp + 0xc0], rax
lea rax, [rsp + 0x4e]
mov qword [rsp + 0xc8], rax
mov word [rsp + 0xd0], 0
mov qword [rsp + 0x90], 0
mov qword [rsp + 0x98], 1
mov qword [rsp + 0xa0], 0
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0xc0]
call fcn.140185a00
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x190], rax
movups xmm0, xmmword [rsp + 0x90]
movaps xmmword [rsp + 0x180], xmm0
mov rcx, r15
call sub.KERNEL32.dll_CloseHandle
test r12, r12
je 0x140184732
mov rcx, qword [0x141ada118]
xor edx, edx
mov r8, rsi
call fcn.1401cdfe4
cmp qword [rsp + 0x128], 0
mov edi, dword [rsp + 0x450]
je 0x14018475a
mov rcx, qword [0x141ada118]
xor edx, edx
mov r8, qword [rsp + 0xe0]
call fcn.1401cdfe4
mov eax, dword [rsp + 0xf8]
mov ecx, dword [rsp + 0xfb]
mov dword [rsp + 0x90], eax
mov dword [rsp + 0x93], ecx
movaps xmm0, xmmword [rsp + 0x180]
movaps xmmword [rsp + 0x50], xmm0
mov rax, qword [rsp + 0x190]
mov qword [rsp + 0x60], rax
mov eax, dword [rsp + 0xe8]
mov ecx, dword [rsp + 0xeb]
mov dword [rsp + 0xc0], eax
mov dword [rsp + 0xc3], ecx
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x1a0], rax
mov r8, qword [rsp + 0xb8]
mov qword [rsp + 0x1a8], r8
mov r9, qword [rsp + 0xd8]
mov qword [rsp + 0x1b0], r9
cmp r9, rax
jne 0x140183d60
lea rcx, [rsp + 0x1a0]
call fcn.14017bd60
mov r9, qword [rsp + 0x1b0]
mov rax, qword [rsp + 0x1a0]
mov qword [rsp + 0xb0], rax
mov r8, qword [rsp + 0x1a8]
jmp 0x140183d60
mov esi, 8
xor edi, edi
jmp 0x14018489f
mov rsi, qword [rsp + 0xd8]
test rsi, rsi
je 0x14018488f
movzx eax, byte [0x141ada129]
mov edx, 0x28
xor ecx, ecx
call fcn.14014fee0
test rax, rax
mov rcx, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0xb0]
je 0x140184afc
mov qword [rax], rdx
mov qword [rax + 8], rcx
mov qword [rax + 0x10], rsi
pxor xmm0, xmm0
movdqu xmmword [rax + 0x18], xmm0
mov qword [r14], rax
mov qword [r14 + 8], rax
mov qword [r14 + 0x10], 1
jmp 0x140184a9c
test r9, r9
je 0x140183cce
shr r9, 1
jmp 0x1401848fa
mov rsi, qword [rsp + 0xb8]
mov rdi, qword [rsp + 0xb0]
pxor xmm0, xmm0
movdqu xmmword [r14], xmm0
mov qword [r14 + 0x10], 0
mov rcx, rsi
xor edx, edx
call fcn.1401813f0
test rdi, rdi
je 0x140184a9c
mov rcx, qword [0x141ada118]
xor edx, edx
mov r8, rsi
call fcn.1401cdfe4
jmp 0x140184a9c
call fcn.140067890
mov rax, qword [rax]
mov rax, qword [rax + 0x208]
mov r9, rbx
shr r9, 1
cmp rax, r9
cmova r9, rax
mov rdx, rdi
mov edi, ebp
mov qword [rsp + 0x170], r9
mov qword [rsp + 0x90], rdx
xor eax, eax
mov ecx, edi
sub ecx, r13d
cmovb ecx, eax
cmp rdx, rcx
ja 0x140184afc
add edx, r13d
lea rax, [rsp + 0x158]
mov qword [rsp + 0x1a0], rax
lea rax, [rsp + 0x90]
mov qword [rsp + 0x1a8], rax
lea rcx, [rsp + 0x170]
mov qword [rsp + 0x1b0], rcx
mov qword [rsp + 0x1b8], rsi
mov dword [rsp + 0x1c0], edx
mov dword [rsp + 0x1c4], edi
mov qword [rsp + 0x1c8], rax
mov qword [rsp + 0x1d0], rcx
mov qword [rsp + 0x1d8], rsi
mov dword [rsp + 0x1e0], r13d
mov dword [rsp + 0x1e4], edx
xor ecx, ecx
call fcn.140172890
test rax, rax
je 0x140184afc
mov r8, qword [rax]
test r8, r8
jne 0x1401849d6
call fcn.140067890
mov rsi, qword [rax]
xor ecx, ecx
call fcn.140172890
test rax, rax
je 0x140184afc
mov r8, qword [rax]
test r8, r8
je 0x140184ac0
cmp qword [r8 + 0x110], rsi
jne 0x140184ade
lea rcx, [rsp + 0x50]
lea rdx, [rsp + 0x1a0]
call fcn.140185f80
mov rsi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x58]
mov r8, qword [rsp + 0x68]
mov rax, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x78]
test rcx, rcx
je 0x140184a28
mov r9, qword [rsp + 0x60]
test r8, r8
je 0x140184a91
mov qword [rcx + 0x18], r8
mov qword [r8 + 0x20], rcx
add r9, rdx
mov qword [r14], rsi
mov qword [r14 + 8], rax
jmp 0x140184a98
mov qword [r14], r8
mov qword [r14 + 8], rax
mov qword [r14 + 0x10], rdx
test rsi, rsi
jne 0x140184a59
jmp 0x140184a9c
mov rcx, qword [0x141ada118]
xor edx, edx
mov r8, rsi
call fcn.1401cdfe4
mov rsi, rdi
test rdi, rdi
je 0x140184a9c
mov rdi, qword [rsi + 0x18]
test rdi, rdi
je 0x140184a6a
mov qword [rdi + 0x20], 0
mov rcx, qword [rsi + 8]
mov rdx, qword [rsi + 0x10]
call fcn.1401813f0
cmp qword [rsi], 0
je 0x140184a40
mov r8, qword [rsi + 8]
mov rcx, qword [0x141ada118]
xor edx, edx
call fcn.1401cdfe4
jmp 0x140184a40
mov qword [r14], rsi
mov qword [r14 + 8], rcx
mov qword [r14 + 0x10], r9
movaps xmm6, xmmword [rsp + 0x3b0]
movaps xmm7, xmmword [rsp + 0x3c0]
add rsp, 0x3d8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
sub rsi, 0xffffffffffffff80
lea rcx, [rsp + 0x50]
lea r8, [rsp + 0x1a0]
mov rdx, rsi
call fcn.140185ea0
jmp 0x1401849e8
sub rsi, 0xffffffffffffff80
lea rcx, [rsp + 0x50]
lea r9, [rsp + 0x1a0]
mov rdx, rsi
call fcn.1401863e0
jmp 0x1401849e8
ud2