// File: /workspace/github_c_makefile_star2_O0/olcaytaner[P]Isell/savecode.c
// Function: code_add_array_variable
void code_add_array_variable(FILE* testcodefile, PROGRAMMING_LANGUAGE_TYPE language, int count, ...)
{
 /*!Last Changed 13.06.2006*/
 int i, arraytype, arraysize;
 char *arrayname, ch1, ch2;
 va_list ap;
 if (in_list(language, 1, MATLAB_LANGUAGE))
   return;
 va_start(ap, count);
 for (i = 0; i < count; i++)
  { 
   arraytype = va_arg(ap, int);
   arrayname = va_arg(ap, char *);
   arraysize = va_arg(ap, int);
   switch (language){
     case C_LANGUAGE      :
     case CPP_LANGUAGE    :
     case JAVA_LANGUAGE   :switch (arraytype){
                             case INTEGER_VARIABLE:fprintf(testcodefile, "int");
                                                   break;
                             case REAL_VARIABLE   :fprintf(testcodefile, "double");
                                                   break;
                           }
                           ch1 = '[';
                           ch2 = ']';
                           break;
     case FORTRAN_LANGUAGE:switch (arraytype){
                             case INTEGER_VARIABLE:fprintf(testcodefile, "integer");
                                                   break;
                             case REAL_VARIABLE   :fprintf(testcodefile, "real");
                                                   break;
                           }
                           ch1 = '(';
                           ch2 = ')';
                           break;
     default              :break;
   }   
   fprintf(testcodefile, " %s", arrayname);
   switch (language){
     case C_LANGUAGE      :
     case CPP_LANGUAGE    :
     case JAVA_LANGUAGE   :
     case FORTRAN_LANGUAGE:fprintf(testcodefile, "%c%d%c;\n", ch1, arraysize, ch2);
                           break;
     case PASCAL_LANGUAGE :fprintf(testcodefile, ": array[1..%d] of ", arraysize);
                           switch (arraytype){
                             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 $0x160, %rsp            # imm = 0x160
testb %al, %al
je 0xafaee
movaps %xmm0, -0xd0(%rbp)
movaps %xmm1, -0xc0(%rbp)
movaps %xmm2, -0xb0(%rbp)
movaps %xmm3, -0xa0(%rbp)
movaps %xmm4, -0x90(%rbp)
movaps %xmm5, -0x80(%rbp)
movaps %xmm6, -0x70(%rbp)
movaps %xmm7, -0x60(%rbp)
movq %r9, -0xd8(%rbp)
movq %r8, -0xe0(%rbp)
movq %rcx, -0xe8(%rbp)
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movl -0xc(%rbp), %edi
movl $0x1, %esi
movl $0x4, %edx
movb $0x0, %al
callq 0x53e40
cmpl $0x0, %eax
je 0xafb2b
jmp 0xafe2f
leaq -0x50(%rbp), %rax
leaq -0x100(%rbp), %rcx
movq %rcx, 0x10(%rax)
leaq 0x10(%rbp), %rcx
movq %rcx, 0x8(%rax)
movl $0x30, 0x4(%rax)
movl $0x18, (%rax)
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
cmpl -0x10(%rbp), %eax
jge 0xafe2f
leaq -0x50(%rbp), %rax
movq %rax, -0x110(%rbp)
movl -0x50(%rbp), %eax
movl %eax, -0x104(%rbp)
cmpl $0x28, %eax
ja 0xafb9d
movq -0x110(%rbp), %rcx
movl -0x104(%rbp), %edx
movslq %edx, %rax
addq 0x10(%rcx), %rax
addl $0x8, %edx
movl %edx, (%rcx)
movq %rax, -0x118(%rbp)
jmp 0xafbba
movq -0x110(%rbp), %rcx
movq 0x8(%rcx), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, 0x8(%rcx)
movq %rax, -0x118(%rbp)
movq -0x118(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x18(%rbp)
leaq -0x50(%rbp), %rax
movq %rax, -0x128(%rbp)
movl -0x50(%rbp), %eax
movl %eax, -0x11c(%rbp)
cmpl $0x28, %eax
ja 0xafc01
movq -0x128(%rbp), %rcx
movl -0x11c(%rbp), %edx
movslq %edx, %rax
addq 0x10(%rcx), %rax
addl $0x8, %edx
movl %edx, (%rcx)
movq %rax, -0x130(%rbp)
jmp 0xafc1e
movq -0x128(%rbp), %rcx
movq 0x8(%rcx), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, 0x8(%rcx)
movq %rax, -0x130(%rbp)
movq -0x130(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x28(%rbp)
leaq -0x50(%rbp), %rax
movq %rax, -0x140(%rbp)
movl -0x50(%rbp), %eax
movl %eax, -0x134(%rbp)
cmpl $0x28, %eax
ja 0xafc67
movq -0x140(%rbp), %rcx
movl -0x134(%rbp), %edx
movslq %edx, %rax
addq 0x10(%rcx), %rax
addl $0x8, %edx
movl %edx, (%rcx)
movq %rax, -0x148(%rbp)
jmp 0xafc84
movq -0x140(%rbp), %rcx
movq 0x8(%rcx), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, 0x8(%rcx)
movq %rax, -0x148(%rbp)
movq -0x148(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x1c(%rbp)
movl -0xc(%rbp), %eax
movl %eax, -0x14c(%rbp)
subl $0x2, %eax
jb 0xafcbd
jmp 0xafca0
movl -0x14c(%rbp), %eax
subl $0x3, %eax
je 0xafcbd
jmp 0xafcad
movl -0x14c(%rbp), %eax
subl $0x5, %eax
je 0xafd09
jmp 0xafd55
movl -0x18(%rbp), %eax
movl %eax, -0x150(%rbp)
testl %eax, %eax
je 0xafcd9
jmp 0xafccc
movl -0x150(%rbp), %eax
subl $0x1, %eax
je 0xafced
jmp 0xafcff
movq -0x8(%rbp), %rdi
leaq 0x36aba(%rip), %rsi     # 0xe679e
movb $0x0, %al
callq 0x4280
jmp 0xafcff
movq -0x8(%rbp), %rdi
leaq 0x33473(%rip), %rsi     # 0xe316b
movb $0x0, %al
callq 0x4280
movb $0x5b, -0x29(%rbp)
movb $0x5d, -0x2a(%rbp)
jmp 0xafd57
movl -0x18(%rbp), %eax
movl %eax, -0x154(%rbp)
testl %eax, %eax
je 0xafd25
jmp 0xafd18
movl -0x154(%rbp), %eax
subl $0x1, %eax
je 0xafd39
jmp 0xafd4b
movq -0x8(%rbp), %rdi
leaq 0x3cc02(%rip), %rsi     # 0xec932
movb $0x0, %al
callq 0x4280
jmp 0xafd4b
movq -0x8(%rbp), %rdi
leaq 0x3cbf6(%rip), %rsi     # 0xec93a
movb $0x0, %al
callq 0x4280
movb $0x28, -0x29(%rbp)
movb $0x29, -0x2a(%rbp)
jmp 0xafd57
jmp 0xafd57
movq -0x8(%rbp), %rdi
movq -0x28(%rbp), %rdx
leaq 0x34d31(%rip), %rsi     # 0xe4a97
xorl %eax, %eax
callq 0x4280
movl -0xc(%rbp), %eax
movl %eax, -0x158(%rbp)
subl $0x2, %eax
jb 0xafda4
jmp 0xafd7d
movl -0x158(%rbp), %eax
subl $0x2, %eax
je 0xafdc4
jmp 0xafd8a
movl -0x158(%rbp), %eax
subl $0x3, %eax
je 0xafda4
jmp 0xafd97
movl -0x158(%rbp), %eax
subl $0x5, %eax
jne 0xafe1d
jmp 0xafda4
movq -0x8(%rbp), %rdi
movsbl -0x29(%rbp), %edx
movl -0x1c(%rbp), %ecx
movsbl -0x2a(%rbp), %r8d
leaq 0x3cb84(%rip), %rsi     # 0xec93f
movb $0x0, %al
callq 0x4280
jmp 0xafe1f
movq -0x8(%rbp), %rdi
movl -0x1c(%rbp), %edx
leaq 0x3cb76(%rip), %rsi     # 0xec948
xorl %eax, %eax
callq 0x4280
movl -0x18(%rbp), %eax
movl %eax, -0x15c(%rbp)
testl %eax, %eax
je 0xafdf5
jmp 0xafde8
movl -0x15c(%rbp), %eax
subl $0x1, %eax
je 0xafe09
jmp 0xafe1b
movq -0x8(%rbp), %rdi
leaq 0x3cb5d(%rip), %rsi     # 0xec95d
movb $0x0, %al
callq 0x4280
jmp 0xafe1b
movq -0x8(%rbp), %rdi
leaq 0x3cb55(%rip), %rsi     # 0xec969
movb $0x0, %al
callq 0x4280
jmp 0xafe1f
jmp 0xafe1f
jmp 0xafe21
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0xafb56
addq $0x160, %rsp            # imm = 0x160
popq %rbp
retq
nopl (%rax,%rax)