// File: /workspace/github_c_makefile_star2_O0/PoulinV[P]AxiCLASS/build/../tools/parser.c
// Function: parser_cat
int parser_cat(struct file_content * pfc1,
               struct file_content * pfc2,
               struct file_content * pfc3,
               ErrorMsg errmsg) {

  int i;

  class_test(pfc1->size < 0.,
             errmsg,
             "size of file_content structure probably not initialized properly\n");

  class_test(pfc2->size < 0.,
             errmsg,
             "size of file_content structure probably not initialized properly\n");

  if (pfc1->size == 0) {
    class_alloc(pfc3->filename,(strlen(pfc2->filename)+1)*sizeof(char),errmsg);
    class_sprintf(pfc3->filename,"%s",pfc2->filename);
  }
  if (pfc2->size == 0) {
    class_alloc(pfc3->filename,(strlen(pfc1->filename)+1)*sizeof(char),errmsg);
    class_sprintf(pfc3->filename,"%s",pfc1->filename);
  }
  if ((pfc1->size !=0) && (pfc2->size != 0)) {
    class_alloc(pfc3->filename,(strlen(pfc1->filename)+strlen(pfc2->filename)+5)*sizeof(char),errmsg);
    class_sprintf(pfc3->filename,"%s or %s",pfc1->filename,pfc2->filename);
  }

  pfc3->size = pfc1->size + pfc2->size;
  class_alloc(pfc3->value,pfc3->size*sizeof(FileArg),errmsg);
  class_alloc(pfc3->name,pfc3->size*sizeof(FileArg),errmsg);
  class_alloc(pfc3->read,pfc3->size*sizeof(short),errmsg);

  for (i=0; i < pfc1->size; i++) {
    strcpy(pfc3->value[i],pfc1->value[i]);
    strcpy(pfc3->name[i],pfc1->name[i]);
    pfc3->read[i]=pfc1->read[i];
  }

  for (i=0; i < pfc2->size; i++) {
    strcpy(pfc3->value[i+pfc1->size],pfc2->value[i]);
    strcpy(pfc3->name[i+pfc1->size],pfc2->name[i]);
    pfc3->read[i+pfc1->size]=pfc2->read[i];
  }

  return _SUCCESS_;

}

