#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*/ c;
typedef int /*<<< orphan*/ FILE;

/* Variables and functions */
int /*<<< orphan*/ fprintf(int /*<<< orphan*/ *, char *, ...);
double hamming(int);
int /*<<< orphan*/ memset(float *, int /*<<< orphan*/, int);
double sinc(double);
void gentbl_fsk9600(FILE *f) {
  int i, j, k, l, m;
  float s;
  float c[44];
  float min, max;
  fprintf(f, "\n/*\n * fsk9600 specific tables\n */\n");
  min = max = 0;
  memset(c, 0, sizeof(c));
  for (i = 0; i < 29; i++)
    c[3 + i] = sinc(1.2 * ((i - 14.0) / 4.0)) * hamming(i / 28.0) / 3.5;
  fprintf(f, "static unsigned char fsk96_txfilt_4[] = {\n\t");
  for (i = 0; i < 4; i++) {
    for (j = 0; j < 256; j++) {
      for (k = 1, s = 0, l = i; k < 256; k <<= 1) {
        if (j & k) {
          for (m = 0; m < 4; m++, l++)
            s += c[l];
        } else {
          for (m = 0; m < 4; m++, l++)
            s -= c[l];
        }
      }
      s *= 0.75;
      if (s > max)
        max = s;
      if (s < min)
        min = s;
      fprintf(f, "%4d", (int)(128 + 127 * s));
      if (i < 3 || j < 255)
        fprintf(f, ",%s", (j & 7) == 7 ? "\n\t" : "");
    }
  }
  fprintf(f, "\n};\n\n");
  min = max = 0;
  memset(c, 0, sizeof(c));
  for (i = 0; i < 36; i++)
    c[4 + i] = sinc(1.2 * ((i - 17.5) / 5.0)) * hamming(i / 35.0) / 4.5;
  fprintf(f, "static unsigned char fsk96_txfilt_5[] = {\n\t");
  for (i = 0; i < 5; i++) {
    for (j = 0; j < 256; j++) {
      for (k = 1, s = 0, l = i; k < 256; k <<= 1) {
        if (j & k) {
          for (m = 0; m < 5; m++, l++)
            s += c[l];
        } else {
          for (m = 0; m < 5; m++, l++)
            s -= c[l];
        }
      }
      s *= 0.75;
      if (s > max)
        max = s;
      if (s < min)
        min = s;
      fprintf(f, "%4d", (int)(128 + 127 * s));
      if (i < 4 || j < 255)
        fprintf(f, ",%s", (j & 7) == 7 ? "\n\t" : "");
    }
  }
  fprintf(f, "\n};\n\n");
}


x86 assembly (clang, -O0):
push   %rbp
mov    %rsp,%rbp
sub    $0xf0,%rsp
mov    %rdi,-0x8(%rbp)
mov    -0x8(%rbp),%rdi
lea    0xefe(%rip),%rsi
mov    $0x0,%al
call   1040 <fprintf@plt>
xorps  %xmm0,%xmm0
movss  %xmm0,-0xd8(%rbp)
ff
xorps  %xmm0,%xmm0
movss  %xmm0,-0xd4(%rbp)
ff
lea    -0xd0(%rbp),%rdi
xor    %esi,%esi
mov    $0xb0,%edx
call   1030 <memset@plt>
movl   $0x0,-0xc(%rbp)
cmpl   $0x1d,-0xc(%rbp)
jge    1229 <gentbl_fsk9600+0xe9>
cvtsi2sdl -0xc(%rbp),%xmm1
movsd  0xea0(%rip),%xmm0
subsd  %xmm0,%xmm1
movsd  0xe8c(%rip),%xmm0
divsd  %xmm0,%xmm1
movsd  0xe58(%rip),%xmm0
mulsd  %xmm1,%xmm0
call   1060 <sinc@plt>
movsd  %xmm0,-0xe0(%rbp)
ff
cvtsi2sdl -0xc(%rbp),%xmm0
movsd  0xe5a(%rip),%xmm1
divsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
call   1050 <hamming@plt>
movaps %xmm0,%xmm1
movsd  -0xe0(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  0xe2e(%rip),%xmm1
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
mov    -0xc(%rbp),%eax
add    $0x3,%eax
cltq
movss  %xmm0,-0xd0(%rbp,%rax,4)
ff ff
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    1191 <gentbl_fsk9600+0x51>
mov    -0x8(%rbp),%rdi
lea    0xe48(%rip),%rsi
mov    $0x0,%al
call   1040 <fprintf@plt>
movl   $0x0,-0xc(%rbp)
cmpl   $0x4,-0xc(%rbp)
jge    142d <gentbl_fsk9600+0x2ed>
movl   $0x0,-0x10(%rbp)
cmpl   $0x100,-0x10(%rbp)
jge    141a <gentbl_fsk9600+0x2da>
movl   $0x1,-0x14(%rbp)
xorps  %xmm0,%xmm0
movss  %xmm0,-0x20(%rbp)
mov    -0xc(%rbp),%eax
mov    %eax,-0x18(%rbp)
cmpl   $0x100,-0x14(%rbp)
jge    1330 <gentbl_fsk9600+0x1f0>
mov    -0x10(%rbp),%eax
and    -0x14(%rbp),%eax
cmp    $0x0,%eax
je     12d5 <gentbl_fsk9600+0x195>
movl   $0x0,-0x1c(%rbp)
cmpl   $0x4,-0x1c(%rbp)
jge    12d0 <gentbl_fsk9600+0x190>
movslq -0x18(%rbp),%rax
movss  -0xd0(%rbp,%rax,4),%xmm0
ff ff
addss  -0x20(%rbp),%xmm0
movss  %xmm0,-0x20(%rbp)
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1298 <gentbl_fsk9600+0x158>
jmp    131d <gentbl_fsk9600+0x1dd>
movl   $0x0,-0x1c(%rbp)
cmpl   $0x4,-0x1c(%rbp)
jge    1318 <gentbl_fsk9600+0x1d8>
movslq -0x18(%rbp),%rax
movss  -0xd0(%rbp,%rax,4),%xmm1
ff ff
movss  -0x20(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x20(%rbp)
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    12dc <gentbl_fsk9600+0x19c>
jmp    131d <gentbl_fsk9600+0x1dd>
jmp    1322 <gentbl_fsk9600+0x1e2>
mov    -0x14(%rbp),%eax
shl    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    1275 <gentbl_fsk9600+0x135>
movss  -0x20(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xcbf(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x20(%rbp)
movss  -0x20(%rbp),%xmm0
ucomiss -0xd8(%rbp),%xmm0
jbe    136d <gentbl_fsk9600+0x22d>
movss  -0x20(%rbp),%xmm0
movss  %xmm0,-0xd8(%rbp)
ff
movss  -0x20(%rbp),%xmm1
movss  -0xd4(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jbe    1390 <gentbl_fsk9600+0x250>
movss  -0x20(%rbp),%xmm0
movss  %xmm0,-0xd4(%rbp)
ff
mov    -0x8(%rbp),%rdi
movss  -0x20(%rbp),%xmm0
movss  0xcaf(%rip),%xmm1
mulss  %xmm1,%xmm0
movss  0xca7(%rip),%xmm1
addss  %xmm1,%xmm0
cvttss2si %xmm0,%edx
lea    0xcec(%rip),%rsi
mov    $0x0,%al
call   1040 <fprintf@plt>
cmpl   $0x3,-0xc(%rbp)
jl     13da <gentbl_fsk9600+0x29a>
cmpl   $0xff,-0x10(%rbp)
jge    1407 <gentbl_fsk9600+0x2c7>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%ecx
and    $0x7,%ecx
lea    0xcbc(%rip),%rdx
lea    0xcb3(%rip),%rax
cmp    $0x7,%ecx
cmove  %rax,%rdx
lea    0xcac(%rip),%rsi
mov    $0x0,%al
call   1040 <fprintf@plt>
jmp    140c <gentbl_fsk9600+0x2cc>
mov    -0x10(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
jmp    1253 <gentbl_fsk9600+0x113>
jmp    141f <gentbl_fsk9600+0x2df>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    1242 <gentbl_fsk9600+0x102>
mov    -0x8(%rbp),%rdi
lea    0xc78(%rip),%rsi
mov    $0x0,%al
call   1040 <fprintf@plt>
xorps  %xmm0,%xmm0
movss  %xmm0,-0xd8(%rbp)
ff
xorps  %xmm0,%xmm0
movss  %xmm0,-0xd4(%rbp)
ff
lea    -0xd0(%rbp),%rdi
xor    %esi,%esi
mov    $0xb0,%edx
call   1030 <memset@plt>
movl   $0x0,-0xc(%rbp)
cmpl   $0x24,-0xc(%rbp)
jge    1507 <gentbl_fsk9600+0x3c7>
cvtsi2sdl -0xc(%rbp),%xmm1
movsd  0xba2(%rip),%xmm0
subsd  %xmm0,%xmm1
movsd  0xb8e(%rip),%xmm0
divsd  %xmm0,%xmm1
movsd  0xb7a(%rip),%xmm0
mulsd  %xmm1,%xmm0
call   1060 <sinc@plt>
movsd  %xmm0,-0xe8(%rbp)
ff
cvtsi2sdl -0xc(%rbp),%xmm0
movsd  0xb54(%rip),%xmm1
divsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
call   1050 <hamming@plt>
movaps %xmm0,%xmm1
movsd  -0xe8(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  0xb28(%rip),%xmm1
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
mov    -0xc(%rbp),%eax
add    $0x4,%eax
cltq
movss  %xmm0,-0xd0(%rbp,%rax,4)
ff ff
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    146f <gentbl_fsk9600+0x32f>
mov    -0x8(%rbp),%rdi
lea    0xba4(%rip),%rsi
mov    $0x0,%al
call   1040 <fprintf@plt>
movl   $0x0,-0xc(%rbp)
cmpl   $0x5,-0xc(%rbp)
jge    170b <gentbl_fsk9600+0x5cb>
movl   $0x0,-0x10(%rbp)
cmpl   $0x100,-0x10(%rbp)
jge    16f8 <gentbl_fsk9600+0x5b8>
movl   $0x1,-0x14(%rbp)
xorps  %xmm0,%xmm0
movss  %xmm0,-0x20(%rbp)
mov    -0xc(%rbp),%eax
mov    %eax,-0x18(%rbp)
cmpl   $0x100,-0x14(%rbp)
jge    160e <gentbl_fsk9600+0x4ce>
mov    -0x10(%rbp),%eax
and    -0x14(%rbp),%eax
cmp    $0x0,%eax
je     15b3 <gentbl_fsk9600+0x473>
movl   $0x0,-0x1c(%rbp)
cmpl   $0x5,-0x1c(%rbp)
jge    15ae <gentbl_fsk9600+0x46e>
movslq -0x18(%rbp),%rax
movss  -0xd0(%rbp,%rax,4),%xmm0
ff ff
addss  -0x20(%rbp),%xmm0
movss  %xmm0,-0x20(%rbp)
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1576 <gentbl_fsk9600+0x436>
jmp    15fb <gentbl_fsk9600+0x4bb>
movl   $0x0,-0x1c(%rbp)
cmpl   $0x5,-0x1c(%rbp)
jge    15f6 <gentbl_fsk9600+0x4b6>
movslq -0x18(%rbp),%rax
movss  -0xd0(%rbp,%rax,4),%xmm1
ff ff
movss  -0x20(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x20(%rbp)
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    15ba <gentbl_fsk9600+0x47a>
jmp    15fb <gentbl_fsk9600+0x4bb>
jmp    1600 <gentbl_fsk9600+0x4c0>
mov    -0x14(%rbp),%eax
shl    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    1553 <gentbl_fsk9600+0x413>
movss  -0x20(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x9e1(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x20(%rbp)
movss  -0x20(%rbp),%xmm0
ucomiss -0xd8(%rbp),%xmm0
jbe    164b <gentbl_fsk9600+0x50b>
movss  -0x20(%rbp),%xmm0
movss  %xmm0,-0xd8(%rbp)
ff
movss  -0x20(%rbp),%xmm1
movss  -0xd4(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jbe    166e <gentbl_fsk9600+0x52e>
movss  -0x20(%rbp),%xmm0
movss  %xmm0,-0xd4(%rbp)
ff
mov    -0x8(%rbp),%rdi
movss  -0x20(%rbp),%xmm0
movss  0x9d1(%rip),%xmm1
mulss  %xmm1,%xmm0
movss  0x9c9(%rip),%xmm1
addss  %xmm1,%xmm0
cvttss2si %xmm0,%edx
lea    0xa0e(%rip),%rsi
mov    $0x0,%al
call   1040 <fprintf@plt>
cmpl   $0x4,-0xc(%rbp)
jl     16b8 <gentbl_fsk9600+0x578>
cmpl   $0xff,-0x10(%rbp)
jge    16e5 <gentbl_fsk9600+0x5a5>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%ecx
and    $0x7,%ecx
lea    0x9de(%rip),%rdx
lea    0x9d5(%rip),%rax
cmp    $0x7,%ecx
cmove  %rax,%rdx
lea    0x9ce(%rip),%rsi
mov    $0x0,%al
call   1040 <fprintf@plt>
jmp    16ea <gentbl_fsk9600+0x5aa>
mov    -0x10(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
jmp    1531 <gentbl_fsk9600+0x3f1>
jmp    16fd <gentbl_fsk9600+0x5bd>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    1520 <gentbl_fsk9600+0x3e0>
mov    -0x8(%rbp),%rdi
lea    0x99a(%rip),%rsi
mov    $0x0,%al
call   1040 <fprintf@plt>
add    $0xf0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0xc8,%rsp
mov    %rdi,%r13
lea    0xee9(%rip),%rdi
mov    $0x23,%esi
mov    $0x1,%edx
mov    %r13,%rcx
call   1070 <fwrite@plt>
lea    0x10(%rsp),%rdi
xor    %ebx,%ebx
xor    %esi,%esi
mov    $0xb0,%edx
call   1030 <memset@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %ebx,%xmm0
movsd  %xmm0,0x8(%rsp)
addsd  0xe5b(%rip),%xmm0
mulsd  0xe5b(%rip),%xmm0
mulsd  0xe5b(%rip),%xmm0
call   1060 <sinc@plt>
movsd  %xmm0,(%rsp)
movsd  0x8(%rsp),%xmm0
divsd  0xe4b(%rip),%xmm0
cvttsd2si %xmm0,%edi
call   1050 <hamming@plt>
mulsd  (%rsp),%xmm0
divsd  0xe3d(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,0x1c(%rsp,%rbx,4)
add    $0x1,%rbx
cmp    $0x1d,%rbx
jne    1190 <gentbl_fsk9600+0x40>
lea    0xe7a(%rip),%rdi
mov    $0x2b,%esi
mov    $0x1,%edx
mov    %r13,%rcx
call   1070 <fwrite@plt>
lea    0x1c(%rsp),%r12
lea    0xe88(%rip),%r14
lea    0xe85(%rip),%r15
xor    %ebx,%ebx
jmp    1240 <gentbl_fsk9600+0xf0>
nopw   0x0(%rax,%rax,1)
add    $0x1,%ebx
add    $0x4,%r12
cmp    $0x4,%ebx
je     1313 <gentbl_fsk9600+0x1c3>
xor    %ebp,%ebp
jmp    1280 <gentbl_fsk9600+0x130>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
mov    %ebp,%eax
not    %eax
test   $0x7,%al
lea    0xe46(%rip),%rdx
lea    0xe3d(%rip),%rax
cmove  %rax,%rdx
mov    %r13,%rdi
mov    %r15,%rsi
xor    %eax,%eax
call   1040 <fprintf@plt>
add    $0x1,%ebp
cmp    $0x100,%ebp
je     1230 <gentbl_fsk9600+0xe0>
mov    $0x1,%eax
xorps  %xmm0,%xmm0
mov    %r12,%rcx
jmp    12af <gentbl_fsk9600+0x15f>
nopl   (%rax)
subss  %xmm1,%xmm0
subss  -0x8(%rcx),%xmm0
subss  -0x4(%rcx),%xmm0
subss  (%rcx),%xmm0
add    %eax,%eax
add    $0x10,%rcx
cmp    $0x100,%eax
jge    12d0 <gentbl_fsk9600+0x180>
movss  -0xc(%rcx),%xmm1
test   %ebp,%eax
je     1290 <gentbl_fsk9600+0x140>
addss  %xmm1,%xmm0
addss  -0x8(%rcx),%xmm0
addss  -0x4(%rcx),%xmm0
addss  (%rcx),%xmm0
jmp    12a2 <gentbl_fsk9600+0x152>
nopl   0x0(%rax)
mulss  0xd70(%rip),%xmm0
mulss  0xd6c(%rip),%xmm0
addss  0xd68(%rip),%xmm0
cvttss2si %xmm0,%edx
mov    %r13,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1040 <fprintf@plt>
cmp    $0x3,%ebx
jb     1250 <gentbl_fsk9600+0x100>
cmp    $0xfe,%ebp
ja     1275 <gentbl_fsk9600+0x125>
jmp    1250 <gentbl_fsk9600+0x100>
lea    0xd92(%rip),%rdi
mov    $0x5,%esi
mov    $0x1,%edx
mov    %r13,%rcx
call   1070 <fwrite@plt>
lea    0x10(%rsp),%rdi
xor    %ebx,%ebx
xor    %esi,%esi
mov    $0xb0,%edx
call   1030 <memset@plt>
nop
xorps  %xmm0,%xmm0
cvtsi2sd %ebx,%xmm0
movsd  %xmm0,0x8(%rsp)
addsd  0xcd3(%rip),%xmm0
divsd  0xcd3(%rip),%xmm0
mulsd  0xcab(%rip),%xmm0
call   1060 <sinc@plt>
movsd  %xmm0,(%rsp)
movsd  0x8(%rsp),%xmm0
divsd  0xcbb(%rip),%xmm0
cvttsd2si %xmm0,%edi
call   1050 <hamming@plt>
mulsd  (%rsp),%xmm0
divsd  0xcad(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,0x20(%rsp,%rbx,4)
add    $0x1,%rbx
cmp    $0x24,%rbx
jne    1340 <gentbl_fsk9600+0x1f0>
lea    0xd04(%rip),%rdi
mov    $0x2b,%esi
mov    $0x1,%edx
mov    %r13,%rcx
call   1070 <fwrite@plt>
lea    0x20(%rsp),%rbp
lea    0xcd8(%rip),%r14
lea    0xcd5(%rip),%r15
xor    %r12d,%r12d
jmp    13f2 <gentbl_fsk9600+0x2a2>
nopl   0x0(%rax,%rax,1)
add    $0x1,%r12d
add    $0x4,%rbp
cmp    $0x5,%r12d
je     14d4 <gentbl_fsk9600+0x384>
xor    %ebx,%ebx
jmp    1430 <gentbl_fsk9600+0x2e0>
cs nopw 0x0(%rax,%rax,1)
mov    %ebx,%eax
not    %eax
test   $0x7,%al
lea    0xc96(%rip),%rdx
lea    0xc8d(%rip),%rax
cmove  %rax,%rdx
mov    %r13,%rdi
mov    %r15,%rsi
xor    %eax,%eax
call   1040 <fprintf@plt>
add    $0x1,%ebx
cmp    $0x100,%ebx
je     13e0 <gentbl_fsk9600+0x290>
mov    $0x1,%eax
xorps  %xmm0,%xmm0
mov    %rbp,%rcx
jmp    1464 <gentbl_fsk9600+0x314>
nopl   (%rax)
subss  %xmm1,%xmm0
subss  -0xc(%rcx),%xmm0
subss  -0x8(%rcx),%xmm0
subss  -0x4(%rcx),%xmm0
subss  (%rcx),%xmm0
add    %eax,%eax
add    $0x14,%rcx
cmp    $0x100,%eax
jge    1490 <gentbl_fsk9600+0x340>
movss  -0x10(%rcx),%xmm1
test   %ebx,%eax
je     1440 <gentbl_fsk9600+0x2f0>
addss  %xmm1,%xmm0
addss  -0xc(%rcx),%xmm0
addss  -0x8(%rcx),%xmm0
addss  -0x4(%rcx),%xmm0
addss  (%rcx),%xmm0
jmp    1457 <gentbl_fsk9600+0x307>
cs nopw 0x0(%rax,%rax,1)
mulss  0xbb0(%rip),%xmm0
mulss  0xbac(%rip),%xmm0
addss  0xba8(%rip),%xmm0
cvttss2si %xmm0,%edx
mov    %r13,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1040 <fprintf@plt>
cmp    $0x4,%r12d
jb     1400 <gentbl_fsk9600+0x2b0>
cmp    $0xfe,%ebx
ja     1425 <gentbl_fsk9600+0x2d5>
jmp    1400 <gentbl_fsk9600+0x2b0>
lea    0xbd1(%rip),%rdi
mov    $0x5,%esi
mov    $0x1,%edx
mov    %r13,%rcx
call   1070 <fwrite@plt>
add    $0xc8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@.str = [36 x i8] c"\0A/*\0A * fsk9600 specific tables\0A */\0A\00"
@.str.1 = [44 x i8] c"static unsigned char fsk96_txfilt_4[] = {\0A\09\00"
@.str.2 = [4 x i8] c"%4d\00"
@.str.3 = [4 x i8] c",%s\00"
@.str.4 = [3 x i8] c"\0A\09\00"
@.str.5 = [1 x i8] zeroinitializer
@.str.6 = [6 x i8] c"\0A};\0A\0A\00"
@.str.7 = [44 x i8] c"static unsigned char fsk96_txfilt_5[] = {\0A\09\00"
define void @gentbl_fsk9600(i32* %0) {
%2 = alloca i32*
%3 = alloca i32
%4 = alloca i32
%5 = alloca i32
%6 = alloca i32
%7 = alloca i32
%8 = alloca float
%9 = alloca [44 x float]
%10 = alloca float
%11 = alloca float
store i32* %0, i32** %2
%12 = load i32*, i32** %2
%13 = call i32 (i32*, i8*, ...) @fprintf(i32* %12, i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str, i64 0, i64 0))
store float 0.000000e+00, float* %11
store float 0.000000e+00, float* %10
%14 = getelementptr inbounds [44 x float], [44 x float]* %9, i64 0, i64 0
%15 = call i32 @memset(float* %14, i32 0, i32 176)
store i32 0, i32* %3
br label %16
16: ; preds = %38, %1
%17 = load i32, i32* %3
%18 = icmp slt i32 %17, 29
br i1 %18, label %19, label %41
19: ; preds = %16
%20 = load i32, i32* %3
%21 = sitofp i32 %20 to double
%22 = fsub double %21, 1.400000e+01
%23 = fdiv double %22, 4.000000e+00
%24 = fmul double 1.200000e+00, %23
%25 = call double @sinc(double %24)
%26 = load i32, i32* %3
%27 = sitofp i32 %26 to double
%28 = fdiv double %27, 2.800000e+01
%29 = fptosi double %28 to i32
%30 = call double @hamming(i32 %29)
%31 = fmul double %25, %30
%32 = fdiv double %31, 3.500000e+00
%33 = fptrunc double %32 to float
%34 = load i32, i32* %3
%35 = add nsw i32 3, %34
%36 = sext i32 %35 to i64
%37 = getelementptr inbounds [44 x float], [44 x float]* %9, i64 0, i64 %36
store float %33, float* %37
br label %38
38: ; preds = %19
%39 = load i32, i32* %3
%40 = add nsw i32 %39, 1
store i32 %40, i32* %3
br label %16
41: ; preds = %16
%42 = load i32*, i32** %2
%43 = call i32 (i32*, i8*, ...) @fprintf(i32* %42, i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.1, i64 0, i64 0))
store i32 0, i32* %3
br label %44
44: ; preds = %139, %41
%45 = load i32, i32* %3
%46 = icmp slt i32 %45, 4
br i1 %46, label %47, label %142
47: ; preds = %44
store i32 0, i32* %4
br label %48
48: ; preds = %135, %47
%49 = load i32, i32* %4
%50 = icmp slt i32 %49, 256
br i1 %50, label %51, label %138
51: ; preds = %48
store i32 1, i32* %5
store float 0.000000e+00, float* %8
%52 = load i32, i32* %3
store i32 %52, i32* %6
br label %53
53: ; preds = %96, %51
%54 = load i32, i32* %5
%55 = icmp slt i32 %54, 256
br i1 %55, label %56, label %99
56: ; preds = %53
%57 = load i32, i32* %4
%58 = load i32, i32* %5
%59 = and i32 %57, %58
%60 = icmp ne i32 %59, 0
br i1 %60, label %61, label %78
61: ; preds = %56
store i32 0, i32* %7
br label %62
62: ; preds = %72, %61
%63 = load i32, i32* %7
%64 = icmp slt i32 %63, 4
br i1 %64, label %65, label %77
65: ; preds = %62
%66 = load i32, i32* %6
%67 = sext i32 %66 to i64
%68 = getelementptr inbounds [44 x float], [44 x float]* %9, i64 0, i64 %67
%69 = load float, float* %68
%70 = load float, float* %8
%71 = fadd float %70, %69
store float %71, float* %8
br label %72
72: ; preds = %65
%73 = load i32, i32* %7
%74 = add nsw i32 %73, 1
store i32 %74, i32* %7
%75 = load i32, i32* %6
%76 = add nsw i32 %75, 1
store i32 %76, i32* %6
br label %62
77: ; preds = %62
br label %95
78: ; preds = %56
store i32 0, i32* %7
br label %79
79: ; preds = %89, %78
%80 = load i32, i32* %7
%81 = icmp slt i32 %80, 4
br i1 %81, label %82, label %94
82: ; preds = %79
%83 = load i32, i32* %6
%84 = sext i32 %83 to i64
%85 = getelementptr inbounds [44 x float], [44 x float]* %9, i64 0, i64 %84
%86 = load float, float* %85
%87 = load float, float* %8
%88 = fsub float %87, %86
store float %88, float* %8
br label %89
89: ; preds = %82
%90 = load i32, i32* %7
%91 = add nsw i32 %90, 1
store i32 %91, i32* %7
%92 = load i32, i32* %6
%93 = add nsw i32 %92, 1
store i32 %93, i32* %6
br label %79
94: ; preds = %79
br label %95
95: ; preds = %94, %77
br label %96
96: ; preds = %95
%97 = load i32, i32* %5
%98 = shl i32 %97, 1
store i32 %98, i32* %5
br label %53
99: ; preds = %53
%100 = load float, float* %8
%101 = fpext float %100 to double
%102 = fmul double %101, 7.500000e-01
%103 = fptrunc double %102 to float
store float %103, float* %8
%104 = load float, float* %8
%105 = load float, float* %11
%106 = fcmp ogt float %104, %105
br i1 %106, label %107, label %109
107: ; preds = %99
%108 = load float, float* %8
store float %108, float* %11
br label %109
109: ; preds = %107, %99
%110 = load float, float* %8
%111 = load float, float* %10
%112 = fcmp olt float %110, %111
br i1 %112, label %113, label %115
113: ; preds = %109
%114 = load float, float* %8
store float %114, float* %10
br label %115
115: ; preds = %113, %109
%116 = load i32*, i32** %2
%117 = load float, float* %8
%118 = call float @llvm.fmuladd.f32(float 1.270000e+02, float %117, float 1.280000e+02)
%119 = fptosi float %118 to i32
%120 = call i32 (i32*, i8*, ...) @fprintf(i32* %116, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i32 %119)
%121 = load i32, i32* %3
%122 = icmp slt i32 %121, 3
br i1 %122, label %126, label %123
123: ; preds = %115
%124 = load i32, i32* %4
%125 = icmp slt i32 %124, 255
br i1 %125, label %126, label %134
126: ; preds = %123, %115
%127 = load i32*, i32** %2
%128 = load i32, i32* %4
%129 = and i32 %128, 7
%130 = icmp eq i32 %129, 7
%131 = zext i1 %130 to i64
%132 = select i1 %130, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.5, i64 0, i64 0)
%133 = call i32 (i32*, i8*, ...) @fprintf(i32* %127, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.3, i64 0, i64 0), i8* %132)
br label %134
134: ; preds = %126, %123
br label %135
135: ; preds = %134
%136 = load i32, i32* %4
%137 = add nsw i32 %136, 1
store i32 %137, i32* %4
br label %48
138: ; preds = %48
br label %139
139: ; preds = %138
%140 = load i32, i32* %3
%141 = add nsw i32 %140, 1
store i32 %141, i32* %3
br label %44
142: ; preds = %44
%143 = load i32*, i32** %2
%144 = call i32 (i32*, i8*, ...) @fprintf(i32* %143, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.6, i64 0, i64 0))
store float 0.000000e+00, float* %11
store float 0.000000e+00, float* %10
%145 = getelementptr inbounds [44 x float], [44 x float]* %9, i64 0, i64 0
%146 = call i32 @memset(float* %145, i32 0, i32 176)
store i32 0, i32* %3
br label %147
147: ; preds = %169, %142
%148 = load i32, i32* %3
%149 = icmp slt i32 %148, 36
br i1 %149, label %150, label %172
150: ; preds = %147
%151 = load i32, i32* %3
%152 = sitofp i32 %151 to double
%153 = fsub double %152, 1.750000e+01
%154 = fdiv double %153, 5.000000e+00
%155 = fmul double 1.200000e+00, %154
%156 = call double @sinc(double %155)
%157 = load i32, i32* %3
%158 = sitofp i32 %157 to double
%159 = fdiv double %158, 3.500000e+01
%160 = fptosi double %159 to i32
%161 = call double @hamming(i32 %160)
%162 = fmul double %156, %161
%163 = fdiv double %162, 4.500000e+00
%164 = fptrunc double %163 to float
%165 = load i32, i32* %3
%166 = add nsw i32 4, %165
%167 = sext i32 %166 to i64
%168 = getelementptr inbounds [44 x float], [44 x float]* %9, i64 0, i64 %167
store float %164, float* %168
br label %169
169: ; preds = %150
%170 = load i32, i32* %3
%171 = add nsw i32 %170, 1
store i32 %171, i32* %3
br label %147
172: ; preds = %147
%173 = load i32*, i32** %2
%174 = call i32 (i32*, i8*, ...) @fprintf(i32* %173, i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.7, i64 0, i64 0))
store i32 0, i32* %3
br label %175
175: ; preds = %270, %172
%176 = load i32, i32* %3
%177 = icmp slt i32 %176, 5
br i1 %177, label %178, label %273
178: ; preds = %175
store i32 0, i32* %4
br label %179
179: ; preds = %266, %178
%180 = load i32, i32* %4
%181 = icmp slt i32 %180, 256
br i1 %181, label %182, label %269
182: ; preds = %179
store i32 1, i32* %5
store float 0.000000e+00, float* %8
%183 = load i32, i32* %3
store i32 %183, i32* %6
br label %184
184: ; preds = %227, %182
%185 = load i32, i32* %5
%186 = icmp slt i32 %185, 256
br i1 %186, label %187, label %230
187: ; preds = %184
%188 = load i32, i32* %4
%189 = load i32, i32* %5
%190 = and i32 %188, %189
%191 = icmp ne i32 %190, 0
br i1 %191, label %192, label %209
192: ; preds = %187
store i32 0, i32* %7
br label %193
193: ; preds = %203, %192
%194 = load i32, i32* %7
%195 = icmp slt i32 %194, 5
br i1 %195, label %196, label %208
196: ; preds = %193
%197 = load i32, i32* %6
%198 = sext i32 %197 to i64
%199 = getelementptr inbounds [44 x float], [44 x float]* %9, i64 0, i64 %198
%200 = load float, float* %199
%201 = load float, float* %8
%202 = fadd float %201, %200
store float %202, float* %8
br label %203
203: ; preds = %196
%204 = load i32, i32* %7
%205 = add nsw i32 %204, 1
store i32 %205, i32* %7
%206 = load i32, i32* %6
%207 = add nsw i32 %206, 1
store i32 %207, i32* %6
br label %193
208: ; preds = %193
br label %226
209: ; preds = %187
store i32 0, i32* %7
br label %210
210: ; preds = %220, %209
%211 = load i32, i32* %7
%212 = icmp slt i32 %211, 5
br i1 %212, label %213, label %225
213: ; preds = %210
%214 = load i32, i32* %6
%215 = sext i32 %214 to i64
%216 = getelementptr inbounds [44 x float], [44 x float]* %9, i64 0, i64 %215
%217 = load float, float* %216
%218 = load float, float* %8
%219 = fsub float %218, %217
store float %219, float* %8
br label %220
220: ; preds = %213
%221 = load i32, i32* %7
%222 = add nsw i32 %221, 1
store i32 %222, i32* %7
%223 = load i32, i32* %6
%224 = add nsw i32 %223, 1
store i32 %224, i32* %6
br label %210
225: ; preds = %210
br label %226
226: ; preds = %225, %208
br label %227
227: ; preds = %226
%228 = load i32, i32* %5
%229 = shl i32 %228, 1
store i32 %229, i32* %5
br label %184
230: ; preds = %184
%231 = load float, float* %8
%232 = fpext float %231 to double
%233 = fmul double %232, 7.500000e-01
%234 = fptrunc double %233 to float
store float %234, float* %8
%235 = load float, float* %8
%236 = load float, float* %11
%237 = fcmp ogt float %235, %236
br i1 %237, label %238, label %240
238: ; preds = %230
%239 = load float, float* %8
store float %239, float* %11
br label %240
240: ; preds = %238, %230
%241 = load float, float* %8
%242 = load float, float* %10
%243 = fcmp olt float %241, %242
br i1 %243, label %244, label %246
244: ; preds = %240
%245 = load float, float* %8
store float %245, float* %10
br label %246
246: ; preds = %244, %240
%247 = load i32*, i32** %2
%248 = load float, float* %8
%249 = call float @llvm.fmuladd.f32(float 1.270000e+02, float %248, float 1.280000e+02)
%250 = fptosi float %249 to i32
%251 = call i32 (i32*, i8*, ...) @fprintf(i32* %247, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i32 %250)
%252 = load i32, i32* %3
%253 = icmp slt i32 %252, 4
br i1 %253, label %257, label %254
254: ; preds = %246
%255 = load i32, i32* %4
%256 = icmp slt i32 %255, 255
br i1 %256, label %257, label %265
257: ; preds = %254, %246
%258 = load i32*, i32** %2
%259 = load i32, i32* %4
%260 = and i32 %259, 7
%261 = icmp eq i32 %260, 7
%262 = zext i1 %261 to i64
%263 = select i1 %261, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.5, i64 0, i64 0)
%264 = call i32 (i32*, i8*, ...) @fprintf(i32* %258, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.3, i64 0, i64 0), i8* %263)
br label %265
265: ; preds = %257, %254
br label %266
266: ; preds = %265
%267 = load i32, i32* %4
%268 = add nsw i32 %267, 1
store i32 %268, i32* %4
br label %179
269: ; preds = %179
br label %270
270: ; preds = %269
%271 = load i32, i32* %3
%272 = add nsw i32 %271, 1
store i32 %272, i32* %3
br label %175
273: ; preds = %175
%274 = load i32*, i32** %2
%275 = call i32 (i32*, i8*, ...) @fprintf(i32* %274, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.6, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str = [36 x i8] c"\0A/*\0A * fsk9600 specific tables\0A */\0A\00"
@.str.1 = [44 x i8] c"static unsigned char fsk96_txfilt_4[] = {\0A\09\00"
@.str.2 = [4 x i8] c"%4d\00"
@.str.3 = [4 x i8] c",%s\00"
@.str.4 = [3 x i8] c"\0A\09\00"
@.str.5 = [1 x i8] zeroinitializer
@.str.6 = [6 x i8] c"\0A};\0A\0A\00"
@.str.7 = [44 x i8] c"static unsigned char fsk96_txfilt_5[] = {\0A\09\00"
define void @gentbl_fsk9600(i32* nocapture %0) {
%2 = alloca [44 x float]
%3 = bitcast [44 x float]* %2 to i8*
%4 = tail call i64 @fwrite(i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str, i64 0, i64 0), i64 35, i64 1, i32* %0)
%5 = getelementptr inbounds [44 x float], [44 x float]* %2, i64 0, i64 0
%6 = call i32 @memset(float* %5, i32 0, i32 176)
br label %7
7: ; preds = %1, %7
%8 = phi i64 [ 0, %1 ], [ %23, %7 ]
%9 = trunc i64 %8 to i32
%10 = sitofp i32 %9 to double
%11 = fadd double %10, -1.400000e+01
%12 = fmul double %11, 2.500000e-01
%13 = fmul double %12, 1.200000e+00
%14 = call double @sinc(double %13)
%15 = fdiv double %10, 2.800000e+01
%16 = fptosi double %15 to i32
%17 = call double @hamming(i32 %16)
%18 = fmul double %14, %17
%19 = fdiv double %18, 3.500000e+00
%20 = fptrunc double %19 to float
%21 = add nuw nsw i64 %8, 3
%22 = getelementptr inbounds [44 x float], [44 x float]* %2, i64 0, i64 %21
store float %20, float* %22
%23 = add nuw nsw i64 %8, 1
%24 = icmp eq i64 %23, 29
br i1 %24, label %25, label %7
25: ; preds = %7
%26 = call i64 @fwrite(i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.1, i64 0, i64 0), i64 43, i64 1, i32* %0)
br label %27
27: ; preds = %25, %89
%28 = phi i32 [ 0, %25 ], [ %90, %89 ]
%29 = icmp ult i32 %28, 3
br label %30
30: ; preds = %27, %86
%31 = phi i32 [ 0, %27 ], [ %87, %86 ]
br label %32
32: ; preds = %30, %69
%33 = phi float [ 0.000000e+00, %30 ], [ %70, %69 ]
%34 = phi i32 [ %28, %30 ], [ %71, %69 ]
%35 = phi i32 [ 1, %30 ], [ %72, %69 ]
%36 = and i32 %35, %31
%37 = icmp eq i32 %36, 0
%38 = sext i32 %34 to i64
%39 = getelementptr inbounds [44 x float], [44 x float]* %2, i64 0, i64 %38
%40 = load float, float* %39
br i1 %37, label %55, label %41
41: ; preds = %32
%42 = fadd float %33, %40
%43 = add nsw i64 %38, 1
%44 = getelementptr inbounds [44 x float], [44 x float]* %2, i64 0, i64 %43
%45 = load float, float* %44
%46 = fadd float %42, %45
%47 = add nsw i64 %38, 2
%48 = getelementptr inbounds [44 x float], [44 x float]* %2, i64 0, i64 %47
%49 = load float, float* %48
%50 = fadd float %46, %49
%51 = add nsw i64 %38, 3
%52 = getelementptr inbounds [44 x float], [44 x float]* %2, i64 0, i64 %51
%53 = load float, float* %52
%54 = fadd float %50, %53
br label %69
55: ; preds = %32
%56 = fsub float %33, %40
%57 = add nsw i64 %38, 1
%58 = getelementptr inbounds [44 x float], [44 x float]* %2, i64 0, i64 %57
%59 = load float, float* %58
%60 = fsub float %56, %59
%61 = add nsw i64 %38, 2
%62 = getelementptr inbounds [44 x float], [44 x float]* %2, i64 0, i64 %61
%63 = load float, float* %62
%64 = fsub float %60, %63
%65 = add nsw i64 %38, 3
%66 = getelementptr inbounds [44 x float], [44 x float]* %2, i64 0, i64 %65
%67 = load float, float* %66
%68 = fsub float %64, %67
br label %69
69: ; preds = %41, %55
%70 = phi float [ %68, %55 ], [ %54, %41 ]
%71 = add i32 %34, 4
%72 = shl i32 %35, 1
%73 = icmp slt i32 %72, 256
br i1 %73, label %32, label %74
74: ; preds = %69
%75 = fmul float %70, 7.500000e-01
%76 = call float @llvm.fmuladd.f32(float %75, float 1.270000e+02, float 1.280000e+02)
%77 = fptosi float %76 to i32
%78 = call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i32 %77)
%79 = icmp ult i32 %31, 255
%80 = select i1 %29, i1 true, i1 %79
br i1 %80, label %81, label %86
81: ; preds = %74
%82 = and i32 %31, 7
%83 = icmp eq i32 %82, 7
%84 = select i1 %83, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.5, i64 0, i64 0)
%85 = call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.3, i64 0, i64 0), i8* %84)
br label %86
86: ; preds = %81, %74
%87 = add nuw nsw i32 %31, 1
%88 = icmp eq i32 %87, 256
br i1 %88, label %89, label %30
89: ; preds = %86
%90 = add nuw nsw i32 %28, 1
%91 = icmp eq i32 %90, 4
br i1 %91, label %92, label %27
92: ; preds = %89
%93 = call i64 @fwrite(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.6, i64 0, i64 0), i64 5, i64 1, i32* %0)
%94 = call i32 @memset(float* %5, i32 0, i32 176)
br label %95
95: ; preds = %92, %95
%96 = phi i64 [ 0, %92 ], [ %111, %95 ]
%97 = trunc i64 %96 to i32
%98 = sitofp i32 %97 to double
%99 = fadd double %98, -1.750000e+01
%100 = fdiv double %99, 5.000000e+00
%101 = fmul double %100, 1.200000e+00
%102 = call double @sinc(double %101)
%103 = fdiv double %98, 3.500000e+01
%104 = fptosi double %103 to i32
%105 = call double @hamming(i32 %104)
%106 = fmul double %102, %105
%107 = fdiv double %106, 4.500000e+00
%108 = fptrunc double %107 to float
%109 = add nuw nsw i64 %96, 4
%110 = getelementptr inbounds [44 x float], [44 x float]* %2, i64 0, i64 %109
store float %108, float* %110
%111 = add nuw nsw i64 %96, 1
%112 = icmp eq i64 %111, 36
br i1 %112, label %113, label %95
113: ; preds = %95
%114 = call i64 @fwrite(i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.7, i64 0, i64 0), i64 43, i64 1, i32* %0)
br label %115
115: ; preds = %113, %185
%116 = phi i32 [ 0, %113 ], [ %186, %185 ]
%117 = icmp ult i32 %116, 4
br label %118
118: ; preds = %115, %182
%119 = phi i32 [ 0, %115 ], [ %183, %182 ]
br label %120
120: ; preds = %118, %165
%121 = phi float [ 0.000000e+00, %118 ], [ %166, %165 ]
%122 = phi i32 [ %116, %118 ], [ %167, %165 ]
%123 = phi i32 [ 1, %118 ], [ %168, %165 ]
%124 = and i32 %123, %119
%125 = icmp eq i32 %124, 0
%126 = sext i32 %122 to i64
%127 = getelementptr inbounds [44 x float], [44 x float]* %2, i64 0, i64 %126
%128 = load float, float* %127
br i1 %125, label %147, label %129
129: ; preds = %120
%130 = fadd float %121, %128
%131 = add nsw i64 %126, 1
%132 = getelementptr inbounds [44 x float], [44 x float]* %2, i64 0, i64 %131
%133 = load float, float* %132
%134 = fadd float %130, %133
%135 = add nsw i64 %126, 2
%136 = getelementptr inbounds [44 x float], [44 x float]* %2, i64 0, i64 %135
%137 = load float, float* %136
%138 = fadd float %134, %137
%139 = add nsw i64 %126, 3
%140 = getelementptr inbounds [44 x float], [44 x float]* %2, i64 0, i64 %139
%141 = load float, float* %140
%142 = fadd float %138, %141
%143 = add nsw i64 %126, 4
%144 = getelementptr inbounds [44 x float], [44 x float]* %2, i64 0, i64 %143
%145 = load float, float* %144
%146 = fadd float %142, %145
br label %165
147: ; preds = %120
%148 = fsub float %121, %128
%149 = add nsw i64 %126, 1
%150 = getelementptr inbounds [44 x float], [44 x float]* %2, i64 0, i64 %149
%151 = load float, float* %150
%152 = fsub float %148, %151
%153 = add nsw i64 %126, 2
%154 = getelementptr inbounds [44 x float], [44 x float]* %2, i64 0, i64 %153
%155 = load float, float* %154
%156 = fsub float %152, %155
%157 = add nsw i64 %126, 3
%158 = getelementptr inbounds [44 x float], [44 x float]* %2, i64 0, i64 %157
%159 = load float, float* %158
%160 = fsub float %156, %159
%161 = add nsw i64 %126, 4
%162 = getelementptr inbounds [44 x float], [44 x float]* %2, i64 0, i64 %161
%163 = load float, float* %162
%164 = fsub float %160, %163
br label %165
165: ; preds = %129, %147
%166 = phi float [ %164, %147 ], [ %146, %129 ]
%167 = add i32 %122, 5
%168 = shl i32 %123, 1
%169 = icmp slt i32 %168, 256
br i1 %169, label %120, label %170
170: ; preds = %165
%171 = fmul float %166, 7.500000e-01
%172 = call float @llvm.fmuladd.f32(float %171, float 1.270000e+02, float 1.280000e+02)
%173 = fptosi float %172 to i32
%174 = call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i32 %173)
%175 = icmp ult i32 %119, 255
%176 = select i1 %117, i1 true, i1 %175
br i1 %176, label %177, label %182
177: ; preds = %170
%178 = and i32 %119, 7
%179 = icmp eq i32 %178, 7
%180 = select i1 %179, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.5, i64 0, i64 0)
%181 = call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.3, i64 0, i64 0), i8* %180)
br label %182
182: ; preds = %177, %170
%183 = add nuw nsw i32 %119, 1
%184 = icmp eq i32 %183, 256
br i1 %184, label %185, label %118
185: ; preds = %182
%186 = add nuw nsw i32 %116, 1
%187 = icmp eq i32 %186, 5
br i1 %187, label %188, label %115
188: ; preds = %185
%189 = call i64 @fwrite(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.6, i64 0, i64 0), i64 5, i64 1, i32* %0)
ret void
}