Potentially Intent Spoofing

Description

The application is vulnerable to intent spoofing which could result in the access and exploitation of unauthorized components.

Recommendation

It is recommended to apply proper input validation and parameter filtering on intent action.

Technical details
[TAINT] String 'millennialmedia.action.ACTION_FETCH_STARTED_CACHING' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdView;', 'getAd', '(Lcom/millennialmedia/android/RequestListener;)V'), ('Lcom/millennialmedia/android/MMAdView;', 'getAdInternal', '()V'), ('Lcom/millennialmedia/android/MMAdImpl;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'requestAdInternal', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'isDownloadingCachedAd', '(Lcom/millennialmedia/android/MMAdImpl;)Z'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'fetchStartedCaching', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_FETCH_STARTED_CACHING to construct an Intent

Method com.millennialmedia.android.MMAdView.getAd():


    public void getAd(com.millennialmedia.android.RequestListener p2)
    {
        if (this.adImpl != null) {
            this.adImpl.requestListener = p2;
        }
        this.getAdInternal();
        return;
    }

Method com.millennialmedia.android.MMAdView.getAdInternal():


    private void getAdInternal()
    {
        if (this.adImpl != null) {
            this.adImpl.requestAd();
        }
        return;
    }

Method com.millennialmedia.android.MMAdImpl.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImplController.assignAdViewController(this);
        if (this.controller != null) {
            this.controller.requestAd();
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImpl v0_1 = ((com.millennialmedia.android.MMAdImpl) this.adImplRef.get());
        if (v0_1 != null) {
            if (v0_1.isRefreshable()) {
                if (com.millennialmedia.android.MMSDK.isUiThread()) {
                    if (!com.millennialmedia.android.HandShake.sharedHandShake(v0_1.getContext()).kill) {
                        try {
                            com.millennialmedia.android.MMSDK$Log.d("adLayout - requestAd");
                            this.requestAdInternal(v0_1);
                        } catch (Exception v1) {
                            Object[] v3_2 = new Object[1];
                            v3_2[0] = v1.getMessage();
                            com.millennialmedia.android.MMSDK$Log.e("There was an exception with the ad request. %s", v3_2);
                            v1.printStackTrace();
                        }
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i("The server is no longer allowing ads.");
                        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
                    }
                } else {
                    com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(3));
                    com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(3));
                }
            } else {
                com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(25));
            com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(25));
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.requestAdInternal():


    private void requestAdInternal(com.millennialmedia.android.MMAdImpl p4)
    {
        if (p4.apid != null) {
            if ((p4.isBanner()) || (!this.isDownloadingCachedAd(p4))) {
                try {
                    if (this.requestAdRunnable == null) {
                        this.requestAdRunnable = new com.millennialmedia.android.MMAdImplController$RequestAdRunnable(this, 0);
                        com.millennialmedia.android.Utils$ThreadUtils.execute(this.requestAdRunnable);
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i(com.millennialmedia.android.MMException.getErrorCodeMessage(12));
                        com.millennialmedia.android.MMSDK$Event.requestFailed(p4, new com.millennialmedia.android.MMException(12));
                    }
                } catch (com.millennialmedia.android.MMAdImplController$RequestAdRunnable v1_8) {
                    throw v1_8;
                }
            }
        } else {
            com.millennialmedia.android.MMException v0_1 = new com.millennialmedia.android.MMException("MMAdView found with a null apid. New ad requests on this MMAdView are disabled until an apid has been assigned.", 1);
            com.millennialmedia.android.MMSDK$Log.e(v0_1);
            com.millennialmedia.android.MMSDK$Event.requestFailed(p4, v0_1);
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.isDownloadingCachedAd():


    private declared_synchronized boolean isDownloadingCachedAd(com.millennialmedia.android.MMAdImpl p6)
    {
        int v2_0 = 1;
        try {
            android.content.Context v0 = p6.getContext();
        } catch (int v2_2) {
            throw v2_2;
        }
        if (!com.millennialmedia.android.HandShake.sharedHandShake(v0).isAdTypeDownloading(p6.adType)) {
            com.millennialmedia.android.MMSDK$Log.d("No download in progress.");
            com.millennialmedia.android.CachedAd v1 = com.millennialmedia.android.AdCache.loadIncompleteDownload(v0, p6.getCachedName());
            if (v1 == null) {
                com.millennialmedia.android.MMSDK$Log.i("No incomplete downloads.");
                v2_0 = 0;
            } else {
                com.millennialmedia.android.MMSDK$Log.i("Last ad wasn\'t fully downloaded. Download again.");
                com.millennialmedia.android.MMSDK$Event.fetchStartedCaching(p6);
                com.millennialmedia.android.AdCache.startDownloadTask(v0, p6.getCachedName(), v1, this);
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.i("There is a download in progress. Defering call for new ad");
            com.millennialmedia.android.MMSDK$Event.requestFailed(p6, new com.millennialmedia.android.MMException(12));
        }
        return v2_0;
    }

Method com.millennialmedia.android.MMSDK$Event.fetchStartedCaching():


    static void fetchStartedCaching(com.millennialmedia.android.MMAdImpl p4)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$2(p4));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p4.getContext(), new android.content.Intent("millennialmedia.action.ACTION_FETCH_STARTED_CACHING"), p4.internalId);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdView;', 'getAd', '(Lcom/millennialmedia/android/RequestListener;)V'), ('Lcom/millennialmedia/android/MMAdView;', 'getAdInternal', '()V'), ('Lcom/millennialmedia/android/MMAdImpl;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.MMAdView.getAd():


    public void getAd(com.millennialmedia.android.RequestListener p2)
    {
        if (this.adImpl != null) {
            this.adImpl.requestListener = p2;
        }
        this.getAdInternal();
        return;
    }

Method com.millennialmedia.android.MMAdView.getAdInternal():


    private void getAdInternal()
    {
        if (this.adImpl != null) {
            this.adImpl.requestAd();
        }
        return;
    }

Method com.millennialmedia.android.MMAdImpl.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImplController.assignAdViewController(this);
        if (this.controller != null) {
            this.controller.requestAd();
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImpl v0_1 = ((com.millennialmedia.android.MMAdImpl) this.adImplRef.get());
        if (v0_1 != null) {
            if (v0_1.isRefreshable()) {
                if (com.millennialmedia.android.MMSDK.isUiThread()) {
                    if (!com.millennialmedia.android.HandShake.sharedHandShake(v0_1.getContext()).kill) {
                        try {
                            com.millennialmedia.android.MMSDK$Log.d("adLayout - requestAd");
                            this.requestAdInternal(v0_1);
                        } catch (Exception v1) {
                            Object[] v3_2 = new Object[1];
                            v3_2[0] = v1.getMessage();
                            com.millennialmedia.android.MMSDK$Log.e("There was an exception with the ad request. %s", v3_2);
                            v1.printStackTrace();
                        }
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i("The server is no longer allowing ads.");
                        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
                    }
                } else {
                    com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(3));
                    com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(3));
                }
            } else {
                com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(25));
            com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(25));
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_FETCH_FAILED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdView;', 'getAd', '(Lcom/millennialmedia/android/RequestListener;)V'), ('Lcom/millennialmedia/android/MMAdView;', 'getAdInternal', '()V'), ('Lcom/millennialmedia/android/MMAdImpl;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_FETCH_FAILED to construct an Intent

Method com.millennialmedia.android.MMAdView.getAd():


    public void getAd(com.millennialmedia.android.RequestListener p2)
    {
        if (this.adImpl != null) {
            this.adImpl.requestListener = p2;
        }
        this.getAdInternal();
        return;
    }

Method com.millennialmedia.android.MMAdView.getAdInternal():


    private void getAdInternal()
    {
        if (this.adImpl != null) {
            this.adImpl.requestAd();
        }
        return;
    }

Method com.millennialmedia.android.MMAdImpl.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImplController.assignAdViewController(this);
        if (this.controller != null) {
            this.controller.requestAd();
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImpl v0_1 = ((com.millennialmedia.android.MMAdImpl) this.adImplRef.get());
        if (v0_1 != null) {
            if (v0_1.isRefreshable()) {
                if (com.millennialmedia.android.MMSDK.isUiThread()) {
                    if (!com.millennialmedia.android.HandShake.sharedHandShake(v0_1.getContext()).kill) {
                        try {
                            com.millennialmedia.android.MMSDK$Log.d("adLayout - requestAd");
                            this.requestAdInternal(v0_1);
                        } catch (Exception v1) {
                            Object[] v3_2 = new Object[1];
                            v3_2[0] = v1.getMessage();
                            com.millennialmedia.android.MMSDK$Log.e("There was an exception with the ad request. %s", v3_2);
                            v1.printStackTrace();
                        }
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i("The server is no longer allowing ads.");
                        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
                    }
                } else {
                    com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(3));
                    com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(3));
                }
            } else {
                com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(25));
            com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(25));
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.action.ACTION_FETCH_STARTED_CACHING' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdView;', 'getAd', '()V'), ('Lcom/millennialmedia/android/MMAdView;', 'getAdInternal', '()V'), ('Lcom/millennialmedia/android/MMAdImpl;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'requestAdInternal', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'isDownloadingCachedAd', '(Lcom/millennialmedia/android/MMAdImpl;)Z'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'fetchStartedCaching', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_FETCH_STARTED_CACHING to construct an Intent

Method com.millennialmedia.android.MMAdView.getAd():


    public void getAd()
    {
        if ((this.adImpl == null) || (this.adImpl.requestListener == null)) {
            this.getAdInternal();
        } else {
            this.getAd(this.adImpl.requestListener);
        }
        return;
    }

Method com.millennialmedia.android.MMAdView.getAdInternal():


    private void getAdInternal()
    {
        if (this.adImpl != null) {
            this.adImpl.requestAd();
        }
        return;
    }

Method com.millennialmedia.android.MMAdImpl.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImplController.assignAdViewController(this);
        if (this.controller != null) {
            this.controller.requestAd();
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImpl v0_1 = ((com.millennialmedia.android.MMAdImpl) this.adImplRef.get());
        if (v0_1 != null) {
            if (v0_1.isRefreshable()) {
                if (com.millennialmedia.android.MMSDK.isUiThread()) {
                    if (!com.millennialmedia.android.HandShake.sharedHandShake(v0_1.getContext()).kill) {
                        try {
                            com.millennialmedia.android.MMSDK$Log.d("adLayout - requestAd");
                            this.requestAdInternal(v0_1);
                        } catch (Exception v1) {
                            Object[] v3_2 = new Object[1];
                            v3_2[0] = v1.getMessage();
                            com.millennialmedia.android.MMSDK$Log.e("There was an exception with the ad request. %s", v3_2);
                            v1.printStackTrace();
                        }
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i("The server is no longer allowing ads.");
                        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
                    }
                } else {
                    com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(3));
                    com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(3));
                }
            } else {
                com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(25));
            com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(25));
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.requestAdInternal():


    private void requestAdInternal(com.millennialmedia.android.MMAdImpl p4)
    {
        if (p4.apid != null) {
            if ((p4.isBanner()) || (!this.isDownloadingCachedAd(p4))) {
                try {
                    if (this.requestAdRunnable == null) {
                        this.requestAdRunnable = new com.millennialmedia.android.MMAdImplController$RequestAdRunnable(this, 0);
                        com.millennialmedia.android.Utils$ThreadUtils.execute(this.requestAdRunnable);
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i(com.millennialmedia.android.MMException.getErrorCodeMessage(12));
                        com.millennialmedia.android.MMSDK$Event.requestFailed(p4, new com.millennialmedia.android.MMException(12));
                    }
                } catch (com.millennialmedia.android.MMAdImplController$RequestAdRunnable v1_8) {
                    throw v1_8;
                }
            }
        } else {
            com.millennialmedia.android.MMException v0_1 = new com.millennialmedia.android.MMException("MMAdView found with a null apid. New ad requests on this MMAdView are disabled until an apid has been assigned.", 1);
            com.millennialmedia.android.MMSDK$Log.e(v0_1);
            com.millennialmedia.android.MMSDK$Event.requestFailed(p4, v0_1);
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.isDownloadingCachedAd():


    private declared_synchronized boolean isDownloadingCachedAd(com.millennialmedia.android.MMAdImpl p6)
    {
        int v2_0 = 1;
        try {
            android.content.Context v0 = p6.getContext();
        } catch (int v2_2) {
            throw v2_2;
        }
        if (!com.millennialmedia.android.HandShake.sharedHandShake(v0).isAdTypeDownloading(p6.adType)) {
            com.millennialmedia.android.MMSDK$Log.d("No download in progress.");
            com.millennialmedia.android.CachedAd v1 = com.millennialmedia.android.AdCache.loadIncompleteDownload(v0, p6.getCachedName());
            if (v1 == null) {
                com.millennialmedia.android.MMSDK$Log.i("No incomplete downloads.");
                v2_0 = 0;
            } else {
                com.millennialmedia.android.MMSDK$Log.i("Last ad wasn\'t fully downloaded. Download again.");
                com.millennialmedia.android.MMSDK$Event.fetchStartedCaching(p6);
                com.millennialmedia.android.AdCache.startDownloadTask(v0, p6.getCachedName(), v1, this);
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.i("There is a download in progress. Defering call for new ad");
            com.millennialmedia.android.MMSDK$Event.requestFailed(p6, new com.millennialmedia.android.MMException(12));
        }
        return v2_0;
    }

Method com.millennialmedia.android.MMSDK$Event.fetchStartedCaching():


    static void fetchStartedCaching(com.millennialmedia.android.MMAdImpl p4)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$2(p4));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p4.getContext(), new android.content.Intent("millennialmedia.action.ACTION_FETCH_STARTED_CACHING"), p4.internalId);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdView;', 'getAd', '()V'), ('Lcom/millennialmedia/android/MMAdView;', 'getAdInternal', '()V'), ('Lcom/millennialmedia/android/MMAdImpl;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.MMAdView.getAd():


    public void getAd()
    {
        if ((this.adImpl == null) || (this.adImpl.requestListener == null)) {
            this.getAdInternal();
        } else {
            this.getAd(this.adImpl.requestListener);
        }
        return;
    }

Method com.millennialmedia.android.MMAdView.getAdInternal():


    private void getAdInternal()
    {
        if (this.adImpl != null) {
            this.adImpl.requestAd();
        }
        return;
    }

Method com.millennialmedia.android.MMAdImpl.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImplController.assignAdViewController(this);
        if (this.controller != null) {
            this.controller.requestAd();
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImpl v0_1 = ((com.millennialmedia.android.MMAdImpl) this.adImplRef.get());
        if (v0_1 != null) {
            if (v0_1.isRefreshable()) {
                if (com.millennialmedia.android.MMSDK.isUiThread()) {
                    if (!com.millennialmedia.android.HandShake.sharedHandShake(v0_1.getContext()).kill) {
                        try {
                            com.millennialmedia.android.MMSDK$Log.d("adLayout - requestAd");
                            this.requestAdInternal(v0_1);
                        } catch (Exception v1) {
                            Object[] v3_2 = new Object[1];
                            v3_2[0] = v1.getMessage();
                            com.millennialmedia.android.MMSDK$Log.e("There was an exception with the ad request. %s", v3_2);
                            v1.printStackTrace();
                        }
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i("The server is no longer allowing ads.");
                        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
                    }
                } else {
                    com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(3));
                    com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(3));
                }
            } else {
                com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(25));
            com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(25));
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_FETCH_FAILED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdView;', 'getAd', '()V'), ('Lcom/millennialmedia/android/MMAdView;', 'getAdInternal', '()V'), ('Lcom/millennialmedia/android/MMAdImpl;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_FETCH_FAILED to construct an Intent

Method com.millennialmedia.android.MMAdView.getAd():


    public void getAd()
    {
        if ((this.adImpl == null) || (this.adImpl.requestListener == null)) {
            this.getAdInternal();
        } else {
            this.getAd(this.adImpl.requestListener);
        }
        return;
    }

Method com.millennialmedia.android.MMAdView.getAdInternal():


    private void getAdInternal()
    {
        if (this.adImpl != null) {
            this.adImpl.requestAd();
        }
        return;
    }

Method com.millennialmedia.android.MMAdImpl.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImplController.assignAdViewController(this);
        if (this.controller != null) {
            this.controller.requestAd();
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImpl v0_1 = ((com.millennialmedia.android.MMAdImpl) this.adImplRef.get());
        if (v0_1 != null) {
            if (v0_1.isRefreshable()) {
                if (com.millennialmedia.android.MMSDK.isUiThread()) {
                    if (!com.millennialmedia.android.HandShake.sharedHandShake(v0_1.getContext()).kill) {
                        try {
                            com.millennialmedia.android.MMSDK$Log.d("adLayout - requestAd");
                            this.requestAdInternal(v0_1);
                        } catch (Exception v1) {
                            Object[] v3_2 = new Object[1];
                            v3_2[0] = v1.getMessage();
                            com.millennialmedia.android.MMSDK$Log.e("There was an exception with the ad request. %s", v3_2);
                            v1.printStackTrace();
                        }
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i("The server is no longer allowing ads.");
                        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
                    }
                } else {
                    com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(3));
                    com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(3));
                }
            } else {
                com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(25));
            com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(25));
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.action.ACTION_FETCH_FAILED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdView;', 'getAdInternal', '()V'), ('Lcom/millennialmedia/android/MMAdImpl;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_FETCH_FAILED to construct an Intent

Method com.millennialmedia.android.MMAdView.getAdInternal():


    private void getAdInternal()
    {
        if (this.adImpl != null) {
            this.adImpl.requestAd();
        }
        return;
    }

Method com.millennialmedia.android.MMAdImpl.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImplController.assignAdViewController(this);
        if (this.controller != null) {
            this.controller.requestAd();
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImpl v0_1 = ((com.millennialmedia.android.MMAdImpl) this.adImplRef.get());
        if (v0_1 != null) {
            if (v0_1.isRefreshable()) {
                if (com.millennialmedia.android.MMSDK.isUiThread()) {
                    if (!com.millennialmedia.android.HandShake.sharedHandShake(v0_1.getContext()).kill) {
                        try {
                            com.millennialmedia.android.MMSDK$Log.d("adLayout - requestAd");
                            this.requestAdInternal(v0_1);
                        } catch (Exception v1) {
                            Object[] v3_2 = new Object[1];
                            v3_2[0] = v1.getMessage();
                            com.millennialmedia.android.MMSDK$Log.e("There was an exception with the ad request. %s", v3_2);
                            v1.printStackTrace();
                        }
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i("The server is no longer allowing ads.");
                        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
                    }
                } else {
                    com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(3));
                    com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(3));
                }
            } else {
                com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(25));
            com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(25));
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdView;', 'getAdInternal', '()V'), ('Lcom/millennialmedia/android/MMAdImpl;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.MMAdView.getAdInternal():


    private void getAdInternal()
    {
        if (this.adImpl != null) {
            this.adImpl.requestAd();
        }
        return;
    }

