Created
August 18, 2015 13:25
-
-
Save smirn0v/467fca27bb75452f9f08 to your computer and use it in GitHub Desktop.
have alpha channel
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
function methImpl_UIImage__isInvisibleAndGetIsTranslucent_ { | |
rbx = rdx; | |
rax = objc_getAssociatedObject(rdi, ___imageIsInvisibleKey); | |
r14 = rax; | |
rax = objc_getAssociatedObject(rdi, ___imageIsTranslucentKey); | |
r15 = rax; | |
if (r14 != 0x0) goto loc_0x40052; | |
goto loc_3fe1b; | |
loc_40052: | |
if (rbx != 0x0) { | |
rax = [r15 boolValue]; | |
*(int8_t *)rbx = rax; | |
} | |
rax = [r14 boolValue]; | |
return rax; | |
loc_3fe1b: | |
var_40 = rbx; | |
rbx = *objc_msgSend; | |
[r12 size]; | |
var_48 = xmm0; | |
var_56 = xmm1; | |
rax = [r12 CGImage]; | |
rax = CGImageGetBitmapInfo(rax); | |
rbx = 0x1; | |
asm{ xorpd %xmm0, %xmm0 }; | |
if (var_48 != xmm0) goto loc_0x3fe6c; | |
goto loc_3fe62; | |
loc_3fe6c: | |
if (var_56 != xmm0) goto loc_0x3fe80; | |
goto loc_3fe7a; | |
loc_3fe80: | |
if ((rax & 0x1f) > 0x6) goto loc_0x3fe9c; | |
goto loc_3fe88; | |
loc_3fe9c: | |
rbx = 0x1; | |
(rbx)(r12, *objc_sel_size); | |
var_56 = xmm0; | |
var_48 = xmm1; | |
(rbx)(r12, @selector(scale)); | |
_UIGraphicsBeginImageContextWithOptions(0x0); | |
var_80 = var_56; | |
var_88 = var_48; | |
var_56 = r12; | |
(rbx)(r12, @selector(drawInRect:)); | |
rax = _UIGraphicsGetCurrentContext(); | |
r14 = rax; | |
rax = CGBitmapContextGetData(r14); | |
r12 = rax; | |
rax = CGBitmapContextGetWidth(r14); | |
rbx = rax; | |
rax = CGBitmapContextGetHeight(r14); | |
r13 = rax; | |
rax = CGBitmapContextGetBytesPerRow(r14); | |
var_48 = rax; | |
rax = __UIApplicationLinkedOnOrAfter(0x6); | |
rax = rax == 0x0 ? 0xff : 0x0; | |
if (r13 <= 0x0) goto loc_0x3ffd4; | |
goto loc_3ff6a; | |
loc_3ffd4: | |
r15 = 0x0; | |
loc_3ffda: | |
_UIGraphicsEndImageContext(); | |
r12 = var_56; | |
rbx = *objc_msgSend; | |
loc_3ffea: | |
rax = (rbx)(*bind__OBJC_CLASS_$_NSNumber, @selector(numberWithBool:), r14 & 0x1 & 0xff); | |
r14 = rax; | |
rax = (rbx)(*bind__OBJC_CLASS_$_NSNumber, @selector(numberWithBool:), r15 & 0x1 & 0xff); | |
r15 = rax; | |
objc_setAssociatedObject(r12, ___imageIsInvisibleKey, r14, 0x301); | |
objc_setAssociatedObject(r12, ___imageIsTranslucentKey, r15, 0x301); | |
rbx = var_40; | |
goto loc_40052; | |
loc_3ff6a: | |
r8 = (rax & 0xff) + (rax & 0xff) * 0x2; | |
rcx = 0x0; | |
r9 = var_48; | |
loc_3ff7d: | |
if (rbx <= 0x0) goto loc_0x3ffbe; | |
goto loc_3ff81; | |
loc_3ffbe: | |
if (((((0x0 & 0x1) == 0x0) || ((r14 & 0x1) != 0x0))) && (rcx + 0x1 < r13)) goto loc_0x3ff7d; | |
goto loc_3ffda; | |
loc_3ff81: | |
temp_0 = rcx; | |
temp_1 = r9; | |
rdx = SIGN_EXTEND(LOWORD(temp_0 * temp_1)) + r8; | |
rsi = 0x0; | |
rdi = 0x0; | |
loc_3ff91: | |
if (*(int8_t *)(r12 + SIGN_EXTEND(rdi) + rdx) != 0x0) { | |
r14 = 0x0; | |
} | |
if (rax != 0xffffffffffffffff) { | |
rbx = 0x1; | |
} | |
if (((0x0 & 0x1) != 0x0) && ((r14 & 0x1) == 0x0)) goto loc_0x3ffbe; | |
rdi = rdi + 0x4; | |
if (rsi + 0x1 < rbx) goto loc_0x3ff91; | |
goto loc_3ffbe; | |
loc_3fe88: | |
r15 = 0x0; | |
if (BIT_TEST(0x61, rax)) goto loc_0x3ffea; | |
goto loc_3fe9c; | |
loc_3fe7a: | |
if (CPU_EFLAGS & FLG_NP) goto loc_3ffea; | |
goto loc_3fe80; | |
loc_3fe62: | |
if (CPU_EFLAGS & FLG_P) goto loc_3fe6c; | |
goto loc_3ffea; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment