Created
August 29, 2016 08:23
-
-
Save nicolastinkl/f776df448631a03d59e517c464ac1825 to your computer and use it in GitHub Desktop.
WeChat Delegate 汇编源码
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
char -[MicroMessengerAppDelegate handleOpenURL:bundleID:](void * self, void * _cmd, void * arg2, void * arg3) { | |
r7 = (sp - 0x4 - 0x4 - 0x4 - 0x4 - 0x4) + 0xc; | |
sp = sp - 0x4 - 0x4 - 0x4 - 0x4 - 0x4 - 0x4 - 0x4 - 0x4 - 0x64; | |
r11 = loc_e0b370(arg2, _cmd, arg2, arg3, stack[2048], stack[2049], stack[2050], stack[2051], stack[2052]); | |
stack[2067] = loc_e0b370(arg3); | |
r6 = 0x1e42556; | |
r10 = @selector(logWithLevel:module:errorCode:file:line:func:format:); | |
r0 = @class(iConsole); | |
r2 = @"url[%@]"; | |
r3 = 0x73b; | |
asm{ stm.w sp, {r1, r8} }; | |
loc_e0b35c(r0, r10, 0x2, 0x0, stack[2048], stack[2049], r3, r6 + 0x8942c); | |
stack[2064] = @selector(defaultCenter); | |
loc_e0b35c(@class(MMServiceCenter), @selector(defaultCenter), 0x26fd950); | |
r4 = sub_e0b368(); | |
stack[2065] = @selector(class); | |
r0 = loc_e0b35c(@class(AppDataMgr), @selector(class), 0x26fdb7c); | |
stack[2066] = @selector(getService:); | |
loc_e0b35c(r4, @selector(getService:), r0); | |
r7 = r7; | |
r6 = sub_e0b368(); | |
r5 = loc_e0b35c(r6, @selector(isAppDataChecked)); | |
loc_e0b36c(r6); | |
loc_e0b36c(r4); | |
if ((r5 & 0xff) == 0x0) { | |
loc_e0b35c(@class(MMServiceCenter), stack[2064]); | |
r4 = sub_e0b368(); | |
r0 = loc_e0b35c(@class(AppDataMgr), stack[2065]); | |
loc_e0b35c(r4, stack[2066], r0); | |
r7 = r7; | |
r5 = sub_e0b368(); | |
loc_e0b35c(r5, @selector(checkAndUpdateAppData)); | |
loc_e0b36c(r5); | |
loc_e0b36c(r4); | |
} | |
loc_e0b35c(r11, @selector(absoluteString)); | |
r7 = r7; | |
r6 = sub_e0b368(); | |
if (r6 == 0x0) goto loc_89572; | |
loc_89540: | |
loc_e0b378(sp + 0x5c, r6, @selector(rangeOfString:options:), @"weixin://", 0x1); | |
if (stack[2071] != 0x0) goto loc_897b6; | |
loc_89572: | |
if (0x0 == 0x0) goto loc_897b6; | |
loc_8957a: | |
r4 = @selector(length); | |
if (loc_e0b35c(r6, r4) < loc_e0b35c(@"weixin://", r4)) goto loc_897b6; | |
loc_895a6: | |
stack[2068] = r11; | |
r0 = loc_e0b35c(@"weixin://", r4); | |
stack[2063] = r6; | |
loc_e0b35c(r6, @selector(substringFromIndex:), r0); | |
r5 = sub_e0b368(); | |
stack[2060] = @selector(componentsSeparatedByString:); | |
loc_e0b35c(r5, @selector(componentsSeparatedByString:), @"/"); | |
r7 = r7; | |
r6 = sub_e0b368(); | |
if (r6 == 0x0) goto loc_897c2; | |
loc_89608: | |
stack[2058] = 0x0; | |
stack[2061] = @selector(count); | |
r11 = 0x0; | |
if (loc_e0b35c(r6, @selector(count)) == 0x0) goto loc_8ab22; | |
loc_8962a: | |
stack[2057] = r4; | |
stack[2059] = r5; | |
loc_e0b35c(r6, @selector(firstObject)); | |
r7 = r7; | |
r4 = sub_e0b368(); | |
r0 = loc_e0b35c(r6, stack[2061]); | |
stack[2048] = 0x0; | |
stack[2049] = 0x1eca290; | |
loc_e0b35c(@class(iConsole), r10, 0x2, 0x0, stack[2048], stack[2049], 0x756, "-[MicroMessengerAppDelegate handleOpenURL:bundleID:]", @"nsCommand=%@, aryString.count=%lu", r4, r0); | |
r5 = @selector(caseInsensitiveCompare:); | |
if ((loc_e0b35c(r4, r5, @"jumpurl") != 0x0) || (loc_e0b35c(r6, stack[2061]) < 0x2)) goto loc_897ca; | |
loc_896c4: | |
stack[2062] = r6; | |
loc_e0b35c(r6, @selector(objectAtIndex:), 0x1); | |
r7 = r7; | |
r6 = stack[2057]; | |
r5 = sub_e0b368(); | |
r8 = loc_e0b35c(); | |
loc_e0b36c(r5); | |
if (r8 == 0x0) goto loc_8a190; | |
loc_896fa: | |
loc_e0b35c(@class(URLSourceInfo), @selector(alloc), 0x26fdec0); | |
r5 = loc_e0b35c(); | |
r1 = r6; | |
r6 = r4; | |
r0 = loc_e0b35c(r4, r1); | |
loc_e0b35c(stack[2059], stack[2058], r0 + 0x1); | |
r4 = sub_e0b368(); | |
loc_e0b35c(r5, @selector(setM_url:), r4); | |
loc_e0b36c(r4); | |
loc_e0b35c(r5, @selector(setM_bundleId:), stack[2067]); | |
loc_e0b35c(@class(CAppViewControllerManager), @selector(getAppViewControllerManager), 0x26fdaf4); | |
r4 = sub_e0b368(); | |
loc_e0b35c(r4, @selector(jumpToURLShardBy3rdApp:), r5); | |
loc_e0b36c(r4); | |
goto loc_8a184; | |
loc_8a184: | |
loc_e0b36c(); | |
goto loc_8a188; | |
loc_8a188: | |
r11 = 0x1; | |
goto loc_8ab18; | |
loc_8ab18: | |
loc_e0b36c(r6); | |
r5 = stack[2059]; | |
r6 = stack[2062]; | |
goto loc_8ab22; | |
loc_8ab22: | |
loc_e0b36c(r6); | |
loc_e0b36c(r5); | |
r6 = stack[2063]; | |
goto loc_8ab30; | |
loc_8ab30: | |
loc_e0b36c(r6); | |
loc_e0b36c(stack[2067]); | |
loc_e0b36c(stack[2068]); | |
r0 = r11; | |
return r0; | |
loc_8a190: | |
r11 = 0x0; | |
r6 = r4; | |
goto loc_8ab18; | |
loc_897ca: | |
stack[2062] = r6; | |
r6 = r4; | |
if ((loc_e0b35c(r6, r5, @"app") != 0x0) || (loc_e0b35c(stack[2062], stack[2061]) < 0x2)) goto loc_8997a; | |
loc_897f4: | |
stack[2060] = r6; | |
r11 = stack[2062]; | |
r6 = @selector(objectAtIndex:); | |
loc_e0b35c(r11, r6, 0x1); | |
r7 = r7; | |
r8 = stack[2061]; | |
stack[2057] = sub_e0b368(); | |
if (loc_e0b35c(r11, r8) < 0x4) goto loc_8985c; | |
loc_89828: | |
loc_e0b35c(r11, r6, 0x2); | |
r7 = r7; | |
r4 = sub_e0b368(); | |
r10 = r5; | |
r5 = loc_e0b35c(); | |
loc_e0b36c(r4); | |
COND = r5 == 0x0; | |
r5 = r10; | |
if (COND) goto loc_8a4be; | |
loc_8985c: | |
stack[2058] = r6; | |
r10 = 0x26fd950; | |
if (loc_e0b35c(r11, r8) < 0x4) goto loc_898a8; | |
loc_89874: | |
loc_e0b35c(r11, stack[2058], 0x2); | |
r7 = r7; | |
r4 = sub_e0b368(); | |
r6 = r5; | |
r5 = loc_e0b35c(); | |
loc_e0b36c(r4); | |
COND = r5 == 0x0; | |
r5 = r6; | |
if (COND) goto loc_8a5ec; | |
loc_898a8: | |
if (loc_e0b35c(r11, r8) < 0x4) goto loc_898e8; | |
loc_898b4: | |
loc_e0b35c(r11, stack[2058], 0x2); | |
r7 = r7; | |
r4 = sub_e0b368(); | |
r6 = r5; | |
r5 = loc_e0b35c(); | |
loc_e0b36c(r4); | |
COND = r5 == 0x0; | |
r5 = r6; | |
if (COND) goto loc_8a690; | |
loc_898e8: | |
r6 = r5; | |
if (loc_e0b35c(r11, r8) < 0x4) goto loc_8a19a; | |
loc_898f8: | |
loc_e0b35c(r11, stack[2058], 0x2); | |
r7 = r7; | |
r4 = sub_e0b368(); | |
r5 = loc_e0b35c(r4, @selector(isEqualToString:), @"openprofile"); | |
loc_e0b36c(r4); | |
if ((r5 & 0xff) == 0x0) goto loc_8a19a; | |
loc_89936: | |
loc_e0b35c(*0x26fd950, stack[2064]); | |
r4 = sub_e0b368(); | |
r0 = loc_e0b35c(@class(OpenApiMgr), stack[2065]); | |
loc_e0b35c(r4, stack[2066], r0); | |
r5 = sub_e0b368(); | |
r0 = @selector(doOpenProfileApi:BundleID:Info:); | |
goto loc_8aaf2; | |
loc_8aaf2: | |
r8 = stack[2057]; | |
loc_e0b35c(r5); | |
loc_e0b36c(r5); | |
loc_e0b36c(r4); | |
r11 = 0x1; | |
goto loc_8ab10; | |
loc_8ab10: | |
r6 = stack[2060]; | |
goto loc_8ab14; | |
loc_8ab14: | |
loc_e0b36c(); | |
goto loc_8ab18; | |
loc_8a19a: | |
if (loc_e0b35c(r11, r8) < 0x4) goto loc_8a324; | |
loc_8a1a8: | |
loc_e0b35c(r11, stack[2058], 0x2); | |
r7 = r7; | |
r4 = sub_e0b368(); | |
r5 = loc_e0b35c(r4, @selector(isEqualToString:), @"jumptobizwebview"); | |
loc_e0b36c(r4); | |
if ((r5 & 0xff) == 0x0) goto loc_8a324; | |
loc_8a1e6: | |
loc_e0b35c(*0x26fd950, stack[2064]); | |
r4 = sub_e0b368(); | |
r0 = loc_e0b35c(@class(OpenApiMgr), stack[2065]); | |
loc_e0b35c(r4, stack[2066], r0); | |
r5 = sub_e0b368(); | |
r0 = @selector(doJumpToBizWebview:BundleID:Info:); | |
goto loc_8aaf2; | |
loc_8a324: | |
if (loc_e0b35c(r11, r8) < 0x4) goto loc_8a55e; | |
loc_8a332: | |
loc_e0b35c(r11, stack[2058], 0x2); | |
r7 = r7; | |
r4 = sub_e0b368(); | |
r5 = loc_e0b35c(r4, @selector(isEqualToString:), @"cardpackage"); | |
loc_e0b36c(r4); | |
if ((r5 & 0xff) == 0x0) goto loc_8a55e; | |
loc_8a370: | |
loc_e0b35c(*0x26fd950, stack[2064]); | |
r4 = sub_e0b368(); | |
r0 = loc_e0b35c(@class(OpenApiMgr), stack[2065]); | |
loc_e0b35c(r4, stack[2066], r0); | |
r5 = sub_e0b368(); | |
r0 = @selector(doAppAddCard:BundleID:Info:); | |
goto loc_8aaf2; | |
loc_8a55e: | |
if (loc_e0b35c(r11, r8) < 0x4) goto loc_8a75c; | |
loc_8a56c: | |
loc_e0b35c(r11, stack[2058], 0x2); | |
r7 = r7; | |
r4 = sub_e0b368(); | |
r5 = loc_e0b35c(r4, @selector(isEqualToString:), @"opentempsession"); | |
loc_e0b36c(r4); | |
if ((r5 & 0xff) == 0x0) goto loc_8a75c; | |
loc_8a5aa: | |
loc_e0b35c(*0x26fd950, stack[2064]); | |
r4 = sub_e0b368(); | |
r0 = loc_e0b35c(@class(OpenApiMgr), stack[2065]); | |
loc_e0b35c(r4, stack[2066], r0); | |
r5 = sub_e0b368(); | |
r0 = @selector(doOpenTempSessionWithAppId:bundleId:info:); | |
goto loc_8aaf2; | |
loc_8a75c: | |
if (loc_e0b35c(r11, r8) < 0x4) goto loc_8a7e6; | |
loc_8a768: | |
loc_e0b35c(r11, stack[2058], 0x2); | |
r7 = r7; | |
r4 = sub_e0b368(); | |
r5 = loc_e0b35c(r4, @selector(isEqualToString:), @"openwebview"); | |
loc_e0b36c(r4); | |
if ((r5 & 0xff) == 0x0) goto loc_8a7e6; | |
loc_8a7a4: | |
loc_e0b35c(*0x26fd950, stack[2064]); | |
r4 = sub_e0b368(); | |
r0 = loc_e0b35c(@class(OpenApiMgr), stack[2065]); | |
loc_e0b35c(r4, stack[2066], r0); | |
r5 = sub_e0b368(); | |
r0 = @selector(doOpenWebviewWithAppId:bundleId:info:); | |
goto loc_8aaf2; | |
loc_8a7e6: | |
if (loc_e0b35c(r11, r8) < 0x4) goto loc_8a9c2; | |
loc_8a7f4: | |
loc_e0b35c(r11, stack[2058], 0x2); | |
r7 = r7; | |
r4 = sub_e0b368(); | |
r5 = loc_e0b35c(r4, @selector(isEqualToString:), @"openranklist"); | |
loc_e0b36c(r4); | |
if ((r5 & 0xff) == 0x0) goto loc_8a9c2; | |
loc_8a832: | |
loc_e0b35c(*0x26fd950, stack[2064]); | |
r4 = sub_e0b368(); | |
r0 = loc_e0b35c(@class(OpenApiMgr), stack[2065]); | |
loc_e0b35c(r4, stack[2066], r0); | |
r5 = sub_e0b368(); | |
r0 = @selector(doOpenRankListWithAppId:bundleId:info:); | |
goto loc_8aaf2; | |
loc_8a9c2: | |
if (loc_e0b35c(r11, r8) < 0x4) goto loc_8aa4c; | |
loc_8a9ce: | |
loc_e0b35c(r11, stack[2058], 0x2); | |
r7 = r7; | |
r4 = sub_e0b368(); | |
r5 = loc_e0b35c(r4, @selector(isEqualToString:), @"createchatroom"); | |
loc_e0b36c(r4); | |
if ((r5 & 0xff) == 0x0) goto loc_8aa4c; | |
loc_8aa0a: | |
loc_e0b35c(*0x26fd950, stack[2064]); | |
r4 = sub_e0b368(); | |
r0 = loc_e0b35c(@class(OpenApiMgr), stack[2065]); | |
loc_e0b35c(r4, stack[2066], r0); | |
r5 = sub_e0b368(); | |
r0 = @selector(doCreateChatRoom:bundleId:info:); | |
goto loc_8aaf2; | |
loc_8aa4c: | |
if (loc_e0b35c(r11, r8) >= 0x4) { | |
loc_e0b35c(r11, stack[2058], 0x2); | |
r7 = r7; | |
r4 = sub_e0b368(); | |
r5 = loc_e0b35c(r4, @selector(isEqualToString:), @"joinchatroom"); | |
loc_e0b36c(r4); | |
r5 = zero_extend_32(r5); | |
if (r5 != 0x0) { | |
r5 = 0x1; | |
} | |
} | |
else { | |
r5 = 0x0; | |
} | |
loc_e0b35c(*0x26fd950, stack[2064]); | |
r7 = r7; | |
r4 = sub_e0b368(); | |
if (r5 != 0x1) goto loc_8ab4c; | |
loc_8aabe: | |
r0 = loc_e0b35c(@class(OpenApiMgr), stack[2065]); | |
loc_e0b35c(r4, stack[2066], r0); | |
r5 = sub_e0b368(); | |
r0 = @selector(joinChatRoom:bundleId:info:); | |
goto loc_8aaf2; | |
loc_8ab4c: | |
r0 = loc_e0b35c(@class(AppDataMgr), stack[2065]); | |
loc_e0b35c(r4, stack[2066], r0); | |
r7 = r7; | |
r5 = sub_e0b368(); | |
loc_e0b35c(r5, @selector(checkAndUpdateAppDataForiOS7Plus:forceUpdate:), stack[2057], 0x0); | |
loc_e0b36c(r5); | |
loc_e0b36c(r4); | |
if (loc_e0b35c(r11, r8) < 0x4) goto loc_8ad80; | |
loc_8aba0: | |
loc_e0b35c(r11, stack[2058], 0x2); | |
r7 = r7; | |
r4 = sub_e0b368(); | |
r5 = loc_e0b35c(); | |
loc_e0b36c(r4); | |
if (r5 == 0x0) goto loc_8ad80; | |
loc_8abd0: | |
loc_e0b35c(r11, stack[2058], 0x2); | |
r7 = r7; | |
r4 = sub_e0b368(); | |
r5 = loc_e0b35c(); | |
loc_e0b36c(r4); | |
if (r5 == 0x0) goto loc_8ad80; | |
loc_8ac00: | |
r10 = 0x26fd950; | |
r0 = *r10; | |
loc_e0b35c(r0, stack[2064]); | |
r8 = sub_e0b368(); | |
r0 = loc_e0b35c(@class(AppDataMgr), stack[2065]); | |
loc_e0b35c(r8, stack[2066], r0); | |
r7 = r7; | |
r5 = sub_e0b368(); | |
r4 = loc_e0b35c(r5, @selector(isNeedDetectRequetURL:), stack[2057]); | |
loc_e0b36c(r5); | |
loc_e0b36c(r8); | |
if ((r4 & 0xff) == 0x0) goto loc_8ad80; | |
loc_8ac60: | |
r0 = *r10; | |
loc_e0b35c(r0, stack[2064]); | |
r4 = sub_e0b368(); | |
stack[2061] = r4; | |
r0 = loc_e0b35c(@class(MMLanguageMgr), stack[2065]); | |
loc_e0b35c(r4, stack[2066], r0); | |
stack[2056] = sub_e0b368(); | |
loc_e0b35c(); | |
stack[2055] = sub_e0b368(); | |
r0 = *r10; | |
loc_e0b35c(r0, stack[2064]); | |
r10 = sub_e0b368(); | |
r0 = loc_e0b35c(@class(MMLanguageMgr), stack[2065]); | |
loc_e0b35c(r10, stack[2066], r0); | |
r4 = sub_e0b368(); | |
loc_e0b35c(); | |
r5 = sub_e0b368(); | |
r11 = 0x0; | |
loc_e0b35c(@class(CControlUtil), @selector(showAlert:message:delegate:cancelButtonTitle:), stack[2055], r5, r11, r11); | |
sub_e0b368(); | |
loc_e0b36c(); | |
loc_e0b36c(r5); | |
loc_e0b36c(r4); | |
loc_e0b36c(r10); | |
loc_e0b36c(stack[2055]); | |
loc_e0b36c(stack[2056]); | |
loc_e0b36c(stack[2061]); | |
r6 = stack[2060]; | |
r8 = stack[2057]; | |
goto loc_8ab14; | |
loc_8ad80: | |
loc_e0b35c(*0x26fd950, stack[2064]); | |
r4 = sub_e0b368(); | |
r0 = loc_e0b35c(@class(OpenApiMgr), stack[2065]); | |
loc_e0b35c(r4, stack[2066], r0); | |
r5 = sub_e0b368(); | |
goto loc_8aaf2; | |
loc_8a690: | |
r0 = *r10; | |
loc_e0b35c(r0, stack[2064]); | |
r4 = sub_e0b368(); | |
r0 = loc_e0b35c(@class(OpenApiMgr), stack[2065]); | |
loc_e0b35c(r4, stack[2066], r0); | |
r5 = sub_e0b368(); | |
r8 = stack[2057]; | |
loc_e0b35c(r5, @selector(doOAuthOpenApi:authInfo:), r8, stack[2068]); | |
loc_e0b36c(r5); | |
loc_e0b36c(r4); | |
loc_e0b35c(@class(MMServiceCenter), stack[2064]); | |
r4 = sub_e0b368(); | |
r0 = loc_e0b35c(@class(AppDataMgr), stack[2065]); | |
loc_e0b35c(r4, stack[2066], r0); | |
goto loc_8a72e; | |
loc_8a72e: | |
r5 = sub_e0b368(); | |
r11 = 0x1; | |
loc_e0b35c(r5, @selector(checkAndUpdateAppDataForiOS7Plus:forceUpdate:), r8, 0x1); | |
loc_e0b36c(r5); | |
loc_e0b36c(r4); | |
goto loc_8ab10; | |
loc_8a5ec: | |
r0 = *r10; | |
loc_e0b35c(r0, stack[2064]); | |
r4 = sub_e0b368(); | |
r0 = loc_e0b35c(@class(OpenApiMgr), stack[2065]); | |
loc_e0b35c(r4, stack[2066], r0); | |
r5 = sub_e0b368(); | |
r8 = stack[2057]; | |
loc_e0b35c(r5, @selector(doWCHBOpenApi:BundleID:payInfo:), r8, stack[2067], stack[2068]); | |
loc_e0b36c(r5); | |
loc_e0b36c(r4); | |
loc_e0b35c(@class(MMServiceCenter), stack[2064]); | |
r4 = sub_e0b368(); | |
r0 = loc_e0b35c(@class(AppDataMgr), stack[2065]); | |
loc_e0b35c(r4, stack[2066], r0); | |
goto loc_8a72e; | |
loc_8a4be: | |
loc_e0b35c(@class(MMServiceCenter), stack[2064]); | |
r4 = sub_e0b368(); | |
r0 = loc_e0b35c(@class(OpenApiMgr), stack[2065]); | |
loc_e0b35c(r4, stack[2066], r0); | |
r5 = sub_e0b368(); | |
loc_e0b35c(r5, @selector(doWCPayOpenApi:payInfo:), stack[2057], stack[2068]); | |
loc_e0b36c(r5); | |
loc_e0b36c(r4); | |
r8 = stack[2057]; | |
loc_e0b35c(@class(MMServiceCenter), stack[2064]); | |
r4 = sub_e0b368(); | |
r0 = loc_e0b35c(@class(AppDataMgr), stack[2065]); | |
loc_e0b35c(r4, stack[2066], r0); | |
goto loc_8a72e; | |
loc_8997a: | |
r11 = stack[2068]; | |
if ((loc_e0b35c(r6, r5, @"sign-in-twitter.wechatapp") != 0x0) || (loc_e0b35c(stack[2062], stack[2061]) < 0x2)) goto loc_89a6a; | |
loc_899a0: | |
r10 = @selector(objectAtIndex:); | |
loc_e0b35c(stack[2062], r10, 0x1); | |
r5 = sub_e0b368(); | |
loc_e0b35c(); | |
r7 = r7; | |
r4 = sub_e0b368(); | |
loc_e0b36c(r5); | |
if (loc_e0b35c(r4, stack[2061]) == 0x2) { | |
loc_e0b35c(@class(MMServiceCenter), stack[2064]); | |
r8 = sub_e0b368(); | |
r0 = loc_e0b35c(@class(MMTwitterMgr), stack[2065]); | |
loc_e0b35c(r8, stack[2066], r0); | |
r11 = sub_e0b368(); | |
loc_e0b35c(r4, r10, 0x1); | |
r5 = sub_e0b368(); | |
loc_e0b35c(r11, @selector(didTwitterLogin:), r5); | |
loc_e0b36c(r5); | |
loc_e0b36c(r11); | |
loc_e0b36c(r8); | |
} | |
loc_e0b36c(r4); | |
goto loc_8a31c; | |
loc_8a31c: | |
r11 = 0x0; | |
goto loc_8ab18; | |
loc_89a6a: | |
if ((loc_e0b35c(r6, r5, @"verifysms") != 0x0) || (loc_e0b35c(stack[2062], stack[2061]) < 0x3)) goto loc_89d08; | |
loc_89a90: | |
stack[2060] = r6; | |
r11 = @selector(objectAtIndex:); | |
r4 = @class(iConsole); | |
loc_e0b35c(stack[2062], r11, 0x1); | |
r7 = r7; | |
r5 = sub_e0b368(); | |
r1 = 0x7cc; | |
r0 = 0x235d538; | |
asm{ stm.w sp, {r2, r8} }; | |
loc_e0b35c(r4, r10, 0x1, 0x0, stack[2048], stack[2049], r1, "-[MicroMessengerAppDelegate handleOpenURL:bundleID:]"); | |
loc_e0b36c(r5); | |
loc_e0b35c(@class(MMServiceCenter), stack[2064]); | |
r8 = sub_e0b368(); | |
r0 = loc_e0b35c(@class(LazyExtensionAgent), stack[2065]); | |
loc_e0b35c(r8, stack[2066], r0); | |
r4 = sub_e0b368(); | |
loc_e0b35c(stack[2062], r11, 0x1); | |
r5 = sub_e0b368(); | |
r10 = @selector(OnHandleOpenAutoVerifySMS:); | |
loc_e0b35c(r4, @selector(ensureLazyListenerInitedForExtension:withSelector:forKey:), @protocol(IAutoVerifySMSExt), r10, r5); | |
loc_e0b36c(r5); | |
loc_e0b36c(r4); | |
loc_e0b36c(r8); | |
loc_e0b35c(@class(MMServiceCenter), stack[2064]); | |
r6 = sub_e0b368(); | |
r0 = loc_e0b35c(@class(MMExtensionCenter), stack[2065]); | |
loc_e0b35c(r6, stack[2066], r0); | |
r4 = sub_e0b368(); | |
loc_e0b35c(r4, @selector(getExtension:), @protocol(IAutoVerifySMSExt)); | |
r7 = r7; | |
r5 = sub_e0b368(); | |
loc_e0b36c(r4); | |
loc_e0b36c(r6); | |
r0 = stack[2062]; | |
if (r5 == 0x0) goto loc_89fac; | |
loc_89c04: | |
r8 = r11; | |
r6 = r10; | |
loc_e0b35c(); | |
r4 = sub_e0b368(); | |
stack[2056] = r5; | |
loc_e0b35c(r5, @selector(getKeyExtensionList:), r4); | |
r7 = r7; | |
r1 = sub_e0b368(); | |
r0 = r4; | |
stack[2065] = r1; | |
r4 = r1; | |
loc_e0b36c(r0, r1); | |
r11 = stack[2061]; | |
r5 = r8; | |
stack[2057] = r5; | |
if (loc_e0b35c(r4, r11) != 0x0) { | |
r10 = 0x0; | |
stack[2064] = @selector(respondsToSelector:); | |
stack[2058] = @selector(getObject); | |
stack[2066] = @selector(m_deleteMark); | |
do { | |
loc_e0b35c(r4, r5, r10); | |
r7 = r7; | |
r8 = sub_e0b368(); | |
if (zero_extend_32(loc_e0b35c()) != 0x1) { | |
loc_e0b35c(r8, stack[2058]); | |
r7 = r7; | |
r4 = sub_e0b368(); | |
if ((loc_e0b35c() & 0xff) != 0x0) { | |
loc_e0b35c(stack[2062], r5, 0x2); | |
r7 = r7; | |
r5 = r11; | |
r11 = sub_e0b368(); | |
loc_e0b35c(r4, r6, r11); | |
r0 = r11; | |
r11 = r5; | |
r5 = stack[2057]; | |
loc_e0b36c(r0); | |
} | |
loc_e0b36c(r4); | |
r4 = stack[2065]; | |
} | |
loc_e0b36c(r8); | |
r10 = r10 + 0x1; | |
} while (r10 < loc_e0b35c(r4, r11)); | |
} | |
goto loc_89fa2; | |
loc_89fa2: | |
loc_e0b36c(r4); | |
r0 = stack[2062]; | |
r5 = stack[2056]; | |
goto loc_89fac; | |
loc_89fac: | |
stack[2062] = r0; | |
goto loc_89fb0; | |
loc_89fb0: | |
loc_e0b36c(); | |
r11 = 0x1; | |
r6 = stack[2060]; | |
goto loc_8ab18; | |
loc_89d08: | |
if ((loc_e0b35c(r6, r5, @"verifyemail") != 0x0) || (loc_e0b35c(stack[2062], stack[2061]) < 0x3)) goto loc_89fbe; | |
loc_89d2e: | |
stack[2060] = r6; | |
r11 = @selector(objectAtIndex:); | |
r4 = @class(iConsole); | |
loc_e0b35c(stack[2062], r11, 0x1); | |
r7 = r7; | |
r5 = sub_e0b368(); | |
r1 = 0x7d2; | |
r0 = 0x235d29a; | |
asm{ stm.w sp, {r2, r8} }; | |
loc_e0b35c(r4, r10, 0x1, 0x0, stack[2048], stack[2049], r1, "-[MicroMessengerAppDelegate handleOpenURL:bundleID:]"); | |
loc_e0b36c(r5); | |
loc_e0b35c(@class(MMServiceCenter), stack[2064]); | |
r8 = sub_e0b368(); | |
r0 = loc_e0b35c(@class(LazyExtensionAgent), stack[2065]); | |
loc_e0b35c(r8, stack[2066], r0); | |
r4 = sub_e0b368(); | |
loc_e0b35c(stack[2062], r11, 0x1); | |
r5 = sub_e0b368(); | |
r10 = @selector(OnHandleOpenAutoVerifySMS:); | |
loc_e0b35c(r4, @selector(ensureLazyListenerInitedForExtension:withSelector:forKey:), @protocol(IAutoVerifySMSExt), r10, r5); | |
loc_e0b36c(r5); | |
loc_e0b36c(r4); | |
loc_e0b36c(r8); | |
loc_e0b35c(@class(MMServiceCenter), stack[2064]); | |
r6 = sub_e0b368(); | |
r0 = loc_e0b35c(@class(MMExtensionCenter), stack[2065]); | |
loc_e0b35c(r6, stack[2066], r0); | |
r4 = sub_e0b368(); | |
loc_e0b35c(r4, @selector(getExtension:), @protocol(IAutoVerifySMSExt)); | |
r7 = r7; | |
r5 = sub_e0b368(); | |
loc_e0b36c(r4); | |
loc_e0b36c(r6); | |
r0 = stack[2062]; | |
if (r5 == 0x0) goto loc_89fac; | |
loc_89ea2: | |
r8 = r11; | |
r6 = r10; | |
loc_e0b35c(); | |
r4 = sub_e0b368(); | |
stack[2056] = r5; | |
loc_e0b35c(r5, @selector(getKeyExtensionList:), r4); | |
r7 = r7; | |
r1 = sub_e0b368(); | |
r0 = r4; | |
stack[2065] = r1; | |
r4 = r1; | |
loc_e0b36c(r0, r1); | |
r11 = stack[2061]; | |
r5 = r8; | |
stack[2057] = r5; | |
if (loc_e0b35c(r4, r11) != 0x0) { | |
r10 = 0x0; | |
stack[2064] = @selector(respondsToSelector:); | |
stack[2058] = @selector(getObject); | |
stack[2066] = @selector(m_deleteMark); | |
do { | |
loc_e0b35c(r4, r5, r10); | |
r7 = r7; | |
r8 = sub_e0b368(); | |
if (zero_extend_32(loc_e0b35c()) != 0x1) { | |
loc_e0b35c(r8, stack[2058]); | |
r7 = r7; | |
r4 = sub_e0b368(); | |
if ((loc_e0b35c() & 0xff) != 0x0) { | |
loc_e0b35c(stack[2062], r5, 0x2); | |
r7 = r7; | |
r5 = r11; | |
r11 = sub_e0b368(); | |
loc_e0b35c(r4, r6, r11); | |
r0 = r11; | |
r11 = r5; | |
r5 = stack[2057]; | |
loc_e0b36c(r0); | |
} | |
loc_e0b36c(r4); | |
r4 = stack[2065]; | |
} | |
loc_e0b36c(r8); | |
r10 = r10 + 0x1; | |
} while (r10 < loc_e0b35c(r4, r11)); | |
} | |
goto loc_89fa2; | |
loc_89fbe: | |
if (loc_e0b35c(r6, r5, @"scanqrcode") == 0x0) goto loc_8a0f0; | |
loc_89fd6: | |
if (loc_e0b35c(r6, r5, @"cardpackage") == 0x0) goto loc_8a12a; | |
loc_89fee: | |
r10 = stack[2066]; | |
r8 = stack[2065]; | |
if (loc_e0b35c(r6, r5, @"dl") == 0x0) goto loc_8a22a; | |
loc_8a00e: | |
if (loc_e0b35c(r6, r5, @"connectToFreeWifi") == 0x0) goto loc_8a3b2; | |
loc_8a026: | |
if (loc_e0b35c(r6, r5, @"wap") != 0x0) goto loc_8a31c; | |
loc_8a03e: | |
r5 = stack[2062]; | |
if (loc_e0b35c(r5, stack[2061]) < 0x2) goto loc_8a31c; | |
loc_8a04e: | |
r4 = r8; | |
loc_e0b35c(r5, @selector(objectAtIndex:), 0x1); | |
r7 = r7; | |
r5 = sub_e0b368(); | |
if ((loc_e0b35c(r5, @selector(hasPrefix:), @"pay?") & 0xff) != 0x0) { | |
stack[2060] = r6; | |
loc_e0b35c(@class(CAppViewControllerManager), @selector(topMostController)); | |
r7 = r7; | |
r8 = sub_e0b368(); | |
if ((loc_e0b35c(r8, @selector(isKindOfClass:), loc_e0b35c(@class(MMUIViewController), r4)) & 0xff) != 0x0) { | |
r11 = 0x0; | |
} | |
else { | |
loc_e0b35c(@class(MMServiceCenter), stack[2064]); | |
r6 = sub_e0b368(); | |
r0 = loc_e0b35c(@class(WCPayControlMgr), r4); | |
loc_e0b35c(r6, r10, r0); | |
r10 = sub_e0b368(); | |
loc_e0b35c(@class(CAppViewControllerManager), 0x1); | |
r11 = sub_e0b368(); | |
r0 = loc_e0b35c(@"pay?", stack[2057]); | |
loc_e0b35c(r5, stack[2058], r0); | |
r4 = sub_e0b368(); | |
loc_e0b35c(r10, @selector(startPayMoneyFromWAPPayLogic:HandleUrl:), r11, r4); | |
loc_e0b36c(r4); | |
loc_e0b36c(r11); | |
loc_e0b36c(r10); | |
loc_e0b36c(r6); | |
r11 = 0x1; | |
} | |
r6 = stack[2060]; | |
loc_e0b36c(r8); | |
} | |
else { | |
r11 = 0x0; | |
} | |
goto loc_8ab14; | |
loc_8a3b2: | |
loc_e0b35c(@class(MMServiceCenter), stack[2064]); | |
r4 = sub_e0b368(); | |
r0 = loc_e0b35c(@class(PublicWifiManager), r8); | |
loc_e0b35c(r4, r10, r0); | |
r7 = r7; | |
r5 = sub_e0b368(); | |
loc_e0b35c(r5, @selector(handle3rdAppWithUrl:), r11); | |
loc_e0b36c(r5); | |
loc_e0b36c(r4); | |
r4 = stack[2062]; | |
if (loc_e0b35c(r4, stack[2061]) < 0x2) goto loc_8a188; | |
loc_8a420: | |
r5 = r8; | |
loc_e0b35c(r4, @selector(objectAtIndex:), 0x1); | |
r7 = r7; | |
r4 = sub_e0b368(); | |
if ((loc_e0b35c(r4, @selector(hasPrefix:), @"friendWifi?") & 0xff) == 0x0) goto loc_8a184; | |
loc_8a462: | |
loc_e0b35c(@class(MMServiceCenter), stack[2064]); | |
r8 = sub_e0b368(); | |
r0 = loc_e0b35c(@class(WCDeviceFriendWifiMgr), r5); | |
loc_e0b35c(r8, r10, r0); | |
r5 = sub_e0b368(); | |
loc_e0b35c(r5, @selector(handle3rdAppUrl:), r11); | |
loc_e0b36c(r5); | |
goto loc_8a17e; | |
loc_8a17e: | |
loc_e0b36c(); | |
goto loc_8a184; | |
loc_8a22a: | |
r11 = r8; | |
if ((loc_e0b35c(@class(CAppViewControllerManager), @selector(hasEnterWechatMain), 0x26fdaf4) & 0xff) == 0x0) goto loc_8a31c; | |
loc_8a24e: | |
stack[2060] = r6; | |
loc_e0b35c(@class(MMServiceCenter), stack[2064]); | |
r8 = sub_e0b368(); | |
r0 = loc_e0b35c(@class(WCBusinessJumpMgr), r11); | |
loc_e0b35c(r8, r10, r0); | |
r7 = r7; | |
r5 = sub_e0b368(); | |
r6 = stack[2063]; | |
r4 = loc_e0b35c(r5, @selector(isBusinessJump:), r6); | |
loc_e0b36c(r5); | |
loc_e0b36c(r8); | |
if ((r4 & 0xff) == 0x0) goto loc_8a874; | |
loc_8a2ba: | |
loc_e0b35c(@class(MMServiceCenter), stack[2064]); | |
r4 = sub_e0b368(); | |
r0 = loc_e0b35c(@class(WCBusinessJumpMgr), r11); | |
loc_e0b35c(r4, r10, r0); | |
r5 = sub_e0b368(); | |
loc_e0b35c(r5, @selector(handleJumpFromOuter:bundleId:parentViewController:), r6, stack[2067], 0x0); | |
loc_e0b36c(r5); | |
goto loc_89fb0; | |
loc_8a874: | |
r2 = 0x26fdaf4; | |
if ((loc_e0b35c(@class(WCDeepLinkHandler), @selector(isDeepLink:), r6) & 0xff) != 0x0) { | |
r0 = *r2; | |
loc_e0b35c(r0, @selector(getAppViewControllerManager)); | |
r4 = sub_e0b368(); | |
loc_e0b35c(r4, @selector(moveToRootViewController)); | |
loc_e0b36c(r4); | |
loc_e0b35c(@class(MMURLHandler), @selector(alloc), 0x26fdca4); | |
r4 = loc_e0b35c(); | |
r11 = 0x1; | |
loc_e0b35c(r4, @selector(setM_isDisableShare:), 0x1); | |
loc_e0b35c(r4, @selector(setM_viewController:), 0x0); | |
loc_e0b35c(r4, @selector(setM_urlPermittedSet:), 0xff); | |
loc_e0b35c(@class(NSNumber), @selector(numberWithUnsignedInt:), 0x17); | |
r5 = sub_e0b368(); | |
r0 = loc_e0b35c(@class(NSDictionary), @selector(dictionaryWithObjects:forKeys:count:), sp + 0x58, sp + 0x54, r11); | |
loc_e0b35c(r4, @selector(handleURL:withExtraInfo:), r6, r0); | |
loc_e0b36c(r5); | |
loc_e0b36c(r4); | |
r6 = stack[2060]; | |
} | |
else { | |
r11 = 0x0; | |
r6 = stack[2060]; | |
} | |
goto loc_8ab18; | |
loc_8a12a: | |
loc_e0b35c(@class(MMServiceCenter), stack[2064]); | |
r4 = sub_e0b368(); | |
r0 = loc_e0b35c(@class(OpenApiMgr), stack[2065]); | |
loc_e0b35c(r4, stack[2066], r0); | |
r5 = sub_e0b368(); | |
loc_e0b35c(r5, @selector(doSMSAddCardApi:), r11); | |
goto loc_8a17e; | |
loc_8a0f0: | |
loc_e0b35c(@class(CAppViewControllerManager), @selector(getAppViewControllerManager), 0x26fdaf4); | |
r4 = sub_e0b368(); | |
loc_e0b35c(r4, @selector(jumpToCameraScan:), 0x0); | |
goto loc_8a184; | |
loc_897c2: | |
r11 = 0x0; | |
goto loc_8ab22; | |
loc_897b6: | |
stack[2068] = 0x0; | |
r11 = 0x0; | |
goto loc_8ab30; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment