# DoubleWheelActivity_View_DoubleWheelActivityMainWindow_2004.luac
; fn @DoubleWheelActivityMainWindow.lua  line 0-0 np=0 va=1 ms=4 code=145 consts=62 upvals=1 protos=42
;   K[0]='DoubleWheelActivityMainWindow'
;   K[1]='setmetatable'
;   K[2]='DoubleWheelActivityBaseWindow'
;   K[3]='__index'
;   K[4]='Appear'
;   K[5]='appear'
;   K[6]='Appear2'
;   K[7]='appear2'
;   K[8]='Appear3'
;   K[9]='appear3'
;   K[10]='Idle1'
;   K[11]='idle1'
;   K[12]='Idle2'
;   K[13]='idle2'
;   K[14]=6
;   K[15]='A'
;   K[16]=8
;   K[17]='B'
;   K[18]=10
;   K[19]='C'
;   K[20]='_InitModelData'
;   K[21]='_InitView'
;   K[22]='_UpdateView'
;   K[23]='_AddListeners'
;   K[24]='_OnStateChanged'
;   K[25]='OnCloseView'
;   K[26]='OnDestroy'
;   K[27]='OnCloseBtnClick'
;   K[28]='_OnOpenView'
;   K[29]='_OnCloseView'
;   K[30]='GetHudButton'
;   K[31]='GetUnlockRoot'
;   K[32]='GetWheelRoot'
;   K[33]='GetSpinButtonRectTransfrom'
;   K[34]='GetUnlockButtonRoot'
;   K[35]='GetShellRectTransform'
;   K[36]='_IsLastChanceActivityValid'
;   K[37]='_IsLastChanceSpinValid'
;   K[38]='_IsLastChanceValid'
;   K[39]='_LoadWheel'
;   K[40]='_TryUpgradeWheel'
;   K[41]='_IsInAnimLock'
;   K[42]='AddAnimLock'
;   K[43]='RemoveAnimLock'
;   K[44]='_TryAnimInSequence'
;   K[45]='_TryClaimPaidRewards'
;   K[46]='_TryPlayUpgradeAnimation'
;   K[47]='_TryPlayFinishAnimation'
;   K[48]='_TryOpenRewardWindow'
;   K[49]='_PlayUnlockAnimation'
;   K[50]='OnHelpBtnClick'
;   K[51]='OnBtnClicked'
;   K[52]='_SpeedUp'
;   K[53]='OnUnlockBtnClicked'
;   K[54]='_OnPurchaseSuccess'
;   K[55]='_ShowPrompt'
;   K[56]='_TryShowShellTip'
;   K[57]='_TryKillGestureTapSequence'
;   K[58]='_TryStartGestureTap'
;   K[59]='Update'
;   K[60]='_StopGestureTap'
;   K[61]='OnTestUpgradeBtnClicked'
;   upvals: _ENV
;   locals: EShellAnimationName(14-145), mapSkinName(18-145)
0000  GETTABUP  R0 = _ENV[K1('setmetatable')]
0001  NEWTABLE  R1 = {} (0 items)
0002  GETTABUP  R2 = _ENV[K2('DoubleWheelActivityBaseWindow')]
0003  CALL      R0 = call(R0, 1 args, 2 rets)
0004  SETTABUP  _ENV[K0('DoubleWheelActivityMainWindow')] = R0
0005  GETTABUP  R0 = _ENV[K0('DoubleWheelActivityMainWindow')]
0006  GETTABUP  R1 = _ENV[K0('DoubleWheelActivityMainWindow')]
0007  SETTABLE  R0[K3('__index')] = R1
0008  NEWTABLE  R0 = {} (0 items)
0009  SETTABLE  R0[K4('Appear')] = K5('appear')
0010  SETTABLE  R0[K6('Appear2')] = K7('appear2')
0011  SETTABLE  R0[K8('Appear3')] = K9('appear3')
0012  SETTABLE  R0[K10('Idle1')] = K11('idle1')
0013  SETTABLE  R0[K12('Idle2')] = K13('idle2')
0014  NEWTABLE  R1 = {} (0 items)
0015  SETTABLE  R1[K14(6)] = K15('A')
0016  SETTABLE  R1[K16(8)] = K17('B')
0017  SETTABLE  R1[K18(10)] = K19('C')
0018  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0019  CLOSURE   R3 = closure proto0
0020  SETTABLE  R2[K20('_InitModelData')] = R3
0021  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0022  CLOSURE   R3 = closure proto1
0023  SETTABLE  R2[K21('_InitView')] = R3
0024  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0025  CLOSURE   R3 = closure proto2
0026  SETTABLE  R2[K22('_UpdateView')] = R3
0027  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0028  CLOSURE   R3 = closure proto3
0029  SETTABLE  R2[K23('_AddListeners')] = R3
0030  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0031  CLOSURE   R3 = closure proto4
0032  SETTABLE  R2[K24('_OnStateChanged')] = R3
0033  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0034  CLOSURE   R3 = closure proto5
0035  SETTABLE  R2[K25('OnCloseView')] = R3
0036  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0037  CLOSURE   R3 = closure proto6
0038  SETTABLE  R2[K26('OnDestroy')] = R3
0039  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0040  CLOSURE   R3 = closure proto7
0041  SETTABLE  R2[K27('OnCloseBtnClick')] = R3
0042  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0043  CLOSURE   R3 = closure proto8
0044  SETTABLE  R2[K28('_OnOpenView')] = R3
0045  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0046  CLOSURE   R3 = closure proto9
0047  SETTABLE  R2[K29('_OnCloseView')] = R3
0048  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0049  CLOSURE   R3 = closure proto10
0050  SETTABLE  R2[K30('GetHudButton')] = R3
0051  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0052  CLOSURE   R3 = closure proto11
0053  SETTABLE  R2[K31('GetUnlockRoot')] = R3
0054  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0055  CLOSURE   R3 = closure proto12
0056  SETTABLE  R2[K32('GetWheelRoot')] = R3
0057  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0058  CLOSURE   R3 = closure proto13
0059  SETTABLE  R2[K33('GetSpinButtonRectTransfrom')] = R3
0060  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0061  CLOSURE   R3 = closure proto14
0062  SETTABLE  R2[K34('GetUnlockButtonRoot')] = R3
0063  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0064  CLOSURE   R3 = closure proto15
0065  SETTABLE  R2[K35('GetShellRectTransform')] = R3
0066  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0067  CLOSURE   R3 = closure proto16
0068  SETTABLE  R2[K36('_IsLastChanceActivityValid')] = R3
0069  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0070  CLOSURE   R3 = closure proto17
0071  SETTABLE  R2[K37('_IsLastChanceSpinValid')] = R3
0072  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0073  CLOSURE   R3 = closure proto18
0074  SETTABLE  R2[K38('_IsLastChanceValid')] = R3
0075  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0076  CLOSURE   R3 = closure proto19
0077  SETTABLE  R2[K39('_LoadWheel')] = R3
0078  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0079  CLOSURE   R3 = closure proto20
0080  SETTABLE  R2[K40('_TryUpgradeWheel')] = R3
0081  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0082  CLOSURE   R3 = closure proto21
0083  SETTABLE  R2[K41('_IsInAnimLock')] = R3
0084  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0085  CLOSURE   R3 = closure proto22
0086  SETTABLE  R2[K42('AddAnimLock')] = R3
0087  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0088  CLOSURE   R3 = closure proto23
0089  SETTABLE  R2[K43('RemoveAnimLock')] = R3
0090  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0091  CLOSURE   R3 = closure proto24
0092  SETTABLE  R2[K44('_TryAnimInSequence')] = R3
0093  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0094  CLOSURE   R3 = closure proto25
0095  SETTABLE  R2[K45('_TryClaimPaidRewards')] = R3
0096  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0097  CLOSURE   R3 = closure proto26
0098  SETTABLE  R2[K46('_TryPlayUpgradeAnimation')] = R3
0099  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0100  CLOSURE   R3 = closure proto27
0101  SETTABLE  R2[K47('_TryPlayFinishAnimation')] = R3
0102  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0103  CLOSURE   R3 = closure proto28
0104  SETTABLE  R2[K48('_TryOpenRewardWindow')] = R3
0105  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0106  CLOSURE   R3 = closure proto29
0107  SETTABLE  R2[K49('_PlayUnlockAnimation')] = R3
0108  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0109  CLOSURE   R3 = closure proto30
0110  SETTABLE  R2[K50('OnHelpBtnClick')] = R3
0111  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0112  CLOSURE   R3 = closure proto31
0113  SETTABLE  R2[K51('OnBtnClicked')] = R3
0114  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0115  CLOSURE   R3 = closure proto32
0116  SETTABLE  R2[K52('_SpeedUp')] = R3
0117  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0118  CLOSURE   R3 = closure proto33
0119  SETTABLE  R2[K53('OnUnlockBtnClicked')] = R3
0120  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0121  CLOSURE   R3 = closure proto34
0122  SETTABLE  R2[K54('_OnPurchaseSuccess')] = R3
0123  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0124  CLOSURE   R3 = closure proto35
0125  SETTABLE  R2[K55('_ShowPrompt')] = R3
0126  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0127  CLOSURE   R3 = closure proto36
0128  SETTABLE  R2[K56('_TryShowShellTip')] = R3
0129  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0130  CLOSURE   R3 = closure proto37
0131  SETTABLE  R2[K57('_TryKillGestureTapSequence')] = R3
0132  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0133  CLOSURE   R3 = closure proto38
0134  SETTABLE  R2[K58('_TryStartGestureTap')] = R3
0135  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0136  CLOSURE   R3 = closure proto39
0137  SETTABLE  R2[K59('Update')] = R3
0138  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0139  CLOSURE   R3 = closure proto40
0140  SETTABLE  R2[K60('_StopGestureTap')] = R3
0141  GETTABUP  R2 = _ENV[K0('DoubleWheelActivityMainWindow')]
0142  CLOSURE   R3 = closure proto41
0143  SETTABLE  R2[K61('OnTestUpgradeBtnClicked')] = R3
0144  RETURN    return R0..R-1
; ---------- proto0 [_InitModelData] ----------
  ; fn ?  line 61-75 np=1 va=0 ms=4 code=40 consts=24 upvals=1 protos=0
  ;   K[0]='GetModel'
  ;   K[1]='m_bLastChance'
  ;   K[2]='GetState'
  ;   K[3]='ActivityState'
  ;   K[4]='Ended'
  ;   K[5]='m_wheelIndex'
  ;   K[6]='GetCurrentWheelIndex'
  ;   K[7]='m_totalRewardCount'
  ;   K[8]='GetCurrentTotalRewardCount'
  ;   K[9]='m_tokenNeeded'
  ;   K[10]='GetCurrentTokenNeeded'
  ;   K[11]='m_bHasPaidThisWheel'
  ;   K[12]='HasPaidThisWheel'
  ;   K[13]='m_iconName'
  ;   K[14]='GetActivityDefinition'
  ;   K[15]='ActivityTokenIconName'
  ;   K[16]='m_energyNum'
  ;   K[17]='m_tokenNum'
  ;   K[18]='GetCostEnergyInfo'
  ;   K[19]='m_bCanSpin'
  ;   K[20]='CanSpin'
  ;   K[21]='m_bSpinFinished'
  ;   K[22]='IsCurrentWheelSpinFinished'
  ;   K[23]='OnMainWindowPoped'
  ;   upvals: _ENV
  ;   locals: self(0-40), model(2-40)
  0000  SELF      R2 = R0[K0('GetModel')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  SELF      R3 = R1[K2('GetState')] (self)
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  GETTABUP  R3 = _ENV[K3('ActivityState')]
  0005  GETTABLE  R3 = R3[K4('Ended')]
  0006  EQ        if R1 eq R3   -> -130037
  0007  JMP       (jump)   -> 9
  0008  LOADBOOL  R2 = false
  0009  LOADBOOL  R2 = true
  0010  SETTABLE  R0[K1('m_bLastChance')] = R2
  0011  SELF      R3 = R1[K6('GetCurrentWheelIndex')] (self)
  0012  CALL      R2 = call(R2, 1 args, 1 rets)
  0013  SETTABLE  R0[K5('m_wheelIndex')] = R2
  0014  SELF      R3 = R1[K8('GetCurrentTotalRewardCount')] (self)
  0015  CALL      R2 = call(R2, 1 args, 1 rets)
  0016  SETTABLE  R0[K7('m_totalRewardCount')] = R2
  0017  SELF      R3 = R1[K10('GetCurrentTokenNeeded')] (self)
  0018  CALL      R2 = call(R2, 1 args, 1 rets)
  0019  SETTABLE  R0[K9('m_tokenNeeded')] = R2
  0020  SELF      R3 = R1[K12('HasPaidThisWheel')] (self)
  0021  CALL      R2 = call(R2, 1 args, 1 rets)
  0022  SETTABLE  R0[K11('m_bHasPaidThisWheel')] = R2
  0023  SELF      R3 = R1[K14('GetActivityDefinition')] (self)
  0024  CALL      R2 = call(R2, 1 args, 1 rets)
  0025  GETTABLE  R2 = R2[K15('ActivityTokenIconName')]
  0026  SETTABLE  R0[K13('m_iconName')] = R2
  0027  SELF      R3 = R1[K18('GetCostEnergyInfo')] (self)
  0028  CALL      R2 = call(R2, 2 args, 1 rets)
  0029  SETTABLE  R0[K17('m_tokenNum')] = R3
  0030  SETTABLE  R0[K16('m_energyNum')] = R2
  0031  SELF      R3 = R1[K20('CanSpin')] (self)
  0032  CALL      R2 = call(R2, 1 args, 1 rets)
  0033  SETTABLE  R0[K19('m_bCanSpin')] = R2
  0034  SELF      R3 = R1[K22('IsCurrentWheelSpinFinished')] (self)
  0035  CALL      R2 = call(R2, 1 args, 1 rets)
  0036  SETTABLE  R0[K21('m_bSpinFinished')] = R2
  0037  SELF      R3 = R1[K23('OnMainWindowPoped')] (self)
  0038  CALL      R2 = call(R2, 0 args, 1 rets)
  0039  RETURN    return R0..R-1
; ---------- proto1 [_InitView] ----------
  ; fn ?  line 78-102 np=1 va=0 ms=7 code=43 consts=22 upvals=2 protos=1
  ;   K[0]='GetModel'
  ;   K[1]='m_mapAnimLock'
  ;   K[2]='m_wheel'
  ;   K[3]='_LoadWheel'
  ;   K[4]='m_shellSpine'
  ;   K[5]='Init'
  ;   K[6]='SetAnimation'
  ;   K[7]='m_bHasPaidThisWheel'
  ;   K[8]='Idle2'
  ;   K[9]='Idle1'
  ;   K[10]='_UpdateView'
  ;   K[11]='GM'
  ;   K[12]='UIManager'
  ;   K[13]='SetEventLock'
  ;   K[14]='AddAnimLock'
  ;   K[15]='DOTween'
  ;   K[16]='Sequence'
  ;   K[17]='AppendInterval'
  ;   K[18]='EDurationDefine'
  ;   K[19]='TimePerFrame'
  ;   K[20]=65
  ;   K[21]='AppendCallback'
  ;   upvals: EShellAnimationName, _ENV
  ;   locals: self(0-43), model(2-43), lock(31-43), sequence(34-43)
  0000  SELF      R2 = R0[K0('GetModel')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  NEWTABLE  R2 = {} (0 items)
  0003  SETTABLE  R0[K1('m_mapAnimLock')] = R2
  0004  SELF      R3 = R0[K3('_LoadWheel')] (self)
  0005  CALL      R2 = call(R2, 1 args, 1 rets)
  0006  SETTABLE  R0[K2('m_wheel')] = R2
  0007  GETTABLE  R2 = R0[K4('m_shellSpine')]
  0008  SELF      R3 = R2[K5('Init')] (self)
  0009  CALL      R2 = call(R2, 0 args, 1 rets)
  0010  GETTABLE  R2 = R0[K4('m_shellSpine')]
  0011  SELF      R3 = R2[K6('SetAnimation')] (self)
  0012  GETTABLE  R4 = R0[K7('m_bHasPaidThisWheel')]
  0013  TEST      if not R4 then   -> -131057
  0014  JMP       (jump)   -> 18
  0015  GETTABUP  R4 = EShellAnimationName[K8('Idle2')]
  0016  TEST      if not R4 then   -> -131053
  0017  JMP       (jump)   -> 19
  0018  GETTABUP  R4 = EShellAnimationName[K9('Idle1')]
  0019  LOADBOOL  R5 = true
  0020  CALL      R2 = call(R2, 0 args, 3 rets)
  0021  SELF      R3 = R0[K10('_UpdateView')] (self)
  0022  CALL      R2 = call(R2, 0 args, 1 rets)
  0023  GETTABUP  R2 = _ENV[K11('GM')]
  0024  GETTABLE  R2 = R2[K12('UIManager')]
  0025  SELF      R3 = R2[K13('SetEventLock')] (self)
  0026  LOADBOOL  R4 = true
  0027  MOVE      R5 = R0
  0028  CALL      R2 = call(R2, 0 args, 3 rets)
  0029  SELF      R3 = R0[K14('AddAnimLock')] (self)
  0030  CALL      R2 = call(R2, 1 args, 1 rets)
  0031  GETTABUP  R3 = _ENV[K15('DOTween')]
  0032  GETTABLE  R3 = R3[K16('Sequence')]
  0033  CALL      R3 = call(R3, 1 args, 0 rets)
  0034  SELF      R5 = R3[K17('AppendInterval')] (self)
  0035  GETTABUP  R6 = _ENV[K18('EDurationDefine')]
  0036  GETTABLE  R6 = R6[K19('TimePerFrame')]
  0037  MUL       R6 = R6 mul K20(65)
  0038  CALL      R4 = call(R4, 0 args, 2 rets)
  0039  SELF      R5 = R3[K21('AppendCallback')] (self)
  0040  CLOSURE   R6 = closure proto0
  0041  CALL      R4 = call(R4, 0 args, 2 rets)
  0042  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 94-101 np=0 va=0 ms=4 code=36 consts=11 upvals=4 protos=0
    ;   K[0]='GM'
    ;   K[1]='UIManager'
    ;   K[2]='SetEventLock'
    ;   K[3]='RemoveAnimLock'
    ;   K[4]='OnMainWindowAnimationEnd'
    ;   K[5]='m_bSpinFinished'
    ;   K[6]='_IsActivityValid'
    ;   K[7]='_IsInAnimLock'
    ;   K[8]='TutorialModel'
    ;   K[9]='HasAnyStrongTutorialOngoing'
    ;   K[10]='OnUnlockBtnClicked'
    ;   upvals: _ENV, self, lock, model
    0000  GETTABUP  R0 = _ENV[K0('GM')]
    0001  GETTABLE  R0 = R0[K1('UIManager')]
    0002  SELF      R1 = R0[K2('SetEventLock')] (self)
    0003  LOADBOOL  R2 = false
    0004  GETUPVAL  R3 = _ENV
    0005  CALL      R0 = call(R0, 0 args, 3 rets)
    0006  GETUPVAL  R0 = _ENV
    0007  SELF      R1 = R0[K3('RemoveAnimLock')] (self)
    0008  GETUPVAL  R2 = _ENV
    0009  CALL      R0 = call(R0, 0 args, 2 rets)
    0010  GETUPVAL  R0 = _ENV
    0011  SELF      R1 = R0[K4('OnMainWindowAnimationEnd')] (self)
    0012  CALL      R0 = call(R0, 0 args, 1 rets)
    0013  GETTABUP  R0 = self[K5('m_bSpinFinished')]
    0014  TEST      if not R0 then   -> -131056
    0015  JMP       (jump)   -> 35
    0016  GETUPVAL  R0 = _ENV
    0017  SELF      R1 = R0[K6('_IsActivityValid')] (self)
    0018  CALL      R0 = call(R0, 1 args, 1 rets)
    0019  TEST      if not R0 then   -> -131051
    0020  JMP       (jump)   -> 35
    0021  GETUPVAL  R0 = _ENV
    0022  SELF      R1 = R0[K7('_IsInAnimLock')] (self)
    0023  CALL      R0 = call(R0, 1 args, 1 rets)
    0024  TEST      if not R0 then   -> -131045
    0025  JMP       (jump)   -> 35
    0026  GETTABUP  R0 = _ENV[K0('GM')]
    0027  GETTABLE  R0 = R0[K8('TutorialModel')]
    0028  SELF      R1 = R0[K9('HasAnyStrongTutorialOngoing')] (self)
    0029  CALL      R0 = call(R0, 1 args, 1 rets)
    0030  TEST      if not R0 then   -> -131039
    0031  JMP       (jump)   -> 35
    0032  GETUPVAL  R0 = _ENV
    0033  SELF      R1 = R0[K10('OnUnlockBtnClicked')] (self)
    0034  CALL      R0 = call(R0, 0 args, 1 rets)
    0035  RETURN    return R0..R-1
; ---------- proto2 [_UpdateView] ----------
  ; fn ?  line 104-110 np=1 va=0 ms=9 code=35 consts=23 upvals=2 protos=0
  ;   K[0]='m_buttonNumText'
  ;   K[1]='text'
  ;   K[2]='tostring'
  ;   K[3]='m_tokenNeeded'
  ;   K[4]='m_descText'
  ;   K[5]='GM'
  ;   K[6]='GameTextModel'
  ;   K[7]='GetText'
  ;   K[8]='doubleWheel_token_collect'
  ;   K[9]='m_energyNum'
  ;   K[10]='m_tokenNum'
  ;   K[11]='m_iconName'
  ;   K[12]='UIUtil'
  ;   K[13]='SetActive'
  ;   K[14]='m_unlockButtonGo'
  ;   K[15]='m_bHasPaidThisWheel'
  ;   K[16]='m_spinButton'
  ;   K[17]='SetEnabled'
  ;   K[18]='m_bCanSpin'
  ;   K[19]='m_shellSpine'
  ;   K[20]='SetSkin'
  ;   K[21]='m_totalRewardCount'
  ;   K[22]='A'
  ;   upvals: _ENV, mapSkinName
  ;   locals: self(0-35)
  0000  GETTABLE  R1 = R0[K0('m_buttonNumText')]
  0001  GETTABUP  R2 = _ENV[K2('tostring')]
  0002  GETTABLE  R3 = R0[K3('m_tokenNeeded')]
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  SETTABLE  R1[K1('text')] = R2
  0005  GETTABLE  R1 = R0[K4('m_descText')]
  0006  GETTABUP  R2 = _ENV[K5('GM')]
  0007  GETTABLE  R2 = R2[K6('GameTextModel')]
  0008  SELF      R3 = R2[K7('GetText')] (self)
  0009  LOADK     R4 = K8 'doubleWheel_token_collect'
  0010  GETTABLE  R5 = R0[K9('m_energyNum')]
  0011  GETTABLE  R6 = R0[K10('m_tokenNum')]
  0012  GETTABLE  R7 = R0[K11('m_iconName')]
  0013  GETTABLE  R8 = R0[K11('m_iconName')]
  0014  CALL      R2 = call(R2, 1 args, 6 rets)
  0015  SETTABLE  R1[K1('text')] = R2
  0016  GETTABUP  R1 = _ENV[K12('UIUtil')]
  0017  GETTABLE  R1 = R1[K13('SetActive')]
  0018  GETTABLE  R2 = R0[K14('m_unlockButtonGo')]
  0019  GETTABLE  R3 = R0[K15('m_bHasPaidThisWheel')]
  0020  NOT       R3 = not R0
  0021  CALL      R1 = call(R1, 0 args, 2 rets)
  0022  GETTABLE  R1 = R0[K16('m_spinButton')]
  0023  SELF      R2 = R1[K17('SetEnabled')] (self)
  0024  GETTABLE  R3 = R0[K18('m_bCanSpin')]
  0025  CALL      R1 = call(R1, 0 args, 2 rets)
  0026  GETTABLE  R1 = R0[K19('m_shellSpine')]
  0027  SELF      R2 = R1[K20('SetSkin')] (self)
  0028  GETTABLE  R3 = R0[K21('m_totalRewardCount')]
  0029  GETTABUP  R3 = mapSkinName[R3]
  0030  TEST      if not R3 then   -> -131039
  0031  JMP       (jump)   -> 33
  0032  LOADK     R3 = K22 'A'
  0033  CALL      R1 = call(R1, 0 args, 2 rets)
  0034  RETURN    return R0..R-1
; ---------- proto3 [_AddListeners] ----------
  ; fn ?  line 113-119 np=1 va=0 ms=6 code=27 consts=12 upvals=1 protos=0
  ;   K[0]='DoubleWheelActivityBaseWindow'
  ;   K[1]='_AddListeners'
  ;   K[2]='GetActivityDefinition'
  ;   K[3]='EventDispatcher'
  ;   K[4]='AddListener'
  ;   K[5]='PurchaseSuccessEvent'
  ;   K[6]='_OnPurchaseSuccess'
  ;   K[7]='EEventType'
  ;   K[8]='OpenView'
  ;   K[9]='_OnOpenView'
  ;   K[10]='CloseView'
  ;   K[11]='_OnCloseView'
  ;   upvals: _ENV
  ;   locals: self(0-27), activityDefinition(6-27)
  0000  GETTABUP  R1 = _ENV[K0('DoubleWheelActivityBaseWindow')]
  0001  GETTABLE  R1 = R1[K1('_AddListeners')]
  0002  MOVE      R2 = R0
  0003  CALL      R1 = call(R1, 0 args, 1 rets)
  0004  SELF      R2 = R0[K2('GetActivityDefinition')] (self)
  0005  CALL      R1 = call(R1, 1 args, 1 rets)
  0006  GETTABUP  R2 = _ENV[K3('EventDispatcher')]
  0007  GETTABLE  R2 = R2[K4('AddListener')]
  0008  GETTABLE  R3 = R1[K5('PurchaseSuccessEvent')]
  0009  MOVE      R4 = R0
  0010  GETTABLE  R5 = R0[K6('_OnPurchaseSuccess')]
  0011  CALL      R2 = call(R2, 0 args, 3 rets)
  0012  GETTABUP  R2 = _ENV[K3('EventDispatcher')]
  0013  GETTABLE  R2 = R2[K4('AddListener')]
  0014  GETTABUP  R3 = _ENV[K7('EEventType')]
  0015  GETTABLE  R3 = R3[K8('OpenView')]
  0016  MOVE      R4 = R0
  0017  GETTABLE  R5 = R0[K9('_OnOpenView')]
  0018  CALL      R2 = call(R2, 0 args, 3 rets)
  0019  GETTABUP  R2 = _ENV[K3('EventDispatcher')]
  0020  GETTABLE  R2 = R2[K4('AddListener')]
  0021  GETTABUP  R3 = _ENV[K7('EEventType')]
  0022  GETTABLE  R3 = R3[K10('CloseView')]
  0023  MOVE      R4 = R0
  0024  GETTABLE  R5 = R0[K11('_OnCloseView')]
  0025  CALL      R2 = call(R2, 0 args, 3 rets)
  0026  RETURN    return R0..R-1
; ---------- proto4 [_OnStateChanged] ----------
  ; fn ?  line 122-129 np=1 va=0 ms=3 code=10 consts=3 upvals=1 protos=0
  ;   K[0]='_IsInAnimLock'
  ;   K[1]='DoubleWheelActivityBaseWindow'
  ;   K[2]='_OnStateChanged'
  ;   upvals: _ENV
  ;   locals: self(0-10)
  0000  SELF      R2 = R0[K0('_IsInAnimLock')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  TEST      if not R1 then   -> -131068
  0003  JMP       (jump)   -> 5
  0004  RETURN    return R0..R-1
  0005  GETTABUP  R1 = _ENV[K1('DoubleWheelActivityBaseWindow')]
  0006  GETTABLE  R1 = R1[K2('_OnStateChanged')]
  0007  MOVE      R2 = R0
  0008  CALL      R1 = call(R1, 0 args, 1 rets)
  0009  RETURN    return R0..R-1
; ---------- proto5 [OnCloseView] ----------
  ; fn ?  line 132-135 np=1 va=0 ms=3 code=9 consts=4 upvals=1 protos=0
  ;   K[0]='GetModel'
  ;   K[1]='OnMainWindowClosed'
  ;   K[2]='DoubleWheelActivityBaseWindow'
  ;   K[3]='OnCloseView'
  ;   upvals: _ENV
  ;   locals: self(0-9)
  0000  SELF      R2 = R0[K0('GetModel')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  SELF      R2 = R1[K1('OnMainWindowClosed')] (self)
  0003  CALL      R1 = call(R1, 0 args, 1 rets)
  0004  GETTABUP  R1 = _ENV[K2('DoubleWheelActivityBaseWindow')]
  0005  GETTABLE  R1 = R1[K3('OnCloseView')]
  0006  MOVE      R2 = R0
  0007  CALL      R1 = call(R1, 0 args, 1 rets)
  0008  RETURN    return R0..R-1
; ---------- proto6 [OnDestroy] ----------
  ; fn ?  line 138-146 np=1 va=0 ms=4 code=19 consts=9 upvals=1 protos=0
  ;   K[0]='DoubleWheelActivityBaseWindow'
  ;   K[1]='OnDestroy'
  ;   K[2]='GM'
  ;   K[3]='UIManager'
  ;   K[4]='RemoveAllEventLocks'
  ;   K[5]='m_unlockSequence'
  ;   K[6]=nil
  ;   K[7]='Kill'
  ;   K[8]='_TryKillGestureTapSequence'
  ;   upvals: _ENV
  ;   locals: self(0-19)
  0000  GETTABUP  R1 = _ENV[K0('DoubleWheelActivityBaseWindow')]
  0001  GETTABLE  R1 = R1[K1('OnDestroy')]
  0002  MOVE      R2 = R0
  0003  CALL      R1 = call(R1, 0 args, 1 rets)
  0004  GETTABUP  R1 = _ENV[K2('GM')]
  0005  GETTABLE  R1 = R1[K3('UIManager')]
  0006  SELF      R2 = R1[K4('RemoveAllEventLocks')] (self)
  0007  MOVE      R3 = R0
  0008  CALL      R1 = call(R1, 0 args, 2 rets)
  0009  GETTABLE  R1 = R0[K5('m_unlockSequence')]
  0010  EQ        if R1 eq K6(nil)   -> -130286
  0011  JMP       (jump)   -> 16
  0012  GETTABLE  R1 = R0[K5('m_unlockSequence')]
  0013  SELF      R2 = R1[K7('Kill')] (self)
  0014  CALL      R1 = call(R1, 0 args, 1 rets)
  0015  SETTABLE  R0[K5('m_unlockSequence')] = K6(nil)
  0016  SELF      R2 = R0[K8('_TryKillGestureTapSequence')] (self)
  0017  CALL      R1 = call(R1, 0 args, 1 rets)
  0018  RETURN    return R0..R-1
; ---------- proto7 [OnCloseBtnClick] ----------
  ; fn ?  line 149-160 np=1 va=0 ms=6 code=17 consts=5 upvals=1 protos=1
  ;   K[0]='_IsLastChanceSpinValid'
  ;   K[1]='GetModel'
  ;   K[2]='OpenTwoButtonWindow'
  ;   K[3]='DoubleWheelActivityBaseWindow'
  ;   K[4]='OnCloseBtnClick'
  ;   upvals: _ENV
  ;   locals: self(0-17), redButtonCallback(5-11)
  0000  SELF      R2 = R0[K0('_IsLastChanceSpinValid')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  TEST      if not R1 then   -> -131068
  0003  JMP       (jump)   -> 12
  0004  CLOSURE   R1 = closure proto0
  0005  SELF      R3 = R0[K1('GetModel')] (self)
  0006  CALL      R2 = call(R2, 1 args, 1 rets)
  0007  SELF      R3 = R2[K2('OpenTwoButtonWindow')] (self)
  0008  MOVE      R4 = R0
  0009  LOADNIL   R5..R5 = nil
  0010  CALL      R2 = call(R2, 0 args, 3 rets)
  0011  JMP       (jump)   -> 16
  0012  GETTABUP  R1 = _ENV[K3('DoubleWheelActivityBaseWindow')]
  0013  GETTABLE  R1 = R1[K4('OnCloseBtnClick')]
  0014  MOVE      R2 = R0
  0015  CALL      R1 = call(R1, 0 args, 1 rets)
  0016  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 152-155 np=1 va=0 ms=3 code=7 consts=3 upvals=2 protos=0
    ;   K[0]='DoubleWheelActivityBaseWindow'
    ;   K[1]='OnCloseBtnClick'
    ;   K[2]='Close'
    ;   upvals: _ENV, self
    ;   locals: window(0-7)
    0000  GETTABUP  R1 = _ENV[K0('DoubleWheelActivityBaseWindow')]
    0001  GETTABLE  R1 = R1[K1('OnCloseBtnClick')]
    0002  GETUPVAL  R2 = _ENV
    0003  CALL      R1 = call(R1, 0 args, 1 rets)
    0004  SELF      R2 = R0[K2('Close')] (self)
    0005  CALL      R1 = call(R1, 0 args, 1 rets)
    0006  RETURN    return R0..R-1
; ---------- proto8 [_OnOpenView] ----------
  ; fn ?  line 162-167 np=2 va=0 ms=4 code=8 consts=2 upvals=0 protos=0
  ;   K[0]='name'
  ;   K[1]='_StopGestureTap'
  ;   locals: self(0-8), msg(0-8)
  0000  GETTABLE  R2 = R1[K0('name')]
  0001  GETTABLE  R3 = R0[K0('name')]
  0002  EQ        if R0 eq R3   -> -130041
  0003  JMP       (jump)   -> 5
  0004  RETURN    return R0..R-1
  0005  SELF      R3 = R0[K1('_StopGestureTap')] (self)
  0006  CALL      R2 = call(R2, 0 args, 1 rets)
  0007  RETURN    return R0..R-1
; ---------- proto9 [_OnCloseView] ----------
  ; fn ?  line 169-174 np=2 va=0 ms=4 code=8 consts=2 upvals=0 protos=0
  ;   K[0]='name'
  ;   K[1]='_TryStartGestureTap'
  ;   locals: self(0-8), msg(0-8)
  0000  GETTABLE  R2 = R1[K0('name')]
  0001  GETTABLE  R3 = R0[K0('name')]
  0002  EQ        if R0 eq R3   -> -130041
  0003  JMP       (jump)   -> 5
  0004  RETURN    return R0..R-1
  0005  SELF      R3 = R0[K1('_TryStartGestureTap')] (self)
  0006  CALL      R2 = call(R2, 0 args, 1 rets)
  0007  RETURN    return R0..R-1
; ---------- proto10 [GetHudButton] ----------
  ; fn ?  line 176-178 np=1 va=0 ms=3 code=5 consts=2 upvals=0 protos=0
  ;   K[0]='m_wheel'
  ;   K[1]='GetHudButton'
  ;   locals: self(0-5)
  0000  GETTABLE  R1 = R0[K0('m_wheel')]
  0001  SELF      R2 = R1[K1('GetHudButton')] (self)
  0002  TAILCALL  tailcall(R1, 0)
  0003  RETURN    return R1..R0
  0004  RETURN    return R0..R-1
; ---------- proto11 [GetUnlockRoot] ----------
  ; fn ?  line 180-182 np=1 va=0 ms=2 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='m_unlockRoot'
  ;   locals: self(0-3)
  0000  GETTABLE  R1 = R0[K0('m_unlockRoot')]
  0001  RETURN    return R1..R0
  0002  RETURN    return R0..R-1
; ---------- proto12 [GetWheelRoot] ----------
  ; fn ?  line 184-186 np=1 va=0 ms=2 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='m_wheelRoot'
  ;   locals: self(0-3)
  0000  GETTABLE  R1 = R0[K0('m_wheelRoot')]
  0001  RETURN    return R1..R0
  0002  RETURN    return R0..R-1
; ---------- proto13 [GetSpinButtonRectTransfrom] ----------
  ; fn ?  line 188-190 np=1 va=0 ms=2 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='m_spinButtonRectTransform'
  ;   locals: self(0-3)
  0000  GETTABLE  R1 = R0[K0('m_spinButtonRectTransform')]
  0001  RETURN    return R1..R0
  0002  RETURN    return R0..R-1
; ---------- proto14 [GetUnlockButtonRoot] ----------
  ; fn ?  line 192-194 np=1 va=0 ms=2 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='m_unlockButtonRoot'
  ;   locals: self(0-3)
  0000  GETTABLE  R1 = R0[K0('m_unlockButtonRoot')]
  0001  RETURN    return R1..R0
  0002  RETURN    return R0..R-1
; ---------- proto15 [GetShellRectTransform] ----------
  ; fn ?  line 196-198 np=1 va=0 ms=2 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='m_shellRectTransform'
  ;   locals: self(0-3)
  0000  GETTABLE  R1 = R0[K0('m_shellRectTransform')]
  0001  RETURN    return R1..R0
  0002  RETURN    return R0..R-1
; ---------- proto16 [_IsLastChanceActivityValid] ----------
  ; fn ?  line 200-203 np=1 va=0 ms=3 code=19 consts=6 upvals=1 protos=0
  ;   K[0]='m_bLastChance'
  ;   K[1]='_IsModelIdChanged'
  ;   K[2]='GetModel'
  ;   K[3]='GetState'
  ;   K[4]='ActivityState'
  ;   K[5]='Ended'
  ;   upvals: _ENV
  ;   locals: self(0-19)
  0000  GETTABLE  R1 = R0[K0('m_bLastChance')]
  0001  TEST      if not R1 then   -> -131069
  0002  JMP       (jump)   -> 17
  0003  SELF      R2 = R0[K1('_IsModelIdChanged')] (self)
  0004  CALL      R1 = call(R1, 1 args, 1 rets)
  0005  TEST      if not R1 then   -> -131064
  0006  JMP       (jump)   -> 15
  0007  SELF      R2 = R0[K2('GetModel')] (self)
  0008  CALL      R1 = call(R1, 1 args, 1 rets)
  0009  SELF      R2 = R1[K3('GetState')] (self)
  0010  CALL      R1 = call(R1, 1 args, 1 rets)
  0011  GETTABUP  R2 = _ENV[K4('ActivityState')]
  0012  GETTABLE  R2 = R2[K5('Ended')]
  0013  EQ        if R1 eq R2   -> -130543
  0014  JMP       (jump)   -> 16
  0015  LOADBOOL  R1 = false
  0016  LOADBOOL  R1 = true
  0017  RETURN    return R1..R0
  0018  RETURN    return R0..R-1
; ---------- proto17 [_IsLastChanceSpinValid] ----------
  ; fn ?  line 205-207 np=1 va=0 ms=3 code=10 consts=3 upvals=0 protos=0
  ;   K[0]='_IsLastChanceActivityValid'
  ;   K[1]='GetModel'
  ;   K[2]='CanSpin'
  ;   locals: self(0-10)
  0000  SELF      R2 = R0[K0('_IsLastChanceActivityValid')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  TEST      if not R1 then   -> -131068
  0003  JMP       (jump)   -> 8
  0004  SELF      R2 = R0[K1('GetModel')] (self)
  0005  CALL      R1 = call(R1, 1 args, 1 rets)
  0006  SELF      R2 = R1[K2('CanSpin')] (self)
  0007  CALL      R1 = call(R1, 1 args, 1 rets)
  0008  RETURN    return R1..R0
  0009  RETURN    return R0..R-1
; ---------- proto18 [_IsLastChanceValid] ----------
  ; fn ?  line 209-211 np=1 va=0 ms=3 code=10 consts=3 upvals=0 protos=0
  ;   K[0]='_IsLastChanceActivityValid'
  ;   K[1]='GetModel'
  ;   K[2]='IsLastChanceValid'
  ;   locals: self(0-10)
  0000  SELF      R2 = R0[K0('_IsLastChanceActivityValid')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  TEST      if not R1 then   -> -131068
  0003  JMP       (jump)   -> 8
  0004  SELF      R2 = R0[K1('GetModel')] (self)
  0005  CALL      R1 = call(R1, 1 args, 1 rets)
  0006  SELF      R2 = R1[K2('IsLastChanceValid')] (self)
  0007  CALL      R1 = call(R1, 1 args, 1 rets)
  0008  RETURN    return R1..R0
  0009  RETURN    return R0..R-1
; ---------- proto19 [_LoadWheel] ----------
  ; fn ?  line 213-219 np=1 va=0 ms=8 code=21 consts=11 upvals=1 protos=0
  ;   K[0]='GetModel'
  ;   K[1]='Object'
  ;   K[2]='Instantiate'
  ;   K[3]='string'
  ;   K[4]='format'
  ;   K[5]='m_wheel%d'
  ;   K[6]='m_totalRewardCount'
  ;   K[7]='m_wheelRoot'
  ;   K[8]='GetLuaTable'
  ;   K[9]='Init'
  ;   K[10]='m_wheelIndex'
  ;   upvals: _ENV
  ;   locals: self(0-21), model(2-21), wheel(14-21)
  0000  SELF      R2 = R0[K0('GetModel')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  GETTABUP  R2 = _ENV[K1('Object')]
  0003  GETTABLE  R2 = R2[K2('Instantiate')]
  0004  GETTABUP  R3 = _ENV[K3('string')]
  0005  GETTABLE  R3 = R3[K4('format')]
  0006  LOADK     R4 = K5 'm_wheel%d'
  0007  GETTABLE  R5 = R0[K6('m_totalRewardCount')]
  0008  CALL      R3 = call(R3, 1 args, 2 rets)
  0009  GETTABLE  R3 = R0[R3]
  0010  GETTABLE  R4 = R0[K7('m_wheelRoot')]
  0011  CALL      R2 = call(R2, 1 args, 2 rets)
  0012  SELF      R3 = R2[K8('GetLuaTable')] (self)
  0013  CALL      R2 = call(R2, 1 args, 1 rets)
  0014  SELF      R4 = R2[K9('Init')] (self)
  0015  MOVE      R5 = R0
  0016  MOVE      R6 = R0
  0017  GETTABLE  R7 = R0[K10('m_wheelIndex')]
  0018  CALL      R3 = call(R3, 0 args, 4 rets)
  0019  RETURN    return R2..R1
  0020  RETURN    return R0..R-1
; ---------- proto20 [_TryUpgradeWheel] ----------
  ; fn ?  line 221-240 np=1 va=0 ms=7 code=22 consts=10 upvals=0 protos=1
  ;   K[0]='GetModel'
  ;   K[1]='m_bUpgrade'
  ;   K[2]='TryUpgradeWheel'
  ;   K[3]='m_bFinished'
  ;   K[4]='IsActivityFinished'
  ;   K[5]='GetCurrentWheelIndex'
  ;   K[6]='GetCurrentTotalRewardCount'
  ;   K[7]='GetCurrentTokenNeeded'
  ;   K[8]='CanSpin'
  ;   K[9]='m_funcOnUpgraded'
  ;   locals: self(0-22), model(2-22), wheelIndex(10-22), totalRewardCount(12-22), tokenNeeded(14-22), bCanSpin(16-22)
  0000  SELF      R2 = R0[K0('GetModel')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  SELF      R3 = R1[K2('TryUpgradeWheel')] (self)
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  SETTABLE  R0[K1('m_bUpgrade')] = R2
  0005  SELF      R3 = R1[K4('IsActivityFinished')] (self)
  0006  CALL      R2 = call(R2, 1 args, 1 rets)
  0007  SETTABLE  R0[K3('m_bFinished')] = R2
  0008  SELF      R3 = R1[K5('GetCurrentWheelIndex')] (self)
  0009  CALL      R2 = call(R2, 1 args, 1 rets)
  0010  SELF      R4 = R1[K6('GetCurrentTotalRewardCount')] (self)
  0011  CALL      R3 = call(R3, 1 args, 1 rets)
  0012  SELF      R5 = R1[K7('GetCurrentTokenNeeded')] (self)
  0013  CALL      R4 = call(R4, 1 args, 1 rets)
  0014  SELF      R6 = R1[K8('CanSpin')] (self)
  0015  CALL      R5 = call(R5, 1 args, 1 rets)
  0016  GETTABLE  R6 = R0[K1('m_bUpgrade')]
  0017  TEST      if not R6 then   -> -131053
  0018  JMP       (jump)   -> 21
  0019  CLOSURE   R6 = closure proto0
  0020  SETTABLE  R0[K9('m_funcOnUpgraded')] = R6
  0021  RETURN    return R0..R-1
  ; ---------- proto0 [m_funcOnUpgraded] ----------
    ; fn ?  line 231-238 np=0 va=0 ms=2 code=11 consts=7 upvals=5 protos=0
    ;   K[0]='m_wheelIndex'
    ;   K[1]='m_totalRewardCount'
    ;   K[2]='m_tokenNeeded'
    ;   K[3]='m_bHasPaidThisWheel'
    ;   K[4]=false
    ;   K[5]='m_bCanSpin'
    ;   K[6]='m_bSpinFinished'
    ;   upvals: self, wheelIndex, totalRewardCount, tokenNeeded, bCanSpin
    0000  GETUPVAL  R0 = self
    0001  SETTABUP  self[K0('m_wheelIndex')] = R0
    0002  GETUPVAL  R0 = self
    0003  SETTABUP  self[K1('m_totalRewardCount')] = R0
    0004  GETUPVAL  R0 = self
    0005  SETTABUP  self[K2('m_tokenNeeded')] = R0
    0006  SETTABUP  self[K3('m_bHasPaidThisWheel')] = K4(false)
    0007  GETUPVAL  R0 = self
    0008  SETTABUP  self[K5('m_bCanSpin')] = R0
    0009  SETTABUP  self[K6('m_bSpinFinished')] = K4(false)
    0010  RETURN    return R0..R-1
; ---------- proto21 [_IsInAnimLock] ----------
  ; fn ?  line 242-244 np=1 va=0 ms=3 code=7 consts=3 upvals=1 protos=0
  ;   K[0]='Table'
  ;   K[1]='IsEmpty'
  ;   K[2]='m_mapAnimLock'
  ;   upvals: _ENV
  ;   locals: self(0-7)
  0000  GETTABUP  R1 = _ENV[K0('Table')]
  0001  GETTABLE  R1 = R1[K1('IsEmpty')]
  0002  GETTABLE  R2 = R0[K2('m_mapAnimLock')]
  0003  CALL      R1 = call(R1, 1 args, 1 rets)
  0004  NOT       R1 = not R0
  0005  RETURN    return R1..R0
  0006  RETURN    return R0..R-1
; ---------- proto22 [AddAnimLock] ----------
  ; fn ?  line 246-251 np=1 va=0 ms=4 code=7 consts=3 upvals=0 protos=0
  ;   K[0]='m_mapAnimLock'
  ;   K[1]=true
  ;   K[2]='_StopGestureTap'
  ;   locals: self(0-7), lock(1-7)
  0000  NEWTABLE  R1 = {} (0 items)
  0001  GETTABLE  R2 = R0[K0('m_mapAnimLock')]
  0002  SETTABLE  R2[R1] = K1(true)
  0003  SELF      R3 = R0[K2('_StopGestureTap')] (self)
  0004  CALL      R2 = call(R2, 0 args, 1 rets)
  0005  RETURN    return R1..R0
  0006  RETURN    return R0..R-1
; ---------- proto23 [RemoveAnimLock] ----------
  ; fn ?  line 254-264 np=2 va=0 ms=4 code=17 consts=7 upvals=0 protos=0
  ;   K[0]='m_mapAnimLock'
  ;   K[1]=nil
  ;   K[2]='_TryAnimInSequence'
  ;   K[3]='_IsInAnimLock'
  ;   K[4]='_IsLastChanceSpinValid'
  ;   K[5]='_CloseWhenNotValid'
  ;   K[6]='_TryStartGestureTap'
  ;   locals: self(0-17), lock(0-17)
  0000  GETTABLE  R2 = R0[K0('m_mapAnimLock')]
  0001  SETTABLE  R2[R1] = K1(nil)
  0002  SELF      R3 = R0[K2('_TryAnimInSequence')] (self)
  0003  CALL      R2 = call(R2, 0 args, 1 rets)
  0004  SELF      R3 = R0[K3('_IsInAnimLock')] (self)
  0005  CALL      R2 = call(R2, 1 args, 1 rets)
  0006  TEST      if not R2 then   -> -131063
  0007  JMP       (jump)   -> 16
  0008  SELF      R3 = R0[K4('_IsLastChanceSpinValid')] (self)
  0009  CALL      R2 = call(R2, 1 args, 1 rets)
  0010  TEST      if not R2 then   -> -131059
  0011  JMP       (jump)   -> 16
  0012  SELF      R3 = R0[K5('_CloseWhenNotValid')] (self)
  0013  CALL      R2 = call(R2, 0 args, 1 rets)
  0014  SELF      R3 = R0[K6('_TryStartGestureTap')] (self)
  0015  CALL      R2 = call(R2, 0 args, 1 rets)
  0016  RETURN    return R0..R-1
; ---------- proto24 [_TryAnimInSequence] ----------
  ; fn ?  line 266-273 np=1 va=0 ms=3 code=7 consts=3 upvals=0 protos=0
  ;   K[0]='_TryClaimPaidRewards'
  ;   K[1]='_TryPlayUpgradeAnimation'
  ;   K[2]='_TryPlayFinishAnimation'
  ;   locals: self(0-7)
  0000  SELF      R2 = R0[K0('_TryClaimPaidRewards')] (self)
  0001  CALL      R1 = call(R1, 0 args, 1 rets)
  0002  SELF      R2 = R0[K1('_TryPlayUpgradeAnimation')] (self)
  0003  CALL      R1 = call(R1, 0 args, 1 rets)
  0004  SELF      R2 = R0[K2('_TryPlayFinishAnimation')] (self)
  0005  CALL      R1 = call(R1, 0 args, 1 rets)
  0006  RETURN    return R0..R-1
; ---------- proto25 [_TryClaimPaidRewards] ----------
  ; fn ?  line 275-290 np=1 va=0 ms=7 code=31 consts=11 upvals=0 protos=0
  ;   K[0]='_IsInAnimLock'
  ;   K[1]='GetModel'
  ;   K[2]='_IsActivityValid'
  ;   K[3]='_IsLastChanceValid'
  ;   K[4]='HasPaidRewardsToClaim'
  ;   K[5]='TryClaimRewardsForPurchase'
  ;   K[6]='m_wheel'
  ;   K[7]='SetPaidRewardsClaimed'
  ;   K[8]='_TryUpgradeWheel'
  ;   K[9]='_TryOpenRewardWindow'
  ;   K[10]='doubleWheel_bought_title'
  ;   locals: self(0-31), model(7-31), arrRewards(21-30)
  0000  SELF      R2 = R0[K0('_IsInAnimLock')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  TEST      if not R1 then   -> -131068
  0003  JMP       (jump)   -> 5
  0004  RETURN    return R0..R-1
  0005  SELF      R2 = R0[K1('GetModel')] (self)
  0006  CALL      R1 = call(R1, 1 args, 1 rets)
  0007  SELF      R3 = R0[K2('_IsActivityValid')] (self)
  0008  CALL      R2 = call(R2, 1 args, 1 rets)
  0009  TEST      if not R2 then   -> -131060
  0010  JMP       (jump)   -> 15
  0011  SELF      R3 = R0[K3('_IsLastChanceValid')] (self)
  0012  CALL      R2 = call(R2, 1 args, 1 rets)
  0013  TEST      if not R2 then   -> -131057
  0014  JMP       (jump)   -> 30
  0015  SELF      R3 = R1[K4('HasPaidRewardsToClaim')] (self)
  0016  CALL      R2 = call(R2, 1 args, 1 rets)
  0017  TEST      if not R2 then   -> -131053
  0018  JMP       (jump)   -> 30
  0019  SELF      R3 = R1[K5('TryClaimRewardsForPurchase')] (self)
  0020  CALL      R2 = call(R2, 1 args, 1 rets)
  0021  GETTABLE  R3 = R0[K6('m_wheel')]
  0022  SELF      R4 = R3[K7('SetPaidRewardsClaimed')] (self)
  0023  CALL      R3 = call(R3, 0 args, 1 rets)
  0024  SELF      R4 = R0[K8('_TryUpgradeWheel')] (self)
  0025  CALL      R3 = call(R3, 0 args, 1 rets)
  0026  SELF      R4 = R0[K9('_TryOpenRewardWindow')] (self)
  0027  MOVE      R5 = R0
  0028  LOADK     R6 = K10 'doubleWheel_bought_title'
  0029  CALL      R3 = call(R3, 0 args, 3 rets)
  0030  RETURN    return R0..R-1
; ---------- proto26 [_TryPlayUpgradeAnimation] ----------
  ; fn ?  line 292-356 np=1 va=0 ms=15 code=89 consts=38 upvals=3 protos=4
  ;   K[0]='_IsInAnimLock'
  ;   K[1]='m_bUpgrade'
  ;   K[2]=nil
  ;   K[3]='m_funcOnUpgraded'
  ;   K[4]='m_spinButton'
  ;   K[5]='SetEnabled'
  ;   K[6]='Object'
  ;   K[7]='Instantiate'
  ;   K[8]='m_wheel'
  ;   K[9]='GetTrailPrefab'
  ;   K[10]='m_trailRoot'
  ;   K[11]='transform'
  ;   K[12]='localPosition'
  ;   K[13]='InverseTransformPoint'
  ;   K[14]='m_shellRoot'
  ;   K[15]='position'
  ;   K[16]='localScale'
  ;   K[17]='Vector3'
  ;   K[18]=2
  ;   K[19]=1
  ;   K[20]='AddAnimLock'
  ;   K[21]='GM'
  ;   K[22]='UIManager'
  ;   K[23]='SetEventLock'
  ;   K[24]='DOTween'
  ;   K[25]='Sequence'
  ;   K[26]='Append'
  ;   K[27]='DOLocalMove'
  ;   K[28]='GetSpinRoot'
  ;   K[29]=0.5
  ;   K[30]='AppendCallback'
  ;   K[31]='AppendInterval'
  ;   K[32]='EDurationDefine'
  ;   K[33]='TimePerFrame'
  ;   K[34]=28
  ;   K[35]=0.2
  ;   K[36]='AppendCallback'
  ;   K[37]=54
  ;   upvals: _ENV, EShellAnimationName, mapSkinName
  ;   locals: self(0-89), funcOnUpgrdaed(10-88), newWheel(14-88), go(25-88), trailTransform(26-88), lock(40-88), sequence(49-88)
  0000  SELF      R2 = R0[K0('_IsInAnimLock')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  TEST      if not R1 then   -> -131068
  0003  JMP       (jump)   -> 5
  0004  RETURN    return R0..R-1
  0005  GETTABLE  R1 = R0[K1('m_bUpgrade')]
  0006  TEST      if not R1 then   -> -131064
  0007  JMP       (jump)   -> 88
  0008  SETTABLE  R0[K1('m_bUpgrade')] = K2(nil)
  0009  GETTABLE  R1 = R0[K3('m_funcOnUpgraded')]
  0010  SETTABLE  R0[K3('m_funcOnUpgraded')] = K2(nil)
  0011  MOVE      R2 = R0
  0012  CALL      R2 = call(R2, 0 args, 0 rets)
  0013  LOADNIL   R2..R2 = nil
  0014  GETTABLE  R3 = R0[K4('m_spinButton')]
  0015  SELF      R4 = R3[K5('SetEnabled')] (self)
  0016  LOADBOOL  R5 = false
  0017  CALL      R3 = call(R3, 0 args, 2 rets)
  0018  GETTABUP  R3 = _ENV[K6('Object')]
  0019  GETTABLE  R3 = R3[K7('Instantiate')]
  0020  GETTABLE  R4 = R0[K8('m_wheel')]
  0021  SELF      R5 = R4[K9('GetTrailPrefab')] (self)
  0022  CALL      R4 = call(R4, 1 args, 1 rets)
  0023  GETTABLE  R5 = R0[K10('m_trailRoot')]
  0024  CALL      R3 = call(R3, 1 args, 2 rets)
  0025  GETTABLE  R4 = R3[K11('transform')]
  0026  GETTABLE  R5 = R0[K10('m_trailRoot')]
  0027  SELF      R6 = R5[K13('InverseTransformPoint')] (self)
  0028  GETTABLE  R7 = R0[K14('m_shellRoot')]
  0029  GETTABLE  R7 = R7[K15('position')]
  0030  CALL      R5 = call(R5, 1 args, 2 rets)
  0031  SETTABLE  R4[K12('localPosition')] = R5
  0032  GETTABUP  R5 = _ENV[K17('Vector3')]
  0033  LOADK     R6 = K18 2
  0034  LOADK     R7 = K18 2
  0035  LOADK     R8 = K19 1
  0036  CALL      R5 = call(R5, 1 args, 3 rets)
  0037  SETTABLE  R4[K16('localScale')] = R5
  0038  SELF      R6 = R0[K20('AddAnimLock')] (self)
  0039  CALL      R5 = call(R5, 1 args, 1 rets)
  0040  GETTABUP  R6 = _ENV[K21('GM')]
  0041  GETTABLE  R6 = R6[K22('UIManager')]
  0042  SELF      R7 = R6[K23('SetEventLock')] (self)
  0043  LOADBOOL  R8 = true
  0044  MOVE      R9 = R0
  0045  CALL      R6 = call(R6, 0 args, 3 rets)
  0046  GETTABUP  R6 = _ENV[K24('DOTween')]
  0047  GETTABLE  R6 = R6[K25('Sequence')]
  0048  CALL      R6 = call(R6, 1 args, 0 rets)
  0049  SELF      R8 = R6[K26('Append')] (self)
  0050  SELF      R10 = R4[K27('DOLocalMove')] (self)
  0051  GETTABLE  R11 = R0[K10('m_trailRoot')]
  0052  SELF      R12 = R11[K13('InverseTransformPoint')] (self)
  0053  GETTABLE  R13 = R0[K8('m_wheel')]
  0054  SELF      R14 = R13[K28('GetSpinRoot')] (self)
  0055  CALL      R13 = call(R13, 1 args, 1 rets)
  0056  GETTABLE  R13 = R13[K15('position')]
  0057  CALL      R11 = call(R11, 1 args, 2 rets)
  0058  LOADK     R12 = K29 0.5
  0059  CALL      R9 = call(R9, -1 args, 3 rets)
  0060  CALL      R7 = call(R7, 0 args, -1 rets)
  0061  SELF      R8 = R6[K30('AppendCallback')] (self)
  0062  CLOSURE   R9 = closure proto0
  0063  CALL      R7 = call(R7, 0 args, 2 rets)
  0064  SELF      R8 = R6[K31('AppendInterval')] (self)
  0065  GETTABUP  R9 = _ENV[K32('EDurationDefine')]
  0066  GETTABLE  R9 = R9[K33('TimePerFrame')]
  0067  MUL       R9 = R9 mul K34(28)
  0068  CALL      R7 = call(R7, 0 args, 2 rets)
  0069  SELF      R8 = R6[K30('AppendCallback')] (self)
  0070  CLOSURE   R9 = closure proto1
  0071  CALL      R7 = call(R7, 0 args, 2 rets)
  0072  SELF      R8 = R6[K31('AppendInterval')] (self)
  0073  LOADK     R9 = K35 0.2
  0074  CALL      R7 = call(R7, 0 args, 2 rets)
  0075  SELF      R8 = R6[K36('AppendCallback')] (self)
  0076  CLOSURE   R9 = closure proto2
  0077  CALL      R7 = call(R7, 0 args, 2 rets)
  0078  SELF      R8 = R6[K31('AppendInterval')] (self)
  0079  GETTABUP  R9 = _ENV[K32('EDurationDefine')]
  0080  GETTABLE  R9 = R9[K33('TimePerFrame')]
  0081  MUL       R9 = R9 mul K37(54)
  0082  SUB       R9 = K35(0.2) sub R9
  0083  CALL      R7 = call(R7, 0 args, 2 rets)
  0084  SELF      R8 = R6[K36('AppendCallback')] (self)
  0085  CLOSURE   R9 = closure proto3
  0086  CALL      R7 = call(R7, 0 args, 2 rets)
  0087  JMP       (jump)   -> 88
  0088  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 318-323 np=0 va=0 ms=2 code=15 consts=6 upvals=4 protos=0
    ;   K[0]='Object'
    ;   K[1]='Destroy'
    ;   K[2]='_LoadWheel'
    ;   K[3]='m_wheel'
    ;   K[4]='Hide'
    ;   K[5]='Show'
    ;   upvals: _ENV, go, newWheel, self
    0000  GETTABUP  R0 = _ENV[K0('Object')]
    0001  GETTABLE  R0 = R0[K1('Destroy')]
    0002  GETUPVAL  R1 = _ENV
    0003  CALL      R0 = call(R0, 0 args, 1 rets)
    0004  GETUPVAL  R0 = _ENV
    0005  SELF      R1 = R0[K2('_LoadWheel')] (self)
    0006  CALL      R0 = call(R0, 1 args, 1 rets)
    0007  SETUPVAL  _ENV = R0
    0008  GETTABUP  R0 = self[K3('m_wheel')]
    0009  SELF      R1 = R0[K4('Hide')] (self)
    0010  CALL      R0 = call(R0, 0 args, 1 rets)
    0011  GETUPVAL  R0 = _ENV
    0012  SELF      R1 = R0[K5('Show')] (self)
    0013  CALL      R0 = call(R0, 0 args, 1 rets)
    0014  RETURN    return R0..R-1
  ; ---------- proto1 [] ----------
    ; fn ?  line 326-342 np=0 va=0 ms=7 code=45 consts=24 upvals=3 protos=2
    ;   K[0]='m_shellSpine'
    ;   K[1]='SetAnimation'
    ;   K[2]='Appear3'
    ;   K[3]='AddAnimation'
    ;   K[4]='Idle1'
    ;   K[5]='UIUtil'
    ;   K[6]='SetLocalScale'
    ;   K[7]='m_unlockButtonRoot'
    ;   K[8]=0.5
    ;   K[9]='m_unlockButtonCanvasGroup'
    ;   K[10]='alpha'
    ;   K[11]=0
    ;   K[12]='blocksRaycasts'
    ;   K[13]=false
    ;   K[14]='DOTween'
    ;   K[15]='Sequence'
    ;   K[16]='AppendCallback'
    ;   K[17]='Append'
    ;   K[18]='DOScale'
    ;   K[19]='Vector3'
    ;   K[20]='one'
    ;   K[21]='Join'
    ;   K[22]='DOFade'
    ;   K[23]=1
    ;   upvals: self, EShellAnimationName, _ENV
    ;   locals: sequence(23-45)
    0000  GETTABUP  R0 = self[K0('m_shellSpine')]
    0001  SELF      R1 = R0[K1('SetAnimation')] (self)
    0002  GETTABUP  R2 = EShellAnimationName[K2('Appear3')]
    0003  LOADBOOL  R3 = false
    0004  CALL      R0 = call(R0, 0 args, 3 rets)
    0005  GETTABUP  R0 = self[K0('m_shellSpine')]
    0006  SELF      R1 = R0[K3('AddAnimation')] (self)
    0007  GETTABUP  R2 = EShellAnimationName[K4('Idle1')]
    0008  LOADBOOL  R3 = true
    0009  CALL      R0 = call(R0, 0 args, 3 rets)
    0010  GETTABUP  R0 = _ENV[K5('UIUtil')]
    0011  GETTABLE  R0 = R0[K6('SetLocalScale')]
    0012  GETTABUP  R1 = self[K7('m_unlockButtonRoot')]
    0013  LOADK     R2 = K8 0.5
    0014  LOADK     R3 = K8 0.5
    0015  CALL      R0 = call(R0, 0 args, 3 rets)
    0016  GETTABUP  R0 = self[K9('m_unlockButtonCanvasGroup')]
    0017  SETTABLE  R0[K10('alpha')] = K11(0)
    0018  GETTABUP  R0 = self[K9('m_unlockButtonCanvasGroup')]
    0019  SETTABLE  R0[K12('blocksRaycasts')] = K13(false)
    0020  GETTABUP  R0 = _ENV[K14('DOTween')]
    0021  GETTABLE  R0 = R0[K15('Sequence')]
    0022  CALL      R0 = call(R0, 1 args, 0 rets)
    0023  SELF      R2 = R0[K16('AppendCallback')] (self)
    0024  CLOSURE   R3 = closure proto0
    0025  CALL      R1 = call(R1, 0 args, 2 rets)
    0026  SELF      R2 = R0[K17('Append')] (self)
    0027  GETTABUP  R3 = self[K7('m_unlockButtonRoot')]
    0028  SELF      R4 = R3[K18('DOScale')] (self)
    0029  GETTABUP  R5 = _ENV[K19('Vector3')]
    0030  GETTABLE  R5 = R5[K20('one')]
    0031  LOADK     R6 = K8 0.5
    0032  CALL      R3 = call(R3, -1 args, 3 rets)
    0033  CALL      R1 = call(R1, 0 args, -1 rets)
    0034  SELF      R2 = R0[K21('Join')] (self)
    0035  GETTABUP  R3 = self[K9('m_unlockButtonCanvasGroup')]
    0036  SELF      R4 = R3[K22('DOFade')] (self)
    0037  LOADK     R5 = K23 1
    0038  LOADK     R6 = K8 0.5
    0039  CALL      R3 = call(R3, -1 args, 3 rets)
    0040  CALL      R1 = call(R1, 0 args, -1 rets)
    0041  SELF      R2 = R0[K16('AppendCallback')] (self)
    0042  CLOSURE   R3 = closure proto1
    0043  CALL      R1 = call(R1, 0 args, 2 rets)
    0044  RETURN    return R0..R-1
    ; ---------- proto0 [] ----------
      ; fn ?  line 334-336 np=0 va=0 ms=3 code=6 consts=3 upvals=2 protos=0
      ;   K[0]='UIUtil'
      ;   K[1]='SetActive'
      ;   K[2]='m_unlockButtonGo'
      ;   upvals: _ENV, self
      0000  GETTABUP  R0 = _ENV[K0('UIUtil')]
      0001  GETTABLE  R0 = R0[K1('SetActive')]
      0002  GETTABUP  R1 = self[K2('m_unlockButtonGo')]
      0003  LOADBOOL  R2 = true
      0004  CALL      R0 = call(R0, 0 args, 2 rets)
      0005  RETURN    return R0..R-1
    ; ---------- proto1 [] ----------
      ; fn ?  line 339-341 np=0 va=0 ms=2 code=3 consts=3 upvals=1 protos=0
      ;   K[0]='m_unlockButtonCanvasGroup'
      ;   K[1]='blocksRaycasts'
      ;   K[2]=true
      ;   upvals: self
      0000  GETTABUP  R0 = self[K0('m_unlockButtonCanvasGroup')]
      0001  SETTABLE  R0[K1('blocksRaycasts')] = K2(true)
      0002  RETURN    return R0..R-1
  ; ---------- proto2 [] ----------
    ; fn ?  line 344-346 np=0 va=0 ms=3 code=9 consts=4 upvals=2 protos=0
    ;   K[0]='m_shellSpine'
    ;   K[1]='SetSkin'
    ;   K[2]='m_totalRewardCount'
    ;   K[3]='A'
    ;   upvals: self, mapSkinName
    0000  GETTABUP  R0 = self[K0('m_shellSpine')]
    0001  SELF      R1 = R0[K1('SetSkin')] (self)
    0002  GETTABUP  R2 = self[K2('m_totalRewardCount')]
    0003  GETTABUP  R2 = mapSkinName[R2]
    0004  TEST      if not R2 then   -> -131065
    0005  JMP       (jump)   -> 7
    0006  LOADK     R2 = K3 'A'
    0007  CALL      R0 = call(R0, 0 args, 2 rets)
    0008  RETURN    return R0..R-1
  ; ---------- proto3 [] ----------
    ; fn ?  line 348-354 np=0 va=0 ms=4 code=21 consts=9 upvals=4 protos=0
    ;   K[0]='GM'
    ;   K[1]='UIManager'
    ;   K[2]='SetEventLock'
    ;   K[3]='RemoveAnimLock'
    ;   K[4]='Object'
    ;   K[5]='Destroy'
    ;   K[6]='m_wheel'
    ;   K[7]='gameObject'
    ;   K[8]='_UpdateView'
    ;   upvals: _ENV, self, lock, newWheel
    0000  GETTABUP  R0 = _ENV[K0('GM')]
    0001  GETTABLE  R0 = R0[K1('UIManager')]
    0002  SELF      R1 = R0[K2('SetEventLock')] (self)
    0003  LOADBOOL  R2 = false
    0004  GETUPVAL  R3 = _ENV
    0005  CALL      R0 = call(R0, 0 args, 3 rets)
    0006  GETUPVAL  R0 = _ENV
    0007  SELF      R1 = R0[K3('RemoveAnimLock')] (self)
    0008  GETUPVAL  R2 = _ENV
    0009  CALL      R0 = call(R0, 0 args, 2 rets)
    0010  GETTABUP  R0 = _ENV[K4('Object')]
    0011  GETTABLE  R0 = R0[K5('Destroy')]
    0012  GETTABUP  R1 = self[K6('m_wheel')]
    0013  GETTABLE  R1 = R1[K7('gameObject')]
    0014  CALL      R0 = call(R0, 0 args, 1 rets)
    0015  GETUPVAL  R0 = _ENV
    0016  SETTABUP  self[K6('m_wheel')] = R0
    0017  GETUPVAL  R0 = _ENV
    0018  SELF      R1 = R0[K8('_UpdateView')] (self)
    0019  CALL      R0 = call(R0, 0 args, 1 rets)
    0020  RETURN    return R0..R-1
; ---------- proto27 [_TryPlayFinishAnimation] ----------
  ; fn ?  line 358-380 np=1 va=0 ms=6 code=31 consts=12 upvals=1 protos=2
  ;   K[0]='_IsInAnimLock'
  ;   K[1]='m_bFinished'
  ;   K[2]=nil
  ;   K[3]='AddAnimLock'
  ;   K[4]='GM'
  ;   K[5]='UIManager'
  ;   K[6]='SetEventLock'
  ;   K[7]='DOTween'
  ;   K[8]='Sequence'
  ;   K[9]='AppendCallback'
  ;   K[10]='AppendInterval'
  ;   K[11]=2
  ;   upvals: _ENV
  ;   locals: self(0-31), lock(11-30), sequence(20-30)
  0000  SELF      R2 = R0[K0('_IsInAnimLock')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  TEST      if not R1 then   -> -131068
  0003  JMP       (jump)   -> 5
  0004  RETURN    return R0..R-1
  0005  GETTABLE  R1 = R0[K1('m_bFinished')]
  0006  TEST      if not R1 then   -> -131064
  0007  JMP       (jump)   -> 30
  0008  SETTABLE  R0[K1('m_bFinished')] = K2(nil)
  0009  SELF      R2 = R0[K3('AddAnimLock')] (self)
  0010  CALL      R1 = call(R1, 1 args, 1 rets)
  0011  GETTABUP  R2 = _ENV[K4('GM')]
  0012  GETTABLE  R2 = R2[K5('UIManager')]
  0013  SELF      R3 = R2[K6('SetEventLock')] (self)
  0014  LOADBOOL  R4 = true
  0015  MOVE      R5 = R0
  0016  CALL      R2 = call(R2, 0 args, 3 rets)
  0017  GETTABUP  R2 = _ENV[K7('DOTween')]
  0018  GETTABLE  R2 = R2[K8('Sequence')]
  0019  CALL      R2 = call(R2, 1 args, 0 rets)
  0020  SELF      R4 = R2[K9('AppendCallback')] (self)
  0021  CLOSURE   R5 = closure proto0
  0022  CALL      R3 = call(R3, 0 args, 2 rets)
  0023  SELF      R4 = R2[K10('AppendInterval')] (self)
  0024  LOADK     R5 = K11 2
  0025  CALL      R3 = call(R3, 0 args, 2 rets)
  0026  SELF      R4 = R2[K9('AppendCallback')] (self)
  0027  CLOSURE   R5 = closure proto1
  0028  CALL      R3 = call(R3, 0 args, 2 rets)
  0029  JMP       (jump)   -> 30
  0030  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 370-373 np=0 va=0 ms=3 code=10 consts=5 upvals=2 protos=0
    ;   K[0]='_ShowPrompt'
    ;   K[1]='event_general_end_desc'
    ;   K[2]='UIUtil'
    ;   K[3]='SetActive'
    ;   K[4]='m_effectEndRibbonGo'
    ;   upvals: self, _ENV
    0000  GETUPVAL  R0 = self
    0001  SELF      R1 = R0[K0('_ShowPrompt')] (self)
    0002  LOADK     R2 = K1 'event_general_end_desc'
    0003  CALL      R0 = call(R0, 0 args, 2 rets)
    0004  GETTABUP  R0 = _ENV[K2('UIUtil')]
    0005  GETTABLE  R0 = R0[K3('SetActive')]
    0006  GETTABUP  R1 = self[K4('m_effectEndRibbonGo')]
    0007  LOADBOOL  R2 = true
    0008  CALL      R0 = call(R0, 0 args, 2 rets)
    0009  RETURN    return R0..R-1
  ; ---------- proto1 [] ----------
    ; fn ?  line 375-378 np=0 va=0 ms=4 code=11 consts=4 upvals=3 protos=0
    ;   K[0]='GM'
    ;   K[1]='UIManager'
    ;   K[2]='SetEventLock'
    ;   K[3]='RemoveAnimLock'
    ;   upvals: _ENV, self, lock
    0000  GETTABUP  R0 = _ENV[K0('GM')]
    0001  GETTABLE  R0 = R0[K1('UIManager')]
    0002  SELF      R1 = R0[K2('SetEventLock')] (self)
    0003  LOADBOOL  R2 = false
    0004  GETUPVAL  R3 = _ENV
    0005  CALL      R0 = call(R0, 0 args, 3 rets)
    0006  GETUPVAL  R0 = _ENV
    0007  SELF      R1 = R0[K3('RemoveAnimLock')] (self)
    0008  GETUPVAL  R2 = _ENV
    0009  CALL      R0 = call(R0, 0 args, 2 rets)
    0010  RETURN    return R0..R-1
; ---------- proto28 [_TryOpenRewardWindow] ----------
  ; fn ?  line 385-405 np=4 va=0 ms=13 code=23 consts=7 upvals=1 protos=1
  ;   K[0]='AddAnimLock'
  ;   K[1]='Table'
  ;   K[2]='IsEmpty'
  ;   K[3]='RewardWindow'
  ;   K[4]='Open'
  ;   K[5]='ERewardScene'
  ;   K[6]='Other'
  ;   upvals: _ENV
  ;   locals: self(0-23), arrRewards(0-23), titleTextKey(0-23), callback(0-23), lock(2-23), closeCallback(3-23)
  0000  SELF      R5 = R0[K0('AddAnimLock')] (self)
  0001  CALL      R4 = call(R4, 1 args, 1 rets)
  0002  CLOSURE   R5 = closure proto0
  0003  GETTABUP  R6 = _ENV[K1('Table')]
  0004  GETTABLE  R6 = R6[K2('IsEmpty')]
  0005  MOVE      R7 = R0
  0006  CALL      R6 = call(R6, 1 args, 1 rets)
  0007  TEST      if not R6 then   -> -131063
  0008  JMP       (jump)   -> 12
  0009  MOVE      R6 = R0
  0010  CALL      R6 = call(R6, 0 args, 0 rets)
  0011  JMP       (jump)   -> 22
  0012  GETTABUP  R6 = _ENV[K3('RewardWindow')]
  0013  GETTABLE  R6 = R6[K4('Open')]
  0014  MOVE      R7 = R0
  0015  MOVE      R8 = R0
  0016  LOADBOOL  R9 = true
  0017  GETTABUP  R10 = _ENV[K5('ERewardScene')]
  0018  GETTABLE  R10 = R10[K6('Other')]
  0019  LOADNIL   R11..R11 = nil
  0020  MOVE      R12 = R0
  0021  CALL      R6 = call(R6, 0 args, 6 rets)
  0022  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 387-399 np=0 va=0 ms=4 code=19 consts=8 upvals=3 protos=2
    ;   K[0]='GM'
    ;   K[1]='UIManager'
    ;   K[2]='SetEventLock'
    ;   K[3]='DOTween'
    ;   K[4]='Sequence'
    ;   K[5]='AppendCallback'
    ;   K[6]='AppendInterval'
    ;   K[7]=1
    ;   upvals: _ENV, self, lock
    ;   locals: sequence(9-19)
    0000  GETTABUP  R0 = _ENV[K0('GM')]
    0001  GETTABLE  R0 = R0[K1('UIManager')]
    0002  SELF      R1 = R0[K2('SetEventLock')] (self)
    0003  LOADBOOL  R2 = true
    0004  GETUPVAL  R3 = _ENV
    0005  CALL      R0 = call(R0, 0 args, 3 rets)
    0006  GETTABUP  R0 = _ENV[K3('DOTween')]
    0007  GETTABLE  R0 = R0[K4('Sequence')]
    0008  CALL      R0 = call(R0, 1 args, 0 rets)
    0009  SELF      R2 = R0[K5('AppendCallback')] (self)
    0010  CLOSURE   R3 = closure proto0
    0011  CALL      R1 = call(R1, 0 args, 2 rets)
    0012  SELF      R2 = R0[K6('AppendInterval')] (self)
    0013  LOADK     R3 = K7 1
    0014  CALL      R1 = call(R1, 0 args, 2 rets)
    0015  SELF      R2 = R0[K5('AppendCallback')] (self)
    0016  CLOSURE   R3 = closure proto1
    0017  CALL      R1 = call(R1, 0 args, 2 rets)
    0018  RETURN    return R0..R-1
    ; ---------- proto0 [] ----------
      ; fn ?  line 391-393 np=0 va=0 ms=2 code=4 consts=1 upvals=1 protos=0
      ;   K[0]='_PlayUnlockAnimation'
      ;   upvals: self
      0000  GETUPVAL  R0 = self
      0001  SELF      R1 = R0[K0('_PlayUnlockAnimation')] (self)
      0002  CALL      R0 = call(R0, 0 args, 1 rets)
      0003  RETURN    return R0..R-1
    ; ---------- proto1 [] ----------
      ; fn ?  line 395-398 np=0 va=0 ms=4 code=11 consts=4 upvals=3 protos=0
      ;   K[0]='GM'
      ;   K[1]='UIManager'
      ;   K[2]='SetEventLock'
      ;   K[3]='RemoveAnimLock'
      ;   upvals: _ENV, self, lock
      0000  GETTABUP  R0 = _ENV[K0('GM')]
      0001  GETTABLE  R0 = R0[K1('UIManager')]
      0002  SELF      R1 = R0[K2('SetEventLock')] (self)
      0003  LOADBOOL  R2 = false
      0004  GETUPVAL  R3 = _ENV
      0005  CALL      R0 = call(R0, 0 args, 3 rets)
      0006  GETUPVAL  R0 = _ENV
      0007  SELF      R1 = R0[K3('RemoveAnimLock')] (self)
      0008  GETUPVAL  R2 = _ENV
      0009  CALL      R0 = call(R0, 0 args, 2 rets)
      0010  RETURN    return R0..R-1
; ---------- proto29 [_PlayUnlockAnimation] ----------
  ; fn ?  line 407-427 np=1 va=0 ms=10 code=64 consts=30 upvals=2 protos=2
  ;   K[0]='_IsActivityValid'
  ;   K[1]='m_bUpgrade'
  ;   K[2]='m_bFinished'
  ;   K[3]='_IsLastChanceSpinValid'
  ;   K[4]='_ShowPrompt'
  ;   K[5]='doubleWheel_bought_desc'
  ;   K[6]='m_shellSpine'
  ;   K[7]='SetAnimation'
  ;   K[8]='Appear'
  ;   K[9]='AddAnimation'
  ;   K[10]='Idle2'
  ;   K[11]='m_unlockButtonCanvasGroup'
  ;   K[12]='blocksRaycasts'
  ;   K[13]=false
  ;   K[14]='DOTween'
  ;   K[15]='Sequence'
  ;   K[16]='Append'
  ;   K[17]='m_unlockButtonRoot'
  ;   K[18]='DOScale'
  ;   K[19]='Vector3'
  ;   K[20]=0.5
  ;   K[21]=1
  ;   K[22]='Join'
  ;   K[23]='DOFade'
  ;   K[24]=0
  ;   K[25]='AppendCallback'
  ;   K[26]='Insert'
  ;   K[27]='m_wheel'
  ;   K[28]='Unlock'
  ;   K[29]='m_unlockSequence'
  ;   upvals: EShellAnimationName, _ENV
  ;   locals: self(0-64), sequence(32-64)
  0000  SELF      R2 = R0[K0('_IsActivityValid')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  TEST      if not R1 then   -> -131068
  0003  JMP       (jump)   -> 10
  0004  GETTABLE  R1 = R0[K1('m_bUpgrade')]
  0005  TEST      if not R1 then   -> -131064
  0006  JMP       (jump)   -> 10
  0007  GETTABLE  R1 = R0[K2('m_bFinished')]
  0008  TEST      if not R1 then   -> -131062
  0009  JMP       (jump)   -> 14
  0010  SELF      R2 = R0[K3('_IsLastChanceSpinValid')] (self)
  0011  CALL      R1 = call(R1, 1 args, 1 rets)
  0012  TEST      if not R1 then   -> -131058
  0013  JMP       (jump)   -> 17
  0014  SELF      R2 = R0[K4('_ShowPrompt')] (self)
  0015  LOADK     R3 = K5 'doubleWheel_bought_desc'
  0016  CALL      R1 = call(R1, 0 args, 2 rets)
  0017  GETTABLE  R1 = R0[K6('m_shellSpine')]
  0018  SELF      R2 = R1[K7('SetAnimation')] (self)
  0019  GETTABUP  R3 = EShellAnimationName[K8('Appear')]
  0020  LOADBOOL  R4 = false
  0021  CALL      R1 = call(R1, 0 args, 3 rets)
  0022  GETTABLE  R1 = R0[K6('m_shellSpine')]
  0023  SELF      R2 = R1[K9('AddAnimation')] (self)
  0024  GETTABUP  R3 = EShellAnimationName[K10('Idle2')]
  0025  LOADBOOL  R4 = true
  0026  CALL      R1 = call(R1, 0 args, 3 rets)
  0027  GETTABLE  R1 = R0[K11('m_unlockButtonCanvasGroup')]
  0028  SETTABLE  R1[K12('blocksRaycasts')] = K13(false)
  0029  GETTABUP  R1 = _ENV[K14('DOTween')]
  0030  GETTABLE  R1 = R1[K15('Sequence')]
  0031  CALL      R1 = call(R1, 1 args, 0 rets)
  0032  SELF      R3 = R1[K16('Append')] (self)
  0033  GETTABLE  R4 = R0[K17('m_unlockButtonRoot')]
  0034  SELF      R5 = R4[K18('DOScale')] (self)
  0035  GETTABUP  R6 = _ENV[K19('Vector3')]
  0036  LOADK     R7 = K20 0.5
  0037  LOADK     R8 = K20 0.5
  0038  LOADK     R9 = K21 1
  0039  CALL      R6 = call(R6, 1 args, 3 rets)
  0040  LOADK     R7 = K20 0.5
  0041  CALL      R4 = call(R4, -1 args, 3 rets)
  0042  CALL      R2 = call(R2, 0 args, -1 rets)
  0043  SELF      R3 = R1[K22('Join')] (self)
  0044  GETTABLE  R4 = R0[K11('m_unlockButtonCanvasGroup')]
  0045  SELF      R5 = R4[K23('DOFade')] (self)
  0046  LOADK     R6 = K24 0
  0047  LOADK     R7 = K20 0.5
  0048  CALL      R4 = call(R4, -1 args, 3 rets)
  0049  CALL      R2 = call(R2, 0 args, -1 rets)
  0050  SELF      R3 = R1[K25('AppendCallback')] (self)
  0051  CLOSURE   R4 = closure proto0
  0052  CALL      R2 = call(R2, 0 args, 2 rets)
  0053  SELF      R3 = R1[K26('Insert')] (self)
  0054  LOADK     R4 = K24 0
  0055  GETTABLE  R5 = R0[K27('m_wheel')]
  0056  SELF      R6 = R5[K28('Unlock')] (self)
  0057  CALL      R5 = call(R5, -1 args, 1 rets)
  0058  CALL      R2 = call(R2, 0 args, -1 rets)
  0059  SELF      R3 = R1[K25('AppendCallback')] (self)
  0060  CLOSURE   R4 = closure proto1
  0061  CALL      R2 = call(R2, 0 args, 2 rets)
  0062  SETTABLE  R0[K29('m_unlockSequence')] = R1
  0063  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 419-421 np=0 va=0 ms=3 code=6 consts=3 upvals=2 protos=0
    ;   K[0]='UIUtil'
    ;   K[1]='SetActive'
    ;   K[2]='m_unlockButtonGo'
    ;   upvals: _ENV, self
    0000  GETTABUP  R0 = _ENV[K0('UIUtil')]
    0001  GETTABLE  R0 = R0[K1('SetActive')]
    0002  GETTABUP  R1 = self[K2('m_unlockButtonGo')]
    0003  LOADBOOL  R2 = false
    0004  CALL      R0 = call(R0, 0 args, 2 rets)
    0005  RETURN    return R0..R-1
  ; ---------- proto1 [m_unlockSequence] ----------
    ; fn ?  line 423-425 np=0 va=0 ms=2 code=2 consts=2 upvals=1 protos=0
    ;   K[0]='m_unlockSequence'
    ;   K[1]=nil
    ;   upvals: self
    0000  SETTABUP  self[K0('m_unlockSequence')] = K1(nil)
    0001  RETURN    return R0..R-1
; ---------- proto30 [OnHelpBtnClick] ----------
  ; fn ?  line 430-432 np=1 va=0 ms=3 code=5 consts=2 upvals=0 protos=0
  ;   K[0]='GetModel'
  ;   K[1]='OpenHelpWindow'
  ;   locals: self(0-5)
  0000  SELF      R2 = R0[K0('GetModel')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  SELF      R2 = R1[K1('OpenHelpWindow')] (self)
  0003  CALL      R1 = call(R1, 0 args, 1 rets)
  0004  RETURN    return R0..R-1
; ---------- proto31 [OnBtnClicked] ----------
  ; fn ?  line 435-581 np=1 va=0 ms=19 code=107 consts=39 upvals=2 protos=7
  ;   K[0]='GetModel'
  ;   K[1]='TrySpin'
  ;   K[2]=nil
  ;   K[3]='GetCurrentRewardConfig'
  ;   K[4]='GetPaidRewards'
  ;   K[5]='OnStartSpin'
  ;   K[6]='m_bCanSpin'
  ;   K[7]='CanSpin'
  ;   K[8]='m_spinButton'
  ;   K[9]='SetEnabled'
  ;   K[10]='m_bSpinFinished'
  ;   K[11]='IsCurrentWheelSpinFinished'
  ;   K[12]='_TryUpgradeWheel'
  ;   K[13]='AddAnimLock'
  ;   K[14]='GM'
  ;   K[15]='UIManager'
  ;   K[16]='SetEventLock'
  ;   K[17]='_SpeedUp'
  ;   K[18]='DOTween'
  ;   K[19]='Sequence'
  ;   K[20]='AppendCallback'
  ;   K[21]='Append'
  ;   K[22]='m_wheel'
  ;   K[23]='PlaySpinAnimation'
  ;   K[24]='m_sequenceSpin'
  ;   K[25]='PlaySpinAnimationBack'
  ;   K[26]='AppendInterval'
  ;   K[27]=0.5
  ;   K[28]='Duration'
  ;   K[29]='EDurationDefine'
  ;   K[30]='TimePerFrame'
  ;   K[31]=30
  ;   K[32]=20
  ;   K[33]=0.9
  ;   K[34]='AppendCallback'
  ;   K[35]='Insert'
  ;   K[36]='m_wheel'
  ;   K[37]='ToRewardTaken'
  ;   K[38]='Pause'
  ;   upvals: _ENV, EShellAnimationName
  ;   locals: self(0-107), model(2-107), rewardIndex(4-107), bHasPaidThisWheel(4-107), bBest(4-107), rewards(4-107), paidRewards(4-107), innerReward(30-107), outerReward(30-107), lock(32-107), sequence(42-107), sequenceSpin(45-107), rewardTakenDuration(75-107)
  0000  SELF      R2 = R0[K0('GetModel')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  SELF      R3 = R1[K1('TrySpin')] (self)
  0003  CALL      R2 = call(R2, 5 args, 1 rets)
  0004  EQ        if R0 eq K2(nil)   -> -129784
  0005  JMP       (jump)   -> 7
  0006  RETURN    return R0..R-1
  0007  TEST      if not R3 then   -> -131062
  0008  JMP       (jump)   -> 15
  0009  SELF      R8 = R1[K3('GetCurrentRewardConfig')] (self)
  0010  MOVE      R9 = R0
  0011  CALL      R7 = call(R7, 1 args, 2 rets)
  0012  SELF      R8 = R7[K4('GetPaidRewards')] (self)
  0013  CALL      R7 = call(R7, 1 args, 1 rets)
  0014  MOVE      R6 = R0
  0015  SELF      R8 = R1[K5('OnStartSpin')] (self)
  0016  CALL      R7 = call(R7, 0 args, 1 rets)
  0017  SELF      R8 = R1[K7('CanSpin')] (self)
  0018  CALL      R7 = call(R7, 1 args, 1 rets)
  0019  SETTABLE  R0[K6('m_bCanSpin')] = R7
  0020  GETTABLE  R7 = R0[K8('m_spinButton')]
  0021  SELF      R8 = R7[K9('SetEnabled')] (self)
  0022  LOADBOOL  R9 = false
  0023  CALL      R7 = call(R7, 0 args, 2 rets)
  0024  SELF      R8 = R1[K11('IsCurrentWheelSpinFinished')] (self)
  0025  CALL      R7 = call(R7, 1 args, 1 rets)
  0026  SETTABLE  R0[K10('m_bSpinFinished')] = R7
  0027  SELF      R8 = R0[K12('_TryUpgradeWheel')] (self)
  0028  CALL      R7 = call(R7, 0 args, 1 rets)
  0029  LOADNIL   R7..R7 = nil
  0030  SELF      R10 = R0[K13('AddAnimLock')] (self)
  0031  CALL      R9 = call(R9, 1 args, 1 rets)
  0032  GETTABUP  R10 = _ENV[K14('GM')]
  0033  GETTABLE  R10 = R10[K15('UIManager')]
  0034  SELF      R11 = R10[K16('SetEventLock')] (self)
  0035  LOADBOOL  R12 = true
  0036  MOVE      R13 = R0
  0037  GETTABLE  R14 = R0[K17('_SpeedUp')]
  0038  CALL      R10 = call(R10, 0 args, 4 rets)
  0039  GETTABUP  R10 = _ENV[K18('DOTween')]
  0040  GETTABLE  R10 = R10[K19('Sequence')]
  0041  CALL      R10 = call(R10, 1 args, 0 rets)
  0042  GETTABUP  R11 = _ENV[K18('DOTween')]
  0043  GETTABLE  R11 = R11[K19('Sequence')]
  0044  CALL      R11 = call(R11, 1 args, 0 rets)
  0045  SELF      R13 = R11[K20('AppendCallback')] (self)
  0046  CLOSURE   R14 = closure proto0
  0047  CALL      R12 = call(R12, 0 args, 2 rets)
  0048  SELF      R13 = R11[K21('Append')] (self)
  0049  GETTABLE  R14 = R0[K22('m_wheel')]
  0050  SELF      R15 = R14[K23('PlaySpinAnimation')] (self)
  0051  MOVE      R16 = R0
  0052  MOVE      R17 = R0
  0053  CALL      R14 = call(R14, -1 args, 3 rets)
  0054  CALL      R12 = call(R12, 0 args, -1 rets)
  0055  SELF      R13 = R11[K20('AppendCallback')] (self)
  0056  CLOSURE   R14 = closure proto1
  0057  CALL      R12 = call(R12, 0 args, 2 rets)
  0058  SETTABLE  R0[K24('m_sequenceSpin')] = R11
  0059  SELF      R13 = R10[K21('Append')] (self)
  0060  GETTABLE  R14 = R0[K22('m_wheel')]
  0061  SELF      R15 = R14[K25('PlaySpinAnimationBack')] (self)
  0062  CALL      R14 = call(R14, -1 args, 1 rets)
  0063  CALL      R12 = call(R12, 0 args, -1 rets)
  0064  SELF      R13 = R10[K20('AppendCallback')] (self)
  0065  CLOSURE   R14 = closure proto2
  0066  CALL      R12 = call(R12, 0 args, 2 rets)
  0067  SELF      R13 = R10[K26('AppendInterval')] (self)
  0068  LOADK     R14 = K27 0.5
  0069  CALL      R12 = call(R12, 0 args, 2 rets)
  0070  SELF      R13 = R10[K20('AppendCallback')] (self)
  0071  CLOSURE   R14 = closure proto3
  0072  CALL      R12 = call(R12, 0 args, 2 rets)
  0073  SELF      R13 = R10[K28('Duration')] (self)
  0074  CALL      R12 = call(R12, 1 args, 1 rets)
  0075  SELF      R14 = R10[K26('AppendInterval')] (self)
  0076  GETTABUP  R15 = _ENV[K29('EDurationDefine')]
  0077  GETTABLE  R15 = R15[K30('TimePerFrame')]
  0078  MUL       R15 = R15 mul K31(30)
  0079  CALL      R13 = call(R13, 0 args, 2 rets)
  0080  SELF      R14 = R10[K20('AppendCallback')] (self)
  0081  CLOSURE   R15 = closure proto4
  0082  CALL      R13 = call(R13, 0 args, 2 rets)
  0083  SELF      R14 = R10[K26('AppendInterval')] (self)
  0084  GETTABUP  R15 = _ENV[K29('EDurationDefine')]
  0085  GETTABLE  R15 = R15[K30('TimePerFrame')]
  0086  MUL       R15 = R15 mul K32(20)
  0087  CALL      R13 = call(R13, 0 args, 2 rets)
  0088  SELF      R14 = R10[K20('AppendCallback')] (self)
  0089  CLOSURE   R15 = closure proto5
  0090  CALL      R13 = call(R13, 0 args, 2 rets)
  0091  SELF      R14 = R10[K26('AppendInterval')] (self)
  0092  LOADK     R15 = K33 0.9
  0093  CALL      R13 = call(R13, 0 args, 2 rets)
  0094  SELF      R14 = R10[K34('AppendCallback')] (self)
  0095  CLOSURE   R15 = closure proto6
  0096  CALL      R13 = call(R13, 0 args, 2 rets)
  0097  SELF      R14 = R10[K35('Insert')] (self)
  0098  MOVE      R15 = R0
  0099  GETTABLE  R16 = R0[K36('m_wheel')]
  0100  SELF      R17 = R16[K37('ToRewardTaken')] (self)
  0101  MOVE      R18 = R0
  0102  CALL      R16 = call(R16, -1 args, 2 rets)
  0103  CALL      R13 = call(R13, 0 args, -1 rets)
  0104  SELF      R14 = R10[K38('Pause')] (self)
  0105  CALL      R13 = call(R13, 0 args, 1 rets)
  0106  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 466-469 np=0 va=0 ms=3 code=12 consts=9 upvals=1 protos=0
    ;   K[0]='GM'
    ;   K[1]='AudioModel'
    ;   K[2]='PlayEffectWithFrameLimit'
    ;   K[3]='AudioFileConfigName'
    ;   K[4]='SfxDoubleWheelRotate'
    ;   K[5]='PlatformInterface'
    ;   K[6]='Vibrate'
    ;   K[7]='EVibrationType'
    ;   K[8]='Light'
    ;   upvals: _ENV
    0000  GETTABUP  R0 = _ENV[K0('GM')]
    0001  GETTABLE  R0 = R0[K1('AudioModel')]
    0002  SELF      R1 = R0[K2('PlayEffectWithFrameLimit')] (self)
    0003  GETTABUP  R2 = _ENV[K3('AudioFileConfigName')]
    0004  GETTABLE  R2 = R2[K4('SfxDoubleWheelRotate')]
    0005  CALL      R0 = call(R0, 0 args, 2 rets)
    0006  GETTABUP  R0 = _ENV[K5('PlatformInterface')]
    0007  GETTABLE  R0 = R0[K6('Vibrate')]
    0008  GETTABUP  R1 = _ENV[K7('EVibrationType')]
    0009  GETTABLE  R1 = R1[K8('Light')]
    0010  CALL      R0 = call(R0, 0 args, 1 rets)
    0011  RETURN    return R0..R-1
  ; ---------- proto1 [m_sequenceSpin] ----------
    ; fn ?  line 471-474 np=0 va=0 ms=2 code=5 consts=3 upvals=2 protos=0
    ;   K[0]='m_sequenceSpin'
    ;   K[1]=nil
    ;   K[2]='Play'
    ;   upvals: self, sequence
    0000  SETTABUP  self[K0('m_sequenceSpin')] = K1(nil)
    0001  GETUPVAL  R0 = self
    0002  SELF      R1 = R0[K2('Play')] (self)
    0003  CALL      R0 = call(R0, 0 args, 1 rets)
    0004  RETURN    return R0..R-1
  ; ---------- proto2 [] ----------
    ; fn ?  line 478-480 np=0 va=0 ms=4 code=6 consts=2 upvals=3 protos=0
    ;   K[0]='m_wheel'
    ;   K[1]='ShowResultEffect'
    ;   upvals: self, rewardIndex, bBest
    0000  GETTABUP  R0 = self[K0('m_wheel')]
    0001  SELF      R1 = R0[K1('ShowResultEffect')] (self)
    0002  GETUPVAL  R2 = self
    0003  GETUPVAL  R3 = self
    0004  CALL      R0 = call(R0, 0 args, 3 rets)
    0005  RETURN    return R0..R-1
  ; ---------- proto3 [] ----------
    ; fn ?  line 482-520 np=0 va=0 ms=8 code=172 consts=35 upvals=9 protos=0
    ;   K[0]='m_wheel'
    ;   K[1]='GetRewardContent'
    ;   K[2]='Table'
    ;   K[3]='IsEmpty'
    ;   K[4]='Object'
    ;   K[5]='Instantiate'
    ;   K[6]='m_effectDownPrefab'
    ;   K[7]='m_rewardRoot'
    ;   K[8]='transform'
    ;   K[9]='localPosition'
    ;   K[10]='InverseTransformPoint'
    ;   K[11]='position'
    ;   K[12]='Vector3'
    ;   K[13]=0
    ;   K[14]=-2
    ;   K[15]='m_innerRewardPrefab'
    ;   K[16]='GetLuaTable'
    ;   K[17]='bNoFilterReward'
    ;   K[18]=true
    ;   K[19]='Init'
    ;   K[20]='ERewardScene'
    ;   K[21]='Other'
    ;   K[22]='m_effectOnPrefab'
    ;   K[23]='m_outerRewardPrefab'
    ;   K[24]='GM'
    ;   K[25]='AudioModel'
    ;   K[26]='PlayEffectWithFrameLimit'
    ;   K[27]='AudioFileConfigName'
    ;   K[28]='PairworkSelectHighest'
    ;   K[29]='PlatformInterface'
    ;   K[30]='Vibrate'
    ;   K[31]='EVibrationType'
    ;   K[32]='Heavy'
    ;   K[33]='PairworkSelectNormal'
    ;   K[34]='Medium'
    ;   upvals: self, rewardIndex, _ENV, rewards, paidRewards, innerReward, outerReward, bHasPaidThisWheel, bBest
    ;   locals: rewardContentInner(4-172), rewardContentOuter(4-172), effectDownTransform(16-28), effectDownTransform(40-52), effectOnTransform(86-98), effectOnTransform(133-145)
    0000  GETTABUP  R0 = self[K0('m_wheel')]
    0001  SELF      R1 = R0[K1('GetRewardContent')] (self)
    0002  GETUPVAL  R2 = self
    0003  CALL      R0 = call(R0, 2 args, 2 rets)
    0004  GETTABUP  R2 = _ENV[K2('Table')]
    0005  GETTABLE  R2 = R2[K3('IsEmpty')]
    0006  GETUPVAL  R3 = self
    0007  CALL      R2 = call(R2, 1 args, 1 rets)
    0008  TEST      if not R2 then   -> -131061
    0009  JMP       (jump)   -> 28
    0010  GETTABUP  R2 = _ENV[K4('Object')]
    0011  GETTABLE  R2 = R2[K5('Instantiate')]
    0012  GETTABUP  R3 = self[K6('m_effectDownPrefab')]
    0013  GETTABUP  R4 = self[K7('m_rewardRoot')]
    0014  CALL      R2 = call(R2, 1 args, 2 rets)
    0015  GETTABLE  R2 = R2[K8('transform')]
    0016  GETTABUP  R3 = self[K7('m_rewardRoot')]
    0017  SELF      R4 = R3[K10('InverseTransformPoint')] (self)
    0018  GETTABLE  R5 = R0[K8('transform')]
    0019  GETTABLE  R5 = R5[K11('position')]
    0020  CALL      R3 = call(R3, 1 args, 2 rets)
    0021  GETTABUP  R4 = _ENV[K12('Vector3')]
    0022  LOADK     R5 = K13 0
    0023  LOADK     R6 = K14 -2
    0024  LOADK     R7 = K13 0
    0025  CALL      R4 = call(R4, 1 args, 3 rets)
    0026  ADD       R3 = R4 add R3
    0027  SETTABLE  R2[K9('localPosition')] = R3
    0028  GETTABUP  R2 = _ENV[K2('Table')]
    0029  GETTABLE  R2 = R2[K3('IsEmpty')]
    0030  GETUPVAL  R3 = self
    0031  CALL      R2 = call(R2, 1 args, 1 rets)
    0032  TEST      if not R2 then   -> -131037
    0033  JMP       (jump)   -> 52
    0034  GETTABUP  R2 = _ENV[K4('Object')]
    0035  GETTABLE  R2 = R2[K5('Instantiate')]
    0036  GETTABUP  R3 = self[K6('m_effectDownPrefab')]
    0037  GETTABUP  R4 = self[K7('m_rewardRoot')]
    0038  CALL      R2 = call(R2, 1 args, 2 rets)
    0039  GETTABLE  R2 = R2[K8('transform')]
    0040  GETTABUP  R3 = self[K7('m_rewardRoot')]
    0041  SELF      R4 = R3[K10('InverseTransformPoint')] (self)
    0042  GETTABLE  R5 = R1[K8('transform')]
    0043  GETTABLE  R5 = R5[K11('position')]
    0044  CALL      R3 = call(R3, 1 args, 2 rets)
    0045  GETTABUP  R4 = _ENV[K12('Vector3')]
    0046  LOADK     R5 = K13 0
    0047  LOADK     R6 = K14 -2
    0048  LOADK     R7 = K13 0
    0049  CALL      R4 = call(R4, 1 args, 3 rets)
    0050  ADD       R3 = R4 add R3
    0051  SETTABLE  R2[K9('localPosition')] = R3
    0052  GETTABUP  R2 = _ENV[K2('Table')]
    0053  GETTABLE  R2 = R2[K3('IsEmpty')]
    0054  GETUPVAL  R3 = self
    0055  CALL      R2 = call(R2, 1 args, 1 rets)
    0056  TEST      if not R2 then   -> -131013
    0057  JMP       (jump)   -> 98
    0058  GETTABUP  R2 = _ENV[K4('Object')]
    0059  GETTABLE  R2 = R2[K5('Instantiate')]
    0060  GETTABUP  R3 = self[K15('m_innerRewardPrefab')]
    0061  GETTABUP  R4 = self[K7('m_rewardRoot')]
    0062  CALL      R2 = call(R2, 1 args, 2 rets)
    0063  SELF      R3 = R2[K16('GetLuaTable')] (self)
    0064  CALL      R2 = call(R2, 1 args, 1 rets)
    0065  SETUPVAL  _ENV = R0
    0066  GETTABUP  R2 = innerReward[K8('transform')]
    0067  GETTABUP  R3 = self[K7('m_rewardRoot')]
    0068  SELF      R4 = R3[K10('InverseTransformPoint')] (self)
    0069  GETTABLE  R5 = R0[K8('transform')]
    0070  GETTABLE  R5 = R5[K11('position')]
    0071  CALL      R3 = call(R3, 1 args, 2 rets)
    0072  SETTABLE  R2[K9('localPosition')] = R3
    0073  SETTABUP  innerReward[K17('bNoFilterReward')] = K18(true)
    0074  GETUPVAL  R2 = self
    0075  SELF      R3 = R2[K19('Init')] (self)
    0076  GETUPVAL  R4 = self
    0077  GETTABUP  R5 = _ENV[K20('ERewardScene')]
    0078  GETTABLE  R5 = R5[K21('Other')]
    0079  CALL      R2 = call(R2, 0 args, 3 rets)
    0080  GETTABUP  R2 = _ENV[K4('Object')]
    0081  GETTABLE  R2 = R2[K5('Instantiate')]
    0082  GETTABUP  R3 = self[K22('m_effectOnPrefab')]
    0083  GETTABUP  R4 = self[K7('m_rewardRoot')]
    0084  CALL      R2 = call(R2, 1 args, 2 rets)
    0085  GETTABLE  R2 = R2[K8('transform')]
    0086  GETTABUP  R3 = self[K7('m_rewardRoot')]
    0087  SELF      R4 = R3[K10('InverseTransformPoint')] (self)
    0088  GETTABLE  R5 = R0[K8('transform')]
    0089  GETTABLE  R5 = R5[K11('position')]
    0090  CALL      R3 = call(R3, 1 args, 2 rets)
    0091  GETTABUP  R4 = _ENV[K12('Vector3')]
    0092  LOADK     R5 = K13 0
    0093  LOADK     R6 = K14 -2
    0094  LOADK     R7 = K13 0
    0095  CALL      R4 = call(R4, 1 args, 3 rets)
    0096  ADD       R3 = R4 add R3
    0097  SETTABLE  R2[K9('localPosition')] = R3
    0098  GETTABUP  R2 = _ENV[K2('Table')]
    0099  GETTABLE  R2 = R2[K3('IsEmpty')]
    0100  GETUPVAL  R3 = self
    0101  CALL      R2 = call(R2, 1 args, 1 rets)
    0102  TEST      if not R2 then   -> -130967
    0103  JMP       (jump)   -> 145
    0104  GETTABUP  R2 = _ENV[K4('Object')]
    0105  GETTABLE  R2 = R2[K5('Instantiate')]
    0106  GETTABUP  R3 = self[K23('m_outerRewardPrefab')]
    0107  GETTABUP  R4 = self[K7('m_rewardRoot')]
    0108  CALL      R2 = call(R2, 1 args, 2 rets)
    0109  SELF      R3 = R2[K16('GetLuaTable')] (self)
    0110  CALL      R2 = call(R2, 1 args, 1 rets)
    0111  SETUPVAL  _ENV = R0
    0112  GETTABUP  R2 = outerReward[K8('transform')]
    0113  GETTABUP  R3 = self[K7('m_rewardRoot')]
    0114  SELF      R4 = R3[K10('InverseTransformPoint')] (self)
    0115  GETTABLE  R5 = R1[K8('transform')]
    0116  GETTABLE  R5 = R5[K11('position')]
    0117  CALL      R3 = call(R3, 1 args, 2 rets)
    0118  SETTABLE  R2[K9('localPosition')] = R3
    0119  GETUPVAL  R2 = self
    0120  SETTABUP  outerReward[K17('bNoFilterReward')] = R2
    0121  GETUPVAL  R2 = self
    0122  SELF      R3 = R2[K19('Init')] (self)
    0123  GETUPVAL  R4 = self
    0124  GETTABUP  R5 = _ENV[K20('ERewardScene')]
    0125  GETTABLE  R5 = R5[K21('Other')]
    0126  CALL      R2 = call(R2, 0 args, 3 rets)
    0127  GETTABUP  R2 = _ENV[K4('Object')]
    0128  GETTABLE  R2 = R2[K5('Instantiate')]
    0129  GETTABUP  R3 = self[K22('m_effectOnPrefab')]
    0130  GETTABUP  R4 = self[K7('m_rewardRoot')]
    0131  CALL      R2 = call(R2, 1 args, 2 rets)
    0132  GETTABLE  R2 = R2[K8('transform')]
    0133  GETTABUP  R3 = self[K7('m_rewardRoot')]
    0134  SELF      R4 = R3[K10('InverseTransformPoint')] (self)
    0135  GETTABLE  R5 = R1[K8('transform')]
    0136  GETTABLE  R5 = R5[K11('position')]
    0137  CALL      R3 = call(R3, 1 args, 2 rets)
    0138  GETTABUP  R4 = _ENV[K12('Vector3')]
    0139  LOADK     R5 = K13 0
    0140  LOADK     R6 = K14 -2
    0141  LOADK     R7 = K13 0
    0142  CALL      R4 = call(R4, 1 args, 3 rets)
    0143  ADD       R3 = R4 add R3
    0144  SETTABLE  R2[K9('localPosition')] = R3
    0145  GETUPVAL  R2 = self
    0146  TEST      if not R2 then   -> -130924
    0147  JMP       (jump)   -> 160
    0148  GETTABUP  R2 = _ENV[K24('GM')]
    0149  GETTABLE  R2 = R2[K25('AudioModel')]
    0150  SELF      R3 = R2[K26('PlayEffectWithFrameLimit')] (self)
    0151  GETTABUP  R4 = _ENV[K27('AudioFileConfigName')]
    0152  GETTABLE  R4 = R4[K28('PairworkSelectHighest')]
    0153  CALL      R2 = call(R2, 0 args, 2 rets)
    0154  GETTABUP  R2 = _ENV[K29('PlatformInterface')]
    0155  GETTABLE  R2 = R2[K30('Vibrate')]
    0156  GETTABUP  R3 = _ENV[K31('EVibrationType')]
    0157  GETTABLE  R3 = R3[K32('Heavy')]
    0158  CALL      R2 = call(R2, 0 args, 1 rets)
    0159  JMP       (jump)   -> 171
    0160  GETTABUP  R2 = _ENV[K24('GM')]
    0161  GETTABLE  R2 = R2[K25('AudioModel')]
    0162  SELF      R3 = R2[K26('PlayEffectWithFrameLimit')] (self)
    0163  GETTABUP  R4 = _ENV[K27('AudioFileConfigName')]
    0164  GETTABLE  R4 = R4[K33('PairworkSelectNormal')]
    0165  CALL      R2 = call(R2, 0 args, 2 rets)
    0166  GETTABUP  R2 = _ENV[K29('PlatformInterface')]
    0167  GETTABLE  R2 = R2[K30('Vibrate')]
    0168  GETTABUP  R3 = _ENV[K31('EVibrationType')]
    0169  GETTABLE  R3 = R3[K34('Medium')]
    0170  CALL      R2 = call(R2, 0 args, 1 rets)
    0171  RETURN    return R0..R-1
  ; ---------- proto4 [] ----------
    ; fn ?  line 523-528 np=0 va=0 ms=4 code=17 consts=6 upvals=4 protos=0
    ;   K[0]=nil
    ;   K[1]='m_shellSpine'
    ;   K[2]='SetAnimation'
    ;   K[3]='Appear2'
    ;   K[4]='AddAnimation'
    ;   K[5]='Idle1'
    ;   upvals: outerReward, bHasPaidThisWheel, self, EShellAnimationName
    0000  GETUPVAL  R0 = outerReward
    0001  EQ        if R1 eq K0(nil)   -> -130813
    0002  JMP       (jump)   -> 16
    0003  GETUPVAL  R0 = outerReward
    0004  TEST      if not R0 then   -> -131065
    0005  JMP       (jump)   -> 16
    0006  GETTABUP  R0 = self[K1('m_shellSpine')]
    0007  SELF      R1 = R0[K2('SetAnimation')] (self)
    0008  GETTABUP  R2 = EShellAnimationName[K3('Appear2')]
    0009  LOADBOOL  R3 = false
    0010  CALL      R0 = call(R0, 0 args, 3 rets)
    0011  GETTABUP  R0 = self[K1('m_shellSpine')]
    0012  SELF      R1 = R0[K4('AddAnimation')] (self)
    0013  GETTABUP  R2 = EShellAnimationName[K5('Idle1')]
    0014  LOADBOOL  R3 = true
    0015  CALL      R0 = call(R0, 0 args, 3 rets)
    0016  RETURN    return R0..R-1
  ; ---------- proto5 [] ----------
    ; fn ?  line 530-554 np=0 va=0 ms=10 code=73 consts=26 upvals=5 protos=2
    ;   K[0]=nil
    ;   K[1]='PlayRewardAnimation'
    ;   K[2]='Object'
    ;   K[3]='Destroy'
    ;   K[4]='gameObject'
    ;   K[5]='DOTween'
    ;   K[6]='Sequence'
    ;   K[7]='AppendCallback'
    ;   K[8]='Append'
    ;   K[9]='transform'
    ;   K[10]='DOLocalJump'
    ;   K[11]='m_rewardRoot'
    ;   K[12]='InverseTransformPoint'
    ;   K[13]='m_shellRoot'
    ;   K[14]='position'
    ;   K[15]=250
    ;   K[16]=1
    ;   K[17]=0.55
    ;   K[18]='Insert'
    ;   K[19]=0
    ;   K[20]='DOScale'
    ;   K[21]='Vector3'
    ;   K[22]=1.1
    ;   K[23]=0.4
    ;   K[24]=0.6
    ;   K[25]=0.15
    ;   upvals: innerReward, _ENV, outerReward, bHasPaidThisWheel, self
    ;   locals: rewardSequence(29-72)
    0000  GETUPVAL  R0 = innerReward
    0001  EQ        if R1 eq K0(nil)   -> -130813
    0002  JMP       (jump)   -> 11
    0003  GETUPVAL  R0 = innerReward
    0004  SELF      R1 = R0[K1('PlayRewardAnimation')] (self)
    0005  LOADBOOL  R2 = true
    0006  CALL      R0 = call(R0, 0 args, 2 rets)
    0007  GETTABUP  R0 = _ENV[K2('Object')]
    0008  GETTABLE  R0 = R0[K3('Destroy')]
    0009  GETTABUP  R1 = innerReward[K4('gameObject')]
    0010  CALL      R0 = call(R0, 0 args, 1 rets)
    0011  GETUPVAL  R0 = innerReward
    0012  EQ        if R1 eq K0(nil)   -> -130802
    0013  JMP       (jump)   -> 72
    0014  GETUPVAL  R0 = innerReward
    0015  TEST      if not R0 then   -> -131055
    0016  JMP       (jump)   -> 26
    0017  GETUPVAL  R0 = innerReward
    0018  SELF      R1 = R0[K1('PlayRewardAnimation')] (self)
    0019  LOADBOOL  R2 = true
    0020  CALL      R0 = call(R0, 0 args, 2 rets)
    0021  GETTABUP  R0 = _ENV[K2('Object')]
    0022  GETTABLE  R0 = R0[K3('Destroy')]
    0023  GETTABUP  R1 = outerReward[K4('gameObject')]
    0024  CALL      R0 = call(R0, 0 args, 1 rets)
    0025  JMP       (jump)   -> 72
    0026  GETTABUP  R0 = _ENV[K5('DOTween')]
    0027  GETTABLE  R0 = R0[K6('Sequence')]
    0028  CALL      R0 = call(R0, 1 args, 0 rets)
    0029  SELF      R2 = R0[K7('AppendCallback')] (self)
    0030  CLOSURE   R3 = closure proto0
    0031  CALL      R1 = call(R1, 0 args, 2 rets)
    0032  SELF      R2 = R0[K8('Append')] (self)
    0033  GETTABUP  R3 = outerReward[K9('transform')]
    0034  SELF      R4 = R3[K10('DOLocalJump')] (self)
    0035  GETTABUP  R5 = self[K11('m_rewardRoot')]
    0036  SELF      R6 = R5[K12('InverseTransformPoint')] (self)
    0037  GETTABUP  R7 = self[K13('m_shellRoot')]
    0038  GETTABLE  R7 = R7[K14('position')]
    0039  CALL      R5 = call(R5, 1 args, 2 rets)
    0040  LOADK     R6 = K15 250
    0041  LOADK     R7 = K16 1
    0042  LOADK     R8 = K17 0.55
    0043  CALL      R3 = call(R3, -1 args, 5 rets)
    0044  CALL      R1 = call(R1, 0 args, -1 rets)
    0045  SELF      R2 = R0[K18('Insert')] (self)
    0046  LOADK     R3 = K19 0
    0047  GETTABUP  R4 = outerReward[K9('transform')]
    0048  SELF      R5 = R4[K20('DOScale')] (self)
    0049  GETTABUP  R6 = _ENV[K21('Vector3')]
    0050  LOADK     R7 = K22 1.1
    0051  LOADK     R8 = K22 1.1
    0052  LOADK     R9 = K16 1
    0053  CALL      R6 = call(R6, 1 args, 3 rets)
    0054  LOADK     R7 = K23 0.4
    0055  CALL      R4 = call(R4, -1 args, 3 rets)
    0056  CALL      R1 = call(R1, 0 args, -1 rets)
    0057  SELF      R2 = R0[K18('Insert')] (self)
    0058  LOADK     R3 = K23 0.4
    0059  GETTABUP  R4 = outerReward[K9('transform')]
    0060  SELF      R5 = R4[K20('DOScale')] (self)
    0061  GETTABUP  R6 = _ENV[K21('Vector3')]
    0062  LOADK     R7 = K24 0.6
    0063  LOADK     R8 = K24 0.6
    0064  LOADK     R9 = K16 1
    0065  CALL      R6 = call(R6, 1 args, 3 rets)
    0066  LOADK     R7 = K25 0.15
    0067  CALL      R4 = call(R4, -1 args, 3 rets)
    0068  CALL      R1 = call(R1, 0 args, -1 rets)
    0069  SELF      R2 = R0[K7('AppendCallback')] (self)
    0070  CLOSURE   R3 = closure proto1
    0071  CALL      R1 = call(R1, 0 args, 2 rets)
    0072  RETURN    return R0..R-1
    ; ---------- proto0 [] ----------
      ; fn ?  line 542-545 np=0 va=0 ms=3 code=12 consts=9 upvals=1 protos=0
      ;   K[0]='GM'
      ;   K[1]='AudioModel'
      ;   K[2]='PlayEffectWithFrameLimit'
      ;   K[3]='AudioFileConfigName'
      ;   K[4]='SfxAlbumCardFly'
      ;   K[5]='PlatformInterface'
      ;   K[6]='Vibrate'
      ;   K[7]='EVibrationType'
      ;   K[8]='Heavy'
      ;   upvals: _ENV
      0000  GETTABUP  R0 = _ENV[K0('GM')]
      0001  GETTABLE  R0 = R0[K1('AudioModel')]
      0002  SELF      R1 = R0[K2('PlayEffectWithFrameLimit')] (self)
      0003  GETTABUP  R2 = _ENV[K3('AudioFileConfigName')]
      0004  GETTABLE  R2 = R2[K4('SfxAlbumCardFly')]
      0005  CALL      R0 = call(R0, 0 args, 2 rets)
      0006  GETTABUP  R0 = _ENV[K5('PlatformInterface')]
      0007  GETTABLE  R0 = R0[K6('Vibrate')]
      0008  GETTABUP  R1 = _ENV[K7('EVibrationType')]
      0009  GETTABLE  R1 = R1[K8('Heavy')]
      0010  CALL      R0 = call(R0, 0 args, 1 rets)
      0011  RETURN    return R0..R-1
    ; ---------- proto1 [] ----------
      ; fn ?  line 549-551 np=0 va=0 ms=2 code=5 consts=3 upvals=2 protos=0
      ;   K[0]='Object'
      ;   K[1]='Destroy'
      ;   K[2]='gameObject'
      ;   upvals: _ENV, outerReward
      0000  GETTABUP  R0 = _ENV[K0('Object')]
      0001  GETTABLE  R0 = R0[K1('Destroy')]
      0002  GETTABUP  R1 = outerReward[K2('gameObject')]
      0003  CALL      R0 = call(R0, 0 args, 1 rets)
      0004  RETURN    return R0..R-1
  ; ---------- proto6 [] ----------
    ; fn ?  line 556-577 np=0 va=0 ms=6 code=61 consts=17 upvals=4 protos=1
    ;   K[0]='GM'
    ;   K[1]='UIManager'
    ;   K[2]='SetEventLock'
    ;   K[3]='_SpeedUp'
    ;   K[4]='_IsLastChanceValid'
    ;   K[5]='m_bCanSpin'
    ;   K[6]='AddAnimLock'
    ;   K[7]='OnUnlockBtnClicked'
    ;   K[8]='RemoveAnimLock'
    ;   K[9]='m_spinButton'
    ;   K[10]='SetEnabled'
    ;   K[11]='_IsActivityValid'
    ;   K[12]='OnSpinEnd'
    ;   K[13]='TutorialModel'
    ;   K[14]='HasAnyStrongTutorialOngoing'
    ;   K[15]='m_bSpinFinished'
    ;   K[16]='_TryShowShellTip'
    ;   upvals: _ENV, self, lock, model
    ;   locals: purchaseLock(18-25), closeCallback(19-25)
    0000  GETTABUP  R0 = _ENV[K0('GM')]
    0001  GETTABLE  R0 = R0[K1('UIManager')]
    0002  SELF      R1 = R0[K2('SetEventLock')] (self)
    0003  LOADBOOL  R2 = false
    0004  GETUPVAL  R3 = _ENV
    0005  GETTABUP  R4 = self[K3('_SpeedUp')]
    0006  CALL      R0 = call(R0, 0 args, 4 rets)
    0007  GETUPVAL  R0 = _ENV
    0008  SELF      R1 = R0[K4('_IsLastChanceValid')] (self)
    0009  CALL      R0 = call(R0, 1 args, 1 rets)
    0010  TEST      if not R0 then   -> -131060
    0011  JMP       (jump)   -> 25
    0012  GETTABUP  R0 = self[K5('m_bCanSpin')]
    0013  TEST      if not R0 then   -> -131056
    0014  JMP       (jump)   -> 25
    0015  GETUPVAL  R0 = _ENV
    0016  SELF      R1 = R0[K6('AddAnimLock')] (self)
    0017  CALL      R0 = call(R0, 1 args, 1 rets)
    0018  CLOSURE   R1 = closure proto0
    0019  GETUPVAL  R2 = _ENV
    0020  SELF      R3 = R2[K7('OnUnlockBtnClicked')] (self)
    0021  LOADBOOL  R4 = true
    0022  MOVE      R5 = R0
    0023  CALL      R2 = call(R2, 0 args, 3 rets)
    0024  JMP       (jump)   -> 25
    0025  GETUPVAL  R0 = _ENV
    0026  SELF      R1 = R0[K8('RemoveAnimLock')] (self)
    0027  GETUPVAL  R2 = _ENV
    0028  CALL      R0 = call(R0, 0 args, 2 rets)
    0029  GETTABUP  R0 = self[K9('m_spinButton')]
    0030  SELF      R1 = R0[K10('SetEnabled')] (self)
    0031  GETTABUP  R2 = self[K5('m_bCanSpin')]
    0032  CALL      R0 = call(R0, 0 args, 2 rets)
    0033  GETUPVAL  R0 = _ENV
    0034  SELF      R1 = R0[K11('_IsActivityValid')] (self)
    0035  CALL      R0 = call(R0, 1 args, 1 rets)
    0036  TEST      if not R0 then   -> -131034
    0037  JMP       (jump)   -> 60
    0038  GETUPVAL  R0 = _ENV
    0039  SELF      R1 = R0[K12('OnSpinEnd')] (self)
    0040  CALL      R0 = call(R0, 0 args, 1 rets)
    0041  GETTABUP  R0 = self[K5('m_bCanSpin')]
    0042  TEST      if not R0 then   -> -131027
    0043  JMP       (jump)   -> 60
    0044  GETTABUP  R0 = _ENV[K0('GM')]
    0045  GETTABLE  R0 = R0[K13('TutorialModel')]
    0046  SELF      R1 = R0[K14('HasAnyStrongTutorialOngoing')] (self)
    0047  CALL      R0 = call(R0, 1 args, 1 rets)
    0048  TEST      if not R0 then   -> -131021
    0049  JMP       (jump)   -> 60
    0050  GETTABUP  R0 = self[K15('m_bSpinFinished')]
    0051  TEST      if not R0 then   -> -131019
    0052  JMP       (jump)   -> 57
    0053  GETUPVAL  R0 = _ENV
    0054  SELF      R1 = R0[K7('OnUnlockBtnClicked')] (self)
    0055  CALL      R0 = call(R0, 0 args, 1 rets)
    0056  JMP       (jump)   -> 60
    0057  GETUPVAL  R0 = _ENV
    0058  SELF      R1 = R0[K16('_TryShowShellTip')] (self)
    0059  CALL      R0 = call(R0, 0 args, 1 rets)
    0060  RETURN    return R0..R-1
    ; ---------- proto0 [] ----------
      ; fn ?  line 560-562 np=0 va=0 ms=3 code=5 consts=1 upvals=2 protos=0
      ;   K[0]='RemoveAnimLock'
      ;   upvals: self, purchaseLock
      0000  GETUPVAL  R0 = self
      0001  SELF      R1 = R0[K0('RemoveAnimLock')] (self)
      0002  GETUPVAL  R2 = self
      0003  CALL      R0 = call(R0, 0 args, 2 rets)
      0004  RETURN    return R0..R-1
; ---------- proto32 [_SpeedUp] ----------
  ; fn ?  line 583-588 np=1 va=0 ms=4 code=9 consts=3 upvals=0 protos=0
  ;   K[0]='m_sequenceSpin'
  ;   K[1]=nil
  ;   K[2]='Complete'
  ;   locals: self(0-9)
  0000  GETTABLE  R1 = R0[K0('m_sequenceSpin')]
  0001  EQ        if R1 eq K1(nil)   -> -130300
  0002  JMP       (jump)   -> 8
  0003  GETTABLE  R1 = R0[K0('m_sequenceSpin')]
  0004  SELF      R2 = R1[K2('Complete')] (self)
  0005  LOADBOOL  R3 = true
  0006  CALL      R1 = call(R1, 0 args, 2 rets)
  0007  SETTABLE  R0[K0('m_sequenceSpin')] = K1(nil)
  0008  RETURN    return R0..R-1
; ---------- proto33 [OnUnlockBtnClicked] ----------
  ; fn ?  line 593-600 np=3 va=0 ms=9 code=20 consts=9 upvals=1 protos=0
  ;   K[0]='GetModel'
  ;   K[1]='HasPaidThisWheel'
  ;   K[2]='m_paidTip'
  ;   K[3]='Show'
  ;   K[4]='GM'
  ;   K[5]='GameTextModel'
  ;   K[6]='GetText'
  ;   K[7]='doubleWheel_bought_desc'
  ;   K[8]='OnUnlockBtnClicked'
  ;   upvals: _ENV
  ;   locals: self(0-20), bLastChance(0-20), closeCallback(0-20), model(2-20)
  0000  SELF      R4 = R0[K0('GetModel')] (self)
  0001  CALL      R3 = call(R3, 1 args, 1 rets)
  0002  SELF      R5 = R3[K1('HasPaidThisWheel')] (self)
  0003  CALL      R4 = call(R4, 1 args, 1 rets)
  0004  TEST      if not R4 then   -> -131066
  0005  JMP       (jump)   -> 15
  0006  GETTABLE  R4 = R0[K2('m_paidTip')]
  0007  SELF      R5 = R4[K3('Show')] (self)
  0008  GETTABUP  R6 = _ENV[K4('GM')]
  0009  GETTABLE  R6 = R6[K5('GameTextModel')]
  0010  SELF      R7 = R6[K6('GetText')] (self)
  0011  LOADK     R8 = K7 'doubleWheel_bought_desc'
  0012  CALL      R6 = call(R6, -1 args, 2 rets)
  0013  CALL      R4 = call(R4, 0 args, -1 rets)
  0014  RETURN    return R0..R-1
  0015  SELF      R5 = R3[K8('OnUnlockBtnClicked')] (self)
  0016  MOVE      R6 = R0
  0017  MOVE      R7 = R0
  0018  CALL      R4 = call(R4, 0 args, 3 rets)
  0019  RETURN    return R0..R-1
; ---------- proto34 [_OnPurchaseSuccess] ----------
  ; fn ?  line 602-611 np=1 va=0 ms=4 code=12 consts=6 upvals=0 protos=0
  ;   K[0]='GetModel'
  ;   K[1]='m_bHasPaidThisWheel'
  ;   K[2]=true
  ;   K[3]='HasPaidRewardsToClaim'
  ;   K[4]='_PlayUnlockAnimation'
  ;   K[5]='_TryAnimInSequence'
  ;   locals: self(0-12), model(2-12)
  0000  SELF      R2 = R0[K0('GetModel')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  SETTABLE  R0[K1('m_bHasPaidThisWheel')] = K2(true)
  0003  SELF      R3 = R1[K3('HasPaidRewardsToClaim')] (self)
  0004  CALL      R2 = call(R2, 1 args, 1 rets)
  0005  TEST      if not R2 then   -> -131064
  0006  JMP       (jump)   -> 9
  0007  SELF      R3 = R0[K4('_PlayUnlockAnimation')] (self)
  0008  CALL      R2 = call(R2, 0 args, 1 rets)
  0009  SELF      R3 = R0[K5('_TryAnimInSequence')] (self)
  0010  CALL      R2 = call(R2, 0 args, 1 rets)
  0011  RETURN    return R0..R-1
; ---------- proto35 [_ShowPrompt] ----------
  ; fn ?  line 614-616 np=2 va=0 ms=12 code=14 consts=6 upvals=1 protos=0
  ;   K[0]='GM'
  ;   K[1]='UIManager'
  ;   K[2]='ShowPromptWithKey'
  ;   K[3]='GetSortingOrder'
  ;   K[4]='GetActivityDefinition'
  ;   K[5]='PromptPrefabName'
  ;   upvals: _ENV
  ;   locals: self(0-14), textKey(0-14)
  0000  GETTABUP  R2 = _ENV[K0('GM')]
  0001  GETTABLE  R2 = R2[K1('UIManager')]
  0002  SELF      R3 = R2[K2('ShowPromptWithKey')] (self)
  0003  MOVE      R4 = R0
  0004  LOADNIL   R5..R5 = nil
  0005  LOADBOOL  R7 = false
  0006  LOADBOOL  R8 = false
  0007  SELF      R10 = R0[K3('GetSortingOrder')] (self)
  0008  CALL      R9 = call(R9, 1 args, 1 rets)
  0009  SELF      R11 = R0[K4('GetActivityDefinition')] (self)
  0010  CALL      R10 = call(R10, 1 args, 1 rets)
  0011  GETTABLE  R10 = R10[K5('PromptPrefabName')]
  0012  CALL      R2 = call(R2, 0 args, 8 rets)
  0013  RETURN    return R0..R-1
; ---------- proto36 [_TryShowShellTip] ----------
  ; fn ?  line 618-640 np=1 va=0 ms=11 code=61 consts=28 upvals=1 protos=1
  ;   K[0]='GetModel'
  ;   K[1]='HasPaidThisWheel'
  ;   K[2]='GetPaidRewardsForPurchase'
  ;   K[3]='Table'
  ;   K[4]='IsEmpty'
  ;   K[5]='UIUtil'
  ;   K[6]='SetActive'
  ;   K[7]='m_tip'
  ;   K[8]='gameObject'
  ;   K[9]='m_tipRewardContent'
  ;   K[10]='Init'
  ;   K[11]='ERewardScene'
  ;   K[12]='Other'
  ;   K[13]='m_tipScrollRect'
  ;   K[14]='enabled'
  ;   K[15]=false
  ;   K[16]='LayoutRebuilder'
  ;   K[17]='ForceRebuildLayoutImmediate'
  ;   K[18]='content'
  ;   K[19]='SetLocalPosition'
  ;   K[20]='math'
  ;   K[21]='max'
  ;   K[22]='rect'
  ;   K[23]='width'
  ;   K[24]='transform'
  ;   K[25]=2
  ;   K[26]=0
  ;   K[27]='Show'
  ;   upvals: _ENV
  ;   locals: self(0-61), model(2-61), paidRewardsInstant(9-61), _(9-61), callback(55-61)
  0000  SELF      R2 = R0[K0('GetModel')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  SELF      R3 = R1[K1('HasPaidThisWheel')] (self)
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  TEST      if not R2 then   -> -131066
  0005  JMP       (jump)   -> 7
  0006  RETURN    return R0..R-1
  0007  SELF      R3 = R1[K2('GetPaidRewardsForPurchase')] (self)
  0008  CALL      R2 = call(R2, 2 args, 1 rets)
  0009  GETTABUP  R4 = _ENV[K3('Table')]
  0010  GETTABLE  R4 = R4[K4('IsEmpty')]
  0011  MOVE      R5 = R0
  0012  CALL      R4 = call(R4, 1 args, 1 rets)
  0013  TEST      if not R4 then   -> -131057
  0014  JMP       (jump)   -> 16
  0015  RETURN    return R0..R-1
  0016  GETTABUP  R4 = _ENV[K5('UIUtil')]
  0017  GETTABLE  R4 = R4[K6('SetActive')]
  0018  GETTABLE  R5 = R0[K7('m_tip')]
  0019  GETTABLE  R5 = R5[K8('gameObject')]
  0020  LOADBOOL  R6 = true
  0021  CALL      R4 = call(R4, 0 args, 2 rets)
  0022  GETTABLE  R4 = R0[K9('m_tipRewardContent')]
  0023  SELF      R5 = R4[K10('Init')] (self)
  0024  MOVE      R6 = R0
  0025  GETTABUP  R7 = _ENV[K11('ERewardScene')]
  0026  GETTABLE  R7 = R7[K12('Other')]
  0027  CALL      R4 = call(R4, 0 args, 3 rets)
  0028  GETTABLE  R4 = R0[K13('m_tipScrollRect')]
  0029  SETTABLE  R4[K14('enabled')] = K15(false)
  0030  GETTABUP  R4 = _ENV[K16('LayoutRebuilder')]
  0031  GETTABLE  R4 = R4[K17('ForceRebuildLayoutImmediate')]
  0032  GETTABLE  R5 = R0[K13('m_tipScrollRect')]
  0033  GETTABLE  R5 = R5[K18('content')]
  0034  CALL      R4 = call(R4, 0 args, 1 rets)
  0035  GETTABUP  R4 = _ENV[K5('UIUtil')]
  0036  GETTABLE  R4 = R4[K19('SetLocalPosition')]
  0037  GETTABLE  R5 = R0[K13('m_tipScrollRect')]
  0038  GETTABLE  R5 = R5[K18('content')]
  0039  GETTABUP  R6 = _ENV[K20('math')]
  0040  GETTABLE  R6 = R6[K21('max')]
  0041  GETTABLE  R7 = R0[K13('m_tipScrollRect')]
  0042  GETTABLE  R7 = R7[K18('content')]
  0043  GETTABLE  R7 = R7[K22('rect')]
  0044  GETTABLE  R7 = R7[K23('width')]
  0045  GETTABLE  R8 = R0[K13('m_tipScrollRect')]
  0046  GETTABLE  R8 = R8[K24('transform')]
  0047  GETTABLE  R8 = R8[K22('rect')]
  0048  GETTABLE  R8 = R8[K23('width')]
  0049  SUB       R7 = R8 sub R7
  0050  DIV       R7 = K25(2) div R7
  0051  LOADK     R8 = K26 0
  0052  CALL      R6 = call(R6, -1 args, 2 rets)
  0053  CALL      R4 = call(R4, 0 args, -1 rets)
  0054  CLOSURE   R4 = closure proto0
  0055  GETTABLE  R5 = R0[K7('m_tip')]
  0056  SELF      R6 = R5[K27('Show')] (self)
  0057  LOADNIL   R7..R7 = nil
  0058  MOVE      R10 = R0
  0059  CALL      R5 = call(R5, 0 args, 5 rets)
  0060  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 636-638 np=0 va=0 ms=2 code=3 consts=3 upvals=1 protos=0
    ;   K[0]='m_tipScrollRect'
    ;   K[1]='enabled'
    ;   K[2]=true
    ;   upvals: self
    0000  GETTABUP  R0 = self[K0('m_tipScrollRect')]
    0001  SETTABLE  R0[K1('enabled')] = K2(true)
    0002  RETURN    return R0..R-1
; ---------- proto37 [_TryKillGestureTapSequence] ----------
  ; fn ?  line 642-646 np=1 va=0 ms=3 code=7 consts=3 upvals=0 protos=0
  ;   K[0]='m_gestureTapSequence'
  ;   K[1]=nil
  ;   K[2]='Kill'
  ;   locals: self(0-7)
  0000  GETTABLE  R1 = R0[K0('m_gestureTapSequence')]
  0001  EQ        if R1 eq K1(nil)   -> -130300
  0002  JMP       (jump)   -> 6
  0003  GETTABLE  R1 = R0[K0('m_gestureTapSequence')]
  0004  SELF      R2 = R1[K2('Kill')] (self)
  0005  CALL      R1 = call(R1, 0 args, 1 rets)
  0006  RETURN    return R0..R-1
; ---------- proto38 [_TryStartGestureTap] ----------
  ; fn ?  line 648-690 np=1 va=0 ms=5 code=56 consts=21 upvals=1 protos=2
  ;   K[0]='m_gestureTapSequence'
  ;   K[1]=nil
  ;   K[2]='_IsInAnimLock'
  ;   K[3]='GM'
  ;   K[4]='UIManager'
  ;   K[5]='GetOpenedTopView'
  ;   K[6]='TutorialModel'
  ;   K[7]='HasAnyStrongTutorialOngoing'
  ;   K[8]='m_bCanSpin'
  ;   K[9]='m_gestureTapGo'
  ;   K[10]='transform'
  ;   K[11]='position'
  ;   K[12]='m_spinButtonRectTransform'
  ;   K[13]='m_bSpinFinished'
  ;   K[14]='m_unlockButtonRoot'
  ;   K[15]='DOTween'
  ;   K[16]='Sequence'
  ;   K[17]='AppendInterval'
  ;   K[18]=3
  ;   K[19]='AppendCallback'
  ;   K[20]='OnKill'
  ;   upvals: _ENV
  ;   locals: self(0-56), sequence(45-56)
  0000  GETTABLE  R1 = R0[K0('m_gestureTapSequence')]
  0001  EQ        if R1 eq K1(nil)   -> -130300
  0002  JMP       (jump)   -> 4
  0003  RETURN    return R0..R-1
  0004  SELF      R2 = R0[K2('_IsInAnimLock')] (self)
  0005  CALL      R1 = call(R1, 1 args, 1 rets)
  0006  TEST      if not R1 then   -> -131064
  0007  JMP       (jump)   -> 9
  0008  RETURN    return R0..R-1
  0009  GETTABUP  R1 = _ENV[K3('GM')]
  0010  GETTABLE  R1 = R1[K4('UIManager')]
  0011  SELF      R2 = R1[K5('GetOpenedTopView')] (self)
  0012  CALL      R1 = call(R1, 1 args, 1 rets)
  0013  EQ        if R1 eq R0   -> -130545
  0014  JMP       (jump)   -> 16
  0015  RETURN    return R0..R-1
  0016  GETTABUP  R1 = _ENV[K3('GM')]
  0017  GETTABLE  R1 = R1[K6('TutorialModel')]
  0018  SELF      R2 = R1[K7('HasAnyStrongTutorialOngoing')] (self)
  0019  CALL      R1 = call(R1, 1 args, 1 rets)
  0020  TEST      if not R1 then   -> -131050
  0021  JMP       (jump)   -> 23
  0022  RETURN    return R0..R-1
  0023  GETTABLE  R1 = R0[K8('m_bCanSpin')]
  0024  TEST      if not R1 then   -> -131046
  0025  JMP       (jump)   -> 32
  0026  GETTABLE  R1 = R0[K9('m_gestureTapGo')]
  0027  GETTABLE  R1 = R1[K10('transform')]
  0028  GETTABLE  R2 = R0[K12('m_spinButtonRectTransform')]
  0029  GETTABLE  R2 = R2[K11('position')]
  0030  SETTABLE  R1[K11('position')] = R2
  0031  JMP       (jump)   -> 42
  0032  GETTABLE  R1 = R0[K13('m_bSpinFinished')]
  0033  TEST      if not R1 then   -> -131037
  0034  JMP       (jump)   -> 41
  0035  GETTABLE  R1 = R0[K9('m_gestureTapGo')]
  0036  GETTABLE  R1 = R1[K10('transform')]
  0037  GETTABLE  R2 = R0[K14('m_unlockButtonRoot')]
  0038  GETTABLE  R2 = R2[K11('position')]
  0039  SETTABLE  R1[K11('position')] = R2
  0040  JMP       (jump)   -> 42
  0041  RETURN    return R0..R-1
  0042  GETTABUP  R1 = _ENV[K15('DOTween')]
  0043  GETTABLE  R1 = R1[K16('Sequence')]
  0044  CALL      R1 = call(R1, 1 args, 0 rets)
  0045  SELF      R3 = R1[K17('AppendInterval')] (self)
  0046  LOADK     R4 = K18 3
  0047  CALL      R2 = call(R2, 0 args, 2 rets)
  0048  SELF      R3 = R1[K19('AppendCallback')] (self)
  0049  CLOSURE   R4 = closure proto0
  0050  CALL      R2 = call(R2, 0 args, 2 rets)
  0051  SELF      R3 = R1[K20('OnKill')] (self)
  0052  CLOSURE   R4 = closure proto1
  0053  CALL      R2 = call(R2, 0 args, 2 rets)
  0054  SETTABLE  R0[K0('m_gestureTapSequence')] = R1
  0055  RETURN    return R0..R-1
  ; ---------- proto0 [m_gestureTapSequence] ----------
    ; fn ?  line 676-685 np=0 va=0 ms=3 code=19 consts=7 upvals=2 protos=0
    ;   K[0]='_IsInAnimLock'
    ;   K[1]='GM'
    ;   K[2]='TutorialModel'
    ;   K[3]='HasAnyStrongTutorialOngoing'
    ;   K[4]='UIUtil'
    ;   K[5]='SetActive'
    ;   K[6]='m_gestureTapGo'
    ;   upvals: self, _ENV
    0000  GETUPVAL  R0 = self
    0001  SELF      R1 = R0[K0('_IsInAnimLock')] (self)
    0002  CALL      R0 = call(R0, 1 args, 1 rets)
    0003  TEST      if not R0 then   -> -131067
    0004  JMP       (jump)   -> 6
    0005  RETURN    return R0..R-1
    0006  GETTABUP  R0 = _ENV[K1('GM')]
    0007  GETTABLE  R0 = R0[K2('TutorialModel')]
    0008  SELF      R1 = R0[K3('HasAnyStrongTutorialOngoing')] (self)
    0009  CALL      R0 = call(R0, 1 args, 1 rets)
    0010  TEST      if not R0 then   -> -131060
    0011  JMP       (jump)   -> 13
    0012  RETURN    return R0..R-1
    0013  GETTABUP  R0 = _ENV[K4('UIUtil')]
    0014  GETTABLE  R0 = R0[K5('SetActive')]
    0015  GETTABUP  R1 = self[K6('m_gestureTapGo')]
    0016  LOADBOOL  R2 = true
    0017  CALL      R0 = call(R0, 0 args, 2 rets)
    0018  RETURN    return R0..R-1
  ; ---------- proto1 [m_gestureTapSequence] ----------
    ; fn ?  line 686-688 np=0 va=0 ms=2 code=2 consts=2 upvals=1 protos=0
    ;   K[0]='m_gestureTapSequence'
    ;   K[1]=nil
    ;   upvals: self
    0000  SETTABUP  self[K0('m_gestureTapSequence')] = K1(nil)
    0001  RETURN    return R0..R-1
; ---------- proto39 [Update] ----------
  ; fn ?  line 692-706 np=1 va=0 ms=7 code=31 consts=10 upvals=1 protos=0
  ;   K[0]='Input'
  ;   K[1]='GetMouseButtonDown'
  ;   K[2]=0
  ;   K[3]='_StopGestureTap'
  ;   K[4]='touchCount'
  ;   K[5]=1
  ;   K[6]='GetTouch'
  ;   K[7]='phase'
  ;   K[8]='TouchPhase'
  ;   K[9]='Began'
  ;   upvals: _ENV
  ;   locals: self(0-31), (for index)(17-30), (for limit)(17-30), (for step)(17-30), i(18-29)
  0000  GETTABUP  R1 = _ENV[K0('Input')]
  0001  GETTABLE  R1 = R1[K1('GetMouseButtonDown')]
  0002  LOADK     R2 = K2 0
  0003  CALL      R1 = call(R1, 1 args, 1 rets)
  0004  TEST      if not R1 then   -> -131066
  0005  JMP       (jump)   -> 8
  0006  SELF      R2 = R0[K3('_StopGestureTap')] (self)
  0007  CALL      R1 = call(R1, 0 args, 1 rets)
  0008  GETTABUP  R1 = _ENV[K0('Input')]
  0009  GETTABLE  R1 = R1[K4('touchCount')]
  0010  LT        if R0 lt R1   -> 1037
  0011  JMP       (jump)   -> 30
  0012  LOADK     R1 = K2 0
  0013  GETTABUP  R2 = _ENV[K0('Input')]
  0014  GETTABLE  R2 = R2[K4('touchCount')]
  0015  SUB       R2 = K5(1) sub R2
  0016  LOADK     R3 = K5 1
  0017  FORPREP   forprep R1(sBx=11)   -> 29
  0018  GETTABUP  R5 = _ENV[K0('Input')]
  0019  GETTABLE  R5 = R5[K6('GetTouch')]
  0020  MOVE      R6 = R0
  0021  CALL      R5 = call(R5, 1 args, 1 rets)
  0022  GETTABLE  R5 = R5[K7('phase')]
  0023  GETTABUP  R6 = _ENV[K8('TouchPhase')]
  0024  GETTABLE  R6 = R6[K9('Began')]
  0025  EQ        if R0 eq R6   -> -128479
  0026  JMP       (jump)   -> 29
  0027  SELF      R6 = R0[K3('_StopGestureTap')] (self)
  0028  CALL      R5 = call(R5, 0 args, 1 rets)
  0029  FORLOOP   forloop R1(sBx=-12)   -> 18
  0030  RETURN    return R0..R-1
; ---------- proto40 [_StopGestureTap] ----------
  ; fn ?  line 708-713 np=1 va=0 ms=4 code=10 consts=5 upvals=1 protos=0
  ;   K[0]='_TryKillGestureTapSequence'
  ;   K[1]='UIUtil'
  ;   K[2]='SetActive'
  ;   K[3]='m_gestureTapGo'
  ;   K[4]='_TryStartGestureTap'
  ;   upvals: _ENV
  ;   locals: self(0-10)
  0000  SELF      R2 = R0[K0('_TryKillGestureTapSequence')] (self)
  0001  CALL      R1 = call(R1, 0 args, 1 rets)
  0002  GETTABUP  R1 = _ENV[K1('UIUtil')]
  0003  GETTABLE  R1 = R1[K2('SetActive')]
  0004  GETTABLE  R2 = R0[K3('m_gestureTapGo')]
  0005  LOADBOOL  R3 = false
  0006  CALL      R1 = call(R1, 0 args, 2 rets)
  0007  SELF      R2 = R0[K4('_TryStartGestureTap')] (self)
  0008  CALL      R1 = call(R1, 0 args, 1 rets)
  0009  RETURN    return R0..R-1
; ---------- proto41 [OnTestUpgradeBtnClicked] ----------
  ; fn ?  line 715-722 np=1 va=0 ms=4 code=19 consts=8 upvals=1 protos=0
  ;   K[0]='GetModel'
  ;   K[1]='TestUpgrade'
  ;   K[2]='Close'
  ;   K[3]='OpenMainWindow'
  ;   K[4]='GM'
  ;   K[5]='UIManager'
  ;   K[6]='ShowTestPrompt'
  ;   K[7]='Upgrade failed!'
  ;   upvals: _ENV
  ;   locals: self(0-19)
  0000  SELF      R2 = R0[K0('GetModel')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  SELF      R2 = R1[K1('TestUpgrade')] (self)
  0003  CALL      R1 = call(R1, 1 args, 1 rets)
  0004  TEST      if not R1 then   -> -131066
  0005  JMP       (jump)   -> 13
  0006  SELF      R2 = R0[K2('Close')] (self)
  0007  CALL      R1 = call(R1, 0 args, 1 rets)
  0008  SELF      R2 = R0[K0('GetModel')] (self)
  0009  CALL      R1 = call(R1, 1 args, 1 rets)
  0010  SELF      R2 = R1[K3('OpenMainWindow')] (self)
  0011  CALL      R1 = call(R1, 0 args, 1 rets)
  0012  JMP       (jump)   -> 18
  0013  GETTABUP  R1 = _ENV[K4('GM')]
  0014  GETTABLE  R1 = R1[K5('UIManager')]
  0015  SELF      R2 = R1[K6('ShowTestPrompt')] (self)
  0016  LOADK     R3 = K7 'Upgrade failed!'
  0017  CALL      R1 = call(R1, 0 args, 2 rets)
  0018  RETURN    return R0..R-1
