Function at 0x1000ead0
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, dword [0x1005a014]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x10050384]
push esi
mov dword [ebp - 0xc], eax
mov esi, ecx
mov ax, word [0x10050388]
mov dword [ebp - 0x1c], esi
mov word [ebp - 8], ax
call fcn.1000e800
test eax, eax
jne 0x1000ece2
push ebx
push edi
push 0x10
push str.DeviceHarddisk
push esi
call fcn.10030770
add esp, 0xc
test eax, eax
je 0x1000eb33
push 0xe
push str.DeviceVolume
push esi
call fcn.10030770
add esp, 0xc
test eax, eax
jne 0x1000ecde
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov edx, eax
mov eax, dword [0x1008d7d8]
and eax, edx
mov dword [ebp - 0x18], edx
cmp eax, edx
je 0x1000ebd7
xor ecx, ecx
mov dword [0x1008d7d8], edx
mov ebx, 0x41
mov dword [ebp - 0x14], 0x4204
mov dword [ebp - 0x10], ecx
mov edi, 0x1008d770
mov esi, 0x1008a2a0
nop
mov eax, 1
shl eax, cl
test edx, eax
je 0x1000ebb9
push 0x104
push esi
lea eax, [ebp - 0xc]
mov word [ebp - 0xc], bx
push eax
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
mov ecx, eax
mov dword [edi], ecx
test ecx, ecx
je 0x1000ebb3
mov eax, dword [ebp - 0x14]
add eax, ecx
lea eax, [eax*2 + 0x10081e96]
cmp word [eax], 0
jne 0x1000ebb3
dec ecx
sub eax, 2
mov dword [edi], ecx
test ecx, ecx
jne 0x1000eba3
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x10]
add dword [ebp - 0x14], 0x104
inc ebx
inc ecx
add esi, 0x208
add edi, 4
mov dword [ebp - 0x10], ecx
cmp bx, 0x5a
jbe 0x1000eb70
mov esi, dword [ebp - 0x1c]
mov ebx, 0x41
nop dword [eax]
movzx ecx, bx
mov eax, 1
add ecx, 0xffffffbf
shl eax, cl
test dword [0x1008d7d8], eax
je 0x1000ecd3
cmp dword [ecx*4 + 0x1008d770], 2
jbe 0x1000ecd3
imul edx, ecx, 0x208
mov ecx, esi
add edx, 0x1008a2a0
call fcn.1000c730
mov edi, eax
test edi, edi
je 0x1000ecd3
movzx eax, word [edi]
cmp eax, 0x5c
je 0x1000ec35
test ax, ax
jne 0x1000ecd3
push 4
push str.._
push esi
call fcn.10037367
add esp, 0xc
test eax, eax
je 0x1000ecc7
push 4
push str.__
push esi
call fcn.10037367
add esp, 0xc
test eax, eax
je 0x1000ecc7
push 4
push str.___
push esi
call fcn.10037367
add esp, 0xc
test eax, eax
je 0x1000ecc7
mov eax, edi
sub eax, esi
and eax, 0xfffffffe
cmp eax, 4
jle 0x1000ecd3
mov ecx, edi
mov word [esi], bx
mov eax, 0x3a
mov word [esi + 2], ax
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1000ec90
sub ecx, edx
sar ecx, 1
lea ecx, [ecx*2 + 2]
push ecx
lea ecx, [esi + 4]
push edi
push ecx
call fcn.1002e510
add esp, 0xc
mov eax, esi
pop edi
pop ebx
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1002bcfe
mov esp, ebp
pop ebp
ret
mov eax, edi
sub eax, esi
and eax, 0xfffffffe
cmp eax, 0xc
jg 0x1000ecf1
inc ebx
cmp bx, 0x5a
jbe 0x1000ebe0
pop edi
xor eax, eax
pop ebx
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1002bcfe
mov esp, ebp
pop ebp
ret
mov ecx, edi
mov word [esi + 8], bx
mov eax, 0x3a
mov word [esi + 0xa], ax
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1000ed03
sub ecx, edx
sar ecx, 1
lea ecx, [ecx*2 + 2]
push ecx
lea ecx, [esi + 0xc]
push edi
push ecx
call fcn.1002e510
mov ecx, dword [ebp - 4]
lea eax, [esi + 8]
add esp, 0xc
xor ecx, ebp
pop edi
pop ebx
pop esi
call fcn.1002bcfe
mov esp, ebp
pop ebp
ret