// [TypeInfo RVA: 0x712F8A8]
public class IntegrityOperation : Object
{
	private KubianIntegrity.IntegrityOperation.AttestationDelegate _instanceCallback; // 0x10
	private readonly string _appId; // 0x18
	private readonly string _nonce; // 0x20
	private static KubianIntegrity.IntegrityOperation.AttestationDelegate _activeCallbackBridge; // 0x0

	// RVA: 0x32566EC VA: 0x78189416EC
	private static extern void GetIntegrityToken(System.IntPtr jvm, System.IntPtr context, string appId, string nonce, string deviceCert, KubianIntegrity.IntegrityOperation.AttestationDelegate callback);
	/*
	 *   undefined8 uVar1;
	 *   undefined8 uVar2;
	 *   undefined8 uVar3;
	 *   undefined8 uVar4;
	 *   undefined *puStack_70;
	 *   undefined8 uStack_68;
	 *   undefined *puStack_60;
	 *   undefined8 uStack_58;
	 *   undefined8 uStack_50;
	 *   undefined4 uStack_48;
	 *   undefined1 uStack_44;
	 *
	 *   if (pcRam000000000754ab38 == null) {
	 *     puStack_70 = &UNK_013584f4;
	 *     uStack_68 = 0xf;
	 *     puStack_60 = &UNK_01368ea5;
	 *     uStack_58 = 0x11;
	 *     uStack_50 = _UNK_0134d8b8;
	 *     uStack_48 = 0x30;
	 *     uStack_44 = 0;
	 *     pcRam000000000754ab38 = (code *)func_0x031fe368(&puStack_70);
	 *   }
	 *   uVar1 = func_0x031fe348(appId);
	 *   uVar2 = func_0x031fe348(nonce);
	 *   uVar3 = func_0x031fe348(deviceCert);
	 *   uVar4 = func_0x031fe360(callback);
	 *   (*pcRam000000000754ab38)(jvm,context,uVar1,uVar2,uVar3,uVar4);
	 *   func_0x031fe35c(uVar1);
	 *   func_0x031fe35c(uVar2);
	 *   func_0x031fe35c(uVar3);
	 *   return;
	 */
	// RVA: 0x3256628 VA: 0x7818941628
	public void .ctor(string appId, string nonce);
	/*
	 *   void **ppvVar1;
	 *
	 *   System.Object..ctor(this);
	 *   ppvVar1 = &this.appId;
	 *   *ppvVar1 = appId;
	 *   if (iRam00000000077785f0 != 0) {
	 *     func_0x032ed0c0(1L << ((ulong)ppvVar1 >> 0xc & 0x3f),
	 *                     ((ulong)ppvVar1 >> 0x12 & 0x7fff) * 8 + 0x75ac5c8);
	 *   }
	 *   return;
	 */
	// RVA: 0x32567E4 VA: 0x78189417E4
	public void OnComplete(KubianIntegrity.IntegrityOperation.AttestationDelegate callback);
	/*
	 *   void *nonce;
	 *   char cVar1;
	 *   bool bVar2;
	 *   void *pvVar3;
	 *   void *pvVar4;
	 *   void *pvVar5;
	 *   void *context;
	 *   void *this_00;
	 *   undefined8 *puVar6;
	 *   void *in_x3;
	 *   void *in_x6;
	 *   void **ppvVar7;
	 *   long lVar8;
	 *   undefined8 uVar9;
	 *   undefined *puVar10;
	 *   ulong uVar11;
	 *   int *piVar12;
	 *   long lVar13;
	 *   long *plVar14;
	 *   undefined1 auVar15 [16];
	 *   undefined1 auVar16 [12];
	 *   long lStack_68;
	 *   void **ppvStack_60;
	 *   long lStack_58;
	 *   void **ppvStack_50;
	 *   void *pvStack_48;
	 *   void *pvStack_38;
	 *
	 *   if ((bRam000000000754ab40 & 1) == 0) {
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_AndroidJNIModule_AndroidJavaClass_6FC12A8);
	 *     func_0x031fdc8c(PTR_DAT_070c12d0);
	 *     func_0x031fdc8c(typeinfo_ptr_Assembly_CSharp_AttestationDelegate_6FC2C60);
	 *     func_0x031fdc8c(typeinfo_ptr_mscorlib_IDisposable_6FC11D0);
	 *     func_0x031fdc8c(PTR_DAT_070c4940);
	 *     func_0x031fdc8c(typeinfo_ptr_Assembly_CSharp_IntegrityOperation_6FC4938);
	 *     func_0x031fdc8c(PTR_DAT_070c12b0);
	 *     func_0x031fdc8c(PTR_DAT_070c4948);
	 *     func_0x031fdc8c(PTR_DAT_070c1320);
	 *     bRam000000000754ab40 = 1;
	 *   }
	 *   pvStack_38 = null;
	 *   ppvVar7 = &this.instanceCallback;
	 *   *ppvVar7 = callback;
	 *   pvStack_48 = null;
	 *   pvVar3 = (void *)func_0x031fdc38(ppvVar7,callback);
	 *   pvVar3 = Token.GetDeviceCert();
	 *   bVar2 = System.String.IsNullOrEmpty(this.nonce);
	 *   if (((bVar2) || (bVar2 = System.String.IsNullOrEmpty(this.appId), bVar2))
	 *      || (bVar2 = System.String.IsNullOrEmpty(pvVar3), bVar2)) {
	 *     pvVar3 = *ppvVar7;
	 *     if (pvVar3 == null) {
	 *       return;
	 *     }
	 *     (**(code **)((long)pvVar3 + 0x18))
	 *               (*(undefined8 *)((long)pvVar3 + 0x40),0,*(undefined8 *)PTR_DAT_070c4948,
	 *                *(undefined8 *)((long)pvVar3 + 0x28));
	 *     return;
	 *   }
	 *   pvVar4 = (void *)func_0x031fdf24(*(undefined8 *)
	 *                                     typeinfo_ptr_UnityEngine_AndroidJNIModule_AndroidJavaClass_6FC12A8
	 *                                   );
	 *   UnityEngine.AndroidJavaClass..ctor(pvVar4,*(void **)PTR_DAT_070c12b0);
	 *   ppvStack_50 = &pvStack_38;
	 *   lStack_58 = 0;
	 *   pvStack_38 = pvVar4;
	 *   if (pvVar4 == null) {
	 *     IL2CPP.ThrowNullReferenceException();
	 *   }
	 *   pvStack_48 = (void *)func_0x037c5a10(pvVar4,*(undefined8 *)PTR_DAT_070c1320,
	 *                                        *(undefined8 *)PTR_DAT_070c12d0);
	 *   ppvStack_60 = &pvStack_48;
	 *   lStack_68 = 0;
	 *   pvVar4 = AndroidJNI.GetJavaVM();
	 *   if (pvStack_48 != null) {
	 *     pvVar5 = UnityEngine.AndroidJavaObject.GetRawObject(pvStack_48);
	 *     context = AndroidJNI.NewGlobalRef(pvVar5);
	 *     puVar10 = typeinfo_ptr_Assembly_CSharp_IntegrityOperation_6FC4938;
	 *     **(undefined8 **)(*(long *)typeinfo_ptr_Assembly_CSharp_IntegrityOperation_6FC4938 + 0xb8) =
	 *          *ppvVar7;
	 *     func_0x031fdc38(*(undefined8 *)(*(long *)puVar10 + 0xb8));
	 *     pvVar5 = this.appId;
	 *     nonce = this.nonce;
	 *     this_00 = (void *)func_0x031fdf24(*(undefined8 *)
	 *                                        typeinfo_ptr_Assembly_CSharp_AttestationDelegate_6FC2C60);
	 *     AttestationDelegate..ctor(this_00,null,*(void **)PTR_DAT_070c4940);
	 *     IntegrityOperation.GetIntegrityToken(pvVar4,context,pvVar5,nonce,pvVar3,this_00);
	 *     lVar13 = 0;
	 *     ppvVar7 = &pvStack_48;
	 *     do {
	 *       plVar14 = *ppvVar7;
	 *       if (plVar14 != null) {
	 *         lVar8 = *plVar14;
	 *         uVar11 = (ulong)*(ushort *)(lVar8 + 0x12e);
	 *         if (uVar11 != 0) {
	 *           piVar12 = (int *)(*(long *)(lVar8 + 0xb0) + 8);
	 *           do {
	 *             if (*(long *)(piVar12 + -2) == *(long *)typeinfo_ptr_mscorlib_IDisposable_6FC11D0) {
	 *               puVar6 = (undefined8 *)(lVar8 + (long)*piVar12 * 0x10 + 0x138);
	 *               goto LAB_03356a70;
	 *             }
	 *             uVar11 = uVar11 - 1;
	 *             piVar12 = piVar12 + 4;
	 *           } while (uVar11 != 0);
	 *         }
	 *         pvVar5 = null;
	 *         puVar6 = (undefined8 *)func_0x03237558(plVar14);
	 * LAB_03356a70:
	 *         (*(code *)*puVar6)(plVar14,puVar6[1]);
	 *       }
	 *       if (lVar13 == 0) goto LAB_03356a80;
	 *       auVar16 = func_0x031fdf2c(lVar13);
	 *       uVar9 = auVar16._0_8_;
	 *       if (auVar16._8_4_ != 1) goto LAB_03356b7c;
	 *       plVar14 = (long *)func_0x06cb38e0(uVar9);
	 *       lVar13 = *plVar14;
	 *       lStack_68 = lVar13;
	 *       func_0x06cb38f0();
	 *       ppvVar7 = ppvStack_60;
	 *     } while( true );
	 *   }
	 * LAB_03356b14:
	 *   IL2CPP.ThrowNullReferenceException();
	 * LAB_03356b7c:
	 *   func_0x02d70dc0(&lStack_68);
	 *   if (auVar16._8_4_ == 1) {
	 *     plVar14 = (long *)func_0x06cb38e0(uVar9);
	 *     lStack_58 = *plVar14;
	 *     func_0x06cb38f0();
	 * LAB_03356a80:
	 *     plVar14 = *ppvStack_50;
	 *     if (plVar14 != null) {
	 *       lVar13 = *plVar14;
	 *       uVar11 = (ulong)*(ushort *)(lVar13 + 0x12e);
	 *       if (uVar11 != 0) {
	 *         piVar12 = (int *)(*(long *)(lVar13 + 0xb0) + 8);
	 *         do {
	 *           if (*(long *)(piVar12 + -2) == *(long *)typeinfo_ptr_mscorlib_IDisposable_6FC11D0) {
	 *             puVar6 = (undefined8 *)(lVar13 + (long)*piVar12 * 0x10 + 0x138);
	 *             goto LAB_03356ae0;
	 *           }
	 *           uVar11 = uVar11 - 1;
	 *           piVar12 = piVar12 + 4;
	 *         } while (uVar11 != 0);
	 *       }
	 *       puVar6 = (undefined8 *)
	 *                func_0x03237558(plVar14,*(long *)typeinfo_ptr_mscorlib_IDisposable_6FC11D0,0);
	 * LAB_03356ae0:
	 *       (*(code *)*puVar6)(plVar14,puVar6[1]);
	 *     }
	 *     if (lStack_58 == 0) {
	 *       return;
	 *     }
	 *     func_0x031fdf2c();
	 *     goto LAB_03356b14;
	 *   }
	 *   func_0x02d70dc0(&lStack_58);
	 *   func_0x032ed34c(uVar9);
	 *   auVar15 = func_0x02d70c70();
	 *   lVar13 = auVar15._0_8_;
	 *   uVar9 = *(undefined8 *)((long)pvVar5 + 8);
	 *   *(void **)(lVar13 + 0x28) = pvVar5;
	 *   *(undefined8 *)(lVar13 + 0x10) = uVar9;
	 *   *(long *)(lVar13 + 0x20) = auVar15._8_8_;
	 *   func_0x031fdc38();
	 *   cVar1 = *(char *)((long)pvVar5 + 0x52);
	 *   *(long *)(lVar13 + 0x40) = lVar13;
	 *   uVar11 = func_0x031fdd90(pvVar5);
	 *   if ((uVar11 & 1) == 0) {
	 *     if (cVar1 != '\x01') {
	 *       if (auVar15._8_8_ == 0) {
	 *         uVar9 = func_0x031fdf50(0,&UNK_0138aa88);
	 *         IL2CPP.ThrowManagedException();
	 *       }
	 *       goto LAB_03356c2c;
	 *     }
	 *     puVar10 = &UNK_02d71a00;
	 *   }
	 *   else {
	 *     if (cVar1 != '\x02') {
	 * LAB_03356c2c:
	 *       *(undefined8 *)(lVar13 + 0x18) = *(undefined8 *)(lVar13 + 0x10);
	 *       *(undefined8 *)(lVar13 + 0x40) = *(undefined8 *)(lVar13 + 0x20);
	 *       goto LAB_03356c3c;
	 *     }
	 *     puVar10 = &UNK_02d71a20;
	 *   }
	 *   *(undefined **)(lVar13 + 0x18) = puVar10;
	 * LAB_03356c3c:
	 *   *(undefined **)(lVar13 + 0x38) = &UNK_02d719a8;
	 *   return;
	 */
	// RVA: 0x325666C VA: 0x781894166C
	private static void OnTokenReceived(string token, string error);
	/*
	 *   undefined *puVar1;
	 *   long lVar2;
	 *
	 *   puVar1 = typeinfo_ptr_Assembly_CSharp_IntegrityOperation_6FC4938;
	 *   if ((bRam000000000754ab41 & 1) == 0) {
	 *     func_0x031fdc8c(typeinfo_ptr_Assembly_CSharp_IntegrityOperation_6FC4938);
	 *     bRam000000000754ab41 = 1;
	 *   }
	 *   lVar2 = **(long **)(*(long *)puVar1 + 0xb8);
	 *   if (lVar2 != 0) {
	 *     (**(code **)(lVar2 + 0x18))
	 *               (*(undefined8 *)(lVar2 + 0x40),token,error,*(undefined8 *)(lVar2 + 0x28));
	 *     return;
	 *   }
	 *   return;
	 */
}
