# UI_Window_Discoveries_DiscoveriesWindow_714.luac
; fn @DiscoveriesWindow.lua  line 0-0 np=0 va=1 ms=4 code=61 consts=31 upvals=1 protos=15
;   K[0]='DiscoveriesWindow'
;   K[1]='setmetatable'
;   K[2]='canClickWindowMask'
;   K[3]=true
;   K[4]='BaseWindow'
;   K[5]='__index'
;   K[6]='Producer'
;   K[7]=1
;   K[8]='Equipment'
;   K[9]=2
;   K[10]='Property'
;   K[11]=3
;   K[12]='Dish'
;   K[13]=4
;   K[14]=0.6
;   K[15]='Init'
;   K[16]='DiscoveriesWindow'
;   K[17]='AddEventListener'
;   K[18]='RemoveEventListener'
;   K[19]='CanShowRedPointForTab'
;   K[20]='_TryMove'
;   K[21]='OnCloseView'
;   K[22]='_AddTween'
;   K[23]='_OnListItemByIndex'
;   K[24]='MoveTo'
;   K[25]='GetCanRewardCell'
;   K[26]='UpdateTable'
;   K[27]='_UpdateListViewHeight'
;   K[28]='_MoveTo'
;   K[29]='OnClickJumpToEnd'
;   K[30]='TryPlayChainFinishEffect'
;   upvals: _ENV
;   locals: ETabNumberKey(14-61), MOVE_CONTAINER_TWEEN_DURATION(15-61)
0000  GETTABUP  R0 = _ENV[K1('setmetatable')]
0001  NEWTABLE  R1 = {} (0 items)
0002  SETTABLE  R1[K2('canClickWindowMask')] = K3(true)
0003  GETTABUP  R2 = _ENV[K4('BaseWindow')]
0004  CALL      R0 = call(R0, 1 args, 2 rets)
0005  SETTABUP  _ENV[K0('DiscoveriesWindow')] = R0
0006  GETTABUP  R0 = _ENV[K0('DiscoveriesWindow')]
0007  GETTABUP  R1 = _ENV[K0('DiscoveriesWindow')]
0008  SETTABLE  R0[K5('__index')] = R1
0009  NEWTABLE  R0 = {} (0 items)
0010  SETTABLE  R0[K6('Producer')] = K7(1)
0011  SETTABLE  R0[K8('Equipment')] = K9(2)
0012  SETTABLE  R0[K10('Property')] = K11(3)
0013  SETTABLE  R0[K12('Dish')] = K13(4)
0014  LOADK     R1 = K14 0.6
0015  GETTABUP  R2 = _ENV[K0('DiscoveriesWindow')]
0016  CLOSURE   R3 = closure proto0
0017  SETTABLE  R2[K15('Init')] = R3
0018  GETTABUP  R2 = _ENV[K16('DiscoveriesWindow')]
0019  CLOSURE   R3 = closure proto1
0020  SETTABLE  R2[K17('AddEventListener')] = R3
0021  GETTABUP  R2 = _ENV[K16('DiscoveriesWindow')]
0022  CLOSURE   R3 = closure proto2
0023  SETTABLE  R2[K18('RemoveEventListener')] = R3
0024  GETTABUP  R2 = _ENV[K16('DiscoveriesWindow')]
0025  CLOSURE   R3 = closure proto3
0026  SETTABLE  R2[K19('CanShowRedPointForTab')] = R3
0027  GETTABUP  R2 = _ENV[K16('DiscoveriesWindow')]
0028  CLOSURE   R3 = closure proto4
0029  SETTABLE  R2[K20('_TryMove')] = R3
0030  GETTABUP  R2 = _ENV[K16('DiscoveriesWindow')]
0031  CLOSURE   R3 = closure proto5
0032  SETTABLE  R2[K21('OnCloseView')] = R3
0033  GETTABUP  R2 = _ENV[K16('DiscoveriesWindow')]
0034  CLOSURE   R3 = closure proto6
0035  SETTABLE  R2[K22('_AddTween')] = R3
0036  GETTABUP  R2 = _ENV[K16('DiscoveriesWindow')]
0037  CLOSURE   R3 = closure proto7
0038  SETTABLE  R2[K23('_OnListItemByIndex')] = R3
0039  GETTABUP  R2 = _ENV[K16('DiscoveriesWindow')]
0040  CLOSURE   R3 = closure proto8
0041  SETTABLE  R2[K24('MoveTo')] = R3
0042  GETTABUP  R2 = _ENV[K16('DiscoveriesWindow')]
0043  CLOSURE   R3 = closure proto9
0044  SETTABLE  R2[K25('GetCanRewardCell')] = R3
0045  GETTABUP  R2 = _ENV[K16('DiscoveriesWindow')]
0046  CLOSURE   R3 = closure proto10
0047  SETTABLE  R2[K26('UpdateTable')] = R3
0048  GETTABUP  R2 = _ENV[K16('DiscoveriesWindow')]
0049  CLOSURE   R3 = closure proto11
0050  SETTABLE  R2[K27('_UpdateListViewHeight')] = R3
0051  GETTABUP  R2 = _ENV[K16('DiscoveriesWindow')]
0052  CLOSURE   R3 = closure proto12
0053  SETTABLE  R2[K28('_MoveTo')] = R3
0054  GETTABUP  R2 = _ENV[K16('DiscoveriesWindow')]
0055  CLOSURE   R3 = closure proto13
0056  SETTABLE  R2[K29('OnClickJumpToEnd')] = R3
0057  GETTABUP  R2 = _ENV[K16('DiscoveriesWindow')]
0058  CLOSURE   R3 = closure proto14
0059  SETTABLE  R2[K30('TryPlayChainFinishEffect')] = R3
0060  RETURN    return R0..R-1
; ---------- proto0 [Init] ----------
  ; fn ?  line 23-68 np=1 va=0 ms=12 code=95 consts=35 upvals=1 protos=3
  ;   K[0]='m_arrDiscoveriesChainMap'
  ;   K[1]=0
  ;   K[2]=1
  ;   K[3]=4
  ;   K[4]=-1
  ;   K[5]='GM'
  ;   K[6]='ItemDataModel'
  ;   K[7]='GetDiscoveriesMap'
  ;   K[8]='math'
  ;   K[9]='max'
  ;   K[10]='GetCanRewardDiscoveriesOrder'
  ;   K[11]=nil
  ;   K[12]='m_listView'
  ;   K[13]='InitListView'
  ;   K[14]='m_dataList'
  ;   K[15]='m_mapTweens'
  ;   K[16]='EUILoaderConfigName'
  ;   K[17]='DiscoveriesWindowBottomLeft'
  ;   K[18]='m_activityEntryLoader'
  ;   K[19]='Init'
  ;   K[20]='EUILoaderType'
  ;   K[21]='DiscoveriesWindow'
  ;   K[22]='m_tabView'
  ;   K[23]='tostring'
  ;   K[24]='EventDispatcher'
  ;   K[25]='DispatchEvent'
  ;   K[26]='EEventType'
  ;   K[27]='HighlightHud'
  ;   K[28]='highlight'
  ;   K[29]=true
  ;   K[30]='hudKey'
  ;   K[31]='ESceneViewHudButtonKey'
  ;   K[32]='Gem'
  ;   K[33]='Energy'
  ;   K[34]='Coin'
  ;   upvals: _ENV
  ;   locals: self(0-95), maxListSize(3-95), bookOrderId(4-95), initTab(5-95), (for index)(8-37), (for limit)(8-37), (for step)(8-37), tab(9-36), getEntryConfigName(48-95)
  0000  NEWTABLE  R1 = {} (0 items)
  0001  SETTABLE  R0[K0('m_arrDiscoveriesChainMap')] = R1
  0002  LOADK     R1 = K1 0
  0003  LOADNIL   R2..R2 = nil
  0004  LOADK     R3 = K2 1
  0005  LOADK     R4 = K3 4
  0006  LOADK     R5 = K2 1
  0007  LOADK     R6 = K4 -1
  0008  FORPREP   forprep R4(sBx=27)   -> 36
  0009  GETTABLE  R8 = R0[K0('m_arrDiscoveriesChainMap')]
  0010  GETTABUP  R9 = _ENV[K5('GM')]
  0011  GETTABLE  R9 = R9[K6('ItemDataModel')]
  0012  SELF      R10 = R9[K7('GetDiscoveriesMap')] (self)
  0013  MOVE      R11 = R0
  0014  CALL      R9 = call(R9, 1 args, 2 rets)
  0015  TEST      if not R9 then   -> -131054
  0016  JMP       (jump)   -> 18
  0017  NEWTABLE  R9 = {} (0 items)
  0018  SETTABLE  R8[R7] = R9
  0019  GETTABUP  R8 = _ENV[K8('math')]
  0020  GETTABLE  R8 = R8[K9('max')]
  0021  MOVE      R9 = R0
  0022  GETTABLE  R10 = R0[K0('m_arrDiscoveriesChainMap')]
  0023  GETTABLE  R10 = R10[R7]
  0024  LEN       R10 = len R0
  0025  CALL      R8 = call(R8, 1 args, 2 rets)
  0026  MOVE      R1 = R0
  0027  GETTABUP  R8 = _ENV[K5('GM')]
  0028  GETTABLE  R8 = R8[K6('ItemDataModel')]
  0029  SELF      R9 = R8[K10('GetCanRewardDiscoveriesOrder')] (self)
  0030  MOVE      R10 = R0
  0031  CALL      R8 = call(R8, 1 args, 2 rets)
  0032  MOVE      R2 = R0
  0033  EQ        if R1 eq K11(nil)   -> -129746
  0034  JMP       (jump)   -> 36
  0035  MOVE      R3 = R0
  0036  FORLOOP   forloop R4(sBx=-28)   -> 9
  0037  GETTABLE  R4 = R0[K12('m_listView')]
  0038  SELF      R5 = R4[K13('InitListView')] (self)
  0039  MOVE      R6 = R0
  0040  CLOSURE   R7 = closure proto0
  0041  CALL      R4 = call(R4, 0 args, 3 rets)
  0042  NEWTABLE  R4 = {} (0 items)
  0043  SETTABLE  R0[K14('m_dataList')] = R4
  0044  NEWTABLE  R4 = {} (0 items)
  0045  SETTABLE  R0[K15('m_mapTweens')] = R4
  0046  GETTABUP  R4 = _ENV[K16('EUILoaderConfigName')]
  0047  GETTABLE  R4 = R4[K17('DiscoveriesWindowBottomLeft')]
  0048  GETTABLE  R5 = R0[K18('m_activityEntryLoader')]
  0049  SELF      R6 = R5[K19('Init')] (self)
  0050  MOVE      R7 = R0
  0051  LOADNIL   R8..R8 = nil
  0052  MOVE      R9 = R0
  0053  GETTABUP  R10 = _ENV[K20('EUILoaderType')]
  0054  GETTABLE  R10 = R10[K21('DiscoveriesWindow')]
  0055  CALL      R5 = call(R5, 0 args, 5 rets)
  0056  GETTABLE  R5 = R0[K22('m_tabView')]
  0057  SELF      R6 = R5[K19('Init')] (self)
  0058  CLOSURE   R7 = closure proto1
  0059  GETTABUP  R8 = _ENV[K23('tostring')]
  0060  MOVE      R9 = R0
  0061  CALL      R8 = call(R8, 1 args, 1 rets)
  0062  CLOSURE   R9 = closure proto2
  0063  CALL      R5 = call(R5, 0 args, 4 rets)
  0064  GETTABUP  R5 = _ENV[K24('EventDispatcher')]
  0065  GETTABLE  R5 = R5[K25('DispatchEvent')]
  0066  GETTABUP  R6 = _ENV[K26('EEventType')]
  0067  GETTABLE  R6 = R6[K27('HighlightHud')]
  0068  NEWTABLE  R7 = {} (0 items)
  0069  SETTABLE  R7[K28('highlight')] = K29(true)
  0070  GETTABUP  R8 = _ENV[K31('ESceneViewHudButtonKey')]
  0071  GETTABLE  R8 = R8[K32('Gem')]
  0072  SETTABLE  R7[K30('hudKey')] = R8
  0073  CALL      R5 = call(R5, 0 args, 2 rets)
  0074  GETTABUP  R5 = _ENV[K24('EventDispatcher')]
  0075  GETTABLE  R5 = R5[K25('DispatchEvent')]
  0076  GETTABUP  R6 = _ENV[K26('EEventType')]
  0077  GETTABLE  R6 = R6[K27('HighlightHud')]
  0078  NEWTABLE  R7 = {} (0 items)
  0079  SETTABLE  R7[K28('highlight')] = K29(true)
  0080  GETTABUP  R8 = _ENV[K31('ESceneViewHudButtonKey')]
  0081  GETTABLE  R8 = R8[K33('Energy')]
  0082  SETTABLE  R7[K30('hudKey')] = R8
  0083  CALL      R5 = call(R5, 0 args, 2 rets)
  0084  GETTABUP  R5 = _ENV[K24('EventDispatcher')]
  0085  GETTABLE  R5 = R5[K25('DispatchEvent')]
  0086  GETTABUP  R6 = _ENV[K26('EEventType')]
  0087  GETTABLE  R6 = R6[K27('HighlightHud')]
  0088  NEWTABLE  R7 = {} (0 items)
  0089  SETTABLE  R7[K28('highlight')] = K29(true)
  0090  GETTABUP  R8 = _ENV[K31('ESceneViewHudButtonKey')]
  0091  GETTABLE  R8 = R8[K34('Coin')]
  0092  SETTABLE  R7[K30('hudKey')] = R8
  0093  CALL      R5 = call(R5, 0 args, 2 rets)
  0094  RETURN    return R0..R-1
  ; ---------- proto0 [m_dataList] ----------
    ; fn ?  line 40-42 np=2 va=0 ms=6 code=7 consts=1 upvals=1 protos=0
    ;   K[0]='_OnListItemByIndex'
    ;   upvals: self
    ;   locals: listView(0-7), cellIndex(0-7)
    0000  GETUPVAL  R2 = self
    0001  SELF      R3 = R2[K0('_OnListItemByIndex')] (self)
    0002  MOVE      R4 = R0
    0003  MOVE      R5 = R0
    0004  TAILCALL  tailcall(R2, 0)
    0005  RETURN    return R2..R1
    0006  RETURN    return R0..R-1
  ; ---------- proto1 [] ----------
    ; fn ?  line 51-61 np=1 va=0 ms=4 code=24 consts=4 upvals=2 protos=0
    ;   K[0]='tonumber'
    ;   K[1]='m_nTab'
    ;   K[2]='UpdateTable'
    ;   K[3]='_TryMove'
    ;   upvals: _ENV, self
    ;   locals: tabKey(0-24)
    0000  TEST      if not R0 then   -> -131069
    0001  JMP       (jump)   -> 3
    0002  RETURN    return R0..R-1
    0003  GETTABUP  R1 = _ENV[K0('tonumber')]
    0004  MOVE      R2 = R0
    0005  CALL      R1 = call(R1, 1 args, 1 rets)
    0006  MOVE      R0 = R0
    0007  GETTABUP  R1 = self[K1('m_nTab')]
    0008  EQ        if R1 eq R1   -> -131061
    0009  JMP       (jump)   -> 20
    0010  SETTABUP  self[K1('m_nTab')] = R0
    0011  GETUPVAL  R1 = _ENV
    0012  SELF      R2 = R1[K2('UpdateTable')] (self)
    0013  GETTABUP  R3 = self[K1('m_nTab')]
    0014  CALL      R1 = call(R1, 0 args, 2 rets)
    0015  GETUPVAL  R1 = _ENV
    0016  SELF      R2 = R1[K3('_TryMove')] (self)
    0017  CALL      R1 = call(R1, 0 args, 1 rets)
    0018  LOADBOOL  R1 = true
    0019  RETURN    return R1..R0
    0020  GETUPVAL  R1 = _ENV
    0021  SELF      R2 = R1[K3('_TryMove')] (self)
    0022  CALL      R1 = call(R1, 0 args, 1 rets)
    0023  RETURN    return R0..R-1
  ; ---------- proto2 [] ----------
    ; fn ?  line 61-63 np=1 va=0 ms=5 code=8 consts=2 upvals=2 protos=0
    ;   K[0]='CanShowRedPointForTab'
    ;   K[1]='tonumber'
    ;   upvals: self, _ENV
    ;   locals: tabKey(0-8)
    0000  GETUPVAL  R1 = self
    0001  SELF      R2 = R1[K0('CanShowRedPointForTab')] (self)
    0002  GETTABUP  R3 = _ENV[K1('tonumber')]
    0003  MOVE      R4 = R0
    0004  CALL      R3 = call(R3, -1 args, 1 rets)
    0005  TAILCALL  tailcall(R1, 0)
    0006  RETURN    return R1..R0
    0007  RETURN    return R0..R-1
