Function at 0x10066e60
Capabilities:
Get storage device properties

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4c
mov eax, dword [0x10331c40]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
xorps xmm0, xmm0
push esi
push edi
push 0
push 0
push 3
push 0
push 3
push 0
movups xmmword [ebp - 0x1c], xmm0
push 0x101c5ae8
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
mov dword [ebp - 0x44], esi
cmp esi, 0xffffffff
jne 0x10066f13
xorps xmm0, xmm0
movups xmmword [ebx], xmm0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x14], 0xf
mov byte [ebx], 0
mov ecx, dword [ebp - 8]
cmp ecx, 0xf
jbe 0x10066efe
mov edx, dword [ebp - 0x1c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10066ef4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10067229
push ecx
push edx
call fcn.1015539a
add esp, 8
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.101556c2
mov esp, ebp
pop ebp
ret 4
push 0
lea eax, [ebp - 0x34]
mov dword [ebp - 0x28], 0
push eax
push 8
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x24], 0
push eax
push 0xc
lea eax, [ebp - 0x28]
mov dword [ebp - 0x34], 0
push eax
push 0x2d1400
push esi
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x10066f70
xorps xmm0, xmm0
movups xmmword [ebx], xmm0
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], 0xf
mov byte [ebx], al
test esi, esi
je 0x10066eca
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x10066eca
mov eax, dword [ebp - 0x48]
push eax
mov dword [ebp - 0x2c], eax
call fcn.10155df5
mov edi, eax
mov dword [ebp - 0x38], eax
add esp, 4
test edi, edi
je 0x10066f98
push dword [ebp - 0x2c]
push 0
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
jmp 0x10066f9d
xor edi, edi
mov dword [ebp - 0x38], edi
push 0
lea eax, [ebp - 0x34]
push eax
push dword [ebp - 0x2c]
lea eax, [ebp - 0x28]
push edi
push 0xc
push eax
push 0x2d1400
push esi
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x10066ff0
xorps xmm0, xmm0
movups xmmword [ebx], xmm0
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], 0xf
mov byte [ebx], al
test edi, edi
je 0x10066fdc
push edi
call fcn.10155dfe
add esp, 4
test esi, esi
je 0x10066eca
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x10066eca
mov eax, dword [edi + 0x18]
test eax, eax
jne 0x1006700b
xorps xmm0, xmm0
movups xmmword [ebx], xmm0
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], 0xf
mov byte [ebx], al
jmp 0x10066fd3
lea ecx, [edi + eax]
mov edi, ecx
mov dword [ebp - 0x3c], ecx
lea edx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x10067016
mov esi, dword [ebp - 8]
sub edi, edx
mov dword [ebp - 0x2c], esi
cmp edi, esi
ja 0x1006704e
cmp dword [ebp - 0x2c], 0xf
lea esi, [ebp - 0x1c]
push edi
cmova esi, dword [ebp - 0x1c]
push ecx
push esi
mov dword [ebp - 0xc], edi
call sub.VCRUNTIME140.dll_memmove
mov byte [edi + esi], 0
add esp, 0xc
mov ecx, dword [ebp - 0x1c]
jmp 0x100670f5
cmp edi, 0x7fffffff
ja 0x1006722f
mov ecx, edi
or ecx, 0xf
cmp ecx, 0x7fffffff
jbe 0x1006706e
mov ecx, 0x7fffffff
jmp 0x1006708c
mov edx, esi
mov eax, 0x7fffffff
shr edx, 1
sub eax, edx
cmp esi, eax
jbe 0x10067084
mov ecx, 0x7fffffff
jmp 0x1006708c
lea eax, [edx + esi]
cmp ecx, eax
cmovb ecx, eax
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x2c], ecx
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.10048150
push edi
push dword [ebp - 0x3c]
mov ecx, eax
mov dword [ebp - 0xc], edi
mov eax, dword [ebp - 0x2c]
push ecx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 8], eax
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [ebp - 0x30]
add esp, 0x14
mov byte [ecx + edi], 0
cmp esi, 0xf
jbe 0x100670f2
mov ecx, dword [ebp - 0x1c]
inc esi
mov eax, ecx
cmp esi, 0x1000
jb 0x100670e5
mov ecx, dword [eax - 4]
add esi, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10067229
push esi
push ecx
call fcn.1015539a
mov ecx, dword [ebp - 0x30]
add esp, 8
mov dword [ebp - 0x1c], ecx
mov edx, dword [ebp - 8]
lea eax, [ebp - 0x1c]
mov esi, dword [ebp - 0xc]
lea edi, [ebp - 0x1c]
cmp edx, 0xf
mov dword [ebp - 0x2c], esi
cmova eax, ecx
add eax, esi
cmp edx, 0xf
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x1c]
cmova eax, ecx
add esi, eax
cmp edx, 0xf
mov edx, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
cmova edi, ecx
cmp edi, esi
je 0x10067188
nop word [eax + eax]
movsx eax, byte [edi]
push eax
call edx
add esp, 4
test eax, eax
jne 0x10067148
mov edx, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
inc edi
cmp edi, esi
jne 0x10067130
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
mov dword [ebp - 0x2c], eax
cmp edi, esi
je 0x10067188
lea ebx, [edi + 1]
cmp ebx, esi
je 0x10067188
movsx eax, byte [ebx]
push eax
call edx
add esp, 4
test eax, eax
jne 0x10067174
mov al, byte [ebx]
mov byte [edi], al
inc edi
mov edx, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
inc ebx
cmp ebx, esi
jne 0x10067162
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
mov esi, edi
lea edx, [ebp - 0x1c]
cmova eax, ecx
sub dword [ebp - 0x30], edi
mov edi, dword [ebp - 0x2c]
sub esi, eax
mov ebx, dword [ebp - 0x30]
mov eax, edi
sub eax, esi
cmp eax, ebx
cmovb ebx, eax
cmp dword [ebp - 8], 0xf
mov eax, ebx
mov dword [ebp - 0x30], ebx
cmova edx, ecx
sub edi, eax
mov ecx, edi
add edx, esi
sub ecx, esi
add eax, edx
inc ecx
push ecx
push eax
push edx
call sub.VCRUNTIME140.dll_memmove
mov ebx, dword [ebp - 0x40]
lea eax, [ebp - 0x1c]
add esp, 0xc
mov dword [ebp - 0xc], edi
mov ecx, ebx
push eax
call fcn.100492a0
push dword [ebp - 0x38]
call fcn.10155dfe
mov eax, dword [ebp - 0x44]
add esp, 4
test eax, eax
je 0x100671f7
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 8]
cmp ecx, 0xf
jbe 0x10066efe
mov edx, dword [ebp - 0x1c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10066ef4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10066ef4
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
call fcn.1004ae90
int3