# UI_Window_ItemDetail_ItemDetailWindow_468.luac
; fn @ItemDetailWindow.lua  line 0-0 np=0 va=1 ms=3 code=82 consts=64 upvals=1 protos=16
;   K[0]='ItemDetailWindowMode'
;   K[1]='Normal'
;   K[2]=1
;   K[3]='Order'
;   K[4]=2
;   K[5]='EItemDetailWindowRefer'
;   K[6]='Inventory'
;   K[7]='in_itm'
;   K[8]='BoardInfoBar'
;   K[9]='bd_if_b'
;   K[10]='ItemDetailWin'
;   K[11]='itd_win'
;   K[12]='DishDetailWin'
;   K[13]='itg_win'
;   K[14]='odr_ic'
;   K[15]='Bundle'
;   K[16]='iap_rwd'
;   K[17]='Shop'
;   K[18]='shop'
;   K[19]='RewardDisplay'
;   K[20]='rwd'
;   K[21]='Discovery'
;   K[22]='dcv'
;   K[23]='UIBoard'
;   K[24]='ui_b'
;   K[25]='ItemTutorial'
;   K[26]='i_tt'
;   K[27]='CookTip'
;   K[28]='ck_tp'
;   K[29]='PaperBox'
;   K[30]='pp_b'
;   K[31]='Quest'
;   K[32]='quest'
;   K[33]='RecipeColllect'
;   K[34]='rc'
;   K[35]='ItemDetailWindow'
;   K[36]='setmetatable'
;   K[37]='canClickWindowMask'
;   K[38]=true
;   K[39]='windowsArray'
;   K[40]='BaseWindow'
;   K[41]='__index'
;   K[42]=4
;   K[43]='Open'
;   K[44]='ItemDetailWindow'
;   K[45]='ShowDescInfo'
;   K[46]='UpdateView'
;   K[47]='CloseAll'
;   K[48]='ItemDetailWindow'
;   K[49]='Init'
;   K[50]='ItemDetailWindow'
;   K[51]='OnCloseView'
;   K[52]='ItemDetailWindow'
;   K[53]='OnCloseFinish'
;   K[54]='ItemDetailWindow'
;   K[55]='_UpdateView'
;   K[56]='UpdateCookContent'
;   K[57]='GetCookGridItemByIndex'
;   K[58]='OnDestroy'
;   K[59]='_AddCell'
;   K[60]='_UpdateTestMsg'
;   K[61]='_UpdateHotSaleDisplay'
;   K[62]='OnClickTip'
;   K[63]='OnClickCell'
;   upvals: _ENV
;   locals: CELL_COUNT_PER_ROW(33-82)
0000  NEWTABLE  R0 = {} (0 items)
0001  SETTABLE  R0[K1('Normal')] = K2(1)
0002  SETTABLE  R0[K3('Order')] = K4(2)
0003  SETTABUP  _ENV[K0('ItemDetailWindowMode')] = R0
0004  NEWTABLE  R0 = {} (0 items)
0005  SETTABLE  R0[K6('Inventory')] = K7('in_itm')
0006  SETTABLE  R0[K8('BoardInfoBar')] = K9('bd_if_b')
0007  SETTABLE  R0[K10('ItemDetailWin')] = K11('itd_win')
0008  SETTABLE  R0[K12('DishDetailWin')] = K13('itg_win')
0009  SETTABLE  R0[K3('Order')] = K14('odr_ic')
0010  SETTABLE  R0[K15('Bundle')] = K16('iap_rwd')
0011  SETTABLE  R0[K17('Shop')] = K18('shop')
0012  SETTABLE  R0[K19('RewardDisplay')] = K20('rwd')
0013  SETTABLE  R0[K21('Discovery')] = K22('dcv')
0014  SETTABLE  R0[K23('UIBoard')] = K24('ui_b')
0015  SETTABLE  R0[K25('ItemTutorial')] = K26('i_tt')
0016  SETTABLE  R0[K27('CookTip')] = K28('ck_tp')
0017  SETTABLE  R0[K29('PaperBox')] = K30('pp_b')
0018  SETTABLE  R0[K31('Quest')] = K32('quest')
0019  SETTABLE  R0[K33('RecipeColllect')] = K34('rc')
0020  SETTABUP  _ENV[K5('EItemDetailWindowRefer')] = R0
0021  GETTABUP  R0 = _ENV[K36('setmetatable')]
0022  NEWTABLE  R1 = {} (0 items)
0023  SETTABLE  R1[K37('canClickWindowMask')] = K38(true)
0024  NEWTABLE  R2 = {} (0 items)
0025  SETTABLE  R1[K39('windowsArray')] = R2
0026  GETTABUP  R2 = _ENV[K40('BaseWindow')]
0027  CALL      R0 = call(R0, 1 args, 2 rets)
0028  SETTABUP  _ENV[K35('ItemDetailWindow')] = R0
0029  GETTABUP  R0 = _ENV[K35('ItemDetailWindow')]
0030  GETTABUP  R1 = _ENV[K35('ItemDetailWindow')]
0031  SETTABLE  R0[K41('__index')] = R1
0032  LOADK     R0 = K42 4
0033  GETTABUP  R1 = _ENV[K35('ItemDetailWindow')]
0034  CLOSURE   R2 = closure proto0
0035  SETTABLE  R1[K43('Open')] = R2
0036  GETTABUP  R1 = _ENV[K44('ItemDetailWindow')]
0037  CLOSURE   R2 = closure proto1
0038  SETTABLE  R1[K45('ShowDescInfo')] = R2
0039  GETTABUP  R1 = _ENV[K44('ItemDetailWindow')]
0040  CLOSURE   R2 = closure proto2
0041  SETTABLE  R1[K46('UpdateView')] = R2
0042  GETTABUP  R1 = _ENV[K44('ItemDetailWindow')]
0043  CLOSURE   R2 = closure proto3
0044  SETTABLE  R1[K47('CloseAll')] = R2
0045  GETTABUP  R1 = _ENV[K48('ItemDetailWindow')]
0046  CLOSURE   R2 = closure proto4
0047  SETTABLE  R1[K49('Init')] = R2
0048  GETTABUP  R1 = _ENV[K50('ItemDetailWindow')]
0049  CLOSURE   R2 = closure proto5
0050  SETTABLE  R1[K51('OnCloseView')] = R2
0051  GETTABUP  R1 = _ENV[K52('ItemDetailWindow')]
0052  CLOSURE   R2 = closure proto6
0053  SETTABLE  R1[K53('OnCloseFinish')] = R2
0054  GETTABUP  R1 = _ENV[K54('ItemDetailWindow')]
0055  CLOSURE   R2 = closure proto7
0056  SETTABLE  R1[K55('_UpdateView')] = R2
0057  GETTABUP  R1 = _ENV[K54('ItemDetailWindow')]
0058  CLOSURE   R2 = closure proto8
0059  SETTABLE  R1[K56('UpdateCookContent')] = R2
0060  GETTABUP  R1 = _ENV[K54('ItemDetailWindow')]
0061  CLOSURE   R2 = closure proto9
0062  SETTABLE  R1[K57('GetCookGridItemByIndex')] = R2
0063  GETTABUP  R1 = _ENV[K54('ItemDetailWindow')]
0064  CLOSURE   R2 = closure proto10
0065  SETTABLE  R1[K58('OnDestroy')] = R2
0066  GETTABUP  R1 = _ENV[K54('ItemDetailWindow')]
0067  CLOSURE   R2 = closure proto11
0068  SETTABLE  R1[K59('_AddCell')] = R2
0069  GETTABUP  R1 = _ENV[K54('ItemDetailWindow')]
0070  CLOSURE   R2 = closure proto12
0071  SETTABLE  R1[K60('_UpdateTestMsg')] = R2
0072  GETTABUP  R1 = _ENV[K54('ItemDetailWindow')]
0073  CLOSURE   R2 = closure proto13
0074  SETTABLE  R1[K61('_UpdateHotSaleDisplay')] = R2
0075  GETTABUP  R1 = _ENV[K54('ItemDetailWindow')]
0076  CLOSURE   R2 = closure proto14
0077  SETTABLE  R1[K62('OnClickTip')] = R2
0078  GETTABUP  R1 = _ENV[K54('ItemDetailWindow')]
0079  CLOSURE   R2 = closure proto15
0080  SETTABLE  R1[K63('OnClickCell')] = R2
0081  RETURN    return R0..R-1
; ---------- proto0 [Open] ----------
  ; fn ?  line 36-46 np=3 va=1 ms=11 code=65 consts=14 upvals=1 protos=0
  ;   K[0]='GM'
  ;   K[1]='ItemDataModel'
  ;   K[2]='GetModelConfig'
  ;   K[3]='IsDishes'
  ;   K[4]='UIManager'
  ;   K[5]='OpenView'
  ;   K[6]='UIPrefabConfigName'
  ;   K[7]='ItemDishDetailWindow'
  ;   K[8]='BoosterType'
  ;   K[9]='Split'
  ;   K[10]='LevelDownDescWindow'
  ;   K[11]='ItemDetailWindow'
  ;   K[12]='ShowDescInfo'
  ;   K[13]='ItemDescDetailWindow'
  ;   upvals: _ENV
  ;   locals: itemType(0-65), mode(0-65), refer(0-65), config(5-65)
  0000  GETTABUP  R3 = _ENV[K0('GM')]
  0001  GETTABLE  R3 = R3[K1('ItemDataModel')]
  0002  SELF      R4 = R3[K2('GetModelConfig')] (self)
  0003  MOVE      R5 = R0
  0004  CALL      R3 = call(R3, 1 args, 2 rets)
  0005  GETTABUP  R4 = _ENV[K0('GM')]
  0006  GETTABLE  R4 = R4[K1('ItemDataModel')]
  0007  SELF      R5 = R4[K3('IsDishes')] (self)
  0008  MOVE      R6 = R0
  0009  CALL      R4 = call(R4, 1 args, 2 rets)
  0010  TEST      if not R4 then   -> -131060
  0011  JMP       (jump)   -> 24
  0012  GETTABUP  R4 = _ENV[K0('GM')]
  0013  GETTABLE  R4 = R4[K4('UIManager')]
  0014  SELF      R5 = R4[K5('OpenView')] (self)
  0015  GETTABUP  R6 = _ENV[K6('UIPrefabConfigName')]
  0016  GETTABLE  R6 = R6[K7('ItemDishDetailWindow')]
  0017  MOVE      R7 = R0
  0018  MOVE      R8 = R0
  0019  MOVE      R9 = R0
  0020  VARARG    R10 = vararg(0)
  0021  TAILCALL  tailcall(R4, 0)
  0022  RETURN    return R4..R3
  0023  JMP       (jump)   -> 53
  0024  GETTABLE  R4 = R3[K8('BoosterType')]
  0025  EQ        if R0 eq K9('Split')   -> -128732
  0026  JMP       (jump)   -> 37
  0027  GETTABUP  R4 = _ENV[K0('GM')]
  0028  GETTABLE  R4 = R4[K4('UIManager')]
  0029  SELF      R5 = R4[K5('OpenView')] (self)
  0030  GETTABUP  R6 = _ENV[K6('UIPrefabConfigName')]
  0031  GETTABLE  R6 = R6[K10('LevelDownDescWindow')]
  0032  MOVE      R7 = R0
  0033  MOVE      R8 = R0
  0034  TAILCALL  tailcall(R4, 0)
  0035  RETURN    return R4..R3
  0036  JMP       (jump)   -> 53
  0037  GETTABUP  R4 = _ENV[K11('ItemDetailWindow')]
  0038  GETTABLE  R4 = R4[K12('ShowDescInfo')]
  0039  MOVE      R5 = R0
  0040  CALL      R4 = call(R4, 1 args, 1 rets)
  0041  TEST      if not R4 then   -> -131029
  0042  JMP       (jump)   -> 53
  0043  GETTABUP  R4 = _ENV[K0('GM')]
  0044  GETTABLE  R4 = R4[K4('UIManager')]
  0045  SELF      R5 = R4[K5('OpenView')] (self)
  0046  GETTABUP  R6 = _ENV[K6('UIPrefabConfigName')]
  0047  GETTABLE  R6 = R6[K13('ItemDescDetailWindow')]
  0048  MOVE      R7 = R0
  0049  MOVE      R8 = R0
  0050  MOVE      R9 = R0
  0051  TAILCALL  tailcall(R4, 0)
  0052  RETURN    return R4..R3
  0053  GETTABUP  R4 = _ENV[K0('GM')]
  0054  GETTABLE  R4 = R4[K4('UIManager')]
  0055  SELF      R5 = R4[K5('OpenView')] (self)
  0056  GETTABUP  R6 = _ENV[K6('UIPrefabConfigName')]
  0057  GETTABLE  R6 = R6[K11('ItemDetailWindow')]
  0058  MOVE      R7 = R0
  0059  MOVE      R8 = R0
  0060  MOVE      R9 = R0
  0061  VARARG    R10 = vararg(0)
  0062  TAILCALL  tailcall(R4, 0)
  0063  RETURN    return R4..R3
  0064  RETURN    return R0..R-1
; ---------- proto1 [ShowDescInfo] ----------
  ; fn ?  line 48-58 np=1 va=0 ms=5 code=24 consts=10 upvals=1 protos=0
  ;   K[0]='GM'
  ;   K[1]='ItemDataModel'
  ;   K[2]='GetModelConfig'
  ;   K[3]='Category'
  ;   K[4]=nil
  ;   K[5]='Table'
  ;   K[6]='ListContain'
  ;   K[7]='EItemCategory'
  ;   K[8]='RandomBox'
  ;   K[9]='BoosterType'
  ;   upvals: _ENV
  ;   locals: itemType(0-24), config(5-24)
  0000  GETTABUP  R1 = _ENV[K0('GM')]
  0001  GETTABLE  R1 = R1[K1('ItemDataModel')]
  0002  SELF      R2 = R1[K2('GetModelConfig')] (self)
  0003  MOVE      R3 = R0
  0004  CALL      R1 = call(R1, 1 args, 2 rets)
  0005  GETTABLE  R2 = R1[K3('Category')]
  0006  EQ        if R1 eq K4(nil)   -> -129780
  0007  JMP       (jump)   -> 18
  0008  GETTABUP  R2 = _ENV[K5('Table')]
  0009  GETTABLE  R2 = R2[K6('ListContain')]
  0010  GETTABLE  R3 = R1[K3('Category')]
  0011  GETTABUP  R4 = _ENV[K7('EItemCategory')]
  0012  GETTABLE  R4 = R4[K8('RandomBox')]
  0013  CALL      R2 = call(R2, 1 args, 2 rets)
  0014  TEST      if not R2 then   -> -131056
  0015  JMP       (jump)   -> 18
  0016  LOADBOOL  R2 = true
  0017  RETURN    return R2..R1
  0018  GETTABLE  R2 = R1[K9('BoosterType')]
  0019  EQ        if R1 eq K4(nil)   -> -129767
  0020  JMP       (jump)   -> 23
  0021  LOADBOOL  R2 = true
  0022  RETURN    return R2..R1
  0023  RETURN    return R0..R-1
; ---------- proto2 [UpdateView] ----------
  ; fn ?  line 60-69 np=2 va=0 ms=6 code=23 consts=12 upvals=1 protos=0
  ;   K[0]='m_mergeContentGroupTransform'
  ;   K[1]='gameObject'
  ;   K[2]='RemoveChildren'
  ;   K[3]='m_previousContentGroupTransform'
  ;   K[4]='m_currentContentGroupTransform'
  ;   K[5]='_UpdateView'
  ;   K[6]='ItemDetailWindowMode'
  ;   K[7]='Normal'
  ;   K[8]='EventDispatcher'
  ;   K[9]='DispatchEvent'
  ;   K[10]='EEventType'
  ;   K[11]='ItemDetailWindowUpdated'
  ;   upvals: _ENV
  ;   locals: self(0-23), itemType(0-23)
  0000  GETTABLE  R2 = R0[K0('m_mergeContentGroupTransform')]
  0001  GETTABLE  R2 = R2[K1('gameObject')]
  0002  SELF      R3 = R2[K2('RemoveChildren')] (self)
  0003  CALL      R2 = call(R2, 0 args, 1 rets)
  0004  GETTABLE  R2 = R0[K3('m_previousContentGroupTransform')]
  0005  GETTABLE  R2 = R2[K1('gameObject')]
  0006  SELF      R3 = R2[K2('RemoveChildren')] (self)
  0007  CALL      R2 = call(R2, 0 args, 1 rets)
  0008  GETTABLE  R2 = R0[K4('m_currentContentGroupTransform')]
  0009  GETTABLE  R2 = R2[K1('gameObject')]
  0010  SELF      R3 = R2[K2('RemoveChildren')] (self)
  0011  CALL      R2 = call(R2, 0 args, 1 rets)
  0012  SELF      R3 = R0[K5('_UpdateView')] (self)
  0013  MOVE      R4 = R0
  0014  GETTABUP  R5 = _ENV[K6('ItemDetailWindowMode')]
  0015  GETTABLE  R5 = R5[K7('Normal')]
  0016  CALL      R2 = call(R2, 0 args, 3 rets)
  0017  GETTABUP  R2 = _ENV[K8('EventDispatcher')]
  0018  GETTABLE  R2 = R2[K9('DispatchEvent')]
  0019  GETTABUP  R3 = _ENV[K10('EEventType')]
  0020  GETTABLE  R3 = R3[K11('ItemDetailWindowUpdated')]
  0021  CALL      R2 = call(R2, 0 args, 1 rets)
  0022  RETURN    return R0..R-1
; ---------- proto3 [CloseAll] ----------
  ; fn ?  line 71-78 np=0 va=0 ms=8 code=17 consts=9 upvals=1 protos=0
  ;   K[0]='Table'
  ;   K[1]='ShallowCopy'
  ;   K[2]='ItemDetailWindow'
  ;   K[3]='windowsArray'
  ;   K[4]='ipairs'
  ;   K[5]='eCloseAnimType'
  ;   K[6]='EViewCloseAnimType'
  ;   K[7]='None'
  ;   K[8]='Close'
  ;   upvals: _ENV
  ;   locals: arrWindows(5-17), (for generator)(8-16), (for state)(8-16), (for control)(8-16), _(9-14), window(9-14)
  0000  GETTABUP  R0 = _ENV[K0('Table')]
  0001  GETTABLE  R0 = R0[K1('ShallowCopy')]
  0002  GETTABUP  R1 = _ENV[K2('ItemDetailWindow')]
  0003  GETTABLE  R1 = R1[K3('windowsArray')]
  0004  CALL      R0 = call(R0, 1 args, 1 rets)
  0005  GETTABUP  R1 = _ENV[K4('ipairs')]
  0006  MOVE      R2 = R0
  0007  CALL      R1 = call(R1, 3 args, 1 rets)
  0008  JMP       (jump)   -> 14
  0009  GETTABUP  R6 = _ENV[K6('EViewCloseAnimType')]
  0010  GETTABLE  R6 = R6[K7('None')]
  0011  SETTABLE  R5[K5('eCloseAnimType')] = R6
  0012  SELF      R7 = R5[K8('Close')] (self)
  0013  CALL      R6 = call(R6, 0 args, 1 rets)
  0014  TFORCALL  tforcall R1
  0015  TFORLOOP  tforloop R3(sBx=-7)   -> 9
  0016  RETURN    return R0..R-1
