# FrameDecoActivity_View_FrameDecoActivityMainWindow_1737.luac
; fn @FrameDecoActivityMainWindow.lua  line 0-0 np=0 va=1 ms=4 code=118 consts=41 upvals=1 protos=36
;   K[0]=1
;   K[1]='FrameDecoActivityMainWindow'
;   K[2]='setmetatable'
;   K[3]='FrameDecoActivityBaseWindow'
;   K[4]='__index'
;   K[5]='Init'
;   K[6]='_InitModelData'
;   K[7]='_InitView'
;   K[8]='UpdateDecoExchangeButtons'
;   K[9]='OnExchangeAnimFinished'
;   K[10]='ClearDecoExchangeButtons'
;   K[11]='UpdateTotalProgressInfo'
;   K[12]='OnExchangeButtonClicked'
;   K[13]='TryHideExchangeTip'
;   K[14]='Update'
;   K[15]='OnDestroy'
;   K[16]='_IsLastChance'
;   K[17]='GetHudButton'
;   K[18]='_OnStateChanged'
;   K[19]='_OnRedeemDecoSlot'
;   K[20]='_OnRedeemReward'
;   K[21]='_OnStageReward'
;   K[22]='_OnStageUnlocked'
;   K[23]='_IsInAnimLock'
;   K[24]='SetAnimLock'
;   K[25]='_TryAnimInSequence'
;   K[26]='_OpenRewardWindow'
;   K[27]='TryRedeemDecoSlotView'
;   K[28]='TryStageRewardView'
;   K[29]='TryRefreshExchangeButtons'
;   K[30]='TryPlayExchangeSliderAnim'
;   K[31]='GetDecoTransform'
;   K[32]='GetPreviewTransform'
;   K[33]='GetHelpTransform'
;   K[34]='OnPreviewBtnClick'
;   K[35]='OnAvatarClicked'
;   K[36]='OnCloseBtnClick'
;   K[37]='OnHelpBtnClicked'
;   K[38]='OnTokenClicked'
;   K[39]='GetTutorialExchangeButton'
;   K[40]='SetAllExchangeButtonEnabled'
;   upvals: _ENV
;   locals: firstIndex(1-118)
0000  LOADK     R0 = K0 1
0001  GETTABUP  R1 = _ENV[K2('setmetatable')]
0002  NEWTABLE  R2 = {} (0 items)
0003  GETTABUP  R3 = _ENV[K3('FrameDecoActivityBaseWindow')]
0004  CALL      R1 = call(R1, 1 args, 2 rets)
0005  SETTABUP  _ENV[K1('FrameDecoActivityMainWindow')] = R1
0006  GETTABUP  R1 = _ENV[K1('FrameDecoActivityMainWindow')]
0007  GETTABUP  R2 = _ENV[K1('FrameDecoActivityMainWindow')]
0008  SETTABLE  R1[K4('__index')] = R2
0009  GETTABUP  R1 = _ENV[K1('FrameDecoActivityMainWindow')]
0010  CLOSURE   R2 = closure proto0
0011  SETTABLE  R1[K5('Init')] = R2
0012  GETTABUP  R1 = _ENV[K1('FrameDecoActivityMainWindow')]
0013  CLOSURE   R2 = closure proto1
0014  SETTABLE  R1[K6('_InitModelData')] = R2
0015  GETTABUP  R1 = _ENV[K1('FrameDecoActivityMainWindow')]
0016  CLOSURE   R2 = closure proto2
0017  SETTABLE  R1[K7('_InitView')] = R2
0018  GETTABUP  R1 = _ENV[K1('FrameDecoActivityMainWindow')]
0019  CLOSURE   R2 = closure proto3
0020  SETTABLE  R1[K8('UpdateDecoExchangeButtons')] = R2
0021  GETTABUP  R1 = _ENV[K1('FrameDecoActivityMainWindow')]
0022  CLOSURE   R2 = closure proto4
0023  SETTABLE  R1[K9('OnExchangeAnimFinished')] = R2
0024  GETTABUP  R1 = _ENV[K1('FrameDecoActivityMainWindow')]
0025  CLOSURE   R2 = closure proto5
0026  SETTABLE  R1[K10('ClearDecoExchangeButtons')] = R2
0027  GETTABUP  R1 = _ENV[K1('FrameDecoActivityMainWindow')]
0028  CLOSURE   R2 = closure proto6
0029  SETTABLE  R1[K11('UpdateTotalProgressInfo')] = R2
0030  GETTABUP  R1 = _ENV[K1('FrameDecoActivityMainWindow')]
0031  CLOSURE   R2 = closure proto7
0032  SETTABLE  R1[K12('OnExchangeButtonClicked')] = R2
0033  GETTABUP  R1 = _ENV[K1('FrameDecoActivityMainWindow')]
0034  CLOSURE   R2 = closure proto8
0035  SETTABLE  R1[K13('TryHideExchangeTip')] = R2
0036  GETTABUP  R1 = _ENV[K1('FrameDecoActivityMainWindow')]
0037  CLOSURE   R2 = closure proto9
0038  SETTABLE  R1[K14('Update')] = R2
0039  GETTABUP  R1 = _ENV[K1('FrameDecoActivityMainWindow')]
0040  CLOSURE   R2 = closure proto10
0041  SETTABLE  R1[K15('OnDestroy')] = R2
0042  GETTABUP  R1 = _ENV[K1('FrameDecoActivityMainWindow')]
0043  CLOSURE   R2 = closure proto11
0044  SETTABLE  R1[K16('_IsLastChance')] = R2
0045  GETTABUP  R1 = _ENV[K1('FrameDecoActivityMainWindow')]
0046  CLOSURE   R2 = closure proto12
0047  SETTABLE  R1[K17('GetHudButton')] = R2
0048  GETTABUP  R1 = _ENV[K1('FrameDecoActivityMainWindow')]
0049  CLOSURE   R2 = closure proto13
0050  SETTABLE  R1[K18('_OnStateChanged')] = R2
0051  GETTABUP  R1 = _ENV[K1('FrameDecoActivityMainWindow')]
0052  CLOSURE   R2 = closure proto14
0053  SETTABLE  R1[K19('_OnRedeemDecoSlot')] = R2
0054  GETTABUP  R1 = _ENV[K1('FrameDecoActivityMainWindow')]
0055  CLOSURE   R2 = closure proto15
0056  SETTABLE  R1[K20('_OnRedeemReward')] = R2
0057  GETTABUP  R1 = _ENV[K1('FrameDecoActivityMainWindow')]
0058  CLOSURE   R2 = closure proto16
0059  SETTABLE  R1[K21('_OnStageReward')] = R2
0060  GETTABUP  R1 = _ENV[K1('FrameDecoActivityMainWindow')]
0061  CLOSURE   R2 = closure proto17
0062  SETTABLE  R1[K22('_OnStageUnlocked')] = R2
0063  GETTABUP  R1 = _ENV[K1('FrameDecoActivityMainWindow')]
0064  CLOSURE   R2 = closure proto18
0065  SETTABLE  R1[K23('_IsInAnimLock')] = R2
0066  GETTABUP  R1 = _ENV[K1('FrameDecoActivityMainWindow')]
0067  CLOSURE   R2 = closure proto19
0068  SETTABLE  R1[K24('SetAnimLock')] = R2
0069  GETTABUP  R1 = _ENV[K1('FrameDecoActivityMainWindow')]
0070  CLOSURE   R2 = closure proto20
0071  SETTABLE  R1[K25('_TryAnimInSequence')] = R2
0072  GETTABUP  R1 = _ENV[K1('FrameDecoActivityMainWindow')]
0073  CLOSURE   R2 = closure proto21
0074  SETTABLE  R1[K26('_OpenRewardWindow')] = R2
0075  GETTABUP  R1 = _ENV[K1('FrameDecoActivityMainWindow')]
0076  CLOSURE   R2 = closure proto22
0077  SETTABLE  R1[K27('TryRedeemDecoSlotView')] = R2
0078  GETTABUP  R1 = _ENV[K1('FrameDecoActivityMainWindow')]
0079  CLOSURE   R2 = closure proto23
0080  SETTABLE  R1[K28('TryStageRewardView')] = R2
0081  GETTABUP  R1 = _ENV[K1('FrameDecoActivityMainWindow')]
0082  CLOSURE   R2 = closure proto24
0083  SETTABLE  R1[K29('TryRefreshExchangeButtons')] = R2
0084  GETTABUP  R1 = _ENV[K1('FrameDecoActivityMainWindow')]
0085  CLOSURE   R2 = closure proto25
0086  SETTABLE  R1[K30('TryPlayExchangeSliderAnim')] = R2
0087  GETTABUP  R1 = _ENV[K1('FrameDecoActivityMainWindow')]
0088  CLOSURE   R2 = closure proto26
0089  SETTABLE  R1[K31('GetDecoTransform')] = R2
0090  GETTABUP  R1 = _ENV[K1('FrameDecoActivityMainWindow')]
0091  CLOSURE   R2 = closure proto27
0092  SETTABLE  R1[K32('GetPreviewTransform')] = R2
0093  GETTABUP  R1 = _ENV[K1('FrameDecoActivityMainWindow')]
0094  CLOSURE   R2 = closure proto28
0095  SETTABLE  R1[K33('GetHelpTransform')] = R2
0096  GETTABUP  R1 = _ENV[K1('FrameDecoActivityMainWindow')]
0097  CLOSURE   R2 = closure proto29
0098  SETTABLE  R1[K34('OnPreviewBtnClick')] = R2
0099  GETTABUP  R1 = _ENV[K1('FrameDecoActivityMainWindow')]
0100  CLOSURE   R2 = closure proto30
0101  SETTABLE  R1[K35('OnAvatarClicked')] = R2
0102  GETTABUP  R1 = _ENV[K1('FrameDecoActivityMainWindow')]
0103  CLOSURE   R2 = closure proto31
0104  SETTABLE  R1[K36('OnCloseBtnClick')] = R2
0105  GETTABUP  R1 = _ENV[K1('FrameDecoActivityMainWindow')]
0106  CLOSURE   R2 = closure proto32
0107  SETTABLE  R1[K37('OnHelpBtnClicked')] = R2
0108  GETTABUP  R1 = _ENV[K1('FrameDecoActivityMainWindow')]
0109  CLOSURE   R2 = closure proto33
0110  SETTABLE  R1[K38('OnTokenClicked')] = R2
0111  GETTABUP  R1 = _ENV[K1('FrameDecoActivityMainWindow')]
0112  CLOSURE   R2 = closure proto34
0113  SETTABLE  R1[K39('GetTutorialExchangeButton')] = R2
0114  GETTABUP  R1 = _ENV[K1('FrameDecoActivityMainWindow')]
0115  CLOSURE   R2 = closure proto35
0116  SETTABLE  R1[K40('SetAllExchangeButtonEnabled')] = R2
0117  RETURN    return R0..R-1
; ---------- proto0 [Init] ----------
  ; fn ?  line 27-40 np=4 va=0 ms=9 code=57 consts=20 upvals=1 protos=0
  ;   K[0]='FrameDecoActivityBaseWindow'
  ;   K[1]='Init'
  ;   K[2]='EventDispatcher'
  ;   K[3]='AddListener'
  ;   K[4]='m_model'
  ;   K[5]='GetActivityDefinition'
  ;   K[6]='RedeemDecoSlotEvent'
  ;   K[7]='_OnRedeemDecoSlot'
  ;   K[8]='RedeemRewardEvent'
  ;   K[9]='_OnRedeemReward'
  ;   K[10]='StageRewardEvent'
  ;   K[11]='_OnStageReward'
  ;   K[12]='StageUnlockedEvent'
  ;   K[13]='_OnStageUnlocked'
  ;   K[14]='_InitModelData'
  ;   K[15]='_InitView'
  ;   K[16]='SetDailyPopupTime'
  ;   K[17]='GM'
  ;   K[18]='GameModel'
  ;   K[19]='GetServerDay'
  ;   upvals: _ENV
  ;   locals: self(0-57), activityType(0-57), id(0-57), bAutoPop(0-57)
  0000  GETTABUP  R4 = _ENV[K0('FrameDecoActivityBaseWindow')]
  0001  GETTABLE  R4 = R4[K1('Init')]
  0002  MOVE      R5 = R0
  0003  MOVE      R6 = R0
  0004  MOVE      R7 = R0
  0005  MOVE      R8 = R0
  0006  CALL      R4 = call(R4, 0 args, 4 rets)
  0007  GETTABUP  R4 = _ENV[K2('EventDispatcher')]
  0008  GETTABLE  R4 = R4[K3('AddListener')]
  0009  GETTABLE  R5 = R0[K4('m_model')]
  0010  SELF      R6 = R5[K5('GetActivityDefinition')] (self)
  0011  CALL      R5 = call(R5, 1 args, 1 rets)
  0012  GETTABLE  R5 = R5[K6('RedeemDecoSlotEvent')]
  0013  MOVE      R6 = R0
  0014  GETTABLE  R7 = R0[K7('_OnRedeemDecoSlot')]
  0015  CALL      R4 = call(R4, 0 args, 3 rets)
  0016  GETTABUP  R4 = _ENV[K2('EventDispatcher')]
  0017  GETTABLE  R4 = R4[K3('AddListener')]
  0018  GETTABLE  R5 = R0[K4('m_model')]
  0019  SELF      R6 = R5[K5('GetActivityDefinition')] (self)
  0020  CALL      R5 = call(R5, 1 args, 1 rets)
  0021  GETTABLE  R5 = R5[K8('RedeemRewardEvent')]
  0022  MOVE      R6 = R0
  0023  GETTABLE  R7 = R0[K9('_OnRedeemReward')]
  0024  CALL      R4 = call(R4, 0 args, 3 rets)
  0025  GETTABUP  R4 = _ENV[K2('EventDispatcher')]
  0026  GETTABLE  R4 = R4[K3('AddListener')]
  0027  GETTABLE  R5 = R0[K4('m_model')]
  0028  SELF      R6 = R5[K5('GetActivityDefinition')] (self)
  0029  CALL      R5 = call(R5, 1 args, 1 rets)
  0030  GETTABLE  R5 = R5[K10('StageRewardEvent')]
  0031  MOVE      R6 = R0
  0032  GETTABLE  R7 = R0[K11('_OnStageReward')]
  0033  CALL      R4 = call(R4, 0 args, 3 rets)
  0034  GETTABUP  R4 = _ENV[K2('EventDispatcher')]
  0035  GETTABLE  R4 = R4[K3('AddListener')]
  0036  GETTABLE  R5 = R0[K4('m_model')]
  0037  SELF      R6 = R5[K5('GetActivityDefinition')] (self)
  0038  CALL      R5 = call(R5, 1 args, 1 rets)
  0039  GETTABLE  R5 = R5[K12('StageUnlockedEvent')]
  0040  MOVE      R6 = R0
  0041  GETTABLE  R7 = R0[K13('_OnStageUnlocked')]
  0042  CALL      R4 = call(R4, 0 args, 3 rets)
  0043  SELF      R5 = R0[K14('_InitModelData')] (self)
  0044  CALL      R4 = call(R4, 0 args, 1 rets)
  0045  SELF      R5 = R0[K15('_InitView')] (self)
  0046  CALL      R4 = call(R4, 0 args, 1 rets)
  0047  TEST      if not R3 then   -> -131023
  0048  JMP       (jump)   -> 56
  0049  GETTABLE  R4 = R0[K4('m_model')]
  0050  SELF      R5 = R4[K16('SetDailyPopupTime')] (self)
  0051  GETTABUP  R6 = _ENV[K17('GM')]
  0052  GETTABLE  R6 = R6[K18('GameModel')]
  0053  SELF      R7 = R6[K19('GetServerDay')] (self)
  0054  CALL      R6 = call(R6, -1 args, 1 rets)
  0055  CALL      R4 = call(R4, 0 args, -1 rets)
  0056  RETURN    return R0..R-1
