3v4l.org

run code in 300+ PHP versions simultaneously
<?php error_reporting(E_ALL); function & XMLRPC_adjustValue(&$current_node){ if(is_array($current_node)){ if(isset($current_node['array'])){ if(!is_array($current_node['array']['data'])){ #If there are no elements, return an empty array return array(); }else{ #echo "Getting rid of array -> data -> value<br>\n"; $temp = &$current_node['array']['data']['value']; if(is_array($temp) and array_key_exists(0, $temp)){ $count = count($temp); for($n=0;$n<$count;$n++){ $temp2[$n] = &XMLRPC_adjustValue($temp[$n]); } $temp = &$temp2; }else{ $temp2 = &XMLRPC_adjustValue($temp); $temp = array(&$temp2); #I do the temp assignment because it avoids copying, # since I can put a reference in the array #PHP's reference model is a bit silly, and I can't just say: # $temp = array(&XMLRPC_adjustValue(&$temp)); } } }elseif(isset($current_node['struct'])){ if(!is_array($current_node['struct'])){ #If there are no members, return an empty array return array(); }else{ #echo "Getting rid of struct -> member<br>\n"; $temp = &$current_node['struct']['member']; if(is_array($temp) and array_key_exists(0, $temp)){ $count = count($temp); for($n=0;$n<$count;$n++){ #echo "Passing name {$temp[$n][name]}. Value is: " . show($temp[$n][value], var_dump, true) . "<br>\n"; $temp2[$temp[$n]['name']] = &XMLRPC_adjustValue($temp[$n]['value']); #echo "adjustValue(): After assigning, the value is " . show($temp2[$temp[$n]['name']], var_dump, true) . "<br>\n"; } }else{ #echo "Passing name $temp[name]<br>\n"; $temp2[$temp['name']] = &XMLRPC_adjustValue($temp['value']); } $temp = &$temp2; } }else{ $types = array('string', 'int', 'i4', 'double', 'dateTime.iso8601', 'base64', 'boolean'); $fell_through = true; foreach($types as $type){ if(array_key_exists($type, $current_node)){ #echo "Getting rid of '$type'<br>\n"; $temp = &$current_node[$type]; #echo "adjustValue(): The current node is set with a type of $type<br>\n"; $fell_through = false; break; } } if($fell_through){ $type = 'string'; #echo "Fell through! Type is $type<br>\n"; } switch ($type){ case 'int': case 'i4': $temp = (int)$temp; break; case 'string': $temp = (string)$temp; break; case 'double': $temp = (double)$temp; break; case 'boolean': $temp = (bool)$temp; break; } } }else{ $temp = (string)$current_node; } return $temp; } function XMLRPC_getParams($request){ if(!is_array($request['methodCall']['params'])){ #If there are no parameters, return an empty array return array(); }else{ #echo "Getting rid of methodCall -> params -> param<br>\n"; $temp = &$request['methodCall']['params']['param']; if(is_array($temp) and array_key_exists(0, $temp)){ $count = count($temp); for($n = 0; $n < $count; $n++){ #echo "Serializing parameter $n<br>"; $temp2[$n] = &XMLRPC_adjustValue($temp[$n]['value']); } }else{ $temp2[0] = &XMLRPC_adjustValue($temp['value']); } $temp = &$temp2; return $temp; } } function XMLRPC_getMethodName($methodCall){ #returns the method name return $methodCall['methodCall']['methodName']; } function XMLRPC_request($site, $location, $methodName, $params = NULL, $user_agent = NULL){ $site = explode(':', $site); if(isset($site[1]) and is_numeric($site[1])){ $port = $site[1]; }else{ $port = 80; } $site = $site[0]; $data["methodCall"]["methodName"] = $methodName; $param_count = count($params); if(!$param_count){ $data["methodCall"]["params"] = NULL; }else{ for($n = 0; $n<$param_count; $n++){ $data["methodCall"]["params"]["param"][$n]["value"] = $params[$n]; } } $data = XML_serialize($data); if(defined('XMLRPC_DEBUG') and XMLRPC_DEBUG){ XMLRPC_debug('XMLRPC_request', "<p>Received the following parameter list to send:</p>" . XMLRPC_show($params, 'print_r', true)); } $conn = fsockopen ($site, $port); #open the connection if(!$conn){ #if the connection was not opened successfully if(defined('XMLRPC_DEBUG') and XMLRPC_DEBUG){ XMLRPC_debug('XMLRPC_request', "<p>Connection failed: Couldn't make the connection to $site.</p>"); } return array(false, array('faultCode'=>10532, 'faultString'=>"Connection failed: Couldn't make the connection to $site.")); }else{ $headers = "POST $location HTTP/1.0\r\n" . "Host: $site\r\n" . "Connection: close\r\n" . ($user_agent ? "User-Agent: $user_agent\r\n" : '') . "Content-Type: text/xml\r\n" . "Content-Length: " . strlen($data) . "\r\n\r\n"; fputs($conn, "$headers"); fputs($conn, $data); if(defined('XMLRPC_DEBUG') and XMLRPC_DEBUG){ XMLRPC_debug('XMLRPC_request', "<p>Sent the following request:</p>\n\n" . XMLRPC_show($headers . $data, 'print_r', true)); } #socket_set_blocking ($conn, false); $response = ""; while(!feof($conn)){ $response .= fgets($conn, 1024); } fclose($conn); #strip headers off of response $data = XML_unserialize(substr($response, strpos($response, "\r\n\r\n")+4)); if(defined('XMLRPC_DEBUG') and XMLRPC_DEBUG){ XMLRPC_debug('XMLRPC_request', "<p>Received the following response:</p>\n\n" . XMLRPC_show($response, 'print_r', true) . "<p>Which was serialized into the following data:</p>\n\n" . XMLRPC_show($data, 'print_r', true)); } if(isset($data['methodResponse']['fault'])){ $return = array(false, XMLRPC_adjustValue($data['methodResponse']['fault']['value'])); if(defined('XMLRPC_DEBUG') and XMLRPC_DEBUG){ XMLRPC_debug('XMLRPC_request', "<p>Returning:</p>\n\n" . XMLRPC_show($return, 'var_dump', true)); } return $return; }else{ $return = array(true, XMLRPC_adjustValue($data['methodResponse']['params']['param']['value'])); if(defined('XMLRPC_DEBUG') and XMLRPC_DEBUG){ XMLRPC_debug('XMLRPC_request', "<p>Returning:</p>\n\n" . XMLRPC_show($return, 'var_dump', true)); } return $return; } } }
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/n8qYj
function name:  (null)
number of ops:  4
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   INIT_FCALL                                               'error_reporting'
          1        SEND_VAL                                                 32767
          2        DO_ICALL                                                 
  174     3      > RETURN                                                   1

Function xmlrpc_adjustvalue:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 3, Position 2 = 130
Branch analysis from position: 3
2 jumps found. (Code = 43) Position 1 = 5, Position 2 = 45
Branch analysis from position: 5
2 jumps found. (Code = 43) Position 1 = 10, Position 2 = 12
Branch analysis from position: 10
Return found
Branch analysis from position: 12
2 jumps found. (Code = 46) Position 1 = 18, Position 2 = 20
Branch analysis from position: 18
2 jumps found. (Code = 43) Position 1 = 21, Position 2 = 38
Branch analysis from position: 21
1 jumps found. (Code = 42) Position 1 = 34
Branch analysis from position: 34
2 jumps found. (Code = 44) Position 1 = 36, Position 2 = 25
Branch analysis from position: 36
1 jumps found. (Code = 42) Position 1 = 44
Branch analysis from position: 44
1 jumps found. (Code = 42) Position 1 = 129
Branch analysis from position: 129
1 jumps found. (Code = 42) Position 1 = 132
Branch analysis from position: 132
Return found
Branch analysis from position: 25
2 jumps found. (Code = 44) Position 1 = 36, Position 2 = 25
Branch analysis from position: 36
Branch analysis from position: 25
Branch analysis from position: 38
1 jumps found. (Code = 42) Position 1 = 129
Branch analysis from position: 129
Branch analysis from position: 20
Branch analysis from position: 45
2 jumps found. (Code = 43) Position 1 = 47, Position 2 = 91
Branch analysis from position: 47
2 jumps found. (Code = 43) Position 1 = 51, Position 2 = 53
Branch analysis from position: 51
Return found
Branch analysis from position: 53
2 jumps found. (Code = 46) Position 1 = 58, Position 2 = 60
Branch analysis from position: 58
2 jumps found. (Code = 43) Position 1 = 61, Position 2 = 80
Branch analysis from position: 61
1 jumps found. (Code = 42) Position 1 = 77
Branch analysis from position: 77
2 jumps found. (Code = 44) Position 1 = 79, Position 2 = 65
Branch analysis from position: 79
1 jumps found. (Code = 42) Position 1 = 89
Branch analysis from position: 89
1 jumps found. (Code = 42) Position 1 = 129
Branch analysis from position: 129
Branch analysis from position: 65
2 jumps found. (Code = 44) Position 1 = 79, Position 2 = 65
Branch analysis from position: 79
Branch analysis from position: 65
Branch analysis from position: 80
1 jumps found. (Code = 42) Position 1 = 129
Branch analysis from position: 129
Branch analysis from position: 60
Branch analysis from position: 91
2 jumps found. (Code = 77) Position 1 = 94, Position 2 = 102
Branch analysis from position: 94
2 jumps found. (Code = 78) Position 1 = 95, Position 2 = 102
Branch analysis from position: 95
2 jumps found. (Code = 43) Position 1 = 97, Position 2 = 101
Branch analysis from position: 97
1 jumps found. (Code = 42) Position 1 = 102
Branch analysis from position: 102
2 jumps found. (Code = 43) Position 1 = 104, Position 2 = 105
Branch analysis from position: 104
7 jumps found. (Code = 188) Position 1 = 117, Position 2 = 117, Position 3 = 120, Position 4 = 123, Position 5 = 126, Position 6 = 129, Position 7 = 106
Branch analysis from position: 117
1 jumps found. (Code = 42) Position 1 = 129
Branch analysis from position: 129
Branch analysis from position: 117
Branch analysis from position: 120
1 jumps found. (Code = 42) Position 1 = 129
Branch analysis from position: 129
Branch analysis from position: 123
1 jumps found. (Code = 42) Position 1 = 129
Branch analysis from position: 129
Branch analysis from position: 126
1 jumps found. (Code = 42) Position 1 = 129
Branch analysis from position: 129
Branch analysis from position: 129
Branch analysis from position: 106
2 jumps found. (Code = 44) Position 1 = 108, Position 2 = 117
Branch analysis from position: 108
2 jumps found. (Code = 44) Position 1 = 110, Position 2 = 117
Branch analysis from position: 110
2 jumps found. (Code = 44) Position 1 = 112, Position 2 = 120
Branch analysis from position: 112
2 jumps found. (Code = 44) Position 1 = 114, Position 2 = 123
Branch analysis from position: 114
2 jumps found. (Code = 44) Position 1 = 116, Position 2 = 126
Branch analysis from position: 116
1 jumps found. (Code = 42) Position 1 = 129
Branch analysis from position: 129
Branch analysis from position: 126
Branch analysis from position: 123
Branch analysis from position: 120
Branch analysis from position: 117
Branch analysis from position: 117
Branch analysis from position: 105
Branch analysis from position: 101
1 jumps found. (Code = 42) Position 1 = 94
Branch analysis from position: 94
Branch analysis from position: 102
Branch analysis from position: 102
Branch analysis from position: 130
Return found
filename:       /in/n8qYj
function name:  XMLRPC_adjustValue
number of ops:  134
compiled vars:  !0 = $current_node, !1 = $temp, !2 = $count, !3 = $n, !4 = $temp2, !5 = $types, !6 = $fell_through, !7 = $type
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   RECV                                             !0      
    4     1        TYPE_CHECK                                  128          !0
          2      > JMPZ                                                     ~8, ->130
    5     3    >   ISSET_ISEMPTY_DIM_OBJ                         0          !0, 'array'
          4      > JMPZ                                                     ~9, ->45
    6     5    >   FETCH_DIM_R                                      ~10     !0, 'array'
          6        FETCH_DIM_R                                      ~11     ~10, 'data'
          7        TYPE_CHECK                                  128  ~12     ~11
          8        BOOL_NOT                                         ~13     ~12
          9      > JMPZ                                                     ~13, ->12
    8    10    > > RETURN_BY_REF                                            <array>
         11*       JMP                                                      ->44
   11    12    >   FETCH_DIM_W                                      $14     !0, 'array'
         13        FETCH_DIM_W                                      $15     $14, 'data'
         14        FETCH_DIM_W                                      $16     $15, 'value'
         15        ASSIGN_REF                                               !1, $16
   12    16        TYPE_CHECK                                  128  ~18     !1
         17      > JMPZ_EX                                          ~18     ~18, ->20
         18    >   ARRAY_KEY_EXISTS                                 ~19     0, !1
         19        BOOL                                             ~18     ~19
         20    > > JMPZ                                                     ~18, ->38
   13    21    >   COUNT                                            ~20     !1
         22        ASSIGN                                                   !2, ~20
   14    23        ASSIGN                                                   !3, 0
         24      > JMP                                                      ->34
   15    25    >   INIT_FCALL_BY_NAME                                       'XMLRPC_adjustValue'
         26        CHECK_FUNC_ARG                                           
         27        FETCH_DIM_FUNC_ARG                               $24     !1, !3
         28        SEND_FUNC_ARG                                            $24
         29        DO_FCALL                                      0  $25     
         30        MAKE_REF                                         $26     $25
         31        FETCH_DIM_W                                      $23     !4, !3
         32        ASSIGN_REF                                               $23, $26
   14    33        PRE_INC                                                  !3
         34    >   IS_SMALLER                                               !3, !2
         35      > JMPNZ                                                    ~29, ->25
   17    36    >   ASSIGN_REF                                               !1, !4
         37      > JMP                                                      ->44
   19    38    >   INIT_FCALL_BY_NAME                                       'XMLRPC_adjustValue'
         39        SEND_VAR_EX                                              !1
         40        DO_FCALL                                      0  $31     
         41        ASSIGN_REF                                               !4, $31
   20    42        INIT_ARRAY                                       ~33     !4
         43        ASSIGN                                                   !1, ~33
         44    > > JMP                                                      ->129
   27    45    >   ISSET_ISEMPTY_DIM_OBJ                         0          !0, 'struct'
         46      > JMPZ                                                     ~35, ->91
   28    47    >   FETCH_DIM_R                                      ~36     !0, 'struct'
         48        TYPE_CHECK                                  128  ~37     ~36
         49        BOOL_NOT                                         ~38     ~37
         50      > JMPZ                                                     ~38, ->53
   30    51    > > RETURN_BY_REF                                            <array>
         52*       JMP                                                      ->90
   33    53    >   FETCH_DIM_W                                      $39     !0, 'struct'
         54        FETCH_DIM_W                                      $40     $39, 'member'
         55        ASSIGN_REF                                               !1, $40
   34    56        TYPE_CHECK                                  128  ~42     !1
         57      > JMPZ_EX                                          ~42     ~42, ->60
         58    >   ARRAY_KEY_EXISTS                                 ~43     0, !1
         59        BOOL                                             ~42     ~43
         60    > > JMPZ                                                     ~42, ->80
   35    61    >   COUNT                                            ~44     !1
         62        ASSIGN                                                   !2, ~44
   36    63        ASSIGN                                                   !3, 0
         64      > JMP                                                      ->77
   38    65    >   FETCH_DIM_R                                      ~47     !1, !3
         66        FETCH_DIM_R                                      ~48     ~47, 'name'
         67        INIT_FCALL_BY_NAME                                       'XMLRPC_adjustValue'
         68        CHECK_FUNC_ARG                                           
         69        FETCH_DIM_FUNC_ARG                               $50     !1, !3
         70        FETCH_DIM_FUNC_ARG                               $51     $50, 'value'
         71        SEND_FUNC_ARG                                            $51
         72        DO_FCALL                                      0  $52     
         73        MAKE_REF                                         $53     $52
         74        FETCH_DIM_W                                      $49     !4, ~48
         75        ASSIGN_REF                                               $49, $53
   36    76        PRE_INC                                                  !3
         77    >   IS_SMALLER                                               !3, !2
         78      > JMPNZ                                                    ~56, ->65
         79    > > JMP                                                      ->89
   43    80    >   FETCH_DIM_R                                      ~57     !1, 'name'
         81        INIT_FCALL_BY_NAME                                       'XMLRPC_adjustValue'
         82        CHECK_FUNC_ARG                                           
         83        FETCH_DIM_FUNC_ARG                               $59     !1, 'value'
         84        SEND_FUNC_ARG                                            $59
         85        DO_FCALL                                      0  $60     
         86        MAKE_REF                                         $61     $60
         87        FETCH_DIM_W                                      $58     !4, ~57
         88        ASSIGN_REF                                               $58, $61
   45    89    >   ASSIGN_REF                                               !1, !4
         90      > JMP                                                      ->129
   48    91    >   ASSIGN                                                   !5, <array>
   49    92        ASSIGN                                                   !6, <true>
   50    93      > FE_RESET_R                                       $66     !5, ->102
         94    > > FE_FETCH_R                                               $66, !7, ->102
   51    95    >   ARRAY_KEY_EXISTS                                         !7, !0
         96      > JMPZ                                                     ~67, ->101
   53    97    >   FETCH_DIM_W                                      $68     !0, !7
         98        ASSIGN_REF                                               !1, $68
   55    99        ASSIGN                                                   !6, <false>
   56   100      > JMP                                                      ->102
   50   101    > > JMP                                                      ->94
        102    >   FE_FREE                                                  $66
   59   103      > JMPZ                                                     !6, ->105
   60   104    >   ASSIGN                                                   !7, 'string'
   63   105    > > SWITCH_STRING                                            !7, [ 'int':->117, 'i4':->117, 'string':->120, 'double':->123, 'boolean':->126, ], ->129
   64   106    >   IS_EQUAL                                                 !7, 'int'
        107      > JMPNZ                                                    ~72, ->117
        108    >   IS_EQUAL                                                 !7, 'i4'
        109      > JMPNZ                                                    ~72, ->117
   65   110    >   IS_EQUAL                                                 !7, 'string'
        111      > JMPNZ                                                    ~72, ->120
   66   112    >   IS_EQUAL                                                 !7, 'double'
        113      > JMPNZ                                                    ~72, ->123
   67   114    >   IS_EQUAL                                                 !7, 'boolean'
        115      > JMPNZ                                                    ~72, ->126
        116    > > JMP                                                      ->129
   64   117    >   CAST                                          4  ~73     !1
        118        ASSIGN                                                   !1, ~73
        119      > JMP                                                      ->129
   65   120    >   CAST                                          6  ~75     !1
        121        ASSIGN                                                   !1, ~75
        122      > JMP                                                      ->129
   66   123    >   CAST                                          5  ~77     !1
        124        ASSIGN                                                   !1, ~77
        125      > JMP                                                      ->129
   67   126    >   BOOL                                             ~79     !1
        127        ASSIGN                                                   !1, ~79
        128      > JMP                                                      ->129
        129    > > JMP                                                      ->132
   71   130    >   CAST                                          6  ~81     !0
        131        ASSIGN                                                   !1, ~81
   73   132    > > RETURN_BY_REF                                            !1
   74   133*     > RETURN_BY_REF                                            null

End of function xmlrpc_adjustvalue

Function xmlrpc_getparams:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 8
Branch analysis from position: 6
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 8
2 jumps found. (Code = 46) Position 1 = 14, Position 2 = 16
Branch analysis from position: 14
2 jumps found. (Code = 43) Position 1 = 17, Position 2 = 33
Branch analysis from position: 17
1 jumps found. (Code = 42) Position 1 = 30
Branch analysis from position: 30
2 jumps found. (Code = 44) Position 1 = 32, Position 2 = 21
Branch analysis from position: 32
1 jumps found. (Code = 42) Position 1 = 40
Branch analysis from position: 40
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 21
2 jumps found. (Code = 44) Position 1 = 32, Position 2 = 21
Branch analysis from position: 32
Branch analysis from position: 21
Branch analysis from position: 33
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 16
filename:       /in/n8qYj
function name:  XMLRPC_getParams
number of ops:  43
compiled vars:  !0 = $request, !1 = $temp, !2 = $count, !3 = $n, !4 = $temp2
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   76     0  E >   RECV                                             !0      
   77     1        FETCH_DIM_R                                      ~5      !0, 'methodCall'
          2        FETCH_DIM_R                                      ~6      ~5, 'params'
          3        TYPE_CHECK                                  128  ~7      ~6
          4        BOOL_NOT                                         ~8      ~7
          5      > JMPZ                                                     ~8, ->8
   79     6    > > RETURN                                                   <array>
          7*       JMP                                                      ->42
   82     8    >   FETCH_DIM_W                                      $9      !0, 'methodCall'
          9        FETCH_DIM_W                                      $10     $9, 'params'
         10        FETCH_DIM_W                                      $11     $10, 'param'
         11        ASSIGN_REF                                               !1, $11
   83    12        TYPE_CHECK                                  128  ~13     !1
         13      > JMPZ_EX                                          ~13     ~13, ->16
         14    >   ARRAY_KEY_EXISTS                                 ~14     0, !1
         15        BOOL                                             ~13     ~14
         16    > > JMPZ                                                     ~13, ->33
   84    17    >   COUNT                                            ~15     !1
         18        ASSIGN                                                   !2, ~15
   85    19        ASSIGN                                                   !3, 0
         20      > JMP                                                      ->30
   87    21    >   INIT_FCALL                                               'xmlrpc_adjustvalue'
         22        FETCH_DIM_W                                      $19     !1, !3
         23        FETCH_DIM_W                                      $20     $19, 'value'
         24        SEND_REF                                                 $20
         25        DO_FCALL                                      0  $21     
         26        MAKE_REF                                         $22     $21
         27        FETCH_DIM_W                                      $18     !4, !3
         28        ASSIGN_REF                                               $18, $22
   85    29        PRE_INC                                                  !3
         30    >   IS_SMALLER                                               !3, !2
         31      > JMPNZ                                                    ~25, ->21
         32    > > JMP                                                      ->40
   90    33    >   INIT_FCALL                                               'xmlrpc_adjustvalue'
         34        FETCH_DIM_W                                      $27     !1, 'value'
         35        SEND_REF                                                 $27
         36        DO_FCALL                                      0  $28     
         37        MAKE_REF                                         $29     $28
         38        FETCH_DIM_W                                      $26     !4, 0
         39        ASSIGN_REF                                               $26, $29
   92    40    >   ASSIGN_REF                                               !1, !4
   93    41      > RETURN                                                   !1
   95    42*     > RETURN                                                   null

End of function xmlrpc_getparams

Function xmlrpc_getmethodname:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/n8qYj
function name:  XMLRPC_getMethodName
number of ops:  5
compiled vars:  !0 = $methodCall
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   97     0  E >   RECV                                             !0      
   99     1        FETCH_DIM_R                                      ~1      !0, 'methodCall'
          2        FETCH_DIM_R                                      ~2      ~1, 'methodName'
          3      > RETURN                                                   ~2
  100     4*     > RETURN                                                   null

End of function xmlrpc_getmethodname

Function xmlrpc_request:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 46) Position 1 = 12, Position 2 = 17
Branch analysis from position: 12
2 jumps found. (Code = 43) Position 1 = 18, Position 2 = 21
Branch analysis from position: 18
1 jumps found. (Code = 42) Position 1 = 22
Branch analysis from position: 22
2 jumps found. (Code = 43) Position 1 = 31, Position 2 = 35
Branch analysis from position: 31
1 jumps found. (Code = 42) Position 1 = 47
Branch analysis from position: 47
2 jumps found. (Code = 46) Position 1 = 53, Position 2 = 55
Branch analysis from position: 53
2 jumps found. (Code = 43) Position 1 = 56, Position 2 = 66
Branch analysis from position: 56
2 jumps found. (Code = 43) Position 1 = 73, Position 2 = 94
Branch analysis from position: 73
2 jumps found. (Code = 46) Position 1 = 75, Position 2 = 77
Branch analysis from position: 75
2 jumps found. (Code = 43) Position 1 = 78, Position 2 = 85
Branch analysis from position: 78
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 85
Branch analysis from position: 77
Branch analysis from position: 94
2 jumps found. (Code = 43) Position 1 = 103, Position 2 = 108
Branch analysis from position: 103
1 jumps found. (Code = 42) Position 1 = 109
Branch analysis from position: 109
2 jumps found. (Code = 46) Position 1 = 127, Position 2 = 129
Branch analysis from position: 127
2 jumps found. (Code = 43) Position 1 = 130, Position 2 = 141
Branch analysis from position: 130
1 jumps found. (Code = 42) Position 1 = 148
Branch analysis from position: 148
2 jumps found. (Code = 44) Position 1 = 153, Position 2 = 143
Branch analysis from position: 153
2 jumps found. (Code = 46) Position 1 = 171, Position 2 = 173
Branch analysis from position: 171
2 jumps found. (Code = 43) Position 1 = 174, Position 2 = 191
Branch analysis from position: 174
2 jumps found. (Code = 43) Position 1 = 194, Position 2 = 220
Branch analysis from position: 194
2 jumps found. (Code = 46) Position 1 = 205, Position 2 = 207
Branch analysis from position: 205
2 jumps found. (Code = 43) Position 1 = 208, Position 2 = 218
Branch analysis from position: 208
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 218
Branch analysis from position: 207
Branch analysis from position: 220
2 jumps found. (Code = 46) Position 1 = 232, Position 2 = 234
Branch analysis from position: 232
2 jumps found. (Code = 43) Position 1 = 235, Position 2 = 245
Branch analysis from position: 235
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 245
Branch analysis from position: 234
Branch analysis from position: 191
Branch analysis from position: 173
Branch analysis from position: 143
2 jumps found. (Code = 44) Position 1 = 153, Position 2 = 143
Branch analysis from position: 153
Branch analysis from position: 143
Branch analysis from position: 141
Branch analysis from position: 129
Branch analysis from position: 108
2 jumps found. (Code = 46) Position 1 = 127, Position 2 = 129
Branch analysis from position: 127
Branch analysis from position: 129
Branch analysis from position: 66
Branch analysis from position: 55
Branch analysis from position: 35
1 jumps found. (Code = 42) Position 1 = 45
Branch analysis from position: 45
2 jumps found. (Code = 44) Position 1 = 47, Position 2 = 37
Branch analysis from position: 47
Branch analysis from position: 37
2 jumps found. (Code = 44) Position 1 = 47, Position 2 = 37
Branch analysis from position: 47
Branch analysis from position: 37
Branch analysis from position: 21
2 jumps found. (Code = 43) Position 1 = 31, Position 2 = 35
Branch analysis from position: 31
Branch analysis from position: 35
Branch analysis from position: 17
filename:       /in/n8qYj
function name:  XMLRPC_request
number of ops:  247
compiled vars:  !0 = $site, !1 = $location, !2 = $methodName, !3 = $params, !4 = $user_agent, !5 = $port, !6 = $data, !7 = $param_count, !8 = $n, !9 = $conn, !10 = $headers, !11 = $response, !12 = $return
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  102     0  E >   RECV                                             !0      
          1        RECV                                             !1      
          2        RECV                                             !2      
          3        RECV_INIT                                        !3      null
          4        RECV_INIT                                        !4      null
  103     5        INIT_FCALL                                               'explode'
          6        SEND_VAL                                                 '%3A'
          7        SEND_VAR                                                 !0
          8        DO_ICALL                                         $13     
          9        ASSIGN                                                   !0, $13
  104    10        ISSET_ISEMPTY_DIM_OBJ                         0  ~15     !0, 1
         11      > JMPZ_EX                                          ~15     ~15, ->17
         12    >   INIT_FCALL                                               'is_numeric'
         13        FETCH_DIM_R                                      ~16     !0, 1
         14        SEND_VAL                                                 ~16
         15        DO_ICALL                                         $17     
         16        BOOL                                             ~15     $17
         17    > > JMPZ                                                     ~15, ->21
  105    18    >   FETCH_DIM_R                                      ~18     !0, 1
         19        ASSIGN                                                   !5, ~18
         20      > JMP                                                      ->22
  107    21    >   ASSIGN                                                   !5, 80
  109    22    >   FETCH_DIM_R                                      ~21     !0, 0
         23        ASSIGN                                                   !0, ~21
  111    24        FETCH_DIM_W                                      $23     !6, 'methodCall'
         25        ASSIGN_DIM                                               $23, 'methodName'
         26        OP_DATA                                                  !2
  112    27        COUNT                                            ~25     !3
         28        ASSIGN                                                   !7, ~25
  113    29        BOOL_NOT                                         ~27     !7
         30      > JMPZ                                                     ~27, ->35
  114    31    >   FETCH_DIM_W                                      $28     !6, 'methodCall'
         32        ASSIGN_DIM                                               $28, 'params'
         33        OP_DATA                                                  null
         34      > JMP                                                      ->47
  116    35    >   ASSIGN                                                   !8, 0
         36      > JMP                                                      ->45
  117    37    >   FETCH_DIM_R                                      ~36     !3, !8
         38        FETCH_DIM_W                                      $31     !6, 'methodCall'
         39        FETCH_DIM_W                                      $32     $31, 'params'
         40        FETCH_DIM_W                                      $33     $32, 'param'
         41        FETCH_DIM_W                                      $34     $33, !8
         42        ASSIGN_DIM                                               $34, 'value'
         43        OP_DATA                                                  ~36
  116    44        PRE_INC                                                  !8
         45    >   IS_SMALLER                                               !8, !7
         46      > JMPNZ                                                    ~38, ->37
  120    47    >   INIT_FCALL_BY_NAME                                       'XML_serialize'
         48        SEND_VAR_EX                                              !6
         49        DO_FCALL                                      0  $39     
         50        ASSIGN                                                   !6, $39
  122    51        DEFINED                                          ~41     'XMLRPC_DEBUG'
         52      > JMPZ_EX                                          ~41     ~41, ->55
         53    >   FETCH_CONSTANT                                   ~42     'XMLRPC_DEBUG'
         54        BOOL                                             ~41     ~42
         55    > > JMPZ                                                     ~41, ->66
  123    56    >   INIT_FCALL_BY_NAME                                       'XMLRPC_debug'
         57        SEND_VAL_EX                                              'XMLRPC_request'
         58        INIT_FCALL_BY_NAME                                       'XMLRPC_show'
         59        SEND_VAR_EX                                              !3
         60        SEND_VAL_EX                                              'print_r'
         61        SEND_VAL_EX                                              <true>
         62        DO_FCALL                                      0  $43     
         63        CONCAT                                           ~44     '%3Cp%3EReceived+the+following+parameter+list+to+send%3A%3C%2Fp%3E', $43
         64        SEND_VAL_EX                                              ~44
         65        DO_FCALL                                      0          
  125    66    >   INIT_FCALL                                               'fsockopen'
         67        SEND_VAR                                                 

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
264.28 ms | 1431 KiB | 24 Q