# Model_UserData_UserProfileModel_84.luac
; fn @UserProfileModel.lua  line 0-0 np=0 va=1 ms=7 code=161 consts=58 upvals=1 protos=43
;   K[0]='UserProfileModel'
;   K[1]='__index'
;   K[2]='EProfilePropertyType'
;   K[3]='Avatar'
;   K[4]=1
;   K[5]='Badge'
;   K[6]=2
;   K[7]='Frame'
;   K[8]=3
;   K[9]='ServerConfigKey'
;   K[10]='badge'
;   K[11]='icon_frame'
;   K[12]='head'
;   K[13]=9
;   K[14]='Player'
;   K[15]='Init'
;   K[16]='LoadFileConfig'
;   K[17]='GetData'
;   K[18]='FromSyncData'
;   K[19]='FromSyncInfo'
;   K[20]='GetAcquiredProperties'
;   K[21]='IsPropertyAcquired'
;   K[22]='IsValidRewardType'
;   K[23]='GetAllRewardType'
;   K[24]='GenerateDefault'
;   K[25]='GetDefaultName'
;   K[26]='IsNowDefaultName'
;   K[27]='GetName'
;   K[28]='ChangeName'
;   K[29]='_SetName'
;   K[30]='_IsValidName'
;   K[31]='GetReplacedSensitiveWord'
;   K[32]='GetAllAvatarIds'
;   K[33]='GetOneRandomAvatarName'
;   K[34]='GetAvatar'
;   K[35]='ChangeAvatar'
;   K[36]='_SetAvatar'
;   K[37]='IsBuildInAvatar'
;   K[38]='Acquire'
;   K[39]='GetBadge'
;   K[40]='GetBadgeCount'
;   K[41]='ChangeBadge'
;   K[42]='_SetBadge'
;   K[43]='GetBadgeViewConfig'
;   K[44]='GetUnacquiredLatestBadge'
;   K[45]='IsBadgeDownloaded'
;   K[46]='GetNeedForceDownloadLabels'
;   K[47]='GetNeedForceMuteDownloadLabels'
;   K[48]='GetFrame'
;   K[49]='GetFrameCount'
;   K[50]='ChangeFrame'
;   K[51]='_SetFrame'
;   K[52]='GetFrameViewConfig'
;   K[53]='RefreshDisplay'
;   K[54]='LoadServerConfig'
;   K[55]='RefreshRandomConfig'
;   K[56]='GenerateRandomAdornment'
;   K[57]='GenerateAllAdornmentForData'
;   upvals: _ENV
;   locals: EProfilePropertyServerKey(21-161), EProfilePropertyPlayerDataKey(28-161), BUILTIN_AVATAR_PREFIX(29-161), BUILTIN_AVATAR_COUNT(30-161), DEFAULT_NAME_PREFIX(31-161)
0000  NEWTABLE  R0 = {} (0 items)
0001  SETTABUP  _ENV[K0('UserProfileModel')] = R0
0002  GETTABUP  R0 = _ENV[K0('UserProfileModel')]
0003  GETTABUP  R1 = _ENV[K0('UserProfileModel')]
0004  SETTABLE  R0[K1('__index')] = R1
0005  NEWTABLE  R0 = {} (0 items)
0006  SETTABLE  R0[K3('Avatar')] = K4(1)
0007  SETTABLE  R0[K5('Badge')] = K6(2)
0008  SETTABLE  R0[K7('Frame')] = K8(3)
0009  SETTABUP  _ENV[K2('EProfilePropertyType')] = R0
0010  NEWTABLE  R0 = {} (0 items)
0011  GETTABUP  R1 = _ENV[K2('EProfilePropertyType')]
0012  GETTABLE  R1 = R1[K5('Badge')]
0013  GETTABUP  R2 = _ENV[K9('ServerConfigKey')]
0014  GETTABLE  R2 = R2[K5('Badge')]
0015  SETTABLE  R0[R1] = R2
0016  GETTABUP  R1 = _ENV[K2('EProfilePropertyType')]
0017  GETTABLE  R1 = R1[K7('Frame')]
0018  GETTABUP  R2 = _ENV[K9('ServerConfigKey')]
0019  GETTABLE  R2 = R2[K7('Frame')]
0020  SETTABLE  R0[R1] = R2
0021  NEWTABLE  R1 = {} (0 items)
0022  GETTABUP  R2 = _ENV[K2('EProfilePropertyType')]
0023  GETTABLE  R2 = R2[K5('Badge')]
0024  SETTABLE  R1[R2] = K10('badge')
0025  GETTABUP  R2 = _ENV[K2('EProfilePropertyType')]
0026  GETTABLE  R2 = R2[K7('Frame')]
0027  SETTABLE  R1[R2] = K11('icon_frame')
0028  LOADK     R2 = K12 'head'
0029  LOADK     R3 = K13 9
0030  LOADK     R4 = K14 'Player'
0031  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0032  CLOSURE   R6 = closure proto0
0033  SETTABLE  R5[K15('Init')] = R6
0034  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0035  CLOSURE   R6 = closure proto1
0036  SETTABLE  R5[K16('LoadFileConfig')] = R6
0037  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0038  CLOSURE   R6 = closure proto2
0039  SETTABLE  R5[K17('GetData')] = R6
0040  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0041  CLOSURE   R6 = closure proto3
0042  SETTABLE  R5[K18('FromSyncData')] = R6
0043  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0044  CLOSURE   R6 = closure proto4
0045  SETTABLE  R5[K19('FromSyncInfo')] = R6
0046  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0047  CLOSURE   R6 = closure proto5
0048  SETTABLE  R5[K20('GetAcquiredProperties')] = R6
0049  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0050  CLOSURE   R6 = closure proto6
0051  SETTABLE  R5[K21('IsPropertyAcquired')] = R6
0052  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0053  CLOSURE   R6 = closure proto7
0054  SETTABLE  R5[K22('IsValidRewardType')] = R6
0055  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0056  CLOSURE   R6 = closure proto8
0057  SETTABLE  R5[K23('GetAllRewardType')] = R6
0058  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0059  CLOSURE   R6 = closure proto9
0060  SETTABLE  R5[K24('GenerateDefault')] = R6
0061  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0062  CLOSURE   R6 = closure proto10
0063  SETTABLE  R5[K25('GetDefaultName')] = R6
0064  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0065  CLOSURE   R6 = closure proto11
0066  SETTABLE  R5[K26('IsNowDefaultName')] = R6
0067  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0068  CLOSURE   R6 = closure proto12
0069  SETTABLE  R5[K27('GetName')] = R6
0070  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0071  CLOSURE   R6 = closure proto13
0072  SETTABLE  R5[K28('ChangeName')] = R6
0073  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0074  CLOSURE   R6 = closure proto14
0075  SETTABLE  R5[K29('_SetName')] = R6
0076  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0077  CLOSURE   R6 = closure proto15
0078  SETTABLE  R5[K30('_IsValidName')] = R6
0079  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0080  CLOSURE   R6 = closure proto16
0081  SETTABLE  R5[K31('GetReplacedSensitiveWord')] = R6
0082  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0083  CLOSURE   R6 = closure proto17
0084  SETTABLE  R5[K32('GetAllAvatarIds')] = R6
0085  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0086  CLOSURE   R6 = closure proto18
0087  SETTABLE  R5[K33('GetOneRandomAvatarName')] = R6
0088  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0089  CLOSURE   R6 = closure proto19
0090  SETTABLE  R5[K34('GetAvatar')] = R6
0091  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0092  CLOSURE   R6 = closure proto20
0093  SETTABLE  R5[K35('ChangeAvatar')] = R6
0094  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0095  CLOSURE   R6 = closure proto21
0096  SETTABLE  R5[K36('_SetAvatar')] = R6
0097  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0098  CLOSURE   R6 = closure proto22
0099  SETTABLE  R5[K37('IsBuildInAvatar')] = R6
0100  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0101  CLOSURE   R6 = closure proto23
0102  SETTABLE  R5[K38('Acquire')] = R6
0103  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0104  CLOSURE   R6 = closure proto24
0105  SETTABLE  R5[K39('GetBadge')] = R6
0106  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0107  CLOSURE   R6 = closure proto25
0108  SETTABLE  R5[K40('GetBadgeCount')] = R6
0109  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0110  CLOSURE   R6 = closure proto26
0111  SETTABLE  R5[K41('ChangeBadge')] = R6
0112  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0113  CLOSURE   R6 = closure proto27
0114  SETTABLE  R5[K42('_SetBadge')] = R6
0115  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0116  CLOSURE   R6 = closure proto28
0117  SETTABLE  R5[K43('GetBadgeViewConfig')] = R6
0118  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0119  CLOSURE   R6 = closure proto29
0120  SETTABLE  R5[K44('GetUnacquiredLatestBadge')] = R6
0121  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0122  CLOSURE   R6 = closure proto30
0123  SETTABLE  R5[K45('IsBadgeDownloaded')] = R6
0124  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0125  CLOSURE   R6 = closure proto31
0126  SETTABLE  R5[K46('GetNeedForceDownloadLabels')] = R6
0127  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0128  CLOSURE   R6 = closure proto32
0129  SETTABLE  R5[K47('GetNeedForceMuteDownloadLabels')] = R6
0130  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0131  CLOSURE   R6 = closure proto33
0132  SETTABLE  R5[K48('GetFrame')] = R6
0133  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0134  CLOSURE   R6 = closure proto34
0135  SETTABLE  R5[K49('GetFrameCount')] = R6
0136  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0137  CLOSURE   R6 = closure proto35
0138  SETTABLE  R5[K50('ChangeFrame')] = R6
0139  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0140  CLOSURE   R6 = closure proto36
0141  SETTABLE  R5[K51('_SetFrame')] = R6
0142  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0143  CLOSURE   R6 = closure proto37
0144  SETTABLE  R5[K52('GetFrameViewConfig')] = R6
0145  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0146  CLOSURE   R6 = closure proto38
0147  SETTABLE  R5[K53('RefreshDisplay')] = R6
0148  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0149  CLOSURE   R6 = closure proto39
0150  SETTABLE  R5[K54('LoadServerConfig')] = R6
0151  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0152  CLOSURE   R6 = closure proto40
0153  SETTABLE  R5[K55('RefreshRandomConfig')] = R6
0154  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0155  CLOSURE   R6 = closure proto41
0156  SETTABLE  R5[K56('GenerateRandomAdornment')] = R6
0157  GETTABUP  R5 = _ENV[K0('UserProfileModel')]
0158  CLOSURE   R6 = closure proto42
0159  SETTABLE  R5[K57('GenerateAllAdornmentForData')] = R6
0160  RETURN    return R0..R-1
; ---------- proto0 [Init] ----------
  ; fn ?  line 26-48 np=1 va=0 ms=9 code=71 consts=26 upvals=3 protos=0
  ;   K[0]='m_dbTable'
  ;   K[1]='GM'
  ;   K[2]='DBTableManager'
  ;   K[3]='GetTable'
  ;   K[4]='EDBTableConfigs'
  ;   K[5]='UserProfile'
  ;   K[6]='m_mapAcquiredProperties'
  ;   K[7]='GetValues'
  ;   K[8]='m_name'
  ;   K[9]='UserModel'
  ;   K[10]='Get'
  ;   K[11]='EUserLocalDataKey'
  ;   K[12]='Name'
  ;   K[13]='m_avatarId'
  ;   K[14]='Avatar'
  ;   K[15]='m_badgeId'
  ;   K[16]='Badge'
  ;   K[17]=''
  ;   K[18]='m_frameId'
  ;   K[19]='Frame'
  ;   K[20]='avatar_christina'
  ;   K[21]=1
  ;   K[22]='m_arrAvatarIds'
  ;   K[23]='ImageFileConfigName'
  ;   K[24]='m_mapRobotRandomConfig'
  ;   K[25]='m_mapRobotRandomConfigMd5'
  ;   upvals: _ENV, BUILTIN_AVATAR_PREFIX, BUILTIN_AVATAR_COUNT
  ;   locals: self(0-71), (for index)(57-66), (for limit)(57-66), (for step)(57-66), i(58-65)
  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('UserProfile')]
  0005  CALL      R1 = call(R1, 1 args, 2 rets)
  0006  SETTABLE  R0[K0('m_dbTable')] = R1
  0007  GETTABLE  R1 = R0[K0('m_dbTable')]
  0008  SELF      R2 = R1[K7('GetValues')] (self)
  0009  CALL      R1 = call(R1, 1 args, 1 rets)
  0010  SETTABLE  R0[K6('m_mapAcquiredProperties')] = R1
  0011  GETTABUP  R1 = _ENV[K1('GM')]
  0012  GETTABLE  R1 = R1[K9('UserModel')]
  0013  SELF      R2 = R1[K10('Get')] (self)
  0014  GETTABUP  R3 = _ENV[K11('EUserLocalDataKey')]
  0015  GETTABLE  R3 = R3[K12('Name')]
  0016  CALL      R1 = call(R1, 1 args, 2 rets)
  0017  SETTABLE  R0[K8('m_name')] = R1
  0018  GETTABUP  R1 = _ENV[K1('GM')]
  0019  GETTABLE  R1 = R1[K9('UserModel')]
  0020  SELF      R2 = R1[K10('Get')] (self)
  0021  GETTABUP  R3 = _ENV[K11('EUserLocalDataKey')]
  0022  GETTABLE  R3 = R3[K14('Avatar')]
  0023  CALL      R1 = call(R1, 1 args, 2 rets)
  0024  SETTABLE  R0[K13('m_avatarId')] = R1
  0025  GETTABUP  R1 = _ENV[K1('GM')]
  0026  GETTABLE  R1 = R1[K9('UserModel')]
  0027  SELF      R2 = R1[K10('Get')] (self)
  0028  GETTABUP  R3 = _ENV[K11('EUserLocalDataKey')]
  0029  GETTABLE  R3 = R3[K16('Badge')]
  0030  CALL      R1 = call(R1, 1 args, 2 rets)
  0031  TEST      if not R1 then   -> -131038
  0032  JMP       (jump)   -> 34
  0033  LOADK     R1 = K17 ''
  0034  SETTABLE  R0[K15('m_badgeId')] = R1
  0035  GETTABUP  R1 = _ENV[K1('GM')]
  0036  GETTABLE  R1 = R1[K9('UserModel')]
  0037  SELF      R2 = R1[K10('Get')] (self)
  0038  GETTABUP  R3 = _ENV[K11('EUserLocalDataKey')]
  0039  GETTABLE  R3 = R3[K19('Frame')]
  0040  CALL      R1 = call(R1, 1 args, 2 rets)
  0041  TEST      if not R1 then   -> -131028
  0042  JMP       (jump)   -> 44
  0043  LOADK     R1 = K17 ''
  0044  SETTABLE  R0[K18('m_frameId')] = R1
  0045  GETTABLE  R1 = R0[K13('m_avatarId')]
  0046  EQ        if R0 eq K20('avatar_christina')   -> -130236
  0047  JMP       (jump)   -> 52
  0048  GETUPVAL  R1 = _ENV
  0049  LOADK     R2 = K21 1
  0050  CONCAT    R1 = concat(R1..R1)
  0051  SETTABLE  R0[K13('m_avatarId')] = R1
  0052  NEWTABLE  R1 = {} (0 items)
  0053  SETTABLE  R0[K22('m_arrAvatarIds')] = R1
  0054  LOADK     R1 = K21 1
  0055  GETUPVAL  R2 = _ENV
  0056  LOADK     R3 = K21 1
  0057  FORPREP   forprep R1(sBx=7)   -> 65
  0058  GETTABLE  R5 = R0[K22('m_arrAvatarIds')]
  0059  GETTABUP  R6 = _ENV[K23('ImageFileConfigName')]
  0060  GETUPVAL  R7 = _ENV
  0061  MOVE      R8 = R0
  0062  CONCAT    R7 = concat(R7..R7)
  0063  GETTABLE  R6 = R6[R7]
  0064  SETTABLE  R5[R4] = R6
  0065  FORLOOP   forloop R1(sBx=-8)   -> 58
  0066  NEWTABLE  R1 = {} (0 items)
  0067  SETTABLE  R0[K24('m_mapRobotRandomConfig')] = R1
  0068  NEWTABLE  R1 = {} (0 items)
  0069  SETTABLE  R0[K25('m_mapRobotRandomConfigMd5')] = R1
  0070  RETURN    return R0..R-1
; ---------- proto1 [LoadFileConfig] ----------
  ; fn ?  line 50-73 np=1 va=0 ms=14 code=85 consts=21 upvals=1 protos=0
  ;   K[0]='m_mapPropertyIds'
  ;   K[1]='GM'
  ;   K[2]='ConfigModel'
  ;   K[3]='GetLocalConfig'
  ;   K[4]='LocalConfigKey'
  ;   K[5]='ProfilePropertyConfig'
  ;   K[6]='Badges'
  ;   K[7]='EProfilePropertyType'
  ;   K[8]='Badge'
  ;   K[9]='Table'
  ;   K[10]='GetListValueMap'
  ;   K[11]='Avatars'
  ;   K[12]='Avatar'
  ;   K[13]='Frames'
  ;   K[14]='Frame'
  ;   K[15]='BadgeViewConfig'
  ;   K[16]='m_mapBadgeViewConfig'
  ;   K[17]='ipairs'
  ;   K[18]='id'
  ;   K[19]='FrameViewConfig'
  ;   K[20]='m_mapFrameViewConfig'
  ;   upvals: _ENV
  ;   locals: self(0-85), mapProfilePropertyConfig(8-85), arrBadgeIds(12-85), arrAvatarIds(24-85), arrFrameIds(36-85), arrBadgeViewConfigs(53-85), (for generator)(58-64), (for state)(58-64), (for control)(58-64), _(59-62), config(59-62), arrFrameViewConfigs(73-85), (for generator)(78-84), (for state)(78-84), (for control)(78-84), _(79-82), config(79-82)
  0000  NEWTABLE  R1 = {} (0 items)
  0001  SETTABLE  R0[K0('m_mapPropertyIds')] = R1
  0002  GETTABUP  R1 = _ENV[K1('GM')]
  0003  GETTABLE  R1 = R1[K2('ConfigModel')]
  0004  SELF      R2 = R1[K3('GetLocalConfig')] (self)
  0005  GETTABUP  R3 = _ENV[K4('LocalConfigKey')]
  0006  GETTABLE  R3 = R3[K5('ProfilePropertyConfig')]
  0007  CALL      R1 = call(R1, 1 args, 2 rets)
  0008  GETTABLE  R2 = R1[K6('Badges')]
  0009  TEST      if not R2 then   -> -131060
  0010  JMP       (jump)   -> 12
  0011  NEWTABLE  R2 = {} (0 items)
  0012  GETTABLE  R3 = R0[K0('m_mapPropertyIds')]
  0013  GETTABUP  R4 = _ENV[K7('EProfilePropertyType')]
  0014  GETTABLE  R4 = R4[K8('Badge')]
  0015  GETTABUP  R5 = _ENV[K9('Table')]
  0016  GETTABLE  R5 = R5[K10('GetListValueMap')]
  0017  MOVE      R6 = R0
  0018  CALL      R5 = call(R5, 1 args, 1 rets)
  0019  SETTABLE  R3[R4] = R5
  0020  GETTABLE  R3 = R1[K11('Avatars')]
  0021  TEST      if not R3 then   -> -131048
  0022  JMP       (jump)   -> 24
  0023  NEWTABLE  R3 = {} (0 items)
  0024  GETTABLE  R4 = R0[K0('m_mapPropertyIds')]
  0025  GETTABUP  R5 = _ENV[K7('EProfilePropertyType')]
  0026  GETTABLE  R5 = R5[K12('Avatar')]
  0027  GETTABUP  R6 = _ENV[K9('Table')]
  0028  GETTABLE  R6 = R6[K10('GetListValueMap')]
  0029  MOVE      R7 = R0
  0030  CALL      R6 = call(R6, 1 args, 1 rets)
  0031  SETTABLE  R4[R5] = R6
  0032  GETTABLE  R4 = R1[K13('Frames')]
  0033  TEST      if not R4 then   -> -131036
  0034  JMP       (jump)   -> 36
  0035  NEWTABLE  R4 = {} (0 items)
  0036  GETTABLE  R5 = R0[K0('m_mapPropertyIds')]
  0037  GETTABUP  R6 = _ENV[K7('EProfilePropertyType')]
  0038  GETTABLE  R6 = R6[K14('Frame')]
  0039  GETTABUP  R7 = _ENV[K9('Table')]
  0040  GETTABLE  R7 = R7[K10('GetListValueMap')]
  0041  MOVE      R8 = R0
  0042  CALL      R7 = call(R7, 1 args, 1 rets)
  0043  SETTABLE  R5[R6] = R7
  0044  GETTABUP  R5 = _ENV[K1('GM')]
  0045  GETTABLE  R5 = R5[K2('ConfigModel')]
  0046  SELF      R6 = R5[K3('GetLocalConfig')] (self)
  0047  GETTABUP  R7 = _ENV[K4('LocalConfigKey')]
  0048  GETTABLE  R7 = R7[K15('BadgeViewConfig')]
  0049  CALL      R5 = call(R5, 1 args, 2 rets)
  0050  TEST      if not R5 then   -> -131019
  0051  JMP       (jump)   -> 53
  0052  NEWTABLE  R5 = {} (0 items)
  0053  NEWTABLE  R6 = {} (0 items)
  0054  SETTABLE  R0[K16('m_mapBadgeViewConfig')] = R6
  0055  GETTABUP  R6 = _ENV[K17('ipairs')]
  0056  MOVE      R7 = R0
  0057  CALL      R6 = call(R6, 3 args, 1 rets)
  0058  JMP       (jump)   -> 62
  0059  GETTABLE  R11 = R0[K16('m_mapBadgeViewConfig')]
  0060  GETTABLE  R12 = R10[K18('id')]
  0061  SETTABLE  R11[R12] = R10
  0062  TFORCALL  tforcall R6
  0063  TFORLOOP  tforloop R8(sBx=-5)   -> 59
  0064  GETTABUP  R6 = _ENV[K1('GM')]
  0065  GETTABLE  R6 = R6[K2('ConfigModel')]
  0066  SELF      R7 = R6[K3('GetLocalConfig')] (self)
  0067  GETTABUP  R8 = _ENV[K4('LocalConfigKey')]
  0068  GETTABLE  R8 = R8[K19('FrameViewConfig')]
  0069  CALL      R6 = call(R6, 1 args, 2 rets)
  0070  TEST      if not R6 then   -> -130999
  0071  JMP       (jump)   -> 73
  0072  NEWTABLE  R6 = {} (0 items)
  0073  NEWTABLE  R7 = {} (0 items)
  0074  SETTABLE  R0[K20('m_mapFrameViewConfig')] = R7
  0075  GETTABUP  R7 = _ENV[K17('ipairs')]
  0076  MOVE      R8 = R0
  0077  CALL      R7 = call(R7, 3 args, 1 rets)
  0078  JMP       (jump)   -> 82
  0079  GETTABLE  R12 = R0[K20('m_mapFrameViewConfig')]
  0080  GETTABLE  R13 = R11[K18('id')]
  0081  SETTABLE  R12[R13] = R11
  0082  TFORCALL  tforcall R7
  0083  TFORLOOP  tforloop R9(sBx=-5)   -> 79
  0084  RETURN    return R0..R-1
; ---------- proto2 [GetData] ----------
  ; fn ?  line 75-77 np=1 va=0 ms=2 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='m_dbTable'
  ;   locals: self(0-3)
  0000  GETTABLE  R1 = R0[K0('m_dbTable')]
  0001  RETURN    return R1..R0
  0002  RETURN    return R0..R-1
; ---------- proto3 [FromSyncData] ----------
  ; fn ?  line 79-82 np=2 va=0 ms=5 code=9 consts=4 upvals=0 protos=0
  ;   K[0]='m_dbTable'
  ;   K[1]='FromArr'
  ;   K[2]='m_mapAcquiredProperties'
  ;   K[3]='GetValues'
  ;   locals: self(0-9), dataArr(0-9)
  0000  GETTABLE  R2 = R0[K0('m_dbTable')]
  0001  SELF      R3 = R2[K1('FromArr')] (self)
  0002  MOVE      R4 = R0
  0003  CALL      R2 = call(R2, 0 args, 2 rets)
  0004  GETTABLE  R2 = R0[K0('m_dbTable')]
  0005  SELF      R3 = R2[K3('GetValues')] (self)
  0006  CALL      R2 = call(R2, 1 args, 1 rets)
  0007  SETTABLE  R0[K2('m_mapAcquiredProperties')] = R2
  0008  RETURN    return R0..R-1
; ---------- proto4 [FromSyncInfo] ----------
  ; fn ?  line 84-89 np=5 va=0 ms=8 code=13 consts=4 upvals=0 protos=0
  ;   K[0]='_SetName'
  ;   K[1]='_SetAvatar'
  ;   K[2]='_SetBadge'
  ;   K[3]='_SetFrame'
  ;   locals: self(0-13), name(0-13), avatarId(0-13), badgeId(0-13), frameId(0-13)
  0000  SELF      R6 = R0[K0('_SetName')] (self)
  0001  MOVE      R7 = R0
  0002  CALL      R5 = call(R5, 0 args, 2 rets)
  0003  SELF      R6 = R0[K1('_SetAvatar')] (self)
  0004  MOVE      R7 = R0
  0005  CALL      R5 = call(R5, 0 args, 2 rets)
  0006  SELF      R6 = R0[K2('_SetBadge')] (self)
  0007  MOVE      R7 = R0
  0008  CALL      R5 = call(R5, 0 args, 2 rets)
  0009  SELF      R6 = R0[K3('_SetFrame')] (self)
  0010  MOVE      R7 = R0
  0011  CALL      R5 = call(R5, 0 args, 2 rets)
  0012  RETURN    return R0..R-1
; ---------- proto5 [GetAcquiredProperties] ----------
  ; fn ?  line 92-95 np=3 va=0 ms=6 code=15 consts=3 upvals=1 protos=0
  ;   K[0]='m_mapAcquiredProperties'
  ;   K[1]='Table'
  ;   K[2]='ShallowCopy'
  ;   upvals: _ENV
  ;   locals: self(0-15), eProfilePropertyType(0-15), readOnly(0-15), map(5-15)
  0000  GETTABLE  R3 = R0[K0('m_mapAcquiredProperties')]
  0001  GETTABLE  R3 = R3[R1]
  0002  TEST      if not R3 then   -> -131067
  0003  JMP       (jump)   -> 5
  0004  NEWTABLE  R3 = {} (0 items)
  0005  TEST      if not R2 then   -> -131065
  0006  JMP       (jump)   -> 9
  0007  TESTSET   if R1 then R4   -> -129526
  0008  JMP       (jump)   -> 13
  0009  GETTABUP  R4 = _ENV[K1('Table')]
  0010  GETTABLE  R4 = R4[K2('ShallowCopy')]
  0011  MOVE      R5 = R0
  0012  CALL      R4 = call(R4, 1 args, 1 rets)
  0013  RETURN    return R4..R3
  0014  RETURN    return R0..R-1
; ---------- proto6 [IsPropertyAcquired] ----------
  ; fn ?  line 97-100 np=3 va=0 ms=7 code=7 consts=1 upvals=0 protos=0
  ;   K[0]='GetAcquiredProperties'
  ;   locals: self(0-7), eProfilePropertyType(0-7), id(0-7), map(4-7)
  0000  SELF      R4 = R0[K0('GetAcquiredProperties')] (self)
  0001  MOVE      R5 = R0
  0002  LOADBOOL  R6 = true
  0003  CALL      R3 = call(R3, 1 args, 3 rets)
  0004  GETTABLE  R4 = R3[R2]
  0005  RETURN    return R4..R3
  0006  RETURN    return R0..R-1
; ---------- proto7 [IsValidRewardType] ----------
  ; fn ?  line 102-105 np=3 va=0 ms=5 code=8 consts=1 upvals=0 protos=0
  ;   K[0]='m_mapPropertyIds'
  ;   locals: self(0-8), eProfilePropertyType(0-8), id(0-8), map(5-8)
  0000  GETTABLE  R3 = R0[K0('m_mapPropertyIds')]
  0001  GETTABLE  R3 = R3[R1]
  0002  TEST      if not R3 then   -> -131067
  0003  JMP       (jump)   -> 5
  0004  NEWTABLE  R3 = {} (0 items)
  0005  GETTABLE  R4 = R3[R2]
  0006  RETURN    return R4..R3
  0007  RETURN    return R0..R-1
; ---------- proto8 [GetAllRewardType] ----------
  ; fn ?  line 108-111 np=3 va=0 ms=6 code=15 consts=3 upvals=1 protos=0
  ;   K[0]='m_mapPropertyIds'
  ;   K[1]='Table'
  ;   K[2]='ShallowCopy'
  ;   upvals: _ENV
  ;   locals: self(0-15), eProfilePropertyType(0-15), readOnly(0-15), map(5-15)
  0000  GETTABLE  R3 = R0[K0('m_mapPropertyIds')]
  0001  GETTABLE  R3 = R3[R1]
  0002  TEST      if not R3 then   -> -131067
  0003  JMP       (jump)   -> 5
  0004  NEWTABLE  R3 = {} (0 items)
  0005  TEST      if not R2 then   -> -131065
  0006  JMP       (jump)   -> 9
  0007  TESTSET   if R1 then R4   -> -129526
  0008  JMP       (jump)   -> 13
  0009  GETTABUP  R4 = _ENV[K1('Table')]
  0010  GETTABLE  R4 = R4[K2('ShallowCopy')]
  0011  MOVE      R5 = R0
  0012  CALL      R4 = call(R4, 1 args, 1 rets)
  0013  RETURN    return R4..R3
  0014  RETURN    return R0..R-1
; ---------- proto9 [GenerateDefault] ----------
  ; fn ?  line 113-127 np=1 va=0 ms=6 code=45 consts=13 upvals=2 protos=0
  ;   K[0]='StringUtil'
  ;   K[1]='IsNilOrEmpty'
  ;   K[2]='m_name'
  ;   K[3]='m_avatarId'
  ;   K[4]='GM'
  ;   K[5]='AccountManager'
  ;   K[6]='GetAccountName'
  ;   K[7]='GetAccountPictureUrl'
  ;   K[8]='_IsValidName'
  ;   K[9]='GetDefaultName'
  ;   K[10]='1'
  ;   K[11]='_SetName'
  ;   K[12]='_SetAvatar'
  ;   upvals: _ENV, BUILTIN_AVATAR_PREFIX
  ;   locals: self(0-45), accountName(17-45), accountAvatarId(21-45)
  0000  GETTABUP  R1 = _ENV[K0('StringUtil')]
  0001  GETTABLE  R1 = R1[K1('IsNilOrEmpty')]
  0002  GETTABLE  R2 = R0[K2('m_name')]
  0003  CALL      R1 = call(R1, 1 args, 1 rets)
  0004  TEST      if not R1 then   -> -131065
  0005  JMP       (jump)   -> 13
  0006  GETTABUP  R1 = _ENV[K0('StringUtil')]
  0007  GETTABLE  R1 = R1[K1('IsNilOrEmpty')]
  0008  GETTABLE  R2 = R0[K3('m_avatarId')]
  0009  CALL      R1 = call(R1, 1 args, 1 rets)
  0010  TEST      if not R1 then   -> -131059
  0011  JMP       (jump)   -> 13
  0012  RETURN    return R0..R-1
  0013  GETTABUP  R1 = _ENV[K4('GM')]
  0014  GETTABLE  R1 = R1[K5('AccountManager')]
  0015  SELF      R2 = R1[K6('GetAccountName')] (self)
  0016  CALL      R1 = call(R1, 1 args, 1 rets)
  0017  GETTABUP  R2 = _ENV[K4('GM')]
  0018  GETTABLE  R2 = R2[K5('AccountManager')]
  0019  SELF      R3 = R2[K7('GetAccountPictureUrl')] (self)
  0020  CALL      R2 = call(R2, 1 args, 1 rets)
  0021  SELF      R4 = R0[K8('_IsValidName')] (self)
  0022  MOVE      R5 = R0
  0023  CALL      R3 = call(R3, 1 args, 2 rets)
  0024  TEST      if not R3 then   -> -131045
  0025  JMP       (jump)   -> 29
  0026  SELF      R4 = R0[K9('GetDefaultName')] (self)
  0027  CALL      R3 = call(R3, 1 args, 1 rets)
  0028  MOVE      R1 = R0
  0029  GETTABUP  R3 = _ENV[K0('StringUtil')]
  0030  GETTABLE  R3 = R3[K1('IsNilOrEmpty')]
  0031  MOVE      R4 = R0
  0032  CALL      R3 = call(R3, 1 args, 1 rets)
  0033  TEST      if not R3 then   -> -131037
  0034  JMP       (jump)   -> 38
  0035  GETUPVAL  R3 = _ENV
  0036  LOADK     R4 = K10 '1'
  0037  CONCAT    R2 = concat(R2..R3)
  0038  SELF      R4 = R0[K11('_SetName')] (self)
  0039  MOVE      R5 = R0
  0040  CALL      R3 = call(R3, 0 args, 2 rets)
  0041  SELF      R4 = R0[K12('_SetAvatar')] (self)
  0042  MOVE      R5 = R0
  0043  CALL      R3 = call(R3, 0 args, 2 rets)
  0044  RETURN    return R0..R-1
; ---------- proto10 [GetDefaultName] ----------
  ; fn ?  line 131-133 np=1 va=0 ms=4 code=8 consts=3 upvals=2 protos=0
  ;   K[0]='GM'
  ;   K[1]='UserModel'
  ;   K[2]='GetDisplayUserId'
  ;   upvals: DEFAULT_NAME_PREFIX, _ENV
  ;   locals: self(0-8)
  0000  GETUPVAL  R1 = DEFAULT_NAME_PREFIX
  0001  GETTABUP  R2 = _ENV[K0('GM')]
  0002  GETTABLE  R2 = R2[K1('UserModel')]
  0003  SELF      R3 = R2[K2('GetDisplayUserId')] (self)
  0004  CALL      R2 = call(R2, 1 args, 1 rets)
  0005  CONCAT    R1 = concat(R1..R1)
  0006  RETURN    return R1..R0
  0007  RETURN    return R0..R-1
; ---------- proto11 [IsNowDefaultName] ----------
  ; fn ?  line 135-137 np=1 va=0 ms=4 code=11 consts=2 upvals=0 protos=0
  ;   K[0]='GetName'
  ;   K[1]='GetDefaultName'
  ;   locals: self(0-11)
  0000  SELF      R2 = R0[K0('GetName')] (self)
  0001  LOADBOOL  R3 = true
  0002  CALL      R1 = call(R1, 1 args, 2 rets)
  0003  SELF      R3 = R0[K1('GetDefaultName')] (self)
  0004  CALL      R2 = call(R2, 1 args, 1 rets)
  0005  EQ        if R1 eq R2   -> -130551
  0006  JMP       (jump)   -> 8
  0007  LOADBOOL  R1 = false
  0008  LOADBOOL  R1 = true
  0009  RETURN    return R1..R0
  0010  RETURN    return R0..R-1
; ---------- proto12 [GetName] ----------
  ; fn ?  line 139-144 np=2 va=0 ms=5 code=17 consts=7 upvals=1 protos=0
  ;   K[0]='Log'
  ;   K[1]='Assert'
  ;   K[2]='StringUtil'
  ;   K[3]='IsNilOrEmpty'
  ;   K[4]='m_name'
  ;   K[5]='user name is empty or nil'
  ;   K[6]=''
  ;   upvals: _ENV
  ;   locals: self(0-17), ignoreCheck(0-17)
  0000  TEST      if not R1 then   -> -131069
  0001  JMP       (jump)   -> 11
  0002  GETTABUP  R2 = _ENV[K0('Log')]
  0003  GETTABLE  R2 = R2[K1('Assert')]
  0004  GETTABUP  R3 = _ENV[K2('StringUtil')]
  0005  GETTABLE  R3 = R3[K3('IsNilOrEmpty')]
  0006  GETTABLE  R4 = R0[K4('m_name')]
  0007  CALL      R3 = call(R3, 1 args, 1 rets)
  0008  NOT       R3 = not R0
  0009  LOADK     R4 = K5 'user name is empty or nil'
  0010  CALL      R2 = call(R2, 0 args, 2 rets)
  0011  GETTABLE  R2 = R0[K4('m_name')]
  0012  TEST      if not R2 then   -> -131057
  0013  JMP       (jump)   -> 15
  0014  LOADK     R2 = K6 ''
  0015  RETURN    return R2..R1
  0016  RETURN    return R0..R-1
; ---------- proto13 [ChangeName] ----------
  ; fn ?  line 146-155 np=2 va=0 ms=6 code=27 consts=10 upvals=1 protos=0
  ;   K[0]='_IsValidName'
  ;   K[1]='StringUtil'
  ;   K[2]='Trim'
  ;   K[3]='_SetName'
  ;   K[4]='GM'
  ;   K[5]='BIManager'
  ;   K[6]='LogAction'
  ;   K[7]='EBIType'
  ;   K[8]='ChangeName'
  ;   K[9]='RefreshDisplay'
  ;   upvals: _ENV
  ;   locals: self(0-27), name(0-27)
  0000  SELF      R3 = R0[K0('_IsValidName')] (self)
  0001  MOVE      R4 = R0
  0002  CALL      R2 = call(R2, 1 args, 2 rets)
  0003  TEST      if not R2 then   -> -131066
  0004  JMP       (jump)   -> 7
  0005  LOADBOOL  R2 = false
  0006  RETURN    return R2..R1
  0007  GETTABUP  R2 = _ENV[K1('StringUtil')]
  0008  GETTABLE  R2 = R2[K2('Trim')]
  0009  MOVE      R3 = R0
  0010  CALL      R2 = call(R2, 1 args, 1 rets)
  0011  MOVE      R1 = R0
  0012  SELF      R3 = R0[K3('_SetName')] (self)
  0013  MOVE      R4 = R0
  0014  CALL      R2 = call(R2, 0 args, 2 rets)
  0015  GETTABUP  R2 = _ENV[K4('GM')]
  0016  GETTABLE  R2 = R2[K5('BIManager')]
  0017  SELF      R3 = R2[K6('LogAction')] (self)
  0018  GETTABUP  R4 = _ENV[K7('EBIType')]
  0019  GETTABLE  R4 = R4[K8('ChangeName')]
  0020  MOVE      R5 = R0
  0021  CALL      R2 = call(R2, 0 args, 3 rets)
  0022  SELF      R3 = R0[K9('RefreshDisplay')] (self)
  0023  CALL      R2 = call(R2, 0 args, 1 rets)
  0024  LOADBOOL  R2 = true
  0025  RETURN    return R2..R1
  0026  RETURN    return R0..R-1
; ---------- proto14 [_SetName] ----------
  ; fn ?  line 157-164 np=2 va=0 ms=6 code=18 consts=9 upvals=1 protos=0
  ;   K[0]='StringUtil'
  ;   K[1]='IsNilOrEmpty'
  ;   K[2]='GetDefaultName'
  ;   K[3]='m_name'
  ;   K[4]='GM'
  ;   K[5]='UserModel'
  ;   K[6]='Set'
  ;   K[7]='EUserLocalDataKey'
  ;   K[8]='Name'
  ;   upvals: _ENV
  ;   locals: self(0-18), name(0-18)
  0000  GETTABUP  R2 = _ENV[K0('StringUtil')]
  0001  GETTABLE  R2 = R2[K1('IsNilOrEmpty')]
  0002  MOVE      R3 = R0
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  TEST      if not R2 then   -> -131066
  0005  JMP       (jump)   -> 9
  0006  SELF      R3 = R0[K2('GetDefaultName')] (self)
  0007  CALL      R2 = call(R2, 1 args, 1 rets)
  0008  MOVE      R1 = R0
  0009  SETTABLE  R0[K3('m_name')] = R1
  0010  GETTABUP  R2 = _ENV[K4('GM')]
  0011  GETTABLE  R2 = R2[K5('UserModel')]
  0012  SELF      R3 = R2[K6('Set')] (self)
  0013  GETTABUP  R4 = _ENV[K7('EUserLocalDataKey')]
  0014  GETTABLE  R4 = R4[K8('Name')]
  0015  GETTABLE  R5 = R0[K3('m_name')]
  0016  CALL      R2 = call(R2, 0 args, 3 rets)
  0017  RETURN    return R0..R-1
; ---------- proto15 [_IsValidName] ----------
  ; fn ?  line 166-177 np=2 va=0 ms=5 code=29 consts=7 upvals=1 protos=0
  ;   K[0]='StringUtil'
  ;   K[1]='IsNilOrEmpty'
  ;   K[2]='rFindChar'
  ;   K[3]='%'
  ;   K[4]='GM'
  ;   K[5]='GameTextModel'
  ;   K[6]='IsSensitiveWord'
  ;   upvals: _ENV
  ;   locals: self(0-29), name(0-29)
  0000  GETTABUP  R2 = _ENV[K0('StringUtil')]
  0001  GETTABLE  R2 = R2[K1('IsNilOrEmpty')]
  0002  MOVE      R3 = R0
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  TEST      if not R2 then   -> -131066
  0005  JMP       (jump)   -> 8
  0006  LOADBOOL  R2 = false
  0007  RETURN    return R2..R1
  0008  GETTABUP  R2 = _ENV[K0('StringUtil')]
  0009  GETTABLE  R2 = R2[K2('rFindChar')]
  0010  MOVE      R3 = R0
  0011  LOADK     R4 = K3 '%'
  0012  CALL      R2 = call(R2, 1 args, 2 rets)
  0013  TEST      if not R2 then   -> -131057
  0014  JMP       (jump)   -> 17
  0015  LOADBOOL  R2 = false
  0016  RETURN    return R2..R1
  0017  GETTABUP  R2 = _ENV[K4('GM')]
  0018  GETTABLE  R2 = R2[K5('GameTextModel')]
  0019  SELF      R3 = R2[K6('IsSensitiveWord')] (self)
  0020  MOVE      R4 = R0
  0021  CALL      R2 = call(R2, 1 args, 2 rets)
  0022  TEST      if not R2 then   -> -131048
  0023  JMP       (jump)   -> 26
  0024  LOADBOOL  R2 = false
  0025  RETURN    return R2..R1
  0026  LOADBOOL  R2 = true
  0027  RETURN    return R2..R1
  0028  RETURN    return R0..R-1
; ---------- proto16 [GetReplacedSensitiveWord] ----------
  ; fn ?  line 179-186 np=3 va=0 ms=6 code=24 consts=7 upvals=2 protos=0
  ;   K[0]='StringUtil'
  ;   K[1]='IsNilOrEmpty'
  ;   K[2]='GM'
  ;   K[3]='GameTextModel'
  ;   K[4]='IsSensitiveWord'
  ;   K[5]='UserModel'
  ;   K[6]='EncryptUserId'
  ;   upvals: _ENV, DEFAULT_NAME_PREFIX
  ;   locals: self(0-24), name(0-24), userId(0-24), encryptUserId(19-24)
  0000  GETTABUP  R3 = _ENV[K0('StringUtil')]
  0001  GETTABLE  R3 = R3[K1('IsNilOrEmpty')]
  0002  MOVE      R4 = R0
  0003  CALL      R3 = call(R3, 1 args, 1 rets)
  0004  TEST      if not R3 then   -> -131065
  0005  JMP       (jump)   -> 13
  0006  GETTABUP  R3 = _ENV[K2('GM')]
  0007  GETTABLE  R3 = R3[K3('GameTextModel')]
  0008  SELF      R4 = R3[K4('IsSensitiveWord')] (self)
  0009  MOVE      R5 = R0
  0010  CALL      R3 = call(R3, 1 args, 2 rets)
  0011  TEST      if not R3 then   -> -131058
  0012  JMP       (jump)   -> 14
  0013  RETURN    return R1..R0
  0014  GETTABUP  R3 = _ENV[K2('GM')]
  0015  GETTABLE  R3 = R3[K5('UserModel')]
  0016  SELF      R4 = R3[K6('EncryptUserId')] (self)
  0017  MOVE      R5 = R0
  0018  CALL      R3 = call(R3, 1 args, 2 rets)
  0019  GETUPVAL  R4 = _ENV
  0020  MOVE      R5 = R0
  0021  CONCAT    R4 = concat(R4..R4)
  0022  RETURN    return R4..R3
  0023  RETURN    return R0..R-1
; ---------- proto17 [GetAllAvatarIds] ----------
  ; fn ?  line 193-195 np=2 va=0 ms=4 code=11 consts=3 upvals=1 protos=0
  ;   K[0]='Table'
  ;   K[1]='ShallowCopy'
  ;   K[2]='m_arrAvatarIds'
  ;   upvals: _ENV
  ;   locals: self(0-11), copy(0-11)
  0000  TEST      if not R1 then   -> -131070
  0001  JMP       (jump)   -> 8
  0002  GETTABUP  R2 = _ENV[K0('Table')]
  0003  GETTABLE  R2 = R2[K1('ShallowCopy')]
  0004  GETTABLE  R3 = R0[K2('m_arrAvatarIds')]
  0005  CALL      R2 = call(R2, 1 args, 1 rets)
  0006  TEST      if not R2 then   -> -131063
  0007  JMP       (jump)   -> 9
  0008  GETTABLE  R2 = R0[K2('m_arrAvatarIds')]
  0009  RETURN    return R2..R1
  0010  RETURN    return R0..R-1
; ---------- proto18 [GetOneRandomAvatarName] ----------
  ; fn ?  line 197-199 np=1 va=0 ms=3 code=6 consts=3 upvals=1 protos=0
  ;   K[0]='Table'
  ;   K[1]='ListRandomSelectOne'
  ;   K[2]='m_arrAvatarIds'
  ;   upvals: _ENV
  ;   locals: self(0-6)
  0000  GETTABUP  R1 = _ENV[K0('Table')]
  0001  GETTABLE  R1 = R1[K1('ListRandomSelectOne')]
  0002  GETTABLE  R2 = R0[K2('m_arrAvatarIds')]
  0003  TAILCALL  tailcall(R1, 0)
  0004  RETURN    return R1..R0
  0005  RETURN    return R0..R-1
; ---------- proto19 [GetAvatar] ----------
  ; fn ?  line 201-204 np=1 va=0 ms=4 code=15 consts=7 upvals=1 protos=0
  ;   K[0]='Log'
  ;   K[1]='Assert'
  ;   K[2]='StringUtil'
  ;   K[3]='IsNilOrEmpty'
  ;   K[4]='m_avatarId'
  ;   K[5]='user avatarId is empty or nil'
  ;   K[6]=''
  ;   upvals: _ENV
  ;   locals: self(0-15)
  0000  GETTABUP  R1 = _ENV[K0('Log')]
  0001  GETTABLE  R1 = R1[K1('Assert')]
  0002  GETTABUP  R2 = _ENV[K2('StringUtil')]
  0003  GETTABLE  R2 = R2[K3('IsNilOrEmpty')]
  0004  GETTABLE  R3 = R0[K4('m_avatarId')]
  0005  CALL      R2 = call(R2, 1 args, 1 rets)
  0006  NOT       R2 = not R0
  0007  LOADK     R3 = K5 'user avatarId is empty or nil'
  0008  CALL      R1 = call(R1, 0 args, 2 rets)
  0009  GETTABLE  R1 = R0[K4('m_avatarId')]
  0010  TEST      if not R1 then   -> -131059
  0011  JMP       (jump)   -> 13
  0012  LOADK     R1 = K6 ''
  0013  RETURN    return R1..R0
  0014  RETURN    return R0..R-1
; ---------- proto20 [ChangeAvatar] ----------
  ; fn ?  line 206-214 np=2 va=0 ms=6 code=25 consts=10 upvals=1 protos=0
  ;   K[0]='StringUtil'
  ;   K[1]='IsNilOrEmpty'
  ;   K[2]='Trim'
  ;   K[3]='_SetAvatar'
  ;   K[4]='GM'
  ;   K[5]='BIManager'
  ;   K[6]='LogAction'
  ;   K[7]='EBIType'
  ;   K[8]='ChangeAvatar'
  ;   K[9]='RefreshDisplay'
  ;   upvals: _ENV
  ;   locals: self(0-25), avatarId(0-25)
  0000  GETTABUP  R2 = _ENV[K0('StringUtil')]
  0001  GETTABLE  R2 = R2[K1('IsNilOrEmpty')]
  0002  MOVE      R3 = R0
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  TEST      if not R2 then   -> -131066
  0005  JMP       (jump)   -> 7
  0006  RETURN    return R0..R-1
  0007  GETTABUP  R2 = _ENV[K0('StringUtil')]
  0008  GETTABLE  R2 = R2[K2('Trim')]
  0009  MOVE      R3 = R0
  0010  CALL      R2 = call(R2, 1 args, 1 rets)
  0011  MOVE      R1 = R0
  0012  SELF      R3 = R0[K3('_SetAvatar')] (self)
  0013  MOVE      R4 = R0
  0014  CALL      R2 = call(R2, 0 args, 2 rets)
  0015  GETTABUP  R2 = _ENV[K4('GM')]
  0016  GETTABLE  R2 = R2[K5('BIManager')]
  0017  SELF      R3 = R2[K6('LogAction')] (self)
  0018  GETTABUP  R4 = _ENV[K7('EBIType')]
  0019  GETTABLE  R4 = R4[K8('ChangeAvatar')]
  0020  MOVE      R5 = R0
  0021  CALL      R2 = call(R2, 0 args, 3 rets)
  0022  SELF      R3 = R0[K9('RefreshDisplay')] (self)
  0023  CALL      R2 = call(R2, 0 args, 1 rets)
  0024  RETURN    return R0..R-1
; ---------- proto21 [_SetAvatar] ----------
  ; fn ?  line 216-223 np=2 va=0 ms=6 code=18 consts=9 upvals=2 protos=0
  ;   K[0]='StringUtil'
  ;   K[1]='IsNilOrEmpty'
  ;   K[2]=1
  ;   K[3]='m_avatarId'
  ;   K[4]='GM'
  ;   K[5]='UserModel'
  ;   K[6]='Set'
  ;   K[7]='EUserLocalDataKey'
  ;   K[8]='Avatar'
  ;   upvals: _ENV, BUILTIN_AVATAR_PREFIX
  ;   locals: self(0-18), avatarId(0-18)
  0000  GETTABUP  R2 = _ENV[K0('StringUtil')]
  0001  GETTABLE  R2 = R2[K1('IsNilOrEmpty')]
  0002  MOVE      R3 = R0
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  TEST      if not R2 then   -> -131066
  0005  JMP       (jump)   -> 9
  0006  GETUPVAL  R2 = _ENV
  0007  LOADK     R3 = K2 1
  0008  CONCAT    R1 = concat(R1..R2)
  0009  SETTABLE  R0[K3('m_avatarId')] = R1
  0010  GETTABUP  R2 = _ENV[K4('GM')]
  0011  GETTABLE  R2 = R2[K5('UserModel')]
  0012  SELF      R3 = R2[K6('Set')] (self)
  0013  GETTABUP  R4 = _ENV[K7('EUserLocalDataKey')]
  0014  GETTABLE  R4 = R4[K8('Avatar')]
  0015  GETTABLE  R5 = R0[K3('m_avatarId')]
  0016  CALL      R2 = call(R2, 0 args, 3 rets)
  0017  RETURN    return R0..R-1
; ---------- proto22 [IsBuildInAvatar] ----------
  ; fn ?  line 225-228 np=2 va=0 ms=6 code=9 consts=3 upvals=1 protos=0
  ;   K[0]='GetAllAvatarIds'
  ;   K[1]='Table'
  ;   K[2]='ListContain'
  ;   upvals: _ENV
  ;   locals: self(0-9), avatarId(0-9), tb(2-9)
  0000  SELF      R3 = R0[K0('GetAllAvatarIds')] (self)
  0001  CALL      R2 = call(R2, 1 args, 1 rets)
  0002  GETTABUP  R3 = _ENV[K1('Table')]
  0003  GETTABLE  R3 = R3[K2('ListContain')]
  0004  MOVE      R4 = R0
  0005  MOVE      R5 = R0
  0006  TAILCALL  tailcall(R3, 0)
  0007  RETURN    return R3..R2
  0008  RETURN    return R0..R-1
; ---------- proto23 [Acquire] ----------
  ; fn ?  line 234-245 np=3 va=0 ms=9 code=37 consts=12 upvals=1 protos=0
  ;   K[0]='IsValidRewardType'
  ;   K[1]='Log'
  ;   K[2]='Error'
  ;   K[3]='获取不存在的 profile 资产：type '
  ;   K[4]='tostring'
  ;   K[5]=', '
  ;   K[6]='m_dbTable'
  ;   K[7]='Set'
  ;   K[8]='DB_VALUE_KEY'
  ;   K[9]=1
  ;   K[10]='m_mapAcquiredProperties'
  ;   K[11]=true
  ;   upvals: _ENV
  ;   locals: self(0-37), eProfilePropertyType(0-37), id(0-37)
  0000  SELF      R4 = R0[K0('IsValidRewardType')] (self)
  0001  MOVE      R5 = R0
  0002  MOVE      R6 = R0
  0003  CALL      R3 = call(R3, 1 args, 3 rets)
  0004  TEST      if not R3 then   -> -131065
  0005  JMP       (jump)   -> 19
  0006  GETTABUP  R3 = _ENV[K1('Log')]
  0007  GETTABLE  R3 = R3[K2('Error')]
  0008  LOADK     R4 = K3 '获取不存在的 profile 资产：type '
  0009  GETTABUP  R5 = _ENV[K4('tostring')]
  0010  MOVE      R6 = R0
  0011  CALL      R5 = call(R5, 1 args, 1 rets)
  0012  LOADK     R6 = K5 ', '
  0013  GETTABUP  R7 = _ENV[K4('tostring')]
  0014  MOVE      R8 = R0
  0015  CALL      R7 = call(R7, 1 args, 1 rets)
  0016  CONCAT    R4 = concat(R4..R4)
  0017  CALL      R3 = call(R3, 0 args, 1 rets)
  0018  RETURN    return R0..R-1
  0019  GETTABLE  R3 = R0[K6('m_dbTable')]
  0020  SELF      R4 = R3[K7('Set')] (self)
  0021  MOVE      R5 = R0
  0022  MOVE      R6 = R0
  0023  GETTABUP  R7 = _ENV[K8('DB_VALUE_KEY')]
  0024  LOADK     R8 = K9 1
  0025  CALL      R3 = call(R3, 0 args, 5 rets)
  0026  GETTABLE  R3 = R0[K10('m_mapAcquiredProperties')]
  0027  GETTABLE  R3 = R3[R1]
  0028  TEST      if not R3 then   -> -131041
  0029  JMP       (jump)   -> 33
  0030  GETTABLE  R3 = R0[K10('m_mapAcquiredProperties')]
  0031  NEWTABLE  R4 = {} (0 items)
  0032  SETTABLE  R3[R1] = R4
  0033  GETTABLE  R3 = R0[K10('m_mapAcquiredProperties')]
  0034  GETTABLE  R3 = R3[R1]
  0035  SETTABLE  R3[R2] = K11(true)
  0036  RETURN    return R0..R-1
; ---------- proto24 [GetBadge] ----------
  ; fn ?  line 248-250 np=1 va=0 ms=2 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='m_badgeId'
  ;   locals: self(0-3)
  0000  GETTABLE  R1 = R0[K0('m_badgeId')]
  0001  RETURN    return R1..R0
  0002  RETURN    return R0..R-1
; ---------- proto25 [GetBadgeCount] ----------
  ; fn ?  line 252-255 np=1 va=0 ms=5 code=12 consts=5 upvals=1 protos=0
  ;   K[0]='GetAcquiredProperties'
  ;   K[1]='EProfilePropertyType'
  ;   K[2]='Badge'
  ;   K[3]='Table'
  ;   K[4]='GetKeys'
  ;   upvals: _ENV
  ;   locals: self(0-12), mapAcquiredBadgeIds(5-12)
  0000  SELF      R2 = R0[K0('GetAcquiredProperties')] (self)
  0001  GETTABUP  R3 = _ENV[K1('EProfilePropertyType')]
  0002  GETTABLE  R3 = R3[K2('Badge')]
  0003  LOADBOOL  R4 = true
  0004  CALL      R1 = call(R1, 1 args, 3 rets)
  0005  GETTABUP  R2 = _ENV[K3('Table')]
  0006  GETTABLE  R2 = R2[K4('GetKeys')]
  0007  MOVE      R3 = R0
  0008  CALL      R2 = call(R2, 1 args, 1 rets)
  0009  LEN       R2 = len R0
  0010  RETURN    return R2..R1
  0011  RETURN    return R0..R-1
; ---------- proto26 [ChangeBadge] ----------
  ; fn ?  line 257-277 np=3 va=0 ms=9 code=32 consts=14 upvals=1 protos=0
  ;   K[0]='StringUtil'
  ;   K[1]='IsNilOrEmpty'
  ;   K[2]='IsBadgeDownloaded'
  ;   K[3]='m_badgeId'
  ;   K[4]='_SetBadge'
  ;   K[5]=false
  ;   K[6]='from'
  ;   K[7]='to'
  ;   K[8]='GM'
  ;   K[9]='BIManager'
  ;   K[10]='LogAction'
  ;   K[11]='EBIType'
  ;   K[12]='ChangeBadge'
  ;   K[13]='RefreshDisplay'
  ;   upvals: _ENV
  ;   locals: self(0-32), badgeId(0-32), bLogAndUpdate(0-32), oldBadge(13-32), info(22-32)
  0000  GETTABUP  R3 = _ENV[K0('StringUtil')]
  0001  GETTABLE  R3 = R3[K1('IsNilOrEmpty')]
  0002  MOVE      R4 = R0
  0003  CALL      R3 = call(R3, 1 args, 1 rets)
  0004  TEST      if not R3 then   -> -131065
  0005  JMP       (jump)   -> 12
  0006  SELF      R4 = R0[K2('IsBadgeDownloaded')] (self)
  0007  MOVE      R5 = R0
  0008  CALL      R3 = call(R3, 1 args, 2 rets)
  0009  TEST      if not R3 then   -> -131060
  0010  JMP       (jump)   -> 12
  0011  RETURN    return R0..R-1
  0012  GETTABLE  R3 = R0[K3('m_badgeId')]
  0013  SELF      R5 = R0[K4('_SetBadge')] (self)
  0014  MOVE      R6 = R0
  0015  CALL      R4 = call(R4, 0 args, 2 rets)
  0016  EQ        if R0 eq K5(false)   -> -129769
  0017  JMP       (jump)   -> 19
  0018  RETURN    return R0..R-1
  0019  NEWTABLE  R4 = {} (0 items)
  0020  SETTABLE  R4[K6('from')] = R3
  0021  SETTABLE  R4[K7('to')] = R1
  0022  GETTABUP  R5 = _ENV[K8('GM')]
  0023  GETTABLE  R5 = R5[K9('BIManager')]
  0024  SELF      R6 = R5[K10('LogAction')] (self)
  0025  GETTABUP  R7 = _ENV[K11('EBIType')]
  0026  GETTABLE  R7 = R7[K12('ChangeBadge')]
  0027  MOVE      R8 = R0
  0028  CALL      R5 = call(R5, 0 args, 3 rets)
  0029  SELF      R6 = R0[K13('RefreshDisplay')] (self)
  0030  CALL      R5 = call(R5, 0 args, 1 rets)
  0031  RETURN    return R0..R-1
; ---------- proto27 [_SetBadge] ----------
  ; fn ?  line 279-282 np=2 va=0 ms=6 code=12 consts=7 upvals=1 protos=0
  ;   K[0]='m_badgeId'
  ;   K[1]=''
  ;   K[2]='GM'
  ;   K[3]='UserModel'
  ;   K[4]='Set'
  ;   K[5]='EUserLocalDataKey'
  ;   K[6]='Badge'
  ;   upvals: _ENV
  ;   locals: self(0-12), badgeId(0-12)
  0000  TESTSET   if R1 then R2   -> -130557
  0001  JMP       (jump)   -> 3
  0002  LOADK     R2 = K1 ''
  0003  SETTABLE  R0[K0('m_badgeId')] = R2
  0004  GETTABUP  R2 = _ENV[K2('GM')]
  0005  GETTABLE  R2 = R2[K3('UserModel')]
  0006  SELF      R3 = R2[K4('Set')] (self)
  0007  GETTABUP  R4 = _ENV[K5('EUserLocalDataKey')]
  0008  GETTABLE  R4 = R4[K6('Badge')]
  0009  GETTABLE  R5 = R0[K0('m_badgeId')]
  0010  CALL      R2 = call(R2, 0 args, 3 rets)
  0011  RETURN    return R0..R-1
; ---------- proto28 [GetBadgeViewConfig] ----------
  ; fn ?  line 284-286 np=2 va=0 ms=3 code=7 consts=1 upvals=0 protos=0
  ;   K[0]='m_mapBadgeViewConfig'
  ;   locals: self(0-7), id(0-7)
  0000  GETTABLE  R2 = R0[K0('m_mapBadgeViewConfig')]
  0001  TEST      if not R2 then   -> -131069
  0002  JMP       (jump)   -> 5
  0003  GETTABLE  R2 = R0[K0('m_mapBadgeViewConfig')]
  0004  GETTABLE  R2 = R2[R1]
  0005  RETURN    return R2..R1
  0006  RETURN    return R0..R-1
; ---------- proto29 [GetUnacquiredLatestBadge] ----------
  ; fn ?  line 290-332 np=1 va=0 ms=19 code=80 consts=12 upvals=1 protos=1
  ;   K[0]='GetAllRewardType'
  ;   K[1]='EProfilePropertyType'
  ;   K[2]='Badge'
  ;   K[3]='AlbumActivityModel'
  ;   K[4]='GetActiveModel'
  ;   K[5]='Table'
  ;   K[6]='IsEmpty'
  ;   K[7]=nil
  ;   K[8]='GetFirstRoundBadgeRewardId'
  ;   K[9]='tonumber'
  ;   K[10]='pairs'
  ;   K[11]='IsPropertyAcquired'
  ;   upvals: _ENV
  ;   locals: self(0-80), map(5-80), albumModel(8-80), albumBadgeId(20-80), parseFunc(25-80), maxX(28-80), badgeType(39-80), bestId(40-80), bestX(40-80), bestY(40-80), (for generator)(43-78), (for state)(43-78), (for control)(43-78), badgeId(44-76), strX(53-76), strY(53-76), x(60-76), y(63-76)
  0000  SELF      R2 = R0[K0('GetAllRewardType')] (self)
  0001  GETTABUP  R3 = _ENV[K1('EProfilePropertyType')]
  0002  GETTABLE  R3 = R3[K2('Badge')]
  0003  LOADBOOL  R4 = true
  0004  CALL      R1 = call(R1, 1 args, 3 rets)
  0005  GETTABUP  R2 = _ENV[K3('AlbumActivityModel')]
  0006  GETTABLE  R2 = R2[K4('GetActiveModel')]
  0007  CALL      R2 = call(R2, 1 args, 0 rets)
  0008  GETTABUP  R3 = _ENV[K5('Table')]
  0009  GETTABLE  R3 = R3[K6('IsEmpty')]
  0010  MOVE      R4 = R0
  0011  CALL      R3 = call(R3, 1 args, 1 rets)
  0012  TEST      if not R3 then   -> -131057
  0013  JMP       (jump)   -> 16
  0014  EQ        if R0 eq K7(nil)   -> -129769
  0015  JMP       (jump)   -> 18
  0016  LOADNIL   R3..R3 = nil
  0017  RETURN    return R3..R2
  0018  SELF      R4 = R2[K8('GetFirstRoundBadgeRewardId')] (self)
  0019  CALL      R3 = call(R3, 1 args, 1 rets)
  0020  EQ        if R0 eq K7(nil)   -> -129251
  0021  JMP       (jump)   -> 24
  0022  LOADNIL   R4..R4 = nil
  0023  RETURN    return R4..R3
  0024  CLOSURE   R4 = closure proto0
  0025  MOVE      R5 = R0
  0026  MOVE      R6 = R0
  0027  CALL      R5 = call(R5, 1 args, 1 rets)
  0028  EQ        if R0 eq K7(nil)   -> -128219
  0029  JMP       (jump)   -> 33
  0030  LOADNIL   R6..R6 = nil
  0031  RETURN    return R6..R5
  0032  JMP       (jump)   -> 37
  0033  GETTABUP  R6 = _ENV[K9('tonumber')]
  0034  MOVE      R7 = R0
  0035  CALL      R6 = call(R6, 1 args, 1 rets)
  0036  MOVE      R5 = R0
  0037  GETTABUP  R6 = _ENV[K1('EProfilePropertyType')]
  0038  GETTABLE  R6 = R6[K2('Badge')]
  0039  LOADNIL   R7..R7 = nil
  0040  GETTABUP  R10 = _ENV[K10('pairs')]
  0041  MOVE      R11 = R0
  0042  CALL      R10 = call(R10, 3 args, 1 rets)
  0043  JMP       (jump)   -> 76
  0044  SELF      R15 = R0[K11('IsPropertyAcquired')] (self)
  0045  MOVE      R16 = R0
  0046  MOVE      R17 = R0
  0047  CALL      R14 = call(R14, 1 args, 3 rets)
  0048  TEST      if not R14 then   -> -131021
  0049  JMP       (jump)   -> 76
  0050  MOVE      R14 = R0
  0051  MOVE      R15 = R0
  0052  CALL      R14 = call(R14, 2 args, 1 rets)
  0053  EQ        if R1 eq K7(nil)   -> -123586
  0054  JMP       (jump)   -> 76
  0055  EQ        if R1 eq K7(nil)   -> -123072
  0056  JMP       (jump)   -> 76
  0057  GETTABUP  R16 = _ENV[K9('tonumber')]
  0058  MOVE      R17 = R0
  0059  CALL      R16 = call(R16, 1 args, 1 rets)
  0060  GETTABUP  R17 = _ENV[K9('tonumber')]
  0061  MOVE      R18 = R0
  0062  CALL      R17 = call(R17, 1 args, 1 rets)
  0063  LE        if R0 le R5   -> -122810
  0064  JMP       (jump)   -> 76
  0065  EQ        if R1 eq K7(nil)   -> -127158
  0066  JMP       (jump)   -> 73
  0067  LT        if R1 lt R16   -> -126891
  0068  JMP       (jump)   -> 73
  0069  EQ        if R0 eq R8   -> -122801
  0070  JMP       (jump)   -> 76
  0071  LT        if R0 lt R9   -> -122286
  0072  JMP       (jump)   -> 76
  0073  MOVE      R7 = R0
  0074  MOVE      R8 = R0
  0075  MOVE      R9 = R0
  0076  TFORCALL  tforcall R10
  0077  TFORLOOP  tforloop R12(sBx=-34)   -> 44
  0078  RETURN    return R7..R6
  0079  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 303-305 np=1 va=0 ms=4 code=7 consts=3 upvals=1 protos=0
    ;   K[0]='string'
    ;   K[1]='match'
    ;   K[2]='^badge_(%d+)_(%d+)$'
    ;   upvals: _ENV
    ;   locals: badgeId(0-7)
    0000  GETTABUP  R1 = _ENV[K0('string')]
    0001  GETTABLE  R1 = R1[K1('match')]
    0002  MOVE      R2 = R0
    0003  LOADK     R3 = K2 '^badge_(%d+)_(%d+)$'
    0004  TAILCALL  tailcall(R1, 0)
    0005  RETURN    return R1..R0
    0006  RETURN    return R0..R-1
; ---------- proto30 [IsBadgeDownloaded] ----------
  ; fn ?  line 334-339 np=2 va=0 ms=6 code=16 consts=6 upvals=1 protos=0
  ;   K[0]='IsValidRewardType'
  ;   K[1]='EProfilePropertyType'
  ;   K[2]='Badge'
  ;   K[3]='GM'
  ;   K[4]='DownloadManager'
  ;   K[5]='CheckLabelDownloaded'
  ;   upvals: _ENV
  ;   locals: self(0-16), badgeId(0-16)
  0000  SELF      R3 = R0[K0('IsValidRewardType')] (self)
  0001  GETTABUP  R4 = _ENV[K1('EProfilePropertyType')]
  0002  GETTABLE  R4 = R4[K2('Badge')]
  0003  MOVE      R5 = R0
  0004  CALL      R2 = call(R2, 1 args, 3 rets)
  0005  TEST      if not R2 then   -> -131064
  0006  JMP       (jump)   -> 9
  0007  LOADBOOL  R2 = false
  0008  RETURN    return R2..R1
  0009  GETTABUP  R2 = _ENV[K3('GM')]
  0010  GETTABLE  R2 = R2[K4('DownloadManager')]
  0011  SELF      R3 = R2[K5('CheckLabelDownloaded')] (self)
  0012  MOVE      R4 = R0
  0013  TAILCALL  tailcall(R2, 0)
  0014  RETURN    return R2..R1
  0015  RETURN    return R0..R-1
; ---------- proto31 [GetNeedForceDownloadLabels] ----------
  ; fn ?  line 342-344 np=1 va=0 ms=4 code=6 consts=2 upvals=0 protos=0
  ;   K[0]='GetBadge'
  ;   K[1]=true
  ;   locals: self(0-6)
  0000  NEWTABLE  R1 = {} (0 items)
  0001  SELF      R3 = R0[K0('GetBadge')] (self)
  0002  CALL      R2 = call(R2, 1 args, 1 rets)
  0003  SETTABLE  R1[R2] = K1(true)
  0004  RETURN    return R1..R0
  0005  RETURN    return R0..R-1
; ---------- proto32 [GetNeedForceMuteDownloadLabels] ----------
  ; fn ?  line 349-357 np=1 va=0 ms=8 code=30 consts=11 upvals=1 protos=0
  ;   K[0]='GetAcquiredProperties'
  ;   K[1]='EProfilePropertyType'
  ;   K[2]='Badge'
  ;   K[3]='AlbumActivityModel'
  ;   K[4]='GetActiveModel'
  ;   K[5]='GetRewardBadgeId'
  ;   K[6]=nil
  ;   K[7]='IsValidRewardType'
  ;   K[8]=true
  ;   K[9]='Table'
  ;   K[10]='GetKeys'
  ;   upvals: _ENV
  ;   locals: self(0-30), map(4-30), albumModel(7-30), badgeId(14-30)
  0000  SELF      R2 = R0[K0('GetAcquiredProperties')] (self)
  0001  GETTABUP  R3 = _ENV[K1('EProfilePropertyType')]
  0002  GETTABLE  R3 = R3[K2('Badge')]
  0003  CALL      R1 = call(R1, 1 args, 2 rets)
  0004  GETTABUP  R2 = _ENV[K3('AlbumActivityModel')]
  0005  GETTABLE  R2 = R2[K4('GetActiveModel')]
  0006  CALL      R2 = call(R2, 1 args, 0 rets)
  0007  TEST      if not R2 then   -> -131063
  0008  JMP       (jump)   -> 13
  0009  SELF      R4 = R2[K5('GetRewardBadgeId')] (self)
  0010  CALL      R3 = call(R3, 1 args, 1 rets)
  0011  TEST      if not R3 then   -> -131058
  0012  JMP       (jump)   -> 14
  0013  LOADNIL   R3..R3 = nil
  0014  EQ        if R1 eq K6(nil)   -> -129258
  0015  JMP       (jump)   -> 24
  0016  SELF      R5 = R0[K7('IsValidRewardType')] (self)
  0017  GETTABUP  R6 = _ENV[K1('EProfilePropertyType')]
  0018  GETTABLE  R6 = R6[K2('Badge')]
  0019  MOVE      R7 = R0
  0020  CALL      R4 = call(R4, 1 args, 3 rets)
  0021  TEST      if not R4 then   -> -131049
  0022  JMP       (jump)   -> 24
  0023  SETTABLE  R1[R3] = K8(true)
  0024  GETTABUP  R4 = _ENV[K9('Table')]
  0025  GETTABLE  R4 = R4[K10('GetKeys')]
  0026  MOVE      R5 = R0
  0027  TAILCALL  tailcall(R4, 0)
  0028  RETURN    return R4..R3
  0029  RETURN    return R0..R-1
; ---------- proto33 [GetFrame] ----------
  ; fn ?  line 363-365 np=1 va=0 ms=2 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='m_frameId'
  ;   locals: self(0-3)
  0000  GETTABLE  R1 = R0[K0('m_frameId')]
  0001  RETURN    return R1..R0
  0002  RETURN    return R0..R-1
; ---------- proto34 [GetFrameCount] ----------
  ; fn ?  line 367-370 np=1 va=0 ms=5 code=12 consts=5 upvals=1 protos=0
  ;   K[0]='GetAcquiredProperties'
  ;   K[1]='EProfilePropertyType'
  ;   K[2]='Frame'
  ;   K[3]='Table'
  ;   K[4]='GetKeys'
  ;   upvals: _ENV
  ;   locals: self(0-12), mapAcquiredFrameIds(5-12)
  0000  SELF      R2 = R0[K0('GetAcquiredProperties')] (self)
  0001  GETTABUP  R3 = _ENV[K1('EProfilePropertyType')]
  0002  GETTABLE  R3 = R3[K2('Frame')]
  0003  LOADBOOL  R4 = true
  0004  CALL      R1 = call(R1, 1 args, 3 rets)
  0005  GETTABUP  R2 = _ENV[K3('Table')]
  0006  GETTABLE  R2 = R2[K4('GetKeys')]
  0007  MOVE      R3 = R0
  0008  CALL      R2 = call(R2, 1 args, 1 rets)
  0009  LEN       R2 = len R0
  0010  RETURN    return R2..R1
  0011  RETURN    return R0..R-1
; ---------- proto35 [ChangeFrame] ----------
  ; fn ?  line 374-389 np=3 va=0 ms=9 code=20 consts=11 upvals=1 protos=0
  ;   K[0]='m_frameId'
  ;   K[1]='_SetFrame'
  ;   K[2]=false
  ;   K[3]='from'
  ;   K[4]='to'
  ;   K[5]='GM'
  ;   K[6]='BIManager'
  ;   K[7]='LogAction'
  ;   K[8]='EBIType'
  ;   K[9]='ChangeFrame'
  ;   K[10]='RefreshDisplay'
  ;   upvals: _ENV
  ;   locals: self(0-20), frameId(0-20), bLogAndUpdate(0-20), oldFrame(1-20), info(10-20)
  0000  GETTABLE  R3 = R0[K0('m_frameId')]
  0001  SELF      R5 = R0[K1('_SetFrame')] (self)
  0002  MOVE      R6 = R0
  0003  CALL      R4 = call(R4, 0 args, 2 rets)
  0004  EQ        if R0 eq K2(false)   -> -129784
  0005  JMP       (jump)   -> 7
  0006  RETURN    return R0..R-1
  0007  NEWTABLE  R4 = {} (0 items)
  0008  SETTABLE  R4[K3('from')] = R3
  0009  SETTABLE  R4[K4('to')] = R1
  0010  GETTABUP  R5 = _ENV[K5('GM')]
  0011  GETTABLE  R5 = R5[K6('BIManager')]
  0012  SELF      R6 = R5[K7('LogAction')] (self)
  0013  GETTABUP  R7 = _ENV[K8('EBIType')]
  0014  GETTABLE  R7 = R7[K9('ChangeFrame')]
  0015  MOVE      R8 = R0
  0016  CALL      R5 = call(R5, 0 args, 3 rets)
  0017  SELF      R6 = R0[K10('RefreshDisplay')] (self)
  0018  CALL      R5 = call(R5, 0 args, 1 rets)
  0019  RETURN    return R0..R-1
; ---------- proto36 [_SetFrame] ----------
  ; fn ?  line 391-394 np=2 va=0 ms=6 code=12 consts=7 upvals=1 protos=0
  ;   K[0]='m_frameId'
  ;   K[1]=''
  ;   K[2]='GM'
  ;   K[3]='UserModel'
  ;   K[4]='Set'
  ;   K[5]='EUserLocalDataKey'
  ;   K[6]='Frame'
  ;   upvals: _ENV
  ;   locals: self(0-12), frameId(0-12)
  0000  TESTSET   if R1 then R2   -> -130557
  0001  JMP       (jump)   -> 3
  0002  LOADK     R2 = K1 ''
  0003  SETTABLE  R0[K0('m_frameId')] = R2
  0004  GETTABUP  R2 = _ENV[K2('GM')]
  0005  GETTABLE  R2 = R2[K3('UserModel')]
  0006  SELF      R3 = R2[K4('Set')] (self)
  0007  GETTABUP  R4 = _ENV[K5('EUserLocalDataKey')]
  0008  GETTABLE  R4 = R4[K6('Frame')]
  0009  GETTABLE  R5 = R0[K0('m_frameId')]
  0010  CALL      R2 = call(R2, 0 args, 3 rets)
  0011  RETURN    return R0..R-1
; ---------- proto37 [GetFrameViewConfig] ----------
  ; fn ?  line 398-400 np=2 va=0 ms=3 code=7 consts=1 upvals=0 protos=0
  ;   K[0]='m_mapFrameViewConfig'
  ;   locals: self(0-7), frameId(0-7)
  0000  GETTABLE  R2 = R0[K0('m_mapFrameViewConfig')]
  0001  TEST      if not R2 then   -> -131069
  0002  JMP       (jump)   -> 5
  0003  GETTABLE  R2 = R0[K0('m_mapFrameViewConfig')]
  0004  GETTABLE  R2 = R2[R1]
  0005  RETURN    return R2..R1
  0006  RETURN    return R0..R-1
; ---------- proto38 [RefreshDisplay] ----------
  ; fn ?  line 404-406 np=1 va=0 ms=3 code=6 consts=4 upvals=1 protos=0
  ;   K[0]='EventDispatcher'
  ;   K[1]='DispatchEvent'
  ;   K[2]='EEventType'
  ;   K[3]='UpdateProfile'
  ;   upvals: _ENV
  ;   locals: self(0-6)
  0000  GETTABUP  R1 = _ENV[K0('EventDispatcher')]
  0001  GETTABLE  R1 = R1[K1('DispatchEvent')]
  0002  GETTABUP  R2 = _ENV[K2('EEventType')]
  0003  GETTABLE  R2 = R2[K3('UpdateProfile')]
  0004  CALL      R1 = call(R1, 0 args, 1 rets)
  0005  RETURN    return R0..R-1
; ---------- proto39 [LoadServerConfig] ----------
  ; fn ?  line 408-410 np=1 va=0 ms=3 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='RefreshRandomConfig'
  ;   locals: self(0-3)
  0000  SELF      R2 = R0[K0('RefreshRandomConfig')] (self)
  0001  CALL      R1 = call(R1, 0 args, 1 rets)
  0002  RETURN    return R0..R-1
; ---------- proto40 [RefreshRandomConfig] ----------
  ; fn ?  line 413-463 np=1 va=0 ms=22 code=110 consts=25 upvals=2 protos=0
  ;   K[0]='pairs'
  ;   K[1]='EProfilePropertyType'
  ;   K[2]='m_mapRobotRandomConfig'
  ;   K[3]='GM'
  ;   K[4]='ConfigModel'
  ;   K[5]='GetServerConfigMD5'
  ;   K[6]='m_mapRobotRandomConfigMd5'
  ;   K[7]='Log'
  ;   K[8]='Info'
  ;   K[9]='刷新假人装饰物配置：'
  ;   K[10]='GetServerConfig'
  ;   K[11]='_id'
  ;   K[12]='player_ability'
  ;   K[13]='weight'
  ;   K[14]=0
  ;   K[15]='table'
  ;   K[16]='insert'
  ;   K[17]='mapAbilityConfig'
  ;   K[18]='arrAbilityOrder'
  ;   K[19]=1
  ;   K[20]='Error'
  ;   K[21]=' 假人装饰物配置表没有配置能力'
  ;   K[22]='LogTag'
  ;   K[23]='ConfigCheck'
  ;   K[24]=' 假人装饰物配置为空！能力：'
  ;   upvals: _ENV, EProfilePropertyServerKey
  ;   locals: self(0-110), (for generator)(3-109), (for state)(3-109), (for control)(3-109), _(4-107), eProfilePropertyType(4-107), serverConfigKey(5-107), md5(16-107), config(36-107), mapAbilityConfig(37-107), arrAbilityOrder(38-107), ability(39-107), idKey(42-107), (for generator)(45-72), (for state)(45-72), (for control)(45-72), _(46-70), info(46-70), (for generator)(91-107), (for state)(91-107), (for control)(91-107), ability(92-105), abilityConfig(92-105)
  0000  GETTABUP  R1 = _ENV[K0('pairs')]
  0001  GETTABUP  R2 = _ENV[K1('EProfilePropertyType')]
  0002  CALL      R1 = call(R1, 3 args, 1 rets)
  0003  JMP       (jump)   -> 107
  0004  GETTABUP  R6 = EProfilePropertyServerKey[R5]
  0005  TEST      if not R6 then   -> -131064
  0006  JMP       (jump)   -> 11
  0007  GETTABLE  R7 = R0[K2('m_mapRobotRandomConfig')]
  0008  NEWTABLE  R8 = {} (0 items)
  0009  SETTABLE  R7[R5] = R8
  0010  JMP       (jump)   -> 107
  0011  GETTABUP  R7 = _ENV[K3('GM')]
  0012  GETTABLE  R7 = R7[K4('ConfigModel')]
  0013  SELF      R8 = R7[K5('GetServerConfigMD5')] (self)
  0014  MOVE      R9 = R0
  0015  CALL      R7 = call(R7, 1 args, 2 rets)
  0016  GETTABLE  R8 = R0[K6('m_mapRobotRandomConfigMd5')]
  0017  GETTABLE  R8 = R8[R5]
  0018  EQ        if R1 eq R8   -> -127460
  0019  JMP       (jump)   -> 107
  0020  GETTABLE  R8 = R0[K6('m_mapRobotRandomConfigMd5')]
  0021  SETTABLE  R8[R5] = R7
  0022  GETTABUP  R8 = _ENV[K7('Log')]
  0023  GETTABLE  R8 = R8[K8('Info')]
  0024  LOADK     R9 = K9 '刷新假人装饰物配置：'
  0025  MOVE      R10 = R0
  0026  CONCAT    R9 = concat(R9..R9)
  0027  CALL      R8 = call(R8, 0 args, 1 rets)
  0028  GETTABUP  R8 = _ENV[K3('GM')]
  0029  GETTABLE  R8 = R8[K4('ConfigModel')]
  0030  SELF      R9 = R8[K10('GetServerConfig')] (self)
  0031  MOVE      R10 = R0
  0032  CALL      R8 = call(R8, 1 args, 2 rets)
  0033  TEST      if not R8 then   -> -131036
  0034  JMP       (jump)   -> 36
  0035  NEWTABLE  R8 = {} (0 items)
  0036  NEWTABLE  R9 = {} (0 items)
  0037  NEWTABLE  R10 = {} (0 items)
  0038  LOADNIL   R11..R11 = nil
  0039  MOVE      R12 = R0
  0040  LOADK     R13 = K11 '_id'
  0041  CONCAT    R12 = concat(R12..R12)
  0042  GETTABUP  R13 = _ENV[K0('pairs')]
  0043  MOVE      R14 = R0
  0044  CALL      R13 = call(R13, 3 args, 1 rets)
  0045  JMP       (jump)   -> 70
  0046  GETTABLE  R11 = R17[K12('player_ability')]
  0047  TEST      if not R11 then   -> -131023
  0048  JMP       (jump)   -> 70
  0049  GETTABLE  R18 = R17[K13('weight')]
  0050  TEST      if not R18 then   -> -131020
  0051  JMP       (jump)   -> 70
  0052  GETTABLE  R18 = R17[K13('weight')]
  0053  LT        if R0 lt R18   -> 7241
  0054  JMP       (jump)   -> 70
  0055  GETTABLE  R18 = R9[R11]
  0056  TEST      if not R18 then   -> -131013
  0057  JMP       (jump)   -> 65
  0058  NEWTABLE  R18 = {} (0 items)
  0059  SETTABLE  R9[R11] = R18
  0060  GETTABUP  R18 = _ENV[K15('table')]
  0061  GETTABLE  R18 = R18[K16('insert')]
  0062  MOVE      R19 = R0
  0063  MOVE      R20 = R0
  0064  CALL      R18 = call(R18, 0 args, 2 rets)
  0065  GETTABUP  R18 = _ENV[K15('table')]
  0066  GETTABLE  R18 = R18[K16('insert')]
  0067  GETTABLE  R19 = R9[R11]
  0068  MOVE      R20 = R0
  0069  CALL      R18 = call(R18, 0 args, 2 rets)
  0070  TFORCALL  tforcall R13
  0071  TFORLOOP  tforloop R15(sBx=-26)   -> 46
  0072  GETTABLE  R13 = R0[K2('m_mapRobotRandomConfig')]
  0073  NEWTABLE  R14 = {} (0 items)
  0074  SETTABLE  R14[K17('mapAbilityConfig')] = R9
  0075  SETTABLE  R14[K18('arrAbilityOrder')] = R10
  0076  SETTABLE  R13[R5] = R14
  0077  GETTABLE  R13 = R10[K19(1)]
  0078  TEST      if not R13 then   -> -130991
  0079  JMP       (jump)   -> 88
  0080  GETTABUP  R13 = _ENV[K7('Log')]
  0081  GETTABLE  R13 = R13[K20('Error')]
  0082  MOVE      R14 = R0
  0083  LOADK     R15 = K21 ' 假人装饰物配置表没有配置能力'
  0084  CONCAT    R14 = concat(R14..R14)
  0085  GETTABUP  R15 = _ENV[K22('LogTag')]
  0086  GETTABLE  R15 = R15[K23('ConfigCheck')]
  0087  CALL      R13 = call(R13, 0 args, 2 rets)
  0088  GETTABUP  R13 = _ENV[K0('pairs')]
  0089  MOVE      R14 = R0
  0090  CALL      R13 = call(R13, 3 args, 1 rets)
  0091  JMP       (jump)   -> 105
  0092  GETTABLE  R18 = R9[R16]
  0093  GETTABLE  R18 = R18[K19(1)]
  0094  TEST      if not R18 then   -> -130975
  0095  JMP       (jump)   -> 105
  0096  GETTABUP  R18 = _ENV[K7('Log')]
  0097  GETTABLE  R18 = R18[K20('Error')]
  0098  MOVE      R19 = R0
  0099  LOADK     R20 = K24 ' 假人装饰物配置为空！能力：'
  0100  MOVE      R21 = R0
  0101  CONCAT    R19 = concat(R19..R19)
  0102  GETTABUP  R20 = _ENV[K22('LogTag')]
  0103  GETTABLE  R20 = R20[K23('ConfigCheck')]
  0104  CALL      R18 = call(R18, 0 args, 2 rets)
  0105  TFORCALL  tforcall R13
  0106  TFORLOOP  tforloop R15(sBx=-15)   -> 92
  0107  TFORCALL  tforcall R1
  0108  TFORLOOP  tforloop R3(sBx=-105)   -> 4
  0109  RETURN    return R0..R-1
