# Model_DB_DBTableManager_67.luac
; fn @DBTableManager.lua  line 0-0 np=0 va=1 ms=3 code=73 consts=26 upvals=1 protos=22
;   K[0]='DBTableManager'
;   K[1]='__index'
;   K[2]=1
;   K[3]='_CreateDBTable'
;   K[4]='Init'
;   K[5]='CreateFile'
;   K[6]='DBTableManager'
;   K[7]='LateInit'
;   K[8]='LateUpdate'
;   K[9]='UpdatePerSecond'
;   K[10]='_ResetInternal'
;   K[11]='Destroy'
;   K[12]='SaveAllWhenLateUpdate'
;   K[13]='SaveAllImmediately'
;   K[14]='StoreSaveStatus'
;   K[15]='_TrySaveAll'
;   K[16]='_LoadTables'
;   K[17]='FlushTables'
;   K[18]='GetTable'
;   K[19]='Clear'
;   K[20]='HasSaveFailed'
;   K[21]='ConfirmDataSynced'
;   K[22]='SetData'
;   K[23]='IsCracked'
;   K[24]='GetFileSize'
;   K[25]='ResetFile'
;   upvals: _ENV
;   locals: transactionTime(6-73)
0000  NEWTABLE  R0 = {} (0 items)
0001  SETTABUP  _ENV[K0('DBTableManager')] = R0
0002  GETTABUP  R0 = _ENV[K0('DBTableManager')]
0003  GETTABUP  R1 = _ENV[K0('DBTableManager')]
0004  SETTABLE  R0[K1('__index')] = R1
0005  LOADK     R0 = K2 1
0006  GETTABUP  R1 = _ENV[K0('DBTableManager')]
0007  CLOSURE   R2 = closure proto0
0008  SETTABLE  R1[K3('_CreateDBTable')] = R2
0009  GETTABUP  R1 = _ENV[K0('DBTableManager')]
0010  CLOSURE   R2 = closure proto1
0011  SETTABLE  R1[K4('Init')] = R2
0012  GETTABUP  R1 = _ENV[K0('DBTableManager')]
0013  CLOSURE   R2 = closure proto2
0014  SETTABLE  R1[K5('CreateFile')] = R2
0015  GETTABUP  R1 = _ENV[K6('DBTableManager')]
0016  CLOSURE   R2 = closure proto3
0017  SETTABLE  R1[K7('LateInit')] = R2
0018  GETTABUP  R1 = _ENV[K6('DBTableManager')]
0019  CLOSURE   R2 = closure proto4
0020  SETTABLE  R1[K8('LateUpdate')] = R2
0021  GETTABUP  R1 = _ENV[K6('DBTableManager')]
0022  CLOSURE   R2 = closure proto5
0023  SETTABLE  R1[K9('UpdatePerSecond')] = R2
0024  GETTABUP  R1 = _ENV[K6('DBTableManager')]
0025  CLOSURE   R2 = closure proto6
0026  SETTABLE  R1[K10('_ResetInternal')] = R2
0027  GETTABUP  R1 = _ENV[K6('DBTableManager')]
0028  CLOSURE   R2 = closure proto7
0029  SETTABLE  R1[K11('Destroy')] = R2
0030  GETTABUP  R1 = _ENV[K6('DBTableManager')]
0031  CLOSURE   R2 = closure proto8
0032  SETTABLE  R1[K12('SaveAllWhenLateUpdate')] = R2
0033  GETTABUP  R1 = _ENV[K6('DBTableManager')]
0034  CLOSURE   R2 = closure proto9
0035  SETTABLE  R1[K13('SaveAllImmediately')] = R2
0036  GETTABUP  R1 = _ENV[K6('DBTableManager')]
0037  CLOSURE   R2 = closure proto10
0038  SETTABLE  R1[K14('StoreSaveStatus')] = R2
0039  GETTABUP  R1 = _ENV[K6('DBTableManager')]
0040  CLOSURE   R2 = closure proto11
0041  SETTABLE  R1[K15('_TrySaveAll')] = R2
0042  GETTABUP  R1 = _ENV[K6('DBTableManager')]
0043  CLOSURE   R2 = closure proto12
0044  SETTABLE  R1[K16('_LoadTables')] = R2
0045  GETTABUP  R1 = _ENV[K6('DBTableManager')]
0046  CLOSURE   R2 = closure proto13
0047  SETTABLE  R1[K17('FlushTables')] = R2
0048  GETTABUP  R1 = _ENV[K6('DBTableManager')]
0049  CLOSURE   R2 = closure proto14
0050  SETTABLE  R1[K18('GetTable')] = R2
0051  GETTABUP  R1 = _ENV[K6('DBTableManager')]
0052  CLOSURE   R2 = closure proto15
0053  SETTABLE  R1[K19('Clear')] = R2
0054  GETTABUP  R1 = _ENV[K6('DBTableManager')]
0055  CLOSURE   R2 = closure proto16
0056  SETTABLE  R1[K20('HasSaveFailed')] = R2
0057  GETTABUP  R1 = _ENV[K6('DBTableManager')]
0058  CLOSURE   R2 = closure proto17
0059  SETTABLE  R1[K21('ConfirmDataSynced')] = R2
0060  GETTABUP  R1 = _ENV[K6('DBTableManager')]
0061  CLOSURE   R2 = closure proto18
0062  SETTABLE  R1[K22('SetData')] = R2
0063  GETTABUP  R1 = _ENV[K6('DBTableManager')]
0064  CLOSURE   R2 = closure proto19
0065  SETTABLE  R1[K23('IsCracked')] = R2
0066  GETTABUP  R1 = _ENV[K6('DBTableManager')]
0067  CLOSURE   R2 = closure proto20
0068  SETTABLE  R1[K24('GetFileSize')] = R2
0069  GETTABUP  R1 = _ENV[K6('DBTableManager')]
0070  CLOSURE   R2 = closure proto21
0071  SETTABLE  R1[K25('ResetFile')] = R2
0072  RETURN    return R0..R-1
; ---------- proto0 [_CreateDBTable] ----------
  ; fn ?  line 10-14 np=2 va=0 ms=6 code=9 consts=3 upvals=1 protos=0
  ;   K[0]='setmetatable'
  ;   K[1]='DBTable'
  ;   K[2]='Init'
  ;   upvals: _ENV
  ;   locals: self(0-9), tableConfig(0-9), instance(4-9)
  0000  GETTABUP  R2 = _ENV[K0('setmetatable')]
  0001  NEWTABLE  R3 = {} (0 items)
  0002  GETTABUP  R4 = _ENV[K1('DBTable')]
  0003  CALL      R2 = call(R2, 1 args, 2 rets)
  0004  SELF      R4 = R2[K2('Init')] (self)
  0005  MOVE      R5 = R0
  0006  CALL      R3 = call(R3, 0 args, 2 rets)
  0007  RETURN    return R2..R1
  0008  RETURN    return R0..R-1
; ---------- proto1 [Init] ----------
  ; fn ?  line 16-34 np=1 va=0 ms=11 code=39 consts=18 upvals=1 protos=0
  ;   K[0]='m_bSaveFailed'
  ;   K[1]='PlayerPrefs'
  ;   K[2]='GetInt'
  ;   K[3]='EPlayerPrefKey'
  ;   K[4]='DBSaveFailed'
  ;   K[5]=0
  ;   K[6]=1
  ;   K[7]='m_dbTables'
  ;   K[8]='pairs'
  ;   K[9]='EDBTableConfigs'
  ;   K[10]='name'
  ;   K[11]='_CreateDBTable'
  ;   K[12]='CreateFile'
  ;   K[13]='dataBase'
  ;   K[14]='IsEmpty'
  ;   K[15]='_LoadTables'
  ;   K[16]='m_bLoadFailed'
  ;   K[17]='_ResetInternal'
  ;   upvals: _ENV
  ;   locals: self(0-39), (for generator)(16-25), (for state)(16-25), (for control)(16-25), _(17-23), config(17-23), bHealth(34-36)
  0000  GETTABUP  R1 = _ENV[K1('PlayerPrefs')]
  0001  GETTABLE  R1 = R1[K2('GetInt')]
  0002  GETTABUP  R2 = _ENV[K3('EPlayerPrefKey')]
  0003  GETTABLE  R2 = R2[K4('DBSaveFailed')]
  0004  LOADK     R3 = K5 0
  0005  CALL      R1 = call(R1, 1 args, 2 rets)
  0006  EQ        if R1 eq K6(1)   -> -130290
  0007  JMP       (jump)   -> 9
  0008  LOADBOOL  R1 = false
  0009  LOADBOOL  R1 = true
  0010  SETTABLE  R0[K0('m_bSaveFailed')] = R1
  0011  NEWTABLE  R1 = {} (0 items)
  0012  SETTABLE  R0[K7('m_dbTables')] = R1
  0013  GETTABUP  R1 = _ENV[K8('pairs')]
  0014  GETTABUP  R2 = _ENV[K9('EDBTableConfigs')]
  0015  CALL      R1 = call(R1, 3 args, 1 rets)
  0016  JMP       (jump)   -> 23
  0017  GETTABLE  R6 = R0[K7('m_dbTables')]
  0018  GETTABLE  R7 = R5[K10('name')]
  0019  SELF      R9 = R0[K11('_CreateDBTable')] (self)
  0020  MOVE      R10 = R0
  0021  CALL      R8 = call(R8, 1 args, 2 rets)
  0022  SETTABLE  R6[R7] = R8
  0023  TFORCALL  tforcall R1
  0024  TFORLOOP  tforloop R3(sBx=-8)   -> 17
  0025  SELF      R2 = R0[K12('CreateFile')] (self)
  0026  CALL      R1 = call(R1, 0 args, 1 rets)
  0027  GETTABLE  R1 = R0[K13('dataBase')]
  0028  SELF      R2 = R1[K14('IsEmpty')] (self)
  0029  CALL      R1 = call(R1, 1 args, 1 rets)
  0030  TEST      if not R1 then   -> -131039
  0031  JMP       (jump)   -> 36
  0032  SELF      R2 = R0[K15('_LoadTables')] (self)
  0033  CALL      R1 = call(R1, 1 args, 1 rets)
  0034  NOT       R2 = not R0
  0035  SETTABLE  R0[K16('m_bLoadFailed')] = R2
  0036  SELF      R2 = R0[K17('_ResetInternal')] (self)
  0037  CALL      R1 = call(R1, 0 args, 1 rets)
  0038  RETURN    return R0..R-1
; ---------- proto2 [CreateFile] ----------
  ; fn ?  line 36-38 np=1 va=0 ms=3 code=6 consts=4 upvals=1 protos=0
  ;   K[0]='dataBase'
  ;   K[1]='EncryptedPersistentDict'
  ;   K[2]='Create'
  ;   K[3]='DBTableManager'
  ;   upvals: _ENV
  ;   locals: self(0-6)
  0000  GETTABUP  R1 = _ENV[K1('EncryptedPersistentDict')]
  0001  GETTABLE  R1 = R1[K2('Create')]
  0002  LOADK     R2 = K3 'DBTableManager'
  0003  CALL      R1 = call(R1, 1 args, 1 rets)
  0004  SETTABLE  R0[K0('dataBase')] = R1
  0005  RETURN    return R0..R-1
; ---------- proto3 [LateInit] ----------
  ; fn ?  line 40-46 np=1 va=0 ms=5 code=18 consts=9 upvals=1 protos=0
  ;   K[0]='m_bLoadFailed'
  ;   K[1]='GM'
  ;   K[2]='BIManager'
  ;   K[3]='LogProject'
  ;   K[4]='EBIProjectType'
  ;   K[5]='SQLite'
  ;   K[6]='Failed to load all tables'
  ;   K[7]='DBSize'
  ;   K[8]='m_mapDBSize'
  ;   upvals: _ENV
  ;   locals: self(0-18)
  0000  GETTABLE  R1 = R0[K0('m_bLoadFailed')]
  0001  TEST      if not R1 then   -> -131069
  0002  JMP       (jump)   -> 10
  0003  GETTABUP  R1 = _ENV[K1('GM')]
  0004  GETTABLE  R1 = R1[K2('BIManager')]
  0005  SELF      R2 = R1[K3('LogProject')] (self)
  0006  GETTABUP  R3 = _ENV[K4('EBIProjectType')]
  0007  GETTABLE  R3 = R3[K5('SQLite')]
  0008  LOADK     R4 = K6 'Failed to load all tables'
  0009  CALL      R1 = call(R1, 0 args, 3 rets)
  0010  GETTABUP  R1 = _ENV[K1('GM')]
  0011  GETTABLE  R1 = R1[K2('BIManager')]
  0012  SELF      R2 = R1[K3('LogProject')] (self)
  0013  GETTABUP  R3 = _ENV[K4('EBIProjectType')]
  0014  GETTABLE  R3 = R3[K7('DBSize')]
  0015  GETTABLE  R4 = R0[K8('m_mapDBSize')]
  0016  CALL      R1 = call(R1, 0 args, 3 rets)
  0017  RETURN    return R0..R-1
; ---------- proto4 [LateUpdate] ----------
  ; fn ?  line 48-54 np=1 va=0 ms=3 code=10 consts=4 upvals=1 protos=0
  ;   K[0]=0
  ;   K[1]='m_needSaveLateUpdate'
  ;   K[2]=true
  ;   K[3]='SaveAllImmediately'
  ;   upvals: transactionTime
  ;   locals: self(0-10)
  0000  GETUPVAL  R1 = transactionTime
  0001  EQ        if R1 eq K0(0)   -> -130301
  0002  JMP       (jump)   -> 7
  0003  GETTABLE  R1 = R0[K1('m_needSaveLateUpdate')]
  0004  EQ        if R1 eq K2(true)   -> -130296
  0005  JMP       (jump)   -> 7
  0006  RETURN    return R0..R-1
  0007  SELF      R2 = R0[K3('SaveAllImmediately')] (self)
  0008  CALL      R1 = call(R1, 0 args, 1 rets)
  0009  RETURN    return R0..R-1
; ---------- proto5 [UpdatePerSecond] ----------
  ; fn ?  line 56-64 np=1 va=0 ms=3 code=17 consts=5 upvals=1 protos=0
  ;   K[0]=0
  ;   K[1]='m_saveInterval'
  ;   K[2]=nil
  ;   K[3]=1
  ;   K[4]='SaveAllImmediately'
  ;   upvals: transactionTime
  ;   locals: self(0-17)
  0000  GETUPVAL  R1 = transactionTime
  0001  EQ        if R1 eq K0(0)   -> -130301
  0002  JMP       (jump)   -> 6
  0003  GETTABLE  R1 = R0[K1('m_saveInterval')]
  0004  EQ        if R0 eq K2(nil)   -> -130296
  0005  JMP       (jump)   -> 7
  0006  RETURN    return R0..R-1
  0007  GETTABLE  R1 = R0[K1('m_saveInterval')]
  0008  ADD       R1 = K3(1) add R1
  0009  SETTABLE  R0[K1('m_saveInterval')] = R1
  0010  GETTABLE  R1 = R0[K1('m_saveInterval')]
  0011  GETUPVAL  R2 = transactionTime
  0012  LT        if R0 lt R1   -> -130033
  0013  JMP       (jump)   -> 16
  0014  SELF      R2 = R0[K4('SaveAllImmediately')] (self)
  0015  CALL      R1 = call(R1, 0 args, 1 rets)
  0016  RETURN    return R0..R-1
; ---------- proto6 [_ResetInternal] ----------
  ; fn ?  line 66-68 np=1 va=0 ms=2 code=2 consts=2 upvals=0 protos=0
  ;   K[0]='m_saveInterval'
  ;   K[1]=0
  ;   locals: self(0-2)
  0000  SETTABLE  R0[K0('m_saveInterval')] = K1(0)
  0001  RETURN    return R0..R-1
; ---------- proto7 [Destroy] ----------
  ; fn ?  line 70-72 np=1 va=0 ms=3 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='SaveAllImmediately'
  ;   locals: self(0-3)
  0000  SELF      R2 = R0[K0('SaveAllImmediately')] (self)
  0001  CALL      R1 = call(R1, 0 args, 1 rets)
  0002  RETURN    return R0..R-1
; ---------- proto8 [SaveAllWhenLateUpdate] ----------
  ; fn ?  line 75-77 np=1 va=0 ms=2 code=2 consts=2 upvals=0 protos=0
  ;   K[0]='m_needSaveLateUpdate'
  ;   K[1]=true
  ;   locals: self(0-2)
  0000  SETTABLE  R0[K0('m_needSaveLateUpdate')] = K1(true)
  0001  RETURN    return R0..R-1
; ---------- proto9 [SaveAllImmediately] ----------
  ; fn ?  line 80-98 np=1 va=0 ms=5 code=25 consts=11 upvals=1 protos=0
  ;   K[0]='_TrySaveAll'
  ;   K[1]='_ResetInternal'
  ;   K[2]='m_needSaveLateUpdate'
  ;   K[3]=false
  ;   K[4]='m_bSaveFailed'
  ;   K[5]=nil
  ;   K[6]='StoreSaveStatus'
  ;   K[7]=true
  ;   K[8]='GM'
  ;   K[9]='SyncModel'
  ;   K[10]='CheckUpload'
  ;   upvals: _ENV
  ;   locals: self(0-25), saved(2-25)
  0000  SELF      R2 = R0[K0('_TrySaveAll')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  TEST      if not R1 then   -> -131068
  0003  JMP       (jump)   -> 12
  0004  SELF      R3 = R0[K1('_ResetInternal')] (self)
  0005  CALL      R2 = call(R2, 0 args, 1 rets)
  0006  SETTABLE  R0[K2('m_needSaveLateUpdate')] = K3(false)
  0007  SETTABLE  R0[K4('m_bSaveFailed')] = K5(nil)
  0008  SELF      R3 = R0[K6('StoreSaveStatus')] (self)
  0009  LOADBOOL  R4 = false
  0010  CALL      R2 = call(R2, 0 args, 2 rets)
  0011  JMP       (jump)   -> 24
  0012  SETTABLE  R0[K2('m_needSaveLateUpdate')] = K3(false)
  0013  GETTABLE  R2 = R0[K4('m_bSaveFailed')]
  0014  TEST      if not R2 then   -> -131055
  0015  JMP       (jump)   -> 24
  0016  SETTABLE  R0[K4('m_bSaveFailed')] = K7(true)
  0017  SELF      R3 = R0[K6('StoreSaveStatus')] (self)
  0018  LOADBOOL  R4 = true
  0019  CALL      R2 = call(R2, 0 args, 2 rets)
  0020  GETTABUP  R2 = _ENV[K8('GM')]
  0021  GETTABLE  R2 = R2[K9('SyncModel')]
  0022  SELF      R3 = R2[K10('CheckUpload')] (self)
  0023  CALL      R2 = call(R2, 0 args, 1 rets)
  0024  RETURN    return R0..R-1
; ---------- proto10 [StoreSaveStatus] ----------
  ; fn ?  line 100-102 np=2 va=0 ms=5 code=12 consts=6 upvals=1 protos=0
  ;   K[0]='PlayerPrefs'
  ;   K[1]='SetInt'
  ;   K[2]='EPlayerPrefKey'
  ;   K[3]='DBSaveFailed'
  ;   K[4]=1
  ;   K[5]=0
  ;   upvals: _ENV
  ;   locals: self(0-12), failed(0-12)
  0000  GETTABUP  R2 = _ENV[K0('PlayerPrefs')]
  0001  GETTABLE  R2 = R2[K1('SetInt')]
  0002  GETTABUP  R3 = _ENV[K2('EPlayerPrefKey')]
  0003  GETTABLE  R3 = R3[K3('DBSaveFailed')]
  0004  TEST      if not R1 then   -> -131066
  0005  JMP       (jump)   -> 9
  0006  LOADK     R4 = K4 1
  0007  TEST      if not R4 then   -> -131062
  0008  JMP       (jump)   -> 10
  0009  LOADK     R4 = K5 0
  0010  CALL      R2 = call(R2, 0 args, 2 rets)
  0011  RETURN    return R0..R-1
; ---------- proto11 [_TrySaveAll] ----------
  ; fn ?  line 104-136 np=2 va=0 ms=5 code=39 consts=12 upvals=1 protos=0
  ;   K[0]='GM'
  ;   K[1]='destroying'
  ;   K[2]='restartGameAction'
  ;   K[3]='EBIProjectType'
  ;   K[4]='RestartGameAction'
  ;   K[5]='UseServerData'
  ;   K[6]='DeleteAccountAlready'
  ;   K[7]='DeleteAccountSuccess'
  ;   K[8]='skipDBSerialize'
  ;   K[9]='FlushTables'
  ;   K[10]='dataBase'
  ;   K[11]='Serialize'
  ;   upvals: _ENV
  ;   locals: self(0-39), isAlwaysSerialize(0-39)
  0000  GETTABUP  R2 = _ENV[K0('GM')]
  0001  GETTABLE  R2 = R2[K1('destroying')]
  0002  TEST      if not R2 then   -> -131068
  0003  JMP       (jump)   -> 31
  0004  GETTABUP  R2 = _ENV[K0('GM')]
  0005  GETTABLE  R2 = R2[K2('restartGameAction')]
  0006  GETTABUP  R3 = _ENV[K3('EBIProjectType')]
  0007  GETTABLE  R3 = R3[K4('RestartGameAction')]
  0008  GETTABLE  R3 = R3[K5('UseServerData')]
  0009  EQ        if R1 eq R3   -> -130034
  0010  JMP       (jump)   -> 29
  0011  GETTABUP  R2 = _ENV[K0('GM')]
  0012  GETTABLE  R2 = R2[K2('restartGameAction')]
  0013  GETTABUP  R3 = _ENV[K3('EBIProjectType')]
  0014  GETTABLE  R3 = R3[K4('RestartGameAction')]
  0015  GETTABLE  R3 = R3[K6('DeleteAccountAlready')]
  0016  EQ        if R1 eq R3   -> -130027
  0017  JMP       (jump)   -> 29
  0018  GETTABUP  R2 = _ENV[K0('GM')]
  0019  GETTABLE  R2 = R2[K2('restartGameAction')]
  0020  GETTABUP  R3 = _ENV[K3('EBIProjectType')]
  0021  GETTABLE  R3 = R3[K4('RestartGameAction')]
  0022  GETTABLE  R3 = R3[K7('DeleteAccountSuccess')]
  0023  EQ        if R1 eq R3   -> -130020
  0024  JMP       (jump)   -> 29
  0025  GETTABUP  R2 = _ENV[K0('GM')]
  0026  GETTABLE  R2 = R2[K8('skipDBSerialize')]
  0027  TEST      if not R2 then   -> -131043
  0028  JMP       (jump)   -> 31
  0029  LOADBOOL  R2 = true
  0030  RETURN    return R2..R1
  0031  SELF      R3 = R0[K9('FlushTables')] (self)
  0032  MOVE      R4 = R0
  0033  CALL      R2 = call(R2, 0 args, 2 rets)
  0034  GETTABLE  R2 = R0[K10('dataBase')]
  0035  SELF      R3 = R2[K11('Serialize')] (self)
  0036  TAILCALL  tailcall(R2, 0)
  0037  RETURN    return R2..R1
  0038  RETURN    return R0..R-1
; ---------- proto12 [_LoadTables] ----------
  ; fn ?  line 139-157 np=1 va=0 ms=11 code=32 consts=10 upvals=1 protos=0
  ;   K[0]='m_mapDBSize'
  ;   K[1]='dataBase'
  ;   K[2]='GetContent'
  ;   K[3]='pairs'
  ;   K[4]='m_dbTables'
  ;   K[5]=nil
  ;   K[6]='Log'
  ;   K[7]='Error'
  ;   K[8]='数据表无法解析'
  ;   K[9]='FromJson'
  ;   upvals: _ENV
  ;   locals: self(0-32), tbContent(5-32), dbTable(6-32), (for generator)(9-29), (for state)(9-29), (for control)(9-29), dbName(10-27), value(10-27), size(25-27)
  0000  NEWTABLE  R1 = {} (0 items)
  0001  SETTABLE  R0[K0('m_mapDBSize')] = R1
  0002  GETTABLE  R1 = R0[K1('dataBase')]
  0003  SELF      R2 = R1[K2('GetContent')] (self)
  0004  CALL      R1 = call(R1, 1 args, 1 rets)
  0005  LOADNIL   R2..R2 = nil
  0006  GETTABUP  R3 = _ENV[K3('pairs')]
  0007  MOVE      R4 = R0
  0008  CALL      R3 = call(R3, 3 args, 1 rets)
  0009  JMP       (jump)   -> 27
  0010  GETTABLE  R8 = R0[K4('m_dbTables')]
  0011  GETTABLE  R2 = R8[R6]
  0012  EQ        if R0 eq K5(nil)   -> -129773
  0013  JMP       (jump)   -> 21
  0014  GETTABUP  R8 = _ENV[K6('Log')]
  0015  GETTABLE  R8 = R8[K7('Error')]
  0016  MOVE      R9 = R0
  0017  LOADK     R10 = K8 '数据表无法解析'
  0018  CONCAT    R9 = concat(R9..R9)
  0019  CALL      R8 = call(R8, 0 args, 1 rets)
  0020  JMP       (jump)   -> 27
  0021  SELF      R9 = R2[K9('FromJson')] (self)
  0022  MOVE      R10 = R0
  0023  CALL      R8 = call(R8, 0 args, 2 rets)
  0024  LEN       R8 = len R0
  0025  GETTABLE  R9 = R0[K0('m_mapDBSize')]
  0026  SETTABLE  R9[R6] = R8
  0027  TFORCALL  tforcall R3
  0028  TFORLOOP  tforloop R5(sBx=-19)   -> 10
  0029  LOADBOOL  R3 = true
  0030  RETURN    return R3..R2
  0031  RETURN    return R0..R-1
; ---------- proto13 [FlushTables] ----------
  ; fn ?  line 159-163 np=2 va=0 ms=10 code=10 consts=3 upvals=1 protos=0
  ;   K[0]='pairs'
  ;   K[1]='m_dbTables'
  ;   K[2]='CheckContent'
  ;   upvals: _ENV
  ;   locals: self(0-10), isAlwaysSerialize(0-10), (for generator)(3-9), (for state)(3-9), (for control)(3-9), _(4-7), dbTable(4-7)
  0000  GETTABUP  R2 = _ENV[K0('pairs')]
  0001  GETTABLE  R3 = R0[K1('m_dbTables')]
  0002  CALL      R2 = call(R2, 3 args, 1 rets)
  0003  JMP       (jump)   -> 7
  0004  SELF      R8 = R6[K2('CheckContent')] (self)
  0005  MOVE      R9 = R0
  0006  CALL      R7 = call(R7, 0 args, 2 rets)
  0007  TFORCALL  tforcall R2
  0008  TFORLOOP  tforloop R4(sBx=-5)   -> 4
  0009  RETURN    return R0..R-1
; ---------- proto14 [GetTable] ----------
  ; fn ?  line 165-176 np=2 va=0 ms=6 code=24 consts=8 upvals=1 protos=0
  ;   K[0]='m_dbTables'
  ;   K[1]='name'
  ;   K[2]=nil
  ;   K[3]='Log'
  ;   K[4]='Warning'
  ;   K[5]='Please create table '
  ;   K[6]='FromJson'
  ;   K[7]=''
  ;   upvals: _ENV
  ;   locals: self(0-24), tableConfig(0-24), dbTable(8-24)
  0000  GETTABLE  R2 = R0[K0('m_dbTables')]
  0001  TEST      if not R2 then   -> -131068
  0002  JMP       (jump)   -> 4
  0003  NEWTABLE  R2 = {} (0 items)
  0004  SETTABLE  R0[K0('m_dbTables')] = R2
  0005  GETTABLE  R2 = R0[K0('m_dbTables')]
  0006  GETTABLE  R3 = R1[K1('name')]
  0007  GETTABLE  R2 = R2[R3]
  0008  EQ        if R0 eq K2(nil)   -> -129780
  0009  JMP       (jump)   -> 22
  0010  GETTABUP  R3 = _ENV[K3('Log')]
  0011  GETTABLE  R3 = R3[K4('Warning')]
  0012  LOADK     R4 = K5 'Please create table '
  0013  GETTABLE  R5 = R1[K1('name')]
  0014  CONCAT    R4 = concat(R4..R4)
  0015  CALL      R3 = call(R3, 0 args, 1 rets)
  0016  SELF      R4 = R2[K6('FromJson')] (self)
  0017  LOADK     R5 = K7 ''
  0018  CALL      R3 = call(R3, 0 args, 2 rets)
  0019  GETTABLE  R3 = R0[K0('m_dbTables')]
  0020  GETTABLE  R4 = R1[K1('name')]
  0021  SETTABLE  R3[R4] = R2
  0022  RETURN    return R2..R1
  0023  RETURN    return R0..R-1
; ---------- proto15 [Clear] ----------
  ; fn ?  line 178-195 np=1 va=0 ms=10 code=35 consts=9 upvals=1 protos=0
  ;   K[0]='m_dbTables'
  ;   K[1]='EDBTableConfigs'
  ;   K[2]='Test'
  ;   K[3]='name'
  ;   K[4]='pairs'
  ;   K[5]='tableName'
  ;   K[6]='Clear'
  ;   K[7]='dataBase'
  ;   K[8]='CheckContent'
  ;   upvals: _ENV
  ;   locals: self(0-35), testDBName(12-35), testDBTable(13-35), (for generator)(16-26), (for state)(16-26), (for control)(16-26), _(17-24), dbTable(17-24)
  0000  GETTABLE  R1 = R0[K0('m_dbTables')]
  0001  TEST      if not R1 then   -> -131068
  0002  JMP       (jump)   -> 4
  0003  NEWTABLE  R1 = {} (0 items)
  0004  SETTABLE  R0[K0('m_dbTables')] = R1
  0005  GETTABUP  R1 = _ENV[K1('EDBTableConfigs')]
  0006  GETTABLE  R1 = R1[K2('Test')]
  0007  TEST      if not R1 then   -> -131063
  0008  JMP       (jump)   -> 12
  0009  GETTABUP  R1 = _ENV[K1('EDBTableConfigs')]
  0010  GETTABLE  R1 = R1[K2('Test')]
  0011  GETTABLE  R1 = R1[K3('name')]
  0012  LOADNIL   R2..R2 = nil
  0013  GETTABUP  R3 = _ENV[K4('pairs')]
  0014  GETTABLE  R4 = R0[K0('m_dbTables')]
  0015  CALL      R3 = call(R3, 3 args, 1 rets)
  0016  JMP       (jump)   -> 24
  0017  GETTABLE  R8 = R7[K5('tableName')]
  0018  EQ        if R1 eq R1   -> -126955
  0019  JMP       (jump)   -> 23
  0020  SELF      R9 = R7[K6('Clear')] (self)
  0021  CALL      R8 = call(R8, 0 args, 1 rets)
  0022  JMP       (jump)   -> 24
  0023  MOVE      R2 = R0
  0024  TFORCALL  tforcall R3
  0025  TFORLOOP  tforloop R5(sBx=-9)   -> 17
  0026  GETTABLE  R3 = R0[K7('dataBase')]
  0027  SELF      R4 = R3[K6('Clear')] (self)
  0028  CALL      R3 = call(R3, 0 args, 1 rets)
  0029  TEST      if not R2 then   -> -131041
  0030  JMP       (jump)   -> 34
  0031  SELF      R4 = R2[K8('CheckContent')] (self)
  0032  LOADBOOL  R5 = true
  0033  CALL      R3 = call(R3, 0 args, 2 rets)
  0034  RETURN    return R0..R-1
; ---------- proto16 [HasSaveFailed] ----------
  ; fn ?  line 197-199 np=1 va=0 ms=2 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='m_bSaveFailed'
  ;   locals: self(0-3)
  0000  GETTABLE  R1 = R0[K0('m_bSaveFailed')]
  0001  RETURN    return R1..R0
  0002  RETURN    return R0..R-1
; ---------- proto17 [ConfirmDataSynced] ----------
  ; fn ?  line 201-205 np=1 va=0 ms=8 code=9 consts=3 upvals=1 protos=0
  ;   K[0]='pairs'
  ;   K[1]='m_dbTables'
  ;   K[2]='ConfirmDataSynced'
  ;   upvals: _ENV
  ;   locals: self(0-9), (for generator)(3-8), (for state)(3-8), (for control)(3-8), _(4-6), dbTable(4-6)
  0000  GETTABUP  R1 = _ENV[K0('pairs')]
  0001  GETTABLE  R2 = R0[K1('m_dbTables')]
  0002  CALL      R1 = call(R1, 3 args, 1 rets)
  0003  JMP       (jump)   -> 6
  0004  SELF      R7 = R5[K2('ConfirmDataSynced')] (self)
  0005  CALL      R6 = call(R6, 0 args, 1 rets)
  0006  TFORCALL  tforcall R1
  0007  TFORLOOP  tforloop R3(sBx=-4)   -> 4
  0008  RETURN    return R0..R-1
; ---------- proto18 [SetData] ----------
  ; fn ?  line 207-209 np=3 va=0 ms=9 code=9 consts=4 upvals=0 protos=0
  ;   K[0]='dataBase'
  ;   K[1]='Set'
  ;   K[2]='tableName'
  ;   K[3]='ToJson'
  ;   locals: self(0-9), dbTable(0-9), isAlwaysSerialize(0-9)
  0000  GETTABLE  R3 = R0[K0('dataBase')]
  0001  SELF      R4 = R3[K1('Set')] (self)
  0002  GETTABLE  R5 = R1[K2('tableName')]
  0003  SELF      R7 = R1[K3('ToJson')] (self)
  0004  MOVE      R8 = R0
  0005  CALL      R6 = call(R6, 1 args, 2 rets)
  0006  LOADBOOL  R7 = true
  0007  CALL      R3 = call(R3, 0 args, 4 rets)
  0008  RETURN    return R0..R-1
; ---------- proto19 [IsCracked] ----------
  ; fn ?  line 212-214 np=1 va=0 ms=3 code=8 consts=3 upvals=0 protos=0
  ;   K[0]='dataBase'
  ;   K[1]='IsCracked'
  ;   K[2]='m_bLoadFailed'
  ;   locals: self(0-8)
  0000  GETTABLE  R1 = R0[K0('dataBase')]
  0001  SELF      R2 = R1[K1('IsCracked')] (self)
  0002  CALL      R1 = call(R1, 1 args, 1 rets)
  0003  TEST      if not R1 then   -> -131066
  0004  JMP       (jump)   -> 6
  0005  GETTABLE  R1 = R0[K2('m_bLoadFailed')]
  0006  RETURN    return R1..R0
  0007  RETURN    return R0..R-1
; ---------- proto20 [GetFileSize] ----------
  ; fn ?  line 216-222 np=1 va=0 ms=3 code=11 consts=3 upvals=0 protos=0
  ;   K[0]='dataBase'
  ;   K[1]='GetFileSize'
  ;   K[2]=0
  ;   locals: self(0-11)
  0000  GETTABLE  R1 = R0[K0('dataBase')]
  0001  TEST      if not R1 then   -> -131069
  0002  JMP       (jump)   -> 8
  0003  GETTABLE  R1 = R0[K0('dataBase')]
  0004  SELF      R2 = R1[K1('GetFileSize')] (self)
  0005  TAILCALL  tailcall(R1, 0)
  0006  RETURN    return R1..R0
  0007  JMP       (jump)   -> 10
  0008  LOADK     R1 = K2 0
  0009  RETURN    return R1..R0
  0010  RETURN    return R0..R-1
; ---------- proto21 [ResetFile] ----------
  ; fn ?  line 225-229 np=1 va=0 ms=3 code=7 consts=2 upvals=0 protos=0
  ;   K[0]='dataBase'
  ;   K[1]='ResetFile'
  ;   locals: self(0-7)
  0000  GETTABLE  R1 = R0[K0('dataBase')]
  0001  TEST      if not R1 then   -> -131069
  0002  JMP       (jump)   -> 6
  0003  GETTABLE  R1 = R0[K0('dataBase')]
  0004  SELF      R2 = R1[K1('ResetFile')] (self)
  0005  CALL      R1 = call(R1, 0 args, 1 rets)
  0006  RETURN    return R0..R-1
