Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/Du2cF
function name: (null)
number of ops: 126
compiled vars: !0 = $testString, !1 = $stream, !2 = $filter
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
71 0 E > INIT_FCALL 'stream_wrapper_register'
1 SEND_VAL 'stringstream'
2 SEND_VAL 'StringStreamWrapper'
3 DO_ICALL
83 4 INIT_FCALL 'stream_filter_register'
5 SEND_VAL 'replacenullchar'
6 SEND_VAL 'replace_nullchar_filter'
7 DO_ICALL
108 8 ASSIGN !0, 'test'
109 9 INIT_FCALL 'base64_encode'
10 SEND_VAR !0
11 DO_ICALL $6
12 CONCAT ~7 'base64_encode+%3D+', $6
13 CONCAT ~8 ~7, '%0A'
14 ECHO ~8
112 15 ECHO 'StringStreamWrapper+write+filter+1+%3D+'
113 16 INIT_STATIC_METHOD_CALL 'StringStreamWrapper', 'Open'
17 SEND_VAL ''
18 DO_FCALL 0 $9
19 ASSIGN !1, $9
114 20 INIT_FCALL 'stream_filter_append'
21 SEND_VAR !1
22 SEND_VAL 'convert.base64-encode'
23 DO_ICALL $11
24 ASSIGN !2, $11
115 25 INIT_FCALL 'fwrite'
26 SEND_VAR !1
27 SEND_VAR !0
28 DO_ICALL
116 29 INIT_FCALL 'stream_filter_remove'
30 SEND_VAR !2
31 DO_ICALL
117 32 INIT_FCALL 'rewind'
33 SEND_VAR !1
34 DO_ICALL
118 35 INIT_FCALL 'fpassthru'
36 SEND_VAR !1
37 DO_ICALL
119 38 INIT_FCALL 'fclose'
39 SEND_VAR !1
40 DO_ICALL
120 41 ECHO '%0A'
123 42 INIT_STATIC_METHOD_CALL 'StringStreamWrapper', 'Open'
43 SEND_VAL ''
44 DO_FCALL 0 $18
45 ASSIGN !1, $18
124 46 INIT_FCALL 'stream_filter_append'
47 SEND_VAR !1
48 SEND_VAL 'convert.base64-encode'
49 SEND_VAL 2
50 DO_ICALL $20
51 ASSIGN !2, $20
125 52 INIT_FCALL 'fwrite'
53 SEND_VAR !1
54 SEND_VAR !0
55 DO_ICALL
126 56 INIT_FCALL 'stream_filter_remove'
57 SEND_VAR !2
58 DO_ICALL
127 59 INIT_FCALL 'rewind'
60 SEND_VAR !1
61 DO_ICALL
128 62 ECHO 'StringStreamWrapper+write+filter+2+%3D+'
129 63 INIT_FCALL 'fpassthru'
64 SEND_VAR !1
65 DO_ICALL
130 66 INIT_FCALL 'fclose'
67 SEND_VAR !1
68 DO_ICALL
131 69 ECHO '%0A'
134 70 ECHO 'StringStreamWrapper+read+filter+1+%3D+'
135 71 INIT_STATIC_METHOD_CALL 'StringStreamWrapper', 'Open'
72 SEND_VAL ''
73 DO_FCALL 0 $27
74 ASSIGN !1, $27
136 75 INIT_FCALL 'fwrite'
76 SEND_VAR !1
77 SEND_VAR !0
78 DO_ICALL
137 79 INIT_FCALL 'stream_filter_append'
80 SEND_VAR !1
81 SEND_VAL 'convert.base64-encode'
82 DO_ICALL $30
83 ASSIGN !2, $30
138 84 INIT_FCALL 'rewind'
85 SEND_VAR !1
86 DO_ICALL
139 87 INIT_FCALL 'fpassthru'
88 SEND_VAR !1
89 DO_ICALL
140 90 INIT_FCALL 'stream_filter_remove'
91 SEND_VAR !2
92 DO_ICALL
141 93 INIT_FCALL 'fclose'
94 SEND_VAR !1
95 DO_ICALL
142 96 ECHO '%0A'
145 97 ECHO 'StringStreamWrapper+read+filter+2+%3D+'
146 98 INIT_STATIC_METHOD_CALL 'StringStreamWrapper', 'Open'
99 SEND_VAL ''
100 DO_FCALL 0 $36
101 ASSIGN !1, $36
147 102 INIT_FCALL 'fwrite'
103 SEND_VAR !1
104 SEND_VAR !0
105 DO_ICALL
148 106 INIT_FCALL 'stream_filter_append'
107 SEND_VAR !1
108 SEND_VAL 'convert.base64-encode'
109 SEND_VAL 1
110 DO_ICALL $39
111 ASSIGN !2, $39
149 112 INIT_FCALL 'rewind'
113 SEND_VAR !1
114 DO_ICALL
150 115 INIT_FCALL 'fpassthru'
116 SEND_VAR !1
117 DO_ICALL
151 118 INIT_FCALL 'stream_filter_remove'
119 SEND_VAR !2
120 DO_ICALL
152 121 INIT_FCALL 'fclose'
122 SEND_VAR !1
123 DO_ICALL
153 124 ECHO '%0A'
125 > RETURN 1
Class StringStreamWrapper:
Function stream_open:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 13, Position 2 = 14
Branch analysis from position: 13
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 14
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/Du2cF
function name: stream_open
number of ops: 26
compiled vars: !0 = $path, !1 = $mode, !2 = $options, !3 = $opened_path, !4 = $contextOptions
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
10 0 E > RECV !0
1 RECV !1
2 RECV !2
3 RECV !3
11 4 INIT_FCALL 'stream_context_get_options'
5 FETCH_OBJ_R ~5 'context'
6 SEND_VAL ~5
7 DO_ICALL $6
8 ASSIGN !4, $6
12 9 FETCH_DIM_IS ~8 !4, 'stringstream'
10 ISSET_ISEMPTY_DIM_OBJ 0 ~9 ~8, 'string'
11 BOOL_NOT ~10 ~9
12 > JMPZ ~10, ->14
13 13 > > RETURN <false>
15 14 > ASSIGN_OBJ 'position'
15 OP_DATA 0
18 16 FETCH_DIM_R ~13 !4, 'stringstream'
17 FETCH_DIM_R ~14 ~13, 'string'
18 ASSIGN_OBJ 'stringstream'
19 OP_DATA ~14
20 20 FETCH_OBJ_R ~16 'stringstream'
21 STRLEN ~17 ~16
22 ASSIGN_OBJ 'stringlength'
23 OP_DATA ~17
22 24 > RETURN <true>
23 25* > RETURN null
End of function stream_open
Function stream_read:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/Du2cF
function name: stream_read
number of ops: 14
compiled vars: !0 = $len, !1 = $data
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
25 0 E > RECV !0
26 1 INIT_FCALL 'substr'
2 FETCH_OBJ_R ~2 'stringstream'
3 SEND_VAL ~2
4 FETCH_OBJ_R ~3 'position'
5 SEND_VAL ~3
6 SEND_VAR !0
7 DO_ICALL $4
8 ASSIGN !1, $4
27 9 STRLEN ~7 !1
10 ASSIGN_OBJ_OP 1 'position'
11 OP_DATA ~7
28 12 > RETURN !1
29 13* > RETURN null
End of function stream_read
Function stream_write:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/Du2cF
function name: stream_write
number of ops: 27
compiled vars: !0 = $data, !1 = $l
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
31 0 E > RECV !0
32 1 STRLEN ~2 !0
2 ASSIGN !1, ~2
33 3 INIT_FCALL 'substr'
4 FETCH_OBJ_R ~5 'stringstream'
5 SEND_VAL ~5
6 SEND_VAL 0
7 FETCH_OBJ_R ~6 'position'
8 SEND_VAL ~6
9 DO_ICALL $7
10 CONCAT ~8 $7, !0
11 INIT_FCALL 'substr'
12 FETCH_OBJ_R ~9 'stringstream'
13 SEND_VAL ~9
14 ASSIGN_OBJ_OP 1 ~10 'position'
15 OP_DATA !1
16 SEND_VAL ~10
17 DO_ICALL $11
18 CONCAT ~12 ~8, $11
19 ASSIGN_OBJ 'stringstream'
20 OP_DATA ~12
34 21 FETCH_OBJ_R ~14 'stringstream'
22 STRLEN ~15 ~14
23 ASSIGN_OBJ 'stringlength'
24 OP_DATA ~15
35 25 > RETURN !1
36 26* > RETURN null
End of function stream_write
Function stream_seek:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 4, Position 2 = 7
Branch analysis from position: 4
1 jumps found. (Code = 42) Position 1 = 16
Branch analysis from position: 16
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 7
2 jumps found. (Code = 43) Position 1 = 9, Position 2 = 14
Branch analysis from position: 9
1 jumps found. (Code = 42) Position 1 = 16
Branch analysis from position: 16
Branch analysis from position: 14
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/Du2cF
function name: stream_seek
number of ops: 18
compiled vars: !0 = $offset, !1 = $whence
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
38 0 E > RECV !0
1 RECV_INIT !1 <const ast>
39 2 IS_EQUAL !1, 1
3 > JMPZ ~2, ->7
40 4 > ASSIGN_OBJ_OP 1 'position'
5 OP_DATA !0
39 6 > JMP ->16
42 7 > IS_EQUAL !1, 2
8 > JMPZ ~4, ->14
43 9 > FETCH_OBJ_R ~6 'stringlength'
10 ADD ~7 ~6, !0
11 ASSIGN_OBJ 'position'
12 OP_DATA ~7
42 13 > JMP ->16
46 14 > ASSIGN_OBJ 'position'
15 OP_DATA !0
48 16 > > RETURN <true>
49 17* > RETURN null
End of function stream_seek
Function stream_tell:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/Du2cF
function name: stream_tell
number of ops: 3
compiled vars: none
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
52 0 E > FETCH_OBJ_R ~0 'position'
1 > RETURN ~0
53 2* > RETURN null
End of function stream_tell
Function stream_eof:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/Du2cF
function name: stream_eof
number of ops: 5
compiled vars: none
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
56 0 E > FETCH_OBJ_R ~0 'position'
1 FETCH_OBJ_R ~1 'stringlength'
2 IS_SMALLER_OR_EQUAL ~2 ~1, ~0
3 > RETURN ~2
57 4* > RETURN null
End of function stream_eof
Function stream_stat:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/Du2cF
function name: stream_stat
number of ops: 6
compiled vars: none
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
61 0 E > FETCH_OBJ_R ~0 'stringlength'
1 INIT_ARRAY ~1 ~0, 7
62 2 FETCH_OBJ_R ~2 'stringlength'
3 ADD_ARRAY_ELEMENT ~1 ~2, 'size'
4 > RETURN ~1
64 5* > RETURN null
End of function stream_stat
Function open:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/Du2cF
function name: Open
number of ops: 15
compiled vars: !0 = $string, !1 = $context
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
66 0 E > RECV !0
67 1 INIT_FCALL 'stream_context_create'
2 INIT_ARRAY ~2 !0, 'string'
3 INIT_ARRAY ~3 ~2, 'stringstream'
4 SEND_VAL ~3
5 DO_ICALL $4
6 ASSIGN !1, $4
68 7 INIT_FCALL 'fopen'
8 SEND_VAL 'stringstream%3A%2F%2F'
9 SEND_VAL 'r'
10 SEND_VAL <false>
11 SEND_VAR !1
12 DO_ICALL $6
13 > RETURN $6
69 14* > RETURN null
End of function open
End of class StringStreamWrapper.
Class replace_nullchar_filter:
Function filter:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 19
Branch analysis from position: 19
2 jumps found. (Code = 44) Position 1 = 24, Position 2 = 5
Branch analysis from position: 24
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 5
2 jumps found. (Code = 44) Position 1 = 24, Position 2 = 5
Branch analysis from position: 24
Branch analysis from position: 5
filename: /in/Du2cF
function name: filter
number of ops: 26
compiled vars: !0 = $in, !1 = $out, !2 = $consumed, !3 = $closing, !4 = $bucket
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
74 0 E > RECV !0
1 RECV !1
2 RECV !2
3 RECV !3
75 4 > JMP ->19
76 5 > INIT_FCALL 'str_replace'
6 SEND_VAL '%00'
7 SEND_VAL ''
8 FETCH_OBJ_R ~6 !4, 'data'
9 SEND_VAL ~6
10 DO_ICALL $7
11 ASSIGN_OBJ !4, 'data'
12 OP_DATA $7
77 13 FETCH_OBJ_R ~8 !4, 'datalen'
14 ASSIGN_OP 1 !2, ~8
78 15 INIT_FCALL 'stream_bucket_append'
16 SEND_VAR !1
17 SEND_VAR !4
18 DO_ICALL
75 19 > INIT_FCALL 'stream_bucket_make_writeable'
20 SEND_VAR !0
21 DO_ICALL $11
22 ASSIGN ~12 !4, $11
23 > JMPNZ ~12, ->5
80 24 > > RETURN 2
81 25* > RETURN null
End of function filter
End of class replace_nullchar_filter.
Class StringStreamWrapperFixed:
Function bug68532fixed:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 2, Position 2 = 4
Branch analysis from position: 2
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 4
2 jumps found. (Code = 47) Position 1 = 10, Position 2 = 23
Branch analysis from position: 10
2 jumps found. (Code = 46) Position 1 = 16, Position 2 = 22
Branch analysis from position: 16
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 22
Branch analysis from position: 23
filename: /in/Du2cF
function name: bug68532fixed
number of ops: 25
compiled vars: none
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
88 0 E > DEFINED 'BUG68532FIXED'
1 > JMPZ ~0, ->4
89 2 > FETCH_CONSTANT ~1 'BUG68532FIXED'
3 > RETURN ~1
90 4 > INIT_FCALL 'version_compare'
5 SEND_VAL '8.3.0'
6 SEND_VAL '5.6.5'
7 SEND_VAL '%3E%3D'
8 DO_ICALL $2
9 > JMPNZ_EX ~3 $2, ->23
91 10 > INIT_FCALL 'version_compare'
11 SEND_VAL '8.3.0'
12 SEND_VAL '5.5.21'
13 SEND_VAL '%3E%3D'
14 DO_ICALL $4
15 > JMPZ_EX ~5 $4, ->22
16 > INIT_FCALL 'version_compare'
17 SEND_VAL '8.3.0'
18 SEND_VAL '5.6.0'
19 SEND_VAL '%3C'
20 DO_ICALL $6
21 BOOL ~5 $6
22 > BOOL ~3 ~5
23 > > RETURN ~3
92 24* > RETURN null
End of function bug68532fixed
Function open:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 4, Position 2 = 10
Branch analysis from position: 4
1 jumps found. (Code = 42) Position 1 = 13
Branch analysis from position: 13
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 10
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/Du2cF
function name: Open
number of ops: 22
compiled vars: !0 = $string, !1 = $stream
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
94 0 E > RECV !0
95 1 INIT_STATIC_METHOD_CALL 'bug68532fixed'
2 DO_FCALL 0 $2
3 > JMPZ $2, ->10
96 4 > INIT_FCALL 'fopen'
5 SEND_VAL 'php%3A%2F%2Ftemp'
6 SEND_VAL 'r%2B'
7 DO_ICALL $3
8 ASSIGN !1, $3
95 9 > JMP ->13
98 10 > INIT_FCALL 'tmpfile'
11 DO_ICALL $5
12 ASSIGN !1, $5
100 13 > INIT_FCALL 'fwrite'
14 SEND_VAR !1
15 SEND_VAR !0
16 DO_ICALL
101 17 INIT_FCALL Generated using Vulcan Logic Dumper, using php 8.0.0