# PkRace_Model_PkRaceModel_1049.luac
; fn @PkRaceModel.lua  line 0-0 np=0 va=1 ms=3 code=89 consts=47 upvals=1 protos=23
;   K[0]='PkRaceModel'
;   K[1]='setmetatable'
;   K[2]='bShouldSkipEndWindowOnLongAway'
;   K[3]=true
;   K[4]='FixedPlayerNumber'
;   K[5]=1
;   K[6]='EntryOpName'
;   K[7]='BLPkRaceEntry1'
;   K[8]='EntryGapTime'
;   K[9]=1800
;   K[10]='ShowEntryMask'
;   K[11]=false
;   K[12]='LogTag'
;   K[13]='PkRacePlayer'
;   K[14]='MinAddScoreTime'
;   K[15]=5
;   K[16]='BaseRaceActivityModel'
;   K[17]='__index'
;   K[18]='RoundConfigKey'
;   K[19]='pk_race'
;   K[20]='PlayerConfigKey'
;   K[21]='race_player'
;   K[22]='Init'
;   K[23]='Destroy'
;   K[24]='GetActivityDefinitionByType'
;   K[25]='GetBoardEntryShowConfig'
;   K[26]='GetMapEntryShowConfig'
;   K[27]='AcquireActivityToken'
;   K[28]='GetActivityTokenNumber'
;   K[29]='IsActivityOpen'
;   K[30]='GetScoreRatio'
;   K[31]='_LoadOtherServerConfig'
;   K[32]='PkRaceModel'
;   K[33]='_SetEntryOpName'
;   K[34]='CheckConfigValid'
;   K[35]='PkRaceModel'
;   K[36]='CheckSpeedCurveValid'
;   K[37]='_CreateRobotPlayers'
;   K[38]='_GenerateScoreCurve'
;   K[39]='GenerateRandomFloat'
;   K[40]='GetOneCompetitorData'
;   K[41]='GetCompetitorScore'
;   K[42]='GetCurrentRoundReward'
;   K[43]='GetRoundProgressReward'
;   K[44]='GetRoundProgressRewardConfigs'
;   K[45]='TryClaimReward'
;   K[46]='TryOpenMainWindow'
;   upvals: _ENV
0000  GETTABUP  R0 = _ENV[K1('setmetatable')]
0001  NEWTABLE  R1 = {} (0 items)
0002  SETTABLE  R1[K2('bShouldSkipEndWindowOnLongAway')] = K3(true)
0003  SETTABLE  R1[K4('FixedPlayerNumber')] = K5(1)
0004  SETTABLE  R1[K6('EntryOpName')] = K7('BLPkRaceEntry1')
0005  SETTABLE  R1[K8('EntryGapTime')] = K9(1800)
0006  SETTABLE  R1[K10('ShowEntryMask')] = K11(false)
0007  SETTABLE  R1[K12('LogTag')] = K13('PkRacePlayer')
0008  SETTABLE  R1[K14('MinAddScoreTime')] = K15(5)
0009  GETTABUP  R2 = _ENV[K16('BaseRaceActivityModel')]
0010  CALL      R0 = call(R0, 1 args, 2 rets)
0011  SETTABUP  _ENV[K0('PkRaceModel')] = R0
0012  GETTABUP  R0 = _ENV[K0('PkRaceModel')]
0013  GETTABUP  R1 = _ENV[K0('PkRaceModel')]
0014  SETTABLE  R0[K17('__index')] = R1
0015  GETTABUP  R0 = _ENV[K0('PkRaceModel')]
0016  SETTABLE  R0[K18('RoundConfigKey')] = K19('pk_race')
0017  GETTABUP  R0 = _ENV[K0('PkRaceModel')]
0018  SETTABLE  R0[K20('PlayerConfigKey')] = K21('race_player')
0019  GETTABUP  R0 = _ENV[K0('PkRaceModel')]
0020  CLOSURE   R1 = closure proto0
0021  SETTABLE  R0[K22('Init')] = R1
0022  GETTABUP  R0 = _ENV[K0('PkRaceModel')]
0023  CLOSURE   R1 = closure proto1
0024  SETTABLE  R0[K23('Destroy')] = R1
0025  GETTABUP  R0 = _ENV[K0('PkRaceModel')]
0026  CLOSURE   R1 = closure proto2
0027  SETTABLE  R0[K24('GetActivityDefinitionByType')] = R1
0028  GETTABUP  R0 = _ENV[K0('PkRaceModel')]
0029  CLOSURE   R1 = closure proto3
0030  SETTABLE  R0[K25('GetBoardEntryShowConfig')] = R1
0031  GETTABUP  R0 = _ENV[K0('PkRaceModel')]
0032  CLOSURE   R1 = closure proto4
0033  SETTABLE  R0[K26('GetMapEntryShowConfig')] = R1
0034  GETTABUP  R0 = _ENV[K0('PkRaceModel')]
0035  CLOSURE   R1 = closure proto5
0036  SETTABLE  R0[K27('AcquireActivityToken')] = R1
0037  GETTABUP  R0 = _ENV[K0('PkRaceModel')]
0038  CLOSURE   R1 = closure proto6
0039  SETTABLE  R0[K28('GetActivityTokenNumber')] = R1
0040  GETTABUP  R0 = _ENV[K0('PkRaceModel')]
0041  CLOSURE   R1 = closure proto7
0042  SETTABLE  R0[K29('IsActivityOpen')] = R1
0043  GETTABUP  R0 = _ENV[K0('PkRaceModel')]
0044  CLOSURE   R1 = closure proto8
0045  SETTABLE  R0[K30('GetScoreRatio')] = R1
0046  GETTABUP  R0 = _ENV[K0('PkRaceModel')]
0047  CLOSURE   R1 = closure proto9
0048  SETTABLE  R0[K31('_LoadOtherServerConfig')] = R1
0049  GETTABUP  R0 = _ENV[K32('PkRaceModel')]
0050  CLOSURE   R1 = closure proto10
0051  SETTABLE  R0[K33('_SetEntryOpName')] = R1
0052  GETTABUP  R0 = _ENV[K32('PkRaceModel')]
0053  CLOSURE   R1 = closure proto11
0054  SETTABLE  R0[K34('CheckConfigValid')] = R1
0055  GETTABUP  R0 = _ENV[K35('PkRaceModel')]
0056  CLOSURE   R1 = closure proto12
0057  SETTABLE  R0[K36('CheckSpeedCurveValid')] = R1
0058  GETTABUP  R0 = _ENV[K35('PkRaceModel')]
0059  CLOSURE   R1 = closure proto13
0060  SETTABLE  R0[K37('_CreateRobotPlayers')] = R1
0061  GETTABUP  R0 = _ENV[K35('PkRaceModel')]
0062  CLOSURE   R1 = closure proto14
0063  SETTABLE  R0[K38('_GenerateScoreCurve')] = R1
0064  GETTABUP  R0 = _ENV[K35('PkRaceModel')]
0065  CLOSURE   R1 = closure proto15
0066  SETTABLE  R0[K39('GenerateRandomFloat')] = R1
0067  GETTABUP  R0 = _ENV[K35('PkRaceModel')]
0068  CLOSURE   R1 = closure proto16
0069  SETTABLE  R0[K40('GetOneCompetitorData')] = R1
0070  GETTABUP  R0 = _ENV[K35('PkRaceModel')]
0071  CLOSURE   R1 = closure proto17
0072  SETTABLE  R0[K41('GetCompetitorScore')] = R1
0073  GETTABUP  R0 = _ENV[K35('PkRaceModel')]
0074  CLOSURE   R1 = closure proto18
0075  SETTABLE  R0[K42('GetCurrentRoundReward')] = R1
0076  GETTABUP  R0 = _ENV[K35('PkRaceModel')]
0077  CLOSURE   R1 = closure proto19
0078  SETTABLE  R0[K43('GetRoundProgressReward')] = R1
0079  GETTABUP  R0 = _ENV[K35('PkRaceModel')]
0080  CLOSURE   R1 = closure proto20
0081  SETTABLE  R0[K44('GetRoundProgressRewardConfigs')] = R1
0082  GETTABUP  R0 = _ENV[K35('PkRaceModel')]
0083  CLOSURE   R1 = closure proto21
0084  SETTABLE  R0[K45('TryClaimReward')] = R1
0085  GETTABUP  R0 = _ENV[K35('PkRaceModel')]
0086  CLOSURE   R1 = closure proto22
0087  SETTABLE  R0[K46('TryOpenMainWindow')] = R1
0088  RETURN    return R0..R-1
; ---------- proto0 [Init] ----------
  ; fn ?  line 41-44 np=3 va=0 ms=7 code=13 consts=5 upvals=1 protos=0
  ;   K[0]='m_tokenHelper'
  ;   K[1]='ActivityTokenHelper'
  ;   K[2]='Create'
  ;   K[3]='BaseRaceActivityModel'
  ;   K[4]='Init'
  ;   upvals: _ENV
  ;   locals: self(0-13), activityType(0-13), virtualDBTable(0-13)
  0000  GETTABUP  R3 = _ENV[K1('ActivityTokenHelper')]
  0001  GETTABLE  R3 = R3[K2('Create')]
  0002  MOVE      R4 = R0
  0003  MOVE      R5 = R0
  0004  CALL      R3 = call(R3, 1 args, 2 rets)
  0005  SETTABLE  R0[K0('m_tokenHelper')] = R3
  0006  GETTABUP  R3 = _ENV[K3('BaseRaceActivityModel')]
  0007  GETTABLE  R3 = R3[K4('Init')]
  0008  MOVE      R4 = R0
  0009  MOVE      R5 = R0
  0010  MOVE      R6 = R0
  0011  CALL      R3 = call(R3, 0 args, 3 rets)
  0012  RETURN    return R0..R-1
; ---------- proto1 [Destroy] ----------
  ; fn ?  line 46-49 np=1 va=0 ms=3 code=8 consts=3 upvals=1 protos=0
  ;   K[0]='BaseRaceActivityModel'
  ;   K[1]='Destroy'
  ;   K[2]='m_tokenHelper'
  ;   upvals: _ENV
  ;   locals: self(0-8)
  0000  GETTABUP  R1 = _ENV[K0('BaseRaceActivityModel')]
  0001  GETTABLE  R1 = R1[K1('Destroy')]
  0002  MOVE      R2 = R0
  0003  CALL      R1 = call(R1, 0 args, 1 rets)
  0004  GETTABLE  R1 = R0[K2('m_tokenHelper')]
  0005  SELF      R2 = R1[K1('Destroy')] (self)
  0006  CALL      R1 = call(R1, 0 args, 1 rets)
  0007  RETURN    return R0..R-1
; ---------- proto2 [GetActivityDefinitionByType] ----------
  ; fn ?  line 54-56 np=2 va=0 ms=3 code=4 consts=1 upvals=1 protos=0
  ;   K[0]='PkRaceDefinition'
  ;   upvals: _ENV
  ;   locals: self(0-4), activityType(0-4)
  0000  GETTABUP  R2 = _ENV[K0('PkRaceDefinition')]
  0001  GETTABLE  R2 = R2[R1]
  0002  RETURN    return R2..R1
  0003  RETURN    return R0..R-1
; ---------- proto3 [GetBoardEntryShowConfig] ----------
  ; fn ?  line 58-67 np=1 va=0 ms=3 code=14 consts=9 upvals=1 protos=1
  ;   K[0]='statusChangeEvent'
  ;   K[1]='m_activityDefinition'
  ;   K[2]='StateChangedEvent'
  ;   K[3]='eEntryRootKey'
  ;   K[4]='EEntryRootKey'
  ;   K[5]='PkRace'
  ;   K[6]='entryPrefabName'
  ;   K[7]='BoardEntryPrefabName'
  ;   K[8]='checkFun'
  ;   upvals: _ENV
  ;   locals: self(0-14)
  0000  NEWTABLE  R1 = {} (0 items)
  0001  GETTABLE  R2 = R0[K1('m_activityDefinition')]
  0002  GETTABLE  R2 = R2[K2('StateChangedEvent')]
  0003  SETTABLE  R1[K0('statusChangeEvent')] = R2
  0004  GETTABUP  R2 = _ENV[K4('EEntryRootKey')]
  0005  GETTABLE  R2 = R2[K5('PkRace')]
  0006  SETTABLE  R1[K3('eEntryRootKey')] = R2
  0007  GETTABLE  R2 = R0[K1('m_activityDefinition')]
  0008  GETTABLE  R2 = R2[K7('BoardEntryPrefabName')]
  0009  SETTABLE  R1[K6('entryPrefabName')] = R2
  0010  CLOSURE   R2 = closure proto0
  0011  SETTABLE  R1[K8('checkFun')] = R2
  0012  RETURN    return R1..R0
  0013  RETURN    return R0..R-1
  ; ---------- proto0 [checkFun] ----------
    ; fn ?  line 63-65 np=0 va=0 ms=2 code=5 consts=1 upvals=1 protos=0
    ;   K[0]='IsActivityOpen'
    ;   upvals: self
    0000  GETUPVAL  R0 = self
    0001  SELF      R1 = R0[K0('IsActivityOpen')] (self)
    0002  TAILCALL  tailcall(R0, 0)
    0003  RETURN    return R0..R-1
    0004  RETURN    return R0..R-1
; ---------- proto4 [GetMapEntryShowConfig] ----------
  ; fn ?  line 69-79 np=1 va=0 ms=3 code=17 consts=11 upvals=1 protos=1
  ;   K[0]='statusChangeEvent'
  ;   K[1]='m_activityDefinition'
  ;   K[2]='StateChangedEvent'
  ;   K[3]='eEntryRootKey'
  ;   K[4]='EEntryRootKey'
  ;   K[5]='PkRace'
  ;   K[6]='entryPrefabName'
  ;   K[7]='EntryPrefabName'
  ;   K[8]='hudKey'
  ;   K[9]='EntryButtonKey'
  ;   K[10]='checkFun'
  ;   upvals: _ENV
  ;   locals: self(0-17)
  0000  NEWTABLE  R1 = {} (0 items)
  0001  GETTABLE  R2 = R0[K1('m_activityDefinition')]
  0002  GETTABLE  R2 = R2[K2('StateChangedEvent')]
  0003  SETTABLE  R1[K0('statusChangeEvent')] = R2
  0004  GETTABUP  R2 = _ENV[K4('EEntryRootKey')]
  0005  GETTABLE  R2 = R2[K5('PkRace')]
  0006  SETTABLE  R1[K3('eEntryRootKey')] = R2
  0007  GETTABLE  R2 = R0[K1('m_activityDefinition')]
  0008  GETTABLE  R2 = R2[K7('EntryPrefabName')]
  0009  SETTABLE  R1[K6('entryPrefabName')] = R2
  0010  GETTABLE  R2 = R0[K1('m_activityDefinition')]
  0011  GETTABLE  R2 = R2[K9('EntryButtonKey')]
  0012  SETTABLE  R1[K8('hudKey')] = R2
  0013  CLOSURE   R2 = closure proto0
  0014  SETTABLE  R1[K10('checkFun')] = R2
  0015  RETURN    return R1..R0
  0016  RETURN    return R0..R-1
  ; ---------- proto0 [checkFun] ----------
    ; fn ?  line 75-77 np=0 va=0 ms=2 code=5 consts=1 upvals=1 protos=0
    ;   K[0]='IsActivityOpen'
    ;   upvals: self
    0000  GETUPVAL  R0 = self
    0001  SELF      R1 = R0[K0('IsActivityOpen')] (self)
    0002  TAILCALL  tailcall(R0, 0)
    0003  RETURN    return R0..R-1
    0004  RETURN    return R0..R-1
; ---------- proto5 [AcquireActivityToken] ----------
  ; fn ?  line 84-88 np=2 va=0 ms=6 code=8 consts=4 upvals=1 protos=0
  ;   K[0]=0
  ;   K[1]='_AddMyScore'
  ;   K[2]='RaceActivityLogBIType'
  ;   K[3]='Order'
  ;   upvals: _ENV
  ;   locals: self(0-8), score(0-8)
  0000  LT        if R0 lt R1   -> 3
  0001  JMP       (jump)   -> 7
  0002  SELF      R3 = R0[K1('_AddMyScore')] (self)
  0003  MOVE      R4 = R0
  0004  GETTABUP  R5 = _ENV[K2('RaceActivityLogBIType')]
  0005  GETTABLE  R5 = R5[K3('Order')]
  0006  CALL      R2 = call(R2, 0 args, 3 rets)
  0007  RETURN    return R0..R-1
; ---------- proto6 [GetActivityTokenNumber] ----------
  ; fn ?  line 91-93 np=1 va=0 ms=3 code=4 consts=1 upvals=0 protos=0
  ;   K[0]='GetMyScore'
  ;   locals: self(0-4)
  0000  SELF      R2 = R0[K0('GetMyScore')] (self)
  0001  TAILCALL  tailcall(R1, 0)
  0002  RETURN    return R1..R0
  0003  RETURN    return R0..R-1
; ---------- proto7 [IsActivityOpen] ----------
  ; fn ?  line 95-97 np=1 va=0 ms=3 code=16 consts=5 upvals=1 protos=0
  ;   K[0]='BaseRaceActivityModel'
  ;   K[1]='IsActivityOpen'
  ;   K[2]='GetState'
  ;   K[3]='ActivityState'
  ;   K[4]='Started'
  ;   upvals: _ENV
  ;   locals: self(0-16)
  0000  GETTABUP  R1 = _ENV[K0('BaseRaceActivityModel')]
  0001  GETTABLE  R1 = R1[K1('IsActivityOpen')]
  0002  MOVE      R2 = R0
  0003  CALL      R1 = call(R1, 1 args, 1 rets)
  0004  TEST      if not R1 then   -> -131066
  0005  JMP       (jump)   -> 14
  0006  SELF      R2 = R0[K2('GetState')] (self)
  0007  CALL      R1 = call(R1, 1 args, 1 rets)
  0008  GETTABUP  R2 = _ENV[K3('ActivityState')]
  0009  GETTABLE  R2 = R2[K4('Started')]
  0010  EQ        if R1 eq R2   -> -130546
  0011  JMP       (jump)   -> 13
  0012  LOADBOOL  R1 = false
  0013  LOADBOOL  R1 = true
  0014  RETURN    return R1..R0
  0015  RETURN    return R0..R-1
; ---------- proto8 [GetScoreRatio] ----------
  ; fn ?  line 99-106 np=1 va=0 ms=3 code=14 consts=5 upvals=1 protos=0
  ;   K[0]='Table'
  ;   K[1]='IsEmpty'
  ;   K[2]='m_speedCurveConfig'
  ;   K[3]=1
  ;   K[4]='m_scoreRatio'
  ;   upvals: _ENV
  ;   locals: self(0-14)
  0000  GETTABUP  R1 = _ENV[K0('Table')]
  0001  GETTABLE  R1 = R1[K1('IsEmpty')]
  0002  GETTABLE  R2 = R0[K2('m_speedCurveConfig')]
  0003  CALL      R1 = call(R1, 1 args, 1 rets)
  0004  TEST      if not R1 then   -> -131065
  0005  JMP       (jump)   -> 8
  0006  LOADK     R1 = K3 1
  0007  RETURN    return R1..R0
  0008  GETTABLE  R1 = R0[K4('m_scoreRatio')]
  0009  TEST      if not R1 then   -> -131060
  0010  JMP       (jump)   -> 12
  0011  LOADK     R1 = K3 1
  0012  RETURN    return R1..R0
  0013  RETURN    return R0..R-1
