Function at 0x1004800e
Capabilities:
Get disk information

Disassembly:
mov eax, 0x1008a18f
call fcn.10088738
sub esp, 0x5c
push edi
mov edi, ecx
cmp dword [edi], 0
je 0x100482e4
push ebx
push esi
push dword [edi]
xor ebx, ebx
push ebx
push dword [edi + 4]
call fcn.100291f5
add esp, 0xc
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x1c], 0x18
push 1
pop esi
jmp 0x1004816b
push 2
lea ecx, [ebp - 0x28]
call fcn.1001a98c
mov dword [ebp - 4], ebx
mov dword [ebp - 0x14], ebx
jmp 0x1004806d
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x28]
mov dword [eax + ecx*4], 0xfffffffb
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x1004805d
mov dword [ebp - 0x14], ebx
jmp 0x10048086
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x68], 0x137b1891
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x10048078
mov dword [ebp - 0x60], ebx
jmp 0x10048150
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x18], 0xfffffff8
mov dword [ebp - 0x14], ebx
jmp 0x10048144
mov dword [ebp - 0x18], 0xffffffff
lea ecx, [ebp - 0x4c]
push 3
call fcn.1001a98c
mov dword [ebp - 0x18], ebx
jmp 0x100480cc
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x4c]
mov dword [eax + ecx*4], 0x80997408
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x100480bc
mov dword [ebp - 0x18], ebx
jmp 0x100480f4
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x28]
cmp dword [eax + ecx*4], ebx
jne 0x100480f9
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jle 0x100480d7
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x60]
mov eax, dword [ebp - 0x1c]
neg eax
sbb eax, eax
neg eax
cmp eax, dword [ebp - 0x14]
jl 0x1004812a
mov eax, dword [ebp - 0x4c]
cmp dword [eax + 8], ebx
jne 0x1004812a
cmp dword [eax + 4], ebx
jne 0x1004812a
mov eax, dword [ebp - 0x28]
mov edx, ebx
cmp dword [eax + 4], ebx
je 0x1004812c
mov edx, esi
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp eax, edx
setl cl
mov dword [ebp - 0x18], ecx
lea ecx, [ebp - 0x4c]
call fcn.1001b222
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jle 0x100480a6
inc dword [ebp - 0x60]
cmp dword [ebp - 0x60], esi
jle 0x10048094
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
cmp dword [ebp - 0x1c], ebx
call fcn.1001b222
dec dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xffffffeb
jle 0x1004804b
push dword [edi + 4]
call fcn.1006f1a2
mov dword [ebp - 0x1c], ebx
pop ecx
mov dword [ebp - 0x1c], 0xfffffff2
jmp 0x10048209
push esi
lea ecx, [ebp - 0x58]
call fcn.1001a98c
push esi
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], esi
call fcn.1001a98c
mov dword [ebp - 0x14], ebx
jmp 0x100481b4
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x58]
mov dword [eax + ecx*4], 0x683c8fc5
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x100481a4
mov dword [ebp - 0x14], ebx
jmp 0x100481ce
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x40]
mov dword [eax + ecx*4], 0xee7d214c
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x100481be
mov eax, dword [ebp - 0x40]
mov dword [eax], ebx
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], 0
je 0x100481e8
push ebx
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
mov eax, dword [ebp - 0x40]
inc dword [eax]
cmp dword [eax], 0
jle 0x100481d8
lea ecx, [ebp - 0x40]
call fcn.1001b222
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x58]
call fcn.1001b222
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x1a
jle 0x1004818a
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], 0
je 0x10048225
push ebx
push ebx
push ebx
call dword [sym.imp.OLEAUT32.dll_SysFreeString]
push 2
lea ecx, [ebp - 0x34]
mov dword [edi + 4], ebx
call fcn.1001a98c
mov dword [ebp - 0x14], 0x8e5ccc90
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x1c], ebx
jmp 0x10048251
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x34]
mov dword [eax + ecx*4], 0xdf75dcec
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x10048241
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], esi
jg 0x100482d8
mov ebx, dword [ebp - 0x34]
mov dword [ebp - 0x18], 0xed4bca92
mov dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebx + 4]
shl eax, 3
mov dword [ebp - 0x1c], eax
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
imul eax, dword [ebp - 0x14]
cmp eax, 0xcfcb8f1f
mov eax, dword [ebp - 0x34]
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, dword [eax + esi*4]
setl dl
mov dword [ebp - 0x18], edx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x34]
imul ecx, dword [eax]
test ecx, ecx
je 0x100482b8
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
xor edx, edx
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x34]
cmp dword [eax + ecx*4], 1
sete dl
mov dword [ebp - 0x1c], edx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jle 0x10048262
xor ebx, ebx
lea ecx, [ebp - 0x34]
call fcn.1001b222
pop esi
mov dword [edi], ebx
pop ebx
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret