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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x616e0c
mov eax, dword fs:[0]
push eax
sub esp, 0x8d8
mov eax, dword [0x6af320]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x88c], 0
push 3
push 0
lea eax, [ebp - 0x828]
push eax
mov ecx, dword [ebp + 8]
call fcn.00424dd0
mov dword [ebp - 4], 0
mov dword [ebp - 0x8a0], 0
xor ecx, ecx
mov dword [ebp - 0x89c], ecx
push 0
push 0
lea edx, [ebp - 0x8a0]
push edx
lea ecx, [ebp - 0x828]
call fcn.00413810
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
mov dword [ebp - 0x8a8], eax
cmp dword [ebp - 0x8a8], 0
jne 0x5764da
movsd xmm0, qword [0x66e378]
movsd qword [ebp - 0x8e4], xmm0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x828]
call fcn.00413150
fld qword [ebp - 0x8e4]
jmp 0x576755
push 0x631690
mov ecx, dword [ebp + 0xc]
call fcn.00415f50
mov ecx, dword [ebp + 8]
call fcn.00413000
cmp eax, 3
jbe 0x57653a
push 3
push 0
lea eax, [ebp - 0x858]
push eax
mov ecx, dword [ebp + 8]
call fcn.00424dd0
mov dword [ebp - 0x8b8], eax
mov ecx, dword [ebp - 0x8b8]
mov dword [ebp - 0x8ac], ecx
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x88c]
or edx, 1
mov dword [ebp - 0x88c], edx
mov eax, dword [ebp - 0x8ac]
mov dword [ebp - 0x894], eax
jmp 0x57657d
mov ecx, dword [ebp + 8]
push ecx
lea ecx, [ebp - 0x870]
call fcn.00418180
mov dword [ebp - 0x8b4], eax
mov edx, dword [ebp - 0x8b4]
mov dword [ebp - 0x8bc], edx
mov dword [ebp - 4], 2
mov eax, dword [ebp - 0x88c]
or eax, 2
mov dword [ebp - 0x88c], eax
mov ecx, dword [ebp - 0x8bc]
mov dword [ebp - 0x894], ecx
mov edx, dword [ebp - 0x894]
mov dword [ebp - 0x8c4], edx
mov eax, dword [ebp - 0x8c4]
push eax
lea ecx, [ebp - 0x840]
call fcn.00418180
mov dword [ebp - 4], 4
mov ecx, dword [ebp - 0x88c]
and ecx, 2
je 0x5765bf
and dword [ebp - 0x88c], 0xfffffffd
lea ecx, [ebp - 0x870]
call fcn.00413150
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x88c]
and edx, 1
je 0x5765e0
and dword [ebp - 0x88c], 0xfffffffe
lea ecx, [ebp - 0x858]
call fcn.00413150
mov dword [ebp - 0x8cc], 0x400
mov dword [ebp - 0x8c8], 1
xor eax, eax
mov word [ebp - 0x810], ax
push 0x7fe
push 0
lea ecx, [ebp - 0x80e]
push ecx
call sub.MSVCR120.dll_memset
add esp, 0xc
mov edx, dword [ebp - 0x8cc]
push edx
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0x8c8]
push ecx
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x840]
call fcn.00413810
push eax
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
mov dword [ebp - 0x8a4], eax
cmp dword [ebp - 0x8a4], 0
je 0x5766ab
lea edx, [ebp - 0x810]
push edx
lea ecx, [ebp - 0x888]
call fcn.00413780
mov dword [ebp - 0x8b0], eax
mov eax, dword [ebp - 0x8b0]
mov dword [ebp - 0x8c0], eax
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x88c]
or ecx, 4
mov dword [ebp - 0x88c], ecx
mov edx, 0x63169c
mov ecx, dword [ebp - 0x8c0]
call fcn.0048fdf0
movzx edx, al
test edx, edx
je 0x5766ab
mov dword [ebp - 0x898], 1
jmp 0x5766b5
mov dword [ebp - 0x898], 0
mov al, byte [ebp - 0x898]
mov byte [ebp - 0x88d], al
mov dword [ebp - 4], 5
mov ecx, dword [ebp - 0x88c]
and ecx, 4
je 0x5766e5
and dword [ebp - 0x88c], 0xfffffffb
lea ecx, [ebp - 0x888]
call fcn.00413150
movzx edx, byte [ebp - 0x88d]
test edx, edx
je 0x5766fd
push 0x631740
mov ecx, dword [ebp + 0xc]
call fcn.00415f50
mov edx, dword [ebp - 0x89c]
mov ecx, dword [ebp - 0x8a0]
call fcn.005f300e
divsd xmm0, qword [0x66e550]
movsd qword [ebp - 0x8dc], xmm0
movsd xmm0, qword [ebp - 0x8dc]
movsd qword [ebp - 0x8d4], xmm0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x840]
call fcn.00413150
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x828]
call fcn.00413150
fld qword [ebp - 0x8d4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005f24e0
mov esp, ebp
pop ebp
ret