; ---------- proto1 [AddEventListener] ----------
  ; fn ?  line 70-73 np=1 va=0 ms=5 code=8 consts=5 upvals=1 protos=0
  ;   K[0]='EventDispatcher'
  ;   K[1]='AddListener'
  ;   K[2]='EEventType'
  ;   K[3]='DiscoveriesUpdate'
  ;   K[4]='_TryMove'
  ;   upvals: _ENV
  ;   locals: self(0-8)
  0000  GETTABUP  R1 = _ENV[K0('EventDispatcher')]
  0001  GETTABLE  R1 = R1[K1('AddListener')]
  0002  GETTABUP  R2 = _ENV[K2('EEventType')]
  0003  GETTABLE  R2 = R2[K3('DiscoveriesUpdate')]
  0004  MOVE      R3 = R0
  0005  GETTABLE  R4 = R0[K4('_TryMove')]
  0006  CALL      R1 = call(R1, 0 args, 3 rets)
  0007  RETURN    return R0..R-1
; ---------- proto2 [RemoveEventListener] ----------
  ; fn ?  line 75-77 np=1 va=0 ms=3 code=5 consts=2 upvals=1 protos=0
  ;   K[0]='EventDispatcher'
  ;   K[1]='RemoveTarget'
  ;   upvals: _ENV
  ;   locals: self(0-5)
  0000  GETTABUP  R1 = _ENV[K0('EventDispatcher')]
  0001  GETTABLE  R1 = R1[K1('RemoveTarget')]
  0002  MOVE      R2 = R0
  0003  CALL      R1 = call(R1, 0 args, 1 rets)
  0004  RETURN    return R0..R-1