; ---------- proto1 [_InitModelData] ----------
  ; fn ?  line 42-45 np=1 va=0 ms=3 code=9 consts=5 upvals=0 protos=0
  ;   K[0]='m_totalStage'
  ;   K[1]='m_model'
  ;   K[2]='GetTotalStage'
  ;   K[3]='m_arrStageConfig'
  ;   K[4]='GetAllStageRewardConfig'
  ;   locals: self(0-9)
  0000  GETTABLE  R1 = R0[K1('m_model')]
  0001  SELF      R2 = R1[K2('GetTotalStage')] (self)
  0002  CALL      R1 = call(R1, 1 args, 1 rets)
  0003  SETTABLE  R0[K0('m_totalStage')] = R1
  0004  GETTABLE  R1 = R0[K1('m_model')]
  0005  SELF      R2 = R1[K4('GetAllStageRewardConfig')] (self)
  0006  CALL      R1 = call(R1, 1 args, 1 rets)
  0007  SETTABLE  R0[K3('m_arrStageConfig')] = R1
  0008  RETURN    return R0..R-1
; ---------- proto2 [_InitView] ----------
  ; fn ?  line 47-75 np=1 va=0 ms=8 code=71 consts=40 upvals=1 protos=1
  ;   K[0]='m_tokenHudButton'
  ;   K[1]='Init'
  ;   K[2]='m_model'
  ;   K[3]='m_rewardSlider'
  ;   K[4]='UpdateTotalProgressInfo'
  ;   K[5]='m_frameId'
  ;   K[6]='GetRewardFrameId'
  ;   K[7]='GM'
  ;   K[8]='DataResource'
  ;   K[9]='UIPrefabConfig'
  ;   K[10]='GetConfig'
  ;   K[11]='UIPrefabConfigName'
  ;   K[12]='string'
  ;   K[13]='format'
  ;   K[14]='%s_deco'
  ;   K[15]='ResourceLoader'
  ;   K[16]='LoadPrefab'
  ;   K[17]='m_frameDecoRoot'
  ;   K[18]='V3Zero'
  ;   K[19]='m_bottomAvatar'
  ;   K[20]='SetAvatar'
  ;   K[21]='EAvatarFrame'
  ;   K[22]='Normal'
  ;   K[23]='UserProfileModel'
  ;   K[24]='GetAvatar'
  ;   K[25]='GetBadge'
  ;   K[26]='m_frameId'
  ;   K[27]='m_mapAnimLock'
  ;   K[28]='m_bLastChance'
  ;   K[29]='_IsLastChance'
  ;   K[30]='canClickWindowMask'
  ;   K[31]='m_entryLoader'
  ;   K[32]='Init'
  ;   K[33]='activityType'
  ;   K[34]='m_activityType'
  ;   K[35]='eLocationType'
  ;   K[36]='EDependencyEntryLocationType'
  ;   K[37]='MainWindow'
  ;   K[38]='EUILoaderConfigName'
  ;   K[39]='DependencyWindow'
  ;   upvals: _ENV
  ;   locals: self(0-71), resConfig(28-71)
  0000  GETTABLE  R1 = R0[K0('m_tokenHudButton')]
  0001  SELF      R2 = R1[K1('Init')] (self)
  0002  GETTABLE  R3 = R0[K2('m_model')]
  0003  CALL      R1 = call(R1, 0 args, 2 rets)
  0004  GETTABLE  R1 = R0[K3('m_rewardSlider')]
  0005  SELF      R2 = R1[K1('Init')] (self)
  0006  GETTABLE  R3 = R0[K2('m_model')]
  0007  CALL      R1 = call(R1, 0 args, 2 rets)
  0008  SELF      R2 = R0[K4('UpdateTotalProgressInfo')] (self)
  0009  CALL      R1 = call(R1, 0 args, 1 rets)
  0010  GETTABLE  R1 = R0[K2('m_model')]
  0011  SELF      R2 = R1[K6('GetRewardFrameId')] (self)
  0012  CALL      R1 = call(R1, 1 args, 1 rets)
  0013  SETTABLE  R0[K5('m_frameId')] = R1
  0014  GETTABUP  R1 = _ENV[K7('GM')]
  0015  GETTABLE  R1 = R1[K8('DataResource')]
  0016  GETTABLE  R1 = R1[K9('UIPrefabConfig')]
  0017  SELF      R2 = R1[K10('GetConfig')] (self)
  0018  GETTABUP  R3 = _ENV[K11('UIPrefabConfigName')]
  0019  GETTABUP  R4 = _ENV[K12('string')]
  0020  GETTABLE  R4 = R4[K13('format')]
  0021  LOADK     R5 = K14 '%s_deco'
  0022  GETTABLE  R6 = R0[K2('m_model')]
  0023  SELF      R7 = R6[K6('GetRewardFrameId')] (self)
  0024  CALL      R6 = call(R6, -1 args, 1 rets)
  0025  CALL      R4 = call(R4, 1 args, -1 rets)
  0026  GETTABLE  R3 = R3[R4]
  0027  CALL      R1 = call(R1, 1 args, 2 rets)
  0028  GETTABUP  R2 = _ENV[K7('GM')]
  0029  GETTABLE  R2 = R2[K15('ResourceLoader')]
  0030  SELF      R3 = R2[K16('LoadPrefab')] (self)
  0031  MOVE      R4 = R0
  0032  GETTABLE  R5 = R0[K17('m_frameDecoRoot')]
  0033  GETTABUP  R6 = _ENV[K18('V3Zero')]
  0034  CLOSURE   R7 = closure proto0
  0035  CALL      R2 = call(R2, 0 args, 5 rets)
  0036  GETTABLE  R2 = R0[K19('m_bottomAvatar')]
  0037  SELF      R3 = R2[K20('SetAvatar')] (self)
  0038  GETTABUP  R4 = _ENV[K21('EAvatarFrame')]
  0039  GETTABLE  R4 = R4[K22('Normal')]
  0040  GETTABUP  R5 = _ENV[K7('GM')]
  0041  GETTABLE  R5 = R5[K23('UserProfileModel')]
  0042  SELF      R6 = R5[K24('GetAvatar')] (self)
  0043  CALL      R5 = call(R5, 1 args, 1 rets)
  0044  GETTABUP  R6 = _ENV[K7('GM')]
  0045  GETTABLE  R6 = R6[K23('UserProfileModel')]
  0046  SELF      R7 = R6[K25('GetBadge')] (self)
  0047  CALL      R6 = call(R6, 1 args, 1 rets)
  0048  GETTABLE  R7 = R0[K26('m_frameId')]
  0049  CALL      R2 = call(R2, 0 args, 5 rets)
  0050  NEWTABLE  R2 = {} (0 items)
  0051  SETTABLE  R0[K27('m_mapAnimLock')] = R2
  0052  SELF      R3 = R0[K29('_IsLastChance')] (self)
  0053  CALL      R2 = call(R2, 1 args, 1 rets)
  0054  SETTABLE  R0[K28('m_bLastChance')] = R2
  0055  GETTABLE  R2 = R0[K28('m_bLastChance')]
  0056  NOT       R2 = not R0
  0057  SETTABLE  R0[K30('canClickWindowMask')] = R2
  0058  GETTABLE  R2 = R0[K31('m_entryLoader')]
  0059  SELF      R3 = R2[K32('Init')] (self)
  0060  MOVE      R4 = R0
  0061  NEWTABLE  R5 = {} (0 items)
  0062  GETTABLE  R6 = R0[K34('m_activityType')]
  0063  SETTABLE  R5[K33('activityType')] = R6
  0064  GETTABUP  R6 = _ENV[K36('EDependencyEntryLocationType')]
  0065  GETTABLE  R6 = R6[K37('MainWindow')]
  0066  SETTABLE  R5[K35('eLocationType')] = R6
  0067  GETTABUP  R6 = _ENV[K38('EUILoaderConfigName')]
  0068  GETTABLE  R6 = R6[K39('DependencyWindow')]
  0069  CALL      R2 = call(R2, 0 args, 4 rets)
  0070  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 55-62 np=1 va=0 ms=5 code=21 consts=11 upvals=2 protos=0
    ;   K[0]='UIUtil'
    ;   K[1]='SetActive'
    ;   K[2]='m_decoPlaceholder'
    ;   K[3]='m_frameDecoView'
    ;   K[4]='GetLuaTable'
    ;   K[5]='Init'
    ;   K[6]='m_frameId'
    ;   K[7]='m_model'
    ;   K[8]='PreviewSlot'
    ;   K[9]='m_currentSelectedSlot'
    ;   K[10]='UpdateDecoExchangeButtons'
    ;   upvals: _ENV, self
    ;   locals: go(0-21)
    0000  GETTABUP  R1 = _ENV[K0('UIUtil')]
    0001  GETTABLE  R1 = R1[K1('SetActive')]
    0002  GETTABUP  R2 = self[K2('m_decoPlaceholder')]
    0003  LOADBOOL  R3 = false
    0004  CALL      R1 = call(R1, 0 args, 2 rets)
    0005  SELF      R2 = R0[K4('GetLuaTable')] (self)
    0006  CALL      R1 = call(R1, 1 args, 1 rets)
    0007  SETTABUP  self[K3('m_frameDecoView')] = R1
    0008  GETTABUP  R1 = self[K3('m_frameDecoView')]
    0009  SELF      R2 = R1[K5('Init')] (self)
    0010  GETTABUP  R3 = self[K6('m_frameId')]
    0011  GETTABUP  R4 = self[K7('m_model')]
    0012  CALL      R1 = call(R1, 0 args, 3 rets)
    0013  GETTABUP  R1 = self[K3('m_frameDecoView')]
    0014  SELF      R2 = R1[K8('PreviewSlot')] (self)
    0015  GETTABUP  R3 = self[K9('m_currentSelectedSlot')]
    0016  CALL      R1 = call(R1, 0 args, 2 rets)
    0017  GETUPVAL  R1 = _ENV
    0018  SELF      R2 = R1[K10('UpdateDecoExchangeButtons')] (self)
    0019  CALL      R1 = call(R1, 0 args, 1 rets)
    0020  RETURN    return R0..R-1
