text: // Autogenerated from CppHeaderCreator
  // Created by Sc2ad
  // =========================================================================
  #pragma once
  // Begin includes
  #include "extern/beatsaber-hook/shared/utils/typedefs.h"
  #include "extern/beatsaber-hook/shared/utils/byref.hpp"
  #include "extern/beatsaber-hook/shared/utils/il2cpp-utils-methods.hpp"
  #include "extern/beatsaber-hook/shared/utils/il2cpp-utils-properties.hpp"
  #include "extern/beatsaber-hook/shared/utils/il2cpp-utils-fields.hpp"
  #include "extern/beatsaber-hook/shared/utils/utils.h"
  #include "extern/beatsaber-hook/shared/utils/typedefs-array.hpp"
  // Completed includes
  // Begin forward declares
  // Forward declaring namespace: Org::BouncyCastle::Security
  namespace Org::BouncyCastle::Security {
    // Forward declaring type: SecureRandom
    class SecureRandom;
  }
  // Forward declaring namespace: System
  namespace System {
    // Forward declaring type: Random
    class Random;
  }
  // Forward declaring namespace: System::Text
  namespace System::Text {
    // Forward declaring type: StringBuilder
    class StringBuilder;
  }
  // Forward declaring namespace: System::Collections
  namespace System::Collections {
    // Forward declaring type: IList
    class IList;
  }
  // Completed forward declares
  // Type namespace: Org.BouncyCastle.Math
  namespace Org::BouncyCastle::Math {
    // Forward declaring type: BigInteger
    class BigInteger;
  }
  #include "extern/beatsaber-hook/shared/utils/il2cpp-type-check.hpp"
  NEED_NO_BOX(Org::BouncyCastle::Math::BigInteger);
  DEFINE_IL2CPP_ARG_TYPE(Org::BouncyCastle::Math::BigInteger*, "Org.BouncyCastle.Math", "BigInteger");
  // Type namespace: Org.BouncyCastle.Math
  namespace Org::BouncyCastle::Math {
    // Size: 0x28
    #pragma pack(push, 1)
    // Autogenerated type: Org.BouncyCastle.Math.BigInteger
    // [TokenAttribute] Offset: FFFFFFFF
    class BigInteger : public ::Il2CppObject {
      public:
      #ifdef USE_CODEGEN_FIELDS
      public:
      #else
      protected:
      #endif
      // private System.Int32[] magnitude
      // Size: 0x8
      // Offset: 0x10
      ::ArrayW<int> magnitude;
      // Field size check
      static_assert(sizeof(::ArrayW<int>) == 0x8);
      // private System.Int32 sign
      // Size: 0x4
      // Offset: 0x18
      int sign;
      // Field size check
      static_assert(sizeof(int) == 0x4);
      // private System.Int32 nBits
      // Size: 0x4
      // Offset: 0x1C
      int nBits;
      // Field size check
      static_assert(sizeof(int) == 0x4);
      // private System.Int32 nBitLength
      // Size: 0x4
      // Offset: 0x20
      int nBitLength;
      // Field size check
      static_assert(sizeof(int) == 0x4);
      // private System.Int32 mQuote
      // Size: 0x4
      // Offset: 0x24
      int mQuote;
      // Field size check
      static_assert(sizeof(int) == 0x4);
      public:
      // Get static field: static readonly System.Int32[][] primeLists
      static ::ArrayW<::ArrayW<int>> _get_primeLists();
      // Set static field: static readonly System.Int32[][] primeLists
      static void _set_primeLists(::ArrayW<::ArrayW<int>> value);
      // Get static field: static readonly System.Int32[] primeProducts
      static ::ArrayW<int> _get_primeProducts();
      // Set static field: static readonly System.Int32[] primeProducts
      static void _set_primeProducts(::ArrayW<int> value);
      // Get static field: static private readonly System.Int32[] ZeroMagnitude
      static ::ArrayW<int> _get_ZeroMagnitude();
      // Set static field: static private readonly System.Int32[] ZeroMagnitude
      static void _set_ZeroMagnitude(::ArrayW<int> value);
      // Get static field: static private readonly System.Byte[] ZeroEncoding
      static ::ArrayW<uint8_t> _get_ZeroEncoding();
      // Set static field: static private readonly System.Byte[] ZeroEncoding
      static void _set_ZeroEncoding(::ArrayW<uint8_t> value);
      // Get static field: static private readonly Org.BouncyCastle.Math.BigInteger[] SMALL_CONSTANTS
      static ::ArrayW<Org::BouncyCastle::Math::BigInteger*> _get_SMALL_CONSTANTS();
      // Set static field: static private readonly Org.BouncyCastle.Math.BigInteger[] SMALL_CONSTANTS
      static void _set_SMALL_CONSTANTS(::ArrayW<Org::BouncyCastle::Math::BigInteger*> value);
      // Get static field: static public readonly Org.BouncyCastle.Math.BigInteger Zero
      static Org::BouncyCastle::Math::BigInteger* _get_Zero();
      // Set static field: static public readonly Org.BouncyCastle.Math.BigInteger Zero
      static void _set_Zero(Org::BouncyCastle::Math::BigInteger* value);
      // Get static field: static public readonly Org.BouncyCastle.Math.BigInteger One
      static Org::BouncyCastle::Math::BigInteger* _get_One();
      // Set static field: static public readonly Org.BouncyCastle.Math.BigInteger One
      static void _set_One(Org::BouncyCastle::Math::BigInteger* value);
      // Get static field: static public readonly Org.BouncyCastle.Math.BigInteger Two
      static Org::BouncyCastle::Math::BigInteger* _get_Two();
      // Set static field: static public readonly Org.BouncyCastle.Math.BigInteger Two
      static void _set_Two(Org::BouncyCastle::Math::BigInteger* value);
      // Get static field: static public readonly Org.BouncyCastle.Math.BigInteger Three
      static Org::BouncyCastle::Math::BigInteger* _get_Three();
      // Set static field: static public readonly Org.BouncyCastle.Math.BigInteger Three
      static void _set_Three(Org::BouncyCastle::Math::BigInteger* value);
      // Get static field: static public readonly Org.BouncyCastle.Math.BigInteger Four
      static Org::BouncyCastle::Math::BigInteger* _get_Four();
      // Set static field: static public readonly Org.BouncyCastle.Math.BigInteger Four
      static void _set_Four(Org::BouncyCastle::Math::BigInteger* value);
      // Get static field: static public readonly Org.BouncyCastle.Math.BigInteger Ten
      static Org::BouncyCastle::Math::BigInteger* _get_Ten();
      // Set static field: static public readonly Org.BouncyCastle.Math.BigInteger Ten
      static void _set_Ten(Org::BouncyCastle::Math::BigInteger* value);
      // Get static field: static private readonly System.Byte[] BitLengthTable
      static ::ArrayW<uint8_t> _get_BitLengthTable();
      // Set static field: static private readonly System.Byte[] BitLengthTable
      static void _set_BitLengthTable(::ArrayW<uint8_t> value);
      // Get static field: static private readonly Org.BouncyCastle.Math.BigInteger radix2
      static Org::BouncyCastle::Math::BigInteger* _get_radix2();
      // Set static field: static private readonly Org.BouncyCastle.Math.BigInteger radix2
      static void _set_radix2(Org::BouncyCastle::Math::BigInteger* value);
      // Get static field: static private readonly Org.BouncyCastle.Math.BigInteger radix2E
      static Org::BouncyCastle::Math::BigInteger* _get_radix2E();
      // Set static field: static private readonly Org.BouncyCastle.Math.BigInteger radix2E
      static void _set_radix2E(Org::BouncyCastle::Math::BigInteger* value);
      // Get static field: static private readonly Org.BouncyCastle.Math.BigInteger radix8
      static Org::BouncyCastle::Math::BigInteger* _get_radix8();
      // Set static field: static private readonly Org.BouncyCastle.Math.BigInteger radix8
      static void _set_radix8(Org::BouncyCastle::Math::BigInteger* value);
      // Get static field: static private readonly Org.BouncyCastle.Math.BigInteger radix8E
      static Org::BouncyCastle::Math::BigInteger* _get_radix8E();
      // Set static field: static private readonly Org.BouncyCastle.Math.BigInteger radix8E
      static void _set_radix8E(Org::BouncyCastle::Math::BigInteger* value);
      // Get static field: static private readonly Org.BouncyCastle.Math.BigInteger radix10
      static Org::BouncyCastle::Math::BigInteger* _get_radix10();
      // Set static field: static private readonly Org.BouncyCastle.Math.BigInteger radix10
      static void _set_radix10(Org::BouncyCastle::Math::BigInteger* value);
      // Get static field: static private readonly Org.BouncyCastle.Math.BigInteger radix10E
      static Org::BouncyCastle::Math::BigInteger* _get_radix10E();
      // Set static field: static private readonly Org.BouncyCastle.Math.BigInteger radix10E
      static void _set_radix10E(Org::BouncyCastle::Math::BigInteger* value);
      // Get static field: static private readonly Org.BouncyCastle.Math.BigInteger radix16
      static Org::BouncyCastle::Math::BigInteger* _get_radix16();
      // Set static field: static private readonly Org.BouncyCastle.Math.BigInteger radix16
      static void _set_radix16(Org::BouncyCastle::Math::BigInteger* value);
      // Get static field: static private readonly Org.BouncyCastle.Math.BigInteger radix16E
      static Org::BouncyCastle::Math::BigInteger* _get_radix16E();
      // Set static field: static private readonly Org.BouncyCastle.Math.BigInteger radix16E
      static void _set_radix16E(Org::BouncyCastle::Math::BigInteger* value);
      // Get static field: static private readonly Org.BouncyCastle.Security.SecureRandom RandomSource
      static Org::BouncyCastle::Security::SecureRandom* _get_RandomSource();
      // Set static field: static private readonly Org.BouncyCastle.Security.SecureRandom RandomSource
      static void _set_RandomSource(Org::BouncyCastle::Security::SecureRandom* value);
      // Get static field: static private readonly System.Int32[] ExpWindowThresholds
      static ::ArrayW<int> _get_ExpWindowThresholds();
      // Set static field: static private readonly System.Int32[] ExpWindowThresholds
      static void _set_ExpWindowThresholds(::ArrayW<int> value);
      // Get instance field reference: private System.Int32[] magnitude
      ::ArrayW<int>& dyn_magnitude();
      // Get instance field reference: private System.Int32 sign
      int& dyn_sign();
      // Get instance field reference: private System.Int32 nBits
      int& dyn_nBits();
      // Get instance field reference: private System.Int32 nBitLength
      int& dyn_nBitLength();
      // Get instance field reference: private System.Int32 mQuote
      int& dyn_mQuote();
      // public System.Int32 get_BitCount()
      // Offset: 0x138D4E8
      int get_BitCount();
      // public System.Int32 get_BitLength()
      // Offset: 0x13758B0
      int get_BitLength();
      // public System.Int32 get_IntValue()
      // Offset: 0x137BEB4
      int get_IntValue();
      // public System.Int64 get_LongValue()
      // Offset: 0x138EE88
      int64_t get_LongValue();
      // public System.Int32 get_SignValue()
      // Offset: 0x139197C
      int get_SignValue();
      // static private System.Void .cctor()
      // Offset: 0x138AF78
      static void _cctor();
      // private System.Void .ctor(System.Int32 signum, System.Int32[] mag, System.Boolean checkMag)
      // Offset: 0x138C738
      template<::il2cpp_utils::CreationType creationType = ::il2cpp_utils::CreationType::Temporary>
      static BigInteger* New_ctor(int signum, ::ArrayW<int> mag, bool checkMag) {
        static auto ___internal__logger = ::Logger::get().WithContext("Org::BouncyCastle::Math::BigInteger::.ctor");
        return THROW_UNLESS((::il2cpp_utils::New<BigInteger*, creationType>(signum, mag, checkMag)));
      }
      // public System.Void .ctor(System.String value)
      // Offset: 0x138CC60
      template<::il2cpp_utils::CreationType creationType = ::il2cpp_utils::CreationType::Temporary>
      static BigInteger* New_ctor(::Il2CppString* value) {
        static auto ___internal__logger = ::Logger::get().WithContext("Org::BouncyCastle::Math::BigInteger::.ctor");
        return THROW_UNLESS((::il2cpp_utils::New<BigInteger*, creationType>(value)));
      }
      // public System.Void .ctor(System.String str, System.Int32 radix)
      // Offset: 0x137C320
      template<::il2cpp_utils::CreationType creationType = ::il2cpp_utils::CreationType::Temporary>
      static BigInteger* New_ctor(::Il2CppString* str, int radix) {
        static auto ___internal__logger = ::Logger::get().WithContext("Org::BouncyCastle::Math::BigInteger::.ctor");
        return THROW_UNLESS((::il2cpp_utils::New<BigInteger*, creationType>(str, radix)));
      }
      // public System.Void .ctor(System.Byte[] bytes)
      // Offset: 0x138CDC0
      template<::il2cpp_utils::CreationType creationType = ::il2cpp_utils::CreationType::Temporary>
      static BigInteger* New_ctor(::ArrayW<uint8_t> bytes) {
        static auto ___internal__logger = ::Logger::get().WithContext("Org::BouncyCastle::Math::BigInteger::.ctor");
        return THROW_UNLESS((::il2cpp_utils::New<BigInteger*, creationType>(bytes)));
      }
      // public System.Void .ctor(System.Byte[] bytes, System.Int32 offset, System.Int32 length)
      // Offset: 0x138CDDC
      template<::il2cpp_utils::CreationType creationType = ::il2cpp_utils::CreationType::Temporary>
      static BigInteger* New_ctor(::ArrayW<uint8_t> bytes, int offset, int length) {
        static auto ___internal__logger = ::Logger::get().WithContext("Org::BouncyCastle::Math::BigInteger::.ctor");
        return THROW_UNLESS((::il2cpp_utils::New<BigInteger*, creationType>(bytes, offset, length)));
      }
      // public System.Void .ctor(System.Int32 sign, System.Byte[] bytes)
      // Offset: 0x137F9B0
      template<::il2cpp_utils::CreationType creationType = ::il2cpp_utils::CreationType::Temporary>
      static BigInteger* New_ctor(int sign, ::ArrayW<uint8_t> bytes) {
        static auto ___internal__logger = ::Logger::get().WithContext("Org::BouncyCastle::Math::BigInteger::.ctor");
        return THROW_UNLESS((::il2cpp_utils::New<BigInteger*, creationType>(sign, bytes)));
      }
      // public System.Void .ctor(System.Int32 sign, System.Byte[] bytes, System.Int32 offset, System.Int32 length)
      // Offset: 0x137F010
      template<::il2cpp_utils::CreationType creationType = ::il2cpp_utils::CreationType::Temporary>
      static BigInteger* New_ctor(int sign, ::ArrayW<uint8_t> bytes, int offset, int length) {
        static auto ___internal__logger = ::Logger::get().WithContext("Org::BouncyCastle::Math::BigInteger::.ctor");
        return THROW_UNLESS((::il2cpp_utils::New<BigInteger*, creationType>(sign, bytes, offset, length)));
      }
      // public System.Void .ctor(System.Int32 sizeInBits, System.Random random)
      // Offset: 0x1380130
      template<::il2cpp_utils::CreationType creationType = ::il2cpp_utils::CreationType::Temporary>
      static BigInteger* New_ctor(int sizeInBits, System::Random* random) {
        static auto ___internal__logger = ::Logger::get().WithContext("Org::BouncyCastle::Math::BigInteger::.ctor");
        return THROW_UNLESS((::il2cpp_utils::New<BigInteger*, creationType>(sizeInBits, random)));
      }
      // static private System.Int32 GetByteLength(System.Int32 nBits)
      // Offset: 0x138CBBC
      static int GetByteLength(int nBits);
      // static public Org.BouncyCastle.Math.BigInteger Arbitrary(System.Int32 sizeInBits)
      // Offset: 0x138CBD4
      static Org::BouncyCastle::Math::BigInteger* Arbitrary(int sizeInBits);
      // static private System.Int32[] MakeMagnitude(System.Byte[] bytes, System.Int32 offset, System.Int32 length)
      // Offset: 0x138D068
      static ::ArrayW<int> MakeMagnitude(::ArrayW<uint8_t> bytes, int offset, int length);
      // public Org.BouncyCastle.Math.BigInteger Abs()
      // Offset: 0x138D20C
      Org::BouncyCastle::Math::BigInteger* Abs();
      // static private System.Int32[] AddMagnitudes(System.Int32[] a, System.Int32[] b)
      // Offset: 0x138D298
      static ::ArrayW<int> AddMagnitudes(::ArrayW<int> a, ::ArrayW<int> b);
      // public Org.BouncyCastle.Math.BigInteger Add(Org.BouncyCastle.Math.BigInteger value)
      // Offset: 0x137EEA8
      Org::BouncyCastle::Math::BigInteger* Add(Org::BouncyCastle::Math::BigInteger* value);
      // private Org.BouncyCastle.Math.BigInteger AddToMagnitude(System.Int32[] magToAdd)
      // Offset: 0x138D360
      Org::BouncyCastle::Math::BigInteger* AddToMagnitude(::ArrayW<int> magToAdd);
      // static public System.Int32 BitCnt(System.Int32 i)
      // Offset: 0x138D620
      static int BitCnt(int i);
      // static private System.Int32 CalcBitLength(System.Int32 sign, System.Int32 indx, System.Int32[] mag)
      // Offset: 0x138D654
      static int CalcBitLength(int sign, int indx, ::ArrayW<int> mag);
      // static System.Int32 BitLen(System.Int32 w)
      // Offset: 0x138D770
      static int BitLen(int w);
      // private System.Boolean QuickPow2Check()
      // Offset: 0x138D8F8
      bool QuickPow2Check();
      // static private System.Int32 CompareTo(System.Int32 xIndx, System.Int32[] x, System.Int32 yIndx, System.Int32[] y)
      // Offset: 0x138D91C
      static int CompareTo(int xIndx, ::ArrayW<int> x, int yIndx, ::ArrayW<int> y);
      // static private System.Int32 CompareNoLeadingZeroes(System.Int32 xIndx, System.Int32[] x, System.Int32 yIndx, System.Int32[] y)
      // Offset: 0x138DA20
      static int CompareNoLeadingZeroes(int xIndx, ::ArrayW<int> x, int yIndx, ::ArrayW<int> y);
      // public System.Int32 CompareTo(Org.BouncyCastle.Math.BigInteger value)
      // Offset: 0x1376124
      int CompareTo(Org::BouncyCastle::Math::BigInteger* value);
      // private System.Int32[] Divide(System.Int32[] x, System.Int32[] y)
      // Offset: 0x138DAB4
      ::ArrayW<int> Divide(::ArrayW<int> x, ::ArrayW<int> y);
      // public Org.BouncyCastle.Math.BigInteger Divide(Org.BouncyCastle.Math.BigInteger val)
      // Offset: 0x138E4B4
      Org::BouncyCastle::Math::BigInteger* Divide(Org::BouncyCastle::Math::BigInteger* val);
      // public Org.BouncyCastle.Math.BigInteger[] DivideAndRemainder(Org.BouncyCastle.Math.BigInteger val)
      // Offset: 0x138E694
      ::ArrayW<Org::BouncyCastle::Math::BigInteger*> DivideAndRemainder(Org::BouncyCastle::Math::BigInteger* val);
      // private System.Boolean IsEqualMagnitude(Org.BouncyCastle.Math.BigInteger x)
      // Offset: 0x138EBC4
      bool IsEqualMagnitude(Org::BouncyCastle::Math::BigInteger* x);
      // public Org.BouncyCastle.Math.BigInteger Gcd(Org.BouncyCastle.Math.BigInteger value)
      // Offset: 0x137BF10
      Org::BouncyCastle::Math::BigInteger* Gcd(Org::BouncyCastle::Math::BigInteger* value);
      // private Org.BouncyCastle.Math.BigInteger Inc()
      // Offset: 0x138ECA4
      Org::BouncyCastle::Math::BigInteger* Inc();
      // public Org.BouncyCastle.Math.BigInteger Min(Org.BouncyCastle.Math.BigInteger value)
      // Offset: 0x138857C
      Org::BouncyCastle::Math::BigInteger* Min(Org::BouncyCastle::Math::BigInteger* value);
      // public Org.BouncyCastle.Math.BigInteger Mod(Org.BouncyCastle.Math.BigInteger m)
      // Offset: 0x137EC04
      Org::BouncyCastle::Math::BigInteger* Mod(Org::BouncyCastle::Math::BigInteger* m);
      // public Org.BouncyCastle.Math.BigInteger ModInverse(Org.BouncyCastle.Math.BigInteger m)
      // Offset: 0x1378B80
      Org::BouncyCastle::Math::BigInteger* ModInverse(Org::BouncyCastle::Math::BigInteger* m);
      // private Org.BouncyCastle.Math.BigInteger ModInversePow2(Org.BouncyCastle.Math.BigInteger m)
      // Offset: 0x138F16C
      Org::BouncyCastle::Math::BigInteger* ModInversePow2(Org::BouncyCastle::Math::BigInteger* m);
      // static private System.Int32 ModInverse32(System.Int32 d)
      // Offset: 0x138F4F0
      static int ModInverse32(int d);
      // static private System.Int64 ModInverse64(System.Int64 d)
      // Offset: 0x138F4B8
      static int64_t ModInverse64(int64_t d);
      // static private Org.BouncyCastle.Math.BigInteger ExtEuclid(Org.BouncyCastle.Math.BigInteger a, Org.BouncyCastle.Math.BigInteger b, out Org.BouncyCastle.Math.BigInteger u1Out)
      // Offset: 0x138F38C
      static Org::BouncyCastle::Math::BigInteger* ExtEuclid(Org::BouncyCastle::Math::BigInteger* a, Org::BouncyCastle::Math::BigInteger* b, ByRef<Org::BouncyCastle::Math::BigInteger*> u1Out);
      // public Org.BouncyCastle.Math.BigInteger ModPow(Org.BouncyCastle.Math.BigInteger e, Org.BouncyCastle.Math.BigInteger m)
      // Offset: 0x1376D48
      Org::BouncyCastle::Math::BigInteger* ModPow(Org::BouncyCastle::Math::BigInteger* e, Org::BouncyCastle::Math::BigInteger* m);
      // static private Org.BouncyCastle.Math.BigInteger ModPowBarrett(Org.BouncyCastle.Math.BigInteger b, Org.BouncyCastle.Math.BigInteger e, Org.BouncyCastle.Math.BigInteger m)
      // Offset: 0x138F520
      static Org::BouncyCastle::Math::BigInteger* ModPowBarrett(Org::BouncyCastle::Math::BigInteger* b, Org::BouncyCastle::Math::BigInteger* e, Org::BouncyCastle::Math::BigInteger* m);
      // static private Org.BouncyCastle.Math.BigInteger ReduceBarrett(Org.BouncyCastle.Math.BigInteger x, Org.BouncyCastle.Math.BigInteger m, Org.BouncyCastle.Math.BigInteger mr, Org.BouncyCastle.Math.BigInteger yu)
      // Offset: 0x1390238
      static Org::BouncyCastle::Math::BigInteger* ReduceBarrett(Org::BouncyCastle::Math::BigInteger* x, Org::BouncyCastle::Math::BigInteger* m, Org::BouncyCastle::Math::BigInteger* mr, Org::BouncyCastle::Math::BigInteger* yu);
      // static private Org.BouncyCastle.Math.BigInteger ModPowMonty(Org.BouncyCastle.Math.BigInteger b, Org.BouncyCastle.Math.BigInteger e, Org.BouncyCastle.Math.BigInteger m, System.Boolean convert)
      // Offset: 0x138FA28
      static Org::BouncyCastle::Math::BigInteger* ModPowMonty(Org::BouncyCastle::Math::BigInteger* b, Org::BouncyCastle::Math::BigInteger* e, Org::BouncyCastle::Math::BigInteger* m, bool convert);
      // static private System.Int32[] GetWindowList(System.Int32[] mag, System.Int32 extraBits)
      // Offset: 0x1390358
      static ::ArrayW<int> GetWindowList(::ArrayW<int> mag, int extraBits);
      // static private System.Int32 CreateWindowEntry(System.Int32 mult, System.Int32 zeroes)
      // Offset: 0x13911E4
      static int CreateWindowEntry(int mult, int zeroes);
      // static private System.Int32[] Square(System.Int32[] w, System.Int32[] x)
      // Offset: 0x1391200
      static ::ArrayW<int> Square(::ArrayW<int> w, ::ArrayW<int> x);
      // static private System.Int32[] Multiply(System.Int32[] x, System.Int32[] y, System.Int32[] z)
      // Offset: 0x13913BC
      static ::ArrayW<int> Multiply(::ArrayW<int> x, ::ArrayW<int> y, ::ArrayW<int> z);
      // private System.Int32 GetMQuote()
      // Offset: 0x139073C
      int GetMQuote();
      // static private System.Void MontgomeryReduce(System.Int32[] x, System.Int32[] m, System.UInt32 mDash)
      // Offset: 0x1391030
      static void MontgomeryReduce(::ArrayW<int> x, ::ArrayW<int> m, uint mDash);
      // static private System.Void MultiplyMonty(System.Int32[] a, System.Int32[] x, System.Int32[] y, System.Int32[] m, System.UInt32 mDash, System.Boolean smallMontyModulus)
      // Offset: 0x1390C78
      static void MultiplyMonty(::ArrayW<int> a, ::ArrayW<int> x, ::ArrayW<int> y, ::ArrayW<int> m, uint mDash, bool smallMontyModulus);
      // static private System.Void SquareMonty(System.Int32[] a, System.Int32[] x, System.Int32[] m, System.UInt32 mDash, System.Boolean smallMontyModulus)
      // Offset: 0x1390804
      static void SquareMonty(::ArrayW<int> a, ::ArrayW<int> x, ::ArrayW<int> m, uint mDash, bool smallMontyModulus);
      // static private System.UInt32 MultiplyMontyNIsOne(System.UInt32 x, System.UInt32 y, System.UInt32 m, System.UInt32 mDash)
      // Offset: 0x13914EC
      static uint MultiplyMontyNIsOne(uint x, uint y, uint m, uint mDash);
      // public Org.BouncyCastle.Math.BigInteger Multiply(Org.BouncyCastle.Math.BigInteger val)
      // Offset: 0x137ECCC
      Org::BouncyCastle::Math::BigInteger* Multiply(Org::BouncyCastle::Math::BigInteger* val);
      // public Org.BouncyCastle.Math.BigInteger Square()
      // Offset: 0x13900E8
      Org::BouncyCastle::Math::BigInteger* Square();
      // public Org.BouncyCastle.Math.BigInteger Negate()
      // Offset: 0x138D21C
      Org::BouncyCastle::Math::BigInteger* Negate();
      // public Org.BouncyCastle.Math.BigInteger Not()
      // Offset: 0x138D604
      Org::BouncyCastle::Math::BigInteger* Not();
      // public Org.BouncyCastle.Math.BigInteger Pow(System.Int32 exp)
      // Offset: 0x138C9F0
      Org::BouncyCastle::Math::BigInteger* Pow(int exp);
      // private System.Int32 Remainder(System.Int32 m)
      // Offset: 0x1391518
      int Remainder(int m);
      // static private System.Int32[] Remainder(System.Int32[] x, System.Int32[] y)
      // Offset: 0x1391590
      static ::ArrayW<int> Remainder(::ArrayW<int> x, ::ArrayW<int> y);
      // public Org.BouncyCastle.Math.BigInteger Remainder(Org.BouncyCastle.Math.BigInteger n)
      // Offset: 0x138EF04
      Org::BouncyCastle::Math::BigInteger* Remainder(Org::BouncyCastle::Math::BigInteger* n);
      // private System.Int32[] LastNBits(System.Int32 n)
      // Offset: 0x138E9A0
      ::ArrayW<int> LastNBits(int n);
      // private Org.BouncyCastle.Math.BigInteger DivideWords(System.Int32 w)
      // Offset: 0x139057C
      Org::BouncyCastle::Math::BigInteger* DivideWords(int w);
      // private Org.BouncyCastle.Math.BigInteger RemainderWords(System.Int32 w)
      // Offset: 0x1390674
      Org::BouncyCastle::Math::BigInteger* RemainderWords(int w);
      // static private System.Int32[] ShiftLeft(System.Int32[] mag, System.Int32 n)
      // Offset: 0x138E020
      static ::ArrayW<int> ShiftLeft(::ArrayW<int> mag, int n);
      // public Org.BouncyCastle.Math.BigInteger ShiftLeft(System.Int32 n)
      // Offset: 0x138CC68
      Org::BouncyCastle::Math::BigInteger* ShiftLeft(int n);
      // static private System.Void ShiftRightInPlace(System.Int32 start, System.Int32[] mag, System.Int32 n)
      // Offset: 0x138E358
      static void ShiftRightInPlace(int start, ::ArrayW<int> mag, int n);
      // static private System.Void ShiftRightOneInPlace(System.Int32 start, System.Int32[] mag)
      // Offset: 0x138E2A4
      static void ShiftRightOneInPlace(int start, ::ArrayW<int> mag);
      // public Org.BouncyCastle.Math.BigInteger ShiftRight(System.Int32 n)
      // Offset: 0x137693C
      Org::BouncyCastle::Math::BigInteger* ShiftRight(int n);
      // static private System.Int32[] Subtract(System.Int32 xStart, System.Int32[] x, System.Int32 yStart, System.Int32[] y)
      // Offset: 0x138E1DC
      static ::ArrayW<int> Subtract(int xStart, ::ArrayW<int> x, int yStart, ::ArrayW<int> y);
      // public Org.BouncyCastle.Math.BigInteger Subtract(Org.BouncyCastle.Math.BigInteger n)
      // Offset: 0x13761E8
      Org::BouncyCastle::Math::BigInteger* Subtract(Org::BouncyCastle::Math::BigInteger* n);
      // static private System.Int32[] doSubBigLil(System.Int32[] bigMag, System.Int32[] lilMag)
      // Offset: 0x138EDC8
      static ::ArrayW<int> doSubBigLil(::ArrayW<int> bigMag, ::ArrayW<int> lilMag);
      // public System.Byte[] ToByteArray()
      // Offset: 0x1391984
      ::ArrayW<uint8_t> ToByteArray();
      // public System.Byte[] ToByteArrayUnsigned()
      // Offset: 0x13826F4
      ::ArrayW<uint8_t> ToByteArrayUnsigned();
      // private System.Byte[] ToByteArray(System.Boolean unsigned)
      // Offset: 0x139198C
      ::ArrayW<uint8_t> ToByteArray(bool _unsigned);
      // public System.String ToString(System.Int32 radix)
      // Offset: 0x1391D68
      ::Il2CppString* ToString(int radix);
      // static private System.Void ToString(System.Text.StringBuilder sb, System.Int32 radix, System.Collections.IList moduli, System.Int32 scale, Org.BouncyCastle.Math.BigInteger pos)
      // Offset: 0x1392678
      static void ToString(System::Text::StringBuilder* sb, int radix, System::Collections::IList* moduli, int scale, Org::BouncyCastle::Math::BigInteger* pos);
      // static private System.Void AppendZeroExtendedString(System.Text.StringBuilder sb, System.String s, System.Int32 minLength)
      // Offset: 0x1392610
      static void AppendZeroExtendedString(System::Text::StringBuilder* sb, ::Il2CppString* s, int minLength);
      // static private Org.BouncyCastle.Math.BigInteger CreateUValueOf(System.UInt64 value)
      // Offset: 0x138C898
      static Org::BouncyCastle::Math::BigInteger* CreateUValueOf(uint64_t value);
      // static private Org.BouncyCastle.Math.BigInteger CreateValueOf(System.Int64 value)
      // Offset: 0x139292C
      static Org::BouncyCastle::Math::BigInteger* CreateValueOf(int64_t value);
      // static public Org.BouncyCastle.Math.BigInteger ValueOf(System.Int64 value)
      // Offset: 0x137FB20
      static Org::BouncyCastle::Math::BigInteger* ValueOf(int64_t value);
      // public System.Int32 GetLowestSetBit()
      // Offset: 0x13929FC
      int GetLowestSetBit();
      // private System.Int32 GetLowestSetBitMaskFirst(System.Int32 firstWordMask)
      // Offset: 0x1392A14
      int GetLowestSetBitMaskFirst(int firstWordMask);
      // public System.Boolean TestBit(System.Int32 n)
      // Offset: 0x137601C
      bool TestBit(int n);
      // public Org.BouncyCastle.Math.BigInteger Or(Org.BouncyCastle.Math.BigInteger value)
      // Offset: 0x1392AB8
      Org::BouncyCastle::Math::BigInteger* Or(Org::BouncyCastle::Math::BigInteger* value);
      // public Org.BouncyCastle.Math.BigInteger Xor(Org.BouncyCastle.Math.BigInteger value)
      // Offset: 0x1392D40
      Org::BouncyCastle::Math::BigInteger* Xor(Org::BouncyCastle::Math::BigInteger* value);
      // public Org.BouncyCastle.Math.BigInteger SetBit(System.Int32 n)
      // Offset: 0x1392FCC
      Org::BouncyCastle::Math::BigInteger* SetBit(int n);
      // private Org.BouncyCastle.Math.BigInteger FlipExistingBit(System.Int32 n)
      // Offset: 0x13930F8
      Org::BouncyCastle::Math::BigInteger* FlipExistingBit(int n);
      // public override System.Boolean Equals(System.Object obj)
      // Offset: 0x138EAFC
      // Implemented from: System.Object
      // Base method: System.Boolean Object::Equals(System.Object obj)
      bool Equals(::Il2CppObject* obj);
      // public override System.Int32 GetHashCode()
      // Offset: 0x138EC4C
      // Implemented from: System.Object
      // Base method: System.Int32 Object::GetHashCode()
      int GetHashCode();
      // public override System.String ToString()
      // Offset: 0x1391D60
      // Implemented from: System.Object
      // Base method: System.String Object::ToString()
      ::Il2CppString* ToString();
    }; // Org.BouncyCastle.Math.BigInteger
    #pragma pack(pop)
    static check_size<sizeof(BigInteger), 36 + sizeof(int)> __Org_BouncyCastle_Math_BigIntegerSizeCheck;
    static_assert(sizeof(BigInteger) == 0x28);
  }
  #include "extern/beatsaber-hook/shared/utils/il2cpp-utils-methods.hpp"
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::get_BitCount
  // Il2CppName: get_BitCount
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<int (Org::BouncyCastle::Math::BigInteger::*)()>(&Org::BouncyCastle::Math::BigInteger::get_BitCount)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "get_BitCount", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::get_BitLength
  // Il2CppName: get_BitLength
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<int (Org::BouncyCastle::Math::BigInteger::*)()>(&Org::BouncyCastle::Math::BigInteger::get_BitLength)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "get_BitLength", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::get_IntValue
  // Il2CppName: get_IntValue
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<int (Org::BouncyCastle::Math::BigInteger::*)()>(&Org::BouncyCastle::Math::BigInteger::get_IntValue)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "get_IntValue", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::get_LongValue
  // Il2CppName: get_LongValue
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<int64_t (Org::BouncyCastle::Math::BigInteger::*)()>(&Org::BouncyCastle::Math::BigInteger::get_LongValue)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "get_LongValue", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::get_SignValue
  // Il2CppName: get_SignValue
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<int (Org::BouncyCastle::Math::BigInteger::*)()>(&Org::BouncyCastle::Math::BigInteger::get_SignValue)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "get_SignValue", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::_cctor
  // Il2CppName: .cctor
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (*)()>(&Org::BouncyCastle::Math::BigInteger::_cctor)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), ".cctor", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::New_ctor
  // Il2CppName: .ctor
  // Cannot get method pointer of value based method overload from template for constructor!
  // Try using FindMethod instead!
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::New_ctor
  // Il2CppName: .ctor
  // Cannot get method pointer of value based method overload from template for constructor!
  // Try using FindMethod instead!
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::New_ctor
  // Il2CppName: .ctor
  // Cannot get method pointer of value based method overload from template for constructor!
  // Try using FindMethod instead!
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::New_ctor
  // Il2CppName: .ctor
  // Cannot get method pointer of value based method overload from template for constructor!
  // Try using FindMethod instead!
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::New_ctor
  // Il2CppName: .ctor
  // Cannot get method pointer of value based method overload from template for constructor!
  // Try using FindMethod instead!
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::New_ctor
  // Il2CppName: .ctor
  // Cannot get method pointer of value based method overload from template for constructor!
  // Try using FindMethod instead!
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::New_ctor
  // Il2CppName: .ctor
  // Cannot get method pointer of value based method overload from template for constructor!
  // Try using FindMethod instead!
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::New_ctor
  // Il2CppName: .ctor
  // Cannot get method pointer of value based method overload from template for constructor!
  // Try using FindMethod instead!
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::GetByteLength
  // Il2CppName: GetByteLength
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<int (*)(int)>(&Org::BouncyCastle::Math::BigInteger::GetByteLength)> {
    static const MethodInfo* get() {
      static auto* nBits = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "GetByteLength", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{nBits});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::Arbitrary
  // Il2CppName: Arbitrary
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<Org::BouncyCastle::Math::BigInteger* (*)(int)>(&Org::BouncyCastle::Math::BigInteger::Arbitrary)> {
    static const MethodInfo* get() {
      static auto* sizeInBits = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "Arbitrary", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{sizeInBits});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::MakeMagnitude
  // Il2CppName: MakeMagnitude
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<::ArrayW<int> (*)(::ArrayW<uint8_t>, int, int)>(&Org::BouncyCastle::Math::BigInteger::MakeMagnitude)> {
    static const MethodInfo* get() {
      static auto* bytes = &il2cpp_functions::array_class_get(::il2cpp_utils::GetClassFromName("System", "Byte"), 1)->byval_arg;
      static auto* offset = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      static auto* length = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "MakeMagnitude", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{bytes, offset, length});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::Abs
  // Il2CppName: Abs
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<Org::BouncyCastle::Math::BigInteger* (Org::BouncyCastle::Math::BigInteger::*)()>(&Org::BouncyCastle::Math::BigInteger::Abs)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "Abs", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::AddMagnitudes
  // Il2CppName: AddMagnitudes
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<::ArrayW<int> (*)(::ArrayW<int>, ::ArrayW<int>)>(&Org::BouncyCastle::Math::BigInteger::AddMagnitudes)> {
    static const MethodInfo* get() {
      static auto* a = &il2cpp_functions::array_class_get(::il2cpp_utils::GetClassFromName("System", "Int32"), 1)->byval_arg;
      static auto* b = &il2cpp_functions::array_class_get(::il2cpp_utils::GetClassFromName("System", "Int32"), 1)->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "AddMagnitudes", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{a, b});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::Add
  // Il2CppName: Add
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<Org::BouncyCastle::Math::BigInteger* (Org::BouncyCastle::Math::BigInteger::*)(Org::BouncyCastle::Math::BigInteger*)>(&Org::BouncyCastle::Math::BigInteger::Add)> {
    static const MethodInfo* get() {
      static auto* value = &::il2cpp_utils::GetClassFromName("Org.BouncyCastle.Math", "BigInteger")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "Add", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{value});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::AddToMagnitude
  // Il2CppName: AddToMagnitude
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<Org::BouncyCastle::Math::BigInteger* (Org::BouncyCastle::Math::BigInteger::*)(::ArrayW<int>)>(&Org::BouncyCastle::Math::BigInteger::AddToMagnitude)> {
    static const MethodInfo* get() {
      static auto* magToAdd = &il2cpp_functions::array_class_get(::il2cpp_utils::GetClassFromName("System", "Int32"), 1)->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "AddToMagnitude", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{magToAdd});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::BitCnt
  // Il2CppName: BitCnt
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<int (*)(int)>(&Org::BouncyCastle::Math::BigInteger::BitCnt)> {
    static const MethodInfo* get() {
      static auto* i = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "BitCnt", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{i});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::CalcBitLength
  // Il2CppName: CalcBitLength
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<int (*)(int, int, ::ArrayW<int>)>(&Org::BouncyCastle::Math::BigInteger::CalcBitLength)> {
    static const MethodInfo* get() {
      static auto* sign = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      static auto* indx = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      static auto* mag = &il2cpp_functions::array_class_get(::il2cpp_utils::GetClassFromName("System", "Int32"), 1)->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "CalcBitLength", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{sign, indx, mag});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::BitLen
  // Il2CppName: BitLen
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<int (*)(int)>(&Org::BouncyCastle::Math::BigInteger::BitLen)> {
    static const MethodInfo* get() {
      static auto* w = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "BitLen", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{w});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::QuickPow2Check
  // Il2CppName: QuickPow2Check
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<bool (Org::BouncyCastle::Math::BigInteger::*)()>(&Org::BouncyCastle::Math::BigInteger::QuickPow2Check)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "QuickPow2Check", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::CompareTo
  // Il2CppName: CompareTo
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<int (*)(int, ::ArrayW<int>, int, ::ArrayW<int>)>(&Org::BouncyCastle::Math::BigInteger::CompareTo)> {
    static const MethodInfo* get() {
      static auto* xIndx = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      static auto* x = &il2cpp_functions::array_class_get(::il2cpp_utils::GetClassFromName("System", "Int32"), 1)->byval_arg;
      static auto* yIndx = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      static auto* y = &il2cpp_functions::array_class_get(::il2cpp_utils::GetClassFromName("System", "Int32"), 1)->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "CompareTo", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{xIndx, x, yIndx, y});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::CompareNoLeadingZeroes
  // Il2CppName: CompareNoLeadingZeroes
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<int (*)(int, ::ArrayW<int>, int, ::ArrayW<int>)>(&Org::BouncyCastle::Math::BigInteger::CompareNoLeadingZeroes)> {
    static const MethodInfo* get() {
      static auto* xIndx = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      static auto* x = &il2cpp_functions::array_class_get(::il2cpp_utils::GetClassFromName("System", "Int32"), 1)->byval_arg;
      static auto* yIndx = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      static auto* y = &il2cpp_functions::array_class_get(::il2cpp_utils::GetClassFromName("System", "Int32"), 1)->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "CompareNoLeadingZeroes", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{xIndx, x, yIndx, y});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::CompareTo
  // Il2CppName: CompareTo
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<int (Org::BouncyCastle::Math::BigInteger::*)(Org::BouncyCastle::Math::BigInteger*)>(&Org::BouncyCastle::Math::BigInteger::CompareTo)> {
    static const MethodInfo* get() {
      static auto* value = &::il2cpp_utils::GetClassFromName("Org.BouncyCastle.Math", "BigInteger")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "CompareTo", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{value});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::Divide
  // Il2CppName: Divide
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<::ArrayW<int> (Org::BouncyCastle::Math::BigInteger::*)(::ArrayW<int>, ::ArrayW<int>)>(&Org::BouncyCastle::Math::BigInteger::Divide)> {
    static const MethodInfo* get() {
      static auto* x = &il2cpp_functions::array_class_get(::il2cpp_utils::GetClassFromName("System", "Int32"), 1)->byval_arg;
      static auto* y = &il2cpp_functions::array_class_get(::il2cpp_utils::GetClassFromName("System", "Int32"), 1)->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "Divide", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{x, y});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::Divide
  // Il2CppName: Divide
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<Org::BouncyCastle::Math::BigInteger* (Org::BouncyCastle::Math::BigInteger::*)(Org::BouncyCastle::Math::BigInteger*)>(&Org::BouncyCastle::Math::BigInteger::Divide)> {
    static const MethodInfo* get() {
      static auto* val = &::il2cpp_utils::GetClassFromName("Org.BouncyCastle.Math", "BigInteger")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "Divide", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{val});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::DivideAndRemainder
  // Il2CppName: DivideAndRemainder
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<::ArrayW<Org::BouncyCastle::Math::BigInteger*> (Org::BouncyCastle::Math::BigInteger::*)(Org::BouncyCastle::Math::BigInteger*)>(&Org::BouncyCastle::Math::BigInteger::DivideAndRemainder)> {
    static const MethodInfo* get() {
      static auto* val = &::il2cpp_utils::GetClassFromName("Org.BouncyCastle.Math", "BigInteger")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "DivideAndRemainder", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{val});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::IsEqualMagnitude
  // Il2CppName: IsEqualMagnitude
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<bool (Org::BouncyCastle::Math::BigInteger::*)(Org::BouncyCastle::Math::BigInteger*)>(&Org::BouncyCastle::Math::BigInteger::IsEqualMagnitude)> {
    static const MethodInfo* get() {
      static auto* x = &::il2cpp_utils::GetClassFromName("Org.BouncyCastle.Math", "BigInteger")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "IsEqualMagnitude", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{x});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::Gcd
  // Il2CppName: Gcd
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<Org::BouncyCastle::Math::BigInteger* (Org::BouncyCastle::Math::BigInteger::*)(Org::BouncyCastle::Math::BigInteger*)>(&Org::BouncyCastle::Math::BigInteger::Gcd)> {
    static const MethodInfo* get() {
      static auto* value = &::il2cpp_utils::GetClassFromName("Org.BouncyCastle.Math", "BigInteger")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "Gcd", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{value});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::Inc
  // Il2CppName: Inc
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<Org::BouncyCastle::Math::BigInteger* (Org::BouncyCastle::Math::BigInteger::*)()>(&Org::BouncyCastle::Math::BigInteger::Inc)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "Inc", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::Min
  // Il2CppName: Min
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<Org::BouncyCastle::Math::BigInteger* (Org::BouncyCastle::Math::BigInteger::*)(Org::BouncyCastle::Math::BigInteger*)>(&Org::BouncyCastle::Math::BigInteger::Min)> {
    static const MethodInfo* get() {
      static auto* value = &::il2cpp_utils::GetClassFromName("Org.BouncyCastle.Math", "BigInteger")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "Min", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{value});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::Mod
  // Il2CppName: Mod
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<Org::BouncyCastle::Math::BigInteger* (Org::BouncyCastle::Math::BigInteger::*)(Org::BouncyCastle::Math::BigInteger*)>(&Org::BouncyCastle::Math::BigInteger::Mod)> {
    static const MethodInfo* get() {
      static auto* m = &::il2cpp_utils::GetClassFromName("Org.BouncyCastle.Math", "BigInteger")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "Mod", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{m});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::ModInverse
  // Il2CppName: ModInverse
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<Org::BouncyCastle::Math::BigInteger* (Org::BouncyCastle::Math::BigInteger::*)(Org::BouncyCastle::Math::BigInteger*)>(&Org::BouncyCastle::Math::BigInteger::ModInverse)> {
    static const MethodInfo* get() {
      static auto* m = &::il2cpp_utils::GetClassFromName("Org.BouncyCastle.Math", "BigInteger")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "ModInverse", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{m});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::ModInversePow2
  // Il2CppName: ModInversePow2
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<Org::BouncyCastle::Math::BigInteger* (Org::BouncyCastle::Math::BigInteger::*)(Org::BouncyCastle::Math::BigInteger*)>(&Org::BouncyCastle::Math::BigInteger::ModInversePow2)> {
    static const MethodInfo* get() {
      static auto* m = &::il2cpp_utils::GetClassFromName("Org.BouncyCastle.Math", "BigInteger")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "ModInversePow2", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{m});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::ModInverse32
  // Il2CppName: ModInverse32
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<int (*)(int)>(&Org::BouncyCastle::Math::BigInteger::ModInverse32)> {
    static const MethodInfo* get() {
      static auto* d = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "ModInverse32", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{d});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::ModInverse64
  // Il2CppName: ModInverse64
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<int64_t (*)(int64_t)>(&Org::BouncyCastle::Math::BigInteger::ModInverse64)> {
    static const MethodInfo* get() {
      static auto* d = &::il2cpp_utils::GetClassFromName("System", "Int64")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "ModInverse64", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{d});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::ExtEuclid
  // Il2CppName: ExtEuclid
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<Org::BouncyCastle::Math::BigInteger* (*)(Org::BouncyCastle::Math::BigInteger*, Org::BouncyCastle::Math::BigInteger*, ByRef<Org::BouncyCastle::Math::BigInteger*>)>(&Org::BouncyCastle::Math::BigInteger::ExtEuclid)> {
    static const MethodInfo* get() {
      static auto* a = &::il2cpp_utils::GetClassFromName("Org.BouncyCastle.Math", "BigInteger")->byval_arg;
      static auto* b = &::il2cpp_utils::GetClassFromName("Org.BouncyCastle.Math", "BigInteger")->byval_arg;
      static auto* u1Out = &::il2cpp_utils::GetClassFromName("Org.BouncyCastle.Math", "BigInteger")->this_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "ExtEuclid", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{a, b, u1Out});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::ModPow
  // Il2CppName: ModPow
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<Org::BouncyCastle::Math::BigInteger* (Org::BouncyCastle::Math::BigInteger::*)(Org::BouncyCastle::Math::BigInteger*, Org::BouncyCastle::Math::BigInteger*)>(&Org::BouncyCastle::Math::BigInteger::ModPow)> {
    static const MethodInfo* get() {
      static auto* e = &::il2cpp_utils::GetClassFromName("Org.BouncyCastle.Math", "BigInteger")->byval_arg;
      static auto* m = &::il2cpp_utils::GetClassFromName("Org.BouncyCastle.Math", "BigInteger")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "ModPow", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{e, m});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::ModPowBarrett
  // Il2CppName: ModPowBarrett
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<Org::BouncyCastle::Math::BigInteger* (*)(Org::BouncyCastle::Math::BigInteger*, Org::BouncyCastle::Math::BigInteger*, Org::BouncyCastle::Math::BigInteger*)>(&Org::BouncyCastle::Math::BigInteger::ModPowBarrett)> {
    static const MethodInfo* get() {
      static auto* b = &::il2cpp_utils::GetClassFromName("Org.BouncyCastle.Math", "BigInteger")->byval_arg;
      static auto* e = &::il2cpp_utils::GetClassFromName("Org.BouncyCastle.Math", "BigInteger")->byval_arg;
      static auto* m = &::il2cpp_utils::GetClassFromName("Org.BouncyCastle.Math", "BigInteger")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "ModPowBarrett", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{b, e, m});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::ReduceBarrett
  // Il2CppName: ReduceBarrett
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<Org::BouncyCastle::Math::BigInteger* (*)(Org::BouncyCastle::Math::BigInteger*, Org::BouncyCastle::Math::BigInteger*, Org::BouncyCastle::Math::BigInteger*, Org::BouncyCastle::Math::BigInteger*)>(&Org::BouncyCastle::Math::BigInteger::ReduceBarrett)> {
    static const MethodInfo* get() {
      static auto* x = &::il2cpp_utils::GetClassFromName("Org.BouncyCastle.Math", "BigInteger")->byval_arg;
      static auto* m = &::il2cpp_utils::GetClassFromName("Org.BouncyCastle.Math", "BigInteger")->byval_arg;
      static auto* mr = &::il2cpp_utils::GetClassFromName("Org.BouncyCastle.Math", "BigInteger")->byval_arg;
      static auto* yu = &::il2cpp_utils::GetClassFromName("Org.BouncyCastle.Math", "BigInteger")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "ReduceBarrett", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{x, m, mr, yu});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::ModPowMonty
  // Il2CppName: ModPowMonty
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<Org::BouncyCastle::Math::BigInteger* (*)(Org::BouncyCastle::Math::BigInteger*, Org::BouncyCastle::Math::BigInteger*, Org::BouncyCastle::Math::BigInteger*, bool)>(&Org::BouncyCastle::Math::BigInteger::ModPowMonty)> {
    static const MethodInfo* get() {
      static auto* b = &::il2cpp_utils::GetClassFromName("Org.BouncyCastle.Math", "BigInteger")->byval_arg;
      static auto* e = &::il2cpp_utils::GetClassFromName("Org.BouncyCastle.Math", "BigInteger")->byval_arg;
      static auto* m = &::il2cpp_utils::GetClassFromName("Org.BouncyCastle.Math", "BigInteger")->byval_arg;
      static auto* convert = &::il2cpp_utils::GetClassFromName("System", "Boolean")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "ModPowMonty", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{b, e, m, convert});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::GetWindowList
  // Il2CppName: GetWindowList
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<::ArrayW<int> (*)(::ArrayW<int>, int)>(&Org::BouncyCastle::Math::BigInteger::GetWindowList)> {
    static const MethodInfo* get() {
      static auto* mag = &il2cpp_functions::array_class_get(::il2cpp_utils::GetClassFromName("System", "Int32"), 1)->byval_arg;
      static auto* extraBits = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "GetWindowList", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{mag, extraBits});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::CreateWindowEntry
  // Il2CppName: CreateWindowEntry
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<int (*)(int, int)>(&Org::BouncyCastle::Math::BigInteger::CreateWindowEntry)> {
    static const MethodInfo* get() {
      static auto* mult = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      static auto* zeroes = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "CreateWindowEntry", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{mult, zeroes});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::Square
  // Il2CppName: Square
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<::ArrayW<int> (*)(::ArrayW<int>, ::ArrayW<int>)>(&Org::BouncyCastle::Math::BigInteger::Square)> {
    static const MethodInfo* get() {
      static auto* w = &il2cpp_functions::array_class_get(::il2cpp_utils::GetClassFromName("System", "Int32"), 1)->byval_arg;
      static auto* x = &il2cpp_functions::array_class_get(::il2cpp_utils::GetClassFromName("System", "Int32"), 1)->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "Square", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{w, x});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::Multiply
  // Il2CppName: Multiply
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<::ArrayW<int> (*)(::ArrayW<int>, ::ArrayW<int>, ::ArrayW<int>)>(&Org::BouncyCastle::Math::BigInteger::Multiply)> {
    static const MethodInfo* get() {
      static auto* x = &il2cpp_functions::array_class_get(::il2cpp_utils::GetClassFromName("System", "Int32"), 1)->byval_arg;
      static auto* y = &il2cpp_functions::array_class_get(::il2cpp_utils::GetClassFromName("System", "Int32"), 1)->byval_arg;
      static auto* z = &il2cpp_functions::array_class_get(::il2cpp_utils::GetClassFromName("System", "Int32"), 1)->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "Multiply", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{x, y, z});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::GetMQuote
  // Il2CppName: GetMQuote
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<int (Org::BouncyCastle::Math::BigInteger::*)()>(&Org::BouncyCastle::Math::BigInteger::GetMQuote)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "GetMQuote", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::MontgomeryReduce
  // Il2CppName: MontgomeryReduce
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (*)(::ArrayW<int>, ::ArrayW<int>, uint)>(&Org::BouncyCastle::Math::BigInteger::MontgomeryReduce)> {
    static const MethodInfo* get() {
      static auto* x = &il2cpp_functions::array_class_get(::il2cpp_utils::GetClassFromName("System", "Int32"), 1)->byval_arg;
      static auto* m = &il2cpp_functions::array_class_get(::il2cpp_utils::GetClassFromName("System", "Int32"), 1)->byval_arg;
      static auto* mDash = &::il2cpp_utils::GetClassFromName("System", "UInt32")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "MontgomeryReduce", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{x, m, mDash});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::MultiplyMonty
  // Il2CppName: MultiplyMonty
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (*)(::ArrayW<int>, ::ArrayW<int>, ::ArrayW<int>, ::ArrayW<int>, uint, bool)>(&Org::BouncyCastle::Math::BigInteger::MultiplyMonty)> {
    static const MethodInfo* get() {
      static auto* a = &il2cpp_functions::array_class_get(::il2cpp_utils::GetClassFromName("System", "Int32"), 1)->byval_arg;
      static auto* x = &il2cpp_functions::array_class_get(::il2cpp_utils::GetClassFromName("System", "Int32"), 1)->byval_arg;
      static auto* y = &il2cpp_functions::array_class_get(::il2cpp_utils::GetClassFromName("System", "Int32"), 1)->byval_arg;
      static auto* m = &il2cpp_functions::array_class_get(::il2cpp_utils::GetClassFromName("System", "Int32"), 1)->byval_arg;
      static auto* mDash = &::il2cpp_utils::GetClassFromName("System", "UInt32")->byval_arg;
      static auto* smallMontyModulus = &::il2cpp_utils::GetClassFromName("System", "Boolean")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "MultiplyMonty", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{a, x, y, m, mDash, smallMontyModulus});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::SquareMonty
  // Il2CppName: SquareMonty
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (*)(::ArrayW<int>, ::ArrayW<int>, ::ArrayW<int>, uint, bool)>(&Org::BouncyCastle::Math::BigInteger::SquareMonty)> {
    static const MethodInfo* get() {
      static auto* a = &il2cpp_functions::array_class_get(::il2cpp_utils::GetClassFromName("System", "Int32"), 1)->byval_arg;
      static auto* x = &il2cpp_functions::array_class_get(::il2cpp_utils::GetClassFromName("System", "Int32"), 1)->byval_arg;
      static auto* m = &il2cpp_functions::array_class_get(::il2cpp_utils::GetClassFromName("System", "Int32"), 1)->byval_arg;
      static auto* mDash = &::il2cpp_utils::GetClassFromName("System", "UInt32")->byval_arg;
      static auto* smallMontyModulus = &::il2cpp_utils::GetClassFromName("System", "Boolean")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "SquareMonty", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{a, x, m, mDash, smallMontyModulus});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::MultiplyMontyNIsOne
  // Il2CppName: MultiplyMontyNIsOne
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<uint (*)(uint, uint, uint, uint)>(&Org::BouncyCastle::Math::BigInteger::MultiplyMontyNIsOne)> {
    static const MethodInfo* get() {
      static auto* x = &::il2cpp_utils::GetClassFromName("System", "UInt32")->byval_arg;
      static auto* y = &::il2cpp_utils::GetClassFromName("System", "UInt32")->byval_arg;
      static auto* m = &::il2cpp_utils::GetClassFromName("System", "UInt32")->byval_arg;
      static auto* mDash = &::il2cpp_utils::GetClassFromName("System", "UInt32")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "MultiplyMontyNIsOne", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{x, y, m, mDash});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::Multiply
  // Il2CppName: Multiply
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<Org::BouncyCastle::Math::BigInteger* (Org::BouncyCastle::Math::BigInteger::*)(Org::BouncyCastle::Math::BigInteger*)>(&Org::BouncyCastle::Math::BigInteger::Multiply)> {
    static const MethodInfo* get() {
      static auto* val = &::il2cpp_utils::GetClassFromName("Org.BouncyCastle.Math", "BigInteger")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "Multiply", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{val});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::Square
  // Il2CppName: Square
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<Org::BouncyCastle::Math::BigInteger* (Org::BouncyCastle::Math::BigInteger::*)()>(&Org::BouncyCastle::Math::BigInteger::Square)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "Square", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::Negate
  // Il2CppName: Negate
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<Org::BouncyCastle::Math::BigInteger* (Org::BouncyCastle::Math::BigInteger::*)()>(&Org::BouncyCastle::Math::BigInteger::Negate)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "Negate", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::Not
  // Il2CppName: Not
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<Org::BouncyCastle::Math::BigInteger* (Org::BouncyCastle::Math::BigInteger::*)()>(&Org::BouncyCastle::Math::BigInteger::Not)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "Not", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::Pow
  // Il2CppName: Pow
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<Org::BouncyCastle::Math::BigInteger* (Org::BouncyCastle::Math::BigInteger::*)(int)>(&Org::BouncyCastle::Math::BigInteger::Pow)> {
    static const MethodInfo* get() {
      static auto* exp = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "Pow", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{exp});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::Remainder
  // Il2CppName: Remainder
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<int (Org::BouncyCastle::Math::BigInteger::*)(int)>(&Org::BouncyCastle::Math::BigInteger::Remainder)> {
    static const MethodInfo* get() {
      static auto* m = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "Remainder", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{m});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::Remainder
  // Il2CppName: Remainder
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<::ArrayW<int> (*)(::ArrayW<int>, ::ArrayW<int>)>(&Org::BouncyCastle::Math::BigInteger::Remainder)> {
    static const MethodInfo* get() {
      static auto* x = &il2cpp_functions::array_class_get(::il2cpp_utils::GetClassFromName("System", "Int32"), 1)->byval_arg;
      static auto* y = &il2cpp_functions::array_class_get(::il2cpp_utils::GetClassFromName("System", "Int32"), 1)->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "Remainder", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{x, y});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::Remainder
  // Il2CppName: Remainder
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<Org::BouncyCastle::Math::BigInteger* (Org::BouncyCastle::Math::BigInteger::*)(Org::BouncyCastle::Math::BigInteger*)>(&Org::BouncyCastle::Math::BigInteger::Remainder)> {
    static const MethodInfo* get() {
      static auto* n = &::il2cpp_utils::GetClassFromName("Org.BouncyCastle.Math", "BigInteger")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "Remainder", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{n});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::LastNBits
  // Il2CppName: LastNBits
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<::ArrayW<int> (Org::BouncyCastle::Math::BigInteger::*)(int)>(&Org::BouncyCastle::Math::BigInteger::LastNBits)> {
    static const MethodInfo* get() {
      static auto* n = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "LastNBits", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{n});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::DivideWords
  // Il2CppName: DivideWords
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<Org::BouncyCastle::Math::BigInteger* (Org::BouncyCastle::Math::BigInteger::*)(int)>(&Org::BouncyCastle::Math::BigInteger::DivideWords)> {
    static const MethodInfo* get() {
      static auto* w = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "DivideWords", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{w});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::RemainderWords
  // Il2CppName: RemainderWords
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<Org::BouncyCastle::Math::BigInteger* (Org::BouncyCastle::Math::BigInteger::*)(int)>(&Org::BouncyCastle::Math::BigInteger::RemainderWords)> {
    static const MethodInfo* get() {
      static auto* w = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "RemainderWords", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{w});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::ShiftLeft
  // Il2CppName: ShiftLeft
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<::ArrayW<int> (*)(::ArrayW<int>, int)>(&Org::BouncyCastle::Math::BigInteger::ShiftLeft)> {
    static const MethodInfo* get() {
      static auto* mag = &il2cpp_functions::array_class_get(::il2cpp_utils::GetClassFromName("System", "Int32"), 1)->byval_arg;
      static auto* n = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "ShiftLeft", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{mag, n});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::ShiftLeft
  // Il2CppName: ShiftLeft
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<Org::BouncyCastle::Math::BigInteger* (Org::BouncyCastle::Math::BigInteger::*)(int)>(&Org::BouncyCastle::Math::BigInteger::ShiftLeft)> {
    static const MethodInfo* get() {
      static auto* n = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "ShiftLeft", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{n});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::ShiftRightInPlace
  // Il2CppName: ShiftRightInPlace
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (*)(int, ::ArrayW<int>, int)>(&Org::BouncyCastle::Math::BigInteger::ShiftRightInPlace)> {
    static const MethodInfo* get() {
      static auto* start = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      static auto* mag = &il2cpp_functions::array_class_get(::il2cpp_utils::GetClassFromName("System", "Int32"), 1)->byval_arg;
      static auto* n = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "ShiftRightInPlace", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{start, mag, n});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::ShiftRightOneInPlace
  // Il2CppName: ShiftRightOneInPlace
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (*)(int, ::ArrayW<int>)>(&Org::BouncyCastle::Math::BigInteger::ShiftRightOneInPlace)> {
    static const MethodInfo* get() {
      static auto* start = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      static auto* mag = &il2cpp_functions::array_class_get(::il2cpp_utils::GetClassFromName("System", "Int32"), 1)->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "ShiftRightOneInPlace", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{start, mag});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::ShiftRight
  // Il2CppName: ShiftRight
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<Org::BouncyCastle::Math::BigInteger* (Org::BouncyCastle::Math::BigInteger::*)(int)>(&Org::BouncyCastle::Math::BigInteger::ShiftRight)> {
    static const MethodInfo* get() {
      static auto* n = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "ShiftRight", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{n});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::Subtract
  // Il2CppName: Subtract
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<::ArrayW<int> (*)(int, ::ArrayW<int>, int, ::ArrayW<int>)>(&Org::BouncyCastle::Math::BigInteger::Subtract)> {
    static const MethodInfo* get() {
      static auto* xStart = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      static auto* x = &il2cpp_functions::array_class_get(::il2cpp_utils::GetClassFromName("System", "Int32"), 1)->byval_arg;
      static auto* yStart = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      static auto* y = &il2cpp_functions::array_class_get(::il2cpp_utils::GetClassFromName("System", "Int32"), 1)->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "Subtract", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{xStart, x, yStart, y});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::Subtract
  // Il2CppName: Subtract
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<Org::BouncyCastle::Math::BigInteger* (Org::BouncyCastle::Math::BigInteger::*)(Org::BouncyCastle::Math::BigInteger*)>(&Org::BouncyCastle::Math::BigInteger::Subtract)> {
    static const MethodInfo* get() {
      static auto* n = &::il2cpp_utils::GetClassFromName("Org.BouncyCastle.Math", "BigInteger")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "Subtract", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{n});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::doSubBigLil
  // Il2CppName: doSubBigLil
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<::ArrayW<int> (*)(::ArrayW<int>, ::ArrayW<int>)>(&Org::BouncyCastle::Math::BigInteger::doSubBigLil)> {
    static const MethodInfo* get() {
      static auto* bigMag = &il2cpp_functions::array_class_get(::il2cpp_utils::GetClassFromName("System", "Int32"), 1)->byval_arg;
      static auto* lilMag = &il2cpp_functions::array_class_get(::il2cpp_utils::GetClassFromName("System", "Int32"), 1)->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "doSubBigLil", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{bigMag, lilMag});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::ToByteArray
  // Il2CppName: ToByteArray
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<::ArrayW<uint8_t> (Org::BouncyCastle::Math::BigInteger::*)()>(&Org::BouncyCastle::Math::BigInteger::ToByteArray)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "ToByteArray", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::ToByteArrayUnsigned
  // Il2CppName: ToByteArrayUnsigned
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<::ArrayW<uint8_t> (Org::BouncyCastle::Math::BigInteger::*)()>(&Org::BouncyCastle::Math::BigInteger::ToByteArrayUnsigned)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "ToByteArrayUnsigned", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::ToByteArray
  // Il2CppName: ToByteArray
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<::ArrayW<uint8_t> (Org::BouncyCastle::Math::BigInteger::*)(bool)>(&Org::BouncyCastle::Math::BigInteger::ToByteArray)> {
    static const MethodInfo* get() {
      static auto* _unsigned = &::il2cpp_utils::GetClassFromName("System", "Boolean")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "ToByteArray", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{_unsigned});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::ToString
  // Il2CppName: ToString
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<::Il2CppString* (Org::BouncyCastle::Math::BigInteger::*)(int)>(&Org::BouncyCastle::Math::BigInteger::ToString)> {
    static const MethodInfo* get() {
      static auto* radix = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "ToString", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{radix});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::ToString
  // Il2CppName: ToString
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (*)(System::Text::StringBuilder*, int, System::Collections::IList*, int, Org::BouncyCastle::Math::BigInteger*)>(&Org::BouncyCastle::Math::BigInteger::ToString)> {
    static const MethodInfo* get() {
      static auto* sb = &::il2cpp_utils::GetClassFromName("System.Text", "StringBuilder")->byval_arg;
      static auto* radix = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      static auto* moduli = &::il2cpp_utils::GetClassFromName("System.Collections", "IList")->byval_arg;
      static auto* scale = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      static auto* pos = &::il2cpp_utils::GetClassFromName("Org.BouncyCastle.Math", "BigInteger")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "ToString", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{sb, radix, moduli, scale, pos});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::AppendZeroExtendedString
  // Il2CppName: AppendZeroExtendedString
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (*)(System::Text::StringBuilder*, ::Il2CppString*, int)>(&Org::BouncyCastle::Math::BigInteger::AppendZeroExtendedString)> {
    static const MethodInfo* get() {
      static auto* sb = &::il2cpp_utils::GetClassFromName("System.Text", "StringBuilder")->byval_arg;
      static auto* s = &::il2cpp_utils::GetClassFromName("System", "String")->byval_arg;
      static auto* minLength = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "AppendZeroExtendedString", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{sb, s, minLength});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::CreateUValueOf
  // Il2CppName: CreateUValueOf
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<Org::BouncyCastle::Math::BigInteger* (*)(uint64_t)>(&Org::BouncyCastle::Math::BigInteger::CreateUValueOf)> {
    static const MethodInfo* get() {
      static auto* value = &::il2cpp_utils::GetClassFromName("System", "UInt64")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "CreateUValueOf", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{value});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::CreateValueOf
  // Il2CppName: CreateValueOf
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<Org::BouncyCastle::Math::BigInteger* (*)(int64_t)>(&Org::BouncyCastle::Math::BigInteger::CreateValueOf)> {
    static const MethodInfo* get() {
      static auto* value = &::il2cpp_utils::GetClassFromName("System", "Int64")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "CreateValueOf", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{value});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::ValueOf
  // Il2CppName: ValueOf
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<Org::BouncyCastle::Math::BigInteger* (*)(int64_t)>(&Org::BouncyCastle::Math::BigInteger::ValueOf)> {
    static const MethodInfo* get() {
      static auto* value = &::il2cpp_utils::GetClassFromName("System", "Int64")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "ValueOf", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{value});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::GetLowestSetBit
  // Il2CppName: GetLowestSetBit
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<int (Org::BouncyCastle::Math::BigInteger::*)()>(&Org::BouncyCastle::Math::BigInteger::GetLowestSetBit)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "GetLowestSetBit", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::GetLowestSetBitMaskFirst
  // Il2CppName: GetLowestSetBitMaskFirst
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<int (Org::BouncyCastle::Math::BigInteger::*)(int)>(&Org::BouncyCastle::Math::BigInteger::GetLowestSetBitMaskFirst)> {
    static const MethodInfo* get() {
      static auto* firstWordMask = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "GetLowestSetBitMaskFirst", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{firstWordMask});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::TestBit
  // Il2CppName: TestBit
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<bool (Org::BouncyCastle::Math::BigInteger::*)(int)>(&Org::BouncyCastle::Math::BigInteger::TestBit)> {
    static const MethodInfo* get() {
      static auto* n = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "TestBit", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{n});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::Or
  // Il2CppName: Or
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<Org::BouncyCastle::Math::BigInteger* (Org::BouncyCastle::Math::BigInteger::*)(Org::BouncyCastle::Math::BigInteger*)>(&Org::BouncyCastle::Math::BigInteger::Or)> {
    static const MethodInfo* get() {
      static auto* value = &::il2cpp_utils::GetClassFromName("Org.BouncyCastle.Math", "BigInteger")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "Or", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{value});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::Xor
  // Il2CppName: Xor
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<Org::BouncyCastle::Math::BigInteger* (Org::BouncyCastle::Math::BigInteger::*)(Org::BouncyCastle::Math::BigInteger*)>(&Org::BouncyCastle::Math::BigInteger::Xor)> {
    static const MethodInfo* get() {
      static auto* value = &::il2cpp_utils::GetClassFromName("Org.BouncyCastle.Math", "BigInteger")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "Xor", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{value});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::SetBit
  // Il2CppName: SetBit
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<Org::BouncyCastle::Math::BigInteger* (Org::BouncyCastle::Math::BigInteger::*)(int)>(&Org::BouncyCastle::Math::BigInteger::SetBit)> {
    static const MethodInfo* get() {
      static auto* n = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "SetBit", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{n});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::FlipExistingBit
  // Il2CppName: FlipExistingBit
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<Org::BouncyCastle::Math::BigInteger* (Org::BouncyCastle::Math::BigInteger::*)(int)>(&Org::BouncyCastle::Math::BigInteger::FlipExistingBit)> {
    static const MethodInfo* get() {
      static auto* n = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "FlipExistingBit", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{n});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::Equals
  // Il2CppName: Equals
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<bool (Org::BouncyCastle::Math::BigInteger::*)(::Il2CppObject*)>(&Org::BouncyCastle::Math::BigInteger::Equals)> {
    static const MethodInfo* get() {
      static auto* obj = &::il2cpp_utils::GetClassFromName("System", "Object")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "Equals", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{obj});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::GetHashCode
  // Il2CppName: GetHashCode
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<int (Org::BouncyCastle::Math::BigInteger::*)()>(&Org::BouncyCastle::Math::BigInteger::GetHashCode)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "GetHashCode", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: Org::BouncyCastle::Math::BigInteger::ToString
  // Il2CppName: ToString
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<::Il2CppString* (Org::BouncyCastle::Math::BigInteger::*)()>(&Org::BouncyCastle::Math::BigInteger::ToString)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(Org::BouncyCastle::Math::BigInteger*), "ToString", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  