# Model_Shop_ShopModel_101.luac
; fn @ShopModel.lua  line 0-0 np=0 va=1 ms=13 code=143 consts=54 upvals=1 protos=42
;   K[0]='ShopModel'
;   K[1]='__index'
;   K[2]='Sec2Day'
;   K[3]='dailyRefreshTime'
;   K[4]='flashRefreshTime'
;   K[5]='energyRefreshTime'
;   K[6]='energyBuyCost'
;   K[7]='eventEnergyBuyCost'
;   K[8]='refreshCostResetTime'
;   K[9]='refreshCost'
;   K[10]='ad'
;   K[11]=28800
;   K[12]='Init'
;   K[13]='OnSyncDataFinished'
;   K[14]='LateInit'
;   K[15]='Destroy'
;   K[16]='_CreateNewUser'
;   K[17]='UpdatePerSecond'
;   K[18]='GetItemData'
;   K[19]='BuyItem'
;   K[20]='GetItemIdsDailyDeals'
;   K[21]='HasFreeDailyDeals'
;   K[22]='GetRefreshTimeDailyDeals'
;   K[23]='_TryToRefreshDailyDeals'
;   K[24]='_RefreshDailyDeals'
;   K[25]='GetItemIdsFlashSale'
;   K[26]='IsItemInStock'
;   K[27]='GetFlashSalePassTimePercentage'
;   K[28]='GetResetTimeForRefreshCost'
;   K[29]='_TryToResetRefreshCost'
;   K[30]='_ResetRefreshCost'
;   K[31]='GetRefreshGemCost'
;   K[32]='RefreshFlashSaleByGemCost'
;   K[33]='RefreshFlashSaleByDayRefresh'
;   K[34]='GetRefreshTimeFlashSale'
;   K[35]='_TryToRefreshFlashSale'
;   K[36]='_RefreshFlashSale'
;   K[37]='GetEnergyDatas'
;   K[38]='GetRefreshTimeEnergy'
;   K[39]='GetBuyEnergyGemCost'
;   K[40]='OpenEnergyWindow'
;   K[41]='IsEnergyFreeRefill'
;   K[42]='BuyEnergy'
;   K[43]='_TryToRefreshEnergy'
;   K[44]='_RefreshEnergy'
;   K[45]='GetDiamondsDatas'
;   K[46]='BuyDiamonds'
;   K[47]='GetShopItemDB'
;   K[48]='GetData'
;   K[49]='FromSyncData'
;   K[50]='SyncShopItem'
;   K[51]='GetUnlockedOrderConfigs'
;   K[52]='IsShopTypeUnlocked'
;   K[53]='OnLackOfGem'
;   upvals: _ENV
;   locals: sec2Day(6-143), DBColumnFreshTimeDailyDeals(7-143), DBColumnFreshTimeFlashSale(8-143), DBColumnFreshTimeEnergy(9-143), DBColumnBuyCostEnergy(10-143), DBColumnBuyCostEventEnergy(11-143), DBColumnResetTimeForRefreshCost(12-143), DBColumnRefreshCost(13-143), ShopPropertyTypeAd(14-143), FLASH_SALE_REFRESH_DURATION(15-143), mapEnergyDatas(91-143)
0000  NEWTABLE  R0 = {} (0 items)
0001  SETTABUP  _ENV[K0('ShopModel')] = R0
0002  GETTABUP  R0 = _ENV[K0('ShopModel')]
0003  GETTABUP  R1 = _ENV[K0('ShopModel')]
0004  SETTABLE  R0[K1('__index')] = R1
0005  GETTABUP  R0 = _ENV[K2('Sec2Day')]
0006  LOADK     R1 = K3 'dailyRefreshTime'
0007  LOADK     R2 = K4 'flashRefreshTime'
0008  LOADK     R3 = K5 'energyRefreshTime'
0009  LOADK     R4 = K6 'energyBuyCost'
0010  LOADK     R5 = K7 'eventEnergyBuyCost'
0011  LOADK     R6 = K8 'refreshCostResetTime'
0012  LOADK     R7 = K9 'refreshCost'
0013  LOADK     R8 = K10 'ad'
0014  LOADK     R9 = K11 28800
0015  GETTABUP  R10 = _ENV[K0('ShopModel')]
0016  CLOSURE   R11 = closure proto0
0017  SETTABLE  R10[K12('Init')] = R11
0018  GETTABUP  R10 = _ENV[K0('ShopModel')]
0019  CLOSURE   R11 = closure proto1
0020  SETTABLE  R10[K13('OnSyncDataFinished')] = R11
0021  GETTABUP  R10 = _ENV[K0('ShopModel')]
0022  CLOSURE   R11 = closure proto2
0023  SETTABLE  R10[K14('LateInit')] = R11
0024  GETTABUP  R10 = _ENV[K0('ShopModel')]
0025  CLOSURE   R11 = closure proto3
0026  SETTABLE  R10[K15('Destroy')] = R11
0027  GETTABUP  R10 = _ENV[K0('ShopModel')]
0028  CLOSURE   R11 = closure proto4
0029  SETTABLE  R10[K16('_CreateNewUser')] = R11
0030  GETTABUP  R10 = _ENV[K0('ShopModel')]
0031  CLOSURE   R11 = closure proto5
0032  SETTABLE  R10[K17('UpdatePerSecond')] = R11
0033  GETTABUP  R10 = _ENV[K0('ShopModel')]
0034  CLOSURE   R11 = closure proto6
0035  SETTABLE  R10[K18('GetItemData')] = R11
0036  GETTABUP  R10 = _ENV[K0('ShopModel')]
0037  CLOSURE   R11 = closure proto7
0038  SETTABLE  R10[K19('BuyItem')] = R11
0039  GETTABUP  R10 = _ENV[K0('ShopModel')]
0040  CLOSURE   R11 = closure proto8
0041  SETTABLE  R10[K20('GetItemIdsDailyDeals')] = R11
0042  GETTABUP  R10 = _ENV[K0('ShopModel')]
0043  CLOSURE   R11 = closure proto9
0044  SETTABLE  R10[K21('HasFreeDailyDeals')] = R11
0045  GETTABUP  R10 = _ENV[K0('ShopModel')]
0046  CLOSURE   R11 = closure proto10
0047  SETTABLE  R10[K22('GetRefreshTimeDailyDeals')] = R11
0048  GETTABUP  R10 = _ENV[K0('ShopModel')]
0049  CLOSURE   R11 = closure proto11
0050  SETTABLE  R10[K23('_TryToRefreshDailyDeals')] = R11
0051  GETTABUP  R10 = _ENV[K0('ShopModel')]
0052  CLOSURE   R11 = closure proto12
0053  SETTABLE  R10[K24('_RefreshDailyDeals')] = R11
0054  GETTABUP  R10 = _ENV[K0('ShopModel')]
0055  CLOSURE   R11 = closure proto13
0056  SETTABLE  R10[K25('GetItemIdsFlashSale')] = R11
0057  GETTABUP  R10 = _ENV[K0('ShopModel')]
0058  CLOSURE   R11 = closure proto14
0059  SETTABLE  R10[K26('IsItemInStock')] = R11
0060  GETTABUP  R10 = _ENV[K0('ShopModel')]
0061  CLOSURE   R11 = closure proto15
0062  SETTABLE  R10[K27('GetFlashSalePassTimePercentage')] = R11
0063  GETTABUP  R10 = _ENV[K0('ShopModel')]
0064  CLOSURE   R11 = closure proto16
0065  SETTABLE  R10[K28('GetResetTimeForRefreshCost')] = R11
0066  GETTABUP  R10 = _ENV[K0('ShopModel')]
0067  CLOSURE   R11 = closure proto17
0068  SETTABLE  R10[K29('_TryToResetRefreshCost')] = R11
0069  GETTABUP  R10 = _ENV[K0('ShopModel')]
0070  CLOSURE   R11 = closure proto18
0071  SETTABLE  R10[K30('_ResetRefreshCost')] = R11
0072  GETTABUP  R10 = _ENV[K0('ShopModel')]
0073  CLOSURE   R11 = closure proto19
0074  SETTABLE  R10[K31('GetRefreshGemCost')] = R11
0075  GETTABUP  R10 = _ENV[K0('ShopModel')]
0076  CLOSURE   R11 = closure proto20
0077  SETTABLE  R10[K32('RefreshFlashSaleByGemCost')] = R11
0078  GETTABUP  R10 = _ENV[K0('ShopModel')]
0079  CLOSURE   R11 = closure proto21
0080  SETTABLE  R10[K33('RefreshFlashSaleByDayRefresh')] = R11
0081  GETTABUP  R10 = _ENV[K0('ShopModel')]
0082  CLOSURE   R11 = closure proto22
0083  SETTABLE  R10[K34('GetRefreshTimeFlashSale')] = R11
0084  GETTABUP  R10 = _ENV[K0('ShopModel')]
0085  CLOSURE   R11 = closure proto23
0086  SETTABLE  R10[K35('_TryToRefreshFlashSale')] = R11
0087  GETTABUP  R10 = _ENV[K0('ShopModel')]
0088  CLOSURE   R11 = closure proto24
0089  SETTABLE  R10[K36('_RefreshFlashSale')] = R11
0090  LOADNIL   R10..R10 = nil
0091  GETTABUP  R11 = _ENV[K0('ShopModel')]
0092  CLOSURE   R12 = closure proto25
0093  SETTABLE  R11[K37('GetEnergyDatas')] = R12
0094  GETTABUP  R11 = _ENV[K0('ShopModel')]
0095  CLOSURE   R12 = closure proto26
0096  SETTABLE  R11[K38('GetRefreshTimeEnergy')] = R12
0097  GETTABUP  R11 = _ENV[K0('ShopModel')]
0098  CLOSURE   R12 = closure proto27
0099  SETTABLE  R11[K39('GetBuyEnergyGemCost')] = R12
0100  GETTABUP  R11 = _ENV[K0('ShopModel')]
0101  CLOSURE   R12 = closure proto28
0102  SETTABLE  R11[K40('OpenEnergyWindow')] = R12
0103  GETTABUP  R11 = _ENV[K0('ShopModel')]
0104  CLOSURE   R12 = closure proto29
0105  SETTABLE  R11[K41('IsEnergyFreeRefill')] = R12
0106  GETTABUP  R11 = _ENV[K0('ShopModel')]
0107  CLOSURE   R12 = closure proto30
0108  SETTABLE  R11[K42('BuyEnergy')] = R12
0109  GETTABUP  R11 = _ENV[K0('ShopModel')]
0110  CLOSURE   R12 = closure proto31
0111  SETTABLE  R11[K43('_TryToRefreshEnergy')] = R12
0112  GETTABUP  R11 = _ENV[K0('ShopModel')]
0113  CLOSURE   R12 = closure proto32
0114  SETTABLE  R11[K44('_RefreshEnergy')] = R12
0115  GETTABUP  R11 = _ENV[K0('ShopModel')]
0116  CLOSURE   R12 = closure proto33
0117  SETTABLE  R11[K45('GetDiamondsDatas')] = R12
0118  GETTABUP  R11 = _ENV[K0('ShopModel')]
0119  CLOSURE   R12 = closure proto34
0120  SETTABLE  R11[K46('BuyDiamonds')] = R12
0121  GETTABUP  R11 = _ENV[K0('ShopModel')]
0122  CLOSURE   R12 = closure proto35
0123  SETTABLE  R11[K47('GetShopItemDB')] = R12
0124  GETTABUP  R11 = _ENV[K0('ShopModel')]
0125  CLOSURE   R12 = closure proto36
0126  SETTABLE  R11[K48('GetData')] = R12
0127  GETTABUP  R11 = _ENV[K0('ShopModel')]
0128  CLOSURE   R12 = closure proto37
0129  SETTABLE  R11[K49('FromSyncData')] = R12
0130  GETTABUP  R11 = _ENV[K0('ShopModel')]
0131  CLOSURE   R12 = closure proto38
0132  SETTABLE  R11[K50('SyncShopItem')] = R12
0133  GETTABUP  R11 = _ENV[K0('ShopModel')]
0134  CLOSURE   R12 = closure proto39
0135  SETTABLE  R11[K51('GetUnlockedOrderConfigs')] = R12
0136  GETTABUP  R11 = _ENV[K0('ShopModel')]
0137  CLOSURE   R12 = closure proto40
0138  SETTABLE  R11[K52('IsShopTypeUnlocked')] = R12
0139  GETTABUP  R11 = _ENV[K0('ShopModel')]
0140  CLOSURE   R12 = closure proto41
0141  SETTABLE  R11[K53('OnLackOfGem')] = R12
0142  RETURN    return R0..R-1
; ---------- proto0 [Init] ----------
  ; fn ?  line 20-25 np=1 va=0 ms=4 code=13 consts=9 upvals=1 protos=0
  ;   K[0]='m_shopDB'
  ;   K[1]='GM'
  ;   K[2]='DBTableManager'
  ;   K[3]='GetTable'
  ;   K[4]='EDBTableConfigs'
  ;   K[5]='Shop'
  ;   K[6]='m_itemDBManager'
  ;   K[7]='ShopItemDBManager'
  ;   K[8]='Init'
  ;   upvals: _ENV
  ;   locals: self(0-13)
  0000  GETTABUP  R1 = _ENV[K1('GM')]
  0001  GETTABLE  R1 = R1[K2('DBTableManager')]
  0002  SELF      R2 = R1[K3('GetTable')] (self)
  0003  GETTABUP  R3 = _ENV[K4('EDBTableConfigs')]
  0004  GETTABLE  R3 = R3[K5('Shop')]
  0005  CALL      R1 = call(R1, 1 args, 2 rets)
  0006  SETTABLE  R0[K0('m_shopDB')] = R1
  0007  GETTABUP  R1 = _ENV[K7('ShopItemDBManager')]
  0008  SETTABLE  R0[K6('m_itemDBManager')] = R1
  0009  GETTABLE  R1 = R0[K6('m_itemDBManager')]
  0010  SELF      R2 = R1[K8('Init')] (self)
  0011  CALL      R1 = call(R1, 0 args, 1 rets)
  0012  RETURN    return R0..R-1
