// File: /workspace/github_c_makefile_star2_O3/buptlxb[P]xRay/disasm/instr_set/opcodes_Grp8.c
// Function: G8_EvIb
void __bea_callspec__ G8_EvIb(PDISASM pMyDisasm)
{
    GV.REGOPCODE = ((*((UInt8*)(UIntPtr) (GV.EIP_+1))) >> 3) & 0x7;
    EvIb(pMyDisasm);
    if (GV.REGOPCODE == 4) {
        (*pMyDisasm).Instruction.Category = GENERAL_PURPOSE_INSTRUCTION+BIT_UInt8;
        #ifndef BEA_LIGHT_DISASSEMBLY
           (void) strcpy ((*pMyDisasm).Instruction.Mnemonic, "bt ");
        #endif
        (*pMyDisasm).Argument1.AccessMode = READ;
        FillFlags(pMyDisasm, 11);
    }
    else if (GV.REGOPCODE == 5) {
        if ((*pMyDisasm).Prefix.LockPrefix == InvalidPrefix) {
            (*pMyDisasm).Prefix.LockPrefix = InUsePrefix;
        }
        (*pMyDisasm).Instruction.Category = GENERAL_PURPOSE_INSTRUCTION+BIT_UInt8;
        #ifndef BEA_LIGHT_DISASSEMBLY
           (void) strcpy ((*pMyDisasm).Instruction.Mnemonic, "bts ");
        #endif
        (*pMyDisasm).Argument1.AccessMode = READ;
        FillFlags(pMyDisasm, 11);
    }
    else if (GV.REGOPCODE == 6) {
        if ((*pMyDisasm).Prefix.LockPrefix == InvalidPrefix) {
            (*pMyDisasm).Prefix.LockPrefix = InUsePrefix;
        }
        (*pMyDisasm).Instruction.Category = GENERAL_PURPOSE_INSTRUCTION+BIT_UInt8;
        #ifndef BEA_LIGHT_DISASSEMBLY
           (void) strcpy ((*pMyDisasm).Instruction.Mnemonic, "btr ");
        #endif
        (*pMyDisasm).Argument1.AccessMode = READ;
        FillFlags(pMyDisasm, 11);
    }
    else if (GV.REGOPCODE == 7) {
        if ((*pMyDisasm).Prefix.LockPrefix == InvalidPrefix) {
            (*pMyDisasm).Prefix.LockPrefix = InUsePrefix;
        }
        (*pMyDisasm).Instruction.Category = GENERAL_PURPOSE_INSTRUCTION+BIT_UInt8;
        #ifndef BEA_LIGHT_DISASSEMBLY
           (void) strcpy ((*pMyDisasm).Instruction.Mnemonic, "btc ");
        #endif
        (*pMyDisasm).Argument1.AccessMode = READ;
        FillFlags(pMyDisasm, 11);
    }
    else {
        FailDecode(pMyDisasm);
    }
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x1f0(%rdi), %rax
movzbl 0x1(%rax), %eax
shrl $0x3, %eax
andl $0x7, %eax
movl %eax, 0x240(%rdi)
callq 0x2b14e
movl 0x240(%rbx), %eax
addl $-0x4, %eax
cmpl $0x3, %eax
ja 0x1fe0f
leaq 0xdb07(%rip), %rcx      # 0x2d878
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl $0x10005, 0x60(%rbx)    # imm = 0x10005
movl $0x207462, 0x68(%rbx)   # imm = 0x207462
jmp 0x1fdec
cmpb $0x4, 0x1dc(%rbx)
jne 0x1fd9a
movb $0x1, 0x1dc(%rbx)
movl $0x10005, 0x60(%rbx)    # imm = 0x10005
movl $0x20727462, 0x68(%rbx) # imm = 0x20727462
jmp 0x1fde8
cmpb $0x4, 0x1dc(%rbx)
jne 0x1fdba
movb $0x1, 0x1dc(%rbx)
movl $0x10005, 0x60(%rbx)    # imm = 0x10005
movl $0x20637462, 0x68(%rbx) # imm = 0x20637462
jmp 0x1fde8
cmpb $0x4, 0x1dc(%rbx)
jne 0x1fdda
movb $0x1, 0x1dc(%rbx)
movl $0x10005, 0x60(%rbx)    # imm = 0x10005
movl $0x20737462, 0x68(%rbx) # imm = 0x20737462
movb $0x0, 0x6c(%rbx)
movl $0x1, 0xe8(%rbx)
movq 0x18407(%rip), %rax     # 0x38204
movq %rax, 0x7c(%rbx)
movl 0x18405(%rip), %eax     # 0x3820c
movl %eax, 0x84(%rbx)
popq %rbx
retq
movb $0x0, 0x6c(%rbx)
movl $0x203f3f3f, 0x68(%rbx) # imm = 0x203F3F3F
movl $0x1, 0x280(%rbx)
jmp 0x1fe0d