; ---------- proto3 [UpdateDecoExchangeButtons] ----------
  ; fn ?  line 78-105 np=1 va=0 ms=16 code=75 consts=24 upvals=1 protos=0
  ;   K[0]='ClearDecoExchangeButtons'
  ;   K[1]='m_model'
  ;   K[2]=nil
  ;   K[3]='GetState'
  ;   K[4]='ActivityState'
  ;   K[5]='Released'
  ;   K[6]='_IsModelIdChanged'
  ;   K[7]='m_arrExchangeButton'
  ;   K[8]='GetCurrentStage'
  ;   K[9]='GetStageRedeemCount'
  ;   K[10]=1
  ;   K[11]='IsRewardTaken'
  ;   K[12]='GameObject'
  ;   K[13]='Instantiate'
  ;   K[14]='m_exchangeBtnPrefab'
  ;   K[15]='m_exchangeBtnRoot'
  ;   K[16]='GetLuaTable'
  ;   K[17]='Init'
  ;   K[18]='m_frameDecoView'
  ;   K[19]='table'
  ;   K[20]='insert'
  ;   K[21]='IsPlayingExchangeAnim'
  ;   K[22]='ipairs'
  ;   K[23]='SetPlayingExchangeAnim'
  ;   upvals: _ENV
  ;   locals: self(0-75), curStage(22-75), redeemCount(26-75), bPlayingExchangeAnim(27-75), exchangeBtn(28-75), (for index)(31-65), (for limit)(31-65), (for step)(31-65), i(32-64), (for generator)(68-74), (for state)(68-74), (for control)(68-74), _(69-72), exchangeBtn(69-72)
  0000  SELF      R2 = R0[K0('ClearDecoExchangeButtons')] (self)
  0001  CALL      R1 = call(R1, 0 args, 1 rets)
  0002  GETTABLE  R1 = R0[K1('m_model')]
  0003  EQ        if R1 eq K2(nil)   -> -130297
  0004  JMP       (jump)   -> 16
  0005  GETTABLE  R1 = R0[K1('m_model')]
  0006  SELF      R2 = R1[K3('GetState')] (self)
  0007  CALL      R1 = call(R1, 1 args, 1 rets)
  0008  GETTABUP  R2 = _ENV[K4('ActivityState')]
  0009  GETTABLE  R2 = R2[K5('Released')]
  0010  EQ        if R1 eq R2   -> -130546
  0011  JMP       (jump)   -> 16
  0012  SELF      R2 = R0[K6('_IsModelIdChanged')] (self)
  0013  CALL      R1 = call(R1, 1 args, 1 rets)
  0014  TEST      if not R1 then   -> -131056
  0015  JMP       (jump)   -> 17
  0016  RETURN    return R0..R-1
  0017  NEWTABLE  R1 = {} (0 items)
  0018  SETTABLE  R0[K7('m_arrExchangeButton')] = R1
  0019  GETTABLE  R1 = R0[K1('m_model')]
  0020  SELF      R2 = R1[K8('GetCurrentStage')] (self)
  0021  CALL      R1 = call(R1, 1 args, 1 rets)
  0022  GETTABLE  R2 = R0[K1('m_model')]
  0023  SELF      R3 = R2[K9('GetStageRedeemCount')] (self)
  0024  MOVE      R4 = R0
  0025  CALL      R2 = call(R2, 1 args, 2 rets)
  0026  LOADBOOL  R3 = false
  0027  LOADNIL   R4..R4 = nil
  0028  LOADK     R5 = K10 1
  0029  MOVE      R6 = R0
  0030  LOADK     R7 = K10 1
  0031  FORPREP   forprep R5(sBx=32)   -> 64
  0032  GETTABLE  R9 = R0[K1('m_model')]
  0033  SELF      R10 = R9[K11('IsRewardTaken')] (self)
  0034  MOVE      R11 = R0
  0035  MOVE      R12 = R0
  0036  CALL      R9 = call(R9, 1 args, 3 rets)
  0037  TEST      if not R9 then   -> -131032
  0038  JMP       (jump)   -> 64
  0039  GETTABUP  R9 = _ENV[K12('GameObject')]
  0040  GETTABLE  R9 = R9[K13('Instantiate')]
  0041  GETTABLE  R10 = R0[K14('m_exchangeBtnPrefab')]
  0042  GETTABLE  R11 = R0[K15('m_exchangeBtnRoot')]
  0043  CALL      R9 = call(R9, 1 args, 2 rets)
  0044  SELF      R10 = R9[K16('GetLuaTable')] (self)
  0045  CALL      R9 = call(R9, 1 args, 1 rets)
  0046  MOVE      R4 = R0
  0047  SELF      R10 = R4[K17('Init')] (self)
  0048  GETTABLE  R11 = R0[K1('m_model')]
  0049  MOVE      R12 = R0
  0050  MOVE      R13 = R0
  0051  GETTABLE  R14 = R0[K18('m_frameDecoView')]
  0052  MOVE      R15 = R0
  0053  CALL      R9 = call(R9, 0 args, 6 rets)
  0054  GETTABUP  R9 = _ENV[K19('table')]
  0055  GETTABLE  R9 = R9[K20('insert')]
  0056  GETTABLE  R10 = R0[K7('m_arrExchangeButton')]
  0057  MOVE      R11 = R0
  0058  CALL      R9 = call(R9, 0 args, 2 rets)
  0059  SELF      R10 = R4[K21('IsPlayingExchangeAnim')] (self)
  0060  CALL      R9 = call(R9, 1 args, 1 rets)
  0061  TEST      if not R9 then   -> -131009
  0062  JMP       (jump)   -> 64
  0063  LOADBOOL  R3 = true
  0064  FORLOOP   forloop R5(sBx=-33)   -> 32
  0065  GETTABUP  R5 = _ENV[K22('ipairs')]
  0066  GETTABLE  R6 = R0[K7('m_arrExchangeButton')]
  0067  CALL      R5 = call(R5, 3 args, 1 rets)
  0068  JMP       (jump)   -> 72
  0069  SELF      R11 = R9[K23('SetPlayingExchangeAnim')] (self)
  0070  MOVE      R12 = R0
  0071  CALL      R10 = call(R10, 0 args, 2 rets)
  0072  TFORCALL  tforcall R5
  0073  TFORLOOP  tforloop R7(sBx=-5)   -> 69
  0074  RETURN    return R0..R-1
; ---------- proto4 [OnExchangeAnimFinished] ----------
  ; fn ?  line 107-117 np=1 va=0 ms=9 code=27 consts=4 upvals=1 protos=0
  ;   K[0]='ipairs'
  ;   K[1]='m_arrExchangeButton'
  ;   K[2]='IsPlayingExchangeAnim'
  ;   K[3]='SetPlayingExchangeAnim'
  ;   upvals: _ENV
  ;   locals: self(0-27), (for generator)(6-14), (for state)(6-14), (for control)(6-14), _(7-12), exchangeBtn(7-12), (for generator)(20-26), (for state)(20-26), (for control)(20-26), _(21-24), exchangeBtn(21-24)
  0000  GETTABUP  R1 = _ENV[K0('ipairs')]
  0001  GETTABLE  R2 = R0[K1('m_arrExchangeButton')]
  0002  TEST      if not R2 then   -> -131067
  0003  JMP       (jump)   -> 5
  0004  NEWTABLE  R2 = {} (0 items)
  0005  CALL      R1 = call(R1, 3 args, 1 rets)
  0006  JMP       (jump)   -> 12
  0007  SELF      R7 = R5[K2('IsPlayingExchangeAnim')] (self)
  0008  CALL      R6 = call(R6, 1 args, 1 rets)
  0009  TEST      if not R6 then   -> -131061
  0010  JMP       (jump)   -> 12
  0011  RETURN    return R0..R-1
  0012  TFORCALL  tforcall R1
  0013  TFORLOOP  tforloop R3(sBx=-7)   -> 7
  0014  GETTABUP  R1 = _ENV[K0('ipairs')]
  0015  GETTABLE  R2 = R0[K1('m_arrExchangeButton')]
  0016  TEST      if not R2 then   -> -131053
  0017  JMP       (jump)   -> 19
  0018  NEWTABLE  R2 = {} (0 items)
  0019  CALL      R1 = call(R1, 3 args, 1 rets)
  0020  JMP       (jump)   -> 24
  0021  SELF      R7 = R5[K3('SetPlayingExchangeAnim')] (self)
  0022  LOADBOOL  R8 = false
  0023  CALL      R6 = call(R6, 0 args, 2 rets)
  0024  TFORCALL  tforcall R1
  0025  TFORLOOP  tforloop R3(sBx=-5)   -> 21
  0026  RETURN    return R0..R-1
; ---------- proto5 [ClearDecoExchangeButtons] ----------
  ; fn ?  line 119-126 np=1 va=0 ms=8 code=17 consts=5 upvals=1 protos=0
  ;   K[0]='Table'
  ;   K[1]='IsEmpty'
  ;   K[2]='m_arrExchangeButton'
  ;   K[3]='ipairs'
  ;   K[4]='FadeAndDestroy'
  ;   upvals: _ENV
  ;   locals: self(0-17), (for generator)(9-14), (for state)(9-14), (for control)(9-14), _(10-12), exchangeBtn(10-12)
  0000  GETTABUP  R1 = _ENV[K0('Table')]
  0001  GETTABLE  R1 = R1[K1('IsEmpty')]
  0002  GETTABLE  R2 = R0[K2('m_arrExchangeButton')]
  0003  CALL      R1 = call(R1, 1 args, 1 rets)
  0004  TEST      if not R1 then   -> -131065
  0005  JMP       (jump)   -> 16
  0006  GETTABUP  R1 = _ENV[K3('ipairs')]
  0007  GETTABLE  R2 = R0[K2('m_arrExchangeButton')]
  0008  CALL      R1 = call(R1, 3 args, 1 rets)
  0009  JMP       (jump)   -> 12
  0010  SELF      R7 = R5[K4('FadeAndDestroy')] (self)
  0011  CALL      R6 = call(R6, 0 args, 1 rets)
  0012  TFORCALL  tforcall R1
  0013  TFORLOOP  tforloop R3(sBx=-4)   -> 10
  0014  NEWTABLE  R1 = {} (0 items)
  0015  SETTABLE  R0[K2('m_arrExchangeButton')] = R1
  0016  RETURN    return R0..R-1
; ---------- proto6 [UpdateTotalProgressInfo] ----------
  ; fn ?  line 128-131 np=1 va=0 ms=7 code=10 consts=5 upvals=0 protos=0
  ;   K[0]='m_model'
  ;   K[1]='GetRewardProgressInfo'
  ;   K[2]='m_progressText'
  ;   K[3]='text'
  ;   K[4]='/'
  ;   locals: self(0-10), cur(3-10), total(3-10)
  0000  GETTABLE  R1 = R0[K0('m_model')]
  0001  SELF      R2 = R1[K1('GetRewardProgressInfo')] (self)
  0002  CALL      R1 = call(R1, 2 args, 1 rets)
  0003  GETTABLE  R3 = R0[K2('m_progressText')]
  0004  MOVE      R4 = R0
  0005  LOADK     R5 = K4 '/'
  0006  MOVE      R6 = R0
  0007  CONCAT    R4 = concat(R4..R4)
  0008  SETTABLE  R3[K3('text')] = R4
  0009  RETURN    return R0..R-1
; ---------- proto7 [OnExchangeButtonClicked] ----------
  ; fn ?  line 133-140 np=1 va=0 ms=8 code=21 consts=10 upvals=1 protos=0
  ;   K[0]='Table'
  ;   K[1]='IsEmpty'
  ;   K[2]='m_arrExchangeButton'
  ;   K[3]='ipairs'
  ;   K[4]='m_bSelectDeco'
  ;   K[5]='SwitchExchangeTipState'
  ;   K[6]='EventDispatcher'
  ;   K[7]='DispatchEvent'
  ;   K[8]='m_activityDefinition'
  ;   K[9]='SwitchExchangeButtonStateEvent'
  ;   upvals: _ENV
  ;   locals: self(0-21), (for generator)(9-15), (for state)(9-15), (for control)(9-15), _(10-13), exchangeBtn(10-13)
  0000  GETTABUP  R1 = _ENV[K0('Table')]
  0001  GETTABLE  R1 = R1[K1('IsEmpty')]
  0002  GETTABLE  R2 = R0[K2('m_arrExchangeButton')]
  0003  CALL      R1 = call(R1, 1 args, 1 rets)
  0004  TEST      if not R1 then   -> -131065
  0005  JMP       (jump)   -> 15
  0006  GETTABUP  R1 = _ENV[K3('ipairs')]
  0007  GETTABLE  R2 = R0[K2('m_arrExchangeButton')]
  0008  CALL      R1 = call(R1, 3 args, 1 rets)
  0009  JMP       (jump)   -> 13
  0010  SELF      R7 = R5[K5('SwitchExchangeTipState')] (self)
  0011  CALL      R6 = call(R6, 1 args, 1 rets)
  0012  SETTABLE  R0[K4('m_bSelectDeco')] = R6
  0013  TFORCALL  tforcall R1
  0014  TFORLOOP  tforloop R3(sBx=-5)   -> 10
  0015  GETTABUP  R1 = _ENV[K6('EventDispatcher')]
  0016  GETTABLE  R1 = R1[K7('DispatchEvent')]
  0017  GETTABLE  R2 = R0[K8('m_activityDefinition')]
  0018  GETTABLE  R2 = R2[K9('SwitchExchangeButtonStateEvent')]
  0019  CALL      R1 = call(R1, 0 args, 1 rets)
  0020  RETURN    return R0..R-1
; ---------- proto8 [TryHideExchangeTip] ----------
  ; fn ?  line 142-150 np=1 va=0 ms=8 code=14 consts=4 upvals=1 protos=0
  ;   K[0]='ipairs'
  ;   K[1]='m_arrExchangeButton'
  ;   K[2]='IsShowTip'
  ;   K[3]='OnExchangeButtonClicked'
  ;   upvals: _ENV
  ;   locals: self(0-14), (for generator)(3-11), (for state)(3-11), (for control)(3-11), _(4-9), exchangeBtn(4-9)
  0000  GETTABUP  R1 = _ENV[K0('ipairs')]
  0001  GETTABLE  R2 = R0[K1('m_arrExchangeButton')]
  0002  CALL      R1 = call(R1, 3 args, 1 rets)
  0003  JMP       (jump)   -> 9
  0004  SELF      R7 = R5[K2('IsShowTip')] (self)
  0005  CALL      R6 = call(R6, 1 args, 1 rets)
  0006  TEST      if not R6 then   -> -131063
  0007  JMP       (jump)   -> 9
  0008  RETURN    return R0..R-1
  0009  TFORCALL  tforcall R1
  0010  TFORLOOP  tforloop R3(sBx=-7)   -> 4
  0011  SELF      R2 = R0[K3('OnExchangeButtonClicked')] (self)
  0012  CALL      R1 = call(R1, 0 args, 1 rets)
  0013  RETURN    return R0..R-1
; ---------- proto9 [Update] ----------
  ; fn ?  line 152-180 np=1 va=0 ms=9 code=69 consts=27 upvals=1 protos=0
  ;   K[0]='m_bSelectDeco'
  ;   K[1]='GM'
  ;   K[2]='TutorialModel'
  ;   K[3]='HasAnyStrongTutorialOngoing'
  ;   K[4]='CS'
  ;   K[5]='UnityEngine'
  ;   K[6]='EventSystems'
  ;   K[7]='EventSystem'
  ;   K[8]='current'
  ;   K[9]='currentSelectedGameObject'
  ;   K[10]='Table'
  ;   K[11]='IsEmpty'
  ;   K[12]='m_arrExchangeButton'
  ;   K[13]='ipairs'
  ;   K[14]='GetShowButtonGameObject'
  ;   K[15]='GetExchangeButtonTrans'
  ;   K[16]='gameObject'
  ;   K[17]='Input'
  ;   K[18]='GetMouseButtonDown'
  ;   K[19]=0
  ;   K[20]='TryHideExchangeTip'
  ;   K[21]='touchCount'
  ;   K[22]=1
  ;   K[23]='GetTouch'
  ;   K[24]='phase'
  ;   K[25]='TouchPhase'
  ;   K[26]='Began'
  ;   upvals: _ENV
  ;   locals: self(0-69), selectGo(16-69), (for generator)(25-38), (for state)(25-38), (for control)(25-38), _(26-36), btn(26-36), (for index)(55-68), (for limit)(55-68), (for step)(55-68), i(56-67)
  0000  GETTABLE  R1 = R0[K0('m_bSelectDeco')]
  0001  TEST      if not R1 then   -> -131069
  0002  JMP       (jump)   -> 9
  0003  GETTABUP  R1 = _ENV[K1('GM')]
  0004  GETTABLE  R1 = R1[K2('TutorialModel')]
  0005  SELF      R2 = R1[K3('HasAnyStrongTutorialOngoing')] (self)
  0006  CALL      R1 = call(R1, 1 args, 1 rets)
  0007  TEST      if not R1 then   -> -131063
  0008  JMP       (jump)   -> 10
  0009  RETURN    return R0..R-1
  0010  GETTABUP  R1 = _ENV[K4('CS')]
  0011  GETTABLE  R1 = R1[K5('UnityEngine')]
  0012  GETTABLE  R1 = R1[K6('EventSystems')]
  0013  GETTABLE  R1 = R1[K7('EventSystem')]
  0014  GETTABLE  R1 = R1[K8('current')]
  0015  GETTABLE  R1 = R1[K9('currentSelectedGameObject')]
  0016  GETTABUP  R2 = _ENV[K10('Table')]
  0017  GETTABLE  R2 = R2[K11('IsEmpty')]
  0018  GETTABLE  R3 = R0[K12('m_arrExchangeButton')]
  0019  CALL      R2 = call(R2, 1 args, 1 rets)
  0020  TEST      if not R2 then   -> -131049
  0021  JMP       (jump)   -> 38
  0022  GETTABUP  R2 = _ENV[K13('ipairs')]
  0023  GETTABLE  R3 = R0[K12('m_arrExchangeButton')]
  0024  CALL      R2 = call(R2, 3 args, 1 rets)
  0025  JMP       (jump)   -> 36
  0026  SELF      R8 = R6[K14('GetShowButtonGameObject')] (self)
  0027  CALL      R7 = call(R7, 1 args, 1 rets)
  0028  EQ        if R1 eq R1   -> -127457
  0029  JMP       (jump)   -> 35
  0030  SELF      R8 = R6[K15('GetExchangeButtonTrans')] (self)
  0031  CALL      R7 = call(R7, 1 args, 1 rets)
  0032  GETTABLE  R7 = R7[K16('gameObject')]
  0033  EQ        if R0 eq R1   -> -127452
  0034  JMP       (jump)   -> 36
  0035  RETURN    return R0..R-1
  0036  TFORCALL  tforcall R2
  0037  TFORLOOP  tforloop R4(sBx=-12)   -> 26
  0038  GETTABUP  R2 = _ENV[K17('Input')]
  0039  GETTABLE  R2 = R2[K18('GetMouseButtonDown')]
  0040  LOADK     R3 = K19 0
  0041  CALL      R2 = call(R2, 1 args, 1 rets)
  0042  TEST      if not R2 then   -> -131028
  0043  JMP       (jump)   -> 46
  0044  SELF      R3 = R0[K20('TryHideExchangeTip')] (self)
  0045  CALL      R2 = call(R2, 0 args, 1 rets)
  0046  GETTABUP  R2 = _ENV[K17('Input')]
  0047  GETTABLE  R2 = R2[K21('touchCount')]
  0048  LT        if R0 lt R2   -> 9780
  0049  JMP       (jump)   -> 68
  0050  LOADK     R2 = K19 0
  0051  GETTABUP  R3 = _ENV[K17('Input')]
  0052  GETTABLE  R3 = R3[K21('touchCount')]
  0053  SUB       R3 = K22(1) sub R3
  0054  LOADK     R4 = K22 1
  0055  FORPREP   forprep R2(sBx=11)   -> 67
  0056  GETTABUP  R6 = _ENV[K17('Input')]
  0057  GETTABLE  R6 = R6[K23('GetTouch')]
  0058  MOVE      R7 = R0
  0059  CALL      R6 = call(R6, 1 args, 1 rets)
  0060  GETTABLE  R6 = R6[K24('phase')]
  0061  GETTABUP  R7 = _ENV[K25('TouchPhase')]
  0062  GETTABLE  R7 = R7[K26('Began')]
  0063  EQ        if R0 eq R7   -> -127928
  0064  JMP       (jump)   -> 67
  0065  SELF      R7 = R0[K20('TryHideExchangeTip')] (self)
  0066  CALL      R6 = call(R6, 0 args, 1 rets)
  0067  FORLOOP   forloop R2(sBx=-12)   -> 56
  0068  RETURN    return R0..R-1
; ---------- proto10 [OnDestroy] ----------
  ; fn ?  line 182-191 np=1 va=0 ms=4 code=17 consts=8 upvals=1 protos=0
  ;   K[0]='FrameDecoActivityBaseWindow'
  ;   K[1]='OnDestroy'
  ;   K[2]='m_flySeq'
  ;   K[3]=nil
  ;   K[4]='Kill'
  ;   K[5]='GM'
  ;   K[6]='UIManager'
  ;   K[7]='RemoveAllEventLocks'
  ;   upvals: _ENV
  ;   locals: self(0-17)
  0000  GETTABUP  R1 = _ENV[K0('FrameDecoActivityBaseWindow')]
  0001  GETTABLE  R1 = R1[K1('OnDestroy')]
  0002  MOVE      R2 = R0
  0003  CALL      R1 = call(R1, 0 args, 1 rets)
  0004  GETTABLE  R1 = R0[K2('m_flySeq')]
  0005  EQ        if R1 eq K3(nil)   -> -130294
  0006  JMP       (jump)   -> 11
  0007  GETTABLE  R1 = R0[K2('m_flySeq')]
  0008  SELF      R2 = R1[K4('Kill')] (self)
  0009  CALL      R1 = call(R1, 0 args, 1 rets)
  0010  SETTABLE  R0[K2('m_flySeq')] = K3(nil)
  0011  GETTABUP  R1 = _ENV[K5('GM')]
  0012  GETTABLE  R1 = R1[K6('UIManager')]
  0013  SELF      R2 = R1[K7('RemoveAllEventLocks')] (self)
  0014  MOVE      R3 = R0
  0015  CALL      R1 = call(R1, 0 args, 2 rets)
  0016  RETURN    return R0..R-1
; ---------- proto11 [_IsLastChance] ----------
  ; fn ?  line 193-198 np=1 va=0 ms=5 code=28 consts=8 upvals=1 protos=0
  ;   K[0]='_IsModelIdChanged'
  ;   K[1]='m_model'
  ;   K[2]='GetState'
  ;   K[3]='ActivityState'
  ;   K[4]='Ended'
  ;   K[5]='CanClaimRewardsInStage'
  ;   K[6]='GetCurrentStage'
  ;   K[7]='HasClaimedAllRewards'
  ;   upvals: _ENV
  ;   locals: self(0-28)
  0000  SELF      R2 = R0[K0('_IsModelIdChanged')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  TEST      if not R1 then   -> -131067
  0003  JMP       (jump)   -> 24
  0004  GETTABLE  R1 = R0[K1('m_model')]
  0005  SELF      R2 = R1[K2('GetState')] (self)
  0006  CALL      R1 = call(R1, 1 args, 1 rets)
  0007  GETTABUP  R2 = _ENV[K3('ActivityState')]
  0008  GETTABLE  R2 = R2[K4('Ended')]
  0009  EQ        if R0 eq R2   -> -130547
  0010  JMP       (jump)   -> 24
  0011  GETTABLE  R1 = R0[K1('m_model')]
  0012  SELF      R2 = R1[K5('CanClaimRewardsInStage')] (self)
  0013  GETTABLE  R3 = R0[K1('m_model')]
  0014  SELF      R4 = R3[K6('GetCurrentStage')] (self)
  0015  CALL      R3 = call(R3, -1 args, 1 rets)
  0016  CALL      R1 = call(R1, 1 args, -1 rets)
  0017  TEST      if not R1 then   -> -131053
  0018  JMP       (jump)   -> 26
  0019  GETTABLE  R1 = R0[K1('m_model')]
  0020  SELF      R2 = R1[K7('HasClaimedAllRewards')] (self)
  0021  CALL      R1 = call(R1, 1 args, 1 rets)
  0022  NOT       R1 = not R0
  0023  JMP       (jump)   -> 26
  0024  LOADBOOL  R1 = false
  0025  LOADBOOL  R1 = true
  0026  RETURN    return R1..R0
  0027  RETURN    return R0..R-1
; ---------- proto12 [GetHudButton] ----------
  ; fn ?  line 200-202 np=1 va=0 ms=2 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='m_tokenHudButton'
  ;   locals: self(0-3)
  0000  GETTABLE  R1 = R0[K0('m_tokenHudButton')]
  0001  RETURN    return R1..R0
  0002  RETURN    return R0..R-1
; ---------- proto13 [_OnStateChanged] ----------
  ; fn ?  line 205-212 np=1 va=0 ms=3 code=10 consts=3 upvals=1 protos=0
  ;   K[0]='_IsInAnimLock'
  ;   K[1]='FrameDecoActivityBaseWindow'
  ;   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('FrameDecoActivityBaseWindow')]
  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
; ---------- proto14 [_OnRedeemDecoSlot] ----------
  ; fn ?  line 214-216 np=1 va=0 ms=3 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='_TryAnimInSequence'
  ;   locals: self(0-3)
  0000  SELF      R2 = R0[K0('_TryAnimInSequence')] (self)
  0001  CALL      R1 = call(R1, 0 args, 1 rets)
  0002  RETURN    return R0..R-1
; ---------- proto15 [_OnRedeemReward] ----------
  ; fn ?  line 218-220 np=1 va=0 ms=3 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='_TryAnimInSequence'
  ;   locals: self(0-3)
  0000  SELF      R2 = R0[K0('_TryAnimInSequence')] (self)
  0001  CALL      R1 = call(R1, 0 args, 1 rets)
  0002  RETURN    return R0..R-1
; ---------- proto16 [_OnStageReward] ----------
  ; fn ?  line 222-224 np=1 va=0 ms=3 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='_TryAnimInSequence'
  ;   locals: self(0-3)
  0000  SELF      R2 = R0[K0('_TryAnimInSequence')] (self)
  0001  CALL      R1 = call(R1, 0 args, 1 rets)
  0002  RETURN    return R0..R-1
; ---------- proto17 [_OnStageUnlocked] ----------
  ; fn ?  line 226-229 np=1 va=0 ms=3 code=4 consts=3 upvals=0 protos=0
  ;   K[0]='m_bNeedPlayScrollAnim'
  ;   K[1]=true
  ;   K[2]='_TryAnimInSequence'
  ;   locals: self(0-4)
  0000  SETTABLE  R0[K0('m_bNeedPlayScrollAnim')] = K1(true)
  0001  SELF      R2 = R0[K2('_TryAnimInSequence')] (self)
  0002  CALL      R1 = call(R1, 0 args, 1 rets)
  0003  RETURN    return R0..R-1
; ---------- proto18 [_IsInAnimLock] ----------
  ; fn ?  line 231-233 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
; ---------- proto19 [SetAnimLock] ----------
  ; fn ?  line 237-249 np=3 va=0 ms=5 code=30 consts=12 upvals=1 protos=0
  ;   K[0]='m_mapAnimLock'
  ;   K[1]=true
  ;   K[2]=nil
  ;   K[3]='_TryAnimInSequence'
  ;   K[4]='_IsInAnimLock'
  ;   K[5]='m_bLastChance'
  ;   K[6]='_IsModelIdChanged'
  ;   K[7]='m_model'
  ;   K[8]='GetState'
  ;   K[9]='ActivityState'
  ;   K[10]='Ended'
  ;   K[11]='CloseWhenNotValid'
  ;   upvals: _ENV
  ;   locals: self(0-30), bAnimLock(0-30), target(0-30)
  0000  TEST      if not R1 then   -> -131070
  0001  JMP       (jump)   -> 5
  0002  GETTABLE  R3 = R0[K0('m_mapAnimLock')]
  0003  SETTABLE  R3[R2] = K1(true)
  0004  JMP       (jump)   -> 7
  0005  GETTABLE  R3 = R0[K0('m_mapAnimLock')]
  0006  SETTABLE  R3[R2] = K2(nil)
  0007  SELF      R4 = R0[K3('_TryAnimInSequence')] (self)
  0008  CALL      R3 = call(R3, 0 args, 1 rets)
  0009  SELF      R4 = R0[K4('_IsInAnimLock')] (self)
  0010  CALL      R3 = call(R3, 1 args, 1 rets)
  0011  TEST      if not R3 then   -> -131058
  0012  JMP       (jump)   -> 29
  0013  GETTABLE  R3 = R0[K5('m_bLastChance')]
  0014  TEST      if not R3 then   -> -131056
  0015  JMP       (jump)   -> 27
  0016  SELF      R4 = R0[K6('_IsModelIdChanged')] (self)
  0017  CALL      R3 = call(R3, 1 args, 1 rets)
  0018  TEST      if not R3 then   -> -131051
  0019  JMP       (jump)   -> 27
  0020  GETTABLE  R3 = R0[K7('m_model')]
  0021  SELF      R4 = R3[K8('GetState')] (self)
  0022  CALL      R3 = call(R3, 1 args, 1 rets)
  0023  GETTABUP  R4 = _ENV[K9('ActivityState')]
  0024  GETTABLE  R4 = R4[K10('Ended')]
  0025  EQ        if R1 eq R4   -> -129505
  0026  JMP       (jump)   -> 29
  0027  SELF      R4 = R0[K11('CloseWhenNotValid')] (self)
  0028  CALL      R3 = call(R3, 0 args, 1 rets)
  0029  RETURN    return R0..R-1
; ---------- proto20 [_TryAnimInSequence] ----------
  ; fn ?  line 251-256 np=1 va=0 ms=3 code=9 consts=4 upvals=0 protos=0
  ;   K[0]='TryPlayExchangeSliderAnim'
  ;   K[1]='TryRedeemDecoSlotView'
  ;   K[2]='TryStageRewardView'
  ;   K[3]='TryRefreshExchangeButtons'
  ;   locals: self(0-9)
  0000  SELF      R2 = R0[K0('TryPlayExchangeSliderAnim')] (self)
  0001  CALL      R1 = call(R1, 0 args, 1 rets)
  0002  SELF      R2 = R0[K1('TryRedeemDecoSlotView')] (self)
  0003  CALL      R1 = call(R1, 0 args, 1 rets)
  0004  SELF      R2 = R0[K2('TryStageRewardView')] (self)
  0005  CALL      R1 = call(R1, 0 args, 1 rets)
  0006  SELF      R2 = R0[K3('TryRefreshExchangeButtons')] (self)
  0007  CALL      R1 = call(R1, 0 args, 1 rets)
  0008  RETURN    return R0..R-1
; ---------- proto21 [_OpenRewardWindow] ----------
  ; fn ?  line 260-302 np=3 va=0 ms=21 code=84 consts=25 upvals=1 protos=2
  ;   K[0]='SetAnimLock'
  ;   K[1]='ipairs'
  ;   K[2]='PROPERTY_TYPE'
  ;   K[3]='m_frameId'
  ;   K[4]='m_arrStageConfig'
  ;   K[5]='GetUICode'
  ;   K[6]='ImageFileConfigName'
  ;   K[7]='framedeco_box_1'
  ;   K[8]='m_rewardSlider'
  ;   K[9]='GetStageBoxPosition'
  ;   K[10]='GM'
  ;   K[11]='SceneManager'
  ;   K[12]='GetGameMode'
  ;   K[13]='EGameMode'
  ;   K[14]='Main'
  ;   K[15]='ChangeGameMode'
  ;   K[16]='UIManager'
  ;   K[17]='OpenView'
  ;   K[18]='m_activityDefinition'
  ;   K[19]='FrameRewardWindowPrefabName'
  ;   K[20]='ERewardScene'
  ;   K[21]='Other'
  ;   K[22]='UIPrefabConfigName'
  ;   K[23]='BoxRewardWindow'
  ;   K[24]=0.35
  ;   upvals: _ENV
  ;   locals: self(0-84), rewards(0-84), stage(0-84), closeCallback(5-84), bFrameReward(6-84), (for generator)(9-19), (for state)(9-19), (for control)(9-19), _(10-17), reward(10-17), stageConfig(21-84), imgKey(29-84), boxPosition(33-84), initCallback(36-65)
  0000  SELF      R4 = R0[K0('SetAnimLock')] (self)
  0001  LOADBOOL  R5 = true
  0002  MOVE      R6 = R0
  0003  CALL      R3 = call(R3, 0 args, 3 rets)
  0004  CLOSURE   R3 = closure proto0
  0005  LOADBOOL  R4 = false
  0006  GETTABUP  R5 = _ENV[K1('ipairs')]
  0007  MOVE      R6 = R0
  0008  CALL      R5 = call(R5, 3 args, 1 rets)
  0009  JMP       (jump)   -> 17
  0010  GETTABUP  R10 = _ENV[K2('PROPERTY_TYPE')]
  0011  GETTABLE  R10 = R9[R10]
  0012  GETTABLE  R11 = R0[K3('m_frameId')]
  0013  EQ        if R0 eq R11   -> -125926
  0014  JMP       (jump)   -> 17
  0015  LOADBOOL  R4 = true
  0016  JMP       (jump)   -> 19
  0017  TFORCALL  tforcall R5
  0018  TFORLOOP  tforloop R7(sBx=-9)   -> 10
  0019  GETTABLE  R5 = R0[K4('m_arrStageConfig')]
  0020  GETTABLE  R5 = R5[R2]
  0021  TEST      if not R5 then   -> -131049
  0022  JMP       (jump)   -> 27
  0023  SELF      R7 = R5[K5('GetUICode')] (self)
  0024  CALL      R6 = call(R6, 1 args, 1 rets)
  0025  TEST      if not R6 then   -> -131044
  0026  JMP       (jump)   -> 29
  0027  GETTABUP  R6 = _ENV[K6('ImageFileConfigName')]
  0028  GETTABLE  R6 = R6[K7('framedeco_box_1')]
  0029  GETTABLE  R7 = R0[K8('m_rewardSlider')]
  0030  SELF      R8 = R7[K9('GetStageBoxPosition')] (self)
  0031  MOVE      R9 = R0
  0032  CALL      R7 = call(R7, 1 args, 2 rets)
  0033  TEST      if not R4 then   -> -131037
  0034  JMP       (jump)   -> 66
  0035  CLOSURE   R8 = closure proto1
  0036  GETTABUP  R9 = _ENV[K10('GM')]
  0037  GETTABLE  R9 = R9[K11('SceneManager')]
  0038  SELF      R10 = R9[K12('GetGameMode')] (self)
  0039  CALL      R9 = call(R9, 1 args, 1 rets)
  0040  NOT       R9 = not R0
  0041  GETTABUP  R10 = _ENV[K13('EGameMode')]
  0042  GETTABLE  R10 = R10[K14('Main')]
  0043  EQ        if R0 eq R10   -> -126409
  0044  JMP       (jump)   -> 51
  0045  GETTABUP  R9 = _ENV[K10('GM')]
  0046  GETTABLE  R9 = R9[K11('SceneManager')]
  0047  SELF      R10 = R9[K15('ChangeGameMode')] (self)
  0048  GETTABUP  R11 = _ENV[K13('EGameMode')]
  0049  GETTABLE  R11 = R11[K14('Main')]
  0050  CALL      R9 = call(R9, 0 args, 2 rets)
  0051  GETTABUP  R9 = _ENV[K10('GM')]
  0052  GETTABLE  R9 = R9[K16('UIManager')]
  0053  SELF      R10 = R9[K17('OpenView')] (self)
  0054  GETTABLE  R11 = R0[K18('m_activityDefinition')]
  0055  GETTABLE  R11 = R11[K19('FrameRewardWindowPrefabName')]
  0056  MOVE      R12 = R0
  0057  LOADNIL   R13..R13 = nil
  0058  LOADBOOL  R14 = true
  0059  GETTABUP  R15 = _ENV[K20('ERewardScene')]
  0060  GETTABLE  R15 = R15[K21('Other')]
  0061  MOVE      R16 = R0
  0062  MOVE      R17 = R0
  0063  LOADBOOL  R18 = true
  0064  CALL      R9 = call(R9, 0 args, 9 rets)
  0065  JMP       (jump)   -> 83
  0066  GETTABUP  R8 = _ENV[K10('GM')]
  0067  GETTABLE  R8 = R8[K16('UIManager')]
  0068  SELF      R9 = R8[K17('OpenView')] (self)
  0069  GETTABUP  R10 = _ENV[K22('UIPrefabConfigName')]
  0070  GETTABLE  R10 = R10[K23('BoxRewardWindow')]
  0071  MOVE      R11 = R0
  0072  LOADK     R12 = K24 0.35
  0073  MOVE      R13 = R0
  0074  MOVE      R14 = R0
  0075  LOADNIL   R15..R15 = nil
  0076  LOADBOOL  R16 = true
  0077  GETTABUP  R17 = _ENV[K20('ERewardScene')]
  0078  GETTABLE  R17 = R17[K21('Other')]
  0079  LOADNIL   R18..R18 = nil
  0080  MOVE      R19 = R0
  0081  LOADBOOL  R20 = true
  0082  CALL      R8 = call(R8, 0 args, 12 rets)
  0083  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 262-270 np=0 va=0 ms=5 code=14 consts=5 upvals=2 protos=1
    ;   K[0]='UIUtil'
    ;   K[1]='IsEmptyComponent'
    ;   K[2]='gameObject'
    ;   K[3]='DelayExecuteFuncInView'
    ;   K[4]=0.9
    ;   upvals: _ENV, self
    0000  GETTABUP  R0 = _ENV[K0('UIUtil')]
    0001  GETTABLE  R0 = R0[K1('IsEmptyComponent')]
    0002  GETTABUP  R1 = self[K2('gameObject')]
    0003  CALL      R0 = call(R0, 1 args, 1 rets)
    0004  TEST      if not R0 then   -> -131066
    0005  JMP       (jump)   -> 7
    0006  RETURN    return R0..R-1
    0007  GETTABUP  R0 = _ENV[K3('DelayExecuteFuncInView')]
    0008  CLOSURE   R1 = closure proto0
    0009  LOADK     R2 = K4 0.9
    0010  GETUPVAL  R3 = _ENV
    0011  LOADBOOL  R4 = true
    0012  CALL      R0 = call(R0, 0 args, 4 rets)
    0013  RETURN    return R0..R-1
    ; ---------- proto0 [] ----------
      ; fn ?  line 267-269 np=0 va=0 ms=4 code=6 consts=1 upvals=1 protos=0
      ;   K[0]='SetAnimLock'
      ;   upvals: self
      0000  GETUPVAL  R0 = self
      0001  SELF      R1 = R0[K0('SetAnimLock')] (self)
      0002  LOADBOOL  R2 = false
      0003  GETUPVAL  R3 = self
      0004  CALL      R0 = call(R0, 0 args, 3 rets)
      0005  RETURN    return R0..R-1
  ; ---------- proto1 [] ----------
    ; fn ?  line 286-294 np=1 va=0 ms=9 code=29 consts=18 upvals=2 protos=0
    ;   K[0]='m_frameDecoView'
    ;   K[1]='GetCanvas'
    ;   K[2]='overrideSorting'
    ;   K[3]=true
    ;   K[4]='sortingOrder'
    ;   K[5]='GetSortingOrder'
    ;   K[6]=10
    ;   K[7]='transform'
    ;   K[8]='SetParent'
    ;   K[9]='GM'
    ;   K[10]='UIManager'
    ;   K[11]='GetCanvasRoot'
    ;   K[12]='LoadFrame'
    ;   K[13]='m_frameId'
    ;   K[14]='m_model'
    ;   K[15]='m_id'
    ;   K[16]='m_bLastChance'
    ;   K[17]='Close'
    ;   upvals: self, _ENV
    ;   locals: window(0-29), canvas(3-29)
    0000  GETTABUP  R1 = self[K0('m_frameDecoView')]
    0001  SELF      R2 = R1[K1('GetCanvas')] (self)
    0002  CALL      R1 = call(R1, 1 args, 1 rets)
    0003  SETTABLE  R1[K2('overrideSorting')] = K3(true)
    0004  GETUPVAL  R2 = self
    0005  SELF      R3 = R2[K5('GetSortingOrder')] (self)
    0006  CALL      R2 = call(R2, 1 args, 1 rets)
    0007  ADD       R2 = K6(10) add R2
    0008  SETTABLE  R1[K4('sortingOrder')] = R2
    0009  GETTABUP  R2 = self[K0('m_frameDecoView')]
    0010  GETTABLE  R2 = R2[K7('transform')]
    0011  SELF      R3 = R2[K8('SetParent')] (self)
    0012  GETTABUP  R4 = _ENV[K9('GM')]
    0013  GETTABLE  R4 = R4[K10('UIManager')]
    0014  SELF      R5 = R4[K11('GetCanvasRoot')] (self)
    0015  CALL      R4 = call(R4, 1 args, 1 rets)
    0016  LOADBOOL  R5 = true
    0017  CALL      R2 = call(R2, 0 args, 3 rets)
    0018  SELF      R3 = R0[K12('LoadFrame')] (self)
    0019  GETTABUP  R4 = self[K13('m_frameId')]
    0020  GETTABUP  R5 = self[K0('m_frameDecoView')]
    0021  GETTABUP  R6 = self[K14('m_model')]
    0022  GETTABUP  R7 = self[K15('m_id')]
    0023  GETTABUP  R8 = self[K16('m_bLastChance')]
    0024  CALL      R2 = call(R2, 0 args, 6 rets)
    0025  GETUPVAL  R2 = self
    0026  SELF      R3 = R2[K17('Close')] (self)
    0027  CALL      R2 = call(R2, 0 args, 1 rets)
    0028  RETURN    return R0..R-1
; ---------- proto22 [TryRedeemDecoSlotView] ----------
  ; fn ?  line 304-341 np=1 va=0 ms=14 code=60 consts=15 upvals=1 protos=2
  ;   K[0]='_IsInAnimLock'
  ;   K[1]='m_model'
  ;   K[2]='GetRedeemDecoSlotViewData'
  ;   K[3]=nil
  ;   K[4]='ClearRedeemDecoSlotData'
  ;   K[5]='SetAnimLock'
  ;   K[6]='GM'
  ;   K[7]='UIManager'
  ;   K[8]='SetEventLock'
  ;   K[9]='m_frameDecoView'
  ;   K[10]='GetEffectDelay'
  ;   K[11]=0
  ;   K[12]='m_frameDecoView'
  ;   K[13]='PlayBuildFinishEffect'
  ;   K[14]='PlayAppearAnimation'
  ;   upvals: _ENV
  ;   locals: self(0-60), model(6-60), slot(8-60), stage(8-60), index(8-60), effectLock(27-59), delay(41-59), bHasDelay(45-59), effectCallback(46-59), appearAnimationCallback(47-59)
  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_model')]
  0006  SELF      R3 = R1[K2('GetRedeemDecoSlotViewData')] (self)
  0007  CALL      R2 = call(R2, 3 args, 1 rets)
  0008  EQ        if R1 eq K3(nil)   -> -129779
  0009  JMP       (jump)   -> 59
  0010  EQ        if R1 eq K3(nil)   -> -129265
  0011  JMP       (jump)   -> 59
  0012  EQ        if R1 eq K3(nil)   -> -128751
  0013  JMP       (jump)   -> 59
  0014  SELF      R6 = R1[K4('ClearRedeemDecoSlotData')] (self)
  0015  CALL      R5 = call(R5, 0 args, 1 rets)
  0016  SELF      R6 = R0[K5('SetAnimLock')] (self)
  0017  LOADBOOL  R7 = true
  0018  MOVE      R8 = R0
  0019  CALL      R5 = call(R5, 0 args, 3 rets)
  0020  GETTABUP  R5 = _ENV[K6('GM')]
  0021  GETTABLE  R5 = R5[K7('UIManager')]
  0022  SELF      R6 = R5[K8('SetEventLock')] (self)
  0023  LOADBOOL  R7 = true
  0024  MOVE      R8 = R0
  0025  CALL      R5 = call(R5, 0 args, 3 rets)
  0026  NEWTABLE  R5 = {} (0 items)
  0027  SELF      R7 = R0[K5('SetAnimLock')] (self)
  0028  LOADBOOL  R8 = true
  0029  MOVE      R9 = R0
  0030  CALL      R6 = call(R6, 0 args, 3 rets)
  0031  GETTABUP  R6 = _ENV[K6('GM')]
  0032  GETTABLE  R6 = R6[K7('UIManager')]
  0033  SELF      R7 = R6[K8('SetEventLock')] (self)
  0034  LOADBOOL  R8 = true
  0035  MOVE      R9 = R0
  0036  CALL      R6 = call(R6, 0 args, 3 rets)
  0037  GETTABLE  R6 = R0[K9('m_frameDecoView')]
  0038  SELF      R7 = R6[K10('GetEffectDelay')] (self)
  0039  MOVE      R8 = R0
  0040  CALL      R6 = call(R6, 1 args, 2 rets)
  0041  LT        if R1 lt R6   -> 5681
  0042  JMP       (jump)   -> 44
  0043  LOADBOOL  R7 = false
  0044  LOADBOOL  R7 = true
  0045  CLOSURE   R8 = closure proto0
  0046  CLOSURE   R9 = closure proto1
  0047  TEST      if not R7 then   -> -131023
  0048  JMP       (jump)   -> 54
  0049  GETTABLE  R10 = R0[K12('m_frameDecoView')]
  0050  SELF      R11 = R10[K13('PlayBuildFinishEffect')] (self)
  0051  MOVE      R12 = R0
  0052  MOVE      R13 = R0
  0053  CALL      R10 = call(R10, 0 args, 3 rets)
  0054  GETTABLE  R10 = R0[K12('m_frameDecoView')]
  0055  SELF      R11 = R10[K14('PlayAppearAnimation')] (self)
  0056  MOVE      R12 = R0
  0057  CALL      R10 = call(R10, 0 args, 2 rets)
  0058  JMP       (jump)   -> 59
  0059  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 324-328 np=0 va=0 ms=4 code=15 consts=6 upvals=3 protos=0
    ;   K[0]='GM'
    ;   K[1]='UIManager'
    ;   K[2]='SetEventLock'
    ;   K[3]='SetAnimLock'
    ;   K[4]='m_model'
    ;   K[5]='DispatchPlayAnimationEndEvent'
    ;   upvals: _ENV, effectLock, self
    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('SetAnimLock')] (self)
    0008  LOADBOOL  R2 = false
    0009  GETUPVAL  R3 = _ENV
    0010  CALL      R0 = call(R0, 0 args, 3 rets)
    0011  GETTABUP  R0 = self[K4('m_model')]
    0012  SELF      R1 = R0[K5('DispatchPlayAnimationEndEvent')] (self)
    0013  CALL      R0 = call(R0, 0 args, 1 rets)
    0014  RETURN    return R0..R-1
  ; ---------- proto1 [] ----------
    ; fn ?  line 329-335 np=0 va=0 ms=4 code=20 consts=6 upvals=5 protos=0
    ;   K[0]='GM'
    ;   K[1]='UIManager'
    ;   K[2]='SetEventLock'
    ;   K[3]='SetAnimLock'
    ;   K[4]='m_frameDecoView'
    ;   K[5]='PlayBuildFinishEffect'
    ;   upvals: _ENV, self, bHasDelay, slot, effectCallback
    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('SetAnimLock')] (self)
    0008  LOADBOOL  R2 = false
    0009  GETUPVAL  R3 = _ENV
    0010  CALL      R0 = call(R0, 0 args, 3 rets)
    0011  GETUPVAL  R0 = _ENV
    0012  TEST      if not R0 then   -> -131057
    0013  JMP       (jump)   -> 19
    0014  GETTABUP  R0 = self[K4('m_frameDecoView')]
    0015  SELF      R1 = R0[K5('PlayBuildFinishEffect')] (self)
    0016  GETUPVAL  R2 = _ENV
    0017  GETUPVAL  R3 = _ENV
    0018  CALL      R0 = call(R0, 0 args, 3 rets)
    0019  RETURN    return R0..R-1
