namespace ExitGames.Demos.DemoPunVoice
{

	// [TypeInfo RVA: 0x0]
	public sealed class OnCharacterInstantiated : MulticastDelegate
	{
		// RVA: 0x3281B9C VA: 0x781896CB9C
		public void .ctor(object object, System.IntPtr method);
		/*
		 *   char cVar1;
		 *   ulong uVar2;
		 *   undefined8 uVar3;
		 *   undefined *puVar4;
		 *
		 *   uVar3 = *(undefined8 *)((long)method + 8);
		 *   *(void **)((long)this + 0x28) = method;
		 *   *(undefined8 *)((long)this + 0x10) = uVar3;
		 *   *(void **)((long)this + 0x20) = object;
		 *   func_0x031fdc38();
		 *   cVar1 = *(char *)((long)method + 0x52);
		 *   *(void **)((long)this + 0x40) = this;
		 *   uVar2 = func_0x031fdd90(method);
		 *   if ((uVar2 & 1) == 0) {
		 *     if (cVar1 != '\0') {
		 *       if (object == null) {
		 *         uVar3 = func_0x031fdf50(0,&UNK_0138aa88);
		 *         IL2CPP.ThrowManagedException();
		 *       }
		 *       goto LAB_03381bf8;
		 *     }
		 *     puVar4 = &UNK_02d72098;
		 *   }
		 *   else {
		 *     if (cVar1 != '\x01') {
		 * LAB_03381bf8:
		 *       *(undefined8 *)((long)this + 0x18) = *(undefined8 *)((long)this + 0x10);
		 *       *(undefined8 *)((long)this + 0x40) = *(undefined8 *)((long)this + 0x20);
		 *       goto LAB_03381c18;
		 *     }
		 *     puVar4 = &UNK_02d720b4;
		 *   }
		 *   *(undefined **)((long)this + 0x18) = puVar4;
		 * LAB_03381c18:
		 *   *(undefined **)((long)this + 0x38) = &UNK_02d72050;
		 *   return;
		 */
		// RVA: 0x3281C4C VA: 0x781896CC4C
		public virtual void Invoke(UnityEngine.GameObject character);
		/*
		 *   (**(code **)((long)this + 0x18))
		 *             (*(undefined8 *)((long)this + 0x40),character,*(undefined8 *)((long)this + 0x28));
		 *   return;
		 */
		// RVA: 0x3281C60 VA: 0x781896CC60
		public virtual System.IAsyncResult BeginInvoke(UnityEngine.GameObject character, System.AsyncCallback callback, object object);
		/*
		 *   void *pvVar1;
		 *   void *pvStack_20;
		 *   undefined8 uStack_18;
		 *
		 *   uStack_18 = 0;
		 *   pvStack_20 = character;
		 *   pvVar1 = (void *)func_0x031fdc48(this,&pvStack_20);
		 *   return pvVar1;
		 */
		// RVA: 0x3281C80 VA: 0x781896CC80
		public virtual void EndInvoke(System.IAsyncResult result);
		/*
		 *   undefined8 uVar1;
		 *   undefined8 uVar2;
		 *   long lVar3;
		 *   long *plVar4;
		 *   long *in_x3;
		 *   ulong uVar5;
		 *   long *plVar6;
		 *   int iVar7;
		 *   long lVar8;
		 *   ulong uVar9;
		 *   long lVar10;
		 *   undefined1 auVar11 [16];
		 *   long lStack_58;
		 *   undefined1 auStack_48 [8];
		 *
		 *   plVar4 = &lStack_58;
		 *   func_0x03223080(result,auStack_48);
		 *   if (lStack_58 != 0) {
		 *     auVar11 = func_0x06cb3d70(lStack_58);
		 *     lVar3 = auVar11._8_8_;
		 *     uVar2 = auVar11._0_8_;
		 *     lVar8 = *(long *)(*(long *)(lVar3 + 0x10) + 0x10);
		 *     uVar5 = (ulong)*(byte *)(lVar8 + 0x52);
		 *     if (uVar5 == 0) {
		 *       lVar10 = 0;
		 *     }
		 *     else {
		 *       iVar7 = 0;
		 *       plVar6 = *(long **)(lVar8 + 0x30);
		 *       do {
		 *         uVar5 = uVar5 - 1;
		 *         iVar7 = (*(uint *)(*plVar6 + 8) >> 0x1d & 1) + iVar7;
		 *         plVar6 = plVar6 + 1;
		 *       } while (uVar5 != 0);
		 *       lVar10 = (long)iVar7;
		 *     }
		 *     if (lRam0000000007565d30 == 0) {
		 *       lRam0000000007565d30 = func_0x06cb3cf0(uRam00000000075658e8,1);
		 *       DataMemoryBarrier(2,3);
		 *     }
		 *     uVar1 = func_0x06cb3d10(lRam0000000007565d30,lVar10);
		 *     func_0x03200850(in_x3,uVar1);
		 *     *plVar4 = 0;
		 *     if (*(int *)(*(long *)(lVar8 + 0x20) + 0x28) < 0) {
		 *       uVar2 = func_0x06cb3da0(uVar2);
		 *     }
		 *     if (*(char *)(lVar8 + 0x52) == '\0') {
		 *       uVar1 = 0;
		 *     }
		 *     else {
		 *       uVar1 = *(undefined8 *)(lVar3 + 0x18);
		 *     }
		 *     func_0x0325e02c(lVar8,uVar2,uVar1,plVar4);
		 *     uVar5 = (ulong)*(byte *)(lVar8 + 0x52);
		 *     if (*(byte *)(lVar8 + 0x52) != 0) {
		 *       uVar9 = 0;
		 *       iVar7 = 0;
		 *       do {
		 *         if ((*(byte *)(*(long *)(*(long *)(lVar8 + 0x30) + uVar9 * 8) + 0xb) >> 5 & 1) != 0) {
		 *           *(undefined8 *)(*in_x3 + (long)iVar7 * 8 + 0x20) =
		 *                *(undefined8 *)(*(long *)(lVar3 + 0x18) + uVar9 * 8 + 0x20);
		 *           func_0x031ff19c();
		 *           uVar5 = (ulong)*(byte *)(lVar8 + 0x52);
		 *           iVar7 = iVar7 + 1;
		 *         }
		 *         uVar9 = uVar9 + 1;
		 *       } while (uVar9 < uVar5);
		 *     }
		 *     return;
		 *   }
		 *   return;
		 */
	}
}
