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