Function at 0x10ffd53
Capabilities:
Get disk information

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x1c
push esi
push edi
xor edi, edi
mov dword [ebp - 8], edi
mov dword [ebp - 4], edi
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x18], edi
mov eax, dword [0x111024c]
cmp eax, 0x111024c
je 0x10ffd95
test byte [eax + 0x1c], 0x20
je 0x10ffd95
cmp byte [eax + 0x19], 4
jb 0x10ffd95
push 0x1013eac
push 0x17
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0101894a
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov dword [ebp - 0x1c], eax
cmp eax, edi
jne 0x10ffdbf
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, edi
jg 0x10ffdb3
mov esi, eax
jmp 0x10fff15
and eax, 0xffff
or eax, 0x80070000
jmp 0x10ffdac
mov edx, dword [ebp + 8]
mov eax, edx
lea esi, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, di
jne 0x10ffdc7
sub eax, esi
sar eax, 1
cmp word [edx + eax*2 - 2], 0x5c
lea eax, [ebp - 4]
je 0x10ffdee
push eax
push 0x10019e4
push edx
call fcn.0107ca99
jmp 0x10ffdf6
push edi
push eax
push edx
call fcn.0107c9fc
mov esi, eax
cmp esi, edi
jl 0x10fff15
mov esi, dword [sym.imp.KERNEL32.dll_GetVolumePathNamesForVolumeNameW]
xor eax, eax
push ebx
mov word [ebp - 0xc], ax
lea eax, [ebp - 0x10]
push eax
push edi
push edi
push dword [ebp - 4]
call esi
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x10ffe40
call ebx
cmp eax, 0xea
je 0x10ffe40
cmp eax, edi
jle 0x10ffe39
and eax, 0xffff
or eax, 0x80070000
mov esi, eax
jmp 0x10fff14
mov eax, dword [ebp - 0x10]
mov edi, dword [sym.imp.ole32.dll_CoTaskMemAlloc]
add eax, eax
push eax
call edi
mov dword [ebp + 8], eax
test eax, eax
jne 0x10ffe5f
mov esi, 0x8007000e
jmp 0x10fff03
lea ecx, [ebp - 0x18]
push ecx
push dword [ebp - 0x10]
push eax
push dword [ebp - 4]
call esi
test eax, eax
jne 0x10ffe84
call ebx
test eax, eax
jle 0x10ffe80
and eax, 0xffff
or eax, 0x80070000
mov esi, eax
jmp 0x10fff03
mov eax, dword [ebp + 8]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
test cx, cx
jne 0x10ffe8a
sub eax, edx
sar eax, 1
mov esi, eax
je 0x10fff63
lea eax, [esi + esi + 2]
push eax
call edi
mov edi, eax
test edi, edi
jne 0x10ffeb4
mov esi, 0x8007000e
jmp 0x10ffef8
push dword [ebp + 8]
inc esi
push esi
push edi
call fcn.010257dc
mov esi, eax
test esi, esi
jl 0x10ffef8
and dword [ebp - 0x14], 0
mov dword [ebp - 8], edi
mov eax, dword [0x1112218]
test eax, eax
je 0x10ffedc
push eax
call dword [sym.imp.ole32.dll_CoTaskMemFree]
and dword [0x1112218], 0
push 0x1112218
push dword [ebp + 0xc]
push dword [ebp - 8]
call fcn.0107ca99
mov edi, dword [ebp - 0x14]
mov esi, eax
test edi, edi
je 0x10fff03
push edi
call dword [sym.imp.ole32.dll_CoTaskMemFree]
cmp dword [ebp + 8], 0
je 0x10fff12
push dword [ebp + 8]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
xor edi, edi
pop ebx
cmp dword [ebp - 4], edi
je 0x10fff23
push dword [ebp - 4]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
cmp dword [ebp - 8], edi
je 0x10fff31
push dword [ebp - 8]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
mov eax, dword [0x111024c]
cmp eax, 0x111024c
je 0x10fff5b
test byte [eax + 0x1c], 0x20
je 0x10fff5b
cmp byte [eax + 0x19], 4
jb 0x10fff5b
push 0x1013eac
push 0x18
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0101894a
pop edi
mov eax, esi
pop esi
leave
ret 8
xor eax, eax
inc eax
xor esi, esi
mov ecx, dword [ebp - 0x1c]
test ecx, eax
je 0x10fff79
add eax, eax
inc esi
cmp esi, 0x1a
jb 0x10fff68
jmp 0x10fffa2
xor eax, eax
mov word [ebp - 0xa], ax
lea eax, [ebp - 8]
push eax
push 0x1013f30
lea eax, [ebp - 0xc]
add esi, 0x41
push eax
mov word [ebp - 0xc], si
call fcn.0107ca99
mov esi, eax
test esi, esi
jl 0x10fff03
push dword [ebp - 4]
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_SetVolumeMountPointW]
test eax, eax
jne 0x10ffecc
jmp 0x10ffe70