; ---------- proto4 [Init] ----------
  ; fn ?  line 81-102 np=4 va=1 ms=9 code=81 consts=26 upvals=1 protos=0
  ;   K[0]='Log'
  ;   K[1]='Assert'
  ;   K[2]='StringUtil'
  ;   K[3]='IsNilOrEmpty'
  ;   K[4]='ItemDetailWindow 需要指定refer，见 EItemDetailWindowRefer'
  ;   K[5]='ItemDetailWindow'
  ;   K[6]='windowsArray'
  ;   K[7]=1
  ;   K[8]='firstRefer'
  ;   K[9]='OnClickCell'
  ;   K[10]='m_bShowNumTip'
  ;   K[11]='EItemDetailWindowRefer'
  ;   K[12]='BoardInfoBar'
  ;   K[13]='ItemDetailWin'
  ;   K[14]='DishDetailWin'
  ;   K[15]='Order'
  ;   K[16]='CookTip'
  ;   K[17]=3
  ;   K[18]='Close'
  ;   K[19]='table'
  ;   K[20]='insert'
  ;   K[21]='LogWindowAction'
  ;   K[22]='EBIType'
  ;   K[23]='UIActionType'
  ;   K[24]='Open'
  ;   K[25]='_UpdateView'
  ;   upvals: _ENV
  ;   locals: self(0-81), itemType(0-81), mode(0-81), refer(0-81)
  0000  GETTABUP  R4 = _ENV[K0('Log')]
  0001  GETTABLE  R4 = R4[K1('Assert')]
  0002  GETTABUP  R5 = _ENV[K2('StringUtil')]
  0003  GETTABLE  R5 = R5[K3('IsNilOrEmpty')]
  0004  MOVE      R6 = R0
  0005  CALL      R5 = call(R5, 1 args, 1 rets)
  0006  NOT       R5 = not R0
  0007  LOADK     R6 = K4 'ItemDetailWindow 需要指定refer，见 EItemDetailWindowRefer'
  0008  CALL      R4 = call(R4, 0 args, 2 rets)
  0009  GETTABUP  R4 = _ENV[K5('ItemDetailWindow')]
  0010  GETTABLE  R4 = R4[K6('windowsArray')]
  0011  LEN       R4 = len R0
  0012  LE        if R0 le R4   -> 3602
  0013  JMP       (jump)   -> 20
  0014  GETTABUP  R4 = _ENV[K5('ItemDetailWindow')]
  0015  GETTABLE  R4 = R4[K6('windowsArray')]
  0016  GETTABLE  R4 = R4[K7(1)]
  0017  GETTABLE  R4 = R4[K8('firstRefer')]
  0018  SETTABLE  R0[K8('firstRefer')] = R4
  0019  JMP       (jump)   -> 21
  0020  SETTABLE  R0[K8('firstRefer')] = R3
  0021  SELF      R5 = R0[K9('OnClickCell')] (self)
  0022  MOVE      R6 = R0
  0023  CALL      R4 = call(R4, 0 args, 2 rets)
  0024  GETTABLE  R4 = R0[K8('firstRefer')]
  0025  GETTABUP  R5 = _ENV[K11('EItemDetailWindowRefer')]
  0026  GETTABLE  R5 = R5[K12('BoardInfoBar')]
  0027  EQ        if R1 eq R5   -> -128990
  0028  JMP       (jump)   -> 50
  0029  GETTABLE  R4 = R0[K8('firstRefer')]
  0030  GETTABUP  R5 = _ENV[K11('EItemDetailWindowRefer')]
  0031  GETTABLE  R5 = R5[K13('ItemDetailWin')]
  0032  EQ        if R1 eq R5   -> -128985
  0033  JMP       (jump)   -> 50
  0034  GETTABLE  R4 = R0[K8('firstRefer')]
  0035  GETTABUP  R5 = _ENV[K11('EItemDetailWindowRefer')]
  0036  GETTABLE  R5 = R5[K14('DishDetailWin')]
  0037  EQ        if R1 eq R5   -> -128980
  0038  JMP       (jump)   -> 50
  0039  GETTABLE  R4 = R0[K8('firstRefer')]
  0040  GETTABUP  R5 = _ENV[K11('EItemDetailWindowRefer')]
  0041  GETTABLE  R5 = R5[K15('Order')]
  0042  EQ        if R1 eq R5   -> -128975
  0043  JMP       (jump)   -> 50
  0044  GETTABLE  R4 = R0[K8('firstRefer')]
  0045  GETTABUP  R5 = _ENV[K11('EItemDetailWindowRefer')]
  0046  GETTABLE  R5 = R5[K16('CookTip')]
  0047  EQ        if R1 eq R5   -> -128970
  0048  JMP       (jump)   -> 50
  0049  LOADBOOL  R4 = false
  0050  LOADBOOL  R4 = true
  0051  SETTABLE  R0[K10('m_bShowNumTip')] = R4
  0052  GETTABUP  R4 = _ENV[K5('ItemDetailWindow')]
  0053  GETTABLE  R4 = R4[K6('windowsArray')]
  0054  LEN       R4 = len R0
  0055  LE        if R0 le R4   -> 8765
  0056  JMP       (jump)   -> 62
  0057  GETTABUP  R4 = _ENV[K5('ItemDetailWindow')]
  0058  GETTABLE  R4 = R4[K6('windowsArray')]
  0059  GETTABLE  R4 = R4[K7(1)]
  0060  SELF      R5 = R4[K18('Close')] (self)
  0061  CALL      R4 = call(R4, 0 args, 1 rets)
  0062  GETTABUP  R4 = _ENV[K19('table')]
  0063  GETTABLE  R4 = R4[K20('insert')]
  0064  GETTABUP  R5 = _ENV[K5('ItemDetailWindow')]
  0065  GETTABLE  R5 = R5[K6('windowsArray')]
  0066  MOVE      R6 = R0
  0067  CALL      R4 = call(R4, 0 args, 2 rets)
  0068  SELF      R5 = R0[K21('LogWindowAction')] (self)
  0069  GETTABUP  R6 = _ENV[K22('EBIType')]
  0070  GETTABLE  R6 = R6[K23('UIActionType')]
  0071  GETTABLE  R6 = R6[K24('Open')]
  0072  MOVE      R7 = R0
  0073  MOVE      R8 = R0
  0074  CALL      R4 = call(R4, 0 args, 4 rets)
  0075  SELF      R5 = R0[K25('_UpdateView')] (self)
  0076  MOVE      R6 = R0
  0077  MOVE      R7 = R0
  0078  VARARG    R8 = vararg(0)
  0079  CALL      R4 = call(R4, 0 args, -1 rets)
  0080  RETURN    return R0..R-1
; ---------- proto5 [OnCloseView] ----------
  ; fn ?  line 104-107 np=1 va=0 ms=4 code=11 consts=6 upvals=1 protos=0
  ;   K[0]='BaseWindow'
  ;   K[1]='OnCloseView'
  ;   K[2]='Table'
  ;   K[3]='ListRemove'
  ;   K[4]='ItemDetailWindow'
  ;   K[5]='windowsArray'
  ;   upvals: _ENV
  ;   locals: self(0-11)
  0000  GETTABUP  R1 = _ENV[K0('BaseWindow')]
  0001  GETTABLE  R1 = R1[K1('OnCloseView')]
  0002  MOVE      R2 = R0
  0003  CALL      R1 = call(R1, 0 args, 1 rets)
  0004  GETTABUP  R1 = _ENV[K2('Table')]
  0005  GETTABLE  R1 = R1[K3('ListRemove')]
  0006  GETTABUP  R2 = _ENV[K4('ItemDetailWindow')]
  0007  GETTABLE  R2 = R2[K5('windowsArray')]
  0008  MOVE      R3 = R0
  0009  CALL      R1 = call(R1, 0 args, 2 rets)
  0010  RETURN    return R0..R-1