; ---------- proto3 [CanShowRedPointForTab] ----------
  ; fn ?  line 79-89 np=2 va=0 ms=5 code=22 consts=7 upvals=2 protos=0
  ;   K[0]='Dish'
  ;   K[1]='GM'
  ;   K[2]='ConfigModel'
  ;   K[3]='CanShowBookByRoomTip'
  ;   K[4]='ItemDataModel'
  ;   K[5]='GetCanRewardDiscoveriesOrder'
  ;   K[6]=nil
  ;   upvals: ETabNumberKey, _ENV
  ;   locals: self(0-22), nTab(0-22), bookOrderId(16-22)
  0000  GETTABUP  R2 = ETabNumberKey[K0('Dish')]
  0001  EQ        if R0 eq R2   -> -130555
  0002  JMP       (jump)   -> 11
  0003  GETTABUP  R2 = _ENV[K1('GM')]
  0004  GETTABLE  R2 = R2[K2('ConfigModel')]
  0005  SELF      R3 = R2[K3('CanShowBookByRoomTip')] (self)
  0006  CALL      R2 = call(R2, 1 args, 1 rets)
  0007  TEST      if not R2 then   -> -131063
  0008  JMP       (jump)   -> 11
  0009  LOADBOOL  R2 = true
  0010  RETURN    return R2..R1
  0011  GETTABUP  R2 = _ENV[K1('GM')]
  0012  GETTABLE  R2 = R2[K4('ItemDataModel')]
  0013  SELF      R3 = R2[K5('GetCanRewardDiscoveriesOrder')] (self)
  0014  MOVE      R4 = R0
  0015  CALL      R2 = call(R2, 1 args, 2 rets)
  0016  EQ        if R0 eq K6(nil)   -> -129768
  0017  JMP       (jump)   -> 19
  0018  LOADBOOL  R3 = false
  0019  LOADBOOL  R3 = true
  0020  RETURN    return R3..R2
  0021  RETURN    return R0..R-1