; ---------- proto1 [OnSyncDataFinished] ----------
  ; fn ?  line 27-31 np=1 va=0 ms=3 code=8 consts=3 upvals=0 protos=0
  ;   K[0]='m_shopDB'
  ;   K[1]='IsEmpty'
  ;   K[2]='_CreateNewUser'
  ;   locals: self(0-8)
  0000  GETTABLE  R1 = R0[K0('m_shopDB')]
  0001  SELF      R2 = R1[K1('IsEmpty')] (self)
  0002  CALL      R1 = call(R1, 1 args, 1 rets)
  0003  TEST      if not R1 then   -> -131067
  0004  JMP       (jump)   -> 7
  0005  SELF      R2 = R0[K2('_CreateNewUser')] (self)
  0006  CALL      R1 = call(R1, 0 args, 1 rets)
  0007  RETURN    return R0..R-1
; ---------- proto2 [LateInit] ----------
  ; fn ?  line 33-52 np=1 va=0 ms=16 code=43 consts=17 upvals=1 protos=0
  ;   K[0]='m_lateInited'
  ;   K[1]=true
  ;   K[2]='UpdatePerSecond'
  ;   K[3]='GetItemIdsFlashSale'
  ;   K[4]='ipairs'
  ;   K[5]='GetItemData'
  ;   K[6]='itemCode'
  ;   K[7]='GM'
  ;   K[8]='ItemDataModel'
  ;   K[9]='IsItemExist'
  ;   K[10]='BIManager'
  ;   K[11]='LogProject'
  ;   K[12]='EBIType'
  ;   K[13]='ItemNotFound'
  ;   K[14]='Shop itemCode:'
  ;   K[15]='tostring'
  ;   K[16]='RefreshFlashSaleByDayRefresh'
  ;   upvals: _ENV
  ;   locals: self(0-43), bAllValid(4-43), ids(9-43), (for generator)(12-38), (for state)(12-38), (for control)(12-38), _(13-36), id(13-36), itemData(16-36), code(17-36)
  0000  SETTABLE  R0[K0('m_lateInited')] = K1(true)
  0001  SELF      R2 = R0[K2('UpdatePerSecond')] (self)
  0002  CALL      R1 = call(R1, 0 args, 1 rets)
  0003  LOADBOOL  R1 = true
  0004  SELF      R3 = R0[K3('GetItemIdsFlashSale')] (self)
  0005  CALL      R2 = call(R2, 1 args, 1 rets)
  0006  TEST      if not R2 then   -> -131063
  0007  JMP       (jump)   -> 9
  0008  NEWTABLE  R2 = {} (0 items)
  0009  GETTABUP  R3 = _ENV[K4('ipairs')]
  0010  MOVE      R4 = R0
  0011  CALL      R3 = call(R3, 3 args, 1 rets)
  0012  JMP       (jump)   -> 36
  0013  SELF      R9 = R0[K5('GetItemData')] (self)
  0014  MOVE      R10 = R0
  0015  CALL      R8 = call(R8, 1 args, 2 rets)
  0016  GETTABLE  R9 = R8[K6('itemCode')]
  0017  GETTABUP  R10 = _ENV[K7('GM')]
  0018  GETTABLE  R10 = R10[K8('ItemDataModel')]
  0019  SELF      R11 = R10[K9('IsItemExist')] (self)
  0020  MOVE      R12 = R0
  0021  CALL      R10 = call(R10, 1 args, 2 rets)
  0022  TEST      if not R10 then   -> -131047
  0023  JMP       (jump)   -> 36
  0024  LOADBOOL  R1 = false
  0025  GETTABUP  R10 = _ENV[K7('GM')]
  0026  GETTABLE  R10 = R10[K10('BIManager')]
  0027  SELF      R11 = R10[K11('LogProject')] (self)
  0028  GETTABUP  R12 = _ENV[K12('EBIType')]
  0029  GETTABLE  R12 = R12[K13('ItemNotFound')]
  0030  LOADK     R13 = K14 'Shop itemCode:'
  0031  GETTABUP  R14 = _ENV[K15('tostring')]
  0032  MOVE      R15 = R0
  0033  CALL      R14 = call(R14, 1 args, 1 rets)
  0034  CONCAT    R13 = concat(R13..R13)
  0035  CALL      R10 = call(R10, 0 args, 3 rets)
  0036  TFORCALL  tforcall R3
  0037  TFORLOOP  tforloop R5(sBx=-25)   -> 13
  0038  TEST      if not R1 then   -> -131031
  0039  JMP       (jump)   -> 42
  0040  SELF      R4 = R0[K16('RefreshFlashSaleByDayRefresh')] (self)
  0041  CALL      R3 = call(R3, 0 args, 1 rets)
  0042  RETURN    return R0..R-1
; ---------- proto3 [Destroy] ----------
  ; fn ?  line 54-56 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
; ---------- proto4 [_CreateNewUser] ----------
  ; fn ?  line 58-80 np=1 va=0 ms=7 code=48 consts=8 upvals=7 protos=0
  ;   K[0]='DB_VALUE_KEY'
  ;   K[1]=0
  ;   K[2]='GM'
  ;   K[3]='ShopDataModel'
  ;   K[4]='GetBuyEnergyBaseGemCost'
  ;   K[5]='GeRefreshBaseGemCost'
  ;   K[6]='m_shopDB'
  ;   K[7]='BatchSet'
  ;   upvals: DBColumnFreshTimeDailyDeals, _ENV, DBColumnFreshTimeFlashSale, DBColumnFreshTimeEnergy, DBColumnBuyCostEnergy, DBColumnBuyCostEventEnergy, DBColumnRefreshCost
  ;   locals: self(0-48), data(43-48)
  0000  NEWTABLE  R1 = {} (0 items)
  0001  GETUPVAL  R2 = DBColumnFreshTimeDailyDeals
  0002  NEWTABLE  R3 = {} (0 items)
  0003  GETTABUP  R4 = _ENV[K0('DB_VALUE_KEY')]
  0004  SETTABLE  R3[R4] = K1(0)
  0005  SETTABLE  R1[R2] = R3
  0006  GETUPVAL  R2 = DBColumnFreshTimeDailyDeals
  0007  NEWTABLE  R3 = {} (0 items)
  0008  GETTABUP  R4 = _ENV[K0('DB_VALUE_KEY')]
  0009  SETTABLE  R3[R4] = K1(0)
  0010  SETTABLE  R1[R2] = R3
  0011  GETUPVAL  R2 = DBColumnFreshTimeDailyDeals
  0012  NEWTABLE  R3 = {} (0 items)
  0013  GETTABUP  R4 = _ENV[K0('DB_VALUE_KEY')]
  0014  SETTABLE  R3[R4] = K1(0)
  0015  SETTABLE  R1[R2] = R3
  0016  GETUPVAL  R2 = DBColumnFreshTimeDailyDeals
  0017  NEWTABLE  R3 = {} (0 items)
  0018  GETTABUP  R4 = _ENV[K0('DB_VALUE_KEY')]
  0019  GETTABUP  R5 = _ENV[K2('GM')]
  0020  GETTABLE  R5 = R5[K3('ShopDataModel')]
  0021  SELF      R6 = R5[K4('GetBuyEnergyBaseGemCost')] (self)
  0022  CALL      R5 = call(R5, 1 args, 1 rets)
  0023  SETTABLE  R3[R4] = R5
  0024  SETTABLE  R1[R2] = R3
  0025  GETUPVAL  R2 = DBColumnFreshTimeDailyDeals
  0026  NEWTABLE  R3 = {} (0 items)
  0027  GETTABUP  R4 = _ENV[K0('DB_VALUE_KEY')]
  0028  GETTABUP  R5 = _ENV[K2('GM')]
  0029  GETTABLE  R5 = R5[K3('ShopDataModel')]
  0030  SELF      R6 = R5[K4('GetBuyEnergyBaseGemCost')] (self)
  0031  CALL      R5 = call(R5, 1 args, 1 rets)
  0032  SETTABLE  R3[R4] = R5
  0033  SETTABLE  R1[R2] = R3
  0034  GETUPVAL  R2 = DBColumnFreshTimeDailyDeals
  0035  NEWTABLE  R3 = {} (0 items)
  0036  GETTABUP  R4 = _ENV[K0('DB_VALUE_KEY')]
  0037  GETTABUP  R5 = _ENV[K2('GM')]
  0038  GETTABLE  R5 = R5[K3('ShopDataModel')]
  0039  SELF      R6 = R5[K5('GeRefreshBaseGemCost')] (self)
  0040  CALL      R5 = call(R5, 1 args, 1 rets)
  0041  SETTABLE  R3[R4] = R5
  0042  SETTABLE  R1[R2] = R3
  0043  GETTABLE  R2 = R0[K6('m_shopDB')]
  0044  SELF      R3 = R2[K7('BatchSet')] (self)
  0045  MOVE      R4 = R0
  0046  CALL      R2 = call(R2, 0 args, 2 rets)
  0047  RETURN    return R0..R-1
; ---------- proto5 [UpdatePerSecond] ----------
  ; fn ?  line 82-92 np=1 va=0 ms=5 code=21 consts=8 upvals=1 protos=0
  ;   K[0]='m_lateInited'
  ;   K[1]='GM'
  ;   K[2]='GameModel'
  ;   K[3]='GetServerTime'
  ;   K[4]='_TryToRefreshDailyDeals'
  ;   K[5]='_TryToRefreshFlashSale'
  ;   K[6]='_TryToRefreshEnergy'
  ;   K[7]='_TryToResetRefreshCost'
  ;   upvals: _ENV
  ;   locals: self(0-21), serverTime(8-21)
  0000  GETTABLE  R1 = R0[K0('m_lateInited')]
  0001  TEST      if not R1 then   -> -131068
  0002  JMP       (jump)   -> 4
  0003  RETURN    return R0..R-1
  0004  GETTABUP  R1 = _ENV[K1('GM')]
  0005  GETTABLE  R1 = R1[K2('GameModel')]
  0006  SELF      R2 = R1[K3('GetServerTime')] (self)
  0007  CALL      R1 = call(R1, 1 args, 1 rets)
  0008  SELF      R3 = R0[K4('_TryToRefreshDailyDeals')] (self)
  0009  MOVE      R4 = R0
  0010  CALL      R2 = call(R2, 0 args, 2 rets)
  0011  SELF      R3 = R0[K5('_TryToRefreshFlashSale')] (self)
  0012  MOVE      R4 = R0
  0013  CALL      R2 = call(R2, 0 args, 2 rets)
  0014  SELF      R3 = R0[K6('_TryToRefreshEnergy')] (self)
  0015  MOVE      R4 = R0
  0016  CALL      R2 = call(R2, 0 args, 2 rets)
  0017  SELF      R3 = R0[K7('_TryToResetRefreshCost')] (self)
  0018  MOVE      R4 = R0
  0019  CALL      R2 = call(R2, 0 args, 2 rets)
  0020  RETURN    return R0..R-1
; ---------- proto6 [GetItemData] ----------
  ; fn ?  line 95-97 np=2 va=0 ms=5 code=6 consts=2 upvals=0 protos=0
  ;   K[0]='m_itemDBManager'
  ;   K[1]='GetShopItemData'
  ;   locals: self(0-6), itemId(0-6)
  0000  GETTABLE  R2 = R0[K0('m_itemDBManager')]
  0001  SELF      R3 = R2[K1('GetShopItemData')] (self)
  0002  MOVE      R4 = R0
  0003  TAILCALL  tailcall(R2, 0)
  0004  RETURN    return R2..R1
  0005  RETURN    return R0..R-1
