# Model_DB_DBTable_65.luac
; fn @DBTable.lua  line 0-0 np=0 va=1 ms=9 code=158 consts=63 upvals=1 protos=44
;   K[0]='next'
;   K[1]='key'
;   K[2]='EDBValueType'
;   K[3]='Text'
;   K[4]='value'
;   K[5]='DB_VALUE_KEY'
;   K[6]=1
;   K[7]=0
;   K[8]='TRUE_VALUE'
;   K[9]='DBTable'
;   K[10]='setmetatable'
;   K[11]='BaseDBTable'
;   K[12]='__index'
;   K[13]='Init'
;   K[14]='GetRows'
;   K[15]='GetValue'
;   K[16]='GetInNumber'
;   K[17]='GetValues'
;   K[18]='GetCacheValueMap'
;   K[19]='Get'
;   K[20]='HasRow'
;   K[21]='HasColumn'
;   K[22]='Set'
;   K[23]='BatchSet'
;   K[24]='Remove'
;   K[25]='GetAllInTable'
;   K[26]='IsEmpty'
;   K[27]='ClearContent'
;   K[28]='ConfirmDataSynced'
;   K[29]='Clear'
;   K[30]='_UpdateWhenEmpty'
;   K[31]='_ResetPlayerPrefs'
;   K[32]='ToJson'
;   K[33]='FromJson'
;   K[34]='_GetConvertKeyType'
;   K[35]='ToUploadArr'
;   K[36]='FromArr'
;   K[37]='CheckContent'
;   K[38]='_OnContentUpdated'
;   K[39]='_CheckAndSetHasData'
;   K[40]='IsCracked'
;   K[41]='IsModified'
;   K[42]='SetModified'
;   K[43]='SetUploading'
;   K[44]='OnUploadedFinished'
;   K[45]='_IsPrimaryKey'
;   K[46]='_GetRows'
;   K[47]='DBTable'
;   K[48]='_GetMap'
;   K[49]='_AddMap'
;   K[50]='_Insert'
;   K[51]='DBTable'
;   K[52]='_Update'
;   K[53]='DBTable'
;   K[54]='_Delete'
;   K[55]='DBTable'
;   K[56]='_ClearRows'
;   K[57]='_Reset'
;   K[58]='_Foreach'
;   K[59]='DBTable'
;   K[60]='_ForeachEntry'
;   K[61]='DBTable'
;   K[62]='_GetFieldValue'
;   upvals: _ENV
;   locals: next(1-158), DEFAULTCOLUMNS(8-158), DEFAULTPRIMARYKEY(9-158), DEFAULTARRORDER(14-158), MODIFIED_FLAG(15-158), NOT_MODIFIED_FLAG(16-158)
0000  GETTABUP  R0 = _ENV[K0('next')]
0001  NEWTABLE  R1 = {} (0 items)
0002  GETTABUP  R2 = _ENV[K2('EDBValueType')]
0003  GETTABLE  R2 = R2[K3('Text')]
0004  SETTABLE  R1[K1('key')] = R2
0005  GETTABUP  R2 = _ENV[K2('EDBValueType')]
0006  GETTABLE  R2 = R2[K3('Text')]
0007  SETTABLE  R1[K4('value')] = R2
0008  LOADK     R2 = K1 'key'
0009  SETTABUP  _ENV[K5('DB_VALUE_KEY')] = K4('value')
0010  NEWTABLE  R3 = {} (2 items)
0011  LOADK     R4 = K1 'key'
0012  GETTABUP  R5 = _ENV[K5('DB_VALUE_KEY')]
0013  SETLIST   setlist R3[B=1,C=2]
0014  LOADK     R4 = K6 1
0015  LOADK     R5 = K7 0
0016  SETTABUP  _ENV[K8('TRUE_VALUE')] = K6(1)
0017  GETTABUP  R6 = _ENV[K10('setmetatable')]
0018  NEWTABLE  R7 = {} (0 items)
0019  GETTABUP  R8 = _ENV[K11('BaseDBTable')]
0020  CALL      R6 = call(R6, 1 args, 2 rets)
0021  SETTABUP  _ENV[K9('DBTable')] = R6
0022  GETTABUP  R6 = _ENV[K9('DBTable')]
0023  GETTABUP  R7 = _ENV[K9('DBTable')]
0024  SETTABLE  R6[K12('__index')] = R7
0025  GETTABUP  R6 = _ENV[K9('DBTable')]
0026  CLOSURE   R7 = closure proto0
0027  SETTABLE  R6[K13('Init')] = R7
0028  GETTABUP  R6 = _ENV[K9('DBTable')]
0029  CLOSURE   R7 = closure proto1
0030  SETTABLE  R6[K14('GetRows')] = R7
0031  GETTABUP  R6 = _ENV[K9('DBTable')]
0032  CLOSURE   R7 = closure proto2
0033  SETTABLE  R6[K15('GetValue')] = R7
0034  GETTABUP  R6 = _ENV[K9('DBTable')]
0035  CLOSURE   R7 = closure proto3
0036  SETTABLE  R6[K16('GetInNumber')] = R7
0037  GETTABUP  R6 = _ENV[K9('DBTable')]
0038  CLOSURE   R7 = closure proto4
0039  SETTABLE  R6[K17('GetValues')] = R7
0040  GETTABUP  R6 = _ENV[K9('DBTable')]
0041  CLOSURE   R7 = closure proto5
0042  SETTABLE  R6[K18('GetCacheValueMap')] = R7
0043  GETTABUP  R6 = _ENV[K9('DBTable')]
0044  CLOSURE   R7 = closure proto6
0045  SETTABLE  R6[K19('Get')] = R7
0046  GETTABUP  R6 = _ENV[K9('DBTable')]
0047  CLOSURE   R7 = closure proto7
0048  SETTABLE  R6[K20('HasRow')] = R7
0049  GETTABUP  R6 = _ENV[K9('DBTable')]
0050  CLOSURE   R7 = closure proto8
0051  SETTABLE  R6[K21('HasColumn')] = R7
0052  GETTABUP  R6 = _ENV[K9('DBTable')]
0053  CLOSURE   R7 = closure proto9
0054  SETTABLE  R6[K22('Set')] = R7
0055  GETTABUP  R6 = _ENV[K9('DBTable')]
0056  CLOSURE   R7 = closure proto10
0057  SETTABLE  R6[K23('BatchSet')] = R7
0058  GETTABUP  R6 = _ENV[K9('DBTable')]
0059  CLOSURE   R7 = closure proto11
0060  SETTABLE  R6[K24('Remove')] = R7
0061  GETTABUP  R6 = _ENV[K9('DBTable')]
0062  CLOSURE   R7 = closure proto12
0063  SETTABLE  R6[K25('GetAllInTable')] = R7
0064  GETTABUP  R6 = _ENV[K9('DBTable')]
0065  CLOSURE   R7 = closure proto13
0066  SETTABLE  R6[K26('IsEmpty')] = R7
0067  GETTABUP  R6 = _ENV[K9('DBTable')]
0068  CLOSURE   R7 = closure proto14
0069  SETTABLE  R6[K27('ClearContent')] = R7
0070  GETTABUP  R6 = _ENV[K9('DBTable')]
0071  CLOSURE   R7 = closure proto15
0072  SETTABLE  R6[K28('ConfirmDataSynced')] = R7
0073  GETTABUP  R6 = _ENV[K9('DBTable')]
0074  CLOSURE   R7 = closure proto16
0075  SETTABLE  R6[K29('Clear')] = R7
0076  GETTABUP  R6 = _ENV[K9('DBTable')]
0077  CLOSURE   R7 = closure proto17
0078  SETTABLE  R6[K30('_UpdateWhenEmpty')] = R7
0079  GETTABUP  R6 = _ENV[K9('DBTable')]
0080  CLOSURE   R7 = closure proto18
0081  SETTABLE  R6[K31('_ResetPlayerPrefs')] = R7
0082  GETTABUP  R6 = _ENV[K9('DBTable')]
0083  CLOSURE   R7 = closure proto19
0084  SETTABLE  R6[K32('ToJson')] = R7
0085  GETTABUP  R6 = _ENV[K9('DBTable')]
0086  CLOSURE   R7 = closure proto20
0087  SETTABLE  R6[K33('FromJson')] = R7
0088  GETTABUP  R6 = _ENV[K9('DBTable')]
0089  CLOSURE   R7 = closure proto21
0090  SETTABLE  R6[K34('_GetConvertKeyType')] = R7
0091  GETTABUP  R6 = _ENV[K9('DBTable')]
0092  CLOSURE   R7 = closure proto22
0093  SETTABLE  R6[K35('ToUploadArr')] = R7
0094  GETTABUP  R6 = _ENV[K9('DBTable')]
0095  CLOSURE   R7 = closure proto23
0096  SETTABLE  R6[K36('FromArr')] = R7
0097  GETTABUP  R6 = _ENV[K9('DBTable')]
0098  CLOSURE   R7 = closure proto24
0099  SETTABLE  R6[K37('CheckContent')] = R7
0100  GETTABUP  R6 = _ENV[K9('DBTable')]
0101  CLOSURE   R7 = closure proto25
0102  SETTABLE  R6[K38('_OnContentUpdated')] = R7
0103  GETTABUP  R6 = _ENV[K9('DBTable')]
0104  CLOSURE   R7 = closure proto26
0105  SETTABLE  R6[K39('_CheckAndSetHasData')] = R7
0106  GETTABUP  R6 = _ENV[K9('DBTable')]
0107  CLOSURE   R7 = closure proto27
0108  SETTABLE  R6[K40('IsCracked')] = R7
0109  GETTABUP  R6 = _ENV[K9('DBTable')]
0110  CLOSURE   R7 = closure proto28
0111  SETTABLE  R6[K41('IsModified')] = R7
0112  GETTABUP  R6 = _ENV[K9('DBTable')]
0113  CLOSURE   R7 = closure proto29
0114  SETTABLE  R6[K42('SetModified')] = R7
0115  GETTABUP  R6 = _ENV[K9('DBTable')]
0116  CLOSURE   R7 = closure proto30
0117  SETTABLE  R6[K43('SetUploading')] = R7
0118  GETTABUP  R6 = _ENV[K9('DBTable')]
0119  CLOSURE   R7 = closure proto31
0120  SETTABLE  R6[K44('OnUploadedFinished')] = R7
0121  GETTABUP  R6 = _ENV[K9('DBTable')]
0122  CLOSURE   R7 = closure proto32
0123  SETTABLE  R6[K45('_IsPrimaryKey')] = R7
0124  GETTABUP  R6 = _ENV[K9('DBTable')]
0125  CLOSURE   R7 = closure proto33
0126  SETTABLE  R6[K46('_GetRows')] = R7
0127  GETTABUP  R6 = _ENV[K47('DBTable')]
0128  CLOSURE   R7 = closure proto34
0129  SETTABLE  R6[K48('_GetMap')] = R7
0130  GETTABUP  R6 = _ENV[K47('DBTable')]
0131  CLOSURE   R7 = closure proto35
0132  SETTABLE  R6[K49('_AddMap')] = R7
0133  GETTABUP  R6 = _ENV[K47('DBTable')]
0134  CLOSURE   R7 = closure proto36
0135  SETTABLE  R6[K50('_Insert')] = R7
0136  GETTABUP  R6 = _ENV[K51('DBTable')]
0137  CLOSURE   R7 = closure proto37
0138  SETTABLE  R6[K52('_Update')] = R7
0139  GETTABUP  R6 = _ENV[K53('DBTable')]
0140  CLOSURE   R7 = closure proto38
0141  SETTABLE  R6[K54('_Delete')] = R7
0142  GETTABUP  R6 = _ENV[K55('DBTable')]
0143  CLOSURE   R7 = closure proto39
0144  SETTABLE  R6[K56('_ClearRows')] = R7
0145  GETTABUP  R6 = _ENV[K55('DBTable')]
0146  CLOSURE   R7 = closure proto40
0147  SETTABLE  R6[K57('_Reset')] = R7
0148  GETTABUP  R6 = _ENV[K55('DBTable')]
0149  CLOSURE   R7 = closure proto41
0150  SETTABLE  R6[K58('_Foreach')] = R7
0151  GETTABUP  R6 = _ENV[K59('DBTable')]
0152  CLOSURE   R7 = closure proto42
0153  SETTABLE  R6[K60('_ForeachEntry')] = R7
0154  GETTABUP  R6 = _ENV[K61('DBTable')]
0155  CLOSURE   R7 = closure proto43
0156  SETTABLE  R6[K62('_GetFieldValue')] = R7
0157  RETURN    return R0..R-1
; ---------- proto0 [Init] ----------
  ; fn ?  line 18-68 np=2 va=0 ms=11 code=123 consts=51 upvals=5 protos=0
  ;   K[0]='tableName'
  ;   K[1]='name'
  ;   K[2]='m_bIgnoreTypeCheck'
  ;   K[3]='ignoreTypeCheck'
  ;   K[4]='m_bIgnoreValueCommaCheck'
  ;   K[5]='ignoreValueCommaCheck'
  ;   K[6]='tableConfig'
  ;   K[7]='m_strSerializationKey'
  ;   K[8]='EPlayerPrefKey'
  ;   K[9]='TableLastSerializationTimePrefix'
  ;   K[10]='m_strModificationKey'
  ;   K[11]='TableModificationPrefix'
  ;   K[12]='m_strHasDataKey'
  ;   K[13]='TableHasDataPrefix'
  ;   K[14]='lastSerializationTimestamp'
  ;   K[15]='PlayerPrefs'
  ;   K[16]='GetInt'
  ;   K[17]=0
  ;   K[18]='m_modificationFlag'
  ;   K[19]='m_mapCacheValue'
  ;   K[20]='m_mapDeleteRows'
  ;   K[21]='m_mapInsertRows'
  ;   K[22]='m_mapUpdateRows'
  ;   K[23]='m_bClearTable'
  ;   K[24]=false
  ;   K[25]='m_bCachedDataChanged'
  ;   K[26]='m_nSequence'
  ;   K[27]='m_arrVisit'
  ;   K[28]='m_primaryKeyHasInteger'
  ;   K[29]='_arrOrder'
  ;   K[30]='arrOrder'
  ;   K[31]='_columns'
  ;   K[32]='columns'
  ;   K[33]='_primaryKey'
  ;   K[34]='primaryKey'
  ;   K[35]='m_primaryKeyCount'
  ;   K[36]=1
  ;   K[37]='IsString'
  ;   K[38]='string'
  ;   K[39]='find'
  ;   K[40]=','
  ;   K[41]=nil
  ;   K[42]='Log'
  ;   K[43]='Error'
  ;   K[44]=" primary Key has invalid value contains ',' which is not allowed, "
  ;   K[45]='EDBValueType'
  ;   K[46]='Integer'
  ;   K[47]=true
  ;   K[48]='m_arrColsNoPK'
  ;   K[49]='pairs'
  ;   K[50]='_IsPrimaryKey'
  ;   upvals: _ENV, MODIFIED_FLAG, DEFAULTARRORDER, DEFAULTCOLUMNS, DEFAULTPRIMARYKEY
  ;   locals: self(0-123), tableConfig(0-123), (for index)(74-104), (for limit)(74-104), (for step)(74-104), i(75-103), value(77-103), (for generator)(109-122), (for state)(109-122), (for control)(109-122), field(110-120), _(110-120)
  0000  GETTABLE  R2 = R1[K1('name')]
  0001  SETTABLE  R0[K0('tableName')] = R2
  0002  GETTABLE  R2 = R1[K3('ignoreTypeCheck')]
  0003  SETTABLE  R0[K2('m_bIgnoreTypeCheck')] = R2
  0004  GETTABLE  R2 = R1[K5('ignoreValueCommaCheck')]
  0005  SETTABLE  R0[K4('m_bIgnoreValueCommaCheck')] = R2
  0006  SETTABLE  R0[K6('tableConfig')] = R1
  0007  GETTABUP  R2 = _ENV[K8('EPlayerPrefKey')]
  0008  GETTABLE  R2 = R2[K9('TableLastSerializationTimePrefix')]
  0009  GETTABLE  R3 = R0[K0('tableName')]
  0010  CONCAT    R2 = concat(R2..R2)
  0011  SETTABLE  R0[K7('m_strSerializationKey')] = R2
  0012  GETTABUP  R2 = _ENV[K8('EPlayerPrefKey')]
  0013  GETTABLE  R2 = R2[K11('TableModificationPrefix')]
  0014  GETTABLE  R3 = R0[K0('tableName')]
  0015  CONCAT    R2 = concat(R2..R2)
  0016  SETTABLE  R0[K10('m_strModificationKey')] = R2
  0017  GETTABUP  R2 = _ENV[K8('EPlayerPrefKey')]
  0018  GETTABLE  R2 = R2[K13('TableHasDataPrefix')]
  0019  GETTABLE  R3 = R0[K0('tableName')]
  0020  CONCAT    R2 = concat(R2..R2)
  0021  SETTABLE  R0[K12('m_strHasDataKey')] = R2
  0022  GETTABUP  R2 = _ENV[K15('PlayerPrefs')]
  0023  GETTABLE  R2 = R2[K16('GetInt')]
  0024  GETTABLE  R3 = R0[K7('m_strSerializationKey')]
  0025  LOADK     R4 = K17 0
  0026  CALL      R2 = call(R2, 1 args, 2 rets)
  0027  SETTABLE  R0[K14('lastSerializationTimestamp')] = R2
  0028  GETTABUP  R2 = _ENV[K15('PlayerPrefs')]
  0029  GETTABLE  R2 = R2[K16('GetInt')]
  0030  GETTABLE  R3 = R0[K10('m_strModificationKey')]
  0031  GETUPVAL  R4 = _ENV
  0032  CALL      R2 = call(R2, 1 args, 2 rets)
  0033  SETTABLE  R0[K18('m_modificationFlag')] = R2
  0034  NEWTABLE  R2 = {} (0 items)
  0035  SETTABLE  R0[K19('m_mapCacheValue')] = R2
  0036  NEWTABLE  R2 = {} (0 items)
  0037  SETTABLE  R0[K20('m_mapDeleteRows')] = R2
  0038  NEWTABLE  R2 = {} (0 items)
  0039  SETTABLE  R0[K21('m_mapInsertRows')] = R2
  0040  NEWTABLE  R2 = {} (0 items)
  0041  SETTABLE  R0[K22('m_mapUpdateRows')] = R2
  0042  SETTABLE  R0[K23('m_bClearTable')] = K24(false)
  0043  SETTABLE  R0[K25('m_bCachedDataChanged')] = K24(false)
  0044  SETTABLE  R0[K26('m_nSequence')] = K17(0)
  0045  NEWTABLE  R2 = {} (0 items)
  0046  SETTABLE  R0[K27('m_arrVisit')] = R2
  0047  SETTABLE  R0[K28('m_primaryKeyHasInteger')] = K24(false)
  0048  GETTABLE  R2 = R0[K6('tableConfig')]
  0049  GETTABLE  R2 = R2[K30('arrOrder')]
  0050  TEST      if not R2 then   -> -131019
  0051  JMP       (jump)   -> 53
  0052  GETUPVAL  R2 = _ENV
  0053  SETTABLE  R0[K29('_arrOrder')] = R2
  0054  GETTABLE  R2 = R0[K6('tableConfig')]
  0055  GETTABLE  R2 = R2[K32('columns')]
  0056  TEST      if not R2 then   -> -131013
  0057  JMP       (jump)   -> 59
  0058  GETUPVAL  R2 = _ENV
  0059  SETTABLE  R0[K31('_columns')] = R2
  0060  GETTABLE  R2 = R0[K6('tableConfig')]
  0061  GETTABLE  R2 = R2[K34('primaryKey')]
  0062  TEST      if not R2 then   -> -131007
  0063  JMP       (jump)   -> 67
  0064  NEWTABLE  R2 = {} (1 items)
  0065  GETUPVAL  R3 = _ENV
  0066  SETLIST   setlist R2[B=1,C=1]
  0067  SETTABLE  R0[K33('_primaryKey')] = R2
  0068  GETTABLE  R2 = R0[K33('_primaryKey')]
  0069  LEN       R2 = len R0
  0070  SETTABLE  R0[K35('m_primaryKeyCount')] = R2
  0071  LOADK     R2 = K36 1
  0072  GETTABLE  R3 = R0[K35('m_primaryKeyCount')]
  0073  LOADK     R4 = K36 1
  0074  FORPREP   forprep R2(sBx=28)   -> 103
  0075  GETTABLE  R6 = R0[K33('_primaryKey')]
  0076  GETTABLE  R6 = R6[R5]
  0077  GETTABUP  R7 = _ENV[K37('IsString')]
  0078  MOVE      R8 = R0
  0079  CALL      R7 = call(R7, 1 args, 1 rets)
  0080  TEST      if not R7 then   -> -130990
  0081  JMP       (jump)   -> 96
  0082  GETTABUP  R7 = _ENV[K38('string')]
  0083  GETTABLE  R7 = R7[K39('find')]
  0084  MOVE      R8 = R0
  0085  LOADK     R9 = K40 ','
  0086  CALL      R7 = call(R7, 1 args, 2 rets)
  0087  EQ        if R1 eq K41(nil)   -> -127102
  0088  JMP       (jump)   -> 96
  0089  GETTABUP  R7 = _ENV[K42('Log')]
  0090  GETTABLE  R7 = R7[K43('Error')]
  0091  GETTABLE  R8 = R0[K0('tableName')]
  0092  LOADK     R9 = K44 " primary Key has invalid value contains ',' which is not allowed, "
  0093  MOVE      R10 = R0
  0094  CONCAT    R8 = concat(R8..R8)
  0095  CALL      R7 = call(R7, 0 args, 1 rets)
  0096  GETTABLE  R7 = R0[K31('_columns')]
  0097  GETTABLE  R7 = R7[R6]
  0098  GETTABUP  R8 = _ENV[K45('EDBValueType')]
  0099  GETTABLE  R8 = R8[K46('Integer')]
  0100  EQ        if R0 eq R8   -> -127378
  0101  JMP       (jump)   -> 103
  0102  SETTABLE  R0[K28('m_primaryKeyHasInteger')] = K47(true)
  0103  FORLOOP   forloop R2(sBx=-29)   -> 75
  0104  NEWTABLE  R2 = {} (0 items)
  0105  SETTABLE  R0[K48('m_arrColsNoPK')] = R2
  0106  GETTABUP  R2 = _ENV[K49('pairs')]
  0107  GETTABLE  R3 = R0[K31('_columns')]
  0108  CALL      R2 = call(R2, 3 args, 1 rets)
  0109  JMP       (jump)   -> 120
  0110  SELF      R8 = R0[K50('_IsPrimaryKey')] (self)
  0111  MOVE      R9 = R0
  0112  CALL      R7 = call(R7, 1 args, 2 rets)
  0113  TEST      if not R7 then   -> -130956
  0114  JMP       (jump)   -> 120
  0115  GETTABLE  R7 = R0[K48('m_arrColsNoPK')]
  0116  GETTABLE  R8 = R0[K48('m_arrColsNoPK')]
  0117  LEN       R8 = len R0
  0118  ADD       R8 = K36(1) add R8
  0119  SETTABLE  R7[R8] = R5
  0120  TFORCALL  tforcall R2
  0121  TFORLOOP  tforloop R4(sBx=-12)   -> 110
  0122  RETURN    return R0..R-1
; ---------- proto1 [GetRows] ----------
  ; fn ?  line 70-75 np=1 va=1 ms=5 code=16 consts=3 upvals=1 protos=0
  ;   K[0]='assert'
  ;   K[1]='m_primaryKeyCount'
  ;   K[2]='_GetRows'
  ;   upvals: _ENV
  ;   locals: self(0-16), args(3-16)
  0000  NEWTABLE  R1 = {} (0 items)
  0001  VARARG    R2 = vararg(0)
  0002  SETLIST   setlist R1[B=1,C=0]
  0003  GETTABUP  R2 = _ENV[K0('assert')]
  0004  LEN       R3 = len R0
  0005  GETTABLE  R4 = R0[K1('m_primaryKeyCount')]
  0006  LE        if R1 le R4   -> -129524
  0007  JMP       (jump)   -> 9
  0008  LOADBOOL  R3 = false
  0009  LOADBOOL  R3 = true
  0010  CALL      R2 = call(R2, 0 args, 1 rets)
  0011  SELF      R3 = R0[K2('_GetRows')] (self)
  0012  MOVE      R4 = R0
  0013  TAILCALL  tailcall(R2, 0)
  0014  RETURN    return R2..R1
  0015  RETURN    return R0..R-1
; ---------- proto2 [GetValue] ----------
  ; fn ?  line 79-89 np=1 va=1 ms=6 code=27 consts=6 upvals=1 protos=0
  ;   K[0]='assert'
  ;   K[1]='m_primaryKeyCount'
  ;   K[2]=1
  ;   K[3]='_GetRows'
  ;   K[4]=nil
  ;   K[5]='_GetFieldValue'
  ;   upvals: _ENV
  ;   locals: self(0-27), args(3-27), cache(15-27)
  0000  NEWTABLE  R1 = {} (0 items)
  0001  VARARG    R2 = vararg(0)
  0002  SETLIST   setlist R1[B=1,C=0]
  0003  GETTABUP  R2 = _ENV[K0('assert')]
  0004  LEN       R3 = len R0
  0005  GETTABLE  R4 = R0[K1('m_primaryKeyCount')]
  0006  ADD       R4 = K2(1) add R4
  0007  EQ        if R1 eq R4   -> -129523
  0008  JMP       (jump)   -> 10
  0009  LOADBOOL  R3 = false
  0010  LOADBOOL  R3 = true
  0011  CALL      R2 = call(R2, 0 args, 1 rets)
  0012  SELF      R3 = R0[K3('_GetRows')] (self)
  0013  MOVE      R4 = R0
  0014  CALL      R2 = call(R2, 1 args, 2 rets)
  0015  EQ        if R1 eq K4(nil)   -> -129771
  0016  JMP       (jump)   -> 21
  0017  LEN       R3 = len R0
  0018  GETTABLE  R3 = R1[R3]
  0019  GETTABLE  R3 = R2[R3]
  0020  RETURN    return R3..R2
  0021  SELF      R4 = R0[K5('_GetFieldValue')] (self)
  0022  LEN       R5 = len R0
  0023  GETTABLE  R5 = R1[R5]
  0024  TAILCALL  tailcall(R3, 0)
  0025  RETURN    return R3..R2
  0026  RETURN    return R0..R-1
; ---------- proto3 [GetInNumber] ----------
  ; fn ?  line 91-94 np=1 va=1 ms=4 code=11 consts=3 upvals=1 protos=0
  ;   K[0]='GetValue'
  ;   K[1]='tonumber'
  ;   K[2]=0
  ;   upvals: _ENV
  ;   locals: self(0-11), value(3-11)
  0000  SELF      R2 = R0[K0('GetValue')] (self)
  0001  VARARG    R3 = vararg(0)
  0002  CALL      R1 = call(R1, 1 args, -1 rets)
  0003  GETTABUP  R2 = _ENV[K1('tonumber')]
  0004  MOVE      R3 = R0
  0005  CALL      R2 = call(R2, 1 args, 1 rets)
  0006  TEST      if not R2 then   -> -131063
  0007  JMP       (jump)   -> 9
  0008  LOADK     R2 = K2 0
  0009  RETURN    return R2..R1
  0010  RETURN    return R0..R-1
; ---------- proto4 [GetValues] ----------
  ; fn ?  line 96-98 np=1 va=0 ms=3 code=6 consts=3 upvals=1 protos=0
  ;   K[0]='Table'
  ;   K[1]='DeepCopy'
  ;   K[2]='m_mapCacheValue'
  ;   upvals: _ENV
  ;   locals: self(0-6)
  0000  GETTABUP  R1 = _ENV[K0('Table')]
  0001  GETTABLE  R1 = R1[K1('DeepCopy')]
  0002  GETTABLE  R2 = R0[K2('m_mapCacheValue')]
  0003  TAILCALL  tailcall(R1, 0)
  0004  RETURN    return R1..R0
  0005  RETURN    return R0..R-1
; ---------- proto5 [GetCacheValueMap] ----------
  ; fn ?  line 101-103 np=1 va=0 ms=3 code=6 consts=3 upvals=1 protos=0
  ;   K[0]='ReadOnly'
  ;   K[1]='Create'
  ;   K[2]='m_mapCacheValue'
  ;   upvals: _ENV
  ;   locals: self(0-6)
  0000  GETTABUP  R1 = _ENV[K0('ReadOnly')]
  0001  GETTABLE  R1 = R1[K1('Create')]
  0002  GETTABLE  R2 = R0[K2('m_mapCacheValue')]
  0003  TAILCALL  tailcall(R1, 0)
  0004  RETURN    return R1..R0
  0005  RETURN    return R0..R-1
; ---------- proto6 [Get] ----------
  ; fn ?  line 107-122 np=1 va=1 ms=10 code=31 consts=5 upvals=1 protos=0
  ;   K[0]='assert'
  ;   K[1]='m_primaryKeyCount'
  ;   K[2]='_GetRows'
  ;   K[3]=nil
  ;   K[4]=1
  ;   upvals: _ENV
  ;   locals: self(0-31), args(3-31), cache(14-31), data(19-31), (for index)(23-29), (for limit)(23-29), (for step)(23-29), i(24-28)
  0000  NEWTABLE  R1 = {} (0 items)
  0001  VARARG    R2 = vararg(0)
  0002  SETLIST   setlist R1[B=1,C=0]
  0003  GETTABUP  R2 = _ENV[K0('assert')]
  0004  LEN       R3 = len R0
  0005  GETTABLE  R4 = R0[K1('m_primaryKeyCount')]
  0006  LT        if R1 lt R3   -> -129013
  0007  JMP       (jump)   -> 9
  0008  LOADBOOL  R3 = false
  0009  LOADBOOL  R3 = true
  0010  CALL      R2 = call(R2, 0 args, 1 rets)
  0011  SELF      R3 = R0[K2('_GetRows')] (self)
  0012  MOVE      R4 = R0
  0013  CALL      R2 = call(R2, 1 args, 2 rets)
  0014  EQ        if R0 eq K3(nil)   -> -129773
  0015  JMP       (jump)   -> 18
  0016  LOADNIL   R3..R3 = nil
  0017  RETURN    return R3..R2
  0018  NEWTABLE  R3 = {} (0 items)
  0019  GETTABLE  R4 = R0[K1('m_primaryKeyCount')]
  0020  ADD       R4 = K4(1) add R4
  0021  LEN       R5 = len R0
  0022  LOADK     R6 = K4 1
  0023  FORPREP   forprep R4(sBx=4)   -> 28
  0024  GETTABLE  R8 = R1[R7]
  0025  GETTABLE  R9 = R1[R7]
  0026  GETTABLE  R9 = R2[R9]
  0027  SETTABLE  R3[R8] = R9
  0028  FORLOOP   forloop R4(sBx=-5)   -> 24
  0029  RETURN    return R3..R2
  0030  RETURN    return R0..R-1
; ---------- proto7 [HasRow] ----------
  ; fn ?  line 124-126 np=1 va=1 ms=4 code=9 consts=2 upvals=0 protos=0
  ;   K[0]='GetRows'
  ;   K[1]=nil
  ;   locals: self(0-9)
  0000  SELF      R2 = R0[K0('GetRows')] (self)
  0001  VARARG    R3 = vararg(0)
  0002  CALL      R1 = call(R1, 1 args, -1 rets)
  0003  EQ        if R0 eq K1(nil)   -> -130298
  0004  JMP       (jump)   -> 6
  0005  LOADBOOL  R1 = false
  0006  LOADBOOL  R1 = true
  0007  RETURN    return R1..R0
  0008  RETURN    return R0..R-1
; ---------- proto8 [HasColumn] ----------
  ; fn ?  line 128-138 np=1 va=1 ms=5 code=28 consts=5 upvals=1 protos=0
  ;   K[0]='assert'
  ;   K[1]='m_primaryKeyCount'
  ;   K[2]=1
  ;   K[3]='_GetRows'
  ;   K[4]=nil
  ;   upvals: _ENV
  ;   locals: self(0-28), args(3-28), cache(15-28)
  0000  NEWTABLE  R1 = {} (0 items)
  0001  VARARG    R2 = vararg(0)
  0002  SETLIST   setlist R1[B=1,C=0]
  0003  GETTABUP  R2 = _ENV[K0('assert')]
  0004  LEN       R3 = len R0
  0005  GETTABLE  R4 = R0[K1('m_primaryKeyCount')]
  0006  ADD       R4 = K2(1) add R4
  0007  EQ        if R1 eq R4   -> -129523
  0008  JMP       (jump)   -> 10
  0009  LOADBOOL  R3 = false
  0010  LOADBOOL  R3 = true
  0011  CALL      R2 = call(R2, 0 args, 1 rets)
  0012  SELF      R3 = R0[K3('_GetRows')] (self)
  0013  MOVE      R4 = R0
  0014  CALL      R2 = call(R2, 1 args, 2 rets)
  0015  EQ        if R0 eq K4(nil)   -> -129771
  0016  JMP       (jump)   -> 19
  0017  LOADBOOL  R3 = false
  0018  RETURN    return R3..R2
  0019  LEN       R3 = len R0
  0020  GETTABLE  R3 = R1[R3]
  0021  GETTABLE  R3 = R2[R3]
  0022  EQ        if R0 eq K4(nil)   -> -129252
  0023  JMP       (jump)   -> 25
  0024  LOADBOOL  R3 = false
  0025  LOADBOOL  R3 = true
  0026  RETURN    return R3..R2
  0027  RETURN    return R0..R-1
; ---------- proto9 [Set] ----------
  ; fn ?  line 140-159 np=1 va=1 ms=11 code=54 consts=16 upvals=1 protos=0
  ;   K[0]='assert'
  ;   K[1]='m_primaryKeyCount'
  ;   K[2]='m_bIgnoreValueCommaCheck'
  ;   K[3]=1
  ;   K[4]='IsString'
  ;   K[5]='string'
  ;   K[6]='find'
  ;   K[7]=','
  ;   K[8]=nil
  ;   K[9]='Log'
  ;   K[10]='Error'
  ;   K[11]='tableName'
  ;   K[12]=" set invalid value contains ',' which is not allowed, "
  ;   K[13]='_GetRows'
  ;   K[14]='_Insert'
  ;   K[15]='_Update'
  ;   upvals: _ENV
  ;   locals: self(0-54), args(3-54), (for index)(18-40), (for limit)(18-40), (for step)(18-40), i(19-39), value(20-39), cache(43-54)
  0000  NEWTABLE  R1 = {} (0 items)
  0001  VARARG    R2 = vararg(0)
  0002  SETLIST   setlist R1[B=1,C=0]
  0003  GETTABUP  R2 = _ENV[K0('assert')]
  0004  LEN       R3 = len R0
  0005  GETTABLE  R4 = R0[K1('m_primaryKeyCount')]
  0006  LT        if R1 lt R3   -> -129013
  0007  JMP       (jump)   -> 9
  0008  LOADBOOL  R3 = false
  0009  LOADBOOL  R3 = true
  0010  CALL      R2 = call(R2, 0 args, 1 rets)
  0011  GETTABLE  R2 = R0[K2('m_bIgnoreValueCommaCheck')]
  0012  TEST      if not R2 then   -> -131057
  0013  JMP       (jump)   -> 40
  0014  GETTABLE  R2 = R0[K1('m_primaryKeyCount')]
  0015  ADD       R2 = K3(1) add R2
  0016  LEN       R3 = len R0
  0017  LOADK     R4 = K3 1
  0018  FORPREP   forprep R2(sBx=20)   -> 39
  0019  GETTABLE  R6 = R1[R5]
  0020  GETTABUP  R7 = _ENV[K4('IsString')]
  0021  MOVE      R8 = R0
  0022  CALL      R7 = call(R7, 1 args, 1 rets)
  0023  TEST      if not R7 then   -> -131047
  0024  JMP       (jump)   -> 39
  0025  GETTABUP  R7 = _ENV[K5('string')]
  0026  GETTABLE  R7 = R7[K6('find')]
  0027  MOVE      R8 = R0
  0028  LOADK     R9 = K7 ','
  0029  CALL      R7 = call(R7, 1 args, 2 rets)
  0030  EQ        if R1 eq K8(nil)   -> -127192
  0031  JMP       (jump)   -> 39
  0032  GETTABUP  R7 = _ENV[K9('Log')]
  0033  GETTABLE  R7 = R7[K10('Error')]
  0034  GETTABLE  R8 = R0[K11('tableName')]
  0035  LOADK     R9 = K12 " set invalid value contains ',' which is not allowed, "
  0036  MOVE      R10 = R0
  0037  CONCAT    R8 = concat(R8..R8)
  0038  CALL      R7 = call(R7, 0 args, 1 rets)
  0039  FORLOOP   forloop R2(sBx=-21)   -> 19
  0040  SELF      R3 = R0[K13('_GetRows')] (self)
  0041  MOVE      R4 = R0
  0042  CALL      R2 = call(R2, 1 args, 2 rets)
  0043  EQ        if R0 eq K8(nil)   -> -129739
  0044  JMP       (jump)   -> 49
  0045  SELF      R4 = R0[K14('_Insert')] (self)
  0046  MOVE      R5 = R0
  0047  CALL      R3 = call(R3, 0 args, 2 rets)
  0048  JMP       (jump)   -> 53
  0049  SELF      R4 = R0[K15('_Update')] (self)
  0050  MOVE      R5 = R0
  0051  MOVE      R6 = R0
  0052  CALL      R3 = call(R3, 0 args, 3 rets)
  0053  RETURN    return R0..R-1
; ---------- proto10 [BatchSet] ----------
  ; fn ?  line 161-180 np=2 va=0 ms=6 code=5 consts=1 upvals=1 protos=1
  ;   K[0]='_Foreach'
  ;   upvals: _ENV
  ;   locals: self(0-5), mapContent(0-5)
  0000  SELF      R3 = R0[K0('_Foreach')] (self)
  0001  MOVE      R4 = R0
  0002  CLOSURE   R5 = closure proto0
  0003  CALL      R2 = call(R2, 0 args, 3 rets)
  0004  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 162-179 np=2 va=0 ms=8 code=30 consts=7 upvals=2 protos=0
    ;   K[0]='m_primaryKeyCount'
    ;   K[1]='pairs'
    ;   K[2]=1
    ;   K[3]='m_arrVisit'
    ;   K[4]='Set'
    ;   K[5]='table'
    ;   K[6]='unpack'
    ;   upvals: self, _ENV
    ;   locals: depth(0-30), data(0-30), (for generator)(8-17), (for state)(8-17), (for control)(8-17), field(9-15), value(9-15)
    0000  GETTABUP  R2 = self[K0('m_primaryKeyCount')]
    0001  LT        if R0 lt R2   -> -131067
    0002  JMP       (jump)   -> 5
    0003  LOADBOOL  R2 = false
    0004  RETURN    return R2..R1
    0005  GETTABUP  R2 = _ENV[K1('pairs')]
    0006  MOVE      R3 = R0
    0007  CALL      R2 = call(R2, 3 args, 1 rets)
    0008  JMP       (jump)   -> 15
    0009  ADD       R0 = K2(1) add R0
    0010  GETTABUP  R7 = self[K3('m_arrVisit')]
    0011  SETTABLE  R7[R0] = R5
    0012  ADD       R0 = K2(1) add R0
    0013  GETTABUP  R7 = self[K3('m_arrVisit')]
    0014  SETTABLE  R7[R0] = R6
    0015  TFORCALL  tforcall R2
    0016  TFORLOOP  tforloop R4(sBx=-8)   -> 9
    0017  GETTABUP  R2 = self[K0('m_primaryKeyCount')]
    0018  LT        if R0 lt R0   -> -130028
    0019  JMP       (jump)   -> 27
    0020  GETUPVAL  R2 = self
    0021  SELF      R3 = R2[K4('Set')] (self)
    0022  GETTABUP  R4 = _ENV[K5('table')]
    0023  GETTABLE  R4 = R4[K6('unpack')]
    0024  GETTABUP  R5 = self[K3('m_arrVisit')]
    0025  CALL      R4 = call(R4, -1 args, 1 rets)
    0026  CALL      R2 = call(R2, 0 args, -1 rets)
    0027  LOADBOOL  R2 = true
    0028  RETURN    return R2..R1
    0029  RETURN    return R0..R-1
; ---------- proto11 [Remove] ----------
  ; fn ?  line 182-210 np=1 va=1 ms=9 code=46 consts=12 upvals=0 protos=0
  ;   K[0]='m_primaryKeyCount'
  ;   K[1]='_Delete'
  ;   K[2]='IsEmpty'
  ;   K[3]='_UpdateWhenEmpty'
  ;   K[4]='m_bCachedDataChanged'
  ;   K[5]=true
  ;   K[6]='_GetRows'
  ;   K[7]=nil
  ;   K[8]=2
  ;   K[9]=-1
  ;   K[10]=1
  ;   K[11]='_Update'
  ;   locals: self(0-46), args(3-46), cache(21-46), (for index)(28-41), (for limit)(28-41), (for step)(28-41), i(29-40)
  0000  NEWTABLE  R1 = {} (0 items)
  0001  VARARG    R2 = vararg(0)
  0002  SETLIST   setlist R1[B=1,C=0]
  0003  LEN       R2 = len R0
  0004  GETTABLE  R3 = R0[K0('m_primaryKeyCount')]
  0005  LE        if R0 le R3   -> -130038
  0006  JMP       (jump)   -> 18
  0007  SELF      R3 = R0[K1('_Delete')] (self)
  0008  MOVE      R4 = R0
  0009  CALL      R2 = call(R2, 0 args, 2 rets)
  0010  SELF      R3 = R0[K2('IsEmpty')] (self)
  0011  CALL      R2 = call(R2, 1 args, 1 rets)
  0012  TEST      if not R2 then   -> -131058
  0013  JMP       (jump)   -> 17
  0014  SELF      R3 = R0[K3('_UpdateWhenEmpty')] (self)
  0015  CALL      R2 = call(R2, 0 args, 1 rets)
  0016  SETTABLE  R0[K4('m_bCachedDataChanged')] = K5(true)
  0017  RETURN    return R0..R-1
  0018  SELF      R3 = R0[K6('_GetRows')] (self)
  0019  MOVE      R4 = R0
  0020  CALL      R2 = call(R2, 1 args, 2 rets)
  0021  EQ        if R0 eq K7(nil)   -> -129762
  0022  JMP       (jump)   -> 24
  0023  RETURN    return R0..R-1
  0024  LEN       R3 = len R0
  0025  GETTABLE  R4 = R0[K0('m_primaryKeyCount')]
  0026  ADD       R4 = K8(2) add R4
  0027  LOADK     R5 = K9 -1
  0028  FORPREP   forprep R3(sBx=11)   -> 40
  0029  MUL       R7 = R6 mul K8(2)
  0030  GETTABLE  R8 = R0[K0('m_primaryKeyCount')]
  0031  SUB       R7 = R8 sub R7
  0032  SUB       R7 = K10(1) sub R7
  0033  GETTABLE  R8 = R1[R6]
  0034  SETTABLE  R1[R7] = R8
  0035  MUL       R7 = R6 mul K8(2)
  0036  GETTABLE  R8 = R0[K0('m_primaryKeyCount')]
  0037  SUB       R7 = R8 sub R7
  0038  SUB       R7 = K8(2) sub R7
  0039  SETTABLE  R1[R7] = K7(nil)
  0040  FORLOOP   forloop R3(sBx=-12)   -> 29
  0041  SELF      R4 = R0[K11('_Update')] (self)
  0042  MOVE      R5 = R0
  0043  MOVE      R6 = R0
  0044  CALL      R3 = call(R3, 0 args, 3 rets)
  0045  RETURN    return R0..R-1
; ---------- proto12 [GetAllInTable] ----------
  ; fn ?  line 212-214 np=1 va=0 ms=3 code=4 consts=1 upvals=0 protos=0
  ;   K[0]='GetValues'
  ;   locals: self(0-4)
  0000  SELF      R2 = R0[K0('GetValues')] (self)
  0001  TAILCALL  tailcall(R1, 0)
  0002  RETURN    return R1..R0
  0003  RETURN    return R0..R-1
; ---------- proto13 [IsEmpty] ----------
  ; fn ?  line 216-218 np=1 va=0 ms=3 code=9 consts=2 upvals=1 protos=0
  ;   K[0]='m_mapCacheValue'
  ;   K[1]=nil
  ;   upvals: next
  ;   locals: self(0-9)
  0000  GETUPVAL  R1 = next
  0001  GETTABLE  R2 = R0[K0('m_mapCacheValue')]
  0002  CALL      R1 = call(R1, 1 args, 1 rets)
  0003  EQ        if R1 eq K1(nil)   -> -130298
  0004  JMP       (jump)   -> 6
  0005  LOADBOOL  R1 = false
  0006  LOADBOOL  R1 = true
  0007  RETURN    return R1..R0
  0008  RETURN    return R0..R-1
; ---------- proto14 [ClearContent] ----------
  ; fn ?  line 220-224 np=1 va=0 ms=3 code=8 consts=2 upvals=1 protos=0
  ;   K[0]='m_mapCacheValue'
  ;   K[1]=nil
  ;   upvals: next
  ;   locals: self(0-8)
  0000  GETUPVAL  R1 = next
  0001  GETTABLE  R2 = R0[K0('m_mapCacheValue')]
  0002  CALL      R1 = call(R1, 1 args, 1 rets)
  0003  EQ        if R1 eq K1(nil)   -> -130298
  0004  JMP       (jump)   -> 7
  0005  NEWTABLE  R1 = {} (0 items)
  0006  SETTABLE  R0[K0('m_mapCacheValue')] = R1
  0007  RETURN    return R0..R-1
; ---------- proto15 [ConfirmDataSynced] ----------
  ; fn ?  line 226-240 np=1 va=0 ms=3 code=23 consts=6 upvals=1 protos=0
  ;   K[0]='m_mapDeleteRows'
  ;   K[1]=nil
  ;   K[2]='m_mapInsertRows'
  ;   K[3]='m_mapUpdateRows'
  ;   K[4]='m_bClearTable'
  ;   K[5]=false
  ;   upvals: next
  ;   locals: self(0-23)
  0000  GETUPVAL  R1 = next
  0001  GETTABLE  R2 = R0[K0('m_mapDeleteRows')]
  0002  CALL      R1 = call(R1, 1 args, 1 rets)
  0003  EQ        if R1 eq K1(nil)   -> -130298
  0004  JMP       (jump)   -> 7
  0005  NEWTABLE  R1 = {} (0 items)
  0006  SETTABLE  R0[K0('m_mapDeleteRows')] = R1
  0007  GETUPVAL  R1 = next
  0008  GETTABLE  R2 = R0[K2('m_mapInsertRows')]
  0009  CALL      R1 = call(R1, 1 args, 1 rets)
  0010  EQ        if R1 eq K1(nil)   -> -130291
  0011  JMP       (jump)   -> 14
  0012  NEWTABLE  R1 = {} (0 items)
  0013  SETTABLE  R0[K2('m_mapInsertRows')] = R1
  0014  GETUPVAL  R1 = next
  0015  GETTABLE  R2 = R0[K3('m_mapUpdateRows')]
  0016  CALL      R1 = call(R1, 1 args, 1 rets)
  0017  EQ        if R1 eq K1(nil)   -> -130284
  0018  JMP       (jump)   -> 21
  0019  NEWTABLE  R1 = {} (0 items)
  0020  SETTABLE  R0[K3('m_mapUpdateRows')] = R1
  0021  SETTABLE  R0[K4('m_bClearTable')] = K5(false)
  0022  RETURN    return R0..R-1
; ---------- proto16 [Clear] ----------
  ; fn ?  line 242-270 np=1 va=0 ms=4 code=40 consts=9 upvals=1 protos=0
  ;   K[0]='m_mapCacheValue'
  ;   K[1]=nil
  ;   K[2]='m_mapDeleteRows'
  ;   K[3]='m_mapInsertRows'
  ;   K[4]='m_mapUpdateRows'
  ;   K[5]='m_bClearTable'
  ;   K[6]=true
  ;   K[7]='_UpdateWhenEmpty'
  ;   K[8]='m_bCachedDataChanged'
  ;   upvals: next
  ;   locals: self(0-40), bClear(1-40)
  0000  LOADBOOL  R1 = false
  0001  GETUPVAL  R2 = next
  0002  GETTABLE  R3 = R0[K0('m_mapCacheValue')]
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  EQ        if R1 eq K1(nil)   -> -129785
  0005  JMP       (jump)   -> 9
  0006  NEWTABLE  R2 = {} (0 items)
  0007  SETTABLE  R0[K0('m_mapCacheValue')] = R2
  0008  LOADBOOL  R1 = true
  0009  GETUPVAL  R2 = next
  0010  GETTABLE  R3 = R0[K2('m_mapDeleteRows')]
  0011  CALL      R2 = call(R2, 1 args, 1 rets)
  0012  EQ        if R1 eq K1(nil)   -> -129777
  0013  JMP       (jump)   -> 17
  0014  NEWTABLE  R2 = {} (0 items)
  0015  SETTABLE  R0[K2('m_mapDeleteRows')] = R2
  0016  LOADBOOL  R1 = true
  0017  GETUPVAL  R2 = next
  0018  GETTABLE  R3 = R0[K3('m_mapInsertRows')]
  0019  CALL      R2 = call(R2, 1 args, 1 rets)
  0020  EQ        if R1 eq K1(nil)   -> -129769
  0021  JMP       (jump)   -> 25
  0022  NEWTABLE  R2 = {} (0 items)
  0023  SETTABLE  R0[K3('m_mapInsertRows')] = R2
  0024  LOADBOOL  R1 = true
  0025  GETUPVAL  R2 = next
  0026  GETTABLE  R3 = R0[K4('m_mapUpdateRows')]
  0027  CALL      R2 = call(R2, 1 args, 1 rets)
  0028  EQ        if R1 eq K1(nil)   -> -129761
  0029  JMP       (jump)   -> 33
  0030  NEWTABLE  R2 = {} (0 items)
  0031  SETTABLE  R0[K4('m_mapUpdateRows')] = R2
  0032  LOADBOOL  R1 = true
  0033  TEST      if not R1 then   -> -131037
  0034  JMP       (jump)   -> 39
  0035  SETTABLE  R0[K5('m_bClearTable')] = K6(true)
  0036  SELF      R3 = R0[K7('_UpdateWhenEmpty')] (self)
  0037  CALL      R2 = call(R2, 0 args, 1 rets)
  0038  SETTABLE  R0[K8('m_bCachedDataChanged')] = K6(true)
  0039  RETURN    return R0..R-1
; ---------- proto17 [_UpdateWhenEmpty] ----------
  ; fn ?  line 272-276 np=1 va=0 ms=4 code=6 consts=3 upvals=0 protos=0
  ;   K[0]='_OnContentUpdated'
  ;   K[1]='{}'
  ;   K[2]='_ResetPlayerPrefs'
  ;   locals: self(0-6)
  0000  SELF      R2 = R0[K0('_OnContentUpdated')] (self)
  0001  LOADK     R3 = K1 '{}'
  0002  CALL      R1 = call(R1, 0 args, 2 rets)
  0003  SELF      R2 = R0[K2('_ResetPlayerPrefs')] (self)
  0004  CALL      R1 = call(R1, 0 args, 1 rets)
  0005  RETURN    return R0..R-1
; ---------- proto18 [_ResetPlayerPrefs] ----------
  ; fn ?  line 279-283 np=1 va=0 ms=4 code=12 consts=6 upvals=1 protos=0
  ;   K[0]='lastSerializationTimestamp'
  ;   K[1]=0
  ;   K[2]='PlayerPrefs'
  ;   K[3]='SetInt'
  ;   K[4]='m_strSerializationKey'
  ;   K[5]='m_strHasDataKey'
  ;   upvals: _ENV
  ;   locals: self(0-12)
  0000  SETTABLE  R0[K0('lastSerializationTimestamp')] = K1(0)
  0001  GETTABUP  R1 = _ENV[K2('PlayerPrefs')]
  0002  GETTABLE  R1 = R1[K3('SetInt')]
  0003  GETTABLE  R2 = R0[K4('m_strSerializationKey')]
  0004  GETTABLE  R3 = R0[K0('lastSerializationTimestamp')]
  0005  CALL      R1 = call(R1, 0 args, 2 rets)
  0006  GETTABUP  R1 = _ENV[K2('PlayerPrefs')]
  0007  GETTABLE  R1 = R1[K3('SetInt')]
  0008  GETTABLE  R2 = R0[K5('m_strHasDataKey')]
  0009  LOADK     R3 = K1 0
  0010  CALL      R1 = call(R1, 0 args, 2 rets)
  0011  RETURN    return R0..R-1
; ---------- proto19 [ToJson] ----------
  ; fn ?  line 285-297 np=2 va=0 ms=8 code=35 consts=16 upvals=1 protos=0
  ;   K[0]='m_strJson'
  ;   K[1]='_GetConvertKeyType'
  ;   K[2]='m_mapCacheValue'
  ;   K[3]=1
  ;   K[4]='json'
  ;   K[5]='encode'
  ;   K[6]='IsEmpty'
  ;   K[7]='lastSerializationTimestamp'
  ;   K[8]=0
  ;   K[9]='tableName'
  ;   K[10]=' is Empty'
  ;   K[11]='GM'
  ;   K[12]='BIManager'
  ;   K[13]='LogErrorInfo'
  ;   K[14]='EBIType'
  ;   K[15]='DataCracked'
  ;   upvals: _ENV
  ;   locals: self(0-35), isAlwaysSerialize(0-35), newMapCacheValue(8-32), strLog(25-32)
  0000  GETTABLE  R2 = R0[K0('m_strJson')]
  0001  TEST      if not R2 then   -> -131068
  0002  JMP       (jump)   -> 32
  0003  SELF      R3 = R0[K1('_GetConvertKeyType')] (self)
  0004  GETTABLE  R4 = R0[K2('m_mapCacheValue')]
  0005  LOADK     R5 = K3 1
  0006  LOADBOOL  R6 = true
  0007  CALL      R2 = call(R2, 1 args, 4 rets)
  0008  GETTABUP  R3 = _ENV[K4('json')]
  0009  GETTABLE  R3 = R3[K5('encode')]
  0010  MOVE      R4 = R0
  0011  CALL      R3 = call(R3, 1 args, 1 rets)
  0012  SETTABLE  R0[K0('m_strJson')] = R3
  0013  SELF      R4 = R0[K6('IsEmpty')] (self)
  0014  CALL      R3 = call(R3, 1 args, 1 rets)
  0015  TEST      if not R3 then   -> -131055
  0016  JMP       (jump)   -> 32
  0017  GETTABLE  R3 = R0[K7('lastSerializationTimestamp')]
  0018  LT        if R0 lt R3   -> 4119
  0019  JMP       (jump)   -> 32
  0020  TEST      if not R1 then   -> -131049
  0021  JMP       (jump)   -> 32
  0022  GETTABLE  R3 = R0[K9('tableName')]
  0023  LOADK     R4 = K10 ' is Empty'
  0024  CONCAT    R3 = concat(R3..R3)
  0025  GETTABUP  R4 = _ENV[K11('GM')]
  0026  GETTABLE  R4 = R4[K12('BIManager')]
  0027  SELF      R5 = R4[K13('LogErrorInfo')] (self)
  0028  GETTABUP  R6 = _ENV[K14('EBIType')]
  0029  GETTABLE  R6 = R6[K15('DataCracked')]
  0030  MOVE      R7 = R0
  0031  CALL      R4 = call(R4, 0 args, 3 rets)
  0032  GETTABLE  R2 = R0[K0('m_strJson')]
  0033  RETURN    return R2..R1
  0034  RETURN    return R0..R-1
; ---------- proto20 [FromJson] ----------
  ; fn ?  line 299-315 np=2 va=0 ms=8 code=46 consts=18 upvals=1 protos=0
  ;   K[0]='Clear'
  ;   K[1]=''
  ;   K[2]='json'
  ;   K[3]='decode'
  ;   K[4]=nil
  ;   K[5]='tableName'
  ;   K[6]=' Server Data Cracked : '
  ;   K[7]='GM'
  ;   K[8]='BIManager'
  ;   K[9]='LogErrorInfo'
  ;   K[10]='EBIType'
  ;   K[11]='DataCracked'
  ;   K[12]='_GetConvertKeyType'
  ;   K[13]=1
  ;   K[14]='BatchSet'
  ;   K[15]='Table'
  ;   K[16]='IsEmpty'
  ;   K[17]='_ResetPlayerPrefs'
  ;   upvals: _ENV
  ;   locals: self(0-46), strJson(0-46), tbContent(9-46), strLog(17-24)
  0000  SELF      R3 = R0[K0('Clear')] (self)
  0001  CALL      R2 = call(R2, 0 args, 1 rets)
  0002  TEST      if not R1 then   -> -131067
  0003  JMP       (jump)   -> 5
  0004  LOADK     R1 = K1 ''
  0005  GETTABUP  R2 = _ENV[K2('json')]
  0006  GETTABLE  R2 = R2[K3('decode')]
  0007  MOVE      R3 = R0
  0008  CALL      R2 = call(R2, 1 args, 1 rets)
  0009  EQ        if R1 eq K1('')   -> -130292
  0010  JMP       (jump)   -> 24
  0011  EQ        if R0 eq K4(nil)   -> -129775
  0012  JMP       (jump)   -> 24
  0013  GETTABLE  R3 = R0[K5('tableName')]
  0014  LOADK     R4 = K6 ' Server Data Cracked : '
  0015  MOVE      R5 = R0
  0016  CONCAT    R3 = concat(R3..R3)
  0017  GETTABUP  R4 = _ENV[K7('GM')]
  0018  GETTABLE  R4 = R4[K8('BIManager')]
  0019  SELF      R5 = R4[K9('LogErrorInfo')] (self)
  0020  GETTABUP  R6 = _ENV[K10('EBIType')]
  0021  GETTABLE  R6 = R6[K11('DataCracked')]
  0022  MOVE      R7 = R0
  0023  CALL      R4 = call(R4, 0 args, 3 rets)
  0024  TEST      if not R2 then   -> -131045
  0025  JMP       (jump)   -> 28
  0026  NEWTABLE  R3 = {} (0 items)
  0027  MOVE      R2 = R0
  0028  SELF      R4 = R0[K12('_GetConvertKeyType')] (self)
  0029  MOVE      R5 = R0
  0030  LOADK     R6 = K13 1
  0031  LOADBOOL  R7 = false
  0032  CALL      R3 = call(R3, 1 args, 4 rets)
  0033  MOVE      R2 = R0
  0034  SELF      R4 = R0[K14('BatchSet')] (self)
  0035  MOVE      R5 = R0
  0036  CALL      R3 = call(R3, 0 args, 2 rets)
  0037  GETTABUP  R3 = _ENV[K15('Table')]
  0038  GETTABLE  R3 = R3[K16('IsEmpty')]
  0039  MOVE      R4 = R0
  0040  CALL      R3 = call(R3, 1 args, 1 rets)
  0041  TEST      if not R3 then   -> -131029
  0042  JMP       (jump)   -> 45
  0043  SELF      R4 = R0[K17('_ResetPlayerPrefs')] (self)
  0044  CALL      R3 = call(R3, 0 args, 1 rets)
  0045  RETURN    return R0..R-1
; ---------- proto21 [_GetConvertKeyType] ----------
  ; fn ?  line 321-335 np=4 va=0 ms=16 code=45 consts=11 upvals=1 protos=0
  ;   K[0]=1
  ;   K[1]='m_primaryKeyHasInteger'
  ;   K[2]='m_primaryKeyCount'
  ;   K[3]='pairs'
  ;   K[4]='_columns'
  ;   K[5]='_primaryKey'
  ;   K[6]='EDBValueType'
  ;   K[7]='Integer'
  ;   K[8]='tostring'
  ;   K[9]='tonumber'
  ;   K[10]='_GetConvertKeyType'
  ;   upvals: _ENV
  ;   locals: self(0-45), tempMapContent(0-45), depth(0-45), isSerialized(0-45), convertedMapContent(11-45), (for generator)(14-43), (for state)(14-43), (for control)(14-43), k(15-41), v(15-41), newkey(16-41)
  0000  TEST      if not R2 then   -> -131069
  0001  JMP       (jump)   -> 3
  0002  LOADK     R2 = K0 1
  0003  GETTABLE  R4 = R0[K1('m_primaryKeyHasInteger')]
  0004  TEST      if not R4 then   -> -131066
  0005  JMP       (jump)   -> 9
  0006  GETTABLE  R4 = R0[K2('m_primaryKeyCount')]
  0007  LT        if R0 lt R2   -> -129013
  0008  JMP       (jump)   -> 10
  0009  RETURN    return R1..R0
  0010  NEWTABLE  R4 = {} (0 items)
  0011  GETTABUP  R5 = _ENV[K3('pairs')]
  0012  MOVE      R6 = R0
  0013  CALL      R5 = call(R5, 3 args, 1 rets)
  0014  JMP       (jump)   -> 41
  0015  MOVE      R10 = R0
  0016  GETTABLE  R11 = R0[K4('_columns')]
  0017  GETTABLE  R12 = R0[K5('_primaryKey')]
  0018  GETTABLE  R12 = R12[R2]
  0019  GETTABLE  R11 = R11[R12]
  0020  GETTABUP  R12 = _ENV[K6('EDBValueType')]
  0021  GETTABLE  R12 = R12[K7('Integer')]
  0022  EQ        if R0 eq R12   -> -125404
  0023  JMP       (jump)   -> 35
  0024  TEST      if not R3 then   -> -131046
  0025  JMP       (jump)   -> 31
  0026  GETTABUP  R11 = _ENV[K8('tostring')]
  0027  MOVE      R12 = R0
  0028  CALL      R11 = call(R11, 1 args, 1 rets)
  0029  TESTSET   if R1 then R10   -> -125408
  0030  JMP       (jump)   -> 35
  0031  GETTABUP  R11 = _ENV[K9('tonumber')]
  0032  MOVE      R12 = R0
  0033  CALL      R11 = call(R11, 1 args, 1 rets)
  0034  MOVE      R10 = R0
  0035  SELF      R12 = R0[K10('_GetConvertKeyType')] (self)
  0036  MOVE      R13 = R0
  0037  ADD       R14 = K0(1) add R2
  0038  MOVE      R15 = R0
  0039  CALL      R11 = call(R11, 1 args, 4 rets)
  0040  SETTABLE  R4[R10] = R11
  0041  TFORCALL  tforcall R5
  0042  TFORLOOP  tforloop R7(sBx=-28)   -> 15
  0043  RETURN    return R4..R3
  0044  RETURN    return R0..R-1
; ---------- proto22 [ToUploadArr] ----------
  ; fn ?  line 337-356 np=1 va=0 ms=8 code=9 consts=3 upvals=1 protos=1
  ;   K[0]=1
  ;   K[1]='_Foreach'
  ;   K[2]='m_mapCacheValue'
  ;   upvals: _ENV
  ;   locals: self(0-9), concatTable(1-9), arrCount(2-9), arr(3-9)
  0000  NEWTABLE  R1 = {} (0 items)
  0001  LOADK     R2 = K0 1
  0002  NEWTABLE  R3 = {} (0 items)
  0003  SELF      R5 = R0[K1('_Foreach')] (self)
  0004  GETTABLE  R6 = R0[K2('m_mapCacheValue')]
  0005  CLOSURE   R7 = closure proto0
  0006  CALL      R4 = call(R4, 0 args, 3 rets)
  0007  RETURN    return R3..R2
  0008  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 342-354 np=2 va=0 ms=7 code=31 consts=7 upvals=5 protos=0
    ;   K[0]='m_primaryKeyCount'
    ;   K[1]=1
    ;   K[2]='_arrOrder'
    ;   K[3]=''
    ;   K[4]='table'
    ;   K[5]='concat'
    ;   K[6]=','
    ;   upvals: self, concatTable, arr, arrCount, _ENV
    ;   locals: depth(0-31), data(0-31), (for index)(9-18), (for limit)(9-18), (for step)(9-18), i(10-17)
    0000  GETTABUP  R2 = self[K0('m_primaryKeyCount')]
    0001  LT        if R0 lt R2   -> -131067
    0002  JMP       (jump)   -> 5
    0003  LOADBOOL  R2 = false
    0004  RETURN    return R2..R1
    0005  LOADK     R2 = K1 1
    0006  GETTABUP  R3 = self[K2('_arrOrder')]
    0007  LEN       R3 = len R0
    0008  LOADK     R4 = K1 1
    0009  FORPREP   forprep R2(sBx=7)   -> 17
    0010  GETTABUP  R6 = self[K2('_arrOrder')]
    0011  GETTABLE  R6 = R6[R5]
    0012  GETTABLE  R6 = R1[R6]
    0013  TEST      if not R6 then   -> -131056
    0014  JMP       (jump)   -> 16
    0015  LOADK     R6 = K3 ''
    0016  SETTABUP  concatTable[R5] = R6
    0017  FORLOOP   forloop R2(sBx=-8)   -> 10
    0018  GETUPVAL  R2 = self
    0019  GETTABUP  R3 = _ENV[K4('table')]
    0020  GETTABLE  R3 = R3[K5('concat')]
    0021  GETUPVAL  R4 = self
    0022  LOADK     R5 = K6 ','
    0023  CALL      R3 = call(R3, 1 args, 2 rets)
    0024  SETTABUP  arr[R2] = R3
    0025  GETUPVAL  R2 = self
    0026  ADD       R2 = K1(1) add R2
    0027  SETUPVAL  arr = R0
    0028  LOADBOOL  R2 = true
    0029  RETURN    return R2..R1
    0030  RETURN    return R0..R-1
; ---------- proto23 [FromArr] ----------
  ; fn ?  line 358-408 np=2 va=0 ms=18 code=119 consts=29 upvals=1 protos=0
  ;   K[0]='Clear'
  ;   K[1]='ipairs'
  ;   K[2]='StringUtil'
  ;   K[3]='Split'
  ;   K[4]=','
  ;   K[5]='_arrOrder'
  ;   K[6]='GM'
  ;   K[7]='BIManager'
  ;   K[8]='LogErrorInfo'
  ;   K[9]='EBIProjectType'
  ;   K[10]='DBColumnOverflow'
  ;   K[11]='tableName:'
  ;   K[12]='tableName'
  ;   K[13]='str:'
  ;   K[14]='table'
  ;   K[15]='concat'
  ;   K[16]=1
  ;   K[17]=nil
  ;   K[18]='_columns'
  ;   K[19]='EDBValueType'
  ;   K[20]='Integer'
  ;   K[21]='Real'
  ;   K[22]='tonumber'
  ;   K[23]='m_primaryKeyCount'
  ;   K[24]='_primaryKey'
  ;   K[25]='pairs'
  ;   K[26]='_Insert'
  ;   K[27]='IsEmpty'
  ;   K[28]='_ResetPlayerPrefs'
  ;   upvals: _ENV
  ;   locals: self(0-119), strArr(0-119), datas(3-119), value(3-119), type(3-119), (for generator)(6-112), (for state)(6-112), (for control)(6-112), _(7-110), str(7-110), row(14-110), (for index)(52-55), (for limit)(52-55), (for step)(52-55), i(53-54), (for index)(58-80), (for limit)(58-80), (for step)(58-80), i(59-79), args(81-110), (for index)(84-95), (for limit)(84-95), (for step)(84-95), i(85-94), (for generator)(98-107), (for state)(98-107), (for control)(98-107), field(99-105), value(99-105)
  0000  SELF      R3 = R0[K0('Clear')] (self)
  0001  CALL      R2 = call(R2, 0 args, 1 rets)
  0002  LOADNIL   R2..R2 = nil
  0003  GETTABUP  R5 = _ENV[K1('ipairs')]
  0004  MOVE      R6 = R0
  0005  CALL      R5 = call(R5, 3 args, 1 rets)
  0006  JMP       (jump)   -> 110
  0007  GETTABUP  R10 = _ENV[K2('StringUtil')]
  0008  GETTABLE  R10 = R10[K3('Split')]
  0009  MOVE      R11 = R0
  0010  LOADK     R12 = K4 ','
  0011  CALL      R10 = call(R10, 1 args, 2 rets)
  0012  MOVE      R2 = R0
  0013  NEWTABLE  R10 = {} (0 items)
  0014  LEN       R11 = len R0
  0015  GETTABLE  R12 = R0[K5('_arrOrder')]
  0016  LEN       R12 = len R0
  0017  LT        if R0 lt R11   -> -124898
  0018  JMP       (jump)   -> 55
  0019  GETTABUP  R11 = _ENV[K6('GM')]
  0020  TEST      if not R11 then   -> -131050
  0021  JMP       (jump)   -> 37
  0022  GETTABUP  R11 = _ENV[K6('GM')]
  0023  GETTABLE  R11 = R11[K7('BIManager')]
  0024  TEST      if not R11 then   -> -131046
  0025  JMP       (jump)   -> 37
  0026  GETTABUP  R11 = _ENV[K6('GM')]
  0027  GETTABLE  R11 = R11[K7('BIManager')]
  0028  SELF      R12 = R11[K8('LogErrorInfo')] (self)
  0029  GETTABUP  R13 = _ENV[K9('EBIProjectType')]
  0030  GETTABLE  R13 = R13[K10('DBColumnOverflow')]
  0031  LOADK     R14 = K11 'tableName:'
  0032  GETTABLE  R15 = R0[K12('tableName')]
  0033  LOADK     R16 = K13 'str:'
  0034  MOVE      R17 = R0
  0035  CONCAT    R14 = concat(R14..R14)
  0036  CALL      R11 = call(R11, 0 args, 3 rets)
  0037  GETTABLE  R11 = R0[K5('_arrOrder')]
  0038  LEN       R11 = len R0
  0039  GETTABUP  R12 = _ENV[K14('table')]
  0040  GETTABLE  R12 = R12[K15('concat')]
  0041  MOVE      R13 = R0
  0042  LOADK     R14 = K4 ','
  0043  GETTABLE  R15 = R0[K5('_arrOrder')]
  0044  LEN       R15 = len R0
  0045  CALL      R12 = call(R12, 1 args, 3 rets)
  0046  SETTABLE  R2[R11] = R12
  0047  GETTABLE  R11 = R0[K5('_arrOrder')]
  0048  LEN       R11 = len R0
  0049  ADD       R11 = K16(1) add R11
  0050  LEN       R12 = len R0
  0051  LOADK     R13 = K16 1
  0052  FORPREP   forprep R11(sBx=1)   -> 54
  0053  SETTABLE  R2[R14] = K17(nil)
  0054  FORLOOP   forloop R11(sBx=-2)   -> 53
  0055  LOADK     R11 = K16 1
  0056  LEN       R12 = len R0
  0057  LOADK     R13 = K16 1
  0058  FORPREP   forprep R11(sBx=20)   -> 79
  0059  GETTABLE  R3 = R2[R14]
  0060  GETTABLE  R15 = R0[K18('_columns')]
  0061  GETTABLE  R16 = R0[K5('_arrOrder')]
  0062  GETTABLE  R16 = R16[R14]
  0063  GETTABLE  R4 = R15[R16]
  0064  GETTABUP  R15 = _ENV[K19('EDBValueType')]
  0065  GETTABLE  R15 = R15[K20('Integer')]
  0066  EQ        if R1 eq R15   -> -128941
  0067  JMP       (jump)   -> 72
  0068  GETTABUP  R15 = _ENV[K19('EDBValueType')]
  0069  GETTABLE  R15 = R15[K21('Real')]
  0070  EQ        if R0 eq R15   -> -128937
  0071  JMP       (jump)   -> 76
  0072  GETTABUP  R15 = _ENV[K22('tonumber')]
  0073  MOVE      R16 = R0
  0074  CALL      R15 = call(R15, 1 args, 1 rets)
  0075  MOVE      R3 = R0
  0076  GETTABLE  R15 = R0[K5('_arrOrder')]
  0077  GETTABLE  R15 = R15[R14]
  0078  SETTABLE  R10[R15] = R3
  0079  FORLOOP   forloop R11(sBx=-21)   -> 59
  0080  NEWTABLE  R11 = {} (0 items)
  0081  LOADK     R12 = K16 1
  0082  GETTABLE  R13 = R0[K23('m_primaryKeyCount')]
  0083  LOADK     R14 = K16 1
  0084  FORPREP   forprep R12(sBx=9)   -> 94
  0085  LEN       R16 = len R0
  0086  ADD       R16 = K16(1) add R16
  0087  GETTABLE  R17 = R0[K24('_primaryKey')]
  0088  GETTABLE  R17 = R17[R15]
  0089  GETTABLE  R17 = R10[R17]
  0090  SETTABLE  R11[R16] = R17
  0091  GETTABLE  R16 = R0[K24('_primaryKey')]
  0092  GETTABLE  R16 = R16[R15]
  0093  SETTABLE  R10[R16] = K17(nil)
  0094  FORLOOP   forloop R12(sBx=-10)   -> 85
  0095  GETTABUP  R12 = _ENV[K25('pairs')]
  0096  MOVE      R13 = R0
  0097  CALL      R12 = call(R12, 3 args, 1 rets)
  0098  JMP       (jump)   -> 105
  0099  LEN       R17 = len R0
  0100  ADD       R17 = K16(1) add R17
  0101  SETTABLE  R11[R17] = R15
  0102  LEN       R17 = len R0
  0103  ADD       R17 = K16(1) add R17
  0104  SETTABLE  R11[R17] = R16
  0105  TFORCALL  tforcall R12
  0106  TFORLOOP  tforloop R14(sBx=-8)   -> 99
  0107  SELF      R13 = R0[K26('_Insert')] (self)
  0108  MOVE      R14 = R0
  0109  CALL      R12 = call(R12, 0 args, 2 rets)
  0110  TFORCALL  tforcall R5
  0111  TFORLOOP  tforloop R7(sBx=-105)   -> 7
  0112  SELF      R6 = R0[K27('IsEmpty')] (self)
  0113  CALL      R5 = call(R5, 1 args, 1 rets)
  0114  TEST      if not R5 then   -> -130956
  0115  JMP       (jump)   -> 118
  0116  SELF      R6 = R0[K28('_ResetPlayerPrefs')] (self)
  0117  CALL      R5 = call(R5, 0 args, 1 rets)
  0118  RETURN    return R0..R-1
; ---------- proto24 [CheckContent] ----------
  ; fn ?  line 410-415 np=2 va=0 ms=6 code=14 consts=5 upvals=1 protos=0
  ;   K[0]='m_bCachedDataChanged'
  ;   K[1]='GM'
  ;   K[2]='DBTableManager'
  ;   K[3]='SetData'
  ;   K[4]='_OnContentUpdated'
  ;   upvals: _ENV
  ;   locals: self(0-14), isAlwaysSerialize(0-14)
  0000  GETTABLE  R2 = R0[K0('m_bCachedDataChanged')]
  0001  TEST      if not R2 then   -> -131068
  0002  JMP       (jump)   -> 5
  0003  TEST      if not R1 then   -> -131067
  0004  JMP       (jump)   -> 13
  0005  GETTABUP  R2 = _ENV[K1('GM')]
  0006  GETTABLE  R2 = R2[K2('DBTableManager')]
  0007  SELF      R3 = R2[K3('SetData')] (self)
  0008  MOVE      R4 = R0
  0009  MOVE      R5 = R0
  0010  CALL      R2 = call(R2, 0 args, 3 rets)
  0011  SELF      R3 = R0[K4('_OnContentUpdated')] (self)
  0012  CALL      R2 = call(R2, 0 args, 1 rets)
  0013  RETURN    return R0..R-1
; ---------- proto25 [_OnContentUpdated] ----------
  ; fn ?  line 417-430 np=1 va=0 ms=4 code=20 consts=15 upvals=1 protos=0
  ;   K[0]='m_bCachedDataChanged'
  ;   K[1]=false
  ;   K[2]='lastSerializationTimestamp'
  ;   K[3]='TimeUtil'
  ;   K[4]='GetTimeInSecond'
  ;   K[5]='SetModified'
  ;   K[6]='m_bUploading'
  ;   K[7]='m_bModifiedDuringUploading'
  ;   K[8]=true
  ;   K[9]='m_strJson'
  ;   K[10]=nil
  ;   K[11]='PlayerPrefs'
  ;   K[12]='SetInt'
  ;   K[13]='m_strSerializationKey'
  ;   K[14]='_CheckAndSetHasData'
  ;   upvals: _ENV
  ;   locals: self(0-20)
  0000  SETTABLE  R0[K0('m_bCachedDataChanged')] = K1(false)
  0001  GETTABUP  R1 = _ENV[K3('TimeUtil')]
  0002  GETTABLE  R1 = R1[K4('GetTimeInSecond')]
  0003  CALL      R1 = call(R1, 1 args, 0 rets)
  0004  SETTABLE  R0[K2('lastSerializationTimestamp')] = R1
  0005  SELF      R2 = R0[K5('SetModified')] (self)
  0006  CALL      R1 = call(R1, 0 args, 1 rets)
  0007  GETTABLE  R1 = R0[K6('m_bUploading')]
  0008  TEST      if not R1 then   -> -131062
  0009  JMP       (jump)   -> 11
  0010  SETTABLE  R0[K7('m_bModifiedDuringUploading')] = K8(true)
  0011  SETTABLE  R0[K9('m_strJson')] = K10(nil)
  0012  GETTABUP  R1 = _ENV[K11('PlayerPrefs')]
  0013  GETTABLE  R1 = R1[K12('SetInt')]
  0014  GETTABLE  R2 = R0[K13('m_strSerializationKey')]
  0015  GETTABLE  R3 = R0[K2('lastSerializationTimestamp')]
  0016  CALL      R1 = call(R1, 0 args, 2 rets)
  0017  SELF      R2 = R0[K14('_CheckAndSetHasData')] (self)
  0018  CALL      R1 = call(R1, 0 args, 1 rets)
  0019  RETURN    return R0..R-1
; ---------- proto26 [_CheckAndSetHasData] ----------
  ; fn ?  line 432-434 np=1 va=0 ms=5 code=13 consts=6 upvals=1 protos=0
  ;   K[0]='PlayerPrefs'
  ;   K[1]='SetInt'
  ;   K[2]='m_strHasDataKey'
  ;   K[3]='IsEmpty'
  ;   K[4]=0
  ;   K[5]=1
  ;   upvals: _ENV
  ;   locals: self(0-13)
  0000  GETTABUP  R1 = _ENV[K0('PlayerPrefs')]
  0001  GETTABLE  R1 = R1[K1('SetInt')]
  0002  GETTABLE  R2 = R0[K2('m_strHasDataKey')]
  0003  SELF      R4 = R0[K3('IsEmpty')] (self)
  0004  CALL      R3 = call(R3, 1 args, 1 rets)
  0005  TEST      if not R3 then   -> -131065
  0006  JMP       (jump)   -> 10
  0007  LOADK     R3 = K4 0
  0008  TEST      if not R3 then   -> -131061
  0009  JMP       (jump)   -> 11
  0010  LOADK     R3 = K5 1
  0011  CALL      R1 = call(R1, 0 args, 2 rets)
  0012  RETURN    return R0..R-1
; ---------- proto27 [IsCracked] ----------
  ; fn ?  line 436-442 np=1 va=0 ms=6 code=25 consts=13 upvals=1 protos=0
  ;   K[0]='IsEmpty'
  ;   K[1]='PlayerPrefs'
  ;   K[2]='GetInt'
  ;   K[3]='m_strHasDataKey'
  ;   K[4]=0
  ;   K[5]=1
  ;   K[6]='GM'
  ;   K[7]='BIManager'
  ;   K[8]='LogErrorInfo'
  ;   K[9]='EBIType'
  ;   K[10]='DataCracked'
  ;   K[11]='tableName'
  ;   K[12]=' is empty now'
  ;   upvals: _ENV
  ;   locals: self(0-25)
  0000  SELF      R2 = R0[K0('IsEmpty')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  TEST      if not R1 then   -> -131068
  0003  JMP       (jump)   -> 22
  0004  GETTABUP  R1 = _ENV[K1('PlayerPrefs')]
  0005  GETTABLE  R1 = R1[K2('GetInt')]
  0006  GETTABLE  R2 = R0[K3('m_strHasDataKey')]
  0007  LOADK     R3 = K4 0
  0008  CALL      R1 = call(R1, 1 args, 2 rets)
  0009  EQ        if R0 eq K5(1)   -> -130288
  0010  JMP       (jump)   -> 22
  0011  GETTABUP  R1 = _ENV[K6('GM')]
  0012  GETTABLE  R1 = R1[K7('BIManager')]
  0013  SELF      R2 = R1[K8('LogErrorInfo')] (self)
  0014  GETTABUP  R3 = _ENV[K9('EBIType')]
  0015  GETTABLE  R3 = R3[K10('DataCracked')]
  0016  GETTABLE  R4 = R0[K11('tableName')]
  0017  LOADK     R5 = K12 ' is empty now'
  0018  CONCAT    R4 = concat(R4..R4)
  0019  CALL      R1 = call(R1, 0 args, 3 rets)
  0020  LOADBOOL  R1 = true
  0021  RETURN    return R1..R0
  0022  LOADBOOL  R1 = false
  0023  RETURN    return R1..R0
  0024  RETURN    return R0..R-1
; ---------- proto28 [IsModified] ----------
  ; fn ?  line 444-446 np=1 va=0 ms=3 code=8 consts=1 upvals=1 protos=0
  ;   K[0]='m_modificationFlag'
  ;   upvals: MODIFIED_FLAG
  ;   locals: self(0-8)
  0000  GETTABLE  R1 = R0[K0('m_modificationFlag')]
  0001  GETUPVAL  R2 = MODIFIED_FLAG
  0002  EQ        if R1 eq R2   -> -130554
  0003  JMP       (jump)   -> 5
  0004  LOADBOOL  R1 = false
  0005  LOADBOOL  R1 = true
  0006  RETURN    return R1..R0
  0007  RETURN    return R0..R-1
; ---------- proto29 [SetModified] ----------
  ; fn ?  line 448-451 np=1 va=0 ms=4 code=8 consts=4 upvals=2 protos=0
  ;   K[0]='m_modificationFlag'
  ;   K[1]='PlayerPrefs'
  ;   K[2]='SetInt'
  ;   K[3]='m_strModificationKey'
  ;   upvals: MODIFIED_FLAG, _ENV
  ;   locals: self(0-8)
  0000  GETUPVAL  R1 = MODIFIED_FLAG
  0001  SETTABLE  R0[K0('m_modificationFlag')] = R1
  0002  GETTABUP  R1 = _ENV[K1('PlayerPrefs')]
  0003  GETTABLE  R1 = R1[K2('SetInt')]
  0004  GETTABLE  R2 = R0[K3('m_strModificationKey')]
  0005  GETTABLE  R3 = R0[K0('m_modificationFlag')]
  0006  CALL      R1 = call(R1, 0 args, 2 rets)
  0007  RETURN    return R0..R-1
; ---------- proto30 [SetUploading] ----------
  ; fn ?  line 453-455 np=1 va=0 ms=2 code=2 consts=2 upvals=0 protos=0
  ;   K[0]='m_bUploading'
  ;   K[1]=true
  ;   locals: self(0-2)
  0000  SETTABLE  R0[K0('m_bUploading')] = K1(true)
  0001  RETURN    return R0..R-1
; ---------- proto31 [OnUploadedFinished] ----------
  ; fn ?  line 458-468 np=2 va=0 ms=5 code=24 consts=7 upvals=3 protos=0
  ;   K[0]='m_bUploading'
  ;   K[1]=false
  ;   K[2]='m_modificationFlag'
  ;   K[3]='m_bModifiedDuringUploading'
  ;   K[4]='PlayerPrefs'
  ;   K[5]='SetInt'
  ;   K[6]='m_strModificationKey'
  ;   upvals: MODIFIED_FLAG, NOT_MODIFIED_FLAG, _ENV
  ;   locals: self(0-24), forceSynced(0-24)
  0000  GETTABLE  R2 = R0[K0('m_bUploading')]
  0001  TEST      if not R2 then   -> -131068
  0002  JMP       (jump)   -> 6
  0003  TEST      if not R1 then   -> -131066
  0004  JMP       (jump)   -> 6
  0005  RETURN    return R0..R-1
  0006  SETTABLE  R0[K0('m_bUploading')] = K1(false)
  0007  GETTABLE  R2 = R0[K3('m_bModifiedDuringUploading')]
  0008  TEST      if not R2 then   -> -131062
  0009  JMP       (jump)   -> 15
  0010  TEST      if not R1 then   -> -131059
  0011  JMP       (jump)   -> 15
  0012  GETUPVAL  R2 = MODIFIED_FLAG
  0013  TEST      if not R2 then   -> -131056
  0014  JMP       (jump)   -> 16
  0015  GETUPVAL  R2 = MODIFIED_FLAG
  0016  SETTABLE  R0[K2('m_modificationFlag')] = R2
  0017  SETTABLE  R0[K3('m_bModifiedDuringUploading')] = K1(false)
  0018  GETTABUP  R2 = _ENV[K4('PlayerPrefs')]
  0019  GETTABLE  R2 = R2[K5('SetInt')]
  0020  GETTABLE  R3 = R0[K6('m_strModificationKey')]
  0021  GETTABLE  R4 = R0[K2('m_modificationFlag')]
  0022  CALL      R2 = call(R2, 0 args, 2 rets)
  0023  RETURN    return R0..R-1
; ---------- proto32 [_IsPrimaryKey] ----------
  ; fn ?  line 470-478 np=2 va=0 ms=7 code=14 consts=3 upvals=0 protos=0
  ;   K[0]=1
  ;   K[1]='m_primaryKeyCount'
  ;   K[2]='_primaryKey'
  ;   locals: self(0-14), field(0-14), (for index)(3-11), (for limit)(3-11), (for step)(3-11), i(4-10)
  0000  LOADK     R2 = K0 1
  0001  GETTABLE  R3 = R0[K1('m_primaryKeyCount')]
  0002  LOADK     R4 = K0 1
  0003  FORPREP   forprep R2(sBx=6)   -> 10
  0004  GETTABLE  R6 = R0[K2('_primaryKey')]
  0005  GETTABLE  R6 = R6[R5]
  0006  EQ        if R0 eq R1   -> -127991
  0007  JMP       (jump)   -> 10
  0008  LOADBOOL  R6 = true
  0009  RETURN    return R6..R5
  0010  FORLOOP   forloop R2(sBx=-7)   -> 4
  0011  LOADBOOL  R2 = false
  0012  RETURN    return R2..R1
  0013  RETURN    return R0..R-1
; ---------- proto33 [_GetRows] ----------
  ; fn ?  line 480-482 np=2 va=0 ms=8 code=12 consts=6 upvals=1 protos=0
  ;   K[0]='DBTable'
  ;   K[1]='_GetMap'
  ;   K[2]='m_mapCacheValue'
  ;   K[3]='math'
  ;   K[4]='min'
  ;   K[5]='m_primaryKeyCount'
  ;   upvals: _ENV
  ;   locals: self(0-12), args(0-12)
  0000  GETTABUP  R2 = _ENV[K0('DBTable')]
  0001  GETTABLE  R2 = R2[K1('_GetMap')]
  0002  GETTABLE  R3 = R0[K2('m_mapCacheValue')]
  0003  MOVE      R4 = R0
  0004  GETTABUP  R5 = _ENV[K3('math')]
  0005  GETTABLE  R5 = R5[K4('min')]
  0006  LEN       R6 = len R0
  0007  GETTABLE  R7 = R0[K5('m_primaryKeyCount')]
  0008  CALL      R5 = call(R5, -1 args, 2 rets)
  0009  TAILCALL  tailcall(R2, 0)
  0010  RETURN    return R2..R1
  0011  RETURN    return R0..R-1
; ---------- proto34 [_GetMap] ----------
  ; fn ?  line 484-493 np=3 va=0 ms=8 code=13 consts=2 upvals=0 protos=0
  ;   K[0]=1
  ;   K[1]=nil
  ;   locals: cache(0-13), args(0-13), depth(0-13), (for index)(3-11), (for limit)(3-11), (for step)(3-11), i(4-10)
  0000  LOADK     R3 = K0 1
  0001  MOVE      R4 = R0
  0002  LOADK     R5 = K0 1
  0003  FORPREP   forprep R3(sBx=6)   -> 10
  0004  GETTABLE  R7 = R1[R6]
  0005  GETTABLE  R0 = R0[R7]
  0006  EQ        if R0 eq K1(nil)   -> -130807
  0007  JMP       (jump)   -> 10
  0008  LOADNIL   R7..R7 = nil
  0009  RETURN    return R7..R6
  0010  FORLOOP   forloop R3(sBx=-7)   -> 4
  0011  RETURN    return R0..R-1
  0012  RETURN    return R0..R-1
; ---------- proto35 [_AddMap] ----------
  ; fn ?  line 495-504 np=3 va=0 ms=9 code=16 consts=2 upvals=0 protos=0
  ;   K[0]=1
  ;   K[1]=nil
  ;   locals: cache(0-16), args(0-16), depth(0-16), (for index)(3-14), (for limit)(3-14), (for step)(3-14), i(4-13)
  0000  LOADK     R3 = K0 1
  0001  MOVE      R4 = R0
  0002  LOADK     R5 = K0 1
  0003  FORPREP   forprep R3(sBx=9)   -> 13
  0004  GETTABLE  R7 = R1[R6]
  0005  GETTABLE  R7 = R0[R7]
  0006  EQ        if R0 eq K1(nil)   -> -127223
  0007  JMP       (jump)   -> 11
  0008  GETTABLE  R7 = R1[R6]
  0009  NEWTABLE  R8 = {} (0 items)
  0010  SETTABLE  R0[R7] = R8
  0011  GETTABLE  R7 = R1[R6]
  0012  GETTABLE  R0 = R0[R7]
  0013  FORLOOP   forloop R3(sBx=-10)   -> 4
  0014  RETURN    return R0..R-1
  0015  RETURN    return R0..R-1
; ---------- proto36 [_Insert] ----------
  ; fn ?  line 506-528 np=2 va=0 ms=12 code=48 consts=13 upvals=1 protos=0
  ;   K[0]='DBTable'
  ;   K[1]='_AddMap'
  ;   K[2]='m_mapCacheValue'
  ;   K[3]='m_primaryKeyCount'
  ;   K[4]='m_bCachedDataChanged'
  ;   K[5]=true
  ;   K[6]=1
  ;   K[7]='_primaryKey'
  ;   K[8]='m_arrColsNoPK'
  ;   K[9]='_GetFieldValue'
  ;   K[10]=2
  ;   K[11]='_Reset'
  ;   K[12]='m_mapInsertRows'
  ;   upvals: _ENV
  ;   locals: self(0-48), args(0-48), cache(6-48), (for index)(10-16), (for limit)(10-16), (for step)(10-16), i(11-15), (for index)(20-29), (for limit)(20-29), (for step)(20-29), i(21-28), (for index)(33-41), (for limit)(33-41), (for step)(33-41), i(34-40)
  0000  GETTABUP  R2 = _ENV[K0('DBTable')]
  0001  GETTABLE  R2 = R2[K1('_AddMap')]
  0002  GETTABLE  R3 = R0[K2('m_mapCacheValue')]
  0003  MOVE      R4 = R0
  0004  GETTABLE  R5 = R0[K3('m_primaryKeyCount')]
  0005  CALL      R2 = call(R2, 1 args, 3 rets)
  0006  SETTABLE  R0[K4('m_bCachedDataChanged')] = K5(true)
  0007  LOADK     R3 = K6 1
  0008  GETTABLE  R4 = R0[K3('m_primaryKeyCount')]
  0009  LOADK     R5 = K6 1
  0010  FORPREP   forprep R3(sBx=4)   -> 15
  0011  GETTABLE  R7 = R0[K7('_primaryKey')]
  0012  GETTABLE  R7 = R7[R6]
  0013  GETTABLE  R8 = R1[R6]
  0014  SETTABLE  R2[R7] = R8
  0015  FORLOOP   forloop R3(sBx=-5)   -> 11
  0016  LOADK     R3 = K6 1
  0017  GETTABLE  R4 = R0[K8('m_arrColsNoPK')]
  0018  LEN       R4 = len R0
  0019  LOADK     R5 = K6 1
  0020  FORPREP   forprep R3(sBx=7)   -> 28
  0021  GETTABLE  R7 = R0[K8('m_arrColsNoPK')]
  0022  GETTABLE  R7 = R7[R6]
  0023  SELF      R9 = R0[K9('_GetFieldValue')] (self)
  0024  GETTABLE  R10 = R0[K8('m_arrColsNoPK')]
  0025  GETTABLE  R10 = R10[R6]
  0026  CALL      R8 = call(R8, 1 args, 2 rets)
  0027  SETTABLE  R2[R7] = R8
  0028  FORLOOP   forloop R3(sBx=-8)   -> 21
  0029  GETTABLE  R3 = R0[K3('m_primaryKeyCount')]
  0030  ADD       R3 = K6(1) add R3
  0031  LEN       R4 = len R0
  0032  LOADK     R5 = K10 2
  0033  FORPREP   forprep R3(sBx=6)   -> 40
  0034  SELF      R8 = R0[K11('_Reset')] (self)
  0035  MOVE      R9 = R0
  0036  GETTABLE  R10 = R1[R6]
  0037  ADD       R11 = K6(1) add R6
  0038  GETTABLE  R11 = R1[R11]
  0039  CALL      R7 = call(R7, 0 args, 4 rets)
  0040  FORLOOP   forloop R3(sBx=-7)   -> 34
  0041  GETTABUP  R3 = _ENV[K0('DBTable')]
  0042  GETTABLE  R3 = R3[K1('_AddMap')]
  0043  GETTABLE  R4 = R0[K12('m_mapInsertRows')]
  0044  MOVE      R5 = R0
  0045  GETTABLE  R6 = R0[K3('m_primaryKeyCount')]
  0046  CALL      R3 = call(R3, 0 args, 3 rets)
  0047  RETURN    return R0..R-1
; ---------- proto37 [_Update] ----------
  ; fn ?  line 530-558 np=3 va=0 ms=13 code=47 consts=13 upvals=1 protos=0
  ;   K[0]='m_primaryKeyCount'
  ;   K[1]=1
  ;   K[2]=2
  ;   K[3]='_Reset'
  ;   K[4]=0
  ;   K[5]='DBTable'
  ;   K[6]='_GetMap'
  ;   K[7]='m_mapInsertRows'
  ;   K[8]=nil
  ;   K[9]='_AddMap'
  ;   K[10]='m_mapUpdateRows'
  ;   K[11]=true
  ;   K[12]='m_bCachedDataChanged'
  ;   upvals: _ENV
  ;   locals: self(0-47), cache(0-47), args(0-47), arrChanged(1-47), (for index)(5-19), (for limit)(5-19), (for step)(5-19), i(6-18), update(38-47), (for index)(41-45), (for limit)(41-45), (for step)(41-45), i(42-44)
  0000  NEWTABLE  R3 = {} (0 items)
  0001  GETTABLE  R4 = R0[K0('m_primaryKeyCount')]
  0002  ADD       R4 = K1(1) add R4
  0003  LEN       R5 = len R0
  0004  LOADK     R6 = K2 2
  0005  FORPREP   forprep R4(sBx=12)   -> 18
  0006  SELF      R9 = R0[K3('_Reset')] (self)
  0007  MOVE      R10 = R0
  0008  GETTABLE  R11 = R2[R7]
  0009  ADD       R12 = K1(1) add R7
  0010  GETTABLE  R12 = R2[R12]
  0011  CALL      R8 = call(R8, 1 args, 4 rets)
  0012  TEST      if not R8 then   -> -131058
  0013  JMP       (jump)   -> 18
  0014  LEN       R8 = len R0
  0015  ADD       R8 = K1(1) add R8
  0016  GETTABLE  R9 = R2[R7]
  0017  SETTABLE  R3[R8] = R9
  0018  FORLOOP   forloop R4(sBx=-13)   -> 6
  0019  LEN       R4 = len R0
  0020  EQ        if R0 eq K4(0)   -> -128742
  0021  JMP       (jump)   -> 23
  0022  RETURN    return R0..R-1
  0023  GETTABUP  R4 = _ENV[K5('DBTable')]
  0024  GETTABLE  R4 = R4[K6('_GetMap')]
  0025  GETTABLE  R5 = R0[K7('m_mapInsertRows')]
  0026  MOVE      R6 = R0
  0027  GETTABLE  R7 = R0[K0('m_primaryKeyCount')]
  0028  CALL      R4 = call(R4, 1 args, 3 rets)
  0029  EQ        if R1 eq K8(nil)   -> -128729
  0030  JMP       (jump)   -> 32
  0031  RETURN    return R0..R-1
  0032  GETTABUP  R4 = _ENV[K5('DBTable')]
  0033  GETTABLE  R4 = R4[K9('_AddMap')]
  0034  GETTABLE  R5 = R0[K10('m_mapUpdateRows')]
  0035  MOVE      R6 = R0
  0036  GETTABLE  R7 = R0[K0('m_primaryKeyCount')]
  0037  CALL      R4 = call(R4, 1 args, 3 rets)
  0038  LOADK     R5 = K1 1
  0039  LEN       R6 = len R0
  0040  LOADK     R7 = K1 1
  0041  FORPREP   forprep R5(sBx=2)   -> 44
  0042  GETTABLE  R9 = R3[R8]
  0043  SETTABLE  R4[R9] = K11(true)
  0044  FORLOOP   forloop R5(sBx=-3)   -> 42
  0045  SETTABLE  R0[K12('m_bCachedDataChanged')] = K11(true)
  0046  RETURN    return R0..R-1
; ---------- proto38 [_Delete] ----------
  ; fn ?  line 560-597 np=2 va=0 ms=7 code=63 consts=11 upvals=2 protos=0
  ;   K[0]='DBTable'
  ;   K[1]='_ClearRows'
  ;   K[2]='m_mapCacheValue'
  ;   K[3]='m_bCachedDataChanged'
  ;   K[4]=true
  ;   K[5]='m_mapInsertRows'
  ;   K[6]='m_mapUpdateRows'
  ;   K[7]='m_bClearTable'
  ;   K[8]=1
  ;   K[9]='m_mapDeleteRows'
  ;   K[10]=nil
  ;   upvals: _ENV, next
  ;   locals: self(0-63), args(0-63), i(24-63), last(25-63), delete(26-63)
  0000  GETTABUP  R2 = _ENV[K0('DBTable')]
  0001  GETTABLE  R2 = R2[K1('_ClearRows')]
  0002  GETTABLE  R3 = R0[K2('m_mapCacheValue')]
  0003  MOVE      R4 = R0
  0004  CALL      R2 = call(R2, 1 args, 2 rets)
  0005  TEST      if not R2 then   -> -131064
  0006  JMP       (jump)   -> 8
  0007  RETURN    return R0..R-1
  0008  SETTABLE  R0[K3('m_bCachedDataChanged')] = K4(true)
  0009  GETTABUP  R2 = _ENV[K0('DBTable')]
  0010  GETTABLE  R2 = R2[K1('_ClearRows')]
  0011  GETTABLE  R3 = R0[K5('m_mapInsertRows')]
  0012  MOVE      R4 = R0
  0013  CALL      R2 = call(R2, 0 args, 2 rets)
  0014  GETTABUP  R2 = _ENV[K0('DBTable')]
  0015  GETTABLE  R2 = R2[K1('_ClearRows')]
  0016  GETTABLE  R3 = R0[K6('m_mapUpdateRows')]
  0017  MOVE      R4 = R0
  0018  CALL      R2 = call(R2, 0 args, 2 rets)
  0019  GETTABLE  R2 = R0[K7('m_bClearTable')]
  0020  TEST      if not R2 then   -> -131050
  0021  JMP       (jump)   -> 23
  0022  RETURN    return R0..R-1
  0023  LOADK     R2 = K8 1
  0024  LOADNIL   R3..R3 = nil
  0025  GETTABLE  R4 = R0[K9('m_mapDeleteRows')]
  0026  LEN       R5 = len R0
  0027  LE        if R0 le R5   -> -130014
  0028  JMP       (jump)   -> 44
  0029  GETTABLE  R5 = R1[R2]
  0030  GETTABLE  R5 = R4[R5]
  0031  EQ        if R1 eq K10(nil)   -> -128213
  0032  JMP       (jump)   -> 44
  0033  MOVE      R3 = R0
  0034  GETTABLE  R5 = R1[R2]
  0035  GETTABLE  R4 = R4[R5]
  0036  GETUPVAL  R5 = _ENV
  0037  MOVE      R6 = R0
  0038  CALL      R5 = call(R5, 1 args, 1 rets)
  0039  EQ        if R0 eq K10(nil)   -> -128205
  0040  JMP       (jump)   -> 42
  0041  RETURN    return R0..R-1
  0042  ADD       R2 = K8(1) add R2
  0043  JMP       (jump)   -> 26
  0044  LEN       R5 = len R0
  0045  LT        if R0 lt R2   -> -128463
  0046  JMP       (jump)   -> 52
  0047  LEN       R5 = len R0
  0048  GETTABLE  R5 = R1[R5]
  0049  NEWTABLE  R6 = {} (0 items)
  0050  SETTABLE  R3[R5] = R6
  0051  RETURN    return R0..R-1
  0052  LEN       R5 = len R0
  0053  LE        if R0 le R5   -> -129988
  0054  JMP       (jump)   -> 62
  0055  GETTABLE  R5 = R1[R2]
  0056  NEWTABLE  R6 = {} (0 items)
  0057  SETTABLE  R4[R5] = R6
  0058  GETTABLE  R5 = R1[R2]
  0059  GETTABLE  R4 = R4[R5]
  0060  ADD       R2 = K8(1) add R2
  0061  JMP       (jump)   -> 52
  0062  RETURN    return R0..R-1
; ---------- proto39 [_ClearRows] ----------
  ; fn ?  line 599-623 np=2 va=0 ms=10 code=43 consts=3 upvals=1 protos=0
  ;   K[0]=1
  ;   K[1]=nil
  ;   K[2]=-1
  ;   upvals: next
  ;   locals: data(0-43), args(0-43), path(1-43), (for index)(4-17), (for limit)(4-17), (for step)(4-17), i(5-16), (for index)(26-40), (for limit)(26-40), (for step)(26-40), i(27-39)
  0000  NEWTABLE  R2 = {} (0 items)
  0001  LOADK     R3 = K0 1
  0002  LEN       R4 = len R0
  0003  LOADK     R5 = K0 1
  0004  FORPREP   forprep R3(sBx=11)   -> 16
  0005  GETTABLE  R7 = R1[R6]
  0006  GETTABLE  R7 = R0[R7]
  0007  EQ        if R0 eq K1(nil)   -> -127222
  0008  JMP       (jump)   -> 11
  0009  LOADBOOL  R7 = false
  0010  RETURN    return R7..R6
  0011  LEN       R7 = len R0
  0012  ADD       R7 = K0(1) add R7
  0013  SETTABLE  R2[R7] = R0
  0014  GETTABLE  R7 = R1[R6]
  0015  GETTABLE  R0 = R0[R7]
  0016  FORLOOP   forloop R3(sBx=-12)   -> 5
  0017  LEN       R3 = len R0
  0018  GETTABLE  R3 = R2[R3]
  0019  LEN       R4 = len R0
  0020  GETTABLE  R4 = R1[R4]
  0021  SETTABLE  R3[R4] = K1(nil)
  0022  LEN       R3 = len R0
  0023  SUB       R3 = K0(1) sub R3
  0024  LOADK     R4 = K0 1
  0025  LOADK     R5 = K2 -1
  0026  FORPREP   forprep R3(sBx=12)   -> 39
  0027  GETUPVAL  R7 = next
  0028  GETTABLE  R8 = R2[R6]
  0029  GETTABLE  R9 = R1[R6]
  0030  GETTABLE  R8 = R8[R9]
  0031  CALL      R7 = call(R7, 1 args, 1 rets)
  0032  EQ        if R1 eq K1(nil)   -> -127197
  0033  JMP       (jump)   -> 36
  0034  LOADBOOL  R7 = true
  0035  RETURN    return R7..R6
  0036  GETTABLE  R7 = R2[R6]
  0037  GETTABLE  R8 = R1[R6]
  0038  SETTABLE  R7[R8] = K1(nil)
  0039  FORLOOP   forloop R3(sBx=-13)   -> 27
  0040  LOADBOOL  R3 = true
  0041  RETURN    return R3..R2
  0042  RETURN    return R0..R-1
; ---------- proto40 [_Reset] ----------
  ; fn ?  line 625-643 np=4 va=0 ms=11 code=37 consts=12 upvals=1 protos=0
  ;   K[0]='m_bIgnoreTypeCheck'
  ;   K[1]='IsValidValueType'
  ;   K[2]='_columns'
  ;   K[3]='Log'
  ;   K[4]='Warning'
  ;   K[5]='tableName'
  ;   K[6]='表'
  ;   K[7]='列值类型错误,异常值='
  ;   K[8]='tostring'
  ;   K[9]='_GetFieldValue'
  ;   K[10]='m_bCachedDataChanged'
  ;   K[11]=true
  ;   upvals: _ENV
  ;   locals: self(0-37), cache(0-37), field(0-37), value(0-37)
  0000  GETTABLE  R4 = R0[K0('m_bIgnoreTypeCheck')]
  0001  TEST      if not R4 then   -> -131068
  0002  JMP       (jump)   -> 21
  0003  GETTABLE  R4 = R0[K1('IsValidValueType')]
  0004  GETTABLE  R5 = R0[K2('_columns')]
  0005  GETTABLE  R5 = R5[R2]
  0006  MOVE      R6 = R0
  0007  CALL      R4 = call(R4, 1 args, 2 rets)
  0008  TEST      if not R4 then   -> -131061
  0009  JMP       (jump)   -> 21
  0010  GETTABUP  R4 = _ENV[K3('Log')]
  0011  GETTABLE  R4 = R4[K4('Warning')]
  0012  GETTABLE  R5 = R0[K5('tableName')]
  0013  LOADK     R6 = K6 '表'
  0014  MOVE      R7 = R0
  0015  LOADK     R8 = K7 '列值类型错误,异常值='
  0016  GETTABUP  R9 = _ENV[K8('tostring')]
  0017  MOVE      R10 = R0
  0018  CALL      R9 = call(R9, 1 args, 1 rets)
  0019  CONCAT    R5 = concat(R5..R5)
  0020  CALL      R4 = call(R4, 0 args, 1 rets)
  0021  SELF      R5 = R0[K9('_GetFieldValue')] (self)
  0022  GETTABLE  R6 = R0[K2('_columns')]
  0023  GETTABLE  R6 = R6[R2]
  0024  MOVE      R7 = R0
  0025  CALL      R4 = call(R4, 1 args, 3 rets)
  0026  MOVE      R3 = R0
  0027  GETTABLE  R4 = R1[R2]
  0028  EQ        if R1 eq R3   -> -128991
  0029  JMP       (jump)   -> 34
  0030  SETTABLE  R0[K10('m_bCachedDataChanged')] = K11(true)
  0031  SETTABLE  R1[R2] = R3
  0032  LOADBOOL  R4 = true
  0033  RETURN    return R4..R3
  0034  LOADBOOL  R4 = false
  0035  RETURN    return R4..R3
  0036  RETURN    return R0..R-1
; ---------- proto41 [_Foreach] ----------
  ; fn ?  line 645-647 np=3 va=0 ms=8 code=8 consts=4 upvals=1 protos=0
  ;   K[0]='DBTable'
  ;   K[1]='_ForeachEntry'
  ;   K[2]=1
  ;   K[3]='m_arrVisit'
  ;   upvals: _ENV
  ;   locals: self(0-8), cache(0-8), handle(0-8)
  0000  GETTABUP  R3 = _ENV[K0('DBTable')]
  0001  GETTABLE  R3 = R3[K1('_ForeachEntry')]
  0002  MOVE      R4 = R0
  0003  LOADK     R5 = K2 1
  0004  GETTABLE  R6 = R0[K3('m_arrVisit')]
  0005  MOVE      R7 = R0
  0006  CALL      R3 = call(R3, 0 args, 4 rets)
  0007  RETURN    return R0..R-1
; ---------- proto42 [_ForeachEntry] ----------
  ; fn ?  line 649-659 np=4 va=0 ms=14 code=27 consts=5 upvals=1 protos=0
  ;   K[0]='pairs'
  ;   K[1]='DBTable'
  ;   K[2]='_ForeachEntry'
  ;   K[3]=1
  ;   K[4]=nil
  ;   upvals: _ENV
  ;   locals: cache(0-27), i(0-27), visit(0-27), handle(0-27), (for generator)(3-26), (for state)(3-26), (for control)(3-26), key(4-24), value(4-24)
  0000  GETTABUP  R4 = _ENV[K0('pairs')]
  0001  MOVE      R5 = R0
  0002  CALL      R4 = call(R4, 3 args, 1 rets)
  0003  JMP       (jump)   -> 24
  0004  SETTABLE  R2[R1] = R7
  0005  MOVE      R9 = R0
  0006  MOVE      R10 = R0
  0007  MOVE      R11 = R0
  0008  CALL      R9 = call(R9, 1 args, 2 rets)
  0009  TEST      if not R9 then   -> -131060
  0010  JMP       (jump)   -> 18
  0011  GETTABUP  R9 = _ENV[K1('DBTable')]
  0012  GETTABLE  R9 = R9[K2('_ForeachEntry')]
  0013  MOVE      R10 = R0
  0014  ADD       R11 = K3(1) add R1
  0015  MOVE      R12 = R0
  0016  MOVE      R13 = R0
  0017  CALL      R9 = call(R9, 0 args, 4 rets)
  0018  LEN       R9 = len R0
  0019  LE        if R0 le R9   -> -130530
  0020  JMP       (jump)   -> 24
  0021  LEN       R9 = len R0
  0022  SETTABLE  R2[R9] = K4(nil)
  0023  JMP       (jump)   -> 18
  0024  TFORCALL  tforcall R4
  0025  TFORLOOP  tforloop R6(sBx=-22)   -> 4
  0026  RETURN    return R0..R-1
; ---------- proto43 [_GetFieldValue] ----------
  ; fn ?  line 661-668 np=3 va=0 ms=5 code=11 consts=5 upvals=1 protos=0
  ;   K[0]=nil
  ;   K[1]='_columns'
  ;   K[2]='EDBValueType'
  ;   K[3]='Text'
  ;   K[4]=''
  ;   upvals: _ENV
  ;   locals: self(0-11), field(0-11), value(0-11)
  0000  EQ        if R0 eq K0(nil)   -> -129790
  0001  JMP       (jump)   -> 9
  0002  GETTABLE  R3 = R0[K1('_columns')]
  0003  GETTABLE  R3 = R3[R1]
  0004  GETTABUP  R4 = _ENV[K2('EDBValueType')]
  0005  GETTABLE  R4 = R4[K3('Text')]
  0006  EQ        if R0 eq R4   -> -129524
  0007  JMP       (jump)   -> 9
  0008  LOADK     R2 = K4 ''
  0009  RETURN    return R2..R1
  0010  RETURN    return R0..R-1
