Finding entry points Branch analysis from position: 0 2 jumps found. (Code = 43) Position 1 = 1, Position 2 = 13 Branch analysis from position: 1 2 jumps found. (Code = 43) Position 1 = 19, Position 2 = 21 Branch analysis from position: 19 1 jumps found. (Code = 42) Position 1 = 22 Branch analysis from position: 22 1 jumps found. (Code = 62) Position 1 = -2 Branch analysis from position: 21 1 jumps found. (Code = 62) Position 1 = -2 Branch analysis from position: 13 filename: /in/uCj6G function name: (null) number of ops: 23 compiled vars: !0 = $hash line #* E I O op fetch ext return operands ------------------------------------------------------------------------------------- 5 0 E > > JMPZ <false>, ->13 7 1 > INIT_FCALL 'define' 2 SEND_VAL 'PASSWORD_BCRYPT' 3 SEND_VAL 1 4 DO_ICALL 8 5 INIT_FCALL 'define' 6 SEND_VAL 'PASSWORD_DEFAULT' 7 SEND_VAL '2y' 8 DO_ICALL 19 9 DECLARE_FUNCTION 'password_hash' 162 10 DECLARE_FUNCTION 'password_get_info' 188 11 DECLARE_FUNCTION 'password_needs_rehash' 212 12 DECLARE_FUNCTION 'password_verify' 272 13 > ASSIGN !0, '%242y%2410%24reXsuIb0iFKc9iwWkjC6A.X7SijegOERbcgdIX3qPcuBQmjsqQl5K' 274 14 INIT_NS_FCALL_BY_NAME 'PasswordCompat%5Cbinary%5Cpassword_verify' 15 SEND_VAL_EX 'natalie' 16 SEND_VAR_EX !0 17 DO_FCALL 0 $4 18 > JMPZ $4, ->21 275 19 > ECHO 'Password+is+valid%21' 20 > JMP ->22 277 21 > ECHO 'Invalid+password.' 282 22 > > RETURN 1 Function %00password_hash%2Fin%2FuCj6G%3A19%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/uCj6G 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 ------------------------------------------------------------------------------------- 19 0 E > RECV !0 1 RECV !1 2 RECV_INIT !2 <array> 20 3 INIT_FCALL 'function_exists' 4 SEND_VAL 'crypt' 5 DO_ICALL $21 6 BOOL_NOT ~22 $21 7 > JMPZ ~22, ->13 21 8 > INIT_FCALL 'trigger_error' 9 SEND_VAL 'Crypt+must+be+loaded+for+password_hash+to+function' 10 SEND_VAL 512 11 DO_ICALL 22 12 > RETURN null 24 13 > TYPE_CHECK 64 ~24 !0 14 BOOL_NOT ~25 ~24 15 > JMPZ ~25, ->21 25 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 26 20 > RETURN null 28 21 > TYPE_CHECK 16 ~27 !1 22 BOOL_NOT ~28 ~27 23 > JMPZ ~28, ->32 29 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 30 31 > RETURN null 32 32 > ASSIGN !3, 0 33 33 > SWITCH_STRING !1, [ '2y':->37, ], ->65 34 > IS_EQUAL !1, '2y' 35 > JMPNZ ~34, ->37 36 > > JMP ->65 36 37 > ASSIGN !4, 10 37 38 ISSET_ISEMPTY_DIM_OBJ 0 !2, 'cost' 39 > JMPZ ~36, ->56 38 40 > FETCH_DIM_R ~37 !2, 'cost' 41 ASSIGN !4, ~37 39 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 40 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 41 55 > RETURN null 45 56 > ASSIGN !5, 16 47 57 ASSIGN !6, 22 48 58 INIT_FCALL 'sprintf' 59 SEND_VAL '%242y%24%2502d%24' 60 SEND_VAR !4 61 DO_ICALL $45 62 ASSIGN !7, $45 50 63 ASSIGN !3, 60 51 64 > JMP ->74 53 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 54 73 > RETURN null 56 74 > ASSIGN !8, <false> 57 75 ISSET_ISEMPTY_DIM_OBJ 0 !2, 'salt' 76 > JMPZ ~51, ->145 58 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 59 80 > CASE ~53, 'NULL' 81 > JMPNZ ~54, ->97 60 82 > CASE ~53, 'boolean' 83 > JMPNZ ~54, ->97 61 84 > CASE ~53, 'integer' 85 > JMPNZ ~54, ->97 62 86 > CASE ~53, 'double' 87 > JMPNZ ~54, ->97 63 88 > CASE ~53, 'string' 89 > JMPNZ ~54, ->97 66 90 > CASE ~53, 'object' 91 > JMPNZ ~54, ->101 71 92 > CASE ~53, 'array' 93 > JMPNZ ~54, ->111 72 94 > CASE ~53, 'resource' 95 > JMPNZ ~54, ->111 96 > > JMP ->111 64 97 > FETCH_DIM_R ~55 !2, 'salt' 98 CAST 6 ~56 ~55 99 ASSIGN !9, ~56 65 100 > JMP ->117 67 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 68 107 > FETCH_DIM_R ~60 !2, 'salt' 108 CAST 6 ~61 ~60 109 ASSIGN !9, ~61 69 110 > JMP ->117 74 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 75 115 FREE ~53 116 > RETURN null 117 > FREE ~53 77 118 INIT_FCALL_BY_NAME 'PasswordCompat%5Cbinary%5C_strlen' 119 SEND_VAR_EX !9 120 DO_FCALL 0 $64 121 IS_SMALLER $64, !6 122 > JMPZ ~65, ->137 78 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 79 135 > RETURN null 136* JMP ->144 80 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 81 143 > ASSIGN !8, <true> 144 > > JMP ->254 84 145 > ASSIGN !10, '' 85 146 ASSIGN !11, <false> 86 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 87 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 88 161 > JMPZ !10, ->163 89 162 > ASSIGN !11, <true> 92 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 93 170 > INIT_FCALL_BY_NAME 'openssl_random_pseudo_bytes' 171 SEND_VAR_EX !5 172 DO_FCALL 0 $84 173 ASSIGN !10, $84 94 174 > JMPZ !10, ->176 95 175 > ASSIGN !11, <true> 98 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 99 185 > INIT_FCALL 'fopen' 186 SEND_VAL '%2Fdev%2Furandom' 187 SEND_VAL 'r' 188 DO_ICALL $90 189 ASSIGN !12, $90 100 190 INIT_FCALL_BY_NAME 'PasswordCompat%5Cbinary%5C_strlen' 191 SEND_VAR_EX !10 192 DO_FCALL 0 $92 193 ASSIGN !13, $92 101 194 > JMP ->205 102 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 103 201 INIT_FCALL_BY_NAME 'PasswordCompat%5Cbinary%5C_strlen' 202 SEND_VAR_EX !10 203 DO_FCALL 0 $97 204 ASSIGN !13, $97 101 205 > IS_SMALLER !13, !5 206 > JMPNZ ~99, ->195 105 207 > INIT_FCALL 'fclose' 208 SEND_VAR !12 209 DO_ICALL 106 210 IS_SMALLER_OR_EQUAL !5, !13 211 > JMPZ ~101, ->213 107 212 > ASSIGN !11, <true> 110 213 > BOOL_NOT ~103 !11 214 > JMPNZ_EX ~103 ~103, ->220 215 > INIT_FCALL_BY_NAME 'PasswordCompat%5Cbinary%5C_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 111 221 > INIT_FCALL_BY_NAME 'PasswordCompat%5Cbinary%5C_strlen' 222 SEND_VAR_EX !10 223 DO_FCALL 0 $106 224 ASSIGN !14, $106 112 225 ASSIGN !15, 0 226 > JMP ->250 113 227 > IS_SMALLER !15, !14 228 > JMPZ ~109, ->241 114 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 116 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 112 249 > PRE_INC !15 250 > IS_SMALLER !15, !5 251 > JMPNZ ~119, ->227 120 252 > ASSIGN !9, !10 121 253 ASSIGN !8, <true> 123 254 > > JMPZ !8, ->271 125 255 > ASSIGN !16, 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxy
Generated using Vulcan Logic Dumper, using php 8.0.0