; ---------- proto6 [OnCloseFinish] ----------
  ; fn ?  line 109-151 np=1 va=0 ms=10 code=92 consts=25 upvals=1 protos=1
  ;   K[0]='BaseWindow'
  ;   K[1]='OnCloseFinish'
  ;   K[2]='Table'
  ;   K[3]='IsEmpty'
  ;   K[4]='ItemDetailWindow'
  ;   K[5]='windowsArray'
  ;   K[6]='lastClickItemType'
  ;   K[7]=nil
  ;   K[8]='GM'
  ;   K[9]='ItemDataModel'
  ;   K[10]='GetItemGenerators'
  ;   K[11]=nil
  ;   K[12]=1
  ;   K[13]='GM'
  ;   K[14]='ItemDataModel'
  ;   K[15]='GetNonPdGenerator'
  ;   K[16]='BoardViewHelper'
  ;   K[17]='GetActiveView'
  ;   K[18]='GetItemView'
  ;   K[19]='PlayChooseHighlightAnimation'
  ;   K[20]='Table'
  ;   K[21]='IsEmpty'
  ;   K[22]='eCloseAnimType'
  ;   K[23]='EViewCloseAnimType'
  ;   K[24]='None'
  ;   upvals: _ENV
  ;   locals: self(0-92), itemType(17-63), generators(22-63), bestItem(23-63), bestLevel(23-63), tryFindBestItem(24-63), boardView(53-62), itemView(58-62), bLastWindow(87-92)
  0000  GETTABUP  R1 = _ENV[K0('BaseWindow')]
  0001  GETTABLE  R1 = R1[K1('OnCloseFinish')]
  0002  MOVE      R2 = R0
  0003  CALL      R1 = call(R1, 0 args, 1 rets)
  0004  GETTABUP  R1 = _ENV[K2('Table')]
  0005  GETTABLE  R1 = R1[K3('IsEmpty')]
  0006  GETTABUP  R2 = _ENV[K4('ItemDetailWindow')]
  0007  GETTABLE  R2 = R2[K5('windowsArray')]
  0008  CALL      R1 = call(R1, 1 args, 1 rets)
  0009  TEST      if not R1 then   -> -131061
  0010  JMP       (jump)   -> 63
  0011  GETTABUP  R1 = _ENV[K4('ItemDetailWindow')]
  0012  GETTABLE  R1 = R1[K6('lastClickItemType')]
  0013  EQ        if R1 eq K7(nil)   -> -130282
  0014  JMP       (jump)   -> 63
  0015  GETTABUP  R1 = _ENV[K4('ItemDetailWindow')]
  0016  GETTABLE  R1 = R1[K6('lastClickItemType')]
  0017  GETTABUP  R2 = _ENV[K8('GM')]
  0018  GETTABLE  R2 = R2[K9('ItemDataModel')]
  0019  SELF      R3 = R2[K10('GetItemGenerators')] (self)
  0020  MOVE      R4 = R0
  0021  CALL      R2 = call(R2, 1 args, 2 rets)
  0022  LOADNIL   R3..R3 = nil
  0023  CLOSURE   R5 = closure proto0
  0024  MOVE      R6 = R0
  0025  CALL      R6 = call(R6, 0 args, 0 rets)
  0026  EQ        if R0 eq K11(nil)   -> -129241
  0027  JMP       (jump)   -> 48
  0028  EQ        if R1 eq K11(nil)   -> -129751
  0029  JMP       (jump)   -> 48
  0030  LEN       R6 = len R0
  0031  LE        if R0 le R6   -> 6183
  0032  JMP       (jump)   -> 48
  0033  GETTABUP  R6 = _ENV[K13('GM')]
  0034  GETTABLE  R6 = R6[K14('ItemDataModel')]
  0035  SELF      R7 = R6[K15('GetNonPdGenerator')] (self)
  0036  MOVE      R8 = R0
  0037  CALL      R6 = call(R6, 1 args, 2 rets)
  0038  EQ        if R1 eq K11(nil)   -> -127693
  0039  JMP       (jump)   -> 48
  0040  GETTABUP  R6 = _ENV[K13('GM')]
  0041  GETTABLE  R6 = R6[K14('ItemDataModel')]
  0042  SELF      R7 = R6[K10('GetItemGenerators')] (self)
  0043  GETTABLE  R8 = R2[K12(1)]
  0044  CALL      R6 = call(R6, 1 args, 2 rets)
  0045  MOVE      R2 = R0
  0046  MOVE      R6 = R0
  0047  CALL      R6 = call(R6, 0 args, 0 rets)
  0048  EQ        if R1 eq K11(nil)   -> -129219
  0049  JMP       (jump)   -> 63
  0050  GETTABUP  R6 = _ENV[K16('BoardViewHelper')]
  0051  GETTABLE  R6 = R6[K17('GetActiveView')]
  0052  CALL      R6 = call(R6, 1 args, 0 rets)
  0053  EQ        if R1 eq K11(nil)   -> -127678
  0054  JMP       (jump)   -> 63
  0055  SELF      R8 = R6[K18('GetItemView')] (self)
  0056  MOVE      R9 = R0
  0057  CALL      R7 = call(R7, 1 args, 2 rets)
  0058  EQ        if R1 eq K11(nil)   -> -127161
  0059  JMP       (jump)   -> 63
  0060  SELF      R9 = R7[K19('PlayChooseHighlightAnimation')] (self)
  0061  CALL      R8 = call(R8, 0 args, 1 rets)
  0062  JMP       (jump)   -> 63
  0063  GETTABUP  R1 = _ENV[K20('Table')]
  0064  GETTABLE  R1 = R1[K21('IsEmpty')]
  0065  GETTABUP  R2 = _ENV[K4('ItemDetailWindow')]
  0066  GETTABLE  R2 = R2[K5('windowsArray')]
  0067  CALL      R1 = call(R1, 1 args, 1 rets)
  0068  TEST      if not R1 then   -> -131001
  0069  JMP       (jump)   -> 87
  0070  GETTABLE  R1 = R0[K22('eCloseAnimType')]
  0071  GETTABUP  R2 = _ENV[K23('EViewCloseAnimType')]
  0072  GETTABLE  R2 = R2[K24('None')]
  0073  EQ        if R0 eq R2   -> -130483
  0074  JMP       (jump)   -> 85
  0075  GETTABUP  R1 = _ENV[K4('ItemDetailWindow')]
  0076  GETTABLE  R1 = R1[K5('windowsArray')]
  0077  GETTABLE  R1 = R1[K12(1)]
  0078  EQ        if R0 eq R0   -> -130480
  0079  JMP       (jump)   -> 85
  0080  GETTABUP  R1 = _ENV[K4('ItemDetailWindow')]
  0081  GETTABLE  R1 = R1[K5('windowsArray')]
  0082  LEN       R1 = len R0
  0083  EQ        if R1 eq K12(1)   -> -130207
  0084  JMP       (jump)   -> 86
  0085  LOADBOOL  R1 = false
  0086  LOADBOOL  R1 = true
  0087  TEST      if not R1 then   -> -130983
  0088  JMP       (jump)   -> 91
  0089  GETTABUP  R2 = _ENV[K4('ItemDetailWindow')]
  0090  SETTABLE  R2[K6('lastClickItemType')] = K11(nil)
  0091  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 118-130 np=0 va=0 ms=11 code=37 consts=10 upvals=4 protos=0
    ;   K[0]=nil
    ;   K[1]='ipairs'
    ;   K[2]='GM'
    ;   K[3]='ItemDataModel'
    ;   K[4]='GetChainLevel'
    ;   K[5]='MainBoardModel'
    ;   K[6]='FilterItemsByType'
    ;   K[7]=1
    ;   K[8]='Table'
    ;   K[9]='IsEmpty'
    ;   upvals: generators, _ENV, bestLevel, bestItem
    ;   locals: (for generator)(6-36), (for state)(6-36), (for control)(6-36), _(7-34), generator(7-34), level(12-34), arrItems(25-34)
    0000  GETUPVAL  R0 = generators
    0001  EQ        if R1 eq K0(nil)   -> -130813
    0002  JMP       (jump)   -> 36
    0003  GETTABUP  R0 = _ENV[K1('ipairs')]
    0004  GETUPVAL  R1 = generators
    0005  CALL      R0 = call(R0, 3 args, 1 rets)
    0006  JMP       (jump)   -> 34
    0007  GETTABUP  R5 = _ENV[K2('GM')]
    0008  GETTABLE  R5 = R5[K3('ItemDataModel')]
    0009  SELF      R6 = R5[K4('GetChainLevel')] (self)
    0010  MOVE      R7 = R0
    0011  CALL      R5 = call(R5, 1 args, 2 rets)
    0012  GETUPVAL  R6 = generators
    0013  EQ        if R1 eq K0(nil)   -> -127729
    0014  JMP       (jump)   -> 18
    0015  GETUPVAL  R6 = generators
    0016  LT        if R0 lt R5   -> -127977
    0017  JMP       (jump)   -> 34
    0018  GETTABUP  R6 = _ENV[K2('GM')]
    0019  GETTABLE  R6 = R6[K5('MainBoardModel')]
    0020  SELF      R7 = R6[K6('FilterItemsByType')] (self)
    0021  MOVE      R8 = R0
    0022  LOADNIL   R9..R9 = nil
    0023  LOADK     R10 = K7 1
    0024  CALL      R6 = call(R6, 1 args, 4 rets)
    0025  GETTABUP  R7 = _ENV[K8('Table')]
    0026  GETTABLE  R7 = R7[K9('IsEmpty')]
    0027  MOVE      R8 = R0
    0028  CALL      R7 = call(R7, 1 args, 1 rets)
    0029  TEST      if not R7 then   -> -131040
    0030  JMP       (jump)   -> 34
    0031  GETTABLE  R7 = R6[K7(1)]
    0032  SETUPVAL  UP5 = R0
    0033  SETUPVAL  UP7 = R0
    0034  TFORCALL  tforcall R0
    0035  TFORLOOP  tforloop R2(sBx=-29)   -> 7
    0036  RETURN    return R0..R-1
