Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/7as7Z
function name: (null)
number of ops: 11
compiled vars: !0 = $data
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
84 0 E > INIT_FCALL 'parse'
1 SEND_VAL 'hi%2F%7Bp1%7D%2Fcicki%2F%7Bp2%7D'
2 DO_FCALL 0 $1
3 ASSIGN !0, $1
85 4 INIT_FCALL 'var_export'
5 SEND_VAR !0
6 SEND_VAL 1
7 DO_ICALL $3
8 CONCAT ~4 'parse%3A+', $3
9 ECHO ~4
10 > RETURN 1
Function parse:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 8, Position 2 = 12
Branch analysis from position: 8
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 12
2 jumps found. (Code = 77) Position 1 = 19, Position 2 = 109
Branch analysis from position: 19
2 jumps found. (Code = 78) Position 1 = 20, Position 2 = 109
Branch analysis from position: 20
2 jumps found. (Code = 43) Position 1 = 49, Position 2 = 51
Branch analysis from position: 49
2 jumps found. (Code = 43) Position 1 = 69, Position 2 = 78
Branch analysis from position: 69
2 jumps found. (Code = 77) Position 1 = 70, Position 2 = 75
Branch analysis from position: 70
2 jumps found. (Code = 78) Position 1 = 71, Position 2 = 75
Branch analysis from position: 71
1 jumps found. (Code = 42) Position 1 = 70
Branch analysis from position: 70
Branch analysis from position: 75
1 jumps found. (Code = 42) Position 1 = 79
Branch analysis from position: 79
2 jumps found. (Code = 43) Position 1 = 89, Position 2 = 93
Branch analysis from position: 89
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 93
2 jumps found. (Code = 43) Position 1 = 98, Position 2 = 106
Branch analysis from position: 98
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 106
1 jumps found. (Code = 42) Position 1 = 19
Branch analysis from position: 19
Branch analysis from position: 75
Branch analysis from position: 78
2 jumps found. (Code = 43) Position 1 = 89, Position 2 = 93
Branch analysis from position: 89
Branch analysis from position: 93
Branch analysis from position: 51
Branch analysis from position: 109
2 jumps found. (Code = 46) Position 1 = 113, Position 2 = 115
Branch analysis from position: 113
2 jumps found. (Code = 43) Position 1 = 116, Position 2 = 122
Branch analysis from position: 116
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 122
Branch analysis from position: 115
Branch analysis from position: 109
filename: /in/7as7Z
function name: parse
number of ops: 129
compiled vars: !0 = $pattern, !1 = $matches, !2 = $variables, !3 = $pos, !4 = $reg, !5 = $nextText, !6 = $match, !7 = $varName, !8 = $precedingText, !9 = $nxt, !10 = $precSegments, !11 = $value, !12 = $key
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
2 0 E > RECV !0
4 1 ASSIGN !1, ''
5 2 ASSIGN !2, <array>
6 3 ASSIGN !3, 0
7 4 ASSIGN !4, '%23'
8 5 ASSIGN !5, ''
10 6 IS_EQUAL !0, '%2F'
7 > JMPZ ~18, ->12
12 8 > ASSIGN !4, '%23%5E%5B%5C%2F%5D%2B%24%23'
14 9 INIT_ARRAY ~20 '', 'variables'
10 ADD_ARRAY_ELEMENT ~20 !4, 'regex'
11 > RETURN ~20
25 12 > INIT_FCALL 'preg_match_all'
13 SEND_VAL '%23%5C%7B%5Cw%2B%5C%7D%23'
14 SEND_VAR !0
15 SEND_REF !1
16 SEND_VAL 258
17 DO_ICALL
30 18 > FE_RESET_R $22 !1, ->109
19 > > FE_FETCH_R $22, !6, ->109
32 20 > INIT_FCALL 'substr'
21 FETCH_DIM_R ~23 !6, 0
22 FETCH_DIM_R ~24 ~23, 0
23 SEND_VAL ~24
24 SEND_VAL 1
25 SEND_VAL -1
26 DO_ICALL $25
27 ASSIGN !7, $25
33 28 INIT_FCALL 'substr'
29 SEND_VAR !0
30 SEND_VAR !3
31 FETCH_DIM_R ~27 !6, 0
32 FETCH_DIM_R ~28 ~27, 1
33 SUB ~29 ~28, !3
34 SEND_VAL ~29
35 DO_ICALL $30
36 ASSIGN !8, $30
34 37 FETCH_DIM_R ~32 !6, 0
38 FETCH_DIM_R ~33 ~32, 1
39 FETCH_DIM_R ~34 !6, 0
40 FETCH_DIM_R ~35 ~34, 0
41 STRLEN ~36 ~35
42 ADD ~37 ~33, ~36
43 ASSIGN !3, ~37
35 44 STRLEN ~39 !0
45 SUB ~40 !3, ~39
46 ASSIGN !9, ~40
36 47 IS_EQUAL !9, 0
48 > JMPZ ~42, ->51
49 > STRLEN ~43 !0
50 ASSIGN !9, ~43
38 51 > INIT_FCALL 'substr'
52 SEND_VAR !0
53 SEND_VAR !9
54 DO_ICALL $45
55 ASSIGN !5, $45
40 56 INIT_FCALL 'explode'
57 SEND_VAL '%2F'
58 SEND_VAR !8
59 DO_ICALL $47
60 ASSIGN !10, $47
41 61 INIT_FCALL 'array_splice'
62 SEND_REF !10
63 SEND_VAL 1
64 DO_ICALL $49
65 ASSIGN !10, $49
44 66 STRLEN ~51 !8
67 IS_SMALLER 1, ~51
68 > JMPZ ~52, ->78
46 69 > > FE_RESET_R $53 !10, ->75
70 > > FE_FETCH_R ~54 $53, !11, ->75
71 > ASSIGN !12, ~54
47 72 ASSIGN_OP 8 !4, '%5C%2F'
48 73 ASSIGN_OP 8 !4, !11
46 74 > JMP ->70
75 > FE_FREE $53
51 76 ASSIGN_OP 8 !4, '%5Ba-zA-Z0-9%5D%2B'
44 77 > JMP ->79
55 78 > ASSIGN_OP 8 !4, '%5C%2F%5Ba-zA-Z0-9%5D%2B'
58 79 > INIT_FCALL 'str_replace'
80 SEND_VAL '%2F'
81 SEND_VAL '%5C%2F'
82 SEND_VAR !5
83 DO_ICALL $60
84 ASSIGN !5, $60
60 85 INIT_FCALL 'is_numeric'
86 SEND_VAR !7
87 DO_ICALL $62
88 > JMPZ $62, ->93
61 89 > NEW $63 'Exception'
90 SEND_VAL_EX 'Argument+cannot+be+a+number'
91 DO_FCALL 0
92 > THROW 0 $63
64 93 > INIT_FCALL 'in_array'
94 SEND_VAR !7
95 SEND_VAR !2
96 DO_ICALL $65
97 > JMPZ $65, ->106
65 98 > NEW $66 'Exception'
99 INIT_FCALL 'sprintf'
100 SEND_VAL 'More+then+one+occurrence+of+variable+name+%22%25s%22.'
101 SEND_VAR !7
102 DO_ICALL $67
103 SEND_VAR_NO_REF_EX $67
104 DO_FCALL 0
105 > THROW 0 $66
68 106 > ASSIGN_DIM !2
107 OP_DATA !7
30 108 > JMP ->19
109 > FE_FREE $22
72 110 COUNT ~70 !1
111 IS_SMALLER ~71 ~70, 1
112 > JMPZ_EX ~71 ~71, ->115
113 > IS_NOT_EQUAL ~72 !0, '%2F'
114 BOOL ~71 ~72
115 > > JMPZ ~71, ->122
74 116 > INIT_FCALL 'str_replace'
117 SEND_VAL '%2F'
118 SEND_VAL '%5C%2F'
119 SEND_VAR !0
120 DO_ICALL $73
121 ASSIGN_OP 8 !4, $73
77 122 > CONCAT ~75 !4, !5
123 ASSIGN !4, ~75
78 124 ASSIGN_OP 8 !4, '%23'
82 125 INIT_ARRAY ~78 !2, 'variables'
126 ADD_ARRAY_ELEMENT ~78 !4, 'regex'
127 > RETURN ~78
83 128* > RETURN null
End of function parse
Generated using Vulcan Logic Dumper, using php 8.0.0