; ---------- proto7 [BuyItem] ----------
  ; fn ?  line 102-152 np=5 va=0 ms=15 code=153 consts=52 upvals=2 protos=0
  ;   K[0]='m_itemDBManager'
  ;   K[1]='GetShopItemData'
  ;   K[2]='itemCode'
  ;   K[3]=nil
  ;   K[4]='leftCount'
  ;   K[5]=0
  ;   K[6]='costCount'
  ;   K[7]='GM'
  ;   K[8]='PropertyDataManager'
  ;   K[9]='Consume'
  ;   K[10]='costType'
  ;   K[11]='EBIType'
  ;   K[12]='ShopBuy'
  ;   K[13]='GetPropertyNum'
  ;   K[14]='EPropertyType'
  ;   K[15]='Gem'
  ;   K[16]='shopGemCost'
  ;   K[17]='PROPERTY_TYPE'
  ;   K[18]='PROPERTY_COUNT'
  ;   K[19]=1
  ;   K[20]='cost'
  ;   K[21]='RewardApi'
  ;   K[22]='AcquireRewardsLogic'
  ;   K[23]='EPropertySource'
  ;   K[24]='Buy'
  ;   K[25]='ERewardScene'
  ;   K[26]='Other'
  ;   K[27]='EGameMode'
  ;   K[28]='Board'
  ;   K[29]='CacheItemType'
  ;   K[30]='Stack'
  ;   K[31]='BIManager'
  ;   K[32]='LogStore'
  ;   K[33]='shopType'
  ;   K[34]='UIManager'
  ;   K[35]='IsViewExisting'
  ;   K[36]='UIPrefabConfigName'
  ;   K[37]='ShopWindow'
  ;   K[38]='OpenView'
  ;   K[39]='AnimatedRewardWindow'
  ;   K[40]='rewards_window_title_shop'
  ;   K[41]='AudioModel'
  ;   K[42]='PlayEffect'
  ;   K[43]='AudioFileConfigName'
  ;   K[44]='SfxShopBuy'
  ;   K[45]='CostLeftCount'
  ;   K[46]='EventDispatcher'
  ;   K[47]='DispatchEvent'
  ;   K[48]='EEventType'
  ;   K[49]='ShopBuyItemSuccess'
  ;   K[50]='shopData'
  ;   K[51]='uiPos'
  ;   upvals: _ENV, ShopPropertyTypeAd
  ;   locals: self(0-153), eShopType(0-153), itemId(0-153), watchAd(0-153), uiPos(0-153), shopData(4-153), cost(40-150), formattedRewards(63-150)
  0000  GETTABLE  R5 = R0[K0('m_itemDBManager')]
  0001  SELF      R6 = R5[K1('GetShopItemData')] (self)
  0002  MOVE      R7 = R0
  0003  CALL      R5 = call(R5, 1 args, 2 rets)
  0004  GETTABLE  R6 = R5[K2('itemCode')]
  0005  EQ        if R1 eq K3(nil)   -> -127734
  0006  JMP       (jump)   -> 150
  0007  GETTABLE  R6 = R5[K4('leftCount')]
  0008  LE        if R0 le K5(0)   -> -127729
  0009  JMP       (jump)   -> 12
  0010  LOADBOOL  R6 = false
  0011  RETURN    return R6..R5
  0012  TEST      if not R3 then   -> -131057
  0013  JMP       (jump)   -> 39
  0014  GETTABLE  R6 = R5[K6('costCount')]
  0015  LT        if R0 lt R6   -> 2583
  0016  JMP       (jump)   -> 39
  0017  GETTABUP  R6 = _ENV[K7('GM')]
  0018  GETTABLE  R6 = R6[K8('PropertyDataManager')]
  0019  SELF      R7 = R6[K9('Consume')] (self)
  0020  GETTABLE  R8 = R5[K10('costType')]
  0021  GETTABLE  R9 = R5[K6('costCount')]
  0022  GETTABUP  R10 = _ENV[K11('EBIType')]
  0023  GETTABLE  R10 = R10[K12('ShopBuy')]
  0024  LOADBOOL  R11 = false
  0025  GETTABLE  R12 = R5[K2('itemCode')]
  0026  CALL      R6 = call(R6, 1 args, 6 rets)
  0027  TEST      if not R6 then   -> -131042
  0028  JMP       (jump)   -> 39
  0029  LOADBOOL  R6 = false
  0030  GETTABLE  R7 = R5[K10('costType')]
  0031  GETTABLE  R8 = R5[K6('costCount')]
  0032  GETTABUP  R9 = _ENV[K7('GM')]
  0033  GETTABLE  R9 = R9[K8('PropertyDataManager')]
  0034  SELF      R10 = R9[K13('GetPropertyNum')] (self)
  0035  GETTABLE  R11 = R5[K10('costType')]
  0036  CALL      R9 = call(R9, 1 args, 2 rets)
  0037  SUB       R8 = R9 sub R8
  0038  RETURN    return R6..R5
  0039  LOADNIL   R6..R6 = nil
  0040  TEST      if not R3 then   -> -131029
  0041  JMP       (jump)   -> 54
  0042  GETTABLE  R7 = R5[K6('costCount')]
  0043  LT        if R0 lt R7   -> 2612
  0044  JMP       (jump)   -> 54
  0045  GETTABLE  R7 = R5[K10('costType')]
  0046  GETTABUP  R8 = _ENV[K14('EPropertyType')]
  0047  GETTABLE  R8 = R8[K15('Gem')]
  0048  EQ        if R0 eq R8   -> -127430
  0049  JMP       (jump)   -> 54
  0050  NEWTABLE  R7 = {} (0 items)
  0051  GETTABLE  R8 = R5[K6('costCount')]
  0052  SETTABLE  R7[K16('shopGemCost')] = R8
  0053  MOVE      R6 = R0
  0054  NEWTABLE  R7 = {} (1 items)
  0055  NEWTABLE  R8 = {} (0 items)
  0056  GETTABUP  R9 = _ENV[K17('PROPERTY_TYPE')]
  0057  GETTABLE  R10 = R5[K2('itemCode')]
  0058  SETTABLE  R8[R9] = R10
  0059  GETTABUP  R9 = _ENV[K18('PROPERTY_COUNT')]
  0060  SETTABLE  R8[R9] = K19(1)
  0061  SETTABLE  R8[K20('cost')] = R6
  0062  SETLIST   setlist R7[B=1,C=1]
  0063  GETTABUP  R8 = _ENV[K21('RewardApi')]
  0064  GETTABLE  R8 = R8[K22('AcquireRewardsLogic')]
  0065  MOVE      R9 = R0
  0066  GETTABUP  R10 = _ENV[K23('EPropertySource')]
  0067  GETTABLE  R10 = R10[K24('Buy')]
  0068  GETTABUP  R11 = _ENV[K11('EBIType')]
  0069  GETTABLE  R11 = R11[K12('ShopBuy')]
  0070  GETTABUP  R12 = _ENV[K25('ERewardScene')]
  0071  GETTABLE  R12 = R12[K26('Other')]
  0072  GETTABUP  R13 = _ENV[K27('EGameMode')]
  0073  GETTABLE  R13 = R13[K28('Board')]
  0074  GETTABUP  R14 = _ENV[K29('CacheItemType')]
  0075  GETTABLE  R14 = R14[K30('Stack')]
  0076  CALL      R8 = call(R8, 0 args, 6 rets)
  0077  TEST      if not R3 then   -> -130993
  0078  JMP       (jump)   -> 89
  0079  GETTABUP  R8 = _ENV[K7('GM')]
  0080  GETTABLE  R8 = R8[K31('BIManager')]
  0081  SELF      R9 = R8[K32('LogStore')] (self)
  0082  GETUPVAL  R10 = _ENV
  0083  LOADK     R11 = K19 1
  0084  GETTABLE  R12 = R5[K2('itemCode')]
  0085  LOADK     R13 = K19 1
  0086  GETTABLE  R14 = R5[K33('shopType')]
  0087  CALL      R8 = call(R8, 0 args, 6 rets)
  0088  JMP       (jump)   -> 130
  0089  GETTABUP  R8 = _ENV[K7('GM')]
  0090  GETTABLE  R8 = R8[K31('BIManager')]
  0091  SELF      R9 = R8[K32('LogStore')] (self)
  0092  GETTABLE  R10 = R5[K10('costType')]
  0093  GETTABLE  R11 = R5[K6('costCount')]
  0094  GETTABLE  R12 = R5[K2('itemCode')]
  0095  LOADK     R13 = K19 1
  0096  GETTABLE  R14 = R5[K33('shopType')]
  0097  CALL      R8 = call(R8, 0 args, 6 rets)
  0098  GETTABUP  R8 = _ENV[K7('GM')]
  0099  GETTABLE  R8 = R8[K34('UIManager')]
  0100  SELF      R9 = R8[K35('IsViewExisting')] (self)
  0101  GETTABUP  R10 = _ENV[K36('UIPrefabConfigName')]
  0102  GETTABLE  R10 = R10[K37('ShopWindow')]
  0103  CALL      R8 = call(R8, 1 args, 2 rets)
  0104  TEST      if not R8 then   -> -130966
  0105  JMP       (jump)   -> 124
  0106  GETTABUP  R8 = _ENV[K7('GM')]
  0107  GETTABLE  R8 = R8[K34('UIManager')]
  0108  SELF      R9 = R8[K38('OpenView')] (self)
  0109  GETTABUP  R10 = _ENV[K36('UIPrefabConfigName')]
  0110  GETTABLE  R10 = R10[K39('AnimatedRewardWindow')]
  0111  NEWTABLE  R11 = {} (1 items)
  0112  NEWTABLE  R12 = {} (0 items)
  0113  GETTABUP  R13 = _ENV[K17('PROPERTY_TYPE')]
  0114  GETTABLE  R14 = R5[K2('itemCode')]
  0115  SETTABLE  R12[R13] = R14
  0116  GETTABUP  R13 = _ENV[K18('PROPERTY_COUNT')]
  0117  SETTABLE  R12[R13] = K19(1)
  0118  SETLIST   setlist R11[B=1,C=1]
  0119  LOADK     R12 = K40 'rewards_window_title_shop'
  0120  LOADBOOL  R13 = false
  0121  GETTABUP  R14 = _ENV[K25('ERewardScene')]
  0122  GETTABLE  R14 = R14[K26('Other')]
  0123  CALL      R8 = call(R8, 0 args, 6 rets)
  0124  GETTABUP  R8 = _ENV[K7('GM')]
  0125  GETTABLE  R8 = R8[K41('AudioModel')]
  0126  SELF      R9 = R8[K42('PlayEffect')] (self)
  0127  GETTABUP  R10 = _ENV[K43('AudioFileConfigName')]
  0128  GETTABLE  R10 = R10[K44('SfxShopBuy')]
  0129  CALL      R8 = call(R8, 0 args, 2 rets)
  0130  GETTABLE  R8 = R5[K4('leftCount')]
  0131  LT        if R0 lt R8   -> 2701
  0132  JMP       (jump)   -> 150
  0133  GETTABLE  R8 = R0[K0('m_itemDBManager')]
  0134  SELF      R9 = R8[K45('CostLeftCount')] (self)
  0135  MOVE      R10 = R0
  0136  MOVE      R11 = R0
  0137  CALL      R8 = call(R8, 1 args, 3 rets)
  0138  TEST      if not R8 then   -> -130932
  0139  JMP       (jump)   -> 150
  0140  GETTABUP  R8 = _ENV[K46('EventDispatcher')]
  0141  GETTABLE  R8 = R8[K47('DispatchEvent')]
  0142  GETTABUP  R9 = _ENV[K48('EEventType')]
  0143  GETTABLE  R9 = R9[K49('ShopBuyItemSuccess')]
  0144  NEWTABLE  R10 = {} (0 items)
  0145  SETTABLE  R10[K50('shopData')] = R5
  0146  SETTABLE  R10[K51('uiPos')] = R4
  0147  CALL      R8 = call(R8, 0 args, 2 rets)
  0148  LOADBOOL  R8 = true
  0149  RETURN    return R8..R7
  0150  LOADBOOL  R6 = false
  0151  RETURN    return R6..R5
  0152  RETURN    return R0..R-1
; ---------- proto8 [GetItemIdsDailyDeals] ----------
  ; fn ?  line 156-162 np=1 va=0 ms=4 code=15 consts=5 upvals=1 protos=0
  ;   K[0]='IsShopTypeUnlocked'
  ;   K[1]='EShopType'
  ;   K[2]='DailyDeals'
  ;   K[3]='m_itemDBManager'
  ;   K[4]='GetShopItemIds'
  ;   upvals: _ENV
  ;   locals: self(0-15)
  0000  SELF      R2 = R0[K0('IsShopTypeUnlocked')] (self)
  0001  GETTABUP  R3 = _ENV[K1('EShopType')]
  0002  GETTABLE  R3 = R3[K2('DailyDeals')]
  0003  CALL      R1 = call(R1, 1 args, 2 rets)
  0004  TEST      if not R1 then   -> -131065
  0005  JMP       (jump)   -> 8
  0006  LOADNIL   R1..R1 = nil
  0007  RETURN    return R1..R0
  0008  GETTABLE  R1 = R0[K3('m_itemDBManager')]
  0009  SELF      R2 = R1[K4('GetShopItemIds')] (self)
  0010  GETTABUP  R3 = _ENV[K1('EShopType')]
  0011  GETTABLE  R3 = R3[K2('DailyDeals')]
  0012  TAILCALL  tailcall(R1, 0)
  0013  RETURN    return R1..R0
  0014  RETURN    return R0..R-1