; ---------- proto7 [_UpdateView] ----------
  ; fn ?  line 153-293 np=4 va=0 ms=33 code=397 consts=82 upvals=2 protos=0
  ;   K[0]='nextRefer'
  ;   K[1]='EItemDetailWindowRefer'
  ;   K[2]='ItemDetailWin'
  ;   K[3]='GM'
  ;   K[4]='ItemDataModel'
  ;   K[5]='GetModelConfig'
  ;   K[6]='m_tipGo'
  ;   K[7]='SetActive'
  ;   K[8]='IsBox'
  ;   K[9]='m_arrCells'
  ;   K[10]='GetChainId'
  ;   K[11]='GetChain'
  ;   K[12]='GetChainLevel'
  ;   K[13]='GetItemGenerators'
  ;   K[14]='m_titleText'
  ;   K[15]='text'
  ;   K[16]='GameTextModel'
  ;   K[17]='GetText'
  ;   K[18]='ItemNameDefinition'
  ;   K[19]='GetName'
  ;   K[20]=1
  ;   K[21]='MergedType'
  ;   K[22]=nil
  ;   K[23]='ItemUtility'
  ;   K[24]='GetInnerCodeAndPrefixByCode'
  ;   K[25]='m_bShowNumTip'
  ;   K[26]='StringUtil'
  ;   K[27]='StartWith'
  ;   K[28]='pd_'
  ;   K[29]='eq_'
  ;   K[30]=0
  ;   K[31]='_AddCell'
  ;   K[32]='m_mergeContentGroupTransform'
  ;   K[33]='AddNumTip'
  ;   K[34]='ShowAsSelected'
  ;   K[35]='CollectRewards'
  ;   K[36]='m_mergeDescText'
  ;   K[37]='item_'
  ;   K[38]='_desc'
  ;   K[39]='UIUtil'
  ;   K[40]='gameObject'
  ;   K[41]='m_previousContentGo'
  ;   K[42]='GetNonPdGenerator'
  ;   K[43]='m_previousGroupGo'
  ;   K[44]='m_previousChainGo'
  ;   K[45]='GetMaxUnlockedItemCode'
  ;   K[46]='m_previousChainCell1'
  ;   K[47]='Init'
  ;   K[48]='m_previousChainCell2'
  ;   K[49]='m_previousChainCell3'
  ;   K[50]='GetItemType'
  ;   K[51]='DisableClick'
  ;   K[52]='m_previousContentGroupTransform'
  ;   K[53]='GeneratedItems'
  ;   K[54]='UIBoardActivityModel'
  ;   K[55]='IsUIBoardActivityItem'
  ;   K[56]='m_currentContentGo'
  ;   K[57]='ipairs'
  ;   K[58]='ChoicesOrder'
  ;   K[59]='Weight'
  ;   K[60]='Code'
  ;   K[61]='m_currentContentGroupTransform'
  ;   K[62]='Transform'
  ;   K[63]='Currency'
  ;   K[64]='Recipes'
  ;   K[65]='m_cookContentGo'
  ;   K[66]='UpdateCookContent'
  ;   K[67]='LayoutRebuilder'
  ;   K[68]='ForceRebuildLayoutImmediate'
  ;   K[69]='m_contentGroup'
  ;   K[70]='transform'
  ;   K[71]='preferredHeight'
  ;   K[72]=210
  ;   K[73]='SetSizeDelta'
  ;   K[74]='m_contentRect'
  ;   K[75]='_UpdateHotSaleDisplay'
  ;   K[76]='EventDispatcher'
  ;   K[77]='AddListener'
  ;   K[78]='EEventType'
  ;   K[79]='ShopBuyItemSuccess'
  ;   K[80]='ShopRefreshed'
  ;   K[81]='_UpdateTestMsg'
  ;   upvals: _ENV, CELL_COUNT_PER_ROW
  ;   locals: self(0-397), itemType(0-397), mode(0-397), order(0-397), itemDataModel(5-397), config(8-397), chainId(19-397), chain(22-397), level(25-397), generators(28-397), minChainLevel(39-397), previousConfig(45-49), maxChainLevel(50-397), previousConfig(58-63), maxConfig(66-397), extraItemType(67-397), showNumTip(96-397), (for index)(99-131), (for limit)(99-131), (for step)(99-131), index(100-130), hasArrow(110-130), cell(121-130), preGens(196-252), showItem(200-252), showItem(265-273), currentSpreadData(292-340), (for generator)(295-323), (for state)(295-323), (for control)(295-323), _(296-321), item(296-321), (for index)(302-312), (for limit)(302-312), (for step)(302-312), i(303-311), transform(324-340), (for generator)(329-340), (for state)(329-340), (for control)(329-340), _(330-338), item(330-338), preferredContentHeight(368-397)
  0000  GETTABUP  R4 = _ENV[K1('EItemDetailWindowRefer')]
  0001  GETTABLE  R4 = R4[K2('ItemDetailWin')]
  0002  SETTABLE  R0[K0('nextRefer')] = R4
  0003  GETTABUP  R4 = _ENV[K3('GM')]
  0004  GETTABLE  R4 = R4[K4('ItemDataModel')]
  0005  SELF      R6 = R4[K5('GetModelConfig')] (self)
  0006  MOVE      R7 = R0
  0007  CALL      R5 = call(R5, 1 args, 2 rets)
  0008  GETTABLE  R6 = R0[K6('m_tipGo')]
  0009  SELF      R7 = R6[K7('SetActive')] (self)
  0010  SELF      R9 = R4[K8('IsBox')] (self)
  0011  MOVE      R10 = R0
  0012  CALL      R8 = call(R8, -1 args, 2 rets)
  0013  CALL      R6 = call(R6, 0 args, -1 rets)
  0014  NEWTABLE  R6 = {} (0 items)
  0015  SETTABLE  R0[K9('m_arrCells')] = R6
  0016  SELF      R7 = R4[K10('GetChainId')] (self)
  0017  MOVE      R8 = R0
  0018  CALL      R6 = call(R6, 1 args, 2 rets)
  0019  SELF      R8 = R4[K11('GetChain')] (self)
  0020  MOVE      R9 = R0
  0021  CALL      R7 = call(R7, 1 args, 2 rets)
  0022  SELF      R9 = R4[K12('GetChainLevel')] (self)
  0023  MOVE      R10 = R0
  0024  CALL      R8 = call(R8, 1 args, 2 rets)
  0025  SELF      R10 = R4[K13('GetItemGenerators')] (self)
  0026  MOVE      R11 = R0
  0027  CALL      R9 = call(R9, 1 args, 2 rets)
  0028  GETTABLE  R10 = R0[K14('m_titleText')]
  0029  GETTABUP  R11 = _ENV[K3('GM')]
  0030  GETTABLE  R11 = R11[K16('GameTextModel')]
  0031  SELF      R12 = R11[K17('GetText')] (self)
  0032  GETTABUP  R13 = _ENV[K18('ItemNameDefinition')]
  0033  GETTABLE  R13 = R13[K19('GetName')]
  0034  MOVE      R14 = R0
  0035  CALL      R13 = call(R13, -1 args, 1 rets)
  0036  CALL      R11 = call(R11, 1 args, -1 rets)
  0037  SETTABLE  R10[K15('text')] = R11
  0038  LOADK     R10 = K20 1
  0039  EQ        if R1 eq K20(1)   -> -126659
  0040  JMP       (jump)   -> 49
  0041  SELF      R12 = R4[K5('GetModelConfig')] (self)
  0042  SUB       R13 = K20(1) sub R8
  0043  GETTABLE  R13 = R7[R13]
  0044  CALL      R11 = call(R11, 1 args, 2 rets)
  0045  GETTABLE  R12 = R11[K21('MergedType')]
  0046  EQ        if R0 eq K22(nil)   -> -124602
  0047  JMP       (jump)   -> 49
  0048  MOVE      R10 = R0
  0049  LEN       R11 = len R0
  0050  LEN       R12 = len R0
  0051  EQ        if R1 eq R12   -> -126911
  0052  JMP       (jump)   -> 63
  0053  SELF      R13 = R4[K5('GetModelConfig')] (self)
  0054  LEN       R14 = len R0
  0055  SUB       R14 = K20(1) sub R14
  0056  GETTABLE  R14 = R7[R14]
  0057  CALL      R12 = call(R12, 1 args, 2 rets)
  0058  GETTABLE  R13 = R12[K21('MergedType')]
  0059  EQ        if R0 eq K22(nil)   -> -124077
  0060  JMP       (jump)   -> 63
  0061  LEN       R13 = len R0
  0062  SUB       R11 = K20(1) sub R13
  0063  SELF      R13 = R4[K5('GetModelConfig')] (self)
  0064  GETTABLE  R14 = R7[R11]
  0065  CALL      R12 = call(R12, 1 args, 2 rets)
  0066  LOADNIL   R13..R13 = nil
  0067  EQ        if R1 eq K22(nil)   -> -124581
  0068  JMP       (jump)   -> 77
  0069  GETTABLE  R14 = R12[K21('MergedType')]
  0070  EQ        if R1 eq K22(nil)   -> -123554
  0071  JMP       (jump)   -> 77
  0072  GETTABUP  R14 = _ENV[K23('ItemUtility')]
  0073  GETTABLE  R14 = R14[K24('GetInnerCodeAndPrefixByCode')]
  0074  GETTABLE  R15 = R12[K21('MergedType')]
  0075  CALL      R14 = call(R14, 1 args, 1 rets)
  0076  MOVE      R13 = R0
  0077  GETTABLE  R14 = R0[K25('m_bShowNumTip')]
  0078  TEST      if not R14 then   -> -130992
  0079  JMP       (jump)   -> 96
  0080  GETTABUP  R14 = _ENV[K26('StringUtil')]
  0081  GETTABLE  R14 = R14[K27('StartWith')]
  0082  MOVE      R15 = R0
  0083  LOADK     R16 = K28 'pd_'
  0084  CALL      R14 = call(R14, 1 args, 2 rets)
  0085  TEST      if not R14 then   -> -130984
  0086  JMP       (jump)   -> 94
  0087  GETTABUP  R14 = _ENV[K26('StringUtil')]
  0088  GETTABLE  R14 = R14[K27('StartWith')]
  0089  MOVE      R15 = R0
  0090  LOADK     R16 = K29 'eq_'
  0091  CALL      R14 = call(R14, 1 args, 2 rets)
  0092  NOT       R14 = not R0
  0093  JMP       (jump)   -> 96
  0094  LOADBOOL  R14 = false
  0095  LOADBOOL  R14 = true
  0096  MOVE      R15 = R0
  0097  MOVE      R16 = R0
  0098  LOADK     R17 = K20 1
  0099  FORPREP   forprep R15(sBx=30)   -> 130
  0100  EQ        if R0 eq R11   -> -121743
  0101  JMP       (jump)   -> 104
  0102  EQ        if R1 eq K22(nil)   -> -124034
  0103  JMP       (jump)   -> 108
  0104  GETUPVAL  R19 = _ENV
  0105  MOD       R19 = R19 mod R18
  0106  EQ        if R0 eq K30(0)   -> -120950
  0107  JMP       (jump)   -> 109
  0108  LOADBOOL  R19 = false
  0109  LOADBOOL  R19 = true
  0110  SELF      R21 = R0[K31('_AddCell')] (self)
  0111  GETTABLE  R22 = R7[R18]
  0112  LOADBOOL  R23 = false
  0113  MOVE      R24 = R0
  0114  EQ        if R1 eq R8   -> -121732
  0115  JMP       (jump)   -> 117
  0116  LOADBOOL  R25 = false
  0117  LOADBOOL  R25 = true
  0118  LOADBOOL  R26 = false
  0119  GETTABLE  R27 = R0[K32('m_mergeContentGroupTransform')]
  0120  CALL      R20 = call(R20, 1 args, 7 rets)
  0121  TEST      if not R14 then   -> -130949
  0122  JMP       (jump)   -> 125
  0123  SELF      R22 = R20[K33('AddNumTip')] (self)
  0124  CALL      R21 = call(R21, 0 args, 1 rets)
  0125  EQ        if R0 eq R8   -> -121721
  0126  JMP       (jump)   -> 130
  0127  SELF      R22 = R20[K34('ShowAsSelected')] (self)
  0128  LOADBOOL  R23 = true
  0129  CALL      R21 = call(R21, 0 args, 2 rets)
  0130  FORLOOP   forloop R15(sBx=-31)   -> 100
  0131  EQ        if R1 eq K22(nil)   -> -124005
  0132  JMP       (jump)   -> 141
  0133  SELF      R16 = R0[K31('_AddCell')] (self)
  0134  MOVE      R17 = R0
  0135  LOADBOOL  R18 = false
  0136  LOADBOOL  R19 = false
  0137  LOADBOOL  R20 = false
  0138  LOADBOOL  R21 = true
  0139  GETTABLE  R22 = R0[K32('m_mergeContentGroupTransform')]
  0140  CALL      R15 = call(R15, 0 args, 7 rets)
  0141  GETTABLE  R15 = R5[K35('CollectRewards')]
  0142  EQ        if R1 eq K22(nil)   -> -122970
  0143  JMP       (jump)   -> 161
  0144  GETTABLE  R15 = R0[K36('m_mergeDescText')]
  0145  GETTABUP  R16 = _ENV[K3('GM')]
  0146  GETTABLE  R16 = R16[K16('GameTextModel')]
  0147  SELF      R17 = R16[K17('GetText')] (self)
  0148  LOADK     R18 = K37 'item_'
  0149  MOVE      R19 = R0
  0150  LOADK     R20 = K38 '_desc'
  0151  CONCAT    R18 = concat(R18..R18)
  0152  CALL      R16 = call(R16, 1 args, 2 rets)
  0153  SETTABLE  R15[K15('text')] = R16
  0154  GETTABUP  R15 = _ENV[K39('UIUtil')]
  0155  GETTABLE  R15 = R15[K7('SetActive')]
  0156  GETTABLE  R16 = R0[K36('m_mergeDescText')]
  0157  GETTABLE  R16 = R16[K40('gameObject')]
  0158  LOADBOOL  R17 = true
  0159  CALL      R15 = call(R15, 0 args, 2 rets)
  0160  JMP       (jump)   -> 167
  0161  GETTABUP  R15 = _ENV[K39('UIUtil')]
  0162  GETTABLE  R15 = R15[K7('SetActive')]
  0163  GETTABLE  R16 = R0[K36('m_mergeDescText')]
  0164  GETTABLE  R16 = R16[K40('gameObject')]
  0165  LOADBOOL  R17 = false
  0166  CALL      R15 = call(R15, 0 args, 2 rets)
  0167  EQ        if R1 eq K22(nil)   -> -126017
  0168  JMP       (jump)   -> 274
  0169  LEN       R15 = len R0
  0170  LE        if R0 le R15   -> 10427
  0171  JMP       (jump)   -> 274
  0172  GETTABLE  R15 = R0[K41('m_previousContentGo')]
  0173  SELF      R16 = R15[K7('SetActive')] (self)
  0174  LOADBOOL  R17 = true
  0175  CALL      R15 = call(R15, 0 args, 2 rets)
  0176  GETTABUP  R15 = _ENV[K3('GM')]
  0177  GETTABLE  R15 = R15[K4('ItemDataModel')]
  0178  SELF      R16 = R15[K42('GetNonPdGenerator')] (self)
  0179  MOVE      R17 = R0
  0180  CALL      R15 = call(R15, 1 args, 2 rets)
  0181  EQ        if R1 eq K22(nil)   -> -122931
  0182  JMP       (jump)   -> 253
  0183  GETTABLE  R15 = R0[K43('m_previousGroupGo')]
  0184  SELF      R16 = R15[K7('SetActive')] (self)
  0185  LOADBOOL  R17 = false
  0186  CALL      R15 = call(R15, 0 args, 2 rets)
  0187  GETTABLE  R15 = R0[K44('m_previousChainGo')]
  0188  SELF      R16 = R15[K7('SetActive')] (self)
  0189  LOADBOOL  R17 = true
  0190  CALL      R15 = call(R15, 0 args, 2 rets)
  0191  GETTABUP  R15 = _ENV[K3('GM')]
  0192  GETTABLE  R15 = R15[K4('ItemDataModel')]
  0193  SELF      R16 = R15[K13('GetItemGenerators')] (self)
  0194  GETTABLE  R17 = R9[K20(1)]
  0195  CALL      R15 = call(R15, 1 args, 2 rets)
  0196  GETTABUP  R16 = _ENV[K23('ItemUtility')]
  0197  GETTABLE  R16 = R16[K45('GetMaxUnlockedItemCode')]
  0198  MOVE      R17 = R0
  0199  CALL      R16 = call(R16, 1 args, 1 rets)
  0200  GETTABLE  R17 = R0[K46('m_previousChainCell1')]
  0201  SELF      R18 = R17[K47('Init')] (self)
  0202  MOVE      R19 = R0
  0203  LOADBOOL  R20 = true
  0204  LOADBOOL  R21 = true
  0205  LOADBOOL  R22 = true
  0206  LOADBOOL  R23 = true
  0207  MOVE      R24 = R0
  0208  CALL      R17 = call(R17, 0 args, 7 rets)
  0209  GETTABLE  R17 = R0[K9('m_arrCells')]
  0210  GETTABLE  R18 = R0[K9('m_arrCells')]
  0211  LEN       R18 = len R0
  0212  ADD       R18 = K20(1) add R18
  0213  GETTABLE  R19 = R0[K46('m_previousChainCell1')]
  0214  SETTABLE  R17[R18] = R19
  0215  GETTABLE  R17 = R0[K48('m_previousChainCell2')]
  0216  SELF      R18 = R17[K47('Init')] (self)
  0217  GETTABLE  R19 = R9[K20(1)]
  0218  LOADBOOL  R20 = true
  0219  LOADBOOL  R21 = true
  0220  LOADBOOL  R22 = true
  0221  LOADBOOL  R23 = true
  0222  MOVE      R24 = R0
  0223  CALL      R17 = call(R17, 0 args, 7 rets)
  0224  GETTABLE  R17 = R0[K9('m_arrCells')]
  0225  GETTABLE  R18 = R0[K9('m_arrCells')]
  0226  LEN       R18 = len R0
  0227  ADD       R18 = K20(1) add R18
  0228  GETTABLE  R19 = R0[K48('m_previousChainCell2')]
  0229  SETTABLE  R17[R18] = R19
  0230  GETTABLE  R17 = R0[K49('m_previousChainCell3')]
  0231  SELF      R18 = R17[K47('Init')] (self)
  0232  GETTABUP  R19 = _ENV[K23('ItemUtility')]
  0233  GETTABLE  R19 = R19[K50('GetItemType')]
  0234  MOVE      R20 = R0
  0235  LOADK     R21 = K20 1
  0236  CALL      R19 = call(R19, 1 args, 2 rets)
  0237  LOADBOOL  R20 = true
  0238  LOADBOOL  R21 = false
  0239  LOADBOOL  R22 = true
  0240  LOADBOOL  R23 = false
  0241  MOVE      R24 = R0
  0242  CALL      R17 = call(R17, 0 args, 7 rets)
  0243  GETTABLE  R17 = R0[K9('m_arrCells')]
  0244  GETTABLE  R18 = R0[K9('m_arrCells')]
  0245  LEN       R18 = len R0
  0246  ADD       R18 = K20(1) add R18
  0247  GETTABLE  R19 = R0[K49('m_previousChainCell3')]
  0248  SETTABLE  R17[R18] = R19
  0249  GETTABLE  R17 = R0[K49('m_previousChainCell3')]
  0250  SELF      R18 = R17[K51('DisableClick')] (self)
  0251  CALL      R17 = call(R17, 0 args, 1 rets)
  0252  JMP       (jump)   -> 278
  0253  GETTABLE  R15 = R0[K43('m_previousGroupGo')]
  0254  SELF      R16 = R15[K7('SetActive')] (self)
  0255  LOADBOOL  R17 = true
  0256  CALL      R15 = call(R15, 0 args, 2 rets)
  0257  GETTABLE  R15 = R0[K44('m_previousChainGo')]
  0258  SELF      R16 = R15[K7('SetActive')] (self)
  0259  LOADBOOL  R17 = false
  0260  CALL      R15 = call(R15, 0 args, 2 rets)
  0261  GETTABUP  R15 = _ENV[K23('ItemUtility')]
  0262  GETTABLE  R15 = R15[K45('GetMaxUnlockedItemCode')]
  0263  MOVE      R16 = R0
  0264  CALL      R15 = call(R15, 1 args, 1 rets)
  0265  SELF      R17 = R0[K31('_AddCell')] (self)
  0266  MOVE      R18 = R0
  0267  LOADBOOL  R19 = true
  0268  LOADBOOL  R20 = false
  0269  LOADBOOL  R21 = true
  0270  LOADBOOL  R22 = true
  0271  GETTABLE  R23 = R0[K52('m_previousContentGroupTransform')]
  0272  CALL      R16 = call(R16, 0 args, 7 rets)
  0273  JMP       (jump)   -> 278
  0274  GETTABLE  R15 = R0[K41('m_previousContentGo')]
  0275  SELF      R16 = R15[K7('SetActive')] (self)
  0276  LOADBOOL  R17 = false
  0277  CALL      R15 = call(R15, 0 args, 2 rets)
  0278  GETTABLE  R15 = R5[K53('GeneratedItems')]
  0279  EQ        if R1 eq K22(nil)   -> -122833
  0280  JMP       (jump)   -> 341
  0281  GETTABUP  R15 = _ENV[K54('UIBoardActivityModel')]
  0282  GETTABLE  R15 = R15[K55('IsUIBoardActivityItem')]
  0283  MOVE      R16 = R0
  0284  CALL      R15 = call(R15, 1 args, 1 rets)
  0285  TEST      if not R15 then   -> -130784
  0286  JMP       (jump)   -> 341
  0287  GETTABLE  R15 = R0[K56('m_currentContentGo')]
  0288  SELF      R16 = R15[K7('SetActive')] (self)
  0289  LOADBOOL  R17 = true
  0290  CALL      R15 = call(R15, 0 args, 2 rets)
  0291  GETTABLE  R15 = R5[K53('GeneratedItems')]
  0292  GETTABUP  R16 = _ENV[K57('ipairs')]
  0293  MOVE      R17 = R0
  0294  CALL      R16 = call(R16, 3 args, 1 rets)
  0295  JMP       (jump)   -> 321
  0296  GETTABLE  R21 = R5[K58('ChoicesOrder')]
  0297  EQ        if R1 eq K22(nil)   -> -119743
  0298  JMP       (jump)   -> 313
  0299  LOADK     R21 = K20 1
  0300  GETTABLE  R22 = R20[K59('Weight')]
  0301  LOADK     R23 = K20 1
  0302  FORPREP   forprep R21(sBx=8)   -> 311
  0303  SELF      R26 = R0[K31('_AddCell')] (self)
  0304  GETTABLE  R27 = R20[K60('Code')]
  0305  LOADBOOL  R28 = true
  0306  LOADBOOL  R29 = false
  0307  LOADBOOL  R30 = true
  0308  LOADBOOL  R31 = true
  0309  GETTABLE  R32 = R0[K61('m_currentContentGroupTransform')]
  0310  CALL      R25 = call(R25, 0 args, 7 rets)
  0311  FORLOOP   forloop R21(sBx=-9)   -> 303
  0312  JMP       (jump)   -> 321
  0313  SELF      R22 = R0[K31('_AddCell')] (self)
  0314  GETTABLE  R23 = R20[K60('Code')]
  0315  LOADBOOL  R24 = true
  0316  LOADBOOL  R25 = false
  0317  LOADBOOL  R26 = true
  0318  LOADBOOL  R27 = true
  0319  GETTABLE  R28 = R0[K61('m_currentContentGroupTransform')]
  0320  CALL      R21 = call(R21, 0 args, 7 rets)
  0321  TFORCALL  tforcall R16
  0322  TFORLOOP  tforloop R18(sBx=-27)   -> 296
  0323  GETTABLE  R16 = R5[K62('Transform')]
  0324  TEST      if not R16 then   -> -130746
  0325  JMP       (jump)   -> 345
  0326  GETTABUP  R17 = _ENV[K57('ipairs')]
  0327  MOVE      R18 = R0
  0328  CALL      R17 = call(R17, 3 args, 1 rets)
  0329  JMP       (jump)   -> 338
  0330  SELF      R23 = R0[K31('_AddCell')] (self)
  0331  GETTABLE  R24 = R21[K63('Currency')]
  0332  LOADBOOL  R25 = true
  0333  LOADBOOL  R26 = false
  0334  LOADBOOL  R27 = true
  0335  LOADBOOL  R28 = true
  0336  GETTABLE  R29 = R0[K61('m_currentContentGroupTransform')]
  0337  CALL      R22 = call(R22, 0 args, 7 rets)
  0338  TFORCALL  tforcall R17
  0339  TFORLOOP  tforloop R19(sBx=-10)   -> 330
  0340  JMP       (jump)   -> 345
  0341  GETTABLE  R15 = R0[K56('m_currentContentGo')]
  0342  SELF      R16 = R15[K7('SetActive')] (self)
  0343  LOADBOOL  R17 = false
  0344  CALL      R15 = call(R15, 0 args, 2 rets)
  0345  GETTABLE  R15 = R5[K64('Recipes')]
  0346  EQ        if R1 eq K22(nil)   -> -122766
  0347  JMP       (jump)   -> 356
  0348  GETTABLE  R15 = R0[K65('m_cookContentGo')]
  0349  SELF      R16 = R15[K7('SetActive')] (self)
  0350  LOADBOOL  R17 = true
  0351  CALL      R15 = call(R15, 0 args, 2 rets)
  0352  SELF      R16 = R0[K66('UpdateCookContent')] (self)
  0353  GETTABLE  R17 = R5[K64('Recipes')]
  0354  CALL      R15 = call(R15, 0 args, 2 rets)
  0355  JMP       (jump)   -> 360
  0356  GETTABLE  R15 = R0[K65('m_cookContentGo')]
  0357  SELF      R16 = R15[K7('SetActive')] (self)
  0358  LOADBOOL  R17 = false
  0359  CALL      R15 = call(R15, 0 args, 2 rets)
  0360  GETTABUP  R15 = _ENV[K67('LayoutRebuilder')]
  0361  GETTABLE  R15 = R15[K68('ForceRebuildLayoutImmediate')]
  0362  GETTABLE  R16 = R0[K69('m_contentGroup')]
  0363  GETTABLE  R16 = R16[K70('transform')]
  0364  CALL      R15 = call(R15, 0 args, 1 rets)
  0365  GETTABLE  R15 = R0[K69('m_contentGroup')]
  0366  GETTABLE  R15 = R15[K71('preferredHeight')]
  0367  ADD       R15 = K72(210) add R15
  0368  GETTABUP  R16 = _ENV[K39('UIUtil')]
  0369  GETTABLE  R16 = R16[K73('SetSizeDelta')]
  0370  GETTABLE  R17 = R0[K74('m_contentRect')]
  0371  LOADNIL   R18..R18 = nil
  0372  MOVE      R19 = R0
  0373  CALL      R16 = call(R16, 0 args, 3 rets)
  0374  SELF      R17 = R0[K75('_UpdateHotSaleDisplay')] (self)
  0375  CALL      R16 = call(R16, 0 args, 1 rets)
  0376  GETTABUP  R16 = _ENV[K76('EventDispatcher')]
  0377  GETTABLE  R16 = R16[K77('AddListener')]
  0378  GETTABUP  R17 = _ENV[K78('EEventType')]
  0379  GETTABLE  R17 = R17[K79('ShopBuyItemSuccess')]
  0380  MOVE      R18 = R0
  0381  GETTABLE  R19 = R0[K75('_UpdateHotSaleDisplay')]
  0382  LOADBOOL  R20 = true
  0383  CALL      R16 = call(R16, 0 args, 4 rets)
  0384  GETTABUP  R16 = _ENV[K76('EventDispatcher')]
  0385  GETTABLE  R16 = R16[K77('AddListener')]
  0386  GETTABUP  R17 = _ENV[K78('EEventType')]
  0387  GETTABLE  R17 = R17[K80('ShopRefreshed')]
  0388  MOVE      R18 = R0
  0389  GETTABLE  R19 = R0[K75('_UpdateHotSaleDisplay')]
  0390  LOADBOOL  R20 = true
  0391  CALL      R16 = call(R16, 0 args, 4 rets)
  0392  SELF      R17 = R0[K81('_UpdateTestMsg')] (self)
  0393  MOVE      R18 = R0
  0394  MOVE      R19 = R0
  0395  CALL      R16 = call(R16, 0 args, 3 rets)
  0396  RETURN    return R0..R-1
