CmpSortedValueEnumStackAdvanceInternal
__int64 __fastcall CmpSortedValueEnumStackAdvanceInternal(void *a1){
__int16 i;
__int64 EntryAtLayerHeight;
__int64 v5;
__int64 v6;
__int16 v7;
__int64 v8;
__int64 v9;
__int64 v10;
__int64 v11;
__int64 v12;
__int64 j;
if( *((_BYTE *)a1 + 10) )
{
if( !*(_QWORD *)a1 )
return 2147483674i64;
for( i = 0; i <= *((__int16 *)a1 + 4); ++i )
{
EntryAtLayerHeight = CmpSortedValueEnumStackGetEntryAtLayerHeight((__int64)a1, i);
v5 = EntryAtLayerHeight;
v6 = *(unsigned int *)(EntryAtLayerHeight + 28);
if( (unsigned int)v6 < *(_DWORD *)(EntryAtLayerHeight + 24) )
{
v12 = *(_QWORD *)(*(_QWORD *)(EntryAtLayerHeight + 8) + 8 * v6);
if( v12 == *(_QWORD *)a1 || !CmpSortedValueEnumStackValueCompareFunction(&v12, a1) )
*(_DWORD *)(v5 + 28) = v6 + 1;
}
}
}
v7 = *((_WORD *)a1 + 4);
v8 = 0i64;
for( j = 0i64; v7 >= 0; --v7 )
{
v9 = CmpSortedValueEnumStackGetEntryAtLayerHeight((__int64)a1, v7);
v10 = *(unsigned int *)(v9 + 28);
if( (unsigned int)v10 < *(_DWORD *)(v9 + 24) )
{
v11 = *(_QWORD *)(*(_QWORD *)(v9 + 8) + 8 * v10);
v12 = v11;
if( !v8 || CmpSortedValueEnumStackValueCompareFunction(&j, &v12) > 0 )
{
v8 = v11;
j = v11;
}
}
}
*(_QWORD *)a1 = v8;
*((_BYTE *)a1 + 10) = 1;
return v8 == 0 ? 0x8000001A : 0;
}Referenced by:
CmpSortedValueEnumStackAdvance