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

Disassembly:
push 0x380
mov eax, 0x5fa08e
call fcn.005e47d4
mov esi, ecx
mov edi, dword [ebp + 8]
push 0x40
mov dword [ebp - 0x384], esi
mov dword [esi], vtable.FileSystemUtils::DiskPartition.0
call fcn.005540f2
pop ecx
mov dword [ebp - 0x368], eax
xor ebx, ebx
mov dword [ebp - 4], ebx
test eax, eax
je 0x571abc
mov ecx, eax
call fcn.00571d96
jmp 0x571abe
mov eax, ebx
or dword [ebp - 4], 0xffffffff
mov dword [esi + 4], eax
mov dword [ebp - 4], 1
mov eax, 0x104
cmp dword [edi + 0x10], eax
jae 0x571d71
push eax
lea eax, [ebp - 0x114]
push ebx
push eax
call fcn.005594a0
add esp, 0xc
cmp dword [edi + 0x14], 0x10
jb 0x571af3
mov edi, dword [edi]
push edi
lea eax, [ebp - 0x114]
push 0x104
push eax
call fcn.0055626e
add esp, 0xc
lea eax, [ebp - 0x114]
push eax
call dword [sym.imp.SHLWAPI.dll_PathStripToRootA]
test eax, eax
jne 0x571b58
lea eax, [ebp - 0x36c]
mov dword [ebp - 0x36c], str.Unable_to_load_partition_information.
push eax
lea ecx, [ebp - 0x328]
call fcn.0055342f
mov byte [ebp - 4], 2
mov dword [ebp - method.std::runtime_error.virtual_0], vtable.std::runtime_error.0
mov byte [ebp - 4], 1
push 0x66a61c
lea eax, [ebp - 0x328]
push eax
call fcn.00559436
cmp byte [ebp - 0x114], 0
mov edi, dword [esi + 4]
jne 0x571b68
mov eax, ebx
jmp 0x571b75
lea eax, [ebp - 0x114]
push eax
call fcn.005562d0
pop ecx
push eax
lea eax, [ebp - 0x114]
push eax
lea ecx, [edi + 0x10]
call fcn.00460dd0
mov eax, dword [esi + 4]
add eax, 0x10
push eax
lea eax, [ebp - 0x34c]
push eax
call fcn.005744b2
pop ecx
pop ecx
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x38c]
cmp dword [ebp - 0x338], 0x10
lea eax, [ebp - 0x34c]
push ecx
cmovae eax, dword [ebp - 0x34c]
lea ecx, [ebp - 0x380]
push ecx
lea ecx, [ebp - 0x378]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
test eax, eax
je 0x571d3e
push 8
lea eax, [ebp - 0x380]
push eax
push dword [esi + 4]
call fcn.0055b940
mov eax, dword [esi + 4]
lea ecx, [ebp - 0x378]
push 8
push ecx
add eax, 8
push eax
call fcn.0055b940
mov eax, dword [esi + 4]
add esp, 0x18
lea edx, [eax + 0x10]
lea ecx, [eax + 0x28]
cmp ecx, edx
je 0x571c15
push 0xffffffffffffffff
push ebx
push edx
call fcn.0045f9d0
push 0x208
lea eax, [ebp - 0x31c]
push ebx
push eax
call fcn.005594a0
add esp, 0xc
mov dword [ebp - 0x368], ebx
cmp dword [ebp - 0x338], 0x10
lea ecx, [ebp - 0x370]
lea eax, [ebp - 0x34c]
mov dword [ebp - 0x370], ebx
cmovae eax, dword [ebp - 0x34c]
push ebx
push ebx
push ecx
lea ecx, [ebp - 0x368]
push ecx
push ebx
push 0x104
lea ecx, [ebp - 0x31c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
test eax, eax
je 0x571d1e
xor eax, eax
mov dword [ebp - 0x324], ebx
mov dword [ebp - 0x320], ebx
mov dword [ebp - 0x320], 7
mov dword [ebp - 0x324], ebx
mov word [ebp - 0x334], ax
cmp word [ebp - 0x31c], ax
jne 0x571ca8
mov eax, ebx
jmp 0x571cb5
lea eax, [ebp - 0x31c]
push eax
call fcn.0055c035
pop ecx
push eax
lea eax, [ebp - 0x31c]
push eax
lea ecx, [ebp - 0x334]
call fcn.00478000
mov byte [ebp - 4], 5
lea eax, [ebp - 0x334]
push eax
lea eax, [ebp - 0x364]
push eax
call fcn.00574622
pop ecx
pop ecx
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x334]
push ebx
push 1
call fcn.00477ba0
mov ecx, dword [esi + 4]
lea eax, [ebp - 0x364]
add ecx, 0x28
cmp ecx, eax
je 0x571d0c
push 0xffffffffffffffff
push ebx
push eax
call fcn.0045f9d0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x364]
push ebx
push 1
call fcn.0045fc60
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x34c]
push ebx
push 1
call fcn.0045fc60
or dword [ebp - 4], 0xffffffff
mov eax, esi
call fcn.005e4783
ret 4
lea eax, [ebp - 0x36c]
mov dword [ebp - 0x36c], str.Unable_to_load_partition_information.
push eax
lea ecx, [ebp - 0x328]
call fcn.0055342f
mov byte [ebp - 4], 4
mov dword [ebp - method.std::runtime_error.virtual_0], vtable.std::runtime_error.0
mov byte [ebp - 4], 3
jmp 0x571b47
lea eax, [ebp - 0x368]
mov dword [ebp - 0x368], str.Unable_to_load_partition_information.
push eax
lea ecx, [ebp - 0x328]
call fcn.0055342f
mov byte [ebp - 4], 8
jmp 0x571b39