Function at 0x10018ae0
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x38]
mov dword [eax + 0x29], 0x104
mov ecx, dword [ebp - 0x38]
mov dword [ecx + 0x2d], 0x104
mov edx, dword [ebp - 0x38]
mov dword [edx + 0x35], 0x80
mov eax, dword [ebp - 0x38]
mov dword [eax + 0x31], 0x104
mov ecx, dword [ebp - 0x38]
mov dword [ecx + 0x49], 0
xor ecx, ecx
mov edx, dword [ebp - 0x38]
mov eax, dword [edx + 0x29]
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1009ead1
add esp, 4
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x10]
mov dword [eax + 0x18], ecx
xor ecx, ecx
mov edx, dword [ebp - 0x38]
mov eax, dword [edx + 0x2d]
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1009ead1
add esp, 4
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x14]
mov dword [eax + 0xe], ecx
xor ecx, ecx
mov edx, dword [ebp - 0x38]
mov eax, dword [edx + 0x31]
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1009ead1
add esp, 4
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x18]
mov dword [eax + 0x1e], ecx
xor ecx, ecx
mov edx, dword [ebp - 0x38]
mov eax, dword [edx + 0x35]
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1009ead1
add esp, 4
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x1c]
mov dword [eax + 0x24], ecx
mov edx, dword [ebp - 0x38]
mov byte [edx + 0x4d], 0
mov eax, dword [ebp - 0x38]
mov dword [eax + 0x41], 0
mov ecx, dword [ebp - 0x38]
mov dword [ecx + 0x45], 0
mov edx, dword [ebp - 0x38]
mov dword [edx + 0x39], 0
mov eax, dword [ebp - 0x38]
mov dword [eax + 0x3d], 0
mov ecx, dword [ebp - 0x38]
mov byte [ecx + 0x2e6], 0
push str.NtQueryInformationProcess
push str.ntdll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x100f4c7c], eax
mov edx, 0x41
mov word [ebp - 8], dx
mov eax, 0x3a
mov word [ebp - 6], ax
xor ecx, ecx
mov word [ebp - 4], cx
mov dword [ebp - 0xc], 0
jmp 0x10018c46
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
cmp dword [ebp - 0xc], 0x1a
jge 0x10018d48
push 0x80
call fcn.1009ead1
add esp, 4
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x20]
mov dword [ecx + eax*4 + 0x4e], edx
push 0x80
call fcn.1009ead1
add esp, 4
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x24]
mov dword [ecx + eax*4 + 0xb6], edx
push 0x80
push 0
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x38]
mov edx, dword [ecx + eax*4 + 0x4e]
push edx
call fcn.1009eb40
add esp, 0xc
push 0x80
push 0
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x38]
mov edx, dword [ecx + eax*4 + 0xb6]
push edx
call fcn.1009eb40
add esp, 0xc
mov eax, dword [ebp - 0xc]
add eax, 0x41
mov word [ebp - 8], ax
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x38]
mov eax, dword [edx + ecx*4 + 0xb6]
mov dword [ebp - 0x2c], eax
push bind
push 0
push 0x40
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.1009da4e
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0
jl 0x10018d12
push bind
lea edx, [ebp - 8]
push edx
push 0
push 0x40
mov eax, dword [ebp - 0x2c]
push eax
call fcn.1009db9f
mov dword [ebp - 0x28], eax
push 0x100d7d64
push 0x40
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x38]
mov eax, dword [edx + ecx*4 + 0xb6]
push eax
call fcn.10001ec0
push 0x40
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x38]
mov eax, dword [edx + ecx*4 + 0x4e]
push eax
lea ecx, [ebp - 8]
push ecx
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
jmp 0x10018c3d
mov ecx, dword [ebp - 0x38]
call fcn.10018e50
mov eax, dword [ebp - 0x38]
mov esp, ebp
pop ebp
ret