; ---------- proto9 [HasFreeDailyDeals] ----------
  ; fn ?  line 164-176 np=1 va=0 ms=11 code=29 consts=7 upvals=1 protos=0
  ;   K[0]='GetItemIdsDailyDeals'
  ;   K[1]=nil
  ;   K[2]=0
  ;   K[3]='ipairs'
  ;   K[4]='GetItemData'
  ;   K[5]='costCount'
  ;   K[6]='leftCount'
  ;   upvals: _ENV
  ;   locals: self(0-29), itemIds(2-29), data(8-26), (for generator)(11-26), (for state)(11-26), (for control)(11-26), _(12-24), itemId(12-24)
  0000  SELF      R2 = R0[K0('GetItemIdsDailyDeals')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  EQ        if R1 eq K1(nil)   -> -130299
  0003  JMP       (jump)   -> 26
  0004  LEN       R2 = len R0
  0005  LT        if R0 lt R2   -> 1033
  0006  JMP       (jump)   -> 26
  0007  LOADNIL   R2..R2 = nil
  0008  GETTABUP  R3 = _ENV[K3('ipairs')]
  0009  MOVE      R4 = R0
  0010  CALL      R3 = call(R3, 3 args, 1 rets)
  0011  JMP       (jump)   -> 24
  0012  SELF      R9 = R0[K4('GetItemData')] (self)
  0013  MOVE      R10 = R0
  0014  CALL      R8 = call(R8, 1 args, 2 rets)
  0015  MOVE      R2 = R0
  0016  GETTABLE  R8 = R2[K5('costCount')]
  0017  EQ        if R0 eq K2(0)   -> -126699
  0018  JMP       (jump)   -> 24
  0019  GETTABLE  R8 = R2[K6('leftCount')]
  0020  LT        if R0 lt R8   -> 1054
  0021  JMP       (jump)   -> 24
  0022  LOADBOOL  R8 = true
  0023  RETURN    return R8..R7
  0024  TFORCALL  tforcall R3
  0025  TFORLOOP  tforloop R5(sBx=-14)   -> 12
  0026  LOADBOOL  R2 = false
  0027  RETURN    return R2..R1
  0028  RETURN    return R0..R-1
; ---------- proto10 [GetRefreshTimeDailyDeals] ----------
  ; fn ?  line 178-180 np=1 va=0 ms=5 code=12 consts=4 upvals=3 protos=0
  ;   K[0]='m_shopDB'
  ;   K[1]='GetInNumber'
  ;   K[2]='DB_VALUE_KEY'
  ;   K[3]=1
  ;   upvals: DBColumnFreshTimeDailyDeals, _ENV, sec2Day
  ;   locals: self(0-12)
  0000  GETTABLE  R1 = R0[K0('m_shopDB')]
  0001  SELF      R2 = R1[K1('GetInNumber')] (self)
  0002  GETUPVAL  R3 = DBColumnFreshTimeDailyDeals
  0003  GETTABUP  R4 = _ENV[K2('DB_VALUE_KEY')]
  0004  CALL      R1 = call(R1, 1 args, 3 rets)
  0005  GETUPVAL  R2 = DBColumnFreshTimeDailyDeals
  0006  IDIV      R1 = R2 idiv R1
  0007  ADD       R1 = K3(1) add R1
  0008  GETUPVAL  R2 = DBColumnFreshTimeDailyDeals
  0009  MUL       R1 = R2 mul R1
  0010  RETURN    return R1..R0
  0011  RETURN    return R0..R-1
; ---------- proto11 [_TryToRefreshDailyDeals] ----------
  ; fn ?  line 182-186 np=2 va=0 ms=5 code=8 consts=2 upvals=0 protos=0
  ;   K[0]='GetRefreshTimeDailyDeals'
  ;   K[1]='_RefreshDailyDeals'
  ;   locals: self(0-8), serverTime(0-8)
  0000  SELF      R3 = R0[K0('GetRefreshTimeDailyDeals')] (self)
  0001  CALL      R2 = call(R2, 1 args, 1 rets)
  0002  LE        if R0 le R1   -> -130043
  0003  JMP       (jump)   -> 7
  0004  SELF      R3 = R0[K1('_RefreshDailyDeals')] (self)
  0005  MOVE      R4 = R0
  0006  CALL      R2 = call(R2, 0 args, 2 rets)
  0007  RETURN    return R0..R-1
; ---------- proto12 [_RefreshDailyDeals] ----------
  ; fn ?  line 188-193 np=2 va=0 ms=7 code=30 consts=16 upvals=2 protos=0
  ;   K[0]='m_shopDB'
  ;   K[1]='Set'
  ;   K[2]='DB_VALUE_KEY'
  ;   K[3]='m_itemDBManager'
  ;   K[4]='RemoveShopItemDatas'
  ;   K[5]='EShopType'
  ;   K[6]='DailyDeals'
  ;   K[7]='AddShopItemDatas'
  ;   K[8]='GM'
  ;   K[9]='ShopDataModel'
  ;   K[10]='GetNewItemDatasForDailyDeals'
  ;   K[11]='EventDispatcher'
  ;   K[12]='DispatchEvent'
  ;   K[13]='EEventType'
  ;   K[14]='ShopRefreshed'
  ;   K[15]='shopType'
  ;   upvals: DBColumnFreshTimeDailyDeals, _ENV
  ;   locals: self(0-30), serverTime(0-30)
  0000  GETTABLE  R2 = R0[K0('m_shopDB')]
  0001  SELF      R3 = R2[K1('Set')] (self)
  0002  GETUPVAL  R4 = DBColumnFreshTimeDailyDeals
  0003  GETTABUP  R5 = _ENV[K2('DB_VALUE_KEY')]
  0004  MOVE      R6 = R0
  0005  CALL      R2 = call(R2, 0 args, 4 rets)
  0006  GETTABLE  R2 = R0[K3('m_itemDBManager')]
  0007  SELF      R3 = R2[K4('RemoveShopItemDatas')] (self)
  0008  GETTABUP  R4 = _ENV[K5('EShopType')]
  0009  GETTABLE  R4 = R4[K6('DailyDeals')]
  0010  CALL      R2 = call(R2, 0 args, 2 rets)
  0011  GETTABLE  R2 = R0[K3('m_itemDBManager')]
  0012  SELF      R3 = R2[K7('AddShopItemDatas')] (self)
  0013  GETTABUP  R4 = _ENV[K5('EShopType')]
  0014  GETTABLE  R4 = R4[K6('DailyDeals')]
  0015  GETTABUP  R5 = _ENV[K8('GM')]
  0016  GETTABLE  R5 = R5[K9('ShopDataModel')]
  0017  SELF      R6 = R5[K10('GetNewItemDatasForDailyDeals')] (self)
  0018  CALL      R5 = call(R5, -1 args, 1 rets)
  0019  CALL      R2 = call(R2, 0 args, -1 rets)
  0020  GETTABUP  R2 = _ENV[K11('EventDispatcher')]
  0021  GETTABLE  R2 = R2[K12('DispatchEvent')]
  0022  GETTABUP  R3 = _ENV[K13('EEventType')]
  0023  GETTABLE  R3 = R3[K14('ShopRefreshed')]
  0024  NEWTABLE  R4 = {} (0 items)
  0025  GETTABUP  R5 = _ENV[K5('EShopType')]
  0026  GETTABLE  R5 = R5[K6('DailyDeals')]
  0027  SETTABLE  R4[K15('shopType')] = R5
  0028  CALL      R2 = call(R2, 0 args, 2 rets)
  0029  RETURN    return R0..R-1
; ---------- proto13 [GetItemIdsFlashSale] ----------
  ; fn ?  line 197-199 np=1 va=0 ms=4 code=7 consts=4 upvals=1 protos=0
  ;   K[0]='m_itemDBManager'
  ;   K[1]='GetShopItemIds'
  ;   K[2]='EShopType'
  ;   K[3]='FlashSale'
  ;   upvals: _ENV
  ;   locals: self(0-7)
  0000  GETTABLE  R1 = R0[K0('m_itemDBManager')]
  0001  SELF      R2 = R1[K1('GetShopItemIds')] (self)
  0002  GETTABUP  R3 = _ENV[K2('EShopType')]
  0003  GETTABLE  R3 = R3[K3('FlashSale')]
  0004  TAILCALL  tailcall(R1, 0)
  0005  RETURN    return R1..R0
  0006  RETURN    return R0..R-1
; ---------- proto14 [IsItemInStock] ----------
  ; fn ?  line 201-207 np=3 va=0 ms=7 code=14 consts=3 upvals=0 protos=0
  ;   K[0]='IsShopTypeUnlocked'
  ;   K[1]='m_itemDBManager'
  ;   K[2]='IsItemInStock'
  ;   locals: self(0-14), shopType(0-14), itemCode(0-14)
  0000  SELF      R4 = R0[K0('IsShopTypeUnlocked')] (self)
  0001  MOVE      R5 = R0
  0002  CALL      R3 = call(R3, 1 args, 2 rets)
  0003  TEST      if not R3 then   -> -131066
  0004  JMP       (jump)   -> 7
  0005  LOADBOOL  R3 = false
  0006  RETURN    return R3..R2
  0007  GETTABLE  R3 = R0[K1('m_itemDBManager')]
  0008  SELF      R4 = R3[K2('IsItemInStock')] (self)
  0009  MOVE      R5 = R0
  0010  MOVE      R6 = R0
  0011  TAILCALL  tailcall(R3, 0)
  0012  RETURN    return R3..R2
  0013  RETURN    return R0..R-1
; ---------- proto15 [GetFlashSalePassTimePercentage] ----------
  ; fn ?  line 209-217 np=1 va=0 ms=4 code=16 consts=6 upvals=2 protos=0
  ;   K[0]='GetRefreshTimeFlashSale'
  ;   K[1]='GM'
  ;   K[2]='GameModel'
  ;   K[3]='GetServerTime'
  ;   K[4]=0
  ;   K[5]=1
  ;   upvals: _ENV, FLASH_SALE_REFRESH_DURATION
  ;   locals: self(0-16), nextRefreshTime(2-16), leftTime(7-16), percentage(14-16)
  0000  SELF      R2 = R0[K0('GetRefreshTimeFlashSale')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  GETTABUP  R2 = _ENV[K1('GM')]
  0003  GETTABLE  R2 = R2[K2('GameModel')]
  0004  SELF      R3 = R2[K3('GetServerTime')] (self)
  0005  CALL      R2 = call(R2, 1 args, 1 rets)
  0006  SUB       R2 = R2 sub R1
  0007  LT        if R0 lt K4(0)   -> -129779
  0008  JMP       (jump)   -> 11
  0009  LOADK     R3 = K5 1
  0010  RETURN    return R3..R2
  0011  GETUPVAL  R3 = _ENV
  0012  DIV       R3 = R3 div R2
  0013  SUB       R3 = R3 sub K5(1)
  0014  RETURN    return R3..R2
  0015  RETURN    return R0..R-1
; ---------- proto16 [GetResetTimeForRefreshCost] ----------
  ; fn ?  line 219-221 np=1 va=0 ms=5 code=12 consts=4 upvals=3 protos=0
  ;   K[0]='m_shopDB'
  ;   K[1]='GetInNumber'
  ;   K[2]='DB_VALUE_KEY'
  ;   K[3]=1
  ;   upvals: DBColumnResetTimeForRefreshCost, _ENV, sec2Day
  ;   locals: self(0-12)
  0000  GETTABLE  R1 = R0[K0('m_shopDB')]
  0001  SELF      R2 = R1[K1('GetInNumber')] (self)
  0002  GETUPVAL  R3 = DBColumnResetTimeForRefreshCost
  0003  GETTABUP  R4 = _ENV[K2('DB_VALUE_KEY')]
  0004  CALL      R1 = call(R1, 1 args, 3 rets)
  0005  GETUPVAL  R2 = DBColumnResetTimeForRefreshCost
  0006  IDIV      R1 = R2 idiv R1
  0007  ADD       R1 = K3(1) add R1
  0008  GETUPVAL  R2 = DBColumnResetTimeForRefreshCost
  0009  MUL       R1 = R2 mul R1
  0010  RETURN    return R1..R0
  0011  RETURN    return R0..R-1
; ---------- proto17 [_TryToResetRefreshCost] ----------
  ; fn ?  line 223-228 np=2 va=0 ms=5 code=8 consts=2 upvals=0 protos=0
  ;   K[0]='GetResetTimeForRefreshCost'
  ;   K[1]='_ResetRefreshCost'
  ;   locals: self(0-8), serverTime(0-8)
  0000  SELF      R3 = R0[K0('GetResetTimeForRefreshCost')] (self)
  0001  CALL      R2 = call(R2, 1 args, 1 rets)
  0002  LE        if R0 le R1   -> -130043
  0003  JMP       (jump)   -> 7
  0004  SELF      R3 = R0[K1('_ResetRefreshCost')] (self)
  0005  MOVE      R4 = R0
  0006  CALL      R2 = call(R2, 0 args, 2 rets)
  0007  RETURN    return R0..R-1
; ---------- proto18 [_ResetRefreshCost] ----------
  ; fn ?  line 230-234 np=2 va=0 ms=8 code=25 consts=13 upvals=3 protos=0
  ;   K[0]='m_shopDB'
  ;   K[1]='Set'
  ;   K[2]='DB_VALUE_KEY'
  ;   K[3]='GM'
  ;   K[4]='ShopDataModel'
  ;   K[5]='GeRefreshBaseGemCost'
  ;   K[6]='EventDispatcher'
  ;   K[7]='DispatchEvent'
  ;   K[8]='EEventType'
  ;   K[9]='ShopRefreshed'
  ;   K[10]='shopType'
  ;   K[11]='EShopType'
  ;   K[12]='FlashSale'
  ;   upvals: DBColumnResetTimeForRefreshCost, _ENV, DBColumnRefreshCost
  ;   locals: self(0-25), serverTime(0-25)
  0000  GETTABLE  R2 = R0[K0('m_shopDB')]
  0001  SELF      R3 = R2[K1('Set')] (self)
  0002  GETUPVAL  R4 = DBColumnResetTimeForRefreshCost
  0003  GETTABUP  R5 = _ENV[K2('DB_VALUE_KEY')]
  0004  MOVE      R6 = R0
  0005  CALL      R2 = call(R2, 0 args, 4 rets)
  0006  GETTABLE  R2 = R0[K0('m_shopDB')]
  0007  SELF      R3 = R2[K1('Set')] (self)
  0008  GETUPVAL  R4 = DBColumnResetTimeForRefreshCost
  0009  GETTABUP  R5 = _ENV[K2('DB_VALUE_KEY')]
  0010  GETTABUP  R6 = _ENV[K3('GM')]
  0011  GETTABLE  R6 = R6[K4('ShopDataModel')]
  0012  SELF      R7 = R6[K5('GeRefreshBaseGemCost')] (self)
  0013  CALL      R6 = call(R6, -1 args, 1 rets)
  0014  CALL      R2 = call(R2, 0 args, -1 rets)
  0015  GETTABUP  R2 = _ENV[K6('EventDispatcher')]
  0016  GETTABLE  R2 = R2[K7('DispatchEvent')]
  0017  GETTABUP  R3 = _ENV[K8('EEventType')]
  0018  GETTABLE  R3 = R3[K9('ShopRefreshed')]
  0019  NEWTABLE  R4 = {} (0 items)
  0020  GETTABUP  R5 = _ENV[K11('EShopType')]
  0021  GETTABLE  R5 = R5[K12('FlashSale')]
  0022  SETTABLE  R4[K10('shopType')] = R5
  0023  CALL      R2 = call(R2, 0 args, 2 rets)
  0024  RETURN    return R0..R-1
; ---------- proto19 [GetRefreshGemCost] ----------
  ; fn ?  line 236-243 np=1 va=0 ms=5 code=14 consts=7 upvals=2 protos=0
  ;   K[0]='m_shopDB'
  ;   K[1]='GetInNumber'
  ;   K[2]='DB_VALUE_KEY'
  ;   K[3]=0
  ;   K[4]='GM'
  ;   K[5]='ShopDataModel'
  ;   K[6]='GeRefreshBaseGemCost'
  ;   upvals: DBColumnRefreshCost, _ENV
  ;   locals: self(0-14), cost(5-14)
  0000  GETTABLE  R1 = R0[K0('m_shopDB')]
  0001  SELF      R2 = R1[K1('GetInNumber')] (self)
  0002  GETUPVAL  R3 = DBColumnRefreshCost
  0003  GETTABUP  R4 = _ENV[K2('DB_VALUE_KEY')]
  0004  CALL      R1 = call(R1, 1 args, 3 rets)
  0005  EQ        if R0 eq K3(0)   -> -130294
  0006  JMP       (jump)   -> 12
  0007  GETTABUP  R2 = _ENV[K4('GM')]
  0008  GETTABLE  R2 = R2[K5('ShopDataModel')]
  0009  SELF      R3 = R2[K6('GeRefreshBaseGemCost')] (self)
  0010  CALL      R2 = call(R2, 1 args, 1 rets)
  0011  MOVE      R1 = R0
  0012  RETURN    return R1..R0
  0013  RETURN    return R0..R-1
; ---------- proto20 [RefreshFlashSaleByGemCost] ----------
  ; fn ?  line 245-253 np=1 va=0 ms=9 code=38 consts=17 upvals=2 protos=0
  ;   K[0]='GetRefreshGemCost'
  ;   K[1]='GM'
  ;   K[2]='PropertyDataManager'
  ;   K[3]='Consume'
  ;   K[4]='EPropertyType'
  ;   K[5]='Gem'
  ;   K[6]='EBIType'
  ;   K[7]='ShopRefresh'
  ;   K[8]='EBIConsumerType'
  ;   K[9]='_RefreshFlashSale'
  ;   K[10]='GameModel'
  ;   K[11]='GetServerTime'
  ;   K[12]='m_shopDB'
  ;   K[13]='Set'
  ;   K[14]='DB_VALUE_KEY'
  ;   K[15]='ShopDataModel'
  ;   K[16]='GetNextRefreshGemCost'
  ;   upvals: _ENV, DBColumnRefreshCost
  ;   locals: self(0-38), cost(2-38)
  0000  SELF      R2 = R0[K0('GetRefreshGemCost')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  GETTABUP  R2 = _ENV[K1('GM')]
  0003  GETTABLE  R2 = R2[K2('PropertyDataManager')]
  0004  SELF      R3 = R2[K3('Consume')] (self)
  0005  GETTABUP  R4 = _ENV[K4('EPropertyType')]
  0006  GETTABLE  R4 = R4[K5('Gem')]
  0007  MOVE      R5 = R0
  0008  GETTABUP  R6 = _ENV[K6('EBIType')]
  0009  GETTABLE  R6 = R6[K7('ShopRefresh')]
  0010  LOADBOOL  R7 = false
  0011  GETTABUP  R8 = _ENV[K8('EBIConsumerType')]
  0012  GETTABLE  R8 = R8[K7('ShopRefresh')]
  0013  CALL      R2 = call(R2, 1 args, 6 rets)
  0014  TEST      if not R2 then   -> -131056
  0015  JMP       (jump)   -> 35
  0016  SELF      R3 = R0[K9('_RefreshFlashSale')] (self)
  0017  GETTABUP  R4 = _ENV[K1('GM')]
  0018  GETTABLE  R4 = R4[K10('GameModel')]
  0019  SELF      R5 = R4[K11('GetServerTime')] (self)
  0020  CALL      R4 = call(R4, 1 args, 1 rets)
  0021  LOADBOOL  R5 = true
  0022  CALL      R2 = call(R2, 0 args, 3 rets)
  0023  GETTABLE  R2 = R0[K12('m_shopDB')]
  0024  SELF      R3 = R2[K13('Set')] (self)
  0025  GETUPVAL  R4 = _ENV
  0026  GETTABUP  R5 = _ENV[K14('DB_VALUE_KEY')]
  0027  GETTABUP  R6 = _ENV[K1('GM')]
  0028  GETTABLE  R6 = R6[K15('ShopDataModel')]
  0029  SELF      R7 = R6[K16('GetNextRefreshGemCost')] (self)
  0030  MOVE      R8 = R0
  0031  CALL      R6 = call(R6, -1 args, 2 rets)
  0032  CALL      R2 = call(R2, 0 args, -1 rets)
  0033  LOADBOOL  R2 = true
  0034  RETURN    return R2..R1
  0035  LOADBOOL  R2 = false
  0036  RETURN    return R2..R1
  0037  RETURN    return R0..R-1
; ---------- proto21 [RefreshFlashSaleByDayRefresh] ----------
  ; fn ?  line 255-258 np=1 va=0 ms=5 code=12 consts=7 upvals=1 protos=0
  ;   K[0]='Log'
  ;   K[1]='Info'
  ;   K[2]='RefreshFlashSaleByDayRefresh'
  ;   K[3]='_RefreshFlashSale'
  ;   K[4]='GM'
  ;   K[5]='GameModel'
  ;   K[6]='GetServerTime'
  ;   upvals: _ENV
  ;   locals: self(0-12)
  0000  GETTABUP  R1 = _ENV[K0('Log')]
  0001  GETTABLE  R1 = R1[K1('Info')]
  0002  LOADK     R2 = K2 'RefreshFlashSaleByDayRefresh'
  0003  CALL      R1 = call(R1, 0 args, 1 rets)
  0004  SELF      R2 = R0[K3('_RefreshFlashSale')] (self)
  0005  GETTABUP  R3 = _ENV[K4('GM')]
  0006  GETTABLE  R3 = R3[K5('GameModel')]
  0007  SELF      R4 = R3[K6('GetServerTime')] (self)
  0008  CALL      R3 = call(R3, 1 args, 1 rets)
  0009  LOADBOOL  R4 = false
  0010  CALL      R1 = call(R1, 0 args, 3 rets)
  0011  RETURN    return R0..R-1
; ---------- proto22 [GetRefreshTimeFlashSale] ----------
  ; fn ?  line 260-263 np=1 va=0 ms=5 code=9 consts=3 upvals=3 protos=0
  ;   K[0]='m_shopDB'
  ;   K[1]='GetInNumber'
  ;   K[2]='DB_VALUE_KEY'
  ;   upvals: DBColumnFreshTimeFlashSale, _ENV, FLASH_SALE_REFRESH_DURATION
  ;   locals: self(0-9), startTime(5-9)
  0000  GETTABLE  R1 = R0[K0('m_shopDB')]
  0001  SELF      R2 = R1[K1('GetInNumber')] (self)
  0002  GETUPVAL  R3 = DBColumnFreshTimeFlashSale
  0003  GETTABUP  R4 = _ENV[K2('DB_VALUE_KEY')]
  0004  CALL      R1 = call(R1, 1 args, 3 rets)
  0005  GETUPVAL  R2 = DBColumnFreshTimeFlashSale
  0006  ADD       R2 = R2 add R1
  0007  RETURN    return R2..R1
  0008  RETURN    return R0..R-1
; ---------- proto23 [_TryToRefreshFlashSale] ----------
  ; fn ?  line 265-269 np=2 va=0 ms=5 code=8 consts=2 upvals=0 protos=0
  ;   K[0]='GetRefreshTimeFlashSale'
  ;   K[1]='_RefreshFlashSale'
  ;   locals: self(0-8), serverTime(0-8)
  0000  SELF      R3 = R0[K0('GetRefreshTimeFlashSale')] (self)
  0001  CALL      R2 = call(R2, 1 args, 1 rets)
  0002  LE        if R0 le R1   -> -130043
  0003  JMP       (jump)   -> 7
  0004  SELF      R3 = R0[K1('_RefreshFlashSale')] (self)
  0005  MOVE      R4 = R0
  0006  CALL      R2 = call(R2, 0 args, 2 rets)
  0007  RETURN    return R0..R-1
; ---------- proto24 [_RefreshFlashSale] ----------
  ; fn ?  line 271-286 np=3 va=0 ms=10 code=50 consts=18 upvals=2 protos=0
  ;   K[0]='IsShopTypeUnlocked'
  ;   K[1]='EShopType'
  ;   K[2]='FlashSale'
  ;   K[3]='m_shopDB'
  ;   K[4]='Set'
  ;   K[5]='DB_VALUE_KEY'
  ;   K[6]='m_itemDBManager'
  ;   K[7]='GetShopItemDatas'
  ;   K[8]='RemoveShopItemDatas'
  ;   K[9]='AddShopItemDatas'
  ;   K[10]='GM'
  ;   K[11]='ShopDataModel'
  ;   K[12]='GetNewItemDatasForFlashSale'
  ;   K[13]='EventDispatcher'
  ;   K[14]='DispatchEvent'
  ;   K[15]='EEventType'
  ;   K[16]='ShopRefreshed'
  ;   K[17]='shopType'
  ;   upvals: _ENV, DBColumnFreshTimeFlashSale
  ;   locals: self(0-50), serverTime(0-50), IsManualRefresh(0-50), aLastShopItem(14-50)
  0000  SELF      R4 = R0[K0('IsShopTypeUnlocked')] (self)
  0001  GETTABUP  R5 = _ENV[K1('EShopType')]
  0002  GETTABLE  R5 = R5[K2('FlashSale')]
  0003  CALL      R3 = call(R3, 1 args, 2 rets)
  0004  TEST      if not R3 then   -> -131065
  0005  JMP       (jump)   -> 7
  0006  RETURN    return R0..R-1
  0007  GETTABLE  R3 = R0[K3('m_shopDB')]
  0008  SELF      R4 = R3[K4('Set')] (self)
  0009  GETUPVAL  R5 = _ENV
  0010  GETTABUP  R6 = _ENV[K5('DB_VALUE_KEY')]
  0011  MOVE      R7 = R0
  0012  CALL      R3 = call(R3, 0 args, 4 rets)
  0013  NEWTABLE  R3 = {} (0 items)
  0014  TEST      if not R2 then   -> -131056
  0015  JMP       (jump)   -> 25
  0016  GETTABLE  R4 = R0[K6('m_itemDBManager')]
  0017  SELF      R5 = R4[K7('GetShopItemDatas')] (self)
  0018  GETTABUP  R6 = _ENV[K1('EShopType')]
  0019  GETTABLE  R6 = R6[K2('FlashSale')]
  0020  CALL      R4 = call(R4, 1 args, 2 rets)
  0021  TESTSET   if R1 then R3   -> -129000
  0022  JMP       (jump)   -> 25
  0023  NEWTABLE  R4 = {} (0 items)
  0024  MOVE      R3 = R0
  0025  GETTABLE  R4 = R0[K6('m_itemDBManager')]
  0026  SELF      R5 = R4[K8('RemoveShopItemDatas')] (self)
  0027  GETTABUP  R6 = _ENV[K1('EShopType')]
  0028  GETTABLE  R6 = R6[K2('FlashSale')]
  0029  CALL      R4 = call(R4, 0 args, 2 rets)
  0030  GETTABLE  R4 = R0[K6('m_itemDBManager')]
  0031  SELF      R5 = R4[K9('AddShopItemDatas')] (self)
  0032  GETTABUP  R6 = _ENV[K1('EShopType')]
  0033  GETTABLE  R6 = R6[K2('FlashSale')]
  0034  GETTABUP  R7 = _ENV[K10('GM')]
  0035  GETTABLE  R7 = R7[K11('ShopDataModel')]
  0036  SELF      R8 = R7[K12('GetNewItemDatasForFlashSale')] (self)
  0037  MOVE      R9 = R0
  0038  CALL      R7 = call(R7, -1 args, 2 rets)
  0039  CALL      R4 = call(R4, 0 args, -1 rets)
  0040  GETTABUP  R4 = _ENV[K13('EventDispatcher')]
  0041  GETTABLE  R4 = R4[K14('DispatchEvent')]
  0042  GETTABUP  R5 = _ENV[K15('EEventType')]
  0043  GETTABLE  R5 = R5[K16('ShopRefreshed')]
  0044  NEWTABLE  R6 = {} (0 items)
  0045  GETTABUP  R7 = _ENV[K1('EShopType')]
  0046  GETTABLE  R7 = R7[K2('FlashSale')]
  0047  SETTABLE  R6[K17('shopType')] = R7
  0048  CALL      R4 = call(R4, 0 args, 2 rets)
  0049  RETURN    return R0..R-1
; ---------- proto25 [GetEnergyDatas] ----------
  ; fn ?  line 291-317 np=2 va=0 ms=11 code=42 consts=18 upvals=2 protos=0
  ;   K[0]=nil
  ;   K[1]='EPropertyType'
  ;   K[2]='Energy'
  ;   K[3]='icon'
  ;   K[4]='energy'
  ;   K[5]='goods'
  ;   K[6]='PROPERTY_TYPE'
  ;   K[7]='PROPERTY_COUNT'
  ;   K[8]='GM'
  ;   K[9]='ShopDataModel'
  ;   K[10]='GetBuyEnergyCount'
  ;   K[11]='costType'
  ;   K[12]='Gem'
  ;   K[13]='EnergyModel'
  ;   K[14]='EnergyType2PropertyType'
  ;   K[15]=1
  ;   K[16]='costNum'
  ;   K[17]='GetBuyEnergyGemCost'
  ;   upvals: mapEnergyDatas, _ENV
  ;   locals: self(0-42), energyType(0-42), propertyType(33-42)
  0000  GETUPVAL  R2 = mapEnergyDatas
  0001  EQ        if R0 eq K0(nil)   -> -129789
  0002  JMP       (jump)   -> 29
  0003  NEWTABLE  R2 = {} (0 items)
  0004  GETTABUP  R3 = _ENV[K1('EPropertyType')]
  0005  GETTABLE  R3 = R3[K2('Energy')]
  0006  NEWTABLE  R4 = {} (1 items)
  0007  NEWTABLE  R5 = {} (0 items)
  0008  SETTABLE  R5[K3('icon')] = K4('energy')
  0009  NEWTABLE  R6 = {} (1 items)
  0010  NEWTABLE  R7 = {} (0 items)
  0011  GETTABUP  R8 = _ENV[K6('PROPERTY_TYPE')]
  0012  GETTABUP  R9 = _ENV[K1('EPropertyType')]
  0013  GETTABLE  R9 = R9[K2('Energy')]
  0014  SETTABLE  R7[R8] = R9
  0015  GETTABUP  R8 = _ENV[K7('PROPERTY_COUNT')]
  0016  GETTABUP  R9 = _ENV[K8('GM')]
  0017  GETTABLE  R9 = R9[K9('ShopDataModel')]
  0018  SELF      R10 = R9[K10('GetBuyEnergyCount')] (self)
  0019  CALL      R9 = call(R9, 1 args, 1 rets)
  0020  SETTABLE  R7[R8] = R9
  0021  SETLIST   setlist R6[B=1,C=1]
  0022  SETTABLE  R5[K5('goods')] = R6
  0023  GETTABUP  R6 = _ENV[K1('EPropertyType')]
  0024  GETTABLE  R6 = R6[K12('Gem')]
  0025  SETTABLE  R5[K11('costType')] = R6
  0026  SETLIST   setlist R4[B=1,C=1]
  0027  SETTABLE  R2[R3] = R4
  0028  SETUPVAL  UP2 = R0
  0029  GETTABUP  R2 = _ENV[K13('EnergyModel')]
  0030  GETTABLE  R2 = R2[K14('EnergyType2PropertyType')]
  0031  MOVE      R3 = R0
  0032  CALL      R2 = call(R2, 1 args, 1 rets)
  0033  GETTABUP  R3 = mapEnergyDatas[R2]
  0034  GETTABLE  R3 = R3[K15(1)]
  0035  SELF      R5 = R0[K17('GetBuyEnergyGemCost')] (self)
  0036  MOVE      R6 = R0
  0037  CALL      R4 = call(R4, 1 args, 2 rets)
  0038  SETTABLE  R3[K16('costNum')] = R4
  0039  GETTABUP  R3 = mapEnergyDatas[R2]
  0040  RETURN    return R3..R2
  0041  RETURN    return R0..R-1
; ---------- proto26 [GetRefreshTimeEnergy] ----------
  ; fn ?  line 319-321 np=1 va=0 ms=5 code=12 consts=4 upvals=3 protos=0
  ;   K[0]='m_shopDB'
  ;   K[1]='GetInNumber'
  ;   K[2]='DB_VALUE_KEY'
  ;   K[3]=1
  ;   upvals: DBColumnFreshTimeEnergy, _ENV, sec2Day
  ;   locals: self(0-12)
  0000  GETTABLE  R1 = R0[K0('m_shopDB')]
  0001  SELF      R2 = R1[K1('GetInNumber')] (self)
  0002  GETUPVAL  R3 = DBColumnFreshTimeEnergy
  0003  GETTABUP  R4 = _ENV[K2('DB_VALUE_KEY')]
  0004  CALL      R1 = call(R1, 1 args, 3 rets)
  0005  GETUPVAL  R2 = DBColumnFreshTimeEnergy
  0006  IDIV      R1 = R2 idiv R1
  0007  ADD       R1 = K3(1) add R1
  0008  GETUPVAL  R2 = DBColumnFreshTimeEnergy
  0009  MUL       R1 = R2 mul R1
  0010  RETURN    return R1..R0
  0011  RETURN    return R0..R-1
; ---------- proto27 [GetBuyEnergyGemCost] ----------
  ; fn ?  line 323-331 np=2 va=0 ms=6 code=34 consts=9 upvals=3 protos=0
  ;   K[0]='EnergyType'
  ;   K[1]='Event'
  ;   K[2]='m_shopDB'
  ;   K[3]='GetInNumber'
  ;   K[4]='DB_VALUE_KEY'
  ;   K[5]=0
  ;   K[6]='GM'
  ;   K[7]='ShopDataModel'
  ;   K[8]='GetBuyEnergyBaseGemCost'
  ;   upvals: _ENV, DBColumnBuyCostEventEnergy, DBColumnBuyCostEnergy
  ;   locals: self(0-34), energyType(0-34), cost(9-18), cost(24-33)
  0000  GETTABUP  R2 = _ENV[K0('EnergyType')]
  0001  GETTABLE  R2 = R2[K1('Event')]
  0002  EQ        if R0 eq R2   -> -130554
  0003  JMP       (jump)   -> 19
  0004  GETTABLE  R2 = R0[K2('m_shopDB')]
  0005  SELF      R3 = R2[K3('GetInNumber')] (self)
  0006  GETUPVAL  R4 = _ENV
  0007  GETTABUP  R5 = _ENV[K4('DB_VALUE_KEY')]
  0008  CALL      R2 = call(R2, 1 args, 3 rets)
  0009  LT        if R0 lt R2   -> 2573
  0010  JMP       (jump)   -> 13
  0011  TESTSET   if R1 then R3   -> -130034
  0012  JMP       (jump)   -> 17
  0013  GETTABUP  R3 = _ENV[K6('GM')]
  0014  GETTABLE  R3 = R3[K7('ShopDataModel')]
  0015  SELF      R4 = R3[K8('GetBuyEnergyBaseGemCost')] (self)
  0016  CALL      R3 = call(R3, 1 args, 1 rets)
  0017  RETURN    return R3..R2
  0018  JMP       (jump)   -> 33
  0019  GETTABLE  R2 = R0[K2('m_shopDB')]
  0020  SELF      R3 = R2[K3('GetInNumber')] (self)
  0021  GETUPVAL  R4 = _ENV
  0022  GETTABUP  R5 = _ENV[K4('DB_VALUE_KEY')]
  0023  CALL      R2 = call(R2, 1 args, 3 rets)
  0024  LT        if R0 lt R2   -> 2588
  0025  JMP       (jump)   -> 28
  0026  TESTSET   if R1 then R3   -> -130019
  0027  JMP       (jump)   -> 32
  0028  GETTABUP  R3 = _ENV[K6('GM')]
  0029  GETTABLE  R3 = R3[K7('ShopDataModel')]
  0030  SELF      R4 = R3[K8('GetBuyEnergyBaseGemCost')] (self)
  0031  CALL      R3 = call(R3, 1 args, 1 rets)
  0032  RETURN    return R3..R2
  0033  RETURN    return R0..R-1
; ---------- proto28 [OpenEnergyWindow] ----------
  ; fn ?  line 333-341 np=4 va=0 ms=10 code=29 consts=12 upvals=1 protos=0
  ;   K[0]='GM'
  ;   K[1]='ActivityManager'
  ;   K[2]='GetModel'
  ;   K[3]='ActivityType'
  ;   K[4]='GemChain'
  ;   K[5]='IsActive'
  ;   K[6]='UIManager'
  ;   K[7]='OpenView'
  ;   K[8]='UIPrefabConfigName'
  ;   K[9]='GemChainWindow'
  ;   K[10]='BuyEnergyWindow'
  ;   K[11]='EnergyType2WindowName'
  ;   upvals: _ENV
  ;   locals: self(0-29), energyType(0-29), popupForLackingEnergy(0-29), inShopWindow(0-29), gemChainModel(6-29)
  0000  GETTABUP  R4 = _ENV[K0('GM')]
  0001  GETTABLE  R4 = R4[K1('ActivityManager')]
  0002  SELF      R5 = R4[K2('GetModel')] (self)
  0003  GETTABUP  R6 = _ENV[K3('ActivityType')]
  0004  GETTABLE  R6 = R6[K4('GemChain')]
  0005  CALL      R4 = call(R4, 1 args, 2 rets)
  0006  SELF      R6 = R4[K5('IsActive')] (self)
  0007  CALL      R5 = call(R5, 1 args, 1 rets)
  0008  TEST      if not R5 then   -> -131062
  0009  JMP       (jump)   -> 18
  0010  GETTABUP  R5 = _ENV[K0('GM')]
  0011  GETTABLE  R5 = R5[K6('UIManager')]
  0012  SELF      R6 = R5[K7('OpenView')] (self)
  0013  GETTABUP  R7 = _ENV[K8('UIPrefabConfigName')]
  0014  GETTABLE  R7 = R7[K9('GemChainWindow')]
  0015  MOVE      R8 = R0
  0016  CALL      R5 = call(R5, 0 args, 3 rets)
  0017  RETURN    return R0..R-1
  0018  GETTABUP  R5 = _ENV[K0('GM')]
  0019  GETTABLE  R5 = R5[K6('UIManager')]
  0020  SELF      R6 = R5[K7('OpenView')] (self)
  0021  GETTABUP  R7 = _ENV[K10('BuyEnergyWindow')]
  0022  GETTABLE  R7 = R7[K11('EnergyType2WindowName')]
  0023  MOVE      R8 = R0
  0024  CALL      R7 = call(R7, 1 args, 1 rets)
  0025  MOVE      R8 = R0
  0026  MOVE      R9 = R0
  0027  CALL      R5 = call(R5, 0 args, 4 rets)
  0028  RETURN    return R0..R-1
; ---------- proto29 [IsEnergyFreeRefill] ----------
  ; fn ?  line 343-345 np=2 va=0 ms=4 code=14 consts=6 upvals=1 protos=0
  ;   K[0]='EnergyType'
  ;   K[1]='Main'
  ;   K[2]='GM'
  ;   K[3]='MiscModel'
  ;   K[4]='GetFreeRefillEnergyInNumber'
  ;   K[5]=0
  ;   upvals: _ENV
  ;   locals: self(0-14), energyType(0-14)
  0000  GETTABUP  R2 = _ENV[K0('EnergyType')]
  0001  GETTABLE  R2 = R2[K1('Main')]
  0002  EQ        if R0 eq R2   -> -130554
  0003  JMP       (jump)   -> 10
  0004  GETTABUP  R2 = _ENV[K2('GM')]
  0005  GETTABLE  R2 = R2[K3('MiscModel')]
  0006  SELF      R3 = R2[K4('GetFreeRefillEnergyInNumber')] (self)
  0007  CALL      R2 = call(R2, 1 args, 1 rets)
  0008  EQ        if R1 eq K5(0)   -> -129777
  0009  JMP       (jump)   -> 11
  0010  LOADBOOL  R2 = false
  0011  LOADBOOL  R2 = true
  0012  RETURN    return R2..R1
  0013  RETURN    return R0..R-1
; ---------- proto30 [BuyEnergy] ----------
  ; fn ?  line 347-394 np=2 va=0 ms=14 code=159 consts=51 upvals=3 protos=0
  ;   K[0]='IsEnergyFreeRefill'
  ;   K[1]='GetBuyEnergyGemCost'
  ;   K[2]='GM'
  ;   K[3]='ShopDataModel'
  ;   K[4]='GetBuyEnergyCount'
  ;   K[5]='EnergyModel'
  ;   K[6]='EnergyType2PropertyType'
  ;   K[7]='PROPERTY_TYPE'
  ;   K[8]='PROPERTY_COUNT'
  ;   K[9]='PROPERTY_CRYPT'
  ;   K[10]='Crypt'
  ;   K[11]='CryptCurrency'
  ;   K[12]='RewardApi'
  ;   K[13]='AcquireRewardsLogic'
  ;   K[14]='EPropertySource'
  ;   K[15]='Give'
  ;   K[16]='EBIType'
  ;   K[17]='FreeRefillEnergy'
  ;   K[18]='ERewardScene'
  ;   K[19]='Other'
  ;   K[20]='EGameMode'
  ;   K[21]='Board'
  ;   K[22]='CacheItemType'
  ;   K[23]='Stack'
  ;   K[24]='MiscModel'
  ;   K[25]='SetFreeRefillEnergy'
  ;   K[26]=1
  ;   K[27]='BIManager'
  ;   K[28]='LogStore'
  ;   K[29]='EPropertyType'
  ;   K[30]='Gem'
  ;   K[31]=0
  ;   K[32]='EShopType'
  ;   K[33]='Energy'
  ;   K[34]='m_shopDB'
  ;   K[35]='Set'
  ;   K[36]='DB_VALUE_KEY'
  ;   K[37]='GetBuyEnergyBaseGemCost'
  ;   K[38]='EventDispatcher'
  ;   K[39]='DispatchEvent'
  ;   K[40]='EEventType'
  ;   K[41]='BuyEnergySuccess'
  ;   K[42]='buyGemCost'
  ;   K[43]='PropertyDataManager'
  ;   K[44]='Consume'
  ;   K[45]='BuyEnergy'
  ;   K[46]='EBIConsumerType'
  ;   K[47]='Buy'
  ;   K[48]='EnergyType'
  ;   K[49]='Event'
  ;   K[50]='GetNextBuyEnergyGemCost'
  ;   upvals: _ENV, DBColumnBuyCostEnergy, DBColumnBuyCostEventEnergy
  ;   locals: self(0-159), energyType(0-159), free2Refill(3-159), buyGemCost(6-159), buyEnergyCount(10-159), propertyType(14-159), formattedRewards(29-77), formattedRewards(105-156)
  0000  SELF      R3 = R0[K0('IsEnergyFreeRefill')] (self)
  0001  MOVE      R4 = R0
  0002  CALL      R2 = call(R2, 1 args, 2 rets)
  0003  SELF      R4 = R0[K1('GetBuyEnergyGemCost')] (self)
  0004  MOVE      R5 = R0
  0005  CALL      R3 = call(R3, 1 args, 2 rets)
  0006  GETTABUP  R4 = _ENV[K2('GM')]
  0007  GETTABLE  R4 = R4[K3('ShopDataModel')]
  0008  SELF      R5 = R4[K4('GetBuyEnergyCount')] (self)
  0009  CALL      R4 = call(R4, 1 args, 1 rets)
  0010  GETTABUP  R5 = _ENV[K5('EnergyModel')]
  0011  GETTABLE  R5 = R5[K6('EnergyType2PropertyType')]
  0012  MOVE      R6 = R0
  0013  CALL      R5 = call(R5, 1 args, 1 rets)
  0014  TEST      if not R2 then   -> -131056
  0015  JMP       (jump)   -> 78
  0016  NEWTABLE  R6 = {} (1 items)
  0017  NEWTABLE  R7 = {} (0 items)
  0018  GETTABUP  R8 = _ENV[K7('PROPERTY_TYPE')]
  0019  SETTABLE  R7[R8] = R5
  0020  GETTABUP  R8 = _ENV[K8('PROPERTY_COUNT')]
  0021  SETTABLE  R7[R8] = R4
  0022  GETTABUP  R8 = _ENV[K9('PROPERTY_CRYPT')]
  0023  GETTABUP  R9 = _ENV[K10('Crypt')]
  0024  GETTABLE  R9 = R9[K11('CryptCurrency')]
  0025  MOVE      R10 = R0
  0026  CALL      R9 = call(R9, 1 args, 1 rets)
  0027  SETTABLE  R7[R8] = R9
  0028  SETLIST   setlist R6[B=1,C=1]
  0029  GETTABUP  R7 = _ENV[K12('RewardApi')]
  0030  GETTABLE  R7 = R7[K13('AcquireRewardsLogic')]
  0031  MOVE      R8 = R0
  0032  GETTABUP  R9 = _ENV[K14('EPropertySource')]
  0033  GETTABLE  R9 = R9[K15('Give')]
  0034  GETTABUP  R10 = _ENV[K16('EBIType')]
  0035  GETTABLE  R10 = R10[K17('FreeRefillEnergy')]
  0036  GETTABUP  R11 = _ENV[K18('ERewardScene')]
  0037  GETTABLE  R11 = R11[K19('Other')]
  0038  GETTABUP  R12 = _ENV[K20('EGameMode')]
  0039  GETTABLE  R12 = R12[K21('Board')]
  0040  GETTABUP  R13 = _ENV[K22('CacheItemType')]
  0041  GETTABLE  R13 = R13[K23('Stack')]
  0042  CALL      R7 = call(R7, 0 args, 6 rets)
  0043  GETTABUP  R7 = _ENV[K2('GM')]
  0044  GETTABLE  R7 = R7[K24('MiscModel')]
  0045  SELF      R8 = R7[K25('SetFreeRefillEnergy')] (self)
  0046  LOADK     R9 = K26 1
  0047  CALL      R7 = call(R7, 0 args, 2 rets)
  0048  GETTABUP  R7 = _ENV[K2('GM')]
  0049  GETTABLE  R7 = R7[K27('BIManager')]
  0050  SELF      R8 = R7[K28('LogStore')] (self)
  0051  GETTABUP  R9 = _ENV[K29('EPropertyType')]
  0052  GETTABLE  R9 = R9[K30('Gem')]
  0053  LOADK     R10 = K31 0
  0054  MOVE      R11 = R0
  0055  MOVE      R12 = R0
  0056  GETTABUP  R13 = _ENV[K32('EShopType')]
  0057  GETTABLE  R13 = R13[K33('Energy')]
  0058  CALL      R7 = call(R7, 0 args, 6 rets)
  0059  GETTABLE  R7 = R0[K34('m_shopDB')]
  0060  SELF      R8 = R7[K35('Set')] (self)
  0061  GETUPVAL  R9 = _ENV
  0062  GETTABUP  R10 = _ENV[K36('DB_VALUE_KEY')]
  0063  GETTABUP  R11 = _ENV[K2('GM')]
  0064  GETTABLE  R11 = R11[K3('ShopDataModel')]
  0065  SELF      R12 = R11[K37('GetBuyEnergyBaseGemCost')] (self)
  0066  CALL      R11 = call(R11, -1 args, 1 rets)
  0067  CALL      R7 = call(R7, 0 args, -1 rets)
  0068  GETTABUP  R7 = _ENV[K38('EventDispatcher')]
  0069  GETTABLE  R7 = R7[K39('DispatchEvent')]
  0070  GETTABUP  R8 = _ENV[K40('EEventType')]
  0071  GETTABLE  R8 = R8[K41('BuyEnergySuccess')]
  0072  NEWTABLE  R9 = {} (0 items)
  0073  SETTABLE  R9[K42('buyGemCost')] = K31(0)
  0074  CALL      R7 = call(R7, 0 args, 2 rets)
  0075  LOADBOOL  R7 = true
  0076  RETURN    return R7..R6
  0077  JMP       (jump)   -> 156
  0078  GETTABUP  R6 = _ENV[K2('GM')]
  0079  GETTABLE  R6 = R6[K43('PropertyDataManager')]
  0080  SELF      R7 = R6[K44('Consume')] (self)
  0081  GETTABUP  R8 = _ENV[K29('EPropertyType')]
  0082  GETTABLE  R8 = R8[K30('Gem')]
  0083  MOVE      R9 = R0
  0084  GETTABUP  R10 = _ENV[K16('EBIType')]
  0085  GETTABLE  R10 = R10[K45('BuyEnergy')]
  0086  LOADBOOL  R11 = false
  0087  GETTABUP  R12 = _ENV[K46('EBIConsumerType')]
  0088  GETTABLE  R12 = R12[K33('Energy')]
  0089  CALL      R6 = call(R6, 1 args, 6 rets)
  0090  TEST      if not R6 then   -> -130980
  0091  JMP       (jump)   -> 156
  0092  NEWTABLE  R6 = {} (1 items)
  0093  NEWTABLE  R7 = {} (0 items)
  0094  GETTABUP  R8 = _ENV[K7('PROPERTY_TYPE')]
  0095  SETTABLE  R7[R8] = R5
  0096  GETTABUP  R8 = _ENV[K8('PROPERTY_COUNT')]
  0097  SETTABLE  R7[R8] = R4
  0098  GETTABUP  R8 = _ENV[K9('PROPERTY_CRYPT')]
  0099  GETTABUP  R9 = _ENV[K10('Crypt')]
  0100  GETTABLE  R9 = R9[K11('CryptCurrency')]
  0101  MOVE      R10 = R0
  0102  CALL      R9 = call(R9, 1 args, 1 rets)
  0103  SETTABLE  R7[R8] = R9
  0104  SETLIST   setlist R6[B=1,C=1]
  0105  GETTABUP  R7 = _ENV[K12('RewardApi')]
  0106  GETTABLE  R7 = R7[K13('AcquireRewardsLogic')]
  0107  MOVE      R8 = R0
  0108  GETTABUP  R9 = _ENV[K14('EPropertySource')]
  0109  GETTABLE  R9 = R9[K47('Buy')]
  0110  GETTABUP  R10 = _ENV[K16('EBIType')]
  0111  GETTABLE  R10 = R10[K45('BuyEnergy')]
  0112  GETTABUP  R11 = _ENV[K18('ERewardScene')]
  0113  GETTABLE  R11 = R11[K19('Other')]
  0114  GETTABUP  R12 = _ENV[K20('EGameMode')]
  0115  GETTABLE  R12 = R12[K21('Board')]
  0116  GETTABUP  R13 = _ENV[K22('CacheItemType')]
  0117  GETTABLE  R13 = R13[K23('Stack')]
  0118  CALL      R7 = call(R7, 0 args, 6 rets)
  0119  GETTABUP  R7 = _ENV[K2('GM')]
  0120  GETTABLE  R7 = R7[K27('BIManager')]
  0121  SELF      R8 = R7[K28('LogStore')] (self)
  0122  GETTABUP  R9 = _ENV[K29('EPropertyType')]
  0123  GETTABLE  R9 = R9[K30('Gem')]
  0124  MOVE      R10 = R0
  0125  MOVE      R11 = R0
  0126  MOVE      R12 = R0
  0127  GETTABUP  R13 = _ENV[K32('EShopType')]
  0128  GETTABLE  R13 = R13[K33('Energy')]
  0129  CALL      R7 = call(R7, 0 args, 6 rets)
  0130  GETTABLE  R7 = R0[K34('m_shopDB')]
  0131  SELF      R8 = R7[K35('Set')] (self)
  0132  GETTABUP  R9 = _ENV[K48('EnergyType')]
  0133  GETTABLE  R9 = R9[K49('Event')]
  0134  EQ        if R0 eq R9   -> -130415
  0135  JMP       (jump)   -> 139
  0136  GETUPVAL  R9 = _ENV
  0137  TEST      if not R9 then   -> -130932
  0138  JMP       (jump)   -> 140
  0139  GETUPVAL  R9 = _ENV
  0140  GETTABUP  R10 = _ENV[K36('DB_VALUE_KEY')]
  0141  GETTABUP  R11 = _ENV[K2('GM')]
  0142  GETTABLE  R11 = R11[K3('ShopDataModel')]
  0143  SELF      R12 = R11[K50('GetNextBuyEnergyGemCost')] (self)
  0144  MOVE      R13 = R0
  0145  CALL      R11 = call(R11, -1 args, 2 rets)
  0146  CALL      R7 = call(R7, 0 args, -1 rets)
  0147  GETTABUP  R7 = _ENV[K38('EventDispatcher')]
  0148  GETTABLE  R7 = R7[K39('DispatchEvent')]
  0149  GETTABUP  R8 = _ENV[K40('EEventType')]
  0150  GETTABLE  R8 = R8[K41('BuyEnergySuccess')]
  0151  NEWTABLE  R9 = {} (0 items)
  0152  SETTABLE  R9[K42('buyGemCost')] = R3
  0153  CALL      R7 = call(R7, 0 args, 2 rets)
  0154  LOADBOOL  R7 = true
  0155  RETURN    return R7..R6
  0156  LOADBOOL  R6 = false
  0157  RETURN    return R6..R5
  0158  RETURN    return R0..R-1
; ---------- proto31 [_TryToRefreshEnergy] ----------
  ; fn ?  line 396-400 np=2 va=0 ms=5 code=8 consts=2 upvals=0 protos=0
  ;   K[0]='GetRefreshTimeEnergy'
  ;   K[1]='_RefreshEnergy'
  ;   locals: self(0-8), serverTime(0-8)
  0000  SELF      R3 = R0[K0('GetRefreshTimeEnergy')] (self)
  0001  CALL      R2 = call(R2, 1 args, 1 rets)
  0002  LE        if R0 le R1   -> -130043
  0003  JMP       (jump)   -> 7
  0004  SELF      R3 = R0[K1('_RefreshEnergy')] (self)
  0005  MOVE      R4 = R0
  0006  CALL      R2 = call(R2, 0 args, 2 rets)
  0007  RETURN    return R0..R-1
; ---------- proto32 [_RefreshEnergy] ----------
  ; fn ?  line 402-407 np=2 va=0 ms=8 code=34 consts=13 upvals=4 protos=0
  ;   K[0]='m_shopDB'
  ;   K[1]='Set'
  ;   K[2]='DB_VALUE_KEY'
  ;   K[3]='GM'
  ;   K[4]='ShopDataModel'
  ;   K[5]='GetBuyEnergyBaseGemCost'
  ;   K[6]='EventDispatcher'
  ;   K[7]='DispatchEvent'
  ;   K[8]='EEventType'
  ;   K[9]='ShopRefreshed'
  ;   K[10]='shopType'
  ;   K[11]='EShopType'
  ;   K[12]='Energy'
  ;   upvals: DBColumnFreshTimeEnergy, _ENV, DBColumnBuyCostEnergy, DBColumnBuyCostEventEnergy
  ;   locals: self(0-34), serverTime(0-34)
  0000  GETTABLE  R2 = R0[K0('m_shopDB')]
  0001  SELF      R3 = R2[K1('Set')] (self)
  0002  GETUPVAL  R4 = DBColumnFreshTimeEnergy
  0003  GETTABUP  R5 = _ENV[K2('DB_VALUE_KEY')]
  0004  MOVE      R6 = R0
  0005  CALL      R2 = call(R2, 0 args, 4 rets)
  0006  GETTABLE  R2 = R0[K0('m_shopDB')]
  0007  SELF      R3 = R2[K1('Set')] (self)
  0008  GETUPVAL  R4 = DBColumnFreshTimeEnergy
  0009  GETTABUP  R5 = _ENV[K2('DB_VALUE_KEY')]
  0010  GETTABUP  R6 = _ENV[K3('GM')]
  0011  GETTABLE  R6 = R6[K4('ShopDataModel')]
  0012  SELF      R7 = R6[K5('GetBuyEnergyBaseGemCost')] (self)
  0013  CALL      R6 = call(R6, -1 args, 1 rets)
  0014  CALL      R2 = call(R2, 0 args, -1 rets)
  0015  GETTABLE  R2 = R0[K0('m_shopDB')]
  0016  SELF      R3 = R2[K1('Set')] (self)
  0017  GETUPVAL  R4 = DBColumnFreshTimeEnergy
  0018  GETTABUP  R5 = _ENV[K2('DB_VALUE_KEY')]
  0019  GETTABUP  R6 = _ENV[K3('GM')]
  0020  GETTABLE  R6 = R6[K4('ShopDataModel')]
  0021  SELF      R7 = R6[K5('GetBuyEnergyBaseGemCost')] (self)
  0022  CALL      R6 = call(R6, -1 args, 1 rets)
  0023  CALL      R2 = call(R2, 0 args, -1 rets)
  0024  GETTABUP  R2 = _ENV[K6('EventDispatcher')]
  0025  GETTABLE  R2 = R2[K7('DispatchEvent')]
  0026  GETTABUP  R3 = _ENV[K8('EEventType')]
  0027  GETTABLE  R3 = R3[K9('ShopRefreshed')]
  0028  NEWTABLE  R4 = {} (0 items)
  0029  GETTABUP  R5 = _ENV[K11('EShopType')]
  0030  GETTABLE  R5 = R5[K12('Energy')]
  0031  SETTABLE  R4[K10('shopType')] = R5
  0032  CALL      R2 = call(R2, 0 args, 2 rets)
  0033  RETURN    return R0..R-1
; ---------- proto33 [GetDiamondsDatas] ----------
  ; fn ?  line 411-413 np=1 va=0 ms=4 code=8 consts=5 upvals=1 protos=0
  ;   K[0]='GM'
  ;   K[1]='ShopDataModel'
  ;   K[2]='GetIAPConfigDatas'
  ;   K[3]='EShopType'
  ;   K[4]='Diamonds'
  ;   upvals: _ENV
  ;   locals: self(0-8)
  0000  GETTABUP  R1 = _ENV[K0('GM')]
  0001  GETTABLE  R1 = R1[K1('ShopDataModel')]
  0002  SELF      R2 = R1[K2('GetIAPConfigDatas')] (self)
  0003  GETTABUP  R3 = _ENV[K3('EShopType')]
  0004  GETTABLE  R3 = R3[K4('Diamonds')]
  0005  TAILCALL  tailcall(R1, 0)
  0006  RETURN    return R1..R0
  0007  RETURN    return R0..R-1
; ---------- proto34 [BuyDiamonds] ----------
  ; fn ?  line 415-425 np=3 va=0 ms=8 code=16 consts=7 upvals=1 protos=1
  ;   K[0]='purchaseId'
  ;   K[1]=nil
  ;   K[2]='GM'
  ;   K[3]='InAppPurchaseModel'
  ;   K[4]='StartPurchase'
  ;   K[5]='EBIType'
  ;   K[6]='ShopBuy'
  ;   upvals: _ENV
  ;   locals: self(0-16), data(0-16), callback(0-16)
  0000  GETTABLE  R3 = R1[K0('purchaseId')]
  0001  EQ        if R1 eq K1(nil)   -> -129276
  0002  JMP       (jump)   -> 12
  0003  GETTABUP  R3 = _ENV[K2('GM')]
  0004  GETTABLE  R3 = R3[K3('InAppPurchaseModel')]
  0005  SELF      R4 = R3[K4('StartPurchase')] (self)
  0006  GETTABLE  R5 = R1[K0('purchaseId')]
  0007  CLOSURE   R6 = closure proto0
  0008  GETTABUP  R7 = _ENV[K5('EBIType')]
  0009  GETTABLE  R7 = R7[K6('ShopBuy')]
  0010  CALL      R3 = call(R3, 0 args, 4 rets)
  0011  JMP       (jump)   -> 15
  0012  MOVE      R3 = R0
  0013  LOADBOOL  R4 = false
  0014  CALL      R3 = call(R3, 0 args, 1 rets)
  0015  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 417-421 np=0 va=0 ms=8 code=20 consts=13 upvals=3 protos=0
    ;   K[0]='goods'
    ;   K[1]='RewardApi'
    ;   K[2]='AcquireRewardsLogic'
    ;   K[3]='EPropertySource'
    ;   K[4]='Buy'
    ;   K[5]='EBIType'
    ;   K[6]='IAP'
    ;   K[7]='ERewardScene'
    ;   K[8]='Other'
    ;   K[9]='EGameMode'
    ;   K[10]='Board'
    ;   K[11]='CacheItemType'
    ;   K[12]='Stack'
    ;   upvals: data, _ENV, callback
    ;   locals: rewards(1-20)
    0000  GETTABUP  R0 = data[K0('goods')]
    0001  GETTABUP  R1 = _ENV[K1('RewardApi')]
    0002  GETTABLE  R1 = R1[K2('AcquireRewardsLogic')]
    0003  MOVE      R2 = R0
    0004  GETTABUP  R3 = _ENV[K3('EPropertySource')]
    0005  GETTABLE  R3 = R3[K4('Buy')]
    0006  GETTABUP  R4 = _ENV[K5('EBIType')]
    0007  GETTABLE  R4 = R4[K6('IAP')]
    0008  GETTABUP  R5 = _ENV[K7('ERewardScene')]
    0009  GETTABLE  R5 = R5[K8('Other')]
    0010  GETTABUP  R6 = _ENV[K9('EGameMode')]
    0011  GETTABLE  R6 = R6[K10('Board')]
    0012  GETTABUP  R7 = _ENV[K11('CacheItemType')]
    0013  GETTABLE  R7 = R7[K12('Stack')]
    0014  CALL      R1 = call(R1, 0 args, 6 rets)
    0015  GETUPVAL  R1 = data
    0016  LOADBOOL  R2 = true
    0017  MOVE      R3 = R0
    0018  CALL      R1 = call(R1, 0 args, 2 rets)
    0019  RETURN    return R0..R-1
; ---------- proto35 [GetShopItemDB] ----------
  ; fn ?  line 428-430 np=1 va=0 ms=3 code=5 consts=2 upvals=0 protos=0
  ;   K[0]='m_itemDBManager'
  ;   K[1]='GetData'
  ;   locals: self(0-5)
  0000  GETTABLE  R1 = R0[K0('m_itemDBManager')]
  0001  SELF      R2 = R1[K1('GetData')] (self)
  0002  TAILCALL  tailcall(R1, 0)
  0003  RETURN    return R1..R0
  0004  RETURN    return R0..R-1
; ---------- proto36 [GetData] ----------
  ; fn ?  line 432-434 np=1 va=0 ms=2 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='m_shopDB'
  ;   locals: self(0-3)
  0000  GETTABLE  R1 = R0[K0('m_shopDB')]
  0001  RETURN    return R1..R0
  0002  RETURN    return R0..R-1
; ---------- proto37 [FromSyncData] ----------
  ; fn ?  line 436-438 np=2 va=0 ms=5 code=5 consts=2 upvals=0 protos=0
  ;   K[0]='m_shopDB'
  ;   K[1]='FromArr'
  ;   locals: self(0-5), dataArr(0-5)
  0000  GETTABLE  R2 = R0[K0('m_shopDB')]
  0001  SELF      R3 = R2[K1('FromArr')] (self)
  0002  MOVE      R4 = R0
  0003  CALL      R2 = call(R2, 0 args, 2 rets)
  0004  RETURN    return R0..R-1
; ---------- proto38 [SyncShopItem] ----------
  ; fn ?  line 440-443 np=2 va=0 ms=5 code=9 consts=4 upvals=0 protos=0
  ;   K[0]='GetShopItemDB'
  ;   K[1]='FromArr'
  ;   K[2]='m_itemDBManager'
  ;   K[3]='UpdateShopItemIdMap'
  ;   locals: self(0-9), dataArr(0-9)
  0000  SELF      R3 = R0[K0('GetShopItemDB')] (self)
  0001  CALL      R2 = call(R2, 1 args, 1 rets)
  0002  SELF      R3 = R2[K1('FromArr')] (self)
  0003  MOVE      R4 = R0
  0004  CALL      R2 = call(R2, 0 args, 2 rets)
  0005  GETTABLE  R2 = R0[K2('m_itemDBManager')]
  0006  SELF      R3 = R2[K3('UpdateShopItemIdMap')] (self)
  0007  CALL      R2 = call(R2, 0 args, 1 rets)
  0008  RETURN    return R0..R-1
; ---------- proto39 [GetUnlockedOrderConfigs] ----------
  ; fn ?  line 445-454 np=1 va=0 ms=11 code=20 consts=6 upvals=1 protos=0
  ;   K[0]='GM'
  ;   K[1]='ShopDataModel'
  ;   K[2]='GetShopOrderConfig'
  ;   K[3]='pairs'
  ;   K[4]='EShopType'
  ;   K[5]='IsShopTypeUnlocked'
  ;   upvals: _ENV
  ;   locals: self(0-20), mapShopOrderConfig(4-20), mapUnlockedShopOrderConfig(5-20), (for generator)(8-18), (for state)(8-18), (for control)(8-18), _(9-16), eShopType(9-16)
  0000  GETTABUP  R1 = _ENV[K0('GM')]
  0001  GETTABLE  R1 = R1[K1('ShopDataModel')]
  0002  SELF      R2 = R1[K2('GetShopOrderConfig')] (self)
  0003  CALL      R1 = call(R1, 1 args, 1 rets)
  0004  NEWTABLE  R2 = {} (0 items)
  0005  GETTABUP  R3 = _ENV[K3('pairs')]
  0006  GETTABUP  R4 = _ENV[K4('EShopType')]
  0007  CALL      R3 = call(R3, 3 args, 1 rets)
  0008  JMP       (jump)   -> 16
  0009  SELF      R9 = R0[K5('IsShopTypeUnlocked')] (self)
  0010  MOVE      R10 = R0
  0011  CALL      R8 = call(R8, 1 args, 2 rets)
  0012  TEST      if not R8 then   -> -131058
  0013  JMP       (jump)   -> 16
  0014  GETTABLE  R8 = R1[R7]
  0015  SETTABLE  R2[R7] = R8
  0016  TFORCALL  tforcall R3
  0017  TFORLOOP  tforloop R5(sBx=-9)   -> 9
  0018  RETURN    return R2..R1
  0019  RETURN    return R0..R-1
; ---------- proto40 [IsShopTypeUnlocked] ----------
  ; fn ?  line 456-464 np=2 va=0 ms=6 code=20 consts=6 upvals=1 protos=0
  ;   K[0]='GM'
  ;   K[1]='ShopDataModel'
  ;   K[2]='GetShopOrderConfig'
  ;   K[3]='LevelModel'
  ;   K[4]='GetCurrentLevel'
  ;   K[5]='UnlockLevel'
  ;   upvals: _ENV
  ;   locals: self(0-20), eShopType(0-20), mapShopOrderConfig(4-20), orderConfig(5-20)
  0000  GETTABUP  R2 = _ENV[K0('GM')]
  0001  GETTABLE  R2 = R2[K1('ShopDataModel')]
  0002  SELF      R3 = R2[K2('GetShopOrderConfig')] (self)
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  GETTABLE  R3 = R2[R1]
  0005  TEST      if not R3 then   -> -131064
  0006  JMP       (jump)   -> 9
  0007  LOADBOOL  R4 = false
  0008  RETURN    return R4..R3
  0009  GETTABUP  R4 = _ENV[K0('GM')]
  0010  GETTABLE  R4 = R4[K3('LevelModel')]
  0011  SELF      R5 = R4[K4('GetCurrentLevel')] (self)
  0012  CALL      R4 = call(R4, 1 args, 1 rets)
  0013  GETTABLE  R5 = R3[K5('UnlockLevel')]
  0014  LE        if R1 le R4   -> -128492
  0015  JMP       (jump)   -> 17
  0016  LOADBOOL  R4 = false
  0017  LOADBOOL  R4 = true
  0018  RETURN    return R4..R3
  0019  RETURN    return R0..R-1
; ---------- proto41 [OnLackOfGem] ----------
  ; fn ?  line 466-486 np=3 va=0 ms=8 code=20 consts=7 upvals=1 protos=1
  ;   K[0]='GM'
  ;   K[1]='BIManager'
  ;   K[2]='LogAction'
  ;   K[3]='EBIType'
  ;   K[4]='LackGem'
  ;   K[5]='BundleManager'
  ;   K[6]='OnLackGem'
  ;   upvals: _ENV
  ;   locals: self(0-20), lackNum(0-20), biScene(0-20), openShopWindowFunc(8-20)
  0000  GETTABUP  R3 = _ENV[K0('GM')]
  0001  GETTABLE  R3 = R3[K1('BIManager')]
  0002  SELF      R4 = R3[K2('LogAction')] (self)
  0003  GETTABUP  R5 = _ENV[K3('EBIType')]
  0004  GETTABLE  R5 = R5[K4('LackGem')]
  0005  MOVE      R6 = R0
  0006  CALL      R3 = call(R3, 0 args, 3 rets)
  0007  CLOSURE   R3 = closure proto0
  0008  GETTABUP  R4 = _ENV[K0('GM')]
  0009  GETTABLE  R4 = R4[K5('BundleManager')]
  0010  SELF      R5 = R4[K6('OnLackGem')] (self)
  0011  MOVE      R6 = R0
  0012  MOVE      R7 = R0
  0013  CALL      R4 = call(R4, 1 args, 3 rets)
  0014  TEST      if not R4 then   -> -131056
  0015  JMP       (jump)   -> 17
  0016  RETURN    return R0..R-1
  0017  MOVE      R4 = R0
  0018  CALL      R4 = call(R4, 0 args, 0 rets)
  0019  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 468-478 np=0 va=0 ms=6 code=42 consts=13 upvals=1 protos=0
    ;   K[0]='GM'
    ;   K[1]='UIManager'
    ;   K[2]='GetOpenedViewByName'
    ;   K[3]='UIPrefabConfigName'
    ;   K[4]='ShopWindow'
    ;   K[5]=nil
    ;   K[6]='LocateShopType'
    ;   K[7]='EShopType'
    ;   K[8]='Diamonds'
    ;   K[9]='IsViewExisting'
    ;   K[10]='ItemDetailWindow'
    ;   K[11]='CloseAll'
    ;   K[12]='OpenView'
    ;   upvals: _ENV
    ;   locals: shopWindow(6-42)
    0000  GETTABUP  R0 = _ENV[K0('GM')]
    0001  GETTABLE  R0 = R0[K1('UIManager')]
    0002  SELF      R1 = R0[K2('GetOpenedViewByName')] (self)
    0003  GETTABUP  R2 = _ENV[K3('UIPrefabConfigName')]
    0004  GETTABLE  R2 = R2[K4('ShopWindow')]
    0005  CALL      R0 = call(R0, 1 args, 2 rets)
    0006  EQ        if R1 eq K5(nil)   -> -130803
    0007  JMP       (jump)   -> 24
    0008  SELF      R2 = R0[K6('LocateShopType')] (self)
    0009  GETTABUP  R3 = _ENV[K7('EShopType')]
    0010  GETTABLE  R3 = R3[K8('Diamonds')]
    0011  CALL      R1 = call(R1, 0 args, 2 rets)
    0012  GETTABUP  R1 = _ENV[K0('GM')]
    0013  GETTABLE  R1 = R1[K1('UIManager')]
    0014  SELF      R2 = R1[K9('IsViewExisting')] (self)
    0015  GETTABUP  R3 = _ENV[K3('UIPrefabConfigName')]
    0016  GETTABLE  R3 = R3[K10('ItemDetailWindow')]
    0017  CALL      R1 = call(R1, 1 args, 2 rets)
    0018  TEST      if not R1 then   -> -131052
    0019  JMP       (jump)   -> 41
    0020  GETTABUP  R1 = _ENV[K10('ItemDetailWindow')]
    0021  GETTABLE  R1 = R1[K11('CloseAll')]
    0022  CALL      R1 = call(R1, 0 args, 0 rets)
    0023  JMP       (jump)   -> 41
    0024  GETTABUP  R1 = _ENV[K0('GM')]
    0025  GETTABLE  R1 = R1[K1('UIManager')]
    0026  SELF      R2 = R1[K9('IsViewExisting')] (self)
    0027  GETTABUP  R3 = _ENV[K3('UIPrefabConfigName')]
    0028  GETTABLE  R3 = R3[K4('ShopWindow')]
    0029  CALL      R1 = call(R1, 1 args, 2 rets)
    0030  TEST      if not R1 then   -> -131039
    0031  JMP       (jump)   -> 41
    0032  GETTABUP  R1 = _ENV[K0('GM')]
    0033  GETTABLE  R1 = R1[K1('UIManager')]
    0034  SELF      R2 = R1[K12('OpenView')] (self)
    0035  GETTABUP  R3 = _ENV[K3('UIPrefabConfigName')]
    0036  GETTABLE  R3 = R3[K4('ShopWindow')]
    0037  GETTABUP  R4 = _ENV[K7('EShopType')]
    0038  GETTABLE  R4 = R4[K8('Diamonds')]
    0039  LOADBOOL  R5 = true
    0040  CALL      R1 = call(R1, 0 args, 4 rets)
    0041  RETURN    return R0..R-1
