int _NSApplicationMain(int argc, int argv) {
_CFRunLoopSetPerCalloutAutoreleasepoolEnabled(0x1, argv);
kdebug_trace(0x2bd80004, 0x0, 0x0, 0x0, 0x0);
var_30 = NSPushAutoreleasePool(0x0);
rbx = *___NSApplicationInfoDictionary;
if (rbx == 0x0) {
rbx = _objc_msgSend_7ff84021d210(_objc_msgSend_7ff84021d210(*0x7ff841b81fa0, *0x7ff841b48c00), *0x7ff841b4ae10);
}
r14 = _objc_msgSend_7ff84021d210(rbx, *0x7ff841b48d18);
r12 = _objc_msgSend_7ff84021d210(rbx, *0x7ff841b48d18);
var_38 = _objc_msgSend_7ff84021d210(rbx, *0x7ff841b48d18);
r13 = _objc_msgSend_7ff84021d210(rbx, *0x7ff841b48d18);
if (r14 == 0x0) {
if (_CFExecutableLinkedOnOrAfter(0x10, *0x7ff841b48d18, 0x7ff84024ff28, 0x0, 0x0) == 0x0) {
r14 = 0x0;
}
else {
r14 = NSStringFromClass(objc_opt_class(*0x7ff841b825b0, *0x7ff841b48d18, 0x7ff84024ff28, 0x0, 0x0));
}
}
entr_act_begin(0x3, 0x3, 0xffffffffffffffff, 0x0, 0x8000000000000000);
if (r14 != 0x0) goto loc_7ff802d1fcf1;
loc_7ff802d1fce1:
NSLog(0x7ff84024ffa8);
goto loc_7ff802d1fd0f;
loc_7ff802d1fd0f:
rbx = var_30;
goto loc_7ff802d1fd13;
loc_7ff802d1fd13:
[*_NSApp release];
NSPopAutoreleasePool(rbx);
rax = exit(0x1);
return rax;
loc_7ff802d1fcf1:
rax = NSClassFromString(r14);
if (rax != 0x0) goto loc_7ff802d1fd35;
loc_7ff802d1fcfe:
NSLog(0x7ff84024ff88);
goto loc_7ff802d1fd0f;
loc_7ff802d1fd35:
rbx = rax;
_objc_msgSend_7ff84021d210(rbx, *0x7ff841b4c6b0);
*(int8_t *)_sApplicationLaunchIsPastSplashScreens = 0x1;
rdx = var_38;
if (_objc_msgSend_7ff84021d210(*_NSApp, *0x7ff841b4d958, rdx) == 0x0) goto loc_7ff802d1fd99;
loc_7ff802d1fd7c:
rax = (*_objc_msgSend)(*0x7ff841b826a0, *0x7ff841b4d960);
if (rax != 0x0) goto loc_7ff802d1fe2a;
loc_7ff802d1fd99:
rbx = var_30;
if ((*_objc_msgSend)(*_NSApp, *0x7ff841b4d998) == 0x0) goto loc_7ff802d1febb;
loc_7ff802d1fdbf:
kdebug_trace(0x2bd80035, 0x0, 0x0, 0x0, 0x0);
r14 = (*_objc_msgSend)(*0x7ff841b81fa0, *0x7ff841b4d360);
kdebug_trace(0x2bd80036, 0x0, 0x0, 0x0, 0x0);
if (r14 != 0x0 || r12 == 0x0) goto loc_7ff802d1febb;
loc_7ff802d1fe14:
NSLog(0x7ff84024ff68);
goto loc_7ff802d1fd13;
loc_7ff802d1febb:
NSPopAutoreleasePool(rbx);
(*_objc_msgSend)(*_NSApp, *0x7ff841b4d9a0);
[*_NSApp release];
rax = exit(0x0);
return rax;
loc_7ff802d1fe2a:
r14 = rax;
rax = NSClassFromString(r13);
rax = objc_alloc_init(rax);
r13 = rax;
if (rax != 0x0) {
rax = _objc_msgSend_7ff84021d210(rbx, *0x7ff841b4c6b0);
rdx = r13;
_objc_msgSend_7ff84021d210(rax, *0x7ff841b49d10, rdx);
}
_objc_msgSend_7ff84021d210(r14, *0x7ff841b4d968, _objc_msgSend_7ff84021d210(rbx, *0x7ff841b4c6b0, rdx));
if (_objc_msgSend_7ff84021d210(r14, *0x7ff841b4d970, rdx) == 0x0) goto loc_7ff802d1fea7;
loc_7ff802d1fe8f:
rax = (*_objc_msgSend)(r14, *0x7ff841b4d978);
if (rax != 0x0) goto loc_7ff802d1ff01;
loc_7ff802d1fea7:
r12 = 0x0;
rbx = var_30;
goto loc_7ff802d1feab;
loc_7ff802d1feab:
[r12 retain];
goto loc_7ff802d1febb;
loc_7ff802d1ff01:
r14 = rax;
if (objc_opt_isKindOfClass(r14, objc_opt_self(*0x7ff841b826a8)) != 0x0) goto loc_7ff802d1ff89;
loc_7ff802d1ff1f:
if (objc_opt_isKindOfClass(r14, objc_opt_self(*0x7ff841b826b0)) != 0x0) goto loc_7ff802d1ffa1;
loc_7ff802d1ff3a:
_objc_msgSend_7ff84021d210(*0x7ff841b820a8, *0x7ff841b49228, **_NSInternalInconsistencyException, 0x7ff84024ff48, objc_opt_class(r14), var_38);
_objc_msgSend_7ff84021d210(0x0, *0x7ff841b4d988, 0x0);
goto loc_7ff802d1fea7;
loc_7ff802d1ffa1:
rax = _objc_msgSend_7ff84021d210(*0x7ff841b826a8, *0x7ff841b4d980, r14);
r14 = rax;
r12 = 0x0;
_objc_msgSend_7ff84021d210(rax, *0x7ff841b4d988, 0x0);
rbx = var_30;
if (r14 == 0x0) goto loc_7ff802d1feab;
loc_7ff802d1ffd7:
if (objc_opt_respondsToSelector(r13, *0x7ff841b4d990, 0x0, 0x0, 0x8000000000000000) != 0x0) goto loc_7ff802d1fff5;
loc_7ff802d1ffed:
r12 = r14;
goto loc_7ff802d1feab;
loc_7ff802d1fff5:
(*_objc_msgSend)(r13, *0x7ff841b4d990);
goto loc_7ff802d1febb;
loc_7ff802d1ff89:
(*_objc_msgSend)(r14, *0x7ff841b4d988);
rbx = var_30;
goto loc_7ff802d1ffd7;
}
NSApplicationMain伪代码
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 马化腾的大名,相信大家都听过。作为腾讯公司主要创办人之一,他竟然曾经也是个程序员。早前,网络上曝光了一张马化腾16...
- 说一说你平时写代码遵守的编码规范. 命名规范(1)都用英文小写(2)用引号包裹(3)用中横线连接(4)体现功能, ...