3v4l.org

run code in 300+ PHP versions simultaneously
<?php function decrypt($s) { $bytes = array_map('hexdec', str_split($s, 2)); $len = count($bytes); $bytes[$len - 1] ^= $bytes[0]; for ($i = 0; $i < $len - 1; $i++) { $bytes[$i] ^= $bytes[$i + 1]; } return join('', array_map('chr', $bytes)); } $s1 = <<<END 04386D03552F4B0E586C084F196C3671274C007A2B5E1350117E2F427B0D692E5620792E7C1073196A0D5F185E6E376426752F7731005A024C7C37665B662E7B1741154300420F590F6725701C7710763577247224690E682B6925762072266F27503762247E2F662E593E6F396F3A6E17266130662C622B631473274C753C6D38763A5C1D201D09460247327F2B487B375D182B6536027836774A77632C682D58154122115D3772410F5C68125C1D201D15583255226F3B6E5357194875484C017B3A0713701D4B7918400E7E1C2E1B612D4311254100392B17422C7A006421774327603643195E08632F5504713C7F3E51006D54224601790F5601533F5C36452270377141184B095A00581E2F752D6353184974490154386E3A6C2F6D207620480A5F33583F591A580B5D0B46214704460A590F5D0940087F184D0B510049017611401640154138094E1F49034D044C3B5C08635A134217591573320F3226692D681D50046754187237044A192D57195865584C034702773A6E0D3E72185D6E2073473D73320F323A771D7A0D4014417C7836675A67632E54152834610F592347025460044315603A7D2B400C672D41256227167700163D7D2846106A0E4B1D294D0A5C2973346209453F6E1B5615543B6A073E482C642A1A791452256A1351065C044E3E640A661674197A1D490E62085205304A104328155D086432663073317C2A7C1456036F04630546045701571A7D1B581A56055301551C54234411570D5C155D2A4D1C4A1C491D64551243155F1158106700543F064F1E4B05492F6E536E7A357134410C583B08442E6B581645710B45043904105F1B5E2B663251622E4401327C2F1B612F6E536E662B4126511C481D200C56014C7D244E0736783C655419630F653F7B3E0A4400497A3459036E345908713F7B225B1443157D306400477B2E40166C084D1B2F4B0C5A2F7532640F4339681D5013523D6C01384E2A6D15633A6D3F53305A294E1C5B1D2D742765366C34724319410F3F742518256D385402560043014C1A4C2466335F34533576346731672A4D2B682A66356331652C64137421673D6C256D1A7D2C7A2C792D54652273256F2168205730640F367F2E7B35791F5E635E4A054104713C680B38741E5B682675413B75340934206F2B6E1B560261521E7431024C1F2B511F5E635E561B7116612C782D10145A0B360B0F423879445C0967314B2F692B523003513D64570673224F19297024353D7D2846106A0E4B1D294D0A5C2973346209453F6E1B5615543B6A073E482C642A1A791452256A1351065C044E3E640A661674197A1D490E62085205304A104328155D086432663073317C2A7C1456036F04630546045701571A7D1B581A56055301551C54234411570D5C155D2A4D1C4A1C491D64551243155F1158106700543F064F1E4B05492F6E536E7A357134410C583B08442E6B581645710B45043904105F1B5E2B663251622E4401327C2F1B612F6E536E662B4126511C481D200C56014C7D244E0736783C655419630F653F7B3E0A4400497A3459036E345908713F7B225B1443157D306400 END; echo decrypt($s1);
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/Knj1D
function name:  (null)
number of ops:  6
compiled vars:  !0 = $s1
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   13     0  E >   ASSIGN                                                   !0, '04386D03552F4B0E586C084F196C3671274C007A2B5E1350117E2F427B0D692E5620792E7C1073196A0D5F185E6E376426752F7731005A024C7C37665B662E7B1741154300420F590F6725701C7710763577247224690E682B6925762072266F27503762247E2F662E593E6F396F3A6E17266130662C622B631473274C753C6D38763A5C1D201D09460247327F2B487B375D182B6536027836774A77632C682D58154122115D3772410F5C68125C1D201D15583255226F3B6E5357194875484C017B3A0713701D4B7918400E7E1C2E1B612D4311254100392B17422C7A006421774327603643195E08632F5504713C7F3E51006D54224601790F5601533F5C36452270377141184B095A00581E2F752D6353184974490154386E3A6C2F6D207620480A5F33583F591A580B5D0B46214704460A590F5D0940087F184D0B510049017611401640154138094E1F49034D044C3B5C08635A134217591573320F3226692D681D50046754187237044A192D57195865584C034702773A6E0D3E72185D6E2073473D73320F323A771D7A0D4014417C7836675A67632E54152834610F592347025460044315603A7D2B400C672D41256227167700163D7D2846106A0E4B1D294D0A5C2973346209453F6E1B5615543B6A073E482C642A1A791452256A1351065C044E3E640A661674197A1D490E62085205304A104328155D086432663073317C2A7C1456036F04630546045701571A7D1B581A56055301551C54234411570D5C155D2A4D1C4A1C491D64551243155F1158106700543F064F1E4B05492F6E536E7A357134410C583B08442E6B581645710B45043904105F1B5E2B663251622E4401327C2F1B612F6E536E662B4126511C481D200C56014C7D244E0736783C655419630F653F7B3E0A4400497A3459036E345908713F7B225B1443157D306400477B2E40166C084D1B2F4B0C5A2F7532640F4339681D5013523D6C01384E2A6D15633A6D3F53305A294E1C5B1D2D742765366C34724319410F3F742518256D385402560043014C1A4C2466335F34533576346731672A4D2B682A66356331652C64137421673D6C256D1A7D2C7A2C792D54652273256F2168205730640F367F2E7B35791F5E635E4A054104713C680B38741E5B682675413B75340934206F2B6E1B560261521E7431024C1F2B511F5E635E561B7116612C782D10145A0B360B0F423879445C0967314B2F692B523003513D64570673224F19297024353D7D2846106A0E4B1D294D0A5C2973346209453F6E1B5615543B6A073E482C642A1A791452256A1351065C044E3E640A661674197A1D490E62085205304A104328155D086432663073317C2A7C1456036F04630546045701571A7D1B581A56055301551C54234411570D5C155D2A4D1C4A1C491D64551243155F1158106700543F064F1E4B05492F6E536E7A357134410C583B08442E6B581645710B45043904105F1B5E2B663251622E4401327C2F1B612F6E536E662B4126511C481D200C56014C7D244E0736783C655419630F653F7B3E0A4400497A3459036E345908713F7B225B1443157D306400'
   17     1        INIT_FCALL                                               'decrypt'
          2        SEND_VAR                                                 !0
          3        DO_FCALL                                      0  $2      
          4        ECHO                                                     $2
          5      > RETURN                                                   1

Function decrypt:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 23
Branch analysis from position: 23
2 jumps found. (Code = 44) Position 1 = 26, Position 2 = 18
Branch analysis from position: 26
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 18
2 jumps found. (Code = 44) Position 1 = 26, Position 2 = 18
Branch analysis from position: 26
Branch analysis from position: 18
filename:       /in/Knj1D
function name:  decrypt
number of ops:  36
compiled vars:  !0 = $s, !1 = $bytes, !2 = $len, !3 = $i
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   RECV                                             !0      
    4     1        INIT_FCALL                                               'array_map'
          2        SEND_VAL                                                 'hexdec'
          3        INIT_FCALL                                               'str_split'
          4        SEND_VAR                                                 !0
          5        SEND_VAL                                                 2
          6        DO_ICALL                                         $4      
          7        SEND_VAR                                                 $4
          8        DO_ICALL                                         $5      
          9        ASSIGN                                                   !1, $5
    5    10        COUNT                                            ~7      !1
         11        ASSIGN                                                   !2, ~7
    6    12        SUB                                              ~9      !2, 1
         13        FETCH_DIM_R                                      ~11     !1, 0
         14        ASSIGN_DIM_OP                ^=              11          !1, ~9
         15        OP_DATA                                                  ~11
    7    16        ASSIGN                                                   !3, 0
         17      > JMP                                                      ->23
    8    18    >   ADD                                              ~14     !3, 1
         19        FETCH_DIM_R                                      ~15     !1, ~14
         20        ASSIGN_DIM_OP                ^=              11          !1, !3
         21        OP_DATA                                                  ~15
    7    22        PRE_INC                                                  !3
         23    >   SUB                                              ~17     !2, 1
         24        IS_SMALLER                                               !3, ~17
         25      > JMPNZ                                                    ~18, ->18
   10    26    >   INIT_FCALL                                               'join'
         27        SEND_VAL                                                 ''
         28        INIT_FCALL                                               'array_map'
         29        SEND_VAL                                                 'chr'
         30        SEND_VAR                                                 !1
         31        DO_ICALL                                         $19     
         32        SEND_VAR                                                 $19
         33        DO_ICALL                                         $20     
         34      > RETURN                                                   $20
   11    35*     > RETURN                                                   null

End of function decrypt

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
276.36 ms | 1011 KiB | 17 Q