Function at 0x10191de
Capabilities:
Get disk information

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xc
and dword [ebp - 4], 0
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov dword [ebp - 8], 1
test ebx, ebx
je 0x10194a7
push ebx
call fcn.01019699
cmp eax, 0xfeedf002
jne 0x10194a7
test dword [ebp + 0x10], 0xfefffe41
jne 0x10194a7
mov esi, dword [ebp + 0xc]
test esi, esi
je 0x101922a
cmp word [esi], 0
jne 0x101923f
test byte [ebp + 0x10], 8
jne 0x101923a
push 0xa1
jmp 0x10194a9
mov esi, 0x1002eb8
push ebx
call fcn.010199b4
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x1019253
push 6
jmp 0x10194a9
mov edi, dword [ebp + 0x10]
and edi, 8
jne 0x1019269
push esi
call fcn.0102b542
test eax, eax
je 0x10194af
push 0
push esi
call fcn.0101509b
mov esi, eax
mov dword [ebp + 0xc], esi
test esi, esi
je 0x10194af
test edi, edi
je 0x101928b
test dword [ebp + 0x10], 0x1000000
je 0x1019292
push esi
push ebx
call fcn.01015eca
test edi, edi
jne 0x1019327
and dword [ebp + 8], edi
lea eax, [ebp + 8]
push eax
push esi
call fcn.01015db2
mov esi, eax
test esi, esi
jl 0x10192c9
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 1
jbe 0x10192c0
cmp eax, 4
jne 0x1019305
mov dword [ebp - 4], 0xa1
jmp 0x1019301
test esi, 0x10000000
je 0x10192e8
push esi
call dword [sym.imp.ntdll.dll_RtlNtStatusToDosError]
cmp eax, 0x13d
je 0x10192fe
push esi
call dword [sym.imp.ntdll.dll_RtlNtStatusToDosError]
jmp 0x10192f9
mov eax, esi
and eax, 0x1fff0000
cmp eax, 0x70000
jne 0x10192fe
movzx eax, si
mov dword [ebp - 4], eax
jmp 0x1019301
mov dword [ebp - 4], esi
and dword [ebp - 8], 0
cmp dword [ebp + 8], 0
je 0x101931d
push dword [ebp + 8]
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
cmp dword [ebp - 8], 0
je 0x1019481
test byte [ebp + 0x10], 4
je 0x101934a
push ebx
call fcn.0101a106
push eax
call fcn.0101daef
test eax, eax
jne 0x101934a
call dword [sym.imp.KERNEL32.dll_GetLastError]
and dword [ebp - 8], 0
mov dword [ebp - 4], eax
xor eax, eax
cmp dword [ebp - 8], eax
je 0x1019481
push eax
mov dword [ebp + 8], eax
lea eax, [ebp + 8]
push eax
push ebx
call fcn.0101965b
test edi, edi
je 0x101936f
push 8
push ebx
call fcn.01016d68
test byte [ebp + 0x10], 2
je 0x101937d
push 2
push ebx
call fcn.01016d68
test byte [ebp + 0x10], 0x10
je 0x101938b
push 0x10
push ebx
call fcn.01016d68
test byte [ebp + 0x10], 0x20
je 0x1019399
push 0x20
push ebx
call fcn.01016d68
test byte [ebp + 0x10], 0x80
je 0x10193aa
push 0x80
push ebx
call fcn.01016d68
mov eax, 0x100
test dword [ebp + 0x10], eax
je 0x10193bb
push eax
push ebx
call fcn.01016d68
mov eax, 0x1000000
test dword [ebp + 0x10], eax
je 0x10193e6
push eax
push ebx
call fcn.01016d68
push 0
push ebx
call fcn.01019933
push eax
call fcn.0102010c
call fcn.010200dc
push eax
push ebx
call fcn.0101997a
push 0x10000
push ebx
call fcn.01016d68
push ebx
call fcn.0101c5c9
call fcn.010200dc
push eax
push ebx
call fcn.01019958
mov esi, dword [ebp - 0xc]
mov eax, dword [esi]
xor edi, edi
cmp eax, edi
je 0x1019423
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
test eax, eax
je 0x1019423
mov dword [esi], edi
push edi
push dword [ebp + 0xc]
call fcn.0101509b
push esi
push ebx
mov dword [esi], eax
call fcn.01018fda
mov esi, eax
push 0
lea eax, [ebp + 8]
push eax
push ebx
call fcn.01019ae7
test esi, esi
jge 0x1019481
test esi, 0x10000000
je 0x1019464
mov edi, dword [sym.imp.ntdll.dll_RtlNtStatusToDosError]
push esi
call edi
cmp eax, 0x13d
je 0x101947a
push esi
call edi
jmp 0x1019475
mov eax, esi
and eax, 0x1fff0000
cmp eax, 0x70000
jne 0x101947a
movzx eax, si
mov dword [ebp - 4], eax
jmp 0x101947d
mov dword [ebp - 4], esi
and dword [ebp - 8], 0
push dword [ebp + 0xc]
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
cmp dword [ebp - 4], 0
je 0x10194a2
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, dword [ebp - 8]
jmp 0x10194b1
push 0x57
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 0xc