Function at 0x6098f4
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x49
push 0
push 0
dec ecx
jne 0x6098fd
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov ebx, ecx
mov esi, edx
mov edi, eax
xor eax, eax
push ebp
push 0x609cbf
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, ebx
xor edx, edx
call sub.rtl120.bpl__System__UStrAsg_qqrr20System_UnicodeStringx20System_UnicodeString
mov word [ebp - 0x20a], 0
push 0
push esi
lea eax, [ebp - 0x20a]
push eax
push edi
call sub.shell32.dll_SHGetSpecialFolderPathW
test eax, eax
je 0x609956
mov eax, ebx
lea edx, [ebp - 0x20a]
mov ecx, 0x105
call sub.rtl120.bpl__System__UStrFromWArray_qqrr20System_UnicodeStringpbi
mov eax, dword [ebx]
call sub.rtl120.bpl__System__UStrLen_qqrx20System_UnicodeString
cmp eax, 2
jg case.0x609979.27
add esi, 0xffffffe6
cmp esi, 0x11
ja case.0x609979.27
movzx esi, byte [esi + 0x609980]
jmp dword [esi*4 + 0x609992]
call fcn.0060abdc
test al, al
je 0x6099d2
lea edx, [ebp - 0x210]
mov eax, 0x609cdc
call sub.rtl120.bpl__Sysutils_GetEnvironmentVariable_qqrx20System_UnicodeString
mov eax, dword [ebp - 0x210]
mov edx, ebx
call sub.rtl120.bpl__Sysutils_Trim_qqrx20System_UnicodeString
jmp 0x6099ef
lea edx, [ebp - 0x214]
mov eax, 0x609d0c
call sub.rtl120.bpl__Sysutils_GetEnvironmentVariable_qqrx20System_UnicodeString
mov eax, dword [ebp - 0x214]
mov edx, ebx
call sub.rtl120.bpl__Sysutils_Trim_qqrx20System_UnicodeString
cmp dword [ebx], 0
jne case.0x609979.27
push 0x609d28
call sub.kernel32.dll_GetModuleHandleW_1
lea edx, [ebp - 0x218]
call sub.rtl120.bpl__Sysutils_GetModuleName_qqrui
mov eax, dword [ebp - 0x218]
mov edx, ebx
call sub.rtl120.bpl__Sysutils_ExtractFileDrive_qqrx20System_UnicodeString
call fcn.0060abdc
test al, al
je 0x609a34
mov eax, ebx
mov edx, 0x609d50
call sub.rtl120.bpl__System__UStrCat_qqrr20System_UnicodeStringx20System_UnicodeString
jmp case.0x609979.27
mov eax, ebx
mov edx, 0x609d88
call sub.rtl120.bpl__System__UStrCat_qqrr20System_UnicodeStringx20System_UnicodeString
jmp case.0x609979.27
call fcn.0060abdc
test al, al
je 0x609a6d
lea edx, [ebp - 0x21c]
mov eax, 0x609db4
call sub.rtl120.bpl__Sysutils_GetEnvironmentVariable_qqrx20System_UnicodeString
mov eax, dword [ebp - 0x21c]
mov edx, ebx
call sub.rtl120.bpl__Sysutils_Trim_qqrx20System_UnicodeString
jmp 0x609a8a
lea edx, [ebp - 0x220]
mov eax, 0x609df0
call sub.rtl120.bpl__Sysutils_GetEnvironmentVariable_qqrx20System_UnicodeString
mov eax, dword [ebp - 0x220]
mov edx, ebx
call sub.rtl120.bpl__Sysutils_Trim_qqrx20System_UnicodeString
cmp dword [ebx], 0
jne case.0x609979.27
push 0x609d28
call sub.kernel32.dll_GetModuleHandleW_1
lea edx, [ebp - 0x224]
call sub.rtl120.bpl__Sysutils_GetModuleName_qqrui
mov eax, dword [ebp - 0x224]
mov edx, ebx
call sub.rtl120.bpl__Sysutils_ExtractFileDrive_qqrx20System_UnicodeString
call fcn.0060abdc
test al, al
je 0x609acf
mov eax, ebx
mov edx, 0x609e24
call sub.rtl120.bpl__System__UStrCat_qqrr20System_UnicodeStringx20System_UnicodeString
jmp case.0x609979.27
mov eax, ebx
mov edx, 0x609e74
call sub.rtl120.bpl__System__UStrCat_qqrr20System_UnicodeStringx20System_UnicodeString
jmp case.0x609979.27
lea edx, [ebp - 0x228]
mov eax, 0x609eb8
call sub.rtl120.bpl__Sysutils_GetEnvironmentVariable_qqrx20System_UnicodeString
mov eax, dword [ebp - 0x228]
mov edx, ebx
call sub.rtl120.bpl__Sysutils_Trim_qqrx20System_UnicodeString
cmp dword [ebx], 0
jne case.0x609979.27
push 0x609d28
call sub.kernel32.dll_GetModuleHandleW_1
lea edx, [ebp - 0x22c]
call sub.rtl120.bpl__Sysutils_GetModuleName_qqrui
mov eax, dword [ebp - 0x22c]
mov edx, ebx
call sub.rtl120.bpl__Sysutils_ExtractFileDrive_qqrx20System_UnicodeString
mov eax, dword [sym.imp.rtl120.bpl__Sysutils_Win32MajorVersion]
cmp dword [eax], 5
jle 0x609b60
push dword [ebx]
push 0x609ed4
lea eax, [ebp - 0x230]
call fcn.006092f0
push dword [ebp - 0x230]
push 0x609ef0
mov eax, ebx
mov edx, 4
call sub.rtl120.bpl__System__UStrCatN_qqrv
jmp case.0x609979.27
push dword [ebx]
push 0x609f20
lea eax, [ebp - 0x234]
call fcn.006092f0
push dword [ebp - 0x234]
push 0x609f60
mov eax, ebx
mov edx, 4
call sub.rtl120.bpl__System__UStrCatN_qqrv
jmp case.0x609979.27
lea edx, [ebp - 0x238]
mov eax, 0x609f90
call sub.rtl120.bpl__Sysutils_GetEnvironmentVariable_qqrx20System_UnicodeString
mov eax, dword [ebp - 0x238]
mov edx, ebx
call sub.rtl120.bpl__Sysutils_Trim_qqrx20System_UnicodeString
cmp dword [ebx], 0
jne case.0x609979.27
push 0x609d28
call sub.kernel32.dll_GetModuleHandleW_1
lea edx, [ebp - 0x23c]
call sub.rtl120.bpl__Sysutils_GetModuleName_qqrui
mov eax, dword [ebp - 0x23c]
mov edx, ebx
call sub.rtl120.bpl__Sysutils_ExtractFileDrive_qqrx20System_UnicodeString
mov eax, dword [sym.imp.rtl120.bpl__Sysutils_Win32MajorVersion]
cmp dword [eax], 5
jle 0x609c0e
push dword [ebx]
push 0x609ed4
lea eax, [ebp - 0x240]
call fcn.006092f0
push dword [ebp - 0x240]
push 0x609fb8
mov eax, ebx
mov edx, 4
call sub.rtl120.bpl__System__UStrCatN_qqrv
jmp case.0x609979.27
push dword [ebx]
push 0x609f20
lea eax, [ebp - 0x244]
call fcn.006092f0
push dword [ebp - 0x244]
push 0x609fe4
mov eax, ebx
mov edx, 4
call sub.rtl120.bpl__System__UStrCatN_qqrv
jmp case.0x609979.27
lea edx, [ebp - 0x248]
mov eax, 0x60a034
call sub.rtl120.bpl__Sysutils_GetEnvironmentVariable_qqrx20System_UnicodeString
mov eax, dword [ebp - 0x248]
mov edx, ebx
call sub.rtl120.bpl__Sysutils_Trim_qqrx20System_UnicodeString
cmp dword [ebx], 0
jne case.0x609979.27
push 0x609d28
call sub.kernel32.dll_GetModuleHandleW_1
lea edx, [ebp - 0x24c]
call sub.rtl120.bpl__Sysutils_GetModuleName_qqrui
mov eax, dword [ebp - 0x24c]
mov edx, ebx
call sub.rtl120.bpl__Sysutils_ExtractFileDrive_qqrx20System_UnicodeString
mov eax, dword [sym.imp.rtl120.bpl__Sysutils_Win32MajorVersion]
cmp dword [eax], 5
jle 0x609c95
mov eax, ebx
mov edx, 0x60a058
call sub.rtl120.bpl__System__UStrCat_qqrr20System_UnicodeStringx20System_UnicodeString
jmp case.0x609979.27
mov eax, ebx
mov edx, 0x60a080
call sub.rtl120.bpl__System__UStrCat_qqrr20System_UnicodeStringx20System_UnicodeString
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x609cc6
lea eax, [ebp - 0x24c]
mov edx, 0x10
call sub.rtl120.bpl__System__UStrArrayClr_qqrpvi
ret