HalpLapSplitNode
INT64 __fastcall HalpLapSplitNode(INT64 a1, INT64 a2){
__int64 v4;
__int64 v5;
__int64 v6;
INT64 result;
unsigned __int64 v8;
unsigned __int64 v9;
v5 = HalpMmAllocCtxAlloc(a1, 80i64);
if( !v5 )
return 3221225626i64;
++*(_DWORD *)(a1 + 24);
v6 = HalpMmAllocCtxAlloc(v4, 80i64);
if( !v6 )
{
HalpMmAllocCtxFree(0i64, v5);
--*(_DWORD *)(a1 + 24);
return 3221225626i64;
}
++*(_DWORD *)(a1 + 24);
*(_QWORD *)(v5 + 24) = 0i64;
*(_QWORD *)(v5 + 32) = 0i64;
*(_QWORD *)(v5 + 16) = a2;
*(_QWORD *)(v5 + 48) = *(_QWORD *)(a2 + 48);
*(_BYTE *)(v5 + 56) = 0;
v8 = *(_QWORD *)(a2 + 64);
*(_QWORD *)(v5 + 72) = 0i64;
*(_QWORD *)(v5 + 40) = 0i64;
*(_QWORD *)(v5 + 8) = v5;
*(_QWORD *)v5 = v5;
*(_QWORD *)(v5 + 64) = v8 >> 1;
*(_QWORD *)(v6 + 24) = 0i64;
*(_QWORD *)(v6 + 32) = 0i64;
*(_QWORD *)(v6 + 16) = a2;
*(_QWORD *)(v6 + 48) = *(_QWORD *)(a2 + 48) + (*(_QWORD *)(a2 + 64) >> 1);
*(_BYTE *)(v6 + 56) = 0;
v9 = *(_QWORD *)(a2 + 64);
*(_QWORD *)(v6 + 72) = 0i64;
*(_QWORD *)(v6 + 40) = 0i64;
*(_QWORD *)(v6 + 8) = v6;
*(_QWORD *)v6 = v6;
*(_QWORD *)(v6 + 64) = v9 >> 1;
result = 0i64;
*(_BYTE *)(a2 + 56) = 1;
*(_QWORD *)(a2 + 24) = v5;
*(_QWORD *)(a2 + 32) = v6;
return result;
}Referenced by:
HalpLaAllocateBlt
HalpLaReserveRange