Function at 0x5758b0
Capabilities:
Get common file path
Get disk information

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
lea eax, [ebp - 0x110]
lea esi, [ebp - 0x218]
push ebx
mov edi, dword fs:[0x18]
sub esp, 0x224
mov dword [ebp - 0x218], 0x5c3a63
mov dword [esp + 4], eax
mov dword [esp], 0x104
call dword [sym.imp.kernel32.dll_GetTempPathA]
sub esp, 8
mov ebx, eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0xea
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.GetTempPathA_error__ld_n
mov dword [esp + 8], eax
xor eax, eax
test ebx, ebx
setne al
mov dword [esp], eax
call fcn.005744b0
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0xeb
xor eax, eax
cmp ebx, 0x103
lea ebx, [ebp - 0x214]
setbe al
mov dword [esp + 4], str.temp_path_should_fit_into_MAX_PATH_n
mov dword [esp], eax
call fcn.005744b0
mov eax, dword [sym.imp.kernel32.dll_GetVolumeNameForVolumeMountPointA]
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov dword [esp], esi
mov dword [ebp - 0x21c], eax
call eax
sub esp, 0xc
mov dword [ebp - 0x220], eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0xee
xor eax, eax
mov dword [esp + 4], str.GetVolumeNameForVolumeMountPointA_succeeded_n
mov edx, dword [ebp - 0x220]
test edx, edx
sete al
mov dword [esp], eax
call fcn.005744b0
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0xef
mov edx, dword [edi + 0x34]
mov eax, 1
cmp edx, 0xce
je 0x5759d0
xor eax, eax
cmp edx, 0x57
sete al
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [esp + 4], str.wrong_error__last_ld_n
call fcn.005744b0
mov dword [esp + 8], 0x104
mov dword [esp + 4], ebx
mov dword [esp], esi
mov eax, dword [ebp - 0x21c]
call eax
sub esp, 0xc
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0xfc
xor eax, eax
cmp edi, 1
sete al
mov dword [esp + 4], str.GetVolumeNameForVolumeMountPointA_failed_n
mov dword [esp], eax
call fcn.005744b0
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0xfd
cmp dword [ebp - 0x214], 0x5c3f5c5c
je 0x575c70
mov eax, 1
xor eax, 1
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], str.GetVolumeNameForVolumeMountPointA_failed_to_return_valid_string___s__n
call fcn.005744b0
mov dword [esp + 8], 0xa
mov dword [esp + 4], ebx
mov dword [esp], esi
mov eax, dword [ebp - 0x21c]
call eax
sub esp, 0xc
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x103
xor eax, eax
mov edx, dword fs:[0x18]
mov ecx, dword [edx + 0x34]
test edi, edi
jne 0x575ab1
xor eax, eax
cmp ecx, 0xce
sete al
mov dword [esp + 8], ecx
mov dword [esp], eax
mov dword [esp + 4], str.GetVolumeNameForVolumeMountPointA_failed__wrong_error_returned__was__ld__should_be_ERROR_FILENAME_EXCED_RANGE_n
call fcn.005744b0
lea eax, [ebp - 0x110]
mov dword [esp + 4], ebx
mov dword [esp + 8], 0x104
mov dword [esp], eax
mov eax, dword [ebp - 0x21c]
call eax
sub esp, 0xc
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x10b
xor eax, eax
mov edx, dword fs:[0x18]
mov ecx, dword [edx + 0x34]
test edi, edi
jne 0x575b1e
mov eax, 1
cmp ecx, 0x1126
je 0x575b1e
xor eax, eax
cmp ecx, 1
sete al
mov dword [esp + 0xc], ecx
lea ecx, [ebp - 0x110]
mov dword [esp + 8], ecx
mov dword [esp + 4], str.GetVolumeNameForVolumeMountPointA_failed_on__s__last_ld_n
mov dword [esp], eax
call fcn.005744b0
cmp byte [ebp - 0x218], 0x7a
mov byte [ebp - 0x216], 0
mov edi, dword [sym.imp.kernel32.dll_QueryDosDeviceA]
jle 0x575b78
jmp 0x575c67
movzx eax, byte [ebp - 0x218]
add eax, 1
mov byte [ebp - 0x218], al
cmp al, 0x7a
jg 0x575c67
mov dword [esp + 8], 0x104
mov dword [esp + 4], ebx
mov dword [esp], esi
call edi
sub esp, 0xc
test eax, eax
jne 0x575b60
cmp byte [ebp - 0x218], 0x7a
jg 0x575c67
mov byte [ebp - 0x216], 0x5c
mov dword [esp + 8], 0x104
mov dword [esp + 4], ebx
mov dword [esp], esi
mov eax, dword [ebp - 0x21c]
call eax
sub esp, 0xc
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x11a
xor eax, eax
mov edx, dword fs:[0x18]
mov ecx, dword [edx + 0x34]
test edi, edi
jne 0x575bea
xor eax, eax
cmp ecx, 2
sete al
mov dword [esp + 0xc], ecx
mov dword [esp], eax
mov dword [esp + 8], esi
mov dword [esp + 4], str.GetVolumeNameForVolumeMountPointA_failed_on__s__last_ld_n
call fcn.005744b0
mov byte [ebp - 0x216], 0
mov dword [esp + 4], ebx
mov dword [esp + 8], 0x104
mov dword [esp], esi
mov eax, dword [ebp - 0x21c]
call eax
sub esp, 0xc
mov ebx, eax
call fcn.0057d110
mov dword [eax], 0x601b57
mov dword [eax + 4], 0x121
xor eax, eax
mov edx, dword fs:[0x18]
mov ecx, dword [edx + 0x34]
test ebx, ebx
jne 0x575c4f
xor eax, eax
cmp ecx, 0x7b
sete al
mov dword [esp + 0xc], ecx
mov dword [esp + 8], esi
mov dword [esp + 4], str.GetVolumeNameForVolumeMountPointA_failed_on__s__last_ld_n
mov dword [esp], eax
call fcn.005744b0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
cmp dword [ebp - 0x210], 0x756c6f56
jne 0x575a4c
xor eax, eax
cmp dword [ebp - 0x20d], 0x7b656d75
jne 0x575a4c
jmp 0x575a51