; ---------- proto9 [_LoadOtherServerConfig] ----------
  ; fn ?  line 108-169 np=2 va=0 ms=26 code=163 consts=47 upvals=1 protos=1
  ;   K[0]='BaseRaceActivityModel'
  ;   K[1]='_LoadOtherServerConfig'
  ;   K[2]='Table'
  ;   K[3]='DeepCopy'
  ;   K[4]='PkRaceModel'
  ;   K[5]='RoundConfigKey'
  ;   K[6]='table'
  ;   K[7]='sort'
  ;   K[8]='m_config'
  ;   K[9]='roundConfigs'
  ;   K[10]='order_token_control'
  ;   K[11]='m_scoreRatio'
  ;   K[12]=nil
  ;   K[13]=1
  ;   K[14]='ratio'
  ;   K[15]='score_min'
  ;   K[16]='score_max'
  ;   K[17]='Log'
  ;   K[18]='Error'
  ;   K[19]='order_token_control表配置有误, 1v1活动不允许根据难度分进行分层'
  ;   K[20]='IsEmpty'
  ;   K[21]='order_token_control表配置有误, 1v1活动不允许有多条配置'
  ;   K[22]='m_tokenHelper'
  ;   K[23]='LoadConfig'
  ;   K[24]='m_speedCurveConfig'
  ;   K[25]='PlayerConfigKey'
  ;   K[26]='ipairs'
  ;   K[27]='round'
  ;   K[28]=6
  ;   K[29]='speed_curve'
  ;   K[30]='insert'
  ;   K[31]='GameConfig'
  ;   K[32]='IsTestMode'
  ;   K[33]='CheckSpeedCurveValid'
  ;   K[34]='delta'
  ;   K[35]='success'
  ;   K[36]='曲线积分区间存在重叠的情况, 请检查配置{ 轮次:'
  ;   K[37]=', 组:'
  ;   K[38]='group'
  ;   K[39]=', 曲线序号:'
  ;   K[40]='tostring'
  ;   K[41]=2
  ;   K[42]='曲线的时间不是递增的, 请检查配置{ 轮次:'
  ;   K[43]='ShallowCopy'
  ;   K[44]='arrCurve'
  ;   K[45]='_SetEntryOpName'
  ;   K[46]='CheckConfigValid'
  ;   upvals: _ENV
  ;   locals: self(0-163), config(0-163), arrConfig(12-163), orderTokenConfigs(20-163), newPlayerConfigs(62-163), arrCurve(71-158), curveConfig(71-158), playerConfig(71-158), (for generator)(74-158), (for state)(74-158), (for control)(74-158), _(75-156), config(75-156), (for index)(89-145), (for limit)(89-145), (for step)(89-145), i(90-144), rCode(115-144)
  0000  GETTABUP  R2 = _ENV[K0('BaseRaceActivityModel')]
  0001  GETTABLE  R2 = R2[K1('_LoadOtherServerConfig')]
  0002  MOVE      R3 = R0
  0003  MOVE      R4 = R0
  0004  CALL      R2 = call(R2, 0 args, 2 rets)
  0005  GETTABUP  R2 = _ENV[K2('Table')]
  0006  GETTABLE  R2 = R2[K3('DeepCopy')]
  0007  GETTABUP  R3 = _ENV[K4('PkRaceModel')]
  0008  GETTABLE  R3 = R3[K5('RoundConfigKey')]
  0009  GETTABLE  R3 = R1[R3]
  0010  LOADBOOL  R4 = true
  0011  CALL      R2 = call(R2, 1 args, 2 rets)
  0012  GETTABUP  R3 = _ENV[K6('table')]
  0013  GETTABLE  R3 = R3[K7('sort')]
  0014  MOVE      R4 = R0
  0015  CLOSURE   R5 = closure proto0
  0016  CALL      R3 = call(R3, 0 args, 2 rets)
  0017  GETTABLE  R3 = R0[K8('m_config')]
  0018  SETTABLE  R3[K9('roundConfigs')] = R2
  0019  GETTABLE  R3 = R1[K10('order_token_control')]
  0020  SETTABLE  R0[K11('m_scoreRatio')] = K12(nil)
  0021  EQ        if R1 eq K12(nil)   -> -129245
  0022  JMP       (jump)   -> 41
  0023  GETTABLE  R4 = R3[K13(1)]
  0024  EQ        if R1 eq K12(nil)   -> -128730
  0025  JMP       (jump)   -> 41
  0026  GETTABLE  R4 = R3[K13(1)]
  0027  GETTABLE  R4 = R4[K14('ratio')]
  0028  SETTABLE  R0[K11('m_scoreRatio')] = R4
  0029  GETTABLE  R4 = R3[K13(1)]
  0030  GETTABLE  R4 = R4[K15('score_min')]
  0031  EQ        if R0 eq K12(nil)   -> -128723
  0032  JMP       (jump)   -> 37
  0033  GETTABLE  R4 = R3[K13(1)]
  0034  GETTABLE  R4 = R4[K16('score_max')]
  0035  EQ        if R1 eq K12(nil)   -> -128719
  0036  JMP       (jump)   -> 41
  0037  GETTABUP  R4 = _ENV[K17('Log')]
  0038  GETTABLE  R4 = R4[K18('Error')]
  0039  LOADK     R5 = K19 'order_token_control表配置有误, 1v1活动不允许根据难度分进行分层'
  0040  CALL      R4 = call(R4, 0 args, 1 rets)
  0041  GETTABUP  R4 = _ENV[K2('Table')]
  0042  GETTABLE  R4 = R4[K20('IsEmpty')]
  0043  MOVE      R5 = R0
  0044  CALL      R4 = call(R4, 1 args, 1 rets)
  0045  TEST      if not R4 then   -> -131024
  0046  JMP       (jump)   -> 54
  0047  LEN       R4 = len R0
  0048  LT        if R0 lt R4   -> 6710
  0049  JMP       (jump)   -> 54
  0050  GETTABUP  R4 = _ENV[K17('Log')]
  0051  GETTABLE  R4 = R4[K18('Error')]
  0052  LOADK     R5 = K21 'order_token_control表配置有误, 1v1活动不允许有多条配置'
  0053  CALL      R4 = call(R4, 0 args, 1 rets)
  0054  GETTABLE  R4 = R0[K22('m_tokenHelper')]
  0055  SELF      R5 = R4[K23('LoadConfig')] (self)
  0056  MOVE      R6 = R0
  0057  CALL      R4 = call(R4, 0 args, 2 rets)
  0058  SETTABLE  R0[K24('m_speedCurveConfig')] = K12(nil)
  0059  GETTABUP  R4 = _ENV[K4('PkRaceModel')]
  0060  GETTABLE  R4 = R4[K25('PlayerConfigKey')]
  0061  GETTABLE  R4 = R1[R4]
  0062  GETTABUP  R5 = _ENV[K2('Table')]
  0063  GETTABLE  R5 = R5[K20('IsEmpty')]
  0064  MOVE      R6 = R0
  0065  CALL      R5 = call(R5, 1 args, 1 rets)
  0066  TEST      if not R5 then   -> -131003
  0067  JMP       (jump)   -> 158
  0068  NEWTABLE  R5 = {} (0 items)
  0069  SETTABLE  R0[K24('m_speedCurveConfig')] = R5
  0070  LOADNIL   R5..R5 = nil
  0071  GETTABUP  R8 = _ENV[K26('ipairs')]
  0072  MOVE      R9 = R0
  0073  CALL      R8 = call(R8, 3 args, 1 rets)
  0074  JMP       (jump)   -> 156
  0075  GETTABLE  R13 = R0[K24('m_speedCurveConfig')]
  0076  GETTABLE  R14 = R12[K27('round')]
  0077  GETTABLE  R13 = R13[R14]
  0078  EQ        if R0 eq K12(nil)   -> -124068
  0079  JMP       (jump)   -> 84
  0080  GETTABLE  R13 = R0[K24('m_speedCurveConfig')]
  0081  GETTABLE  R14 = R12[K27('round')]
  0082  NEWTABLE  R15 = {} (0 items)
  0083  SETTABLE  R13[R14] = R15
  0084  NEWTABLE  R13 = {} (0 items)
  0085  MOVE      R5 = R0
  0086  LOADK     R13 = K13 1
  0087  LOADK     R14 = K28 6
  0088  LOADK     R15 = K13 1
  0089  FORPREP   forprep R13(sBx=54)   -> 144
  0090  LOADK     R17 = K29 'speed_curve'
  0091  MOVE      R18 = R0
  0092  CONCAT    R17 = concat(R17..R17)
  0093  GETTABLE  R6 = R12[R17]
  0094  EQ        if R1 eq K12(nil)   -> -127636
  0095  JMP       (jump)   -> 144
  0096  GETTABUP  R17 = _ENV[K6('table')]
  0097  GETTABLE  R17 = R17[K30('insert')]
  0098  MOVE      R18 = R0
  0099  MOVE      R19 = R0
  0100  CALL      R17 = call(R17, 0 args, 2 rets)
  0101  GETTABUP  R17 = _ENV[K31('GameConfig')]
  0102  GETTABLE  R17 = R17[K32('IsTestMode')]
  0103  CALL      R17 = call(R17, 1 args, 0 rets)
  0104  TEST      if not R17 then   -> -130966
  0105  JMP       (jump)   -> 144
  0106  SELF      R18 = R0[K33('CheckSpeedCurveValid')] (self)
  0107  MOVE      R19 = R0
  0108  GETTABLE  R20 = R12[K34('delta')]
  0109  GETTABLE  R21 = R12[K35('success')]
  0110  EQ        if R1 eq K13(1)   -> -119939
  0111  JMP       (jump)   -> 113
  0112  LOADBOOL  R21 = false
  0113  LOADBOOL  R21 = true
  0114  CALL      R17 = call(R17, 1 args, 4 rets)
  0115  EQ        if R0 eq K13(1)   -> -121982
  0116  JMP       (jump)   -> 130
  0117  GETTABUP  R18 = _ENV[K17('Log')]
  0118  GETTABLE  R18 = R18[K18('Error')]
  0119  LOADK     R19 = K36 '曲线积分区间存在重叠的情况, 请检查配置{ 轮次:'
  0120  GETTABLE  R20 = R12[K27('round')]
  0121  LOADK     R21 = K37 ', 组:'
  0122  GETTABLE  R22 = R12[K38('group')]
  0123  LOADK     R23 = K39 ', 曲线序号:'
  0124  GETTABUP  R24 = _ENV[K40('tostring')]
  0125  MOVE      R25 = R0
  0126  CALL      R24 = call(R24, 1 args, 1 rets)
  0127  CONCAT    R19 = concat(R19..R19)
  0128  CALL      R18 = call(R18, 0 args, 1 rets)
  0129  JMP       (jump)   -> 144
  0130  EQ        if R0 eq K41(2)   -> -121939
  0131  JMP       (jump)   -> 144
  0132  GETTABUP  R18 = _ENV[K17('Log')]
  0133  GETTABLE  R18 = R18[K18('Error')]
  0134  LOADK     R19 = K42 '曲线的时间不是递增的, 请检查配置{ 轮次:'
  0135  GETTABLE  R20 = R12[K27('round')]
  0136  LOADK     R21 = K37 ', 组:'
  0137  GETTABLE  R22 = R12[K38('group')]
  0138  LOADK     R23 = K39 ', 曲线序号:'
  0139  GETTABUP  R24 = _ENV[K40('tostring')]
  0140  MOVE      R25 = R0
  0141  CALL      R24 = call(R24, 1 args, 1 rets)
  0142  CONCAT    R19 = concat(R19..R19)
  0143  CALL      R18 = call(R18, 0 args, 1 rets)
  0144  FORLOOP   forloop R13(sBx=-55)   -> 90
  0145  GETTABUP  R13 = _ENV[K2('Table')]
  0146  GETTABLE  R13 = R13[K43('ShallowCopy')]
  0147  MOVE      R14 = R0
  0148  CALL      R13 = call(R13, 1 args, 1 rets)
  0149  MOVE      R7 = R0
  0150  SETTABLE  R7[K44('arrCurve')] = R5
  0151  GETTABLE  R13 = R0[K24('m_speedCurveConfig')]
  0152  GETTABLE  R14 = R12[K27('round')]
  0153  GETTABLE  R13 = R13[R14]
  0154  GETTABLE  R14 = R12[K38('group')]
  0155  SETTABLE  R13[R14] = R7
  0156  TFORCALL  tforcall R8
  0157  TFORLOOP  tforloop R10(sBx=-83)   -> 75
  0158  SELF      R6 = R0[K45('_SetEntryOpName')] (self)
  0159  CALL      R5 = call(R5, 0 args, 1 rets)
  0160  SELF      R6 = R0[K46('CheckConfigValid')] (self)
  0161  CALL      R5 = call(R5, 0 args, 1 rets)
  0162  RETURN    return R0..R-1
  ; ---------- proto0 [roundConfigs] ----------
    ; fn ?  line 112-114 np=2 va=0 ms=4 code=8 consts=1 upvals=0 protos=0
    ;   K[0]='round'
    ;   locals: a(0-8), b(0-8)
    0000  GETTABLE  R2 = R0[K0('round')]
    0001  GETTABLE  R3 = R1[K0('round')]
    0002  LT        if R1 lt R3   -> -130041
    0003  JMP       (jump)   -> 5
    0004  LOADBOOL  R2 = false
    0005  LOADBOOL  R2 = true
    0006  RETURN    return R2..R1
    0007  RETURN    return R0..R-1
; ---------- proto10 [_SetEntryOpName] ----------
  ; fn ?  line 171-174 np=1 va=0 ms=3 code=12 consts=6 upvals=1 protos=0
  ;   K[0]='EntryOpName'
  ;   K[1]='Table'
  ;   K[2]='IsEmpty'
  ;   K[3]='m_speedCurveConfig'
  ;   K[4]='BLPkRace1Entry1'
  ;   K[5]='BLPkRaceEntry1'
  ;   upvals: _ENV
  ;   locals: self(0-12)
  0000  GETTABUP  R1 = _ENV[K1('Table')]
  0001  GETTABLE  R1 = R1[K2('IsEmpty')]
  0002  GETTABLE  R2 = R0[K3('m_speedCurveConfig')]
  0003  CALL      R1 = call(R1, 1 args, 1 rets)
  0004  TEST      if not R1 then   -> -131065
  0005  JMP       (jump)   -> 9
  0006  LOADK     R1 = K4 'BLPkRace1Entry1'
  0007  TEST      if not R1 then   -> -131062
  0008  JMP       (jump)   -> 10
  0009  LOADK     R1 = K5 'BLPkRaceEntry1'
  0010  SETTABLE  R0[K0('EntryOpName')] = R1
  0011  RETURN    return R0..R-1
; ---------- proto11 [CheckConfigValid] ----------
  ; fn ?  line 176-235 np=1 va=0 ms=23 code=142 consts=36 upvals=1 protos=0
  ;   K[0]='GameConfig'
  ;   K[1]='IsTestMode'
  ;   K[2]='ipairs'
  ;   K[3]='m_config'
  ;   K[4]='roundConfigs'
  ;   K[5]=0
  ;   K[6]='round'
  ;   K[7]='Log'
  ;   K[8]='Error'
  ;   K[9]='PkRaceModel'
  ;   K[10]='RoundConfigKey'
  ;   K[11]=' 表中的 round 存在跳配或少配！'
  ;   K[12]='playerNum'
  ;   K[13]='playerNum 为空！'
  ;   K[14]='group_num'
  ;   K[15]='group_type'
  ;   K[16]=true
  ;   K[17]='FixedPlayerNumber'
  ;   K[18]='playerNum 假人数量不符要求！'
  ;   K[19]='playerNumWeight'
  ;   K[20]='playerNumWeight 含有不存在的 groupType！'
  ;   K[21]='_'
  ;   K[22]='child_type'
  ;   K[23]='pairs'
  ;   K[24]=nil
  ;   K[25]='Table'
  ;   K[26]='IsEmpty'
  ;   K[27]='m_speedCurveConfig'
  ;   K[28]='race_player表中缺少第'
  ;   K[29]='轮的配置'
  ;   K[30]='race_player表中第'
  ;   K[31]='轮缺少'
  ;   K[32]='组的配置'
  ;   K[33]='arrCurve'
  ;   K[34]='轮, '
  ;   K[35]='组的配置缺少速度曲线'
  ;   upvals: _ENV
  ;   locals: self(0-142), (for generator)(10-141), (for state)(10-141), (for control)(10-141), i(11-139), roundConfig(11-139), total(12-139), mapGroupType(13-139), mapRealGroupName(14-139), (for generator)(35-42), (for state)(35-42), (for control)(35-42), _(36-40), playerNumConfig(36-40), mapGroupWeight(50-139), (for generator)(56-75), (for state)(56-75), (for control)(56-75), _(57-73), weightConfig(57-73), (for generator)(78-85), (for state)(78-85), (for control)(78-85), groupType(79-83), _(79-83), speedRoundConfig(94-139), groupConfig(105-139), (for generator)(108-139), (for state)(108-139), (for control)(108-139), groupName(109-137), _(109-137)
  0000  GETTABUP  R1 = _ENV[K0('GameConfig')]
  0001  GETTABLE  R1 = R1[K1('IsTestMode')]
  0002  CALL      R1 = call(R1, 1 args, 0 rets)
  0003  TEST      if not R1 then   -> -131066
  0004  JMP       (jump)   -> 6
  0005  RETURN    return R0..R-1
  0006  GETTABUP  R1 = _ENV[K2('ipairs')]
  0007  GETTABLE  R2 = R0[K3('m_config')]
  0008  GETTABLE  R2 = R2[K4('roundConfigs')]
  0009  CALL      R1 = call(R1, 3 args, 1 rets)
  0010  JMP       (jump)   -> 139
  0011  LOADK     R6 = K5 0
  0012  NEWTABLE  R7 = {} (0 items)
  0013  NEWTABLE  R8 = {} (0 items)
  0014  GETTABLE  R9 = R5[K6('round')]
  0015  EQ        if R1 eq R4   -> -126443
  0016  JMP       (jump)   -> 24
  0017  GETTABUP  R9 = _ENV[K7('Log')]
  0018  GETTABLE  R9 = R9[K8('Error')]
  0019  GETTABUP  R10 = _ENV[K9('PkRaceModel')]
  0020  GETTABLE  R10 = R10[K10('RoundConfigKey')]
  0021  LOADK     R11 = K11 ' 表中的 round 存在跳配或少配！'
  0022  CONCAT    R10 = concat(R10..R10)
  0023  CALL      R9 = call(R9, 0 args, 1 rets)
  0024  GETTABLE  R9 = R5[K12('playerNum')]
  0025  TEST      if not R9 then   -> -131044
  0026  JMP       (jump)   -> 32
  0027  GETTABUP  R9 = _ENV[K7('Log')]
  0028  GETTABLE  R9 = R9[K8('Error')]
  0029  LOADK     R10 = K13 'playerNum 为空！'
  0030  CALL      R9 = call(R9, 0 args, 1 rets)
  0031  JMP       (jump)   -> 49
  0032  GETTABUP  R9 = _ENV[K2('ipairs')]
  0033  GETTABLE  R10 = R5[K12('playerNum')]
  0034  CALL      R9 = call(R9, 3 args, 1 rets)
  0035  JMP       (jump)   -> 40
  0036  GETTABLE  R14 = R13[K14('group_num')]
  0037  ADD       R6 = R14 add R6
  0038  GETTABLE  R14 = R13[K15('group_type')]
  0039  SETTABLE  R7[R14] = K16(true)
  0040  TFORCALL  tforcall R9
  0041  TFORLOOP  tforloop R11(sBx=-6)   -> 36
  0042  GETTABLE  R9 = R0[K17('FixedPlayerNumber')]
  0043  EQ        if R1 eq R9   -> -127946
  0044  JMP       (jump)   -> 49
  0045  GETTABUP  R9 = _ENV[K7('Log')]
  0046  GETTABLE  R9 = R9[K8('Error')]
  0047  LOADK     R10 = K18 'playerNum 假人数量不符要求！'
  0048  CALL      R9 = call(R9, 0 args, 1 rets)
  0049  NEWTABLE  R9 = {} (0 items)
  0050  GETTABLE  R10 = R5[K19('playerNumWeight')]
  0051  TEST      if not R10 then   -> -131019
  0052  JMP       (jump)   -> 75
  0053  GETTABUP  R10 = _ENV[K2('ipairs')]
  0054  GETTABLE  R11 = R5[K19('playerNumWeight')]
  0055  CALL      R10 = call(R10, 3 args, 1 rets)
  0056  JMP       (jump)   -> 73
  0057  GETTABLE  R15 = R14[K15('group_type')]
  0058  SETTABLE  R9[R15] = K16(true)
  0059  GETTABLE  R15 = R14[K15('group_type')]
  0060  GETTABLE  R15 = R7[R15]
  0061  TEST      if not R15 then   -> -131008
  0062  JMP       (jump)   -> 68
  0063  GETTABUP  R15 = _ENV[K7('Log')]
  0064  GETTABLE  R15 = R15[K8('Error')]
  0065  LOADK     R16 = K20 'playerNumWeight 含有不存在的 groupType！'
  0066  CALL      R15 = call(R15, 0 args, 1 rets)
  0067  JMP       (jump)   -> 73
  0068  GETTABLE  R15 = R14[K15('group_type')]
  0069  LOADK     R16 = K21 '_'
  0070  GETTABLE  R17 = R14[K22('child_type')]
  0071  CONCAT    R15 = concat(R15..R15)
  0072  SETTABLE  R8[R15] = K16(true)
  0073  TFORCALL  tforcall R10
  0074  TFORLOOP  tforloop R12(sBx=-18)   -> 57
  0075  GETTABUP  R10 = _ENV[K23('pairs')]
  0076  MOVE      R11 = R0
  0077  CALL      R10 = call(R10, 3 args, 1 rets)
  0078  JMP       (jump)   -> 83
  0079  GETTABLE  R15 = R9[R13]
  0080  EQ        if R0 eq K24(nil)   -> -123030
  0081  JMP       (jump)   -> 83
  0082  SETTABLE  R8[R13] = K16(true)
  0083  TFORCALL  tforcall R10
  0084  TFORLOOP  tforloop R12(sBx=-6)   -> 79
  0085  GETTABUP  R10 = _ENV[K25('Table')]
  0086  GETTABLE  R10 = R10[K26('IsEmpty')]
  0087  GETTABLE  R11 = R0[K27('m_speedCurveConfig')]
  0088  CALL      R10 = call(R10, 1 args, 1 rets)
  0089  TEST      if not R10 then   -> -130980
  0090  JMP       (jump)   -> 139
  0091  GETTABLE  R10 = R0[K27('m_speedCurveConfig')]
  0092  GETTABLE  R11 = R5[K6('round')]
  0093  GETTABLE  R10 = R10[R11]
  0094  EQ        if R0 eq K24(nil)   -> -125576
  0095  JMP       (jump)   -> 104
  0096  GETTABUP  R11 = _ENV[K7('Log')]
  0097  GETTABLE  R11 = R11[K8('Error')]
  0098  LOADK     R12 = K28 'race_player表中缺少第'
  0099  GETTABLE  R13 = R5[K6('round')]
  0100  LOADK     R14 = K29 '轮的配置'
  0101  CONCAT    R12 = concat(R12..R12)
  0102  CALL      R11 = call(R11, 0 args, 1 rets)
  0103  JMP       (jump)   -> 139
  0104  LOADNIL   R11..R11 = nil
  0105  GETTABUP  R12 = _ENV[K23('pairs')]
  0106  MOVE      R13 = R0
  0107  CALL      R12 = call(R12, 3 args, 1 rets)
  0108  JMP       (jump)   -> 137
  0109  GETTABLE  R11 = R10[R15]
  0110  EQ        if R0 eq K24(nil)   -> -125048
  0111  JMP       (jump)   -> 122
  0112  GETTABUP  R17 = _ENV[K7('Log')]
  0113  GETTABLE  R17 = R17[K8('Error')]
  0114  LOADK     R18 = K30 'race_player表中第'
  0115  GETTABLE  R19 = R5[K6('round')]
  0116  LOADK     R20 = K31 '轮缺少'
  0117  MOVE      R21 = R0
  0118  LOADK     R22 = K32 '组的配置'
  0119  CONCAT    R18 = concat(R18..R18)
  0120  CALL      R17 = call(R17, 0 args, 1 rets)
  0121  JMP       (jump)   -> 137
  0122  GETTABUP  R17 = _ENV[K25('Table')]
  0123  GETTABLE  R17 = R17[K26('IsEmpty')]
  0124  GETTABLE  R18 = R11[K33('arrCurve')]
  0125  CALL      R17 = call(R17, 1 args, 1 rets)
  0126  TEST      if not R17 then   -> -130944
  0127  JMP       (jump)   -> 137
  0128  GETTABUP  R17 = _ENV[K7('Log')]
  0129  GETTABLE  R17 = R17[K8('Error')]
  0130  LOADK     R18 = K30 'race_player表中第'
  0131  GETTABLE  R19 = R5[K6('round')]
  0132  LOADK     R20 = K34 '轮, '
  0133  MOVE      R21 = R0
  0134  LOADK     R22 = K35 '组的配置缺少速度曲线'
  0135  CONCAT    R18 = concat(R18..R18)
  0136  CALL      R17 = call(R17, 0 args, 1 rets)
  0137  TFORCALL  tforcall R12
  0138  TFORLOOP  tforloop R14(sBx=-30)   -> 109
  0139  TFORCALL  tforcall R1
  0140  TFORLOOP  tforloop R3(sBx=-130)   -> 11
  0141  RETURN    return R0..R-1
; ---------- proto12 [CheckSpeedCurveValid] ----------
  ; fn ?  line 238-258 np=4 va=0 ms=15 code=32 consts=7 upvals=1 protos=0
  ;   K[0]=0
  ;   K[1]='ipairs'
  ;   K[2]='TokenPercent'
  ;   K[3]=-0.0001
  ;   K[4]=1
  ;   K[5]='TimePercent'
  ;   K[6]=2
  ;   upvals: _ENV
  ;   locals: self(0-32), curve(0-32), delta(0-32), bSuccess(0-32), lastMaxPer(1-32), lastTimePer(2-32), minPer(3-32), tmp1(3-32), tmp2(3-32), (for generator)(6-29), (for state)(6-29), (for control)(6-29), _(7-27), curveInfo(7-27)
  0000  LOADK     R4 = K0 0
  0001  LOADK     R5 = K0 0
  0002  LOADNIL   R6..R6 = nil
  0003  GETTABUP  R9 = _ENV[K1('ipairs')]
  0004  MOVE      R10 = R0
  0005  CALL      R9 = call(R9, 3 args, 1 rets)
  0006  JMP       (jump)   -> 27
  0007  GETTABLE  R14 = R13[K2('TokenPercent')]
  0008  SUB       R6 = R2 sub R14
  0009  SUB       R14 = R4 sub R6
  0010  LT        if R0 lt K3(-0.0001)   -> -123633
  0011  JMP       (jump)   -> 14
  0012  LOADK     R14 = K4 1
  0013  RETURN    return R14..R13
  0014  GETTABLE  R14 = R13[K5('TimePercent')]
  0015  LT        if R1 lt R5   -> -123882
  0016  JMP       (jump)   -> 22
  0017  TEST      if not R3 then   -> -131053
  0018  JMP       (jump)   -> 24
  0019  GETTABLE  R14 = R13[K5('TimePercent')]
  0020  EQ        if R0 eq K4(1)   -> -123622
  0021  JMP       (jump)   -> 24
  0022  LOADK     R14 = K6 2
  0023  RETURN    return R14..R13
  0024  GETTABLE  R14 = R13[K2('TokenPercent')]
  0025  ADD       R4 = R2 add R14
  0026  GETTABLE  R5 = R13[K5('TimePercent')]
  0027  TFORCALL  tforcall R9
  0028  TFORLOOP  tforloop R11(sBx=-22)   -> 7
  0029  LOADK     R9 = K0 0
  0030  RETURN    return R9..R8
  0031  RETURN    return R0..R-1
; ---------- proto13 [_CreateRobotPlayers] ----------
  ; fn ?  line 261-286 np=2 va=0 ms=20 code=88 consts=31 upvals=1 protos=0
  ;   K[0]='GetTargetScore'
  ;   K[1]='m_arrPlayerData'
  ;   K[2]='Table'
  ;   K[3]='IsEmpty'
  ;   K[4]='m_speedCurveConfig'
  ;   K[5]='ipairs'
  ;   K[6]='RacePlayerData'
  ;   K[7]='Create'
  ;   K[8]=0
  ;   K[9]=1
  ;   K[10]='score'
  ;   K[11]='_GenerateScoreCurve'
  ;   K[12]='group_type'
  ;   K[13]='second'
  ;   K[14]='GM'
  ;   K[15]='UserProfileModel'
  ;   K[16]='GenerateAllAdornmentForData'
  ;   K[17]='PkRacePlayerData'
  ;   K[18]='GameConfig'
  ;   K[19]='IsTestMode'
  ;   K[20]=nil
  ;   K[21]='Log'
  ;   K[22]='Debug'
  ;   K[23]='[匹配信息] 轮次:'
  ;   K[24]='GetCurrentRound'
  ;   K[25]='组:'
  ;   K[26]=', 曲线序号:'
  ;   K[27]=', 积分信息:'
  ;   K[28]='json'
  ;   K[29]='encode'
  ;   K[30]='LogTag'
  ;   upvals: _ENV
  ;   locals: self(0-88), robots(0-88), targetScore(2-88), playerData(3-88), (for generator)(14-30), (for state)(14-30), (for control)(14-30), index(15-28), value(15-28), randomIndex(32-87), (for generator)(35-87), (for state)(35-87), (for control)(35-87), index(36-85), value(36-85)
  0000  SELF      R3 = R0[K0('GetTargetScore')] (self)
  0001  CALL      R2 = call(R2, 1 args, 1 rets)
  0002  LOADNIL   R3..R3 = nil
  0003  NEWTABLE  R4 = {} (0 items)
  0004  SETTABLE  R0[K1('m_arrPlayerData')] = R4
  0005  GETTABUP  R4 = _ENV[K2('Table')]
  0006  GETTABLE  R4 = R4[K3('IsEmpty')]
  0007  GETTABLE  R5 = R0[K4('m_speedCurveConfig')]
  0008  CALL      R4 = call(R4, 1 args, 1 rets)
  0009  TEST      if not R4 then   -> -131061
  0010  JMP       (jump)   -> 31
  0011  GETTABUP  R4 = _ENV[K5('ipairs')]
  0012  MOVE      R5 = R0
  0013  CALL      R4 = call(R4, 3 args, 1 rets)
  0014  JMP       (jump)   -> 28
  0015  GETTABUP  R9 = _ENV[K6('RacePlayerData')]
  0016  GETTABLE  R9 = R9[K7('Create')]
  0017  MOVE      R10 = R0
  0018  MOVE      R11 = R0
  0019  MOVE      R12 = R0
  0020  LOADK     R13 = K8 0
  0021  CALL      R9 = call(R9, 1 args, 4 rets)
  0022  MOVE      R3 = R0
  0023  GETTABLE  R9 = R0[K1('m_arrPlayerData')]
  0024  GETTABLE  R10 = R0[K1('m_arrPlayerData')]
  0025  LEN       R10 = len R0
  0026  ADD       R10 = K9(1) add R10
  0027  SETTABLE  R9[R10] = R3
  0028  TFORCALL  tforcall R4
  0029  TFORLOOP  tforloop R6(sBx=-15)   -> 15
  0030  JMP       (jump)   -> 87
  0031  LOADNIL   R4..R4 = nil
  0032  GETTABUP  R5 = _ENV[K5('ipairs')]
  0033  MOVE      R6 = R0
  0034  CALL      R5 = call(R5, 3 args, 1 rets)
  0035  JMP       (jump)   -> 85
  0036  SELF      R11 = R0[K11('_GenerateScoreCurve')] (self)
  0037  GETTABLE  R12 = R9[K12('group_type')]
  0038  MOVE      R13 = R0
  0039  GETTABLE  R14 = R9[K13('second')]
  0040  CALL      R10 = call(R10, 2 args, 4 rets)
  0041  MOVE      R4 = R0
  0042  SETTABLE  R9[K10('score')] = R10
  0043  GETTABUP  R10 = _ENV[K14('GM')]
  0044  GETTABLE  R10 = R10[K15('UserProfileModel')]
  0045  SELF      R11 = R10[K16('GenerateAllAdornmentForData')] (self)
  0046  MOVE      R12 = R0
  0047  CALL      R10 = call(R10, 0 args, 2 rets)
  0048  GETTABUP  R10 = _ENV[K17('PkRacePlayerData')]
  0049  GETTABLE  R10 = R10[K7('Create')]
  0050  MOVE      R11 = R0
  0051  MOVE      R12 = R0
  0052  MOVE      R13 = R0
  0053  LOADK     R14 = K8 0
  0054  CALL      R10 = call(R10, 1 args, 4 rets)
  0055  MOVE      R3 = R0
  0056  GETTABLE  R10 = R0[K1('m_arrPlayerData')]
  0057  GETTABLE  R11 = R0[K1('m_arrPlayerData')]
  0058  LEN       R11 = len R0
  0059  ADD       R11 = K9(1) add R11
  0060  SETTABLE  R10[R11] = R3
  0061  GETTABUP  R10 = _ENV[K18('GameConfig')]
  0062  GETTABLE  R10 = R10[K19('IsTestMode')]
  0063  CALL      R10 = call(R10, 1 args, 0 rets)
  0064  TEST      if not R10 then   -> -131006
  0065  JMP       (jump)   -> 85
  0066  EQ        if R1 eq K20(nil)   -> -128680
  0067  JMP       (jump)   -> 85
  0068  GETTABUP  R10 = _ENV[K21('Log')]
  0069  GETTABLE  R10 = R10[K22('Debug')]
  0070  LOADK     R11 = K23 '[匹配信息] 轮次:'
  0071  SELF      R13 = R0[K24('GetCurrentRound')] (self)
  0072  CALL      R12 = call(R12, 1 args, 1 rets)
  0073  LOADK     R13 = K25 '组:'
  0074  GETTABLE  R14 = R9[K12('group_type')]
  0075  LOADK     R15 = K26 ', 曲线序号:'
  0076  MOVE      R16 = R0
  0077  LOADK     R17 = K27 ', 积分信息:'
  0078  GETTABUP  R18 = _ENV[K28('json')]
  0079  GETTABLE  R18 = R18[K29('encode')]
  0080  GETTABLE  R19 = R9[K10('score')]
  0081  CALL      R18 = call(R18, 1 args, 1 rets)
  0082  CONCAT    R11 = concat(R11..R11)
  0083  GETTABLE  R12 = R0[K30('LogTag')]
  0084  CALL      R10 = call(R10, 0 args, 2 rets)
  0085  TFORCALL  tforcall R5
  0086  TFORLOOP  tforloop R7(sBx=-51)   -> 36
  0087  RETURN    return R0..R-1
; ---------- proto14 [_GenerateScoreCurve] ----------
  ; fn ?  line 293-334 np=4 va=0 ms=26 code=118 consts=29 upvals=1 protos=0
  ;   K[0]='GetCurrentRound'
  ;   K[1]='m_speedCurveConfig'
  ;   K[2]=nil
  ;   K[3]='Log'
  ;   K[4]='Error'
  ;   K[5]='[race_player] 没有对应的轮次或者组别，请检查: '
  ;   K[6]='nil'
  ;   K[7]='seconds'
  ;   K[8]=0
  ;   K[9]='score'
  ;   K[10]='arrCurve'
  ;   K[11]='Table'
  ;   K[12]='IsEmpty'
  ;   K[13]='[race_player] 没有可用的曲线, 请检查配置'
  ;   K[14]='delta'
  ;   K[15]='ListRandomSelectOne'
  ;   K[16]='success'
  ;   K[17]=1
  ;   K[18]='ipairs'
  ;   K[19]='math'
  ;   K[20]='max'
  ;   K[21]='floor'
  ;   K[22]='TimePercent'
  ;   K[23]='MinAddScoreTime'
  ;   K[24]='GenerateRandomFloat'
  ;   K[25]='TokenPercent'
  ;   K[26]='min'
  ;   K[27]='table'
  ;   K[28]='insert'
  ;   upvals: _ENV
  ;   locals: self(0-118), group(0-118), targetScore(0-118), targetTime(0-118), round(2-118), config(9-118), arrCurve(26-118), delta(43-118), result(44-118), curveConfig(48-118), randomIndex(48-118), bSuccess(53-118), lastScore(54-118), lastSecond(55-118), second(56-118), score(56-118), (for generator)(59-105), (for state)(59-105), (for control)(59-105), _(60-103), curveInfo(60-103)
  0000  SELF      R5 = R0[K0('GetCurrentRound')] (self)
  0001  CALL      R4 = call(R4, 1 args, 1 rets)
  0002  GETTABLE  R5 = R0[K1('m_speedCurveConfig')]
  0003  GETTABLE  R5 = R5[R4]
  0004  TEST      if not R5 then   -> -131066
  0005  JMP       (jump)   -> 9
  0006  GETTABLE  R5 = R0[K1('m_speedCurveConfig')]
  0007  GETTABLE  R5 = R5[R4]
  0008  GETTABLE  R5 = R5[R1]
  0009  EQ        if R0 eq K2(nil)   -> -128243
  0010  JMP       (jump)   -> 25
  0011  GETTABUP  R6 = _ENV[K3('Log')]
  0012  GETTABLE  R6 = R6[K4('Error')]
  0013  LOADK     R7 = K5 '[race_player] 没有对应的轮次或者组别，请检查: '
  0014  TESTSET   if R1 then R8   -> -130543
  0015  JMP       (jump)   -> 17
  0016  LOADK     R8 = K6 'nil'
  0017  CONCAT    R7 = concat(R7..R7)
  0018  CALL      R6 = call(R6, 0 args, 1 rets)
  0019  NEWTABLE  R6 = {} (1 items)
  0020  NEWTABLE  R7 = {} (0 items)
  0021  SETTABLE  R7[K7('seconds')] = K8(0)
  0022  SETTABLE  R7[K9('score')] = K8(0)
  0023  SETLIST   setlist R6[B=1,C=1]
  0024  RETURN    return R6..R5
  0025  GETTABLE  R6 = R5[K10('arrCurve')]
  0026  GETTABUP  R7 = _ENV[K11('Table')]
  0027  GETTABLE  R7 = R7[K12('IsEmpty')]
  0028  MOVE      R8 = R0
  0029  CALL      R7 = call(R7, 1 args, 1 rets)
  0030  TEST      if not R7 then   -> -131040
  0031  JMP       (jump)   -> 42
  0032  GETTABUP  R7 = _ENV[K3('Log')]
  0033  GETTABLE  R7 = R7[K4('Error')]
  0034  LOADK     R8 = K13 '[race_player] 没有可用的曲线, 请检查配置'
  0035  CALL      R7 = call(R7, 0 args, 1 rets)
  0036  NEWTABLE  R7 = {} (1 items)
  0037  NEWTABLE  R8 = {} (0 items)
  0038  SETTABLE  R8[K7('seconds')] = K8(0)
  0039  SETTABLE  R8[K9('score')] = K8(0)
  0040  SETLIST   setlist R7[B=1,C=1]
  0041  RETURN    return R7..R6
  0042  GETTABLE  R7 = R5[K14('delta')]
  0043  NEWTABLE  R8 = {} (0 items)
  0044  GETTABUP  R9 = _ENV[K11('Table')]
  0045  GETTABLE  R9 = R9[K15('ListRandomSelectOne')]
  0046  MOVE      R10 = R0
  0047  CALL      R9 = call(R9, 2 args, 1 rets)
  0048  GETTABLE  R11 = R5[K16('success')]
  0049  EQ        if R1 eq K17(1)   -> -125116
  0050  JMP       (jump)   -> 52
  0051  LOADBOOL  R11 = false
  0052  LOADBOOL  R11 = true
  0053  LOADK     R12 = K8 0
  0054  LOADK     R13 = K8 0
  0055  LOADNIL   R14..R14 = nil
  0056  GETTABUP  R16 = _ENV[K18('ipairs')]
  0057  MOVE      R17 = R0
  0058  CALL      R16 = call(R16, 3 args, 1 rets)
  0059  JMP       (jump)   -> 103
  0060  GETTABUP  R21 = _ENV[K19('math')]
  0061  GETTABLE  R21 = R21[K20('max')]
  0062  GETTABUP  R22 = _ENV[K19('math')]
  0063  GETTABLE  R22 = R22[K21('floor')]
  0064  GETTABLE  R23 = R20[K22('TimePercent')]
  0065  MUL       R23 = R23 mul R3
  0066  CALL      R22 = call(R22, 1 args, 1 rets)
  0067  GETTABLE  R23 = R0[K23('MinAddScoreTime')]
  0068  CALL      R21 = call(R21, 1 args, 2 rets)
  0069  MOVE      R14 = R0
  0070  GETTABUP  R21 = _ENV[K19('math')]
  0071  GETTABLE  R21 = R21[K21('floor')]
  0072  SELF      R23 = R0[K24('GenerateRandomFloat')] (self)
  0073  GETTABLE  R24 = R20[K25('TokenPercent')]
  0074  SUB       R24 = R7 sub R24
  0075  GETTABLE  R25 = R20[K25('TokenPercent')]
  0076  ADD       R25 = R7 add R25
  0077  CALL      R22 = call(R22, 1 args, 3 rets)
  0078  MUL       R22 = R22 mul R2
  0079  CALL      R21 = call(R21, 1 args, 1 rets)
  0080  MOVE      R15 = R0
  0081  GETTABUP  R21 = _ENV[K19('math')]
  0082  GETTABLE  R21 = R21[K26('min')]
  0083  TEST      if not R11 then   -> -130987
  0084  JMP       (jump)   -> 87
  0085  TESTSET   if R1 then R22   -> -129960
  0086  JMP       (jump)   -> 88
  0087  SUB       R22 = K17(1) sub R2
  0088  GETTABUP  R23 = _ENV[K19('math')]
  0089  GETTABLE  R23 = R23[K20('max')]
  0090  MOVE      R24 = R0
  0091  MOVE      R25 = R0
  0092  CALL      R23 = call(R23, -1 args, 2 rets)
  0093  CALL      R21 = call(R21, 1 args, -1 rets)
  0094  MOVE      R15 = R0
  0095  GETTABUP  R21 = _ENV[K27('table')]
  0096  GETTABLE  R21 = R21[K28('insert')]
  0097  MOVE      R22 = R0
  0098  NEWTABLE  R23 = {} (0 items)
  0099  SETTABLE  R23[K7('seconds')] = R14
  0100  SETTABLE  R23[K9('score')] = R15
  0101  CALL      R21 = call(R21, 0 args, 2 rets)
  0102  MOVE      R12 = R0
  0103  TFORCALL  tforcall R16
  0104  TFORLOOP  tforloop R18(sBx=-45)   -> 60
  0105  TEST      if not R11 then   -> -130965
  0106  JMP       (jump)   -> 114
  0107  GETTABUP  R16 = _ENV[K27('table')]
  0108  GETTABLE  R16 = R16[K28('insert')]
  0109  MOVE      R17 = R0
  0110  NEWTABLE  R18 = {} (0 items)
  0111  SETTABLE  R18[K7('seconds')] = R3
  0112  SETTABLE  R18[K9('score')] = R2
  0113  CALL      R16 = call(R16, 0 args, 2 rets)
  0114  MOVE      R16 = R0
  0115  MOVE      R17 = R0
  0116  RETURN    return R16..R15
  0117  RETURN    return R0..R-1
; ---------- proto15 [GenerateRandomFloat] ----------
  ; fn ?  line 336-338 np=3 va=0 ms=5 code=8 consts=2 upvals=1 protos=0
  ;   K[0]='MathUtil'
  ;   K[1]='Random'
  ;   upvals: _ENV
  ;   locals: self(0-8), min(0-8), max(0-8)
  0000  SUB       R3 = R1 sub R2
  0001  GETTABUP  R4 = _ENV[K0('MathUtil')]
  0002  GETTABLE  R4 = R4[K1('Random')]
  0003  CALL      R4 = call(R4, 1 args, 0 rets)
  0004  MUL       R3 = R4 mul R3
  0005  ADD       R3 = R3 add R1
  0006  RETURN    return R3..R2
  0007  RETURN    return R0..R-1
; ---------- proto16 [GetOneCompetitorData] ----------
  ; fn ?  line 342-349 np=1 va=0 ms=9 code=16 consts=3 upvals=1 protos=0
  ;   K[0]='GetAllPlayerData'
  ;   K[1]='ipairs'
  ;   K[2]='IsMySelf'
  ;   upvals: _ENV
  ;   locals: self(0-16), arrPlayerData(2-16), (for generator)(7-15), (for state)(7-15), (for control)(7-15), _(8-13), playerData(8-13)
  0000  SELF      R2 = R0[K0('GetAllPlayerData')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  GETTABUP  R2 = _ENV[K1('ipairs')]
  0003  TESTSET   if R1 then R3   -> -130554
  0004  JMP       (jump)   -> 6
  0005  NEWTABLE  R3 = {} (0 items)
  0006  CALL      R2 = call(R2, 3 args, 1 rets)
  0007  JMP       (jump)   -> 13
  0008  SELF      R8 = R6[K2('IsMySelf')] (self)
  0009  CALL      R7 = call(R7, 1 args, 1 rets)
  0010  TEST      if not R7 then   -> -131059
  0011  JMP       (jump)   -> 13
  0012  RETURN    return R6..R5
  0013  TFORCALL  tforcall R2
  0014  TFORLOOP  tforloop R4(sBx=-7)   -> 8
  0015  RETURN    return R0..R-1
; ---------- proto17 [GetCompetitorScore] ----------
  ; fn ?  line 351-357 np=1 va=0 ms=6 code=12 consts=5 upvals=0 protos=0
  ;   K[0]='GetOneCompetitorData'
  ;   K[1]=nil
  ;   K[2]=0
  ;   K[3]='GetCurScore'
  ;   K[4]='GetGapTime'
  ;   locals: self(0-12), playerData(2-12)
  0000  SELF      R2 = R0[K0('GetOneCompetitorData')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  EQ        if R0 eq K1(nil)   -> -130299
  0003  JMP       (jump)   -> 6
  0004  LOADK     R2 = K2 0
  0005  RETURN    return R2..R1
  0006  SELF      R3 = R1[K3('GetCurScore')] (self)
  0007  SELF      R5 = R0[K4('GetGapTime')] (self)
  0008  CALL      R4 = call(R4, -1 args, 1 rets)
  0009  TAILCALL  tailcall(R2, 0)
  0010  RETURN    return R2..R1
  0011  RETURN    return R0..R-1
; ---------- proto18 [GetCurrentRoundReward] ----------
  ; fn ?  line 359-372 np=1 va=0 ms=6 code=15 consts=5 upvals=0 protos=0
  ;   K[0]='GetCurrentRound'
  ;   K[1]='m_config'
  ;   K[2]='roundConfigs'
  ;   K[3]='rankReward1'
  ;   K[4]='rankReward2'
  ;   locals: self(0-15), curRound(2-15), roundConfig(5-15), rewards(13-15)
  0000  SELF      R2 = R0[K0('GetCurrentRound')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  GETTABLE  R2 = R0[K1('m_config')]
  0003  GETTABLE  R2 = R2[K2('roundConfigs')]
  0004  GETTABLE  R2 = R2[R1]
  0005  TEST      if not R2 then   -> -131064
  0006  JMP       (jump)   -> 9
  0007  NEWTABLE  R3 = {} (0 items)
  0008  RETURN    return R3..R2
  0009  NEWTABLE  R3 = {} (2 items)
  0010  GETTABLE  R4 = R2[K3('rankReward1')]
  0011  GETTABLE  R5 = R2[K4('rankReward2')]
  0012  SETLIST   setlist R3[B=1,C=2]
  0013  RETURN    return R3..R2
  0014  RETURN    return R0..R-1
; ---------- proto19 [GetRoundProgressReward] ----------
  ; fn ?  line 378-384 np=2 va=0 ms=4 code=8 consts=4 upvals=0 protos=0
  ;   K[0]='m_config'
  ;   K[1]='roundConfigs'
  ;   K[2]=nil
  ;   K[3]='roundRewards'
  ;   locals: self(0-8), round(0-8), roundConfig(3-8)
  0000  GETTABLE  R2 = R0[K0('m_config')]
  0001  GETTABLE  R2 = R2[K1('roundConfigs')]
  0002  GETTABLE  R2 = R2[R1]
  0003  EQ        if R1 eq K2(nil)   -> -129785
  0004  JMP       (jump)   -> 7
  0005  GETTABLE  R3 = R2[K3('roundRewards')]
  0006  RETURN    return R3..R2
  0007  RETURN    return R0..R-1
; ---------- proto20 [GetRoundProgressRewardConfigs] ----------
  ; fn ?  line 388-403 np=1 va=0 ms=12 code=35 consts=13 upvals=1 protos=0
  ;   K[0]=0
  ;   K[1]='ipairs'
  ;   K[2]='m_config'
  ;   K[3]='roundConfigs'
  ;   K[4]='Table'
  ;   K[5]='IsEmpty'
  ;   K[6]='roundRewards'
  ;   K[7]='table'
  ;   K[8]='insert'
  ;   K[9]='round'
  ;   K[10]='uiCode'
  ;   K[11]='math'
  ;   K[12]='max'
  ;   upvals: _ENV
  ;   locals: self(0-35), arrConfig(1-35), maxRound(2-35), (for generator)(6-31), (for state)(6-31), (for control)(6-31), round(7-29), config(7-29)
  0000  NEWTABLE  R1 = {} (0 items)
  0001  LOADK     R2 = K0 0
  0002  GETTABUP  R3 = _ENV[K1('ipairs')]
  0003  GETTABLE  R4 = R0[K2('m_config')]
  0004  GETTABLE  R4 = R4[K3('roundConfigs')]
  0005  CALL      R3 = call(R3, 3 args, 1 rets)
  0006  JMP       (jump)   -> 29
  0007  GETTABUP  R8 = _ENV[K4('Table')]
  0008  GETTABLE  R8 = R8[K5('IsEmpty')]
  0009  GETTABLE  R9 = R7[K6('roundRewards')]
  0010  CALL      R8 = call(R8, 1 args, 1 rets)
  0011  TEST      if not R8 then   -> -131058
  0012  JMP       (jump)   -> 29
  0013  GETTABUP  R8 = _ENV[K7('table')]
  0014  GETTABLE  R8 = R8[K8('insert')]
  0015  MOVE      R9 = R0
  0016  NEWTABLE  R10 = {} (0 items)
  0017  SETTABLE  R10[K9('round')] = R6
  0018  GETTABLE  R11 = R7[K6('roundRewards')]
  0019  SETTABLE  R10[K6('roundRewards')] = R11
  0020  GETTABLE  R11 = R7[K10('uiCode')]
  0021  SETTABLE  R10[K10('uiCode')] = R11
  0022  CALL      R8 = call(R8, 0 args, 2 rets)
  0023  GETTABUP  R8 = _ENV[K11('math')]
  0024  GETTABLE  R8 = R8[K12('max')]
  0025  MOVE      R9 = R0
  0026  MOVE      R10 = R0
  0027  CALL      R8 = call(R8, 1 args, 2 rets)
  0028  MOVE      R2 = R0
  0029  TFORCALL  tforcall R3
  0030  TFORLOOP  tforloop R5(sBx=-24)   -> 7
  0031  MOVE      R3 = R0
  0032  MOVE      R4 = R0
  0033  RETURN    return R3..R2
  0034  RETURN    return R0..R-1
; ---------- proto21 [TryClaimReward] ----------
  ; fn ?  line 409-419 np=1 va=0 ms=11 code=35 consts=17 upvals=1 protos=0
  ;   K[0]='BaseRaceActivityModel'
  ;   K[1]='TryClaimReward'
  ;   K[2]='GetRoundProgressReward'
  ;   K[3]='GetCurrentRound'
  ;   K[4]='RewardApi'
  ;   K[5]='CryptRewards'
  ;   K[6]='AcquireRewardsLogic'
  ;   K[7]='EPropertySource'
  ;   K[8]='Give'
  ;   K[9]='m_activityDefinition'
  ;   K[10]='RoundRewardBIType'
  ;   K[11]='ERewardScene'
  ;   K[12]='Other'
  ;   K[13]='EGameMode'
  ;   K[14]='Board'
  ;   K[15]='CacheItemType'
  ;   K[16]='Stack'
  ;   upvals: _ENV
  ;   locals: self(0-35), bSuccess(4-35), rewards(4-35), progressRewards(5-35)
  0000  GETTABUP  R1 = _ENV[K0('BaseRaceActivityModel')]
  0001  GETTABLE  R1 = R1[K1('TryClaimReward')]
  0002  MOVE      R2 = R0
  0003  CALL      R1 = call(R1, 2 args, 1 rets)
  0004  LOADNIL   R3..R3 = nil
  0005  TEST      if not R1 then   -> -131065
  0006  JMP       (jump)   -> 30
  0007  SELF      R5 = R0[K2('GetRoundProgressReward')] (self)
  0008  SELF      R7 = R0[K3('GetCurrentRound')] (self)
  0009  CALL      R6 = call(R6, -1 args, 1 rets)
  0010  CALL      R4 = call(R4, 1 args, -1 rets)
  0011  MOVE      R3 = R0
  0012  GETTABUP  R4 = _ENV[K4('RewardApi')]
  0013  GETTABLE  R4 = R4[K5('CryptRewards')]
  0014  MOVE      R5 = R0
  0015  CALL      R4 = call(R4, 0 args, 1 rets)
  0016  GETTABUP  R4 = _ENV[K4('RewardApi')]
  0017  GETTABLE  R4 = R4[K6('AcquireRewardsLogic')]
  0018  MOVE      R5 = R0
  0019  GETTABUP  R6 = _ENV[K7('EPropertySource')]
  0020  GETTABLE  R6 = R6[K8('Give')]
  0021  GETTABLE  R7 = R0[K9('m_activityDefinition')]
  0022  GETTABLE  R7 = R7[K10('RoundRewardBIType')]
  0023  GETTABUP  R8 = _ENV[K11('ERewardScene')]
  0024  GETTABLE  R8 = R8[K12('Other')]
  0025  GETTABUP  R9 = _ENV[K13('EGameMode')]
  0026  GETTABLE  R9 = R9[K14('Board')]
  0027  GETTABUP  R10 = _ENV[K15('CacheItemType')]
  0028  GETTABLE  R10 = R10[K16('Stack')]
  0029  CALL      R4 = call(R4, 0 args, 6 rets)
  0030  MOVE      R4 = R0
  0031  MOVE      R5 = R0
  0032  MOVE      R6 = R0
  0033  RETURN    return R4..R3
  0034  RETURN    return R0..R-1
; ---------- proto22 [TryOpenMainWindow] ----------
  ; fn ?  line 425-436 np=2 va=0 ms=8 code=18 consts=8 upvals=1 protos=1
  ;   K[0]='HasNetwork'
  ;   K[1]='OnNetError'
  ;   K[2]='GM'
  ;   K[3]='UIManager'
  ;   K[4]='OpenView'
  ;   K[5]='m_activityDefinition'
  ;   K[6]='MainWindowPrefabName'
  ;   K[7]='m_type'
  ;   upvals: _ENV
  ;   locals: self(0-18), bEntry(0-18)
  0000  SELF      R3 = R0[K0('HasNetwork')] (self)
  0001  CALL      R2 = call(R2, 1 args, 1 rets)
  0002  TEST      if not R2 then   -> -131067
  0003  JMP       (jump)   -> 8
  0004  SELF      R3 = R0[K1('OnNetError')] (self)
  0005  CLOSURE   R4 = closure proto0
  0006  CALL      R2 = call(R2, 0 args, 2 rets)
  0007  RETURN    return R0..R-1
  0008  GETTABUP  R2 = _ENV[K2('GM')]
  0009  GETTABLE  R2 = R2[K3('UIManager')]
  0010  SELF      R3 = R2[K4('OpenView')] (self)
  0011  GETTABLE  R4 = R0[K5('m_activityDefinition')]
  0012  GETTABLE  R4 = R4[K6('MainWindowPrefabName')]
  0013  GETTABLE  R5 = R0[K7('m_type')]
  0014  LOADBOOL  R6 = false
  0015  MOVE      R7 = R0
  0016  CALL      R2 = call(R2, 0 args, 5 rets)
  0017  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 428-430 np=0 va=0 ms=2 code=4 consts=1 upvals=1 protos=0
    ;   K[0]='TryOpenMainWindow'
    ;   upvals: self
    0000  GETUPVAL  R0 = self
    0001  SELF      R1 = R0[K0('TryOpenMainWindow')] (self)
    0002  CALL      R0 = call(R0, 0 args, 1 rets)
    0003  RETURN    return R0..R-1