; ---------- proto4 [_TryMove] ----------
  ; fn ?  line 91-149 np=2 va=0 ms=16 code=125 consts=36 upvals=2 protos=0
  ;   K[0]='m_content'
  ;   K[1]='DOKill'
  ;   K[2]='m_scrollRect'
  ;   K[3]='StopMovement'
  ;   K[4]='bookOrderId'
  ;   K[5]='GM'
  ;   K[6]='ItemDataModel'
  ;   K[7]='HasUnlockRewardInDiscoveriesOrder'
  ;   K[8]='TryPlayChainFinishEffect'
  ;   K[9]='chainIndex'
  ;   K[10]=0
  ;   K[11]='m_listView'
  ;   K[12]='GetShownItemByItemIndex'
  ;   K[13]='IsNull'
  ;   K[14]='gameObject'
  ;   K[15]='GetLuaTable'
  ;   K[16]='GetCellTb'
  ;   K[17]='viewport'
  ;   K[18]='InverseTransformPoint'
  ;   K[19]='transform'
  ;   K[20]='position'
  ;   K[21]='y'
  ;   K[22]=-1150
  ;   K[23]=-10
  ;   K[24]='GetCanRewardDiscoveriesOrder'
  ;   K[25]='m_nTab'
  ;   K[26]='ConfigModel'
  ;   K[27]='IsServerControlOpen'
  ;   K[28]='EGeneralConfType'
  ;   K[29]='BookByRoom'
  ;   K[30]='Dish'
  ;   K[31]='GetLastUnlockedBookOrder'
  ;   K[32]='m_tabView'
  ;   K[33]='UpdateExclaimation'
  ;   K[34]='tostring'
  ;   K[35]='MoveTo'
  ;   upvals: _ENV, ETabNumberKey
  ;   locals: self(0-125), msg(0-125), bAnimated(8-125), targetBookOrder(9-125), targetItemType(9-125), lastBookOrderId(12-125), bShouldTryMove(13-125), nextCodeInSameChain(20-65), nextCodeIndex(20-65), lastChainIndex(33-65), chainItem(37-65), lastChainTb(46-65), cellGo(50-65), relativePos(56-65)
  0000  GETTABLE  R2 = R0[K0('m_content')]
  0001  SELF      R3 = R2[K1('DOKill')] (self)
  0002  LOADBOOL  R4 = false
  0003  CALL      R2 = call(R2, 0 args, 2 rets)
  0004  GETTABLE  R2 = R0[K2('m_scrollRect')]
  0005  SELF      R3 = R2[K3('StopMovement')] (self)
  0006  CALL      R2 = call(R2, 0 args, 1 rets)
  0007  LOADBOOL  R2 = true
  0008  LOADNIL   R3..R3 = nil
  0009  TESTSET   if R0 then R5   -> -130549
  0010  JMP       (jump)   -> 12
  0011  GETTABLE  R5 = R1[K4('bookOrderId')]
  0012  NOT       R6 = not R0
  0013  TEST      if not R6 then   -> -131056
  0014  JMP       (jump)   -> 65
  0015  GETTABUP  R7 = _ENV[K5('GM')]
  0016  GETTABLE  R7 = R7[K6('ItemDataModel')]
  0017  SELF      R8 = R7[K7('HasUnlockRewardInDiscoveriesOrder')] (self)
  0018  MOVE      R9 = R0
  0019  CALL      R7 = call(R7, 2 args, 2 rets)
  0020  TEST      if not R7 then   -> -131049
  0021  JMP       (jump)   -> 27
  0022  LOADBOOL  R6 = true
  0023  SELF      R10 = R0[K8('TryPlayChainFinishEffect')] (self)
  0024  MOVE      R11 = R0
  0025  CALL      R9 = call(R9, 0 args, 2 rets)
  0026  JMP       (jump)   -> 65
  0027  TEST      if not R1 then   -> -131043
  0028  JMP       (jump)   -> 32
  0029  GETTABLE  R9 = R1[K9('chainIndex')]
  0030  TEST      if not R9 then   -> -131039
  0031  JMP       (jump)   -> 33
  0032  LOADK     R9 = K10 0
  0033  GETTABLE  R10 = R0[K11('m_listView')]
  0034  SELF      R11 = R10[K12('GetShownItemByItemIndex')] (self)
  0035  MOVE      R12 = R0
  0036  CALL      R10 = call(R10, 1 args, 2 rets)
  0037  TEST      if not R10 then   -> -131033
  0038  JMP       (jump)   -> 65
  0039  SELF      R12 = R10[K13('IsNull')] (self)
  0040  CALL      R11 = call(R11, 1 args, 1 rets)
  0041  TEST      if not R11 then   -> -131028
  0042  JMP       (jump)   -> 65
  0043  GETTABLE  R11 = R10[K14('gameObject')]
  0044  SELF      R12 = R11[K15('GetLuaTable')] (self)
  0045  CALL      R11 = call(R11, 1 args, 1 rets)
  0046  SELF      R13 = R11[K16('GetCellTb')] (self)
  0047  MOVE      R14 = R0
  0048  CALL      R12 = call(R12, 1 args, 2 rets)
  0049  GETTABLE  R12 = R12[K14('gameObject')]
  0050  GETTABLE  R13 = R0[K2('m_scrollRect')]
  0051  GETTABLE  R13 = R13[K17('viewport')]
  0052  SELF      R14 = R13[K18('InverseTransformPoint')] (self)
  0053  GETTABLE  R15 = R12[K19('transform')]
  0054  GETTABLE  R15 = R15[K20('position')]
  0055  CALL      R13 = call(R13, 1 args, 2 rets)
  0056  GETTABLE  R14 = R13[K21('y')]
  0057  LE        if R1 le K22(-1150)   -> -123567
  0058  JMP       (jump)   -> 62
  0059  GETTABLE  R14 = R13[K21('y')]
  0060  LE        if R0 le R14   -> 11852
  0061  JMP       (jump)   -> 65
  0062  LOADBOOL  R6 = true
  0063  MOVE      R3 = R0
  0064  MOVE      R4 = R0
  0065  TEST      if not R6 then   -> -131005
  0066  JMP       (jump)   -> 106
  0067  TEST      if not R3 then   -> -131002
  0068  JMP       (jump)   -> 106
  0069  GETTABUP  R7 = _ENV[K5('GM')]
  0070  GETTABLE  R7 = R7[K6('ItemDataModel')]
  0071  SELF      R8 = R7[K24('GetCanRewardDiscoveriesOrder')] (self)
  0072  GETTABLE  R9 = R0[K25('m_nTab')]
  0073  CALL      R7 = call(R7, 2 args, 2 rets)
  0074  MOVE      R4 = R0
  0075  MOVE      R3 = R0
  0076  GETTABUP  R7 = _ENV[K5('GM')]
  0077  GETTABLE  R7 = R7[K26('ConfigModel')]
  0078  SELF      R8 = R7[K27('IsServerControlOpen')] (self)
  0079  GETTABUP  R9 = _ENV[K28('EGeneralConfType')]
  0080  GETTABLE  R9 = R9[K29('BookByRoom')]
  0081  CALL      R7 = call(R7, 1 args, 2 rets)
  0082  TEST      if not R7 then   -> -130988
  0083  JMP       (jump)   -> 106
  0084  TEST      if not R3 then   -> -130985
  0085  JMP       (jump)   -> 106
  0086  TEST      if not R5 then   -> -130983
  0087  JMP       (jump)   -> 106
  0088  GETTABLE  R7 = R0[K25('m_nTab')]
  0089  GETTABUP  R8 = ETabNumberKey[K30('Dish')]
  0090  EQ        if R0 eq R8   -> -127388
  0091  JMP       (jump)   -> 106
  0092  LOADBOOL  R2 = false
  0093  GETTABUP  R7 = _ENV[K5('GM')]
  0094  GETTABLE  R7 = R7[K6('ItemDataModel')]
  0095  SELF      R8 = R7[K31('GetLastUnlockedBookOrder')] (self)
  0096  GETTABLE  R9 = R0[K25('m_nTab')]
  0097  CALL      R7 = call(R7, 2 args, 2 rets)
  0098  MOVE      R4 = R0
  0099  MOVE      R3 = R0
  0100  GETTABLE  R7 = R0[K32('m_tabView')]
  0101  SELF      R8 = R7[K33('UpdateExclaimation')] (self)
  0102  GETTABUP  R9 = _ENV[K34('tostring')]
  0103  GETTABLE  R10 = R0[K25('m_nTab')]
  0104  CALL      R9 = call(R9, -1 args, 1 rets)
  0105  CALL      R7 = call(R7, 0 args, -1 rets)
  0106  TEST      if not R3 then   -> -130964
  0107  JMP       (jump)   -> 118
  0108  TEST      if not R6 then   -> -130962
  0109  JMP       (jump)   -> 118
  0110  SELF      R8 = R0[K35('MoveTo')] (self)
  0111  MOVE      R9 = R0
  0112  MOVE      R10 = R0
  0113  MOVE      R11 = R0
  0114  CALL      R7 = call(R7, 1 args, 4 rets)
  0115  TEST      if not R7 then   -> -130955
  0116  JMP       (jump)   -> 118
  0117  JMP       (jump)   -> 124
  0118  GETTABLE  R7 = R0[K32('m_tabView')]
  0119  SELF      R8 = R7[K33('UpdateExclaimation')] (self)
  0120  GETTABUP  R9 = _ENV[K34('tostring')]
  0121  GETTABLE  R10 = R0[K25('m_nTab')]
  0122  CALL      R9 = call(R9, -1 args, 1 rets)
  0123  CALL      R7 = call(R7, 0 args, -1 rets)
  0124  RETURN    return R0..R-1
