# Model_Network_Sso_SsoManager_42.luac
; fn @SsoManager.lua  line 0-0 np=0 va=1 ms=2 code=48 consts=16 upvals=1 protos=14
;   K[0]='SsoManager'
;   K[1]='__index'
;   K[2]='Init'
;   K[3]='LateInit'
;   K[4]='SaveRegisterIdfa'
;   K[5]='GetToken'
;   K[6]='GetSession'
;   K[7]='SetToken'
;   K[8]='OnTokenExpired'
;   K[9]='Register'
;   K[10]='SendRequest'
;   K[11]='WaitForToken'
;   K[12]='_ResendPendingRequests'
;   K[13]='_FailPendingRequests'
;   K[14]='ThrowPendingRequests'
;   K[15]='SendDeleteUserRequest'
;   upvals: _ENV
0000  NEWTABLE  R0 = {} (0 items)
0001  SETTABUP  _ENV[K0('SsoManager')] = R0
0002  GETTABUP  R0 = _ENV[K0('SsoManager')]
0003  GETTABUP  R1 = _ENV[K0('SsoManager')]
0004  SETTABLE  R0[K1('__index')] = R1
0005  GETTABUP  R0 = _ENV[K0('SsoManager')]
0006  CLOSURE   R1 = closure proto0
0007  SETTABLE  R0[K2('Init')] = R1
0008  GETTABUP  R0 = _ENV[K0('SsoManager')]
0009  CLOSURE   R1 = closure proto1
0010  SETTABLE  R0[K3('LateInit')] = R1
0011  GETTABUP  R0 = _ENV[K0('SsoManager')]
0012  CLOSURE   R1 = closure proto2
0013  SETTABLE  R0[K4('SaveRegisterIdfa')] = R1
0014  GETTABUP  R0 = _ENV[K0('SsoManager')]
0015  CLOSURE   R1 = closure proto3
0016  SETTABLE  R0[K5('GetToken')] = R1
0017  GETTABUP  R0 = _ENV[K0('SsoManager')]
0018  CLOSURE   R1 = closure proto4
0019  SETTABLE  R0[K6('GetSession')] = R1
0020  GETTABUP  R0 = _ENV[K0('SsoManager')]
0021  CLOSURE   R1 = closure proto5
0022  SETTABLE  R0[K7('SetToken')] = R1
0023  GETTABUP  R0 = _ENV[K0('SsoManager')]
0024  CLOSURE   R1 = closure proto6
0025  SETTABLE  R0[K8('OnTokenExpired')] = R1
0026  GETTABUP  R0 = _ENV[K0('SsoManager')]
0027  CLOSURE   R1 = closure proto7
0028  SETTABLE  R0[K9('Register')] = R1
0029  GETTABUP  R0 = _ENV[K0('SsoManager')]
0030  CLOSURE   R1 = closure proto8
0031  SETTABLE  R0[K10('SendRequest')] = R1
0032  GETTABUP  R0 = _ENV[K0('SsoManager')]
0033  CLOSURE   R1 = closure proto9
0034  SETTABLE  R0[K11('WaitForToken')] = R1
0035  GETTABUP  R0 = _ENV[K0('SsoManager')]
0036  CLOSURE   R1 = closure proto10
0037  SETTABLE  R0[K12('_ResendPendingRequests')] = R1
0038  GETTABUP  R0 = _ENV[K0('SsoManager')]
0039  CLOSURE   R1 = closure proto11
0040  SETTABLE  R0[K13('_FailPendingRequests')] = R1
0041  GETTABUP  R0 = _ENV[K0('SsoManager')]
0042  CLOSURE   R1 = closure proto12
0043  SETTABLE  R0[K14('ThrowPendingRequests')] = R1
0044  GETTABUP  R0 = _ENV[K0('SsoManager')]
0045  CLOSURE   R1 = closure proto13
0046  SETTABLE  R0[K15('SendDeleteUserRequest')] = R1
0047  RETURN    return R0..R-1
; ---------- proto0 [Init] ----------
  ; fn ?  line 4-8 np=1 va=0 ms=2 code=5 consts=5 upvals=0 protos=0
  ;   K[0]='m_arrPendingReqs'
  ;   K[1]='m_bIsRequesting'
  ;   K[2]=false
  ;   K[3]='m_session'
  ;   K[4]=0
  ;   locals: self(0-5)
  0000  NEWTABLE  R1 = {} (0 items)
  0001  SETTABLE  R0[K0('m_arrPendingReqs')] = R1
  0002  SETTABLE  R0[K1('m_bIsRequesting')] = K2(false)
  0003  SETTABLE  R0[K3('m_session')] = K4(0)
  0004  RETURN    return R0..R-1
