Function at 0x10057da0
Capabilities:
Get disk information

Disassembly:
sub esp, 0x620
mov eax, dword [0x1017455c]
xor eax, esp
mov dword [esp + 0x61c], eax
push edi
mov edi, dword [esp + 0x628]
push 0x103
lea eax, [esp + 0x111]
push 0
push eax
mov byte [esp + 0x118], 0
call fcn.10116880
push 0x40f
lea ecx, [esp + 0x221]
push 0
push ecx
mov byte [esp + 0x228], 0
call fcn.10116880
add esp, 0x18
test edi, edi
je 0x100580b4
cmp byte [edi], 0
je 0x100580b4
push ebx
push 0x1015457c
mov ecx, edi
call fcn.10047020
add esp, 4
cmp eax, 0xffffffff
je 0x10057e24
mov ebx, edi
call fcn.10064390
mov eax, str.devicemup_
lea esp, [esp]
inc eax
cmp byte [eax], 0
jne 0x10057e30
sub eax, str.devicemup_
push eax
mov eax, str.devicemup_
mov ecx, edi
call fcn.100318e0
add esp, 4
test eax, eax
jne 0x10057e63
push eax
push 0x10149ea8
push str.devicemup
push edi
call fcn.10047ed0
add esp, 0x10
cmp byte [edi], 0x5c
jne 0x10057e78
cmp byte [edi + 1], 0x5c
jne 0x10057e78
call fcn.10064400
cmp eax, 1
je 0x10057e9f
mov eax, str.device_
lea ecx, [ecx]
inc eax
cmp byte [eax], 0
jne 0x10057e80
sub eax, str.device_
push eax
mov eax, str.device_
mov ecx, edi
call fcn.100318e0
add esp, 4
test eax, eax
je 0x10057ea6
xor eax, eax
jmp 0x10057f70
push esi
push str.PhysicalDmVolumes_
mov ecx, edi
call fcn.10047020
mov esi, eax
add esp, 4
cmp esi, 0xffffffff
je 0x10057f89
cmp dword [0x1019f390], 0
jne 0x10057eee
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 [0x1019f390], eax
test eax, eax
je 0x10057f89
mov eax, str.PhysicalDmVolumes_
inc eax
cmp byte [eax], 0
jne 0x10057ef3
sub eax, str.PhysicalDmVolumes_
add eax, edi
add eax, esi
push 0x5c
push eax
call fcn.1010d780
mov esi, eax
add esp, 8
test esi, esi
je 0x10057f89
push 0x103
lea edx, [esp + 0x15]
push 0
push edx
mov byte [esp + 0x1c], 0
call fcn.10116880
add esp, 0xc
push 0x104
lea eax, [esp + 0x14]
push eax
push edi
call dword [0x1019f390]
test eax, eax
je 0x10057f89
lea ecx, [esp + 0x10]
call fcn.10049c40
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
nop
mov cl, byte [eax]
mov byte [edi + eax], cl
inc eax
test cl, cl
jne 0x10057f60
mov eax, 1
pop esi
pop ebx
pop edi
mov ecx, dword [esp + 0x61c]
xor ecx, esp
call fcn.1010d699
add esp, 0x620
ret 4
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
jmp 0x10057fb0
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 0x10058040
push 0x1015457c
lea ecx, [esp + 0x21c]
call fcn.10047020
add esp, 4
cmp eax, 0xffffffff
je 0x10058003
lea ebx, [esp + 0x218]
call fcn.10064390
mov bl, byte [esp + 0xf]
lea ecx, [esp + 0x218]
call fcn.10049c40
cmp byte [esp + 0x218], 0
lea eax, [esp + 0x218]
je 0x10058026
inc eax
cmp byte [eax], 0
jne 0x10058020
lea edx, [esp + 0x218]
sub eax, edx
push eax
mov eax, edx
mov ecx, edi
call fcn.100318e0
add esp, 4
test eax, eax
je 0x1005808d
inc bl
cmp bl, 0x5a
mov byte [esp + 0xf], bl
jle 0x10057fb0
push 0
push 0x10149ea8
push str.DeviceLanmanRedirector
push edi
call fcn.10047ed0
add esp, 0x10
test eax, eax
jne 0x10057f6a
push eax
push 0x10149ea8
push str.DeviceNetwareRedirector
push edi
call fcn.10047ed0
add esp, 0x10
test eax, eax
jne 0x10057f6a
jmp 0x10057f6f
lea esi, [esp + 0x218]
call fcn.10049c80
push 0
lea eax, [esp + 0x118]
push eax
mov ecx, esi
push ecx
push edi
call fcn.10047ed0
add esp, 0x10
jmp 0x10057f6a
mov ecx, dword [esp + 0x620]
pop edi
xor ecx, esp
xor eax, eax
call fcn.1010d699
add esp, 0x620
ret 4