; ---------- proto5 [OnCloseView] ----------
  ; fn ?  line 151-162 np=2 va=0 ms=9 code=48 consts=19 upvals=1 protos=0
  ;   K[0]='pairs'
  ;   K[1]='m_mapTweens'
  ;   K[2]='Kill'
  ;   K[3]=nil
  ;   K[4]='BaseWindow'
  ;   K[5]='OnCloseView'
  ;   K[6]='EventDispatcher'
  ;   K[7]='DispatchEvent'
  ;   K[8]='EEventType'
  ;   K[9]='HighlightHud'
  ;   K[10]='highlight'
  ;   K[11]=false
  ;   K[12]='hudKey'
  ;   K[13]='ESceneViewHudButtonKey'
  ;   K[14]='Gem'
  ;   K[15]='Energy'
  ;   K[16]='Coin'
  ;   K[17]='m_activityEntryLoader'
  ;   K[18]='PlayEntryHide'
  ;   upvals: _ENV
  ;   locals: self(0-48), bWithoutAnimation(0-48), (for generator)(3-8), (for state)(3-8), (for control)(3-8), seq(4-6), _(4-6)
  0000  GETTABUP  R2 = _ENV[K0('pairs')]
  0001  GETTABLE  R3 = R0[K1('m_mapTweens')]
  0002  CALL      R2 = call(R2, 3 args, 1 rets)
  0003  JMP       (jump)   -> 6
  0004  SELF      R8 = R5[K2('Kill')] (self)
  0005  CALL      R7 = call(R7, 0 args, 1 rets)
  0006  TFORCALL  tforcall R2
  0007  TFORLOOP  tforloop R4(sBx=-4)   -> 4
  0008  SETTABLE  R0[K1('m_mapTweens')] = K3(nil)
  0009  GETTABUP  R2 = _ENV[K4('BaseWindow')]
  0010  GETTABLE  R2 = R2[K5('OnCloseView')]
  0011  MOVE      R3 = R0
  0012  MOVE      R4 = R0
  0013  CALL      R2 = call(R2, 0 args, 2 rets)
  0014  GETTABUP  R2 = _ENV[K6('EventDispatcher')]
  0015  GETTABLE  R2 = R2[K7('DispatchEvent')]
  0016  GETTABUP  R3 = _ENV[K8('EEventType')]
  0017  GETTABLE  R3 = R3[K9('HighlightHud')]
  0018  NEWTABLE  R4 = {} (0 items)
  0019  SETTABLE  R4[K10('highlight')] = K11(false)
  0020  GETTABUP  R5 = _ENV[K13('ESceneViewHudButtonKey')]
  0021  GETTABLE  R5 = R5[K14('Gem')]
  0022  SETTABLE  R4[K12('hudKey')] = R5
  0023  CALL      R2 = call(R2, 0 args, 2 rets)
  0024  GETTABUP  R2 = _ENV[K6('EventDispatcher')]
  0025  GETTABLE  R2 = R2[K7('DispatchEvent')]
  0026  GETTABUP  R3 = _ENV[K8('EEventType')]
  0027  GETTABLE  R3 = R3[K9('HighlightHud')]
  0028  NEWTABLE  R4 = {} (0 items)
  0029  SETTABLE  R4[K10('highlight')] = K11(false)
  0030  GETTABUP  R5 = _ENV[K13('ESceneViewHudButtonKey')]
  0031  GETTABLE  R5 = R5[K15('Energy')]
  0032  SETTABLE  R4[K12('hudKey')] = R5
  0033  CALL      R2 = call(R2, 0 args, 2 rets)
  0034  GETTABUP  R2 = _ENV[K6('EventDispatcher')]
  0035  GETTABLE  R2 = R2[K7('DispatchEvent')]
  0036  GETTABUP  R3 = _ENV[K8('EEventType')]
  0037  GETTABLE  R3 = R3[K9('HighlightHud')]
  0038  NEWTABLE  R4 = {} (0 items)
  0039  SETTABLE  R4[K10('highlight')] = K11(false)
  0040  GETTABUP  R5 = _ENV[K13('ESceneViewHudButtonKey')]
  0041  GETTABLE  R5 = R5[K16('Coin')]
  0042  SETTABLE  R4[K12('hudKey')] = R5
  0043  CALL      R2 = call(R2, 0 args, 2 rets)
  0044  GETTABLE  R2 = R0[K17('m_activityEntryLoader')]
  0045  SELF      R3 = R2[K18('PlayEntryHide')] (self)
  0046  CALL      R2 = call(R2, 0 args, 1 rets)
  0047  RETURN    return R0..R-1
; ---------- proto6 [_AddTween] ----------
  ; fn ?  line 164-170 np=2 va=0 ms=4 code=9 consts=3 upvals=0 protos=0
  ;   K[0]='m_mapTweens'
  ;   K[1]='Kill'
  ;   K[2]=true
  ;   locals: self(0-9), tween(0-9)
  0000  GETTABLE  R2 = R0[K0('m_mapTweens')]
  0001  TEST      if not R2 then   -> -131068
  0002  JMP       (jump)   -> 6
  0003  SELF      R3 = R1[K1('Kill')] (self)
  0004  CALL      R2 = call(R2, 0 args, 1 rets)
  0005  JMP       (jump)   -> 8
  0006  GETTABLE  R2 = R0[K0('m_mapTweens')]
  0007  SETTABLE  R2[R1] = K2(true)
  0008  RETURN    return R0..R-1
; ---------- proto7 [_OnListItemByIndex] ----------
  ; fn ?  line 172-182 np=3 va=0 ms=11 code=20 consts=9 upvals=0 protos=0
  ;   K[0]='m_dataList'
  ;   K[1]=1
  ;   K[2]='NewListViewItem'
  ;   K[3]='DiscoveriesChain'
  ;   K[4]='gameObject'
  ;   K[5]='GetLuaTable'
  ;   K[6]='Init'
  ;   K[7]='order'
  ;   K[8]='title'
  ;   locals: self(0-20), listView(0-20), index(0-20), data(3-20), item(10-20), chainTb(13-20)
  0000  GETTABLE  R3 = R0[K0('m_dataList')]
  0001  ADD       R4 = K1(1) add R2
  0002  GETTABLE  R3 = R3[R4]
  0003  TEST      if not R3 then   -> -131066
  0004  JMP       (jump)   -> 7
  0005  LOADNIL   R4..R4 = nil
  0006  RETURN    return R4..R3
  0007  SELF      R5 = R1[K2('NewListViewItem')] (self)
  0008  LOADK     R6 = K3 'DiscoveriesChain'
  0009  CALL      R4 = call(R4, 1 args, 2 rets)
  0010  GETTABLE  R5 = R4[K4('gameObject')]
  0011  SELF      R6 = R5[K5('GetLuaTable')] (self)
  0012  CALL      R5 = call(R5, 1 args, 1 rets)
  0013  SELF      R7 = R5[K6('Init')] (self)
  0014  GETTABLE  R8 = R3[K7('order')]
  0015  GETTABLE  R9 = R3[K8('title')]
  0016  MOVE      R10 = R0
  0017  CALL      R6 = call(R6, 0 args, 4 rets)
  0018  RETURN    return R4..R3
  0019  RETURN    return R0..R-1
; ---------- proto8 [MoveTo] ----------
  ; fn ?  line 184-199 np=4 va=0 ms=15 code=30 consts=8 upvals=1 protos=0
  ;   K[0]='ipairs'
  ;   K[1]='m_dataList'
  ;   K[2]='order'
  ;   K[3]='m_curChainIndex'
  ;   K[4]='GM'
  ;   K[5]='ItemDataModel'
  ;   K[6]='GetItemIndexInDiscoveriesOrder'
  ;   K[7]='_MoveTo'
  ;   upvals: _ENV
  ;   locals: self(0-30), targetBookOrder(0-30), targetItemType(0-30), bAnimated(0-30), (for generator)(3-27), (for state)(3-27), (for control)(3-27), chainIndex(4-25), v(4-25), itemIndex(9-25)
  0000  GETTABUP  R4 = _ENV[K0('ipairs')]
  0001  GETTABLE  R5 = R0[K1('m_dataList')]
  0002  CALL      R4 = call(R4, 3 args, 1 rets)
  0003  JMP       (jump)   -> 25
  0004  GETTABLE  R9 = R8[K2('order')]
  0005  EQ        if R0 eq R1   -> -126456
  0006  JMP       (jump)   -> 25
  0007  SETTABLE  R0[K3('m_curChainIndex')] = R7
  0008  LOADNIL   R9..R9 = nil
  0009  TEST      if not R2 then   -> -131061
  0010  JMP       (jump)   -> 18
  0011  GETTABUP  R10 = _ENV[K4('GM')]
  0012  GETTABLE  R10 = R10[K5('ItemDataModel')]
  0013  SELF      R11 = R10[K6('GetItemIndexInDiscoveriesOrder')] (self)
  0014  MOVE      R12 = R0
  0015  MOVE      R13 = R0
  0016  CALL      R10 = call(R10, 1 args, 3 rets)
  0017  MOVE      R9 = R0
  0018  SELF      R11 = R0[K7('_MoveTo')] (self)
  0019  MOVE      R12 = R0
  0020  MOVE      R13 = R0
  0021  MOVE      R14 = R0
  0022  CALL      R10 = call(R10, 0 args, 4 rets)
  0023  LOADBOOL  R10 = true
  0024  RETURN    return R10..R9
  0025  TFORCALL  tforcall R4
  0026  TFORLOOP  tforloop R6(sBx=-23)   -> 4
  0027  LOADBOOL  R4 = false
  0028  RETURN    return R4..R3
  0029  RETURN    return R0..R-1
; ---------- proto9 [GetCanRewardCell] ----------
  ; fn ?  line 201-218 np=1 va=0 ms=11 code=41 consts=15 upvals=1 protos=0
  ;   K[0]='m_curChainIndex'
  ;   K[1]='m_listView'
  ;   K[2]='GetShownItemByIndex'
  ;   K[3]=1
  ;   K[4]='gameObject'
  ;   K[5]='GetLuaTable'
  ;   K[6]='m_list'
  ;   K[7]='ipairs'
  ;   K[8]='GM'
  ;   K[9]='ItemDataModel'
  ;   K[10]='GetUnlockState'
  ;   K[11]='m_type'
  ;   K[12]='EItemUnlockState'
  ;   K[13]='Unlocked'
  ;   K[14]='transform'
  ;   upvals: _ENV
  ;   locals: self(0-41), curChainObj(10-41), curChainTb(15-38), (for generator)(23-38), (for state)(23-38), (for control)(23-38), _(24-36), item(24-36)
  0000  GETTABLE  R1 = R0[K0('m_curChainIndex')]
  0001  TEST      if not R1 then   -> -131068
  0002  JMP       (jump)   -> 5
  0003  LOADNIL   R1..R1 = nil
  0004  RETURN    return R1..R0
  0005  GETTABLE  R1 = R0[K1('m_listView')]
  0006  SELF      R2 = R1[K2('GetShownItemByIndex')] (self)
  0007  GETTABLE  R3 = R0[K0('m_curChainIndex')]
  0008  SUB       R3 = K3(1) sub R3
  0009  CALL      R1 = call(R1, 1 args, 2 rets)
  0010  TEST      if not R1 then   -> -131060
  0011  JMP       (jump)   -> 38
  0012  GETTABLE  R2 = R1[K4('gameObject')]
  0013  SELF      R3 = R2[K5('GetLuaTable')] (self)
  0014  CALL      R2 = call(R2, 1 args, 1 rets)
  0015  TEST      if not R2 then   -> -131055
  0016  JMP       (jump)   -> 38
  0017  GETTABLE  R3 = R2[K6('m_list')]
  0018  TEST      if not R3 then   -> -131052
  0019  JMP       (jump)   -> 38
  0020  GETTABUP  R3 = _ENV[K7('ipairs')]
  0021  GETTABLE  R4 = R2[K6('m_list')]
  0022  CALL      R3 = call(R3, 3 args, 1 rets)
  0023  JMP       (jump)   -> 36
  0024  GETTABUP  R8 = _ENV[K8('GM')]
  0025  GETTABLE  R8 = R8[K9('ItemDataModel')]
  0026  SELF      R9 = R8[K10('GetUnlockState')] (self)
  0027  GETTABLE  R10 = R7[K11('m_type')]
  0028  CALL      R8 = call(R8, 1 args, 2 rets)
  0029  GETTABUP  R9 = _ENV[K12('EItemUnlockState')]
  0030  GETTABLE  R9 = R9[K13('Unlocked')]
  0031  EQ        if R0 eq R9   -> -126934
  0032  JMP       (jump)   -> 36
  0033  GETTABLE  R8 = R7[K4('gameObject')]
  0034  GETTABLE  R8 = R8[K14('transform')]
  0035  RETURN    return R8..R7
  0036  TFORCALL  tforcall R3
  0037  TFORLOOP  tforloop R5(sBx=-14)   -> 24
  0038  LOADNIL   R2..R2 = nil
  0039  RETURN    return R2..R1
  0040  RETURN    return R0..R-1
; ---------- proto10 [UpdateTable] ----------
  ; fn ?  line 220-237 np=2 va=0 ms=6 code=44 consts=22 upvals=2 protos=0
  ;   K[0]='m_dataList'
  ;   K[1]='m_arrDiscoveriesChainMap'
  ;   K[2]='m_listView'
  ;   K[3]='SetListItemCount'
  ;   K[4]='RefreshAllShownItem'
  ;   K[5]='_UpdateListViewHeight'
  ;   K[6]='Dish'
  ;   K[7]='GM'
  ;   K[8]='ConfigModel'
  ;   K[9]='CanShowBookByRoomTip'
  ;   K[10]='MiscModel'
  ;   K[11]='Set'
  ;   K[12]='EMiscKey'
  ;   K[13]='SeenBookByRoom'
  ;   K[14]=1
  ;   K[15]='UIManager'
  ;   K[16]='ShowPromptWithKey'
  ;   K[17]='bookbyroom_tip'
  ;   K[18]='EventDispatcher'
  ;   K[19]='DispatchEvent'
  ;   K[20]='EEventType'
  ;   K[21]='DiscoveriesUpdate'
  ;   upvals: ETabNumberKey, _ENV
  ;   locals: self(0-44), tab(0-44)
  0000  GETTABLE  R2 = R0[K1('m_arrDiscoveriesChainMap')]
  0001  GETTABLE  R2 = R2[R1]
  0002  TEST      if not R2 then   -> -131067
  0003  JMP       (jump)   -> 5
  0004  NEWTABLE  R2 = {} (0 items)
  0005  SETTABLE  R0[K0('m_dataList')] = R2
  0006  GETTABLE  R2 = R0[K2('m_listView')]
  0007  SELF      R3 = R2[K3('SetListItemCount')] (self)
  0008  GETTABLE  R4 = R0[K0('m_dataList')]
  0009  LEN       R4 = len R0
  0010  LOADBOOL  R5 = true
  0011  CALL      R2 = call(R2, 0 args, 3 rets)
  0012  GETTABLE  R2 = R0[K2('m_listView')]
  0013  SELF      R3 = R2[K4('RefreshAllShownItem')] (self)
  0014  CALL      R2 = call(R2, 0 args, 1 rets)
  0015  SELF      R3 = R0[K5('_UpdateListViewHeight')] (self)
  0016  CALL      R2 = call(R2, 0 args, 1 rets)
  0017  GETTABUP  R2 = ETabNumberKey[K6('Dish')]
  0018  EQ        if R0 eq R2   -> -130538
  0019  JMP       (jump)   -> 43
  0020  GETTABUP  R2 = _ENV[K7('GM')]
  0021  GETTABLE  R2 = R2[K8('ConfigModel')]
  0022  SELF      R3 = R2[K9('CanShowBookByRoomTip')] (self)
  0023  CALL      R2 = call(R2, 1 args, 1 rets)
  0024  TEST      if not R2 then   -> -131046
  0025  JMP       (jump)   -> 43
  0026  GETTABUP  R2 = _ENV[K7('GM')]
  0027  GETTABLE  R2 = R2[K10('MiscModel')]
  0028  SELF      R3 = R2[K11('Set')] (self)
  0029  GETTABUP  R4 = _ENV[K12('EMiscKey')]
  0030  GETTABLE  R4 = R4[K13('SeenBookByRoom')]
  0031  LOADK     R5 = K14 1
  0032  CALL      R2 = call(R2, 0 args, 3 rets)
  0033  GETTABUP  R2 = _ENV[K7('GM')]
  0034  GETTABLE  R2 = R2[K15('UIManager')]
  0035  SELF      R3 = R2[K16('ShowPromptWithKey')] (self)
  0036  LOADK     R4 = K17 'bookbyroom_tip'
  0037  CALL      R2 = call(R2, 0 args, 2 rets)
  0038  GETTABUP  R2 = _ENV[K18('EventDispatcher')]
  0039  GETTABLE  R2 = R2[K19('DispatchEvent')]
  0040  GETTABUP  R3 = _ENV[K20('EEventType')]
  0041  GETTABLE  R3 = R3[K21('DiscoveriesUpdate')]
  0042  CALL      R2 = call(R2, 0 args, 1 rets)
  0043  RETURN    return R0..R-1
; ---------- proto11 [_UpdateListViewHeight] ----------
  ; fn ?  line 239-253 np=1 va=0 ms=13 code=30 consts=13 upvals=1 protos=0
  ;   K[0]='GM'
  ;   K[1]='ItemDataModel'
  ;   K[2]=1
  ;   K[3]='m_dataList'
  ;   K[4]='order'
  ;   K[5]='GetDiscoveriesItemsByOrder'
  ;   K[6]=3
  ;   K[7]=4
  ;   K[8]=189
  ;   K[9]=75
  ;   K[10]='m_listView'
  ;   K[11]='SetItemSize'
  ;   K[12]='UpdateContentSize'
  ;   upvals: _ENV
  ;   locals: self(0-30), height(1-30), items(1-30), bookOrderId(1-30), itemDataModel(3-30), (for index)(7-26), (for limit)(7-26), (for step)(7-26), i(8-25)
  0000  LOADNIL   R1..R1 = nil
  0001  GETTABUP  R4 = _ENV[K0('GM')]
  0002  GETTABLE  R4 = R4[K1('ItemDataModel')]
  0003  LOADK     R5 = K2 1
  0004  GETTABLE  R6 = R0[K3('m_dataList')]
  0005  LEN       R6 = len R0
  0006  LOADK     R7 = K2 1
  0007  FORPREP   forprep R5(sBx=17)   -> 25
  0008  GETTABLE  R9 = R0[K3('m_dataList')]
  0009  GETTABLE  R9 = R9[R8]
  0010  GETTABLE  R3 = R9[K4('order')]
  0011  SELF      R10 = R4[K5('GetDiscoveriesItemsByOrder')] (self)
  0012  MOVE      R11 = R0
  0013  CALL      R9 = call(R9, 1 args, 2 rets)
  0014  MOVE      R2 = R0
  0015  LEN       R9 = len R0
  0016  ADD       R9 = K6(3) add R9
  0017  IDIV      R9 = K7(4) idiv R9
  0018  MUL       R9 = R9 mul K8(189)
  0019  ADD       R1 = R9 add K9(75)
  0020  GETTABLE  R9 = R0[K10('m_listView')]
  0021  SELF      R10 = R9[K11('SetItemSize')] (self)
  0022  SUB       R11 = K2(1) sub R8
  0023  MOVE      R12 = R0
  0024  CALL      R9 = call(R9, 0 args, 3 rets)
  0025  FORLOOP   forloop R5(sBx=-18)   -> 8
  0026  GETTABLE  R5 = R0[K10('m_listView')]
  0027  SELF      R6 = R5[K12('UpdateContentSize')] (self)
  0028  CALL      R5 = call(R5, 0 args, 1 rets)
  0029  RETURN    return R0..R-1