; ---------- proto1 [LateInit] ----------
  ; fn ?  line 10-31 np=1 va=0 ms=7 code=27 consts=14 upvals=1 protos=1
  ;   K[0]='GM'
  ;   K[1]='UserModel'
  ;   K[2]='newInstallUser'
  ;   K[3]='DeviceInfo'
  ;   K[4]='IsSystemIOS'
  ;   K[5]='PlayerPrefs'
  ;   K[6]='GetString'
  ;   K[7]='EPlayerPrefKey'
  ;   K[8]='SsoRegisterIdfa'
  ;   K[9]=''
  ;   K[10]='Scheduler'
  ;   K[11]='Schedule'
  ;   K[12]=2
  ;   K[13]=60
  ;   upvals: _ENV
  ;   locals: self(0-27), scheduler(19-26)
  0000  GETTABUP  R1 = _ENV[K0('GM')]
  0001  GETTABLE  R1 = R1[K1('UserModel')]
  0002  GETTABLE  R1 = R1[K2('newInstallUser')]
  0003  TEST      if not R1 then   -> -131067
  0004  JMP       (jump)   -> 26
  0005  GETTABUP  R1 = _ENV[K3('DeviceInfo')]
  0006  GETTABLE  R1 = R1[K4('IsSystemIOS')]
  0007  CALL      R1 = call(R1, 1 args, 0 rets)
  0008  TEST      if not R1 then   -> -131061
  0009  JMP       (jump)   -> 26
  0010  GETTABUP  R1 = _ENV[K5('PlayerPrefs')]
  0011  GETTABLE  R1 = R1[K6('GetString')]
  0012  GETTABUP  R2 = _ENV[K7('EPlayerPrefKey')]
  0013  GETTABLE  R2 = R2[K8('SsoRegisterIdfa')]
  0014  LOADK     R3 = K9 ''
  0015  CALL      R1 = call(R1, 1 args, 2 rets)
  0016  EQ        if R0 eq K9('')   -> -130277
  0017  JMP       (jump)   -> 26
  0018  CLOSURE   R1 = closure proto0
  0019  GETTABUP  R2 = _ENV[K10('Scheduler')]
  0020  GETTABLE  R2 = R2[K11('Schedule')]
  0021  MOVE      R3 = R0
  0022  MOVE      R4 = R0
  0023  LOADK     R5 = K12 2
  0024  LOADK     R6 = K13 60
  0025  CALL      R2 = call(R2, 0 args, 4 rets)
  0026  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 16-28 np=0 va=0 ms=4 code=48 consts=17 upvals=2 protos=0
    ;   K[0]='DeviceInfo'
    ;   K[1]='GetAdvertisingIdentifier'
    ;   K[2]=''
    ;   K[3]='PlayerPrefs'
    ;   K[4]='GetString'
    ;   K[5]='EPlayerPrefKey'
    ;   K[6]='SsoRegisterIdfa'
    ;   K[7]='m_bIsRequesting'
    ;   K[8]='Log'
    ;   K[9]='Info'
    ;   K[10]='SSO register again to sync idfa'
    ;   K[11]='Register'
    ;   K[12]='Scheduler'
    ;   K[13]='UnscheduleTarget'
    ;   K[14]='CSFirebaseManager'
    ;   K[15]='SetUserProperty'
    ;   K[16]='idfa'
    ;   upvals: _ENV, self
    0000  GETTABUP  R0 = _ENV[K0('DeviceInfo')]
    0001  GETTABLE  R0 = R0[K1('GetAdvertisingIdentifier')]
    0002  CALL      R0 = call(R0, 1 args, 0 rets)
    0003  EQ        if R1 eq K2('')   -> -130809
    0004  JMP       (jump)   -> 35
    0005  GETTABUP  R0 = _ENV[K3('PlayerPrefs')]
    0006  GETTABLE  R0 = R0[K4('GetString')]
    0007  GETTABUP  R1 = _ENV[K5('EPlayerPrefKey')]
    0008  GETTABLE  R1 = R1[K6('SsoRegisterIdfa')]
    0009  LOADK     R2 = K2 ''
    0010  CALL      R0 = call(R0, 1 args, 2 rets)
    0011  EQ        if R0 eq K2('')   -> -130801
    0012  JMP       (jump)   -> 35
    0013  GETTABUP  R0 = self[K7('m_bIsRequesting')]
    0014  TEST      if not R0 then   -> -131055
    0015  JMP       (jump)   -> 35
    0016  GETTABUP  R0 = _ENV[K8('Log')]
    0017  GETTABLE  R0 = R0[K9('Info')]
    0018  LOADK     R1 = K10 'SSO register again to sync idfa'
    0019  CALL      R0 = call(R0, 0 args, 1 rets)
    0020  GETUPVAL  R0 = _ENV
    0021  SELF      R1 = R0[K11('Register')] (self)
    0022  CALL      R0 = call(R0, 0 args, 1 rets)
    0023  GETTABUP  R0 = _ENV[K12('Scheduler')]
    0024  GETTABLE  R0 = R0[K13('UnscheduleTarget')]
    0025  GETUPVAL  R1 = _ENV
    0026  CALL      R0 = call(R0, 0 args, 1 rets)
    0027  GETTABUP  R0 = _ENV[K14('CSFirebaseManager')]
    0028  SELF      R1 = R0[K15('SetUserProperty')] (self)
    0029  LOADK     R2 = K16 'idfa'
    0030  GETTABUP  R3 = _ENV[K0('DeviceInfo')]
    0031  GETTABLE  R3 = R3[K1('GetAdvertisingIdentifier')]
    0032  CALL      R3 = call(R3, -1 args, 0 rets)
    0033  CALL      R0 = call(R0, 0 args, -1 rets)
    0034  JMP       (jump)   -> 47
    0035  GETTABUP  R0 = _ENV[K3('PlayerPrefs')]
    0036  GETTABLE  R0 = R0[K4('GetString')]
    0037  GETTABUP  R1 = _ENV[K5('EPlayerPrefKey')]
    0038  GETTABLE  R1 = R1[K6('SsoRegisterIdfa')]
    0039  LOADK     R2 = K2 ''
    0040  CALL      R0 = call(R0, 1 args, 2 rets)
    0041  EQ        if R1 eq K2('')   -> -130771
    0042  JMP       (jump)   -> 47
    0043  GETTABUP  R0 = _ENV[K12('Scheduler')]
    0044  GETTABLE  R0 = R0[K13('UnscheduleTarget')]
    0045  GETUPVAL  R1 = _ENV
    0046  CALL      R0 = call(R0, 0 args, 1 rets)
    0047  RETURN    return R0..R-1
; ---------- proto2 [SaveRegisterIdfa] ----------
  ; fn ?  line 33-35 np=2 va=0 ms=5 code=7 consts=4 upvals=1 protos=0
  ;   K[0]='PlayerPrefs'
  ;   K[1]='SetString'
  ;   K[2]='EPlayerPrefKey'
  ;   K[3]='SsoRegisterIdfa'
  ;   upvals: _ENV
  ;   locals: self(0-7), idfa(0-7)
  0000  GETTABUP  R2 = _ENV[K0('PlayerPrefs')]
  0001  GETTABLE  R2 = R2[K1('SetString')]
  0002  GETTABUP  R3 = _ENV[K2('EPlayerPrefKey')]
  0003  GETTABLE  R3 = R3[K3('SsoRegisterIdfa')]
  0004  MOVE      R4 = R0
  0005  CALL      R2 = call(R2, 0 args, 2 rets)
  0006  RETURN    return R0..R-1
