3v4l.org

run code in 300+ PHP versions simultaneously
<?php function decrypt ($string,$cc_encryption_hash){ $key = md5(md5($cc_encryption_hash)) . md5($cc_encryption_hash); $hash_key = _hash($key); $hash_length = strlen($hash_key); $string = base64_decode($string); $tmp_iv = substr($string,0,$hash_length); $string = substr($string,$hash_length,strlen ($string) - $hash_length); $iv = $out = ''; $c = 0; while ($c < $hash_length){ $iv .= chr(ord($tmp_iv[$c]) ^ ord($hash_key[$c])); ++$c; } $key = $iv; $c = 0; while ($c < strlen($string)){ if (($c != 0 AND $c % $hash_length == 0)){ $key = _hash($key . substr($out,$c - $hash_length,$hash_length)); } $out .= chr(ord($key[$c % $hash_length]) ^ ord ($string[$c])); ++$c; } return $out; } function _hash($string) { $hash = (function_exists('sha1')) ? sha1($string):md5($string); $out = ''; $c = 0; while ($c < strlen($hash)){ $out .= chr(hexdec($hash[$c] .$hash[$c + 1])); $c += 2; } return $out; } decrypt("\xEF\xBF\xBD\x6F\x72\xEF\xBF\xBD\x3A\x69\x09\xEF\xBF\xBD\xEF\xBF\xBD\xC7\x91\xEF\xBF\xBD\xEF\xBF\xBD\x6C\xEF\xBF\xBD\xEF\xBF\xBD\x24\x78\x08\xEF\xBF\xBD\x08\xEF\xBF\xBD\x67\xEF\xBF\xBD\xEF\xBF\xBD\x16\xEF\xBF\xBD\xEF\xBF\xBD\x1F\x3F\xEF\xBF\xBD\x54","NjpKc0cpkzExDDvuGnZaTt926wemI34ldjWgaZvlo0IRt3cZh2Z0lYTilYuTRp5V");
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/ZobA5
function name:  (null)
number of ops:  5
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   41     0  E >   INIT_FCALL                                               'decrypt'
          1        SEND_VAL                                                 '%EF%BF%BDor%EF%BF%BD%3Ai%09%EF%BF%BD%EF%BF%BD%C7%91%EF%BF%BD%EF%BF%BDl%EF%BF%BD%EF%BF%BD%24x%08%EF%BF%BD%08%EF%BF%BDg%EF%BF%BD%EF%BF%BD%16%EF%BF%BD%EF%BF%BD%1F%3F%EF%BF%BDT'
          2        SEND_VAL                                                 'NjpKc0cpkzExDDvuGnZaTt926wemI34ldjWgaZvlo0IRt3cZh2Z0lYTilYuTRp5V'
          3        DO_FCALL                                      0          
          4      > RETURN                                                   1

Function decrypt:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 55
Branch analysis from position: 55
2 jumps found. (Code = 44) Position 1 = 57, Position 2 = 41
Branch analysis from position: 57
1 jumps found. (Code = 42) Position 1 = 92
Branch analysis from position: 92
2 jumps found. (Code = 44) Position 1 = 95, Position 2 = 60
Branch analysis from position: 95
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 60
2 jumps found. (Code = 46) Position 1 = 62, Position 2 = 65
Branch analysis from position: 62
2 jumps found. (Code = 43) Position 1 = 66, Position 2 = 77
Branch analysis from position: 66
2 jumps found. (Code = 44) Position 1 = 95, Position 2 = 60
Branch analysis from position: 95
Branch analysis from position: 60
Branch analysis from position: 77
Branch analysis from position: 65
Branch analysis from position: 41
2 jumps found. (Code = 44) Position 1 = 57, Position 2 = 41
Branch analysis from position: 57
Branch analysis from position: 41
filename:       /in/ZobA5
function name:  decrypt
number of ops:  97
compiled vars:  !0 = $string, !1 = $cc_encryption_hash, !2 = $key, !3 = $hash_key, !4 = $hash_length, !5 = $tmp_iv, !6 = $iv, !7 = $out, !8 = $c
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   RECV                                             !0      
          1        RECV                                             !1      
    3     2        INIT_FCALL                                               'md5'
          3        INIT_FCALL                                               'md5'
          4        SEND_VAR                                                 !1
          5        DO_ICALL                                         $9      
          6        SEND_VAR                                                 $9
          7        DO_ICALL                                         $10     
          8        INIT_FCALL                                               'md5'
          9        SEND_VAR                                                 !1
         10        DO_ICALL                                         $11     
         11        CONCAT                                           ~12     $10, $11
         12        ASSIGN                                                   !2, ~12
    4    13        INIT_FCALL_BY_NAME                                       '_hash'
         14        SEND_VAR_EX                                              !2
         15        DO_FCALL                                      0  $14     
         16        ASSIGN                                                   !3, $14
    6    17        STRLEN                                           ~16     !3
         18        ASSIGN                                                   !4, ~16
    7    19        INIT_FCALL                                               'base64_decode'
         20        SEND_VAR                                                 !0
         21        DO_ICALL                                         $18     
         22        ASSIGN                                                   !0, $18
    8    23        INIT_FCALL                                               'substr'
         24        SEND_VAR                                                 !0
         25        SEND_VAL                                                 0
         26        SEND_VAR                                                 !4
         27        DO_ICALL                                         $20     
         28        ASSIGN                                                   !5, $20
    9    29        INIT_FCALL                                               'substr'
         30        SEND_VAR                                                 !0
         31        SEND_VAR                                                 !4
         32        STRLEN                                           ~22     !0
         33        SUB                                              ~23     ~22, !4
         34        SEND_VAL                                                 ~23
         35        DO_ICALL                                         $24     
         36        ASSIGN                                                   !0, $24
   10    37        ASSIGN                                           ~26     !7, ''
         38        ASSIGN                                                   !6, ~26
   11    39        ASSIGN                                                   !8, 0
   12    40      > JMP                                                      ->55
   13    41    >   INIT_FCALL                                               'chr'
         42        INIT_FCALL                                               'ord'
         43        FETCH_DIM_R                                      ~29     !5, !8
         44        SEND_VAL                                                 ~29
         45        DO_ICALL                                         $30     
         46        INIT_FCALL                                               'ord'
         47        FETCH_DIM_R                                      ~31     !3, !8
         48        SEND_VAL                                                 ~31
         49        DO_ICALL                                         $32     
         50        BW_XOR                                           ~33     $30, $32
         51        SEND_VAL                                                 ~33
         52        DO_ICALL                                         $34     
         53        ASSIGN_OP                                     8          !6, $34
   14    54        PRE_INC                                                  !8
   12    55    >   IS_SMALLER                                               !8, !4
         56      > JMPNZ                                                    ~37, ->41
   17    57    >   ASSIGN                                                   !2, !6
   18    58        ASSIGN                                                   !8, 0
   19    59      > JMP                                                      ->92
   20    60    >   IS_NOT_EQUAL                                     ~40     !8, 0
         61      > JMPZ_EX                                          ~40     ~40, ->65
         62    >   MOD                                              ~41     !8, !4
         63        IS_EQUAL                                         ~42     ~41, 0
         64        BOOL                                             ~40     ~42
         65    > > JMPZ                                                     ~40, ->77
   22    66    >   INIT_FCALL_BY_NAME                                       '_hash'
         67        INIT_FCALL                                               'substr'
         68        SEND_VAR                                                 !7
         69        SUB                                              ~43     !8, !4
         70        SEND_VAL                                                 ~43
         71        SEND_VAR                                                 !4
         72        DO_ICALL                                         $44     
         73        CONCAT                                           ~45     !2, $44
         74        SEND_VAL_EX                                              ~45
         75        DO_FCALL                                      0  $46     
         76        ASSIGN                                                   !2, $46
   24    77    >   INIT_FCALL                                               'chr'
         78        INIT_FCALL                                               'ord'
         79        MOD                                              ~48     !8, !4
         80        FETCH_DIM_R                                      ~49     !2, ~48
         81        SEND_VAL                                                 ~49
         82        DO_ICALL                                         $50     
         83        INIT_FCALL                                               'ord'
         84        FETCH_DIM_R                                      ~51     !0, !8
         85        SEND_VAL                                                 ~51
         86        DO_ICALL                                         $52     
         87        BW_XOR                                           ~53     $50, $52
         88        SEND_VAL                                                 ~53
         89        DO_ICALL                                         $54     
         90        ASSIGN_OP                                     8          !7, $54
   25    91        PRE_INC                                                  !8
   19    92    >   STRLEN                                           ~57     !0
         93        IS_SMALLER                                               !8, ~57
         94      > JMPNZ                                                    ~58, ->60
   27    95    > > RETURN                                                   !7
   28    96*     > RETURN                                                   null

End of function decrypt

Function _hash:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 5, Position 2 = 10
Branch analysis from position: 5
1 jumps found. (Code = 42) Position 1 = 14
Branch analysis from position: 14
1 jumps found. (Code = 42) Position 1 = 30
Branch analysis from position: 30
2 jumps found. (Code = 44) Position 1 = 33, Position 2 = 18
Branch analysis from position: 33
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 18
2 jumps found. (Code = 44) Position 1 = 33, Position 2 = 18
Branch analysis from position: 33
Branch analysis from position: 18
Branch analysis from position: 10
1 jumps found. (Code = 42) Position 1 = 30
Branch analysis from position: 30
filename:       /in/ZobA5
function name:  _hash
number of ops:  35
compiled vars:  !0 = $string, !1 = $hash, !2 = $out, !3 = $c
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   29     0  E >   RECV                                             !0      
   31     1        INIT_FCALL                                               'function_exists'
          2        SEND_VAL                                                 'sha1'
          3        DO_ICALL                                         $4      
          4      > JMPZ                                                     $4, ->10
          5    >   INIT_FCALL                                               'sha1'
          6        SEND_VAR                                                 !0
          7        DO_ICALL                                         $5      
          8        QM_ASSIGN                                        ~6      $5
          9      > JMP                                                      ->14
         10    >   INIT_FCALL                                               'md5'
         11        SEND_VAR                                                 !0
         12        DO_ICALL                                         $7      
         13        QM_ASSIGN                                        ~6      $7
         14    >   ASSIGN                                                   !1, ~6
   32    15        ASSIGN                                                   !2, ''
   33    16        ASSIGN                                                   !3, 0
   35    17      > JMP                                                      ->30
   36    18    >   INIT_FCALL                                               'chr'
         19        INIT_FCALL                                               'hexdec'
         20        FETCH_DIM_R                                      ~11     !1, !3
         21        ADD                                              ~12     !3, 1
         22        FETCH_DIM_R                                      ~13     !1, ~12
         23        CONCAT                                           ~14     ~11, ~13
         24        SEND_VAL                                                 ~14
         25        DO_ICALL                                         $15     
         26        SEND_VAR                                                 $15
         27        DO_ICALL                                         $16     
         28        ASSIGN_OP                                     8          !2, $16
   37    29        ASSIGN_OP                                     1          !3, 2
   35    30    >   STRLEN                                           ~19     !1
         31        IS_SMALLER                                               !3, ~19
         32      > JMPNZ                                                    ~20, ->18
   39    33    > > RETURN                                                   !2
   40    34*     > RETURN                                                   null

End of function _hash

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
160.17 ms | 1411 KiB | 30 Q