; ---------- proto8 [UpdateCookContent] ----------
  ; fn ?  line 295-313 np=2 va=0 ms=7 code=27 consts=9 upvals=1 protos=1
  ;   K[0]='Table'
  ;   K[1]='IsEmpty'
  ;   K[2]='m_arrRecipe'
  ;   K[3]='m_bInitCookContent'
  ;   K[4]='m_cookLoopGridView'
  ;   K[5]='InitGridView'
  ;   K[6]='SetListItemCount'
  ;   K[7]='RefreshAllShownItem'
  ;   K[8]=true
  ;   upvals: _ENV
  ;   locals: self(0-27), arrRecipe(0-27), cellCount(9-27)
  0000  GETTABUP  R2 = _ENV[K0('Table')]
  0001  GETTABLE  R2 = R2[K1('IsEmpty')]
  0002  MOVE      R3 = R0
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  TEST      if not R2 then   -> -131066
  0005  JMP       (jump)   -> 7
  0006  RETURN    return R0..R-1
  0007  SETTABLE  R0[K2('m_arrRecipe')] = R1
  0008  LEN       R2 = len R0
  0009  GETTABLE  R3 = R0[K3('m_bInitCookContent')]
  0010  TEST      if not R3 then   -> -131059
  0011  JMP       (jump)   -> 18
  0012  GETTABLE  R3 = R0[K4('m_cookLoopGridView')]
  0013  SELF      R4 = R3[K5('InitGridView')] (self)
  0014  MOVE      R5 = R0
  0015  CLOSURE   R6 = closure proto0
  0016  CALL      R3 = call(R3, 0 args, 3 rets)
  0017  JMP       (jump)   -> 25
  0018  GETTABLE  R3 = R0[K4('m_cookLoopGridView')]
  0019  SELF      R4 = R3[K6('SetListItemCount')] (self)
  0020  MOVE      R5 = R0
  0021  CALL      R3 = call(R3, 0 args, 2 rets)
  0022  GETTABLE  R3 = R0[K4('m_cookLoopGridView')]
  0023  SELF      R4 = R3[K7('RefreshAllShownItem')] (self)
  0024  CALL      R3 = call(R3, 0 args, 1 rets)
  0025  SETTABLE  R0[K3('m_bInitCookContent')] = K8(true)
  0026  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 304-306 np=4 va=0 ms=8 code=7 consts=1 upvals=1 protos=0
    ;   K[0]='GetCookGridItemByIndex'
    ;   upvals: self
    ;   locals: loopGridView(0-7), index(0-7), row(0-7), column(0-7)
    0000  GETUPVAL  R4 = self
    0001  SELF      R5 = R4[K0('GetCookGridItemByIndex')] (self)
    0002  MOVE      R6 = R0
    0003  MOVE      R7 = R0
    0004  TAILCALL  tailcall(R4, 0)
    0005  RETURN    return R4..R3
    0006  RETURN    return R0..R-1
