Advertisement
FrayxRulez

Untitled

Nov 4th, 2016
232
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 29.87 KB | None | 0 0
  1. HRESULT __stdcall CInteractiveObjectDevice::ProcessMessage(CInteractiveObjectDevice *this, HWND__ *__formal, unsigned int message, unsigned int wParam, int lParam)
  2. {
  3.   HRESULT v5; // esi@11
  4.   unsigned int v7; // ebx@13
  5.   IUnknownVtbl *v8; // esi@16
  6.   unsigned int v9; // edx@17
  7.   unsigned int v10; // edx@19
  8.   Microsoft::WRL::ComPtr<Windows::ApplicationModel::Core::ICoreApplicationViewInternal> *v11; // ecx@22
  9.   Microsoft::WRL::ComPtr<Windows::ApplicationModel::Core::ICoreApplicationViewInternal> *v12; // ecx@23
  10.   IUnknownVtbl *v13; // esi@24
  11.   unsigned int v14; // edx@27
  12.   IUnknownVtbl *v15; // esi@32
  13.   unsigned int v16; // edx@35
  14.   unsigned int (__stdcall *v17)(IUnknown *); // esi@40
  15.   IUnknownVtbl *v18; // esi@42
  16.   unsigned int v19; // edx@45
  17.   CInteractiveObjectDialCapabilities *v20; // ST0C_4@50
  18.   unsigned int (__stdcall *v21)(IUnknown *); // esi@50
  19.   long double v22; // st7@50
  20.   char *v23; // esi@50
  21.   long double v24; // st7@50
  22.   long double v25; // st7@52
  23.   IUnknownVtbl *v26; // esi@54
  24.   HRESULT v27; // eax@56
  25.   CInteractiveObjectDialCapabilities *v28; // esi@58
  26.   IUnknownVtbl *v29; // eax@58
  27.   CInteractiveObjectDialCapabilities *v30; // ST0C_4@58
  28.   HRESULT (__stdcall *v31)(IUnknown *, _GUID *, void **); // esi@58
  29.   IUnknownVtbl *v32; // esi@59
  30.   HRESULT v33; // eax@61
  31.   Microsoft::WRL::ComPtr<Windows::ApplicationModel::Core::ICoreApplicationViewInternal> *v34; // ecx@62
  32.   CInteractiveObjectButtonCapabilities *v35; // esi@64
  33.   IUnknownVtbl *v36; // eax@64
  34.   CInteractiveObjectButtonCapabilities *v37; // ST0C_4@64
  35.   unsigned int (__stdcall *v38)(IUnknown *); // esi@64
  36.   Microsoft::WRL::ComPtr<Windows::ApplicationModel::Core::ICoreApplicationViewInternal> *v39; // ecx@64
  37.   IUnknownVtbl *v40; // esi@66
  38.   HRESULT v41; // eax@68
  39.   CInteractiveObjectButtonCapabilities *v42; // esi@70
  40.   IUnknownVtbl *v43; // eax@70
  41.   CInteractiveObjectButtonCapabilities *v44; // ST0C_4@70
  42.   unsigned int (__stdcall *v45)(IUnknown *); // esi@70
  43.   IUnknownVtbl *v46; // esi@71
  44.   unsigned int v47; // edx@74
  45.   CInteractiveObjectPointerCapabilities *v48; // esi@75
  46.   IUnknownVtbl *v49; // eax@75
  47.   CInteractiveObjectPointerCapabilities *v50; // ST0C_4@75
  48.   HRESULT (__stdcall *v51)(IUnknown *, _GUID *, void **); // esi@75
  49.   IUnknownVtbl *v52; // esi@79
  50.   unsigned int v53; // edx@82
  51.   CInteractiveObjectPointerCapabilities *v54; // esi@83
  52.   IUnknownVtbl *v55; // eax@83
  53.   CInteractiveObjectPointerCapabilities *v56; // ST0C_4@83
  54.   unsigned int (__stdcall *v57)(IUnknown *); // esi@83
  55.   IUnknownVtbl *v58; // esi@87
  56.   unsigned int v59; // edx@91
  57.   CInteractiveObjectPointerCapabilities *v60; // esi@92
  58.   IUnknownVtbl *v61; // eax@92
  59.   CInteractiveObjectPointerCapabilities *v62; // ST0C_4@92
  60.   unsigned int (__stdcall *v63)(IUnknown *); // esi@92
  61.   Microsoft::WRL::EventSource<Windows::Foundation::ITypedEventHandler<Windows::UI::Internal::Input::InteractiveObjectButtonCapabilities *,Windows::UI::Internal::Input::InteractiveObjectButtonEventArgs *>,Microsoft::WRL::InvokeModeOptions<-2> >::InvokeAll::__l2::<lambda_fb85e8b955da07d52ba70117e841ebd6> v64; // [sp+8h] [bp-98h]@20
  62.   Microsoft::WRL::EventSource<Windows::Foundation::ITypedEventHandler<Windows::UI::Internal::Input::InteractiveObjectButtonCapabilities *,Windows::UI::Internal::Input::InteractiveObjectButtonEventArgs *>,Microsoft::WRL::InvokeModeOptions<-2> >::InvokeAll::__l2::<lambda_fb85e8b955da07d52ba70117e841ebd6> v65; // [sp+8h] [bp-98h]@28
  63.   Microsoft::WRL::EventSource<Windows::Foundation::ITypedEventHandler<Windows::UI::Internal::Input::InteractiveObjectButtonCapabilities *,Windows::UI::Internal::Input::InteractiveObjectButtonEventArgs *>,Microsoft::WRL::InvokeModeOptions<-2> >::InvokeAll::__l2::<lambda_fb85e8b955da07d52ba70117e841ebd6> v66; // [sp+8h] [bp-98h]@36
  64.   Microsoft::WRL::EventSource<Windows::Foundation::ITypedEventHandler<Windows::UI::Internal::Input::InteractiveObjectButtonCapabilities *,Windows::UI::Internal::Input::InteractiveObjectButtonEventArgs *>,Microsoft::WRL::InvokeModeOptions<-2> >::InvokeAll::__l2::<lambda_fb85e8b955da07d52ba70117e841ebd6> v67; // [sp+8h] [bp-98h]@46
  65.   Microsoft::WRL::ComPtr<CInteractiveObjectInfo> spObjectInfo; // [sp+1Ch] [bp-84h]@1
  66.   unsigned int deviceId; // [sp+20h] [bp-80h]@13
  67.   bool arg3; // [sp+26h] [bp-7Ah]@61
  68.   bool v71; // [sp+27h] [bp-79h]@68
  69.   Microsoft::WRL::ComPtr<CInteractiveObjectDeltaEventArgs> spDeltaArgs; // [sp+28h] [bp-78h]@56
  70.   Microsoft::WRL::ComPtr<CInteractiveObjectEventArgs> spEventArgs; // [sp+2Ch] [bp-74h]@18
  71.   Microsoft::WRL::Details::ComPtrRef<Microsoft::WRL::ComPtr<CInteractiveObjectEventArgs> > ppvObject; // [sp+30h] [bp-70h]@26
  72.   Microsoft::WRL::Details::ComPtrRef<Microsoft::WRL::ComPtr<CInteractiveObjectEventArgs> > v75; // [sp+34h] [bp-6Ch]@34
  73.   Microsoft::WRL::Details::ComPtrRef<Microsoft::WRL::ComPtr<CInteractiveObjectEventArgs> > v76; // [sp+38h] [bp-68h]@44
  74.   Microsoft::WRL::ComPtr<CInteractiveObjectButtonEventArgs> spButtonArgs; // [sp+3Ch] [bp-64h]@61
  75.   Microsoft::WRL::Details::ComPtrRef<Microsoft::WRL::ComPtr<CInteractiveObjectButtonEventArgs> > v78; // [sp+40h] [bp-60h]@68
  76.   Microsoft::WRL::Details::ComPtrRef<Microsoft::WRL::ComPtr<CInteractiveObjectEventArgs> > v79; // [sp+44h] [bp-5Ch]@73
  77.   Microsoft::WRL::ComPtr<Windows::ApplicationModel::Core::ICoreApplicationViewInternal> v80[2]; // [sp+48h] [bp-58h]@81
  78.   unsigned int arg2[2]; // [sp+50h] [bp-50h]@50
  79.   double dialId; // [sp+58h] [bp-48h]@54
  80.   long double rotationResolution; // [sp+60h] [bp-40h]@50
  81.   long double delta; // [sp+68h] [bp-38h]@51
  82.   long double roundedDelta; // [sp+70h] [bp-30h]@52
  83.   double v86; // [sp+78h] [bp-28h]@50
  84.   tagINTERACTIVECTRL_INFO info; // [sp+80h] [bp-20h]@13
  85.   void *retaddr; // [sp+A4h] [bp+4h]@14
  86.  
  87.   spObjectInfo.ptr_ = 0;
  88.   AcquireSRWLockExclusive(&this->_lock.m_lock);
  89.   if ( message == 747 )
  90.   {
  91.     this->_isInFocus = 1;
  92.   }
  93.   else if ( message == 748 )
  94.   {
  95.     this->_isInFocus = 0;
  96.   }
  97.   if ( this != (CInteractiveObjectDevice *)-108 )
  98.     ReleaseSRWLockExclusive(&this->_lock.m_lock);
  99.   if ( !CInteractiveObjectDevice::IsInFocus(this) && message != 748 )
  100.   {
  101.     if ( message - 744 <= 0x11 )
  102.       InteractiveObjectTelemetry::NotInFocus<unsigned int &>(&message);
  103. LABEL_11:
  104.     v5 = -2147467259;
  105.     goto LABEL_12;
  106.   }
  107.   v7 = wParam;
  108.   deviceId = (unsigned __int16)wParam;
  109.   if ( !GetInteractiveControlInfo(wParam, &info) )
  110.   {
  111.     v5 = wil::details::in1diag3::Return_GetLastError(
  112.            retaddr,
  113.            0x33Fu,
  114.            "windows\\advcore\\winrt\\interactiveobject\\lib\\interactiveobject.cpp");
  115.     goto LABEL_12;
  116.   }
  117.   switch ( message )
  118.   {
  119.     default:
  120.       goto LABEL_11;
  121.     case 0x2E8u:
  122.       v8 = this->lpVtbl;
  123.       v64.arg1 = (CInteractiveObjectButtonEventArgs *)&spObjectInfo;
  124.       __guard_check_icall_fptr(v8[8].QueryInterface);
  125.       v5 = ((int (__stdcall *)(CInteractiveObjectDevice *, unsigned int, tagINTERACTIVECTRL_INFO *, signed int, Microsoft::WRL::ComPtr<CInteractiveObjectInfo> *))v8[8].QueryInterface)(
  126.              this,
  127.              v7,
  128.              &info,
  129.              5,
  130.              &spObjectInfo);
  131.       if ( v5 < 0 )
  132.       {
  133.         v9 = 842;
  134.         goto LABEL_89;
  135.       }
  136.       spEventArgs.ptr_ = 0;
  137.       v5 = Microsoft::WRL::Details::MakeAndInitialize<CInteractiveObjectEventArgs,CInteractiveObjectEventArgs,unsigned long &,Microsoft::WRL::ComPtr<CInteractiveObjectInfo> &>(
  138.              (Microsoft::WRL::Details::ComPtrRef<Microsoft::WRL::ComPtr<CInteractiveObjectEventArgs> >)&spEventArgs,
  139.              &deviceId,
  140.              &spObjectInfo);
  141.       if ( v5 < 0 )
  142.       {
  143.         v10 = 847;
  144. LABEL_22:
  145.         wil::details::in1diag3::Return_Hr(
  146.           retaddr,
  147.           v10,
  148.           "windows\\advcore\\winrt\\interactiveobject\\lib\\interactiveobject.cpp",
  149.           v5);
  150.         v11 = (Microsoft::WRL::ComPtr<Windows::ApplicationModel::Core::ICoreApplicationViewInternal> *)&spEventArgs;
  151.         goto LABEL_95;
  152.       }
  153.       v64.arg1 = (CInteractiveObjectButtonEventArgs *)spEventArgs.ptr_;
  154.       v5 = Microsoft::WRL::EventSource<Windows::Foundation::ITypedEventHandler<Windows::UI::Core::CoreWindow *,Windows::UI::Core::CharacterReceivedEventArgs *>,Microsoft::WRL::InvokeModeOptions<-2>>::DoInvoke<_lambda_9ae384b677f0ac42c295d7cb469627ca_>(
  155.              (Microsoft::WRL::EventSource<Windows::Foundation::ITypedEventHandler<Windows::UI::Internal::Input::InteractiveObjectButtonCapabilities *,Windows::UI::Internal::Input::InteractiveObjectButtonEventArgs *>,Microsoft::WRL::InvokeModeOptions<-2> > *)&this->_evtObjectEngaged,
  156.              v64);
  157.       if ( v5 < 0 )
  158.       {
  159.         v10 = 849;
  160.         goto LABEL_22;
  161.       }
  162.       v12 = (Microsoft::WRL::ComPtr<Windows::ApplicationModel::Core::ICoreApplicationViewInternal> *)&spEventArgs;
  163.       goto LABEL_97;
  164.     case 0x2E9u:
  165.       v13 = this->lpVtbl;
  166.       v64.arg1 = (CInteractiveObjectButtonEventArgs *)&spObjectInfo;
  167.       __guard_check_icall_fptr(v13[8].QueryInterface);
  168.       v5 = ((int (__stdcall *)(CInteractiveObjectDevice *, unsigned int, tagINTERACTIVECTRL_INFO *, signed int, Microsoft::WRL::ComPtr<CInteractiveObjectInfo> *))v13[8].QueryInterface)(
  169.              this,
  170.              v7,
  171.              &info,
  172.              6,
  173.              &spObjectInfo);
  174.       if ( v5 < 0 )
  175.       {
  176.         v9 = 859;
  177.         goto LABEL_89;
  178.       }
  179.       ppvObject.ptr_ = 0;
  180.       v5 = Microsoft::WRL::Details::MakeAndInitialize<CInteractiveObjectEventArgs,CInteractiveObjectEventArgs,unsigned long &,Microsoft::WRL::ComPtr<CInteractiveObjectInfo> &>(
  181.              (Microsoft::WRL::Details::ComPtrRef<Microsoft::WRL::ComPtr<CInteractiveObjectEventArgs> >)&ppvObject,
  182.              &deviceId,
  183.              &spObjectInfo);
  184.       if ( v5 < 0 )
  185.       {
  186.         v14 = 864;
  187. LABEL_30:
  188.         wil::details::in1diag3::Return_Hr(
  189.           retaddr,
  190.           v14,
  191.           "windows\\advcore\\winrt\\interactiveobject\\lib\\interactiveobject.cpp",
  192.           v5);
  193.         v11 = (Microsoft::WRL::ComPtr<Windows::ApplicationModel::Core::ICoreApplicationViewInternal> *)&ppvObject;
  194.         goto LABEL_95;
  195.       }
  196.       v64.arg1 = (CInteractiveObjectButtonEventArgs *)ppvObject.ptr_;
  197.       v5 = Microsoft::WRL::EventSource<Windows::Foundation::ITypedEventHandler<Windows::UI::Core::CoreWindow *,Windows::UI::Core::CharacterReceivedEventArgs *>,Microsoft::WRL::InvokeModeOptions<-2>>::DoInvoke<_lambda_9ae384b677f0ac42c295d7cb469627ca_>(
  198.              (Microsoft::WRL::EventSource<Windows::Foundation::ITypedEventHandler<Windows::UI::Internal::Input::InteractiveObjectButtonCapabilities *,Windows::UI::Internal::Input::InteractiveObjectButtonEventArgs *>,Microsoft::WRL::InvokeModeOptions<-2> > *)&this->_evtObjectDisengaged,
  199.              v65);
  200.       if ( v5 < 0 )
  201.       {
  202.         v14 = 866;
  203.         goto LABEL_30;
  204.       }
  205.       v12 = (Microsoft::WRL::ComPtr<Windows::ApplicationModel::Core::ICoreApplicationViewInternal> *)&ppvObject;
  206.       goto LABEL_97;
  207.     case 0x2ECu:
  208.       v15 = this->lpVtbl;
  209.       v64.arg1 = (CInteractiveObjectButtonEventArgs *)&spObjectInfo;
  210.       __guard_check_icall_fptr(v15[8].QueryInterface);
  211.       v5 = ((int (__stdcall *)(CInteractiveObjectDevice *, unsigned int, tagINTERACTIVECTRL_INFO *, signed int, Microsoft::WRL::ComPtr<CInteractiveObjectInfo> *))v15[8].QueryInterface)(
  212.              this,
  213.              v7,
  214.              &info,
  215.              8,
  216.              &spObjectInfo);
  217.       if ( v5 < 0 )
  218.       {
  219.         v9 = 877;
  220.         goto LABEL_89;
  221.       }
  222.       v75.ptr_ = 0;
  223.       v5 = Microsoft::WRL::Details::MakeAndInitialize<CInteractiveObjectEventArgs,CInteractiveObjectEventArgs,unsigned long &,Microsoft::WRL::ComPtr<CInteractiveObjectInfo> &>(
  224.              (Microsoft::WRL::Details::ComPtrRef<Microsoft::WRL::ComPtr<CInteractiveObjectEventArgs> >)&v75,
  225.              &deviceId,
  226.              &spObjectInfo);
  227.       if ( v5 < 0 )
  228.       {
  229.         v16 = 882;
  230. LABEL_38:
  231.         wil::details::in1diag3::Return_Hr(
  232.           retaddr,
  233.           v16,
  234.           "windows\\advcore\\winrt\\interactiveobject\\lib\\interactiveobject.cpp",
  235.           v5);
  236.         v11 = (Microsoft::WRL::ComPtr<Windows::ApplicationModel::Core::ICoreApplicationViewInternal> *)&v75;
  237.         goto LABEL_95;
  238.       }
  239.       v64.arg1 = (CInteractiveObjectButtonEventArgs *)v75.ptr_;
  240.       v5 = Microsoft::WRL::EventSource<Windows::Foundation::ITypedEventHandler<Windows::UI::Core::CoreWindow *,Windows::UI::Core::CharacterReceivedEventArgs *>,Microsoft::WRL::InvokeModeOptions<-2>>::DoInvoke<_lambda_9ae384b677f0ac42c295d7cb469627ca_>(
  241.              (Microsoft::WRL::EventSource<Windows::Foundation::ITypedEventHandler<Windows::UI::Internal::Input::InteractiveObjectButtonCapabilities *,Windows::UI::Internal::Input::InteractiveObjectButtonEventArgs *>,Microsoft::WRL::InvokeModeOptions<-2> > *)&this->_evtObjectCaptureLost,
  242.              v66);
  243.       if ( v5 < 0 )
  244.       {
  245.         v16 = 884;
  246.         goto LABEL_38;
  247.       }
  248.       v12 = (Microsoft::WRL::ComPtr<Windows::ApplicationModel::Core::ICoreApplicationViewInternal> *)&v75;
  249.       goto LABEL_97;
  250.     case 0x2EBu:
  251.       v64.arg1 = (CInteractiveObjectButtonEventArgs *)this->_spDialCapabilities.ptr_;
  252.       v17 = v64.arg1->lpVtbl[5].AddRef;
  253.       __guard_check_icall_fptr(v64.arg1->lpVtbl[5].AddRef);
  254.       v5 = v17((IUnknown *)&v64.arg1->lpVtbl);
  255.       if ( v5 < 0 )
  256.       {
  257.         v9 = 892;
  258.         goto LABEL_89;
  259.       }
  260.       v18 = this->lpVtbl;
  261.       v64.arg1 = (CInteractiveObjectButtonEventArgs *)&spObjectInfo;
  262.       __guard_check_icall_fptr(v18[8].QueryInterface);
  263.       v5 = ((int (__stdcall *)(CInteractiveObjectDevice *, unsigned int, tagINTERACTIVECTRL_INFO *, signed int, Microsoft::WRL::ComPtr<CInteractiveObjectInfo> *))v18[8].QueryInterface)(
  264.              this,
  265.              v7,
  266.              &info,
  267.              7,
  268.              &spObjectInfo);
  269.       if ( v5 < 0 )
  270.       {
  271.         v9 = 897;
  272.         goto LABEL_89;
  273.       }
  274.       v76.ptr_ = 0;
  275.       v5 = Microsoft::WRL::Details::MakeAndInitialize<CInteractiveObjectEventArgs,CInteractiveObjectEventArgs,unsigned long &,Microsoft::WRL::ComPtr<CInteractiveObjectInfo> &>(
  276.              (Microsoft::WRL::Details::ComPtrRef<Microsoft::WRL::ComPtr<CInteractiveObjectEventArgs> >)&v76,
  277.              &deviceId,
  278.              &spObjectInfo);
  279.       if ( v5 < 0 )
  280.       {
  281.         v19 = 902;
  282. LABEL_48:
  283.         wil::details::in1diag3::Return_Hr(
  284.           retaddr,
  285.           v19,
  286.           "windows\\advcore\\winrt\\interactiveobject\\lib\\interactiveobject.cpp",
  287.           v5);
  288.         v11 = (Microsoft::WRL::ComPtr<Windows::ApplicationModel::Core::ICoreApplicationViewInternal> *)&v76;
  289.         goto LABEL_95;
  290.       }
  291.       v64.arg1 = (CInteractiveObjectButtonEventArgs *)v76.ptr_;
  292.       v5 = Microsoft::WRL::EventSource<Windows::Foundation::ITypedEventHandler<Windows::UI::Core::CoreWindow *,Windows::UI::Core::CharacterReceivedEventArgs *>,Microsoft::WRL::InvokeModeOptions<-2>>::DoInvoke<_lambda_9ae384b677f0ac42c295d7cb469627ca_>(
  293.              (Microsoft::WRL::EventSource<Windows::Foundation::ITypedEventHandler<Windows::UI::Internal::Input::InteractiveObjectButtonCapabilities *,Windows::UI::Internal::Input::InteractiveObjectButtonEventArgs *>,Microsoft::WRL::InvokeModeOptions<-2> > *)&this->_evtObjectCaptureAcquired,
  294.              v67);
  295.       if ( v5 < 0 )
  296.       {
  297.         v19 = 904;
  298.         goto LABEL_48;
  299.       }
  300.       v12 = (Microsoft::WRL::ComPtr<Windows::ApplicationModel::Core::ICoreApplicationViewInternal> *)&v76;
  301.       goto LABEL_97;
  302.     case 0x2EFu:
  303.       v64.arg1 = (CInteractiveObjectButtonEventArgs *)&rotationResolution;
  304.       v86 = (double)lParam;
  305.       v20 = this->_spDialCapabilities.ptr_;
  306.       *(double *)arg2 = v86 / 100.0;
  307.       rotationResolution = 0.0;
  308.       v21 = v20->lpVtbl[2].AddRef;
  309.       __guard_check_icall_fptr(v20->lpVtbl[2].AddRef);
  310.       ((void (__stdcall *)(CInteractiveObjectDialCapabilities *, long double *))v21)(v20, &rotationResolution);
  311.       v22 = *(double *)arg2;
  312.       v23 = (char *)&this->_passedCount;
  313.       ++*(_DWORD *)v23;
  314.       v24 = fabs(v22);
  315.       if ( rotationResolution > v24 )
  316.       {
  317.         delta = v24;
  318.         InteractiveObjectTelemetry::RotationResolution<double,double &,unsigned long &>(
  319.           &delta,
  320.           &rotationResolution,
  321.           &this->_passedCount);
  322.         *(_DWORD *)v23 = 0;
  323.         goto $LN5_3;
  324.       }
  325.       delta = v24 + 0.5 * rotationResolution;
  326.       v25 = delta - fmod(delta, rotationResolution);
  327.       roundedDelta = v25;
  328.       if ( *(double *)arg2 < 0.0 )
  329.         roundedDelta = v25 * -1.0;
  330.       v26 = this->lpVtbl;
  331.       LODWORD(dialId) = 0;
  332.       v64.arg1 = (CInteractiveObjectButtonEventArgs *)&spObjectInfo;
  333.       __guard_check_icall_fptr(v26[8].QueryInterface);
  334.       v5 = ((int (__stdcall *)(CInteractiveObjectDevice *, unsigned int, tagINTERACTIVECTRL_INFO *, signed int, Microsoft::WRL::ComPtr<CInteractiveObjectInfo> *))v26[8].QueryInterface)(
  335.              this,
  336.              v7,
  337.              &info,
  338.              14,
  339.              &spObjectInfo);
  340.       if ( v5 < 0 )
  341.       {
  342.         v9 = 955;
  343.         goto LABEL_89;
  344.       }
  345.       spDeltaArgs.ptr_ = 0;
  346.       Microsoft::WRL::ComPtr<Windows::Foundation::Collections::IIterable<Windows::Devices::Input::PointerDevice *>>::InternalRelease((Microsoft::WRL::ComPtr<Windows::ApplicationModel::Core::ICoreApplicationViewInternal> *)&spDeltaArgs);
  347.       v27 = Microsoft::WRL::Details::MakeAndInitialize<CInteractiveObjectDeltaEventArgs,CInteractiveObjectDeltaEventArgs,unsigned long &,unsigned int &,double &,Microsoft::WRL::ComPtr<CInteractiveObjectInfo> &>(
  348.               &spDeltaArgs.ptr_,
  349.               &deviceId,
  350.               (unsigned int *)&dialId,
  351.               &roundedDelta,
  352.               &spObjectInfo);
  353.       v5 = v27;
  354.       if ( v27 < 0 )
  355.       {
  356.         wil::details::in1diag3::Return_Hr(
  357.           retaddr,
  358.           0x3C2u,
  359.           "windows\\advcore\\winrt\\interactiveobject\\lib\\interactiveobject.cpp",
  360.           v27);
  361.         Microsoft::WRL::ComPtr<Windows::Foundation::Collections::IIterable<Windows::Devices::Input::PointerDevice *>>::InternalRelease((Microsoft::WRL::ComPtr<Windows::ApplicationModel::Core::ICoreApplicationViewInternal> *)&spDeltaArgs);
  362.         goto LABEL_12;
  363.       }
  364.       v28 = this->_spDialCapabilities.ptr_;
  365.       v64.arg1 = (CInteractiveObjectButtonEventArgs *)spDeltaArgs.ptr_;
  366.       Microsoft::WRL::ComPtr<CInteractiveObjectButtonEventArgs>::InternalAddRef((Microsoft::WRL::ComPtr<InteractiveObjectDeviceManagerServer> *)&v64.arg1);
  367.       v29 = v28->lpVtbl;
  368.       v30 = v28;
  369.       v31 = v28->lpVtbl[5].QueryInterface;
  370.       __guard_check_icall_fptr(v29[5].QueryInterface);
  371.       ((void (__stdcall *)(CInteractiveObjectDialCapabilities *, CInteractiveObjectButtonEventArgs *))v31)(
  372.         v30,
  373.         v64.arg1);
  374.       Microsoft::WRL::ComPtr<Windows::Foundation::Collections::IIterable<Windows::Devices::Input::PointerDevice *>>::InternalRelease((Microsoft::WRL::ComPtr<Windows::ApplicationModel::Core::ICoreApplicationViewInternal> *)&spDeltaArgs);
  375.       goto $LN5_3;
  376.     case 0x2F0u:
  377.       v32 = this->lpVtbl;
  378.       HIDWORD(dialId) = (unsigned __int16)lParam;
  379.       v64.arg1 = (CInteractiveObjectButtonEventArgs *)&spObjectInfo;
  380.       __guard_check_icall_fptr(v32[8].QueryInterface);
  381.       v5 = ((int (__stdcall *)(CInteractiveObjectDevice *, unsigned int, tagINTERACTIVECTRL_INFO *, signed int, Microsoft::WRL::ComPtr<CInteractiveObjectInfo> *))v32[8].QueryInterface)(
  382.              this,
  383.              v7,
  384.              &info,
  385.              2,
  386.              &spObjectInfo);
  387.       if ( v5 < 0 )
  388.       {
  389.         v9 = 974;
  390.         goto LABEL_89;
  391.       }
  392.       spButtonArgs.ptr_ = 0;
  393.       arg3 = 0;
  394.       v33 = Microsoft::WRL::Details::MakeAndInitialize<CInteractiveObjectButtonEventArgs,CInteractiveObjectButtonEventArgs,unsigned long &,unsigned int &,bool,Microsoft::WRL::ComPtr<CInteractiveObjectInfo> &>(
  395.               (Microsoft::WRL::Details::ComPtrRef<Microsoft::WRL::ComPtr<CInteractiveObjectButtonEventArgs> >)&spButtonArgs,
  396.               &deviceId,
  397.               (unsigned int *)&dialId + 1,
  398.               &arg3,
  399.               &spObjectInfo);
  400.       v5 = v33;
  401.       if ( v33 < 0 )
  402.       {
  403.         wil::details::in1diag3::Return_Hr(
  404.           retaddr,
  405.           0x3D5u,
  406.           "windows\\advcore\\winrt\\interactiveobject\\lib\\interactiveobject.cpp",
  407.           v33);
  408.         v34 = (Microsoft::WRL::ComPtr<Windows::ApplicationModel::Core::ICoreApplicationViewInternal> *)&spButtonArgs;
  409.         goto LABEL_63;
  410.       }
  411.       v35 = this->_spButtonCapabilities.ptr_;
  412.       v64.arg1 = spButtonArgs.ptr_;
  413.       Microsoft::WRL::ComPtr<CInteractiveObjectButtonEventArgs>::InternalAddRef((Microsoft::WRL::ComPtr<InteractiveObjectDeviceManagerServer> *)&v64.arg1);
  414.       v36 = v35->lpVtbl;
  415.       v37 = v35;
  416.       v38 = v35->lpVtbl[4].Release;
  417.       __guard_check_icall_fptr(v36[4].Release);
  418.       ((void (__stdcall *)(CInteractiveObjectButtonCapabilities *, CInteractiveObjectButtonEventArgs *))v38)(
  419.         v37,
  420.         v64.arg1);
  421.       v39 = (Microsoft::WRL::ComPtr<Windows::ApplicationModel::Core::ICoreApplicationViewInternal> *)&spButtonArgs;
  422.       goto LABEL_65;
  423.     case 0x2F1u:
  424.       v40 = this->lpVtbl;
  425.       arg2[0] = (unsigned __int16)lParam;
  426.       v64.arg1 = (CInteractiveObjectButtonEventArgs *)&spObjectInfo;
  427.       __guard_check_icall_fptr(v40[8].QueryInterface);
  428.       v5 = ((int (__stdcall *)(CInteractiveObjectDevice *, unsigned int, tagINTERACTIVECTRL_INFO *, signed int, Microsoft::WRL::ComPtr<CInteractiveObjectInfo> *))v40[8].QueryInterface)(
  429.              this,
  430.              v7,
  431.              &info,
  432.              1,
  433.              &spObjectInfo);
  434.       if ( v5 < 0 )
  435.       {
  436.         v9 = 994;
  437.         goto LABEL_89;
  438.       }
  439.       v78.ptr_ = 0;
  440.       v71 = 1;
  441.       v41 = Microsoft::WRL::Details::MakeAndInitialize<CInteractiveObjectButtonEventArgs,CInteractiveObjectButtonEventArgs,unsigned long &,unsigned int &,bool,Microsoft::WRL::ComPtr<CInteractiveObjectInfo> &>(
  442.               (Microsoft::WRL::Details::ComPtrRef<Microsoft::WRL::ComPtr<CInteractiveObjectButtonEventArgs> >)&v78,
  443.               &deviceId,
  444.               arg2,
  445.               &v71,
  446.               &spObjectInfo);
  447.       v5 = v41;
  448.       if ( v41 < 0 )
  449.       {
  450.         wil::details::in1diag3::Return_Hr(
  451.           retaddr,
  452.           0x3E9u,
  453.           "windows\\advcore\\winrt\\interactiveobject\\lib\\interactiveobject.cpp",
  454.           v41);
  455.         v34 = (Microsoft::WRL::ComPtr<Windows::ApplicationModel::Core::ICoreApplicationViewInternal> *)&v78;
  456. LABEL_63:
  457.         Microsoft::WRL::ComPtr<Windows::Foundation::Collections::IIterable<Windows::Devices::Input::PointerDevice *>>::InternalRelease(v34);
  458.         goto LABEL_12;
  459.       }
  460.       v42 = this->_spButtonCapabilities.ptr_;
  461.       v64.arg1 = (CInteractiveObjectButtonEventArgs *)v78.ptr_;
  462.       Microsoft::WRL::ComPtr<CInteractiveObjectButtonEventArgs>::InternalAddRef((Microsoft::WRL::ComPtr<InteractiveObjectDeviceManagerServer> *)&v64.arg1);
  463.       v43 = v42->lpVtbl;
  464.       v44 = v42;
  465.       v45 = v42->lpVtbl[4].AddRef;
  466.       __guard_check_icall_fptr(v43[4].AddRef);
  467.       ((void (__stdcall *)(CInteractiveObjectButtonCapabilities *, CInteractiveObjectButtonEventArgs *))v45)(
  468.         v44,
  469.         v64.arg1);
  470.       v39 = (Microsoft::WRL::ComPtr<Windows::ApplicationModel::Core::ICoreApplicationViewInternal> *)&v78;
  471. LABEL_65:
  472.       Microsoft::WRL::ComPtr<Windows::Foundation::Collections::IIterable<Windows::Devices::Input::PointerDevice *>>::InternalRelease(v39);
  473.       goto $LN5_3;
  474.     case 0x2F2u:
  475.       v46 = this->lpVtbl;
  476.       v64.arg1 = (CInteractiveObjectButtonEventArgs *)&spObjectInfo;
  477.       __guard_check_icall_fptr(v46[8].QueryInterface);
  478.       v5 = ((int (__stdcall *)(CInteractiveObjectDevice *, unsigned int, tagINTERACTIVECTRL_INFO *, signed int, Microsoft::WRL::ComPtr<CInteractiveObjectInfo> *))v46[8].QueryInterface)(
  479.              this,
  480.              v7,
  481.              &info,
  482.              12,
  483.              &spObjectInfo);
  484.       if ( v5 < 0 )
  485.       {
  486.         v9 = 1014;
  487.         goto LABEL_89;
  488.       }
  489.       v79.ptr_ = 0;
  490.       v5 = Microsoft::WRL::Details::MakeAndInitialize<CInteractiveObjectEventArgs,CInteractiveObjectEventArgs,unsigned long &,Microsoft::WRL::ComPtr<CInteractiveObjectInfo> &>(
  491.              (Microsoft::WRL::Details::ComPtrRef<Microsoft::WRL::ComPtr<CInteractiveObjectEventArgs> >)&v79,
  492.              &deviceId,
  493.              &spObjectInfo);
  494.       if ( v5 < 0 )
  495.       {
  496.         v47 = 1019;
  497. LABEL_77:
  498.         wil::details::in1diag3::Return_Hr(
  499.           retaddr,
  500.           v47,
  501.           "windows\\advcore\\winrt\\interactiveobject\\lib\\interactiveobject.cpp",
  502.           v5);
  503.         v11 = (Microsoft::WRL::ComPtr<Windows::ApplicationModel::Core::ICoreApplicationViewInternal> *)&v79;
  504.         goto LABEL_95;
  505.       }
  506.       v48 = this->_spPointerCapabilities.ptr_;
  507.       v64.arg1 = (CInteractiveObjectButtonEventArgs *)v79.ptr_;
  508.       Microsoft::WRL::ComPtr<CInteractiveObjectButtonEventArgs>::InternalAddRef((Microsoft::WRL::ComPtr<InteractiveObjectDeviceManagerServer> *)&v64.arg1);
  509.       v49 = v48->lpVtbl;
  510.       v50 = v48;
  511.       v51 = v48->lpVtbl[6].QueryInterface;
  512.       __guard_check_icall_fptr(v49[6].QueryInterface);
  513.       v5 = ((int (__stdcall *)(CInteractiveObjectPointerCapabilities *, CInteractiveObjectButtonEventArgs *))v51)(
  514.              v50,
  515.              v64.arg1);
  516.       if ( v5 < 0 )
  517.       {
  518.         v47 = 1021;
  519.         goto LABEL_77;
  520.       }
  521.       v12 = (Microsoft::WRL::ComPtr<Windows::ApplicationModel::Core::ICoreApplicationViewInternal> *)&v79;
  522.       goto LABEL_97;
  523.     case 0x2F3u:
  524.       v52 = this->lpVtbl;
  525.       v64.arg1 = (CInteractiveObjectButtonEventArgs *)&spObjectInfo;
  526.       __guard_check_icall_fptr(v52[8].QueryInterface);
  527.       v5 = ((int (__stdcall *)(CInteractiveObjectDevice *, unsigned int, tagINTERACTIVECTRL_INFO *, signed int, Microsoft::WRL::ComPtr<CInteractiveObjectInfo> *))v52[8].QueryInterface)(
  528.              this,
  529.              v7,
  530.              &info,
  531.              13,
  532.              &spObjectInfo);
  533.       if ( v5 < 0 )
  534.       {
  535.         v9 = 1032;
  536.         goto LABEL_89;
  537.       }
  538.       v80[0].ptr_ = 0;
  539.       v5 = Microsoft::WRL::Details::MakeAndInitialize<CInteractiveObjectEventArgs,CInteractiveObjectEventArgs,unsigned long &,Microsoft::WRL::ComPtr<CInteractiveObjectInfo> &>(
  540.              (Microsoft::WRL::Details::ComPtrRef<Microsoft::WRL::ComPtr<CInteractiveObjectEventArgs> >)v80,
  541.              &deviceId,
  542.              &spObjectInfo);
  543.       if ( v5 < 0 )
  544.       {
  545.         v53 = 1037;
  546. LABEL_85:
  547.         wil::details::in1diag3::Return_Hr(
  548.           retaddr,
  549.           v53,
  550.           "windows\\advcore\\winrt\\interactiveobject\\lib\\interactiveobject.cpp",
  551.           v5);
  552.         v11 = v80;
  553.         goto LABEL_95;
  554.       }
  555.       v54 = this->_spPointerCapabilities.ptr_;
  556.       v64.arg1 = (CInteractiveObjectButtonEventArgs *)v80[0].ptr_;
  557.       Microsoft::WRL::ComPtr<CInteractiveObjectButtonEventArgs>::InternalAddRef((Microsoft::WRL::ComPtr<InteractiveObjectDeviceManagerServer> *)&v64.arg1);
  558.       v55 = v54->lpVtbl;
  559.       v56 = v54;
  560.       v57 = v54->lpVtbl[6].AddRef;
  561.       __guard_check_icall_fptr(v55[6].AddRef);
  562.       v5 = ((int (__stdcall *)(CInteractiveObjectPointerCapabilities *, CInteractiveObjectButtonEventArgs *))v57)(
  563.              v56,
  564.              v64.arg1);
  565.       if ( v5 < 0 )
  566.       {
  567.         v53 = 1039;
  568.         goto LABEL_85;
  569.       }
  570.       v12 = v80;
  571. LABEL_97:
  572.       Microsoft::WRL::ComPtr<Windows::Foundation::Collections::IIterable<Windows::Devices::Input::PointerDevice *>>::InternalRelease(v12);
  573. $LN5_3:
  574.       v5 = 0;
  575. LABEL_12:
  576.       Microsoft::WRL::ComPtr<Windows::Foundation::Collections::IIterable<Windows::Devices::Input::PointerDevice *>>::InternalRelease((Microsoft::WRL::ComPtr<Windows::ApplicationModel::Core::ICoreApplicationViewInternal> *)&spObjectInfo);
  577.       return v5;
  578.     case 0x2F4u:
  579.       v58 = this->lpVtbl;
  580.       v64.arg1 = (CInteractiveObjectButtonEventArgs *)&spObjectInfo;
  581.       __guard_check_icall_fptr(v58[8].QueryInterface);
  582.       v5 = ((int (__stdcall *)(CInteractiveObjectDevice *, unsigned int, tagINTERACTIVECTRL_INFO *, signed int, Microsoft::WRL::ComPtr<CInteractiveObjectInfo> *))v58[8].QueryInterface)(
  583.              this,
  584.              v7,
  585.              &info,
  586.              9,
  587.              &spObjectInfo);
  588.       if ( v5 >= 0 )
  589.       {
  590.         v80[1].ptr_ = 0;
  591.         v5 = Microsoft::WRL::Details::MakeAndInitialize<CInteractiveObjectEventArgs,CInteractiveObjectEventArgs,unsigned long &,Microsoft::WRL::ComPtr<CInteractiveObjectInfo> &>(
  592.                (Microsoft::WRL::Details::ComPtrRef<Microsoft::WRL::ComPtr<CInteractiveObjectEventArgs> >)&v80[1],
  593.                &deviceId,
  594.                &spObjectInfo);
  595.         if ( v5 >= 0 )
  596.         {
  597.           v60 = this->_spPointerCapabilities.ptr_;
  598.           v64.arg1 = (CInteractiveObjectButtonEventArgs *)v80[1].ptr_;
  599.           Microsoft::WRL::ComPtr<CInteractiveObjectButtonEventArgs>::InternalAddRef((Microsoft::WRL::ComPtr<InteractiveObjectDeviceManagerServer> *)&v64.arg1);
  600.           v61 = v60->lpVtbl;
  601.           v62 = v60;
  602.           v63 = v60->lpVtbl[6].Release;
  603.           __guard_check_icall_fptr(v61[6].Release);
  604.           v5 = ((int (__stdcall *)(CInteractiveObjectPointerCapabilities *, CInteractiveObjectButtonEventArgs *))v63)(
  605.                  v62,
  606.                  v64.arg1);
  607.           if ( v5 >= 0 )
  608.           {
  609.             v12 = &v80[1];
  610.             goto LABEL_97;
  611.           }
  612.           v59 = 1056;
  613.         }
  614.         else
  615.         {
  616.           v59 = 1054;
  617.         }
  618.         wil::details::in1diag3::Return_Hr(
  619.           retaddr,
  620.           v59,
  621.           "windows\\advcore\\winrt\\interactiveobject\\lib\\interactiveobject.cpp",
  622.           v5);
  623.         v11 = &v80[1];
  624. LABEL_95:
  625.         Microsoft::WRL::ComPtr<Windows::Foundation::Collections::IIterable<Windows::Devices::Input::PointerDevice *>>::InternalRelease(v11);
  626.       }
  627.       else
  628.       {
  629.         v9 = 1049;
  630. LABEL_89:
  631.         wil::details::in1diag3::Return_Hr(
  632.           retaddr,
  633.           v9,
  634.           "windows\\advcore\\winrt\\interactiveobject\\lib\\interactiveobject.cpp",
  635.           v5);
  636.       }
  637.       goto LABEL_12;
  638.     case 0x2EDu:
  639.     case 0x2EEu:
  640.       goto $LN5_3;
  641.   }
  642. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement