#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */
typedef int /*<<< orphan*/ FILE;

/* Variables and functions */
int /*<<< orphan*/ fprintf(int /*<<< orphan*/ *, char *, ...);
char *time_stamp();
void ps3d_Preambel(FILE *fp, float view[3], float axis[3], char *projtype) {
  fprintf(fp, "%%!PS\n");
  fprintf(fp, "%%%%Title: RNA DotPlot\n");
  fprintf(fp, "%%%%Creator: RNAfold V.01.002c  - by Oymolon\n");
  fprintf(fp, "%%%%CreationDate: %s", time_stamp());
  fprintf(fp, "%%%%Pages: 1\n");
  fprintf(fp, "%%%%EndComments: Geil eyh !?\n");
  fprintf(fp, "%%Viewing vector\n");
  fprintf(fp, "/v1 { %f } def\n", view[0]);
  fprintf(fp, "/v2 { %f } def\n", view[1]);
  fprintf(fp, "/v3 { %f } def\n", view[2]);
  fprintf(fp, "/a1 { %f } def\n", axis[0]);
  fprintf(fp, "/a2 { %f } def\n", axis[1]);
  fprintf(fp, "/a3 { %f } def\n", axis[2]);
  fprintf(fp, "%%Define some coefficients for the projections.\n");
  fprintf(fp, "/y1a { v2 a3 mul v3 a2 mul sub } def\n");
  fprintf(fp, "/y2a { v3 a1 mul v1 a3 mul sub } def\n");
  fprintf(fp, "/y3a { v1 a2 mul v2 a1 mul sub } def\n");
  fprintf(fp,
          "/ya_len { y1a y1a mul y2a y2a mul y3a y3a mul add add sqrt } def\n");
  fprintf(fp, "/x1a { v2 y3a mul v3 y2a mul sub } def\n");
  fprintf(fp, "/x2a { v3 y1a mul v1 y3a mul sub } def\n");
  fprintf(fp, "/x3a { v1 y2a mul v2 y1a mul sub } def\n");
  fprintf(fp,
          "/xa_len { x1a x1a mul x2a x2a mul x3a x3a mul add add sqrt } def\n");
  fprintf(fp, "/x1 { x1a xa_len div } def\n");
  fprintf(fp, "/x2 { x2a xa_len div } def\n");
  fprintf(fp, "/x3 { x3a xa_len div } def\n");
  fprintf(fp, "/y1 { y1a ya_len div } def\n");
  fprintf(fp, "/y2 { y2a ya_len div } def\n");
  fprintf(fp, "/y3 { y3a ya_len div } def\n");
  fprintf(fp, "/sx { v1 v3 div } def\n");
  fprintf(fp, "/sy { v2 v3 div } def\n");
  fprintf(fp, "/v_len { v1 v1 mul v2 v2 mul v3 v3 mul add add sqrt } def\n");
  fprintf(fp, "/u_len { v1 v1 mul v2 v2 mul add sqrt } def\n");
  fprintf(fp, "/u1 { v2     u_len div } def\n");
  fprintf(fp, "/u2 { v1 neg u_len div } def\n");
  fprintf(fp, "/w1 { v1 v3 mul neg u_len div v_len div } def\n");
  fprintf(fp, "/w2 { v2 v3 mul neg u_len div v_len div } def\n");
  fprintf(fp, "/w3 { v1 v1 mul v2 v2 mul add u_len div v_len div } def\n");
  fprintf(fp, "%%Projection Operators\n");
  fprintf(fp, "%%  Projection onto x-y plane in direction v\n");
  fprintf(fp, "/ProjXY { dup sx mul 4 -1 roll exch sub \n");
  fprintf(fp, "          3 1 roll sy mul sub \n");
  fprintf(fp, "    } def \n");
  fprintf(fp, "%%  Normal Projection onto a plane normal to (v1,v2,v3!=0)\n");
  fprintf(fp, "/Projnn  { w3 mul 3 1 roll dup w2 mul 3 1 roll u2 mul exch \n");
  fprintf(fp, "          dup w1 mul 3 1 roll u1 mul add 4 1 roll add add \n");
  fprintf(fp, "    } def \n");
  fprintf(fp, "%%  General Normal Projection\n");
  fprintf(fp, "/ProjN  { dup  y3 mul 4 1 roll x3 mul  3 1 roll dup  \n");
  fprintf(fp, "          y2 mul  5 1 roll x2 mul 3 1 roll dup  y1 mul \n");
  fprintf(fp, "          6 1 roll x1 mul add add 4 1 roll add add  \n");
  fprintf(fp, "          } def\n");
  fprintf(fp, "/Proj { Proj%s } def\n", projtype);
  fprintf(fp, "/L3   { Proj lineto  } def\n");
  fprintf(fp, "/RL3  { Proj rlineto } def\n");
  fprintf(fp, "/M3   { Proj moveto  } def\n");
  fprintf(fp, "/RM3  { Proj rmoveto } def\n");
  fprintf(fp, "%% end 3D macros\n\n");
}


x86 assembly (clang, -O0):
<ps3d_Preambel>:
push   %rbp
mov    %rsp,%rbp
sub    $0x30,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %rcx,-0x20(%rbp)
mov    -0x8(%rbp),%rdi
lea    0xebd(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xeb2(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xeb8(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    $0x0,%al
call   1040 <time_stamp@plt>
mov    -0x28(%rbp),%rdi
mov    %rax,%rdx
lea    0xec2(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xec5(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xec1(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xecd(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rax
movss  (%rax),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xec1(%rip),%rsi
mov    $0x1,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rax
movss  0x4(%rax),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xeb2(%rip),%rsi
mov    $0x1,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rax
movss  0x8(%rax),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xea3(%rip),%rsi
mov    $0x1,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
mov    -0x18(%rbp),%rax
movss  (%rax),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xe95(%rip),%rsi
mov    $0x1,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
mov    -0x18(%rbp),%rax
movss  0x4(%rax),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xe86(%rip),%rsi
mov    $0x1,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
mov    -0x18(%rbp),%rax
movss  0x8(%rax),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xe77(%rip),%rsi
mov    $0x1,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xe75(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xe94(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xea8(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xebc(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xed0(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xf00(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xf16(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xf2c(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xf42(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xf72(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xf7c(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xf86(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xf90(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xf9a(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xfa4(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xfae(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xfb3(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xfb8(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xfe1(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xffc(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1008(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1014(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1031(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x104e(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1075(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x107b(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1097(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x10af(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x10bd(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x10b7(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x10e1(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x110c(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1075(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1124(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1131(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1156(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x117d(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x11a1(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
mov    -0x20(%rbp),%rdx
lea    0x119c(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x11a0(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x11aa(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x11b4(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x11be(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x11c8(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
add    $0x30,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<ps3d_Preambel>:
push   %r15
push   %r14
push   %r12
push   %rbx
push   %rax
mov    %rcx,%r14
mov    %rdx,%r15
mov    %rsi,%r12
mov    %rdi,%rbx
lea    0xeb5(%rip),%rsi
xor    %eax,%eax
call   1030 <fprintf@plt>
lea    0xeae(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1030 <fprintf@plt>
lea    0xeb5(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1030 <fprintf@plt>
xor    %eax,%eax
call   1040 <time_stamp@plt>
lea    0xecb(%rip),%rsi
mov    %rbx,%rdi
mov    %rax,%rdx
xor    %eax,%eax
call   1030 <fprintf@plt>
lea    0xecc(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1030 <fprintf@plt>
lea    0xec9(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1030 <fprintf@plt>
lea    0xed6(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1030 <fprintf@plt>
movss  (%r12),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xecd(%rip),%rsi
mov    %rbx,%rdi
mov    $0x1,%al
call   1030 <fprintf@plt>
movss  0x4(%r12),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xec1(%rip),%rsi
mov    %rbx,%rdi
mov    $0x1,%al
call   1030 <fprintf@plt>
movss  0x8(%r12),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xeb5(%rip),%rsi
mov    %rbx,%rdi
mov    $0x1,%al
call   1030 <fprintf@plt>
movss  (%r15),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xeab(%rip),%rsi
mov    %rbx,%rdi
mov    $0x1,%al
call   1030 <fprintf@plt>
movss  0x4(%r15),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xea0(%rip),%rsi
mov    %rbx,%rdi
mov    $0x1,%al
call   1030 <fprintf@plt>
movss  0x8(%r15),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xe95(%rip),%rsi
mov    %rbx,%rdi
mov    $0x1,%al
call   1030 <fprintf@plt>
lea    0xe94(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1030 <fprintf@plt>
lea    0xeb4(%rip),%rdi
mov    $0x25,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xec1(%rip),%rdi
mov    $0x25,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xece(%rip),%rdi
mov    $0x25,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xedb(%rip),%rdi
mov    $0x41,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xf04(%rip),%rdi
mov    $0x27,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xf13(%rip),%rdi
mov    $0x27,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xf22(%rip),%rdi
mov    $0x27,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xf31(%rip),%rdi
mov    $0x41,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xf5a(%rip),%rdi
mov    $0x1b,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xf5d(%rip),%rdi
mov    $0x1b,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xf60(%rip),%rdi
mov    $0x1b,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xf63(%rip),%rdi
mov    $0x1b,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xf66(%rip),%rdi
mov    $0x1b,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xf69(%rip),%rdi
mov    $0x1b,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xf6c(%rip),%rdi
mov    $0x16,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xf6a(%rip),%rdi
mov    $0x16,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xf68(%rip),%rdi
mov    $0x3a,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xf8a(%rip),%rdi
mov    $0x2c,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xf9e(%rip),%rdi
mov    $0x1d,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xfa3(%rip),%rdi
mov    $0x1d,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xfa8(%rip),%rdi
mov    $0x2e,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xfbe(%rip),%rdi
mov    $0x2e,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xfd4(%rip),%rdi
mov    $0x38,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xff4(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1030 <fprintf@plt>
lea    0xffb(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1030 <fprintf@plt>
lea    0x1018(%rip),%rdi
mov    $0x29,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0x1029(%rip),%rdi
mov    $0x1f,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0x1030(%rip),%r15
mov    $0xb,%esi
mov    $0x1,%edx
mov    %r15,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0x1020(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1030 <fprintf@plt>
lea    0x104b(%rip),%rdi
mov    $0x3c,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0x106f(%rip),%rdi
mov    $0x3b,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0xb,%esi
mov    $0x1,%edx
mov    %r15,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0x107d(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1030 <fprintf@plt>
lea    0x108b(%rip),%rdi
mov    $0x36,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0x10a9(%rip),%rdi
mov    $0x38,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0x10c9(%rip),%rdi
mov    $0x35,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0x10e6(%rip),%rdi
mov    $0x10,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0x10de(%rip),%rsi
mov    %rbx,%rdi
mov    %r14,%rdx
xor    %eax,%eax
call   1030 <fprintf@plt>
lea    0x10e0(%rip),%rdi
mov    $0x1b,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0x10e3(%rip),%rdi
mov    $0x1b,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0x10e6(%rip),%rdi
mov    $0x1b,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0x10e9(%rip),%rdi
mov    $0x1b,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0x10ec(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r14
pop    %r15
jmp    1030 <fprintf@plt>

LLVM IR (-O0):
@.str = [7 x i8] c"%%!PS\0A\00"
@.str.1 = [24 x i8] c"%%%%Title: RNA DotPlot\0A\00"
@.str.2 = [46 x i8] c"%%%%Creator: RNAfold V.01.002c - by Oymolon\0A\00"
@.str.3 = [21 x i8] c"%%%%CreationDate: %s\00"
@.str.4 = [14 x i8] c"%%%%Pages: 1\0A\00"
@.str.5 = [30 x i8] c"%%%%EndComments: Geil eyh !?\0A\00"
@.str.6 = [18 x i8] c"%%Viewing vector\0A\00"
@.str.7 = [16 x i8] c"/v1 { %f } def\0A\00"
@.str.8 = [16 x i8] c"/v2 { %f } def\0A\00"
@.str.9 = [16 x i8] c"/v3 { %f } def\0A\00"
@.str.10 = [16 x i8] c"/a1 { %f } def\0A\00"
@.str.11 = [16 x i8] c"/a2 { %f } def\0A\00"
@.str.12 = [16 x i8] c"/a3 { %f } def\0A\00"
@.str.13 = [49 x i8] c"%%Define some coefficients for the projections.\0A\00"
@.str.14 = [38 x i8] c"/y1a { v2 a3 mul v3 a2 mul sub } def\0A\00"
@.str.15 = [38 x i8] c"/y2a { v3 a1 mul v1 a3 mul sub } def\0A\00"
@.str.16 = [38 x i8] c"/y3a { v1 a2 mul v2 a1 mul sub } def\0A\00"
@.str.17 = [66 x i8] c"/ya_len { y1a y1a mul y2a y2a mul y3a y3a mul add add sqrt } def\0A\00"
@.str.18 = [40 x i8] c"/x1a { v2 y3a mul v3 y2a mul sub } def\0A\00"
@.str.19 = [40 x i8] c"/x2a { v3 y1a mul v1 y3a mul sub } def\0A\00"
@.str.20 = [40 x i8] c"/x3a { v1 y2a mul v2 y1a mul sub } def\0A\00"
@.str.21 = [66 x i8] c"/xa_len { x1a x1a mul x2a x2a mul x3a x3a mul add add sqrt } def\0A\00"
@.str.22 = [28 x i8] c"/x1 { x1a xa_len div } def\0A\00"
@.str.23 = [28 x i8] c"/x2 { x2a xa_len div } def\0A\00"
@.str.24 = [28 x i8] c"/x3 { x3a xa_len div } def\0A\00"
@.str.25 = [28 x i8] c"/y1 { y1a ya_len div } def\0A\00"
@.str.26 = [28 x i8] c"/y2 { y2a ya_len div } def\0A\00"
@.str.27 = [28 x i8] c"/y3 { y3a ya_len div } def\0A\00"
@.str.28 = [23 x i8] c"/sx { v1 v3 div } def\0A\00"
@.str.29 = [23 x i8] c"/sy { v2 v3 div } def\0A\00"
@.str.30 = [59 x i8] c"/v_len { v1 v1 mul v2 v2 mul v3 v3 mul add add sqrt } def\0A\00"
@.str.31 = [45 x i8] c"/u_len { v1 v1 mul v2 v2 mul add sqrt } def\0A\00"
@.str.32 = [30 x i8] c"/u1 { v2 u_len div } def\0A\00"
@.str.33 = [30 x i8] c"/u2 { v1 neg u_len div } def\0A\00"
@.str.34 = [47 x i8] c"/w1 { v1 v3 mul neg u_len div v_len div } def\0A\00"
@.str.35 = [47 x i8] c"/w2 { v2 v3 mul neg u_len div v_len div } def\0A\00"
@.str.36 = [57 x i8] c"/w3 { v1 v1 mul v2 v2 mul add u_len div v_len div } def\0A\00"
@.str.37 = [24 x i8] c"%%Projection Operators\0A\00"
@.str.38 = [46 x i8] c"%% Projection onto x-y plane in direction v\0A\00"
@.str.39 = [42 x i8] c"/ProjXY { dup sx mul 4 -1 roll exch sub \0A\00"
@.str.40 = [32 x i8] c" 3 1 roll sy mul sub \0A\00"
@.str.41 = [12 x i8] c" } def \0A\00"
@.str.42 = [60 x i8] c"%% Normal Projection onto a plane normal to (v1,v2,v3!=0)\0A\00"
@.str.43 = [61 x i8] c"/Projnn { w3 mul 3 1 roll dup w2 mul 3 1 roll u2 mul exch \0A\00"
@.str.44 = [60 x i8] c" dup w1 mul 3 1 roll u1 mul add 4 1 roll add add \0A\00"
@.str.45 = [31 x i8] c"%% General Normal Projection\0A\00"
@.str.46 = [55 x i8] c"/ProjN { dup y3 mul 4 1 roll x3 mul 3 1 roll dup \0A\00"
@.str.47 = [57 x i8] c" y2 mul 5 1 roll x2 mul 3 1 roll dup y1 mul \0A\00"
@.str.48 = [54 x i8] c" 6 1 roll x1 mul add add 4 1 roll add add \0A\00"
@.str.49 = [17 x i8] c" } def\0A\00"
@.str.50 = [22 x i8] c"/Proj { Proj%s } def\0A\00"
@.str.51 = [28 x i8] c"/L3 { Proj lineto } def\0A\00"
@.str.52 = [28 x i8] c"/RL3 { Proj rlineto } def\0A\00"
@.str.53 = [28 x i8] c"/M3 { Proj moveto } def\0A\00"
@.str.54 = [28 x i8] c"/RM3 { Proj rmoveto } def\0A\00"
@.str.55 = [19 x i8] c"%% end 3D macros\0A\0A\00"
define void @ps3d_Preambel(i32* %0, float* %1, float* %2, i8* %3) {
%5 = alloca i32*
%6 = alloca float*
%7 = alloca float*
%8 = alloca i8*
store i32* %0, i32** %5
store float* %1, float** %6
store float* %2, float** %7
store i8* %3, i8** %8
%9 = load i32*, i32** %5
%10 = call i32 (i32*, i8*, ...) @fprintf(i32* %9, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str, i64 0, i64 0))
%11 = load i32*, i32** %5
%12 = call i32 (i32*, i8*, ...) @fprintf(i32* %11, i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.1, i64 0, i64 0))
%13 = load i32*, i32** %5
%14 = call i32 (i32*, i8*, ...) @fprintf(i32* %13, i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.2, i64 0, i64 0))
%15 = load i32*, i32** %5
%16 = call i8* (...) @time_stamp()
%17 = call i32 (i32*, i8*, ...) @fprintf(i32* %15, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.3, i64 0, i64 0), i8* %16)
%18 = load i32*, i32** %5
%19 = call i32 (i32*, i8*, ...) @fprintf(i32* %18, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.4, i64 0, i64 0))
%20 = load i32*, i32** %5
%21 = call i32 (i32*, i8*, ...) @fprintf(i32* %20, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.5, i64 0, i64 0))
%22 = load i32*, i32** %5
%23 = call i32 (i32*, i8*, ...) @fprintf(i32* %22, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.6, i64 0, i64 0))
%24 = load i32*, i32** %5
%25 = load float*, float** %6
%26 = getelementptr inbounds float, float* %25, i64 0
%27 = load float, float* %26
%28 = fpext float %27 to double
%29 = call i32 (i32*, i8*, ...) @fprintf(i32* %24, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.7, i64 0, i64 0), double %28)
%30 = load i32*, i32** %5
%31 = load float*, float** %6
%32 = getelementptr inbounds float, float* %31, i64 1
%33 = load float, float* %32
%34 = fpext float %33 to double
%35 = call i32 (i32*, i8*, ...) @fprintf(i32* %30, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.8, i64 0, i64 0), double %34)
%36 = load i32*, i32** %5
%37 = load float*, float** %6
%38 = getelementptr inbounds float, float* %37, i64 2
%39 = load float, float* %38
%40 = fpext float %39 to double
%41 = call i32 (i32*, i8*, ...) @fprintf(i32* %36, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.9, i64 0, i64 0), double %40)
%42 = load i32*, i32** %5
%43 = load float*, float** %7
%44 = getelementptr inbounds float, float* %43, i64 0
%45 = load float, float* %44
%46 = fpext float %45 to double
%47 = call i32 (i32*, i8*, ...) @fprintf(i32* %42, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.10, i64 0, i64 0), double %46)
%48 = load i32*, i32** %5
%49 = load float*, float** %7
%50 = getelementptr inbounds float, float* %49, i64 1
%51 = load float, float* %50
%52 = fpext float %51 to double
%53 = call i32 (i32*, i8*, ...) @fprintf(i32* %48, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.11, i64 0, i64 0), double %52)
%54 = load i32*, i32** %5
%55 = load float*, float** %7
%56 = getelementptr inbounds float, float* %55, i64 2
%57 = load float, float* %56
%58 = fpext float %57 to double
%59 = call i32 (i32*, i8*, ...) @fprintf(i32* %54, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.12, i64 0, i64 0), double %58)
%60 = load i32*, i32** %5
%61 = call i32 (i32*, i8*, ...) @fprintf(i32* %60, i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.13, i64 0, i64 0))
%62 = load i32*, i32** %5
%63 = call i32 (i32*, i8*, ...) @fprintf(i32* %62, i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.14, i64 0, i64 0))
%64 = load i32*, i32** %5
%65 = call i32 (i32*, i8*, ...) @fprintf(i32* %64, i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.15, i64 0, i64 0))
%66 = load i32*, i32** %5
%67 = call i32 (i32*, i8*, ...) @fprintf(i32* %66, i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.16, i64 0, i64 0))
%68 = load i32*, i32** %5
%69 = call i32 (i32*, i8*, ...) @fprintf(i32* %68, i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.17, i64 0, i64 0))
%70 = load i32*, i32** %5
%71 = call i32 (i32*, i8*, ...) @fprintf(i32* %70, i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.18, i64 0, i64 0))
%72 = load i32*, i32** %5
%73 = call i32 (i32*, i8*, ...) @fprintf(i32* %72, i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.19, i64 0, i64 0))
%74 = load i32*, i32** %5
%75 = call i32 (i32*, i8*, ...) @fprintf(i32* %74, i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.20, i64 0, i64 0))
%76 = load i32*, i32** %5
%77 = call i32 (i32*, i8*, ...) @fprintf(i32* %76, i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.21, i64 0, i64 0))
%78 = load i32*, i32** %5
%79 = call i32 (i32*, i8*, ...) @fprintf(i32* %78, i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.22, i64 0, i64 0))
%80 = load i32*, i32** %5
%81 = call i32 (i32*, i8*, ...) @fprintf(i32* %80, i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.23, i64 0, i64 0))
%82 = load i32*, i32** %5
%83 = call i32 (i32*, i8*, ...) @fprintf(i32* %82, i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.24, i64 0, i64 0))
%84 = load i32*, i32** %5
%85 = call i32 (i32*, i8*, ...) @fprintf(i32* %84, i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.25, i64 0, i64 0))
%86 = load i32*, i32** %5
%87 = call i32 (i32*, i8*, ...) @fprintf(i32* %86, i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.26, i64 0, i64 0))
%88 = load i32*, i32** %5
%89 = call i32 (i32*, i8*, ...) @fprintf(i32* %88, i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.27, i64 0, i64 0))
%90 = load i32*, i32** %5
%91 = call i32 (i32*, i8*, ...) @fprintf(i32* %90, i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.28, i64 0, i64 0))
%92 = load i32*, i32** %5
%93 = call i32 (i32*, i8*, ...) @fprintf(i32* %92, i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.29, i64 0, i64 0))
%94 = load i32*, i32** %5
%95 = call i32 (i32*, i8*, ...) @fprintf(i32* %94, i8* getelementptr inbounds ([59 x i8], [59 x i8]* @.str.30, i64 0, i64 0))
%96 = load i32*, i32** %5
%97 = call i32 (i32*, i8*, ...) @fprintf(i32* %96, i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.31, i64 0, i64 0))
%98 = load i32*, i32** %5
%99 = call i32 (i32*, i8*, ...) @fprintf(i32* %98, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.32, i64 0, i64 0))
%100 = load i32*, i32** %5
%101 = call i32 (i32*, i8*, ...) @fprintf(i32* %100, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.33, i64 0, i64 0))
%102 = load i32*, i32** %5
%103 = call i32 (i32*, i8*, ...) @fprintf(i32* %102, i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.34, i64 0, i64 0))
%104 = load i32*, i32** %5
%105 = call i32 (i32*, i8*, ...) @fprintf(i32* %104, i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.35, i64 0, i64 0))
%106 = load i32*, i32** %5
%107 = call i32 (i32*, i8*, ...) @fprintf(i32* %106, i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.36, i64 0, i64 0))
%108 = load i32*, i32** %5
%109 = call i32 (i32*, i8*, ...) @fprintf(i32* %108, i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.37, i64 0, i64 0))
%110 = load i32*, i32** %5
%111 = call i32 (i32*, i8*, ...) @fprintf(i32* %110, i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.38, i64 0, i64 0))
%112 = load i32*, i32** %5
%113 = call i32 (i32*, i8*, ...) @fprintf(i32* %112, i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.39, i64 0, i64 0))
%114 = load i32*, i32** %5
%115 = call i32 (i32*, i8*, ...) @fprintf(i32* %114, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.40, i64 0, i64 0))
%116 = load i32*, i32** %5
%117 = call i32 (i32*, i8*, ...) @fprintf(i32* %116, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.41, i64 0, i64 0))
%118 = load i32*, i32** %5
%119 = call i32 (i32*, i8*, ...) @fprintf(i32* %118, i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.42, i64 0, i64 0))
%120 = load i32*, i32** %5
%121 = call i32 (i32*, i8*, ...) @fprintf(i32* %120, i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.43, i64 0, i64 0))
%122 = load i32*, i32** %5
%123 = call i32 (i32*, i8*, ...) @fprintf(i32* %122, i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.44, i64 0, i64 0))
%124 = load i32*, i32** %5
%125 = call i32 (i32*, i8*, ...) @fprintf(i32* %124, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.41, i64 0, i64 0))
%126 = load i32*, i32** %5
%127 = call i32 (i32*, i8*, ...) @fprintf(i32* %126, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.45, i64 0, i64 0))
%128 = load i32*, i32** %5
%129 = call i32 (i32*, i8*, ...) @fprintf(i32* %128, i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.46, i64 0, i64 0))
%130 = load i32*, i32** %5
%131 = call i32 (i32*, i8*, ...) @fprintf(i32* %130, i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.47, i64 0, i64 0))
%132 = load i32*, i32** %5
%133 = call i32 (i32*, i8*, ...) @fprintf(i32* %132, i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.48, i64 0, i64 0))
%134 = load i32*, i32** %5
%135 = call i32 (i32*, i8*, ...) @fprintf(i32* %134, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.49, i64 0, i64 0))
%136 = load i32*, i32** %5
%137 = load i8*, i8** %8
%138 = call i32 (i32*, i8*, ...) @fprintf(i32* %136, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.50, i64 0, i64 0), i8* %137)
%139 = load i32*, i32** %5
%140 = call i32 (i32*, i8*, ...) @fprintf(i32* %139, i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.51, i64 0, i64 0))
%141 = load i32*, i32** %5
%142 = call i32 (i32*, i8*, ...) @fprintf(i32* %141, i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.52, i64 0, i64 0))
%143 = load i32*, i32** %5
%144 = call i32 (i32*, i8*, ...) @fprintf(i32* %143, i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.53, i64 0, i64 0))
%145 = load i32*, i32** %5
%146 = call i32 (i32*, i8*, ...) @fprintf(i32* %145, i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.54, i64 0, i64 0))
%147 = load i32*, i32** %5
%148 = call i32 (i32*, i8*, ...) @fprintf(i32* %147, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.55, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str = [7 x i8] c"%%!PS\0A\00"
@.str.1 = [24 x i8] c"%%%%Title: RNA DotPlot\0A\00"
@.str.2 = [46 x i8] c"%%%%Creator: RNAfold V.01.002c - by Oymolon\0A\00"
@.str.3 = [21 x i8] c"%%%%CreationDate: %s\00"
@.str.4 = [14 x i8] c"%%%%Pages: 1\0A\00"
@.str.5 = [30 x i8] c"%%%%EndComments: Geil eyh !?\0A\00"
@.str.6 = [18 x i8] c"%%Viewing vector\0A\00"
@.str.7 = [16 x i8] c"/v1 { %f } def\0A\00"
@.str.8 = [16 x i8] c"/v2 { %f } def\0A\00"
@.str.9 = [16 x i8] c"/v3 { %f } def\0A\00"
@.str.10 = [16 x i8] c"/a1 { %f } def\0A\00"
@.str.11 = [16 x i8] c"/a2 { %f } def\0A\00"
@.str.12 = [16 x i8] c"/a3 { %f } def\0A\00"
@.str.13 = [49 x i8] c"%%Define some coefficients for the projections.\0A\00"
@.str.14 = [38 x i8] c"/y1a { v2 a3 mul v3 a2 mul sub } def\0A\00"
@.str.15 = [38 x i8] c"/y2a { v3 a1 mul v1 a3 mul sub } def\0A\00"
@.str.16 = [38 x i8] c"/y3a { v1 a2 mul v2 a1 mul sub } def\0A\00"
@.str.17 = [66 x i8] c"/ya_len { y1a y1a mul y2a y2a mul y3a y3a mul add add sqrt } def\0A\00"
@.str.18 = [40 x i8] c"/x1a { v2 y3a mul v3 y2a mul sub } def\0A\00"
@.str.19 = [40 x i8] c"/x2a { v3 y1a mul v1 y3a mul sub } def\0A\00"
@.str.20 = [40 x i8] c"/x3a { v1 y2a mul v2 y1a mul sub } def\0A\00"
@.str.21 = [66 x i8] c"/xa_len { x1a x1a mul x2a x2a mul x3a x3a mul add add sqrt } def\0A\00"
@.str.22 = [28 x i8] c"/x1 { x1a xa_len div } def\0A\00"
@.str.23 = [28 x i8] c"/x2 { x2a xa_len div } def\0A\00"
@.str.24 = [28 x i8] c"/x3 { x3a xa_len div } def\0A\00"
@.str.25 = [28 x i8] c"/y1 { y1a ya_len div } def\0A\00"
@.str.26 = [28 x i8] c"/y2 { y2a ya_len div } def\0A\00"
@.str.27 = [28 x i8] c"/y3 { y3a ya_len div } def\0A\00"
@.str.28 = [23 x i8] c"/sx { v1 v3 div } def\0A\00"
@.str.29 = [23 x i8] c"/sy { v2 v3 div } def\0A\00"
@.str.30 = [59 x i8] c"/v_len { v1 v1 mul v2 v2 mul v3 v3 mul add add sqrt } def\0A\00"
@.str.31 = [45 x i8] c"/u_len { v1 v1 mul v2 v2 mul add sqrt } def\0A\00"
@.str.32 = [30 x i8] c"/u1 { v2 u_len div } def\0A\00"
@.str.33 = [30 x i8] c"/u2 { v1 neg u_len div } def\0A\00"
@.str.34 = [47 x i8] c"/w1 { v1 v3 mul neg u_len div v_len div } def\0A\00"
@.str.35 = [47 x i8] c"/w2 { v2 v3 mul neg u_len div v_len div } def\0A\00"
@.str.36 = [57 x i8] c"/w3 { v1 v1 mul v2 v2 mul add u_len div v_len div } def\0A\00"
@.str.37 = [24 x i8] c"%%Projection Operators\0A\00"
@.str.38 = [46 x i8] c"%% Projection onto x-y plane in direction v\0A\00"
@.str.39 = [42 x i8] c"/ProjXY { dup sx mul 4 -1 roll exch sub \0A\00"
@.str.40 = [32 x i8] c" 3 1 roll sy mul sub \0A\00"
@.str.41 = [12 x i8] c" } def \0A\00"
@.str.42 = [60 x i8] c"%% Normal Projection onto a plane normal to (v1,v2,v3!=0)\0A\00"
@.str.43 = [61 x i8] c"/Projnn { w3 mul 3 1 roll dup w2 mul 3 1 roll u2 mul exch \0A\00"
@.str.44 = [60 x i8] c" dup w1 mul 3 1 roll u1 mul add 4 1 roll add add \0A\00"
@.str.45 = [31 x i8] c"%% General Normal Projection\0A\00"
@.str.46 = [55 x i8] c"/ProjN { dup y3 mul 4 1 roll x3 mul 3 1 roll dup \0A\00"
@.str.47 = [57 x i8] c" y2 mul 5 1 roll x2 mul 3 1 roll dup y1 mul \0A\00"
@.str.48 = [54 x i8] c" 6 1 roll x1 mul add add 4 1 roll add add \0A\00"
@.str.49 = [17 x i8] c" } def\0A\00"
@.str.50 = [22 x i8] c"/Proj { Proj%s } def\0A\00"
@.str.51 = [28 x i8] c"/L3 { Proj lineto } def\0A\00"
@.str.52 = [28 x i8] c"/RL3 { Proj rlineto } def\0A\00"
@.str.53 = [28 x i8] c"/M3 { Proj moveto } def\0A\00"
@.str.54 = [28 x i8] c"/RM3 { Proj rmoveto } def\0A\00"
@.str.55 = [19 x i8] c"%% end 3D macros\0A\0A\00"
define void @ps3d_Preambel(i32* %0, float* nocapture %1, float* nocapture %2, i8* %3) {
%5 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str, i64 0, i64 0))
%6 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.1, i64 0, i64 0))
%7 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.2, i64 0, i64 0))
%8 = tail call i8* (...) @time_stamp()
%9 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.3, i64 0, i64 0), i8* %8)
%10 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.4, i64 0, i64 0))
%11 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.5, i64 0, i64 0))
%12 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.6, i64 0, i64 0))
%13 = load float, float* %1
%14 = fpext float %13 to double
%15 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.7, i64 0, i64 0), double %14)
%16 = getelementptr inbounds float, float* %1, i64 1
%17 = load float, float* %16
%18 = fpext float %17 to double
%19 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.8, i64 0, i64 0), double %18)
%20 = getelementptr inbounds float, float* %1, i64 2
%21 = load float, float* %20
%22 = fpext float %21 to double
%23 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.9, i64 0, i64 0), double %22)
%24 = load float, float* %2
%25 = fpext float %24 to double
%26 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.10, i64 0, i64 0), double %25)
%27 = getelementptr inbounds float, float* %2, i64 1
%28 = load float, float* %27
%29 = fpext float %28 to double
%30 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.11, i64 0, i64 0), double %29)
%31 = getelementptr inbounds float, float* %2, i64 2
%32 = load float, float* %31
%33 = fpext float %32 to double
%34 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.12, i64 0, i64 0), double %33)
%35 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.13, i64 0, i64 0))
%36 = tail call i64 @fwrite(i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.14, i64 0, i64 0), i64 37, i64 1, i32* %0)
%37 = tail call i64 @fwrite(i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.15, i64 0, i64 0), i64 37, i64 1, i32* %0)
%38 = tail call i64 @fwrite(i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.16, i64 0, i64 0), i64 37, i64 1, i32* %0)
%39 = tail call i64 @fwrite(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.17, i64 0, i64 0), i64 65, i64 1, i32* %0)
%40 = tail call i64 @fwrite(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.18, i64 0, i64 0), i64 39, i64 1, i32* %0)
%41 = tail call i64 @fwrite(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.19, i64 0, i64 0), i64 39, i64 1, i32* %0)
%42 = tail call i64 @fwrite(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.20, i64 0, i64 0), i64 39, i64 1, i32* %0)
%43 = tail call i64 @fwrite(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.21, i64 0, i64 0), i64 65, i64 1, i32* %0)
%44 = tail call i64 @fwrite(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.22, i64 0, i64 0), i64 27, i64 1, i32* %0)
%45 = tail call i64 @fwrite(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.23, i64 0, i64 0), i64 27, i64 1, i32* %0)
%46 = tail call i64 @fwrite(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.24, i64 0, i64 0), i64 27, i64 1, i32* %0)
%47 = tail call i64 @fwrite(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.25, i64 0, i64 0), i64 27, i64 1, i32* %0)
%48 = tail call i64 @fwrite(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.26, i64 0, i64 0), i64 27, i64 1, i32* %0)
%49 = tail call i64 @fwrite(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.27, i64 0, i64 0), i64 27, i64 1, i32* %0)
%50 = tail call i64 @fwrite(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.28, i64 0, i64 0), i64 22, i64 1, i32* %0)
%51 = tail call i64 @fwrite(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.29, i64 0, i64 0), i64 22, i64 1, i32* %0)
%52 = tail call i64 @fwrite(i8* getelementptr inbounds ([59 x i8], [59 x i8]* @.str.30, i64 0, i64 0), i64 58, i64 1, i32* %0)
%53 = tail call i64 @fwrite(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.31, i64 0, i64 0), i64 44, i64 1, i32* %0)
%54 = tail call i64 @fwrite(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.32, i64 0, i64 0), i64 29, i64 1, i32* %0)
%55 = tail call i64 @fwrite(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.33, i64 0, i64 0), i64 29, i64 1, i32* %0)
%56 = tail call i64 @fwrite(i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.34, i64 0, i64 0), i64 46, i64 1, i32* %0)
%57 = tail call i64 @fwrite(i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.35, i64 0, i64 0), i64 46, i64 1, i32* %0)
%58 = tail call i64 @fwrite(i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.36, i64 0, i64 0), i64 56, i64 1, i32* %0)
%59 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.37, i64 0, i64 0))
%60 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.38, i64 0, i64 0))
%61 = tail call i64 @fwrite(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.39, i64 0, i64 0), i64 41, i64 1, i32* %0)
%62 = tail call i64 @fwrite(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.40, i64 0, i64 0), i64 31, i64 1, i32* %0)
%63 = tail call i64 @fwrite(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.41, i64 0, i64 0), i64 11, i64 1, i32* %0)
%64 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.42, i64 0, i64 0))
%65 = tail call i64 @fwrite(i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.43, i64 0, i64 0), i64 60, i64 1, i32* %0)
%66 = tail call i64 @fwrite(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.44, i64 0, i64 0), i64 59, i64 1, i32* %0)
%67 = tail call i64 @fwrite(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.41, i64 0, i64 0), i64 11, i64 1, i32* %0)
%68 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.45, i64 0, i64 0))
%69 = tail call i64 @fwrite(i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.46, i64 0, i64 0), i64 54, i64 1, i32* %0)
%70 = tail call i64 @fwrite(i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.47, i64 0, i64 0), i64 56, i64 1, i32* %0)
%71 = tail call i64 @fwrite(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.48, i64 0, i64 0), i64 53, i64 1, i32* %0)
%72 = tail call i64 @fwrite(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.49, i64 0, i64 0), i64 16, i64 1, i32* %0)
%73 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.50, i64 0, i64 0), i8* %3)
%74 = tail call i64 @fwrite(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.51, i64 0, i64 0), i64 27, i64 1, i32* %0)
%75 = tail call i64 @fwrite(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.52, i64 0, i64 0), i64 27, i64 1, i32* %0)
%76 = tail call i64 @fwrite(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.53, i64 0, i64 0), i64 27, i64 1, i32* %0)
%77 = tail call i64 @fwrite(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.54, i64 0, i64 0), i64 27, i64 1, i32* %0)
%78 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.55, i64 0, i64 0))
ret void
}