3v4l.org

run code in 300+ PHP versions simultaneously
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/qVb4m
function name:  (null)
number of ops:  50
compiled vars:  !0 = $credential
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, 'my+password'
   51     1        INIT_FCALL                                               'crypt'
          2        SEND_VAR                                                 !0
          3        SEND_VAL                                                 '%242a%2405%24SomeDollarSalt9999999%24'
          4        DO_ICALL                                         $2      
          5        CONCAT                                           ~3      $2, '%0A'
          6        ECHO                                                     ~3
   52     7        INIT_FCALL                                               'bf_crypt_with_legacy_salt'
          8        SEND_VAR                                                 !0
          9        SEND_VAL                                                 '%242a%2405%24SomeDollarSalt9999999%24'
         10        DO_FCALL                                      0  $4      
         11        CONCAT                                           ~5      $4, '%0A%0A'
         12        ECHO                                                     ~5
   54    13        INIT_FCALL                                               'crypt'
         14        SEND_VAR                                                 !0
         15        SEND_VAL                                                 '%242a%2405%24SomeDollarSalt999999%249'
         16        DO_ICALL                                         $6      
         17        CONCAT                                           ~7      $6, '%0A'
         18        ECHO                                                     ~7
   55    19        INIT_FCALL                                               'bf_crypt_with_legacy_salt'
         20        SEND_VAR                                                 !0
         21        SEND_VAL                                                 '%242a%2405%24SomeDollarSalt999999%249'
         22        DO_FCALL                                      0  $8      
         23        CONCAT                                           ~9      $8, '%0A%0A'
         24        ECHO                                                     ~9
   57    25        INIT_FCALL                                               'crypt'
         26        SEND_VAR                                                 !0
         27        SEND_VAL                                                 '%242a%2405%24SomeDollarSalt99999%2499'
         28        DO_ICALL                                         $10     
         29        CONCAT                                           ~11     $10, '%0A'
         30        ECHO                                                     ~11
   58    31        INIT_FCALL                                               'bf_crypt_with_legacy_salt'
         32        SEND_VAR                                                 !0
         33        SEND_VAL                                                 '%242a%2405%24SomeDollarSalt99999%2499'
         34        DO_FCALL                                      0  $12     
         35        CONCAT                                           ~13     $12, '%0A%0A'
         36        ECHO                                                     ~13
   60    37        INIT_FCALL                                               'crypt'
         38        SEND_VAR                                                 !0
         39        SEND_VAL                                                 '%242a%2405%24SomeDollarSalt9999%24999'
         40        DO_ICALL                                         $14     
         41        CONCAT                                           ~15     $14, '%0A'
         42        ECHO                                                     ~15
   61    43        INIT_FCALL                                               'bf_crypt_with_legacy_salt'
         44        SEND_VAR                                                 !0
         45        SEND_VAL                                                 '%242a%2405%24SomeDollarSalt9999%24999'
         46        DO_FCALL                                      0  $16     
         47        CONCAT                                           ~17     $16, '%0A%0A'
         48        ECHO                                                     ~17
         49      > RETURN                                                   1

Function bf_crypt_with_legacy_salt:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 46) Position 1 = 5, Position 2 = 12
Branch analysis from position: 5
2 jumps found. (Code = 46) Position 1 = 13, Position 2 = 16
Branch analysis from position: 13
2 jumps found. (Code = 43) Position 1 = 17, Position 2 = 114
Branch analysis from position: 17
2 jumps found. (Code = 43) Position 1 = 25, Position 2 = 114
Branch analysis from position: 25
2 jumps found. (Code = 43) Position 1 = 30, Position 2 = 39
Branch analysis from position: 30
1 jumps found. (Code = 42) Position 1 = 67
Branch analysis from position: 67
1 jumps found. (Code = 42) Position 1 = 73
Branch analysis from position: 73
2 jumps found. (Code = 44) Position 1 = 75, Position 2 = 71
Branch analysis from position: 75
2 jumps found. (Code = 43) Position 1 = 88, Position 2 = 90
Branch analysis from position: 88
1 jumps found. (Code = 42) Position 1 = 92
Branch analysis from position: 92
2 jumps found. (Code = 43) Position 1 = 107, Position 2 = 113
Branch analysis from position: 107
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 113
Branch analysis from position: 90
2 jumps found. (Code = 43) Position 1 = 107, Position 2 = 113
Branch analysis from position: 107
Branch analysis from position: 113
Branch analysis from position: 71
2 jumps found. (Code = 44) Position 1 = 75, Position 2 = 71
Branch analysis from position: 75
Branch analysis from position: 71
Branch analysis from position: 39
2 jumps found. (Code = 43) Position 1 = 49, Position 2 = 50
Branch analysis from position: 49
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 50
2 jumps found. (Code = 43) Position 1 = 60, Position 2 = 62
Branch analysis from position: 60
1 jumps found. (Code = 42) Position 1 = 63
Branch analysis from position: 63
1 jumps found. (Code = 42) Position 1 = 73
Branch analysis from position: 73
Branch analysis from position: 62
1 jumps found. (Code = 42) Position 1 = 73
Branch analysis from position: 73
Branch analysis from position: 114
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 114
Branch analysis from position: 16
Branch analysis from position: 12
filename:       /in/qVb4m
function name:  BF_crypt_with_legacy_salt
number of ops:  120
compiled vars:  !0 = $string, !1 = $salt, !2 = $pos, !3 = $itoa, !4 = $cryptsalt, !5 = $val, !6 = $i, !7 = $last, !8 = $textsalt, !9 = $crypt
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    5     0  E >   RECV                                             !0      
          1        RECV                                             !1      
    8     2        STRLEN                                           ~10     !1
          3        IS_EQUAL                                         ~11     ~10, 29
          4      > JMPZ_EX                                          ~11     ~11, ->12
          5    >   INIT_FCALL                                               'substr'
          6        SEND_VAR                                                 !1
          7        SEND_VAL                                                 0
          8        SEND_VAL                                                 4
          9        DO_ICALL                                         $12     
         10        IS_EQUAL                                         ~13     $12, '%242a%24'
         11        BOOL                                             ~11     ~13
         12    > > JMPZ_EX                                          ~11     ~11, ->16
         13    >   FETCH_DIM_R                                      ~14     !1, 6
         14        IS_EQUAL                                         ~15     ~14, '%24'
         15        BOOL                                             ~11     ~15
         16    > > JMPZ                                                     ~11, ->114
   10    17    >   INIT_FCALL                                               'strpos'
         18        SEND_VAR                                                 !1
         19        SEND_VAL                                                 '%24'
         20        SEND_VAL                                                 7
         21        DO_ICALL                                         $16     
         22        ASSIGN                                                   !2, $16
   11    23        TYPE_CHECK                                  1018          !2
         24      > JMPZ                                                     ~18, ->114
   13    25    >   ASSIGN_OP                                     2          !2, 7
   14    26        ASSIGN                                                   !3, '.%2FABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
   16    27        BW_AND                                           ~21     !2, 2
         28        IS_EQUAL                                                 ~21, 0
         29      > JMPZ                                                     ~22, ->39
   19    30    >   INIT_FCALL                                               'substr'
         31        SEND_VAR                                                 !1
         32        SEND_VAL                                                 0
         33        BW_AND                                           ~23     !2, 30
         34        ADD                                              ~24     7, ~23
         35        SEND_VAL                                                 ~24
         36        DO_ICALL                                         $25     
         37        ASSIGN                                                   !4, $25
   16    38      > JMP                                                      ->67
   24    39    >   INIT_FCALL                                               'strpos'
         40        SEND_VAR                                                 !3
         41        SUB                                              ~27     !2, 1
         42        ADD                                              ~28     7, ~27
         43        FETCH_DIM_R                                      ~29     !1, ~28
         44        SEND_VAL                                                 ~29
         45        DO_ICALL                                         $30     
         46        ASSIGN                                                   !5, $30
   25    47        TYPE_CHECK                                    4          !5
         48      > JMPZ                                                     ~32, ->50
   27    49    > > RETURN                                                   '%2A0'
   29    50    >   INIT_FCALL                                               'substr'
         51        SEND_VAR                                                 !1
         52        SEND_VAL                                                 0
         53        SUB                                              ~33     !2, 1
         54        ADD                                              ~34     7, ~33
         55        SEND_VAL                                                 ~34
         56        DO_ICALL                                         $35     
         57        BW_AND                                           ~36     !2, 1
         58        IS_EQUAL                                                 ~36, 0
         59      > JMPZ                                                     ~37, ->62
         60    >   QM_ASSIGN                                        ~38     48
         61      > JMP                                                      ->63
         62    >   QM_ASSIGN                                        ~38     60
         63    >   BW_AND                                           ~39     !5, ~38
         64        FETCH_DIM_R                                      ~40     !3, ~39
         65        CONCAT                                           ~41     $35, ~40
         66        ASSIGN                                                   !4, ~41
   31    67    >   STRLEN                                           ~43     !4
         68        SUB                                              ~44     29, ~43
         69        ASSIGN                                                   !6, ~44
         70      > JMP                                                      ->73
   33    71    >   ASSIGN_OP                                     8          !4, '.'
   31    72        PRE_DEC                                                  !6
         73    >   IS_SMALLER                                               0, !6
         74      > JMPNZ                                                    ~48, ->71
   36    75    >   INIT_FCALL                                               'strpos'
         76        SEND_VAR                                                 !3
         77        FETCH_DIM_R                                      ~49     !1, 28
         78        SEND_VAL                                                 ~49
         79        DO_ICALL                                         $50     
         80        ASSIGN                                                   !7, $50
   37    81        INIT_FCALL                                               'substr'
         82        SEND_VAR                                                 !1
         83        SEND_VAL                                                 0
         84        SEND_VAL                                                 28
         85        DO_ICALL                                         $52     
         86        TYPE_CHECK                                    4          !7
         87      > JMPZ                                                     ~53, ->90
         88    >   QM_ASSIGN                                        ~54     0
         89      > JMP                                                      ->92
         90    >   BW_AND                                           ~55     !7, 48
         91        QM_ASSIGN                                        ~54     ~55
         92    >   FETCH_DIM_R                                      ~56     !3, ~54
         93        CONCAT                                           ~57     $52, ~56
         94        ASSIGN                                                   !8, ~57
   38    95        INIT_FCALL                                               'crypt'
         96        SEND_VAR                                                 !0
         97        SEND_VAR                                                 !4
         98        DO_ICALL                                         $59     
         99        ASSIGN                                                   !9, $59
   40   100        INIT_FCALL                                               'substr'
        101        SEND_VAR                                                 !9
        102        SEND_VAL                                                 0
        103        SEND_VAL                                                 29
        104        DO_ICALL                                         $61     
        105        IS_EQUAL                                                 !4, $61
        106      > JMPZ                                                     ~62, ->113
   42   107    >   INIT_FCALL                                               'substr'
        108        SEND_VAR                                                 !9
        109        SEND_VAL                                                 29
        110        DO_ICALL                                         $63     
        111        CONCAT                                           ~64     !8, $63
        112        ASSIGN                                                   !9, ~64
   44   113    > > RETURN                                                   !9
   48   114    >   INIT_FCALL                                               'crypt'
        115        SEND_VAR                                                 !0
        116        SEND_VAR                                                 !1
        117        DO_ICALL                                         $66     
        118      > RETURN                                                   $66
   49   119*     > RETURN                                                   null

End of function bf_crypt_with_legacy_salt

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
176.39 ms | 990 KiB | 20 Q