CmpDoReDoRecord
__int64 __fastcall CmpDoReDoRecord(__int64 a1, __int64 a2){
unsigned int v2;
int v4;
VOID *Handle;
v2 = 0;
if( (*(_DWORD *)(a2 + 8) & 0x1C) == 0 )
{
switch( *(_DWORD *)(a2 + 12) )
{
case 1:
return(unsigned int)CmpDoReDoCreateKey(a1, a2);
case 2:
Handle = 0i64;
v4 = CmpDoReOpenTransKey((_CM_TRANS *)a1, (_UNICODE_STRING *)(a2 + 32), 0x10000ui64, &Handle);
if( v4 >= 0 )
{
v4 = ZwDeleteKey(Handle);
ZwClose((_HANDLE)Handle);
}
return(unsigned int)v4;
case 3:
case 4:
return(unsigned int)CmpDoReDoSetValueExisting(a1, a2);
case 5:
return(unsigned int)CmpDoReDoDeleteValue(a1, a2);
case 6:
return(unsigned int)CmpDoReDoSetKeyUserFlags(a1, a2);
case 7:
return(unsigned int)CmpDoReDoSetLastWriteTime(a1, a2);
case 8:
return(unsigned int)CmpDoReDoSetSecurityDescriptor(a1, a2);
case 9:
return(unsigned int)CmpDoReDoRenameKey(a1);
default:
return v2;
}
}
return 0i64;
}Referenced by:
CmpRmReDoPhase