<?php
$oses = array(
'Windows 8' => 'windows nt 6.2',
'Windows 7' => 'windows nt 6.1',
'Windows Vista' => 'windows nt 6.0',
'Windows XP' => array('winnt5.1', 'windows nt 5.1'),
'Windows 2000' => array('winnt5.0', 'windows nt 5.0'),
'Windows NT' => array('winnt4.0', 'windows nt 4.0'),
'Windows 95' => array('win95', 'windows 95'),
'Windows 98' => array('win98', 'windows 98'),
'Windows 2003 Server' => 'windows nt 5.2',
'Windows CE' => 'windows ce',
'Windows ME' => array('windows 9x 4.90', 'windows me'),
'Windows Unatended' => 'windows',
'Mac OS X 10.0' => 'mac os x 10.0',
'Mac OS X 10.1' => 'mac os x 10.1',
'Mac OS X 10.2' => 'mac os x 10.2',
'Mac OS X 10.3' => 'mac os x 10.3',
'Mac OS X 10.4' => 'mac os x 10.4',
'Mac OS X 10.5' => 'mac os x 10.5',
'Mac OS X 10.6' => 'mac os x 10.6',
'Mac OS X 10.7' => 'mac os x 10.7',
'Mac OS X 10.8' => 'mac os x 10.8',
'Mac OS X 10.9' => 'mac os x 10.9',
'Mac OS X' => 'mac os x',
'Macintosh' => array('powerpc', 'macintosh'),
'iOS' => array('iphone', 'ipad', 'ipod'),
'Android 5.x' => 'android 5',
'Android 4.x' => 'android 4',
'Android 3.x' => 'android 3',
'Android 2.x' => 'android 2',
'Android 1.x' => 'android 1',
'Android' => 'android',
'Linux' => 'linux',
'Free BSD' => 'freebsd',
'Net BSD' => 'netbsd',
'Open BSD' => 'openbsd',
'Sun OS' => 'sunos',
'Symbian' => 'symbian',
'Tapatalk' => 'tapatalk',
);
#$useragent = strtolower('Mozilla/5.0 (iPad; CPU OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B206 Safari/7534.48.3');
$useragent = strtolower('Mozilla/4.0 (compatible; MSIE 4.0; Windows 95; .NET CLR 1.1.4322; .NET CLR 2.0.50727');
foreach ($oses as $os => $identificator)
{
if (is_array($identificator))
{
#user_error($useragent, E_USER_NOTICE);
foreach ($identificator as $ident)
{
#user_error($ident, E_USER_NOTICE);
if (preg_match("#$ident#i", $useragent))
{
user_error('FOUND!', E_USER_NOTICE);
$browser['os'] = $os;
break;
}
}
}
# else
# {
# user_error('is string', E_USER_NOTICE);
#
# if (preg_match("#$identificator#i", $useragent))
# {
# $browser['os'] = $os;
# break;
# }
# }
}
#user_error($os, E_USER_NOTICE);
?>
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 6, Position 2 = 30
Branch analysis from position: 6
2 jumps found. (Code = 78) Position 1 = 7, Position 2 = 30
Branch analysis from position: 7
2 jumps found. (Code = 43) Position 1 = 10, Position 2 = 29
Branch analysis from position: 10
2 jumps found. (Code = 77) Position 1 = 11, Position 2 = 28
Branch analysis from position: 11
2 jumps found. (Code = 78) Position 1 = 12, Position 2 = 28
Branch analysis from position: 12
2 jumps found. (Code = 43) Position 1 = 20, Position 2 = 27
Branch analysis from position: 20
1 jumps found. (Code = 42) Position 1 = 28
Branch analysis from position: 28
1 jumps found. (Code = 42) Position 1 = 6
Branch analysis from position: 6
Branch analysis from position: 27
1 jumps found. (Code = 42) Position 1 = 11
Branch analysis from position: 11
Branch analysis from position: 28
Branch analysis from position: 28
Branch analysis from position: 29
Branch analysis from position: 30
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 30
filename: /in/AgOFY
function name: (null)
number of ops: 32
compiled vars: !0 = $oses, !1 = $useragent, !2 = $identificator, !3 = $os, !4 = $ident, !5 = $browser
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
3 0 E > ASSIGN !0, <array>
45 1 INIT_FCALL 'strtolower'
2 SEND_VAL 'Mozilla%2F4.0+%28compatible%3B+MSIE+4.0%3B+Windows+95%3B+.NET+CLR+1.1.4322%3B+.NET+CLR+2.0.50727'
3 DO_ICALL $7
4 ASSIGN !1, $7
47 5 > FE_RESET_R $9 !0, ->30
6 > > FE_FETCH_R ~10 $9, !2, ->30
7 > ASSIGN !3, ~10
49 8 TYPE_CHECK 128 !2
9 > JMPZ ~12, ->29
52 10 > > FE_RESET_R $13 !2, ->28
11 > > FE_FETCH_R $13, !4, ->28
55 12 > INIT_FCALL 'preg_match'
13 ROPE_INIT 3 ~15 '%23'
14 ROPE_ADD 1 ~15 ~15, !4
15 ROPE_END 2 ~14 ~15, '%23i'
16 SEND_VAL ~14
17 SEND_VAR !1
18 DO_ICALL $17
19 > JMPZ $17, ->27
57 20 > INIT_FCALL 'user_error'
21 SEND_VAL 'FOUND%21'
22 SEND_VAL 1024
23 DO_ICALL
58 24 ASSIGN_DIM !5, 'os'
25 OP_DATA !3
59 26 > JMP ->28
52 27 > > JMP ->11
28 > FE_FREE $13
47 29 > > JMP ->6
30 > FE_FREE $9
77 31 > RETURN 1
Generated using Vulcan Logic Dumper, using php 8.0.0
preferences:
159.07 ms | 1403 KiB | 18 Q