; ---------- proto3 [GetToken] ----------
  ; fn ?  line 38-40 np=1 va=0 ms=4 code=11 consts=6 upvals=1 protos=0
  ;   K[0]='GM'
  ;   K[1]='UserModel'
  ;   K[2]='Get'
  ;   K[3]='EUserLocalDataKey'
  ;   K[4]='SSOToken'
  ;   K[5]=''
  ;   upvals: _ENV
  ;   locals: self(0-11)
  0000  GETTABUP  R1 = _ENV[K0('GM')]
  0001  GETTABLE  R1 = R1[K1('UserModel')]
  0002  SELF      R2 = R1[K2('Get')] (self)
  0003  GETTABUP  R3 = _ENV[K3('EUserLocalDataKey')]
  0004  GETTABLE  R3 = R3[K4('SSOToken')]
  0005  CALL      R1 = call(R1, 1 args, 2 rets)
  0006  TEST      if not R1 then   -> -131063
  0007  JMP       (jump)   -> 9
  0008  LOADK     R1 = K5 ''
  0009  RETURN    return R1..R0
  0010  RETURN    return R0..R-1
; ---------- proto4 [GetSession] ----------
  ; fn ?  line 43-45 np=1 va=0 ms=2 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='m_session'
  ;   locals: self(0-3)
  0000  GETTABLE  R1 = R0[K0('m_session')]
  0001  RETURN    return R1..R0
  0002  RETURN    return R0..R-1
; ---------- proto5 [SetToken] ----------
  ; fn ?  line 48-50 np=2 va=0 ms=6 code=8 consts=5 upvals=1 protos=0
  ;   K[0]='GM'
  ;   K[1]='UserModel'
  ;   K[2]='Set'
  ;   K[3]='EUserLocalDataKey'
  ;   K[4]='SSOToken'
  ;   upvals: _ENV
  ;   locals: self(0-8), strToken(0-8)
  0000  GETTABUP  R2 = _ENV[K0('GM')]
  0001  GETTABLE  R2 = R2[K1('UserModel')]
  0002  SELF      R3 = R2[K2('Set')] (self)
  0003  GETTABUP  R4 = _ENV[K3('EUserLocalDataKey')]
  0004  GETTABLE  R4 = R4[K4('SSOToken')]
  0005  MOVE      R5 = R0
  0006  CALL      R2 = call(R2, 0 args, 3 rets)
  0007  RETURN    return R0..R-1
; ---------- proto6 [OnTokenExpired] ----------
  ; fn ?  line 53-86 np=4 va=0 ms=9 code=52 consts=17 upvals=1 protos=0
  ;   K[0]='Log'
  ;   K[1]='Info'
  ;   K[2]='SsoManager:OnTokenExpired'
  ;   K[3]='StringUtil'
  ;   K[4]='IsNilOrEmpty'
  ;   K[5]=nil
  ;   K[6]='Discard'
  ;   K[7]='GetToken'
  ;   K[8]='SetToken'
  ;   K[9]=''
  ;   K[10]='WaitForToken'
  ;   K[11]='Register'
  ;   K[12]='m_session'
  ;   K[13]='SetHeader'
  ;   K[14]='NetworkConfig'
  ;   K[15]='TokenHeaderKey'
  ;   K[16]='Send'
  ;   upvals: _ENV
  ;   locals: self(0-52), oldToken(0-52), reqCtx(0-52), session(0-52), strToken(17-52)
  0000  GETTABUP  R4 = _ENV[K0('Log')]
  0001  GETTABLE  R4 = R4[K1('Info')]
  0002  LOADK     R5 = K2 'SsoManager:OnTokenExpired'
  0003  CALL      R4 = call(R4, 0 args, 1 rets)
  0004  GETTABUP  R4 = _ENV[K3('StringUtil')]
  0005  GETTABLE  R4 = R4[K4('IsNilOrEmpty')]
  0006  MOVE      R5 = R0
  0007  CALL      R4 = call(R4, 1 args, 1 rets)
  0008  TEST      if not R4 then   -> -131062
  0009  JMP       (jump)   -> 15
  0010  EQ        if R1 eq K5(nil)   -> -129775
  0011  JMP       (jump)   -> 14
  0012  SELF      R5 = R2[K6('Discard')] (self)
  0013  CALL      R4 = call(R4, 0 args, 1 rets)
  0014  RETURN    return R0..R-1
  0015  SELF      R5 = R0[K7('GetToken')] (self)
  0016  CALL      R4 = call(R4, 1 args, 1 rets)
  0017  EQ        if R0 eq R1   -> -129004
  0018  JMP       (jump)   -> 30
  0019  SELF      R6 = R0[K8('SetToken')] (self)
  0020  LOADK     R7 = K9 ''
  0021  CALL      R5 = call(R5, 0 args, 2 rets)
  0022  EQ        if R1 eq K5(nil)   -> -129763
  0023  JMP       (jump)   -> 27
  0024  SELF      R6 = R0[K10('WaitForToken')] (self)
  0025  MOVE      R7 = R0
  0026  CALL      R5 = call(R5, 0 args, 2 rets)
  0027  SELF      R6 = R0[K11('Register')] (self)
  0028  CALL      R5 = call(R5, 0 args, 1 rets)
  0029  JMP       (jump)   -> 51
  0030  EQ        if R1 eq K5(nil)   -> -129755
  0031  JMP       (jump)   -> 51
  0032  EQ        if R0 eq K9('')   -> -128725
  0033  JMP       (jump)   -> 38
  0034  SELF      R6 = R0[K10('WaitForToken')] (self)
  0035  MOVE      R7 = R0
  0036  CALL      R5 = call(R5, 0 args, 2 rets)
  0037  JMP       (jump)   -> 51
  0038  GETTABLE  R5 = R0[K12('m_session')]
  0039  EQ        if R1 eq R5   -> -129490
  0040  JMP       (jump)   -> 44
  0041  SELF      R6 = R2[K6('Discard')] (self)
  0042  CALL      R5 = call(R5, 0 args, 1 rets)
  0043  JMP       (jump)   -> 51
  0044  SELF      R6 = R2[K13('SetHeader')] (self)
  0045  GETTABUP  R7 = _ENV[K14('NetworkConfig')]
  0046  GETTABLE  R7 = R7[K15('TokenHeaderKey')]
  0047  MOVE      R8 = R0
  0048  CALL      R5 = call(R5, 0 args, 3 rets)
  0049  SELF      R6 = R2[K16('Send')] (self)
  0050  CALL      R5 = call(R5, 0 args, 1 rets)
  0051  RETURN    return R0..R-1
; ---------- proto7 [Register] ----------
  ; fn ?  line 88-163 np=4 va=0 ms=14 code=49 consts=19 upvals=1 protos=2
  ;   K[0]='m_bIsRequesting'
  ;   K[1]='NetTimeStamp'
  ;   K[2]='Create'
  ;   K[3]='EBIType'
  ;   K[4]='NetworkCheckAction'
  ;   K[5]='StartSSO'
  ;   K[6]='GM'
  ;   K[7]='BIManager'
  ;   K[8]='LogNet'
  ;   K[9]=true
  ;   K[10]='SsoMessage'
  ;   K[11]='GenerateRequest'
  ;   K[12]='ESsoActionType'
  ;   K[13]='Lookup'
  ;   K[14]='ESsoSocialType'
  ;   K[15]='Device'
  ;   K[16]='installationId'
  ;   K[17]='SendByHttp'
  ;   K[18]=''
  ;   upvals: _ENV
  ;   locals: self(0-49), callback(0-49), isLoading(0-49), installId(0-49), startTime(17-49), request(34-49)
  0000  TEST      if not R1 then   -> -131069
  0001  JMP       (jump)   -> 4
  0002  CLOSURE   R4 = closure proto0
  0003  MOVE      R1 = R0
  0004  GETTABLE  R4 = R0[K0('m_bIsRequesting')]
  0005  TEST      if not R4 then   -> -131065
  0006  JMP       (jump)   -> 11
  0007  MOVE      R4 = R0
  0008  LOADBOOL  R5 = false
  0009  CALL      R4 = call(R4, 0 args, 1 rets)
  0010  RETURN    return R0..R-1
  0011  GETTABUP  R4 = _ENV[K1('NetTimeStamp')]
  0012  GETTABLE  R4 = R4[K2('Create')]
  0013  GETTABUP  R5 = _ENV[K3('EBIType')]
  0014  GETTABLE  R5 = R5[K4('NetworkCheckAction')]
  0015  GETTABLE  R5 = R5[K5('StartSSO')]
  0016  CALL      R4 = call(R4, 1 args, 1 rets)
  0017  GETTABUP  R5 = _ENV[K6('GM')]
  0018  GETTABLE  R5 = R5[K7('BIManager')]
  0019  SELF      R6 = R5[K8('LogNet')] (self)
  0020  GETTABUP  R7 = _ENV[K3('EBIType')]
  0021  GETTABLE  R7 = R7[K4('NetworkCheckAction')]
  0022  GETTABLE  R7 = R7[K5('StartSSO')]
  0023  LOADNIL   R8..R8 = nil
  0024  MOVE      R11 = R0
  0025  CALL      R5 = call(R5, 0 args, 6 rets)
  0026  SETTABLE  R0[K0('m_bIsRequesting')] = K9(true)
  0027  GETTABUP  R5 = _ENV[K10('SsoMessage')]
  0028  GETTABLE  R5 = R5[K11('GenerateRequest')]
  0029  GETTABUP  R6 = _ENV[K12('ESsoActionType')]
  0030  GETTABLE  R6 = R6[K13('Lookup')]
  0031  GETTABUP  R7 = _ENV[K14('ESsoSocialType')]
  0032  GETTABLE  R7 = R7[K15('Device')]
  0033  CALL      R5 = call(R5, 1 args, 2 rets)
  0034  TESTSET   if R1 then R6   -> -129499
  0035  JMP       (jump)   -> 37
  0036  GETTABLE  R6 = R5[K16('installationId')]
  0037  SETTABLE  R5[K16('installationId')] = R6
  0038  GETTABUP  R6 = _ENV[K10('SsoMessage')]
  0039  GETTABLE  R6 = R6[K17('SendByHttp')]
  0040  MOVE      R7 = R0
  0041  LOADK     R8 = K18 ''
  0042  CLOSURE   R9 = closure proto1
  0043  LOADBOOL  R10 = false
  0044  LOADBOOL  R11 = true
  0045  LOADNIL   R12..R12 = nil
  0046  MOVE      R13 = R0
  0047  CALL      R6 = call(R6, 0 args, 7 rets)
  0048  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 89-89 np=0 va=0 ms=2 code=1 consts=0 upvals=0 protos=0
    0000  RETURN    return R0..R-1
  ; ---------- proto1 [] ----------
    ; fn ?  line 102-162 np=4 va=0 ms=16 code=212 consts=50 upvals=5 protos=0
    ;   K[0]='EndAndGetDur'
    ;   K[1]='m_bIsRequesting'
    ;   K[2]=false
    ;   K[3]='_FailPendingRequests'
    ;   K[4]='Log'
    ;   K[5]='Encode'
    ;   K[6]='GM'
    ;   K[7]='BIManager'
    ;   K[8]='LogNet'
    ;   K[9]='EBIType'
    ;   K[10]='NetworkCheckAction'
    ;   K[11]='SSOFailed'
    ;   K[12]='registrationStatus'
    ;   K[13]='ESsoActionStatus'
    ;   K[14]='NewRegister'
    ;   K[15]='OldUser'
    ;   K[16]='mainUserId'
    ;   K[17]=0
    ;   K[18]='StringUtil'
    ;   K[19]='IsNilOrEmpty'
    ;   K[20]='SetToken'
    ;   K[21]='ApplicationManager'
    ;   K[22]='Instance'
    ;   K[23]='userId'
    ;   K[24]='isNewUser'
    ;   K[25]='UserModel'
    ;   K[26]='GetUserId'
    ;   K[27]='SetUserId'
    ;   K[28]='_ResendPendingRequests'
    ;   K[29]='SSOSuccess'
    ;   K[30]=' IDChange'
    ;   K[31]='newId='
    ;   K[32]='tostring'
    ;   K[33]='SyncModel'
    ;   K[34]='ClearAllData'
    ;   K[35]='service_time'
    ;   K[36]='OperBIManager'
    ;   K[37]='TrackFirstInstall'
    ;   K[38]='Set'
    ;   K[39]='EUserLocalDataKey'
    ;   K[40]='RegisterVersion'
    ;   K[41]='GameConfig'
    ;   K[42]='GetCurrentVersion'
    ;   K[43]='reg_version'
    ;   K[44]='RestartGame'
    ;   K[45]='ERestartType'
    ;   K[46]='WithHotfix'
    ;   K[47]='EBIProjectType'
    ;   K[48]='RestartGameAction'
    ;   K[49]='SSO'
    ;   upvals: startTime, self, _ENV, callback, isLoading
    ;   locals: bIsSucc(0-212), tbMsgResp(0-212), strToken(0-212), reqCtx(0-212), timeInterval(3-212), msg(13-29), status(30-212), bSuccessStatus(40-212), msg(58-74), restart(98-212), userId(102-212), serverTime(177-193)
    0000  GETUPVAL  R4 = startTime
    0001  SELF      R5 = R4[K0('EndAndGetDur')] (self)
    0002  CALL      R4 = call(R4, 1 args, 1 rets)
    0003  SETTABUP  self[K1('m_bIsRequesting')] = K2(false)
    0004  TEST      if not R0 then   -> -131065
    0005  JMP       (jump)   -> 29
    0006  GETUPVAL  R5 = startTime
    0007  SELF      R6 = R5[K3('_FailPendingRequests')] (self)
    0008  CALL      R5 = call(R5, 0 args, 1 rets)
    0009  GETTABUP  R5 = _ENV[K4('Log')]
    0010  GETTABLE  R5 = R5[K5('Encode')]
    0011  MOVE      R6 = R0
    0012  CALL      R5 = call(R5, 1 args, 1 rets)
    0013  GETUPVAL  R6 = startTime
    0014  LOADBOOL  R7 = false
    0015  MOVE      R8 = R0
    0016  CALL      R6 = call(R6, 0 args, 2 rets)
    0017  GETTABUP  R6 = _ENV[K6('GM')]
    0018  GETTABLE  R6 = R6[K7('BIManager')]
    0019  SELF      R7 = R6[K8('LogNet')] (self)
    0020  GETTABUP  R8 = _ENV[K9('EBIType')]
    0021  GETTABLE  R8 = R8[K10('NetworkCheckAction')]
    0022  GETTABLE  R8 = R8[K11('SSOFailed')]
    0023  MOVE      R9 = R0
    0024  MOVE      R10 = R0
    0025  MOVE      R11 = R0
    0026  GETUPVAL  R12 = startTime
    0027  CALL      R6 = call(R6, 0 args, 6 rets)
    0028  RETURN    return R0..R-1
    0029  GETTABLE  R5 = R1[K12('registrationStatus')]
    0030  GETTABUP  R6 = _ENV[K13('ESsoActionStatus')]
    0031  GETTABLE  R6 = R6[K14('NewRegister')]
    0032  EQ        if R1 eq R6   -> -128472
    0033  JMP       (jump)   -> 39
    0034  GETTABUP  R6 = _ENV[K13('ESsoActionStatus')]
    0035  GETTABLE  R6 = R6[K15('OldUser')]
    0036  EQ        if R1 eq R6   -> -128468
    0037  JMP       (jump)   -> 39
    0038  LOADBOOL  R6 = false
    0039  LOADBOOL  R6 = true
    0040  TEST      if not R6 then   -> -131030
    0041  JMP       (jump)   -> 51
    0042  GETTABLE  R7 = R1[K16('mainUserId')]
    0043  EQ        if R1 eq K17(0)   -> -127170
    0044  JMP       (jump)   -> 51
    0045  GETTABUP  R7 = _ENV[K18('StringUtil')]
    0046  GETTABLE  R7 = R7[K19('IsNilOrEmpty')]
    0047  MOVE      R8 = R0
    0048  CALL      R7 = call(R7, 1 args, 1 rets)
    0049  TEST      if not R7 then   -> -131021
    0050  JMP       (jump)   -> 74
    0051  GETUPVAL  R7 = startTime
    0052  SELF      R8 = R7[K3('_FailPendingRequests')] (self)
    0053  CALL      R7 = call(R7, 0 args, 1 rets)
    0054  GETTABUP  R7 = _ENV[K4('Log')]
    0055  GETTABLE  R7 = R7[K5('Encode')]
    0056  MOVE      R8 = R0
    0057  CALL      R7 = call(R7, 1 args, 1 rets)
    0058  GETUPVAL  R8 = startTime
    0059  LOADBOOL  R9 = false
    0060  MOVE      R10 = R0
    0061  CALL      R8 = call(R8, 0 args, 2 rets)
    0062  GETTABUP  R8 = _ENV[K6('GM')]
    0063  GETTABLE  R8 = R8[K7('BIManager')]
    0064  SELF      R9 = R8[K8('LogNet')] (self)
    0065  GETTABUP  R10 = _ENV[K9('EBIType')]
    0066  GETTABLE  R10 = R10[K10('NetworkCheckAction')]
    0067  GETTABLE  R10 = R10[K11('SSOFailed')]
    0068  MOVE      R11 = R0
    0069  MOVE      R12 = R0
    0070  MOVE      R13 = R0
    0071  GETUPVAL  R14 = startTime
    0072  CALL      R8 = call(R8, 0 args, 6 rets)
    0073  RETURN    return R0..R-1
    0074  GETTABUP  R7 = _ENV[K18('StringUtil')]
    0075  GETTABLE  R7 = R7[K19('IsNilOrEmpty')]
    0076  MOVE      R8 = R0
    0077  CALL      R7 = call(R7, 1 args, 1 rets)
    0078  TEST      if not R7 then   -> -130991
    0079  JMP       (jump)   -> 84
    0080  GETUPVAL  R7 = startTime
    0081  SELF      R8 = R7[K20('SetToken')] (self)
    0082  MOVE      R9 = R0
    0083  CALL      R7 = call(R7, 0 args, 2 rets)
    0084  GETTABUP  R7 = _ENV[K21('ApplicationManager')]
    0085  GETTABLE  R7 = R7[K22('Instance')]
    0086  GETTABLE  R8 = R1[K16('mainUserId')]
    0087  SETTABLE  R7[K23('userId')] = R8
    0088  GETTABUP  R7 = _ENV[K21('ApplicationManager')]
    0089  GETTABLE  R7 = R7[K22('Instance')]
    0090  GETTABUP  R8 = _ENV[K13('ESsoActionStatus')]
    0091  GETTABLE  R8 = R8[K14('NewRegister')]
    0092  EQ        if R1 eq R8   -> -128410
    0093  JMP       (jump)   -> 95
    0094  LOADBOOL  R8 = false
    0095  LOADBOOL  R8 = true
    0096  SETTABLE  R7[K24('isNewUser')] = R8
    0097  LOADBOOL  R7 = false
    0098  GETTABUP  R8 = _ENV[K6('GM')]
    0099  GETTABLE  R8 = R8[K25('UserModel')]
    0100  SELF      R9 = R8[K26('GetUserId')] (self)
    0101  CALL      R8 = call(R8, 1 args, 1 rets)
    0102  EQ        if R1 eq K17(0)   -> -126599
    0103  JMP       (jump)   -> 107
    0104  GETTABLE  R9 = R1[K16('mainUserId')]
    0105  EQ        if R0 eq R9   -> -126860
    0106  JMP       (jump)   -> 130
    0107  GETTABUP  R9 = _ENV[K6('GM')]
    0108  GETTABLE  R9 = R9[K25('UserModel')]
    0109  SELF      R10 = R9[K27('SetUserId')] (self)
    0110  GETTABLE  R11 = R1[K16('mainUserId')]
    0111  CALL      R9 = call(R9, 0 args, 2 rets)
    0112  GETUPVAL  R9 = startTime
    0113  SELF      R10 = R9[K28('_ResendPendingRequests')] (self)
    0114  CALL      R9 = call(R9, 0 args, 1 rets)
    0115  GETUPVAL  R9 = startTime
    0116  LOADBOOL  R10 = true
    0117  CALL      R9 = call(R9, 0 args, 1 rets)
    0118  GETTABUP  R9 = _ENV[K6('GM')]
    0119  GETTABLE  R9 = R9[K7('BIManager')]
    0120  SELF      R10 = R9[K8('LogNet')] (self)
    0121  GETTABUP  R11 = _ENV[K9('EBIType')]
    0122  GETTABLE  R11 = R11[K10('NetworkCheckAction')]
    0123  GETTABLE  R11 = R11[K29('SSOSuccess')]
    0124  LOADNIL   R12..R12 = nil
    0125  MOVE      R13 = R0
    0126  MOVE      R14 = R0
    0127  GETUPVAL  R15 = startTime
    0128  CALL      R9 = call(R9, 0 args, 6 rets)
    0129  JMP       (jump)   -> 172
    0130  GETUPVAL  R9 = startTime
    0131  SELF      R10 = R9[K3('_FailPendingRequests')] (self)
    0132  CALL      R9 = call(R9, 0 args, 1 rets)
    0133  GETUPVAL  R9 = startTime
    0134  LOADBOOL  R10 = false
    0135  LOADK     R11 = K30 ' IDChange'
    0136  CALL      R9 = call(R9, 0 args, 2 rets)
    0137  GETTABUP  R9 = _ENV[K6('GM')]
    0138  GETTABLE  R9 = R9[K7('BIManager')]
    0139  SELF      R10 = R9[K8('LogNet')] (self)
    0140  GETTABUP  R11 = _ENV[K9('EBIType')]
    0141  GETTABLE  R11 = R11[K10('NetworkCheckAction')]
    0142  GETTABLE  R11 = R11[K29('SSOSuccess')]
    0143  LOADK     R12 = K31 'newId='
    0144  GETTABUP  R13 = _ENV[K32('tostring')]
    0145  GETTABLE  R14 = R1[K16('mainUserId')]
    0146  CALL      R13 = call(R13, 1 args, 1 rets)
    0147  CONCAT    R12 = concat(R12..R12)
    0148  MOVE      R13 = R0
    0149  MOVE      R14 = R0
    0150  GETUPVAL  R15 = startTime
    0151  CALL      R9 = call(R9, 0 args, 6 rets)
    0152  GETTABUP  R9 = _ENV[K6('GM')]
    0153  GETTABLE  R9 = R9[K33('SyncModel')]
    0154  SELF      R10 = R9[K34('ClearAllData')] (self)
    0155  CALL      R9 = call(R9, 0 args, 1 rets)
    0156  GETTABUP  R9 = _ENV[K18('StringUtil')]
    0157  GETTABLE  R9 = R9[K19('IsNilOrEmpty')]
    0158  MOVE      R10 = R0
    0159  CALL      R9 = call(R9, 1 args, 1 rets)
    0160  TEST      if not R9 then   -> -130909
    0161  JMP       (jump)   -> 166
    0162  GETUPVAL  R9 = startTime
    0163  SELF      R10 = R9[K20('SetToken')] (self)
    0164  MOVE      R11 = R0
    0165  CALL      R9 = call(R9, 0 args, 2 rets)
    0166  GETTABUP  R9 = _ENV[K6('GM')]
    0167  GETTABLE  R9 = R9[K25('UserModel')]
    0168  SELF      R10 = R9[K27('SetUserId')] (self)
    0169  GETTABLE  R11 = R1[K16('mainUserId')]
    0170  CALL      R9 = call(R9, 0 args, 2 rets)
    0171  LOADBOOL  R7 = true
    0172  GETTABUP  R9 = _ENV[K13('ESsoActionStatus')]
    0173  GETTABLE  R9 = R9[K14('NewRegister')]
    0174  EQ        if R0 eq R9   -> -128327
    0175  JMP       (jump)   -> 194
    0176  GETTABLE  R9 = R1[K35('service_time')]
    0177  GETTABUP  R10 = _ENV[K6('GM')]
    0178  GETTABLE  R10 = R10[K36('OperBIManager')]
    0179  SELF      R11 = R10[K37('TrackFirstInstall')] (self)
    0180  GETTABUP  R12 = _ENV[K32('tostring')]
    0181  MOVE      R13 = R0
    0182  CALL      R12 = call(R12, -1 args, 1 rets)
    0183  CALL      R10 = call(R10, 0 args, -1 rets)
    0184  GETTABUP  R10 = _ENV[K6('GM')]
    0185  GETTABLE  R10 = R10[K25('UserModel')]
    0186  SELF      R11 = R10[K38('Set')] (self)
    0187  GETTABUP  R12 = _ENV[K39('EUserLocalDataKey')]
    0188  GETTABLE  R12 = R12[K40('RegisterVersion')]
    0189  GETTABUP  R13 = _ENV[K41('GameConfig')]
    0190  GETTABLE  R13 = R13[K42('GetCurrentVersion')]
    0191  CALL      R13 = call(R13, -1 args, 0 rets)
    0192  CALL      R10 = call(R10, 0 args, -1 rets)
    0193  JMP       (jump)   -> 201
    0194  GETTABUP  R9 = _ENV[K6('GM')]
    0195  GETTABLE  R9 = R9[K25('UserModel')]
    0196  SELF      R10 = R9[K38('Set')] (self)
    0197  GETTABUP  R11 = _ENV[K39('EUserLocalDataKey')]
    0198  GETTABLE  R11 = R11[K40('RegisterVersion')]
    0199  GETTABLE  R12 = R1[K43('reg_version')]
    0200  CALL      R9 = call(R9, 0 args, 3 rets)
    0201  TEST      if not R7 then   -> -130869
    0202  JMP       (jump)   -> 211
    0203  GETTABUP  R9 = _ENV[K6('GM')]
    0204  SELF      R10 = R9[K44('RestartGame')] (self)
    0205  GETTABUP  R11 = _ENV[K45('ERestartType')]
    0206  GETTABLE  R11 = R11[K46('WithHotfix')]
    0207  GETTABUP  R12 = _ENV[K47('EBIProjectType')]
    0208  GETTABLE  R12 = R12[K48('RestartGameAction')]
    0209  GETTABLE  R12 = R12[K49('SSO')]
    0210  CALL      R9 = call(R9, 0 args, 3 rets)
    0211  RETURN    return R0..R-1
; ---------- proto8 [SendRequest] ----------
  ; fn ?  line 165-172 np=4 va=0 ms=10 code=15 consts=4 upvals=1 protos=1
  ;   K[0]=nil
  ;   K[1]='GetToken'
  ;   K[2]='SsoMessage'
  ;   K[3]='SendByHttp'
  ;   upvals: _ENV
  ;   locals: self(0-15), request(0-15), callback(0-15), ssoToken(0-15)
  0000  EQ        if R0 eq K0(nil)   -> -129278
  0001  JMP       (jump)   -> 6
  0002  SELF      R5 = R0[K1('GetToken')] (self)
  0003  CALL      R4 = call(R4, 1 args, 1 rets)
  0004  TESTSET   if R1 then R3   -> -129017
  0005  JMP       (jump)   -> 6
  0006  GETTABUP  R4 = _ENV[K2('SsoMessage')]
  0007  GETTABLE  R4 = R4[K3('SendByHttp')]
  0008  MOVE      R5 = R0
  0009  MOVE      R6 = R0
  0010  CLOSURE   R7 = closure proto0
  0011  LOADBOOL  R8 = true
  0012  LOADBOOL  R9 = false
  0013  CALL      R4 = call(R4, 0 args, 5 rets)
  0014  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 167-171 np=3 va=0 ms=8 code=10 consts=0 upvals=2 protos=0
    ;   upvals: callback, request
    ;   locals: success(0-10), tbResp(0-10), respToken(0-10)
    0000  GETUPVAL  R3 = callback
    0001  TEST      if not R3 then   -> -131069
    0002  JMP       (jump)   -> 9
    0003  GETUPVAL  R3 = callback
    0004  MOVE      R4 = R0
    0005  GETUPVAL  R5 = callback
    0006  MOVE      R6 = R0
    0007  MOVE      R7 = R0
    0008  CALL      R3 = call(R3, 0 args, 4 rets)
    0009  RETURN    return R0..R-1
