Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/WJiN0
function name: (null)
number of ops: 14
compiled vars: !0 = $test_data, !1 = $unserialized, !2 = $res
line #* E I O op fetch ext return operands
-----------------------------------------------------------------------------------------
98 0 E > ASSIGN !0, 'a%3A2%3A%7Bi%3A0%3BO%3A14%3A%22SuperCustomXyz%22%3A1%3A%7Bs%3A17%3A%22+SuperCustomXyz+x%22%3Bs%3A4%3A%22test%22%3B%7Ds%3A8%3A%22testdata%22%3Ba%3A2%3A%7Bs%3A1%3A%22a%22%3Bi%3A1%3Bs%3A1%3A%22b%22%3Bi%3A2%3B%7D%7D'
99 1 INIT_FCALL 'maybe_unserialize'
2 SEND_VAR !0
3 DO_FCALL 0 $4
4 ASSIGN !1, $4
100 5 INIT_FCALL 'map_deep'
6 SEND_VAR !1
7 SEND_VAL 'stripslashes_from_strings_only'
8 DO_FCALL 0 $6
9 ASSIGN !2, $6
101 10 INIT_FCALL 'print_r'
11 SEND_VAR !2
12 DO_ICALL
13 > RETURN 1
Function stripslashes_from_strings_only:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 3, Position 2 = 8
Branch analysis from position: 3
1 jumps found. (Code = 42) Position 1 = 9
Branch analysis from position: 9
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 8
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/WJiN0
function name: stripslashes_from_strings_only
number of ops: 11
compiled vars: !0 = $value
line #* E I O op fetch ext return operands
-----------------------------------------------------------------------------------------
6 0 E > RECV !0
7 1 TYPE_CHECK 64 !0
2 > JMPZ ~1, ->8
3 > INIT_FCALL 'stripslashes'
4 SEND_VAR !0
5 DO_ICALL $2
6 QM_ASSIGN ~3 $2
7 > JMP ->9
8 > QM_ASSIGN ~3 !0
9 > > RETURN ~3
8 10* > RETURN null
End of function stripslashes_from_strings_only
Function is_serialized:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 5, Position 2 = 6
Branch analysis from position: 5
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 6
2 jumps found. (Code = 43) Position 1 = 10, Position 2 = 11
Branch analysis from position: 10
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 11
2 jumps found. (Code = 43) Position 1 = 14, Position 2 = 15
Branch analysis from position: 14
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 15
2 jumps found. (Code = 43) Position 1 = 18, Position 2 = 19
Branch analysis from position: 18
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 19
2 jumps found. (Code = 43) Position 1 = 20, Position 2 = 29
Branch analysis from position: 20
2 jumps found. (Code = 46) Position 1 = 24, Position 2 = 26
Branch analysis from position: 24
2 jumps found. (Code = 43) Position 1 = 27, Position 2 = 28
Branch analysis from position: 27
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 28
1 jumps found. (Code = 42) Position 1 = 51
Branch analysis from position: 51
9 jumps found. (Code = 188) Position 1 = 69, Position 2 = 80, Position 3 = 80, Position 4 = 80, Position 5 = 86, Position 6 = 86, Position 7 = 86, Position 8 = 99, Position 9 = 54
Branch analysis from position: 69
2 jumps found. (Code = 43) Position 1 = 70, Position 2 = 76
Branch analysis from position: 70
2 jumps found. (Code = 43) Position 1 = 74, Position 2 = 75
Branch analysis from position: 74
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 75
1 jumps found. (Code = 42) Position 1 = 80
Branch analysis from position: 80
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 76
2 jumps found. (Code = 43) Position 1 = 79, Position 2 = 80
Branch analysis from position: 79
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 80
Branch analysis from position: 80
Branch analysis from position: 80
Branch analysis from position: 80
Branch analysis from position: 86
2 jumps found. (Code = 43) Position 1 = 87, Position 2 = 89
Branch analysis from position: 87
1 jumps found. (Code = 42) Position 1 = 90
Branch analysis from position: 90
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 89
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 86
Branch analysis from position: 86
Branch analysis from position: 99
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 54
2 jumps found. (Code = 44) Position 1 = 56, Position 2 = 69
Branch analysis from position: 56
2 jumps found. (Code = 44) Position 1 = 58, Position 2 = 80
Branch analysis from position: 58
2 jumps found. (Code = 44) Position 1 = 60, Position 2 = 80
Branch analysis from position: 60
2 jumps found. (Code = 44) Position 1 = 62, Position 2 = 80
Branch analysis from position: 62
2 jumps found. (Code = 44) Position 1 = 64, Position 2 = 86
Branch analysis from position: 64
2 jumps found. (Code = 44) Position 1 = 66, Position 2 = 86
Branch analysis from position: 66
2 jumps found. (Code = 44) Position 1 = 68, Position 2 = 86
Branch analysis from position: 68
1 jumps found. (Code = 42) Position 1 = 99
Branch analysis from position: 99
Branch analysis from position: 86
Branch analysis from position: 86
Branch analysis from position: 86
Branch analysis from position: 80
Branch analysis from position: 80
Branch analysis from position: 80
Branch analysis from position: 69
Branch analysis from position: 26
Branch analysis from position: 29
2 jumps found. (Code = 46) Position 1 = 35, Position 2 = 37
Branch analysis from position: 35
2 jumps found. (Code = 43) Position 1 = 38, Position 2 = 39
Branch analysis from position: 38
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 39
2 jumps found. (Code = 46) Position 1 = 41, Position 2 = 43
Branch analysis from position: 41
2 jumps found. (Code = 43) Position 1 = 44, Position 2 = 45
Branch analysis from position: 44
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 45
2 jumps found. (Code = 46) Position 1 = 47, Position 2 = 49
Branch analysis from position: 47
2 jumps found. (Code = 43) Position 1 = 50, Position 2 = 51
Branch analysis from position: 50
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 51
Branch analysis from position: 49
Branch analysis from position: 43
Branch analysis from position: 37
filename: /in/WJiN0
function name: is_serialized
number of ops: 101
compiled vars: !0 = $data, !1 = $strict, !2 = $lastc, !3 = $semicolon, !4 = $brace, !5 = $token, !6 = $end
line #* E I O op fetch ext return operands
-----------------------------------------------------------------------------------------
10 0 E > RECV !0
1 RECV_INIT !1 <true>
12 2 TYPE_CHECK 64 ~7 !0
3 BOOL_NOT ~8 ~7
4 > JMPZ ~8, ->6
13 5 > > RETURN <false>
15 6 > FRAMELESS_ICALL_1 trim ~9 !0
7 ASSIGN !0, ~9
16 8 IS_IDENTICAL !0, 'N%3B'
9 > JMPZ ~11, ->11
17 10 > > RETURN <true>
19 11 > STRLEN ~12 !0
12 IS_SMALLER ~12, 4
13 > JMPZ ~13, ->15
20 14 > > RETURN <false>
22 15 > FETCH_DIM_R ~14 !0, 1
16 IS_NOT_IDENTICAL ~14, '%3A'
17 > JMPZ ~15, ->19
23 18 > > RETURN <false>
25 19 > > JMPZ !1, ->29
26 20 > FRAMELESS_ICALL_2 substr ~16 !0, -1
21 ASSIGN !2, ~16
27 22 IS_NOT_IDENTICAL ~18 !2, '%3B'
23 > JMPZ_EX ~18 ~18, ->26
24 > IS_NOT_IDENTICAL ~19 !2, '%7D'
25 BOOL ~18 ~19
26 > > JMPZ ~18, ->28
28 27 > > RETURN <false>
25 28 > > JMP ->51
31 29 > FRAMELESS_ICALL_2 strpos ~20 !0, '%3B'
30 ASSIGN !3, ~20
32 31 FRAMELESS_ICALL_2 strpos ~22 !0, '%7D'
32 ASSIGN !4, ~22
34 33 TYPE_CHECK 4 ~24 !3
34 > JMPZ_EX ~24 ~24, ->37
35 > TYPE_CHECK 4 ~25 !4
36 BOOL ~24 ~25
37 > > JMPZ ~24, ->39
35 38 > > RETURN <false>
38 39 > TYPE_CHECK 1018 ~26 !3
40 > JMPZ_EX ~26 ~26, ->43
41 > IS_SMALLER ~27 !3, 3
42 BOOL ~26 ~27
43 > > JMPZ ~26, ->45
39 44 > > RETURN <false>
41 45 > TYPE_CHECK 1018 ~28 !4
46 > JMPZ_EX ~28 ~28, ->49
47 > IS_SMALLER ~29 !4, 4
48 BOOL ~28 ~29
49 > > JMPZ ~28, ->51
42 50 > > RETURN <false>
45 51 > FETCH_DIM_R ~30 !0, 0
52 ASSIGN !5, ~30
46 53 > SWITCH_STRING !5, [ 's':->69, 'a':->80, 'O':->80, 'E':->80, 'b':->86, 'i':->86, 'd':->86, ], ->99
47 54 > IS_EQUAL !5, 's'
55 > JMPNZ ~32, ->69
56 56 > IS_EQUAL !5, 'a'
57 > JMPNZ ~32, ->80
57 58 > IS_EQUAL !5, 'O'
59 > JMPNZ ~32, ->80
58 60 > IS_EQUAL !5, 'E'
61 > JMPNZ ~32, ->80
60 62 > IS_EQUAL !5, 'b'
63 > JMPNZ ~32, ->86
61 64 > IS_EQUAL !5, 'i'
65 > JMPNZ ~32, ->86
62 66 > IS_EQUAL !5, 'd'
67 > JMPNZ ~32, ->86
68 > > JMP ->99
48 69 > > JMPZ !1, ->76
49 70 > FRAMELESS_ICALL_3 substr ~33 !0, -2
71 OP_DATA 1
72 IS_NOT_IDENTICAL ~33, '%22'
73 > JMPZ ~34, ->75
50 74 > > RETURN <false>
48 75 > > JMP ->80
52 76 > FRAMELESS_ICALL_2 strpos ~35 !0, '%22'
77 TYPE_CHECK 4 ~35
78 > JMPZ ~36, ->80
53 79 > > RETURN <false>
59 80 > ROPE_INIT 3 ~38 '%2F%5E'
81 ROPE_ADD 1 ~38 ~38, !5
82 ROPE_END 2 ~37 ~38, '%3A%5B0-9%5D%2B%3A%2Fs'
83 FRAMELESS_ICALL_2 preg_match ~40 ~37, !0
84 BOOL ~41 ~40
85 > RETURN ~41
63 86 > > JMPZ !1, ->89
87 > QM_ASSIGN ~42 '%24'
88 > JMP ->90
89 > QM_ASSIGN ~42 ''
90 > ASSIGN !6, ~42
64 91 ROPE_INIT 5 ~45 '%2F%5E'
92 ROPE_ADD 1 ~45 ~45, !5
93 ROPE_ADD 2 ~45 ~45, '%3A%5B0-9.E%2B-%5D%2B%3B'
94 ROPE_ADD 3 ~45 ~45, !6
95 ROPE_END 4 ~44 ~45, '%2F'
96 FRAMELESS_ICALL_2 preg_match ~48 ~44, !0
97 BOOL ~49 ~48
98 > RETURN ~49
66 99 > > RETURN <false>
67 100* > RETURN null
End of function is_serialized
Function map_deep:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 4, Position 2 = 16
Branch analysis from position: 4
2 jumps found. (Code = 77) Position 1 = 5, Position 2 = 14
Branch analysis from position: 5
2 jumps found. (Code = 78) Position 1 = 6, Position 2 = 14
Branch analysis from position: 6
1 jumps found. (Code = 42) Position 1 = 5
Branch analysis from position: 5
Branch analysis from position: 14
1 jumps found. (Code = 42) Position 1 = 38
Branch analysis from position: 38
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 14
Branch analysis from position: 16
2 jumps found. (Code = 43) Position 1 = 18, Position 2 = 34
Branch analysis from position: 18
2 jumps found. (Code = 77) Position 1 = 23, Position 2 = 32
Branch analysis from position: 23
2 jumps found. (Code = 78) Position 1 = 24, Position 2 = 32
Branch analysis from position: 24
1 jumps found. (Code = 42) Position 1 = 23
Branch analysis from position: 23
Branch analysis from position: 32
1 jumps found. (Code = 42) Position 1 = 38
Branch analysis from position: 38
Branch analysis from position: 32
Branch analysis from position: 34
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/WJiN0
function name: map_deep
number of ops: 40
compiled vars: !0 = $value, !1 = $callback, !2 = $item, !3 = $index, !4 = $object_vars, !5 = $property_value, !6 = $property_name
line #* E I O op fetch ext return operands
-----------------------------------------------------------------------------------------
70 0 E > RECV !0
1 RECV !1
71 2 TYPE_CHECK 128 !0
3 > JMPZ ~7, ->16
72 4 > > FE_RESET_R $8 !0, ->14
5 > > FE_FETCH_R ~9 $8, !2, ->14
6 > ASSIGN !3, ~9
73 7 INIT_FCALL_BY_NAME 'map_deep'
8 SEND_VAR_EX !2
9 SEND_VAR_EX !1
10 DO_FCALL 0 $12
11 ASSIGN_DIM !0, !3
12 OP_DATA $12
72 13 > JMP ->5
14 > FE_FREE $8
71 15 > JMP ->38
75 16 > TYPE_CHECK 256 !0
17 > JMPZ ~13, ->34
76 18 > INIT_FCALL 'get_object_vars'
19 SEND_VAR !0
20 DO_ICALL $14
21 ASSIGN !4, $14
77 22 > FE_RESET_R $16 !4, ->32
23 > > FE_FETCH_R ~17 $16, !5, ->32
24 > ASSIGN !6, ~17
78 25 INIT_FCALL_BY_NAME 'map_deep'
26 SEND_VAR_EX !5
27 SEND_VAR_EX !1
28 DO_FCALL 0 $20
29 ASSIGN_OBJ !0, !6
30 OP_DATA $20
77 31 > JMP ->23
32 > FE_FREE $16
75 33 > JMP ->38
81 34 > INIT_USER_CALL 1 'call_user_func', !1
35 SEND_USER !0
36 DO_FCALL 0 $21
37 ASSIGN !0, $21
84 38 > > RETURN !0
85 39* > RETURN null
End of function map_deep
Function maybe_unserialize:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 5, Position 2 = 12
Branch analysis from position: 5
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 12
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/WJiN0
function name: maybe_unserialize
number of ops: 14
compiled vars: !0 = $data
line #* E I O op fetch ext return operands
-----------------------------------------------------------------------------------------
87 0 E > RECV !0
88 1 INIT_FCALL 'is_serialized'
2 SEND_VAR !0
3 DO_FCALL 0 $1
4 > JMPZ $1, ->12
89 5 > BEGIN_SILENCE ~2
6 INIT_FCALL 'unserialize'
7 FRAMELESS_ICALL_1 trim ~3 !0
8 SEND_VAL ~3
9 DO_ICALL $4
10 END_SILENCE ~2
11 > RETURN $4
92 12 > > RETURN !0
93 13* > RETURN null
End of function maybe_unserialize
Generated using Vulcan Logic Dumper, using php 8.5.0