3v4l.org

run code in 300+ PHP versions simultaneously
<?php class encryption_class { var $scramble1; // 1st string of ASCII characters var $scramble2; // 2nd string of ASCII characters var $errors; // array of error messages var $adj; // 1st adjustment value (optional) var $mod; // 2nd adjustment value (optional) function encryption_class () { // Each of these two strings must contain the same characters, but in a different order. // Use only printable characters from the ASCII table. // Each character can only appear once in each string EXCEPT for the first character // which must be duplicated at the end (this gets round a bijou problemette when the // first character of the password is also the first character in $scramble1) $this->scramble1 = '! "#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~!'; $this->scramble2 = 'f^jAE]okI\OzU[2&q1{3`h5w_794p@6s8?BgP>dFV=m D<TcS%Ze|r:lGK/uCy.Jx)HiQ!"#$\'~(;Lt-R}Ma,NvW+Ynb*0Xf'; if (strlen($this->scramble1) <> strlen($this->scramble2)) { $this->errors[] = '** SCRAMBLE1 is not same length as SCRAMBLE2 **'; } // if $this->adj = 1.75; // this value is added to the rolling fudgefactors $this->mod = 3; // if divisible by this the adjustment is made negative } // constructor function encrypt ($key, $source, $sourcelen=0) { $this->errors = array(); $fudgefactor = $this->_convertKey($key); if ($this->errors) return; if (empty($source)) { $this->errors[] = 'No value has been supplied for encryption'; return; } // if while (strlen($source) < $sourcelen) { $source .= ' '; } // while $target = NULL; $factor2 = 0; for ($i = 0; $i < strlen($source); $i++) { $char1 = substr($source, $i, 1); $num1 = strpos($this->scramble1, $char1); if ($num1 === false) { $this->errors[] = "Source string contains an invalid character ($char1)"; return; } // if $adj = $this->_applyFudgeFactor($fudgefactor); $factor1 = $factor2 + $adj; $num2 = round($factor1) + $num1; // generate offset for $scramble2 $num2 = $this->_checkRange($num2); // check range $factor2 = $factor1 + $num2; // accumulate in $factor $char2 = substr($this->scramble2, $num2, 1); $target .= $char2; } // for return $target; } // encrypt function _convertKey ($key) { if (empty($key)) { $this->errors[] = 'No value has been supplied for the encryption key'; return; } // if $array[] = strlen($key); $tot = 0; for ($i = 0; $i < strlen($key); $i++) { $char = substr($key, $i, 1); $num = strpos($this->scramble1, $char); if ($num === false) { $this->errors[] = "Key contains an invalid character ($char)"; return; } // if $array[] = $num; $tot = $tot + $num; } // for $array[] = $tot; return $array; } // _convertKey function _applyFudgeFactor (&$fudgefactor) { $fudge = array_shift($fudgefactor); $fudge = $fudge + $this->adj; $fudgefactor[] = $fudge; if (!empty($this->mod)) { // if modifier has been supplied if ($fudge % $this->mod == 0) { // if it is divisible by modifier $fudge = $fudge * -1; // reverse then sign } // if } // if return $fudge; } // _applyFudgeFactor function _checkRange ($num) { $limit = strlen($this->scramble1)-1; while ($num > $limit) { $num = $num - $limit; } // while while ($num < 0) { $num = $num + $limit; } // while return $num; } // _checkRange function decrypt ($key, $source) { $this->errors = array(); $fudgefactor = $this->_convertKey($key); if ($this->errors) return; if (empty($source)) { $this->errors[] = 'No value has been supplied for decryption'; return; } // if $target = NULL; $factor2 = 0; for ($i = 0; $i < strlen($source); $i++) { $char2 = substr($source, $i, 1); $num2 = strpos($this->scramble2, $char2); if ($num2 === false) { $this->errors[] = "Source string contains an invalid character ($char2)"; return; } // if if ($num2 == 0) { // use the last occurrence of this letter, not the first $num2 = strlen($this->scramble1)-1; } // if $adj = $this->_applyFudgeFactor($fudgefactor); $factor1 = $factor2 + $adj; $num1 = round($factor1*-1) + $num2; // generate offset for $scramble1 $num1 = $this->_checkRange($num1); // check range $factor2 = $factor1 + $num2; // accumulate in $factor2 $char1 = substr($this->scramble1, $num1, 1); $target .= $char1; } // for return rtrim($target); } // decrypt } $crypt = new encryption_class; echo $crypt->decrypt("usjpublic", "x|_SX&f\$ABm\$m;Fi8n!77t(C{`sH2=Es"); ?>
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/eXOHX
function name:  (null)
number of ops:  9
compiled vars:  !0 = $crypt
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  159     0  E >   NEW                                              $1      'encryption_class'
          1        DO_FCALL                                      0          
          2        ASSIGN                                                   !0, $1
  160     3        INIT_METHOD_CALL                                         !0, 'decrypt'
          4        SEND_VAL_EX                                              'usjpublic'
          5        SEND_VAL_EX                                              'x%7C_SX%26f%24ABm%24m%3BFi8n%2177t%28C%7B%60sH2%3DEs'
          6        DO_FCALL                                      0  $4      
          7        ECHO                                                     $4
  161     8      > RETURN                                                   1

Class encryption_class:
Function encryption_class:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 10, Position 2 = 13
Branch analysis from position: 10
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 13
filename:       /in/eXOHX
function name:  encryption_class
number of ops:  18
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   17     0  E >   ASSIGN_OBJ                                               'scramble1'
          1        OP_DATA                                                  '%21+%22%23%24%25%26%27%28%29%2A%2B%2C-.%2F0123456789%3A%3B%3C%3D%3E%3F%40ABCDEFGHIJKLMNOPQRSTUVWXYZ%5B%5C%5D%5E_%60abcdefghijklmnopqrstuvwxyz%7B%7C%7D%7E%21'
   18     2        ASSIGN_OBJ                                               'scramble2'
          3        OP_DATA                                                  'f%5EjAE%5DokI%5COzU%5B2%26q1%7B3%60h5w_794p%406s8%3FBgP%3EdFV%3Dm+D%3CTcS%25Ze%7Cr%3AlGK%2FuCy.Jx%29HiQ%21%22%23%24%27%7E%28%3BLt-R%7DMa%2CNvW%2BYnb%2A0Xf'
   20     4        FETCH_OBJ_R                                      ~2      'scramble1'
          5        STRLEN                                           ~3      ~2
          6        FETCH_OBJ_R                                      ~4      'scramble2'
          7        STRLEN                                           ~5      ~4
          8        IS_NOT_EQUAL                                             ~3, ~5
          9      > JMPZ                                                     ~6, ->13
   21    10    >   FETCH_OBJ_W                                      $7      'errors'
         11        ASSIGN_DIM                                               $7
         12        OP_DATA                                                  '%2A%2A+SCRAMBLE1+is+not+same+length+as+SCRAMBLE2+%2A%2A'
   24    13    >   ASSIGN_OBJ                                               'adj'
         14        OP_DATA                                                  1.75
   25    15        ASSIGN_OBJ                                               'mod'
         16        OP_DATA                                                  3
   27    17      > RETURN                                                   null

End of function encryption_class

Function encrypt:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 11, Position 2 = 12
Branch analysis from position: 11
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 12
2 jumps found. (Code = 43) Position 1 = 14, Position 2 = 18
Branch analysis from position: 14
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 18
1 jumps found. (Code = 42) Position 1 = 20
Branch analysis from position: 20
2 jumps found. (Code = 44) Position 1 = 23, Position 2 = 19
Branch analysis from position: 23
1 jumps found. (Code = 42) Position 1 = 74
Branch analysis from position: 74
2 jumps found. (Code = 44) Position 1 = 77, Position 2 = 27
Branch analysis from position: 77
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 27
2 jumps found. (Code = 43) Position 1 = 41, Position 2 = 48
Branch analysis from position: 41
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 48
2 jumps found. (Code = 44) Position 1 = 77, Position 2 = 27
Branch analysis from position: 77
Branch analysis from position: 27
Branch analysis from position: 19
2 jumps found. (Code = 44) Position 1 = 23, Position 2 = 19
Branch analysis from position: 23
Branch analysis from position: 19
filename:       /in/eXOHX
function name:  encrypt
number of ops:  79
compiled vars:  !0 = $key, !1 = $source, !2 = $sourcelen, !3 = $fudgefactor, !4 = $target, !5 = $factor2, !6 = $i, !7 = $char1, !8 = $num1, !9 = $adj, !10 = $factor1, !11 = $num2, !12 = $char2
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   30     0  E >   RECV                                             !0      
          1        RECV                                             !1      
          2        RECV_INIT                                        !2      0
   32     3        ASSIGN_OBJ                                               'errors'
          4        OP_DATA                                                  <array>
   34     5        INIT_METHOD_CALL                                         '_convertKey'
          6        SEND_VAR_EX                                              !0
          7        DO_FCALL                                      0  $14     
          8        ASSIGN                                                   !3, $14
   35     9        FETCH_OBJ_R                                      ~16     'errors'
         10      > JMPZ                                                     ~16, ->12
         11    > > RETURN                                                   null
   36    12    >   ISSET_ISEMPTY_CV                                         !1
         13      > JMPZ                                                     ~17, ->18
   37    14    >   FETCH_OBJ_W                                      $18     'errors'
         15        ASSIGN_DIM                                               $18
         16        OP_DATA                                                  'No+value+has+been+supplied+for+encryption'
   38    17      > RETURN                                                   null
   40    18    > > JMP                                                      ->20
   41    19    >   ASSIGN_OP                                     8          !1, '+'
   40    20    >   STRLEN                                           ~21     !1
         21        IS_SMALLER                                               ~21, !2
         22      > JMPNZ                                                    ~22, ->19
   43    23    >   ASSIGN                                                   !4, null
   44    24        ASSIGN                                                   !5, 0
   45    25        ASSIGN                                                   !6, 0
         26      > JMP                                                      ->74
   46    27    >   INIT_FCALL                                               'substr'
         28        SEND_VAR                                                 !1
         29        SEND_VAR                                                 !6
         30        SEND_VAL                                                 1
         31        DO_ICALL                                         $26     
         32        ASSIGN                                                   !7, $26
   47    33        INIT_FCALL                                               'strpos'
         34        FETCH_OBJ_R                                      ~28     'scramble1'
         35        SEND_VAL                                                 ~28
         36        SEND_VAR                                                 !7
         37        DO_ICALL                                         $29     
         38        ASSIGN                                                   !8, $29
   48    39        TYPE_CHECK                                    4          !8
         40      > JMPZ                                                     ~31, ->48
   49    41    >   ROPE_INIT                                     3  ~35     'Source+string+contains+an+invalid+character+%28'
         42        ROPE_ADD                                      1  ~35     ~35, !7
         43        ROPE_END                                      2  ~34     ~35, '%29'
         44        FETCH_OBJ_W                                      $32     'errors'
         45        ASSIGN_DIM                                               $32
         46        OP_DATA                                                  ~34
   50    47      > RETURN                                                   null
   52    48    >   INIT_METHOD_CALL                                         '_applyFudgeFactor'
         49        SEND_VAR_EX                                              !3
         50        DO_FCALL                                      0  $37     
         51        ASSIGN                                                   !9, $37
   53    52        ADD                                              ~39     !5, !9
         53        ASSIGN                                                   !10, ~39
   54    54        INIT_FCALL                                               'round'
         55        SEND_VAR                                                 !10
         56        DO_ICALL                                         $41     
         57        ADD                                              ~42     $41, !8
         58        ASSIGN                                                   !11, ~42
   55    59        INIT_METHOD_CALL                                         '_checkRange'
         60        SEND_VAR_EX                                              !11
         61        DO_FCALL                                      0  $44     
         62        ASSIGN                                                   !11, $44
   56    63        ADD                                              ~46     !10, !11
         64        ASSIGN                                                   !5, ~46
   57    65        INIT_FCALL                                               'substr'
         66        FETCH_OBJ_R                                      ~48     'scramble2'
         67        SEND_VAL                                                 ~48
         68        SEND_VAR                                                 !11
         69        SEND_VAL                                                 1
         70        DO_ICALL                                         $49     
         71        ASSIGN                                                   !12, $49
   58    72        ASSIGN_OP                                     8          !4, !12
   45    73        PRE_INC                                                  !6
         74    >   STRLEN                                           ~53     !1
         75        IS_SMALLER                                               !6, ~53
         76      > JMPNZ                                                    ~54, ->27
   61    77    > > RETURN                                                   !4
   63    78*     > RETURN                                                   null

End of function encrypt

Function _convertkey:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 3, Position 2 = 7
Branch analysis from position: 3
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 7
1 jumps found. (Code = 42) Position 1 = 39
Branch analysis from position: 39
2 jumps found. (Code = 44) Position 1 = 42, Position 2 = 13
Branch analysis from position: 42
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 13
2 jumps found. (Code = 43) Position 1 = 27, Position 2 = 34
Branch analysis from position: 27
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 34
2 jumps found. (Code = 44) Position 1 = 42, Position 2 = 13
Branch analysis from position: 42
Branch analysis from position: 13
filename:       /in/eXOHX
function name:  _convertKey
number of ops:  46
compiled vars:  !0 = $key, !1 = $array, !2 = $tot, !3 = $i, !4 = $char, !5 = $num
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   67     0  E >   RECV                                             !0      
   69     1        ISSET_ISEMPTY_CV                                         !0
          2      > JMPZ                                                     ~6, ->7
   70     3    >   FETCH_OBJ_W                                      $7      'errors'
          4        ASSIGN_DIM                                               $7
          5        OP_DATA                                                  'No+value+has+been+supplied+for+the+encryption+key'
   71     6      > RETURN                                                   null
   73     7    >   STRLEN                                           ~10     !0
          8        ASSIGN_DIM                                               !1
          9        OP_DATA                                                  ~10
   74    10        ASSIGN                                                   !2, 0
   75    11        ASSIGN                                                   !3, 0
         12      > JMP                                                      ->39
   76    13    >   INIT_FCALL                                               'substr'
         14        SEND_VAR                                                 !0
         15        SEND_VAR                                                 !3
         16        SEND_VAL                                                 1
         17        DO_ICALL                                         $13     
         18        ASSIGN                                                   !4, $13
   77    19        INIT_FCALL                                               'strpos'
         20        FETCH_OBJ_R                                      ~15     'scramble1'
         21        SEND_VAL                                                 ~15
         22        SEND_VAR                                                 !4
         23        DO_ICALL                                         $16     
         24        ASSIGN                                                   !5, $16
   78    25        TYPE_CHECK                                    4          !5
         26      > JMPZ                                                     ~18, ->34
   79    27    >   ROPE_INIT                                     3  ~22     'Key+contains+an+invalid+character+%28'
         28        ROPE_ADD                                      1  ~22     ~22, !4
         29        ROPE_END                                      2  ~21     ~22, '%29'
         30        FETCH_OBJ_W                                      $19     'errors'
         31        ASSIGN_DIM                                               $19
         32        OP_DATA                                                  ~21
   80    33      > RETURN                                                   null
   82    34    >   ASSIGN_DIM                                               !1
         35        OP_DATA                                                  !5
   83    36        ADD                                              ~25     !2, !5
         37        ASSIGN                                                   !2, ~25
   75    38        PRE_INC                                                  !3
         39    >   STRLEN                                           ~28     !0
         40        IS_SMALLER                                               !3, ~28
         41      > JMPNZ                                                    ~29, ->13
   86    42    >   ASSIGN_DIM                                               !1
         43        OP_DATA                                                  !2
   88    44      > RETURN                                                   !1
   90    45*     > RETURN                                                   null

End of function _convertkey

Function _applyfudgefactor:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 13, Position 2 = 19
Branch analysis from position: 13
2 jumps found. (Code = 43) Position 1 = 17, Position 2 = 19
Branch analysis from position: 17
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 19
Branch analysis from position: 19
filename:       /in/eXOHX
function name:  _applyFudgeFactor
number of ops:  21
compiled vars:  !0 = $fudgefactor, !1 = $fudge
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   93     0  E >   RECV                                             !0      
   95     1        INIT_FCALL                                               'array_shift'
          2        SEND_REF                                                 !0
          3        DO_ICALL                                         $2      
          4        ASSIGN                                                   !1, $2
   96     5        FETCH_OBJ_R                                      ~4      'adj'
          6        ADD                                              ~5      !1, ~4
          7        ASSIGN                                                   !1, ~5
   97     8        ASSIGN_DIM                                               !0
          9        OP_DATA                                                  !1
   98    10        ISSET_ISEMPTY_PROP_OBJ                           ~8      'mod'
         11        BOOL_NOT                                         ~9      ~8
         12      > JMPZ                                                     ~9, ->19
   99    13    >   FETCH_OBJ_R                                      ~10     'mod'
         14        MOD                                              ~11     !1, ~10
         15        IS_EQUAL                                                 ~11, 0
         16      > JMPZ                                                     ~12, ->19
  100    17    >   MUL                                              ~13     !1, -1
         18        ASSIGN                                                   !1, ~13
  103    19    > > RETURN                                                   !1
  105    20*     > RETURN                                                   null

End of function _applyfudgefactor

Function _checkrange:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 8
Branch analysis from position: 8
2 jumps found. (Code = 44) Position 1 = 10, Position 2 = 6
Branch analysis from position: 10
1 jumps found. (Code = 42) Position 1 = 13
Branch analysis from position: 13
2 jumps found. (Code = 44) Position 1 = 15, Position 2 = 11
Branch analysis from position: 15
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 11
2 jumps found. (Code = 44) Position 1 = 15, Position 2 = 11
Branch analysis from position: 15
Branch analysis from position: 11
Branch analysis from position: 6
2 jumps found. (Code = 44) Position 1 = 10, Position 2 = 6
Branch analysis from position: 10
Branch analysis from position: 6
filename:       /in/eXOHX
function name:  _checkRange
number of ops:  17
compiled vars:  !0 = $num, !1 = $limit
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  108     0  E >   RECV                                             !0      
  110     1        FETCH_OBJ_R                                      ~2      'scramble1'
          2        STRLEN                                           ~3      ~2
          3        SUB                                              ~4      ~3, 1
          4        ASSIGN                                                   !1, ~4
  111     5      > JMP                                                      ->8
  112     6    >   SUB                                              ~6      !0, !1
          7        ASSIGN                                                   !0, ~6
  111     8    >   IS_SMALLER                                               !1, !0
          9      > JMPNZ                                                    ~8, ->6
  114    10    > > JMP                                                      ->13
  115    11    >   ADD                                              ~9      !0, !1
         12        ASSIGN                                                   !0, ~9
  114    13    >   IS_SMALLER                                               !0, 0
         14      > JMPNZ                                                    ~11, ->11
  117    15    > > RETURN                                                   !0
  119    16*     > RETURN                                                   null

End of function _checkrange

Function decrypt:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 10, Position 2 = 11
Branch analysis from position: 10
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 11
2 jumps found. (Code = 43) Position 1 = 13, Position 2 = 17
Branch analysis from position: 13
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 17
1 jumps found. (Code = 42) Position 1 = 75
Branch analysis from position: 75
2 jumps found. (Code = 44) Position 1 = 78, Position 2 = 21
Branch analysis from position: 78
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 21
2 jumps found. (Code = 43) Position 1 = 35, Position 2 = 42
Branch analysis from position: 35
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 42
2 jumps found. (Code = 43) Position 1 = 44, Position 2 = 48
Branch analysis from position: 44
2 jumps found. (Code = 44) Position 1 = 78, Position 2 = 21
Branch analysis from position: 78
Branch analysis from position: 21
Branch analysis from position: 48
filename:       /in/eXOHX
function name:  decrypt
number of ops:  83
compiled vars:  !0 = $key, !1 = $source, !2 = $fudgefactor, !3 = $target, !4 = $factor2, !5 = $i, !6 = $char2, !7 = $num2, !8 = $adj, !9 = $factor1, !10 = $num1, !11 = $char1
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  122     0  E >   RECV                                             !0      
          1        RECV                                             !1      
  124     2        ASSIGN_OBJ                                               'errors'
          3        OP_DATA                                                  <array>
  126     4        INIT_METHOD_CALL                                         '_convertKey'
          5        SEND_VAR_EX                                              !0
          6        DO_FCALL                                      0  $13     
          7        ASSIGN                                                   !2, $13
  127     8        FETCH_OBJ_R                                      ~15     'errors'
          9      > JMPZ                                                     ~15, ->11
         10    > > RETURN                                                   null
  128    11    >   ISSET_ISEMPTY_CV                                         !1
         12      > JMPZ                                                     ~16, ->17
  129    13    >   FETCH_OBJ_W                                      $17     'errors'
         14        ASSIGN_DIM                                               $17
         15        OP_DATA                                                  'No+value+has+been+supplied+for+decryption'
  130    16      > RETURN                                                   null
  132    17    >   ASSIGN                                                   !3, null
  133    18        ASSIGN                                                   !4, 0
  134    19        ASSIGN                                                   !5, 0
         20      > JMP                                                      ->75
  135    21    >   INIT_FCALL                                               'substr'
         22        SEND_VAR                                                 !1
         23        SEND_VAR                                                 !5
         24        SEND_VAL                                                 1
         25        DO_ICALL                                         $22     
         26        ASSIGN                                                   !6, $22
  136    27        INIT_FCALL                                               'strpos'
         28        FETCH_OBJ_R                                      ~24     'scramble2'
         29        SEND_VAL                                                 ~24
         30        SEND_VAR                                                 !6
         31        DO_ICALL                                         $25     
         32        ASSIGN                                                   !7, $25
  137    33        TYPE_CHECK                                    4          !7
         34      > JMPZ                                                     ~27, ->42
  138    35    >   ROPE_INIT                                     3  ~31     'Source+string+contains+an+invalid+character+%28'
         36        ROPE_ADD                                      1  ~31     ~31, !6
         37        ROPE_END                                      2  ~30     ~31, '%29'
         38        FETCH_OBJ_W                                      $28     'errors'
         39        ASSIGN_DIM                                               $28
         40        OP_DATA                                                  ~30
  139    41      > RETURN                                                   null
  141    42    >   IS_EQUAL                                                 !7, 0
         43      > JMPZ                                                     ~33, ->48
  143    44    >   FETCH_OBJ_R                                      ~34     'scramble1'
         45        STRLEN                                           ~35     ~34
         46        SUB                                              ~36     ~35, 1
         47        ASSIGN                                                   !7, ~36
  145    48    >   INIT_METHOD_CALL                                         '_applyFudgeFactor'
         49        SEND_VAR_EX                                              !2
         50        DO_FCALL                                      0  $38     
         51        ASSIGN                                                   !8, $38
  146    52        ADD                                              ~40     !4, !8
         53        ASSIGN                                                   !9, ~40
  147    54        INIT_FCALL                                               'round'
         55        MUL                                              ~42     !9, -1
         56        SEND_VAL                                                 ~42
         57        DO_ICALL                                         $43     
         58        ADD                                              ~44     $43, !7
         59        ASSIGN                                                   !10, ~44
  148    60        INIT_METHOD_CALL                                         '_checkRange'
         61        SEND_VAR_EX                                              !10
         62        DO_FCALL                                      0  $46     
         63        ASSIGN                                                   !10, $46
  149    64        ADD                                              ~48     !9, !7
         65        ASSIGN                                                   !4, ~48
  150    66        INIT_FCALL                                               'substr'
         67        FETCH_OBJ_R                                      ~50     'scramble1'
         68        SEND_VAL                                                 ~50
         69        SEND_VAR                                                 !10
         70        SEND_VAL                                                 1
         71        DO_ICALL                                         $51     
         72        ASSIGN                                                   !11, $51
  151    73        ASSIGN_OP                                     8          !3, !11
  134    74        PRE_INC                                                  !5
         75    >   STRLEN                                           ~55     !1
         76        IS_SMALLER                                               !5, ~55
         77      > JMPNZ                                                    ~56, ->21
  154    78    >   INIT_FCALL                                               'rtrim'
         79        SEND_VAR                                                 !3
         80        DO_ICALL                                         $57     
         81      > RETURN                                                   $57
  156    82*     > RETURN                                                   null

End of function decrypt

End of class encryption_class.

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
176.96 ms | 1424 KiB | 23 Q