Function at 0x5c09c0
Capabilities:
Get disk information

Disassembly:
sub esp, 0x1c
mov eax, dword [0x9dce80]
push ebx
xor ebx, ebx
push ebp
push esi
cmp eax, ebx
push edi
mov dword [esp + 0x20], ecx
je 0x5c09f3
mov eax, dword [ecx + 4]
push eax
push str.CVolumeMountPointMgr::GetSubstDosDevice__________d_
push str.VolumeMountPoint
push 0xffffffffffffffff
push 0x9dc5ec
call fcn.006600d0
add esp, 0x14
mov esi, dword [esp + 0x30]
xor edi, edi
cmp esi, ebx
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], ebx
je 0x5c0bf9
cmp word [esi], bx
je 0x5c0c03
push 0x945b2c
call fcn.005fc40b
push 0x945b58
mov dword [esp + 0x20], eax
call fcn.005fc40b
push 2
lea ecx, [esp + 0x30]
push esi
push ecx
mov dword [esp + 0x30], eax
mov word [esp + 0x38], bx
mov dword [esp + 0x3a], ebx
call fcn.005fc3ce
mov ebp, dword [esp + 0x48]
push 2
push esi
push ebp
call fcn.005fc3ce
add esp, 0x20
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
lea esi, [ebp + 0x210]
mov ecx, 0x82
xor eax, eax
mov edi, esi
push 0x104
lea edx, [esp + 0x28]
push esi
rep stosd dword es:[edi], eax
push edx
inc ebx
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
mov edi, eax
mov eax, dword [0x9dce80]
test eax, eax
je 0x5c0aa7
push esi
push ebp
push edi
push ebx
push str.CVolumeMountPointMgr::GetVolumeSubstAssociateW__n___d__1___d____s____s_
push str.VolumeMountPoint
push 0xffffffffffffffff
push 0x9dc5ec
call fcn.006600d0
add esp, 0x20
test edi, edi
je 0x5c0b98
push esi
call fcn.005fc40b
add esp, 4
test eax, eax
je 0x5c0b98
mov eax, dword [esp + 0x18]
push eax
push 0x945b2c
push esi
call fcn.005fd511
add esp, 0xc
test eax, eax
jne 0x5c0b04
mov eax, dword [0x9dce80]
test eax, eax
je 0x5c0afa
push ebx
push str.CVolumeMountPointMgr::GetVolumeSubstAssociateW__n___d__2
push str.VolumeMountPoint
push 0xffffffffffffffff
push 0x9dc5ec
call fcn.006600d0
add esp, 0x14
mov dword [esp + 0x30], 1
jmp 0x5c0b68
mov edi, dword [esp + 0x1c]
push edi
push 0x945b58
push esi
call fcn.005fd511
add esp, 0xc
test eax, eax
jne 0x5c0b8e
xor ecx, ecx
lea edx, [ebp + edi*2 + 0x210]
push 2
lea eax, [esp + 0x28]
mov dword [esp + 0x28], ecx
push edx
push eax
mov word [esp + 0x34], cx
call fcn.005fc3ce
mov eax, dword [0x9dce80]
add esp, 0xc
test eax, eax
mov dword [esp + 0x34], 1
je 0x5c0b68
push ebx
push str.CVolumeMountPointMgr::GetVolumeSubstAssociateW__n___d__3
push str.VolumeMountPoint
push 0xffffffffffffffff
push 0x9dc5ec
call fcn.006600d0
add esp, 0x14
cmp word [ebp + 8], 0
lea eax, [ebp + 8]
jne 0x5c0b81
push 0x103
push esi
push eax
call fcn.005fc3ce
add esp, 0xc
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x5c0ba8
jmp 0x5c0a62
mov dword [esp + 0x10], 4
jmp 0x5c0ba0
mov dword [esp + 0x10], 3
mov eax, dword [esp + 0x30]
test eax, eax
je 0x5c0bb8
mov eax, dword [esp + 0x34]
test eax, eax
je 0x5c0bb8
mov dword [esp + 0x14], 1
mov edi, dword [esp + 0x14]
xor ebx, ebx
cmp dword [0x9dce80], ebx
je 0x5c0bed
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
push ecx
push edi
mov eax, dword [edx + 4]
push eax
push str.CVolumeMountPointMgr::GetSubstDosDevice______d___ret___d___myerror___d_
push str.VolumeMountPoint
push 0xffffffffffffffff
push 0x9dc5ec
call fcn.006600d0
add esp, 0x1c
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret 8
mov dword [esp + 0x10], 1
jmp 0x5c0bbe
mov dword [esp + 0x10], 2
jmp 0x5c0bbe