Function at 0x527a88
Capabilities:
Get disk information
Get disk size

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff6c4
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x93c], edx
mov dword [ebp - 0x938], edx
mov dword [ebp - 0x934], edx
mov dword [ebp - 0x930], edx
mov dword [ebp - 0x92c], edx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x527e0f
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0x561]
mov eax, dword [ebp - 4]
call fcn.0052c6d8
mov byte [ebp - 0x556], 0x2c
lea eax, [ebp - 0x725]
xor ecx, ecx
mov edx, 0x1c4
call fcn.00403774
lea edx, [ebp - 0x92c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x15c]
call fcn.0050f4a0
mov edx, dword [ebp - 0x92c]
lea eax, [ebp - 0x928]
mov ecx, 0xff
call fcn.00405114
lea edx, [ebp - 0x928]
lea eax, [ebp - 0x725]
mov cl, 0x1e
call fcn.00403664
lea edx, [ebp - 0x930]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x15c]
call fcn.0050f4f0
mov edx, dword [ebp - 0x930]
lea eax, [ebp - 0x928]
mov ecx, 0xff
call fcn.00405114
lea edx, [ebp - 0x928]
lea eax, [ebp - 0x6e7]
mov cl, 0x1e
call fcn.00403664
mov eax, dword [ebp - 4]
cmp dword [eax + 0x5f8], 0
jne 0x527bbe
xor eax, eax
push ebp
push 0x527bb4
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0x934]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5f8]
call fcn.00520cf8
mov edx, dword [ebp - 0x934]
mov eax, dword [ebp - 4]
add eax, 0x5f8
call fcn.00404eb0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x527bbe
lea eax, [ebp - 0x928]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x5f8]
mov ecx, 0xff
call fcn.00405114
lea edx, [ebp - 0x928]
lea eax, [ebp - 0x6c8]
mov cl, 0x1e
call fcn.00403664
lea eax, [ebp - 0x5a5]
push eax
lea ecx, [ebp - 0x5a9]
lea edx, [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.005278b8
lea eax, [ebp - 0x6a9]
mov edx, dword [ebp - 8]
mov ecx, 0xff
call fcn.00405114
lea eax, [ebp - 0x825]
xor ecx, ecx
mov edx, pe_nt_image_headers32
call fcn.00403774
lea eax, [ebp - 0x825]
push eax
push pe_nt_image_headers32
call sub.kernel32.dll_GetLogicalDriveStringsA
push 1
call sub.kernel32.dll_SetErrorMode
xor eax, eax
push ebp
push 0x527db9
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 0x14], eax
mov esi, pe_nt_image_headers32
lea edi, [ebp - 0x825]
mov bl, byte [edi]
mov eax, ebx
add al, 0xbf
sub al, 0x1a
jae 0x527d9c
lea eax, [ebp - 0x938]
mov edx, ebx
call fcn.00405044
lea eax, [ebp - 0x938]
mov edx, 0x527e28
call fcn.00405140
mov eax, dword [ebp - 0x938]
call fcn.00405338
push eax
call sub.kernel32.dll_GetDriveTypeA
cmp eax, 3
jne 0x527d9c
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x93c]
mov dl, byte [edi]
call fcn.00405044
lea eax, [ebp - 0x93c]
mov edx, 0x527e28
call fcn.00405140
mov eax, dword [ebp - 0x93c]
call fcn.00405338
push eax
call sub.kernel32.dll_GetDiskFreeSpaceExA
mov eax, dword [ebp - 0x14]
cmp eax, 4
ja case.default.0x527ce8
jmp dword [eax*4 + 0x527cef]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x5a1], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x59d], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x581], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x57d], eax
jmp case.default.0x527ce8
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x599], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x595], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x579], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x575], eax
jmp case.default.0x527ce8
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x591], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x58d], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x571], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x56d], eax
jmp case.default.0x527ce8
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x589], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x585], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x569], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x565], eax
inc dword [ebp - 0x14]
inc edi
dec esi
jne 0x527c5d
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x527dc0
push 0
call sub.kernel32.dll_SetErrorMode
ret