// [TypeInfo RVA: 0x7125C40]
public static class KubianCore : Object
{
	private static KubianCore.InitCallback _activeInitCallback; // 0x0

	// RVA: 0x3254BE0 VA: 0x781893FBE0
	private static extern void KubianPlatform_Init(System.IntPtr jvm, System.IntPtr context, string appId, KubianCore.InitCallback callback);
	/*
	 *   undefined8 uVar1;
	 *   undefined8 uVar2;
	 *   undefined *puStack_60;
	 *   undefined8 uStack_58;
	 *   undefined *puStack_50;
	 *   undefined8 uStack_48;
	 *   undefined8 uStack_40;
	 *   undefined4 uStack_38;
	 *   undefined1 uStack_34;
	 *
	 *   if (pcRam000000000754aa98 == null) {
	 *     puStack_60 = &UNK_01355dc1;
	 *     uStack_58 = 0x13;
	 *     puStack_50 = &UNK_0137694b;
	 *     uStack_48 = 0x13;
	 *     uStack_40 = _UNK_0134d8b8;
	 *     uStack_38 = 0x20;
	 *     uStack_34 = 0;
	 *     pcRam000000000754aa98 = (code *)func_0x031fe368(&puStack_60);
	 *   }
	 *   uVar1 = func_0x031fe348(appId);
	 *   uVar2 = func_0x031fe360(callback);
	 *   (*pcRam000000000754aa98)(jvm,context,uVar1,uVar2);
	 *   func_0x031fe35c(uVar1);
	 *   return;
	 */
	// RVA: 0x3254C94 VA: 0x781893FC94
	public static extern int IsInitialized();
	/*
	 *   int iVar1;
	 *   undefined *puStack_40;
	 *   undefined8 uStack_38;
	 *   undefined *puStack_30;
	 *   undefined8 uStack_28;
	 *   undefined8 uStack_20;
	 *   undefined4 uStack_18;
	 *   undefined1 uStack_14;
	 *
	 *   if (pcRam000000000754aaa0 == null) {
	 *     puStack_40 = &UNK_01355dc1;
	 *     uStack_38 = 0x13;
	 *     puStack_30 = &UNK_0139114b;
	 *     uStack_28 = 0x1c;
	 *     uStack_20 = _UNK_0134d8b8;
	 *     uStack_18 = 0;
	 *     uStack_14 = 0;
	 *     pcRam000000000754aaa0 = (code *)func_0x031fe368(&puStack_40);
	 *   }
	 *   iVar1 = (*pcRam000000000754aaa0)();
	 *   return iVar1;
	 */
	// RVA: 0x3254CF8 VA: 0x781893FCF8
	public static void Init(string appId, KubianCore.InitCallback callback);
	/*
	 *   char cVar1;
	 *   bool bVar2;
	 *   void *pvVar3;
	 *   void *pvVar4;
	 *   void *this;
	 *   undefined8 *puVar5;
	 *   void *in_x3;
	 *   void *in_x4;
	 *   void **ppvVar6;
	 *   long lVar7;
	 *   undefined8 uVar8;
	 *   undefined *puVar9;
	 *   ulong uVar10;
	 *   int *piVar11;
	 *   long lVar12;
	 *   long *plVar13;
	 *   undefined1 auVar14 [16];
	 *   undefined1 auVar15 [12];
	 *   long lStack_58;
	 *   void **ppvStack_50;
	 *   long lStack_48;
	 *   void **ppvStack_40;
	 *   void *pvStack_38;
	 *   void *pvStack_28;
	 *
	 *   puVar9 = typeinfo_ptr_Assembly_CSharp_KubianCore_6FC48B0;
	 *   if ((bRam000000000754aaa8 & 1) == 0) {
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_AndroidJNIModule_AndroidJavaClass_6FC12A8);
	 *     func_0x031fdc8c(PTR_DAT_070c12d0);
	 *     func_0x031fdc8c(typeinfo_ptr_mscorlib_IDisposable_6FC11D0);
	 *     func_0x031fdc8c(typeinfo_ptr_Assembly_CSharp_InitCallback_6FC2CA8);
	 *     func_0x031fdc8c(PTR_DAT_070c48b8);
	 *     func_0x031fdc8c(typeinfo_ptr_Assembly_CSharp_KubianCore_6FC48B0);
	 *     func_0x031fdc8c(PTR_DAT_070c12b0);
	 *     func_0x031fdc8c(PTR_DAT_070c48c0);
	 *     func_0x031fdc8c(PTR_DAT_070c1320);
	 *     bRam000000000754aaa8 = 1;
	 *   }
	 *   pvStack_28 = null;
	 *   pvStack_38 = null;
	 *   **(undefined8 **)(*(long *)puVar9 + 0xb8) = callback;
	 *   func_0x031fdc38(*(undefined8 *)(*(long *)puVar9 + 0xb8),callback);
	 *   bVar2 = System.String.IsNullOrEmpty(appId);
	 *   puVar9 = PTR_DAT_070c12b0;
	 *   if (bVar2) {
	 *     if (callback == null) {
	 *       return;
	 *     }
	 *     (**(code **)((long)callback + 0x18))
	 *               (*(undefined8 *)((long)callback + 0x40),*(undefined8 *)PTR_DAT_070c48c0,
	 *                *(undefined8 *)((long)callback + 0x28));
	 *     return;
	 *   }
	 *   pvVar3 = (void *)func_0x031fdf24(*(undefined8 *)
	 *                                     typeinfo_ptr_UnityEngine_AndroidJNIModule_AndroidJavaClass_6FC12A8
	 *                                   );
	 *   UnityEngine.AndroidJavaClass..ctor(pvVar3,*(void **)puVar9);
	 *   ppvStack_40 = &pvStack_28;
	 *   lStack_48 = 0;
	 *   pvStack_28 = pvVar3;
	 *   if (pvVar3 == null) {
	 *     IL2CPP.ThrowNullReferenceException();
	 *   }
	 *   pvStack_38 = (void *)func_0x037c5a10(pvVar3,*(undefined8 *)PTR_DAT_070c1320,
	 *                                        *(undefined8 *)PTR_DAT_070c12d0);
	 *   ppvStack_50 = &pvStack_38;
	 *   lStack_58 = 0;
	 *   pvVar3 = AndroidJNI.GetJavaVM();
	 *   if (pvStack_38 != null) {
	 *     pvVar4 = UnityEngine.AndroidJavaObject.GetRawObject(pvStack_38);
	 *     pvVar4 = AndroidJNI.NewGlobalRef(pvVar4);
	 *     this = (void *)func_0x031fdf24(*(undefined8 *)typeinfo_ptr_Assembly_CSharp_InitCallback_6FC2CA8)
	 *     ;
	 *     InitCallback..ctor(this,null,*(void **)PTR_DAT_070c48b8);
	 *     KubianCore.KubianPlatform_Init(pvVar3,pvVar4,appId,this);
	 *     lVar12 = 0;
	 *     ppvVar6 = &pvStack_38;
	 *     do {
	 *       plVar13 = *ppvVar6;
	 *       if (plVar13 != null) {
	 *         lVar7 = *plVar13;
	 *         uVar10 = (ulong)*(ushort *)(lVar7 + 0x12e);
	 *         if (uVar10 != 0) {
	 *           piVar11 = (int *)(*(long *)(lVar7 + 0xb0) + 8);
	 *           do {
	 *             if (*(long *)(piVar11 + -2) == *(long *)typeinfo_ptr_mscorlib_IDisposable_6FC11D0) {
	 *               puVar5 = (undefined8 *)(lVar7 + (long)*piVar11 * 0x10 + 0x138);
	 *               goto LAB_03354f28;
	 *             }
	 *             uVar10 = uVar10 - 1;
	 *             piVar11 = piVar11 + 4;
	 *           } while (uVar10 != 0);
	 *         }
	 *         appId = null;
	 *         puVar5 = (undefined8 *)func_0x03237558(plVar13);
	 * LAB_03354f28:
	 *         (*(code *)*puVar5)(plVar13,puVar5[1]);
	 *       }
	 *       if (lVar12 == 0) goto LAB_03354f38;
	 *       auVar15 = func_0x031fdf2c(lVar12);
	 *       uVar8 = auVar15._0_8_;
	 *       if (auVar15._8_4_ != 1) goto LAB_0335502c;
	 *       plVar13 = (long *)func_0x06cb38e0(uVar8);
	 *       lVar12 = *plVar13;
	 *       lStack_58 = lVar12;
	 *       func_0x06cb38f0();
	 *       ppvVar6 = ppvStack_50;
	 *     } while( true );
	 *   }
	 * LAB_03354fc8:
	 *   IL2CPP.ThrowNullReferenceException();
	 * LAB_0335502c:
	 *   func_0x02d70dc0(&lStack_58);
	 *   if (auVar15._8_4_ == 1) {
	 *     plVar13 = (long *)func_0x06cb38e0(uVar8);
	 *     lStack_48 = *plVar13;
	 *     func_0x06cb38f0();
	 * LAB_03354f38:
	 *     plVar13 = *ppvStack_40;
	 *     if (plVar13 != null) {
	 *       lVar12 = *plVar13;
	 *       uVar10 = (ulong)*(ushort *)(lVar12 + 0x12e);
	 *       if (uVar10 != 0) {
	 *         piVar11 = (int *)(*(long *)(lVar12 + 0xb0) + 8);
	 *         do {
	 *           if (*(long *)(piVar11 + -2) == *(long *)typeinfo_ptr_mscorlib_IDisposable_6FC11D0) {
	 *             puVar5 = (undefined8 *)(lVar12 + (long)*piVar11 * 0x10 + 0x138);
	 *             goto LAB_03354f98;
	 *           }
	 *           uVar10 = uVar10 - 1;
	 *           piVar11 = piVar11 + 4;
	 *         } while (uVar10 != 0);
	 *       }
	 *       puVar5 = (undefined8 *)
	 *                func_0x03237558(plVar13,*(long *)typeinfo_ptr_mscorlib_IDisposable_6FC11D0,0);
	 * LAB_03354f98:
	 *       (*(code *)*puVar5)(plVar13,puVar5[1]);
	 *     }
	 *     if (lStack_48 == 0) {
	 *       return;
	 *     }
	 *     func_0x031fdf2c();
	 *     goto LAB_03354fc8;
	 *   }
	 *   func_0x02d70dc0(&lStack_48);
	 *   func_0x032ed34c(uVar8);
	 *   auVar14 = func_0x02d70c70();
	 *   lVar12 = auVar14._0_8_;
	 *   uVar8 = *(undefined8 *)((long)appId + 8);
	 *   *(void **)(lVar12 + 0x28) = appId;
	 *   *(undefined8 *)(lVar12 + 0x10) = uVar8;
	 *   *(long *)(lVar12 + 0x20) = auVar14._8_8_;
	 *   func_0x031fdc38();
	 *   cVar1 = *(char *)((long)appId + 0x52);
	 *   *(long *)(lVar12 + 0x40) = lVar12;
	 *   uVar10 = func_0x031fdd90(appId);
	 *   if ((uVar10 & 1) == 0) {
	 *     if (cVar1 != '\0') {
	 *       if (auVar14._8_8_ == 0) {
	 *         uVar8 = func_0x031fdf50(0,&UNK_0138aa88);
	 *         IL2CPP.ThrowManagedException();
	 *       }
	 *       goto LAB_033550c8;
	 *     }
	 *     puVar9 = &UNK_02d71610;
	 *   }
	 *   else {
	 *     if (cVar1 != '\x01') {
	 * LAB_033550c8:
	 *       *(undefined8 *)(lVar12 + 0x18) = *(undefined8 *)(lVar12 + 0x10);
	 *       *(undefined8 *)(lVar12 + 0x40) = *(undefined8 *)(lVar12 + 0x20);
	 *       goto LAB_033550e8;
	 *     }
	 *     puVar9 = &UNK_02d7162c;
	 *   }
	 *   *(undefined **)(lVar12 + 0x18) = puVar9;
	 * LAB_033550e8:
	 *   *(undefined **)(lVar12 + 0x38) = &UNK_02d715c8;
	 *   return;
	 */
	// RVA: 0x3254B58 VA: 0x781893FB58
	private static void NativeInitCallback(string error);
	/*
	 *   undefined *puVar1;
	 *   long lVar2;
	 *
	 *   puVar1 = typeinfo_ptr_Assembly_CSharp_KubianCore_6FC48B0;
	 *   if ((bRam000000000754aaa9 & 1) == 0) {
	 *     func_0x031fdc8c(typeinfo_ptr_Assembly_CSharp_KubianCore_6FC48B0);
	 *     bRam000000000754aaa9 = 1;
	 *   }
	 *   lVar2 = **(long **)(*(long *)puVar1 + 0xb8);
	 *   if (lVar2 != 0) {
	 *     (**(code **)(lVar2 + 0x18))(*(undefined8 *)(lVar2 + 0x40),error,*(undefined8 *)(lVar2 + 0x28));
	 *     **(undefined8 **)(*(long *)puVar1 + 0xb8) = 0;
	 *     if (iRam00000000077785f0 != 0) {
	 *       func_0x032ed0c0(1L << (*(ulong *)(*(long *)puVar1 + 0xb8) >> 0xc & 0x3f),
	 *                       (*(ulong *)(*(long *)puVar1 + 0xb8) >> 0x12 & 0x7fff) * 8 + 0x75ac5c8);
	 *     }
	 *     return;
	 *   }
	 *   return;
	 */
}
