LogFwpRegisterWorker

PWCHAR __stdcall LogFwpRegisterWorker(UINT64 MessageId){
  WCHAR v1; 
  PWCHAR result; 
  WCHAR v3; 
  NTSTATUS v4; 
  void *v5; 
  int v6; 
  WCHAR v7; 
  WCHAR v8; 
  WCHAR v9; 
  WCHAR v10; 
  WCHAR v11; 
  WCHAR v12; 
  WCHAR v13; 
  WCHAR v14; 
  WCHAR v15; 
  WCHAR v16; 
  WCHAR v17; 
  int *v18; 
  WCHAR v19; 
  WCHAR v20; 
  WCHAR v21; 
  WCHAR v22; 
  WCHAR v23; 
  WCHAR v24; 
  WCHAR v25; 
  WCHAR v26; 
  WCHAR v27; 
  WCHAR v28; 
  WCHAR v29; 
  WCHAR v30; 
  UINT64 CreateOptions; 
  UINT64 CreateOptionsa; 
  UINT64 CreateOptionsc; 
  UINT64 CreateOptionsd; 
  UINT64 CreateOptionse; 
  UINT64 CreateOptionsf; 
  UINT64 CreateOptionsg; 
  UINT64 CreateOptionsh; 
  UINT64 CreateOptionsi; 
  UINT64 CreateOptionsj; 
  UINT64 CreateOptionsk; 
  UINT64 CreateOptionsb; 
  UINT64 CreateOptionsl; 
  UINT64 CreateOptionsm; 
  UINT64 CreateOptionsn; 
  UINT64 CreateOptionso; 
  UINT64 CreateOptionsp; 
  UINT64 CreateOptionsq; 
  UINT64 CreateOptionsr; 
  UINT64 CreateOptionss; 
  UINT64 CreateOptionst; 
  UINT64 CreateOptionsu; 
  UINT64 CreateOptionsv; 
  UINT64 CreateOptionsw; 
  void *KeyHandle; 
  struct _UNICODE_STRING DestinationString; 
  struct _OBJECT_ATTRIBUTES ObjectAttributes; 
  int Data; 
  UINT64 Disposition; 
  HANDLE Handle; 
  LODWORD(Disposition) = 0;
  *(&ObjectAttributes.Length + 1) = 0;
  *(&ObjectAttributes.Attributes + 1) = 0;
  KeyHandle = 0i64;
  Handle = 0i64;
  DestinationString = 0i64;
  RtlInitUnicodeString(&DestinationString, L"\\REGISTRY\\MACHINE\\SYSTEM\\CurrentControlSet\\Control", v1);
  ObjectAttributes.RootDirectory = 0i64;
  ObjectAttributes.ObjectName = &DestinationString;
  ObjectAttributes.Length = 48;
  ObjectAttributes.Attributes = 576;
  *(_OWORD *)&ObjectAttributes.SecurityDescriptor = 0i64;
  LODWORD(result) = ZwOpenKey(&KeyHandle, 0x20019u, &ObjectAttributes);
  if( (int)result >= 0 )
  {
    RtlInitUnicodeString(&DestinationString, L"BGFX", v3);
    ObjectAttributes.RootDirectory = KeyHandle;
    ObjectAttributes.Attributes = 576;
    ObjectAttributes.ObjectName = &DestinationString;
    ObjectAttributes.Length = 48;
    LODWORD(CreateOptions) = 1;
    *(_OWORD *)&ObjectAttributes.SecurityDescriptor = 0i64;
    v4 = ZwCreateKey(&Handle, 0x20019ui64, &ObjectAttributes, 0i64, 0i64, CreateOptions, &Disposition);
    v5 = KeyHandle;
    if( v4 >= 0 )
    {
      v6 = dword_140CDAEFC;
      ZwClose(KeyHandle);
      RtlInitUnicodeString(&DestinationString, L"Resume", v7);
      Data = (v6 & 0x100000) != 0;
      LODWORD(CreateOptionsa) = 4;
      ZwSetValueKey(Handle, &DestinationString, 0i64, 4ui64, &Data, CreateOptionsa);
      RtlInitUnicodeString(&DestinationString, L"Width", v8);
      Data = qword_140CDAF10;
      LODWORD(CreateOptionsc) = 4;
      ZwSetValueKey(Handle, &DestinationString, 0i64, 4ui64, &Data, CreateOptionsc);
      RtlInitUnicodeString(&DestinationString, L"Height", v9);
      Data = HIDWORD(qword_140CDAF10);
      LODWORD(CreateOptionsd) = 4;
      ZwSetValueKey(Handle, &DestinationString, 0i64, 4ui64, &Data, CreateOptionsd);
      RtlInitUnicodeString(&DestinationString, L"BPP", v10);
      Data = dword_140CDAEB8;
      LODWORD(CreateOptionse) = 4;
      ZwSetValueKey(Handle, &DestinationString, 0i64, 4ui64, &Data, CreateOptionse);
      RtlInitUnicodeString(&DestinationString, L"LogoSize", v11);
      Data = *(_DWORD *)Size;
      LODWORD(CreateOptionsf) = 4;
      ZwSetValueKey(Handle, &DestinationString, 0i64, 4ui64, &Data, CreateOptionsf);
      RtlInitUnicodeString(&DestinationString, L"ProgressFrames", v12);
      Data = dword_140CDAEF8;
      LODWORD(CreateOptionsg) = 4;
      ZwSetValueKey(Handle, &DestinationString, 0i64, 4ui64, &Data, CreateOptionsg);
      RtlInitUnicodeString(&DestinationString, L"ProgressMemory", v13);
      Data = dword_140C13330;
      LODWORD(CreateOptionsh) = 4;
      ZwSetValueKey(Handle, &DestinationString, 0i64, 4ui64, &Data, CreateOptionsh);
      RtlInitUnicodeString(&DestinationString, L"ProgressProlog", v14);
      LODWORD(CreateOptionsi) = 4;
      Data = 1000000 * qword_140CDAF08 / stru_140C10FF0.QuadPart;
      ZwSetValueKey(Handle, &DestinationString, 0i64, 4ui64, &Data, CreateOptionsi);
      RtlInitUnicodeString(&DestinationString, L"ProgressLow", v15);
      LODWORD(CreateOptionsj) = 4;
      Data = 1000000 * qword_140C10FE8 / stru_140C10FF0.QuadPart;
      ZwSetValueKey(Handle, &DestinationString, 0i64, 4ui64, &Data, CreateOptionsj);
      RtlInitUnicodeString(&DestinationString, L"ProgressHigh", v16);
      LODWORD(CreateOptionsk) = 4;
      Data = 1000000 * qword_140CDAEC0 / stru_140C10FF0.QuadPart;
      ZwSetValueKey(Handle, &DestinationString, 0i64, 4ui64, &Data, CreateOptionsk);
      v18 = (int *)qword_140C13340;
      if( qword_140C13340 )
      {
        RtlInitUnicodeString(&DestinationString, L"ResidentSize", v17);
        Data = *v18;
        LODWORD(CreateOptionsb) = 4;
        ZwSetValueKey(Handle, &DestinationString, 0i64, 4ui64, &Data, CreateOptionsb);
      }
      RtlInitUnicodeString(&DestinationString, L"ProgressTotal", v17);
      LODWORD(CreateOptionsb) = 4;
      Data = 1000000 * qword_140CDAEE0 / stru_140C10FF0.QuadPart;
      ZwSetValueKey(Handle, &DestinationString, 0i64, 4ui64, &Data, CreateOptionsb);
      RtlInitUnicodeString(&DestinationString, L"ProgressManual", v19);
      LODWORD(CreateOptionsl) = 4;
      Data = 1000000 * qword_140CDAF00 / stru_140C10FF0.QuadPart;
      ZwSetValueKey(Handle, &DestinationString, 0i64, 4ui64, &Data, CreateOptionsl);
      RtlInitUnicodeString(&DestinationString, L"FadeProlog", v20);
      LODWORD(CreateOptionsm) = 4;
      Data = 1000000 * qword_140CDAF20 / stru_140C10FF0.QuadPart;
      ZwSetValueKey(Handle, &DestinationString, 0i64, 4ui64, &Data, CreateOptionsm);
      RtlInitUnicodeString(&DestinationString, L"FadeOverlap", v21);
      Data = dword_140CDAF38;
      LODWORD(CreateOptionsn) = 4;
      ZwSetValueKey(Handle, &DestinationString, 0i64, 4ui64, &Data, CreateOptionsn);
      RtlInitUnicodeString(&DestinationString, L"FadeIo", v22);
      Data = dword_140CDAF28;
      LODWORD(CreateOptionso) = 4;
      ZwSetValueKey(Handle, &DestinationString, 0i64, 4ui64, &Data, CreateOptionso);
      RtlInitUnicodeString(&DestinationString, L"FadeCpu", v23);
      Data = dword_140CDAEB4;
      LODWORD(CreateOptionsp) = 4;
      ZwSetValueKey(Handle, &DestinationString, 0i64, 4ui64, &Data, CreateOptionsp);
      RtlInitUnicodeString(&DestinationString, L"FadeFrames", v24);
      Data = dword_140CDAEB0;
      LODWORD(CreateOptionsq) = 4;
      ZwSetValueKey(Handle, &DestinationString, 0i64, 4ui64, &Data, CreateOptionsq);
      RtlInitUnicodeString(&DestinationString, L"FadeMemory", v25);
      Data = dword_140C1332C;
      LODWORD(CreateOptionsr) = 4;
      ZwSetValueKey(Handle, &DestinationString, 0i64, 4ui64, &Data, CreateOptionsr);
      RtlInitUnicodeString(&DestinationString, L"FadeLow", v26);
      LODWORD(CreateOptionss) = 4;
      Data = 1000000 * qword_140C10FF8 / stru_140C10FF0.QuadPart;
      ZwSetValueKey(Handle, &DestinationString, 0i64, 4ui64, &Data, CreateOptionss);
      RtlInitUnicodeString(&DestinationString, L"FadeHigh", v27);
      LODWORD(CreateOptionst) = 4;
      Data = 1000000 * qword_140CDAED0 / stru_140C10FF0.QuadPart;
      ZwSetValueKey(Handle, &DestinationString, 0i64, 4ui64, &Data, CreateOptionst);
      RtlInitUnicodeString(&DestinationString, L"FadeTotal", v28);
      LODWORD(CreateOptionsu) = 4;
      Data = 1000000 * qword_140CDAED8 / stru_140C10FF0.QuadPart;
      ZwSetValueKey(Handle, &DestinationString, 0i64, 4ui64, &Data, CreateOptionsu);
      RtlInitUnicodeString(&DestinationString, L"AnimationTotal", v29);
      Data = 1000000 * qword_140CDAEF0 / stru_140C10FF0.QuadPart;
      LODWORD(CreateOptionsv) = 4;
      ZwSetValueKey(Handle, &DestinationString, 0i64, 4ui64, &Data, CreateOptionsv);
      RtlInitUnicodeString(&DestinationString, L"CompressBitmaps", v30);
      LODWORD(CreateOptionsw) = 4;
      Data = 1000000 * qword_140CF4D30 / stru_140C10FF0.QuadPart;
      ZwSetValueKey(Handle, &DestinationString, 0i64, 4ui64, &Data, CreateOptionsw);
      v5 = Handle;
    }
    LODWORD(result) = ZwClose(v5);
  }
  return result;
}

Referenced by:

No references.