Function at 0x10017640
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa84
mov eax, dword [0x1018d0d0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0xa7c], 0
push 0x7fe
push eax
mov word [ebp - 0xa18], ax
mov edi, ecx
lea eax, [ebp - 0xa16]
mov dword [ebp - 0xa80], edx
push eax
call fcn.1011a400
add esp, 0xc
lea eax, [ebp - 0xa18]
push eax
push 0x3ff
call dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
test eax, eax
je 0x1001780b
cmp word [ebp - 0xa18], 0
lea esi, [ebp - 0xa18]
mov eax, dword [0x10179104]
mov dword [ebp - 0xc], eax
mov ax, word [0x10179108]
mov word [ebp - 8], ax
je 0x1001780b
mov ebx, dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
lea esp, [esp]
mov ax, word [esi]
mov word [ebp - 0xc], ax
lea eax, [ebp - 0x218]
push 0x104
push eax
lea eax, [ebp - 0xc]
push eax
call ebx
test eax, eax
je 0x100177f7
xor eax, eax
mov dword [ebp - 0xa1c], 7
mov dword [ebp - 0xa20], 0
mov word [ebp - 0xa30], ax
cmp word [ebp - 0x218], ax
je 0x1001772f
lea eax, [ebp - 0x218]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x10017720
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0xa30]
call fcn.1000c2b0
xor eax, eax
mov dword [ebp - 0xa34], 7
push 0xffffffffffffffff
push eax
mov word [ebp - 0xa48], ax
lea ecx, [ebp - 0xa48]
lea eax, [ebp - 0xa30]
mov dword [ebp - 0xa38], 0
push eax
call fcn.1000bf70
push 1
push 0
lea eax, [ebp - 0xa7c]
mov dword [ebp - 0xa7c], 0
push eax
lea ecx, [ebp - 0xa48]
call fcn.1000e720
cmp eax, 0xffffffff
je 0x100177a7
push 0xffffffffffffffff
push eax
lea ecx, [ebp - 0xa48]
call fcn.1000c3b0
cmp dword [ebp - 0xa1c], 8
jb 0x100177be
push dword [ebp - 0xa30]
call fcn.1011a1ea
add esp, 4
mov edx, edi
lea ecx, [ebp - 0xa48]
call fcn.1000cfa0
test al, al
jne 0x1001781e
push ecx
push edi
lea ecx, [ebp - 0xa48]
call fcn.1000d670
test al, al
jne 0x1001781e
cmp dword [ebp - 0xa34], 8
jb 0x100177f7
push dword [ebp - 0xa48]
call fcn.1011a1ea
add esp, 4
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x100177f7
cmp word [esi], ax
jne 0x100176d0
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1011a3e5
mov esp, ebp
pop ebp
ret
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10017827
sub ecx, edx
mov dword [ebp - 0xa4c], 7
sar ecx, 1
xor eax, eax
push 0xffffffffffffffff
push ecx
push edi
lea ecx, [ebp - 0xa60]
mov dword [ebp - 0xa50], 0
mov word [ebp - 0xa60], ax
call fcn.1000bf70
lea eax, [ebp - 0xa60]
push eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0xa78]
push eax
call fcn.10017ea0
add esp, 0xc
mov dword [ebp - 0xa1c], 7
xor ecx, ecx
mov dword [ebp - 0xa20], 0
mov word [ebp - 0xa30], cx
push 0xffffffffffffffff
push ecx
push eax
lea ecx, [ebp - 0xa30]
call fcn.1000bf70
push 1
push 0
lea eax, [ebp - 0xa7c]
mov dword [ebp - 0xa7c], 0
push eax
lea ecx, [ebp - 0xa30]
call fcn.1000e720
cmp eax, 0xffffffff
je 0x100178db
push 0xffffffffffffffff
push eax
lea ecx, [ebp - 0xa30]
call fcn.1000c3b0
mov eax, dword [ebp - 0xa80]
lea ecx, [ebp - 0xa30]
cmp eax, ecx
je 0x100178f7
push 0xffffffffffffffff
push 0
push ecx
mov ecx, eax
call fcn.1000bf70
cmp dword [ebp - 0xa1c], 8
jb 0x1001790e
push dword [ebp - 0xa30]
call fcn.1011a1ea
add esp, 4
xor eax, eax
mov dword [ebp - 0xa1c], 7
cmp dword [ebp - 0xa64], 8
mov dword [ebp - 0xa20], 0
mov word [ebp - 0xa30], ax
jb 0x10017942
push dword [ebp - 0xa78]
call fcn.1011a1ea
add esp, 4
xor eax, eax
mov dword [ebp - 0xa64], 7
cmp dword [ebp - 0xa4c], 8
mov dword [ebp - 0xa68], 0
mov word [ebp - 0xa78], ax
jb 0x10017976
push dword [ebp - 0xa60]
call fcn.1011a1ea
add esp, 4
cmp dword [ebp - 0xa34], 8
jb 0x1001798d
push dword [ebp - 0xa48]
call fcn.1011a1ea
add esp, 4
mov ecx, dword [ebp - 4]
mov al, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1011a3e5
mov esp, ebp
pop ebp
ret