Function at 0x524964
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 0x524ceb
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0x561]
mov eax, dword [ebp - 4]
call fcn.00529014
mov byte [ebp - 0x556], 0x2c
lea eax, [ebp - 0x725]
xor ecx, ecx
mov edx, 0x1c4
call fcn.0040374c
lea edx, [ebp - 0x92c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x15c]
call fcn.0051e93c
mov edx, dword [ebp - 0x92c]
lea eax, [ebp - 0x928]
mov ecx, 0xff
call fcn.004050c8
lea edx, [ebp - 0x928]
lea eax, [ebp - 0x725]
mov cl, 0x1e
call fcn.0040363c
lea edx, [ebp - 0x930]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x15c]
call fcn.0051e98c
mov edx, dword [ebp - 0x930]
lea eax, [ebp - 0x928]
mov ecx, 0xff
call fcn.004050c8
lea edx, [ebp - 0x928]
lea eax, [ebp - 0x6e7]
mov cl, 0x1e
call fcn.0040363c
mov eax, dword [ebp - 4]
cmp dword [eax + 0x5e8], 0
jne 0x524a9a
xor eax, eax
push ebp
push 0x524a90
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0x934]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5e8]
call fcn.005078dc
mov edx, dword [ebp - 0x934]
mov eax, dword [ebp - 4]
add eax, 0x5e8
call fcn.00404e64
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x524a9a
lea eax, [ebp - 0x928]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x5e8]
mov ecx, 0xff
call fcn.004050c8
lea edx, [ebp - 0x928]
lea eax, [ebp - 0x6c8]
mov cl, 0x1e
call fcn.0040363c
lea eax, [ebp - 0x5a5]
push eax
lea ecx, [ebp - 0x5a9]
lea edx, [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00524794
lea eax, [ebp - 0x6a9]
mov edx, dword [ebp - 8]
mov ecx, 0xff
call fcn.004050c8
lea eax, [ebp - 0x825]
xor ecx, ecx
mov edx, pe_nt_image_headers32
call fcn.0040374c
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 0x524c95
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 0x524c78
lea eax, [ebp - 0x938]
mov edx, ebx
call fcn.00404ff8
lea eax, [ebp - 0x938]
mov edx, 0x524d04
call fcn.004050f4
mov eax, dword [ebp - 0x938]
call fcn.004052ec
push eax
call sub.kernel32.dll_GetDriveTypeA
cmp eax, 3
jne 0x524c78
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.00404ff8
lea eax, [ebp - 0x93c]
mov edx, 0x524d04
call fcn.004050f4
mov eax, dword [ebp - 0x93c]
call fcn.004052ec
push eax
call sub.kernel32.dll_GetDiskFreeSpaceExA
mov eax, dword [ebp - 0x14]
cmp eax, 4
ja case.default.0x524bc4
jmp dword [eax*4 + 0x524bcb]
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.0x524bc4
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.0x524bc4
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.0x524bc4
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 0x524b39
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x524c9c
push 0
call sub.kernel32.dll_SetErrorMode
ret