; ---------- proto9 [GetCookGridItemByIndex] ----------
  ; fn ?  line 315-325 np=3 va=0 ms=14 code=23 consts=9 upvals=0 protos=0
  ;   K[0]='m_arrRecipe'
  ;   K[1]=1
  ;   K[2]=nil
  ;   K[3]='NewListViewItem'
  ;   K[4]='ItemDetailCellGridView'
  ;   K[5]='gameObject'
  ;   K[6]='GetLuaTable'
  ;   K[7]='Init'
  ;   K[8]='Recipe'
  ;   locals: self(0-23), gridView(0-23), index(0-23), recipe(3-23), item(10-23), tbCell(13-23)
  0000  GETTABLE  R3 = R0[K0('m_arrRecipe')]
  0001  ADD       R4 = K1(1) add R2
  0002  GETTABLE  R3 = R3[R4]
  0003  EQ        if R0 eq K2(nil)   -> -129273
  0004  JMP       (jump)   -> 7
  0005  LOADNIL   R4..R4 = nil
  0006  RETURN    return R4..R3
  0007  SELF      R5 = R1[K3('NewListViewItem')] (self)
  0008  LOADK     R6 = K4 'ItemDetailCellGridView'
  0009  CALL      R4 = call(R4, 1 args, 2 rets)
  0010  GETTABLE  R5 = R4[K5('gameObject')]
  0011  SELF      R6 = R5[K6('GetLuaTable')] (self)
  0012  CALL      R5 = call(R5, 1 args, 1 rets)
  0013  SELF      R7 = R5[K7('Init')] (self)
  0014  GETTABLE  R8 = R3[K8('Recipe')]
  0015  LOADBOOL  R9 = true
  0016  LOADBOOL  R10 = false
  0017  LOADBOOL  R11 = true
  0018  LOADBOOL  R12 = true
  0019  MOVE      R13 = R0
  0020  CALL      R6 = call(R6, 0 args, 7 rets)
  0021  RETURN    return R4..R3
  0022  RETURN    return R0..R-1
; ---------- proto10 [OnDestroy] ----------
  ; fn ?  line 327-329 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
; ---------- proto11 [_AddCell] ----------
  ; fn ?  line 332-339 np=7 va=0 ms=17 code=25 consts=8 upvals=1 protos=0
  ;   K[0]='Object'
  ;   K[1]='Instantiate'
  ;   K[2]='m_itemOriginGo'
  ;   K[3]='SetActive'
  ;   K[4]='GetLuaTable'
  ;   K[5]='Init'
  ;   K[6]='m_arrCells'
  ;   K[7]=1
  ;   upvals: _ENV
  ;   locals: self(0-25), itemType(0-25), isProduceCell(0-25), hasArrow(0-25), forceShow(0-25), hasTipButton(0-25), parent(0-25), cellObj(5-25), cell(10-25)
  0000  GETTABUP  R7 = _ENV[K0('Object')]
  0001  GETTABLE  R7 = R7[K1('Instantiate')]
  0002  GETTABLE  R8 = R0[K2('m_itemOriginGo')]
  0003  MOVE      R9 = R0
  0004  CALL      R7 = call(R7, 1 args, 2 rets)
  0005  SELF      R9 = R7[K3('SetActive')] (self)
  0006  LOADBOOL  R10 = true
  0007  CALL      R8 = call(R8, 0 args, 2 rets)
  0008  SELF      R9 = R7[K4('GetLuaTable')] (self)
  0009  CALL      R8 = call(R8, 1 args, 1 rets)
  0010  SELF      R10 = R8[K5('Init')] (self)
  0011  MOVE      R11 = R0
  0012  MOVE      R12 = R0
  0013  MOVE      R13 = R0
  0014  MOVE      R14 = R0
  0015  MOVE      R15 = R0
  0016  MOVE      R16 = R0
  0017  CALL      R9 = call(R9, 0 args, 7 rets)
  0018  GETTABLE  R9 = R0[K6('m_arrCells')]
  0019  GETTABLE  R10 = R0[K6('m_arrCells')]
  0020  LEN       R10 = len R0
  0021  ADD       R10 = K7(1) add R10
  0022  SETTABLE  R9[R10] = R8
  0023  RETURN    return R8..R7
  0024  RETURN    return R0..R-1