; ---------- proto23 [TryStageRewardView] ----------
  ; fn ?  line 343-354 np=1 va=0 ms=8 code=23 consts=8 upvals=1 protos=0
  ;   K[0]='_IsInAnimLock'
  ;   K[1]='m_model'
  ;   K[2]='GetStageRewardViewData'
  ;   K[3]='Table'
  ;   K[4]='IsEmpty'
  ;   K[5]=nil
  ;   K[6]='ClearStageRewardViewData'
  ;   K[7]='_OpenRewardWindow'
  ;   upvals: _ENV
  ;   locals: self(0-23), model(6-23), arrStageRewards(8-23), stage(8-23)
  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_model')]
  0006  SELF      R3 = R1[K2('GetStageRewardViewData')] (self)
  0007  CALL      R2 = call(R2, 2 args, 1 rets)
  0008  GETTABUP  R4 = _ENV[K3('Table')]
  0009  GETTABLE  R4 = R4[K4('IsEmpty')]
  0010  MOVE      R5 = R0
  0011  CALL      R4 = call(R4, 1 args, 1 rets)
  0012  TEST      if not R4 then   -> -131057
  0013  JMP       (jump)   -> 22
  0014  EQ        if R1 eq K5(nil)   -> -129259
  0015  JMP       (jump)   -> 22
  0016  SELF      R5 = R1[K6('ClearStageRewardViewData')] (self)
  0017  CALL      R4 = call(R4, 0 args, 1 rets)
  0018  SELF      R5 = R0[K7('_OpenRewardWindow')] (self)
  0019  MOVE      R6 = R0
  0020  MOVE      R7 = R0
  0021  CALL      R4 = call(R4, 0 args, 3 rets)
  0022  RETURN    return R0..R-1
; ---------- proto24 [TryRefreshExchangeButtons] ----------
  ; fn ?  line 356-365 np=1 va=0 ms=3 code=14 consts=5 upvals=1 protos=0
  ;   K[0]='_IsInAnimLock'
  ;   K[1]='Table'
  ;   K[2]='IsEmpty'
  ;   K[3]='m_arrExchangeButton'
  ;   K[4]='UpdateDecoExchangeButtons'
  ;   upvals: _ENV
  ;   locals: self(0-14)
  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('Table')]
  0006  GETTABLE  R1 = R1[K2('IsEmpty')]
  0007  GETTABLE  R2 = R0[K3('m_arrExchangeButton')]
  0008  CALL      R1 = call(R1, 1 args, 1 rets)
  0009  TEST      if not R1 then   -> -131061
  0010  JMP       (jump)   -> 13
  0011  SELF      R2 = R0[K4('UpdateDecoExchangeButtons')] (self)
  0012  CALL      R1 = call(R1, 0 args, 1 rets)
  0013  RETURN    return R0..R-1