Method com.millennialmedia.android.MMAdImpl.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImplController.assignAdViewController(this);
        if (this.controller != null) {
            this.controller.requestAd();
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImpl v0_1 = ((com.millennialmedia.android.MMAdImpl) this.adImplRef.get());
        if (v0_1 != null) {
            if (v0_1.isRefreshable()) {
                if (com.millennialmedia.android.MMSDK.isUiThread()) {
                    if (!com.millennialmedia.android.HandShake.sharedHandShake(v0_1.getContext()).kill) {
                        try {
                            com.millennialmedia.android.MMSDK$Log.d("adLayout - requestAd");
                            this.requestAdInternal(v0_1);
                        } catch (Exception v1) {
                            Object[] v3_2 = new Object[1];
                            v3_2[0] = v1.getMessage();
                            com.millennialmedia.android.MMSDK$Log.e("There was an exception with the ad request. %s", v3_2);
                            v1.printStackTrace();
                        }
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i("The server is no longer allowing ads.");
                        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
                    }
                } else {
                    com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(3));
                    com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(3));
                }
            } else {
                com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(25));
            com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(25));
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_FETCH_STARTED_CACHING' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdView;', 'getAdInternal', '()V'), ('Lcom/millennialmedia/android/MMAdImpl;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'requestAdInternal', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'isDownloadingCachedAd', '(Lcom/millennialmedia/android/MMAdImpl;)Z'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'fetchStartedCaching', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_FETCH_STARTED_CACHING to construct an Intent

Method com.millennialmedia.android.MMAdView.getAdInternal():


    private void getAdInternal()
    {
        if (this.adImpl != null) {
            this.adImpl.requestAd();
        }
        return;
    }

Method com.millennialmedia.android.MMAdImpl.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImplController.assignAdViewController(this);
        if (this.controller != null) {
            this.controller.requestAd();
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImpl v0_1 = ((com.millennialmedia.android.MMAdImpl) this.adImplRef.get());
        if (v0_1 != null) {
            if (v0_1.isRefreshable()) {
                if (com.millennialmedia.android.MMSDK.isUiThread()) {
                    if (!com.millennialmedia.android.HandShake.sharedHandShake(v0_1.getContext()).kill) {
                        try {
                            com.millennialmedia.android.MMSDK$Log.d("adLayout - requestAd");
                            this.requestAdInternal(v0_1);
                        } catch (Exception v1) {
                            Object[] v3_2 = new Object[1];
                            v3_2[0] = v1.getMessage();
                            com.millennialmedia.android.MMSDK$Log.e("There was an exception with the ad request. %s", v3_2);
                            v1.printStackTrace();
                        }
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i("The server is no longer allowing ads.");
                        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
                    }
                } else {
                    com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(3));
                    com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(3));
                }
            } else {
                com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(25));
            com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(25));
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.requestAdInternal():


    private void requestAdInternal(com.millennialmedia.android.MMAdImpl p4)
    {
        if (p4.apid != null) {
            if ((p4.isBanner()) || (!this.isDownloadingCachedAd(p4))) {
                try {
                    if (this.requestAdRunnable == null) {
                        this.requestAdRunnable = new com.millennialmedia.android.MMAdImplController$RequestAdRunnable(this, 0);
                        com.millennialmedia.android.Utils$ThreadUtils.execute(this.requestAdRunnable);
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i(com.millennialmedia.android.MMException.getErrorCodeMessage(12));
                        com.millennialmedia.android.MMSDK$Event.requestFailed(p4, new com.millennialmedia.android.MMException(12));
                    }
                } catch (com.millennialmedia.android.MMAdImplController$RequestAdRunnable v1_8) {
                    throw v1_8;
                }
            }
        } else {
            com.millennialmedia.android.MMException v0_1 = new com.millennialmedia.android.MMException("MMAdView found with a null apid. New ad requests on this MMAdView are disabled until an apid has been assigned.", 1);
            com.millennialmedia.android.MMSDK$Log.e(v0_1);
            com.millennialmedia.android.MMSDK$Event.requestFailed(p4, v0_1);
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.isDownloadingCachedAd():


    private declared_synchronized boolean isDownloadingCachedAd(com.millennialmedia.android.MMAdImpl p6)
    {
        int v2_0 = 1;
        try {
            android.content.Context v0 = p6.getContext();
        } catch (int v2_2) {
            throw v2_2;
        }
        if (!com.millennialmedia.android.HandShake.sharedHandShake(v0).isAdTypeDownloading(p6.adType)) {
            com.millennialmedia.android.MMSDK$Log.d("No download in progress.");
            com.millennialmedia.android.CachedAd v1 = com.millennialmedia.android.AdCache.loadIncompleteDownload(v0, p6.getCachedName());
            if (v1 == null) {
                com.millennialmedia.android.MMSDK$Log.i("No incomplete downloads.");
                v2_0 = 0;
            } else {
                com.millennialmedia.android.MMSDK$Log.i("Last ad wasn\'t fully downloaded. Download again.");
                com.millennialmedia.android.MMSDK$Event.fetchStartedCaching(p6);
                com.millennialmedia.android.AdCache.startDownloadTask(v0, p6.getCachedName(), v1, this);
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.i("There is a download in progress. Defering call for new ad");
            com.millennialmedia.android.MMSDK$Event.requestFailed(p6, new com.millennialmedia.android.MMException(12));
        }
        return v2_0;
    }

Method com.millennialmedia.android.MMSDK$Event.fetchStartedCaching():


    static void fetchStartedCaching(com.millennialmedia.android.MMAdImpl p4)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$2(p4));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p4.getContext(), new android.content.Intent("millennialmedia.action.ACTION_FETCH_STARTED_CACHING"), p4.internalId);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.action.ACTION_OVERLAY_OPENED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdImpl$MMAdImplRedirectionListenerImpl;', 'startingActivity', '(Landroid/net/Uri;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayOpened', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayOpenedBroadCast', '(Landroid/content/Context; J)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_OVERLAY_OPENED to construct an Intent

Method com.millennialmedia.android.MMAdImpl$MMAdImplRedirectionListenerImpl.startingActivity():


    public void startingActivity(android.net.Uri p3)
    {
        super.startingActivity(p3);
        if ((p3.getScheme().equalsIgnoreCase("http")) || (p3.getScheme().equalsIgnoreCase("https"))) {
            com.millennialmedia.android.MMSDK$Event.overlayOpened(this.this$0);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayOpened():


    static void overlayOpened(com.millennialmedia.android.MMAdImpl p3)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$3(p3));
        com.millennialmedia.android.MMSDK$Event.overlayOpenedBroadCast(p3.getContext(), p3.internalId);
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayOpenedBroadCast():


    static void overlayOpenedBroadCast(android.content.Context p2, long p3)
    {
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_OVERLAY_OPENED"), p3);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdImpl$MMAdImplRedirectionListenerImpl;', 'startingActivity', '(Landroid/net/Uri;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayOpened', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayOpenedBroadCast', '(Landroid/content/Context; J)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.MMAdImpl$MMAdImplRedirectionListenerImpl.startingActivity():


    public void startingActivity(android.net.Uri p3)
    {
        super.startingActivity(p3);
        if ((p3.getScheme().equalsIgnoreCase("http")) || (p3.getScheme().equalsIgnoreCase("https"))) {
            com.millennialmedia.android.MMSDK$Event.overlayOpened(this.this$0);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayOpened():


    static void overlayOpened(com.millennialmedia.android.MMAdImpl p3)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$3(p3));
        com.millennialmedia.android.MMSDK$Event.overlayOpenedBroadCast(p3.getContext(), p3.internalId);
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayOpenedBroadCast():


    static void overlayOpenedBroadCast(android.content.Context p2, long p3)
    {
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_OVERLAY_OPENED"), p3);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMInterstitial;', 'display', '(Z)Z'), ('Lcom/millennialmedia/android/MMInterstitial;', 'displayInternal', '()I'), ('Lcom/millennialmedia/android/MMAdImplController;', 'display', '(Lcom/millennialmedia/android/MMAdImpl;)I'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'displayStarted', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayOpened', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayOpenedBroadCast', '(Landroid/content/Context; J)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.MMInterstitial.display():


    public boolean display(boolean p5)
    {
        int v2_0 = 0;
        if (com.millennialmedia.android.MMSDK.isUiThread()) {
            try {
                int v1 = this.displayInternal();
            } catch (Exception v0) {
                if (p5) {
                    throw new com.millennialmedia.android.MMException(v0);
                }
            }
            if ((v1 == 0) || (!p5)) {
                if (v1 == 0) {
                    v2_0 = 1;
                }
            } else {
                throw new com.millennialmedia.android.MMException(v1);
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(3));
        }
        return v2_0;
    }

Method com.millennialmedia.android.MMInterstitial.displayInternal():


    int displayInternal()
    {
        try {
            int v1_1;
            com.millennialmedia.android.MMAdImplController.assignAdViewController(this.adImpl);
        } catch (Exception v0) {
            com.millennialmedia.android.MMAdImpl v2_2 = new Object[1];
            v2_2[0] = v0.getMessage();
            com.millennialmedia.android.MMSDK$Log.e("There was an exception displaying a cached ad. %s", v2_2);
            v0.printStackTrace();
            v1_1 = 100;
            return v1_1;
        }
        if (this.adImpl.controller == null) {
        } else {
            v1_1 = this.adImpl.controller.display(this.adImpl);
            return v1_1;
        }
    }

Method com.millennialmedia.android.MMAdImplController.display():


    int display(com.millennialmedia.android.MMAdImpl p5)
    {
        int v1_2;
        com.millennialmedia.android.CachedAd v0 = com.millennialmedia.android.AdCache.loadNextCachedAd(p5.getContext(), p5.getCachedName());
        if (v0 == null) {
            v1_2 = 20;
        } else {
            if (!v0.canShow(p5.getContext(), p5, 1)) {
                v1_2 = this.checkReason(p5, v0);
            } else {
                com.millennialmedia.android.MMSDK$Event.displayStarted(p5);
                com.millennialmedia.android.AdCache.setNextCachedAd(p5.getContext(), p5.getCachedName(), 0);
                v0.show(p5.getContext(), p5.internalId);
                com.millennialmedia.android.HandShake.sharedHandShake(p5.getContext()).updateLastVideoViewedTime(p5.getContext(), p5.adType);
                v1_2 = 0;
            }
        }
        return v1_2;
    }

Method com.millennialmedia.android.MMSDK$Event.displayStarted():


    static void displayStarted(com.millennialmedia.android.MMAdImpl p4)
    {
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p4.getContext(), new android.content.Intent("millennialmedia.action.ACTION_DISPLAY_STARTED"), p4.internalId);
        }
        com.millennialmedia.android.MMSDK$Event.overlayOpened(p4);
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayOpened():


    static void overlayOpened(com.millennialmedia.android.MMAdImpl p3)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$3(p3));
        com.millennialmedia.android.MMSDK$Event.overlayOpenedBroadCast(p3.getContext(), p3.internalId);
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayOpenedBroadCast():


    static void overlayOpenedBroadCast(android.content.Context p2, long p3)
    {
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_OVERLAY_OPENED"), p3);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_OVERLAY_OPENED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMInterstitial;', 'display', '()Z'), ('Lcom/millennialmedia/android/MMInterstitial;', 'display', '(Z)Z'), ('Lcom/millennialmedia/android/MMInterstitial;', 'displayInternal', '()I'), ('Lcom/millennialmedia/android/MMAdImplController;', 'display', '(Lcom/millennialmedia/android/MMAdImpl;)I'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'displayStarted', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayOpened', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayOpenedBroadCast', '(Landroid/content/Context; J)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_OVERLAY_OPENED to construct an Intent

Method com.millennialmedia.android.MMInterstitial.display():


    public boolean display()
    {
        return this.display(0);
    }

Method com.millennialmedia.android.MMInterstitial.display():


    public boolean display(boolean p5)
    {
        int v2_0 = 0;
        if (com.millennialmedia.android.MMSDK.isUiThread()) {
            try {
                int v1 = this.displayInternal();
            } catch (Exception v0) {
                if (p5) {
                    throw new com.millennialmedia.android.MMException(v0);
                }
            }
            if ((v1 == 0) || (!p5)) {
                if (v1 == 0) {
                    v2_0 = 1;
                }
            } else {
                throw new com.millennialmedia.android.MMException(v1);
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(3));
        }
        return v2_0;
    }

Method com.millennialmedia.android.MMInterstitial.displayInternal():


    int displayInternal()
    {
        try {
            int v1_1;
            com.millennialmedia.android.MMAdImplController.assignAdViewController(this.adImpl);
        } catch (Exception v0) {
            com.millennialmedia.android.MMAdImpl v2_2 = new Object[1];
            v2_2[0] = v0.getMessage();
            com.millennialmedia.android.MMSDK$Log.e("There was an exception displaying a cached ad. %s", v2_2);
            v0.printStackTrace();
            v1_1 = 100;
            return v1_1;
        }
        if (this.adImpl.controller == null) {
        } else {
            v1_1 = this.adImpl.controller.display(this.adImpl);
            return v1_1;
        }
    }

Method com.millennialmedia.android.MMAdImplController.display():


    int display(com.millennialmedia.android.MMAdImpl p5)
    {
        int v1_2;
        com.millennialmedia.android.CachedAd v0 = com.millennialmedia.android.AdCache.loadNextCachedAd(p5.getContext(), p5.getCachedName());
        if (v0 == null) {
            v1_2 = 20;
        } else {
            if (!v0.canShow(p5.getContext(), p5, 1)) {
                v1_2 = this.checkReason(p5, v0);
            } else {
                com.millennialmedia.android.MMSDK$Event.displayStarted(p5);
                com.millennialmedia.android.AdCache.setNextCachedAd(p5.getContext(), p5.getCachedName(), 0);
                v0.show(p5.getContext(), p5.internalId);
                com.millennialmedia.android.HandShake.sharedHandShake(p5.getContext()).updateLastVideoViewedTime(p5.getContext(), p5.adType);
                v1_2 = 0;
            }
        }
        return v1_2;
    }

Method com.millennialmedia.android.MMSDK$Event.displayStarted():


    static void displayStarted(com.millennialmedia.android.MMAdImpl p4)
    {
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p4.getContext(), new android.content.Intent("millennialmedia.action.ACTION_DISPLAY_STARTED"), p4.internalId);
        }
        com.millennialmedia.android.MMSDK$Event.overlayOpened(p4);
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayOpened():


    static void overlayOpened(com.millennialmedia.android.MMAdImpl p3)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$3(p3));
        com.millennialmedia.android.MMSDK$Event.overlayOpenedBroadCast(p3.getContext(), p3.internalId);
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayOpenedBroadCast():


    static void overlayOpenedBroadCast(android.content.Context p2, long p3)
    {
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_OVERLAY_OPENED"), p3);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.action.ACTION_DISPLAY_STARTED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMInterstitial;', 'display', '()Z'), ('Lcom/millennialmedia/android/MMInterstitial;', 'display', '(Z)Z'), ('Lcom/millennialmedia/android/MMInterstitial;', 'displayInternal', '()I'), ('Lcom/millennialmedia/android/MMAdImplController;', 'display', '(Lcom/millennialmedia/android/MMAdImpl;)I'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'displayStarted', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_DISPLAY_STARTED to construct an Intent

Method com.millennialmedia.android.MMInterstitial.display():


    public boolean display()
    {
        return this.display(0);
    }

Method com.millennialmedia.android.MMInterstitial.display():


    public boolean display(boolean p5)
    {
        int v2_0 = 0;
        if (com.millennialmedia.android.MMSDK.isUiThread()) {
            try {
                int v1 = this.displayInternal();
            } catch (Exception v0) {
                if (p5) {
                    throw new com.millennialmedia.android.MMException(v0);
                }
            }
            if ((v1 == 0) || (!p5)) {
                if (v1 == 0) {
                    v2_0 = 1;
                }
            } else {
                throw new com.millennialmedia.android.MMException(v1);
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(3));
        }
        return v2_0;
    }

Method com.millennialmedia.android.MMInterstitial.displayInternal():


    int displayInternal()
    {
        try {
            int v1_1;
            com.millennialmedia.android.MMAdImplController.assignAdViewController(this.adImpl);
        } catch (Exception v0) {
            com.millennialmedia.android.MMAdImpl v2_2 = new Object[1];
            v2_2[0] = v0.getMessage();
            com.millennialmedia.android.MMSDK$Log.e("There was an exception displaying a cached ad. %s", v2_2);
            v0.printStackTrace();
            v1_1 = 100;
            return v1_1;
        }
        if (this.adImpl.controller == null) {
        } else {
            v1_1 = this.adImpl.controller.display(this.adImpl);
            return v1_1;
        }
    }

Method com.millennialmedia.android.MMAdImplController.display():


    int display(com.millennialmedia.android.MMAdImpl p5)
    {
        int v1_2;
        com.millennialmedia.android.CachedAd v0 = com.millennialmedia.android.AdCache.loadNextCachedAd(p5.getContext(), p5.getCachedName());
        if (v0 == null) {
            v1_2 = 20;
        } else {
            if (!v0.canShow(p5.getContext(), p5, 1)) {
                v1_2 = this.checkReason(p5, v0);
            } else {
                com.millennialmedia.android.MMSDK$Event.displayStarted(p5);
                com.millennialmedia.android.AdCache.setNextCachedAd(p5.getContext(), p5.getCachedName(), 0);
                v0.show(p5.getContext(), p5.internalId);
                com.millennialmedia.android.HandShake.sharedHandShake(p5.getContext()).updateLastVideoViewedTime(p5.getContext(), p5.adType);
                v1_2 = 0;
            }
        }
        return v1_2;
    }

Method com.millennialmedia.android.MMSDK$Event.displayStarted():


    static void displayStarted(com.millennialmedia.android.MMAdImpl p4)
    {
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p4.getContext(), new android.content.Intent("millennialmedia.action.ACTION_DISPLAY_STARTED"), p4.internalId);
        }
        com.millennialmedia.android.MMSDK$Event.overlayOpened(p4);
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMInterstitial;', 'display', '()Z'), ('Lcom/millennialmedia/android/MMInterstitial;', 'display', '(Z)Z'), ('Lcom/millennialmedia/android/MMInterstitial;', 'displayInternal', '()I'), ('Lcom/millennialmedia/android/MMAdImplController;', 'display', '(Lcom/millennialmedia/android/MMAdImpl;)I'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'displayStarted', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayOpened', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayOpenedBroadCast', '(Landroid/content/Context; J)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.MMInterstitial.display():


    public boolean display()
    {
        return this.display(0);
    }

Method com.millennialmedia.android.MMInterstitial.display():


    public boolean display(boolean p5)
    {
        int v2_0 = 0;
        if (com.millennialmedia.android.MMSDK.isUiThread()) {
            try {
                int v1 = this.displayInternal();
            } catch (Exception v0) {
                if (p5) {
                    throw new com.millennialmedia.android.MMException(v0);
                }
            }
            if ((v1 == 0) || (!p5)) {
                if (v1 == 0) {
                    v2_0 = 1;
                }
            } else {
                throw new com.millennialmedia.android.MMException(v1);
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(3));
        }
        return v2_0;
    }

Method com.millennialmedia.android.MMInterstitial.displayInternal():


    int displayInternal()
    {
        try {
            int v1_1;
            com.millennialmedia.android.MMAdImplController.assignAdViewController(this.adImpl);
        } catch (Exception v0) {
            com.millennialmedia.android.MMAdImpl v2_2 = new Object[1];
            v2_2[0] = v0.getMessage();
            com.millennialmedia.android.MMSDK$Log.e("There was an exception displaying a cached ad. %s", v2_2);
            v0.printStackTrace();
            v1_1 = 100;
            return v1_1;
        }
        if (this.adImpl.controller == null) {
        } else {
            v1_1 = this.adImpl.controller.display(this.adImpl);
            return v1_1;
        }
    }

Method com.millennialmedia.android.MMAdImplController.display():


    int display(com.millennialmedia.android.MMAdImpl p5)
    {
        int v1_2;
        com.millennialmedia.android.CachedAd v0 = com.millennialmedia.android.AdCache.loadNextCachedAd(p5.getContext(), p5.getCachedName());
        if (v0 == null) {
            v1_2 = 20;
        } else {
            if (!v0.canShow(p5.getContext(), p5, 1)) {
                v1_2 = this.checkReason(p5, v0);
            } else {
                com.millennialmedia.android.MMSDK$Event.displayStarted(p5);
                com.millennialmedia.android.AdCache.setNextCachedAd(p5.getContext(), p5.getCachedName(), 0);
                v0.show(p5.getContext(), p5.internalId);
                com.millennialmedia.android.HandShake.sharedHandShake(p5.getContext()).updateLastVideoViewedTime(p5.getContext(), p5.adType);
                v1_2 = 0;
            }
        }
        return v1_2;
    }

Method com.millennialmedia.android.MMSDK$Event.displayStarted():


    static void displayStarted(com.millennialmedia.android.MMAdImpl p4)
    {
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p4.getContext(), new android.content.Intent("millennialmedia.action.ACTION_DISPLAY_STARTED"), p4.internalId);
        }
        com.millennialmedia.android.MMSDK$Event.overlayOpened(p4);
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayOpened():


    static void overlayOpened(com.millennialmedia.android.MMAdImpl p3)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$3(p3));
        com.millennialmedia.android.MMSDK$Event.overlayOpenedBroadCast(p3.getContext(), p3.internalId);
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayOpenedBroadCast():


    static void overlayOpenedBroadCast(android.content.Context p2, long p3)
    {
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_OVERLAY_OPENED"), p3);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_FETCH_FAILED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMInterstitial;', 'fetchInternal', '()V'), ('Lcom/millennialmedia/android/MMAdImpl;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_FETCH_FAILED to construct an Intent

Method com.millennialmedia.android.MMInterstitial.fetchInternal():


    private void fetchInternal()
    {
        if (!this.isAdAvailable()) {
            com.millennialmedia.android.MMSDK$Log.d("Fetching new ad...");
            this.adImpl.requestAd();
        } else {
            com.millennialmedia.android.MMSDK$Log.d("Ad already fetched and ready for display...");
            com.millennialmedia.android.MMSDK$Event.requestFailed(this.adImpl, new com.millennialmedia.android.MMException(17));
        }
        return;
    }

Method com.millennialmedia.android.MMAdImpl.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImplController.assignAdViewController(this);
        if (this.controller != null) {
            this.controller.requestAd();
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImpl v0_1 = ((com.millennialmedia.android.MMAdImpl) this.adImplRef.get());
        if (v0_1 != null) {
            if (v0_1.isRefreshable()) {
                if (com.millennialmedia.android.MMSDK.isUiThread()) {
                    if (!com.millennialmedia.android.HandShake.sharedHandShake(v0_1.getContext()).kill) {
                        try {
                            com.millennialmedia.android.MMSDK$Log.d("adLayout - requestAd");
                            this.requestAdInternal(v0_1);
                        } catch (Exception v1) {
                            Object[] v3_2 = new Object[1];
                            v3_2[0] = v1.getMessage();
                            com.millennialmedia.android.MMSDK$Log.e("There was an exception with the ad request. %s", v3_2);
                            v1.printStackTrace();
                        }
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i("The server is no longer allowing ads.");
                        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
                    }
                } else {
                    com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(3));
                    com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(3));
                }
            } else {
                com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(25));
            com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(25));
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMInterstitial;', 'fetchInternal', '()V'), ('Lcom/millennialmedia/android/MMAdImpl;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.MMInterstitial.fetchInternal():


    private void fetchInternal()
    {
        if (!this.isAdAvailable()) {
            com.millennialmedia.android.MMSDK$Log.d("Fetching new ad...");
            this.adImpl.requestAd();
        } else {
            com.millennialmedia.android.MMSDK$Log.d("Ad already fetched and ready for display...");
            com.millennialmedia.android.MMSDK$Event.requestFailed(this.adImpl, new com.millennialmedia.android.MMException(17));
        }
        return;
    }

Method com.millennialmedia.android.MMAdImpl.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImplController.assignAdViewController(this);
        if (this.controller != null) {
            this.controller.requestAd();
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImpl v0_1 = ((com.millennialmedia.android.MMAdImpl) this.adImplRef.get());
        if (v0_1 != null) {
            if (v0_1.isRefreshable()) {
                if (com.millennialmedia.android.MMSDK.isUiThread()) {
                    if (!com.millennialmedia.android.HandShake.sharedHandShake(v0_1.getContext()).kill) {
                        try {
                            com.millennialmedia.android.MMSDK$Log.d("adLayout - requestAd");
                            this.requestAdInternal(v0_1);
                        } catch (Exception v1) {
                            Object[] v3_2 = new Object[1];
                            v3_2[0] = v1.getMessage();
                            com.millennialmedia.android.MMSDK$Log.e("There was an exception with the ad request. %s", v3_2);
                            v1.printStackTrace();
                        }
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i("The server is no longer allowing ads.");
                        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
                    }
                } else {
                    com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(3));
                    com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(3));
                }
            } else {
                com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(25));
            com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(25));
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_FETCH_STARTED_CACHING' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMInterstitial;', 'fetchInternal', '()V'), ('Lcom/millennialmedia/android/MMAdImpl;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'requestAdInternal', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'isDownloadingCachedAd', '(Lcom/millennialmedia/android/MMAdImpl;)Z'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'fetchStartedCaching', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_FETCH_STARTED_CACHING to construct an Intent

Method com.millennialmedia.android.MMInterstitial.fetchInternal():


    private void fetchInternal()
    {
        if (!this.isAdAvailable()) {
            com.millennialmedia.android.MMSDK$Log.d("Fetching new ad...");
            this.adImpl.requestAd();
        } else {
            com.millennialmedia.android.MMSDK$Log.d("Ad already fetched and ready for display...");
            com.millennialmedia.android.MMSDK$Event.requestFailed(this.adImpl, new com.millennialmedia.android.MMException(17));
        }
        return;
    }

Method com.millennialmedia.android.MMAdImpl.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImplController.assignAdViewController(this);
        if (this.controller != null) {
            this.controller.requestAd();
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImpl v0_1 = ((com.millennialmedia.android.MMAdImpl) this.adImplRef.get());
        if (v0_1 != null) {
            if (v0_1.isRefreshable()) {
                if (com.millennialmedia.android.MMSDK.isUiThread()) {
                    if (!com.millennialmedia.android.HandShake.sharedHandShake(v0_1.getContext()).kill) {
                        try {
                            com.millennialmedia.android.MMSDK$Log.d("adLayout - requestAd");
                            this.requestAdInternal(v0_1);
                        } catch (Exception v1) {
                            Object[] v3_2 = new Object[1];
                            v3_2[0] = v1.getMessage();
                            com.millennialmedia.android.MMSDK$Log.e("There was an exception with the ad request. %s", v3_2);
                            v1.printStackTrace();
                        }
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i("The server is no longer allowing ads.");
                        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
                    }
                } else {
                    com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(3));
                    com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(3));
                }
            } else {
                com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(25));
            com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(25));
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.requestAdInternal():


    private void requestAdInternal(com.millennialmedia.android.MMAdImpl p4)
    {
        if (p4.apid != null) {
            if ((p4.isBanner()) || (!this.isDownloadingCachedAd(p4))) {
                try {
                    if (this.requestAdRunnable == null) {
                        this.requestAdRunnable = new com.millennialmedia.android.MMAdImplController$RequestAdRunnable(this, 0);
                        com.millennialmedia.android.Utils$ThreadUtils.execute(this.requestAdRunnable);
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i(com.millennialmedia.android.MMException.getErrorCodeMessage(12));
                        com.millennialmedia.android.MMSDK$Event.requestFailed(p4, new com.millennialmedia.android.MMException(12));
                    }
                } catch (com.millennialmedia.android.MMAdImplController$RequestAdRunnable v1_8) {
                    throw v1_8;
                }
            }
        } else {
            com.millennialmedia.android.MMException v0_1 = new com.millennialmedia.android.MMException("MMAdView found with a null apid. New ad requests on this MMAdView are disabled until an apid has been assigned.", 1);
            com.millennialmedia.android.MMSDK$Log.e(v0_1);
            com.millennialmedia.android.MMSDK$Event.requestFailed(p4, v0_1);
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.isDownloadingCachedAd():


    private declared_synchronized boolean isDownloadingCachedAd(com.millennialmedia.android.MMAdImpl p6)
    {
        int v2_0 = 1;
        try {
            android.content.Context v0 = p6.getContext();
        } catch (int v2_2) {
            throw v2_2;
        }
        if (!com.millennialmedia.android.HandShake.sharedHandShake(v0).isAdTypeDownloading(p6.adType)) {
            com.millennialmedia.android.MMSDK$Log.d("No download in progress.");
            com.millennialmedia.android.CachedAd v1 = com.millennialmedia.android.AdCache.loadIncompleteDownload(v0, p6.getCachedName());
            if (v1 == null) {
                com.millennialmedia.android.MMSDK$Log.i("No incomplete downloads.");
                v2_0 = 0;
            } else {
                com.millennialmedia.android.MMSDK$Log.i("Last ad wasn\'t fully downloaded. Download again.");
                com.millennialmedia.android.MMSDK$Event.fetchStartedCaching(p6);
                com.millennialmedia.android.AdCache.startDownloadTask(v0, p6.getCachedName(), v1, this);
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.i("There is a download in progress. Defering call for new ad");
            com.millennialmedia.android.MMSDK$Event.requestFailed(p6, new com.millennialmedia.android.MMException(12));
        }
        return v2_0;
    }

Method com.millennialmedia.android.MMSDK$Event.fetchStartedCaching():


    static void fetchStartedCaching(com.millennialmedia.android.MMAdImpl p4)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$2(p4));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p4.getContext(), new android.content.Intent("millennialmedia.action.ACTION_FETCH_STARTED_CACHING"), p4.internalId);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.action.ACTION_FETCH_STARTED_CACHING' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdImplController;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'requestAdInternal', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'isDownloadingCachedAd', '(Lcom/millennialmedia/android/MMAdImpl;)Z'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'fetchStartedCaching', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_FETCH_STARTED_CACHING to construct an Intent

Method com.millennialmedia.android.MMAdImplController.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImpl v0_1 = ((com.millennialmedia.android.MMAdImpl) this.adImplRef.get());
        if (v0_1 != null) {
            if (v0_1.isRefreshable()) {
                if (com.millennialmedia.android.MMSDK.isUiThread()) {
                    if (!com.millennialmedia.android.HandShake.sharedHandShake(v0_1.getContext()).kill) {
                        try {
                            com.millennialmedia.android.MMSDK$Log.d("adLayout - requestAd");
                            this.requestAdInternal(v0_1);
                        } catch (Exception v1) {
                            Object[] v3_2 = new Object[1];
                            v3_2[0] = v1.getMessage();
                            com.millennialmedia.android.MMSDK$Log.e("There was an exception with the ad request. %s", v3_2);
                            v1.printStackTrace();
                        }
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i("The server is no longer allowing ads.");
                        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
                    }
                } else {
                    com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(3));
                    com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(3));
                }
            } else {
                com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(25));
            com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(25));
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.requestAdInternal():


    private void requestAdInternal(com.millennialmedia.android.MMAdImpl p4)
    {
        if (p4.apid != null) {
            if ((p4.isBanner()) || (!this.isDownloadingCachedAd(p4))) {
                try {
                    if (this.requestAdRunnable == null) {
                        this.requestAdRunnable = new com.millennialmedia.android.MMAdImplController$RequestAdRunnable(this, 0);
                        com.millennialmedia.android.Utils$ThreadUtils.execute(this.requestAdRunnable);
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i(com.millennialmedia.android.MMException.getErrorCodeMessage(12));
                        com.millennialmedia.android.MMSDK$Event.requestFailed(p4, new com.millennialmedia.android.MMException(12));
                    }
                } catch (com.millennialmedia.android.MMAdImplController$RequestAdRunnable v1_8) {
                    throw v1_8;
                }
            }
        } else {
            com.millennialmedia.android.MMException v0_1 = new com.millennialmedia.android.MMException("MMAdView found with a null apid. New ad requests on this MMAdView are disabled until an apid has been assigned.", 1);
            com.millennialmedia.android.MMSDK$Log.e(v0_1);
            com.millennialmedia.android.MMSDK$Event.requestFailed(p4, v0_1);
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.isDownloadingCachedAd():


    private declared_synchronized boolean isDownloadingCachedAd(com.millennialmedia.android.MMAdImpl p6)
    {
        int v2_0 = 1;
        try {
            android.content.Context v0 = p6.getContext();
        } catch (int v2_2) {
            throw v2_2;
        }
        if (!com.millennialmedia.android.HandShake.sharedHandShake(v0).isAdTypeDownloading(p6.adType)) {
            com.millennialmedia.android.MMSDK$Log.d("No download in progress.");
            com.millennialmedia.android.CachedAd v1 = com.millennialmedia.android.AdCache.loadIncompleteDownload(v0, p6.getCachedName());
            if (v1 == null) {
                com.millennialmedia.android.MMSDK$Log.i("No incomplete downloads.");
                v2_0 = 0;
            } else {
                com.millennialmedia.android.MMSDK$Log.i("Last ad wasn\'t fully downloaded. Download again.");
                com.millennialmedia.android.MMSDK$Event.fetchStartedCaching(p6);
                com.millennialmedia.android.AdCache.startDownloadTask(v0, p6.getCachedName(), v1, this);
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.i("There is a download in progress. Defering call for new ad");
            com.millennialmedia.android.MMSDK$Event.requestFailed(p6, new com.millennialmedia.android.MMException(12));
        }
        return v2_0;
    }

Method com.millennialmedia.android.MMSDK$Event.fetchStartedCaching():


    static void fetchStartedCaching(com.millennialmedia.android.MMAdImpl p4)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$2(p4));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p4.getContext(), new android.content.Intent("millennialmedia.action.ACTION_FETCH_STARTED_CACHING"), p4.internalId);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdImplController;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.MMAdImplController.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImpl v0_1 = ((com.millennialmedia.android.MMAdImpl) this.adImplRef.get());
        if (v0_1 != null) {
            if (v0_1.isRefreshable()) {
                if (com.millennialmedia.android.MMSDK.isUiThread()) {
                    if (!com.millennialmedia.android.HandShake.sharedHandShake(v0_1.getContext()).kill) {
                        try {
                            com.millennialmedia.android.MMSDK$Log.d("adLayout - requestAd");
                            this.requestAdInternal(v0_1);
                        } catch (Exception v1) {
                            Object[] v3_2 = new Object[1];
                            v3_2[0] = v1.getMessage();
                            com.millennialmedia.android.MMSDK$Log.e("There was an exception with the ad request. %s", v3_2);
                            v1.printStackTrace();
                        }
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i("The server is no longer allowing ads.");
                        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
                    }
                } else {
                    com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(3));
                    com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(3));
                }
            } else {
                com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(25));
            com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(25));
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_FETCH_FAILED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdImplController;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_FETCH_FAILED to construct an Intent

Method com.millennialmedia.android.MMAdImplController.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImpl v0_1 = ((com.millennialmedia.android.MMAdImpl) this.adImplRef.get());
        if (v0_1 != null) {
            if (v0_1.isRefreshable()) {
                if (com.millennialmedia.android.MMSDK.isUiThread()) {
                    if (!com.millennialmedia.android.HandShake.sharedHandShake(v0_1.getContext()).kill) {
                        try {
                            com.millennialmedia.android.MMSDK$Log.d("adLayout - requestAd");
                            this.requestAdInternal(v0_1);
                        } catch (Exception v1) {
                            Object[] v3_2 = new Object[1];
                            v3_2[0] = v1.getMessage();
                            com.millennialmedia.android.MMSDK$Log.e("There was an exception with the ad request. %s", v3_2);
                            v1.printStackTrace();
                        }
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i("The server is no longer allowing ads.");
                        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
                    }
                } else {
                    com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(3));
                    com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(3));
                }
            } else {
                com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(25));
            com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(25));
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.action.ACTION_FETCH_SUCCEEDED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdImplController;', 'downloadCompleted', '(Lcom/millennialmedia/android/CachedAd; Z)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestCompleted', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_FETCH_SUCCEEDED to construct an Intent

Method com.millennialmedia.android.MMAdImplController.downloadCompleted():


    public void downloadCompleted(com.millennialmedia.android.CachedAd p5, boolean p6)
    {
        com.millennialmedia.android.MMAdImpl v0_1 = ((com.millennialmedia.android.MMAdImpl) this.adImplRef.get());
        if (v0_1 != null) {
            if (p6) {
                com.millennialmedia.android.AdCache.setNextCachedAd(v0_1.getContext(), v0_1.getCachedName(), p5.getId());
            }
            if (!p6) {
                com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(15));
            } else {
                com.millennialmedia.android.MMSDK$Event.requestCompleted(v0_1);
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(25));
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.requestCompleted():


    static void requestCompleted(com.millennialmedia.android.MMAdImpl p5)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$4(p5));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestCompletedAction()), p5.internalId);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdImplController;', 'downloadCompleted', '(Lcom/millennialmedia/android/CachedAd; Z)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.MMAdImplController.downloadCompleted():


    public void downloadCompleted(com.millennialmedia.android.CachedAd p5, boolean p6)
    {
        com.millennialmedia.android.MMAdImpl v0_1 = ((com.millennialmedia.android.MMAdImpl) this.adImplRef.get());
        if (v0_1 != null) {
            if (p6) {
                com.millennialmedia.android.AdCache.setNextCachedAd(v0_1.getContext(), v0_1.getCachedName(), p5.getId());
            }
            if (!p6) {
                com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(15));
            } else {
                com.millennialmedia.android.MMSDK$Event.requestCompleted(v0_1);
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(25));
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_FETCH_FAILED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdImplController;', 'downloadCompleted', '(Lcom/millennialmedia/android/CachedAd; Z)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_FETCH_FAILED to construct an Intent

Method com.millennialmedia.android.MMAdImplController.downloadCompleted():


    public void downloadCompleted(com.millennialmedia.android.CachedAd p5, boolean p6)
    {
        com.millennialmedia.android.MMAdImpl v0_1 = ((com.millennialmedia.android.MMAdImpl) this.adImplRef.get());
        if (v0_1 != null) {
            if (p6) {
                com.millennialmedia.android.AdCache.setNextCachedAd(v0_1.getContext(), v0_1.getCachedName(), p5.getId());
            }
            if (!p6) {
                com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(15));
            } else {
                com.millennialmedia.android.MMSDK$Event.requestCompleted(v0_1);
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(25));
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.action.ACTION_OVERLAY_OPENED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdImplController;', 'display', '(Lcom/millennialmedia/android/MMAdImpl;)I'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'displayStarted', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayOpened', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayOpenedBroadCast', '(Landroid/content/Context; J)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_OVERLAY_OPENED to construct an Intent

Method com.millennialmedia.android.MMAdImplController.display():


    int display(com.millennialmedia.android.MMAdImpl p5)
    {
        int v1_2;
        com.millennialmedia.android.CachedAd v0 = com.millennialmedia.android.AdCache.loadNextCachedAd(p5.getContext(), p5.getCachedName());
        if (v0 == null) {
            v1_2 = 20;
        } else {
            if (!v0.canShow(p5.getContext(), p5, 1)) {
                v1_2 = this.checkReason(p5, v0);
            } else {
                com.millennialmedia.android.MMSDK$Event.displayStarted(p5);
                com.millennialmedia.android.AdCache.setNextCachedAd(p5.getContext(), p5.getCachedName(), 0);
                v0.show(p5.getContext(), p5.internalId);
                com.millennialmedia.android.HandShake.sharedHandShake(p5.getContext()).updateLastVideoViewedTime(p5.getContext(), p5.adType);
                v1_2 = 0;
            }
        }
        return v1_2;
    }

Method com.millennialmedia.android.MMSDK$Event.displayStarted():


    static void displayStarted(com.millennialmedia.android.MMAdImpl p4)
    {
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p4.getContext(), new android.content.Intent("millennialmedia.action.ACTION_DISPLAY_STARTED"), p4.internalId);
        }
        com.millennialmedia.android.MMSDK$Event.overlayOpened(p4);
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayOpened():


    static void overlayOpened(com.millennialmedia.android.MMAdImpl p3)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$3(p3));
        com.millennialmedia.android.MMSDK$Event.overlayOpenedBroadCast(p3.getContext(), p3.internalId);
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayOpenedBroadCast():


    static void overlayOpenedBroadCast(android.content.Context p2, long p3)
    {
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_OVERLAY_OPENED"), p3);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdImplController;', 'display', '(Lcom/millennialmedia/android/MMAdImpl;)I'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'displayStarted', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayOpened', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayOpenedBroadCast', '(Landroid/content/Context; J)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.MMAdImplController.display():


    int display(com.millennialmedia.android.MMAdImpl p5)
    {
        int v1_2;
        com.millennialmedia.android.CachedAd v0 = com.millennialmedia.android.AdCache.loadNextCachedAd(p5.getContext(), p5.getCachedName());
        if (v0 == null) {
            v1_2 = 20;
        } else {
            if (!v0.canShow(p5.getContext(), p5, 1)) {
                v1_2 = this.checkReason(p5, v0);
            } else {
                com.millennialmedia.android.MMSDK$Event.displayStarted(p5);
                com.millennialmedia.android.AdCache.setNextCachedAd(p5.getContext(), p5.getCachedName(), 0);
                v0.show(p5.getContext(), p5.internalId);
                com.millennialmedia.android.HandShake.sharedHandShake(p5.getContext()).updateLastVideoViewedTime(p5.getContext(), p5.adType);
                v1_2 = 0;
            }
        }
        return v1_2;
    }

Method com.millennialmedia.android.MMSDK$Event.displayStarted():


    static void displayStarted(com.millennialmedia.android.MMAdImpl p4)
    {
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p4.getContext(), new android.content.Intent("millennialmedia.action.ACTION_DISPLAY_STARTED"), p4.internalId);
        }
        com.millennialmedia.android.MMSDK$Event.overlayOpened(p4);
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayOpened():


    static void overlayOpened(com.millennialmedia.android.MMAdImpl p3)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$3(p3));
        com.millennialmedia.android.MMSDK$Event.overlayOpenedBroadCast(p3.getContext(), p3.internalId);
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayOpenedBroadCast():


    static void overlayOpenedBroadCast(android.content.Context p2, long p3)
    {
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_OVERLAY_OPENED"), p3);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_DISPLAY_STARTED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdImplController;', 'display', '(Lcom/millennialmedia/android/MMAdImpl;)I'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'displayStarted', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_DISPLAY_STARTED to construct an Intent

Method com.millennialmedia.android.MMAdImplController.display():


    int display(com.millennialmedia.android.MMAdImpl p5)
    {
        int v1_2;
        com.millennialmedia.android.CachedAd v0 = com.millennialmedia.android.AdCache.loadNextCachedAd(p5.getContext(), p5.getCachedName());
        if (v0 == null) {
            v1_2 = 20;
        } else {
            if (!v0.canShow(p5.getContext(), p5, 1)) {
                v1_2 = this.checkReason(p5, v0);
            } else {
                com.millennialmedia.android.MMSDK$Event.displayStarted(p5);
                com.millennialmedia.android.AdCache.setNextCachedAd(p5.getContext(), p5.getCachedName(), 0);
                v0.show(p5.getContext(), p5.internalId);
                com.millennialmedia.android.HandShake.sharedHandShake(p5.getContext()).updateLastVideoViewedTime(p5.getContext(), p5.adType);
                v1_2 = 0;
            }
        }
        return v1_2;
    }

Method com.millennialmedia.android.MMSDK$Event.displayStarted():


    static void displayStarted(com.millennialmedia.android.MMAdImpl p4)
    {
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p4.getContext(), new android.content.Intent("millennialmedia.action.ACTION_DISPLAY_STARTED"), p4.internalId);
        }
        com.millennialmedia.android.MMSDK$Event.overlayOpened(p4);
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.action.ACTION_FETCH_STARTED_CACHING' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdImplController;', 'requestAdInternal', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'isDownloadingCachedAd', '(Lcom/millennialmedia/android/MMAdImpl;)Z'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'fetchStartedCaching', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_FETCH_STARTED_CACHING to construct an Intent

Method com.millennialmedia.android.MMAdImplController.requestAdInternal():


    private void requestAdInternal(com.millennialmedia.android.MMAdImpl p4)
    {
        if (p4.apid != null) {
            if ((p4.isBanner()) || (!this.isDownloadingCachedAd(p4))) {
                try {
                    if (this.requestAdRunnable == null) {
                        this.requestAdRunnable = new com.millennialmedia.android.MMAdImplController$RequestAdRunnable(this, 0);
                        com.millennialmedia.android.Utils$ThreadUtils.execute(this.requestAdRunnable);
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i(com.millennialmedia.android.MMException.getErrorCodeMessage(12));
                        com.millennialmedia.android.MMSDK$Event.requestFailed(p4, new com.millennialmedia.android.MMException(12));
                    }
                } catch (com.millennialmedia.android.MMAdImplController$RequestAdRunnable v1_8) {
                    throw v1_8;
                }
            }
        } else {
            com.millennialmedia.android.MMException v0_1 = new com.millennialmedia.android.MMException("MMAdView found with a null apid. New ad requests on this MMAdView are disabled until an apid has been assigned.", 1);
            com.millennialmedia.android.MMSDK$Log.e(v0_1);
            com.millennialmedia.android.MMSDK$Event.requestFailed(p4, v0_1);
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.isDownloadingCachedAd():


    private declared_synchronized boolean isDownloadingCachedAd(com.millennialmedia.android.MMAdImpl p6)
    {
        int v2_0 = 1;
        try {
            android.content.Context v0 = p6.getContext();
        } catch (int v2_2) {
            throw v2_2;
        }
        if (!com.millennialmedia.android.HandShake.sharedHandShake(v0).isAdTypeDownloading(p6.adType)) {
            com.millennialmedia.android.MMSDK$Log.d("No download in progress.");
            com.millennialmedia.android.CachedAd v1 = com.millennialmedia.android.AdCache.loadIncompleteDownload(v0, p6.getCachedName());
            if (v1 == null) {
                com.millennialmedia.android.MMSDK$Log.i("No incomplete downloads.");
                v2_0 = 0;
            } else {
                com.millennialmedia.android.MMSDK$Log.i("Last ad wasn\'t fully downloaded. Download again.");
                com.millennialmedia.android.MMSDK$Event.fetchStartedCaching(p6);
                com.millennialmedia.android.AdCache.startDownloadTask(v0, p6.getCachedName(), v1, this);
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.i("There is a download in progress. Defering call for new ad");
            com.millennialmedia.android.MMSDK$Event.requestFailed(p6, new com.millennialmedia.android.MMException(12));
        }
        return v2_0;
    }

Method com.millennialmedia.android.MMSDK$Event.fetchStartedCaching():


    static void fetchStartedCaching(com.millennialmedia.android.MMAdImpl p4)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$2(p4));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p4.getContext(), new android.content.Intent("millennialmedia.action.ACTION_FETCH_STARTED_CACHING"), p4.internalId);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdImplController;', 'requestAdInternal', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.MMAdImplController.requestAdInternal():


    private void requestAdInternal(com.millennialmedia.android.MMAdImpl p4)
    {
        if (p4.apid != null) {
            if ((p4.isBanner()) || (!this.isDownloadingCachedAd(p4))) {
                try {
                    if (this.requestAdRunnable == null) {
                        this.requestAdRunnable = new com.millennialmedia.android.MMAdImplController$RequestAdRunnable(this, 0);
                        com.millennialmedia.android.Utils$ThreadUtils.execute(this.requestAdRunnable);
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i(com.millennialmedia.android.MMException.getErrorCodeMessage(12));
                        com.millennialmedia.android.MMSDK$Event.requestFailed(p4, new com.millennialmedia.android.MMException(12));
                    }
                } catch (com.millennialmedia.android.MMAdImplController$RequestAdRunnable v1_8) {
                    throw v1_8;
                }
            }
        } else {
            com.millennialmedia.android.MMException v0_1 = new com.millennialmedia.android.MMException("MMAdView found with a null apid. New ad requests on this MMAdView are disabled until an apid has been assigned.", 1);
            com.millennialmedia.android.MMSDK$Log.e(v0_1);
            com.millennialmedia.android.MMSDK$Event.requestFailed(p4, v0_1);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_FETCH_FAILED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdImplController;', 'requestAdInternal', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_FETCH_FAILED to construct an Intent

Method com.millennialmedia.android.MMAdImplController.requestAdInternal():


    private void requestAdInternal(com.millennialmedia.android.MMAdImpl p4)
    {
        if (p4.apid != null) {
            if ((p4.isBanner()) || (!this.isDownloadingCachedAd(p4))) {
                try {
                    if (this.requestAdRunnable == null) {
                        this.requestAdRunnable = new com.millennialmedia.android.MMAdImplController$RequestAdRunnable(this, 0);
                        com.millennialmedia.android.Utils$ThreadUtils.execute(this.requestAdRunnable);
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i(com.millennialmedia.android.MMException.getErrorCodeMessage(12));
                        com.millennialmedia.android.MMSDK$Event.requestFailed(p4, new com.millennialmedia.android.MMException(12));
                    }
                } catch (com.millennialmedia.android.MMAdImplController$RequestAdRunnable v1_8) {
                    throw v1_8;
                }
            }
        } else {
            com.millennialmedia.android.MMException v0_1 = new com.millennialmedia.android.MMException("MMAdView found with a null apid. New ad requests on this MMAdView are disabled until an apid has been assigned.", 1);
            com.millennialmedia.android.MMSDK$Log.e(v0_1);
            com.millennialmedia.android.MMSDK$Event.requestFailed(p4, v0_1);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.action.ACTION_FETCH_FAILED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdImplController;', 'isDownloadingCachedAd', '(Lcom/millennialmedia/android/MMAdImpl;)Z'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_FETCH_FAILED to construct an Intent

Method com.millennialmedia.android.MMAdImplController.isDownloadingCachedAd():


    private declared_synchronized boolean isDownloadingCachedAd(com.millennialmedia.android.MMAdImpl p6)
    {
        int v2_0 = 1;
        try {
            android.content.Context v0 = p6.getContext();
        } catch (int v2_2) {
            throw v2_2;
        }
        if (!com.millennialmedia.android.HandShake.sharedHandShake(v0).isAdTypeDownloading(p6.adType)) {
            com.millennialmedia.android.MMSDK$Log.d("No download in progress.");
            com.millennialmedia.android.CachedAd v1 = com.millennialmedia.android.AdCache.loadIncompleteDownload(v0, p6.getCachedName());
            if (v1 == null) {
                com.millennialmedia.android.MMSDK$Log.i("No incomplete downloads.");
                v2_0 = 0;
            } else {
                com.millennialmedia.android.MMSDK$Log.i("Last ad wasn\'t fully downloaded. Download again.");
                com.millennialmedia.android.MMSDK$Event.fetchStartedCaching(p6);
                com.millennialmedia.android.AdCache.startDownloadTask(v0, p6.getCachedName(), v1, this);
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.i("There is a download in progress. Defering call for new ad");
            com.millennialmedia.android.MMSDK$Event.requestFailed(p6, new com.millennialmedia.android.MMException(12));
        }
        return v2_0;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdImplController;', 'isDownloadingCachedAd', '(Lcom/millennialmedia/android/MMAdImpl;)Z'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.MMAdImplController.isDownloadingCachedAd():


    private declared_synchronized boolean isDownloadingCachedAd(com.millennialmedia.android.MMAdImpl p6)
    {
        int v2_0 = 1;
        try {
            android.content.Context v0 = p6.getContext();
        } catch (int v2_2) {
            throw v2_2;
        }
        if (!com.millennialmedia.android.HandShake.sharedHandShake(v0).isAdTypeDownloading(p6.adType)) {
            com.millennialmedia.android.MMSDK$Log.d("No download in progress.");
            com.millennialmedia.android.CachedAd v1 = com.millennialmedia.android.AdCache.loadIncompleteDownload(v0, p6.getCachedName());
            if (v1 == null) {
                com.millennialmedia.android.MMSDK$Log.i("No incomplete downloads.");
                v2_0 = 0;
            } else {
                com.millennialmedia.android.MMSDK$Log.i("Last ad wasn\'t fully downloaded. Download again.");
                com.millennialmedia.android.MMSDK$Event.fetchStartedCaching(p6);
                com.millennialmedia.android.AdCache.startDownloadTask(v0, p6.getCachedName(), v1, this);
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.i("There is a download in progress. Defering call for new ad");
            com.millennialmedia.android.MMSDK$Event.requestFailed(p6, new com.millennialmedia.android.MMException(12));
        }
        return v2_0;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_FETCH_STARTED_CACHING' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdImplController;', 'isDownloadingCachedAd', '(Lcom/millennialmedia/android/MMAdImpl;)Z'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'fetchStartedCaching', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_FETCH_STARTED_CACHING to construct an Intent

Method com.millennialmedia.android.MMAdImplController.isDownloadingCachedAd():


    private declared_synchronized boolean isDownloadingCachedAd(com.millennialmedia.android.MMAdImpl p6)
    {
        int v2_0 = 1;
        try {
            android.content.Context v0 = p6.getContext();
        } catch (int v2_2) {
            throw v2_2;
        }
        if (!com.millennialmedia.android.HandShake.sharedHandShake(v0).isAdTypeDownloading(p6.adType)) {
            com.millennialmedia.android.MMSDK$Log.d("No download in progress.");
            com.millennialmedia.android.CachedAd v1 = com.millennialmedia.android.AdCache.loadIncompleteDownload(v0, p6.getCachedName());
            if (v1 == null) {
                com.millennialmedia.android.MMSDK$Log.i("No incomplete downloads.");
                v2_0 = 0;
            } else {
                com.millennialmedia.android.MMSDK$Log.i("Last ad wasn\'t fully downloaded. Download again.");
                com.millennialmedia.android.MMSDK$Event.fetchStartedCaching(p6);
                com.millennialmedia.android.AdCache.startDownloadTask(v0, p6.getCachedName(), v1, this);
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.i("There is a download in progress. Defering call for new ad");
            com.millennialmedia.android.MMSDK$Event.requestFailed(p6, new com.millennialmedia.android.MMException(12));
        }
        return v2_0;
    }

Method com.millennialmedia.android.MMSDK$Event.fetchStartedCaching():


    static void fetchStartedCaching(com.millennialmedia.android.MMAdImpl p4)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$2(p4));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p4.getContext(), new android.content.Intent("millennialmedia.action.ACTION_FETCH_STARTED_CACHING"), p4.internalId);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.action.ACTION_FETCH_STARTED_CACHING' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdImpl;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'requestAdInternal', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'isDownloadingCachedAd', '(Lcom/millennialmedia/android/MMAdImpl;)Z'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'fetchStartedCaching', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_FETCH_STARTED_CACHING to construct an Intent

Method com.millennialmedia.android.MMAdImpl.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImplController.assignAdViewController(this);
        if (this.controller != null) {
            this.controller.requestAd();
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImpl v0_1 = ((com.millennialmedia.android.MMAdImpl) this.adImplRef.get());
        if (v0_1 != null) {
            if (v0_1.isRefreshable()) {
                if (com.millennialmedia.android.MMSDK.isUiThread()) {
                    if (!com.millennialmedia.android.HandShake.sharedHandShake(v0_1.getContext()).kill) {
                        try {
                            com.millennialmedia.android.MMSDK$Log.d("adLayout - requestAd");
                            this.requestAdInternal(v0_1);
                        } catch (Exception v1) {
                            Object[] v3_2 = new Object[1];
                            v3_2[0] = v1.getMessage();
                            com.millennialmedia.android.MMSDK$Log.e("There was an exception with the ad request. %s", v3_2);
                            v1.printStackTrace();
                        }
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i("The server is no longer allowing ads.");
                        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
                    }
                } else {
                    com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(3));
                    com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(3));
                }
            } else {
                com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(25));
            com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(25));
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.requestAdInternal():


    private void requestAdInternal(com.millennialmedia.android.MMAdImpl p4)
    {
        if (p4.apid != null) {
            if ((p4.isBanner()) || (!this.isDownloadingCachedAd(p4))) {
                try {
                    if (this.requestAdRunnable == null) {
                        this.requestAdRunnable = new com.millennialmedia.android.MMAdImplController$RequestAdRunnable(this, 0);
                        com.millennialmedia.android.Utils$ThreadUtils.execute(this.requestAdRunnable);
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i(com.millennialmedia.android.MMException.getErrorCodeMessage(12));
                        com.millennialmedia.android.MMSDK$Event.requestFailed(p4, new com.millennialmedia.android.MMException(12));
                    }
                } catch (com.millennialmedia.android.MMAdImplController$RequestAdRunnable v1_8) {
                    throw v1_8;
                }
            }
        } else {
            com.millennialmedia.android.MMException v0_1 = new com.millennialmedia.android.MMException("MMAdView found with a null apid. New ad requests on this MMAdView are disabled until an apid has been assigned.", 1);
            com.millennialmedia.android.MMSDK$Log.e(v0_1);
            com.millennialmedia.android.MMSDK$Event.requestFailed(p4, v0_1);
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.isDownloadingCachedAd():


    private declared_synchronized boolean isDownloadingCachedAd(com.millennialmedia.android.MMAdImpl p6)
    {
        int v2_0 = 1;
        try {
            android.content.Context v0 = p6.getContext();
        } catch (int v2_2) {
            throw v2_2;
        }
        if (!com.millennialmedia.android.HandShake.sharedHandShake(v0).isAdTypeDownloading(p6.adType)) {
            com.millennialmedia.android.MMSDK$Log.d("No download in progress.");
            com.millennialmedia.android.CachedAd v1 = com.millennialmedia.android.AdCache.loadIncompleteDownload(v0, p6.getCachedName());
            if (v1 == null) {
                com.millennialmedia.android.MMSDK$Log.i("No incomplete downloads.");
                v2_0 = 0;
            } else {
                com.millennialmedia.android.MMSDK$Log.i("Last ad wasn\'t fully downloaded. Download again.");
                com.millennialmedia.android.MMSDK$Event.fetchStartedCaching(p6);
                com.millennialmedia.android.AdCache.startDownloadTask(v0, p6.getCachedName(), v1, this);
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.i("There is a download in progress. Defering call for new ad");
            com.millennialmedia.android.MMSDK$Event.requestFailed(p6, new com.millennialmedia.android.MMException(12));
        }
        return v2_0;
    }

Method com.millennialmedia.android.MMSDK$Event.fetchStartedCaching():


    static void fetchStartedCaching(com.millennialmedia.android.MMAdImpl p4)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$2(p4));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p4.getContext(), new android.content.Intent("millennialmedia.action.ACTION_FETCH_STARTED_CACHING"), p4.internalId);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.action.ACTION_FETCH_FAILED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdImpl;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_FETCH_FAILED to construct an Intent

Method com.millennialmedia.android.MMAdImpl.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImplController.assignAdViewController(this);
        if (this.controller != null) {
            this.controller.requestAd();
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImpl v0_1 = ((com.millennialmedia.android.MMAdImpl) this.adImplRef.get());
        if (v0_1 != null) {
            if (v0_1.isRefreshable()) {
                if (com.millennialmedia.android.MMSDK.isUiThread()) {
                    if (!com.millennialmedia.android.HandShake.sharedHandShake(v0_1.getContext()).kill) {
                        try {
                            com.millennialmedia.android.MMSDK$Log.d("adLayout - requestAd");
                            this.requestAdInternal(v0_1);
                        } catch (Exception v1) {
                            Object[] v3_2 = new Object[1];
                            v3_2[0] = v1.getMessage();
                            com.millennialmedia.android.MMSDK$Log.e("There was an exception with the ad request. %s", v3_2);
                            v1.printStackTrace();
                        }
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i("The server is no longer allowing ads.");
                        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
                    }
                } else {
                    com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(3));
                    com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(3));
                }
            } else {
                com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(25));
            com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(25));
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdImpl;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.MMAdImpl.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImplController.assignAdViewController(this);
        if (this.controller != null) {
            this.controller.requestAd();
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImpl v0_1 = ((com.millennialmedia.android.MMAdImpl) this.adImplRef.get());
        if (v0_1 != null) {
            if (v0_1.isRefreshable()) {
                if (com.millennialmedia.android.MMSDK.isUiThread()) {
                    if (!com.millennialmedia.android.HandShake.sharedHandShake(v0_1.getContext()).kill) {
                        try {
                            com.millennialmedia.android.MMSDK$Log.d("adLayout - requestAd");
                            this.requestAdInternal(v0_1);
                        } catch (Exception v1) {
                            Object[] v3_2 = new Object[1];
                            v3_2[0] = v1.getMessage();
                            com.millennialmedia.android.MMSDK$Log.e("There was an exception with the ad request. %s", v3_2);
                            v1.printStackTrace();
                        }
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i("The server is no longer allowing ads.");
                        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
                    }
                } else {
                    com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(3));
                    com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(3));
                }
            } else {
                com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(25));
            com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(25));
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'com.millennialmedia.android.AdViewOverlayActivity' ==>>> Sink '['Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;', '1', 'IPC_SINK']' [[('Lcom/millennialmedia/android/InterstitialAd;', 'show', '(Landroid/content/Context; J)V'), ('Lcom/millennialmedia/android/Utils$IntentUtils;', 'startAdViewOverlayActivity', '(Landroid/content/Context; Landroid/content/Intent;)V'), ('Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value com.millennialmedia.android.AdViewOverlayActivity to construct an Intent

Method com.millennialmedia.android.InterstitialAd.show():


    void show(android.content.Context p2, long p3)
    {
        com.millennialmedia.android.Utils$IntentUtils.startAdViewOverlayActivity(p2, this.getExpandExtrasIntent(p2, p3));
        return;
    }

Method com.millennialmedia.android.Utils$IntentUtils.startAdViewOverlayActivity():


    static void startAdViewOverlayActivity(android.content.Context p2, android.content.Intent p3)
    {
        p3.setClass(p2, com.millennialmedia.android.MMActivity);
        p3.putExtra("class", "com.millennialmedia.android.AdViewOverlayActivity");
        com.millennialmedia.android.Utils$IntentUtils.startActivity(p2, p3);
        return;
    }

Method android.content.Intent.putExtra() not found.

[TAINT] String 'com.millennialmedia.android.VideoPlayerActivity' ==>>> Sink '['Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;', '1', 'IPC_SINK']' [[('Lcom/millennialmedia/android/BridgeMMMedia;', 'playVideo', '(Ljava/util/HashMap;)Lcom/millennialmedia/android/MMJSResponse;'), ('Lcom/millennialmedia/android/Utils$IntentUtils;', 'startVideoPlayerActivityWithData', '(Landroid/content/Context; Ljava/lang/String;)V'), ('Lcom/millennialmedia/android/Utils$IntentUtils;', 'startVideoPlayerActivityWithData', '(Landroid/content/Context; Landroid/net/Uri;)V'), ('Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value com.millennialmedia.android.VideoPlayerActivity to construct an Intent

Method com.millennialmedia.android.BridgeMMMedia.playVideo():


    public com.millennialmedia.android.MMJSResponse playVideo(java.util.HashMap p5)
    {
        com.millennialmedia.android.MMJSResponse v3_4;
        android.content.Context v0_1 = ((android.content.Context) this.contextRef.get());
        String v2_1 = ((String) p5.get("path"));
        if ((v0_1 == null) || (v2_1 == null)) {
            v3_4 = 0;
        } else {
            if (!v2_1.startsWith("http")) {
                java.io.File v1 = com.millennialmedia.android.AdCache.getDownloadFile(v0_1, v2_1);
                if (!v1.exists()) {
                } else {
                    com.millennialmedia.android.Utils$IntentUtils.startVideoPlayerActivityWithData(v0_1, v1);
                    v3_4 = com.millennialmedia.android.MMJSResponse.responseWithSuccess(v1.getName());
                }
            } else {
                com.millennialmedia.android.Utils$IntentUtils.startVideoPlayerActivityWithData(v0_1, v2_1);
                v3_4 = com.millennialmedia.android.MMJSResponse.responseWithSuccess(v2_1);
            }
        }
        return v3_4;
    }

Method com.millennialmedia.android.Utils$IntentUtils.startVideoPlayerActivityWithData():


    static void startVideoPlayerActivityWithData(android.content.Context p1, String p2)
    {
        com.millennialmedia.android.Utils$IntentUtils.startVideoPlayerActivityWithData(p1, android.net.Uri.parse(p2));
        return;
    }

Method com.millennialmedia.android.Utils$IntentUtils.startVideoPlayerActivityWithData():


    static void startVideoPlayerActivityWithData(android.content.Context p3, android.net.Uri p4)
    {
        android.content.Intent v0_1 = new android.content.Intent(p3, com.millennialmedia.android.MMActivity);
        v0_1.setData(p4);
        v0_1.putExtra("class", "com.millennialmedia.android.VideoPlayerActivity");
        com.millennialmedia.android.Utils$IntentUtils.startActivity(p3, v0_1);
        return;
    }

Method android.content.Intent.putExtra() not found.

[TAINT] String 'com.millennialmedia.android.AdViewOverlayActivity' ==>>> Sink '['Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;', '1', 'IPC_SINK']' [[('Lcom/millennialmedia/android/BridgeMMInterstitial;', 'show', '(Ljava/util/HashMap;)Lcom/millennialmedia/android/MMJSResponse;'), ('Lcom/millennialmedia/android/Utils$IntentUtils;', 'startAdViewOverlayActivityWithData', '(Landroid/content/Context; Ljava/lang/String;)V'), ('Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value com.millennialmedia.android.AdViewOverlayActivity to construct an Intent

Method com.millennialmedia.android.BridgeMMInterstitial.show():


    public com.millennialmedia.android.MMJSResponse show(java.util.HashMap p4)
    {
        com.millennialmedia.android.MMJSResponse v2_1;
        String v1_1 = ((String) p4.get("url"));
        android.content.Context v0_1 = ((android.content.Context) this.contextRef.get());
        if ((v1_1 == null) || (v0_1 == null)) {
            v2_1 = 0;
        } else {
            com.millennialmedia.android.Utils$IntentUtils.startAdViewOverlayActivityWithData(v0_1, v1_1);
            v2_1 = com.millennialmedia.android.MMJSResponse.responseWithSuccess();
        }
        return v2_1;
    }

Method com.millennialmedia.android.Utils$IntentUtils.startAdViewOverlayActivityWithData():


    static void startAdViewOverlayActivityWithData(android.content.Context p3, String p4)
    {
        android.content.Intent v0_1 = new android.content.Intent(p3, com.millennialmedia.android.MMActivity);
        v0_1.putExtra("class", "com.millennialmedia.android.AdViewOverlayActivity");
        v0_1.setData(android.net.Uri.parse(p4));
        com.millennialmedia.android.Utils$IntentUtils.startActivity(p3, v0_1);
        return;
    }

Method android.content.Intent.putExtra() not found.

[TAINT] String 'millennialmedia.action.ACTION_INTENT_STARTED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/BridgeMMInterstitial;', 'open', '(Ljava/util/HashMap;)Lcom/millennialmedia/android/MMJSResponse;'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'intentStarted', '(Landroid/content/Context; Ljava/lang/String; J)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_INTENT_STARTED to construct an Intent

Method com.millennialmedia.android.BridgeMMInterstitial.open():


    public com.millennialmedia.android.MMJSResponse open(java.util.HashMap p8)
    {
        com.millennialmedia.android.MMJSResponse v5_1;
        String v4_1 = ((String) p8.get("url"));
        android.content.Context v2_1 = ((android.content.Context) this.contextRef.get());
        if ((v4_1 == null) || (v2_1 == null)) {
            v5_1 = 0;
        } else {
            android.content.Intent v3_1 = new android.content.Intent("android.intent.action.VIEW", android.net.Uri.parse(v4_1));
            com.millennialmedia.android.MMSDK$Event.intentStarted(v2_1, "browser", this.getAdImplId(((String) p8.get("PROPERTY_EXPANDING"))));
            com.millennialmedia.android.Utils$IntentUtils.startActivity(v2_1, v3_1);
            v5_1 = com.millennialmedia.android.MMJSResponse.responseWithSuccess();
        }
        return v5_1;
    }

Method com.millennialmedia.android.MMSDK$Event.intentStarted():


    static void intentStarted(android.content.Context p2, String p3, long p4)
    {
        if ((com.millennialmedia.android.MMSDK.access$000()) && (p3 != null)) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_INTENT_STARTED").putExtra("intentType", p3), p4);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/BridgeMMInterstitial;', 'open', '(Ljava/util/HashMap;)Lcom/millennialmedia/android/MMJSResponse;'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'intentStarted', '(Landroid/content/Context; Ljava/lang/String; J)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.BridgeMMInterstitial.open():


    public com.millennialmedia.android.MMJSResponse open(java.util.HashMap p8)
    {
        com.millennialmedia.android.MMJSResponse v5_1;
        String v4_1 = ((String) p8.get("url"));
        android.content.Context v2_1 = ((android.content.Context) this.contextRef.get());
        if ((v4_1 == null) || (v2_1 == null)) {
            v5_1 = 0;
        } else {
            android.content.Intent v3_1 = new android.content.Intent("android.intent.action.VIEW", android.net.Uri.parse(v4_1));
            com.millennialmedia.android.MMSDK$Event.intentStarted(v2_1, "browser", this.getAdImplId(((String) p8.get("PROPERTY_EXPANDING"))));
            com.millennialmedia.android.Utils$IntentUtils.startActivity(v2_1, v3_1);
            v5_1 = com.millennialmedia.android.MMJSResponse.responseWithSuccess();
        }
        return v5_1;
    }

Method com.millennialmedia.android.MMSDK$Event.intentStarted():


    static void intentStarted(android.content.Context p2, String p3, long p4)
    {
        if ((com.millennialmedia.android.MMSDK.access$000()) && (p3 != null)) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_INTENT_STARTED").putExtra("intentType", p3), p4);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/BridgeMMInterstitial;', 'expandWithProperties', '(Ljava/util/HashMap;)Lcom/millennialmedia/android/MMJSResponse;'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayOpenedBroadCast', '(Landroid/content/Context; J)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.BridgeMMInterstitial.expandWithProperties():


    public com.millennialmedia.android.MMJSResponse expandWithProperties(java.util.HashMap p26)
    {
        Exception v21_20;
        String v9_1 = ((String) p26.get("PROPERTY_BANNER_TYPE"));
        if ((v9_1 == null) || (Boolean.parseBoolean(v9_1))) {
            String v18_1 = ((String) p26.get("url"));
            String v7_1 = ((String) p26.get("enableNativeAccelerometer"));
            String v17_1 = ((String) p26.get("transparent"));
            String v19_1 = ((String) p26.get("useCustomClose"));
            String v15_1 = ((String) p26.get("transition"));
            String v11_1 = ((String) p26.get("orientation"));
            String v16_1 = ((String) p26.get("transitionDuration"));
            String v8_1 = ((String) p26.get("height"));
            String v20_1 = ((String) p26.get("width"));
            String v10_1 = ((String) p26.get("modal"));
            String v6_1 = ((String) p26.get("PROPERTY_EXPANDING"));
            String v4_1 = ((String) p26.get("allowOrientationChange"));
            android.content.Context v5_1 = ((android.content.Context) this.contextRef.get());
            if (v5_1 == null) {
                v21_20 = 0;
            } else {
                com.millennialmedia.android.OverlaySettings v12_1 = new com.millennialmedia.android.OverlaySettings();
                if (v18_1 != null) {
                    v12_1.urlToLoad = v18_1;
                }
                if (v6_1 != null) {
                    v12_1.creatorAdImplId = ((long) ((int) Float.parseFloat(v6_1)));
                }
                if (v7_1 != null) {
                    v12_1.canAccelerate = Boolean.parseBoolean(v7_1);
                }
                if (v17_1 != null) {
                    v12_1.setIsTransparent(Boolean.parseBoolean(v17_1));
                }
                if (v19_1 != null) {
                    v12_1.setUseCustomClose(Boolean.parseBoolean(v19_1));
                }
                if (v15_1 != null) {
                    v12_1.setTransition(v15_1);
                }
                if (v4_1 != null) {
                    v12_1.allowOrientationChange = Boolean.parseBoolean(v4_1);
                }
                if (v11_1 == null) {
                    v11_1 = ((String) p26.get("forceOrientation"));
                }
                if (v11_1 != null) {
                    v12_1.orientation = v11_1;
                }
                if (v8_1 != null) {
                    v12_1.height = ((int) Float.parseFloat(v8_1));
                }
                if (v20_1 != null) {
                    v12_1.width = ((int) Float.parseFloat(v20_1));
                }
                if (v10_1 != null) {
                    v12_1.modal = Boolean.parseBoolean(v10_1);
                }
                if (v16_1 != null) {
                    try {
                        v12_1.setTransitionDurationInMillis((Long.parseLong(v16_1) * 1000));
                    } catch (Exception v21) {
                    }
                }
                com.millennialmedia.android.Utils$IntentUtils.startAdViewOverlayActivity(v5_1, this.getExpandExtrasIntent(v18_1, v12_1));
                com.millennialmedia.android.MMSDK$Event.overlayOpenedBroadCast(v5_1, this.getAdImplId(((String) p26.get("PROPERTY_EXPANDING"))));
                v21_20 = com.millennialmedia.android.MMJSResponse.responseWithSuccess();
            }
        } else {
            v21_20 = com.millennialmedia.android.MMJSResponse.responseWithError("Cannot expand a non banner ad");
        }
        return v21_20;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayOpenedBroadCast():


    static void overlayOpenedBroadCast(android.content.Context p2, long p3)
    {
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_OVERLAY_OPENED"), p3);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'com.millennialmedia.android.AdViewOverlayActivity' ==>>> Sink '['Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;', '1', 'IPC_SINK']' [[('Lcom/millennialmedia/android/BridgeMMInterstitial;', 'expandWithProperties', '(Ljava/util/HashMap;)Lcom/millennialmedia/android/MMJSResponse;'), ('Lcom/millennialmedia/android/Utils$IntentUtils;', 'startAdViewOverlayActivity', '(Landroid/content/Context; Landroid/content/Intent;)V'), ('Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value com.millennialmedia.android.AdViewOverlayActivity to construct an Intent

Method com.millennialmedia.android.BridgeMMInterstitial.expandWithProperties():


    public com.millennialmedia.android.MMJSResponse expandWithProperties(java.util.HashMap p26)
    {
        Exception v21_20;
        String v9_1 = ((String) p26.get("PROPERTY_BANNER_TYPE"));
        if ((v9_1 == null) || (Boolean.parseBoolean(v9_1))) {
            String v18_1 = ((String) p26.get("url"));
            String v7_1 = ((String) p26.get("enableNativeAccelerometer"));
            String v17_1 = ((String) p26.get("transparent"));
            String v19_1 = ((String) p26.get("useCustomClose"));
            String v15_1 = ((String) p26.get("transition"));
            String v11_1 = ((String) p26.get("orientation"));
            String v16_1 = ((String) p26.get("transitionDuration"));
            String v8_1 = ((String) p26.get("height"));
            String v20_1 = ((String) p26.get("width"));
            String v10_1 = ((String) p26.get("modal"));
            String v6_1 = ((String) p26.get("PROPERTY_EXPANDING"));
            String v4_1 = ((String) p26.get("allowOrientationChange"));
            android.content.Context v5_1 = ((android.content.Context) this.contextRef.get());
            if (v5_1 == null) {
                v21_20 = 0;
            } else {
                com.millennialmedia.android.OverlaySettings v12_1 = new com.millennialmedia.android.OverlaySettings();
                if (v18_1 != null) {
                    v12_1.urlToLoad = v18_1;
                }
                if (v6_1 != null) {
                    v12_1.creatorAdImplId = ((long) ((int) Float.parseFloat(v6_1)));
                }
                if (v7_1 != null) {
                    v12_1.canAccelerate = Boolean.parseBoolean(v7_1);
                }
                if (v17_1 != null) {
                    v12_1.setIsTransparent(Boolean.parseBoolean(v17_1));
                }
                if (v19_1 != null) {
                    v12_1.setUseCustomClose(Boolean.parseBoolean(v19_1));
                }
                if (v15_1 != null) {
                    v12_1.setTransition(v15_1);
                }
                if (v4_1 != null) {
                    v12_1.allowOrientationChange = Boolean.parseBoolean(v4_1);
                }
                if (v11_1 == null) {
                    v11_1 = ((String) p26.get("forceOrientation"));
                }
                if (v11_1 != null) {
                    v12_1.orientation = v11_1;
                }
                if (v8_1 != null) {
                    v12_1.height = ((int) Float.parseFloat(v8_1));
                }
                if (v20_1 != null) {
                    v12_1.width = ((int) Float.parseFloat(v20_1));
                }
                if (v10_1 != null) {
                    v12_1.modal = Boolean.parseBoolean(v10_1);
                }
                if (v16_1 != null) {
                    try {
                        v12_1.setTransitionDurationInMillis((Long.parseLong(v16_1) * 1000));
                    } catch (Exception v21) {
                    }
                }
                com.millennialmedia.android.Utils$IntentUtils.startAdViewOverlayActivity(v5_1, this.getExpandExtrasIntent(v18_1, v12_1));
                com.millennialmedia.android.MMSDK$Event.overlayOpenedBroadCast(v5_1, this.getAdImplId(((String) p26.get("PROPERTY_EXPANDING"))));
                v21_20 = com.millennialmedia.android.MMJSResponse.responseWithSuccess();
            }
        } else {
            v21_20 = com.millennialmedia.android.MMJSResponse.responseWithError("Cannot expand a non banner ad");
        }
        return v21_20;
    }

Method com.millennialmedia.android.Utils$IntentUtils.startAdViewOverlayActivity():


    static void startAdViewOverlayActivity(android.content.Context p2, android.content.Intent p3)
    {
        p3.setClass(p2, com.millennialmedia.android.MMActivity);
        p3.putExtra("class", "com.millennialmedia.android.AdViewOverlayActivity");
        com.millennialmedia.android.Utils$IntentUtils.startActivity(p2, p3);
        return;
    }

Method android.content.Intent.putExtra() not found.

[TAINT] String 'millennialmedia.action.ACTION_OVERLAY_OPENED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/BridgeMMInterstitial;', 'expandWithProperties', '(Ljava/util/HashMap;)Lcom/millennialmedia/android/MMJSResponse;'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayOpenedBroadCast', '(Landroid/content/Context; J)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_OVERLAY_OPENED to construct an Intent

Method com.millennialmedia.android.BridgeMMInterstitial.expandWithProperties():


    public com.millennialmedia.android.MMJSResponse expandWithProperties(java.util.HashMap p26)
    {
        Exception v21_20;
        String v9_1 = ((String) p26.get("PROPERTY_BANNER_TYPE"));
        if ((v9_1 == null) || (Boolean.parseBoolean(v9_1))) {
            String v18_1 = ((String) p26.get("url"));
            String v7_1 = ((String) p26.get("enableNativeAccelerometer"));
            String v17_1 = ((String) p26.get("transparent"));
            String v19_1 = ((String) p26.get("useCustomClose"));
            String v15_1 = ((String) p26.get("transition"));
            String v11_1 = ((String) p26.get("orientation"));
            String v16_1 = ((String) p26.get("transitionDuration"));
            String v8_1 = ((String) p26.get("height"));
            String v20_1 = ((String) p26.get("width"));
            String v10_1 = ((String) p26.get("modal"));
            String v6_1 = ((String) p26.get("PROPERTY_EXPANDING"));
            String v4_1 = ((String) p26.get("allowOrientationChange"));
            android.content.Context v5_1 = ((android.content.Context) this.contextRef.get());
            if (v5_1 == null) {
                v21_20 = 0;
            } else {
                com.millennialmedia.android.OverlaySettings v12_1 = new com.millennialmedia.android.OverlaySettings();
                if (v18_1 != null) {
                    v12_1.urlToLoad = v18_1;
                }
                if (v6_1 != null) {
                    v12_1.creatorAdImplId = ((long) ((int) Float.parseFloat(v6_1)));
                }
                if (v7_1 != null) {
                    v12_1.canAccelerate = Boolean.parseBoolean(v7_1);
                }
                if (v17_1 != null) {
                    v12_1.setIsTransparent(Boolean.parseBoolean(v17_1));
                }
                if (v19_1 != null) {
                    v12_1.setUseCustomClose(Boolean.parseBoolean(v19_1));
                }
                if (v15_1 != null) {
                    v12_1.setTransition(v15_1);
                }
                if (v4_1 != null) {
                    v12_1.allowOrientationChange = Boolean.parseBoolean(v4_1);
                }
                if (v11_1 == null) {
                    v11_1 = ((String) p26.get("forceOrientation"));
                }
                if (v11_1 != null) {
                    v12_1.orientation = v11_1;
                }
                if (v8_1 != null) {
                    v12_1.height = ((int) Float.parseFloat(v8_1));
                }
                if (v20_1 != null) {
                    v12_1.width = ((int) Float.parseFloat(v20_1));
                }
                if (v10_1 != null) {
                    v12_1.modal = Boolean.parseBoolean(v10_1);
                }
                if (v16_1 != null) {
                    try {
                        v12_1.setTransitionDurationInMillis((Long.parseLong(v16_1) * 1000));
                    } catch (Exception v21) {
                    }
                }
                com.millennialmedia.android.Utils$IntentUtils.startAdViewOverlayActivity(v5_1, this.getExpandExtrasIntent(v18_1, v12_1));
                com.millennialmedia.android.MMSDK$Event.overlayOpenedBroadCast(v5_1, this.getAdImplId(((String) p26.get("PROPERTY_EXPANDING"))));
                v21_20 = com.millennialmedia.android.MMJSResponse.responseWithSuccess();
            }
        } else {
            v21_20 = com.millennialmedia.android.MMJSResponse.responseWithError("Cannot expand a non banner ad");
        }
        return v21_20;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayOpenedBroadCast():


    static void overlayOpenedBroadCast(android.content.Context p2, long p3)
    {
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_OVERLAY_OPENED"), p3);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.action.ACTION_INTENT_STARTED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/BridgeMMInterstitial;', 'expandToExternalBrowser', '(Ljava/util/HashMap;)Lcom/millennialmedia/android/MMJSResponse;'), ('Lcom/millennialmedia/android/BridgeMMInterstitial;', 'open', '(Ljava/util/HashMap;)Lcom/millennialmedia/android/MMJSResponse;'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'intentStarted', '(Landroid/content/Context; Ljava/lang/String; J)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_INTENT_STARTED to construct an Intent

Method com.millennialmedia.android.BridgeMMInterstitial.expandToExternalBrowser():


    public com.millennialmedia.android.MMJSResponse expandToExternalBrowser(java.util.HashMap p2)
    {
        return this.open(p2);
    }

Method com.millennialmedia.android.BridgeMMInterstitial.open():


    public com.millennialmedia.android.MMJSResponse open(java.util.HashMap p8)
    {
        com.millennialmedia.android.MMJSResponse v5_1;
        String v4_1 = ((String) p8.get("url"));
        android.content.Context v2_1 = ((android.content.Context) this.contextRef.get());
        if ((v4_1 == null) || (v2_1 == null)) {
            v5_1 = 0;
        } else {
            android.content.Intent v3_1 = new android.content.Intent("android.intent.action.VIEW", android.net.Uri.parse(v4_1));
            com.millennialmedia.android.MMSDK$Event.intentStarted(v2_1, "browser", this.getAdImplId(((String) p8.get("PROPERTY_EXPANDING"))));
            com.millennialmedia.android.Utils$IntentUtils.startActivity(v2_1, v3_1);
            v5_1 = com.millennialmedia.android.MMJSResponse.responseWithSuccess();
        }
        return v5_1;
    }

Method com.millennialmedia.android.MMSDK$Event.intentStarted():


    static void intentStarted(android.content.Context p2, String p3, long p4)
    {
        if ((com.millennialmedia.android.MMSDK.access$000()) && (p3 != null)) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_INTENT_STARTED").putExtra("intentType", p3), p4);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/BridgeMMInterstitial;', 'expandToExternalBrowser', '(Ljava/util/HashMap;)Lcom/millennialmedia/android/MMJSResponse;'), ('Lcom/millennialmedia/android/BridgeMMInterstitial;', 'open', '(Ljava/util/HashMap;)Lcom/millennialmedia/android/MMJSResponse;'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'intentStarted', '(Landroid/content/Context; Ljava/lang/String; J)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.BridgeMMInterstitial.expandToExternalBrowser():


    public com.millennialmedia.android.MMJSResponse expandToExternalBrowser(java.util.HashMap p2)
    {
        return this.open(p2);
    }

Method com.millennialmedia.android.BridgeMMInterstitial.open():


    public com.millennialmedia.android.MMJSResponse open(java.util.HashMap p8)
    {
        com.millennialmedia.android.MMJSResponse v5_1;
        String v4_1 = ((String) p8.get("url"));
        android.content.Context v2_1 = ((android.content.Context) this.contextRef.get());
        if ((v4_1 == null) || (v2_1 == null)) {
            v5_1 = 0;
        } else {
            android.content.Intent v3_1 = new android.content.Intent("android.intent.action.VIEW", android.net.Uri.parse(v4_1));
            com.millennialmedia.android.MMSDK$Event.intentStarted(v2_1, "browser", this.getAdImplId(((String) p8.get("PROPERTY_EXPANDING"))));
            com.millennialmedia.android.Utils$IntentUtils.startActivity(v2_1, v3_1);
            v5_1 = com.millennialmedia.android.MMJSResponse.responseWithSuccess();
        }
        return v5_1;
    }

Method com.millennialmedia.android.MMSDK$Event.intentStarted():


    static void intentStarted(android.content.Context p2, String p3, long p4)
    {
        if ((com.millennialmedia.android.MMSDK.access$000()) && (p3 != null)) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_INTENT_STARTED").putExtra("intentType", p3), p4);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_INTENT_STARTED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/BridgeMMDevice;', 'showMap', '(Ljava/util/HashMap;)Lcom/millennialmedia/android/MMJSResponse;'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'intentStarted', '(Landroid/content/Context; Ljava/lang/String; J)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_INTENT_STARTED to construct an Intent

Method com.millennialmedia.android.BridgeMMDevice.showMap():


    public com.millennialmedia.android.MMJSResponse showMap(java.util.HashMap p9)
    {
        com.millennialmedia.android.MMJSResponse v5_1;
        android.content.Context v2_1 = ((android.content.Context) this.contextRef.get());
        String v4_1 = ((String) p9.get("location"));
        if ((v2_1 == null) || (v4_1 == null)) {
            v5_1 = 0;
        } else {
            android.net.Uri v6_1 = new Object[1];
            v6_1[0] = v4_1;
            com.millennialmedia.android.MMSDK$Log.d("Launching Google Maps: %s", v6_1);
            com.millennialmedia.android.Utils$IntentUtils.startActivity(v2_1, new android.content.Intent("android.intent.action.VIEW", android.net.Uri.parse(new StringBuilder().append("geo:").append(v4_1).toString())));
            com.millennialmedia.android.MMSDK$Event.intentStarted(v2_1, "geo", this.getAdImplId(((String) p9.get("PROPERTY_EXPANDING"))));
            v5_1 = com.millennialmedia.android.MMJSResponse.responseWithSuccess("Map successfully opened");
        }
        return v5_1;
    }

Method com.millennialmedia.android.MMSDK$Event.intentStarted():


    static void intentStarted(android.content.Context p2, String p3, long p4)
    {
        if ((com.millennialmedia.android.MMSDK.access$000()) && (p3 != null)) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_INTENT_STARTED").putExtra("intentType", p3), p4);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/BridgeMMDevice;', 'showMap', '(Ljava/util/HashMap;)Lcom/millennialmedia/android/MMJSResponse;'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'intentStarted', '(Landroid/content/Context; Ljava/lang/String; J)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.BridgeMMDevice.showMap():


    public com.millennialmedia.android.MMJSResponse showMap(java.util.HashMap p9)
    {
        com.millennialmedia.android.MMJSResponse v5_1;
        android.content.Context v2_1 = ((android.content.Context) this.contextRef.get());
        String v4_1 = ((String) p9.get("location"));
        if ((v2_1 == null) || (v4_1 == null)) {
            v5_1 = 0;
        } else {
            android.net.Uri v6_1 = new Object[1];
            v6_1[0] = v4_1;
            com.millennialmedia.android.MMSDK$Log.d("Launching Google Maps: %s", v6_1);
            com.millennialmedia.android.Utils$IntentUtils.startActivity(v2_1, new android.content.Intent("android.intent.action.VIEW", android.net.Uri.parse(new StringBuilder().append("geo:").append(v4_1).toString())));
            com.millennialmedia.android.MMSDK$Event.intentStarted(v2_1, "geo", this.getAdImplId(((String) p9.get("PROPERTY_EXPANDING"))));
            v5_1 = com.millennialmedia.android.MMJSResponse.responseWithSuccess("Map successfully opened");
        }
        return v5_1;
    }

Method com.millennialmedia.android.MMSDK$Event.intentStarted():


    static void intentStarted(android.content.Context p2, String p3, long p4)
    {
        if ((com.millennialmedia.android.MMSDK.access$000()) && (p3 != null)) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_INTENT_STARTED").putExtra("intentType", p3), p4);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_INTENT_STARTED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/BridgeMMDevice;', 'openUrl', '(Ljava/util/HashMap;)Lcom/millennialmedia/android/MMJSResponse;'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'intentStarted', '(Landroid/content/Context; Ljava/lang/String; J)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_INTENT_STARTED to construct an Intent

Method com.millennialmedia.android.BridgeMMDevice.openUrl():


    public com.millennialmedia.android.MMJSResponse openUrl(java.util.HashMap p9)
    {
        com.millennialmedia.android.MMJSResponse v5_2;
        android.content.Context v2_1 = ((android.content.Context) this.contextRef.get());
        String v4_1 = ((String) p9.get("url"));
        if ((v2_1 == null) || (v4_1 == null)) {
            v5_2 = com.millennialmedia.android.MMJSResponse.responseWithError("URL could not be opened");
        } else {
            String v6_1 = new Object[1];
            v6_1[0] = v4_1;
            com.millennialmedia.android.MMSDK$Log.d("Opening: %s", v6_1);
            android.content.Intent v3_1 = new android.content.Intent("android.intent.action.VIEW", android.net.Uri.parse(v4_1));
            if ((v3_1.getScheme().startsWith("http")) || (v3_1.getScheme().startsWith("https"))) {
                com.millennialmedia.android.MMSDK$Event.intentStarted(v2_1, "browser", this.getAdImplId(((String) p9.get("PROPERTY_EXPANDING"))));
            }
            com.millennialmedia.android.Utils$IntentUtils.startActivity(v2_1, v3_1);
            v5_2 = com.millennialmedia.android.MMJSResponse.responseWithSuccess("Overlay opened");
        }
        return v5_2;
    }

Method com.millennialmedia.android.MMSDK$Event.intentStarted():


    static void intentStarted(android.content.Context p2, String p3, long p4)
    {
        if ((com.millennialmedia.android.MMSDK.access$000()) && (p3 != null)) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_INTENT_STARTED").putExtra("intentType", p3), p4);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/BridgeMMDevice;', 'openUrl', '(Ljava/util/HashMap;)Lcom/millennialmedia/android/MMJSResponse;'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'intentStarted', '(Landroid/content/Context; Ljava/lang/String; J)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.BridgeMMDevice.openUrl():


    public com.millennialmedia.android.MMJSResponse openUrl(java.util.HashMap p9)
    {
        com.millennialmedia.android.MMJSResponse v5_2;
        android.content.Context v2_1 = ((android.content.Context) this.contextRef.get());
        String v4_1 = ((String) p9.get("url"));
        if ((v2_1 == null) || (v4_1 == null)) {
            v5_2 = com.millennialmedia.android.MMJSResponse.responseWithError("URL could not be opened");
        } else {
            String v6_1 = new Object[1];
            v6_1[0] = v4_1;
            com.millennialmedia.android.MMSDK$Log.d("Opening: %s", v6_1);
            android.content.Intent v3_1 = new android.content.Intent("android.intent.action.VIEW", android.net.Uri.parse(v4_1));
            if ((v3_1.getScheme().startsWith("http")) || (v3_1.getScheme().startsWith("https"))) {
                com.millennialmedia.android.MMSDK$Event.intentStarted(v2_1, "browser", this.getAdImplId(((String) p9.get("PROPERTY_EXPANDING"))));
            }
            com.millennialmedia.android.Utils$IntentUtils.startActivity(v2_1, v3_1);
            v5_2 = com.millennialmedia.android.MMJSResponse.responseWithSuccess("Overlay opened");
        }
        return v5_2;
    }

Method com.millennialmedia.android.MMSDK$Event.intentStarted():


    static void intentStarted(android.content.Context p2, String p3, long p4)
    {
        if ((com.millennialmedia.android.MMSDK.access$000()) && (p3 != null)) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_INTENT_STARTED").putExtra("intentType", p3), p4);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_INTENT_STARTED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/BridgeMMDevice;', 'openAppStore', '(Ljava/util/HashMap;)Lcom/millennialmedia/android/MMJSResponse;'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'intentStarted', '(Landroid/content/Context; Ljava/lang/String; J)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_INTENT_STARTED to construct an Intent

Method com.millennialmedia.android.BridgeMMDevice.openAppStore():


    public com.millennialmedia.android.MMJSResponse openAppStore(java.util.HashMap p11)
    {
        com.millennialmedia.android.MMJSResponse v6_1;
        android.content.Context v2_1 = ((android.content.Context) this.contextRef.get());
        String v3_1 = ((String) p11.get("appId"));
        String v5_1 = ((String) p11.get("referrer"));
        if ((v2_1 == null) || (v3_1 == null)) {
            v6_1 = 0;
        } else {
            String v7_0 = new Object[1];
            v7_0[0] = v3_1;
            com.millennialmedia.android.MMSDK$Log.d("Opening marketplace: %s", v7_0);
            android.content.Intent v4_1 = new android.content.Intent("android.intent.action.VIEW");
            if (v5_1 == null) {
                v4_1.setData(android.net.Uri.parse(new StringBuilder().append("market://details?id=").append(v3_1).toString()));
            } else {
                String v7_3 = new Object[2];
                v7_3[0] = v3_1;
                v7_3[1] = java.net.URLEncoder.encode(v5_1);
                v4_1.setData(android.net.Uri.parse(String.format("market://details?id=%s&referrer=%s", v7_3)));
            }
            com.millennialmedia.android.MMSDK$Event.intentStarted(v2_1, "market", this.getAdImplId(((String) p11.get("PROPERTY_EXPANDING"))));
            com.millennialmedia.android.Utils$IntentUtils.startActivity(v2_1, v4_1);
            v6_1 = com.millennialmedia.android.MMJSResponse.responseWithSuccess();
        }
        return v6_1;
    }

Method com.millennialmedia.android.MMSDK$Event.intentStarted():


    static void intentStarted(android.content.Context p2, String p3, long p4)
    {
        if ((com.millennialmedia.android.MMSDK.access$000()) && (p3 != null)) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_INTENT_STARTED").putExtra("intentType", p3), p4);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/BridgeMMDevice;', 'openAppStore', '(Ljava/util/HashMap;)Lcom/millennialmedia/android/MMJSResponse;'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'intentStarted', '(Landroid/content/Context; Ljava/lang/String; J)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.BridgeMMDevice.openAppStore():


    public com.millennialmedia.android.MMJSResponse openAppStore(java.util.HashMap p11)
    {
        com.millennialmedia.android.MMJSResponse v6_1;
        android.content.Context v2_1 = ((android.content.Context) this.contextRef.get());
        String v3_1 = ((String) p11.get("appId"));
        String v5_1 = ((String) p11.get("referrer"));
        if ((v2_1 == null) || (v3_1 == null)) {
            v6_1 = 0;
        } else {
            String v7_0 = new Object[1];
            v7_0[0] = v3_1;
            com.millennialmedia.android.MMSDK$Log.d("Opening marketplace: %s", v7_0);
            android.content.Intent v4_1 = new android.content.Intent("android.intent.action.VIEW");
            if (v5_1 == null) {
                v4_1.setData(android.net.Uri.parse(new StringBuilder().append("market://details?id=").append(v3_1).toString()));
            } else {
                String v7_3 = new Object[2];
                v7_3[0] = v3_1;
                v7_3[1] = java.net.URLEncoder.encode(v5_1);
                v4_1.setData(android.net.Uri.parse(String.format("market://details?id=%s&referrer=%s", v7_3)));
            }
            com.millennialmedia.android.MMSDK$Event.intentStarted(v2_1, "market", this.getAdImplId(((String) p11.get("PROPERTY_EXPANDING"))));
            com.millennialmedia.android.Utils$IntentUtils.startActivity(v2_1, v4_1);
            v6_1 = com.millennialmedia.android.MMJSResponse.responseWithSuccess();
        }
        return v6_1;
    }

Method com.millennialmedia.android.MMSDK$Event.intentStarted():


    static void intentStarted(android.content.Context p2, String p3, long p4)
    {
        if ((com.millennialmedia.android.MMSDK.access$000()) && (p3 != null)) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_INTENT_STARTED").putExtra("intentType", p3), p4);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/BridgeMMDevice;', 'composeSms', '(Ljava/util/HashMap;)Lcom/millennialmedia/android/MMJSResponse;'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'intentStarted', '(Landroid/content/Context; Ljava/lang/String; J)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.BridgeMMDevice.composeSms():


    public com.millennialmedia.android.MMJSResponse composeSms(java.util.HashMap p10)
    {
        com.millennialmedia.android.MMJSResponse v6_1;
        android.content.Context v2_1 = ((android.content.Context) this.contextRef.get());
        String v5_1 = ((String) p10.get("number"));
        String v4_1 = ((String) p10.get("message"));
        if ((v2_1 == null) || (v5_1 == null)) {
            v6_1 = 0;
        } else {
            android.net.Uri v7_1 = new Object[1];
            v7_1[0] = v5_1;
            com.millennialmedia.android.MMSDK$Log.d("Creating sms: %s", v7_1);
            android.content.Intent v3_1 = new android.content.Intent("android.intent.action.VIEW", android.net.Uri.parse(new StringBuilder().append("sms:").append(v5_1).toString()));
            if (v4_1 != null) {
                v3_1.putExtra("sms_body", v4_1);
            }
            com.millennialmedia.android.Utils$IntentUtils.startActivity(v2_1, v3_1);
            com.millennialmedia.android.MMSDK$Event.intentStarted(v2_1, "sms", this.getAdImplId(((String) p10.get("PROPERTY_EXPANDING"))));
            v6_1 = com.millennialmedia.android.MMJSResponse.responseWithSuccess("SMS Sent");
        }
        return v6_1;
    }

Method com.millennialmedia.android.MMSDK$Event.intentStarted():


    static void intentStarted(android.content.Context p2, String p3, long p4)
    {
        if ((com.millennialmedia.android.MMSDK.access$000()) && (p3 != null)) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_INTENT_STARTED").putExtra("intentType", p3), p4);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_INTENT_STARTED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/BridgeMMDevice;', 'composeSms', '(Ljava/util/HashMap;)Lcom/millennialmedia/android/MMJSResponse;'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'intentStarted', '(Landroid/content/Context; Ljava/lang/String; J)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_INTENT_STARTED to construct an Intent

Method com.millennialmedia.android.BridgeMMDevice.composeSms():


    public com.millennialmedia.android.MMJSResponse composeSms(java.util.HashMap p10)
    {
        com.millennialmedia.android.MMJSResponse v6_1;
        android.content.Context v2_1 = ((android.content.Context) this.contextRef.get());
        String v5_1 = ((String) p10.get("number"));
        String v4_1 = ((String) p10.get("message"));
        if ((v2_1 == null) || (v5_1 == null)) {
            v6_1 = 0;
        } else {
            android.net.Uri v7_1 = new Object[1];
            v7_1[0] = v5_1;
            com.millennialmedia.android.MMSDK$Log.d("Creating sms: %s", v7_1);
            android.content.Intent v3_1 = new android.content.Intent("android.intent.action.VIEW", android.net.Uri.parse(new StringBuilder().append("sms:").append(v5_1).toString()));
            if (v4_1 != null) {
                v3_1.putExtra("sms_body", v4_1);
            }
            com.millennialmedia.android.Utils$IntentUtils.startActivity(v2_1, v3_1);
            com.millennialmedia.android.MMSDK$Event.intentStarted(v2_1, "sms", this.getAdImplId(((String) p10.get("PROPERTY_EXPANDING"))));
            v6_1 = com.millennialmedia.android.MMJSResponse.responseWithSuccess("SMS Sent");
        }
        return v6_1;
    }

Method com.millennialmedia.android.MMSDK$Event.intentStarted():


    static void intentStarted(android.content.Context p2, String p3, long p4)
    {
        if ((com.millennialmedia.android.MMSDK.access$000()) && (p3 != null)) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_INTENT_STARTED").putExtra("intentType", p3), p4);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/BridgeMMDevice;', 'composeEmail', '(Ljava/util/HashMap;)Lcom/millennialmedia/android/MMJSResponse;'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'intentStarted', '(Landroid/content/Context; Ljava/lang/String; J)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.BridgeMMDevice.composeEmail():


    public com.millennialmedia.android.MMJSResponse composeEmail(java.util.HashMap p10)
    {
        com.millennialmedia.android.MMJSResponse v7_2;
        android.content.Context v2_1 = ((android.content.Context) this.contextRef.get());
        String v5_1 = ((String) p10.get("recipients"));
        String v6_1 = ((String) p10.get("subject"));
        String v4_1 = ((String) p10.get("message"));
        if (v2_1 == null) {
            v7_2 = 0;
        } else {
            com.millennialmedia.android.MMSDK$Log.d("Creating email");
            android.content.Intent v3_1 = new android.content.Intent("android.intent.action.SEND");
            v3_1.setType("plain/text");
            if (v5_1 != null) {
                v3_1.putExtra("android.intent.extra.EMAIL", v5_1.split(","));
            }
            if (v6_1 != null) {
                v3_1.putExtra("android.intent.extra.SUBJECT", v6_1);
            }
            if (v4_1 != null) {
                v3_1.putExtra("android.intent.extra.TEXT", v4_1);
            }
            com.millennialmedia.android.Utils$IntentUtils.startActivity(v2_1, v3_1);
            com.millennialmedia.android.MMSDK$Event.intentStarted(v2_1, "email", this.getAdImplId(((String) p10.get("PROPERTY_EXPANDING"))));
            v7_2 = com.millennialmedia.android.MMJSResponse.responseWithSuccess();
        }
        return v7_2;
    }

Method com.millennialmedia.android.MMSDK$Event.intentStarted():


    static void intentStarted(android.content.Context p2, String p3, long p4)
    {
        if ((com.millennialmedia.android.MMSDK.access$000()) && (p3 != null)) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_INTENT_STARTED").putExtra("intentType", p3), p4);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_INTENT_STARTED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/BridgeMMDevice;', 'composeEmail', '(Ljava/util/HashMap;)Lcom/millennialmedia/android/MMJSResponse;'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'intentStarted', '(Landroid/content/Context; Ljava/lang/String; J)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_INTENT_STARTED to construct an Intent

Method com.millennialmedia.android.BridgeMMDevice.composeEmail():


    public com.millennialmedia.android.MMJSResponse composeEmail(java.util.HashMap p10)
    {
        com.millennialmedia.android.MMJSResponse v7_2;
        android.content.Context v2_1 = ((android.content.Context) this.contextRef.get());
        String v5_1 = ((String) p10.get("recipients"));
        String v6_1 = ((String) p10.get("subject"));
        String v4_1 = ((String) p10.get("message"));
        if (v2_1 == null) {
            v7_2 = 0;
        } else {
            com.millennialmedia.android.MMSDK$Log.d("Creating email");
            android.content.Intent v3_1 = new android.content.Intent("android.intent.action.SEND");
            v3_1.setType("plain/text");
            if (v5_1 != null) {
                v3_1.putExtra("android.intent.extra.EMAIL", v5_1.split(","));
            }
            if (v6_1 != null) {
                v3_1.putExtra("android.intent.extra.SUBJECT", v6_1);
            }
            if (v4_1 != null) {
                v3_1.putExtra("android.intent.extra.TEXT", v4_1);
            }
            com.millennialmedia.android.Utils$IntentUtils.startActivity(v2_1, v3_1);
            com.millennialmedia.android.MMSDK$Event.intentStarted(v2_1, "email", this.getAdImplId(((String) p10.get("PROPERTY_EXPANDING"))));
            v7_2 = com.millennialmedia.android.MMJSResponse.responseWithSuccess();
        }
        return v7_2;
    }

Method com.millennialmedia.android.MMSDK$Event.intentStarted():


    static void intentStarted(android.content.Context p2, String p3, long p4)
    {
        if ((com.millennialmedia.android.MMSDK.access$000()) && (p3 != null)) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_INTENT_STARTED").putExtra("intentType", p3), p4);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/BridgeMMDevice;', 'call', '(Ljava/util/HashMap;)Lcom/millennialmedia/android/MMJSResponse;'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'intentStarted', '(Landroid/content/Context; Ljava/lang/String; J)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.BridgeMMDevice.call():


    public com.millennialmedia.android.MMJSResponse call(java.util.HashMap p9)
    {
        com.millennialmedia.android.MMJSResponse v5_1;
        android.content.Context v2_1 = ((android.content.Context) this.contextRef.get());
        String v4_1 = ((String) p9.get("number"));
        if ((v2_1 == null) || (v4_1 == null)) {
            v5_1 = 0;
        } else {
            android.content.Intent v3_1;
            android.net.Uri v6_1 = new Object[1];
            v6_1[0] = v4_1;
            com.millennialmedia.android.MMSDK$Log.d("Dialing Phone: %s", v6_1);
            if ((!Boolean.parseBoolean(((String) p9.get("dial")))) || (v2_1.checkCallingOrSelfPermission("android.permission.CALL_PHONE") != 0)) {
                v3_1 = new android.content.Intent("android.intent.action.VIEW", android.net.Uri.parse(new StringBuilder().append("tel:").append(v4_1).toString()));
            } else {
                v3_1 = new android.content.Intent("android.intent.action.CALL", android.net.Uri.parse(new StringBuilder().append("tel:").append(v4_1).toString()));
            }
            com.millennialmedia.android.Utils$IntentUtils.startActivity(v2_1, v3_1);
            com.millennialmedia.android.MMSDK$Event.intentStarted(v2_1, "tel", this.getAdImplId(((String) p9.get("PROPERTY_EXPANDING"))));
            v5_1 = com.millennialmedia.android.MMJSResponse.responseWithSuccess();
        }
        return v5_1;
    }

Method com.millennialmedia.android.MMSDK$Event.intentStarted():


    static void intentStarted(android.content.Context p2, String p3, long p4)
    {
        if ((com.millennialmedia.android.MMSDK.access$000()) && (p3 != null)) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_INTENT_STARTED").putExtra("intentType", p3), p4);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_INTENT_STARTED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/BridgeMMDevice;', 'call', '(Ljava/util/HashMap;)Lcom/millennialmedia/android/MMJSResponse;'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'intentStarted', '(Landroid/content/Context; Ljava/lang/String; J)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_INTENT_STARTED to construct an Intent

Method com.millennialmedia.android.BridgeMMDevice.call():


    public com.millennialmedia.android.MMJSResponse call(java.util.HashMap p9)
    {
        com.millennialmedia.android.MMJSResponse v5_1;
        android.content.Context v2_1 = ((android.content.Context) this.contextRef.get());
        String v4_1 = ((String) p9.get("number"));
        if ((v2_1 == null) || (v4_1 == null)) {
            v5_1 = 0;
        } else {
            android.content.Intent v3_1;
            android.net.Uri v6_1 = new Object[1];
            v6_1[0] = v4_1;
            com.millennialmedia.android.MMSDK$Log.d("Dialing Phone: %s", v6_1);
            if ((!Boolean.parseBoolean(((String) p9.get("dial")))) || (v2_1.checkCallingOrSelfPermission("android.permission.CALL_PHONE") != 0)) {
                v3_1 = new android.content.Intent("android.intent.action.VIEW", android.net.Uri.parse(new StringBuilder().append("tel:").append(v4_1).toString()));
            } else {
                v3_1 = new android.content.Intent("android.intent.action.CALL", android.net.Uri.parse(new StringBuilder().append("tel:").append(v4_1).toString()));
            }
            com.millennialmedia.android.Utils$IntentUtils.startActivity(v2_1, v3_1);
            com.millennialmedia.android.MMSDK$Event.intentStarted(v2_1, "tel", this.getAdImplId(((String) p9.get("PROPERTY_EXPANDING"))));
            v5_1 = com.millennialmedia.android.MMJSResponse.responseWithSuccess();
        }
        return v5_1;
    }

Method com.millennialmedia.android.MMSDK$Event.intentStarted():


    static void intentStarted(android.content.Context p2, String p3, long p4)
    {
        if ((com.millennialmedia.android.MMSDK.access$000()) && (p3 != null)) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_INTENT_STARTED").putExtra("intentType", p3), p4);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'video.dat' ==>>> Sink '['Landroid/content/Intent;', 'setData', '(Landroid/net/Uri;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/BridgeMMCachedVideo;', 'playCachedVideo', '(Ljava/util/HashMap;)Lcom/millennialmedia/android/MMJSResponse;'), ('Lcom/millennialmedia/android/VideoAd;', 'show', '(Landroid/content/Context; J)V'), ('Lcom/millennialmedia/android/VideoAd;', 'getVideoExtrasIntent', '(Landroid/content/Context; J)Landroid/content/Intent;'), ('Landroid/content/Intent;', 'setData', '(Landroid/net/Uri;)Landroid/content/Intent;')]]

Use of a string value video.dat to construct an Intent

Method com.millennialmedia.android.BridgeMMCachedVideo.playCachedVideo():


    public com.millennialmedia.android.MMJSResponse playCachedVideo(java.util.HashMap p9)
    {
        com.millennialmedia.android.MMJSResponse v5_0 = 0;
        android.content.Context v3_1 = ((android.content.Context) this.contextRef.get());
        String v4_1 = ((String) p9.get("videoId"));
        if ((v4_1 != null) && (v3_1 != null)) {
            com.millennialmedia.android.VideoAd v0_1 = ((com.millennialmedia.android.VideoAd) com.millennialmedia.android.AdCache.load(v3_1, v4_1));
            if ((v0_1 != null) && (v0_1.canShow(v3_1, 0, 0))) {
                v0_1.show(v3_1, this.getAdImplId(((String) p9.get("PROPERTY_EXPANDING"))));
                Object[] v6_3 = new Object[1];
                v6_3[0] = v4_1;
                v5_0 = com.millennialmedia.android.MMJSResponse.responseWithSuccess(String.format("Playing Video(%s)", v6_3));
            }
        }
        return v5_0;
    }

Method com.millennialmedia.android.VideoAd.show():


    void show(android.content.Context p2, long p3)
    {
        com.millennialmedia.android.Utils$IntentUtils.startCachedVideoPlayerActivity(p2, this.getVideoExtrasIntent(p2, p3));
        return;
    }

Method com.millennialmedia.android.VideoAd.getVideoExtrasIntent():


    android.content.Intent getVideoExtrasIntent(android.content.Context p5, long p6)
    {
        android.content.Intent v0_1 = new android.content.Intent();
        v0_1.putExtra("videoId", this.getId());
        if (p6 != -4) {
            v0_1.putExtra("internalId", p6);
        }
        v0_1.setData(android.net.Uri.parse(new StringBuilder().append(com.millennialmedia.android.AdCache.getCacheDirectory(p5).getAbsolutePath()).append(java.io.File.separator).append(this.videoFileId).append("video.dat").toString()));
        return v0_1;
    }

Method android.content.Intent.setData() not found.

[TAINT] String 'com.millennialmedia.android.CachedVideoPlayerActivity' ==>>> Sink '['Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;', '1', 'IPC_SINK']' [[('Lcom/millennialmedia/android/BridgeMMCachedVideo;', 'playCachedVideo', '(Ljava/util/HashMap;)Lcom/millennialmedia/android/MMJSResponse;'), ('Lcom/millennialmedia/android/VideoAd;', 'show', '(Landroid/content/Context; J)V'), ('Lcom/millennialmedia/android/Utils$IntentUtils;', 'startCachedVideoPlayerActivity', '(Landroid/content/Context; Landroid/content/Intent;)V'), ('Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value com.millennialmedia.android.CachedVideoPlayerActivity to construct an Intent

Method com.millennialmedia.android.BridgeMMCachedVideo.playCachedVideo():


    public com.millennialmedia.android.MMJSResponse playCachedVideo(java.util.HashMap p9)
    {
        com.millennialmedia.android.MMJSResponse v5_0 = 0;
        android.content.Context v3_1 = ((android.content.Context) this.contextRef.get());
        String v4_1 = ((String) p9.get("videoId"));
        if ((v4_1 != null) && (v3_1 != null)) {
            com.millennialmedia.android.VideoAd v0_1 = ((com.millennialmedia.android.VideoAd) com.millennialmedia.android.AdCache.load(v3_1, v4_1));
            if ((v0_1 != null) && (v0_1.canShow(v3_1, 0, 0))) {
                v0_1.show(v3_1, this.getAdImplId(((String) p9.get("PROPERTY_EXPANDING"))));
                Object[] v6_3 = new Object[1];
                v6_3[0] = v4_1;
                v5_0 = com.millennialmedia.android.MMJSResponse.responseWithSuccess(String.format("Playing Video(%s)", v6_3));
            }
        }
        return v5_0;
    }

Method com.millennialmedia.android.VideoAd.show():


    void show(android.content.Context p2, long p3)
    {
        com.millennialmedia.android.Utils$IntentUtils.startCachedVideoPlayerActivity(p2, this.getVideoExtrasIntent(p2, p3));
        return;
    }

Method com.millennialmedia.android.Utils$IntentUtils.startCachedVideoPlayerActivity():


    static void startCachedVideoPlayerActivity(android.content.Context p2, android.content.Intent p3)
    {
        p3.setClass(p2, com.millennialmedia.android.MMActivity);
        p3.putExtra("class", "com.millennialmedia.android.CachedVideoPlayerActivity");
        com.millennialmedia.android.Utils$IntentUtils.startActivity(p2, p3);
        return;
    }

Method android.content.Intent.putExtra() not found.

[TAINT] String 'millennialmedia.action.ACTION_OVERLAY_CLOSED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/AdViewOverlayActivity;', 'finish', '()V'), ('Lcom/millennialmedia/android/MMBaseActivity;', 'finish', '()V'), ('Lcom/millennialmedia/android/MMActivity;', 'finishSuper', '()V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayClosed', '(Landroid/content/Context; J)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_OVERLAY_CLOSED to construct an Intent

Method com.millennialmedia.android.AdViewOverlayActivity.finish():


    public void finish()
    {
        if (this.adViewOverlayView != null) {
            this.adViewOverlayView.attachWebViewToLink();
        }
        super.finish();
        return;
    }

Method com.millennialmedia.android.MMBaseActivity.finish():


    public void finish()
    {
        this.activity.finishSuper();
        return;
    }

Method com.millennialmedia.android.MMActivity.finishSuper():


    public void finishSuper()
    {
        com.millennialmedia.android.MMSDK$Event.overlayClosed(this, this.creatorAdImplInternalId);
        super.finish();
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayClosed():


    static void overlayClosed(android.content.Context p2, long p3)
    {
        if ((com.millennialmedia.android.MMSDK.access$000()) && (p2 != null)) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_OVERLAY_CLOSED"), p3);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/AdViewOverlayActivity;', 'finish', '()V'), ('Lcom/millennialmedia/android/MMBaseActivity;', 'finish', '()V'), ('Lcom/millennialmedia/android/MMActivity;', 'finishSuper', '()V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayClosed', '(Landroid/content/Context; J)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.AdViewOverlayActivity.finish():


    public void finish()
    {
        if (this.adViewOverlayView != null) {
            this.adViewOverlayView.attachWebViewToLink();
        }
        super.finish();
        return;
    }

Method com.millennialmedia.android.MMBaseActivity.finish():


    public void finish()
    {
        this.activity.finishSuper();
        return;
    }

Method com.millennialmedia.android.MMActivity.finishSuper():


    public void finishSuper()
    {
        com.millennialmedia.android.MMSDK$Event.overlayClosed(this, this.creatorAdImplInternalId);
        super.finish();
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayClosed():


    static void overlayClosed(android.content.Context p2, long p3)
    {
        if ((com.millennialmedia.android.MMSDK.access$000()) && (p2 != null)) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_OVERLAY_CLOSED"), p3);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_FETCH_STARTED_CACHING' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lgoldenshorestechnologies/brightestflashlight/free/RefreshHandler;', 'handleMessage', '(Landroid/os/Message;)V'), ('Lcom/millennialmedia/android/MMAdView;', 'getAd', '()V'), ('Lcom/millennialmedia/android/MMAdView;', 'getAdInternal', '()V'), ('Lcom/millennialmedia/android/MMAdImpl;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'requestAdInternal', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'isDownloadingCachedAd', '(Lcom/millennialmedia/android/MMAdImpl;)Z'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'fetchStartedCaching', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_FETCH_STARTED_CACHING to construct an Intent

Method goldenshorestechnologies.brightestflashlight.free.RefreshHandler.handleMessage():


    public void handleMessage(android.os.Message p5)
    {
        switch (p5.what) {
            case 4:
                if (this.mmAdViewRef == null) {
                } else {
                    com.millennialmedia.android.MMAdView v0_1 = ((com.millennialmedia.android.MMAdView) this.mmAdViewRef.get());
                    if (v0_1 == null) {
                    } else {
                        v0_1.getAd();
                        this.sendEmptyMessageDelayed(4, 30000);
                    }
                }
                break;
        }
        return;
    }

Method com.millennialmedia.android.MMAdView.getAd():


    public void getAd()
    {
        if ((this.adImpl == null) || (this.adImpl.requestListener == null)) {
            this.getAdInternal();
        } else {
            this.getAd(this.adImpl.requestListener);
        }
        return;
    }

Method com.millennialmedia.android.MMAdView.getAdInternal():


    private void getAdInternal()
    {
        if (this.adImpl != null) {
            this.adImpl.requestAd();
        }
        return;
    }

Method com.millennialmedia.android.MMAdImpl.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImplController.assignAdViewController(this);
        if (this.controller != null) {
            this.controller.requestAd();
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImpl v0_1 = ((com.millennialmedia.android.MMAdImpl) this.adImplRef.get());
        if (v0_1 != null) {
            if (v0_1.isRefreshable()) {
                if (com.millennialmedia.android.MMSDK.isUiThread()) {
                    if (!com.millennialmedia.android.HandShake.sharedHandShake(v0_1.getContext()).kill) {
                        try {
                            com.millennialmedia.android.MMSDK$Log.d("adLayout - requestAd");
                            this.requestAdInternal(v0_1);
                        } catch (Exception v1) {
                            Object[] v3_2 = new Object[1];
                            v3_2[0] = v1.getMessage();
                            com.millennialmedia.android.MMSDK$Log.e("There was an exception with the ad request. %s", v3_2);
                            v1.printStackTrace();
                        }
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i("The server is no longer allowing ads.");
                        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
                    }
                } else {
                    com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(3));
                    com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(3));
                }
            } else {
                com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(25));
            com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(25));
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.requestAdInternal():


    private void requestAdInternal(com.millennialmedia.android.MMAdImpl p4)
    {
        if (p4.apid != null) {
            if ((p4.isBanner()) || (!this.isDownloadingCachedAd(p4))) {
                try {
                    if (this.requestAdRunnable == null) {
                        this.requestAdRunnable = new com.millennialmedia.android.MMAdImplController$RequestAdRunnable(this, 0);
                        com.millennialmedia.android.Utils$ThreadUtils.execute(this.requestAdRunnable);
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i(com.millennialmedia.android.MMException.getErrorCodeMessage(12));
                        com.millennialmedia.android.MMSDK$Event.requestFailed(p4, new com.millennialmedia.android.MMException(12));
                    }
                } catch (com.millennialmedia.android.MMAdImplController$RequestAdRunnable v1_8) {
                    throw v1_8;
                }
            }
        } else {
            com.millennialmedia.android.MMException v0_1 = new com.millennialmedia.android.MMException("MMAdView found with a null apid. New ad requests on this MMAdView are disabled until an apid has been assigned.", 1);
            com.millennialmedia.android.MMSDK$Log.e(v0_1);
            com.millennialmedia.android.MMSDK$Event.requestFailed(p4, v0_1);
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.isDownloadingCachedAd():


    private declared_synchronized boolean isDownloadingCachedAd(com.millennialmedia.android.MMAdImpl p6)
    {
        int v2_0 = 1;
        try {
            android.content.Context v0 = p6.getContext();
        } catch (int v2_2) {
            throw v2_2;
        }
        if (!com.millennialmedia.android.HandShake.sharedHandShake(v0).isAdTypeDownloading(p6.adType)) {
            com.millennialmedia.android.MMSDK$Log.d("No download in progress.");
            com.millennialmedia.android.CachedAd v1 = com.millennialmedia.android.AdCache.loadIncompleteDownload(v0, p6.getCachedName());
            if (v1 == null) {
                com.millennialmedia.android.MMSDK$Log.i("No incomplete downloads.");
                v2_0 = 0;
            } else {
                com.millennialmedia.android.MMSDK$Log.i("Last ad wasn\'t fully downloaded. Download again.");
                com.millennialmedia.android.MMSDK$Event.fetchStartedCaching(p6);
                com.millennialmedia.android.AdCache.startDownloadTask(v0, p6.getCachedName(), v1, this);
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.i("There is a download in progress. Defering call for new ad");
            com.millennialmedia.android.MMSDK$Event.requestFailed(p6, new com.millennialmedia.android.MMException(12));
        }
        return v2_0;
    }

Method com.millennialmedia.android.MMSDK$Event.fetchStartedCaching():


    static void fetchStartedCaching(com.millennialmedia.android.MMAdImpl p4)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$2(p4));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p4.getContext(), new android.content.Intent("millennialmedia.action.ACTION_FETCH_STARTED_CACHING"), p4.internalId);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.action.ACTION_FETCH_FAILED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lgoldenshorestechnologies/brightestflashlight/free/RefreshHandler;', 'handleMessage', '(Landroid/os/Message;)V'), ('Lcom/millennialmedia/android/MMAdView;', 'getAd', '()V'), ('Lcom/millennialmedia/android/MMAdView;', 'getAdInternal', '()V'), ('Lcom/millennialmedia/android/MMAdImpl;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_FETCH_FAILED to construct an Intent

Method goldenshorestechnologies.brightestflashlight.free.RefreshHandler.handleMessage():


    public void handleMessage(android.os.Message p5)
    {
        switch (p5.what) {
            case 4:
                if (this.mmAdViewRef == null) {
                } else {
                    com.millennialmedia.android.MMAdView v0_1 = ((com.millennialmedia.android.MMAdView) this.mmAdViewRef.get());
                    if (v0_1 == null) {
                    } else {
                        v0_1.getAd();
                        this.sendEmptyMessageDelayed(4, 30000);
                    }
                }
                break;
        }
        return;
    }

Method com.millennialmedia.android.MMAdView.getAd():


    public void getAd()
    {
        if ((this.adImpl == null) || (this.adImpl.requestListener == null)) {
            this.getAdInternal();
        } else {
            this.getAd(this.adImpl.requestListener);
        }
        return;
    }

Method com.millennialmedia.android.MMAdView.getAdInternal():


    private void getAdInternal()
    {
        if (this.adImpl != null) {
            this.adImpl.requestAd();
        }
        return;
    }

Method com.millennialmedia.android.MMAdImpl.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImplController.assignAdViewController(this);
        if (this.controller != null) {
            this.controller.requestAd();
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImpl v0_1 = ((com.millennialmedia.android.MMAdImpl) this.adImplRef.get());
        if (v0_1 != null) {
            if (v0_1.isRefreshable()) {
                if (com.millennialmedia.android.MMSDK.isUiThread()) {
                    if (!com.millennialmedia.android.HandShake.sharedHandShake(v0_1.getContext()).kill) {
                        try {
                            com.millennialmedia.android.MMSDK$Log.d("adLayout - requestAd");
                            this.requestAdInternal(v0_1);
                        } catch (Exception v1) {
                            Object[] v3_2 = new Object[1];
                            v3_2[0] = v1.getMessage();
                            com.millennialmedia.android.MMSDK$Log.e("There was an exception with the ad request. %s", v3_2);
                            v1.printStackTrace();
                        }
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i("The server is no longer allowing ads.");
                        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
                    }
                } else {
                    com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(3));
                    com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(3));
                }
            } else {
                com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(25));
            com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(25));
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lgoldenshorestechnologies/brightestflashlight/free/RefreshHandler;', 'handleMessage', '(Landroid/os/Message;)V'), ('Lcom/millennialmedia/android/MMAdView;', 'getAd', '()V'), ('Lcom/millennialmedia/android/MMAdView;', 'getAdInternal', '()V'), ('Lcom/millennialmedia/android/MMAdImpl;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method goldenshorestechnologies.brightestflashlight.free.RefreshHandler.handleMessage():


    public void handleMessage(android.os.Message p5)
    {
        switch (p5.what) {
            case 4:
                if (this.mmAdViewRef == null) {
                } else {
                    com.millennialmedia.android.MMAdView v0_1 = ((com.millennialmedia.android.MMAdView) this.mmAdViewRef.get());
                    if (v0_1 == null) {
                    } else {
                        v0_1.getAd();
                        this.sendEmptyMessageDelayed(4, 30000);
                    }
                }
                break;
        }
        return;
    }

Method com.millennialmedia.android.MMAdView.getAd():


    public void getAd()
    {
        if ((this.adImpl == null) || (this.adImpl.requestListener == null)) {
            this.getAdInternal();
        } else {
            this.getAd(this.adImpl.requestListener);
        }
        return;
    }

Method com.millennialmedia.android.MMAdView.getAdInternal():


    private void getAdInternal()
    {
        if (this.adImpl != null) {
            this.adImpl.requestAd();
        }
        return;
    }

Method com.millennialmedia.android.MMAdImpl.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImplController.assignAdViewController(this);
        if (this.controller != null) {
            this.controller.requestAd();
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImpl v0_1 = ((com.millennialmedia.android.MMAdImpl) this.adImplRef.get());
        if (v0_1 != null) {
            if (v0_1.isRefreshable()) {
                if (com.millennialmedia.android.MMSDK.isUiThread()) {
                    if (!com.millennialmedia.android.HandShake.sharedHandShake(v0_1.getContext()).kill) {
                        try {
                            com.millennialmedia.android.MMSDK$Log.d("adLayout - requestAd");
                            this.requestAdInternal(v0_1);
                        } catch (Exception v1) {
                            Object[] v3_2 = new Object[1];
                            v3_2[0] = v1.getMessage();
                            com.millennialmedia.android.MMSDK$Log.e("There was an exception with the ad request. %s", v3_2);
                            v1.printStackTrace();
                        }
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i("The server is no longer allowing ads.");
                        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
                    }
                } else {
                    com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(3));
                    com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(3));
                }
            } else {
                com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(25));
            com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(25));
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'com.millennialmedia.android.VideoPlayerActivity' ==>>> Sink '['Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;', '1', 'IPC_SINK']' [[('Lcom/millennialmedia/android/Utils$IntentUtils;', 'startVideoPlayerActivityWithData', '(Landroid/content/Context; Ljava/lang/String;)V'), ('Lcom/millennialmedia/android/Utils$IntentUtils;', 'startVideoPlayerActivityWithData', '(Landroid/content/Context; Landroid/net/Uri;)V'), ('Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value com.millennialmedia.android.VideoPlayerActivity to construct an Intent

Method com.millennialmedia.android.Utils$IntentUtils.startVideoPlayerActivityWithData():


    static void startVideoPlayerActivityWithData(android.content.Context p1, String p2)
    {
        com.millennialmedia.android.Utils$IntentUtils.startVideoPlayerActivityWithData(p1, android.net.Uri.parse(p2));
        return;
    }

Method com.millennialmedia.android.Utils$IntentUtils.startVideoPlayerActivityWithData():


    static void startVideoPlayerActivityWithData(android.content.Context p3, android.net.Uri p4)
    {
        android.content.Intent v0_1 = new android.content.Intent(p3, com.millennialmedia.android.MMActivity);
        v0_1.setData(p4);
        v0_1.putExtra("class", "com.millennialmedia.android.VideoPlayerActivity");
        com.millennialmedia.android.Utils$IntentUtils.startActivity(p3, v0_1);
        return;
    }

Method android.content.Intent.putExtra() not found.

[TAINT] String 'com.millennialmedia.android.VideoPlayerActivity' ==>>> Sink '['Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;', '1', 'IPC_SINK']' [[('Lcom/millennialmedia/android/Utils$IntentUtils;', 'startVideoPlayerActivityWithData', '(Landroid/content/Context; Ljava/io/File;)V'), ('Lcom/millennialmedia/android/Utils$IntentUtils;', 'startVideoPlayerActivityWithData', '(Landroid/content/Context; Landroid/net/Uri;)V'), ('Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value com.millennialmedia.android.VideoPlayerActivity to construct an Intent

Method com.millennialmedia.android.Utils$IntentUtils.startVideoPlayerActivityWithData():


    static void startVideoPlayerActivityWithData(android.content.Context p1, java.io.File p2)
    {
        com.millennialmedia.android.Utils$IntentUtils.startVideoPlayerActivityWithData(p1, android.net.Uri.fromFile(p2));
        return;
    }

Method com.millennialmedia.android.Utils$IntentUtils.startVideoPlayerActivityWithData():


    static void startVideoPlayerActivityWithData(android.content.Context p3, android.net.Uri p4)
    {
        android.content.Intent v0_1 = new android.content.Intent(p3, com.millennialmedia.android.MMActivity);
        v0_1.setData(p4);
        v0_1.putExtra("class", "com.millennialmedia.android.VideoPlayerActivity");
        com.millennialmedia.android.Utils$IntentUtils.startActivity(p3, v0_1);
        return;
    }

Method android.content.Intent.putExtra() not found.

[TAINT] String 'com.millennialmedia.android.VideoPlayerActivity' ==>>> Sink '['Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;', '1', 'IPC_SINK']' [[('Lcom/millennialmedia/android/Utils$IntentUtils;', 'startVideoPlayerActivityWithData', '(Landroid/content/Context; Landroid/net/Uri;)V'), ('Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value com.millennialmedia.android.VideoPlayerActivity to construct an Intent

Method com.millennialmedia.android.Utils$IntentUtils.startVideoPlayerActivityWithData():


    static void startVideoPlayerActivityWithData(android.content.Context p3, android.net.Uri p4)
    {
        android.content.Intent v0_1 = new android.content.Intent(p3, com.millennialmedia.android.MMActivity);
        v0_1.setData(p4);
        v0_1.putExtra("class", "com.millennialmedia.android.VideoPlayerActivity");
        com.millennialmedia.android.Utils$IntentUtils.startActivity(p3, v0_1);
        return;
    }

Method android.content.Intent.putExtra() not found.

[TAINT] String 'com.millennialmedia.android.BridgeMMMedia$PickerActivity' ==>>> Sink '['Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;', '1', 'IPC_SINK']' [[('Lcom/millennialmedia/android/Utils$IntentUtils;', 'startPickerActivity', '(Landroid/content/Context; Ljava/io/File; Ljava/lang/String;)V'), ('Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value com.millennialmedia.android.BridgeMMMedia$PickerActivity to construct an Intent

Method com.millennialmedia.android.Utils$IntentUtils.startPickerActivity():


    static void startPickerActivity(android.content.Context p3, java.io.File p4, String p5)
    {
        android.content.Intent v0_1 = new android.content.Intent(p3, com.millennialmedia.android.MMActivity);
        v0_1.setData(android.net.Uri.fromFile(p4));
        v0_1.putExtra("type", p5);
        v0_1.putExtra("class", "com.millennialmedia.android.BridgeMMMedia$PickerActivity");
        com.millennialmedia.android.Utils$IntentUtils.startActivity(p3, v0_1);
        return;
    }

Method android.content.Intent.putExtra() not found.

[TAINT] String 'com.millennialmedia.android.CachedVideoPlayerActivity' ==>>> Sink '['Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;', '1', 'IPC_SINK']' [[('Lcom/millennialmedia/android/Utils$IntentUtils;', 'startCachedVideoPlayerActivity', '(Landroid/content/Context; Landroid/content/Intent;)V'), ('Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value com.millennialmedia.android.CachedVideoPlayerActivity to construct an Intent

Method com.millennialmedia.android.Utils$IntentUtils.startCachedVideoPlayerActivity():


    static void startCachedVideoPlayerActivity(android.content.Context p2, android.content.Intent p3)
    {
        p3.setClass(p2, com.millennialmedia.android.MMActivity);
        p3.putExtra("class", "com.millennialmedia.android.CachedVideoPlayerActivity");
        com.millennialmedia.android.Utils$IntentUtils.startActivity(p2, p3);
        return;
    }

Method android.content.Intent.putExtra() not found.

[TAINT] String 'com.millennialmedia.android.AdViewOverlayActivity' ==>>> Sink '['Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;', '1', 'IPC_SINK']' [[('Lcom/millennialmedia/android/Utils$IntentUtils;', 'startAdViewOverlayActivityWithData', '(Landroid/content/Context; Ljava/lang/String;)V'), ('Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value com.millennialmedia.android.AdViewOverlayActivity to construct an Intent

Method com.millennialmedia.android.Utils$IntentUtils.startAdViewOverlayActivityWithData():


    static void startAdViewOverlayActivityWithData(android.content.Context p3, String p4)
    {
        android.content.Intent v0_1 = new android.content.Intent(p3, com.millennialmedia.android.MMActivity);
        v0_1.putExtra("class", "com.millennialmedia.android.AdViewOverlayActivity");
        v0_1.setData(android.net.Uri.parse(p4));
        com.millennialmedia.android.Utils$IntentUtils.startActivity(p3, v0_1);
        return;
    }

Method android.content.Intent.putExtra() not found.

[TAINT] String 'com.millennialmedia.android.AdViewOverlayActivity' ==>>> Sink '['Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;', '1', 'IPC_SINK']' [[('Lcom/millennialmedia/android/Utils$IntentUtils;', 'startAdViewOverlayActivity', '(Landroid/content/Context; Landroid/content/Intent;)V'), ('Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value com.millennialmedia.android.AdViewOverlayActivity to construct an Intent

Method com.millennialmedia.android.Utils$IntentUtils.startAdViewOverlayActivity():


    static void startAdViewOverlayActivity(android.content.Context p2, android.content.Intent p3)
    {
        p3.setClass(p2, com.millennialmedia.android.MMActivity);
        p3.putExtra("class", "com.millennialmedia.android.AdViewOverlayActivity");
        com.millennialmedia.android.Utils$IntentUtils.startActivity(p2, p3);
        return;
    }

Method android.content.Intent.putExtra() not found.

[TAINT] String 'com.millennialmedia.android.AdViewOverlayActivity' ==>>> Sink '['Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;', '1', 'IPC_SINK']' [[('Lcom/millennialmedia/android/Utils$IntentUtils;', 'startAdViewOverlayActivity', '(Landroid/content/Context;)V'), ('Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value com.millennialmedia.android.AdViewOverlayActivity to construct an Intent

Method com.millennialmedia.android.Utils$IntentUtils.startAdViewOverlayActivity():


    static void startAdViewOverlayActivity(android.content.Context p3)
    {
        android.content.Intent v0_1 = new android.content.Intent(p3, com.millennialmedia.android.MMActivity);
        v0_1.putExtra("class", "com.millennialmedia.android.AdViewOverlayActivity");
        com.millennialmedia.android.Utils$IntentUtils.startActivity(p3, v0_1);
        return;
    }

Method android.content.Intent.putExtra() not found.

[TAINT] String 'millennialmedia.action.ACTION_OVERLAY_TAP' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMWebView$2;', 'onSingleTapConfirmed', '(Landroid/view/MotionEvent;)Z'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayTap', '(Landroid/content/Context; J)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_OVERLAY_TAP to construct an Intent

Method com.millennialmedia.android.MMWebView$2.onSingleTapConfirmed():


    public boolean onSingleTapConfirmed(android.view.MotionEvent p4)
    {
        com.millennialmedia.android.MMSDK$Event.overlayTap(this.val$context, this.this$0.creatorAdImplId);
        return 0;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayTap():


    static void overlayTap(android.content.Context p2, long p3)
    {
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_OVERLAY_TAP"), p3);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMWebView$2;', 'onSingleTapConfirmed', '(Landroid/view/MotionEvent;)Z'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayTap', '(Landroid/content/Context; J)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.MMWebView$2.onSingleTapConfirmed():


    public boolean onSingleTapConfirmed(android.view.MotionEvent p4)
    {
        com.millennialmedia.android.MMSDK$Event.overlayTap(this.val$context, this.this$0.creatorAdImplId);
        return 0;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayTap():


    static void overlayTap(android.content.Context p2, long p3)
    {
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_OVERLAY_TAP"), p3);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_FETCH_FAILED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_FETCH_FAILED to construct an Intent

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMSDK$Event;', 'requestCompleted', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.MMSDK$Event.requestCompleted():


    static void requestCompleted(com.millennialmedia.android.MMAdImpl p5)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$4(p5));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestCompletedAction()), p5.internalId);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_FETCH_SUCCEEDED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMSDK$Event;', 'requestCompleted', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_FETCH_SUCCEEDED to construct an Intent

Method com.millennialmedia.android.MMSDK$Event.requestCompleted():


    static void requestCompleted(com.millennialmedia.android.MMAdImpl p5)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$4(p5));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestCompletedAction()), p5.internalId);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayTap', '(Landroid/content/Context; J)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.MMSDK$Event.overlayTap():


    static void overlayTap(android.content.Context p2, long p3)
    {
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_OVERLAY_TAP"), p3);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_OVERLAY_TAP' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayTap', '(Landroid/content/Context; J)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_OVERLAY_TAP to construct an Intent

Method com.millennialmedia.android.MMSDK$Event.overlayTap():


    static void overlayTap(android.content.Context p2, long p3)
    {
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_OVERLAY_TAP"), p3);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayOpenedBroadCast', '(Landroid/content/Context; J)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.MMSDK$Event.overlayOpenedBroadCast():


    static void overlayOpenedBroadCast(android.content.Context p2, long p3)
    {
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_OVERLAY_OPENED"), p3);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_OVERLAY_OPENED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayOpenedBroadCast', '(Landroid/content/Context; J)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_OVERLAY_OPENED to construct an Intent

Method com.millennialmedia.android.MMSDK$Event.overlayOpenedBroadCast():


    static void overlayOpenedBroadCast(android.content.Context p2, long p3)
    {
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_OVERLAY_OPENED"), p3);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayOpened', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayOpenedBroadCast', '(Landroid/content/Context; J)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.MMSDK$Event.overlayOpened():


    static void overlayOpened(com.millennialmedia.android.MMAdImpl p3)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$3(p3));
        com.millennialmedia.android.MMSDK$Event.overlayOpenedBroadCast(p3.getContext(), p3.internalId);
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayOpenedBroadCast():


    static void overlayOpenedBroadCast(android.content.Context p2, long p3)
    {
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_OVERLAY_OPENED"), p3);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_OVERLAY_OPENED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayOpened', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayOpenedBroadCast', '(Landroid/content/Context; J)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_OVERLAY_OPENED to construct an Intent

Method com.millennialmedia.android.MMSDK$Event.overlayOpened():


    static void overlayOpened(com.millennialmedia.android.MMAdImpl p3)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$3(p3));
        com.millennialmedia.android.MMSDK$Event.overlayOpenedBroadCast(p3.getContext(), p3.internalId);
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayOpenedBroadCast():


    static void overlayOpenedBroadCast(android.content.Context p2, long p3)
    {
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_OVERLAY_OPENED"), p3);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.action.ACTION_OVERLAY_CLOSED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayClosed', '(Landroid/content/Context; J)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_OVERLAY_CLOSED to construct an Intent

Method com.millennialmedia.android.MMSDK$Event.overlayClosed():


    static void overlayClosed(android.content.Context p2, long p3)
    {
        if ((com.millennialmedia.android.MMSDK.access$000()) && (p2 != null)) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_OVERLAY_CLOSED"), p3);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayClosed', '(Landroid/content/Context; J)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.MMSDK$Event.overlayClosed():


    static void overlayClosed(android.content.Context p2, long p3)
    {
        if ((com.millennialmedia.android.MMSDK.access$000()) && (p2 != null)) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_OVERLAY_CLOSED"), p3);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_INTENT_STARTED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMSDK$Event;', 'intentStarted', '(Landroid/content/Context; Ljava/lang/String; J)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_INTENT_STARTED to construct an Intent

Method com.millennialmedia.android.MMSDK$Event.intentStarted():


    static void intentStarted(android.content.Context p2, String p3, long p4)
    {
        if ((com.millennialmedia.android.MMSDK.access$000()) && (p3 != null)) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_INTENT_STARTED").putExtra("intentType", p3), p4);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMSDK$Event;', 'intentStarted', '(Landroid/content/Context; Ljava/lang/String; J)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.MMSDK$Event.intentStarted():


    static void intentStarted(android.content.Context p2, String p3, long p4)
    {
        if ((com.millennialmedia.android.MMSDK.access$000()) && (p3 != null)) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_INTENT_STARTED").putExtra("intentType", p3), p4);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_FETCH_STARTED_CACHING' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMSDK$Event;', 'fetchStartedCaching', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_FETCH_STARTED_CACHING to construct an Intent

Method com.millennialmedia.android.MMSDK$Event.fetchStartedCaching():


    static void fetchStartedCaching(com.millennialmedia.android.MMAdImpl p4)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$2(p4));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p4.getContext(), new android.content.Intent("millennialmedia.action.ACTION_FETCH_STARTED_CACHING"), p4.internalId);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMSDK$Event;', 'fetchStartedCaching', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.MMSDK$Event.fetchStartedCaching():


    static void fetchStartedCaching(com.millennialmedia.android.MMAdImpl p4)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$2(p4));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p4.getContext(), new android.content.Intent("millennialmedia.action.ACTION_FETCH_STARTED_CACHING"), p4.internalId);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_OVERLAY_OPENED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMSDK$Event;', 'displayStarted', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayOpened', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayOpenedBroadCast', '(Landroid/content/Context; J)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_OVERLAY_OPENED to construct an Intent

Method com.millennialmedia.android.MMSDK$Event.displayStarted():


    static void displayStarted(com.millennialmedia.android.MMAdImpl p4)
    {
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p4.getContext(), new android.content.Intent("millennialmedia.action.ACTION_DISPLAY_STARTED"), p4.internalId);
        }
        com.millennialmedia.android.MMSDK$Event.overlayOpened(p4);
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayOpened():


    static void overlayOpened(com.millennialmedia.android.MMAdImpl p3)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$3(p3));
        com.millennialmedia.android.MMSDK$Event.overlayOpenedBroadCast(p3.getContext(), p3.internalId);
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayOpenedBroadCast():


    static void overlayOpenedBroadCast(android.content.Context p2, long p3)
    {
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_OVERLAY_OPENED"), p3);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.action.ACTION_DISPLAY_STARTED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMSDK$Event;', 'displayStarted', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_DISPLAY_STARTED to construct an Intent

Method com.millennialmedia.android.MMSDK$Event.displayStarted():


    static void displayStarted(com.millennialmedia.android.MMAdImpl p4)
    {
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p4.getContext(), new android.content.Intent("millennialmedia.action.ACTION_DISPLAY_STARTED"), p4.internalId);
        }
        com.millennialmedia.android.MMSDK$Event.overlayOpened(p4);
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMSDK$Event;', 'displayStarted', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayOpened', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayOpenedBroadCast', '(Landroid/content/Context; J)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.MMSDK$Event.displayStarted():


    static void displayStarted(com.millennialmedia.android.MMAdImpl p4)
    {
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p4.getContext(), new android.content.Intent("millennialmedia.action.ACTION_DISPLAY_STARTED"), p4.internalId);
        }
        com.millennialmedia.android.MMSDK$Event.overlayOpened(p4);
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayOpened():


    static void overlayOpened(com.millennialmedia.android.MMAdImpl p3)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$3(p3));
        com.millennialmedia.android.MMSDK$Event.overlayOpenedBroadCast(p3.getContext(), p3.internalId);
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayOpenedBroadCast():


    static void overlayOpenedBroadCast(android.content.Context p2, long p3)
    {
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_OVERLAY_OPENED"), p3);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMBaseActivity;', 'finish', '()V'), ('Lcom/millennialmedia/android/MMActivity;', 'finishSuper', '()V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayClosed', '(Landroid/content/Context; J)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.MMBaseActivity.finish():


    public void finish()
    {
        this.activity.finishSuper();
        return;
    }

Method com.millennialmedia.android.MMActivity.finishSuper():


    public void finishSuper()
    {
        com.millennialmedia.android.MMSDK$Event.overlayClosed(this, this.creatorAdImplInternalId);
        super.finish();
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayClosed():


    static void overlayClosed(android.content.Context p2, long p3)
    {
        if ((com.millennialmedia.android.MMSDK.access$000()) && (p2 != null)) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_OVERLAY_CLOSED"), p3);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_OVERLAY_CLOSED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMBaseActivity;', 'finish', '()V'), ('Lcom/millennialmedia/android/MMActivity;', 'finishSuper', '()V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayClosed', '(Landroid/content/Context; J)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_OVERLAY_CLOSED to construct an Intent

Method com.millennialmedia.android.MMBaseActivity.finish():


    public void finish()
    {
        this.activity.finishSuper();
        return;
    }

Method com.millennialmedia.android.MMActivity.finishSuper():


    public void finishSuper()
    {
        com.millennialmedia.android.MMSDK$Event.overlayClosed(this, this.creatorAdImplInternalId);
        super.finish();
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayClosed():


    static void overlayClosed(android.content.Context p2, long p3)
    {
        if ((com.millennialmedia.android.MMSDK.access$000()) && (p2 != null)) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_OVERLAY_CLOSED"), p3);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdImplController$RequestAdRunnable;', 'run', '()V'), ('Lcom/millennialmedia/android/MMAdImplController$RequestAdRunnable;', 'failWithInfoMessage', '(Lcom/millennialmedia/android/MMException;)Z'), ('Lcom/millennialmedia/android/MMAdImplController$RequestAdRunnable;', 'fail', '(Lcom/millennialmedia/android/MMException;)Z'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.MMAdImplController$RequestAdRunnable.run():


    public void run()
    {
        try {
            if (this.this$0.adImplRef == null) {
                this.this$0.requestAdRunnable = 0;
            } else {
                com.millennialmedia.android.MMAdImpl v0_1 = ((com.millennialmedia.android.MMAdImpl) this.this$0.adImplRef.get());
                if ((v0_1 == null) || (!com.millennialmedia.android.MMSDK.isConnected(v0_1.getContext()))) {
                    this.failWithInfoMessage(new com.millennialmedia.android.MMException("No network available, can\'t call for ads.", 11));
                    this.this$0.requestAdRunnable = 0;
                } else {
                    if (this.isAdUrlBuildable()) {
                        try {
                            org.apache.http.HttpResponse v2 = new com.millennialmedia.android.HttpGetRequest().get(this.adUrl);
                        } catch (Exception v1) {
                            this.failWithErrorMessage(new com.millennialmedia.android.MMException(new StringBuilder().append("Ad request HTTP error. ").append(v1.getMessage()).toString(), 14));
                            this.this$0.requestAdRunnable = 0;
                        }
                        if (v2 != null) {
                            if (this.isHandledResponse(v2)) {
                            } else {
                                this.this$0.requestAdRunnable = 0;
                            }
                        } else {
                            this.failWithErrorMessage(new com.millennialmedia.android.MMException("HTTP response is null.", 14));
                            this.this$0.requestAdRunnable = 0;
                        }
                    } else {
                        this.this$0.requestAdRunnable = 0;
                    }
                }
            }
        } catch (com.millennialmedia.android.MMAdImplController v3_19) {
            this.this$0.requestAdRunnable = 0;
            throw v3_19;
        } catch (Exception v1) {
            this.failWithInfoMessage(new com.millennialmedia.android.MMException("Request not filled, can\'t call for ads.", 14));
            this.this$0.requestAdRunnable = 0;
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController$RequestAdRunnable.failWithInfoMessage():


    boolean failWithInfoMessage(com.millennialmedia.android.MMException p2)
    {
        com.millennialmedia.android.MMSDK$Log.i(p2.getMessage());
        return this.fail(p2);
    }

Method com.millennialmedia.android.MMAdImplController$RequestAdRunnable.fail():


    boolean fail(com.millennialmedia.android.MMException p3)
    {
        com.millennialmedia.android.MMAdImpl v0_0 = 0;
        if (this.this$0.adImplRef != null) {
            v0_0 = ((com.millennialmedia.android.MMAdImpl) this.this$0.adImplRef.get());
        }
        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_0, p3);
        return 0;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_FETCH_FAILED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdImplController$RequestAdRunnable;', 'run', '()V'), ('Lcom/millennialmedia/android/MMAdImplController$RequestAdRunnable;', 'failWithInfoMessage', '(Lcom/millennialmedia/android/MMException;)Z'), ('Lcom/millennialmedia/android/MMAdImplController$RequestAdRunnable;', 'fail', '(Lcom/millennialmedia/android/MMException;)Z'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_FETCH_FAILED to construct an Intent

Method com.millennialmedia.android.MMAdImplController$RequestAdRunnable.run():


    public void run()
    {
        try {
            if (this.this$0.adImplRef == null) {
                this.this$0.requestAdRunnable = 0;
            } else {
                com.millennialmedia.android.MMAdImpl v0_1 = ((com.millennialmedia.android.MMAdImpl) this.this$0.adImplRef.get());
                if ((v0_1 == null) || (!com.millennialmedia.android.MMSDK.isConnected(v0_1.getContext()))) {
                    this.failWithInfoMessage(new com.millennialmedia.android.MMException("No network available, can\'t call for ads.", 11));
                    this.this$0.requestAdRunnable = 0;
                } else {
                    if (this.isAdUrlBuildable()) {
                        try {
                            org.apache.http.HttpResponse v2 = new com.millennialmedia.android.HttpGetRequest().get(this.adUrl);
                        } catch (Exception v1) {
                            this.failWithErrorMessage(new com.millennialmedia.android.MMException(new StringBuilder().append("Ad request HTTP error. ").append(v1.getMessage()).toString(), 14));
                            this.this$0.requestAdRunnable = 0;
                        }
                        if (v2 != null) {
                            if (this.isHandledResponse(v2)) {
                            } else {
                                this.this$0.requestAdRunnable = 0;
                            }
                        } else {
                            this.failWithErrorMessage(new com.millennialmedia.android.MMException("HTTP response is null.", 14));
                            this.this$0.requestAdRunnable = 0;
                        }
                    } else {
                        this.this$0.requestAdRunnable = 0;
                    }
                }
            }
        } catch (com.millennialmedia.android.MMAdImplController v3_19) {
            this.this$0.requestAdRunnable = 0;
            throw v3_19;
        } catch (Exception v1) {
            this.failWithInfoMessage(new com.millennialmedia.android.MMException("Request not filled, can\'t call for ads.", 14));
            this.this$0.requestAdRunnable = 0;
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController$RequestAdRunnable.failWithInfoMessage():


    boolean failWithInfoMessage(com.millennialmedia.android.MMException p2)
    {
        com.millennialmedia.android.MMSDK$Log.i(p2.getMessage());
        return this.fail(p2);
    }

Method com.millennialmedia.android.MMAdImplController$RequestAdRunnable.fail():


    boolean fail(com.millennialmedia.android.MMException p3)
    {
        com.millennialmedia.android.MMAdImpl v0_0 = 0;
        if (this.this$0.adImplRef != null) {
            v0_0 = ((com.millennialmedia.android.MMAdImpl) this.this$0.adImplRef.get());
        }
        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_0, p3);
        return 0;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.action.ACTION_FETCH_FAILED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdImplController$RequestAdRunnable;', 'failWithInfoMessage', '(Lcom/millennialmedia/android/MMException;)Z'), ('Lcom/millennialmedia/android/MMAdImplController$RequestAdRunnable;', 'fail', '(Lcom/millennialmedia/android/MMException;)Z'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_FETCH_FAILED to construct an Intent

Method com.millennialmedia.android.MMAdImplController$RequestAdRunnable.failWithInfoMessage():


    boolean failWithInfoMessage(com.millennialmedia.android.MMException p2)
    {
        com.millennialmedia.android.MMSDK$Log.i(p2.getMessage());
        return this.fail(p2);
    }

Method com.millennialmedia.android.MMAdImplController$RequestAdRunnable.fail():


    boolean fail(com.millennialmedia.android.MMException p3)
    {
        com.millennialmedia.android.MMAdImpl v0_0 = 0;
        if (this.this$0.adImplRef != null) {
            v0_0 = ((com.millennialmedia.android.MMAdImpl) this.this$0.adImplRef.get());
        }
        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_0, p3);
        return 0;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdImplController$RequestAdRunnable;', 'failWithInfoMessage', '(Lcom/millennialmedia/android/MMException;)Z'), ('Lcom/millennialmedia/android/MMAdImplController$RequestAdRunnable;', 'fail', '(Lcom/millennialmedia/android/MMException;)Z'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.MMAdImplController$RequestAdRunnable.failWithInfoMessage():


    boolean failWithInfoMessage(com.millennialmedia.android.MMException p2)
    {
        com.millennialmedia.android.MMSDK$Log.i(p2.getMessage());
        return this.fail(p2);
    }

Method com.millennialmedia.android.MMAdImplController$RequestAdRunnable.fail():


    boolean fail(com.millennialmedia.android.MMException p3)
    {
        com.millennialmedia.android.MMAdImpl v0_0 = 0;
        if (this.this$0.adImplRef != null) {
            v0_0 = ((com.millennialmedia.android.MMAdImpl) this.this$0.adImplRef.get());
        }
        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_0, p3);
        return 0;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_FETCH_FAILED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdImplController$RequestAdRunnable;', 'failWithErrorMessage', '(Lcom/millennialmedia/android/MMException;)Z'), ('Lcom/millennialmedia/android/MMAdImplController$RequestAdRunnable;', 'fail', '(Lcom/millennialmedia/android/MMException;)Z'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_FETCH_FAILED to construct an Intent

Method com.millennialmedia.android.MMAdImplController$RequestAdRunnable.failWithErrorMessage():


    boolean failWithErrorMessage(com.millennialmedia.android.MMException p2)
    {
        com.millennialmedia.android.MMSDK$Log.e(p2.getMessage());
        return this.fail(p2);
    }

Method com.millennialmedia.android.MMAdImplController$RequestAdRunnable.fail():


    boolean fail(com.millennialmedia.android.MMException p3)
    {
        com.millennialmedia.android.MMAdImpl v0_0 = 0;
        if (this.this$0.adImplRef != null) {
            v0_0 = ((com.millennialmedia.android.MMAdImpl) this.this$0.adImplRef.get());
        }
        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_0, p3);
        return 0;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdImplController$RequestAdRunnable;', 'failWithErrorMessage', '(Lcom/millennialmedia/android/MMException;)Z'), ('Lcom/millennialmedia/android/MMAdImplController$RequestAdRunnable;', 'fail', '(Lcom/millennialmedia/android/MMException;)Z'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.MMAdImplController$RequestAdRunnable.failWithErrorMessage():


    boolean failWithErrorMessage(com.millennialmedia.android.MMException p2)
    {
        com.millennialmedia.android.MMSDK$Log.e(p2.getMessage());
        return this.fail(p2);
    }

Method com.millennialmedia.android.MMAdImplController$RequestAdRunnable.fail():


    boolean fail(com.millennialmedia.android.MMException p3)
    {
        com.millennialmedia.android.MMAdImpl v0_0 = 0;
        if (this.this$0.adImplRef != null) {
            v0_0 = ((com.millennialmedia.android.MMAdImpl) this.this$0.adImplRef.get());
        }
        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_0, p3);
        return 0;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_FETCH_FAILED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdImplController$RequestAdRunnable;', 'fail', '(Lcom/millennialmedia/android/MMException;)Z'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_FETCH_FAILED to construct an Intent

Method com.millennialmedia.android.MMAdImplController$RequestAdRunnable.fail():


    boolean fail(com.millennialmedia.android.MMException p3)
    {
        com.millennialmedia.android.MMAdImpl v0_0 = 0;
        if (this.this$0.adImplRef != null) {
            v0_0 = ((com.millennialmedia.android.MMAdImpl) this.this$0.adImplRef.get());
        }
        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_0, p3);
        return 0;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdImplController$RequestAdRunnable;', 'fail', '(Lcom/millennialmedia/android/MMException;)Z'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.MMAdImplController$RequestAdRunnable.fail():


    boolean fail(com.millennialmedia.android.MMException p3)
    {
        com.millennialmedia.android.MMAdImpl v0_0 = 0;
        if (this.this$0.adImplRef != null) {
            v0_0 = ((com.millennialmedia.android.MMAdImpl) this.this$0.adImplRef.get());
        }
        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_0, p3);
        return 0;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_FETCH_FAILED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdImplController$RequestAdRunnable;', 'isHandledResponse', '(Lorg/apache/http/HttpResponse;)Z'), ('Lcom/millennialmedia/android/MMAdImplController$RequestAdRunnable;', 'failWithInfoMessage', '(Lcom/millennialmedia/android/MMException;)Z'), ('Lcom/millennialmedia/android/MMAdImplController$RequestAdRunnable;', 'fail', '(Lcom/millennialmedia/android/MMException;)Z'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_FETCH_FAILED to construct an Intent

Method com.millennialmedia.android.MMAdImplController$RequestAdRunnable.isHandledResponse():


    private boolean isHandledResponse(org.apache.http.HttpResponse p13)
    {
        com.millennialmedia.android.HandShake v5_0 = 0;
        org.apache.http.HttpEntity v2 = p13.getEntity();
        if (v2 != null) {
            if (v2.getContentLength() != 0) {
                this.saveMacId(p13);
                org.apache.http.Header v3 = v2.getContentType();
                if ((v3 == null) || (v3.getValue() == null)) {
                    this.failWithInfoMessage(new com.millennialmedia.android.MMException("Millennial ad return failed. HTTP Header value null.", 15));
                } else {
                    if (!v3.getValue().toLowerCase().startsWith("application/json")) {
                        if (!v3.getValue().toLowerCase().startsWith("text/html")) {
                            this.failWithInfoMessage(new com.millennialmedia.android.MMException("Millennial ad return failed. Invalid (JSON/HTML expected) mime type returned.", 15));
                            return v5_0;
                        } else {
                            org.apache.http.Header v4 = p13.getFirstHeader("X-MM-Video");
                            this.mmHeaders = new com.millennialmedia.android.HttpMMHeaders(p13.getAllHeaders());
                            if ((v4 != null) && (v4.getValue().equalsIgnoreCase("true"))) {
                                com.millennialmedia.android.MMAdImpl v0_0 = 0;
                                if (this.this$0.adImplRef != null) {
                                    v0_0 = ((com.millennialmedia.android.MMAdImpl) this.this$0.adImplRef.get());
                                }
                                if (v0_0 != null) {
                                    android.content.Context v1 = v0_0.getContext();
                                    com.millennialmedia.android.HandShake.sharedHandShake(v1).updateLastVideoViewedTime(v1, v0_0.adType);
                                }
                            }
                            this.isHandledHtmlResponse(v2);
                        }
                    } else {
                        this.isHandledJsonResponse(v2);
                    }
                    v5_0 = 1;
                }
            } else {
                this.failWithInfoMessage(new com.millennialmedia.android.MMException("Millennial ad return failed. Zero content length returned.", 14));
            }
        } else {
            this.failWithInfoMessage(new com.millennialmedia.android.MMException("Null HTTP entity", 14));
        }
        return v5_0;
    }

Method com.millennialmedia.android.MMAdImplController$RequestAdRunnable.failWithInfoMessage():


    boolean failWithInfoMessage(com.millennialmedia.android.MMException p2)
    {
        com.millennialmedia.android.MMSDK$Log.i(p2.getMessage());
        return this.fail(p2);
    }

Method com.millennialmedia.android.MMAdImplController$RequestAdRunnable.fail():


    boolean fail(com.millennialmedia.android.MMException p3)
    {
        com.millennialmedia.android.MMAdImpl v0_0 = 0;
        if (this.this$0.adImplRef != null) {
            v0_0 = ((com.millennialmedia.android.MMAdImpl) this.this$0.adImplRef.get());
        }
        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_0, p3);
        return 0;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdImplController$RequestAdRunnable;', 'isHandledResponse', '(Lorg/apache/http/HttpResponse;)Z'), ('Lcom/millennialmedia/android/MMAdImplController$RequestAdRunnable;', 'failWithInfoMessage', '(Lcom/millennialmedia/android/MMException;)Z'), ('Lcom/millennialmedia/android/MMAdImplController$RequestAdRunnable;', 'fail', '(Lcom/millennialmedia/android/MMException;)Z'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.MMAdImplController$RequestAdRunnable.isHandledResponse():


    private boolean isHandledResponse(org.apache.http.HttpResponse p13)
    {
        com.millennialmedia.android.HandShake v5_0 = 0;
        org.apache.http.HttpEntity v2 = p13.getEntity();
        if (v2 != null) {
            if (v2.getContentLength() != 0) {
                this.saveMacId(p13);
                org.apache.http.Header v3 = v2.getContentType();
                if ((v3 == null) || (v3.getValue() == null)) {
                    this.failWithInfoMessage(new com.millennialmedia.android.MMException("Millennial ad return failed. HTTP Header value null.", 15));
                } else {
                    if (!v3.getValue().toLowerCase().startsWith("application/json")) {
                        if (!v3.getValue().toLowerCase().startsWith("text/html")) {
                            this.failWithInfoMessage(new com.millennialmedia.android.MMException("Millennial ad return failed. Invalid (JSON/HTML expected) mime type returned.", 15));
                            return v5_0;
                        } else {
                            org.apache.http.Header v4 = p13.getFirstHeader("X-MM-Video");
                            this.mmHeaders = new com.millennialmedia.android.HttpMMHeaders(p13.getAllHeaders());
                            if ((v4 != null) && (v4.getValue().equalsIgnoreCase("true"))) {
                                com.millennialmedia.android.MMAdImpl v0_0 = 0;
                                if (this.this$0.adImplRef != null) {
                                    v0_0 = ((com.millennialmedia.android.MMAdImpl) this.this$0.adImplRef.get());
                                }
                                if (v0_0 != null) {
                                    android.content.Context v1 = v0_0.getContext();
                                    com.millennialmedia.android.HandShake.sharedHandShake(v1).updateLastVideoViewedTime(v1, v0_0.adType);
                                }
                            }
                            this.isHandledHtmlResponse(v2);
                        }
                    } else {
                        this.isHandledJsonResponse(v2);
                    }
                    v5_0 = 1;
                }
            } else {
                this.failWithInfoMessage(new com.millennialmedia.android.MMException("Millennial ad return failed. Zero content length returned.", 14));
            }
        } else {
            this.failWithInfoMessage(new com.millennialmedia.android.MMException("Null HTTP entity", 14));
        }
        return v5_0;
    }

Method com.millennialmedia.android.MMAdImplController$RequestAdRunnable.failWithInfoMessage():


    boolean failWithInfoMessage(com.millennialmedia.android.MMException p2)
    {
        com.millennialmedia.android.MMSDK$Log.i(p2.getMessage());
        return this.fail(p2);
    }

Method com.millennialmedia.android.MMAdImplController$RequestAdRunnable.fail():


    boolean fail(com.millennialmedia.android.MMException p3)
    {
        com.millennialmedia.android.MMAdImpl v0_0 = 0;
        if (this.this$0.adImplRef != null) {
            v0_0 = ((com.millennialmedia.android.MMAdImpl) this.this$0.adImplRef.get());
        }
        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_0, p3);
        return 0;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdImplController$RequestAdRunnable;', 'isHandledJsonResponse', '(Lorg/apache/http/HttpEntity;)Z'), ('Lcom/millennialmedia/android/MMAdImplController$RequestAdRunnable;', 'failWithErrorMessage', '(Lcom/millennialmedia/android/MMException;)Z'), ('Lcom/millennialmedia/android/MMAdImplController$RequestAdRunnable;', 'fail', '(Lcom/millennialmedia/android/MMException;)Z'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.MMAdImplController$RequestAdRunnable.isHandledJsonResponse():


    private boolean isHandledJsonResponse(org.apache.http.HttpEntity p10)
    {
        com.millennialmedia.android.MMAdImpl v1_0 = 0;
        if (this.this$0.adImplRef != null) {
            v1_0 = ((com.millennialmedia.android.MMAdImpl) this.this$0.adImplRef.get());
        }
        android.content.Context v6_9;
        if (v1_0 == null) {
            v6_9 = 1;
        } else {
            if (!v1_0.isBanner()) {
                try {
                    com.millennialmedia.android.VideoAd v5 = ((com.millennialmedia.android.VideoAd) com.millennialmedia.android.CachedAd.parseJSON(com.millennialmedia.android.HttpGetRequest.convertStreamToString(p10.getContent())));
                } catch (IllegalStateException v2) {
                    v2.printStackTrace();
                    v6_9 = this.failWithInfoMessage(new com.millennialmedia.android.MMException("Millennial ad return failed. Invalid response data.", v2));
                } catch (java.io.IOException v3) {
                    v3.printStackTrace();
                    v6_9 = this.failWithInfoMessage(new com.millennialmedia.android.MMException(new StringBuilder().append("Millennial ad return failed. ").append(v3.getMessage()).toString(), v3));
                }
                if ((v5 == null) || (!v5.isValid())) {
                } else {
                    com.millennialmedia.android.MMSDK$Log.i(new StringBuilder().append("Cached video ad JSON received: ").append(v5.getId()).toString());
                    if (!v5.isExpired()) {
                        if (com.millennialmedia.android.AdCache.loadNextCachedAd(v1_0.getContext(), v1_0.getCachedName()) == null) {
                            com.millennialmedia.android.AdCache.save(v1_0.getContext(), v5);
                            if (v5.isOnDisk(v1_0.getContext())) {
                                com.millennialmedia.android.MMSDK$Log.d("Cached ad is valid. Moving it to the front of the queue.");
                                com.millennialmedia.android.AdCache.setNextCachedAd(v1_0.getContext(), v1_0.getCachedName(), v5.getId());
                                com.millennialmedia.android.MMSDK$Event.fetchStartedCaching(v1_0);
                                com.millennialmedia.android.MMSDK$Event.requestCompleted(v1_0);
                            } else {
                                com.millennialmedia.android.MMSDK$Event.logEvent(v5.cacheMissURL);
                                com.millennialmedia.android.MMSDK$Log.d("Downloading ad...");
                                com.millennialmedia.android.MMSDK$Event.fetchStartedCaching(v1_0);
                                v5.downloadPriority = 3;
                                com.millennialmedia.android.AdCache.startDownloadTask(v1_0.getContext(), v1_0.getCachedName(), v5, v1_0.controller);
                            }
                        } else {
                            com.millennialmedia.android.MMSDK$Log.i("Previously fetched ad exists in the playback queue. Not downloading ad content.");
                            v5.delete(v1_0.getContext());
                            com.millennialmedia.android.MMSDK$Event.requestFailed(v1_0, new com.millennialmedia.android.MMException(17));
                        }
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i("New ad has expiration date in the past. Not downloading ad content.");
                        v5.delete(v1_0.getContext());
                        com.millennialmedia.android.MMSDK$Event.requestFailed(v1_0, new com.millennialmedia.android.MMException(15));
                    }
                }
            } else {
                v6_9 = this.failWithErrorMessage(new com.millennialmedia.android.MMException("Millennial ad return unsupported format.", 15));
            }
        }
        return v6_9;
    }

Method com.millennialmedia.android.MMAdImplController$RequestAdRunnable.failWithErrorMessage():


    boolean failWithErrorMessage(com.millennialmedia.android.MMException p2)
    {
        com.millennialmedia.android.MMSDK$Log.e(p2.getMessage());
        return this.fail(p2);
    }

Method com.millennialmedia.android.MMAdImplController$RequestAdRunnable.fail():


    boolean fail(com.millennialmedia.android.MMException p3)
    {
        com.millennialmedia.android.MMAdImpl v0_0 = 0;
        if (this.this$0.adImplRef != null) {
            v0_0 = ((com.millennialmedia.android.MMAdImpl) this.this$0.adImplRef.get());
        }
        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_0, p3);
        return 0;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_FETCH_FAILED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdImplController$RequestAdRunnable;', 'isHandledJsonResponse', '(Lorg/apache/http/HttpEntity;)Z'), ('Lcom/millennialmedia/android/MMAdImplController$RequestAdRunnable;', 'failWithErrorMessage', '(Lcom/millennialmedia/android/MMException;)Z'), ('Lcom/millennialmedia/android/MMAdImplController$RequestAdRunnable;', 'fail', '(Lcom/millennialmedia/android/MMException;)Z'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_FETCH_FAILED to construct an Intent

Method com.millennialmedia.android.MMAdImplController$RequestAdRunnable.isHandledJsonResponse():


    private boolean isHandledJsonResponse(org.apache.http.HttpEntity p10)
    {
        com.millennialmedia.android.MMAdImpl v1_0 = 0;
        if (this.this$0.adImplRef != null) {
            v1_0 = ((com.millennialmedia.android.MMAdImpl) this.this$0.adImplRef.get());
        }
        android.content.Context v6_9;
        if (v1_0 == null) {
            v6_9 = 1;
        } else {
            if (!v1_0.isBanner()) {
                try {
                    com.millennialmedia.android.VideoAd v5 = ((com.millennialmedia.android.VideoAd) com.millennialmedia.android.CachedAd.parseJSON(com.millennialmedia.android.HttpGetRequest.convertStreamToString(p10.getContent())));
                } catch (IllegalStateException v2) {
                    v2.printStackTrace();
                    v6_9 = this.failWithInfoMessage(new com.millennialmedia.android.MMException("Millennial ad return failed. Invalid response data.", v2));
                } catch (java.io.IOException v3) {
                    v3.printStackTrace();
                    v6_9 = this.failWithInfoMessage(new com.millennialmedia.android.MMException(new StringBuilder().append("Millennial ad return failed. ").append(v3.getMessage()).toString(), v3));
                }
                if ((v5 == null) || (!v5.isValid())) {
                } else {
                    com.millennialmedia.android.MMSDK$Log.i(new StringBuilder().append("Cached video ad JSON received: ").append(v5.getId()).toString());
                    if (!v5.isExpired()) {
                        if (com.millennialmedia.android.AdCache.loadNextCachedAd(v1_0.getContext(), v1_0.getCachedName()) == null) {
                            com.millennialmedia.android.AdCache.save(v1_0.getContext(), v5);
                            if (v5.isOnDisk(v1_0.getContext())) {
                                com.millennialmedia.android.MMSDK$Log.d("Cached ad is valid. Moving it to the front of the queue.");
                                com.millennialmedia.android.AdCache.setNextCachedAd(v1_0.getContext(), v1_0.getCachedName(), v5.getId());
                                com.millennialmedia.android.MMSDK$Event.fetchStartedCaching(v1_0);
                                com.millennialmedia.android.MMSDK$Event.requestCompleted(v1_0);
                            } else {
                                com.millennialmedia.android.MMSDK$Event.logEvent(v5.cacheMissURL);
                                com.millennialmedia.android.MMSDK$Log.d("Downloading ad...");
                                com.millennialmedia.android.MMSDK$Event.fetchStartedCaching(v1_0);
                                v5.downloadPriority = 3;
                                com.millennialmedia.android.AdCache.startDownloadTask(v1_0.getContext(), v1_0.getCachedName(), v5, v1_0.controller);
                            }
                        } else {
                            com.millennialmedia.android.MMSDK$Log.i("Previously fetched ad exists in the playback queue. Not downloading ad content.");
                            v5.delete(v1_0.getContext());
                            com.millennialmedia.android.MMSDK$Event.requestFailed(v1_0, new com.millennialmedia.android.MMException(17));
                        }
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i("New ad has expiration date in the past. Not downloading ad content.");
                        v5.delete(v1_0.getContext());
                        com.millennialmedia.android.MMSDK$Event.requestFailed(v1_0, new com.millennialmedia.android.MMException(15));
                    }
                }
            } else {
                v6_9 = this.failWithErrorMessage(new com.millennialmedia.android.MMException("Millennial ad return unsupported format.", 15));
            }
        }
        return v6_9;
    }

Method com.millennialmedia.android.MMAdImplController$RequestAdRunnable.failWithErrorMessage():


    boolean failWithErrorMessage(com.millennialmedia.android.MMException p2)
    {
        com.millennialmedia.android.MMSDK$Log.e(p2.getMessage());
        return this.fail(p2);
    }

Method com.millennialmedia.android.MMAdImplController$RequestAdRunnable.fail():


    boolean fail(com.millennialmedia.android.MMException p3)
    {
        com.millennialmedia.android.MMAdImpl v0_0 = 0;
        if (this.this$0.adImplRef != null) {
            v0_0 = ((com.millennialmedia.android.MMAdImpl) this.this$0.adImplRef.get());
        }
        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_0, p3);
        return 0;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.action.ACTION_FETCH_STARTED_CACHING' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdImplController$RequestAdRunnable;', 'isHandledHtmlResponse', '(Lorg/apache/http/HttpEntity;)Z'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'fetchStartedCaching', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_FETCH_STARTED_CACHING to construct an Intent

Method com.millennialmedia.android.MMAdImplController$RequestAdRunnable.isHandledHtmlResponse():


    private boolean isHandledHtmlResponse(org.apache.http.HttpEntity p10)
    {
        com.millennialmedia.android.MMAdImpl v1 = 0;
        try {
            if (this.this$0.adImplRef == null) {
                if (v1 != null) {
                    if (v1.isBanner()) {
                        if (v1.controller != null) {
                            v1.controller.setWebViewContent(com.millennialmedia.android.HttpGetRequest.convertStreamToString(p10.getContent()), this.adUrl);
                        }
                        com.millennialmedia.android.MMSDK$Event.requestCompleted(v1);
                    } else {
                        com.millennialmedia.android.InterstitialAd v2_1 = new com.millennialmedia.android.InterstitialAd();
                        v2_1.content = com.millennialmedia.android.HttpGetRequest.convertStreamToString(p10.getContent());
                        v2_1.setId(v1.adType);
                        v2_1.adUrl = this.adUrl;
                        v2_1.mmHeaders = this.mmHeaders;
                        if (com.millennialmedia.android.MMSDK.logLevel >= 5) {
                            String v6_4 = new Object[1];
                            v6_4[0] = v2_1.adUrl;
                            com.millennialmedia.android.MMSDK$Log.v("Received interstitial ad with url %s.", v6_4);
                            com.millennialmedia.android.MMSDK$Log.v(v2_1.content);
                        }
                        com.millennialmedia.android.AdCache.save(v1.getContext(), v2_1);
                        com.millennialmedia.android.AdCache.setNextCachedAd(v1.getContext(), v1.getCachedName(), v2_1.getId());
                        com.millennialmedia.android.MMSDK$Event.fetchStartedCaching(v1);
                        com.millennialmedia.android.MMSDK$Event.requestCompleted(v1);
                    }
                }
                com.millennialmedia.android.MMAdImplController v4_17 = 1;
            } else {
                v1 = ((com.millennialmedia.android.MMAdImpl) this.this$0.adImplRef.get());
            }
        } catch (java.io.IOException v3) {
            v4_17 = this.failWithErrorMessage(new com.millennialmedia.android.MMException(new StringBuilder().append("Exception raised in HTTP stream: ").append(v3.getMessage()).toString(), v3));
        }
        return v4_17;
    }

Method com.millennialmedia.android.MMSDK$Event.fetchStartedCaching():


    static void fetchStartedCaching(com.millennialmedia.android.MMAdImpl p4)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$2(p4));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p4.getContext(), new android.content.Intent("millennialmedia.action.ACTION_FETCH_STARTED_CACHING"), p4.internalId);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdImplController$RequestAdRunnable;', 'isHandledHtmlResponse', '(Lorg/apache/http/HttpEntity;)Z'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestCompleted', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.MMAdImplController$RequestAdRunnable.isHandledHtmlResponse():


    private boolean isHandledHtmlResponse(org.apache.http.HttpEntity p10)
    {
        com.millennialmedia.android.MMAdImpl v1 = 0;
        try {
            if (this.this$0.adImplRef == null) {
                if (v1 != null) {
                    if (v1.isBanner()) {
                        if (v1.controller != null) {
                            v1.controller.setWebViewContent(com.millennialmedia.android.HttpGetRequest.convertStreamToString(p10.getContent()), this.adUrl);
                        }
                        com.millennialmedia.android.MMSDK$Event.requestCompleted(v1);
                    } else {
                        com.millennialmedia.android.InterstitialAd v2_1 = new com.millennialmedia.android.InterstitialAd();
                        v2_1.content = com.millennialmedia.android.HttpGetRequest.convertStreamToString(p10.getContent());
                        v2_1.setId(v1.adType);
                        v2_1.adUrl = this.adUrl;
                        v2_1.mmHeaders = this.mmHeaders;
                        if (com.millennialmedia.android.MMSDK.logLevel >= 5) {
                            String v6_4 = new Object[1];
                            v6_4[0] = v2_1.adUrl;
                            com.millennialmedia.android.MMSDK$Log.v("Received interstitial ad with url %s.", v6_4);
                            com.millennialmedia.android.MMSDK$Log.v(v2_1.content);
                        }
                        com.millennialmedia.android.AdCache.save(v1.getContext(), v2_1);
                        com.millennialmedia.android.AdCache.setNextCachedAd(v1.getContext(), v1.getCachedName(), v2_1.getId());
                        com.millennialmedia.android.MMSDK$Event.fetchStartedCaching(v1);
                        com.millennialmedia.android.MMSDK$Event.requestCompleted(v1);
                    }
                }
                com.millennialmedia.android.MMAdImplController v4_17 = 1;
            } else {
                v1 = ((com.millennialmedia.android.MMAdImpl) this.this$0.adImplRef.get());
            }
        } catch (java.io.IOException v3) {
            v4_17 = this.failWithErrorMessage(new com.millennialmedia.android.MMException(new StringBuilder().append("Exception raised in HTTP stream: ").append(v3.getMessage()).toString(), v3));
        }
        return v4_17;
    }

Method com.millennialmedia.android.MMSDK$Event.requestCompleted():


    static void requestCompleted(com.millennialmedia.android.MMAdImpl p5)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$4(p5));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestCompletedAction()), p5.internalId);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_FETCH_SUCCEEDED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdImplController$RequestAdRunnable;', 'isHandledHtmlResponse', '(Lorg/apache/http/HttpEntity;)Z'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestCompleted', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_FETCH_SUCCEEDED to construct an Intent

Method com.millennialmedia.android.MMAdImplController$RequestAdRunnable.isHandledHtmlResponse():


    private boolean isHandledHtmlResponse(org.apache.http.HttpEntity p10)
    {
        com.millennialmedia.android.MMAdImpl v1 = 0;
        try {
            if (this.this$0.adImplRef == null) {
                if (v1 != null) {
                    if (v1.isBanner()) {
                        if (v1.controller != null) {
                            v1.controller.setWebViewContent(com.millennialmedia.android.HttpGetRequest.convertStreamToString(p10.getContent()), this.adUrl);
                        }
                        com.millennialmedia.android.MMSDK$Event.requestCompleted(v1);
                    } else {
                        com.millennialmedia.android.InterstitialAd v2_1 = new com.millennialmedia.android.InterstitialAd();
                        v2_1.content = com.millennialmedia.android.HttpGetRequest.convertStreamToString(p10.getContent());
                        v2_1.setId(v1.adType);
                        v2_1.adUrl = this.adUrl;
                        v2_1.mmHeaders = this.mmHeaders;
                        if (com.millennialmedia.android.MMSDK.logLevel >= 5) {
                            String v6_4 = new Object[1];
                            v6_4[0] = v2_1.adUrl;
                            com.millennialmedia.android.MMSDK$Log.v("Received interstitial ad with url %s.", v6_4);
                            com.millennialmedia.android.MMSDK$Log.v(v2_1.content);
                        }
                        com.millennialmedia.android.AdCache.save(v1.getContext(), v2_1);
                        com.millennialmedia.android.AdCache.setNextCachedAd(v1.getContext(), v1.getCachedName(), v2_1.getId());
                        com.millennialmedia.android.MMSDK$Event.fetchStartedCaching(v1);
                        com.millennialmedia.android.MMSDK$Event.requestCompleted(v1);
                    }
                }
                com.millennialmedia.android.MMAdImplController v4_17 = 1;
            } else {
                v1 = ((com.millennialmedia.android.MMAdImpl) this.this$0.adImplRef.get());
            }
        } catch (java.io.IOException v3) {
            v4_17 = this.failWithErrorMessage(new com.millennialmedia.android.MMException(new StringBuilder().append("Exception raised in HTTP stream: ").append(v3.getMessage()).toString(), v3));
        }
        return v4_17;
    }

Method com.millennialmedia.android.MMSDK$Event.requestCompleted():


    static void requestCompleted(com.millennialmedia.android.MMAdImpl p5)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$4(p5));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestCompletedAction()), p5.internalId);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdImplController$RequestAdRunnable;', 'isAdUrlBuildable', '()Z'), ('Lcom/millennialmedia/android/MMAdImplController$RequestAdRunnable;', 'failWithInfoMessage', '(Lcom/millennialmedia/android/MMException;)Z'), ('Lcom/millennialmedia/android/MMAdImplController$RequestAdRunnable;', 'fail', '(Lcom/millennialmedia/android/MMException;)Z'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.MMAdImplController$RequestAdRunnable.isAdUrlBuildable():


    private boolean isAdUrlBuildable()
    {
        this.adUrl = 0;
        com.millennialmedia.android.MMAdImpl v0_1 = 0;
        if (this.this$0.adImplRef != null) {
            v0_1 = ((com.millennialmedia.android.MMAdImpl) this.this$0.adImplRef.get());
        }
        try {
            if (v0_1 == null) {
                this.failWithInfoMessage(new com.millennialmedia.android.MMException(25));
                String v7_16 = 1;
            } else {
                java.util.TreeMap v6_1 = new java.util.TreeMap(String.CASE_INSENSITIVE_ORDER);
                v0_1.insertUrlAdMetaValues(v6_1);
                com.millennialmedia.android.MMSDK.insertUrlCommonValues(v0_1.getContext(), v6_1);
                v6_1.put("ua", v0_1.controller.getUserAgent());
                StringBuilder v1_1 = new StringBuilder(com.millennialmedia.android.HandShake.getAdUrl());
                com.millennialmedia.android.MMSDK$Log.d(v6_1.entrySet().toString());
                java.util.Iterator v5 = v6_1.entrySet().iterator();
                while (v5.hasNext()) {
                    java.util.Map$Entry v4_1 = ((java.util.Map$Entry) v5.next());
                    int v10_1 = new Object[2];
                    v10_1[0] = v4_1.getKey();
                    v10_1[1] = java.net.URLEncoder.encode(((String) v4_1.getValue()), "UTF-8");
                    v1_1.append(String.format("%s=%s&", v10_1));
                }
                v1_1.delete((v1_1.length() - 1), v1_1.length());
                this.adUrl = v1_1.toString();
                Object[] v9_5 = new Object[1];
                v9_5[0] = this.adUrl;
                com.millennialmedia.android.MMSDK$Log.d("Calling for an advertisement: %s", v9_5);
            }
        } catch (java.io.UnsupportedEncodingException v2) {
            v7_16 = this.failWithErrorMessage(new com.millennialmedia.android.MMException(v2));
        }
        return v7_16;
    }

Method com.millennialmedia.android.MMAdImplController$RequestAdRunnable.failWithInfoMessage():


    boolean failWithInfoMessage(com.millennialmedia.android.MMException p2)
    {
        com.millennialmedia.android.MMSDK$Log.i(p2.getMessage());
        return this.fail(p2);
    }

Method com.millennialmedia.android.MMAdImplController$RequestAdRunnable.fail():


    boolean fail(com.millennialmedia.android.MMException p3)
    {
        com.millennialmedia.android.MMAdImpl v0_0 = 0;
        if (this.this$0.adImplRef != null) {
            v0_0 = ((com.millennialmedia.android.MMAdImpl) this.this$0.adImplRef.get());
        }
        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_0, p3);
        return 0;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_FETCH_FAILED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMAdImplController$RequestAdRunnable;', 'isAdUrlBuildable', '()Z'), ('Lcom/millennialmedia/android/MMAdImplController$RequestAdRunnable;', 'failWithInfoMessage', '(Lcom/millennialmedia/android/MMException;)Z'), ('Lcom/millennialmedia/android/MMAdImplController$RequestAdRunnable;', 'fail', '(Lcom/millennialmedia/android/MMException;)Z'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_FETCH_FAILED to construct an Intent

Method com.millennialmedia.android.MMAdImplController$RequestAdRunnable.isAdUrlBuildable():


    private boolean isAdUrlBuildable()
    {
        this.adUrl = 0;
        com.millennialmedia.android.MMAdImpl v0_1 = 0;
        if (this.this$0.adImplRef != null) {
            v0_1 = ((com.millennialmedia.android.MMAdImpl) this.this$0.adImplRef.get());
        }
        try {
            if (v0_1 == null) {
                this.failWithInfoMessage(new com.millennialmedia.android.MMException(25));
                String v7_16 = 1;
            } else {
                java.util.TreeMap v6_1 = new java.util.TreeMap(String.CASE_INSENSITIVE_ORDER);
                v0_1.insertUrlAdMetaValues(v6_1);
                com.millennialmedia.android.MMSDK.insertUrlCommonValues(v0_1.getContext(), v6_1);
                v6_1.put("ua", v0_1.controller.getUserAgent());
                StringBuilder v1_1 = new StringBuilder(com.millennialmedia.android.HandShake.getAdUrl());
                com.millennialmedia.android.MMSDK$Log.d(v6_1.entrySet().toString());
                java.util.Iterator v5 = v6_1.entrySet().iterator();
                while (v5.hasNext()) {
                    java.util.Map$Entry v4_1 = ((java.util.Map$Entry) v5.next());
                    int v10_1 = new Object[2];
                    v10_1[0] = v4_1.getKey();
                    v10_1[1] = java.net.URLEncoder.encode(((String) v4_1.getValue()), "UTF-8");
                    v1_1.append(String.format("%s=%s&", v10_1));
                }
                v1_1.delete((v1_1.length() - 1), v1_1.length());
                this.adUrl = v1_1.toString();
                Object[] v9_5 = new Object[1];
                v9_5[0] = this.adUrl;
                com.millennialmedia.android.MMSDK$Log.d("Calling for an advertisement: %s", v9_5);
            }
        } catch (java.io.UnsupportedEncodingException v2) {
            v7_16 = this.failWithErrorMessage(new com.millennialmedia.android.MMException(v2));
        }
        return v7_16;
    }

Method com.millennialmedia.android.MMAdImplController$RequestAdRunnable.failWithInfoMessage():


    boolean failWithInfoMessage(com.millennialmedia.android.MMException p2)
    {
        com.millennialmedia.android.MMSDK$Log.i(p2.getMessage());
        return this.fail(p2);
    }

Method com.millennialmedia.android.MMAdImplController$RequestAdRunnable.fail():


    boolean fail(com.millennialmedia.android.MMException p3)
    {
        com.millennialmedia.android.MMAdImpl v0_0 = 0;
        if (this.this$0.adImplRef != null) {
            v0_0 = ((com.millennialmedia.android.MMAdImpl) this.this$0.adImplRef.get());
        }
        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_0, p3);
        return 0;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMActivity;', 'finishSuper', '()V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayClosed', '(Landroid/content/Context; J)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.MMActivity.finishSuper():


    public void finishSuper()
    {
        com.millennialmedia.android.MMSDK$Event.overlayClosed(this, this.creatorAdImplInternalId);
        super.finish();
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayClosed():


    static void overlayClosed(android.content.Context p2, long p3)
    {
        if ((com.millennialmedia.android.MMSDK.access$000()) && (p2 != null)) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_OVERLAY_CLOSED"), p3);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_OVERLAY_CLOSED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMActivity;', 'finishSuper', '()V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayClosed', '(Landroid/content/Context; J)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_OVERLAY_CLOSED to construct an Intent

Method com.millennialmedia.android.MMActivity.finishSuper():


    public void finishSuper()
    {
        com.millennialmedia.android.MMSDK$Event.overlayClosed(this, this.creatorAdImplInternalId);
        super.finish();
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayClosed():


    static void overlayClosed(android.content.Context p2, long p3)
    {
        if ((com.millennialmedia.android.MMSDK.access$000()) && (p2 != null)) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_OVERLAY_CLOSED"), p3);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMActivity;', 'finish', '()V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayClosed', '(Landroid/content/Context; J)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.MMActivity.finish():


    public void finish()
    {
        if (this.mmBaseActivity == null) {
            com.millennialmedia.android.MMSDK$Event.overlayClosed(this, this.creatorAdImplInternalId);
            super.finish();
        } else {
            this.mmBaseActivity.finish();
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayClosed():


    static void overlayClosed(android.content.Context p2, long p3)
    {
        if ((com.millennialmedia.android.MMSDK.access$000()) && (p2 != null)) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_OVERLAY_CLOSED"), p3);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_OVERLAY_CLOSED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMActivity;', 'finish', '()V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayClosed', '(Landroid/content/Context; J)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_OVERLAY_CLOSED to construct an Intent

Method com.millennialmedia.android.MMActivity.finish():


    public void finish()
    {
        if (this.mmBaseActivity == null) {
            com.millennialmedia.android.MMSDK$Event.overlayClosed(this, this.creatorAdImplInternalId);
            super.finish();
        } else {
            this.mmBaseActivity.finish();
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayClosed():


    static void overlayClosed(android.content.Context p2, long p3)
    {
        if ((com.millennialmedia.android.MMSDK.access$000()) && (p2 != null)) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_OVERLAY_CLOSED"), p3);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.action.ACTION_OVERLAY_CLOSED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/AdViewOverlayView$FetchWebViewContentTask;', 'onPostExecute', '(Ljava/lang/String;)V'), ('Lcom/millennialmedia/android/AdViewOverlayActivity;', 'finish', '()V'), ('Lcom/millennialmedia/android/MMBaseActivity;', 'finish', '()V'), ('Lcom/millennialmedia/android/MMActivity;', 'finishSuper', '()V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayClosed', '(Landroid/content/Context; J)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_OVERLAY_CLOSED to construct an Intent

Method com.millennialmedia.android.AdViewOverlayView$FetchWebViewContentTask.onPostExecute():


    protected void onPostExecute(String p4)
    {
        if (this.cancelVideo) {
            com.millennialmedia.android.AdViewOverlayActivity v0_1 = ((com.millennialmedia.android.AdViewOverlayActivity) this.this$0.overlayActivityRef.get());
            if (v0_1 == null) {
                com.millennialmedia.android.AdViewOverlayView.access$200(this.this$0);
            } else {
                v0_1.finish();
            }
        }
        if (p4 != null) {
            this.this$0.adImpl.controller.setWebViewContent(p4, this.baseUrl);
        }
        return;
    }

Method com.millennialmedia.android.AdViewOverlayActivity.finish():


    public void finish()
    {
        if (this.adViewOverlayView != null) {
            this.adViewOverlayView.attachWebViewToLink();
        }
        super.finish();
        return;
    }

Method com.millennialmedia.android.MMBaseActivity.finish():


    public void finish()
    {
        this.activity.finishSuper();
        return;
    }

Method com.millennialmedia.android.MMActivity.finishSuper():


    public void finishSuper()
    {
        com.millennialmedia.android.MMSDK$Event.overlayClosed(this, this.creatorAdImplInternalId);
        super.finish();
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayClosed():


    static void overlayClosed(android.content.Context p2, long p3)
    {
        if ((com.millennialmedia.android.MMSDK.access$000()) && (p2 != null)) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_OVERLAY_CLOSED"), p3);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/AdViewOverlayView$FetchWebViewContentTask;', 'onPostExecute', '(Ljava/lang/String;)V'), ('Lcom/millennialmedia/android/AdViewOverlayActivity;', 'finish', '()V'), ('Lcom/millennialmedia/android/MMBaseActivity;', 'finish', '()V'), ('Lcom/millennialmedia/android/MMActivity;', 'finishSuper', '()V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayClosed', '(Landroid/content/Context; J)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.AdViewOverlayView$FetchWebViewContentTask.onPostExecute():


    protected void onPostExecute(String p4)
    {
        if (this.cancelVideo) {
            com.millennialmedia.android.AdViewOverlayActivity v0_1 = ((com.millennialmedia.android.AdViewOverlayActivity) this.this$0.overlayActivityRef.get());
            if (v0_1 == null) {
                com.millennialmedia.android.AdViewOverlayView.access$200(this.this$0);
            } else {
                v0_1.finish();
            }
        }
        if (p4 != null) {
            this.this$0.adImpl.controller.setWebViewContent(p4, this.baseUrl);
        }
        return;
    }

Method com.millennialmedia.android.AdViewOverlayActivity.finish():


    public void finish()
    {
        if (this.adViewOverlayView != null) {
            this.adViewOverlayView.attachWebViewToLink();
        }
        super.finish();
        return;
    }

Method com.millennialmedia.android.MMBaseActivity.finish():


    public void finish()
    {
        this.activity.finishSuper();
        return;
    }

Method com.millennialmedia.android.MMActivity.finishSuper():


    public void finishSuper()
    {
        com.millennialmedia.android.MMSDK$Event.overlayClosed(this, this.creatorAdImplInternalId);
        super.finish();
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayClosed():


    static void overlayClosed(android.content.Context p2, long p3)
    {
        if ((com.millennialmedia.android.MMSDK.access$000()) && (p2 != null)) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_OVERLAY_CLOSED"), p3);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/AdViewOverlayView$FetchWebViewContentTask;', 'onPostExecute', '(Ljava/lang/Object;)V'), ('Lcom/millennialmedia/android/AdViewOverlayView$FetchWebViewContentTask;', 'onPostExecute', '(Ljava/lang/String;)V'), ('Lcom/millennialmedia/android/AdViewOverlayActivity;', 'finish', '()V'), ('Lcom/millennialmedia/android/MMBaseActivity;', 'finish', '()V'), ('Lcom/millennialmedia/android/MMActivity;', 'finishSuper', '()V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayClosed', '(Landroid/content/Context; J)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.AdViewOverlayView$FetchWebViewContentTask.onPostExecute():


    protected bridge synthetic void onPostExecute(Object p1)
    {
        this.onPostExecute(((String) p1));
        return;
    }

Method com.millennialmedia.android.AdViewOverlayView$FetchWebViewContentTask.onPostExecute():


    protected void onPostExecute(String p4)
    {
        if (this.cancelVideo) {
            com.millennialmedia.android.AdViewOverlayActivity v0_1 = ((com.millennialmedia.android.AdViewOverlayActivity) this.this$0.overlayActivityRef.get());
            if (v0_1 == null) {
                com.millennialmedia.android.AdViewOverlayView.access$200(this.this$0);
            } else {
                v0_1.finish();
            }
        }
        if (p4 != null) {
            this.this$0.adImpl.controller.setWebViewContent(p4, this.baseUrl);
        }
        return;
    }

Method com.millennialmedia.android.AdViewOverlayActivity.finish():


    public void finish()
    {
        if (this.adViewOverlayView != null) {
            this.adViewOverlayView.attachWebViewToLink();
        }
        super.finish();
        return;
    }

Method com.millennialmedia.android.MMBaseActivity.finish():


    public void finish()
    {
        this.activity.finishSuper();
        return;
    }

Method com.millennialmedia.android.MMActivity.finishSuper():


    public void finishSuper()
    {
        com.millennialmedia.android.MMSDK$Event.overlayClosed(this, this.creatorAdImplInternalId);
        super.finish();
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayClosed():


    static void overlayClosed(android.content.Context p2, long p3)
    {
        if ((com.millennialmedia.android.MMSDK.access$000()) && (p2 != null)) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_OVERLAY_CLOSED"), p3);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_OVERLAY_CLOSED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/AdViewOverlayView$FetchWebViewContentTask;', 'onPostExecute', '(Ljava/lang/Object;)V'), ('Lcom/millennialmedia/android/AdViewOverlayView$FetchWebViewContentTask;', 'onPostExecute', '(Ljava/lang/String;)V'), ('Lcom/millennialmedia/android/AdViewOverlayActivity;', 'finish', '()V'), ('Lcom/millennialmedia/android/MMBaseActivity;', 'finish', '()V'), ('Lcom/millennialmedia/android/MMActivity;', 'finishSuper', '()V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayClosed', '(Landroid/content/Context; J)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_OVERLAY_CLOSED to construct an Intent

Method com.millennialmedia.android.AdViewOverlayView$FetchWebViewContentTask.onPostExecute():


    protected bridge synthetic void onPostExecute(Object p1)
    {
        this.onPostExecute(((String) p1));
        return;
    }

Method com.millennialmedia.android.AdViewOverlayView$FetchWebViewContentTask.onPostExecute():


    protected void onPostExecute(String p4)
    {
        if (this.cancelVideo) {
            com.millennialmedia.android.AdViewOverlayActivity v0_1 = ((com.millennialmedia.android.AdViewOverlayActivity) this.this$0.overlayActivityRef.get());
            if (v0_1 == null) {
                com.millennialmedia.android.AdViewOverlayView.access$200(this.this$0);
            } else {
                v0_1.finish();
            }
        }
        if (p4 != null) {
            this.this$0.adImpl.controller.setWebViewContent(p4, this.baseUrl);
        }
        return;
    }

Method com.millennialmedia.android.AdViewOverlayActivity.finish():


    public void finish()
    {
        if (this.adViewOverlayView != null) {
            this.adViewOverlayView.attachWebViewToLink();
        }
        super.finish();
        return;
    }

Method com.millennialmedia.android.MMBaseActivity.finish():


    public void finish()
    {
        this.activity.finishSuper();
        return;
    }

Method com.millennialmedia.android.MMActivity.finishSuper():


    public void finishSuper()
    {
        com.millennialmedia.android.MMSDK$Event.overlayClosed(this, this.creatorAdImplInternalId);
        super.finish();
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayClosed():


    static void overlayClosed(android.content.Context p2, long p3)
    {
        if ((com.millennialmedia.android.MMSDK.access$000()) && (p2 != null)) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_OVERLAY_CLOSED"), p3);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'com.android.music.musicservicecommand' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/jumptap/adtag/media/JtVideoAdView;', 'prepare', '(Ljava/lang/String;)V'), ('Lcom/jumptap/adtag/media/JtVideoAdView;', 'setVideoPath', '(Ljava/lang/String;)V'), ('Lcom/jumptap/adtag/media/JtVideoAdView;', 'setVideoURI', '(Landroid/net/Uri;)V'), ('Lcom/jumptap/adtag/media/JtVideoAdView;', 'openVideo', '()V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value com.android.music.musicservicecommand to construct an Intent

Method com.jumptap.adtag.media.JtVideoAdView.prepare():


    public void prepare(String p1)
    {
        this.setVideoPath(p1);
        this.requestFocus();
        return;
    }

Method com.jumptap.adtag.media.JtVideoAdView.setVideoPath():


    private void setVideoPath(String p2)
    {
        this.setVideoURI(android.net.Uri.parse(p2));
        return;
    }

Method com.jumptap.adtag.media.JtVideoAdView.setVideoURI():


    private void setVideoURI(android.net.Uri p2)
    {
        this.uri = p2;
        this.seekWhenPrepared = 0;
        this.openVideo();
        this.requestLayout();
        this.invalidate();
        return;
    }

Method com.jumptap.adtag.media.JtVideoAdView.openVideo():


    private void openVideo()
    {
        if ((this.uri != null) && (this.surfaceHolder != null)) {
            android.util.Log.d("ZL", "YYYYYYYYYYYYYYYYY");
            android.content.Intent v1_1 = new android.content.Intent("com.android.music.musicservicecommand");
            v1_1.putExtra("command", "pause");
            this.context.sendBroadcast(v1_1);
            if (this.mediaPlayer != null) {
                this.mediaPlayer.reset();
                this.mediaPlayer.release();
                this.mediaPlayer = 0;
            }
            try {
                this.mediaPlayer = new android.media.MediaPlayer();
                this.mediaPlayer.setOnPreparedListener(this.preparedListener);
                this.isPrepared = 0;
                this.mediaPlayer.setOnCompletionListener(this.completionListener);
                this.mediaPlayer.setOnBufferingUpdateListener(this.bufferingUpdateListener);
                this.currentBufferPercentage = 0;
                this.mediaPlayer.setDataSource(this.context, this.uri);
                this.mediaPlayer.setDisplay(this.surfaceHolder);
                this.mediaPlayer.setAudioStreamType(3);
                this.mediaPlayer.setScreenOnWhilePlaying(1);
                this.mediaPlayer.prepareAsync();
                this.attachMediaController();
            } catch (IllegalArgumentException v0_1) {
                android.util.Log.w("JtAd", new StringBuilder().append("Unable to open content: ").append(this.uri).toString(), v0_1);
            } catch (IllegalArgumentException v0_0) {
                android.util.Log.w("JtAd", new StringBuilder().append("Unable to open content: ").append(this.uri).toString(), v0_0);
            }
        } else {
            android.util.Log.d("ZL", "XXXXXXXXXXXXXXXXXXXXXX");
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'com.android.music.musicservicecommand' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/jumptap/adtag/media/JtVideoAdView;', 'setVideoURI', '(Landroid/net/Uri;)V'), ('Lcom/jumptap/adtag/media/JtVideoAdView;', 'openVideo', '()V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value com.android.music.musicservicecommand to construct an Intent

Method com.jumptap.adtag.media.JtVideoAdView.setVideoURI():


    private void setVideoURI(android.net.Uri p2)
    {
        this.uri = p2;
        this.seekWhenPrepared = 0;
        this.openVideo();
        this.requestLayout();
        this.invalidate();
        return;
    }

Method com.jumptap.adtag.media.JtVideoAdView.openVideo():


    private void openVideo()
    {
        if ((this.uri != null) && (this.surfaceHolder != null)) {
            android.util.Log.d("ZL", "YYYYYYYYYYYYYYYYY");
            android.content.Intent v1_1 = new android.content.Intent("com.android.music.musicservicecommand");
            v1_1.putExtra("command", "pause");
            this.context.sendBroadcast(v1_1);
            if (this.mediaPlayer != null) {
                this.mediaPlayer.reset();
                this.mediaPlayer.release();
                this.mediaPlayer = 0;
            }
            try {
                this.mediaPlayer = new android.media.MediaPlayer();
                this.mediaPlayer.setOnPreparedListener(this.preparedListener);
                this.isPrepared = 0;
                this.mediaPlayer.setOnCompletionListener(this.completionListener);
                this.mediaPlayer.setOnBufferingUpdateListener(this.bufferingUpdateListener);
                this.currentBufferPercentage = 0;
                this.mediaPlayer.setDataSource(this.context, this.uri);
                this.mediaPlayer.setDisplay(this.surfaceHolder);
                this.mediaPlayer.setAudioStreamType(3);
                this.mediaPlayer.setScreenOnWhilePlaying(1);
                this.mediaPlayer.prepareAsync();
                this.attachMediaController();
            } catch (IllegalArgumentException v0_1) {
                android.util.Log.w("JtAd", new StringBuilder().append("Unable to open content: ").append(this.uri).toString(), v0_1);
            } catch (IllegalArgumentException v0_0) {
                android.util.Log.w("JtAd", new StringBuilder().append("Unable to open content: ").append(this.uri).toString(), v0_0);
            }
        } else {
            android.util.Log.d("ZL", "XXXXXXXXXXXXXXXXXXXXXX");
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'com.android.music.musicservicecommand' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/jumptap/adtag/media/JtVideoAdView;', 'setVideoPath', '(Ljava/lang/String;)V'), ('Lcom/jumptap/adtag/media/JtVideoAdView;', 'setVideoURI', '(Landroid/net/Uri;)V'), ('Lcom/jumptap/adtag/media/JtVideoAdView;', 'openVideo', '()V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value com.android.music.musicservicecommand to construct an Intent

Method com.jumptap.adtag.media.JtVideoAdView.setVideoPath():


    private void setVideoPath(String p2)
    {
        this.setVideoURI(android.net.Uri.parse(p2));
        return;
    }

Method com.jumptap.adtag.media.JtVideoAdView.setVideoURI():


    private void setVideoURI(android.net.Uri p2)
    {
        this.uri = p2;
        this.seekWhenPrepared = 0;
        this.openVideo();
        this.requestLayout();
        this.invalidate();
        return;
    }

Method com.jumptap.adtag.media.JtVideoAdView.openVideo():


    private void openVideo()
    {
        if ((this.uri != null) && (this.surfaceHolder != null)) {
            android.util.Log.d("ZL", "YYYYYYYYYYYYYYYYY");
            android.content.Intent v1_1 = new android.content.Intent("com.android.music.musicservicecommand");
            v1_1.putExtra("command", "pause");
            this.context.sendBroadcast(v1_1);
            if (this.mediaPlayer != null) {
                this.mediaPlayer.reset();
                this.mediaPlayer.release();
                this.mediaPlayer = 0;
            }
            try {
                this.mediaPlayer = new android.media.MediaPlayer();
                this.mediaPlayer.setOnPreparedListener(this.preparedListener);
                this.isPrepared = 0;
                this.mediaPlayer.setOnCompletionListener(this.completionListener);
                this.mediaPlayer.setOnBufferingUpdateListener(this.bufferingUpdateListener);
                this.currentBufferPercentage = 0;
                this.mediaPlayer.setDataSource(this.context, this.uri);
                this.mediaPlayer.setDisplay(this.surfaceHolder);
                this.mediaPlayer.setAudioStreamType(3);
                this.mediaPlayer.setScreenOnWhilePlaying(1);
                this.mediaPlayer.prepareAsync();
                this.attachMediaController();
            } catch (IllegalArgumentException v0_1) {
                android.util.Log.w("JtAd", new StringBuilder().append("Unable to open content: ").append(this.uri).toString(), v0_1);
            } catch (IllegalArgumentException v0_0) {
                android.util.Log.w("JtAd", new StringBuilder().append("Unable to open content: ").append(this.uri).toString(), v0_0);
            }
        } else {
            android.util.Log.d("ZL", "XXXXXXXXXXXXXXXXXXXXXX");
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'com.android.music.musicservicecommand' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/jumptap/adtag/media/JtVideoAdView;', 'openVideo', '()V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value com.android.music.musicservicecommand to construct an Intent

Method com.jumptap.adtag.media.JtVideoAdView.openVideo():


    private void openVideo()
    {
        if ((this.uri != null) && (this.surfaceHolder != null)) {
            android.util.Log.d("ZL", "YYYYYYYYYYYYYYYYY");
            android.content.Intent v1_1 = new android.content.Intent("com.android.music.musicservicecommand");
            v1_1.putExtra("command", "pause");
            this.context.sendBroadcast(v1_1);
            if (this.mediaPlayer != null) {
                this.mediaPlayer.reset();
                this.mediaPlayer.release();
                this.mediaPlayer = 0;
            }
            try {
                this.mediaPlayer = new android.media.MediaPlayer();
                this.mediaPlayer.setOnPreparedListener(this.preparedListener);
                this.isPrepared = 0;
                this.mediaPlayer.setOnCompletionListener(this.completionListener);
                this.mediaPlayer.setOnBufferingUpdateListener(this.bufferingUpdateListener);
                this.currentBufferPercentage = 0;
                this.mediaPlayer.setDataSource(this.context, this.uri);
                this.mediaPlayer.setDisplay(this.surfaceHolder);
                this.mediaPlayer.setAudioStreamType(3);
                this.mediaPlayer.setScreenOnWhilePlaying(1);
                this.mediaPlayer.prepareAsync();
                this.attachMediaController();
            } catch (IllegalArgumentException v0_1) {
                android.util.Log.w("JtAd", new StringBuilder().append("Unable to open content: ").append(this.uri).toString(), v0_1);
            } catch (IllegalArgumentException v0_0) {
                android.util.Log.w("JtAd", new StringBuilder().append("Unable to open content: ").append(this.uri).toString(), v0_0);
            }
        } else {
            android.util.Log.d("ZL", "XXXXXXXXXXXXXXXXXXXXXX");
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'com.android.music.musicservicecommand' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/jumptap/adtag/media/JtVideoAdView;', 'access$1000', '(Lcom/jumptap/adtag/media/JtVideoAdView;)V'), ('Lcom/jumptap/adtag/media/JtVideoAdView;', 'openVideo', '()V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value com.android.music.musicservicecommand to construct an Intent

Method com.jumptap.adtag.media.JtVideoAdView.access$1000():


    static synthetic void access$1000(com.jumptap.adtag.media.JtVideoAdView p0)
    {
        p0.openVideo();
        return;
    }

Method com.jumptap.adtag.media.JtVideoAdView.openVideo():


    private void openVideo()
    {
        if ((this.uri != null) && (this.surfaceHolder != null)) {
            android.util.Log.d("ZL", "YYYYYYYYYYYYYYYYY");
            android.content.Intent v1_1 = new android.content.Intent("com.android.music.musicservicecommand");
            v1_1.putExtra("command", "pause");
            this.context.sendBroadcast(v1_1);
            if (this.mediaPlayer != null) {
                this.mediaPlayer.reset();
                this.mediaPlayer.release();
                this.mediaPlayer = 0;
            }
            try {
                this.mediaPlayer = new android.media.MediaPlayer();
                this.mediaPlayer.setOnPreparedListener(this.preparedListener);
                this.isPrepared = 0;
                this.mediaPlayer.setOnCompletionListener(this.completionListener);
                this.mediaPlayer.setOnBufferingUpdateListener(this.bufferingUpdateListener);
                this.currentBufferPercentage = 0;
                this.mediaPlayer.setDataSource(this.context, this.uri);
                this.mediaPlayer.setDisplay(this.surfaceHolder);
                this.mediaPlayer.setAudioStreamType(3);
                this.mediaPlayer.setScreenOnWhilePlaying(1);
                this.mediaPlayer.prepareAsync();
                this.attachMediaController();
            } catch (IllegalArgumentException v0_1) {
                android.util.Log.w("JtAd", new StringBuilder().append("Unable to open content: ").append(this.uri).toString(), v0_1);
            } catch (IllegalArgumentException v0_0) {
                android.util.Log.w("JtAd", new StringBuilder().append("Unable to open content: ").append(this.uri).toString(), v0_0);
            }
        } else {
            android.util.Log.d("ZL", "XXXXXXXXXXXXXXXXXXXXXX");
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'com.android.music.musicservicecommand' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/jumptap/adtag/media/JtVideoAdView$4;', 'surfaceCreated', '(Landroid/view/SurfaceHolder;)V'), ('Lcom/jumptap/adtag/media/JtVideoAdView;', 'access$1000', '(Lcom/jumptap/adtag/media/JtVideoAdView;)V'), ('Lcom/jumptap/adtag/media/JtVideoAdView;', 'openVideo', '()V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value com.android.music.musicservicecommand to construct an Intent

Method com.jumptap.adtag.media.JtVideoAdView$4.surfaceCreated():


    public void surfaceCreated(android.view.SurfaceHolder p3)
    {
        com.jumptap.adtag.media.JtVideoAdView.access$902(this.this$0, p3);
        android.util.Log.d("ZL", "####################surfaceCreated");
        com.jumptap.adtag.media.JtVideoAdView.access$1000(this.this$0);
        return;
    }

Method com.jumptap.adtag.media.JtVideoAdView.access$1000():


    static synthetic void access$1000(com.jumptap.adtag.media.JtVideoAdView p0)
    {
        p0.openVideo();
        return;
    }

Method com.jumptap.adtag.media.JtVideoAdView.openVideo():


    private void openVideo()
    {
        if ((this.uri != null) && (this.surfaceHolder != null)) {
            android.util.Log.d("ZL", "YYYYYYYYYYYYYYYYY");
            android.content.Intent v1_1 = new android.content.Intent("com.android.music.musicservicecommand");
            v1_1.putExtra("command", "pause");
            this.context.sendBroadcast(v1_1);
            if (this.mediaPlayer != null) {
                this.mediaPlayer.reset();
                this.mediaPlayer.release();
                this.mediaPlayer = 0;
            }
            try {
                this.mediaPlayer = new android.media.MediaPlayer();
                this.mediaPlayer.setOnPreparedListener(this.preparedListener);
                this.isPrepared = 0;
                this.mediaPlayer.setOnCompletionListener(this.completionListener);
                this.mediaPlayer.setOnBufferingUpdateListener(this.bufferingUpdateListener);
                this.currentBufferPercentage = 0;
                this.mediaPlayer.setDataSource(this.context, this.uri);
                this.mediaPlayer.setDisplay(this.surfaceHolder);
                this.mediaPlayer.setAudioStreamType(3);
                this.mediaPlayer.setScreenOnWhilePlaying(1);
                this.mediaPlayer.prepareAsync();
                this.attachMediaController();
            } catch (IllegalArgumentException v0_1) {
                android.util.Log.w("JtAd", new StringBuilder().append("Unable to open content: ").append(this.uri).toString(), v0_1);
            } catch (IllegalArgumentException v0_0) {
                android.util.Log.w("JtAd", new StringBuilder().append("Unable to open content: ").append(this.uri).toString(), v0_0);
            }
        } else {
            android.util.Log.d("ZL", "XXXXXXXXXXXXXXXXXXXXXX");
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'com.millennialmedia.android.CachedVideoPlayerActivity' ==>>> Sink '['Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;', '1', 'IPC_SINK']' [[('Lcom/millennialmedia/android/VideoAd;', 'show', '(Landroid/content/Context; J)V'), ('Lcom/millennialmedia/android/Utils$IntentUtils;', 'startCachedVideoPlayerActivity', '(Landroid/content/Context; Landroid/content/Intent;)V'), ('Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value com.millennialmedia.android.CachedVideoPlayerActivity to construct an Intent

Method com.millennialmedia.android.VideoAd.show():


    void show(android.content.Context p2, long p3)
    {
        com.millennialmedia.android.Utils$IntentUtils.startCachedVideoPlayerActivity(p2, this.getVideoExtrasIntent(p2, p3));
        return;
    }

Method com.millennialmedia.android.Utils$IntentUtils.startCachedVideoPlayerActivity():


    static void startCachedVideoPlayerActivity(android.content.Context p2, android.content.Intent p3)
    {
        p3.setClass(p2, com.millennialmedia.android.MMActivity);
        p3.putExtra("class", "com.millennialmedia.android.CachedVideoPlayerActivity");
        com.millennialmedia.android.Utils$IntentUtils.startActivity(p2, p3);
        return;
    }

Method android.content.Intent.putExtra() not found.

[TAINT] String 'video.dat' ==>>> Sink '['Landroid/content/Intent;', 'setData', '(Landroid/net/Uri;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/VideoAd;', 'show', '(Landroid/content/Context; J)V'), ('Lcom/millennialmedia/android/VideoAd;', 'getVideoExtrasIntent', '(Landroid/content/Context; J)Landroid/content/Intent;'), ('Landroid/content/Intent;', 'setData', '(Landroid/net/Uri;)Landroid/content/Intent;')]]

Use of a string value video.dat to construct an Intent

Method com.millennialmedia.android.VideoAd.show():


    void show(android.content.Context p2, long p3)
    {
        com.millennialmedia.android.Utils$IntentUtils.startCachedVideoPlayerActivity(p2, this.getVideoExtrasIntent(p2, p3));
        return;
    }

Method com.millennialmedia.android.VideoAd.getVideoExtrasIntent():


    android.content.Intent getVideoExtrasIntent(android.content.Context p5, long p6)
    {
        android.content.Intent v0_1 = new android.content.Intent();
        v0_1.putExtra("videoId", this.getId());
        if (p6 != -4) {
            v0_1.putExtra("internalId", p6);
        }
        v0_1.setData(android.net.Uri.parse(new StringBuilder().append(com.millennialmedia.android.AdCache.getCacheDirectory(p5).getAbsolutePath()).append(java.io.File.separator).append(this.videoFileId).append("video.dat").toString()));
        return v0_1;
    }

Method android.content.Intent.setData() not found.

[TAINT] String 'video.dat' ==>>> Sink '['Landroid/content/Intent;', 'setData', '(Landroid/net/Uri;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/VideoAd;', 'getVideoExtrasIntent', '(Landroid/content/Context; J)Landroid/content/Intent;'), ('Landroid/content/Intent;', 'setData', '(Landroid/net/Uri;)Landroid/content/Intent;')]]

Use of a string value video.dat to construct an Intent

Method com.millennialmedia.android.VideoAd.getVideoExtrasIntent():


    android.content.Intent getVideoExtrasIntent(android.content.Context p5, long p6)
    {
        android.content.Intent v0_1 = new android.content.Intent();
        v0_1.putExtra("videoId", this.getId());
        if (p6 != -4) {
            v0_1.putExtra("internalId", p6);
        }
        v0_1.setData(android.net.Uri.parse(new StringBuilder().append(com.millennialmedia.android.AdCache.getCacheDirectory(p5).getAbsolutePath()).append(java.io.File.separator).append(this.videoFileId).append("video.dat").toString()));
        return v0_1;
    }

Method android.content.Intent.setData() not found.

[TAINT] String 'com.millennialmedia.android.CachedVideoPlayerActivity' ==>>> Sink '['Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;', '1', 'IPC_SINK']' [[('Lcom/millennialmedia/android/VideoAd;', 'playAd', '(Landroid/content/Context; Ljava/lang/String; Lcom/millennialmedia/android/HttpRedirection$RedirectionListenerImpl;)V'), ('Lcom/millennialmedia/android/VideoAd;', 'show', '(Landroid/content/Context; J)V'), ('Lcom/millennialmedia/android/Utils$IntentUtils;', 'startCachedVideoPlayerActivity', '(Landroid/content/Context; Landroid/content/Intent;)V'), ('Landroid/content/Intent;', 'putExtra', '(Ljava/lang/String; Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value com.millennialmedia.android.CachedVideoPlayerActivity to construct an Intent

Method com.millennialmedia.android.VideoAd.playAd():


    static void playAd(android.content.Context p4, String p5, com.millennialmedia.android.HttpRedirection$RedirectionListenerImpl p6)
    {
        if (p5 != null) {
            com.millennialmedia.android.VideoAd v0_1 = ((com.millennialmedia.android.VideoAd) com.millennialmedia.android.AdCache.load(p4, p5));
            if ((v0_1 == null) || (!v0_1.canShow(p4, 0, 0))) {
                Object[] v2_1 = new Object[1];
                v2_1[0] = p5;
                com.millennialmedia.android.MMSDK$Log.v("mmvideo: Ad %s cannot be shown at this time.", v2_1);
            } else {
                p6.updateLastVideoViewedTime();
                Object[] v2_2 = new Object[1];
                v2_2[0] = p5;
                com.millennialmedia.android.MMSDK$Log.v("mmvideo: attempting to play video %s", v2_2);
                v0_1.show(p4, p6.creatorAdImplInternalId);
                p6.startingVideo();
            }
        }
        return;
    }

Method com.millennialmedia.android.VideoAd.show():


    void show(android.content.Context p2, long p3)
    {
        com.millennialmedia.android.Utils$IntentUtils.startCachedVideoPlayerActivity(p2, this.getVideoExtrasIntent(p2, p3));
        return;
    }

Method com.millennialmedia.android.Utils$IntentUtils.startCachedVideoPlayerActivity():


    static void startCachedVideoPlayerActivity(android.content.Context p2, android.content.Intent p3)
    {
        p3.setClass(p2, com.millennialmedia.android.MMActivity);
        p3.putExtra("class", "com.millennialmedia.android.CachedVideoPlayerActivity");
        com.millennialmedia.android.Utils$IntentUtils.startActivity(p2, p3);
        return;
    }

Method android.content.Intent.putExtra() not found.

[TAINT] String 'video.dat' ==>>> Sink '['Landroid/content/Intent;', 'setData', '(Landroid/net/Uri;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/VideoAd;', 'playAd', '(Landroid/content/Context; Ljava/lang/String; Lcom/millennialmedia/android/HttpRedirection$RedirectionListenerImpl;)V'), ('Lcom/millennialmedia/android/VideoAd;', 'show', '(Landroid/content/Context; J)V'), ('Lcom/millennialmedia/android/VideoAd;', 'getVideoExtrasIntent', '(Landroid/content/Context; J)Landroid/content/Intent;'), ('Landroid/content/Intent;', 'setData', '(Landroid/net/Uri;)Landroid/content/Intent;')]]

Use of a string value video.dat to construct an Intent

Method com.millennialmedia.android.VideoAd.playAd():


    static void playAd(android.content.Context p4, String p5, com.millennialmedia.android.HttpRedirection$RedirectionListenerImpl p6)
    {
        if (p5 != null) {
            com.millennialmedia.android.VideoAd v0_1 = ((com.millennialmedia.android.VideoAd) com.millennialmedia.android.AdCache.load(p4, p5));
            if ((v0_1 == null) || (!v0_1.canShow(p4, 0, 0))) {
                Object[] v2_1 = new Object[1];
                v2_1[0] = p5;
                com.millennialmedia.android.MMSDK$Log.v("mmvideo: Ad %s cannot be shown at this time.", v2_1);
            } else {
                p6.updateLastVideoViewedTime();
                Object[] v2_2 = new Object[1];
                v2_2[0] = p5;
                com.millennialmedia.android.MMSDK$Log.v("mmvideo: attempting to play video %s", v2_2);
                v0_1.show(p4, p6.creatorAdImplInternalId);
                p6.startingVideo();
            }
        }
        return;
    }

Method com.millennialmedia.android.VideoAd.show():


    void show(android.content.Context p2, long p3)
    {
        com.millennialmedia.android.Utils$IntentUtils.startCachedVideoPlayerActivity(p2, this.getVideoExtrasIntent(p2, p3));
        return;
    }

Method com.millennialmedia.android.VideoAd.getVideoExtrasIntent():


    android.content.Intent getVideoExtrasIntent(android.content.Context p5, long p6)
    {
        android.content.Intent v0_1 = new android.content.Intent();
        v0_1.putExtra("videoId", this.getId());
        if (p6 != -4) {
            v0_1.putExtra("internalId", p6);
        }
        v0_1.setData(android.net.Uri.parse(new StringBuilder().append(com.millennialmedia.android.AdCache.getCacheDirectory(p5).getAbsolutePath()).append(java.io.File.separator).append(this.videoFileId).append("video.dat").toString()));
        return v0_1;
    }

Method android.content.Intent.setData() not found.

[TAINT] String 'millennialmedia.action.ACTION_FETCH_STARTED_CACHING' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMInterstitial;', 'fetch', '(Lcom/millennialmedia/android/MMRequest; Lcom/millennialmedia/android/RequestListener;)V'), ('Lcom/millennialmedia/android/MMInterstitial;', 'fetchInternal', '()V'), ('Lcom/millennialmedia/android/MMAdImpl;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'requestAdInternal', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'isDownloadingCachedAd', '(Lcom/millennialmedia/android/MMAdImpl;)Z'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'fetchStartedCaching', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_FETCH_STARTED_CACHING to construct an Intent

Method com.millennialmedia.android.MMInterstitial.fetch():


    public void fetch(com.millennialmedia.android.MMRequest p2, com.millennialmedia.android.RequestListener p3)
    {
        if (this.adImpl != null) {
            this.adImpl.mmRequest = p2;
            this.adImpl.requestListener = p3;
        }
        this.fetchInternal();
        return;
    }

Method com.millennialmedia.android.MMInterstitial.fetchInternal():


    private void fetchInternal()
    {
        if (!this.isAdAvailable()) {
            com.millennialmedia.android.MMSDK$Log.d("Fetching new ad...");
            this.adImpl.requestAd();
        } else {
            com.millennialmedia.android.MMSDK$Log.d("Ad already fetched and ready for display...");
            com.millennialmedia.android.MMSDK$Event.requestFailed(this.adImpl, new com.millennialmedia.android.MMException(17));
        }
        return;
    }

Method com.millennialmedia.android.MMAdImpl.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImplController.assignAdViewController(this);
        if (this.controller != null) {
            this.controller.requestAd();
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImpl v0_1 = ((com.millennialmedia.android.MMAdImpl) this.adImplRef.get());
        if (v0_1 != null) {
            if (v0_1.isRefreshable()) {
                if (com.millennialmedia.android.MMSDK.isUiThread()) {
                    if (!com.millennialmedia.android.HandShake.sharedHandShake(v0_1.getContext()).kill) {
                        try {
                            com.millennialmedia.android.MMSDK$Log.d("adLayout - requestAd");
                            this.requestAdInternal(v0_1);
                        } catch (Exception v1) {
                            Object[] v3_2 = new Object[1];
                            v3_2[0] = v1.getMessage();
                            com.millennialmedia.android.MMSDK$Log.e("There was an exception with the ad request. %s", v3_2);
                            v1.printStackTrace();
                        }
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i("The server is no longer allowing ads.");
                        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
                    }
                } else {
                    com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(3));
                    com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(3));
                }
            } else {
                com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(25));
            com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(25));
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.requestAdInternal():


    private void requestAdInternal(com.millennialmedia.android.MMAdImpl p4)
    {
        if (p4.apid != null) {
            if ((p4.isBanner()) || (!this.isDownloadingCachedAd(p4))) {
                try {
                    if (this.requestAdRunnable == null) {
                        this.requestAdRunnable = new com.millennialmedia.android.MMAdImplController$RequestAdRunnable(this, 0);
                        com.millennialmedia.android.Utils$ThreadUtils.execute(this.requestAdRunnable);
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i(com.millennialmedia.android.MMException.getErrorCodeMessage(12));
                        com.millennialmedia.android.MMSDK$Event.requestFailed(p4, new com.millennialmedia.android.MMException(12));
                    }
                } catch (com.millennialmedia.android.MMAdImplController$RequestAdRunnable v1_8) {
                    throw v1_8;
                }
            }
        } else {
            com.millennialmedia.android.MMException v0_1 = new com.millennialmedia.android.MMException("MMAdView found with a null apid. New ad requests on this MMAdView are disabled until an apid has been assigned.", 1);
            com.millennialmedia.android.MMSDK$Log.e(v0_1);
            com.millennialmedia.android.MMSDK$Event.requestFailed(p4, v0_1);
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.isDownloadingCachedAd():


    private declared_synchronized boolean isDownloadingCachedAd(com.millennialmedia.android.MMAdImpl p6)
    {
        int v2_0 = 1;
        try {
            android.content.Context v0 = p6.getContext();
        } catch (int v2_2) {
            throw v2_2;
        }
        if (!com.millennialmedia.android.HandShake.sharedHandShake(v0).isAdTypeDownloading(p6.adType)) {
            com.millennialmedia.android.MMSDK$Log.d("No download in progress.");
            com.millennialmedia.android.CachedAd v1 = com.millennialmedia.android.AdCache.loadIncompleteDownload(v0, p6.getCachedName());
            if (v1 == null) {
                com.millennialmedia.android.MMSDK$Log.i("No incomplete downloads.");
                v2_0 = 0;
            } else {
                com.millennialmedia.android.MMSDK$Log.i("Last ad wasn\'t fully downloaded. Download again.");
                com.millennialmedia.android.MMSDK$Event.fetchStartedCaching(p6);
                com.millennialmedia.android.AdCache.startDownloadTask(v0, p6.getCachedName(), v1, this);
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.i("There is a download in progress. Defering call for new ad");
            com.millennialmedia.android.MMSDK$Event.requestFailed(p6, new com.millennialmedia.android.MMException(12));
        }
        return v2_0;
    }

Method com.millennialmedia.android.MMSDK$Event.fetchStartedCaching():


    static void fetchStartedCaching(com.millennialmedia.android.MMAdImpl p4)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$2(p4));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p4.getContext(), new android.content.Intent("millennialmedia.action.ACTION_FETCH_STARTED_CACHING"), p4.internalId);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.action.ACTION_FETCH_FAILED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMInterstitial;', 'fetch', '(Lcom/millennialmedia/android/MMRequest; Lcom/millennialmedia/android/RequestListener;)V'), ('Lcom/millennialmedia/android/MMInterstitial;', 'fetchInternal', '()V'), ('Lcom/millennialmedia/android/MMAdImpl;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_FETCH_FAILED to construct an Intent

Method com.millennialmedia.android.MMInterstitial.fetch():


    public void fetch(com.millennialmedia.android.MMRequest p2, com.millennialmedia.android.RequestListener p3)
    {
        if (this.adImpl != null) {
            this.adImpl.mmRequest = p2;
            this.adImpl.requestListener = p3;
        }
        this.fetchInternal();
        return;
    }

Method com.millennialmedia.android.MMInterstitial.fetchInternal():


    private void fetchInternal()
    {
        if (!this.isAdAvailable()) {
            com.millennialmedia.android.MMSDK$Log.d("Fetching new ad...");
            this.adImpl.requestAd();
        } else {
            com.millennialmedia.android.MMSDK$Log.d("Ad already fetched and ready for display...");
            com.millennialmedia.android.MMSDK$Event.requestFailed(this.adImpl, new com.millennialmedia.android.MMException(17));
        }
        return;
    }

Method com.millennialmedia.android.MMAdImpl.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImplController.assignAdViewController(this);
        if (this.controller != null) {
            this.controller.requestAd();
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImpl v0_1 = ((com.millennialmedia.android.MMAdImpl) this.adImplRef.get());
        if (v0_1 != null) {
            if (v0_1.isRefreshable()) {
                if (com.millennialmedia.android.MMSDK.isUiThread()) {
                    if (!com.millennialmedia.android.HandShake.sharedHandShake(v0_1.getContext()).kill) {
                        try {
                            com.millennialmedia.android.MMSDK$Log.d("adLayout - requestAd");
                            this.requestAdInternal(v0_1);
                        } catch (Exception v1) {
                            Object[] v3_2 = new Object[1];
                            v3_2[0] = v1.getMessage();
                            com.millennialmedia.android.MMSDK$Log.e("There was an exception with the ad request. %s", v3_2);
                            v1.printStackTrace();
                        }
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i("The server is no longer allowing ads.");
                        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
                    }
                } else {
                    com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(3));
                    com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(3));
                }
            } else {
                com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(25));
            com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(25));
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMInterstitial;', 'fetch', '(Lcom/millennialmedia/android/MMRequest; Lcom/millennialmedia/android/RequestListener;)V'), ('Lcom/millennialmedia/android/MMInterstitial;', 'fetchInternal', '()V'), ('Lcom/millennialmedia/android/MMAdImpl;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.MMInterstitial.fetch():


    public void fetch(com.millennialmedia.android.MMRequest p2, com.millennialmedia.android.RequestListener p3)
    {
        if (this.adImpl != null) {
            this.adImpl.mmRequest = p2;
            this.adImpl.requestListener = p3;
        }
        this.fetchInternal();
        return;
    }

Method com.millennialmedia.android.MMInterstitial.fetchInternal():


    private void fetchInternal()
    {
        if (!this.isAdAvailable()) {
            com.millennialmedia.android.MMSDK$Log.d("Fetching new ad...");
            this.adImpl.requestAd();
        } else {
            com.millennialmedia.android.MMSDK$Log.d("Ad already fetched and ready for display...");
            com.millennialmedia.android.MMSDK$Event.requestFailed(this.adImpl, new com.millennialmedia.android.MMException(17));
        }
        return;
    }

Method com.millennialmedia.android.MMAdImpl.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImplController.assignAdViewController(this);
        if (this.controller != null) {
            this.controller.requestAd();
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImpl v0_1 = ((com.millennialmedia.android.MMAdImpl) this.adImplRef.get());
        if (v0_1 != null) {
            if (v0_1.isRefreshable()) {
                if (com.millennialmedia.android.MMSDK.isUiThread()) {
                    if (!com.millennialmedia.android.HandShake.sharedHandShake(v0_1.getContext()).kill) {
                        try {
                            com.millennialmedia.android.MMSDK$Log.d("adLayout - requestAd");
                            this.requestAdInternal(v0_1);
                        } catch (Exception v1) {
                            Object[] v3_2 = new Object[1];
                            v3_2[0] = v1.getMessage();
                            com.millennialmedia.android.MMSDK$Log.e("There was an exception with the ad request. %s", v3_2);
                            v1.printStackTrace();
                        }
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i("The server is no longer allowing ads.");
                        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
                    }
                } else {
                    com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(3));
                    com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(3));
                }
            } else {
                com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(25));
            com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(25));
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_FETCH_STARTED_CACHING' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMInterstitial;', 'fetch', '(Lcom/millennialmedia/android/MMRequest;)V'), ('Lcom/millennialmedia/android/MMInterstitial;', 'fetchInternal', '()V'), ('Lcom/millennialmedia/android/MMAdImpl;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'requestAdInternal', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'isDownloadingCachedAd', '(Lcom/millennialmedia/android/MMAdImpl;)Z'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'fetchStartedCaching', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_FETCH_STARTED_CACHING to construct an Intent

Method com.millennialmedia.android.MMInterstitial.fetch():


    public void fetch(com.millennialmedia.android.MMRequest p2)
    {
        if ((this.adImpl == null) || (this.adImpl.requestListener == null)) {
            this.fetchInternal();
        } else {
            this.fetch(p2, this.adImpl.requestListener);
        }
        return;
    }

Method com.millennialmedia.android.MMInterstitial.fetchInternal():


    private void fetchInternal()
    {
        if (!this.isAdAvailable()) {
            com.millennialmedia.android.MMSDK$Log.d("Fetching new ad...");
            this.adImpl.requestAd();
        } else {
            com.millennialmedia.android.MMSDK$Log.d("Ad already fetched and ready for display...");
            com.millennialmedia.android.MMSDK$Event.requestFailed(this.adImpl, new com.millennialmedia.android.MMException(17));
        }
        return;
    }

Method com.millennialmedia.android.MMAdImpl.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImplController.assignAdViewController(this);
        if (this.controller != null) {
            this.controller.requestAd();
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImpl v0_1 = ((com.millennialmedia.android.MMAdImpl) this.adImplRef.get());
        if (v0_1 != null) {
            if (v0_1.isRefreshable()) {
                if (com.millennialmedia.android.MMSDK.isUiThread()) {
                    if (!com.millennialmedia.android.HandShake.sharedHandShake(v0_1.getContext()).kill) {
                        try {
                            com.millennialmedia.android.MMSDK$Log.d("adLayout - requestAd");
                            this.requestAdInternal(v0_1);
                        } catch (Exception v1) {
                            Object[] v3_2 = new Object[1];
                            v3_2[0] = v1.getMessage();
                            com.millennialmedia.android.MMSDK$Log.e("There was an exception with the ad request. %s", v3_2);
                            v1.printStackTrace();
                        }
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i("The server is no longer allowing ads.");
                        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
                    }
                } else {
                    com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(3));
                    com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(3));
                }
            } else {
                com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(25));
            com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(25));
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.requestAdInternal():


    private void requestAdInternal(com.millennialmedia.android.MMAdImpl p4)
    {
        if (p4.apid != null) {
            if ((p4.isBanner()) || (!this.isDownloadingCachedAd(p4))) {
                try {
                    if (this.requestAdRunnable == null) {
                        this.requestAdRunnable = new com.millennialmedia.android.MMAdImplController$RequestAdRunnable(this, 0);
                        com.millennialmedia.android.Utils$ThreadUtils.execute(this.requestAdRunnable);
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i(com.millennialmedia.android.MMException.getErrorCodeMessage(12));
                        com.millennialmedia.android.MMSDK$Event.requestFailed(p4, new com.millennialmedia.android.MMException(12));
                    }
                } catch (com.millennialmedia.android.MMAdImplController$RequestAdRunnable v1_8) {
                    throw v1_8;
                }
            }
        } else {
            com.millennialmedia.android.MMException v0_1 = new com.millennialmedia.android.MMException("MMAdView found with a null apid. New ad requests on this MMAdView are disabled until an apid has been assigned.", 1);
            com.millennialmedia.android.MMSDK$Log.e(v0_1);
            com.millennialmedia.android.MMSDK$Event.requestFailed(p4, v0_1);
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.isDownloadingCachedAd():


    private declared_synchronized boolean isDownloadingCachedAd(com.millennialmedia.android.MMAdImpl p6)
    {
        int v2_0 = 1;
        try {
            android.content.Context v0 = p6.getContext();
        } catch (int v2_2) {
            throw v2_2;
        }
        if (!com.millennialmedia.android.HandShake.sharedHandShake(v0).isAdTypeDownloading(p6.adType)) {
            com.millennialmedia.android.MMSDK$Log.d("No download in progress.");
            com.millennialmedia.android.CachedAd v1 = com.millennialmedia.android.AdCache.loadIncompleteDownload(v0, p6.getCachedName());
            if (v1 == null) {
                com.millennialmedia.android.MMSDK$Log.i("No incomplete downloads.");
                v2_0 = 0;
            } else {
                com.millennialmedia.android.MMSDK$Log.i("Last ad wasn\'t fully downloaded. Download again.");
                com.millennialmedia.android.MMSDK$Event.fetchStartedCaching(p6);
                com.millennialmedia.android.AdCache.startDownloadTask(v0, p6.getCachedName(), v1, this);
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.i("There is a download in progress. Defering call for new ad");
            com.millennialmedia.android.MMSDK$Event.requestFailed(p6, new com.millennialmedia.android.MMException(12));
        }
        return v2_0;
    }

Method com.millennialmedia.android.MMSDK$Event.fetchStartedCaching():


    static void fetchStartedCaching(com.millennialmedia.android.MMAdImpl p4)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$2(p4));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p4.getContext(), new android.content.Intent("millennialmedia.action.ACTION_FETCH_STARTED_CACHING"), p4.internalId);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.action.ACTION_FETCH_FAILED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMInterstitial;', 'fetch', '(Lcom/millennialmedia/android/MMRequest;)V'), ('Lcom/millennialmedia/android/MMInterstitial;', 'fetchInternal', '()V'), ('Lcom/millennialmedia/android/MMAdImpl;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_FETCH_FAILED to construct an Intent

Method com.millennialmedia.android.MMInterstitial.fetch():


    public void fetch(com.millennialmedia.android.MMRequest p2)
    {
        if ((this.adImpl == null) || (this.adImpl.requestListener == null)) {
            this.fetchInternal();
        } else {
            this.fetch(p2, this.adImpl.requestListener);
        }
        return;
    }

Method com.millennialmedia.android.MMInterstitial.fetchInternal():


    private void fetchInternal()
    {
        if (!this.isAdAvailable()) {
            com.millennialmedia.android.MMSDK$Log.d("Fetching new ad...");
            this.adImpl.requestAd();
        } else {
            com.millennialmedia.android.MMSDK$Log.d("Ad already fetched and ready for display...");
            com.millennialmedia.android.MMSDK$Event.requestFailed(this.adImpl, new com.millennialmedia.android.MMException(17));
        }
        return;
    }

Method com.millennialmedia.android.MMAdImpl.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImplController.assignAdViewController(this);
        if (this.controller != null) {
            this.controller.requestAd();
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImpl v0_1 = ((com.millennialmedia.android.MMAdImpl) this.adImplRef.get());
        if (v0_1 != null) {
            if (v0_1.isRefreshable()) {
                if (com.millennialmedia.android.MMSDK.isUiThread()) {
                    if (!com.millennialmedia.android.HandShake.sharedHandShake(v0_1.getContext()).kill) {
                        try {
                            com.millennialmedia.android.MMSDK$Log.d("adLayout - requestAd");
                            this.requestAdInternal(v0_1);
                        } catch (Exception v1) {
                            Object[] v3_2 = new Object[1];
                            v3_2[0] = v1.getMessage();
                            com.millennialmedia.android.MMSDK$Log.e("There was an exception with the ad request. %s", v3_2);
                            v1.printStackTrace();
                        }
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i("The server is no longer allowing ads.");
                        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
                    }
                } else {
                    com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(3));
                    com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(3));
                }
            } else {
                com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(25));
            com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(25));
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMInterstitial;', 'fetch', '(Lcom/millennialmedia/android/MMRequest;)V'), ('Lcom/millennialmedia/android/MMInterstitial;', 'fetchInternal', '()V'), ('Lcom/millennialmedia/android/MMAdImpl;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.MMInterstitial.fetch():


    public void fetch(com.millennialmedia.android.MMRequest p2)
    {
        if ((this.adImpl == null) || (this.adImpl.requestListener == null)) {
            this.fetchInternal();
        } else {
            this.fetch(p2, this.adImpl.requestListener);
        }
        return;
    }

Method com.millennialmedia.android.MMInterstitial.fetchInternal():


    private void fetchInternal()
    {
        if (!this.isAdAvailable()) {
            com.millennialmedia.android.MMSDK$Log.d("Fetching new ad...");
            this.adImpl.requestAd();
        } else {
            com.millennialmedia.android.MMSDK$Log.d("Ad already fetched and ready for display...");
            com.millennialmedia.android.MMSDK$Event.requestFailed(this.adImpl, new com.millennialmedia.android.MMException(17));
        }
        return;
    }

Method com.millennialmedia.android.MMAdImpl.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImplController.assignAdViewController(this);
        if (this.controller != null) {
            this.controller.requestAd();
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImpl v0_1 = ((com.millennialmedia.android.MMAdImpl) this.adImplRef.get());
        if (v0_1 != null) {
            if (v0_1.isRefreshable()) {
                if (com.millennialmedia.android.MMSDK.isUiThread()) {
                    if (!com.millennialmedia.android.HandShake.sharedHandShake(v0_1.getContext()).kill) {
                        try {
                            com.millennialmedia.android.MMSDK$Log.d("adLayout - requestAd");
                            this.requestAdInternal(v0_1);
                        } catch (Exception v1) {
                            Object[] v3_2 = new Object[1];
                            v3_2[0] = v1.getMessage();
                            com.millennialmedia.android.MMSDK$Log.e("There was an exception with the ad request. %s", v3_2);
                            v1.printStackTrace();
                        }
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i("The server is no longer allowing ads.");
                        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
                    }
                } else {
                    com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(3));
                    com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(3));
                }
            } else {
                com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(25));
            com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(25));
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_FETCH_STARTED_CACHING' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMInterstitial;', 'fetch', '()V'), ('Lcom/millennialmedia/android/MMInterstitial;', 'fetchInternal', '()V'), ('Lcom/millennialmedia/android/MMAdImpl;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'requestAdInternal', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'isDownloadingCachedAd', '(Lcom/millennialmedia/android/MMAdImpl;)Z'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'fetchStartedCaching', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_FETCH_STARTED_CACHING to construct an Intent

Method com.millennialmedia.android.MMInterstitial.fetch():


    public void fetch()
    {
        if ((this.adImpl == null) || (this.adImpl.requestListener == null)) {
            this.fetchInternal();
        } else {
            this.fetch(this.adImpl.mmRequest, this.adImpl.requestListener);
        }
        return;
    }

Method com.millennialmedia.android.MMInterstitial.fetchInternal():


    private void fetchInternal()
    {
        if (!this.isAdAvailable()) {
            com.millennialmedia.android.MMSDK$Log.d("Fetching new ad...");
            this.adImpl.requestAd();
        } else {
            com.millennialmedia.android.MMSDK$Log.d("Ad already fetched and ready for display...");
            com.millennialmedia.android.MMSDK$Event.requestFailed(this.adImpl, new com.millennialmedia.android.MMException(17));
        }
        return;
    }

Method com.millennialmedia.android.MMAdImpl.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImplController.assignAdViewController(this);
        if (this.controller != null) {
            this.controller.requestAd();
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImpl v0_1 = ((com.millennialmedia.android.MMAdImpl) this.adImplRef.get());
        if (v0_1 != null) {
            if (v0_1.isRefreshable()) {
                if (com.millennialmedia.android.MMSDK.isUiThread()) {
                    if (!com.millennialmedia.android.HandShake.sharedHandShake(v0_1.getContext()).kill) {
                        try {
                            com.millennialmedia.android.MMSDK$Log.d("adLayout - requestAd");
                            this.requestAdInternal(v0_1);
                        } catch (Exception v1) {
                            Object[] v3_2 = new Object[1];
                            v3_2[0] = v1.getMessage();
                            com.millennialmedia.android.MMSDK$Log.e("There was an exception with the ad request. %s", v3_2);
                            v1.printStackTrace();
                        }
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i("The server is no longer allowing ads.");
                        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
                    }
                } else {
                    com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(3));
                    com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(3));
                }
            } else {
                com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(25));
            com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(25));
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.requestAdInternal():


    private void requestAdInternal(com.millennialmedia.android.MMAdImpl p4)
    {
        if (p4.apid != null) {
            if ((p4.isBanner()) || (!this.isDownloadingCachedAd(p4))) {
                try {
                    if (this.requestAdRunnable == null) {
                        this.requestAdRunnable = new com.millennialmedia.android.MMAdImplController$RequestAdRunnable(this, 0);
                        com.millennialmedia.android.Utils$ThreadUtils.execute(this.requestAdRunnable);
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i(com.millennialmedia.android.MMException.getErrorCodeMessage(12));
                        com.millennialmedia.android.MMSDK$Event.requestFailed(p4, new com.millennialmedia.android.MMException(12));
                    }
                } catch (com.millennialmedia.android.MMAdImplController$RequestAdRunnable v1_8) {
                    throw v1_8;
                }
            }
        } else {
            com.millennialmedia.android.MMException v0_1 = new com.millennialmedia.android.MMException("MMAdView found with a null apid. New ad requests on this MMAdView are disabled until an apid has been assigned.", 1);
            com.millennialmedia.android.MMSDK$Log.e(v0_1);
            com.millennialmedia.android.MMSDK$Event.requestFailed(p4, v0_1);
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.isDownloadingCachedAd():


    private declared_synchronized boolean isDownloadingCachedAd(com.millennialmedia.android.MMAdImpl p6)
    {
        int v2_0 = 1;
        try {
            android.content.Context v0 = p6.getContext();
        } catch (int v2_2) {
            throw v2_2;
        }
        if (!com.millennialmedia.android.HandShake.sharedHandShake(v0).isAdTypeDownloading(p6.adType)) {
            com.millennialmedia.android.MMSDK$Log.d("No download in progress.");
            com.millennialmedia.android.CachedAd v1 = com.millennialmedia.android.AdCache.loadIncompleteDownload(v0, p6.getCachedName());
            if (v1 == null) {
                com.millennialmedia.android.MMSDK$Log.i("No incomplete downloads.");
                v2_0 = 0;
            } else {
                com.millennialmedia.android.MMSDK$Log.i("Last ad wasn\'t fully downloaded. Download again.");
                com.millennialmedia.android.MMSDK$Event.fetchStartedCaching(p6);
                com.millennialmedia.android.AdCache.startDownloadTask(v0, p6.getCachedName(), v1, this);
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.i("There is a download in progress. Defering call for new ad");
            com.millennialmedia.android.MMSDK$Event.requestFailed(p6, new com.millennialmedia.android.MMException(12));
        }
        return v2_0;
    }

Method com.millennialmedia.android.MMSDK$Event.fetchStartedCaching():


    static void fetchStartedCaching(com.millennialmedia.android.MMAdImpl p4)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$2(p4));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p4.getContext(), new android.content.Intent("millennialmedia.action.ACTION_FETCH_STARTED_CACHING"), p4.internalId);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.action.ACTION_FETCH_FAILED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMInterstitial;', 'fetch', '()V'), ('Lcom/millennialmedia/android/MMInterstitial;', 'fetchInternal', '()V'), ('Lcom/millennialmedia/android/MMAdImpl;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_FETCH_FAILED to construct an Intent

Method com.millennialmedia.android.MMInterstitial.fetch():


    public void fetch()
    {
        if ((this.adImpl == null) || (this.adImpl.requestListener == null)) {
            this.fetchInternal();
        } else {
            this.fetch(this.adImpl.mmRequest, this.adImpl.requestListener);
        }
        return;
    }

Method com.millennialmedia.android.MMInterstitial.fetchInternal():


    private void fetchInternal()
    {
        if (!this.isAdAvailable()) {
            com.millennialmedia.android.MMSDK$Log.d("Fetching new ad...");
            this.adImpl.requestAd();
        } else {
            com.millennialmedia.android.MMSDK$Log.d("Ad already fetched and ready for display...");
            com.millennialmedia.android.MMSDK$Event.requestFailed(this.adImpl, new com.millennialmedia.android.MMException(17));
        }
        return;
    }

Method com.millennialmedia.android.MMAdImpl.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImplController.assignAdViewController(this);
        if (this.controller != null) {
            this.controller.requestAd();
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImpl v0_1 = ((com.millennialmedia.android.MMAdImpl) this.adImplRef.get());
        if (v0_1 != null) {
            if (v0_1.isRefreshable()) {
                if (com.millennialmedia.android.MMSDK.isUiThread()) {
                    if (!com.millennialmedia.android.HandShake.sharedHandShake(v0_1.getContext()).kill) {
                        try {
                            com.millennialmedia.android.MMSDK$Log.d("adLayout - requestAd");
                            this.requestAdInternal(v0_1);
                        } catch (Exception v1) {
                            Object[] v3_2 = new Object[1];
                            v3_2[0] = v1.getMessage();
                            com.millennialmedia.android.MMSDK$Log.e("There was an exception with the ad request. %s", v3_2);
                            v1.printStackTrace();
                        }
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i("The server is no longer allowing ads.");
                        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
                    }
                } else {
                    com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(3));
                    com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(3));
                }
            } else {
                com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(25));
            com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(25));
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMInterstitial;', 'fetch', '()V'), ('Lcom/millennialmedia/android/MMInterstitial;', 'fetchInternal', '()V'), ('Lcom/millennialmedia/android/MMAdImpl;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMAdImplController;', 'requestAd', '()V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'requestFailed', '(Lcom/millennialmedia/android/MMAdImpl; Lcom/millennialmedia/android/MMException;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.MMInterstitial.fetch():


    public void fetch()
    {
        if ((this.adImpl == null) || (this.adImpl.requestListener == null)) {
            this.fetchInternal();
        } else {
            this.fetch(this.adImpl.mmRequest, this.adImpl.requestListener);
        }
        return;
    }

Method com.millennialmedia.android.MMInterstitial.fetchInternal():


    private void fetchInternal()
    {
        if (!this.isAdAvailable()) {
            com.millennialmedia.android.MMSDK$Log.d("Fetching new ad...");
            this.adImpl.requestAd();
        } else {
            com.millennialmedia.android.MMSDK$Log.d("Ad already fetched and ready for display...");
            com.millennialmedia.android.MMSDK$Event.requestFailed(this.adImpl, new com.millennialmedia.android.MMException(17));
        }
        return;
    }

Method com.millennialmedia.android.MMAdImpl.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImplController.assignAdViewController(this);
        if (this.controller != null) {
            this.controller.requestAd();
        }
        return;
    }

Method com.millennialmedia.android.MMAdImplController.requestAd():


    void requestAd()
    {
        com.millennialmedia.android.MMAdImpl v0_1 = ((com.millennialmedia.android.MMAdImpl) this.adImplRef.get());
        if (v0_1 != null) {
            if (v0_1.isRefreshable()) {
                if (com.millennialmedia.android.MMSDK.isUiThread()) {
                    if (!com.millennialmedia.android.HandShake.sharedHandShake(v0_1.getContext()).kill) {
                        try {
                            com.millennialmedia.android.MMSDK$Log.d("adLayout - requestAd");
                            this.requestAdInternal(v0_1);
                        } catch (Exception v1) {
                            Object[] v3_2 = new Object[1];
                            v3_2[0] = v1.getMessage();
                            com.millennialmedia.android.MMSDK$Log.e("There was an exception with the ad request. %s", v3_2);
                            v1.printStackTrace();
                        }
                    } else {
                        com.millennialmedia.android.MMSDK$Log.i("The server is no longer allowing ads.");
                        com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
                    }
                } else {
                    com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(3));
                    com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(3));
                }
            } else {
                com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(16));
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(25));
            com.millennialmedia.android.MMSDK$Event.requestFailed(v0_1, new com.millennialmedia.android.MMException(25));
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.requestFailed():


    static void requestFailed(com.millennialmedia.android.MMAdImpl p5, com.millennialmedia.android.MMException p6)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$5(p5, p6));
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p5.getContext(), new android.content.Intent(p5.getRequestFailedAction()).putExtra("error", p6), p5.internalId);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_DISPLAY_STARTED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMInterstitial;', 'displayInternal', '()I'), ('Lcom/millennialmedia/android/MMAdImplController;', 'display', '(Lcom/millennialmedia/android/MMAdImpl;)I'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'displayStarted', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_DISPLAY_STARTED to construct an Intent

Method com.millennialmedia.android.MMInterstitial.displayInternal():


    int displayInternal()
    {
        try {
            int v1_1;
            com.millennialmedia.android.MMAdImplController.assignAdViewController(this.adImpl);
        } catch (Exception v0) {
            com.millennialmedia.android.MMAdImpl v2_2 = new Object[1];
            v2_2[0] = v0.getMessage();
            com.millennialmedia.android.MMSDK$Log.e("There was an exception displaying a cached ad. %s", v2_2);
            v0.printStackTrace();
            v1_1 = 100;
            return v1_1;
        }
        if (this.adImpl.controller == null) {
        } else {
            v1_1 = this.adImpl.controller.display(this.adImpl);
            return v1_1;
        }
    }

Method com.millennialmedia.android.MMAdImplController.display():


    int display(com.millennialmedia.android.MMAdImpl p5)
    {
        int v1_2;
        com.millennialmedia.android.CachedAd v0 = com.millennialmedia.android.AdCache.loadNextCachedAd(p5.getContext(), p5.getCachedName());
        if (v0 == null) {
            v1_2 = 20;
        } else {
            if (!v0.canShow(p5.getContext(), p5, 1)) {
                v1_2 = this.checkReason(p5, v0);
            } else {
                com.millennialmedia.android.MMSDK$Event.displayStarted(p5);
                com.millennialmedia.android.AdCache.setNextCachedAd(p5.getContext(), p5.getCachedName(), 0);
                v0.show(p5.getContext(), p5.internalId);
                com.millennialmedia.android.HandShake.sharedHandShake(p5.getContext()).updateLastVideoViewedTime(p5.getContext(), p5.adType);
                v1_2 = 0;
            }
        }
        return v1_2;
    }

Method com.millennialmedia.android.MMSDK$Event.displayStarted():


    static void displayStarted(com.millennialmedia.android.MMAdImpl p4)
    {
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p4.getContext(), new android.content.Intent("millennialmedia.action.ACTION_DISPLAY_STARTED"), p4.internalId);
        }
        com.millennialmedia.android.MMSDK$Event.overlayOpened(p4);
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.action.ACTION_OVERLAY_OPENED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMInterstitial;', 'displayInternal', '()I'), ('Lcom/millennialmedia/android/MMAdImplController;', 'display', '(Lcom/millennialmedia/android/MMAdImpl;)I'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'displayStarted', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayOpened', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayOpenedBroadCast', '(Landroid/content/Context; J)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_OVERLAY_OPENED to construct an Intent

Method com.millennialmedia.android.MMInterstitial.displayInternal():


    int displayInternal()
    {
        try {
            int v1_1;
            com.millennialmedia.android.MMAdImplController.assignAdViewController(this.adImpl);
        } catch (Exception v0) {
            com.millennialmedia.android.MMAdImpl v2_2 = new Object[1];
            v2_2[0] = v0.getMessage();
            com.millennialmedia.android.MMSDK$Log.e("There was an exception displaying a cached ad. %s", v2_2);
            v0.printStackTrace();
            v1_1 = 100;
            return v1_1;
        }
        if (this.adImpl.controller == null) {
        } else {
            v1_1 = this.adImpl.controller.display(this.adImpl);
            return v1_1;
        }
    }

Method com.millennialmedia.android.MMAdImplController.display():


    int display(com.millennialmedia.android.MMAdImpl p5)
    {
        int v1_2;
        com.millennialmedia.android.CachedAd v0 = com.millennialmedia.android.AdCache.loadNextCachedAd(p5.getContext(), p5.getCachedName());
        if (v0 == null) {
            v1_2 = 20;
        } else {
            if (!v0.canShow(p5.getContext(), p5, 1)) {
                v1_2 = this.checkReason(p5, v0);
            } else {
                com.millennialmedia.android.MMSDK$Event.displayStarted(p5);
                com.millennialmedia.android.AdCache.setNextCachedAd(p5.getContext(), p5.getCachedName(), 0);
                v0.show(p5.getContext(), p5.internalId);
                com.millennialmedia.android.HandShake.sharedHandShake(p5.getContext()).updateLastVideoViewedTime(p5.getContext(), p5.adType);
                v1_2 = 0;
            }
        }
        return v1_2;
    }

Method com.millennialmedia.android.MMSDK$Event.displayStarted():


    static void displayStarted(com.millennialmedia.android.MMAdImpl p4)
    {
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p4.getContext(), new android.content.Intent("millennialmedia.action.ACTION_DISPLAY_STARTED"), p4.internalId);
        }
        com.millennialmedia.android.MMSDK$Event.overlayOpened(p4);
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayOpened():


    static void overlayOpened(com.millennialmedia.android.MMAdImpl p3)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$3(p3));
        com.millennialmedia.android.MMSDK$Event.overlayOpenedBroadCast(p3.getContext(), p3.internalId);
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayOpenedBroadCast():


    static void overlayOpenedBroadCast(android.content.Context p2, long p3)
    {
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_OVERLAY_OPENED"), p3);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.category.CATEGORY_SDK' ==>>> Sink '['Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMInterstitial;', 'displayInternal', '()I'), ('Lcom/millennialmedia/android/MMAdImplController;', 'display', '(Lcom/millennialmedia/android/MMAdImpl;)I'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'displayStarted', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayOpened', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayOpenedBroadCast', '(Landroid/content/Context; J)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'sendIntent', '(Landroid/content/Context; Landroid/content/Intent; J)V'), ('Landroid/content/Intent;', 'addCategory', '(Ljava/lang/String;)Landroid/content/Intent;')]]

Use of a string value millennialmedia.category.CATEGORY_SDK to construct an Intent

Method com.millennialmedia.android.MMInterstitial.displayInternal():


    int displayInternal()
    {
        try {
            int v1_1;
            com.millennialmedia.android.MMAdImplController.assignAdViewController(this.adImpl);
        } catch (Exception v0) {
            com.millennialmedia.android.MMAdImpl v2_2 = new Object[1];
            v2_2[0] = v0.getMessage();
            com.millennialmedia.android.MMSDK$Log.e("There was an exception displaying a cached ad. %s", v2_2);
            v0.printStackTrace();
            v1_1 = 100;
            return v1_1;
        }
        if (this.adImpl.controller == null) {
        } else {
            v1_1 = this.adImpl.controller.display(this.adImpl);
            return v1_1;
        }
    }

Method com.millennialmedia.android.MMAdImplController.display():


    int display(com.millennialmedia.android.MMAdImpl p5)
    {
        int v1_2;
        com.millennialmedia.android.CachedAd v0 = com.millennialmedia.android.AdCache.loadNextCachedAd(p5.getContext(), p5.getCachedName());
        if (v0 == null) {
            v1_2 = 20;
        } else {
            if (!v0.canShow(p5.getContext(), p5, 1)) {
                v1_2 = this.checkReason(p5, v0);
            } else {
                com.millennialmedia.android.MMSDK$Event.displayStarted(p5);
                com.millennialmedia.android.AdCache.setNextCachedAd(p5.getContext(), p5.getCachedName(), 0);
                v0.show(p5.getContext(), p5.internalId);
                com.millennialmedia.android.HandShake.sharedHandShake(p5.getContext()).updateLastVideoViewedTime(p5.getContext(), p5.adType);
                v1_2 = 0;
            }
        }
        return v1_2;
    }

Method com.millennialmedia.android.MMSDK$Event.displayStarted():


    static void displayStarted(com.millennialmedia.android.MMAdImpl p4)
    {
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p4.getContext(), new android.content.Intent("millennialmedia.action.ACTION_DISPLAY_STARTED"), p4.internalId);
        }
        com.millennialmedia.android.MMSDK$Event.overlayOpened(p4);
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayOpened():


    static void overlayOpened(com.millennialmedia.android.MMAdImpl p3)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$3(p3));
        com.millennialmedia.android.MMSDK$Event.overlayOpenedBroadCast(p3.getContext(), p3.internalId);
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayOpenedBroadCast():


    static void overlayOpenedBroadCast(android.content.Context p2, long p3)
    {
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_OVERLAY_OPENED"), p3);
        }
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.sendIntent():


    private static final void sendIntent(android.content.Context p4, android.content.Intent p5, long p6)
    {
        if (p4 != null) {
            p5.addCategory("millennialmedia.category.CATEGORY_SDK");
            if (p6 != -4) {
                p5.putExtra("internalId", p6);
            }
            String v0_1;
            p5.putExtra("packageName", p4.getPackageName());
            String v0_0 = p5.getStringExtra("intentType");
            if (android.text.TextUtils.isEmpty(v0_0)) {
                v0_1 = "";
            } else {
                String v2_2 = new Object[1];
                v2_2[0] = v0_0;
                v0_1 = String.format(" Type[%s]", v2_2);
            }
            com.millennialmedia.android.MMSDK$Log.v(new StringBuilder().append(" @@ Intent: ").append(p5.getAction()).append(" ").append(v0_1).append(" for ").append(p6).toString());
            p4.sendBroadcast(p5);
        }
        return;
    }

Method android.content.Intent.addCategory() not found.

[TAINT] String 'millennialmedia.action.ACTION_OVERLAY_OPENED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMInterstitial;', 'display', '(Z)Z'), ('Lcom/millennialmedia/android/MMInterstitial;', 'displayInternal', '()I'), ('Lcom/millennialmedia/android/MMAdImplController;', 'display', '(Lcom/millennialmedia/android/MMAdImpl;)I'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'displayStarted', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayOpened', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'overlayOpenedBroadCast', '(Landroid/content/Context; J)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_OVERLAY_OPENED to construct an Intent

Method com.millennialmedia.android.MMInterstitial.display():


    public boolean display(boolean p5)
    {
        int v2_0 = 0;
        if (com.millennialmedia.android.MMSDK.isUiThread()) {
            try {
                int v1 = this.displayInternal();
            } catch (Exception v0) {
                if (p5) {
                    throw new com.millennialmedia.android.MMException(v0);
                }
            }
            if ((v1 == 0) || (!p5)) {
                if (v1 == 0) {
                    v2_0 = 1;
                }
            } else {
                throw new com.millennialmedia.android.MMException(v1);
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(3));
        }
        return v2_0;
    }

Method com.millennialmedia.android.MMInterstitial.displayInternal():


    int displayInternal()
    {
        try {
            int v1_1;
            com.millennialmedia.android.MMAdImplController.assignAdViewController(this.adImpl);
        } catch (Exception v0) {
            com.millennialmedia.android.MMAdImpl v2_2 = new Object[1];
            v2_2[0] = v0.getMessage();
            com.millennialmedia.android.MMSDK$Log.e("There was an exception displaying a cached ad. %s", v2_2);
            v0.printStackTrace();
            v1_1 = 100;
            return v1_1;
        }
        if (this.adImpl.controller == null) {
        } else {
            v1_1 = this.adImpl.controller.display(this.adImpl);
            return v1_1;
        }
    }

Method com.millennialmedia.android.MMAdImplController.display():


    int display(com.millennialmedia.android.MMAdImpl p5)
    {
        int v1_2;
        com.millennialmedia.android.CachedAd v0 = com.millennialmedia.android.AdCache.loadNextCachedAd(p5.getContext(), p5.getCachedName());
        if (v0 == null) {
            v1_2 = 20;
        } else {
            if (!v0.canShow(p5.getContext(), p5, 1)) {
                v1_2 = this.checkReason(p5, v0);
            } else {
                com.millennialmedia.android.MMSDK$Event.displayStarted(p5);
                com.millennialmedia.android.AdCache.setNextCachedAd(p5.getContext(), p5.getCachedName(), 0);
                v0.show(p5.getContext(), p5.internalId);
                com.millennialmedia.android.HandShake.sharedHandShake(p5.getContext()).updateLastVideoViewedTime(p5.getContext(), p5.adType);
                v1_2 = 0;
            }
        }
        return v1_2;
    }

Method com.millennialmedia.android.MMSDK$Event.displayStarted():


    static void displayStarted(com.millennialmedia.android.MMAdImpl p4)
    {
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p4.getContext(), new android.content.Intent("millennialmedia.action.ACTION_DISPLAY_STARTED"), p4.internalId);
        }
        com.millennialmedia.android.MMSDK$Event.overlayOpened(p4);
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayOpened():


    static void overlayOpened(com.millennialmedia.android.MMAdImpl p3)
    {
        com.millennialmedia.android.MMSDK.runOnUiThread(new com.millennialmedia.android.MMSDK$Event$3(p3));
        com.millennialmedia.android.MMSDK$Event.overlayOpenedBroadCast(p3.getContext(), p3.internalId);
        return;
    }

Method com.millennialmedia.android.MMSDK$Event.overlayOpenedBroadCast():


    static void overlayOpenedBroadCast(android.content.Context p2, long p3)
    {
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p2, new android.content.Intent("millennialmedia.action.ACTION_OVERLAY_OPENED"), p3);
        }
        return;
    }

Method android.content.Intent.<init>() not found.

[TAINT] String 'millennialmedia.action.ACTION_DISPLAY_STARTED' ==>>> Sink '['Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V', '0', 'IPC_SINK']' [[('Lcom/millennialmedia/android/MMInterstitial;', 'display', '(Z)Z'), ('Lcom/millennialmedia/android/MMInterstitial;', 'displayInternal', '()I'), ('Lcom/millennialmedia/android/MMAdImplController;', 'display', '(Lcom/millennialmedia/android/MMAdImpl;)I'), ('Lcom/millennialmedia/android/MMSDK$Event;', 'displayStarted', '(Lcom/millennialmedia/android/MMAdImpl;)V'), ('Landroid/content/Intent;', '<init>', '(Ljava/lang/String;)V')]]

Use of a string value millennialmedia.action.ACTION_DISPLAY_STARTED to construct an Intent

Method com.millennialmedia.android.MMInterstitial.display():


    public boolean display(boolean p5)
    {
        int v2_0 = 0;
        if (com.millennialmedia.android.MMSDK.isUiThread()) {
            try {
                int v1 = this.displayInternal();
            } catch (Exception v0) {
                if (p5) {
                    throw new com.millennialmedia.android.MMException(v0);
                }
            }
            if ((v1 == 0) || (!p5)) {
                if (v1 == 0) {
                    v2_0 = 1;
                }
            } else {
                throw new com.millennialmedia.android.MMException(v1);
            }
        } else {
            com.millennialmedia.android.MMSDK$Log.e(com.millennialmedia.android.MMException.getErrorCodeMessage(3));
        }
        return v2_0;
    }

Method com.millennialmedia.android.MMInterstitial.displayInternal():


    int displayInternal()
    {
        try {
            int v1_1;
            com.millennialmedia.android.MMAdImplController.assignAdViewController(this.adImpl);
        } catch (Exception v0) {
            com.millennialmedia.android.MMAdImpl v2_2 = new Object[1];
            v2_2[0] = v0.getMessage();
            com.millennialmedia.android.MMSDK$Log.e("There was an exception displaying a cached ad. %s", v2_2);
            v0.printStackTrace();
            v1_1 = 100;
            return v1_1;
        }
        if (this.adImpl.controller == null) {
        } else {
            v1_1 = this.adImpl.controller.display(this.adImpl);
            return v1_1;
        }
    }

Method com.millennialmedia.android.MMAdImplController.display():


    int display(com.millennialmedia.android.MMAdImpl p5)
    {
        int v1_2;
        com.millennialmedia.android.CachedAd v0 = com.millennialmedia.android.AdCache.loadNextCachedAd(p5.getContext(), p5.getCachedName());
        if (v0 == null) {
            v1_2 = 20;
        } else {
            if (!v0.canShow(p5.getContext(), p5, 1)) {
                v1_2 = this.checkReason(p5, v0);
            } else {
                com.millennialmedia.android.MMSDK$Event.displayStarted(p5);
                com.millennialmedia.android.AdCache.setNextCachedAd(p5.getContext(), p5.getCachedName(), 0);
                v0.show(p5.getContext(), p5.internalId);
                com.millennialmedia.android.HandShake.sharedHandShake(p5.getContext()).updateLastVideoViewedTime(p5.getContext(), p5.adType);
                v1_2 = 0;
            }
        }
        return v1_2;
    }

Method com.millennialmedia.android.MMSDK$Event.displayStarted():


    static void displayStarted(com.millennialmedia.android.MMAdImpl p4)
    {
        if (com.millennialmedia.android.MMSDK.access$000()) {
            com.millennialmedia.android.MMSDK$Event.sendIntent(p4.getContext(), new android.content.Intent("millennialmedia.action.ACTION_DISPLAY_STARTED"), p4.internalId);
        }
        com.millennialmedia.android.MMSDK$Event.overlayOpened(p4);
        return;
    }

Method android.content.Intent.<init>() not found.