帖子
- xcbjky2026-09-2829650
/* ~~~ C 有差异: _IOSurfaceAcceleratorParavirtProcessGuestData [_IOSurfaceAcceleratorParavirtProcessGuestData] ~~~ */ --- 27.0 +++ 27.2 @@ -1,25 +1,29 @@ -void _IOSurfaceAcceleratorParavirtProcessGuestData(long param_1,int *param_2) +void _IOSurfaceAcceleratorParavirtProcessGuestData(long param_1,int *param_2,ulong param_3) { int iVar1; int iVar2; undefined8 uVar3; int *piVar4; undefined8 uVar5; long lVar6; - int *piVar7; + ulong *puVar7; - iVar2 = -0x1ffffd3e; + if (param_3 < 8) { + return; + } if (param_2 == (int *)0x0) { return; } iVar1 = *(int *)(param_1 + 0x24); if (iVar1 == 0) { return; } if (*param_2 == 2) { + iVar2 = -0x1ffffd3e; + if (param_3 < 0x610) goto _IOSurfaceAcceleratorParavirtProcessGuestData; piVar4 = param_2 + 2; if (*(long *)(param_2 + 4) != 0) { *(long *)(param_2 + 4) = 0; param_2[6] = 0; @@ -40,18 +44,23 @@ iVar1 = *(int *)(param_1 + 0x24); uVar3 = 1; uVar5 = 0x1b0; lVar6 = 0; - piVar7 = (int *)0x0; + puVar7 = (ulong *)0x0; } else { - if ((*param_2 != 1) || (lVar6 = *(long *)(param_2 + 4), lVar6 == 0)) goto _IOSurfaceAcceleratorParavirtProcessGuestData; - piVar7 = param_2 + 6; + iVar2 = -0x1ffffd3e; + if (((*param_2 != 1) || (param_3 < 0x20)) || + (lVar6 = *(long *)(param_2 + 4), iVar2 = -0x1ffffd3e, lVar6 == 0)) goto _IOSurfaceAcceleratorParavirtProcessGuestData; + puVar7 = (ulong *)(param_2 + 6); + if (0x298 < *puVar7) { + *puVar7 = 0x298; + } uVar3 = 0xb; piVar4 = (int *)0x0; uVar5 = 0; } - iVar2 = raw_2880fa660(iVar1,uVar3,piVar4,uVar5,lVar6,piVar7); + iVar2 = raw_290103440(iVar1,uVar3,piVar4,uVar5,lVar6,puVar7); _IOSurfaceAcceleratorParavirtProcessGuestData: param_2[1] = iVar2; return; }主楼 - 暂无回复