// File: /workspace/github_c_makefile_star2_O0/Nico01[P]obj2asm/outarget.c
// Function: get_fix
int get_fix( result, mode, pre_name, size_bytes, size, assign,
                                                    size_known, seg_reg )
    char            *result;        /* Resulting name will go here            */
    int             mode;           /* 0 = Data Deref, 1 = Code, 2 = Data Ref */
    int             pre_name;       /* Fixup type words needed?               */
    int             size_bytes;     /* Word size (386=4 others=2)             */
    int             size;           /* Size of expected value                 */
    int             assign;         /* TRUE to set size, FALSE to ignore      */
    int             *size_known;    /* Is "word ptr" text needed?             */
    int             seg_reg;        /* Segment register used                  */
{
    dword   data;
    dword   more;
    int             fix_count;

    size_bytes = size_bytes;
    fix_count = fix_type[fix_rec->form].num_bytes;

    /*
    ** BASE types do not get larger
    */
    if ( fix_rec->extended && fix_rec->form != BASE ) {
        fix_count += 2;
    }

    switch( fix_count ) {
        case 1: data = buff_getc();
                break;
        case 2: data = buff_getc();
                data += (buff_getc() << 8);
                break;
        case 4: data = buff_getc();
                data += (buff_getc() << 8);
                data += (buff_getc() << 16);
                data += (buff_getc() << 24);
                break;
        case 6: data = buff_getc();
                data += (buff_getc() << 8);
                data += (buff_getc() << 16);
                data += (buff_getc() << 24);
                more = buff_getc();
                more += (buff_getc() << 8);
                break;
        default:
                fmt_error( "Invalid fixup type" );
                break;
    }

    get_target( result, fix_rec, mode, data, pre_name, size, assign,
                                                        size_known, seg_reg );
    fix_advance();

    return( fix_count );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movl 0x18(%rbp), %eax
movq 0x10(%rbp), %rax
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movl %ecx, -0x14(%rbp)
movl %r8d, -0x18(%rbp)
movl %r9d, -0x1c(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0xd0a7(%rip), %rax      # 0x202e8
movq (%rax), %rax
movslq 0x18(%rax), %rcx
leaq 0xcc41(%rip), %rax      # 0x1fe90
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %eax
movl %eax, -0x34(%rbp)
leaq 0xd086(%rip), %rax      # 0x202e8
movq (%rax), %rax
cmpl $0x0, 0x38(%rax)
je 0x13284
leaq 0xd076(%rip), %rax      # 0x202e8
movq (%rax), %rax
cmpl $0x2, 0x18(%rax)
je 0x13284
movl -0x34(%rbp), %eax
addl $0x2, %eax
movl %eax, -0x34(%rbp)
movl -0x34(%rbp), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x40(%rbp)
subl $0x5, %eax
ja 0x13381
movq -0x40(%rbp), %rax
leaq 0x51b5(%rip), %rcx      # 0x18458
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
callq 0x11a60
cltq
movq %rax, -0x28(%rbp)
jmp 0x1338d
callq 0x11a60
cltq
movq %rax, -0x28(%rbp)
callq 0x11a60
shll $0x8, %eax
cltq
addq -0x28(%rbp), %rax
movq %rax, -0x28(%rbp)
jmp 0x1338d
callq 0x11a60
cltq
movq %rax, -0x28(%rbp)
callq 0x11a60
shll $0x8, %eax
cltq
addq -0x28(%rbp), %rax
movq %rax, -0x28(%rbp)
callq 0x11a60
shll $0x10, %eax
cltq
addq -0x28(%rbp), %rax
movq %rax, -0x28(%rbp)
callq 0x11a60
shll $0x18, %eax
cltq
addq -0x28(%rbp), %rax
movq %rax, -0x28(%rbp)
jmp 0x1338d
callq 0x11a60
cltq
movq %rax, -0x28(%rbp)
callq 0x11a60
shll $0x8, %eax
cltq
addq -0x28(%rbp), %rax
movq %rax, -0x28(%rbp)
callq 0x11a60
shll $0x10, %eax
cltq
addq -0x28(%rbp), %rax
movq %rax, -0x28(%rbp)
callq 0x11a60
shll $0x18, %eax
cltq
addq -0x28(%rbp), %rax
movq %rax, -0x28(%rbp)
callq 0x11a60
cltq
movq %rax, -0x30(%rbp)
callq 0x11a60
shll $0x8, %eax
cltq
addq -0x30(%rbp), %rax
movq %rax, -0x30(%rbp)
jmp 0x1338d
leaq 0x51c4(%rip), %rdi      # 0x1854c
callq 0x16e00
movq -0x8(%rbp), %rdi
leaq 0xcf50(%rip), %rax      # 0x202e8
movq (%rax), %rsi
movl -0xc(%rbp), %edx
movq -0x28(%rbp), %rcx
movl -0x10(%rbp), %r8d
movl -0x18(%rbp), %r9d
movl -0x1c(%rbp), %r11d
movq 0x10(%rbp), %r10
movl 0x18(%rbp), %eax
movl %r11d, (%rsp)
movq %r10, 0x8(%rsp)
movl %eax, 0x10(%rsp)
callq 0x12d30
callq 0xe430
movl -0x34(%rbp), %eax
addq $0x60, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nop