// Assembly:
subq $0x50a8, %rsp           # imm = 0x50A8
movq %rdi, 0x5098(%rsp)
movq %rsi, 0x5090(%rsp)
movq %rdx, 0x5088(%rsp)
movq %rcx, 0x5080(%rsp)
movq 0x5098(%rsp), %rax
cvtsi2sdl 0x8(%rax), %xmm1
xorps %xmm0, %xmm0
ucomisd %xmm1, %xmm0
jbe 0x39cb2
leaq 0x4870(%rsp), %rdi
leaq 0x19b1ee(%rip), %rsi    # 0x1d4e3a
movb $0x0, %al
callq 0x5b9c0
leaq 0x4070(%rsp), %rdi
leaq 0x4870(%rsp), %rcx
leaq 0x198418(%rip), %rsi    # 0x1d2082
leaq 0x19b20b(%rip), %rdx    # 0x1d4e7c
movb $0x0, %al
callq 0x5b9c0
movq 0x5080(%rsp), %rdi
leaq 0x4070(%rsp), %r8
leaq 0x1983a5(%rip), %rsi    # 0x1d2034
leaq 0x19b1f6(%rip), %rdx    # 0x1d4e8c
movl $0x276, %ecx            # imm = 0x276
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x50a4(%rsp)
jmp 0x3a515
movq 0x5090(%rsp), %rax
cvtsi2sdl 0x8(%rax), %xmm1
xorps %xmm0, %xmm0
ucomisd %xmm1, %xmm0
jbe 0x39d3d
leaq 0x3870(%rsp), %rdi
leaq 0x19b163(%rip), %rsi    # 0x1d4e3a
movb $0x0, %al
callq 0x5b9c0
leaq 0x3070(%rsp), %rdi
leaq 0x3870(%rsp), %rcx
leaq 0x19838d(%rip), %rsi    # 0x1d2082
leaq 0x19b19b(%rip), %rdx    # 0x1d4e97
movb $0x0, %al
callq 0x5b9c0
movq 0x5080(%rsp), %rdi
leaq 0x3070(%rsp), %r8
leaq 0x19831a(%rip), %rsi    # 0x1d2034
leaq 0x19b16b(%rip), %rdx    # 0x1d4e8c
movl $0x27a, %ecx            # imm = 0x27A
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x50a4(%rsp)
jmp 0x3a515
movq 0x5098(%rsp), %rax
cmpl $0x0, 0x8(%rax)
jne 0x39e64
movq 0x5090(%rsp), %rax
movq (%rax), %rdi
callq 0x8190
movq %rax, %rdi
addq $0x1, %rdi
shlq $0x0, %rdi
callq 0x8460
movq %rax, %rcx
movq 0x5088(%rsp), %rax
movq %rcx, (%rax)
movq 0x5088(%rsp), %rax
cmpq $0x0, (%rax)
jne 0x39e08
movq 0x5090(%rsp), %rax
movq (%rax), %rdi
callq 0x8190
addq $0x1, %rax
shlq $0x0, %rax
movl %eax, 0x306c(%rsp)
leaq 0x2860(%rsp), %rdi
movl 0x306c(%rsp), %ecx
leaq 0x198244(%rip), %rsi    # 0x1d2004
leaq 0x19b0e0(%rip), %rdx    # 0x1d4ea7
movb $0x0, %al
callq 0x5b9c0
movq 0x5080(%rsp), %rdi
leaq 0x2860(%rsp), %r8
leaq 0x19824f(%rip), %rsi    # 0x1d2034
leaq 0x19b0a0(%rip), %rdx    # 0x1d4e8c
movl $0x27d, %ecx            # imm = 0x27D
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x50a4(%rsp)
jmp 0x3a515
jmp 0x39e0a
movq 0x5090(%rsp), %rax
movq (%rax), %rcx
xorl %eax, %eax
movl %eax, %esi
leaq 0x1b529f(%rip), %rdx    # 0x1ef0bf
movq %rsi, %rdi
movb $0x0, %al
callq 0x8540
movl %eax, 0x285c(%rsp)
movq 0x5088(%rsp), %rax
movq (%rax), %rdi
movl 0x285c(%rsp), %eax
addl $0x1, %eax
movslq %eax, %rsi
movq 0x5090(%rsp), %rax
movq (%rax), %rcx
leaq 0x1b5264(%rip), %rdx    # 0x1ef0bf
movb $0x0, %al
callq 0x8540
jmp 0x39e64
movq 0x5090(%rsp), %rax
cmpl $0x0, 0x8(%rax)
jne 0x39f8b
movq 0x5098(%rsp), %rax
movq (%rax), %rdi
callq 0x8190
movq %rax, %rdi
addq $0x1, %rdi
shlq $0x0, %rdi
callq 0x8460
movq %rax, %rcx
movq 0x5088(%rsp), %rax
movq %rcx, (%rax)
movq 0x5088(%rsp), %rax
cmpq $0x0, (%rax)
jne 0x39f2f
movq 0x5098(%rsp), %rax
movq (%rax), %rdi
callq 0x8190
addq $0x1, %rax
shlq $0x0, %rax
movl %eax, 0x2858(%rsp)
leaq 0x2050(%rsp), %rdi
movl 0x2858(%rsp), %ecx
leaq 0x19811d(%rip), %rsi    # 0x1d2004
leaq 0x19afb9(%rip), %rdx    # 0x1d4ea7
movb $0x0, %al
callq 0x5b9c0
movq 0x5080(%rsp), %rdi
leaq 0x2050(%rsp), %r8
leaq 0x198128(%rip), %rsi    # 0x1d2034
leaq 0x19af79(%rip), %rdx    # 0x1d4e8c
movl $0x281, %ecx            # imm = 0x281
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x50a4(%rsp)
jmp 0x3a515
jmp 0x39f31
movq 0x5098(%rsp), %rax
movq (%rax), %rcx
xorl %eax, %eax
movl %eax, %esi
leaq 0x1b5178(%rip), %rdx    # 0x1ef0bf
movq %rsi, %rdi
movb $0x0, %al
callq 0x8540
movl %eax, 0x204c(%rsp)
movq 0x5088(%rsp), %rax
movq (%rax), %rdi
movl 0x204c(%rsp), %eax
addl $0x1, %eax
movslq %eax, %rsi
movq 0x5098(%rsp), %rax
movq (%rax), %rcx
leaq 0x1b513d(%rip), %rdx    # 0x1ef0bf
movb $0x0, %al
callq 0x8540
jmp 0x39f8b
movq 0x5098(%rsp), %rax
cmpl $0x0, 0x8(%rax)
je 0x3a116
movq 0x5090(%rsp), %rax
cmpl $0x0, 0x8(%rax)
je 0x3a116
movq 0x5098(%rsp), %rax
movq (%rax), %rdi
callq 0x8190
movq %rax, 0x8(%rsp)
movq 0x5090(%rsp), %rax
movq (%rax), %rdi
callq 0x8190
movq 0x8(%rsp), %rdi
addq %rax, %rdi
addq $0x5, %rdi
shlq $0x0, %rdi
callq 0x8460
movq %rax, %rcx
movq 0x5088(%rsp), %rax
movq %rcx, (%rax)
movq 0x5088(%rsp), %rax
cmpq $0x0, (%rax)
jne 0x3a0a4
movq 0x5098(%rsp), %rax
movq (%rax), %rdi
callq 0x8190
movq %rax, (%rsp)
movq 0x5090(%rsp), %rax
movq (%rax), %rdi
callq 0x8190
movq %rax, %rcx
movq (%rsp), %rax
addq %rcx, %rax
addq $0x5, %rax
shlq $0x0, %rax
movl %eax, 0x2048(%rsp)
leaq 0x1840(%rsp), %rdi
movl 0x2048(%rsp), %ecx
leaq 0x197fa8(%rip), %rsi    # 0x1d2004
leaq 0x19ae44(%rip), %rdx    # 0x1d4ea7
movb $0x0, %al
callq 0x5b9c0
movq 0x5080(%rsp), %rdi
leaq 0x1840(%rsp), %r8
leaq 0x197fb3(%rip), %rsi    # 0x1d2034
leaq 0x19ae04(%rip), %rdx    # 0x1d4e8c
movl $0x285, %ecx            # imm = 0x285
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x50a4(%rsp)
jmp 0x3a515
jmp 0x3a0a6
movq 0x5098(%rsp), %rax
movq (%rax), %rcx
movq 0x5090(%rsp), %rax
movq (%rax), %r8
xorl %eax, %eax
movl %eax, %esi
leaq 0x19adef(%rip), %rdx    # 0x1d4eb6
movq %rsi, %rdi
movb $0x0, %al
callq 0x8540
movl %eax, 0x183c(%rsp)
movq 0x5088(%rsp), %rax
movq (%rax), %rdi
movl 0x183c(%rsp), %eax
addl $0x1, %eax
movslq %eax, %rsi
movq 0x5098(%rsp), %rax
movq (%rax), %rcx
movq 0x5090(%rsp), %rax
movq (%rax), %r8
leaq 0x19ada9(%rip), %rdx    # 0x1d4eb6
movb $0x0, %al
callq 0x8540
jmp 0x3a116
movq 0x5098(%rsp), %rax
movl 0x8(%rax), %ecx
movq 0x5090(%rsp), %rax
addl 0x8(%rax), %ecx
movq 0x5088(%rsp), %rax
movl %ecx, 0x8(%rax)
movq 0x5088(%rsp), %rax
movslq 0x8(%rax), %rdi
shlq $0xa, %rdi
callq 0x8460
movq %rax, %rcx
movq 0x5088(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x5088(%rsp), %rax
cmpq $0x0, 0x18(%rax)
jne 0x3a1df
movq 0x5088(%rsp), %rax
movslq 0x8(%rax), %rax
shlq $0xa, %rax
movl %eax, 0x1838(%rsp)
leaq 0x1030(%rsp), %rdi
movl 0x1838(%rsp), %ecx
leaq 0x197e6d(%rip), %rsi    # 0x1d2004
leaq 0x19ad21(%rip), %rdx    # 0x1d4ebf
movb $0x0, %al
callq 0x5b9c0
movq 0x5080(%rsp), %rdi
leaq 0x1030(%rsp), %r8
leaq 0x197e78(%rip), %rsi    # 0x1d2034
leaq 0x19acc9(%rip), %rdx    # 0x1d4e8c
movl $0x28a, %ecx            # imm = 0x28A
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x50a4(%rsp)
jmp 0x3a515
movq 0x5088(%rsp), %rax
movslq 0x8(%rax), %rdi
shlq $0xa, %rdi
callq 0x8460
movq %rax, %rcx
movq 0x5088(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x5088(%rsp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x3a287
movq 0x5088(%rsp), %rax
movslq 0x8(%rax), %rax
shlq $0xa, %rax
movl %eax, 0x102c(%rsp)
leaq 0x820(%rsp), %rdi
movl 0x102c(%rsp), %ecx
leaq 0x197dc5(%rip), %rsi    # 0x1d2004
leaq 0x19ac85(%rip), %rdx    # 0x1d4ecb
movb $0x0, %al
callq 0x5b9c0
movq 0x5080(%rsp), %rdi
leaq 0x820(%rsp), %r8
leaq 0x197dd0(%rip), %rsi    # 0x1d2034
leaq 0x19ac21(%rip), %rdx    # 0x1d4e8c
movl $0x28b, %ecx            # imm = 0x28B
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x50a4(%rsp)
jmp 0x3a515
movq 0x5088(%rsp), %rax
movslq 0x8(%rax), %rdi
shlq %rdi
callq 0x8460
movq %rax, %rcx
movq 0x5088(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x5088(%rsp), %rax
cmpq $0x0, 0x20(%rax)
jne 0x3a327
movq 0x5088(%rsp), %rax
movslq 0x8(%rax), %rax
shlq %rax
movl %eax, 0x81c(%rsp)
leaq 0x10(%rsp), %rdi
movl 0x81c(%rsp), %ecx
leaq 0x197d22(%rip), %rsi    # 0x1d2004
leaq 0x19abed(%rip), %rdx    # 0x1d4ed6
movb $0x0, %al
callq 0x5b9c0
movq 0x5080(%rsp), %rdi
leaq 0x10(%rsp), %r8
leaq 0x197d30(%rip), %rsi    # 0x1d2034
leaq 0x19ab81(%rip), %rdx    # 0x1d4e8c
movl $0x28c, %ecx            # imm = 0x28C
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x50a4(%rsp)
jmp 0x3a515
movl $0x0, 0x507c(%rsp)
movl 0x507c(%rsp), %eax
movq 0x5098(%rsp), %rcx
cmpl 0x8(%rcx), %eax
jge 0x3a406
movq 0x5088(%rsp), %rax
movq 0x18(%rax), %rdi
movslq 0x507c(%rsp), %rax
shlq $0xa, %rax
addq %rax, %rdi
movq 0x5098(%rsp), %rax
movq 0x18(%rax), %rsi
movslq 0x507c(%rsp), %rax
shlq $0xa, %rax
addq %rax, %rsi
callq 0x8370
movq 0x5088(%rsp), %rax
movq 0x10(%rax), %rdi
movslq 0x507c(%rsp), %rax
shlq $0xa, %rax
addq %rax, %rdi
movq 0x5098(%rsp), %rax
movq 0x10(%rax), %rsi
movslq 0x507c(%rsp), %rax
shlq $0xa, %rax
addq %rax, %rsi
callq 0x8370
movq 0x5098(%rsp), %rax
movq 0x20(%rax), %rax
movslq 0x507c(%rsp), %rcx
movw (%rax,%rcx,2), %dx
movq 0x5088(%rsp), %rax
movq 0x20(%rax), %rax
movslq 0x507c(%rsp), %rcx
movw %dx, (%rax,%rcx,2)
movl 0x507c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x507c(%rsp)
jmp 0x3a332
movl $0x0, 0x507c(%rsp)
movl 0x507c(%rsp), %eax
movq 0x5090(%rsp), %rcx
cmpl 0x8(%rcx), %eax
jge 0x3a50a
movq 0x5088(%rsp), %rax
movq 0x18(%rax), %rdi
movl 0x507c(%rsp), %eax
movq 0x5098(%rsp), %rcx
addl 0x8(%rcx), %eax
cltq
shlq $0xa, %rax
addq %rax, %rdi
movq 0x5090(%rsp), %rax
movq 0x18(%rax), %rsi
movslq 0x507c(%rsp), %rax
shlq $0xa, %rax
addq %rax, %rsi
callq 0x8370
movq 0x5088(%rsp), %rax
movq 0x10(%rax), %rdi
movl 0x507c(%rsp), %eax
movq 0x5098(%rsp), %rcx
addl 0x8(%rcx), %eax
cltq
shlq $0xa, %rax
addq %rax, %rdi
movq 0x5090(%rsp), %rax
movq 0x10(%rax), %rsi
movslq 0x507c(%rsp), %rax
shlq $0xa, %rax
addq %rax, %rsi
callq 0x8370
movq 0x5090(%rsp), %rax
movq 0x20(%rax), %rax
movslq 0x507c(%rsp), %rcx
movw (%rax,%rcx,2), %dx
movq 0x5088(%rsp), %rax
movq 0x20(%rax), %rax
movl 0x507c(%rsp), %ecx
movq 0x5098(%rsp), %rsi
addl 0x8(%rsi), %ecx
movslq %ecx, %rcx
movw %dx, (%rax,%rcx,2)
movl 0x507c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x507c(%rsp)
jmp 0x3a411
movl $0x0, 0x50a4(%rsp)
movl 0x50a4(%rsp), %eax
addq $0x50a8, %rsp           # imm = 0x50A8
retq
nopw %cs:(%rax,%rax)