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

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0xe0
push 0
push 0
dec ecx
jne 0x6b44a0
push ebx
push esi
push edi
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0x6b4c0c
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 8]
xor edx, edx
call sub.rtl120.bpl__System__UStrAsg_qqrr20System_UnicodeStringx20System_UnicodeString
xor edx, edx
xor eax, eax
call fcn.00413a14
mov dword [ebp - 0xc], eax
mov dl, 1
mov eax, dword [sym.imp.rtl120.bpl__Classes_TStringList_]
call sub.rtl120.bpl__Classes_TStringList__bctr_qqrv
mov esi, eax
lea eax, [ebp - 0x64a]
push eax
push 0x104
call sub.kernel32.dll_GetLogicalDriveStringsW
mov ebx, eax
lea eax, [ebp - 4]
xor edx, edx
call sub.rtl120.bpl__System__UStrLAsg_qqrr20System_UnicodeStringx20System_UnicodeString
dec ebx
test ebx, ebx
jl 0x6b454c
inc ebx
mov dword [ebp - 0x2c], ebx
lea ebx, [ebp - 0x64a]
movzx edi, word [ebx]
test di, di
je 0x6b4530
lea eax, [ebp - 0x650]
mov edx, edi
call sub.rtl120.bpl__System__UStrFromWChar_qqrr20System_UnicodeStringb
mov edx, dword [ebp - 0x650]
lea eax, [ebp - 4]
call sub.rtl120.bpl__System__UStrCat_qqrr20System_UnicodeStringx20System_UnicodeString
jmp 0x6b4544
mov edx, dword [ebp - 4]
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea eax, [ebp - 4]
xor edx, edx
call sub.rtl120.bpl__System__UStrLAsg_qqrr20System_UnicodeStringx20System_UnicodeString
add ebx, 2
dec dword [ebp - 0x2c]
jne 0x6b450b
cmp dword [ebp - 0xc], 1
je 0x6b455c
cmp dword [ebp - 0xc], 2
jne 0x6b46bd
mov eax, esi
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x6b466c
inc eax
mov dword [ebp - 0x2c], eax
xor ebx, ebx
lea ecx, [ebp - 0x654]
mov edx, ebx
mov eax, esi
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x654]
mov edx, 0x6b4c2c
call fcn.0040bae4
test eax, eax
jg 0x6b4662
lea ecx, [ebp - 0x658]
mov edx, ebx
mov eax, esi
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x658]
mov edx, 0x6b4c40
call fcn.0040bae4
test eax, eax
jg 0x6b4662
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x65c]
mov edx, ebx
mov eax, esi
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x65c]
call sub.rtl120.bpl__System__UStrToPWChar_qqrx20System_UnicodeString
push eax
mov eax, dword [sym.imp.rtl120.bpl__Sysutils_GetDiskFreeSpaceEx]
mov eax, dword [eax]
call eax
test eax, eax
jne 0x6b4626
lea ecx, [ebp - 0x664]
mov edx, ebx
mov eax, esi
mov edi, dword [eax]
call dword [edi + 0xc]
mov ecx, dword [ebp - 0x664]
lea eax, [ebp - 0x660]
mov edx, 0x6b4c54
call sub.rtl120.bpl__System__UStrCat3_qqrr20System_UnicodeStringx20System_UnicodeStringt2
mov eax, dword [ebp - 0x660]
call fcn.006b1fb8
jmp 0x6b4662
push 0
push 0x400
push 0
push 0x400
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
call sub.rtl120.bpl__System___lldiv_qqrv
call sub.rtl120.bpl__System___lldiv_qqrv
cmp edx, 0
jne 0x6b4652
cmp eax, 0x320
jbe 0x6b4662
jmp 0x6b4654
jle 0x6b4662
mov ecx, dword [ebp - 8]
mov edx, ebx
mov eax, esi
mov edi, dword [eax]
call dword [edi + 0xc]
jmp 0x6b466c
inc ebx
dec dword [ebp - 0x2c]
jne 0x6b4572
mov eax, dword [ebp - 8]
cmp dword [eax], 0
jne 0x6b4b44
lea eax, [ebp - 0x670]
call fcn.006b443c
mov edx, dword [ebp - 0x670]
lea eax, [ebp - 0x66c]
call sub.rtl120.bpl__System__WStrFromUStr_qqrr17System_WideStringx20System_UnicodeString
mov eax, dword [ebp - 0x66c]
lea ecx, [ebp - 0x668]
mov edx, 2
call sub.rtl120.bpl__Strutils_LeftStr_qqrx17System_WideStringxi
mov edx, dword [ebp - 0x668]
mov eax, dword [ebp - 8]
call sub.rtl120.bpl__System__UStrFromWStr_qqrr20System_UnicodeStringx17System_WideString
jmp 0x6b4b44
mov eax, esi
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x6b4afc
inc eax
mov dword [ebp - 0x2c], eax
xor ebx, ebx
lea ecx, [ebp - 0x674]
mov edx, ebx
mov eax, esi
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x674]
mov edx, 0x6b4c2c
call fcn.0040bae4
test eax, eax
jg 0x6b4af2
lea ecx, [ebp - 0x678]
mov edx, ebx
mov eax, esi
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x678]
mov edx, 0x6b4c40
call fcn.0040bae4
test eax, eax
jg 0x6b4af2
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x67c]
mov edx, ebx
mov eax, esi
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x67c]
call sub.rtl120.bpl__System__UStrToPWChar_qqrx20System_UnicodeString
push eax
mov eax, dword [sym.imp.rtl120.bpl__Sysutils_GetDiskFreeSpaceEx]
mov eax, dword [eax]
call eax
test eax, eax
jne 0x6b478a
lea ecx, [ebp - 0x684]
mov edx, ebx
mov eax, esi
mov edi, dword [eax]
call dword [edi + 0xc]
mov ecx, dword [ebp - 0x684]
lea eax, [ebp - 0x680]
mov edx, 0x6b4c54
call sub.rtl120.bpl__System__UStrCat3_qqrr20System_UnicodeStringx20System_UnicodeStringt2
mov eax, dword [ebp - 0x680]
call fcn.006b1fb8
jmp 0x6b4af2
push 0
push 0x400
push 0
push 0x400
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
call sub.rtl120.bpl__System___lldiv_qqrv
call sub.rtl120.bpl__System___lldiv_qqrv
cmp edx, 0
jne 0x6b47ba
cmp eax, 0x400
jbe 0x6b4a87
jmp 0x6b47c0
jle 0x6b4a87
lea ecx, [ebp - 0x690]
mov edx, ebx
mov eax, esi
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x690]
lea edx, [ebp - 0x68c]
call sub.rtl120.bpl__Sysutils_IncludeTrailingPathDelimiter_qqrx20System_UnicodeString
mov eax, dword [ebp - 0x68c]
lea edx, [ebp - 0x688]
call sub.rtl120.bpl__Sysutils_UpperCase_qqrx20System_UnicodeString
mov eax, dword [ebp - 0x688]
push eax
lea eax, [ebp - 0x6a8]
call fcn.006b443c
mov edx, dword [ebp - 0x6a8]
lea eax, [ebp - 0x6a4]
call sub.rtl120.bpl__System__WStrFromUStr_qqrr17System_WideStringx20System_UnicodeString
mov eax, dword [ebp - 0x6a4]
lea ecx, [ebp - 0x6a0]
mov edx, 2
call sub.rtl120.bpl__Strutils_LeftStr_qqrx17System_WideStringxi
mov edx, dword [ebp - 0x6a0]
lea eax, [ebp - 0x69c]
call sub.rtl120.bpl__System__UStrFromWStr_qqrr20System_UnicodeStringx17System_WideString
mov eax, dword [ebp - 0x69c]
lea edx, [ebp - 0x698]
call sub.rtl120.bpl__Sysutils_IncludeTrailingPathDelimiter_qqrx20System_UnicodeString
mov eax, dword [ebp - 0x698]
lea edx, [ebp - 0x694]
call sub.rtl120.bpl__Sysutils_UpperCase_qqrx20System_UnicodeString
mov edx, dword [ebp - 0x694]
pop eax
call sub.rtl120.bpl__System__UStrEqual_qqrv
jne 0x6b4a79
lea eax, [ebp - 0x236]
push eax
push 0x104
call sub.kernel32.dll_GetTempPathW
test eax, eax
jne 0x6b493f
call sub.kernel32.dll_GetLastError
xor edx, edx
push edx
push eax
lea edx, [ebp - 0x6b0]
mov eax, 8
call sub.rtl120.bpl__Sysutils_IntToHex_qqrji
mov ecx, dword [ebp - 0x6b0]
lea eax, [ebp - 0x6ac]
mov edx, 0x6b4cac
call sub.rtl120.bpl__System__UStrCat3_qqrr20System_UnicodeStringx20System_UnicodeStringt2
mov eax, dword [ebp - 0x6ac]
call fcn.006b1fb8
push 0
push 0x23
lea eax, [ebp - 0x440]
push eax
push 0
call sub.shell32.dll_SHGetSpecialFolderPathW
test eax, eax
jne 0x6b4927
mov eax, 0x6b4cf8
call fcn.006b1fb8
lea eax, [ebp - 0x6bc]
call fcn.006b443c
mov edx, dword [ebp - 0x6bc]
lea eax, [ebp - 0x6b8]
call sub.rtl120.bpl__System__WStrFromUStr_qqrr17System_WideStringx20System_UnicodeString
mov eax, dword [ebp - 0x6b8]
lea ecx, [ebp - 0x6b4]
mov edx, 2
call sub.rtl120.bpl__Strutils_LeftStr_qqrx17System_WideStringxi
mov edx, dword [ebp - 0x6b4]
mov eax, dword [ebp - 8]
call sub.rtl120.bpl__System__UStrFromWStr_qqrr20System_UnicodeStringx17System_WideString
jmp 0x6b4afc
mov eax, dword [ebp - 8]
lea edx, [ebp - 0x440]
mov ecx, 0x105
call sub.rtl120.bpl__System__UStrFromWArray_qqrr20System_UnicodeStringpbi
jmp 0x6b4afc
lea ecx, [ebp - 0x6c8]
mov edx, ebx
mov eax, esi
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x6c8]
lea edx, [ebp - 0x6c4]
call sub.rtl120.bpl__Sysutils_IncludeTrailingPathDelimiter_qqrx20System_UnicodeString
mov eax, dword [ebp - 0x6c4]
lea edx, [ebp - 0x6c0]
call sub.rtl120.bpl__Sysutils_UpperCase_qqrx20System_UnicodeString
mov eax, dword [ebp - 0x6c0]
push eax
lea eax, [ebp - 0x6dc]
lea edx, [ebp - 0x236]
mov ecx, 0x105
call sub.rtl120.bpl__System__WStrFromWArray_qqrr17System_WideStringpbi
mov eax, dword [ebp - 0x6dc]
lea ecx, [ebp - 0x6d8]
mov edx, 2
call sub.rtl120.bpl__Strutils_LeftStr_qqrx17System_WideStringxi
mov edx, dword [ebp - 0x6d8]
lea eax, [ebp - 0x6d4]
call sub.rtl120.bpl__System__UStrFromWStr_qqrr20System_UnicodeStringx17System_WideString
mov eax, dword [ebp - 0x6d4]
lea edx, [ebp - 0x6d0]
call sub.rtl120.bpl__Sysutils_IncludeTrailingPathDelimiter_qqrx20System_UnicodeString
mov eax, dword [ebp - 0x6d0]
lea edx, [ebp - 0x6cc]
call sub.rtl120.bpl__Sysutils_UpperCase_qqrx20System_UnicodeString
mov edx, dword [ebp - 0x6cc]
pop eax
call sub.rtl120.bpl__System__UStrEqual_qqrv
jne 0x6b49fc
mov eax, dword [ebp - 8]
lea edx, [ebp - 0x236]
mov ecx, 0x105
call sub.rtl120.bpl__System__UStrFromWArray_qqrr20System_UnicodeStringpbi
jmp 0x6b4afc
push 0
push 0x23
lea eax, [ebp - 0x440]
push eax
push 0
call sub.shell32.dll_SHGetSpecialFolderPathW
test eax, eax
jne 0x6b4a61
mov eax, 0x6b4cf8
call fcn.006b1fb8
lea eax, [ebp - 0x6e8]
call fcn.006b443c
mov edx, dword [ebp - 0x6e8]
lea eax, [ebp - 0x6e4]
call sub.rtl120.bpl__System__WStrFromUStr_qqrr17System_WideStringx20System_UnicodeString
mov eax, dword [ebp - 0x6e4]
lea ecx, [ebp - 0x6e0]
mov edx, 2
call sub.rtl120.bpl__Strutils_LeftStr_qqrx17System_WideStringxi
mov edx, dword [ebp - 0x6e0]
mov eax, dword [ebp - 8]
call sub.rtl120.bpl__System__UStrFromWStr_qqrr20System_UnicodeStringx17System_WideString
jmp 0x6b4afc
mov eax, dword [ebp - 8]
lea edx, [ebp - 0x440]
mov ecx, 0x105
call sub.rtl120.bpl__System__UStrFromWArray_qqrr20System_UnicodeStringpbi
jmp 0x6b4afc
mov ecx, dword [ebp - 8]
mov edx, ebx
mov eax, esi
mov edi, dword [eax]
call dword [edi + 0xc]
jmp 0x6b4afc
push 0x6b4d54
lea ecx, [ebp - 0x6f0]
mov edx, ebx
mov eax, esi
mov edi, dword [eax]
call dword [edi + 0xc]
push dword [ebp - 0x6f0]
push 0x6b4d90
push 0
push 0x400
push 0
push 0x400
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
call sub.rtl120.bpl__System___lldiv_qqrv
call sub.rtl120.bpl__System___lldiv_qqrv
push edx
push eax
lea eax, [ebp - 0x6f4]
call sub.rtl120.bpl__Sysutils_IntToStr_qqrj
push dword [ebp - 0x6f4]
lea eax, [ebp - 0x6ec]
mov edx, 4
call sub.rtl120.bpl__System__UStrCatN_qqrv
mov eax, dword [ebp - 0x6ec]
call fcn.006b1fb8
inc ebx
dec dword [ebp - 0x2c]
jne 0x6b46d3
mov eax, dword [ebp - 8]
cmp dword [eax], 0
jne 0x6b4b44
lea eax, [ebp - 0x700]
call fcn.006b443c
mov edx, dword [ebp - 0x700]
lea eax, [ebp - 0x6fc]
call sub.rtl120.bpl__System__WStrFromUStr_qqrr17System_WideStringx20System_UnicodeString
mov eax, dword [ebp - 0x6fc]
lea ecx, [ebp - 0x6f8]
mov edx, 2
call sub.rtl120.bpl__Strutils_LeftStr_qqrx17System_WideStringxi
mov edx, dword [ebp - 0x6f8]
mov eax, dword [ebp - 8]
call sub.rtl120.bpl__System__UStrFromWStr_qqrr20System_UnicodeStringx17System_WideString
mov eax, esi
call sub.rtl120.bpl__System_TObject_Free_qqrv
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x6b4c16
lea eax, [ebp - 0x700]
call sub.rtl120.bpl__System__UStrClr_qqrpv
lea eax, [ebp - 0x6fc]
mov edx, 2
call sub.rtl120.bpl__System__WStrArrayClr_qqrpvi
lea eax, [ebp - 0x6f4]
mov edx, 4
call sub.rtl120.bpl__System__UStrArrayClr_qqrpvi
lea eax, [ebp - 0x6e4]
mov edx, 4
call sub.rtl120.bpl__System__WStrArrayClr_qqrpvi
lea eax, [ebp - 0x6d4]
mov edx, 7
call sub.rtl120.bpl__System__UStrArrayClr_qqrpvi
lea eax, [ebp - 0x6b8]
mov edx, 2
call sub.rtl120.bpl__System__WStrArrayClr_qqrpvi
lea eax, [ebp - 0x6b0]
mov edx, 3
call sub.rtl120.bpl__System__UStrArrayClr_qqrpvi
lea eax, [ebp - 0x6a4]
mov edx, 2
call sub.rtl120.bpl__System__WStrArrayClr_qqrpvi
lea eax, [ebp - 0x69c]
mov edx, 0xc
call sub.rtl120.bpl__System__UStrArrayClr_qqrpvi
lea eax, [ebp - 0x66c]
mov edx, 2
call sub.rtl120.bpl__System__WStrArrayClr_qqrpvi
lea eax, [ebp - 0x664]
mov edx, 6
call sub.rtl120.bpl__System__UStrArrayClr_qqrpvi
lea eax, [ebp - 4]
call sub.rtl120.bpl__System__UStrClr_qqrpv
ret