Finding entry points Branch analysis from position: 0 2 jumps found. (Code = 43) Position 1 = 1, Position 2 = 13 Branch analysis from position: 1 1 jumps found. (Code = 62) Position 1 = -2 Branch analysis from position: 13 filename: /in/1mRLa function name: (null) number of ops: 19 compiled vars: none line #* E I O op fetch ext return operands ------------------------------------------------------------------------------------- 10 0 E > > JMPZ <false>, ->13 12 1 > INIT_FCALL 'define' 2 SEND_VAL 'PASSWORD_BCRYPT' 3 SEND_VAL 1 4 DO_ICALL 13 5 INIT_FCALL 'define' 6 SEND_VAL 'PASSWORD_DEFAULT' 7 SEND_VAL '2y' 8 DO_ICALL 24 9 DECLARE_FUNCTION 'password_hash' 167 10 DECLARE_FUNCTION 'password_get_info' 193 11 DECLARE_FUNCTION 'password_needs_rehash' 217 12 DECLARE_FUNCTION 'password_verify' 273 13 > INIT_FCALL 'password_hash' 14 SEND_VAL 'rasmuslerdorf' 15 SEND_VAL '2y' 16 DO_ICALL $2 17 ECHO $2 274 18 > RETURN 1 Function %00password_hash%2Fin%2F1mRLa%3A24%240: Finding entry points Branch analysis from position: 0 2 jumps found. (Code = 43) Position 1 = 8, Position 2 = 13 Branch analysis from position: 8 1 jumps found. (Code = 62) Position 1 = -2 Branch analysis from position: 13 2 jumps found. (Code = 43) Position 1 = 16, Position 2 = 21 Branch analysis from position: 16 1 jumps found. (Code = 62) Position 1 = -2 Branch analysis from position: 21 2 jumps found. (Code = 43) Position 1 = 24, Position 2 = 32 Branch analysis from position: 24 1 jumps found. (Code = 62) Position 1 = -2 Branch analysis from position: 32 3 jumps found. (Code = 188) Position 1 = 37, Position 2 = 65, Position 3 = 34 Branch analysis from position: 37 2 jumps found. (Code = 43) Position 1 = 40, Position 2 = 56 Branch analysis from position: 40 2 jumps found. (Code = 47) Position 1 = 44, Position 2 = 46 Branch analysis from position: 44 2 jumps found. (Code = 43) Position 1 = 47, Position 2 = 56 Branch analysis from position: 47 1 jumps found. (Code = 62) Position 1 = -2 Branch analysis from position: 56 1 jumps found. (Code = 42) Position 1 = 74 Branch analysis from position: 74 2 jumps found. (Code = 43) Position 1 = 77, Position 2 = 145 Branch analysis from position: 77 10 jumps found. (Code = 188) Position 1 = 97, Position 2 = 97, Position 3 = 97, Position 4 = 97, Position 5 = 97, Position 6 = 101, Position 7 = 111, Position 8 = 111, Position 9 = 111, Position 10 = 80 Branch analysis from position: 97 1 jumps found. (Code = 42) Position 1 = 117 Branch analysis from position: 117 2 jumps found. (Code = 43) Position 1 = 123, Position 2 = 137 Branch analysis from position: 123 1 jumps found. (Code = 62) Position 1 = -2 Branch analysis from position: 137 2 jumps found. (Code = 43) Position 1 = 143, Position 2 = 144 Branch analysis from position: 143 1 jumps found. (Code = 42) Position 1 = 254 Branch analysis from position: 254 2 jumps found. (Code = 43) Position 1 = 255, Position 2 = 271 Branch analysis from position: 255 2 jumps found. (Code = 47) Position 1 = 287, Position 2 = 292 Branch analysis from position: 287 2 jumps found. (Code = 43) Position 1 = 293, Position 2 = 294 Branch analysis from position: 293 1 jumps found. (Code = 62) Position 1 = -2 Branch analysis from position: 294 1 jumps found. (Code = 62) Position 1 = -2 Branch analysis from position: 292 Branch analysis from position: 271 Branch analysis from position: 144 Branch analysis from position: 97 Branch analysis from position: 97 Branch analysis from position: 97 Branch analysis from position: 97 Branch analysis from position: 101 2 jumps found. (Code = 43) Position 1 = 107, Position 2 = 111 Branch analysis from position: 107 1 jumps found. (Code = 42) Position 1 = 117 Branch analysis from position: 117 Branch analysis from position: 111 1 jumps found. (Code = 62) Position 1 = -2 Branch analysis from position: 111 Branch analysis from position: 111 Branch analysis from position: 111 Branch analysis from position: 80 2 jumps found. (Code = 44) Position 1 = 82, Position 2 = 97 Branch analysis from position: 82 2 jumps found. (Code = 44) Position 1 = 84, Position 2 = 97 Branch analysis from position: 84 2 jumps found. (Code = 44) Position 1 = 86, Position 2 = 97 Branch analysis from position: 86 2 jumps found. (Code = 44) Position 1 = 88, Position 2 = 97 Branch analysis from position: 88 2 jumps found. (Code = 44) Position 1 = 90, Position 2 = 97 Branch analysis from position: 90 2 jumps found. (Code = 44) Position 1 = 92, Position 2 = 101 Branch analysis from position: 92 2 jumps found. (Code = 44) Position 1 = 94, Position 2 = 111 Branch analysis from position: 94 2 jumps found. (Code = 44) Position 1 = 96, Position 2 = 111 Branch analysis from position: 96 1 jumps found. (Code = 42) Position 1 = 111 Branch analysis from position: 111 Branch analysis from position: 111 Branch analysis from position: 111 Branch analysis from position: 101 Branch analysis from position: 97 Branch analysis from position: 97 Branch analysis from position: 97 Branch analysis from position: 97 Branch analysis from position: 97 Branch analysis from position: 145 2 jumps found. (Code = 46) Position 1 = 151, Position 2 = 154 Branch analysis from position: 151 2 jumps found. (Code = 43) Position 1 = 155, Position 2 = 163 Branch analysis from position: 155 2 jumps found. (Code = 43) Position 1 = 162, Position 2 = 163 Branch analysis from position: 162 2 jumps found. (Code = 46) Position 1 = 165, Position 2 = 169 Branch analysis from position: 165 2 jumps found. (Code = 43) Position 1 = 170, Position 2 = 176 Branch analysis from position: 170 2 jumps found. (Code = 43) Position 1 = 175, Position 2 = 176 Branch analysis from position: 175 2 jumps found. (Code = 46) Position 1 = 178, Position 2 = 184 Branch analysis from position: 178 2 jumps found. (Code = 43) Position 1 = 185, Position 2 = 213 Branch analysis from position: 185 1 jumps found. (Code = 42) Position 1 = 205 Branch analysis from position: 205 2 jumps found. (Code = 44) Position 1 = 207, Position 2 = 195 Branch analysis from position: 207 2 jumps found. (Code = 43) Position 1 = 212, Position 2 = 213 Branch analysis from position: 212 2 jumps found. (Code = 47) Position 1 = 215, Position 2 = 220 Branch analysis from position: 215 2 jumps found. (Code = 43) Position 1 = 221, Position 2 = 252 Branch analysis from position: 221 1 jumps found. (Code = 42) Position 1 = 250 Branch analysis from position: 250 2 jumps found. (Code = 44) Position 1 = 252, Position 2 = 227 Branch analysis from position: 252 2 jumps found. (Code = 43) Position 1 = 255, Position 2 = 271 Branch analysis from position: 255 Branch analysis from position: 271 Branch analysis from position: 227 2 jumps found. (Code = 43) Position 1 = 229, Position 2 = 241 Branch analysis from position: 229 1 jumps found. (Code = 42) Position 1 = 249 Branch analysis from position: 249 2 jumps found. (Code = 44) Position 1 = 252, Position 2 = 227 Branch analysis from position: 252 Branch analysis from position: 227 Branch analysis from position: 241 2 jumps found. (Code = 44) Position 1 = 252, Position 2 = 227 Branch analysis from position: 252 Branch analysis from position: 227 Branch analysis from position: 252 Branch analysis from position: 220 Branch analysis from position: 213 Branch analysis from position: 195 2 jumps found. (Code = 44) Position 1 = 207, Position 2 = 195 Branch analysis from position: 207 Branch analysis from position: 195 Branch analysis from position: 213 Branch analysis from position: 184 Branch analysis from position: 176 Branch analysis from position: 176 Branch analysis from position: 169 Branch analysis from position: 163 Branch analysis from position: 163 Branch analysis from position: 154 Branch analysis from position: 46 Branch analysis from position: 56 Branch analysis from position: 65 1 jumps found. (Code = 62) Position 1 = -2 Branch analysis from position: 34 2 jumps found. (Code = 44) Position 1 = 36, Position 2 = 37 Branch analysis from position: 36 1 jumps found. (Code = 42) Position 1 = 65 Branch analysis from position: 65 Branch analysis from position: 37 filename: /in/1mRLa function name: password_hash number of ops: 296 compiled vars: !0 = $password, !1 = $algo, !2 = $options, !3 = $resultLength, !4 = $cost, !5 = $raw_salt_len, !6 = $required_salt_len, !7 = $hash_format, !8 = $salt_requires_encoding, !9 = $salt, !10 = $buffer, !11 = $buffer_valid, !12 = $f, !13 = $read, !14 = $bl, !15 = $i, !16 = $base64_digits, !17 = $bcrypt64_digits, !18 = $base64_string, !19 = $hash, !20 = $ret line #* E I O op fetch ext return operands ------------------------------------------------------------------------------------- 24 0 E > RECV !0 1 RECV !1 2 RECV_INIT !2 <array> 25 3 INIT_FCALL 'function_exists' 4 SEND_VAL 'crypt' 5 DO_ICALL $21 6 BOOL_NOT ~22 $21 7 > JMPZ ~22, ->13 26 8 > INIT_FCALL 'trigger_error' 9 SEND_VAL 'Crypt+must+be+loaded+for+password_hash+to+function' 10 SEND_VAL 512 11 DO_ICALL 27 12 > RETURN null 29 13 > TYPE_CHECK 64 ~24 !0 14 BOOL_NOT ~25 ~24 15 > JMPZ ~25, ->21 30 16 > INIT_FCALL 'trigger_error' 17 SEND_VAL 'password_hash%28%29%3A+Password+must+be+a+string' 18 SEND_VAL 512 19 DO_ICALL 31 20 > RETURN null 33 21 > TYPE_CHECK 16 ~27 !1 22 BOOL_NOT ~28 ~27 23 > JMPZ ~28, ->32 34 24 > INIT_FCALL 'trigger_error' 25 GET_TYPE ~29 !1 26 CONCAT ~30 'password_hash%28%29+expects+parameter+2+to+be+long%2C+', ~29 27 CONCAT ~31 ~30, '+given' 28 SEND_VAL ~31 29 SEND_VAL 512 30 DO_ICALL 35 31 > RETURN null 37 32 > ASSIGN !3, 0 38 33 > SWITCH_STRING !1, [ '2y':->37, ], ->65 34 > IS_EQUAL !1, '2y' 35 > JMPNZ ~34, ->37 36 > > JMP ->65 41 37 > ASSIGN !4, 10 42 38 ISSET_ISEMPTY_DIM_OBJ 0 !2, 'cost' 39 > JMPZ ~36, ->56 43 40 > FETCH_DIM_R ~37 !2, 'cost' 41 ASSIGN !4, ~37 44 42 IS_SMALLER ~39 !4, 4 43 > JMPNZ_EX ~39 ~39, ->46 44 > IS_SMALLER ~40 31, !4 45 BOOL ~39 ~40 46 > > JMPZ ~39, ->56 45 47 > INIT_FCALL 'trigger_error' 48 INIT_FCALL 'sprintf' 49 SEND_VAL 'password_hash%28%29%3A+Invalid+bcrypt+cost+parameter+specified%3A+%25d' 50 SEND_VAR !4 51 DO_ICALL $41 52 SEND_VAR $41 53 SEND_VAL 512 54 DO_ICALL 46 55 > RETURN null 50 56 > ASSIGN !5, 16 52 57 ASSIGN !6, 22 53 58 INIT_FCALL 'sprintf' 59 SEND_VAL '%242y%24%2502d%24' 60 SEND_VAR !4 61 DO_ICALL $45 62 ASSIGN !7, $45 55 63 ASSIGN !3, 60 56 64 > JMP ->74 58 65 > INIT_FCALL 'trigger_error' 66 INIT_FCALL 'sprintf' 67 SEND_VAL 'password_hash%28%29%3A+Unknown+password+hashing+algorithm%3A+%25s' 68 SEND_VAR !1 69 DO_ICALL $48 70 SEND_VAR $48 71 SEND_VAL 512 72 DO_ICALL 59 73 > RETURN null 61 74 > ASSIGN !8, <false> 62 75 ISSET_ISEMPTY_DIM_OBJ 0 !2, 'salt' 76 > JMPZ ~51, ->145 63 77 > FETCH_DIM_R ~52 !2, 'salt' 78 GET_TYPE ~53 ~52 79 > SWITCH_STRING ~53, [ 'NULL':->97, 'boolean':->97, 'integer':->97, 'double':->97, 'string':->97, 'object':->101, 'array':->111, 'resource':->111, ], ->111 64 80 > CASE ~53, 'NULL' 81 > JMPNZ ~54, ->97 65 82 > CASE ~53, 'boolean' 83 > JMPNZ ~54, ->97 66 84 > CASE ~53, 'integer' 85 > JMPNZ ~54, ->97 67 86 > CASE ~53, 'double' 87 > JMPNZ ~54, ->97 68 88 > CASE ~53, 'string' 89 > JMPNZ ~54, ->97 71 90 > CASE ~53, 'object' 91 > JMPNZ ~54, ->101 76 92 > CASE ~53, 'array' 93 > JMPNZ ~54, ->111 77 94 > CASE ~53, 'resource' 95 > JMPNZ ~54, ->111 96 > > JMP ->111 69 97 > FETCH_DIM_R ~55 !2, 'salt' 98 CAST 6 ~56 ~55 99 ASSIGN !9, ~56 70 100 > JMP ->117 72 101 > INIT_FCALL 'method_exists' 102 FETCH_DIM_R ~58 !2, 'salt' 103 SEND_VAL ~58 104 SEND_VAL '__tostring' 105 DO_ICALL $59 106 > JMPZ $59, ->111 73 107 > FETCH_DIM_R ~60 !2, 'salt' 108 CAST 6 ~61 ~60 109 ASSIGN !9, ~61 74 110 > JMP ->117 79 111 > INIT_FCALL 'trigger_error' 112 SEND_VAL 'password_hash%28%29%3A+Non-string+salt+parameter+supplied' 113 SEND_VAL 512 114 DO_ICALL 80 115 FREE ~53 116 > RETURN null 117 > FREE ~53 82 118 INIT_FCALL_BY_NAME '_strlen' 119 SEND_VAR_EX !9 120 DO_FCALL 0 $64 121 IS_SMALLER $64, !6 122 > JMPZ ~65, ->137 83 123 > INIT_FCALL 'trigger_error' 124 INIT_FCALL 'sprintf' 125 SEND_VAL 'password_hash%28%29%3A+Provided+salt+is+too+short%3A+%25d+expecting+%25d' 126 INIT_FCALL_BY_NAME 'PasswordCompat%5Cbinary%5C_strlen' 127 SEND_VAR_EX !9 128 DO_FCALL 0 $66 129 SEND_VAR $66 130 SEND_VAR !6 131 DO_ICALL $67 132 SEND_VAR $67 133 SEND_VAL 512 134 DO_ICALL 84 135 > RETURN null 136* JMP ->144 85 137 > INIT_FCALL 'preg_match' 138 SEND_VAL '%23%5E%5Ba-zA-Z0-9.%2F%5D%2B%24%23D' 139 SEND_VAR !9 140 DO_ICALL $69 141 IS_EQUAL $69, 0 142 > JMPZ ~70, ->144 86 143 > ASSIGN !8, <true> 144 > > JMP ->254 89 145 > ASSIGN !10, '' 90 146 ASSIGN !11, <false> 91 147 INIT_FCALL 'function_exists' 148 SEND_VAL 'mcrypt_create_iv' 149 DO_ICALL $74 150 > JMPZ_EX ~75 $74, ->154 151 > DEFINED ~76 'PHALANGER' 152 BOOL_NOT ~77 ~76 153 BOOL ~75 ~77 154 > > JMPZ ~75, ->163 92 155 > INIT_FCALL_BY_NAME 'mcrypt_create_iv' 156 SEND_VAR_EX !5 157 FETCH_CONSTANT ~78 'MCRYPT_DEV_URANDOM' 158 SEND_VAL_EX ~78 159 DO_FCALL 0 $79 160 ASSIGN !10, $79 93 161 > JMPZ !10, ->163 94 162 > ASSIGN !11, <true> 97 163 > BOOL_NOT ~82 !11 164 > JMPZ_EX ~82 ~82, ->169 165 > INIT_FCALL 'function_exists' 166 SEND_VAL 'openssl_random_pseudo_bytes' 167 DO_ICALL $83 168 BOOL ~82 $83 169 > > JMPZ ~82, ->176 98 170 > INIT_FCALL_BY_NAME 'openssl_random_pseudo_bytes' 171 SEND_VAR_EX !5 172 DO_FCALL 0 $84 173 ASSIGN !10, $84 99 174 > JMPZ !10, ->176 100 175 > ASSIGN !11, <true> 103 176 > BOOL_NOT ~87 !11 177 > JMPZ_EX ~87 ~87, ->184 178 > BEGIN_SILENCE ~88 179 INIT_FCALL 'is_readable' 180 SEND_VAL '%2Fdev%2Furandom' 181 DO_ICALL $89 182 END_SILENCE ~88 183 BOOL ~87 $89 184 > > JMPZ ~87, ->213 104 185 > INIT_FCALL 'fopen' 186 SEND_VAL '%2Fdev%2Furandom' 187 SEND_VAL 'r' 188 DO_ICALL $90 189 ASSIGN !12, $90 105 190 INIT_FCALL_BY_NAME '_strlen' 191 SEND_VAR_EX !10 192 DO_FCALL 0 $92 193 ASSIGN !13, $92 106 194 > JMP ->205 107 195 > INIT_FCALL 'fread' 196 SEND_VAR !12 197 SUB ~94 !5, !13 198 SEND_VAL ~94 199 DO_ICALL $95 200 ASSIGN_OP 8 !10, $95 108 201 INIT_FCALL_BY_NAME '_strlen' 202 SEND_VAR_EX !10 203 DO_FCALL 0 $97 204 ASSIGN !13, $97 106 205 > IS_SMALLER !13, !5 206 > JMPNZ ~99, ->195 110 207 > INIT_FCALL 'fclose' 208 SEND_VAR !12 209 DO_ICALL 111 210 IS_SMALLER_OR_EQUAL !5, !13 211 > JMPZ ~101, ->213 112 212 > ASSIGN !11, <true> 115 213 > BOOL_NOT ~103 !11 214 > JMPNZ_EX ~103 ~103, ->220 215 > INIT_FCALL_BY_NAME '_strlen' 216 SEND_VAR_EX !10 217 DO_FCALL 0 $104 218 IS_SMALLER ~105 $104, !5 219 BOOL ~103 ~105 220 > > JMPZ ~103, ->252 116 221 > INIT_FCALL_BY_NAME '_strlen' 222 SEND_VAR_EX !10 223 DO_FCALL 0 $106 224 ASSIGN !14, $106 117 225 ASSIGN !15, 0 226 > JMP ->250 118 227 > IS_SMALLER !15, !14 228 > JMPZ ~109, ->241 119 229 > FETCH_DIM_R ~111 !10, !15 230 INIT_FCALL 'chr' 231 INIT_FCALL 'mt_rand' 232 SEND_VAL 0 233 SEND_VAL 255 234 DO_ICALL $112 235 SEND_VAR $112 236 DO_ICALL $113 237 BW_XOR ~114 $113, ~111 238 ASSIGN_DIM !10, !15 239 OP_DATA ~114 240 > JMP ->249 121 241 > INIT_FCALL 'chr' 242 INIT_FCALL 'mt_rand' 243 SEND_VAL 0 244 SEND_VAL 255 245 DO_ICALL $115 246 SEND_VAR $115 247 DO_ICALL $116 248 ASSIGN_OP 8 !10, $116 117 249 > PRE_INC !15 250 > IS_SMALLER !15, !5 251 > JMPNZ ~119, ->227 125 252 > ASSIGN !9, !10 126 253 ASSIGN !8, <true> 128 254 > > JMPZ !8, ->271 130 255 > ASSIGN !16, 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%2B%2F' 132 256 ASSIGN !17, '.%2FABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789' 135 257 INIT_FCALL 'base64_encode' 258 SEND_VAR !9 259 DO_ICALL $124 260 ASSIGN !18, $124 136 261 INIT_FCALL 'strtr' 262 INIT_FCALL 'rtrim' 263 SEND_VAR !18 264 SEND_VAL '%3D'
Generated using Vulcan Logic Dumper, using php 8.0.0