// File: /workspace/github_c_makefile_star2_O0/olcaytaner[P]Isell/savecode.c
// Function: code_add_variable
void code_add_variable(FILE* testcodefile, PROGRAMMING_LANGUAGE_TYPE language, int vartype, int count, ...)
{
 /*!Last Changed 05.06.2006*/
 int i;
 char* line;
 va_list ap;
 if (in_list(language, 1, MATLAB_LANGUAGE))
   return;
 switch (language)
  {
   case C_LANGUAGE      :
   case CPP_LANGUAGE    :
   case JAVA_LANGUAGE   :switch (vartype)
                          {
                           case INTEGER_VARIABLE:fprintf(testcodefile, "int");
                                                 break;
                           case REAL_VARIABLE   :fprintf(testcodefile, "double");
                                                 break;
                          }
                         break;
   case FORTRAN_LANGUAGE:switch (vartype)
                          {
                           case INTEGER_VARIABLE:fprintf(testcodefile, "integer");
                                                 break;
                           case REAL_VARIABLE   :fprintf(testcodefile, "real");
                                                 break;
                          }
                         break;
   default              :break;
  }
 va_start(ap, count);
 for (i = 0; i < count; i++)
  { 
   line = va_arg(ap, char *);
   if (i != 0)
     fprintf(testcodefile, ",");
   fprintf(testcodefile, " %s", line);
  }
 switch (language)
  {
   case C_LANGUAGE      :
   case CPP_LANGUAGE    :
   case JAVA_LANGUAGE   :
   case FORTRAN_LANGUAGE:fprintf(testcodefile, ";\n");
                         break;
   case PASCAL_LANGUAGE :switch (vartype)
                          {
                           case INTEGER_VARIABLE:fprintf(testcodefile, ": integer;\n");
                                                 break;
                           case REAL_VARIABLE   :fprintf(testcodefile, ": real;\n");
                                                 break;
                          }
                         break;
   default              :break;
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x120, %rsp            # imm = 0x120
testb %al, %al
je 0xafe7b
movaps %xmm0, -0xc0(%rbp)
movaps %xmm1, -0xb0(%rbp)
movaps %xmm2, -0xa0(%rbp)
movaps %xmm3, -0x90(%rbp)
movaps %xmm4, -0x80(%rbp)
movaps %xmm5, -0x70(%rbp)
movaps %xmm6, -0x60(%rbp)
movaps %xmm7, -0x50(%rbp)
movq %r9, -0xc8(%rbp)
movq %r8, -0xd0(%rbp)
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movl %ecx, -0x14(%rbp)
movl -0xc(%rbp), %edi
movl $0x1, %esi
movl $0x4, %edx
movb $0x0, %al
callq 0x53e40
cmpl $0x0, %eax
je 0xafeb4
jmp 0xb00d5
movl -0xc(%rbp), %eax
movl %eax, -0xf4(%rbp)
subl $0x2, %eax
jb 0xafee1
jmp 0xafec4
movl -0xf4(%rbp), %eax
subl $0x3, %eax
je 0xafee1
jmp 0xafed1
movl -0xf4(%rbp), %eax
subl $0x5, %eax
je 0xaff25
jmp 0xaff69
movl -0x10(%rbp), %eax
movl %eax, -0xf8(%rbp)
testl %eax, %eax
je 0xafefd
jmp 0xafef0
movl -0xf8(%rbp), %eax
subl $0x1, %eax
je 0xaff11
jmp 0xaff23
movq -0x8(%rbp), %rdi
leaq 0x36896(%rip), %rsi     # 0xe679e
movb $0x0, %al
callq 0x4280
jmp 0xaff23
movq -0x8(%rbp), %rdi
leaq 0x3324f(%rip), %rsi     # 0xe316b
movb $0x0, %al
callq 0x4280
jmp 0xaff6b
movl -0x10(%rbp), %eax
movl %eax, -0xfc(%rbp)
testl %eax, %eax
je 0xaff41
jmp 0xaff34
movl -0xfc(%rbp), %eax
subl $0x1, %eax
je 0xaff55
jmp 0xaff67
movq -0x8(%rbp), %rdi
leaq 0x3c9e6(%rip), %rsi     # 0xec932
movb $0x0, %al
callq 0x4280
jmp 0xaff67
movq -0x8(%rbp), %rdi
leaq 0x3c9da(%rip), %rsi     # 0xec93a
movb $0x0, %al
callq 0x4280
jmp 0xaff6b
jmp 0xaff6b
leaq -0x40(%rbp), %rax
leaq -0xf0(%rbp), %rcx
movq %rcx, 0x10(%rax)
leaq 0x10(%rbp), %rcx
movq %rcx, 0x8(%rax)
movl $0x30, 0x4(%rax)
movl $0x20, (%rax)
movl $0x0, -0x18(%rbp)
movl -0x18(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0xb0044
leaq -0x40(%rbp), %rax
movq %rax, -0x108(%rbp)
movl -0x40(%rbp), %eax
movl %eax, -0x100(%rbp)
cmpl $0x28, %eax
ja 0xaffdd
movq -0x108(%rbp), %rcx
movl -0x100(%rbp), %edx
movslq %edx, %rax
addq 0x10(%rcx), %rax
addl $0x8, %edx
movl %edx, (%rcx)
movq %rax, -0x110(%rbp)
jmp 0xafffa
movq -0x108(%rbp), %rcx
movq 0x8(%rcx), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, 0x8(%rcx)
movq %rax, -0x110(%rbp)
movq -0x110(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
cmpl $0x0, -0x18(%rbp)
je 0xb0020
movq -0x8(%rbp), %rdi
leaq 0x35601(%rip), %rsi     # 0xe561a
movb $0x0, %al
callq 0x4280
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rdx
leaq 0x34a68(%rip), %rsi     # 0xe4a97
movb $0x0, %al
callq 0x4280
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0xaff96
movl -0xc(%rbp), %eax
movl %eax, -0x114(%rbp)
subl $0x2, %eax
jb 0xb007b
jmp 0xb0054
movl -0x114(%rbp), %eax
subl $0x2, %eax
je 0xb008f
jmp 0xb0061
movl -0x114(%rbp), %eax
subl $0x3, %eax
je 0xb007b
jmp 0xb006e
movl -0x114(%rbp), %eax
subl $0x5, %eax
jne 0xb00d3
jmp 0xb007b
movq -0x8(%rbp), %rdi
leaq 0x36424(%rip), %rsi     # 0xe64aa
movb $0x0, %al
callq 0x4280
jmp 0xb00d5
movl -0x10(%rbp), %eax
movl %eax, -0x118(%rbp)
testl %eax, %eax
je 0xb00ab
jmp 0xb009e
movl -0x118(%rbp), %eax
subl $0x1, %eax
je 0xb00bf
jmp 0xb00d1
movq -0x8(%rbp), %rdi
leaq 0x3c8a5(%rip), %rsi     # 0xec95b
movb $0x0, %al
callq 0x4280
jmp 0xb00d1
movq -0x8(%rbp), %rdi
leaq 0x3c89d(%rip), %rsi     # 0xec967
movb $0x0, %al
callq 0x4280
jmp 0xb00d5
jmp 0xb00d5
addq $0x120, %rsp            # imm = 0x120
popq %rbp
retq
nop