signed __int64 __fastcall CClfsBaseFilePersisted::AllocSymbol(CClfsBaseFilePersisted *this, unsigned int endofSymZoneLenDup, void **endofSymZonePtrFrom)
{
void **endofSymZonePtrRet; // rsi
__int64 endofSymZoneLen; // rbp
_CLFS_BASE_RECORD_HEADER *BaseLogRecord; // rax
CClfsBaseFilePersisted *that; // r8
_CLFS_BASE_RECORD_HEADER *v7; // rdi
_CLFS_LOG_BLOCK_HEADER *hdr; // rcx
__int64 cbSymbolZone; // r8
char *endofSymZonePtr; // rbx
signed __int64 result; // rax
endofSymZonePtrRet = endofSymZonePtrFrom;
endofSymZoneLen = endofSymZoneLenDup;
BaseLogRecord = CClfsBaseFile::GetBaseLogRecord(this);
v7 = BaseLogRecord;
if ( !BaseLogRecord )
return 3222929421i64;
hdr = that->field_rgBlocks_30[2].pbImage;
*endofSymZonePtrRet = 0i64;
cbSymbolZone = BaseLogRecord->cbSymbolZone;
if ( (char *)&BaseLogRecord[1] + cbSymbolZone + endofSymZoneLen > (char *)(&hdr->MajorVersion + hdr->SignaturesOffset) )
return 3221225507i64;
endofSymZonePtr = (char *)&BaseLogRecord[1] + cbSymbolZone;
memset(endofSymZonePtr, 0, (unsigned int)endofSymZoneLen);
v7->cbSymbolZone += endofSymZoneLen;
result = 0i64;
*endofSymZonePtrRet = endofSymZonePtr;
return result;
}