; ---------- proto9 [WaitForToken] ----------
  ; fn ?  line 174-180 np=2 va=0 ms=5 code=18 consts=8 upvals=1 protos=0
  ;   K[0]='Table'
  ;   K[1]='ListContain'
  ;   K[2]='m_arrPendingReqs'
  ;   K[3]='Log'
  ;   K[4]='Error'
  ;   K[5]='SsoManager:_AddToPendingReqs duplicate'
  ;   K[6]='table'
  ;   K[7]='insert'
  ;   upvals: _ENV
  ;   locals: self(0-18), reqCtx(0-18)
  0000  GETTABUP  R2 = _ENV[K0('Table')]
  0001  GETTABLE  R2 = R2[K1('ListContain')]
  0002  GETTABLE  R3 = R0[K2('m_arrPendingReqs')]
  0003  MOVE      R4 = R0
  0004  CALL      R2 = call(R2, 1 args, 2 rets)
  0005  TEST      if not R2 then   -> -131065
  0006  JMP       (jump)   -> 12
  0007  GETTABUP  R2 = _ENV[K3('Log')]
  0008  GETTABLE  R2 = R2[K4('Error')]
  0009  LOADK     R3 = K5 'SsoManager:_AddToPendingReqs duplicate'
  0010  CALL      R2 = call(R2, 0 args, 1 rets)
  0011  RETURN    return R0..R-1
  0012  GETTABUP  R2 = _ENV[K6('table')]
  0013  GETTABLE  R2 = R2[K7('insert')]
  0014  GETTABLE  R3 = R0[K2('m_arrPendingReqs')]
  0015  MOVE      R4 = R0
  0016  CALL      R2 = call(R2, 0 args, 2 rets)
  0017  RETURN    return R0..R-1
; ---------- proto10 [_ResendPendingRequests] ----------
  ; fn ?  line 182-190 np=1 va=0 ms=7 code=23 consts=10 upvals=1 protos=0
  ;   K[0]='GetToken'
  ;   K[1]='Table'
  ;   K[2]='IsEmpty'
  ;   K[3]='m_arrPendingReqs'
  ;   K[4]='table'
  ;   K[5]='remove'
  ;   K[6]='SetHeader'
  ;   K[7]='NetworkConfig'
  ;   K[8]='TokenHeaderKey'
  ;   K[9]='Send'
  ;   upvals: _ENV
  ;   locals: self(0-23), strToken(2-23), reqCtx(3-23)
  0000  SELF      R2 = R0[K0('GetToken')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  LOADNIL   R2..R2 = nil
  0003  GETTABUP  R3 = _ENV[K1('Table')]
  0004  GETTABLE  R3 = R3[K2('IsEmpty')]
  0005  GETTABLE  R4 = R0[K3('m_arrPendingReqs')]
  0006  CALL      R3 = call(R3, 1 args, 1 rets)
  0007  TEST      if not R3 then   -> -131062
  0008  JMP       (jump)   -> 22
  0009  GETTABUP  R3 = _ENV[K4('table')]
  0010  GETTABLE  R3 = R3[K5('remove')]
  0011  GETTABLE  R4 = R0[K3('m_arrPendingReqs')]
  0012  CALL      R3 = call(R3, 1 args, 1 rets)
  0013  MOVE      R2 = R0
  0014  SELF      R4 = R2[K6('SetHeader')] (self)
  0015  GETTABUP  R5 = _ENV[K7('NetworkConfig')]
  0016  GETTABLE  R5 = R5[K8('TokenHeaderKey')]
  0017  MOVE      R6 = R0
  0018  CALL      R3 = call(R3, 0 args, 3 rets)
  0019  SELF      R4 = R2[K9('Send')] (self)
  0020  CALL      R3 = call(R3, 0 args, 1 rets)
  0021  JMP       (jump)   -> 3
  0022  RETURN    return R0..R-1
; ---------- proto11 [_FailPendingRequests] ----------
  ; fn ?  line 192-200 np=1 va=0 ms=4 code=19 consts=8 upvals=1 protos=0
  ;   K[0]='Table'
  ;   K[1]='IsEmpty'
  ;   K[2]='m_arrPendingReqs'
  ;   K[3]='table'
  ;   K[4]='remove'
  ;   K[5]='Discard'
  ;   K[6]='m_session'
  ;   K[7]=1
  ;   upvals: _ENV
  ;   locals: self(0-19), reqCtx(1-19)
  0000  LOADNIL   R1..R1 = nil
  0001  GETTABUP  R2 = _ENV[K0('Table')]
  0002  GETTABLE  R2 = R2[K1('IsEmpty')]
  0003  GETTABLE  R3 = R0[K2('m_arrPendingReqs')]
  0004  CALL      R2 = call(R2, 1 args, 1 rets)
  0005  TEST      if not R2 then   -> -131064
  0006  JMP       (jump)   -> 15
  0007  GETTABUP  R2 = _ENV[K3('table')]
  0008  GETTABLE  R2 = R2[K4('remove')]
  0009  GETTABLE  R3 = R0[K2('m_arrPendingReqs')]
  0010  CALL      R2 = call(R2, 1 args, 1 rets)
  0011  MOVE      R1 = R0
  0012  SELF      R3 = R1[K5('Discard')] (self)
  0013  CALL      R2 = call(R2, 0 args, 1 rets)
  0014  JMP       (jump)   -> 1
  0015  GETTABLE  R2 = R0[K6('m_session')]
  0016  ADD       R2 = K7(1) add R2
  0017  SETTABLE  R0[K6('m_session')] = R2
  0018  RETURN    return R0..R-1
; ---------- proto12 [ThrowPendingRequests] ----------
  ; fn ?  line 202-213 np=1 va=0 ms=7 code=27 consts=14 upvals=1 protos=0
  ;   K[0]='GetToken'
  ;   K[1]='Table'
  ;   K[2]='IsEmpty'
  ;   K[3]='m_arrPendingReqs'
  ;   K[4]='table'
  ;   K[5]='remove'
  ;   K[6]='SetHeader'
  ;   K[7]='NetworkConfig'
  ;   K[8]='TokenHeaderKey'
  ;   K[9]='MaxRetry'
  ;   K[10]=0
  ;   K[11]='Send'
  ;   K[12]='m_session'
  ;   K[13]=1
  ;   upvals: _ENV
  ;   locals: self(0-27), strToken(2-27), reqCtx(3-27)
  0000  SELF      R2 = R0[K0('GetToken')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  LOADNIL   R2..R2 = nil
  0003  GETTABUP  R3 = _ENV[K1('Table')]
  0004  GETTABLE  R3 = R3[K2('IsEmpty')]
  0005  GETTABLE  R4 = R0[K3('m_arrPendingReqs')]
  0006  CALL      R3 = call(R3, 1 args, 1 rets)
  0007  TEST      if not R3 then   -> -131062
  0008  JMP       (jump)   -> 23
  0009  GETTABUP  R3 = _ENV[K4('table')]
  0010  GETTABLE  R3 = R3[K5('remove')]
  0011  GETTABLE  R4 = R0[K3('m_arrPendingReqs')]
  0012  CALL      R3 = call(R3, 1 args, 1 rets)
  0013  MOVE      R2 = R0
  0014  SELF      R4 = R2[K6('SetHeader')] (self)
  0015  GETTABUP  R5 = _ENV[K7('NetworkConfig')]
  0016  GETTABLE  R5 = R5[K8('TokenHeaderKey')]
  0017  MOVE      R6 = R0
  0018  CALL      R3 = call(R3, 0 args, 3 rets)
  0019  SETTABLE  R2[K9('MaxRetry')] = K10(0)
  0020  SELF      R4 = R2[K11('Send')] (self)
  0021  CALL      R3 = call(R3, 0 args, 1 rets)
  0022  JMP       (jump)   -> 3
  0023  GETTABLE  R3 = R0[K12('m_session')]
  0024  ADD       R3 = K13(1) add R3
  0025  SETTABLE  R0[K12('m_session')] = R3
  0026  RETURN    return R0..R-1
; ---------- proto13 [SendDeleteUserRequest] ----------
  ; fn ?  line 215-221 np=3 va=0 ms=10 code=11 consts=4 upvals=1 protos=1
  ;   K[0]='SsoMessage'
  ;   K[1]='SendByHttp'
  ;   K[2]='GetToken'
  ;   K[3]='SODeleteUser'
  ;   upvals: _ENV
  ;   locals: self(0-11), request(0-11), callback(0-11)
  0000  GETTABUP  R3 = _ENV[K0('SsoMessage')]
  0001  GETTABLE  R3 = R3[K1('SendByHttp')]
  0002  MOVE      R4 = R0
  0003  SELF      R6 = R0[K2('GetToken')] (self)
  0004  CALL      R5 = call(R5, 1 args, 1 rets)
  0005  CLOSURE   R6 = closure proto0
  0006  LOADBOOL  R7 = true
  0007  LOADBOOL  R8 = false
  0008  LOADK     R9 = K3 'SODeleteUser'
  0009  CALL      R3 = call(R3, 0 args, 6 rets)
  0010  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 216-220 np=2 va=0 ms=5 code=8 consts=0 upvals=1 protos=0
    ;   upvals: callback
    ;   locals: success(0-8), tbResp(0-8)
    0000  GETUPVAL  R2 = callback
    0001  TEST      if not R2 then   -> -131069
    0002  JMP       (jump)   -> 7
    0003  GETUPVAL  R2 = callback
    0004  MOVE      R3 = R0
    0005  MOVE      R4 = R0
    0006  CALL      R2 = call(R2, 0 args, 2 rets)
    0007  RETURN    return R0..R-1