; ---------- proto12 [_UpdateTestMsg] ----------
  ; fn ?  line 341-357 np=3 va=0 ms=10 code=45 consts=16 upvals=1 protos=0
  ;   K[0]='GM'
  ;   K[1]='UIManager'
  ;   K[2]='CanShowTestUI'
  ;   K[3]='m_testText'
  ;   K[4]='gameObject'
  ;   K[5]='SetActive'
  ;   K[6]='string'
  ;   K[7]='format'
  ;   K[8]='%s\nscore: %s\ngold: %s'
  ;   K[9]='ItemDataModel'
  ;   K[10]='GetItemScore'
  ;   K[11]='GetItemGoldNum'
  ;   K[12]='\ndiffScore: '
  ;   K[13]='MainBoardModel'
  ;   K[14]='GetOrderFillEnergyDiff'
  ;   K[15]='text'
  ;   upvals: _ENV
  ;   locals: self(0-45), itemType(0-45), order(0-45), strInfo(32-44)
  0000  GETTABUP  R3 = _ENV[K0('GM')]
  0001  GETTABLE  R3 = R3[K1('UIManager')]
  0002  SELF      R4 = R3[K2('CanShowTestUI')] (self)
  0003  CALL      R3 = call(R3, 1 args, 1 rets)
  0004  TEST      if not R3 then   -> -131065
  0005  JMP       (jump)   -> 12
  0006  GETTABLE  R3 = R0[K3('m_testText')]
  0007  GETTABLE  R3 = R3[K4('gameObject')]
  0008  SELF      R4 = R3[K5('SetActive')] (self)
  0009  LOADBOOL  R5 = false
  0010  CALL      R3 = call(R3, 0 args, 2 rets)
  0011  JMP       (jump)   -> 44
  0012  GETTABLE  R3 = R0[K3('m_testText')]
  0013  GETTABLE  R3 = R3[K4('gameObject')]
  0014  SELF      R4 = R3[K5('SetActive')] (self)
  0015  LOADBOOL  R5 = true
  0016  CALL      R3 = call(R3, 0 args, 2 rets)
  0017  GETTABUP  R3 = _ENV[K6('string')]
  0018  GETTABLE  R3 = R3[K7('format')]
  0019  LOADK     R4 = K8 '%s\nscore: %s\ngold: %s'
  0020  MOVE      R5 = R0
  0021  GETTABUP  R6 = _ENV[K0('GM')]
  0022  GETTABLE  R6 = R6[K9('ItemDataModel')]
  0023  SELF      R7 = R6[K10('GetItemScore')] (self)
  0024  MOVE      R8 = R0
  0025  CALL      R6 = call(R6, 1 args, 2 rets)
  0026  GETTABUP  R7 = _ENV[K0('GM')]
  0027  GETTABLE  R7 = R7[K9('ItemDataModel')]
  0028  SELF      R8 = R7[K11('GetItemGoldNum')] (self)
  0029  MOVE      R9 = R0
  0030  CALL      R7 = call(R7, -1 args, 2 rets)
  0031  CALL      R3 = call(R3, 1 args, -1 rets)
  0032  TEST      if not R2 then   -> -131038
  0033  JMP       (jump)   -> 42
  0034  MOVE      R4 = R0
  0035  LOADK     R5 = K12 '\ndiffScore: '
  0036  GETTABUP  R6 = _ENV[K0('GM')]
  0037  GETTABLE  R6 = R6[K13('MainBoardModel')]
  0038  SELF      R7 = R6[K14('GetOrderFillEnergyDiff')] (self)
  0039  MOVE      R8 = R0
  0040  CALL      R6 = call(R6, 1 args, 2 rets)
  0041  CONCAT    R3 = concat(R3..R4)
  0042  GETTABLE  R4 = R0[K3('m_testText')]
  0043  SETTABLE  R4[K15('text')] = R3
  0044  RETURN    return R0..R-1
; ---------- proto13 [_UpdateHotSaleDisplay] ----------
  ; fn ?  line 359-363 np=1 va=0 ms=8 code=9 consts=3 upvals=1 protos=0
  ;   K[0]='ipairs'
  ;   K[1]='m_arrCells'
  ;   K[2]='UpdateHotSaleDisplay'
  ;   upvals: _ENV
  ;   locals: self(0-9), (for generator)(3-8), (for state)(3-8), (for control)(3-8), _(4-6), cell(4-6)
  0000  GETTABUP  R1 = _ENV[K0('ipairs')]
  0001  GETTABLE  R2 = R0[K1('m_arrCells')]
  0002  CALL      R1 = call(R1, 3 args, 1 rets)
  0003  JMP       (jump)   -> 6
  0004  SELF      R7 = R5[K2('UpdateHotSaleDisplay')] (self)
  0005  CALL      R6 = call(R6, 0 args, 1 rets)
  0006  TFORCALL  tforcall R1
  0007  TFORLOOP  tforloop R3(sBx=-4)   -> 4
  0008  RETURN    return R0..R-1
; ---------- proto14 [OnClickTip] ----------
  ; fn ?  line 365-373 np=1 va=0 ms=13 code=28 consts=10 upvals=1 protos=1
  ;   K[0]='GM'
  ;   K[1]='GameTextModel'
  ;   K[2]='GetText'
  ;   K[3]='reward_info_title'
  ;   K[4]='reward_info_desc'
  ;   K[5]='reward_info_button'
  ;   K[6]='UIManager'
  ;   K[7]='OpenView'
  ;   K[8]='UIPrefabConfigName'
  ;   K[9]='GeneralMsgWindow'
  ;   upvals: _ENV
  ;   locals: self(0-28), titleText(5-28), descriptionText(10-28), buttonText(15-28)
  0000  GETTABUP  R1 = _ENV[K0('GM')]
  0001  GETTABLE  R1 = R1[K1('GameTextModel')]
  0002  SELF      R2 = R1[K2('GetText')] (self)
  0003  LOADK     R3 = K3 'reward_info_title'
  0004  CALL      R1 = call(R1, 1 args, 2 rets)
  0005  GETTABUP  R2 = _ENV[K0('GM')]
  0006  GETTABLE  R2 = R2[K1('GameTextModel')]
  0007  SELF      R3 = R2[K2('GetText')] (self)
  0008  LOADK     R4 = K4 'reward_info_desc'
  0009  CALL      R2 = call(R2, 1 args, 2 rets)
  0010  GETTABUP  R3 = _ENV[K0('GM')]
  0011  GETTABLE  R3 = R3[K1('GameTextModel')]
  0012  SELF      R4 = R3[K2('GetText')] (self)
  0013  LOADK     R5 = K5 'reward_info_button'
  0014  CALL      R3 = call(R3, 1 args, 2 rets)
  0015  GETTABUP  R4 = _ENV[K0('GM')]
  0016  GETTABLE  R4 = R4[K6('UIManager')]
  0017  SELF      R5 = R4[K7('OpenView')] (self)
  0018  GETTABUP  R6 = _ENV[K8('UIPrefabConfigName')]
  0019  GETTABLE  R6 = R6[K9('GeneralMsgWindow')]
  0020  MOVE      R7 = R0
  0021  MOVE      R8 = R0
  0022  MOVE      R9 = R0
  0023  CLOSURE   R10 = closure proto0
  0024  LOADNIL   R11..R11 = nil
  0025  LOADBOOL  R12 = true
  0026  CALL      R4 = call(R4, 0 args, 8 rets)
  0027  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 370-372 np=0 va=0 ms=3 code=7 consts=4 upvals=1 protos=0
    ;   K[0]='CSPlatform'
    ;   K[1]='OpenURL'
    ;   K[2]='NetworkConfig'
    ;   K[3]='GetProbabilityDisclosureLink'
    ;   upvals: _ENV
    0000  GETTABUP  R0 = _ENV[K0('CSPlatform')]
    0001  SELF      R1 = R0[K1('OpenURL')] (self)
    0002  GETTABUP  R2 = _ENV[K2('NetworkConfig')]
    0003  GETTABLE  R2 = R2[K3('GetProbabilityDisclosureLink')]
    0004  CALL      R2 = call(R2, -1 args, 0 rets)
    0005  CALL      R0 = call(R0, 0 args, -1 rets)
    0006  RETURN    return R0..R-1
; ---------- proto15 [OnClickCell] ----------
  ; fn ?  line 376-382 np=2 va=0 ms=6 code=31 consts=15 upvals=1 protos=0
  ;   K[0]='firstRefer'
  ;   K[1]='EItemDetailWindowRefer'
  ;   K[2]='Order'
  ;   K[3]='CookTip'
  ;   K[4]='GM'
  ;   K[5]='ConfigModel'
  ;   K[6]='IsServerControlOpen'
  ;   K[7]='EGeneralConfType'
  ;   K[8]='GeneratorPositionHint'
  ;   K[9]='Table'
  ;   K[10]='IsEmpty'
  ;   K[11]='ItemDataModel'
  ;   K[12]='GetItemGenerators'
  ;   K[13]='ItemDetailWindow'
  ;   K[14]='lastClickItemType'
  ;   upvals: _ENV
  ;   locals: self(0-31), itemType(0-31)
  0000  GETTABLE  R2 = R0[K0('firstRefer')]
  0001  GETTABUP  R3 = _ENV[K1('EItemDetailWindowRefer')]
  0002  GETTABLE  R3 = R3[K2('Order')]
  0003  EQ        if R1 eq R3   -> -130040
  0004  JMP       (jump)   -> 10
  0005  GETTABLE  R2 = R0[K0('firstRefer')]
  0006  GETTABUP  R3 = _ENV[K1('EItemDetailWindowRefer')]
  0007  GETTABLE  R3 = R3[K3('CookTip')]
  0008  EQ        if R0 eq R3   -> -130035
  0009  JMP       (jump)   -> 30
  0010  GETTABUP  R2 = _ENV[K4('GM')]
  0011  GETTABLE  R2 = R2[K5('ConfigModel')]
  0012  SELF      R3 = R2[K6('IsServerControlOpen')] (self)
  0013  GETTABUP  R4 = _ENV[K7('EGeneralConfType')]
  0014  GETTABLE  R4 = R4[K8('GeneratorPositionHint')]
  0015  CALL      R2 = call(R2, 1 args, 2 rets)
  0016  TEST      if not R2 then   -> -131054
  0017  JMP       (jump)   -> 30
  0018  GETTABUP  R2 = _ENV[K9('Table')]
  0019  GETTABLE  R2 = R2[K10('IsEmpty')]
  0020  GETTABUP  R3 = _ENV[K4('GM')]
  0021  GETTABLE  R3 = R3[K11('ItemDataModel')]
  0022  SELF      R4 = R3[K12('GetItemGenerators')] (self)
  0023  MOVE      R5 = R0
  0024  CALL      R3 = call(R3, -1 args, 2 rets)
  0025  CALL      R2 = call(R2, 1 args, -1 rets)
  0026  TEST      if not R2 then   -> -131043
  0027  JMP       (jump)   -> 30
  0028  GETTABUP  R2 = _ENV[K13('ItemDetailWindow')]
  0029  SETTABLE  R2[K14('lastClickItemType')] = R1
  0030  RETURN    return R0..R-1
