Function at 0x578160
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x220
mov edx, dword [0x8f070c]
test edx, edx
je 0x5788a0
lea eax, [ebp - 0x214]
mov dword [esp + 8], 0x104
mov dword [esp + 4], eax
mov dword [esp], 0x602254
call dword [sym.imp.kernel32.dll_GetVolumeNameForVolumeMountPointA]
sub esp, 0xc
mov esi, eax
call fcn.0057d110
mov ebx, dword fs:[0x18]
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x3b7
mov eax, dword [ebx + 0x34]
mov dword [esp], esi
mov dword [esp + 8], eax
mov dword [esp + 4], str.failed_to_get_volume_name__lu_n
call fcn.005744b0
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x3b8
lea eax, [ebp - 0x214]
mov dword [esp + 4], eax
mov dword [esp], str.c:_____s_n
call fcn.00573f20
mov dword [ebx + 0x34], 0xdeadbeef
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call dword [0x8f070c]
mov esi, dword [ebx + 0x34]
sub esp, 0x10
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x3bd
xor eax, eax
test edi, edi
sete al
mov dword [esp + 4], str.expected_failure_n
mov dword [esp], eax
call fcn.005744b0
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x3be
xor eax, eax
cmp esi, 0x7b
sete al
mov dword [esp + 8], esi
mov dword [esp + 4], str.expected_ERROR_INVALID_NAME_got__lu_n
mov dword [esp], eax
call fcn.005744b0
mov dword [ebx + 0x34], 0xdeadbeef
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x601b00
call dword [0x8f070c]
mov esi, dword [ebx + 0x34]
sub esp, 0x10
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x3c3
xor eax, eax
test edi, edi
sete al
mov dword [esp + 4], str.expected_failure_n
mov dword [esp], eax
call fcn.005744b0
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x3c4
xor eax, eax
cmp esi, 0x7b
sete al
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 4], str.expected_ERROR_INVALID_NAME_got__lu_n
call fcn.005744b0
lea eax, [ebp - 0x214]
mov dword [ebx + 0x34], 0xdeadbeef
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [0x8f070c]
mov esi, dword [ebx + 0x34]
sub esp, 0x10
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x3c9
xor eax, eax
test edi, edi
sete al
mov dword [esp + 4], str.expected_failure_n
mov dword [esp], eax
call fcn.005744b0
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x3ca
xor eax, eax
cmp esi, 0xea
sete al
mov dword [esp + 8], esi
lea esi, [ebp - 0x110]
mov dword [esp], eax
mov dword [esp + 4], str.expected_ERROR_MORE_DATA_got__lu_n
call fcn.005744b0
lea eax, [ebp - 0x214]
mov dword [ebx + 0x34], 0xdeadbeef
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [0x8f070c]
mov edi, dword [ebx + 0x34]
sub esp, 0x10
mov dword [ebp - 0x21c], eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x3cf
xor eax, eax
mov dword [esp + 4], str.expected_failure_n
mov edx, dword [ebp - 0x21c]
test edx, edx
sete al
mov dword [esp], eax
call fcn.005744b0
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x3d0
xor eax, eax
cmp edi, 0xea
sete al
mov dword [esp + 8], edi
mov edi, esi
mov dword [esp], eax
mov dword [esp + 4], str.expected_ERROR_MORE_DATA_got__lu_n
call fcn.005744b0
mov edx, 0xffffffff
mov ecx, 0x41
mov eax, edx
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x214]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x104
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [0x8f070c]
sub esp, 0x10
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x3d4
mov eax, dword [ebx + 0x34]
mov dword [esp], edi
mov dword [esp + 8], eax
mov dword [esp + 4], str.failed_to_get_path_names__lu_n
call fcn.005744b0
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x3d5
xor eax, eax
mov dword [esp + 8], esi
mov dword [esp + 4], str.expected__C:__got___s__n
cmp dword [ebp - 0x110], 0x5c3a43
sete al
mov dword [esp], eax
call fcn.005744b0
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x3d6
xor eax, eax
mov dword [esp + 4], str.expected_double_null_terminated_buffer_n
cmp byte [ebp - 0x10c], 0
sete al
mov dword [esp], eax
call fcn.005744b0
lea eax, [ebp - 0x218]
mov dword [ebp - 0x218], 0
mov dword [ebx + 0x34], 0xdeadbeef
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call dword [0x8f070c]
mov edi, dword [ebx + 0x34]
sub esp, 0x10
mov dword [ebp - 0x21c], eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x3dc
xor eax, eax
mov dword [esp + 4], str.expected_failure_n
mov ecx, dword [ebp - 0x21c]
test ecx, ecx
sete al
mov dword [esp], eax
call fcn.005744b0
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x3dd
xor eax, eax
cmp edi, 0x7b
sete al
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 4], str.expected_ERROR_INVALID_NAME_got__lu_n
call fcn.005744b0
lea eax, [ebp - 0x218]
mov dword [ebp - 0x218], 0
mov dword [ebx + 0x34], 0xdeadbeef
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x104
mov dword [esp + 4], 0
mov dword [esp], 0
call dword [0x8f070c]
mov edi, dword [ebx + 0x34]
sub esp, 0x10
mov dword [ebp - 0x21c], eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x3e3
xor eax, eax
mov dword [esp + 4], str.expected_failure_n
mov ecx, dword [ebp - 0x21c]
test ecx, ecx
sete al
mov dword [esp], eax
call fcn.005744b0
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x3e4
xor eax, eax
cmp edi, 0x7b
sete al
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 4], str.expected_ERROR_INVALID_NAME_got__lu_n
call fcn.005744b0
lea eax, [ebp - 0x218]
mov dword [ebp - 0x218], 0
mov dword [ebx + 0x34], 0xdeadbeef
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x104
mov dword [esp + 4], esi
mov dword [esp], 0
call dword [0x8f070c]
mov edi, dword [ebx + 0x34]
sub esp, 0x10
mov dword [ebp - 0x21c], eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x3ea
xor eax, eax
mov dword [esp + 4], str.expected_failure_n
mov ecx, dword [ebp - 0x21c]
test ecx, ecx
sete al
mov dword [esp], eax
call fcn.005744b0
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x3eb
xor eax, eax
cmp edi, 0x7b
sete al
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 4], str.expected_ERROR_INVALID_NAME_got__lu_n
call fcn.005744b0
lea eax, [ebp - 0x218]
mov dword [ebp - 0x218], 0
mov dword [ebx + 0x34], 0xdeadbeef
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x104
mov dword [esp + 4], esi
mov dword [esp], 0
call dword [0x8f070c]
mov edi, dword [ebx + 0x34]
sub esp, 0x10
mov dword [ebp - 0x21c], eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x3f1
xor eax, eax
mov dword [esp + 4], str.expected_failure_n
mov ecx, dword [ebp - 0x21c]
test ecx, ecx
sete al
mov dword [esp], eax
call fcn.005744b0
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x3f2
xor eax, eax
cmp edi, 0x7b
sete al
mov dword [esp + 8], edi
mov edi, esi
mov dword [esp], eax
mov dword [esp + 4], str.expected_ERROR_INVALID_NAME_got__lu_n
call fcn.005744b0
mov eax, 0xffffffff
mov ecx, 0x41
mov dword [ebp - 0x218], 0
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x218]
mov dword [esp + 8], 0x104
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x214]
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [0x8f070c]
sub esp, 0x10
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x3f7
mov eax, dword [ebx + 0x34]
mov dword [esp + 4], str.failed_to_get_path_names__lu_n
mov dword [esp + 8], eax
mov dword [esp], edi
call fcn.005744b0
call fcn.0057d110
mov dword [eax], 0x601b57
mov edx, dword [ebp - 0x218]
mov dword [eax + 4], 0x3f8
mov eax, 1
cmp edx, 5
je 0x578819
mov eax, dword [0x8f0770]
test eax, eax
sete cl
xor eax, eax
cmp edx, 2
sete al
and eax, ecx
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [esp + 4], str.expected_5_got__lu_n
call fcn.005744b0
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x3f9
xor eax, eax
mov dword [esp + 8], esi
mov dword [esp + 4], str.expected__C:__got___s__n
cmp dword [ebp - 0x110], 0x5c3a43
sete al
mov dword [esp], eax
call fcn.005744b0
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x3fa
xor eax, eax
mov dword [esp + 4], str.expected_double_null_terminated_buffer_n
cmp byte [ebp - 0x10c], 0
sete al
mov dword [esp], eax
call fcn.005744b0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x3b2
mov dword [esp], str.required_functions_not_found_n
call fcn.00574480
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret