Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/cQr5q
function name: (null)
number of ops: 73
compiled vars: none
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
68 0 E > INIT_FCALL 'friendlydtmdiff'
1 SEND_VAL '2020-02-28+00%3A00%3A00'
2 SEND_VAL '2020-03-01+12%3A00%3A56'
3 SEND_VAL ''
4 SEND_VAL 'h'
5 DO_FCALL 0 $0
6 CONCAT ~1 $0, '%0A'
7 ECHO ~1
69 8 INIT_FCALL 'friendlydtmdiff'
9 SEND_VAL '2020-02-28+00%3A00%3A00'
10 SEND_VAL '2020-03-01+12%3A00%3A56'
11 SEND_VAL 'l'
12 SEND_VAL 'h'
13 DO_FCALL 0 $2
14 CONCAT ~3 $2, '%0A'
15 ECHO ~3
70 16 INIT_FCALL 'friendlydtmdiff'
17 SEND_VAL '2020-02-28+00%3A00%3A00'
18 SEND_VAL '2020-03-01+12%3A08%3A56'
19 SEND_VAL 'l'
20 SEND_VAL 'h'
21 DO_FCALL 0 $4
22 CONCAT ~5 $4, '%0A'
23 ECHO ~5
71 24 INIT_FCALL 'friendlydtmdiff'
25 SEND_VAL '2018-12-28+00%3A00%3A00'
26 SEND_VAL '2020-04-11+04%3A08%3A56'
27 SEND_VAL 'l'
28 SEND_VAL 'y'
29 DO_FCALL 0 $6
30 CONCAT ~7 $6, '%0A'
31 ECHO ~7
72 32 INIT_FCALL 'friendlydtmdiff'
33 SEND_VAL '2018-12-28+00%3A00%3A00'
34 SEND_VAL '2020-04-11+04%3A08%3A56'
35 SEND_VAL 'l'
36 SEND_VAL 'm'
37 DO_FCALL 0 $8
38 CONCAT ~9 $8, '%0A'
39 ECHO ~9
73 40 INIT_FCALL 'friendlydtmdiff'
41 SEND_VAL '2018-12-28+00%3A00%3A00'
42 SEND_VAL '2020-04-11+04%3A08%3A56'
43 SEND_VAL 'l'
44 SEND_VAL 'd'
45 DO_FCALL 0 $10
46 CONCAT ~11 $10, '%0A'
47 ECHO ~11
74 48 INIT_FCALL 'friendlydtmdiff'
49 SEND_VAL '2018-12-28+00%3A00%3A00'
50 SEND_VAL '2020-04-11+04%3A08%3A56'
51 SEND_VAL 'l'
52 SEND_VAL 'h'
53 DO_FCALL 0 $12
54 CONCAT ~13 $12, '%0A'
55 ECHO ~13
75 56 INIT_FCALL 'friendlydtmdiff'
57 SEND_VAL '2018-12-28+00%3A00%3A00'
58 SEND_VAL '2020-04-11+04%3A08%3A56'
59 SEND_VAL 'l'
60 SEND_VAL 'i'
61 DO_FCALL 0 $14
62 CONCAT ~15 $14, '%0A'
63 ECHO ~15
76 64 INIT_FCALL 'friendlydtmdiff'
65 SEND_VAL '2018-12-28+00%3A00%3A00'
66 SEND_VAL '2020-04-11+04%3A08%3A56'
67 SEND_VAL 'l'
68 SEND_VAL 's'
69 DO_FCALL 0 $16
70 CONCAT ~17 $16, '%0A'
71 ECHO ~17
77 72 > RETURN 1
Function friendlydtmdiff:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 14, Position 2 = 20
Branch analysis from position: 14
1 jumps found. (Code = 42) Position 1 = 25
Branch analysis from position: 25
2 jumps found. (Code = 43) Position 1 = 27, Position 2 = 29
Branch analysis from position: 27
1 jumps found. (Code = 42) Position 1 = 30
Branch analysis from position: 30
14 jumps found. (Code = 188) Position 1 = 58, Position 2 = 58, Position 3 = 74, Position 4 = 74, Position 5 = 95, Position 6 = 95, Position 7 = 121, Position 8 = 121, Position 9 = 152, Position 10 = 152, Position 11 = 188, Position 12 = 188, Position 13 = 215, Position 14 = 33
Branch analysis from position: 58
2 jumps found. (Code = 43) Position 1 = 61, Position 2 = 69
Branch analysis from position: 61
2 jumps found. (Code = 43) Position 1 = 71, Position 2 = 72
Branch analysis from position: 71
1 jumps found. (Code = 42) Position 1 = 217
Branch analysis from position: 217
2 jumps found. (Code = 43) Position 1 = 223, Position 2 = 230
Branch analysis from position: 223
1 jumps found. (Code = 42) Position 1 = 231
Branch analysis from position: 231
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 230
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 72
2 jumps found. (Code = 43) Position 1 = 80, Position 2 = 88
Branch analysis from position: 80
2 jumps found. (Code = 43) Position 1 = 90, Position 2 = 91
Branch analysis from position: 90
1 jumps found. (Code = 42) Position 1 = 217
Branch analysis from position: 217
Branch analysis from position: 91
2 jumps found. (Code = 43) Position 1 = 104, Position 2 = 112
Branch analysis from position: 104
2 jumps found. (Code = 43) Position 1 = 114, Position 2 = 115
Branch analysis from position: 114
1 jumps found. (Code = 42) Position 1 = 217
Branch analysis from position: 217
Branch analysis from position: 115
2 jumps found. (Code = 43) Position 1 = 133, Position 2 = 141
Branch analysis from position: 133
2 jumps found. (Code = 43) Position 1 = 143, Position 2 = 144
Branch analysis from position: 143
1 jumps found. (Code = 42) Position 1 = 217
Branch analysis from position: 217
Branch analysis from position: 144
2 jumps found. (Code = 43) Position 1 = 167, Position 2 = 175
Branch analysis from position: 167
2 jumps found. (Code = 43) Position 1 = 177, Position 2 = 178
Branch analysis from position: 177
1 jumps found. (Code = 42) Position 1 = 217
Branch analysis from position: 217
Branch analysis from position: 178
2 jumps found. (Code = 43) Position 1 = 206, Position 2 = 214
Branch analysis from position: 206
1 jumps found. (Code = 42) Position 1 = 217
Branch analysis from position: 217
Branch analysis from position: 214
Branch analysis from position: 175
Branch analysis from position: 141
Branch analysis from position: 112
Branch analysis from position: 88
Branch analysis from position: 69
Branch analysis from position: 58
Branch analysis from position: 74
Branch analysis from position: 74
Branch analysis from position: 95
Branch analysis from position: 95
Branch analysis from position: 121
Branch analysis from position: 121
Branch analysis from position: 152
Branch analysis from position: 152
Branch analysis from position: 188
Branch analysis from position: 188
Branch analysis from position: 215
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 33
2 jumps found. (Code = 44) Position 1 = 35, Position 2 = 58
Branch analysis from position: 35
2 jumps found. (Code = 44) Position 1 = 37, Position 2 = 58
Branch analysis from position: 37
2 jumps found. (Code = 44) Position 1 = 39, Position 2 = 74
Branch analysis from position: 39
2 jumps found. (Code = 44) Position 1 = 41, Position 2 = 74
Branch analysis from position: 41
2 jumps found. (Code = 44) Position 1 = 43, Position 2 = 95
Branch analysis from position: 43
2 jumps found. (Code = 44) Position 1 = 45, Position 2 = 95
Branch analysis from position: 45
2 jumps found. (Code = 44) Position 1 = 47, Position 2 = 121
Branch analysis from position: 47
2 jumps found. (Code = 44) Position 1 = 49, Position 2 = 121
Branch analysis from position: 49
2 jumps found. (Code = 44) Position 1 = 51, Position 2 = 152
Branch analysis from position: 51
2 jumps found. (Code = 44) Position 1 = 53, Position 2 = 152
Branch analysis from position: 53
2 jumps found. (Code = 44) Position 1 = 55, Position 2 = 188
Branch analysis from position: 55
2 jumps found. (Code = 44) Position 1 = 57, Position 2 = 188
Branch analysis from position: 57
1 jumps found. (Code = 42) Position 1 = 215
Branch analysis from position: 215
Branch analysis from position: 188
Branch analysis from position: 188
Branch analysis from position: 152
Branch analysis from position: 152
Branch analysis from position: 121
Branch analysis from position: 121
Branch analysis from position: 95
Branch analysis from position: 95
Branch analysis from position: 74
Branch analysis from position: 74
Branch analysis from position: 58
Branch analysis from position: 58
Branch analysis from position: 29
14 jumps found. (Code = 188) Position 1 = 58, Position 2 = 58, Position 3 = 74, Position 4 = 74, Position 5 = 95, Position 6 = 95, Position 7 = 121, Position 8 = 121, Position 9 = 152, Position 10 = 152, Position 11 = 188, Position 12 = 188, Position 13 = 215, Position 14 = 33
Branch analysis from position: 58
Branch analysis from position: 58
Branch analysis from position: 74
Branch analysis from position: 74
Branch analysis from position: 95
Branch analysis from position: 95
Branch analysis from position: 121
Branch analysis from position: 121
Branch analysis from position: 152
Branch analysis from position: 152
Branch analysis from position: 188
Branch analysis from position: 188
Branch analysis from position: 215
Branch analysis from position: 33
Branch analysis from position: 20
2 jumps found. (Code = 43) Position 1 = 27, Position 2 = 29
Branch analysis from position: 27
Branch analysis from position: 29
filename: /in/cQr5q
function name: friendlyDtmDiff
number of ops: 235
compiled vars: !0 = $date1, !1 = $date2, !2 = $length, !3 = $format, !4 = $dt1, !5 = $dt2, !6 = $sign, !7 = $interval, !8 = $of, !9 = $output, !10 = $years, !11 = $months, !12 = $days, !13 = $hours, !14 = $minutes, !15 = $seconds, !16 = $last
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
3 0 E > RECV !0
1 RECV !1
2 RECV_INIT !2 ''
3 RECV_INIT !3 ''
5 4 NEW $17 'DateTime'
5 SEND_VAR_EX !0
6 DO_FCALL 0
7 ASSIGN !4, $17
6 8 NEW $20 'DateTime'
9 SEND_VAR_EX !1
10 DO_FCALL 0
11 ASSIGN !5, $20
9 12 IS_SMALLER !4, !5
13 > JMPZ ~23, ->20
10 14 > ASSIGN !6, ''
11 15 INIT_METHOD_CALL !4, 'diff'
16 SEND_VAR_EX !5
17 DO_FCALL 0 $25
18 ASSIGN !7, $25
9 19 > JMP ->25
14 20 > ASSIGN !6, '-'
15 21 INIT_METHOD_CALL !5, 'diff'
22 SEND_VAR_EX !4
23 DO_FCALL 0 $28
24 ASSIGN !7, $28
18 25 > IS_SMALLER !3, 'a'
26 > JMPZ ~30, ->29
27 > QM_ASSIGN ~31 '%2502d'
28 > JMP ->30
29 > QM_ASSIGN ~31 '%25d'
30 > ASSIGN !8, ~31
21 31 ASSIGN !9, <array>
23 32 > SWITCH_STRING !3, [ 'Y':->58, 'y':->58, 'M':->74, 'm':->74, 'D':->95, 'd':->95, 'H':->121, 'h':->121, 'I':->152, 'i':->152, 'S':->188, 's':->188, ], ->215
24 33 > IS_EQUAL !3, 'Y'
34 > JMPNZ ~34, ->58
25 35 > IS_EQUAL !3, 'y'
36 > JMPNZ ~34, ->58
30 37 > IS_EQUAL !3, 'M'
38 > JMPNZ ~34, ->74
31 39 > IS_EQUAL !3, 'm'
40 > JMPNZ ~34, ->74
36 41 > IS_EQUAL !3, 'D'
42 > JMPNZ ~34, ->95
37 43 > IS_EQUAL !3, 'd'
44 > JMPNZ ~34, ->95
42 45 > IS_EQUAL !3, 'H'
46 > JMPNZ ~34, ->121
43 47 > IS_EQUAL !3, 'h'
48 > JMPNZ ~34, ->121
48 49 > IS_EQUAL !3, 'I'
50 > JMPNZ ~34, ->152
49 51 > IS_EQUAL !3, 'i'
52 > JMPNZ ~34, ->152
54 53 > IS_EQUAL !3, 'S'
54 > JMPNZ ~34, ->188
55 55 > IS_EQUAL !3, 's'
56 > JMPNZ ~34, ->188
57 > > JMP ->215
26 58 > FETCH_OBJ_R ~35 !7, 'y'
59 ASSIGN !10, ~35
27 60 > JMPZ !10, ->69
61 > INIT_FCALL 'sprintf'
62 NOP
63 FAST_CONCAT ~38 !8, '+years'
64 SEND_VAL ~38
65 SEND_VAR !10
66 DO_ICALL $39
67 ASSIGN_DIM !9
68 OP_DATA $39
28 69 > IS_NOT_EQUAL !2, 'l'
70 > JMPZ ~40, ->72
71 > > JMP ->217
29 72 > ASSIGN_OBJ !7, 'y'
73 OP_DATA 0
32 74 > FETCH_OBJ_R ~42 !7, 'y'
75 MUL ~43 ~42, 12
76 FETCH_OBJ_R ~44 !7, 'm'
77 ADD ~45 ~43, ~44
78 ASSIGN !11, ~45
33 79 > JMPZ !11, ->88
80 > INIT_FCALL 'sprintf'
81 NOP
82 FAST_CONCAT ~48 !8, '+months'
83 SEND_VAL ~48
84 SEND_VAR !11
85 DO_ICALL $49
86 ASSIGN_DIM !9
87 OP_DATA $49
34 88 > IS_NOT_EQUAL !2, 'l'
89 > JMPZ ~50, ->91
90 > > JMP ->217
35 91 > ASSIGN_OBJ ~52 !7, 'y'
92 OP_DATA 0
93 ASSIGN_OBJ !7, 'm'
94 OP_DATA ~52
38 95 > FETCH_OBJ_R ~53 !7, 'y'
96 MUL ~54 ~53, 12
97 FETCH_OBJ_R ~55 !7, 'm'
98 ADD ~56 ~54, ~55
99 MUL ~57 ~56, 30
100 FETCH_OBJ_R ~58 !7, 'd'
101 ADD ~59 ~57, ~58
102 ASSIGN !12, ~59
39 103 > JMPZ !12, ->112
104 > INIT_FCALL 'sprintf'
105 NOP
106 FAST_CONCAT ~62 !8, '+days'
107 SEND_VAL ~62
108 SEND_VAR !12
109 DO_ICALL $63
110 ASSIGN_DIM !9
111 OP_DATA $63
40 112 > IS_NOT_EQUAL !2, 'l'
113 > JMPZ ~64, ->115
114 > > JMP ->217
41 115 > ASSIGN_OBJ ~67 !7, 'y'
116 OP_DATA 0
117 ASSIGN_OBJ ~66 !7, 'm'
118 OP_DATA ~67
119 ASSIGN_OBJ !7, 'd'
120 OP_DATA ~66
44 121 > FETCH_OBJ_R ~68 !7, 'y'
122 MUL ~69 ~68, 12
123 FETCH_OBJ_R ~70 !7, 'm'
124 ADD ~71 ~69, ~70
125 MUL ~72 ~71, 30
126 FETCH_OBJ_R ~73 !7, 'd'
127 ADD ~74 ~72, ~73
128 MUL ~75 ~74, 24
129 FETCH_OBJ_R ~76 !7, 'h'
130 ADD ~77 ~75, ~76
131 ASSIGN !13, ~77
45 132 > JMPZ !13, ->141
133 > INIT_FCALL 'sprintf'
134 NOP
135 FAST_CONCAT ~80 !8, '+hours'
136 SEND_VAL ~80
137 SEND_VAR !13
138 DO_ICALL $81
139 ASSIGN_DIM !9
140 OP_DATA $81
46 141 > IS_NOT_EQUAL !2, 'l'
142 > JMPZ ~82, ->144
143 > > JMP ->217
47 144 > ASSIGN_OBJ ~86 !7, 'y'
145 OP_DATA 0
146 ASSIGN_OBJ ~85 !7, 'm'
147 OP_DATA ~86
148 ASSIGN_OBJ ~84 !7, 'd'
149 OP_DATA ~85
150 ASSIGN_OBJ !7, 'h'
151 OP_DATA ~84
50 152 > FETCH_OBJ_R ~87 !7, 'y'
153 MUL ~88 ~87, 12
154 FETCH_OBJ_R ~89 !7, 'm'
155 ADD ~90 ~88, ~89
156 MUL ~91 ~90, 30
157 FETCH_OBJ_R ~92 !7, 'd'
158 ADD ~93 ~91, ~92
159 MUL ~94 ~93, 24
160 FETCH_OBJ_R ~95 !7, 'h'
161 ADD ~96 ~94, ~95
162 MUL ~97 ~96, 60
163 FETCH_OBJ_R ~98 !7, 'i'
164 ADD ~99 ~97, ~98
165 ASSIGN !14, ~99
51 166 > JMPZ !14, ->175
167 > INIT_FCALL 'sprintf'
168 NOP
169 FAST_CONCAT ~102 !8, '+minutes'
170 SEND_VAL ~102
171 SEND_VAR !14
172 DO_ICALL $103
173 ASSIGN_DIM !9
174 OP_DATA $103
52 175 > IS_NOT_EQUAL !2, 'l'
176 > JMPZ ~104, ->178
177 > > JMP ->217
53 178 > ASSIGN_OBJ ~109 !7, 'y'
179 OP_DATA 0
180 ASSIGN_OBJ ~108 !7, 'm'
181 OP_DATA ~109
182 ASSIGN_OBJ ~107 !7, 'd'
183 OP_DATA ~108
184 ASSIGN_OBJ ~106 !7, 'h'
185 OP_DATA ~107
186 ASSIGN_OBJ !7, 'i'
187 OP_DATA ~106
56 188 > FETCH_OBJ_R ~110 !7, 'y'
189 MUL ~111 ~110, 12
190 FETCH_OBJ_R ~112 !7, 'm'
191 ADD ~113 ~111, ~112
192 MUL ~114 ~113, 30
193 FETCH_OBJ_R ~115 !7, 'd'
194 ADD ~116 ~114, ~115
195 MUL ~117 ~116, 24
196 FETCH_OBJ_R ~118 !7, 'h'
197 ADD ~119 ~117, ~118
198 MUL ~120 ~119, 60
199 FETCH_OBJ_R ~121 !7, 'i'
200 ADD ~122 ~120, ~121
201 MUL ~123 ~122, 60
202 FETCH_OBJ_R ~124 !7, 's'
203 ADD ~125 ~123, ~124
204 ASSIGN !15, ~125
57 205 > JMPZ !15, ->214
206 > INIT_FCALL 'sprintf'
207 NOP
208 FAST_CONCAT ~128 !8, '+seconds'
209 SEND_VAL ~128
210 SEND_VAR !15
211 DO_ICALL $129
212 ASSIGN_DIM !9
213 OP_DATA $129
58 214 > > JMP ->217
60 215 > > RETURN 'Invalid+format'
61 216* JMP ->217
64 217 > INIT_FCALL 'array_pop'
218 SEND_REF !9
219 DO_ICALL $130
220 ASSIGN !16, $130
65 221 COUNT ~132 !9
222 > JMPZ ~132, ->230
223 > INIT_FCALL 'implode'
224 SEND_VAL '%2C+'
225 SEND_VAR !9
226 DO_ICALL $133
227 CONCAT ~134 $133, '+and+'
228 QM_ASSIGN ~135 ~134
229 > JMP ->231
230 > QM_ASSIGN ~135 ''
231 > CONCAT ~136 !6, ~135
232 CONCAT ~137 ~136, !16
2Generated using Vulcan Logic Dumper, using php 8.0.0