3v4l.org

run code in 300+ PHP versions simultaneously
<form action="" method="post"> <input type="text" name="challenge"> <input type="submit" value="Generuj!"> </form> <?php if(!empty($_POST['challenge'])){ $challenge = $_POST['challenge']; $temp = ""; for($x=0;$x<8;$x++){ if(ord($challenge[$x]) <= 0x47){ $temp[$x] = chr(ord($challenge[$x])<<1); }else{ $temp[$x] = chr(ord($challenge[$x])>>1); } } $md5hash = hash('md5', implode('', $temp)); for($y=0;$y<8;$y++){ $byteHash[$y] = intval(substr($md5hash, $y*2, 2), 16); } $pass = ""; for($z=0;$z<8;$z++){ $tmp1 = ($byteHash[$z]>>1)*0xB60B60B7; $tmp1 = $tmp1>>(5+32); $tmp2 = $tmp1<<3; $tmp2 = $tmp2-($tmp1<<1); $tmp3 = $tmp2<<4; $tmp3 = $tmp3-$tmp2; $tmp4 = $byteHash[$z]-$tmp3+0x21; $tmp4 = $tmp4&0xFF; $pass .= (($tmp4 == 0x3F) ? chr(0x3E) : chr($tmp4)); } echo 'Pass: </br>'; echo $pass; } ?>
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 5, Position 2 = 105
Branch analysis from position: 5
1 jumps found. (Code = 42) Position 1 = 39
Branch analysis from position: 39
2 jumps found. (Code = 44) Position 1 = 41, Position 2 = 11
Branch analysis from position: 41
1 jumps found. (Code = 42) Position 1 = 65
Branch analysis from position: 65
2 jumps found. (Code = 44) Position 1 = 67, Position 2 = 52
Branch analysis from position: 67
1 jumps found. (Code = 42) Position 1 = 101
Branch analysis from position: 101
2 jumps found. (Code = 44) Position 1 = 103, Position 2 = 70
Branch analysis from position: 103
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 70
2 jumps found. (Code = 43) Position 1 = 93, Position 2 = 95
Branch analysis from position: 93
1 jumps found. (Code = 42) Position 1 = 99
Branch analysis from position: 99
2 jumps found. (Code = 44) Position 1 = 103, Position 2 = 70
Branch analysis from position: 103
Branch analysis from position: 70
Branch analysis from position: 95
2 jumps found. (Code = 44) Position 1 = 103, Position 2 = 70
Branch analysis from position: 103
Branch analysis from position: 70
Branch analysis from position: 52
2 jumps found. (Code = 44) Position 1 = 67, Position 2 = 52
Branch analysis from position: 67
Branch analysis from position: 52
Branch analysis from position: 11
2 jumps found. (Code = 43) Position 1 = 17, Position 2 = 28
Branch analysis from position: 17
1 jumps found. (Code = 42) Position 1 = 38
Branch analysis from position: 38
2 jumps found. (Code = 44) Position 1 = 41, Position 2 = 11
Branch analysis from position: 41
Branch analysis from position: 11
Branch analysis from position: 28
2 jumps found. (Code = 44) Position 1 = 41, Position 2 = 11
Branch analysis from position: 41
Branch analysis from position: 11
Branch analysis from position: 105
filename:       /in/4lTLu
function name:  (null)
number of ops:  106
compiled vars:  !0 = $challenge, !1 = $temp, !2 = $x, !3 = $md5hash, !4 = $y, !5 = $byteHash, !6 = $pass, !7 = $z, !8 = $tmp1, !9 = $tmp2, !10 = $tmp3, !11 = $tmp4
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    1     0  E >   ECHO                                                     '%3Cform+action%3D%22%22+method%3D%22post%22%3E%0A++++%3Cinput+type%3D%22text%22+name%3D%22challenge%22%3E%0A++++%3Cinput+type%3D%22submit%22+value%3D%22Generuj%21%22%3E%0A%3C%2Fform%3E%0A%0A'
    8     1        FETCH_IS                                         ~12     '_POST'
          2        ISSET_ISEMPTY_DIM_OBJ                         1  ~13     ~12, 'challenge'
          3        BOOL_NOT                                         ~14     ~13
          4      > JMPZ                                                     ~14, ->105
    9     5    >   FETCH_R                      global              ~15     '_POST'
          6        FETCH_DIM_R                                      ~16     ~15, 'challenge'
          7        ASSIGN                                                   !0, ~16
   12     8        ASSIGN                                                   !1, ''
   13     9        ASSIGN                                                   !2, 0
         10      > JMP                                                      ->39
   14    11    >   INIT_FCALL                                               'ord'
         12        FETCH_DIM_R                                      ~20     !0, !2
         13        SEND_VAL                                                 ~20
         14        DO_ICALL                                         $21     
         15        IS_SMALLER_OR_EQUAL                                      $21, 71
         16      > JMPZ                                                     ~22, ->28
   15    17    >   INIT_FCALL                                               'chr'
         18        INIT_FCALL                                               'ord'
         19        FETCH_DIM_R                                      ~24     !0, !2
         20        SEND_VAL                                                 ~24
         21        DO_ICALL                                         $25     
         22        SL                                               ~26     $25, 1
         23        SEND_VAL                                                 ~26
         24        DO_ICALL                                         $27     
         25        ASSIGN_DIM                                               !1, !2
         26        OP_DATA                                                  $27
         27      > JMP                                                      ->38
   17    28    >   INIT_FCALL                                               'chr'
         29        INIT_FCALL                                               'ord'
         30        FETCH_DIM_R                                      ~29     !0, !2
         31        SEND_VAL                                                 ~29
         32        DO_ICALL                                         $30     
         33        SR                                               ~31     $30, 1
         34        SEND_VAL                                                 ~31
         35        DO_ICALL                                         $32     
         36        ASSIGN_DIM                                               !1, !2
         37        OP_DATA                                                  $32
   13    38    >   PRE_INC                                                  !2
         39    >   IS_SMALLER                                               !2, 8
         40      > JMPNZ                                                    ~34, ->11
   22    41    >   INIT_FCALL                                               'hash'
         42        SEND_VAL                                                 'md5'
         43        INIT_FCALL                                               'implode'
         44        SEND_VAL                                                 ''
         45        SEND_VAR                                                 !1
         46        DO_ICALL                                         $35     
         47        SEND_VAR                                                 $35
         48        DO_ICALL                                         $36     
         49        ASSIGN                                                   !3, $36
   23    50        ASSIGN                                                   !4, 0
         51      > JMP                                                      ->65
   24    52    >   INIT_FCALL                                               'intval'
         53        INIT_FCALL                                               'substr'
         54        SEND_VAR                                                 !3
         55        MUL                                              ~40     !4, 2
         56        SEND_VAL                                                 ~40
         57        SEND_VAL                                                 2
         58        DO_ICALL                                         $41     
         59        SEND_VAR                                                 $41
         60        SEND_VAL                                                 16
         61        DO_ICALL                                         $42     
         62        ASSIGN_DIM                                               !5, !4
         63        OP_DATA                                                  $42
   23    64        PRE_INC                                                  !4
         65    >   IS_SMALLER                                               !4, 8
         66      > JMPNZ                                                    ~44, ->52
   28    67    >   ASSIGN                                                   !6, ''
   29    68        ASSIGN                                                   !7, 0
         69      > JMP                                                      ->101
   30    70    >   FETCH_DIM_R                                      ~47     !5, !7
         71        SR                                               ~48     ~47, 1
         72        MUL                                              ~49     ~48, 3054198967
         73        ASSIGN                                                   !8, ~49
   31    74        SR                                               ~51     !8, 37
         75        ASSIGN                                                   !8, ~51
   32    76        SL                                               ~53     !8, 3
         77        ASSIGN                                                   !9, ~53
   33    78        SL                                               ~55     !8, 1
         79        SUB                                              ~56     !9, ~55
         80        ASSIGN                                                   !9, ~56
   34    81        SL                                               ~58     !9, 4
         82        ASSIGN                                                   !10, ~58
   35    83        SUB                                              ~60     !10, !9
         84        ASSIGN                                                   !10, ~60
   36    85        FETCH_DIM_R                                      ~62     !5, !7
         86        SUB                                              ~63     ~62, !10
         87        ADD                                              ~64     ~63, 33
         88        ASSIGN                                                   !11, ~64
   37    89        BW_AND                                           ~66     !11, 255
         90        ASSIGN                                                   !11, ~66
   39    91        IS_EQUAL                                                 !11, 63
         92      > JMPZ                                                     ~68, ->95
         93    >   QM_ASSIGN                                        ~69     '%3E'
         94      > JMP                                                      ->99
         95    >   INIT_FCALL                                               'chr'
         96        SEND_VAR                                                 !11
         97        DO_ICALL                                         $70     
         98        QM_ASSIGN                                        ~69     $70
         99    >   ASSIGN_OP                                     8          !6, ~69
   29   100        PRE_INC                                                  !7
        101    >   IS_SMALLER                                               !7, 8
        102      > JMPNZ                                                    ~73, ->70
   42   103    >   ECHO                                                     'Pass%3A+%3C%2Fbr%3E'
   43   104        ECHO                                                     !6
   45   105    > > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
153.29 ms | 1396 KiB | 25 Q