// File: /workspace/github_c_makefile_star2_O0/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
movq %rsp, %rbp
subq $0xc0, %rsp
movb %dil, %al
movb %al, -0x5(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
cmpl $-0x1, 0x12d29(%rip)    # 0x1ca78
je 0x9d5d
movl $0x0, -0x4(%rbp)
jmp 0x9f12
movl 0x12d19(%rip), %eax     # 0x1ca7c
movl %eax, -0xa4(%rbp)
movl $0x1, %edi
callq 0xe580
movl %eax, %ecx
movq %rcx, -0xb0(%rbp)
subl $0x3, %eax
ja 0x9ee3
movq -0xb0(%rbp), %rax
leaq 0xd2b1(%rip), %rcx      # 0x17044
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl $0x0, -0x4(%rbp)
jmp 0x9f12
movl $0x0, -0x4(%rbp)
jmp 0x9f12
leaq 0x1652d(%rip), %rax     # 0x202e8
movq (%rax), %rax
cmpl $0x3, 0x18(%rax)
jne 0x9dd9
leaq 0x1651d(%rip), %rax     # 0x202e8
movq (%rax), %rax
movl 0x38(%rax), %eax
cmpl 0x16285(%rip), %eax     # 0x2005c
je 0x9de5
movl $0x0, -0x4(%rbp)
jmp 0x9f12
leaq -0xa0(%rbp), %rdi
movl 0x12c8a(%rip), %ecx     # 0x1ca7c
movl $0x1, %r9d
xorl %edx, %edx
leaq -0x2c(%rbp), %rax
movl %r9d, %esi
movl %r9d, %r8d
movq %rax, (%rsp)
movl $0x12, 0x8(%rsp)
callq 0x13210
leaq -0x60(%rbp), %rdi
leaq -0xa0(%rbp), %rdx
leaq 0xd4bb(%rip), %rsi      # 0x172e2
movb $0x0, %al
callq 0x9190
jmp 0x9ee3
movl 0x16223(%rip), %esi     # 0x2005c
leaq -0x20(%rbp), %rdi
callq 0x95e0
cmpl $0x0, %eax
je 0x9e53
movl $0x0, -0x4(%rbp)
jmp 0x9f12
movl $0x3, %edi
callq 0xe580
cmpl $0x0, %eax
je 0x9e6e
movl $0x0, -0x4(%rbp)
jmp 0x9f12
leaq -0x28(%rbp), %rdi
callq 0x94a0
cmpl $0x0, %eax
je 0x9e88
movl $0x0, -0x4(%rbp)
jmp 0x9f12
movq -0x28(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
movl $0x2, %edx
callq 0xe320
leaq -0x60(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x9060
leaq -0x60(%rbp), %rdi
leaq 0xe726(%rip), %rsi      # 0x185de
callq 0x9180
movq -0x20(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
movl 0x12bae(%rip), %edx     # 0x1ca7c
callq 0xe320
leaq -0x60(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x9180
callq 0x123f0
movq -0x10(%rbp), %rdi
callq 0x9670
leaq -0x60(%rbp), %rdi
callq 0x96b0
movb -0x5(%rbp), %al
movb %al, -0x5(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movl -0xa4(%rbp), %eax
addl $0x3, %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0xc0, %rsp
popq %rbp
retq
nop