Program: 94110
Project: 94110
Buggy source:
@Override public void handleLoadPackage(final LoadPackageParam lpparam) throws Throwable {
  try {
    if (!lpparam.packageName.equals(Common.PACKAGE_SNAP))     return;
    try {
      Preferences.mSavePath=Environment.getExternalStorageDirectory().getAbsolutePath() + "String_Node_Str";
      Preferences.mCustomFilterLocation=Environment.getExternalStorageDirectory().getAbsolutePath() + "String_Node_Str";
      XposedUtils.log("String_Node_Str",false);
      Object activityThread=callStaticMethod(findClass("String_Node_Str",null),"String_Node_Str");
      context=(Context)callMethod(activityThread,"String_Node_Str");
      classLoader=lpparam.classLoader;
      PackageInfo piSnapChat=context.getPackageManager().getPackageInfo(lpparam.packageName,0);
      XposedUtils.log("String_Node_Str" + piSnapChat.versionName + "String_Node_Str"+ piSnapChat.versionCode+ "String_Node_Str",false);
      XposedUtils.log("String_Node_Str" + BuildConfig.VERSION_NAME + "String_Node_Str"+ BuildConfig.VERSION_CODE+ "String_Node_Str",false);
      if (!Obfuscator.isSupported(piSnapChat.versionCode)) {
        Logger.log("String_Node_Str",true,true);
        Toast.makeText(context,"String_Node_Str",Toast.LENGTH_SHORT).show();
        return;
      }
    }
 catch (    Exception e) {
      XposedUtils.log("String_Node_Str",e);
      return;
    }
    findAndHookMethod("String_Node_Str",lpparam.classLoader,"String_Node_Str",Context.class,new XC_MethodHook(){
      @Override protected void afterHookedMethod(      MethodHookParam param) throws Throwable {
        Preferences.refreshPreferences();
        Preferences.printSettings();
        if (Preferences.mLicense == 1 || Preferences.mLicense == 2) {
          if (Preferences.mReplay) {
          }
          if (Preferences.mTyping) {
            Premium.initTyping(lpparam,modRes,SnapContext);
          }
          if (Preferences.mStealth && Preferences.mLicense == 2) {
            Premium.initViewed(lpparam,modRes,SnapContext);
          }
        }
        Preferences.prefs.reload();
        Preferences.refreshPreferences();
        XC_MethodHook initHook=new XC_MethodHook(){
          @Override protected void afterHookedMethod(          MethodHookParam param) throws Throwable {
            Preferences.prefs.reload();
            Preferences.refreshPreferences();
            SnapContext=(Activity)param.thisObject;
            if (!Preferences.acceptedToU) {
              AlertDialog.Builder builder=new AlertDialog.Builder(SnapContext).setTitle("String_Node_Str").setMessage("String_Node_Str").setIcon(android.R.drawable.ic_dialog_alert);
              builder.setCancelable(false);
              final AlertDialog dialog=builder.create();
              dialog.setCanceledOnTouchOutside(false);
              dialog.show();
              return;
            }
            boolean isNull;
            isNull=SnapContext == null;
            Logger.log("String_Node_Str" + isNull,true);
            Preferences.prefs.reload();
            Preferences.refreshPreferences();
            Saving.initSaving(lpparam,mResources,SnapContext);
            Lens.initLens(lpparam,mResources,SnapContext);
            File vfilters=new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "String_Node_Str");
            if (vfilters.exists()) {
              VisualFilters.initVisualFilters(lpparam);
            }
 else {
              Toast.makeText(context,"String_Node_Str",Toast.LENGTH_SHORT).show();
            }
            if (Preferences.mHideLive || Preferences.mHidePeople || Preferences.mDiscoverUI) {
              Stories.initStories(lpparam);
            }
            Groups.initGroups(lpparam);
            if (Preferences.shouldAddGhost) {
              HookedLayouts.initVisiblity(lpparam);
            }
            if (Preferences.mMultiFilterBoolean) {
              MultiFilter.initMultiFilter(lpparam,mResources,SnapContext);
            }
            if (Preferences.mDiscoverSnap) {
              DataSaving.blockDsnap(lpparam);
            }
            if (Preferences.mStoryPreload) {
              DataSaving.blockStoryPreLoad(lpparam);
            }
            if (Preferences.mDiscoverUI) {
              DataSaving.blockFromUi(lpparam);
            }
            if (Preferences.mSpeed) {
              Spoofing.initSpeed(lpparam,SnapContext);
            }
            if (Preferences.mLocation) {
              Spoofing.initLocation(lpparam,SnapContext);
            }
            if (Preferences.mWeather) {
              Spoofing.initWeather(lpparam,SnapContext);
            }
            if (Preferences.mPaintTools) {
              PaintTools.initPaint(lpparam,mResources);
            }
            if (Preferences.mTimerCounter) {
              Misc.initTimer(lpparam,mResources);
            }
            if (Preferences.mChatAutoSave) {
              Chat.initTextSave(lpparam,mResources);
            }
            if (Preferences.mChatMediaSave) {
              Chat.initImageSave(lpparam,mResources);
            }
            if (Preferences.mIntegration) {
              HookedLayouts.initIntegration(lpparam,mResources);
            }
            Misc.forceNavBar(lpparam,Preferences.mForceNavbar);
            getEditText(lpparam);
            findAndHookMethod(Obfuscator.save.SCREENSHOTDETECTOR_CLASS,lpparam.classLoader,Obfuscator.save.SCREENSHOTDETECTOR_RUN,LinkedHashMap.class,XC_MethodReplacement.DO_NOTHING);
            findAndHookMethod(Obfuscator.save.SNAPSTATEMESSAGE_CLASS,lpparam.classLoader,Obfuscator.save.SNAPSTATEMESSAGE_SETSCREENSHOTCOUNT,Long.class,new XC_MethodHook(){
              @Override protected void beforeHookedMethod(              MethodHookParam param){
                param.args[0]=0L;
                Logger.log("String_Node_Str",true);
              }
            }
);
            if (Preferences.mCustomSticker) {
              Stickers.initStickers(lpparam,modRes,SnapContext);
            }
          }
        }
;
        findAndHookMethod("String_Node_Str",lpparam.classLoader,"String_Node_Str",Bundle.class,initHook);
        findAndHookMethod("String_Node_Str",lpparam.classLoader,"String_Node_Str",initHook);
        findAndHookMethod(Obfuscator.icons.ICON_HANDLER_CLASS,lpparam.classLoader,Obfuscator.icons.SHOW_LENS,boolean.class,boolean.class,new XC_MethodHook(){
          @Override protected void afterHookedMethod(          MethodHookParam param){
            if ((boolean)param.args[0]) {
              HookedLayouts.upload.setVisibility(View.INVISIBLE);
            }
 else {
              HookedLayouts.upload.setVisibility(View.VISIBLE);
            }
          }
        }
);
        findAndHookMethod(Obfuscator.icons.ICON_HANDLER_CLASS,lpparam.classLoader,Obfuscator.icons.RECORDING_VIDEO,boolean.class,new XC_MethodHook(){
          @Override protected void afterHookedMethod(          MethodHookParam param){
            HookedLayouts.upload.setVisibility(View.VISIBLE);
          }
        }
);
        for (        String s : Obfuscator.ROOTDETECTOR_METHODS) {
          findAndHookMethod(Obfuscator.ROOTDETECTOR_CLASS,lpparam.classLoader,s,XC_MethodReplacement.returnConstant(false));
          Logger.log("String_Node_Str" + s,true);
        }
        findAndHookMethod("String_Node_Str",lpparam.classLoader,"String_Node_Str",int.class,new XC_MethodHook(){
          @Override protected void beforeHookedMethod(          MethodHookParam param){
            param.args[0]=12000000;
          }
        }
);
        findAndHookMethod("String_Node_Str",lpparam.classLoader,"String_Node_Str",long.class,new XC_MethodHook(){
          @Override protected void beforeHookedMethod(          MethodHookParam param){
            param.args[0]=5190453;
          }
        }
);
        final Class<?> receivedSnapClass=findClass(Obfuscator.save.RECEIVEDSNAP_CLASS,lpparam.classLoader);
        try {
          XposedHelpers.setStaticIntField(receivedSnapClass,"String_Node_Str",99999);
          final Class<?> snapMediaUtils=findClass("String_Node_Str",lpparam.classLoader);
          XposedHelpers.setStaticIntField(snapMediaUtils,"String_Node_Str",100);
          XposedHelpers.setStaticIntField(snapMediaUtils,"String_Node_Str",100);
          final Class<?> profileImageUtils=findClass("String_Node_Str",lpparam.classLoader);
          XposedHelpers.setStaticIntField(profileImageUtils,"String_Node_Str",100);
          final Class<?> snapImageBryo=findClass(Obfuscator.save.SNAPIMAGEBRYO_CLASS,lpparam.classLoader);
          XposedHelpers.setStaticIntField(snapImageBryo,"String_Node_Str",100);
          Logger.log("String_Node_Str",true);
        }
 catch (        Throwable t) {
          Logger.log("String_Node_Str",true);
          Logger.log(t.toString());
        }
        if (Common.CAPTION_UNLIMITED_VANILLA) {
          findAndHookMethod("String_Node_Str",lpparam.classLoader,"String_Node_Str",XC_MethodReplacement.DO_NOTHING);
        }
        String vanillaCaptionEditTextClassName="String_Node_Str";
        hookAllConstructors(findClass(vanillaCaptionEditTextClassName,lpparam.classLoader),new XC_MethodHook(){
          @Override protected void afterHookedMethod(          MethodHookParam param){
            if (Common.CAPTION_UNLIMITED_VANILLA) {
              XposedUtils.log("String_Node_Str");
              EditText vanillaCaptionEditText=(EditText)param.thisObject;
              vanillaCaptionEditText.setSingleLine(false);
              vanillaCaptionEditText.setFilters(new InputFilter[0]);
              vanillaCaptionEditText.setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI);
              vanillaCaptionEditText.setOnEditorActionListener(null);
              setObjectField(vanillaCaptionEditText,"String_Node_Str",null);
            }
          }
        }
);
        String fatCaptionEditTextClassName="String_Node_Str";
        hookAllConstructors(findClass(fatCaptionEditTextClassName,lpparam.classLoader),new XC_MethodHook(){
          @Override protected void afterHookedMethod(          MethodHookParam param){
            if (Common.CAPTION_UNLIMITED_FAT) {
              XposedUtils.log("String_Node_Str");
              EditText fatCaptionEditText=(EditText)param.thisObject;
              fatCaptionEditText.setFilters(new InputFilter[0]);
              fatCaptionEditText.setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI);
              fatCaptionEditText.setOnEditorActionListener(null);
              setObjectField(fatCaptionEditText,"String_Node_Str",null);
            }
          }
        }
);
        Sharing.initSharing(lpparam,mResources);
        if (Preferences.hideBf) {
          findAndHookMethod("String_Node_Str",lpparam.classLoader,Obfuscator.FRIENDS_BF,new XC_MethodReplacement(){
            @Override protected Object replaceHookedMethod(            MethodHookParam param){
              return false;
            }
          }
);
        }
        if (Preferences.mCustomFilterBoolean) {
          addFilter(lpparam);
        }
        if (Preferences.selectAll) {
          HookSendList.initSelectAll(lpparam);
        }
      }
    }
);
  }
 catch (  Exception e) {
    Logger.log("String_Node_Str",e);
  }
}

Fixed version (ground truth):
@Override public void handleLoadPackage(final LoadPackageParam lpparam) throws Throwable {
  try {
    if (!lpparam.packageName.equals(Common.PACKAGE_SNAP))     return;
    try {
      Preferences.mSavePath=Environment.getExternalStorageDirectory().getAbsolutePath() + "String_Node_Str";
      Preferences.mCustomFilterLocation=Environment.getExternalStorageDirectory().getAbsolutePath() + "String_Node_Str";
      XposedUtils.log("String_Node_Str",false);
      Object activityThread=callStaticMethod(findClass("String_Node_Str",null),"String_Node_Str");
      context=(Context)callMethod(activityThread,"String_Node_Str");
      classLoader=lpparam.classLoader;
      PackageInfo piSnapChat=context.getPackageManager().getPackageInfo(lpparam.packageName,0);
      XposedUtils.log("String_Node_Str" + piSnapChat.versionName + "String_Node_Str"+ piSnapChat.versionCode+ "String_Node_Str",false);
      XposedUtils.log("String_Node_Str" + BuildConfig.VERSION_NAME + "String_Node_Str"+ BuildConfig.VERSION_CODE+ "String_Node_Str",false);
      if (!Obfuscator.isSupported(piSnapChat.versionCode)) {
        Logger.log("String_Node_Str",true,true);
        Toast.makeText(context,"String_Node_Str",Toast.LENGTH_SHORT).show();
        return;
      }
    }
 catch (    Exception e) {
      XposedUtils.log("String_Node_Str",e);
      return;
    }
    findAndHookMethod("String_Node_Str",lpparam.classLoader,"String_Node_Str",Context.class,new XC_MethodHook(){
      @Override protected void afterHookedMethod(      MethodHookParam param) throws Throwable {
        Preferences.refreshPreferences();
        Logger.log("String_Node_Str" + Preferences.prefs.makeWorldReadable(),true);
        Preferences.printSettings();
        if (Preferences.mLicense == 1 || Preferences.mLicense == 2) {
          if (Preferences.mReplay) {
          }
          if (Preferences.mTyping) {
            Premium.initTyping(lpparam,modRes,SnapContext);
          }
          if (Preferences.mStealth && Preferences.mLicense == 2) {
            Premium.initViewed(lpparam,modRes,SnapContext);
          }
        }
        Preferences.prefs.reload();
        Preferences.refreshPreferences();
        XC_MethodHook initHook=new XC_MethodHook(){
          @Override protected void afterHookedMethod(          MethodHookParam param) throws Throwable {
            Preferences.prefs.reload();
            Preferences.refreshPreferences();
            Preferences.prefs.makeWorldReadable();
            SnapContext=(Activity)param.thisObject;
            if (!Preferences.acceptedToU) {
              AlertDialog.Builder builder=new AlertDialog.Builder(SnapContext).setTitle("String_Node_Str").setMessage("String_Node_Str").setIcon(android.R.drawable.ic_dialog_alert);
              builder.setCancelable(false);
              final AlertDialog dialog=builder.create();
              dialog.setCanceledOnTouchOutside(false);
              dialog.show();
              return;
            }
            boolean isNull;
            isNull=SnapContext == null;
            Logger.log("String_Node_Str" + isNull,true);
            Preferences.prefs.reload();
            Preferences.refreshPreferences();
            Saving.initSaving(lpparam,mResources,SnapContext);
            Lens.initLens(lpparam,mResources,SnapContext);
            File vfilters=new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "String_Node_Str");
            if (vfilters.exists()) {
              VisualFilters.initVisualFilters(lpparam);
            }
 else {
              Toast.makeText(context,"String_Node_Str",Toast.LENGTH_SHORT).show();
            }
            if (Preferences.mHideLive || Preferences.mHidePeople || Preferences.mDiscoverUI) {
              Stories.initStories(lpparam);
            }
            Groups.initGroups(lpparam);
            if (Preferences.shouldAddGhost) {
              HookedLayouts.initVisiblity(lpparam);
            }
            if (Preferences.mMultiFilterBoolean) {
              MultiFilter.initMultiFilter(lpparam,mResources,SnapContext);
            }
            if (Preferences.mDiscoverSnap) {
              DataSaving.blockDsnap(lpparam);
            }
            if (Preferences.mStoryPreload) {
              DataSaving.blockStoryPreLoad(lpparam);
            }
            if (Preferences.mDiscoverUI) {
              DataSaving.blockFromUi(lpparam);
            }
            if (Preferences.mSpeed) {
              Spoofing.initSpeed(lpparam,SnapContext);
            }
            if (Preferences.mLocation) {
              Spoofing.initLocation(lpparam,SnapContext);
            }
            if (Preferences.mWeather) {
              Spoofing.initWeather(lpparam,SnapContext);
            }
            if (Preferences.mPaintTools) {
              PaintTools.initPaint(lpparam,mResources);
            }
            if (Preferences.mTimerCounter) {
              Misc.initTimer(lpparam,mResources);
            }
            if (Preferences.mChatAutoSave) {
              Chat.initTextSave(lpparam,mResources);
            }
            if (Preferences.mChatMediaSave) {
              Chat.initImageSave(lpparam,mResources);
            }
            if (Preferences.mIntegration) {
              HookedLayouts.initIntegration(lpparam,mResources);
            }
            Misc.forceNavBar(lpparam,Preferences.mForceNavbar);
            getEditText(lpparam);
            findAndHookMethod(Obfuscator.save.SCREENSHOTDETECTOR_CLASS,lpparam.classLoader,Obfuscator.save.SCREENSHOTDETECTOR_RUN,LinkedHashMap.class,XC_MethodReplacement.DO_NOTHING);
            findAndHookMethod(Obfuscator.save.SNAPSTATEMESSAGE_CLASS,lpparam.classLoader,Obfuscator.save.SNAPSTATEMESSAGE_SETSCREENSHOTCOUNT,Long.class,new XC_MethodHook(){
              @Override protected void beforeHookedMethod(              MethodHookParam param){
                param.args[0]=0L;
                Logger.log("String_Node_Str",true);
              }
            }
);
            if (Preferences.mCustomSticker) {
              Stickers.initStickers(lpparam,modRes,SnapContext);
            }
          }
        }
;
        findAndHookMethod("String_Node_Str",lpparam.classLoader,"String_Node_Str",Bundle.class,initHook);
        findAndHookMethod("String_Node_Str",lpparam.classLoader,"String_Node_Str",initHook);
        findAndHookMethod(Obfuscator.icons.ICON_HANDLER_CLASS,lpparam.classLoader,Obfuscator.icons.SHOW_LENS,boolean.class,boolean.class,new XC_MethodHook(){
          @Override protected void afterHookedMethod(          MethodHookParam param){
            if ((boolean)param.args[0]) {
              HookedLayouts.upload.setVisibility(View.INVISIBLE);
            }
 else {
              HookedLayouts.upload.setVisibility(View.VISIBLE);
            }
          }
        }
);
        findAndHookMethod(Obfuscator.icons.ICON_HANDLER_CLASS,lpparam.classLoader,Obfuscator.icons.RECORDING_VIDEO,boolean.class,new XC_MethodHook(){
          @Override protected void afterHookedMethod(          MethodHookParam param){
            HookedLayouts.upload.setVisibility(View.VISIBLE);
          }
        }
);
        for (        String s : Obfuscator.ROOTDETECTOR_METHODS) {
          findAndHookMethod(Obfuscator.ROOTDETECTOR_CLASS,lpparam.classLoader,s,XC_MethodReplacement.returnConstant(false));
          Logger.log("String_Node_Str" + s,true);
        }
        findAndHookMethod("String_Node_Str",lpparam.classLoader,"String_Node_Str",int.class,new XC_MethodHook(){
          @Override protected void beforeHookedMethod(          MethodHookParam param){
            param.args[0]=12000000;
          }
        }
);
        findAndHookMethod("String_Node_Str",lpparam.classLoader,"String_Node_Str",long.class,new XC_MethodHook(){
          @Override protected void beforeHookedMethod(          MethodHookParam param){
            param.args[0]=5190453;
          }
        }
);
        final Class<?> receivedSnapClass=findClass(Obfuscator.save.RECEIVEDSNAP_CLASS,lpparam.classLoader);
        try {
          XposedHelpers.setStaticIntField(receivedSnapClass,"String_Node_Str",99999);
          final Class<?> snapMediaUtils=findClass("String_Node_Str",lpparam.classLoader);
          XposedHelpers.setStaticIntField(snapMediaUtils,"String_Node_Str",100);
          XposedHelpers.setStaticIntField(snapMediaUtils,"String_Node_Str",100);
          final Class<?> profileImageUtils=findClass("String_Node_Str",lpparam.classLoader);
          XposedHelpers.setStaticIntField(profileImageUtils,"String_Node_Str",100);
          final Class<?> snapImageBryo=findClass(Obfuscator.save.SNAPIMAGEBRYO_CLASS,lpparam.classLoader);
          XposedHelpers.setStaticIntField(snapImageBryo,"String_Node_Str",100);
          Logger.log("String_Node_Str",true);
        }
 catch (        Throwable t) {
          Logger.log("String_Node_Str",true);
          Logger.log(t.toString());
        }
        if (Common.CAPTION_UNLIMITED_VANILLA) {
          findAndHookMethod("String_Node_Str",lpparam.classLoader,"String_Node_Str",XC_MethodReplacement.DO_NOTHING);
        }
        String vanillaCaptionEditTextClassName="String_Node_Str";
        hookAllConstructors(findClass(vanillaCaptionEditTextClassName,lpparam.classLoader),new XC_MethodHook(){
          @Override protected void afterHookedMethod(          MethodHookParam param){
            if (Common.CAPTION_UNLIMITED_VANILLA) {
              XposedUtils.log("String_Node_Str");
              EditText vanillaCaptionEditText=(EditText)param.thisObject;
              vanillaCaptionEditText.setSingleLine(false);
              vanillaCaptionEditText.setFilters(new InputFilter[0]);
              vanillaCaptionEditText.setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI);
              vanillaCaptionEditText.setOnEditorActionListener(null);
              setObjectField(vanillaCaptionEditText,"String_Node_Str",null);
            }
          }
        }
);
        String fatCaptionEditTextClassName="String_Node_Str";
        hookAllConstructors(findClass(fatCaptionEditTextClassName,lpparam.classLoader),new XC_MethodHook(){
          @Override protected void afterHookedMethod(          MethodHookParam param){
            if (Common.CAPTION_UNLIMITED_FAT) {
              XposedUtils.log("String_Node_Str");
              EditText fatCaptionEditText=(EditText)param.thisObject;
              fatCaptionEditText.setFilters(new InputFilter[0]);
              fatCaptionEditText.setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI);
              fatCaptionEditText.setOnEditorActionListener(null);
              setObjectField(fatCaptionEditText,"String_Node_Str",null);
            }
          }
        }
);
        Sharing.initSharing(lpparam,mResources);
        if (Preferences.hideBf) {
          findAndHookMethod("String_Node_Str",lpparam.classLoader,Obfuscator.FRIENDS_BF,new XC_MethodReplacement(){
            @Override protected Object replaceHookedMethod(            MethodHookParam param){
              return false;
            }
          }
);
        }
        if (Preferences.mCustomFilterBoolean) {
          addFilter(lpparam);
        }
        if (Preferences.selectAll) {
          HookSendList.initSelectAll(lpparam);
        }
      }
    }
);
  }
 catch (  Exception e) {
    Logger.log("String_Node_Str",e);
  }
}