Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 48
Branch analysis from position: 48
2 jumps found. (Code = 44) Position 1 = 50, Position 2 = 35
Branch analysis from position: 50
1 jumps found. (Code = 42) Position 1 = 73
Branch analysis from position: 73
2 jumps found. (Code = 44) Position 1 = 75, Position 2 = 53
Branch analysis from position: 75
1 jumps found. (Code = 42) Position 1 = 97
Branch analysis from position: 97
2 jumps found. (Code = 44) Position 1 = 99, Position 2 = 78
Branch analysis from position: 99
1 jumps found. (Code = 42) Position 1 = 121
Branch analysis from position: 121
2 jumps found. (Code = 44) Position 1 = 123, Position 2 = 102
Branch analysis from position: 123
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 102
2 jumps found. (Code = 44) Position 1 = 123, Position 2 = 102
Branch analysis from position: 123
Branch analysis from position: 102
Branch analysis from position: 78
2 jumps found. (Code = 44) Position 1 = 99, Position 2 = 78
Branch analysis from position: 99
Branch analysis from position: 78
Branch analysis from position: 53
2 jumps found. (Code = 44) Position 1 = 75, Position 2 = 53
Branch analysis from position: 75
Branch analysis from position: 53
Branch analysis from position: 35
2 jumps found. (Code = 44) Position 1 = 50, Position 2 = 35
Branch analysis from position: 50
Branch analysis from position: 35
filename: /in/hmcm6
function name: (null)
number of ops: 124
compiled vars: !0 = $i, !1 = $start
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
31 0 E > INIT_FCALL 'var_dump'
1 INIT_FCALL 'datesamemonth'
2 SEND_VAL '2022-01-31'
3 SEND_VAL 3
4 SEND_VAL '-'
5 DO_FCALL 0 $2
6 SEND_VAR $2
7 DO_ICALL
32 8 INIT_FCALL 'var_dump'
9 INIT_FCALL 'datesamemonth'
10 SEND_VAL '2022-11-30'
11 SEND_VAL 3
12 SEND_VAL '%2B'
13 DO_FCALL 0 $4
14 SEND_VAR $4
15 DO_ICALL
33 16 INIT_FCALL 'var_dump'
17 INIT_FCALL 'datesamemonth'
18 SEND_VAL '2022-01-31'
19 SEND_VAL 25
20 SEND_VAL '%2B'
21 DO_FCALL 0 $6
22 SEND_VAR $6
23 DO_ICALL
34 24 INIT_FCALL 'var_dump'
25 INIT_FCALL 'datesamemonth'
26 SEND_VAL '2022-01-16'
27 SEND_VAL 25
28 SEND_VAL '%2B'
29 DO_FCALL 0 $8
30 SEND_VAR $8
31 DO_ICALL
36 32 ECHO '%0A%0ATEST%3A+FIRST+OF+%28%2B1+month%29%0A'
37 33 ASSIGN !0, 1
34 > JMP ->48
38 35 > CONCAT ~11 '2023-', !0
36 CONCAT ~12 ~11, '-01'
37 ASSIGN !1, ~12
39 38 CONCAT ~14 !1, '+----%3E+'
39 INIT_FCALL 'datesamemonth'
40 SEND_VAR !1
41 SEND_VAL 1
42 SEND_VAL '%2B'
43 DO_FCALL 0 $15
44 CONCAT ~16 ~14, $15
45 CONCAT ~17 ~16, '%0A'
46 ECHO ~17
37 47 PRE_INC !0
48 > IS_SMALLER_OR_EQUAL !0, 12
49 > JMPNZ ~19, ->35
42 50 > ECHO '%0A%0ATEST%3A+LAST+OF+%28%2B12+months%29%0A'
43 51 ASSIGN !0, 1
52 > JMP ->73
44 53 > INIT_FCALL 'date'
54 SEND_VAL 'Y-m-t'
55 INIT_FCALL 'strtotime'
56 CONCAT ~21 '2023-', !0
57 CONCAT ~22 ~21, '-01'
58 SEND_VAL ~22
59 DO_ICALL $23
60 SEND_VAR $23
61 DO_ICALL $24
62 ASSIGN !1, $24
45 63 CONCAT ~26 !1, '+----%3E+'
64 INIT_FCALL 'datesamemonth'
65 SEND_VAR !1
66 SEND_VAL 12
67 SEND_VAL '%2B'
68 DO_FCALL 0 $27
69 CONCAT ~28 ~26, $27
70 CONCAT ~29 ~28, '%0A'
71 ECHO ~29
43 72 PRE_INC !0
73 > IS_SMALLER_OR_EQUAL !0, 12
74 > JMPNZ ~31, ->53
49 75 > ECHO '%0A%0ATEST%3A+RANDOM+DAY+%28%2B1+month%29%0A'
50 76 ASSIGN !0, 1
77 > JMP ->97
51 78 > INIT_FCALL 'date'
79 SEND_VAL 'Y-m-'
80 DO_ICALL $33
81 INIT_FCALL 'rand'
82 SEND_VAL 1
83 SEND_VAL 27
84 DO_ICALL $34
85 CONCAT ~35 $33, $34
86 ASSIGN !1, ~35
52 87 CONCAT ~37 !1, '+----%3E+'
88 INIT_FCALL 'datesamemonth'
89 SEND_VAR !1
90 SEND_VAL 1
91 SEND_VAL '%2B'
92 DO_FCALL 0 $38
93 CONCAT ~39 ~37, $38
94 CONCAT ~40 ~39, '%0A'
95 ECHO ~40
50 96 PRE_INC !0
97 > IS_SMALLER_OR_EQUAL !0, 50
98 > JMPNZ ~42, ->78
55 99 > ECHO '%0A%0ATEST%3A+RANDOM+DAY+%28-1+month%29%0A'
56 100 ASSIGN !0, 1
101 > JMP ->121
57 102 > INIT_FCALL 'date'
103 SEND_VAL 'Y-m-'
104 DO_ICALL $44
105 INIT_FCALL 'rand'
106 SEND_VAL 1
107 SEND_VAL 27
108 DO_ICALL $45
109 CONCAT ~46 $44, $45
110 ASSIGN !1, ~46
58 111 CONCAT ~48 !1, '+----%3E+'
112 INIT_FCALL 'datesamemonth'
113 SEND_VAR !1
114 SEND_VAL 1
115 SEND_VAL '-'
116 DO_FCALL 0 $49
117 CONCAT ~50 ~48, $49
118 CONCAT ~51 ~50, '%0A'
119 ECHO ~51
56 120 PRE_INC !0
121 > IS_SMALLER_OR_EQUAL !0, 50
122 > JMPNZ ~53, ->102
59 123 > > RETURN 1
Function datesamemonth:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 25, Position 2 = 43
Branch analysis from position: 25
2 jumps found. (Code = 43) Position 1 = 28, Position 2 = 35
Branch analysis from position: 28
2 jumps found. (Code = 43) Position 1 = 30, Position 2 = 32
Branch analysis from position: 30
1 jumps found. (Code = 42) Position 1 = 33
Branch analysis from position: 33
1 jumps found. (Code = 42) Position 1 = 41
Branch analysis from position: 41
2 jumps found. (Code = 43) Position 1 = 45, Position 2 = 47
Branch analysis from position: 45
1 jumps found. (Code = 42) Position 1 = 53
Branch analysis from position: 53
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 47
2 jumps found. (Code = 43) Position 1 = 50, Position 2 = 52
Branch analysis from position: 50
1 jumps found. (Code = 42) Position 1 = 53
Branch analysis from position: 53
Branch analysis from position: 52
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 32
1 jumps found. (Code = 42) Position 1 = 41
Branch analysis from position: 41
Branch analysis from position: 35
2 jumps found. (Code = 43) Position 1 = 37, Position 2 = 39
Branch analysis from position: 37
1 jumps found. (Code = 42) Position 1 = 40
Branch analysis from position: 40
2 jumps found. (Code = 43) Position 1 = 45, Position 2 = 47
Branch analysis from position: 45
Branch analysis from position: 47
Branch analysis from position: 39
2 jumps found. (Code = 43) Position 1 = 45, Position 2 = 47
Branch analysis from position: 45
Branch analysis from position: 47
Branch analysis from position: 43
filename: /in/hmcm6
function name: DateSameMonth
number of ops: 64
compiled vars: !0 = $date_iso, !1 = $add_sub_months, !2 = $operator, !3 = $mdate, !4 = $date, !5 = $d, !6 = $m, !7 = $y, !8 = $mod
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
3 0 E > RECV !0
1 RECV_INIT !1 1
2 RECV_INIT !2 '%2B'
4 3 ASSIGN !3, <array>
6 4 NEW $10 'DateTime'
5 SEND_VAR_EX !0
6 DO_FCALL 0
7 ASSIGN !4, $10
7 8 INIT_METHOD_CALL !4, 'format'
9 SEND_VAL_EX 'd'
10 DO_FCALL 0 $13
11 CAST 4 ~14 $13
12 ASSIGN !5, ~14
8 13 INIT_METHOD_CALL !4, 'format'
14 SEND_VAL_EX 'm'
15 DO_FCALL 0 $16
16 CAST 4 ~17 $16
17 ASSIGN !6, ~17
9 18 INIT_METHOD_CALL !4, 'format'
19 SEND_VAL_EX 'Y'
20 DO_FCALL 0 $19
21 CAST 4 ~20 $19
22 ASSIGN !7, ~20
11 23 IS_EQUAL !6, 2
24 > JMPZ ~22, ->43
12 25 > MOD ~24 !7, 4
26 IS_IDENTICAL ~24, 0
27 > JMPZ ~25, ->35
28 > IS_SMALLER_OR_EQUAL !5, 29
29 > JMPZ ~26, ->32
30 > QM_ASSIGN ~27 !5
31 > JMP ->33
32 > QM_ASSIGN ~27 29
33 > QM_ASSIGN ~28 ~27
34 > JMP ->41
35 > IS_SMALLER_OR_EQUAL !5, 28
36 > JMPZ ~29, ->39
37 > QM_ASSIGN ~30 !5
38 > JMP ->40
39 > QM_ASSIGN ~30 28
40 > QM_ASSIGN ~28 ~30
41 > ASSIGN_DIM !3, !6
42 OP_DATA ~28
15 43 > IS_EQUAL !5, 1
44 > JMPZ ~31, ->47
16 45 > ASSIGN !8, 'first+day+of+'
15 46 > JMP ->53
18 47 > FETCH_DIM_R ~33 !3, !6
48 IS_EQUAL !5, ~33
49 > JMPZ ~34, ->52
19 50 > ASSIGN !8, 'last+day+of+'
18 51 > JMP ->53
22 52 > ASSIGN !8, ''
25 53 > INIT_METHOD_CALL !4, 'modify'
54 CONCAT ~37 !8, !2
55 CONCAT ~38 ~37, !1
56 CONCAT ~39 ~38, '+months'
57 SEND_VAL_EX ~39
58 DO_FCALL 0
28 59 INIT_METHOD_CALL !4, 'format'
60 SEND_VAL_EX 'Y-m-d'
61 DO_FCALL 0 $41
62 > RETURN $41
29 63* > RETURN null
End of function datesamemonth
Generated using Vulcan Logic Dumper, using php 8.0.0