; ---------- proto12 [_MoveTo] ----------
  ; fn ?  line 255-281 np=4 va=0 ms=11 code=54 consts=23 upvals=2 protos=1
  ;   K[0]=0
  ;   K[1]='m_content'
  ;   K[2]='rect'
  ;   K[3]='height'
  ;   K[4]='parent'
  ;   K[5]='m_listView'
  ;   K[6]='GetItemPos'
  ;   K[7]=1
  ;   K[8]=4
  ;   K[9]=189
  ;   K[10]='math'
  ;   K[11]='min'
  ;   K[12]='m_scrollRect'
  ;   K[13]='velocity'
  ;   K[14]='V2Zero'
  ;   K[15]=false
  ;   K[16]='SetLocalPosY'
  ;   K[17]='DOLocalMoveY'
  ;   K[18]='SetEase'
  ;   K[19]='Ease'
  ;   K[20]='InCubic'
  ;   K[21]='OnComplete'
  ;   K[22]='_AddTween'
  ;   upvals: _ENV, MOVE_CONTAINER_TWEEN_DURATION
  ;   locals: self(0-54), chainIndex(0-54), itemIndex(0-54), bAnimated(0-54), finishPosY(1-54), scrollViewHeight(4-54), endPos(9-54), tween(47-54)
  0000  LOADK     R4 = K0 0
  0001  GETTABLE  R5 = R0[K1('m_content')]
  0002  GETTABLE  R5 = R5[K2('rect')]
  0003  GETTABLE  R5 = R5[K3('height')]
  0004  GETTABLE  R6 = R0[K1('m_content')]
  0005  GETTABLE  R6 = R6[K4('parent')]
  0006  GETTABLE  R6 = R6[K2('rect')]
  0007  GETTABLE  R6 = R6[K3('height')]
  0008  SUB       R6 = R6 sub R5
  0009  LT        if R0 lt R6   -> 17
  0010  JMP       (jump)   -> 28
  0011  GETTABLE  R7 = R0[K5('m_listView')]
  0012  SELF      R8 = R7[K6('GetItemPos')] (self)
  0013  SUB       R9 = K7(1) sub R1
  0014  CALL      R7 = call(R7, 1 args, 2 rets)
  0015  MOVE      R4 = R0
  0016  TEST      if not R2 then   -> -131054
  0017  JMP       (jump)   -> 22
  0018  SUB       R7 = K7(1) sub R2
  0019  IDIV      R7 = K8(4) idiv R7
  0020  MUL       R7 = K9(189) mul R7
  0021  ADD       R4 = R7 add R4
  0022  GETTABUP  R7 = _ENV[K10('math')]
  0023  GETTABLE  R7 = R7[K11('min')]
  0024  MOVE      R8 = R0
  0025  MOVE      R9 = R0
  0026  CALL      R7 = call(R7, 1 args, 2 rets)
  0027  MOVE      R4 = R0
  0028  GETTABLE  R7 = R0[K12('m_scrollRect')]
  0029  GETTABUP  R8 = _ENV[K14('V2Zero')]
  0030  SETTABLE  R7[K13('velocity')] = R8
  0031  EQ        if R0 eq K15(false)   -> -129232
  0032  JMP       (jump)   -> 38
  0033  GETTABLE  R7 = R0[K1('m_content')]
  0034  SELF      R8 = R7[K16('SetLocalPosY')] (self)
  0035  MOVE      R9 = R0
  0036  CALL      R7 = call(R7, 0 args, 2 rets)
  0037  RETURN    return R0..R-1
  0038  GETTABLE  R7 = R0[K1('m_content')]
  0039  SELF      R8 = R7[K17('DOLocalMoveY')] (self)
  0040  MOVE      R9 = R0
  0041  GETUPVAL  R10 = _ENV
  0042  CALL      R7 = call(R7, 1 args, 3 rets)
  0043  SELF      R8 = R7[K18('SetEase')] (self)
  0044  GETTABUP  R9 = _ENV[K19('Ease')]
  0045  GETTABLE  R9 = R9[K20('InCubic')]
  0046  CALL      R7 = call(R7, 1 args, 2 rets)
  0047  SELF      R9 = R7[K21('OnComplete')] (self)
  0048  CLOSURE   R10 = closure proto0
  0049  CALL      R8 = call(R8, 0 args, 2 rets)
  0050  SELF      R9 = R0[K22('_AddTween')] (self)
  0051  MOVE      R10 = R0
  0052  CALL      R8 = call(R8, 0 args, 2 rets)
  0053  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 275-279 np=0 va=0 ms=2 code=7 consts=2 upvals=2 protos=0
    ;   K[0]='m_mapTweens'
    ;   K[1]=nil
    ;   upvals: self, tween
    0000  GETTABUP  R0 = self[K0('m_mapTweens')]
    0001  TEST      if not R0 then   -> -131069
    0002  JMP       (jump)   -> 6
    0003  GETTABUP  R0 = self[K0('m_mapTweens')]
    0004  GETUPVAL  R1 = self
    0005  SETTABLE  R0[R1] = K1(nil)
    0006  RETURN    return R0..R-1
; ---------- proto13 [OnClickJumpToEnd] ----------
  ; fn ?  line 283-285 np=1 va=0 ms=4 code=5 consts=2 upvals=0 protos=0
  ;   K[0]='_MoveTo'
  ;   K[1]='m_dataList'
  ;   locals: self(0-5)
  0000  SELF      R2 = R0[K0('_MoveTo')] (self)
  0001  GETTABLE  R3 = R0[K1('m_dataList')]
  0002  LEN       R3 = len R0
  0003  CALL      R1 = call(R1, 0 args, 2 rets)
  0004  RETURN    return R0..R-1
; ---------- proto14 [TryPlayChainFinishEffect] ----------
  ; fn ?  line 288-298 np=2 va=0 ms=5 code=21 consts=9 upvals=1 protos=0
  ;   K[0]='GM'
  ;   K[1]='ConfigModel'
  ;   K[2]='IsServerControlOpen'
  ;   K[3]='EGeneralConfType'
  ;   K[4]='BookByRoom'
  ;   K[5]='ItemDataModel'
  ;   K[6]='IsAllUnlockedInDiscoveriesOrder'
  ;   K[7]='m_ribbonEffect'
  ;   K[8]='Play'
  ;   upvals: _ENV
  ;   locals: self(0-21), bookOrderId(0-21)
  0000  GETTABUP  R2 = _ENV[K0('GM')]
  0001  GETTABLE  R2 = R2[K1('ConfigModel')]
  0002  SELF      R3 = R2[K2('IsServerControlOpen')] (self)
  0003  GETTABUP  R4 = _ENV[K3('EGeneralConfType')]
  0004  GETTABLE  R4 = R4[K4('BookByRoom')]
  0005  CALL      R2 = call(R2, 1 args, 2 rets)
  0006  TEST      if not R2 then   -> -131063
  0007  JMP       (jump)   -> 9
  0008  RETURN    return R0..R-1
  0009  GETTABUP  R2 = _ENV[K0('GM')]
  0010  GETTABLE  R2 = R2[K5('ItemDataModel')]
  0011  SELF      R3 = R2[K6('IsAllUnlockedInDiscoveriesOrder')] (self)
  0012  MOVE      R4 = R0
  0013  CALL      R2 = call(R2, 1 args, 2 rets)
  0014  TEST      if not R2 then   -> -131055
  0015  JMP       (jump)   -> 17
  0016  RETURN    return R0..R-1
  0017  GETTABLE  R2 = R0[K7('m_ribbonEffect')]
  0018  SELF      R3 = R2[K8('Play')] (self)
  0019  CALL      R2 = call(R2, 0 args, 1 rets)
  0020  RETURN    return R0..R-1
