// File: /workspace/github_c_makefile_star2_O0/Nico01[P]obj2asm/odisasm.c
// Function: three_byte
int three_byte( byte, text, class )
    uchar   byte;
    char            *text;
    int             class;
{
    dword   offset;
    int             dummy;
    int             data_size;
    int             size_tmp;
    char            line[50];
    char            temp[50];

    if ( over_seg != -1 ) {         /* No segment overide allowed */
        return( 0 );
    }

    reg_format( class, line, text, "%s\t", "%s\t%s," );

    size_tmp = size_large;

    if ( byte == 0xC2 || byte == 0xCA ) {       /* <RET jjkk>/<RETF jjkk> */
        size_tmp = FALSE;
        size_bytes = 2;
    }

    data_size = size_bytes;

    switch( data_check( 1 ) ) {
        case BAD:       return( 0 );
        case LABEL:     return( 0 );
        case FIXUP:     if ( fix_rec->word_sized
                                && fix_rec->extended == size_tmp ) {
                            get_fix( temp, 2, TRUE, size_bytes,
                                                    NEAR, FALSE, &dummy, DS );
                            strcat( line, temp );
                            adjust_assumes();
                            instr_opcode( line );
                            return( data_size+1 );
                        } else {
                            return( 0 );
                        }
        case NORMAL:    if ( check_getv( &offset, size_tmp ) ) {
                            return( 0 );
                        }
                        out_hexize( offset, temp, size_bytes );
                        strcat( line, temp );
                        instr_opcode(line);
                        return( data_size+1 );
    }
    return(0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movb %dil, %al
movb %al, -0x5(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
cmpl $-0x1, 0x12ee9(%rip)    # 0x1ca78
je 0x9b9d
movl $0x0, -0x4(%rbp)
jmp 0x9d21
movl -0x14(%rbp), %edi
leaq -0x60(%rbp), %rsi
movq -0x10(%rbp), %rdx
leaq 0xd712(%rip), %rcx      # 0x172c1
leaq 0xd70f(%rip), %r8       # 0x172c5
callq 0x9350
movl 0x1649b(%rip), %eax     # 0x2005c
movl %eax, -0x2c(%rbp)
movzbl -0x5(%rbp), %eax
cmpl $0xc2, %eax
je 0x9bda
movzbl -0x5(%rbp), %eax
cmpl $0xca, %eax
jne 0x9beb
movl $0x0, -0x2c(%rbp)
movl $0x2, 0x12e91(%rip)     # 0x1ca7c
movl 0x12e8b(%rip), %eax     # 0x1ca7c
movl %eax, -0x28(%rbp)
movl $0x1, %edi
callq 0xe580
movl %eax, %ecx
movq %rcx, -0xa8(%rbp)
subl $0x3, %eax
ja 0x9d1a
movq -0xa8(%rbp), %rax
leaq 0xd416(%rip), %rcx      # 0x17034
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl $0x0, -0x4(%rbp)
jmp 0x9d21
movl $0x0, -0x4(%rbp)
jmp 0x9d21
leaq 0x166a2(%rip), %rax     # 0x202e8
movq (%rax), %rax
cmpl $0x0, 0x3c(%rax)
je 0x9cbd
leaq 0x16692(%rip), %rax     # 0x202e8
movq (%rax), %rax
movl 0x38(%rax), %eax
cmpl -0x2c(%rbp), %eax
jne 0x9cbd
leaq -0xa0(%rbp), %rdi
movl 0x12e0e(%rip), %ecx     # 0x1ca7c
movl $0x2, %esi
movl $0x1, %r8d
xorl %r9d, %r9d
leaq -0x24(%rbp), %rax
movl %r8d, %edx
movq %rax, (%rsp)
movl $0x14, 0x8(%rsp)
callq 0x13210
leaq -0x60(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x9180
callq 0x123f0
leaq -0x60(%rbp), %rdi
callq 0x9670
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
jmp 0x9d21
movl $0x0, -0x4(%rbp)
jmp 0x9d21
movl -0x2c(%rbp), %esi
leaq -0x20(%rbp), %rdi
callq 0x95e0
cmpl $0x0, %eax
je 0x9ce0
movl $0x0, -0x4(%rbp)
jmp 0x9d21
movq -0x20(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
movl 0x12d8b(%rip), %edx     # 0x1ca7c
callq 0xe320
leaq -0x60(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x9180
leaq -0x60(%rbp), %rdi
callq 0x9670
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
jmp 0x9d21
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0xc0, %rsp
popq %rbp
retq
nopl (%rax)