// File: /workspace/github_c_makefile_star2_O3/Nico01[P]obj2asm/odisasm.c
// Function: five_byte
int five_byte( byte, text, class )
    uchar   byte;
    char            *text;
    int             class;
{
    dword   offset;
    dword   segment;
    int             size_known;
    char            line[50];
    char            temp[50];
    int             data_size;

    if ( over_seg != -1 ) {         /* No segment overide allowed */
        return(0);
    }

    data_size = size_bytes;

    switch( data_check( 1 ) ) {
        case BAD:
            return( 0 );
        case LABEL:
            return( 0 );
        case FIXUP:
            if ( fix_rec->form != POINTER || fix_rec->extended != size_large ) {
                return( 0 );
            }
            get_fix( temp, 1, FALSE, size_bytes, NEAR, TRUE, &size_known, CS );
            sprintf( line, "far ptr %s", temp );
            break;
        case NORMAL:
            if ( check_getv( &offset, size_large ) ) {
                return( 0 );
            }
            if ( data_check(3) != NORMAL ) {
                return( 0 );
            }
            if ( check_getw( &segment ) ) {
                return( 0 );
            }
            out_hexize( segment, temp, 2 );      /* Convert 2 byte into hex */
            strcpy( line, temp );
            strcat( line, ":" );
            out_hexize( offset, temp, size_bytes ); /* Convert 2/4 bytes into hex */
            strcat( line, temp );
            break; 
    }

    adjust_assumes();

    instr_opcode( text );
    instr_operand( line );

    byte = byte;               /* Prevent unused variable warnings */
    class = class;              /* Prevent unused variable warnings */

    return( 3 + data_size );
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x90, %rsp
xorl %ebp, %ebp
cmpl $-0x1, 0xfe3e(%rip)     # 0x19a88
je 0x9c5e
movl %ebp, %eax
addq $0x90, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %rsi, %rbx
movl 0xfe24(%rip), %r12d     # 0x19a8c
movl $0x1, %edi
callq 0xcd14
cmpl $0x3, %eax
ja 0x9d08
movl %eax, %eax
leaq 0x9380(%rip), %rcx      # 0x13004
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
cmpl $0x0, 0x131f0(%rip)     # 0x1ce84
je 0x9d37
movq %rsp, %rdi
callq 0x971c
jmp 0x9d3f
leaq 0x1346a(%rip), %rax     # 0x1d118
movq (%rax), %rax
cmpl $0x3, 0x18(%rax)
jne 0x9c4c
movl 0x38(%rax), %eax
cmpl 0x131c4(%rip), %eax     # 0x1ce84
jne 0x9c4c
movl 0xfdc4(%rip), %ecx      # 0x19a8c
movq %rsp, %rax
leaq 0x50(%rsp), %r14
movq %r14, %rdi
movl $0x1, %esi
xorl %edx, %edx
movl $0x1, %r8d
movl $0x1, %r9d
pushq $0x12
pushq %rax
callq 0x1027f
addq $0x10, %rsp
leaq 0x956d(%rip), %rsi      # 0x13266
leaq 0x10(%rsp), %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x91b0
callq 0xf955
movq %rbx, %rdi
callq 0x97c1
leaq 0x1324c(%rip), %rax     # 0x1cf68
cmpl $0x3, (%rax)
jne 0x9d2b
leaq 0x10(%rsp), %rdi
callq 0xca45
addl $0x3, %r12d
movl %r12d, %ebp
jmp 0x9c4c
movq %rsp, %rdi
callq 0x96e5
testl %eax, %eax
jne 0x9c4c
movl $0x3, %edi
callq 0xcd14
testl %eax, %eax
jne 0x9c4c
leaq 0x8(%rsp), %rdi
callq 0x96e5
testl %eax, %eax
jne 0x9c4c
movq 0x8(%rsp), %rdi
leaq 0x50(%rsp), %r14
movq %r14, %rsi
movl $0x2, %edx
callq 0xcb74
leaq 0x10(%rsp), %r15
movq %r15, %rdi
movq %r14, %rsi
callq 0x9070
movq %r15, %rdi
callq 0x90b0
movw $0x3a, 0x10(%rsp,%rax)
movq (%rsp), %rdi
movl 0xfce1(%rip), %edx      # 0x19a8c
movq %r14, %rsi
callq 0xcb74
movq %r15, %rdi
movq %r14, %rsi
callq 0x91a0
jmp 0x9d08