def METHOD_NAME(self, instruction):
    # JMP is unconditional
    if instruction.id in (X86_INS_JMP, X86_INS_RET, X86_INS_CALL):
        return None
    # We can't reason about anything except the current instruction
    if instruction.address != pwndbg.gdblib.regs.pc:
        return False
    efl = pwndbg.gdblib.regs.eflags
    cf = efl & (1 << 0)
    pf = efl & (1 << 2)
    af = efl & (1 << 4)
    zf = efl & (1 << 6)
    sf = efl & (1 << 7)
    of = efl & (1 << 11)
    return {
        X86_INS_CMOVA: not (cf or zf),
        X86_INS_CMOVAE: not cf,
        X86_INS_CMOVB: cf,
        X86_INS_CMOVBE: cf or zf,
        X86_INS_CMOVE: zf,
        X86_INS_CMOVG: not zf and (sf == of),
        X86_INS_CMOVGE: sf == of,
        X86_INS_CMOVL: sf != of,
        X86_INS_CMOVLE: zf or (sf != of),
        X86_INS_CMOVNE: not zf,
        X86_INS_CMOVNO: not of,
        X86_INS_CMOVNP: not pf,
        X86_INS_CMOVNS: not sf,
        X86_INS_CMOVO: of,
        X86_INS_CMOVP: pf,
        X86_INS_CMOVS: sf,
        X86_INS_JA: not (cf or zf),
        X86_INS_JAE: not cf,
        X86_INS_JB: cf,
        X86_INS_JBE: cf or zf,
        X86_INS_JE: zf,
        X86_INS_JG: not zf and (sf == of),
        X86_INS_JGE: sf == of,
        X86_INS_JL: sf != of,
        X86_INS_JLE: zf or (sf != of),
        X86_INS_JNE: not zf,
        X86_INS_JNO: not of,
        X86_INS_JNP: not pf,
        X86_INS_JNS: not sf,
        X86_INS_JO: of,
        X86_INS_JP: pf,
        X86_INS_JS: sf,
    }.get(instruction.id, None)