Skip to content

Instantly share code, notes, and snippets.

@madordie
Created September 30, 2024 08:12
Show Gist options
  • Save madordie/5a43400ddfd3d8a5fcd7578d24927343 to your computer and use it in GitHub Desktop.
Save madordie/5a43400ddfd3d8a5fcd7578d24927343 to your computer and use it in GitHub Desktop.
iOS18
__int64 __fastcall _engineVar_rawRemove(__int64 a1, _QWORD *a2)
{
_QWORD *v2; // x20
__int64 v3; // x19
const char *v4; // x1
__int64 v5; // ST10_8
__int64 v6; // x22
__int64 v7; // x21
__int64 v8; // x21
unsigned __int64 v9; // x8
signed __int64 v10; // x22
void *v12; // x21
const char *v13; // x1
void *v14; // x22
__int64 v15; // x0
const char *v16; // x1
void *v17; // x21
const char *v18; // x1
void *v19; // x0
const char *v20; // x1
v2 = a2;
v3 = a1;
if ( (unsigned int)_NSConstraintBasedLayoutDebug() )
{
objc_retainAutoreleaseReturnValue(*v2);
v5 = *((unsigned int *)v2 + 4);
NSLog(&stru_46A50);
}
if ( v2[3] & 1 || (v6 = v2[1], v7 = NSBitSetCount(v6 + 8), NSBitSetCount(v6 + 24) + v7) )
{
v12 = objc_msgSend_currentHandler(off_50000, v4);
v14 = objc_msgSend_stringWithUTF8String_(off_50018, v13, "void _engineVar_rawRemove(NSISEngineVar)");
v15 = _engineVar_description(v3, v2);
objc_msgSend_handleFailureInFunction_file_lineNumber_description_(
v12,
v16,
v14,
&stru_46830,
181LL,
&stru_46A70,
v15,
v3);
}
if ( v2[3] & 1 )
{
v17 = objc_msgSend_currentHandler(off_50000, v4);
v19 = objc_msgSend_stringWithUTF8String_(off_50018, v18, "NSISCol _engineVar_col(NSISEngineVar)");
objc_msgSend_handleFailureInFunction_file_lineNumber_description_(
v17,
v20,
v19,
&stru_46830,
121LL,
&stru_46850,
*v2);
}
v8 = v2[1];
NSBitSetReset(v8 + 8);
NSBitSetReset(v8 + 24);
v9 = *(unsigned int *)(*(_QWORD *)v8 + 20LL);
v10 = v3 + 40 * ((v9 >> 30) & 1);
NSBitSetAddIndex(v10 + 336, v9 & 0xFFFFFFFFBFFFFFFFLL);
_table_removeStorageBlockIfPossible(*(_QWORD *)(v10 + 312), v10 + 320, 25LL, v10 + 336);
NSISVariableRemoveEngine(*v2, v3);
objc_release(*v2);
*v2 = 0LL;
v2[1] = 0LL;
NSBitSetAddIndex(v3 + 216, *((unsigned int *)v2 + 4));
return _table_removeStorageBlockIfPossible(*(_QWORD *)(v3 + 192), v3 + 200, 64LL, v3 + 216);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment