TCA smashableJccTarget(TCA jmp) { using namespace vixl; Instruction* b = Instruction::Cast(jmp); if (b->Bits(31, 24) != 0x54 || b->Bit(4) != 0) return nullptr; Instruction* br = Instruction::Cast(jmp + 8); if (br->Bits(31, 10) != 0x3587C0 || br->Bits(4, 0) != 0) return nullptr; uintptr_t dest = reinterpret_cast<uintptr_t>(jmp + 12); assertx((dest & 7) == 0); return *reinterpret_cast<TCA*>(dest); }