; ---------- proto41 [GenerateRandomAdornment] ----------
  ; fn ?  line 469-509 np=3 va=0 ms=19 code=102 consts=29 upvals=2 protos=0
  ;   K[0]=''
  ;   K[1]='非法 eProfilePropertyType'
  ;   K[2]='随机生成假人装饰物：'
  ;   K[3]='tostring'
  ;   K[4]='\n'
  ;   K[5]='指定能力值：'
  ;   K[6]='无'
  ;   K[7]='m_mapRobotRandomConfig'
  ;   K[8]='mapAbilityConfig'
  ;   K[9]='arrAbilityOrder'
  ;   K[10]='MathUtil'
  ;   K[11]='Random'
  ;   K[12]='randomAbility 为空'
  ;   K[13]='实际使用能力值：'
  ;   K[14]='配置表为空'
  ;   K[15]='使用的配置：'
  ;   K[16]='ipairs'
  ;   K[17]='GM'
  ;   K[18]='BIManager'
  ;   K[19]='TableToString'
  ;   K[20]='Table'
  ;   K[21]='ListWeightSelectOne'
  ;   K[22]='weight'
  ;   K[23]='_id'
  ;   K[24]='随机结果：'
  ;   K[25]='GameConfig'
  ;   K[26]='IsTestMode'
  ;   K[27]='Log'
  ;   K[28]='Info'
  ;   upvals: EProfilePropertyServerKey, _ENV
  ;   locals: self(0-102), eProfilePropertyType(0-102), assignedAbility(0-102), serverConfigKey(6-102), logStr(12-102), configByEPropertyType(24-102), curGroupByAbility(28-102), curAbilityList(32-102), randomAbility(39-102), listByAbility(50-102), (for generator)(62-73), (for state)(62-73), (for control)(62-73), _(63-71), config(63-71), target(78-102), type(81-102), result(87-102)
  0000  TEST      if not R1 then   -> -131069
  0001  JMP       (jump)   -> 5
  0002  LOADK     R3 = K0 ''
  0003  LOADK     R4 = K1 '非法 eProfilePropertyType'
  0004  RETURN    return R3..R2
  0005  GETTABUP  R3 = EProfilePropertyServerKey[R1]
  0006  LOADK     R4 = K2 '随机生成假人装饰物：'
  0007  GETTABUP  R5 = _ENV[K3('tostring')]
  0008  MOVE      R6 = R0
  0009  CALL      R5 = call(R5, 1 args, 1 rets)
  0010  LOADK     R6 = K4 '\n'
  0011  CONCAT    R4 = concat(R4..R4)
  0012  MOVE      R5 = R0
  0013  LOADK     R6 = K5 '指定能力值：'
  0014  TESTSET   if R1 then R7   -> -130031
  0015  JMP       (jump)   -> 17
  0016  LOADK     R7 = K6 '无'
  0017  LOADK     R8 = K4 '\n'
  0018  CONCAT    R4 = concat(R4..R5)
  0019  GETTABLE  R5 = R0[K7('m_mapRobotRandomConfig')]
  0020  GETTABLE  R5 = R5[R1]
  0021  TEST      if not R5 then   -> -131048
  0022  JMP       (jump)   -> 24
  0023  NEWTABLE  R5 = {} (0 items)
  0024  GETTABLE  R6 = R5[K8('mapAbilityConfig')]
  0025  TEST      if not R6 then   -> -131044
  0026  JMP       (jump)   -> 28
  0027  NEWTABLE  R6 = {} (0 items)
  0028  GETTABLE  R7 = R5[K9('arrAbilityOrder')]
  0029  TEST      if not R7 then   -> -131040
  0030  JMP       (jump)   -> 32
  0031  NEWTABLE  R7 = {} (0 items)
  0032  TESTSET   if R1 then R8   -> -130013
  0033  JMP       (jump)   -> 39
  0034  GETTABUP  R8 = _ENV[K10('MathUtil')]
  0035  GETTABLE  R8 = R8[K11('Random')]
  0036  LEN       R9 = len R0
  0037  CALL      R8 = call(R8, 1 args, 1 rets)
  0038  GETTABLE  R8 = R7[R8]
  0039  TEST      if not R8 then   -> -131030
  0040  JMP       (jump)   -> 44
  0041  LOADK     R9 = K0 ''
  0042  LOADK     R10 = K12 'randomAbility 为空'
  0043  RETURN    return R9..R8
  0044  MOVE      R9 = R0
  0045  LOADK     R10 = K13 '实际使用能力值：'
  0046  MOVE      R11 = R0
  0047  LOADK     R12 = K4 '\n'
  0048  CONCAT    R4 = concat(R4..R9)
  0049  GETTABLE  R9 = R6[R8]
  0050  TEST      if not R9 then   -> -131019
  0051  JMP       (jump)   -> 55
  0052  LOADK     R10 = K0 ''
  0053  LOADK     R11 = K14 '配置表为空'
  0054  RETURN    return R10..R9
  0055  MOVE      R10 = R0
  0056  LOADK     R11 = K15 '使用的配置：'
  0057  LOADK     R12 = K4 '\n'
  0058  CONCAT    R4 = concat(R4..R10)
  0059  GETTABUP  R10 = _ENV[K16('ipairs')]
  0060  MOVE      R11 = R0
  0061  CALL      R10 = call(R10, 3 args, 1 rets)
  0062  JMP       (jump)   -> 71
  0063  MOVE      R15 = R0
  0064  GETTABUP  R16 = _ENV[K17('GM')]
  0065  GETTABLE  R16 = R16[K18('BIManager')]
  0066  SELF      R17 = R16[K19('TableToString')] (self)
  0067  MOVE      R18 = R0
  0068  CALL      R16 = call(R16, 1 args, 2 rets)
  0069  LOADK     R17 = K4 '\n'
  0070  CONCAT    R4 = concat(R4..R15)
  0071  TFORCALL  tforcall R10
  0072  TFORLOOP  tforloop R12(sBx=-10)   -> 63
  0073  GETTABUP  R10 = _ENV[K20('Table')]
  0074  GETTABLE  R10 = R10[K21('ListWeightSelectOne')]
  0075  MOVE      R11 = R0
  0076  LOADK     R12 = K22 'weight'
  0077  CALL      R10 = call(R10, 1 args, 2 rets)
  0078  MOVE      R11 = R0
  0079  LOADK     R12 = K23 '_id'
  0080  CONCAT    R11 = concat(R11..R11)
  0081  TEST      if not R10 then   -> -130989
  0082  JMP       (jump)   -> 86
  0083  GETTABLE  R12 = R10[R11]
  0084  TEST      if not R12 then   -> -130985
  0085  JMP       (jump)   -> 87
  0086  LOADK     R12 = K0 ''
  0087  MOVE      R13 = R0
  0088  LOADK     R14 = K24 '随机结果：'
  0089  MOVE      R15 = R0
  0090  CONCAT    R4 = concat(R4..R13)
  0091  GETTABUP  R13 = _ENV[K25('GameConfig')]
  0092  GETTABLE  R13 = R13[K26('IsTestMode')]
  0093  CALL      R13 = call(R13, 1 args, 0 rets)
  0094  TEST      if not R13 then   -> -130976
  0095  JMP       (jump)   -> 100
  0096  GETTABUP  R13 = _ENV[K27('Log')]
  0097  GETTABLE  R13 = R13[K28('Info')]
  0098  MOVE      R14 = R0
  0099  CALL      R13 = call(R13, 0 args, 1 rets)
  0100  RETURN    return R12..R11
  0101  RETURN    return R0..R-1
; ---------- proto42 [GenerateAllAdornmentForData] ----------
  ; fn ?  line 513-523 np=2 va=0 ms=12 code=15 consts=4 upvals=2 protos=0
  ;   K[0]='pairs'
  ;   K[1]='EProfilePropertyType'
  ;   K[2]='GenerateRandomAdornment'
  ;   K[3]='ability'
  ;   upvals: _ENV, EProfilePropertyPlayerDataKey
  ;   locals: self(0-15), playerData(0-15), (for generator)(3-14), (for state)(3-14), (for control)(3-14), _(4-12), eProfilePropertyType(4-12), datakey(5-12)
  0000  GETTABUP  R2 = _ENV[K0('pairs')]
  0001  GETTABUP  R3 = _ENV[K1('EProfilePropertyType')]
  0002  CALL      R2 = call(R2, 3 args, 1 rets)
  0003  JMP       (jump)   -> 12
  0004  GETTABUP  R7 = EProfilePropertyPlayerDataKey[R6]
  0005  TEST      if not R7 then   -> -131065
  0006  JMP       (jump)   -> 12
  0007  SELF      R9 = R0[K2('GenerateRandomAdornment')] (self)
  0008  MOVE      R10 = R0
  0009  GETTABLE  R11 = R1[K3('ability')]
  0010  CALL      R8 = call(R8, 1 args, 3 rets)
  0011  SETTABLE  R1[R7] = R8
  0012  TFORCALL  tforcall R2
  0013  TFORLOOP  tforloop R4(sBx=-10)   -> 4
  0014  RETURN    return R0..R-1
