Function at 0x474948
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffdcc
push ebx
xor edx, edx
mov dword [ebp - 0x228], edx
mov dword [ebp - 0x234], edx
mov dword [ebp - 0x22c], edx
mov dword [ebp - 0x230], edx
mov dword [ebp - 4], edx
mov dword [ebp - 8], edx
mov dword [ebp - 0xc], eax
xor eax, eax
push ebp
push 0x474b39
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x28]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jg 0x474b0b
push 0x104
lea eax, [ebp - 0x224]
push eax
call sub.kernel32.dll_GetSystemDirectoryW
test eax, eax
je 0x474b0b
movzx eax, word [ebp - 0x224]
call sub.rtl160.bpl__System_UpCase_qqrb
mov word [ebp - 0x224], ax
mov eax, dword [ebp - 0xc]
call fcn.00474b48
lea eax, [ebp - 8]
call fcn.0041563c
cmp dword [ebp - 8], 0
je 0x474b02
xor eax, eax
push ebp
push 0x474afb
push dword fs:[eax]
mov dword fs:[eax], esp
xor ecx, ecx
mov dl, 1
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0x28]
test eax, eax
jne 0x474a0c
call sub.rtl160.bpl__System__TryFinallyExit_qqrv
jmp 0x474b0b
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0x28]
dec eax
test eax, eax
jl 0x474ae5
inc eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0
lea ecx, [ebp - 4]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x34]
xor eax, eax
push ebp
push 0x474ad2
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0x230]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x28]
mov eax, dword [ebp - 0x230]
movzx edx, word [eax]
lea eax, [ebp - 0x22c]
call sub.rtl160.bpl__System__UStrFromWChar_qqrr20System_UnicodeStringb
mov eax, dword [ebp - 0x22c]
lea edx, [ebp - 0x228]
call sub.rtl160.bpl__System_Sysutils_UpperCase_qqrx20System_UnicodeString
mov eax, dword [ebp - 0x228]
push eax
lea eax, [ebp - 0x234]
movzx edx, word [ebp - 0x224]
call sub.rtl160.bpl__System__UStrFromWChar_qqrr20System_UnicodeStringb
mov edx, dword [ebp - 0x234]
pop eax
call sub.rtl160.bpl__System__UStrEqual_qqrv
jne 0x474abc
push 0
push 0x40000000
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x4c]
call sub.rtl160.bpl__System___lldiv_qqrv
mov dword [ebp - 0x10], eax
call sub.rtl160.bpl__System__TryFinallyExit_qqrv
jmp 0x474ae5
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x474ad9
lea eax, [ebp - 4]
call sub.rtl160.bpl__System__IntfClear_qqrr45System__DelphiInterface_t17System_IInterface_
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x474b02
lea eax, [ebp - 8]
call sub.rtl160.bpl__System__IntfClear_qqrr45System__DelphiInterface_t17System_IInterface_
ret
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
mov dword [eax + 0x28], edx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x474b40
lea eax, [ebp - 0x234]
mov edx, 4
call sub.rtl160.bpl__System__UStrArrayClr_qqrpvi
lea eax, [ebp - 8]
call sub.rtl160.bpl__System__IntfClear_qqrr45System__DelphiInterface_t17System_IInterface_
lea eax, [ebp - 4]
call sub.rtl160.bpl__System__IntfClear_qqrr45System__DelphiInterface_t17System_IInterface_
ret