Function at 0x100741d0
Capabilities:
Get disk information

Disassembly:
sub esp, 0x620
mov eax, dword [0x10189710]
xor eax, esp
mov dword [esp + 0x61c], eax
push edi
push 0x103
lea eax, [esp + 0x111]
push 0
push eax
mov edi, ecx
mov byte [esp + 0x118], 0
call fcn.1012e060
push 0x40f
lea ecx, [esp + 0x221]
push 0
push ecx
mov byte [esp + 0x228], 0
call fcn.1012e060
add esp, 0x18
test edi, edi
je 0x100744f5
cmp byte [edi], 0
je 0x100744f5
push ebx
push 0
push 0x1016b7e0
push edi
call fcn.10063340
add esp, 0xc
cmp eax, 0xffffffff
je 0x10074250
mov ebx, edi
call fcn.1007ff20
mov eax, str.devicemup_
inc eax
cmp byte [eax], 0
jne 0x10074255
sub eax, str.devicemup_
push eax
mov eax, str.devicemup_
mov ecx, edi
call fcn.1005a0e0
add esp, 4
test eax, eax
jne 0x10074287
push 0x10158184
push str.devicemup
push edi
call fcn.10064100
add esp, 0xc
cmp byte [edi], 0x5c
jne 0x1007429c
cmp byte [edi + 1], 0x5c
jne 0x1007429c
call fcn.1007ffb0
cmp eax, 1
je 0x100742c0
mov eax, str.device_
inc eax
cmp byte [eax], 0
jne 0x100742a1
sub eax, str.device_
push eax
mov eax, str.device_
mov ecx, edi
call fcn.1005a0e0
add esp, 4
test eax, eax
je 0x100742d9
pop ebx
xor eax, eax
pop edi
mov ecx, dword [esp + 0x61c]
xor ecx, esp
call fcn.10127db1
add esp, 0x620
ret
push esi
push 0
push str.PhysicalDmVolumes_
push edi
call fcn.10063340
mov esi, eax
add esp, 0xc
cmp esi, 0xffffffff
je 0x100743be
cmp dword [0x101c94f4], 0
jne 0x10074322
push str.GetVolumePathNameA
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x101c94f4], eax
test eax, eax
je 0x100743be
mov eax, str.PhysicalDmVolumes_
inc eax
cmp byte [eax], 0
jne 0x10074327
sub eax, str.PhysicalDmVolumes_
add eax, edi
add eax, esi
push 0x5c
push eax
call fcn.10128490
mov esi, eax
add esp, 8
test esi, esi
je 0x100743be
push 0x103
lea edx, [esp + 0x15]
push 0
push edx
mov byte [esp + 0x1c], 0
call fcn.1012e060
add esp, 0xc
push 0x104
lea eax, [esp + 0x14]
push eax
push edi
call dword [0x101c94f4]
test eax, eax
je 0x100743be
lea ecx, [esp + 0x10]
call fcn.10065200
inc esi
push esi
lea ecx, [esp + 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [esp + 0x10]
mov edx, eax
sub edi, edx
mov cl, byte [eax]
mov byte [edi + eax], cl
inc eax
test cl, cl
jne 0x10074397
pop esi
pop ebx
mov eax, 1
pop edi
mov ecx, dword [esp + 0x61c]
xor ecx, esp
call fcn.10127db1
add esp, 0x620
ret
mov esi, dword [sym.imp.KERNEL32.dll_QueryDosDeviceA]
mov bl, 0x41
mov byte [esp + 0x115], 0x3a
mov byte [esp + 0x116], 0
mov byte [esp + 0xf], bl
lea ebx, [ebx]
push 0x410
lea eax, [esp + 0x21c]
push eax
lea ecx, [esp + 0x11c]
push ecx
mov byte [esp + 0x120], bl
mov byte [esp + 0x224], 0
call esi
test eax, eax
je 0x10074473
push 0
lea edx, [esp + 0x21c]
push 0x1016b7e0
push edx
call fcn.10063340
add esp, 0xc
cmp eax, 0xffffffff
je 0x10074436
lea ebx, [esp + 0x218]
call fcn.1007ff20
mov bl, byte [esp + 0xf]
lea ecx, [esp + 0x218]
call fcn.10065200
cmp byte [esp + 0x218], 0
lea eax, [esp + 0x218]
je 0x10074459
inc eax
cmp byte [eax], 0
jne 0x10074453
lea ecx, [esp + 0x218]
sub eax, ecx
push eax
mov eax, ecx
mov ecx, edi
call fcn.1005a0e0
add esp, 4
test eax, eax
je 0x100744d0
inc bl
cmp bl, 0x5a
mov byte [esp + 0xf], bl
jle 0x100743e0
push 0x10158184
push str.DeviceLanmanRedirector
push edi
call fcn.10064100
add esp, 0xc
test eax, eax
jne 0x100743a1
push 0x10158184
push str.DeviceNetwareRedirector
push edi
call fcn.10064100
add esp, 0xc
test eax, eax
jne 0x100743a1
pop esi
pop ebx
pop edi
mov ecx, dword [esp + 0x61c]
xor ecx, esp
call fcn.10127db1
add esp, 0x620
ret
lea esi, [esp + 0x218]
call fcn.10065240
lea edx, [esp + 0x114]
push edx
mov eax, esi
push eax
push edi
call fcn.10064100
add esp, 0xc
jmp 0x100743a1
mov ecx, dword [esp + 0x620]
pop edi
xor ecx, esp
xor eax, eax
call fcn.10127db1
add esp, 0x620
ret