<?xml version = '1.0' encoding = 'ISO-8859-1' ?>
<asm version="1.0" name="0">
	<cp>
		<constant value="DetectionByPermissions"/>
		<constant value="links"/>
		<constant value="NTransientLinkSet;"/>
		<constant value="col"/>
		<constant value="J"/>
		<constant value="all_uses_permissions"/>
		<constant value="main"/>
		<constant value="A"/>
		<constant value="OclParametrizedType"/>
		<constant value="#native"/>
		<constant value="Collection"/>
		<constant value="J.setName(S):V"/>
		<constant value="OclSimpleType"/>
		<constant value="OclAny"/>
		<constant value="J.setElementType(J):V"/>
		<constant value="Sequence"/>
		<constant value="android.permission.INTERNET"/>
		<constant value="CJ.including(J):CJ"/>
		<constant value="android.permission.WRITE_SMS"/>
		<constant value="android.permission.RECEIVE_BOOT_COMPLETED"/>
		<constant value="android.permission.READ_SMS"/>
		<constant value="android.permission.RECEIVE_SMS"/>
		<constant value="android.permission.PROCESS_OUTGOING_CALLS"/>
		<constant value="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
		<constant value="android.permission.READ_HISTORY_BOOKMARKS"/>
		<constant value="android.permission.WRITE_HISTORY_BOOKMARKS"/>
		<constant value="android.permission.READ_LOGS"/>
		<constant value="android.permission.INSTALL_PACKAGES"/>
		<constant value="android.permission.MODIFY_PHONE_STATE"/>
		<constant value="android.permission.WRITE_EXTERNAL_STORAGE"/>
		<constant value="android.permission.SEND_SMS"/>
		<constant value="android.permission.READ_PHONE_STATE"/>
		<constant value="UsesPermission"/>
		<constant value="ASEC"/>
		<constant value="USES_PERMISSIONS"/>
		<constant value="__initUSES_PERMISSIONS"/>
		<constant value="J.registerHelperAttribute(SS):V"/>
		<constant value="isMalicious"/>
		<constant value="__initisMalicious"/>
		<constant value="getMaliciousPermissions"/>
		<constant value="__initgetMaliciousPermissions"/>
		<constant value="TransientLinkSet"/>
		<constant value="A.__matcher__():V"/>
		<constant value="A.__exec__():V"/>
		<constant value="10:11-10:40"/>
		<constant value="11:11-11:41"/>
		<constant value="12:5-12:48"/>
		<constant value="13:5-13:34"/>
		<constant value="14:11-14:43"/>
		<constant value="15:5-15:48"/>
		<constant value="16:5-16:51"/>
		<constant value="17:5-17:48"/>
		<constant value="18:5-18:49"/>
		<constant value="19:5-19:35"/>
		<constant value="20:5-20:42"/>
		<constant value="21:5-21:44"/>
		<constant value="22:5-22:48"/>
		<constant value="23:5-23:34"/>
		<constant value="24:5-24:42"/>
		<constant value="10:2-26:3"/>
		<constant value="31:16-31:35"/>
		<constant value="35:16-35:35"/>
		<constant value="46:16-46:35"/>
		<constant value="self"/>
		<constant value="__resolve__"/>
		<constant value="1"/>
		<constant value="J.oclIsKindOf(J):B"/>
		<constant value="18"/>
		<constant value="NTransientLinkSet;.getLinkBySourceElement(S):QNTransientLink;"/>
		<constant value="J.oclIsUndefined():B"/>
		<constant value="15"/>
		<constant value="NTransientLink;.getTargetFromSource(J):J"/>
		<constant value="17"/>
		<constant value="30"/>
		<constant value="2"/>
		<constant value="A.__resolve__(J):J"/>
		<constant value="QJ.including(J):QJ"/>
		<constant value="QJ.flatten():QJ"/>
		<constant value="e"/>
		<constant value="value"/>
		<constant value="resolveTemp"/>
		<constant value="S"/>
		<constant value="NTransientLink;.getNamedTargetFromSource(JS):J"/>
		<constant value="name"/>
		<constant value="__matcher__"/>
		<constant value="A.__matchUsesPermission2MaliciousPermissions():V"/>
		<constant value="__exec__"/>
		<constant value="UsesPermission2MaliciousPermissions"/>
		<constant value="NTransientLinkSet;.getLinksByRule(S):QNTransientLink;"/>
		<constant value="A.__applyUsesPermission2MaliciousPermissions(NTransientLink;):V"/>
		<constant value="MASEC!UsesPermission;"/>
		<constant value="J.allInstances():J"/>
		<constant value="32:2-32:21"/>
		<constant value="32:2-32:36"/>
		<constant value="0"/>
		<constant value="J.includes(J):J"/>
		<constant value="8"/>
		<constant value="9"/>
		<constant value="38:6-38:16"/>
		<constant value="38:6-38:37"/>
		<constant value="38:47-38:51"/>
		<constant value="38:47-38:56"/>
		<constant value="38:6-38:57"/>
		<constant value="41:7-41:12"/>
		<constant value="39:4-39:8"/>
		<constant value="38:3-42:10"/>
		<constant value="J.refImmediateComposite():J"/>
		<constant value="applicationlevelPermission"/>
		<constant value="3"/>
		<constant value="33"/>
		<constant value="4"/>
		<constant value="J.=(J):J"/>
		<constant value="31"/>
		<constant value="39"/>
		<constant value=": "/>
		<constant value="J.+(J):J"/>
		<constant value="J.including(J):J"/>
		<constant value="J.asSet():J"/>
		<constant value="J.asSequence():J"/>
		<constant value="48:56-48:60"/>
		<constant value="48:56-48:84"/>
		<constant value="48:56-48:111"/>
		<constant value="49:59-49:69"/>
		<constant value="49:2-49:17"/>
		<constant value="52:6-52:16"/>
		<constant value="52:6-52:37"/>
		<constant value="52:47-52:51"/>
		<constant value="52:47-52:56"/>
		<constant value="52:6-52:57"/>
		<constant value="56:4-56:10"/>
		<constant value="56:23-56:24"/>
		<constant value="56:23-56:29"/>
		<constant value="56:30-56:34"/>
		<constant value="56:30-56:39"/>
		<constant value="56:23-56:39"/>
		<constant value="56:4-56:40"/>
		<constant value="54:7-54:13"/>
		<constant value="54:25-54:29"/>
		<constant value="54:31-54:35"/>
		<constant value="54:31-54:40"/>
		<constant value="54:25-54:40"/>
		<constant value="54:7-54:41"/>
		<constant value="52:3-57:8"/>
		<constant value="49:2-59:4"/>
		<constant value="49:2-59:13"/>
		<constant value="49:2-59:27"/>
		<constant value="48:2-59:27"/>
		<constant value="c"/>
		<constant value="n"/>
		<constant value="output"/>
		<constant value="UsesPermissions"/>
		<constant value="__matchUsesPermission2MaliciousPermissions"/>
		<constant value="IN"/>
		<constant value="MMOF!Classifier;.allInstancesFrom(S):QJ"/>
		<constant value="J.size():J"/>
		<constant value="10"/>
		<constant value="J.&gt;(J):J"/>
		<constant value="J.and(J):J"/>
		<constant value="B.not():B"/>
		<constant value="37"/>
		<constant value="TransientLink"/>
		<constant value="NTransientLink;.setRule(MATL!Rule;):V"/>
		<constant value="s"/>
		<constant value="NTransientLink;.addSourceElement(SJ):V"/>
		<constant value="t"/>
		<constant value="MaliciousPermission"/>
		<constant value="ANO"/>
		<constant value="NTransientLink;.addTargetElement(SJ):V"/>
		<constant value="NTransientLinkSet;.addLink2(NTransientLink;B):V"/>
		<constant value="70:29-70:30"/>
		<constant value="70:29-70:47"/>
		<constant value="70:29-70:54"/>
		<constant value="70:55-70:57"/>
		<constant value="70:29-70:57"/>
		<constant value="70:62-70:63"/>
		<constant value="70:62-70:75"/>
		<constant value="70:29-70:75"/>
		<constant value="72:5-77:6"/>
		<constant value="__applyUsesPermission2MaliciousPermissions"/>
		<constant value="NTransientLink;"/>
		<constant value="NTransientLink;.getSourceElement(S):J"/>
		<constant value="NTransientLink;.getTargetElement(S):J"/>
		<constant value=""/>
		<constant value="5"/>
		<constant value="J.concat(J):J"/>
		<constant value="&#10;"/>
		<constant value="description"/>
		<constant value="trace"/>
		<constant value="74:76-74:78"/>
		<constant value="74:20-74:21"/>
		<constant value="74:20-74:45"/>
		<constant value="74:81-74:87"/>
		<constant value="74:96-74:98"/>
		<constant value="74:81-74:99"/>
		<constant value="74:100-74:104"/>
		<constant value="74:81-74:104"/>
		<constant value="74:20-74:105"/>
		<constant value="74:5-74:105"/>
		<constant value="79:2-79:3"/>
		<constant value="79:20-79:21"/>
		<constant value="79:11-79:22"/>
		<constant value="79:2-79:23"/>
		<constant value="78:5-80:2"/>
		<constant value="up"/>
		<constant value="link"/>
	</cp>
	<field name="1" type="2"/>
	<field name="3" type="4"/>
	<field name="5" type="4"/>
	<operation name="6">
		<context type="7"/>
		<parameters>
		</parameters>
		<code>
			<getasm/>
			<push arg="8"/>
			<push arg="9"/>
			<new/>
			<dup/>
			<push arg="10"/>
			<pcall arg="11"/>
			<dup/>
			<push arg="12"/>
			<push arg="9"/>
			<new/>
			<dup/>
			<push arg="13"/>
			<pcall arg="11"/>
			<pcall arg="14"/>
			<set arg="3"/>
			<getasm/>
			<push arg="15"/>
			<push arg="9"/>
			<new/>
			<push arg="16"/>
			<call arg="17"/>
			<push arg="18"/>
			<call arg="17"/>
			<push arg="19"/>
			<call arg="17"/>
			<push arg="20"/>
			<call arg="17"/>
			<push arg="21"/>
			<call arg="17"/>
			<push arg="22"/>
			<call arg="17"/>
			<push arg="23"/>
			<call arg="17"/>
			<push arg="24"/>
			<call arg="17"/>
			<push arg="25"/>
			<call arg="17"/>
			<push arg="26"/>
			<call arg="17"/>
			<push arg="27"/>
			<call arg="17"/>
			<push arg="28"/>
			<call arg="17"/>
			<push arg="29"/>
			<call arg="17"/>
			<push arg="30"/>
			<call arg="17"/>
			<push arg="31"/>
			<call arg="17"/>
			<set arg="5"/>
			<push arg="32"/>
			<push arg="33"/>
			<findme/>
			<push arg="34"/>
			<push arg="35"/>
			<pcall arg="36"/>
			<push arg="32"/>
			<push arg="33"/>
			<findme/>
			<push arg="37"/>
			<push arg="38"/>
			<pcall arg="36"/>
			<push arg="32"/>
			<push arg="33"/>
			<findme/>
			<push arg="39"/>
			<push arg="40"/>
			<pcall arg="36"/>
			<getasm/>
			<push arg="41"/>
			<push arg="9"/>
			<new/>
			<set arg="1"/>
			<getasm/>
			<pcall arg="42"/>
			<getasm/>
			<pcall arg="43"/>
		</code>
		<linenumbertable>
			<lne id="44" begin="20" end="20"/>
			<lne id="45" begin="22" end="22"/>
			<lne id="46" begin="24" end="24"/>
			<lne id="47" begin="26" end="26"/>
			<lne id="48" begin="28" end="28"/>
			<lne id="49" begin="30" end="30"/>
			<lne id="50" begin="32" end="32"/>
			<lne id="51" begin="34" end="34"/>
			<lne id="52" begin="36" end="36"/>
			<lne id="53" begin="38" end="38"/>
			<lne id="54" begin="40" end="40"/>
			<lne id="55" begin="42" end="42"/>
			<lne id="56" begin="44" end="44"/>
			<lne id="57" begin="46" end="46"/>
			<lne id="58" begin="48" end="48"/>
			<lne id="59" begin="17" end="49"/>
			<lne id="60" begin="51" end="53"/>
			<lne id="61" begin="57" end="59"/>
			<lne id="62" begin="63" end="65"/>
		</linenumbertable>
		<localvariabletable>
			<lve slot="0" name="63" begin="0" end="77"/>
		</localvariabletable>
	</operation>
	<operation name="64">
		<context type="7"/>
		<parameters>
			<parameter name="65" type="4"/>
		</parameters>
		<code>
			<load arg="65"/>
			<getasm/>
			<get arg="3"/>
			<call arg="66"/>
			<if arg="67"/>
			<getasm/>
			<get arg="1"/>
			<load arg="65"/>
			<call arg="68"/>
			<dup/>
			<call arg="69"/>
			<if arg="70"/>
			<load arg="65"/>
			<call arg="71"/>
			<goto arg="72"/>
			<pop/>
			<load arg="65"/>
			<goto arg="73"/>
			<push arg="15"/>
			<push arg="9"/>
			<new/>
			<load arg="65"/>
			<iterate/>
			<store arg="74"/>
			<getasm/>
			<load arg="74"/>
			<call arg="75"/>
			<call arg="76"/>
			<enditerate/>
			<call arg="77"/>
		</code>
		<linenumbertable>
		</linenumbertable>
		<localvariabletable>
			<lve slot="2" name="78" begin="23" end="27"/>
			<lve slot="0" name="63" begin="0" end="29"/>
			<lve slot="1" name="79" begin="0" end="29"/>
		</localvariabletable>
	</operation>
	<operation name="80">
		<context type="7"/>
		<parameters>
			<parameter name="65" type="4"/>
			<parameter name="74" type="81"/>
		</parameters>
		<code>
			<getasm/>
			<get arg="1"/>
			<load arg="65"/>
			<call arg="68"/>
			<load arg="65"/>
			<load arg="74"/>
			<call arg="82"/>
		</code>
		<linenumbertable>
		</linenumbertable>
		<localvariabletable>
			<lve slot="0" name="63" begin="0" end="6"/>
			<lve slot="1" name="79" begin="0" end="6"/>
			<lve slot="2" name="83" begin="0" end="6"/>
		</localvariabletable>
	</operation>
	<operation name="84">
		<context type="7"/>
		<parameters>
		</parameters>
		<code>
			<getasm/>
			<pcall arg="85"/>
		</code>
		<linenumbertable>
		</linenumbertable>
		<localvariabletable>
			<lve slot="0" name="63" begin="0" end="1"/>
		</localvariabletable>
	</operation>
	<operation name="86">
		<context type="7"/>
		<parameters>
		</parameters>
		<code>
			<getasm/>
			<get arg="1"/>
			<push arg="87"/>
			<call arg="88"/>
			<iterate/>
			<store arg="65"/>
			<getasm/>
			<load arg="65"/>
			<pcall arg="89"/>
			<enditerate/>
		</code>
		<linenumbertable>
		</linenumbertable>
		<localvariabletable>
			<lve slot="1" name="78" begin="5" end="8"/>
			<lve slot="0" name="63" begin="0" end="9"/>
		</localvariabletable>
	</operation>
	<operation name="35">
		<context type="90"/>
		<parameters>
		</parameters>
		<code>
			<push arg="32"/>
			<push arg="33"/>
			<findme/>
			<call arg="91"/>
		</code>
		<linenumbertable>
			<lne id="92" begin="0" end="2"/>
			<lne id="93" begin="0" end="3"/>
		</linenumbertable>
		<localvariabletable>
			<lve slot="0" name="63" begin="0" end="3"/>
		</localvariabletable>
	</operation>
	<operation name="38">
		<context type="90"/>
		<parameters>
		</parameters>
		<code>
			<getasm/>
			<get arg="5"/>
			<load arg="94"/>
			<get arg="83"/>
			<call arg="95"/>
			<if arg="96"/>
			<pushf/>
			<goto arg="97"/>
			<pusht/>
		</code>
		<linenumbertable>
			<lne id="98" begin="0" end="0"/>
			<lne id="99" begin="0" end="1"/>
			<lne id="100" begin="2" end="2"/>
			<lne id="101" begin="2" end="3"/>
			<lne id="102" begin="0" end="4"/>
			<lne id="103" begin="6" end="6"/>
			<lne id="104" begin="8" end="8"/>
			<lne id="105" begin="0" end="8"/>
		</linenumbertable>
		<localvariabletable>
			<lve slot="0" name="63" begin="0" end="8"/>
		</localvariabletable>
	</operation>
	<operation name="40">
		<context type="90"/>
		<parameters>
		</parameters>
		<code>
			<load arg="94"/>
			<call arg="106"/>
			<get arg="107"/>
			<store arg="65"/>
			<push arg="15"/>
			<push arg="9"/>
			<new/>
			<store arg="74"/>
			<load arg="65"/>
			<iterate/>
			<store arg="108"/>
			<getasm/>
			<get arg="5"/>
			<load arg="94"/>
			<get arg="83"/>
			<call arg="95"/>
			<if arg="109"/>
			<push arg="15"/>
			<push arg="9"/>
			<new/>
			<load arg="74"/>
			<iterate/>
			<store arg="110"/>
			<load arg="110"/>
			<get arg="83"/>
			<load arg="94"/>
			<get arg="83"/>
			<call arg="111"/>
			<if arg="112"/>
			<load arg="110"/>
			<call arg="17"/>
			<enditerate/>
			<goto arg="113"/>
			<load arg="74"/>
			<push arg="114"/>
			<load arg="94"/>
			<get arg="83"/>
			<call arg="115"/>
			<call arg="116"/>
			<store arg="74"/>
			<enditerate/>
			<load arg="74"/>
			<call arg="117"/>
			<call arg="118"/>
		</code>
		<linenumbertable>
			<lne id="119" begin="0" end="0"/>
			<lne id="120" begin="0" end="1"/>
			<lne id="121" begin="0" end="2"/>
			<lne id="122" begin="4" end="6"/>
			<lne id="123" begin="8" end="8"/>
			<lne id="124" begin="11" end="11"/>
			<lne id="125" begin="11" end="12"/>
			<lne id="126" begin="13" end="13"/>
			<lne id="127" begin="13" end="14"/>
			<lne id="128" begin="11" end="15"/>
			<lne id="129" begin="20" end="20"/>
			<lne id="130" begin="23" end="23"/>
			<lne id="131" begin="23" end="24"/>
			<lne id="132" begin="25" end="25"/>
			<lne id="133" begin="25" end="26"/>
			<lne id="134" begin="23" end="27"/>
			<lne id="135" begin="17" end="31"/>
			<lne id="136" begin="33" end="33"/>
			<lne id="137" begin="34" end="34"/>
			<lne id="138" begin="35" end="35"/>
			<lne id="139" begin="35" end="36"/>
			<lne id="140" begin="34" end="37"/>
			<lne id="141" begin="33" end="38"/>
			<lne id="142" begin="11" end="38"/>
			<lne id="143" begin="4" end="41"/>
			<lne id="144" begin="4" end="42"/>
			<lne id="145" begin="4" end="43"/>
			<lne id="146" begin="0" end="43"/>
		</linenumbertable>
		<localvariabletable>
			<lve slot="4" name="147" begin="22" end="30"/>
			<lve slot="3" name="148" begin="10" end="39"/>
			<lve slot="2" name="149" begin="7" end="41"/>
			<lve slot="1" name="150" begin="3" end="43"/>
			<lve slot="0" name="63" begin="0" end="43"/>
		</localvariabletable>
	</operation>
	<operation name="151">
		<context type="7"/>
		<parameters>
		</parameters>
		<code>
			<push arg="32"/>
			<push arg="33"/>
			<findme/>
			<push arg="152"/>
			<call arg="153"/>
			<iterate/>
			<store arg="65"/>
			<load arg="65"/>
			<get arg="34"/>
			<call arg="154"/>
			<pushi arg="155"/>
			<call arg="156"/>
			<load arg="65"/>
			<get arg="37"/>
			<call arg="157"/>
			<call arg="158"/>
			<if arg="159"/>
			<getasm/>
			<get arg="1"/>
			<push arg="160"/>
			<push arg="9"/>
			<new/>
			<dup/>
			<push arg="87"/>
			<pcall arg="161"/>
			<dup/>
			<push arg="162"/>
			<load arg="65"/>
			<pcall arg="163"/>
			<dup/>
			<push arg="164"/>
			<push arg="165"/>
			<push arg="166"/>
			<new/>
			<pcall arg="167"/>
			<pusht/>
			<pcall arg="168"/>
			<enditerate/>
		</code>
		<linenumbertable>
			<lne id="169" begin="7" end="7"/>
			<lne id="170" begin="7" end="8"/>
			<lne id="171" begin="7" end="9"/>
			<lne id="172" begin="10" end="10"/>
			<lne id="173" begin="7" end="11"/>
			<lne id="174" begin="12" end="12"/>
			<lne id="175" begin="12" end="13"/>
			<lne id="176" begin="7" end="14"/>
			<lne id="177" begin="29" end="34"/>
		</linenumbertable>
		<localvariabletable>
			<lve slot="1" name="162" begin="6" end="36"/>
			<lve slot="0" name="63" begin="0" end="37"/>
		</localvariabletable>
	</operation>
	<operation name="178">
		<context type="7"/>
		<parameters>
			<parameter name="65" type="179"/>
		</parameters>
		<code>
			<load arg="65"/>
			<push arg="162"/>
			<call arg="180"/>
			<store arg="74"/>
			<load arg="65"/>
			<push arg="164"/>
			<call arg="181"/>
			<store arg="108"/>
			<load arg="108"/>
			<dup/>
			<getasm/>
			<push arg="182"/>
			<store arg="110"/>
			<load arg="74"/>
			<get arg="39"/>
			<iterate/>
			<store arg="183"/>
			<load arg="110"/>
			<load arg="183"/>
			<call arg="184"/>
			<push arg="185"/>
			<call arg="115"/>
			<store arg="110"/>
			<enditerate/>
			<load arg="110"/>
			<call arg="75"/>
			<set arg="186"/>
			<pop/>
			<load arg="108"/>
			<push arg="15"/>
			<push arg="9"/>
			<new/>
			<load arg="74"/>
			<call arg="17"/>
			<set arg="187"/>
		</code>
		<linenumbertable>
			<lne id="188" begin="11" end="11"/>
			<lne id="189" begin="13" end="13"/>
			<lne id="190" begin="13" end="14"/>
			<lne id="191" begin="17" end="17"/>
			<lne id="192" begin="18" end="18"/>
			<lne id="193" begin="17" end="19"/>
			<lne id="194" begin="20" end="20"/>
			<lne id="195" begin="17" end="21"/>
			<lne id="196" begin="11" end="24"/>
			<lne id="197" begin="9" end="26"/>
			<lne id="177" begin="8" end="27"/>
			<lne id="198" begin="28" end="28"/>
			<lne id="199" begin="32" end="32"/>
			<lne id="200" begin="29" end="33"/>
			<lne id="201" begin="28" end="34"/>
			<lne id="202" begin="28" end="34"/>
		</linenumbertable>
		<localvariabletable>
			<lve slot="5" name="203" begin="16" end="22"/>
			<lve slot="4" name="149" begin="12" end="24"/>
			<lve slot="3" name="164" begin="7" end="34"/>
			<lve slot="2" name="162" begin="3" end="34"/>
			<lve slot="0" name="63" begin="0" end="34"/>
			<lve slot="1" name="204" begin="0" end="34"/>
		</localvariabletable>
	</operation>
</asm>
