Function at 0x4277ec
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffac
push ebx
push esi
xor ebx, ebx
mov dword [ebp - 0x54], ebx
mov dword [ebp - 8], ecx
mov ebx, edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4279d9
push dword fs:[eax]
mov dword fs:[eax], esp
cmp ebx, 0xffffffff
jle 0x427995
mov eax, dword [ebp - 4]
call fcn.00429de8
cmp ebx, eax
jge 0x427995
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x120]
mov edx, ebx
call fcn.004126b4
mov edx, dword [0x4146f4]
call sub.rtl160.bpl__System__AsClass_qqrp14System_TObjectp17System_TMetaClass
mov esi, eax
mov eax, esi
call fcn.00417ce8
test al, al
je 0x42798b
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
mov eax, dword [esi + 0x50]
call sub.rtl160.bpl__System__LStrLen_qqrx27System__AnsiStringT_us_i0__
test eax, eax
jne 0x42797e
xor eax, eax
push ebp
push 0x427977
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.00428a10
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x138]
call sub.rtl160.bpl__System_Classes_TStream_GetPosition_qqrv
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
push dword [esi + 0x34]
push dword [esi + 0x30]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x138]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x18]
lea edx, [ebp - 0x46]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x138]
mov ecx, 0x2e
mov esi, dword [eax]
call dword [esi + 0xc]
movzx eax, word [ebp - 0x2a]
movzx edx, word [ebp - 0x28]
add eax, edx
xor edx, edx
push edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x138]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0x18]
movzx esi, word [ebp - 0x26]
mov eax, dword [ebp - 8]
xor ecx, ecx
mov edx, esi
call sub.rtl160.bpl__System__LStrSetLength_qqrr27System__AnsiStringT_us_i0__ius
mov eax, dword [ebp - 8]
call sub.rtl160.bpl__System__UniqueStringA_qqrr27System__AnsiStringT_us_i0__
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x138]
mov ecx, esi
mov esi, dword [eax]
call dword [esi + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x160]
movzx eax, byte [eax + 0x28]
mov byte [ebp - 9], al
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.00427df0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x160]
movzx edx, byte [ebp - 9]
mov byte [eax + 0x28], dl
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4279c3
push dword [ebp - 0x14]
push dword [ebp - 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x138]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x4c]
test al, al
jne 0x427976
mov eax, dword [ebp - 4]
call fcn.00428a98
ret
mov eax, dword [ebp - 8]
mov edx, dword [esi + 0x50]
call sub.rtl160.bpl__System__LStrAsg_qqrr27System__AnsiStringT_us_i0__x27System__AnsiStringT_us_i0__
jmp 0x4279c3
mov eax, dword [ebp - 8]
call sub.rtl160.bpl__System__LStrClr_qqrpv
jmp 0x4279c3
mov dword [ebp - 0x50], ebx
mov byte [ebp - 0x4c], 0
lea eax, [ebp - 0x50]
push eax
push 0
lea edx, [ebp - 0x54]
mov eax, 0xb3
call sub.rtl160.bpl__System_Sysutils_LoadStr_qqri
mov ecx, dword [ebp - 0x54]
mov dl, 1
mov eax, dword [sym.imp.rtl160.bpl__System_Classes_EListError_]
call sub.rtl160.bpl__System_Sysutils_Exception__bctr_qqrx20System_UnicodeStringpx14System_TVarRecxi
call sub.rtl160.bpl__System__RaiseExcept_qqrv
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4279e0
lea eax, [ebp - 0x54]
call sub.rtl160.bpl__System__UStrClr_qqrpv
ret