Function at 0x4fb008
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffc0c
push ebx
push esi
xor edx, edx
mov dword [ebp - 0x2ec], edx
mov dword [ebp - 0x2e8], edx
mov dword [ebp - 0x2dc], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.0040695c
lea eax, [ebp - 0x168]
mov edx, dword [0x409b74]
call fcn.00406f54
lea ebx, [ebp - 0x2d6]
xor eax, eax
push ebp
push 0x4fb4cc
push dword fs:[eax]
mov dword fs:[eax], esp
mov dl, 1
mov eax, dword [0x47d054]
call fcn.0047d910
mov dword [ebp - 0x170], eax
mov dl, 1
mov eax, dword [0x47d054]
call fcn.0047d910
mov dword [ebp - 0x174], eax
xor edx, edx
push ebp
push 0x4fb47d
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov byte [eax + 0x2906], 0
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
xor edx, edx
mov dword [eax + 0x292f], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
xor edx, edx
mov dword [eax + 0x2937], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
lea edx, [eax + 0x270f]
mov ecx, 0x22c
mov eax, dword [ebp - 0x170]
call fcn.004207bc
cmp dword [ebp - 4], 0
jne 0x4fb1ab
xor ebx, ebx
mov eax, ebx
add al, 0x41
mov byte [ebp - 0x169], al
lea eax, [ebp - 0x2dc]
movzx edx, byte [ebp - 0x169]
call fcn.004066b4
lea eax, [ebp - 0x2dc]
mov edx, 0x4fb4e4
call fcn.004067a8
mov eax, dword [ebp - 0x2dc]
call fcn.0040696c
push eax
call sub.kernel32.dll_GetDriveTypeA
sub al, 3
je 0x4fb121
add al, 0xfe
sub al, 2
jae 0x4fb19c
lea eax, [ebp - 0x2c5]
xor ecx, ecx
mov edx, 0x149
call fcn.00404e90
lea eax, [ebp - 0x2e0]
movzx edx, byte [ebp - 0x169]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x2e0]
lea eax, [ebp - 0x2e4]
call fcn.00404d74
mov edx, 0x4fb4e8
lea eax, [ebp - 0x2e4]
mov cl, 2
call fcn.00404d44
lea edx, [ebp - 0x2e4]
lea eax, [ebp - 0x2c5]
mov cl, 0xfa
call fcn.00404d80
mov dword [ebp - 0x1ca], 0x18
lea edx, [ebp - 0x2c5]
mov ecx, 0x149
mov eax, dword [ebp - 0x174]
call fcn.004207bc
inc ebx
cmp bl, 0x1a
jne 0x4fb0da
jmp 0x4fb3c8
lea eax, [ebp - 0x2e8]
mov ecx, 0x4fb4f4
mov edx, dword [ebp - 4]
call fcn.004067f4
mov eax, dword [ebp - 0x2e8]
lea ecx, [ebp - 0x168]
mov edx, 0x3f
call fcn.0040b648
test eax, eax
jne 0x4fb3c8
xor eax, eax
push ebp
push 0x4fb3c1
push dword fs:[eax]
mov dword fs:[eax], esp
test byte [ebp - 0x158], 0x10
je 0x4fb27e
mov eax, dword [ebp - 0x154]
mov edx, 0x4fb500
call fcn.00406904
je 0x4fb395
mov eax, dword [ebp - 0x154]
mov edx, 0x4fb50c
call fcn.00406904
je 0x4fb395
mov esi, dword [ebp - 0x154]
test esi, esi
je 0x4fb232
sub esi, 4
mov esi, dword [esi]
lea eax, [ebp - 0x2ec]
push eax
mov ecx, 1
mov edx, esi
mov eax, dword [ebp - 0x154]
call fcn.004069d4
mov eax, dword [ebp - 0x2ec]
mov edx, 0x4fb500
call fcn.00406904
jne 0x4fb26d
lea eax, [ebp - 0x154]
mov edx, 0x4fb500
call fcn.004067a8
lea eax, [ebp - 0x154]
mov edx, dword [ebp - 0x154]
call fcn.00406564
lea eax, [ebp - 0x3ec]
mov edx, dword [ebp - 0x154]
mov ecx, 0xff
call fcn.00406778
lea edx, [ebp - 0x3ec]
lea eax, [ebp - 0x2c5]
mov cl, 0xfa
call fcn.00404d80
mov eax, dword [ebp - 0x158]
mov dword [ebp - 0x1ca], eax
mov eax, dword [ebp - 0x160]
mov dword [ebp - 0x1b6], eax
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x1b2], eax
lea eax, [ebp - 0x17c]
push eax
lea eax, [ebp - 0x134]
push eax
call sub.kernel32.dll_FileTimeToLocalFileTime
push ebx
lea eax, [ebp - 0x17c]
push eax
call sub.kernel32.dll_FileTimeToSystemTime
movzx ecx, word [ebx + 6]
movzx edx, word [ebx + 2]
movzx eax, word [ebx]
call fcn.0040cf14
fstp qword [ebp - 0x3f4]
wait
movzx eax, word [ebx + 0xe]
push eax
movzx ecx, word [ebx + 0xc]
movzx edx, word [ebx + 0xa]
movzx eax, word [ebx + 8]
call fcn.0040cd70
fadd qword [ebp - 0x3f4]
fstp qword [ebp - 0x1c6]
wait
lea eax, [ebp - 0x17c]
push eax
lea eax, [ebp - 0x144]
push eax
call sub.kernel32.dll_FileTimeToLocalFileTime
push ebx
lea eax, [ebp - 0x17c]
push eax
call sub.kernel32.dll_FileTimeToSystemTime
movzx ecx, word [ebx + 6]
movzx edx, word [ebx + 2]
movzx eax, word [ebx]
call fcn.0040cf14
fstp qword [ebp - 0x3f4]
wait
movzx eax, word [ebx + 0xe]
push eax
movzx ecx, word [ebx + 0xc]
movzx edx, word [ebx + 0xa]
movzx eax, word [ebx + 8]
call fcn.0040cd70
fadd qword [ebp - 0x3f4]
fstp qword [ebp - 0x1be]
wait
lea edx, [ebp - 0x2c5]
mov ecx, 0x149
mov eax, dword [ebp - 0x174]
call fcn.004207bc
lea eax, [ebp - 0x168]
call fcn.0040b698
test eax, eax
je 0x4fb1ea
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4fb3c8
lea eax, [ebp - 0x168]
call fcn.0040b6bc
ret
push 0
push 0
mov eax, dword [ebp - 0x174]
call fcn.00420578
mov eax, dword [ebp - 0x174]
mov edx, dword [eax]
call dword [edx]
mov edx, dword [ebp + 8]
mov edx, dword [edx - 4]
mov dword [edx + 0x2937], eax
mov cl, 2
mov edx, dword [ebp - 0x170]
mov eax, dword [ebp - 0x174]
call fcn.0047d8e0
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov byte [eax + 0x292e], 1
push 0
push 0
mov eax, dword [ebp - 0x170]
call fcn.00420578
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
lea edx, [eax + 0x270f]
mov ecx, 0x22c
mov eax, dword [ebp - 0x170]
call fcn.004207bc
mov eax, dword [ebp - 0x170]
mov edx, dword [eax]
call dword [edx]
push eax
mov eax, dword [ebp - 0x170]
mov ecx, dword [eax + 4]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov dl, 0x32
call fcn.004fae30
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4fb484
mov eax, dword [ebp - 0x170]
call fcn.004055b0
mov eax, dword [ebp - 0x174]
call fcn.004055b0
ret