3v4l.org

run code in 300+ PHP versions simultaneously
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 82
Branch analysis from position: 82
1 jumps found. (Code = 42) Position 1 = 130
Branch analysis from position: 130
1 jumps found. (Code = 62) Position 1 = -2
Found catch point at position: 66
Branch analysis from position: 66
2 jumps found. (Code = 107) Position 1 = 67, Position 2 = -2
Branch analysis from position: 67
2 jumps found. (Code = 43) Position 1 = 79, Position 2 = 82
Branch analysis from position: 79
1 jumps found. (Code = 42) Position 1 = 130
Branch analysis from position: 130
Branch analysis from position: 82
Found catch point at position: 114
Branch analysis from position: 114
2 jumps found. (Code = 107) Position 1 = 115, Position 2 = -2
Branch analysis from position: 115
2 jumps found. (Code = 43) Position 1 = 127, Position 2 = 130
Branch analysis from position: 127
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 130
filename:       /in/k4c0tj
function name:  (null)
number of ops:  132
compiled vars:  !0 = $private_key, !1 = $public_key, !2 = $in, !3 = $C, !4 = $D, !5 = $start, !6 = $end, !7 = $out, !8 = $Corig, !9 = $ex, !10 = $Dorig
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   98     0  E >   ASSIGN                                                   !0, '-----BEGIN+RSA+PRIVATE+KEY-----%0AMIIEowIBAAKCAQEAyaTgTt53ph3p5GHgwoGWwz5hRfWXSQA08NCOwe0FEgALWos9%0AGCjNFCd723nCHxBtN1qd74MSh%2FuN88JPIbwxKheDp4kxo4YMN5trPaF0e9G6Bj1N%0A02HnanxFLW%2BgmLbgYO%2FSZYfWF%2FM8yLBcu5Y1Ot0ZxDDDXS9wIQTtBE0ne3YbxgZJ%0AAZTU5XqyQ1DxdzYyC5lF6yBaR5UQtCYTnXAApVRuUI2Sd6L1E2vl9bSBumZ5IpNx%0AkRnAwIMjeTJB%2F0AIELh0mE5vwdihOCbdV6alUyhKC1%2B1w%2FFW6HWcp%2FJG1kKC8DPI%0AidZ78Bbqv9YFzkAbNni5eSBOsXVBKG78Zsc8owIDAQABAoIBAF22jLDa34yKdns3%0Aqfd7to%2BC3D5hRzAcMn6Azvf9qc%2BVybEI6RnjTHxDZWK5EajSP4%2FsQ15e8ivUk0Jo%0AWdJ53feL%2BhnQvwsab28gghSghrxM2kGwGA1XgO%2BSVawqJt8SjvE%2BQ%2B%2F%2F01ZKK0Oy%0AA0cDJjX3L9RoPUN%2FmoMeAPFw0hqkFEhm72GSVCEY1eY%2BcOXmL3icxnsnlUD%2F%2FSS9%0Aq33RxF2y5oiW1edqcRqhW%2F7L1yYMbxHFUcxWh8WUwjn1AAhoCOUzF8ZB%2B0X%2FPPh%2B%0A1nYoq6xwqL0ZKDwrQ8SDhW%2FrNDLeO9gic5rl7EetRQRbFvsZ40AdsX2wU%2BlWFUkB%0A42AjuoECgYEA5z%2FCXqDFfZ8MXCPAOeui8y5HNDtu30aR%2BHOXsBDnRI8huXsGND04%0AFfmXR7nkghr08fFVDmE4PeKUk810YJb%2BIAJo8wrOZ0682n6yEMO58omqKin%2BiIUV%0ArPXLSLo5CChrqw2J4vgzolzPw3N5I8FJdLomb9FkrV84H%2BIviPIylyECgYEA3znw%0AAG29QX6ATEfFpGVOcogorHCntd4niaWCq5ne5sFL%2BEwLeVc1zD9yj1axcDelICDZ%0AxCZynU7kDnrQcFkT0bjH%2FgC8Jk3v7XT9l1UDDqC1b7rm%2FX5wFIZ%2FrmNa1rVZhL1o%0A%2FtKx5tvM2syJ1q95v7NdygFIEIW%2BqbIKbc6Wz0MCgYBsUZdQD%2Bqx%2FxAhELX364I2%0AepTryHMUrs%2BtGygQVrqdiJX5dcDgM1TUJkdQV6jLsKjPs4Vt6OgZRMrnuLMsk02R%0A3M8gGQ25ok4f4nyyEZxGGWnVujn55KzUiYWhGWmhgp18UCkoYa59%2FQ9ss%2BgocV9h%0AB9j9Q43vD80QUjiF4z0DQQKBgC7XQX1VibkMim93QAnXGDcAS0ij%2Bw02qKVBjcHk%0Ab9mMBhz8GAxGOIu7ZJafYmxhwMyVGB0I1FQeEczYCJUKnBYN6Clsjg6bnBT%2Fz5bJ%0Ax%2FJx1qCzX3Uh6vLjpjc5sf4L39Tyye1u2NXQmZPwB5x9BdcsFConSq%2Fs4K1LJtUT%0A3KFxAoGBANGcQ8nObi3m4wROyKrkCWcWxFFMnpwxv0pW727Hn9wuaOs4UbesCnwm%0ApcMTfzGUDuzYXCtAq2pJl64HG6wsdkWmjBTJEpm6b9ibOBN3qFV2zQ0HyyKlMWxI%0AuVSj9gOo61hF7UH9XB6R4HRdlpBOuIbgAWZ46dkj9%2FHM9ovdP0Iy%0A-----END+RSA+PRIVATE+KEY-----'
  126     1        ASSIGN                                                   !1, '-----BEGIN+PUBLIC+KEY-----%0AMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyaTgTt53ph3p5GHgwoGW%0Awz5hRfWXSQA08NCOwe0FEgALWos9GCjNFCd723nCHxBtN1qd74MSh%2FuN88JPIbwx%0AKheDp4kxo4YMN5trPaF0e9G6Bj1N02HnanxFLW%2BgmLbgYO%2FSZYfWF%2FM8yLBcu5Y1%0AOt0ZxDDDXS9wIQTtBE0ne3YbxgZJAZTU5XqyQ1DxdzYyC5lF6yBaR5UQtCYTnXAA%0ApVRuUI2Sd6L1E2vl9bSBumZ5IpNxkRnAwIMjeTJB%2F0AIELh0mE5vwdihOCbdV6al%0AUyhKC1%2B1w%2FFW6HWcp%2FJG1kKC8DPIidZ78Bbqv9YFzkAbNni5eSBOsXVBKG78Zsc8%0AowIDAQAB%0A-----END+PUBLIC+KEY-----'
  136     2        ASSIGN                                                   !2, 'This+is+a+test+message%21'
  137     3        INIT_STATIC_METHOD_CALL                                  'ParagonIE%5CBlogExampleCode%5CRSAPKCS1v15', 'encrypt'
          4        SEND_VAR                                                 !2
          5        SEND_VAR                                                 !1
          6        DO_FCALL                                      0  $14     
          7        FETCH_LIST_R                                     $15     $14, 0
          8        ASSIGN                                                   !3, $15
          9        FETCH_LIST_R                                     $17     $14, 1
         10        ASSIGN                                                   !4, $17
         11        FREE                                                     $14
  138    12        INIT_NS_FCALL_BY_NAME                                    'ParagonIE%5CBlogExampleCode%5Cmicrotime'
         13        SEND_VAL_EX                                              <true>
         14        DO_FCALL                                      0  $19     
         15        ASSIGN                                           ~20     !6, $19
         16        ASSIGN                                                   !5, ~20
  139    17        INIT_STATIC_METHOD_CALL                                  'ParagonIE%5CBlogExampleCode%5CRSAPKCS1v15', 'decrypt'
         18        SEND_VAR                                                 !3
         19        SEND_VAR                                                 !4
         20        SEND_VAR                                                 !0
         21        DO_FCALL                                      0  $22     
         22        ASSIGN                                                   !7, $22
  140    23        INIT_NS_FCALL_BY_NAME                                    'ParagonIE%5CBlogExampleCode%5Cmicrotime'
         24        SEND_VAL_EX                                              <true>
         25        DO_FCALL                                      0  $24     
         26        ASSIGN                                                   !6, $24
  142    27        INIT_NS_FCALL_BY_NAME                                    'ParagonIE%5CBlogExampleCode%5Cvar_dump'
         28        SEND_VAR_EX                                              !2
         29        SEND_VAR_EX                                              !7
         30        DO_FCALL                                      0          
  143    31        INIT_NS_FCALL_BY_NAME                                    'ParagonIE%5CBlogExampleCode%5Cvar_dump'
         32        SUB                                              ~27     !6, !5
         33        SEND_VAL_EX                                              ~27
         34        DO_FCALL                                      0          
  146    35        ASSIGN                                                   !8, !4
  147    36        INIT_NS_FCALL_BY_NAME                                    'ParagonIE%5CBlogExampleCode%5Chex2bin'
         37        SEND_VAR_EX                                              !3
         38        DO_FCALL                                      0  $30     
         39        ASSIGN                                                   !3, $30
  148    40        INIT_STATIC_METHOD_CALL                                  'ParagonIE%5CBlogExampleCode%5CRSAPKCS1v15', 'intToChr'
  149    41        INIT_STATIC_METHOD_CALL                                  'ParagonIE%5CBlogExampleCode%5CRSAPKCS1v15', 'chrToInt'
         42        FETCH_DIM_R                                      ~33     !3, 0
         43        SEND_VAL                                                 ~33
         44        DO_FCALL                                      0  $34     
         45        BW_XOR                                           ~35     $34, 255
         46        SEND_VAL                                                 ~35
  148    47        DO_FCALL                                      0  $36     
         48        ASSIGN_DIM                                               !3, 0
  149    49        OP_DATA                                                  $36
  151    50        INIT_NS_FCALL_BY_NAME                                    'ParagonIE%5CBlogExampleCode%5Cbin2hex'
         51        SEND_VAR_EX                                              !3
         52        DO_FCALL                                      0  $37     
         53        ASSIGN                                                   !3, $37
  153    54        INIT_NS_FCALL_BY_NAME                                    'ParagonIE%5CBlogExampleCode%5Cmicrotime'
         55        SEND_VAL_EX                                              <true>
         56        DO_FCALL                                      0  $39     
         57        ASSIGN                                           ~40     !6, $39
         58        ASSIGN                                                   !5, ~40
  155    59        INIT_STATIC_METHOD_CALL                                  'ParagonIE%5CBlogExampleCode%5CRSAPKCS1v15', 'decrypt'
         60        SEND_VAR                                                 !3
         61        SEND_VAR                                                 !4
         62        SEND_VAR                                                 !0
         63        DO_FCALL                                      0  $42     
         64        ASSIGN                                                   !7, $42
         65      > JMP                                                      ->82
  156    66  E > > CATCH                                       last         'Exception'
  157    67    >   INIT_NS_FCALL_BY_NAME                                    'ParagonIE%5CBlogExampleCode%5Cmicrotime'
         68        SEND_VAL_EX                                              <true>
         69        DO_FCALL                                      0  $44     
         70        ASSIGN                                                   !6, $44
  158    71        INIT_NS_FCALL_BY_NAME                                    'ParagonIE%5CBlogExampleCode%5Cvar_dump'
         72        SUB                                              ~46     !6, !5
         73        SEND_VAL_EX                                              ~46
         74        DO_FCALL                                      0          
  159    75        INIT_METHOD_CALL                                         !9, 'getMessage'
         76        DO_FCALL                                      0  $48     
         77        IS_IDENTICAL                                             $48, 'Invalid+MAC'
         78      > JMPZ                                                     ~49, ->82
  160    79    >   ECHO                                                     'Got+the+expected+error+message.+No+RSA+hints+given.'
         80        FETCH_CONSTANT                                   ~50     'ParagonIE%5CBlogExampleCode%5CPHP_EOL'
         81        ECHO                                                     ~50
  163    82    >   ASSIGN                                                   !3, !8
  166    83        ASSIGN                                                   !10, !4
  167    84        INIT_NS_FCALL_BY_NAME                                    'ParagonIE%5CBlogExampleCode%5Chex2bin'
         85        SEND_VAR_EX                                              !4
         86        DO_FCALL                                      0  $53     
         87        ASSIGN                                                   !4, $53
  168    88        INIT_STATIC_METHOD_CALL                                  'ParagonIE%5CBlogExampleCode%5CRSAPKCS1v15', 'intToChr'
  169    89        INIT_STATIC_METHOD_CALL                                  'ParagonIE%5CBlogExampleCode%5CRSAPKCS1v15', 'chrToInt'
         90        FETCH_DIM_R                                      ~56     !4, 0
         91        SEND_VAL                                                 ~56
         92        DO_FCALL                                      0  $57     
         93        BW_XOR                                           ~58     $57, 255
         94        SEND_VAL                                                 ~58
  168    95        DO_FCALL                                      0  $59     
         96        ASSIGN_DIM                                               !4, 0
  169    97        OP_DATA                                                  $59
  171    98        INIT_NS_FCALL_BY_NAME                                    'ParagonIE%5CBlogExampleCode%5Cbin2hex'
         99        SEND_VAR_EX                                              !4
        100        DO_FCALL                                      0  $60     
        101        ASSIGN                                                   !4, $60
  173   102        INIT_NS_FCALL_BY_NAME                                    'ParagonIE%5CBlogExampleCode%5Cmicrotime'
        103        SEND_VAL_EX                                              <true>
        104        DO_FCALL                                      0  $62     
        105        ASSIGN                                           ~63     !6, $62
        106        ASSIGN                                                   !5, ~63
  175   107        INIT_STATIC_METHOD_CALL                                  'ParagonIE%5CBlogExampleCode%5CRSAPKCS1v15', 'decrypt'
        108        SEND_VAR                                                 !3
        109        SEND_VAR                                                 !4
        110        SEND_VAR                                                 !0
        111        DO_FCALL                                      0  $65     
        112        ASSIGN                                                   !7, $65
        113      > JMP                                                      ->130
  176   114  E > > CATCH                                       last         'Exception'
  177   115    >   INIT_NS_FCALL_BY_NAME                                    'ParagonIE%5CBlogExampleCode%5Cmicrotime'
        116        SEND_VAL_EX                                              <true>
        117        DO_FCALL                                      0  $67     
        118        ASSIGN                                                   !6, $67
  178   119        INIT_NS_FCALL_BY_NAME                                    'ParagonIE%5CBlogExampleCode%5Cvar_dump'
        120        SUB                                              ~69     !6, !5
        121        SEND_VAL_EX                                              ~69
        122        DO_FCALL                                      0          
  179   123        INIT_METHOD_CALL                                         !9, 'getMessage'
        124        DO_FCALL                                      0  $71     
        125        IS_IDENTICAL                                             $71, 'Invalid+MAC'
        126      > JMPZ                                                     ~72, ->130
  180   127    >   ECHO                                                     'Got+the+expected+error+message.+No+RSA+hints+given.'
        128        FETCH_CONSTANT                                   ~73     'ParagonIE%5CBlogExampleCode%5CPHP_EOL'
        129        ECHO                                                     ~73
  183   130    >   ASSIGN                                                   !4, !10
  184   131      > RETURN                                                   1

Class ParagonIE\BlogExampleCode\RSAPKCS1v15:
Function encrypt:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/k4c0tj
function name:  encrypt
number of ops:  48
compiled vars:  !0 = $message, !1 = $publicKey, !2 = $key, !3 = $C, !4 = $iv, !5 = $cipher, !6 = $mac, !7 = $D
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   13     0  E >   RECV                                             !0      
          1        RECV                                             !1      
   15     2        INIT_FCALL                                               'random_bytes'
          3        SEND_VAL                                                 32
          4        DO_ICALL                                         $8      
          5        ASSIGN                                                   !2, $8
   16     6        ASSIGN                                                   !3, ''
   19     7        INIT_FCALL_BY_NAME                                       'openssl_public_encrypt'
          8        SEND_VAR_EX                                              !2
          9        SEND_VAR_EX                                              !3
         10        SEND_VAR_EX                                              !1
         11        DO_FCALL                                      0          
   21    12        INIT_FCALL                                               'random_bytes'
         13        SEND_VAL                                                 16
         14        DO_ICALL                                         $12     
         15        ASSIGN                                                   !4, $12
   22    16        INIT_FCALL_BY_NAME                                       'openssl_encrypt'
   23    17        SEND_VAR_EX                                              !0
   24    18        SEND_VAL_EX                                              'aes-256-ctr'
   23    19        SEND_VAR_EX                                              !2
   26    20        FETCH_CONSTANT                                   ~14     'ParagonIE%5CBlogExampleCode%5COPENSSL_RAW_DATA'
         21        SEND_VAL_EX                                              ~14
   23    22        SEND_VAR_EX                                              !4
   22    23        DO_FCALL                                      0  $15     
         24        ASSIGN                                                   !5, $15
   29    25        INIT_FCALL                                               'hash_hmac'
         26        SEND_VAL                                                 'sha256'
         27        CONCAT                                           ~17     !4, !5
         28        SEND_VAL                                                 ~17
         29        SEND_VAR                                                 !2
         30        SEND_VAL                                                 <true>
         31        DO_ICALL                                         $18     
         32        ASSIGN                                                   !6, $18
   30    33        CONCAT                                           ~20     !6, !4
         34        CONCAT                                           ~21     ~20, !5
         35        ASSIGN                                                   !7, ~21
   31    36        INIT_FCALL                                               'bin2hex'
         37        SEND_VAR                                                 !3
         38        DO_ICALL                                         $23     
         39        INIT_ARRAY                                       ~24     $23
         40        INIT_FCALL                                               'bin2hex'
         41        SEND_VAR                                                 !7
         42        DO_ICALL                                         $25     
         43        ADD_ARRAY_ELEMENT                                ~24     $25
         44        VERIFY_RETURN_TYPE                                       ~24
         45      > RETURN                                                   ~24
   32    46*       VERIFY_RETURN_TYPE                                       
         47*     > RETURN                                                   null

End of function encrypt

Function decrypt:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 64, Position 2 = 68
Branch analysis from position: 64
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 68
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/k4c0tj
function name:  decrypt
number of ops:  80
compiled vars:  !0 = $CHex, !1 = $DHex, !2 = $privateKey, !3 = $kPrime, !4 = $C, !5 = $D, !6 = $k, !7 = $success, !8 = $key, !9 = $mac, !10 = $iv, !11 = $cipher, !12 = $recalc
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   34     0  E >   RECV                                             !0      
          1        RECV                                             !1      
          2        RECV                                             !2      
   36     3        INIT_FCALL                                               'random_bytes'
          4        SEND_VAL                                                 32
          5        DO_ICALL                                         $13     
          6        ASSIGN                                                   !3, $13
   37     7        INIT_FCALL                                               'hex2bin'
          8        SEND_VAR                                                 !0
          9        DO_ICALL                                         $15     
         10        ASSIGN                                                   !4, $15
   38    11        INIT_FCALL                                               'hex2bin'
         12        SEND_VAR                                                 !1
         13        DO_ICALL                                         $17     
         14        ASSIGN                                                   !5, $17
   39    15        ASSIGN                                                   !6, ''
   40    16        INIT_FCALL_BY_NAME                                       'openssl_private_decrypt'
         17        SEND_VAR_EX                                              !4
         18        SEND_VAR_EX                                              !6
         19        SEND_VAR_EX                                              !2
         20        DO_FCALL                                      0  $20     
         21        ASSIGN                                                   !7, $20
   43    22        INIT_STATIC_METHOD_CALL                                  'cswap32'
         23        SEND_VAR_EX                                              !6
         24        CAST                                          6  ~22     !3
         25        SEND_VAL_EX                                              ~22
         26        SEND_VAR_EX                                              !7
         27        DO_FCALL                                      0  $23     
         28        ASSIGN                                                   !8, $23
   45    29        INIT_FCALL                                               'mb_substr'
         30        SEND_VAR                                                 !5
         31        SEND_VAL                                                 0
         32        SEND_VAL                                                 32
         33        SEND_VAL                                                 '8bit'
         34        DO_ICALL                                         $25     
         35        ASSIGN                                                   !9, $25
   46    36        INIT_FCALL                                               'mb_substr'
         37        SEND_VAR                                                 !5
         38        SEND_VAL                                                 32
         39        SEND_VAL                                                 16
         40        SEND_VAL                                                 '8bit'
         41        DO_ICALL                                         $27     
         42        ASSIGN                                                   !10, $27
   47    43        INIT_FCALL                                               'mb_substr'
         44        SEND_VAR                                                 !5
         45        SEND_VAL                                                 48
         46        SEND_VAL                                                 null
         47        SEND_VAL                                                 '8bit'
         48        DO_ICALL                                         $29     
         49        ASSIGN                                                   !11, $29
   48    50        INIT_FCALL                                               'hash_hmac'
         51        SEND_VAL                                                 'sha256'
         52        CONCAT                                           ~31     !10, !11
         53        SEND_VAL                                                 ~31
         54        SEND_VAR                                                 !8
         55        SEND_VAL                                                 <true>
         56        DO_ICALL                                         $32     
         57        ASSIGN                                                   !12, $32
   49    58        INIT_FCALL                                               'hash_equals'
         59        SEND_VAR                                                 !12
         60        SEND_VAR                                                 !9
         61        DO_ICALL                                         $34     
         62        BOOL_NOT                                         ~35     $34
         63      > JMPZ                                                     ~35, ->68
   50    64    >   NEW                                              $36     'Exception'
         65        SEND_VAL_EX                                              'Invalid+MAC'
         66        DO_FCALL                                      0          
         67      > THROW                                         0          $36
   52    68    >   INIT_FCALL_BY_NAME                                       'openssl_decrypt'
   53    69        SEND_VAR_EX                                              !11
   54    70        SEND_VAL_EX                                              'aes-256-ctr'
   53    71        SEND_VAR_EX                                              !8
   56    72        FETCH_CONSTANT                                   ~38     'ParagonIE%5CBlogExampleCode%5COPENSSL_RAW_DATA'
         73        SEND_VAL_EX                                              ~38
   53    74        SEND_VAR_EX                                              !10
   52    75        DO_FCALL                                      0  $39     
   53    76        VERIFY_RETURN_TYPE                                       $39
         77      > RETURN                                                   $39
   59    78*       VERIFY_RETURN_TYPE                                       
         79*     > RETURN                                                   null

End of function decrypt

Function cswap32:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 37
Branch analysis from position: 37
2 jumps found. (Code = 44) Position 1 = 39, Position 2 = 20
Branch analysis from position: 39
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 20
2 jumps found. (Code = 44) Position 1 = 39, Position 2 = 20
Branch analysis from position: 39
Branch analysis from position: 20
filename:       /in/k4c0tj
function name:  cswap32
number of ops:  51
compiled vars:  !0 = $A, !1 = $B, !2 = $success, !3 = $mask, !4 = $C, !5 = $i
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   70     0  E >   RECV                                             !0      
          1        RECV                                             !1      
          2        RECV                                             !2      
   72     3        INIT_FCALL                                               'str_repeat'
          4        SEND_VAL                                                 '%00'
          5        SEND_VAL                                                 32
          6        DO_ICALL                                         $6      
          7        ASSIGN_OP                                     8          !0, $6
   73     8        INIT_FCALL                                               'str_repeat'
          9        SEND_VAL                                                 '%00'
         10        SEND_VAL                                                 32
         11        DO_ICALL                                         $8      
         12        ASSIGN_OP                                     8          !1, $8
   75    13        CAST                                          4  ~10     !2
         14        SUB                                              ~11     ~10, 1
         15        BW_AND                                           ~12     ~11, 255
         16        ASSIGN                                                   !3, ~12
   77    17        ASSIGN                                                   !4, ''
   78    18        ASSIGN                                                   !5, 0
         19      > JMP                                                      ->37
   79    20    >   INIT_STATIC_METHOD_CALL                                  'intToChr'
   80    21        INIT_STATIC_METHOD_CALL                                  'chrToInt'
         22        CHECK_FUNC_ARG                                           
         23        FETCH_DIM_FUNC_ARG                               $16     !0, !5
         24        SEND_FUNC_ARG                                            $16
         25        DO_FCALL                                      0  $17     
         26        INIT_STATIC_METHOD_CALL                                  'chrToInt'
         27        CHECK_FUNC_ARG                                           
         28        FETCH_DIM_FUNC_ARG                               $18     !1, !5
         29        SEND_FUNC_ARG                                            $18
         30        DO_FCALL                                      0  $19     
         31        BW_XOR                                           ~20     $17, $19
         32        BW_AND                                           ~21     !3, ~20
         33        SEND_VAL_EX                                              ~21
   79    34        DO_FCALL                                      0  $22     
   80    35        ASSIGN_OP                                     8          !4, $22
   78    36        PRE_INC                                                  !5
         37    >   IS_SMALLER                                               !5, 32
         38      > JMPNZ                                                    ~25, ->20
   83    39    >   INIT_NS_FCALL_BY_NAME                                    'ParagonIE%5CBlogExampleCode%5Cmb_substr'
         40        BW_XOR                                           ~26     !0, !4
         41        SEND_VAL_EX                                              ~26
         42        SEND_VAL_EX                                              0
         43        SEND_VAL_EX                                              32
         44        SEND_VAL_EX                                              '8bit'
         45        DO_FCALL                                      0  $27     
         46        CAST                                          6  ~28     $27
         47        VERIFY_RETURN_TYPE                                       ~28
         48      > RETURN                                                   ~28
   84    49*       VERIFY_RETURN_TYPE                                       
         50*     > RETURN                                                   null

End of function cswap32

Function chrtoint:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/k4c0tj
function name:  chrToInt
number of ops:  12
compiled vars:  !0 = $chr, !1 = $chunk
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   86     0  E >   RECV                                             !0      
   88     1        INIT_FCALL  

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
211.67 ms | 1057 KiB | 22 Q