CmpSetNetworkValue

__int64 __fastcall CmpSetNetworkValue(__int64 a1){
  NTSTATUS v2; 
  UINT64 CreateOptions; 
  UINT64 CreateOptionsa; 
  UINT64 CreateOptionsb; 
  _OBJECT_ATTRIBUTES ObjectAttributes; 
  UINT64 Disposition; 
  VOID *KeyHandle; 

  *(_QWORD *)&ObjectAttributes.Length = 48i64;
  *(_QWORD *)&ObjectAttributes.Attributes = 576i64;
  ObjectAttributes.ObjectName = (_UNICODE_STRING *)L"ln";
  KeyHandle = 0i64;
  LODWORD(CreateOptions) = 0;
  LODWORD(Disposition) = 0;
  ObjectAttributes.RootDirectory = 0i64;
  *(_OWORD *)&ObjectAttributes.SecurityDescriptor = 0i64;
  v2 = ZwCreateKey(&KeyHandle, 0xF003Fui64, &ObjectAttributes, 0i64, 0i64, CreateOptions, &Disposition);
  if( v2 >= 0 )
  {
    LODWORD(CreateOptionsa) = *(_DWORD *)(a1 + 8);
    v2 = ZwSetValueKey(KeyHandle, (_UNICODE_STRING *)&CmpDhcpServerAckString, 0i64, 3ui64, *(VOID **)a1, CreateOptionsa);
    if( v2 >= 0 )
    {
      LODWORD(CreateOptionsb) = *(_DWORD *)(a1 + 24);
      v2 = ZwSetValueKey(
             KeyHandle,
             (_UNICODE_STRING *)&CmpBootServerReplyString,
             0i64,
             3ui64,
             *(VOID **)(a1 + 16),
             CreateOptionsb);
      if( v2 >= 0 )
        v2 = 0;
    }
  }
  ZwClose((_HANDLE)KeyHandle);
  return(unsigned int)v2;
}

Referenced by:

CmInitSystem1