; ---------- proto25 [TryPlayExchangeSliderAnim] ----------
  ; fn ?  line 367-413 np=1 va=0 ms=18 code=89 consts=37 upvals=1 protos=2
  ;   K[0]='_IsInAnimLock'
  ;   K[1]='m_model'
  ;   K[2]='GetRedeemDecoSlotViewData'
  ;   K[3]=nil
  ;   K[4]='Table'
  ;   K[5]='IsEmpty'
  ;   K[6]='m_arrExchangeButton'
  ;   K[7]='ipairs'
  ;   K[8]='GetStage'
  ;   K[9]='GetIndex'
  ;   K[10]='GameObject'
  ;   K[11]='Instantiate'
  ;   K[12]='GetIconGameObject'
  ;   K[13]='m_contentRect'
  ;   K[14]='UIUtil'
  ;   K[15]='SetActive'
  ;   K[16]='transform'
  ;   K[17]='m_rewardSlider'
  ;   K[18]='GetHitRect'
  ;   K[19]=0.4
  ;   K[20]='ClearDecoExchangeButtons'
  ;   K[21]='DOTween'
  ;   K[22]='Sequence'
  ;   K[23]='AppendInterval'
  ;   K[24]=0.2
  ;   K[25]='Append'
  ;   K[26]='DOJump'
  ;   K[27]='position'
  ;   K[28]=10
  ;   K[29]=0.8
  ;   K[30]='SetEase'
  ;   K[31]='Ease'
  ;   K[32]='InOutSine'
  ;   K[33]='AppendCallback'
  ;   K[34]='m_rewardSlider'
  ;   K[35]='PlayProgressAnim'
  ;   K[36]='m_flySeq'
  ;   upvals: _ENV
  ;   locals: self(0-89), model(6-89), slot(8-89), stage(8-89), index(8-89), flyGo(21-88), (for generator)(24-43), (for state)(24-43), (for control)(24-43), _(25-41), exchangeBtn(25-41), flyRect(52-88), targetRect(55-88), flyDuration(56-88), seq(61-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_model')]
  0006  SELF      R3 = R1[K2('GetRedeemDecoSlotViewData')] (self)
  0007  CALL      R2 = call(R2, 3 args, 1 rets)
  0008  EQ        if R1 eq K3(nil)   -> -129779
  0009  JMP       (jump)   -> 88
  0010  EQ        if R1 eq K3(nil)   -> -129265
  0011  JMP       (jump)   -> 88
  0012  EQ        if R1 eq K3(nil)   -> -128751
  0013  JMP       (jump)   -> 88
  0014  GETTABUP  R5 = _ENV[K4('Table')]
  0015  GETTABLE  R5 = R5[K5('IsEmpty')]
  0016  GETTABLE  R6 = R0[K6('m_arrExchangeButton')]
  0017  CALL      R5 = call(R5, 1 args, 1 rets)
  0018  TEST      if not R5 then   -> -131051
  0019  JMP       (jump)   -> 88
  0020  LOADNIL   R5..R5 = nil
  0021  GETTABUP  R6 = _ENV[K7('ipairs')]
  0022  GETTABLE  R7 = R0[K6('m_arrExchangeButton')]
  0023  CALL      R6 = call(R6, 3 args, 1 rets)
  0024  JMP       (jump)   -> 41
  0025  SELF      R12 = R10[K8('GetStage')] (self)
  0026  CALL      R11 = call(R11, 1 args, 1 rets)
  0027  EQ        if R0 eq R3   -> -125408
  0028  JMP       (jump)   -> 41
  0029  SELF      R12 = R10[K9('GetIndex')] (self)
  0030  CALL      R11 = call(R11, 1 args, 1 rets)
  0031  EQ        if R0 eq R4   -> -125403
  0032  JMP       (jump)   -> 41
  0033  GETTABUP  R11 = _ENV[K10('GameObject')]
  0034  GETTABLE  R11 = R11[K11('Instantiate')]
  0035  SELF      R13 = R10[K12('GetIconGameObject')] (self)
  0036  CALL      R12 = call(R12, 1 args, 1 rets)
  0037  GETTABLE  R13 = R0[K13('m_contentRect')]
  0038  LOADBOOL  R14 = true
  0039  CALL      R11 = call(R11, 1 args, 3 rets)
  0040  MOVE      R5 = R0
  0041  TFORCALL  tforcall R6
  0042  TFORLOOP  tforloop R8(sBx=-18)   -> 25
  0043  EQ        if R0 eq K3(nil)   -> -128208
  0044  JMP       (jump)   -> 46
  0045  RETURN    return R0..R-1
  0046  GETTABUP  R6 = _ENV[K14('UIUtil')]
  0047  GETTABLE  R6 = R6[K15('SetActive')]
  0048  MOVE      R7 = R0
  0049  LOADBOOL  R8 = true
  0050  CALL      R6 = call(R6, 0 args, 2 rets)
  0051  GETTABLE  R6 = R5[K16('transform')]
  0052  GETTABLE  R7 = R0[K17('m_rewardSlider')]
  0053  SELF      R8 = R7[K18('GetHitRect')] (self)
  0054  CALL      R7 = call(R7, 1 args, 1 rets)
  0055  LOADK     R8 = K19 0.4
  0056  SELF      R10 = R0[K20('ClearDecoExchangeButtons')] (self)
  0057  CALL      R9 = call(R9, 0 args, 1 rets)
  0058  GETTABUP  R9 = _ENV[K21('DOTween')]
  0059  GETTABLE  R9 = R9[K22('Sequence')]
  0060  CALL      R9 = call(R9, 1 args, 0 rets)
  0061  SELF      R11 = R9[K23('AppendInterval')] (self)
  0062  LOADK     R12 = K24 0.2
  0063  CALL      R10 = call(R10, 0 args, 2 rets)
  0064  SELF      R11 = R9[K25('Append')] (self)
  0065  SELF      R13 = R6[K26('DOJump')] (self)
  0066  GETTABLE  R14 = R7[K27('position')]
  0067  LOADK     R15 = K28 10
  0068  LOADK     R16 = K29 0.8
  0069  MOVE      R17 = R0
  0070  CALL      R12 = call(R12, 1 args, 5 rets)
  0071  SELF      R13 = R12[K30('SetEase')] (self)
  0072  GETTABUP  R14 = _ENV[K31('Ease')]
  0073  GETTABLE  R14 = R14[K32('InOutSine')]
  0074  CALL      R12 = call(R12, -1 args, 2 rets)
  0075  CALL      R10 = call(R10, 0 args, -1 rets)
  0076  SELF      R11 = R9[K33('AppendCallback')] (self)
  0077  CLOSURE   R12 = closure proto0
  0078  CALL      R10 = call(R10, 0 args, 2 rets)
  0079  GETTABLE  R10 = R0[K34('m_rewardSlider')]
  0080  SELF      R11 = R10[K35('PlayProgressAnim')] (self)
  0081  MOVE      R12 = R0
  0082  CALL      R10 = call(R10, 0 args, 2 rets)
  0083  SELF      R11 = R9[K33('AppendCallback')] (self)
  0084  CLOSURE   R12 = closure proto1
  0085  CALL      R10 = call(R10, 0 args, 2 rets)
  0086  SETTABLE  R0[K36('m_flySeq')] = R9
  0087  JMP       (jump)   -> 88
  0088  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 399-402 np=0 va=0 ms=2 code=8 consts=4 upvals=3 protos=0
    ;   K[0]='GameObject'
    ;   K[1]='Destroy'
    ;   K[2]='m_rewardSlider'
    ;   K[3]='PlayHitAnim'
    ;   upvals: _ENV, flyGo, self
    0000  GETTABUP  R0 = _ENV[K0('GameObject')]
    0001  GETTABLE  R0 = R0[K1('Destroy')]
    0002  GETUPVAL  R1 = _ENV
    0003  CALL      R0 = call(R0, 0 args, 1 rets)
    0004  GETTABUP  R0 = self[K2('m_rewardSlider')]
    0005  SELF      R1 = R0[K3('PlayHitAnim')] (self)
    0006  CALL      R0 = call(R0, 0 args, 1 rets)
    0007  RETURN    return R0..R-1
  ; ---------- proto1 [m_flySeq] ----------
    ; fn ?  line 404-409 np=0 va=0 ms=2 code=5 consts=3 upvals=1 protos=0
    ;   K[0]='UpdateTotalProgressInfo'
    ;   K[1]='m_flySeq'
    ;   K[2]=nil
    ;   upvals: self
    0000  GETUPVAL  R0 = self
    0001  SELF      R1 = R0[K0('UpdateTotalProgressInfo')] (self)
    0002  CALL      R0 = call(R0, 0 args, 1 rets)
    0003  SETTABUP  self[K1('m_flySeq')] = K2(nil)
    0004  RETURN    return R0..R-1
; ---------- proto26 [GetDecoTransform] ----------
  ; fn ?  line 415-417 np=1 va=0 ms=2 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='m_decoTrans'
  ;   locals: self(0-3)
  0000  GETTABLE  R1 = R0[K0('m_decoTrans')]
  0001  RETURN    return R1..R0
  0002  RETURN    return R0..R-1
; ---------- proto27 [GetPreviewTransform] ----------
  ; fn ?  line 419-421 np=1 va=0 ms=2 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='m_previewTrans'
  ;   locals: self(0-3)
  0000  GETTABLE  R1 = R0[K0('m_previewTrans')]
  0001  RETURN    return R1..R0
  0002  RETURN    return R0..R-1
; ---------- proto28 [GetHelpTransform] ----------
  ; fn ?  line 423-425 np=1 va=0 ms=2 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='m_helpTrans'
  ;   locals: self(0-3)
  0000  GETTABLE  R1 = R0[K0('m_helpTrans')]
  0001  RETURN    return R1..R0
  0002  RETURN    return R0..R-1
; ---------- proto29 [OnPreviewBtnClick] ----------
  ; fn ?  line 427-429 np=1 va=0 ms=7 code=10 consts=7 upvals=1 protos=0
  ;   K[0]='GM'
  ;   K[1]='UIManager'
  ;   K[2]='OpenView'
  ;   K[3]='UIPrefabConfigName'
  ;   K[4]='FrameDetailWindow'
  ;   K[5]='m_frameId'
  ;   K[6]='m_model'
  ;   upvals: _ENV
  ;   locals: self(0-10)
  0000  GETTABUP  R1 = _ENV[K0('GM')]
  0001  GETTABLE  R1 = R1[K1('UIManager')]
  0002  SELF      R2 = R1[K2('OpenView')] (self)
  0003  GETTABUP  R3 = _ENV[K3('UIPrefabConfigName')]
  0004  GETTABLE  R3 = R3[K4('FrameDetailWindow')]
  0005  GETTABLE  R4 = R0[K5('m_frameId')]
  0006  LOADNIL   R5..R5 = nil
  0007  GETTABLE  R6 = R0[K6('m_model')]
  0008  CALL      R1 = call(R1, 0 args, 5 rets)
  0009  RETURN    return R0..R-1
; ---------- proto30 [OnAvatarClicked] ----------
  ; fn ?  line 431-433 np=1 va=0 ms=5 code=8 consts=6 upvals=1 protos=0
  ;   K[0]='GM'
  ;   K[1]='UIManager'
  ;   K[2]='OpenView'
  ;   K[3]='UIPrefabConfigName'
  ;   K[4]='FramePreviewWindow'
  ;   K[5]='m_frameId'
  ;   upvals: _ENV
  ;   locals: self(0-8)
  0000  GETTABUP  R1 = _ENV[K0('GM')]
  0001  GETTABLE  R1 = R1[K1('UIManager')]
  0002  SELF      R2 = R1[K2('OpenView')] (self)
  0003  GETTABUP  R3 = _ENV[K3('UIPrefabConfigName')]
  0004  GETTABLE  R3 = R3[K4('FramePreviewWindow')]
  0005  GETTABLE  R4 = R0[K5('m_frameId')]
  0006  CALL      R1 = call(R1, 0 args, 3 rets)
  0007  RETURN    return R0..R-1
; ---------- proto31 [OnCloseBtnClick] ----------
  ; fn ?  line 435-447 np=1 va=0 ms=9 code=21 consts=10 upvals=1 protos=1
  ;   K[0]='_IsLastChance'
  ;   K[1]='GM'
  ;   K[2]='UIManager'
  ;   K[3]='OpenView'
  ;   K[4]='m_activityDefinition'
  ;   K[5]='LastChanceWindowPrefabName'
  ;   K[6]='m_activityType'
  ;   K[7]='m_model'
  ;   K[8]='GetId'
  ;   K[9]='Close'
  ;   upvals: _ENV
  ;   locals: self(0-21), confirmButtonCallback(5-17)
  0000  SELF      R2 = R0[K0('_IsLastChance')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  TEST      if not R1 then   -> -131068
  0003  JMP       (jump)   -> 18
  0004  CLOSURE   R1 = closure proto0
  0005  GETTABUP  R2 = _ENV[K1('GM')]
  0006  GETTABLE  R2 = R2[K2('UIManager')]
  0007  SELF      R3 = R2[K3('OpenView')] (self)
  0008  GETTABLE  R4 = R0[K4('m_activityDefinition')]
  0009  GETTABLE  R4 = R4[K5('LastChanceWindowPrefabName')]
  0010  GETTABLE  R5 = R0[K6('m_activityType')]
  0011  GETTABLE  R6 = R0[K7('m_model')]
  0012  SELF      R7 = R6[K8('GetId')] (self)
  0013  CALL      R6 = call(R6, 1 args, 1 rets)
  0014  LOADBOOL  R7 = true
  0015  MOVE      R8 = R0
  0016  CALL      R2 = call(R2, 0 args, 6 rets)
  0017  JMP       (jump)   -> 20
  0018  SELF      R2 = R0[K9('Close')] (self)
  0019  CALL      R1 = call(R1, 0 args, 1 rets)
  0020  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 438-441 np=1 va=0 ms=3 code=6 consts=1 upvals=1 protos=0
    ;   K[0]='Close'
    ;   upvals: self
    ;   locals: window(0-6)
    0000  GETUPVAL  R1 = self
    0001  SELF      R2 = R1[K0('Close')] (self)
    0002  CALL      R1 = call(R1, 0 args, 1 rets)
    0003  SELF      R2 = R0[K0('Close')] (self)
    0004  CALL      R1 = call(R1, 0 args, 1 rets)
    0005  RETURN    return R0..R-1
; ---------- proto32 [OnHelpBtnClicked] ----------
  ; fn ?  line 449-452 np=1 va=0 ms=7 code=14 consts=8 upvals=1 protos=0
  ;   K[0]='GM'
  ;   K[1]='UIManager'
  ;   K[2]='OpenView'
  ;   K[3]='m_activityDefinition'
  ;   K[4]='HelpWindowPrefabName'
  ;   K[5]='m_model'
  ;   K[6]='GetType'
  ;   K[7]='GetId'
  ;   upvals: _ENV
  ;   locals: self(0-14)
  0000  GETTABUP  R1 = _ENV[K0('GM')]
  0001  GETTABLE  R1 = R1[K1('UIManager')]
  0002  SELF      R2 = R1[K2('OpenView')] (self)
  0003  GETTABLE  R3 = R0[K3('m_activityDefinition')]
  0004  GETTABLE  R3 = R3[K4('HelpWindowPrefabName')]
  0005  GETTABLE  R4 = R0[K5('m_model')]
  0006  SELF      R5 = R4[K6('GetType')] (self)
  0007  CALL      R4 = call(R4, 1 args, 1 rets)
  0008  GETTABLE  R5 = R0[K5('m_model')]
  0009  SELF      R6 = R5[K7('GetId')] (self)
  0010  CALL      R5 = call(R5, 1 args, 1 rets)
  0011  LOADBOOL  R6 = true
  0012  CALL      R1 = call(R1, 0 args, 5 rets)
  0013  RETURN    return R0..R-1
; ---------- proto33 [OnTokenClicked] ----------
  ; fn ?  line 454-456 np=1 va=0 ms=3 code=4 consts=2 upvals=0 protos=0
  ;   K[0]='m_tokenTip'
  ;   K[1]='Show'
  ;   locals: self(0-4)
  0000  GETTABLE  R1 = R0[K0('m_tokenTip')]
  0001  SELF      R2 = R1[K1('Show')] (self)
  0002  CALL      R1 = call(R1, 0 args, 1 rets)
  0003  RETURN    return R0..R-1
; ---------- proto34 [GetTutorialExchangeButton] ----------
  ; fn ?  line 458-467 np=1 va=0 ms=8 code=18 consts=5 upvals=1 protos=0
  ;   K[0]='Table'
  ;   K[1]='IsEmpty'
  ;   K[2]='m_arrExchangeButton'
  ;   K[3]='ipairs'
  ;   K[4]='CanRedeemDeco'
  ;   upvals: _ENV
  ;   locals: self(0-18), (for generator)(9-17), (for state)(9-17), (for control)(9-17), _(10-15), exchangeBtn(10-15)
  0000  GETTABUP  R1 = _ENV[K0('Table')]
  0001  GETTABLE  R1 = R1[K1('IsEmpty')]
  0002  GETTABLE  R2 = R0[K2('m_arrExchangeButton')]
  0003  CALL      R1 = call(R1, 1 args, 1 rets)
  0004  TEST      if not R1 then   -> -131065
  0005  JMP       (jump)   -> 17
  0006  GETTABUP  R1 = _ENV[K3('ipairs')]
  0007  GETTABLE  R2 = R0[K2('m_arrExchangeButton')]
  0008  CALL      R1 = call(R1, 3 args, 1 rets)
  0009  JMP       (jump)   -> 15
  0010  SELF      R7 = R5[K4('CanRedeemDeco')] (self)
  0011  CALL      R6 = call(R6, 1 args, 1 rets)
  0012  TEST      if not R6 then   -> -131058
  0013  JMP       (jump)   -> 15
  0014  RETURN    return R5..R4
  0015  TFORCALL  tforcall R1
  0016  TFORLOOP  tforloop R3(sBx=-7)   -> 10
  0017  RETURN    return R0..R-1
; ---------- proto35 [SetAllExchangeButtonEnabled] ----------
  ; fn ?  line 469-475 np=2 va=0 ms=10 code=16 consts=5 upvals=1 protos=0
  ;   K[0]='Table'
  ;   K[1]='IsEmpty'
  ;   K[2]='m_arrExchangeButton'
  ;   K[3]='ipairs'
  ;   K[4]='SetButtonEnabledForTutorial'
  ;   upvals: _ENV
  ;   locals: self(0-16), bEnable(0-16), (for generator)(9-15), (for state)(9-15), (for control)(9-15), _(10-13), exchangeBtn(10-13)
  0000  GETTABUP  R2 = _ENV[K0('Table')]
  0001  GETTABLE  R2 = R2[K1('IsEmpty')]
  0002  GETTABLE  R3 = R0[K2('m_arrExchangeButton')]
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  TEST      if not R2 then   -> -131065
  0005  JMP       (jump)   -> 15
  0006  GETTABUP  R2 = _ENV[K3('ipairs')]
  0007  GETTABLE  R3 = R0[K2('m_arrExchangeButton')]
  0008  CALL      R2 = call(R2, 3 args, 1 rets)
  0009  JMP       (jump)   -> 13
  0010  SELF      R8 = R6[K4('SetButtonEnabledForTutorial')] (self)
  0011  MOVE      R9 = R0
  0012  CALL      R7 = call(R7, 0 args, 2 rets)
  0013  TFORCALL  tforcall R2
  0014  TFORLOOP  tforloop R4(sBx=-5)   -> 10
  0015  RETURN    return R0..R-1
