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