int imc_copyWCS(struct icom *icomin, struct icom *icomout) {
  char crval1[80], crval2[80], crpix1[80], crpix2[80], cdelt1[80], cdelt2[80],
      equinox[80], longpole[80],
      ctype1[80] = "RA---TAN", ctype2[80] = "DEC--TAN", cunit1[80] = "degree",
      cunit2[80] = "degree", cd11[80], cd12[80], cd21[80], cd22[80];
  if (imc_getWCS(icomin, crval1, crval2, equinox, cdelt1, cdelt2, longpole,
                 ctype1, ctype2, cunit1, cunit2, crpix1, crpix2, cd11, cd12,
                 cd21, cd22) == 1) {
    imupdate_fitsf(icomout, "CRVAL1", "%20.8f / %-47.47s", atof(crval1), "");
    imupdate_fitsf(icomout, "CRVAL2", "%20.8f / %-47.47s", atof(crval2), "");
    imupdate_fitsf(icomout, "EQUINOX", "%20.1f / %-47.47s", atof(equinox), "");
    if (imrep_fitsf(icomout, "LONGPOLE", "LONPOLE = %20.1f /",
                    atof(longpole)) == 0) {
      imupdate_fitsf(icomout, "LONPOLE", "%20.1f / %-47.47s", atof(longpole),
                     "");
    }
    if (atof(cdelt1) != 0)
      imupdate_fitsf(icomout, "CDELT1", "%20.8f / %-47.47s", atof(cdelt1), "");
    if (atof(cdelt2) != 0)
      imupdate_fitsf(icomout, "CDELT2", "%20.8f / %-47.47s", atof(cdelt2), "");
    printf("debug:ctype1 %s\n", ctype1);
    printf("debug:cunit1 %s\n", cunit1);
    imupdate_fitsf(icomout, "CTYPE1", "RA---TAN");
    imupdate_fitsf(icomout, "CTYPE2", "DEC--TAN");
    imupdate_fitsf(icomout, "CUNIT1", "\'%-8s\'", cunit1);
    imupdate_fitsf(icomout, "CUNIT2", "\'%-8s\'", cunit2);
    imupdate_fitsf(icomout, "CD1_1", "%20.8f / %-47.47s", (atof(cd11)), "");
    imupdate_fitsf(icomout, "CD1_2", "%20.8f / %-47.47s", (atof(cd12)), "");
    imupdate_fitsf(icomout, "CD2_1", "%20.8f / %-47.47s", (atof(cd21)), "");
    imupdate_fitsf(icomout, "CD2_2", "%20.8f / %-47.47s", (atof(cd22)), "");
    imupdate_fitsf(icomout, "CRPIX1", "%20.1f / %-47.47s", (atof(crpix1)), "");
    imupdate_fitsf(icomout, "CRPIX2", "%20.1f / %-47.47s", (atof(crpix2)), "");
    return 1;
  } else
    return 0;
}


x86 assembly (clang, -O0):
<imc_copyWCS>:
push   %rbp
mov    %rsp,%rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x5f8,%rsp
mov    %rdi,-0x38(%rbp)
mov    %rsi,-0x40(%rbp)
lea    -0x310(%rbp),%rdi
lea    0xe66(%rip),%rsi
mov    $0x50,%edx
call   1070 <memcpy@plt>
lea    -0x360(%rbp),%rdi
lea    0xe9e(%rip),%rsi
mov    $0x50,%edx
call   1070 <memcpy@plt>
lea    -0x3b0(%rbp),%rdi
xor    %esi,%esi
mov    $0x50,%edx
call   1050 <memset@plt>
movb   $0x64,-0x3b0(%rbp)
movb   $0x65,-0x3af(%rbp)
movb   $0x67,-0x3ae(%rbp)
movb   $0x72,-0x3ad(%rbp)
movb   $0x65,-0x3ac(%rbp)
movb   $0x65,-0x3ab(%rbp)
lea    -0x400(%rbp),%rdi
xor    %esi,%esi
mov    $0x50,%edx
call   1050 <memset@plt>
movb   $0x64,-0x400(%rbp)
movb   $0x65,-0x3ff(%rbp)
movb   $0x67,-0x3fe(%rbp)
movb   $0x72,-0x3fd(%rbp)
movb   $0x65,-0x3fc(%rbp)
movb   $0x65,-0x3fb(%rbp)
mov    -0x38(%rbp),%rdi
lea    -0x90(%rbp),%rsi
lea    -0xe0(%rbp),%rdx
lea    -0x270(%rbp),%rcx
lea    -0x1d0(%rbp),%r8
lea    -0x220(%rbp),%r9
lea    -0x2c0(%rbp),%rax
mov    %rax,-0x560(%rbp)
lea    -0x310(%rbp),%rax
mov    %rax,-0x558(%rbp)
lea    -0x360(%rbp),%rax
mov    %rax,-0x550(%rbp)
lea    -0x3b0(%rbp),%r13
lea    -0x400(%rbp),%r12
lea    -0x130(%rbp),%r15
lea    -0x180(%rbp),%r14
lea    -0x450(%rbp),%rbx
lea    -0x4a0(%rbp),%r11
lea    -0x4f0(%rbp),%r10
lea    -0x540(%rbp),%rax
mov    %rax,-0x548(%rbp)
mov    -0x560(%rbp),%rax
mov    %rax,(%rsp)
mov    -0x558(%rbp),%rax
mov    %rax,0x8(%rsp)
mov    -0x550(%rbp),%rax
mov    %rax,0x10(%rsp)
mov    -0x548(%rbp),%rax
mov    %r13,0x18(%rsp)
mov    %r12,0x20(%rsp)
mov    %r15,0x28(%rsp)
mov    %r14,0x30(%rsp)
mov    %rbx,0x38(%rsp)
mov    %r11,0x40(%rsp)
mov    %r10,0x48(%rsp)
mov    %rax,0x50(%rsp)
mov    $0x0,%al
call   1080 <imc_getWCS@plt>
cmp    $0x1,%eax
jne    1726 <imc_copyWCS+0x5b6>
mov    -0x40(%rbp),%rax
mov    %rax,-0x580(%rbp)
lea    -0x90(%rbp),%rdi
mov    $0x0,%al
call   1030 <atof@plt>
mov    -0x580(%rbp),%rdi
mov    %eax,%ecx
lea    0xd4f(%rip),%rsi
lea    0xd4f(%rip),%rdx
lea    0xdbd(%rip),%r8
mov    $0x0,%al
call   1090 <imupdate_fitsf@plt>
mov    -0x40(%rbp),%rax
mov    %rax,-0x578(%rbp)
lea    -0xe0(%rbp),%rdi
mov    $0x0,%al
call   1030 <atof@plt>
mov    -0x578(%rbp),%rdi
mov    %eax,%ecx
lea    0xd2a(%rip),%rsi
lea    0xd11(%rip),%rdx
lea    0xd7f(%rip),%r8
mov    $0x0,%al
call   1090 <imupdate_fitsf@plt>
mov    -0x40(%rbp),%rax
mov    %rax,-0x570(%rbp)
lea    -0x270(%rbp),%rdi
mov    $0x0,%al
call   1030 <atof@plt>
mov    -0x570(%rbp),%rdi
mov    %eax,%ecx
lea    0xcf3(%rip),%rsi
lea    0xcf4(%rip),%rdx
lea    0xd41(%rip),%r8
mov    $0x0,%al
call   1090 <imupdate_fitsf@plt>
mov    -0x40(%rbp),%rax
mov    %rax,-0x568(%rbp)
lea    -0x2c0(%rbp),%rdi
mov    $0x0,%al
call   1030 <atof@plt>
mov    -0x568(%rbp),%rdi
mov    %eax,%ecx
lea    0xccf(%rip),%rsi
lea    0xcd1(%rip),%rdx
mov    $0x0,%al
call   1060 <imrep_fitsf@plt>
cmp    $0x0,%eax
jne    1460 <imc_copyWCS+0x2f0>
mov    -0x40(%rbp),%rax
mov    %rax,-0x588(%rbp)
lea    -0x2c0(%rbp),%rdi
mov    $0x0,%al
call   1030 <atof@plt>
mov    -0x588(%rbp),%rdi
mov    %eax,%ecx
lea    0xcab(%rip),%rsi
lea    0xc76(%rip),%rdx
lea    0xcc3(%rip),%r8
mov    $0x0,%al
call   1090 <imupdate_fitsf@plt>
lea    -0x1d0(%rbp),%rdi
mov    $0x0,%al
call   1030 <atof@plt>
cmp    $0x0,%eax
je     14b5 <imc_copyWCS+0x345>
mov    -0x40(%rbp),%rax
mov    %rax,-0x590(%rbp)
lea    -0x1d0(%rbp),%rdi
mov    $0x0,%al
call   1030 <atof@plt>
mov    -0x590(%rbp),%rdi
mov    %eax,%ecx
lea    0xc5e(%rip),%rsi
lea    0xc00(%rip),%rdx
lea    0xc6e(%rip),%r8
mov    $0x0,%al
call   1090 <imupdate_fitsf@plt>
lea    -0x220(%rbp),%rdi
mov    $0x0,%al
call   1030 <atof@plt>
cmp    $0x0,%eax
je     150a <imc_copyWCS+0x39a>
mov    -0x40(%rbp),%rax
mov    %rax,-0x598(%rbp)
lea    -0x220(%rbp),%rdi
mov    $0x0,%al
call   1030 <atof@plt>
mov    -0x598(%rbp),%rdi
mov    %eax,%ecx
lea    0xc10(%rip),%rsi
lea    0xbab(%rip),%rdx
lea    0xc19(%rip),%r8
mov    $0x0,%al
call   1090 <imupdate_fitsf@plt>
lea    -0x310(%rbp),%rsi
lea    0xbf4(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x3b0(%rbp),%rsi
lea    0xbf0(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x40(%rbp),%rdi
lea    0xbef(%rip),%rsi
lea    0xbef(%rip),%rdx
mov    $0x0,%al
call   1090 <imupdate_fitsf@plt>
mov    -0x40(%rbp),%rdi
lea    0xbe6(%rip),%rsi
lea    0xbe6(%rip),%rdx
mov    $0x0,%al
call   1090 <imupdate_fitsf@plt>
mov    -0x40(%rbp),%rdi
lea    -0x3b0(%rbp),%rcx
lea    0xbd6(%rip),%rsi
lea    0xbd6(%rip),%rdx
mov    $0x0,%al
call   1090 <imupdate_fitsf@plt>
mov    -0x40(%rbp),%rdi
lea    -0x400(%rbp),%rcx
lea    0xbc4(%rip),%rsi
lea    0xbb6(%rip),%rdx
mov    $0x0,%al
call   1090 <imupdate_fitsf@plt>
mov    -0x40(%rbp),%rax
mov    %rax,-0x5c8(%rbp)
lea    -0x450(%rbp),%rdi
mov    $0x0,%al
call   1030 <atof@plt>
mov    -0x5c8(%rbp),%rdi
mov    %eax,%ecx
lea    0xb94(%rip),%rsi
lea    0xad1(%rip),%rdx
lea    0xb3f(%rip),%r8
mov    $0x0,%al
call   1090 <imupdate_fitsf@plt>
mov    -0x40(%rbp),%rax
mov    %rax,-0x5c0(%rbp)
lea    -0x4a0(%rbp),%rdi
mov    $0x0,%al
call   1030 <atof@plt>
mov    -0x5c0(%rbp),%rdi
mov    %eax,%ecx
lea    0xb5c(%rip),%rsi
lea    0xa93(%rip),%rdx
lea    0xb01(%rip),%r8
mov    $0x0,%al
call   1090 <imupdate_fitsf@plt>
mov    -0x40(%rbp),%rax
mov    %rax,-0x5b8(%rbp)
lea    -0x4f0(%rbp),%rdi
mov    $0x0,%al
call   1030 <atof@plt>
mov    -0x5b8(%rbp),%rdi
mov    %eax,%ecx
lea    0xb24(%rip),%rsi
lea    0xa55(%rip),%rdx
lea    0xac3(%rip),%r8
mov    $0x0,%al
call   1090 <imupdate_fitsf@plt>
mov    -0x40(%rbp),%rax
mov    %rax,-0x5b0(%rbp)
lea    -0x540(%rbp),%rdi
mov    $0x0,%al
call   1030 <atof@plt>
mov    -0x5b0(%rbp),%rdi
mov    %eax,%ecx
lea    0xaec(%rip),%rsi
lea    0xa17(%rip),%rdx
lea    0xa85(%rip),%r8
mov    $0x0,%al
call   1090 <imupdate_fitsf@plt>
mov    -0x40(%rbp),%rax
mov    %rax,-0x5a8(%rbp)
lea    -0x130(%rbp),%rdi
mov    $0x0,%al
call   1030 <atof@plt>
mov    -0x5a8(%rbp),%rdi
mov    %eax,%ecx
lea    0xab4(%rip),%rsi
lea    0x9fa(%rip),%rdx
lea    0xa47(%rip),%r8
mov    $0x0,%al
call   1090 <imupdate_fitsf@plt>
mov    -0x40(%rbp),%rax
mov    %rax,-0x5a0(%rbp)
lea    -0x180(%rbp),%rdi
mov    $0x0,%al
call   1030 <atof@plt>
mov    -0x5a0(%rbp),%rdi
mov    %eax,%ecx
lea    0xa7d(%rip),%rsi
lea    0x9bc(%rip),%rdx
lea    0xa09(%rip),%r8
mov    $0x0,%al
call   1090 <imupdate_fitsf@plt>
movl   $0x1,-0x2c(%rbp)
jmp    172d <imc_copyWCS+0x5bd>
movl   $0x0,-0x2c(%rbp)
mov    -0x2c(%rbp),%eax
add    $0x5f8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

x86 assembly (clang, -O2):
<imc_copyWCS>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x508,%rsp
mov    %rsi,%r12
movaps 0xed5(%rip),%xmm0
movaps %xmm0,0xe0(%rsp)
movaps 0xeb6(%rip),%xmm0
movaps %xmm0,0xd0(%rsp)
movaps 0xe97(%rip),%xmm0
movaps %xmm0,0xc0(%rsp)
movaps 0xe78(%rip),%xmm0
movaps %xmm0,0xb0(%rsp)
movaps 0xe59(%rip),%xmm0
movaps %xmm0,0xa0(%rsp)
movaps 0xeda(%rip),%xmm0
movaps %xmm0,0x130(%rsp)
movaps 0xebb(%rip),%xmm0
movaps %xmm0,0x120(%rsp)
movaps 0xe9c(%rip),%xmm0
movaps %xmm0,0x110(%rsp)
movaps 0xe7d(%rip),%xmm0
movaps %xmm0,0x100(%rsp)
movaps 0xe5e(%rip),%xmm0
movaps %xmm0,0xf0(%rsp)
xorps  %xmm0,%xmm0
movaps %xmm0,0x50(%rsp)
movaps %xmm0,0x90(%rsp)
movaps %xmm0,0x80(%rsp)
movaps %xmm0,0x70(%rsp)
movaps %xmm0,0x60(%rsp)
movl   $0x72676564,0x50(%rsp)
72
movw   $0x6565,0x54(%rsp)
movaps %xmm0,(%rsp)
movaps %xmm0,0x40(%rsp)
movaps %xmm0,0x30(%rsp)
movaps %xmm0,0x20(%rsp)
movaps %xmm0,0x10(%rsp)
movl   $0x72676564,(%rsp)
movw   $0x6565,0x4(%rsp)
sub    $0x8,%rsp
lea    0x238(%rsp),%r13
lea    0x288(%rsp),%r10
lea    0x2d8(%rsp),%r11
lea    0x328(%rsp),%r14
lea    0x3c8(%rsp),%r15
lea    0x418(%rsp),%rbx
xor    %ebp,%ebp
lea    0x4b8(%rsp),%rsi
lea    0x468(%rsp),%rdx
lea    0x378(%rsp),%rcx
lea    0x1e8(%rsp),%r8
lea    0x198(%rsp),%r9
mov    $0x0,%eax
push   %r13
push   %r10
push   %r11
push   %r14
push   %r15
push   %rbx
lea    0x38(%rsp),%rbx
push   %rbx
lea    0x90(%rsp),%rbx
push   %rbx
lea    0x138(%rsp),%rbx
push   %rbx
lea    0xf0(%rsp),%rbx
push   %rbx
lea    0x198(%rsp),%rbx
push   %rbx
call   1060 <imc_getWCS@plt>
add    $0x60,%rsp
cmp    $0x1,%eax
jne    1603 <imc_copyWCS+0x4b3>
lea    0x4b0(%rsp),%rdi
xor    %eax,%eax
call   1030 <atof@plt>
lea    0xd8f(%rip),%rsi
lea    0xd8f(%rip),%rbp
lea    0xdfd(%rip),%r14
mov    %r12,%rdi
mov    %rbp,%rdx
mov    %eax,%ecx
mov    %r14,%r8
xor    %eax,%eax
call   1070 <imupdate_fitsf@plt>
lea    0x460(%rsp),%rdi
xor    %eax,%eax
call   1030 <atof@plt>
lea    0xd72(%rip),%rsi
mov    %r12,%rdi
mov    %rbp,%rdx
mov    %eax,%ecx
mov    %r14,%r8
xor    %eax,%eax
call   1070 <imupdate_fitsf@plt>
lea    0x370(%rsp),%rdi
xor    %eax,%eax
call   1030 <atof@plt>
lea    0xd51(%rip),%rsi
lea    0xd52(%rip),%rdx
mov    %r12,%rdi
mov    %eax,%ecx
mov    %r14,%r8
xor    %eax,%eax
call   1070 <imupdate_fitsf@plt>
lea    0x140(%rsp),%rdi
xor    %eax,%eax
call   1030 <atof@plt>
lea    0xd3f(%rip),%rsi
lea    0xd41(%rip),%rdx
mov    %r12,%rdi
mov    %eax,%ecx
xor    %eax,%eax
call   1050 <imrep_fitsf@plt>
test   %eax,%eax
jne    13e2 <imc_copyWCS+0x292>
lea    0x140(%rsp),%rdi
xor    %eax,%eax
call   1030 <atof@plt>
lea    0xd2e(%rip),%rsi
lea    0xcf9(%rip),%rdx
lea    0xd46(%rip),%r8
mov    %r12,%rdi
mov    %eax,%ecx
xor    %eax,%eax
call   1070 <imupdate_fitsf@plt>
lea    0x1e0(%rsp),%rdi
xor    %eax,%eax
call   1030 <atof@plt>
test   %eax,%eax
je     1425 <imc_copyWCS+0x2d5>
lea    0x1e0(%rsp),%rdi
xor    %eax,%eax
call   1030 <atof@plt>
lea    0xcf3(%rip),%rsi
lea    0xc95(%rip),%rdx
lea    0xd03(%rip),%r8
mov    %r12,%rdi
mov    %eax,%ecx
xor    %eax,%eax
call   1070 <imupdate_fitsf@plt>
lea    0x190(%rsp),%rdi
xor    %eax,%eax
call   1030 <atof@plt>
test   %eax,%eax
je     1468 <imc_copyWCS+0x318>
lea    0x190(%rsp),%rdi
xor    %eax,%eax
call   1030 <atof@plt>
lea    0xcb7(%rip),%rsi
lea    0xc52(%rip),%rdx
lea    0xcc0(%rip),%r8
mov    %r12,%rdi
mov    %eax,%ecx
xor    %eax,%eax
call   1070 <imupdate_fitsf@plt>
lea    0xc9d(%rip),%rdi
lea    0xa0(%rsp),%rsi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xc98(%rip),%rdi
lea    0x50(%rsp),%r14
mov    %r14,%rsi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xc93(%rip),%rsi
lea    0xc93(%rip),%rdx
mov    %r12,%rdi
xor    %eax,%eax
call   1070 <imupdate_fitsf@plt>
lea    0xc8b(%rip),%rsi
lea    0xc8b(%rip),%rdx
mov    %r12,%rdi
xor    %eax,%eax
call   1070 <imupdate_fitsf@plt>
lea    0xc83(%rip),%rsi
lea    0xc83(%rip),%rbp
mov    %r12,%rdi
mov    %rbp,%rdx
mov    %r14,%rcx
xor    %eax,%eax
call   1070 <imupdate_fitsf@plt>
lea    0xc73(%rip),%rsi
mov    %rsp,%rcx
mov    %r12,%rdi
mov    %rbp,%rdx
xor    %eax,%eax
call   1070 <imupdate_fitsf@plt>
lea    0x320(%rsp),%rdi
xor    %eax,%eax
call   1030 <atof@plt>
lea    0xc54(%rip),%rsi
lea    0xb91(%rip),%r15
lea    0xbff(%rip),%r14
mov    %r12,%rdi
mov    %r15,%rdx
mov    %eax,%ecx
mov    %r14,%r8
xor    %eax,%eax
call   1070 <imupdate_fitsf@plt>
lea    0x2d0(%rsp),%rdi
xor    %eax,%eax
call   1030 <atof@plt>
lea    0xc24(%rip),%rsi
mov    %r12,%rdi
mov    %r15,%rdx
mov    %eax,%ecx
mov    %r14,%r8
xor    %eax,%eax
call   1070 <imupdate_fitsf@plt>
lea    0x280(%rsp),%rdi
xor    %eax,%eax
call   1030 <atof@plt>
lea    0xc02(%rip),%rsi
mov    %r12,%rdi
mov    %r15,%rdx
mov    %eax,%ecx
mov    %r14,%r8
xor    %eax,%eax
call   1070 <imupdate_fitsf@plt>
lea    0x230(%rsp),%rdi
xor    %eax,%eax
call   1030 <atof@plt>
lea    0xbe0(%rip),%rsi
mov    %r12,%rdi
mov    %r15,%rdx
mov    %eax,%ecx
mov    %r14,%r8
xor    %eax,%eax
call   1070 <imupdate_fitsf@plt>
lea    0x410(%rsp),%rdi
xor    %eax,%eax
call   1030 <atof@plt>
lea    0xbbe(%rip),%rsi
lea    0xb04(%rip),%rbp
mov    %r12,%rdi
mov    %rbp,%rdx
mov    %eax,%ecx
mov    %r14,%r8
xor    %eax,%eax
call   1070 <imupdate_fitsf@plt>
lea    0x3c0(%rsp),%rdi
xor    %eax,%eax
call   1030 <atof@plt>
lea    0xb96(%rip),%rsi
mov    %r12,%rdi
mov    %rbp,%rdx
mov    %eax,%ecx
mov    %r14,%r8
xor    %eax,%eax
call   1070 <imupdate_fitsf@plt>
mov    $0x1,%ebp
mov    %ebp,%eax
add    $0x508,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
%struct.icom = type opaque
@__const.imc_copyWCS.ctype1 = [80 x i8] c"RA---TAN\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00"
@__const.imc_copyWCS.ctype2 = [80 x i8] c"DEC--TAN\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00"
@.str = [7 x i8] c"CRVAL1\00"
@.str.1 = [18 x i8] c"%20.8f / %-47.47s\00"
@.str.2 = [1 x i8] zeroinitializer
@.str.3 = [7 x i8] c"CRVAL2\00"
@.str.4 = [8 x i8] c"EQUINOX\00"
@.str.5 = [18 x i8] c"%20.1f / %-47.47s\00"
@.str.6 = [9 x i8] c"LONGPOLE\00"
@.str.7 = [19 x i8] c"LONPOLE = %20.1f /\00"
@.str.8 = [8 x i8] c"LONPOLE\00"
@.str.9 = [7 x i8] c"CDELT1\00"
@.str.10 = [7 x i8] c"CDELT2\00"
@.str.11 = [17 x i8] c"debug:ctype1 %s\0A\00"
@.str.12 = [17 x i8] c"debug:cunit1 %s\0A\00"
@.str.13 = [7 x i8] c"CTYPE1\00"
@.str.14 = [9 x i8] c"RA---TAN\00"
@.str.15 = [7 x i8] c"CTYPE2\00"
@.str.16 = [9 x i8] c"DEC--TAN\00"
@.str.17 = [7 x i8] c"CUNIT1\00"
@.str.18 = [7 x i8] c"'%-8s'\00"
@.str.19 = [7 x i8] c"CUNIT2\00"
@.str.20 = [6 x i8] c"CD1_1\00"
@.str.21 = [6 x i8] c"CD1_2\00"
@.str.22 = [6 x i8] c"CD2_1\00"
@.str.23 = [6 x i8] c"CD2_2\00"
@.str.24 = [7 x i8] c"CRPIX1\00"
@.str.25 = [7 x i8] c"CRPIX2\00"
define i32 @imc_copyWCS(%struct.icom* %0, %struct.icom* %1) {
%3 = alloca i32
%4 = alloca %struct.icom*
%5 = alloca %struct.icom*
%6 = alloca [80 x i8]
%7 = alloca [80 x i8]
%8 = alloca [80 x i8]
%9 = alloca [80 x i8]
%10 = alloca [80 x i8]
%11 = alloca [80 x i8]
%12 = alloca [80 x i8]
%13 = alloca [80 x i8]
%14 = alloca [80 x i8]
%15 = alloca [80 x i8]
%16 = alloca [80 x i8]
%17 = alloca [80 x i8]
%18 = alloca [80 x i8]
%19 = alloca [80 x i8]
%20 = alloca [80 x i8]
%21 = alloca [80 x i8]
store %struct.icom* %0, %struct.icom** %4
store %struct.icom* %1, %struct.icom** %5
%22 = bitcast [80 x i8]* %14 to i8*
%23 = bitcast [80 x i8]* %15 to i8*
%24 = bitcast [80 x i8]* %16 to i8*
%25 = bitcast i8* %24 to [80 x i8]*
%26 = getelementptr inbounds [80 x i8], [80 x i8]* %25, i32 0, i32 0
store i8 100, i8* %26
%27 = getelementptr inbounds [80 x i8], [80 x i8]* %25, i32 0, i32 1
store i8 101, i8* %27
%28 = getelementptr inbounds [80 x i8], [80 x i8]* %25, i32 0, i32 2
store i8 103, i8* %28
%29 = getelementptr inbounds [80 x i8], [80 x i8]* %25, i32 0, i32 3
store i8 114, i8* %29
%30 = getelementptr inbounds [80 x i8], [80 x i8]* %25, i32 0, i32 4
store i8 101, i8* %30
%31 = getelementptr inbounds [80 x i8], [80 x i8]* %25, i32 0, i32 5
store i8 101, i8* %31
%32 = bitcast [80 x i8]* %17 to i8*
%33 = bitcast i8* %32 to [80 x i8]*
%34 = getelementptr inbounds [80 x i8], [80 x i8]* %33, i32 0, i32 0
store i8 100, i8* %34
%35 = getelementptr inbounds [80 x i8], [80 x i8]* %33, i32 0, i32 1
store i8 101, i8* %35
%36 = getelementptr inbounds [80 x i8], [80 x i8]* %33, i32 0, i32 2
store i8 103, i8* %36
%37 = getelementptr inbounds [80 x i8], [80 x i8]* %33, i32 0, i32 3
store i8 114, i8* %37
%38 = getelementptr inbounds [80 x i8], [80 x i8]* %33, i32 0, i32 4
store i8 101, i8* %38
%39 = getelementptr inbounds [80 x i8], [80 x i8]* %33, i32 0, i32 5
store i8 101, i8* %39
%40 = load %struct.icom*, %struct.icom** %4
%41 = getelementptr inbounds [80 x i8], [80 x i8]* %6, i64 0, i64 0
%42 = getelementptr inbounds [80 x i8], [80 x i8]* %7, i64 0, i64 0
%43 = getelementptr inbounds [80 x i8], [80 x i8]* %12, i64 0, i64 0
%44 = getelementptr inbounds [80 x i8], [80 x i8]* %10, i64 0, i64 0
%45 = getelementptr inbounds [80 x i8], [80 x i8]* %11, i64 0, i64 0
%46 = getelementptr inbounds [80 x i8], [80 x i8]* %13, i64 0, i64 0
%47 = getelementptr inbounds [80 x i8], [80 x i8]* %14, i64 0, i64 0
%48 = getelementptr inbounds [80 x i8], [80 x i8]* %15, i64 0, i64 0
%49 = getelementptr inbounds [80 x i8], [80 x i8]* %16, i64 0, i64 0
%50 = getelementptr inbounds [80 x i8], [80 x i8]* %17, i64 0, i64 0
%51 = getelementptr inbounds [80 x i8], [80 x i8]* %8, i64 0, i64 0
%52 = getelementptr inbounds [80 x i8], [80 x i8]* %9, i64 0, i64 0
%53 = getelementptr inbounds [80 x i8], [80 x i8]* %18, i64 0, i64 0
%54 = getelementptr inbounds [80 x i8], [80 x i8]* %19, i64 0, i64 0
%55 = getelementptr inbounds [80 x i8], [80 x i8]* %20, i64 0, i64 0
%56 = getelementptr inbounds [80 x i8], [80 x i8]* %21, i64 0, i64 0
%57 = call i32 (%struct.icom*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, ...) bitcast (i32 (...)* @imc_getWCS to i32 (%struct.icom*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, ...)*)(%struct.icom* %40, i8* %41, i8* %42, i8* %43, i8* %44, i8* %45, i8* %46, i8* %47, i8* %48, i8* %49, i8* %50, i8* %51, i8* %52, i8* %53, i8* %54, i8* %55, i8* %56)
%58 = icmp eq i32 %57, 1
br i1 %58, label %59, label %139
59: ; preds = %2
%60 = load %struct.icom*, %struct.icom** %5
%61 = getelementptr inbounds [80 x i8], [80 x i8]* %6, i64 0, i64 0
%62 = call i32 (i8*, ...) bitcast (i32 (...)* @atof to i32 (i8*, ...)*)(i8* %61)
%63 = call i32 (%struct.icom*, i8*, i8*, i32, i8*, ...) bitcast (i32 (...)* @imupdate_fitsf to i32 (%struct.icom*, i8*, i8*, i32, i8*, ...)*)(%struct.icom* %60, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.1, i64 0, i64 0), i32 %62, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0))
%64 = load %struct.icom*, %struct.icom** %5
%65 = getelementptr inbounds [80 x i8], [80 x i8]* %7, i64 0, i64 0
%66 = call i32 (i8*, ...) bitcast (i32 (...)* @atof to i32 (i8*, ...)*)(i8* %65)
%67 = call i32 (%struct.icom*, i8*, i8*, i32, i8*, ...) bitcast (i32 (...)* @imupdate_fitsf to i32 (%struct.icom*, i8*, i8*, i32, i8*, ...)*)(%struct.icom* %64, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.3, i64 0, i64 0), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.1, i64 0, i64 0), i32 %66, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0))
%68 = load %struct.icom*, %struct.icom** %5
%69 = getelementptr inbounds [80 x i8], [80 x i8]* %12, i64 0, i64 0
%70 = call i32 (i8*, ...) bitcast (i32 (...)* @atof to i32 (i8*, ...)*)(i8* %69)
%71 = call i32 (%struct.icom*, i8*, i8*, i32, i8*, ...) bitcast (i32 (...)* @imupdate_fitsf to i32 (%struct.icom*, i8*, i8*, i32, i8*, ...)*)(%struct.icom* %68, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.4, i64 0, i64 0), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.5, i64 0, i64 0), i32 %70, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0))
%72 = load %struct.icom*, %struct.icom** %5
%73 = getelementptr inbounds [80 x i8], [80 x i8]* %13, i64 0, i64 0
%74 = call i32 (i8*, ...) bitcast (i32 (...)* @atof to i32 (i8*, ...)*)(i8* %73)
%75 = call i32 (%struct.icom*, i8*, i8*, i32, ...) bitcast (i32 (...)* @imrep_fitsf to i32 (%struct.icom*, i8*, i8*, i32, ...)*)(%struct.icom* %72, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.6, i64 0, i64 0), i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.7, i64 0, i64 0), i32 %74)
%76 = icmp eq i32 %75, 0
br i1 %76, label %77, label %82
77: ; preds = %59
%78 = load %struct.icom*, %struct.icom** %5
%79 = getelementptr inbounds [80 x i8], [80 x i8]* %13, i64 0, i64 0
%80 = call i32 (i8*, ...) bitcast (i32 (...)* @atof to i32 (i8*, ...)*)(i8* %79)
%81 = call i32 (%struct.icom*, i8*, i8*, i32, i8*, ...) bitcast (i32 (...)* @imupdate_fitsf to i32 (%struct.icom*, i8*, i8*, i32, i8*, ...)*)(%struct.icom* %78, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.8, i64 0, i64 0), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.5, i64 0, i64 0), i32 %80, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0))
br label %82
82: ; preds = %77, %59
%83 = getelementptr inbounds [80 x i8], [80 x i8]* %10, i64 0, i64 0
%84 = call i32 (i8*, ...) bitcast (i32 (...)* @atof to i32 (i8*, ...)*)(i8* %83)
%85 = icmp ne i32 %84, 0
br i1 %85, label %86, label %91
86: ; preds = %82
%87 = load %struct.icom*, %struct.icom** %5
%88 = getelementptr inbounds [80 x i8], [80 x i8]* %10, i64 0, i64 0
%89 = call i32 (i8*, ...) bitcast (i32 (...)* @atof to i32 (i8*, ...)*)(i8* %88)
%90 = call i32 (%struct.icom*, i8*, i8*, i32, i8*, ...) bitcast (i32 (...)* @imupdate_fitsf to i32 (%struct.icom*, i8*, i8*, i32, i8*, ...)*)(%struct.icom* %87, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.9, i64 0, i64 0), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.1, i64 0, i64 0), i32 %89, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0))
br label %91
91: ; preds = %86, %82
%92 = getelementptr inbounds [80 x i8], [80 x i8]* %11, i64 0, i64 0
%93 = call i32 (i8*, ...) bitcast (i32 (...)* @atof to i32 (i8*, ...)*)(i8* %92)
%94 = icmp ne i32 %93, 0
br i1 %94, label %95, label %100
95: ; preds = %91
%96 = load %struct.icom*, %struct.icom** %5
%97 = getelementptr inbounds [80 x i8], [80 x i8]* %11, i64 0, i64 0
%98 = call i32 (i8*, ...) bitcast (i32 (...)* @atof to i32 (i8*, ...)*)(i8* %97)
%99 = call i32 (%struct.icom*, i8*, i8*, i32, i8*, ...) bitcast (i32 (...)* @imupdate_fitsf to i32 (%struct.icom*, i8*, i8*, i32, i8*, ...)*)(%struct.icom* %96, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.1, i64 0, i64 0), i32 %98, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0))
br label %100
100: ; preds = %95, %91
%101 = getelementptr inbounds [80 x i8], [80 x i8]* %14, i64 0, i64 0
%102 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.11, i64 0, i64 0), i8* %101)
%103 = getelementptr inbounds [80 x i8], [80 x i8]* %16, i64 0, i64 0
%104 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.12, i64 0, i64 0), i8* %103)
%105 = load %struct.icom*, %struct.icom** %5
%106 = call i32 (%struct.icom*, i8*, i8*, ...) bitcast (i32 (...)* @imupdate_fitsf to i32 (%struct.icom*, i8*, i8*, ...)*)(%struct.icom* %105, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.13, i64 0, i64 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.14, i64 0, i64 0))
%107 = load %struct.icom*, %struct.icom** %5
%108 = call i32 (%struct.icom*, i8*, i8*, ...) bitcast (i32 (...)* @imupdate_fitsf to i32 (%struct.icom*, i8*, i8*, ...)*)(%struct.icom* %107, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.15, i64 0, i64 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.16, i64 0, i64 0))
%109 = load %struct.icom*, %struct.icom** %5
%110 = getelementptr inbounds [80 x i8], [80 x i8]* %16, i64 0, i64 0
%111 = call i32 (%struct.icom*, i8*, i8*, i8*, ...) bitcast (i32 (...)* @imupdate_fitsf to i32 (%struct.icom*, i8*, i8*, i8*, ...)*)(%struct.icom* %109, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.17, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.18, i64 0, i64 0), i8* %110)
%112 = load %struct.icom*, %struct.icom** %5
%113 = getelementptr inbounds [80 x i8], [80 x i8]* %17, i64 0, i64 0
%114 = call i32 (%struct.icom*, i8*, i8*, i8*, ...) bitcast (i32 (...)* @imupdate_fitsf to i32 (%struct.icom*, i8*, i8*, i8*, ...)*)(%struct.icom* %112, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.19, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.18, i64 0, i64 0), i8* %113)
%115 = load %struct.icom*, %struct.icom** %5
%116 = getelementptr inbounds [80 x i8], [80 x i8]* %18, i64 0, i64 0
%117 = call i32 (i8*, ...) bitcast (i32 (...)* @atof to i32 (i8*, ...)*)(i8* %116)
%118 = call i32 (%struct.icom*, i8*, i8*, i32, i8*, ...) bitcast (i32 (...)* @imupdate_fitsf to i32 (%struct.icom*, i8*, i8*, i32, i8*, ...)*)(%struct.icom* %115, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.20, i64 0, i64 0), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.1, i64 0, i64 0), i32 %117, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0))
%119 = load %struct.icom*, %struct.icom** %5
%120 = getelementptr inbounds [80 x i8], [80 x i8]* %19, i64 0, i64 0
%121 = call i32 (i8*, ...) bitcast (i32 (...)* @atof to i32 (i8*, ...)*)(i8* %120)
%122 = call i32 (%struct.icom*, i8*, i8*, i32, i8*, ...) bitcast (i32 (...)* @imupdate_fitsf to i32 (%struct.icom*, i8*, i8*, i32, i8*, ...)*)(%struct.icom* %119, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.21, i64 0, i64 0), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.1, i64 0, i64 0), i32 %121, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0))
%123 = load %struct.icom*, %struct.icom** %5
%124 = getelementptr inbounds [80 x i8], [80 x i8]* %20, i64 0, i64 0
%125 = call i32 (i8*, ...) bitcast (i32 (...)* @atof to i32 (i8*, ...)*)(i8* %124)
%126 = call i32 (%struct.icom*, i8*, i8*, i32, i8*, ...) bitcast (i32 (...)* @imupdate_fitsf to i32 (%struct.icom*, i8*, i8*, i32, i8*, ...)*)(%struct.icom* %123, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.22, i64 0, i64 0), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.1, i64 0, i64 0), i32 %125, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0))
%127 = load %struct.icom*, %struct.icom** %5
%128 = getelementptr inbounds [80 x i8], [80 x i8]* %21, i64 0, i64 0
%129 = call i32 (i8*, ...) bitcast (i32 (...)* @atof to i32 (i8*, ...)*)(i8* %128)
%130 = call i32 (%struct.icom*, i8*, i8*, i32, i8*, ...) bitcast (i32 (...)* @imupdate_fitsf to i32 (%struct.icom*, i8*, i8*, i32, i8*, ...)*)(%struct.icom* %127, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.23, i64 0, i64 0), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.1, i64 0, i64 0), i32 %129, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0))
%131 = load %struct.icom*, %struct.icom** %5
%132 = getelementptr inbounds [80 x i8], [80 x i8]* %8, i64 0, i64 0
%133 = call i32 (i8*, ...) bitcast (i32 (...)* @atof to i32 (i8*, ...)*)(i8* %132)
%134 = call i32 (%struct.icom*, i8*, i8*, i32, i8*, ...) bitcast (i32 (...)* @imupdate_fitsf to i32 (%struct.icom*, i8*, i8*, i32, i8*, ...)*)(%struct.icom* %131, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.24, i64 0, i64 0), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.5, i64 0, i64 0), i32 %133, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0))
%135 = load %struct.icom*, %struct.icom** %5
%136 = getelementptr inbounds [80 x i8], [80 x i8]* %9, i64 0, i64 0
%137 = call i32 (i8*, ...) bitcast (i32 (...)* @atof to i32 (i8*, ...)*)(i8* %136)
%138 = call i32 (%struct.icom*, i8*, i8*, i32, i8*, ...) bitcast (i32 (...)* @imupdate_fitsf to i32 (%struct.icom*, i8*, i8*, i32, i8*, ...)*)(%struct.icom* %135, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.25, i64 0, i64 0), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.5, i64 0, i64 0), i32 %137, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0))
store i32 1, i32* %3
br label %140
139: ; preds = %2
store i32 0, i32* %3
br label %140
140: ; preds = %139, %100
%141 = load i32, i32* %3
ret i32 %141
}

LLVM IR (-O2):
%struct.icom = type opaque
@__const.imc_copyWCS.ctype1 = [80 x i8] c"RA---TAN\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00"
@__const.imc_copyWCS.ctype2 = [80 x i8] c"DEC--TAN\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00"
@.str = [7 x i8] c"CRVAL1\00"
@.str.1 = [18 x i8] c"%20.8f / %-47.47s\00"
@.str.2 = [1 x i8] zeroinitializer
@.str.3 = [7 x i8] c"CRVAL2\00"
@.str.4 = [8 x i8] c"EQUINOX\00"
@.str.5 = [18 x i8] c"%20.1f / %-47.47s\00"
@.str.6 = [9 x i8] c"LONGPOLE\00"
@.str.7 = [19 x i8] c"LONPOLE = %20.1f /\00"
@.str.8 = [8 x i8] c"LONPOLE\00"
@.str.9 = [7 x i8] c"CDELT1\00"
@.str.10 = [7 x i8] c"CDELT2\00"
@.str.11 = [17 x i8] c"debug:ctype1 %s\0A\00"
@.str.12 = [17 x i8] c"debug:cunit1 %s\0A\00"
@.str.13 = [7 x i8] c"CTYPE1\00"
@.str.14 = [9 x i8] c"RA---TAN\00"
@.str.15 = [7 x i8] c"CTYPE2\00"
@.str.16 = [9 x i8] c"DEC--TAN\00"
@.str.17 = [7 x i8] c"CUNIT1\00"
@.str.18 = [7 x i8] c"'%-8s'\00"
@.str.19 = [7 x i8] c"CUNIT2\00"
@.str.20 = [6 x i8] c"CD1_1\00"
@.str.21 = [6 x i8] c"CD1_2\00"
@.str.22 = [6 x i8] c"CD2_1\00"
@.str.23 = [6 x i8] c"CD2_2\00"
@.str.24 = [7 x i8] c"CRPIX1\00"
@.str.25 = [7 x i8] c"CRPIX2\00"
define i32 @imc_copyWCS(%struct.icom* %0, %struct.icom* %1) {
%3 = alloca [80 x i8]
%4 = alloca [80 x i8]
%5 = alloca [80 x i8]
%6 = alloca [80 x i8]
%7 = alloca [80 x i8]
%8 = alloca [80 x i8]
%9 = alloca [80 x i8]
%10 = alloca [80 x i8]
%11 = alloca [80 x i8]
%12 = alloca [80 x i8]
%13 = alloca [80 x i8]
%14 = alloca [80 x i8]
%15 = alloca [80 x i8]
%16 = alloca [80 x i8]
%17 = alloca [80 x i8]
%18 = alloca [80 x i8]
%19 = getelementptr inbounds [80 x i8], [80 x i8]* %3, i64 0, i64 0
%20 = getelementptr inbounds [80 x i8], [80 x i8]* %4, i64 0, i64 0
%21 = getelementptr inbounds [80 x i8], [80 x i8]* %5, i64 0, i64 0
%22 = getelementptr inbounds [80 x i8], [80 x i8]* %6, i64 0, i64 0
%23 = getelementptr inbounds [80 x i8], [80 x i8]* %7, i64 0, i64 0
%24 = getelementptr inbounds [80 x i8], [80 x i8]* %8, i64 0, i64 0
%25 = getelementptr inbounds [80 x i8], [80 x i8]* %9, i64 0, i64 0
%26 = getelementptr inbounds [80 x i8], [80 x i8]* %10, i64 0, i64 0
%27 = getelementptr inbounds [80 x i8], [80 x i8]* %11, i64 0, i64 0
%28 = getelementptr inbounds [80 x i8], [80 x i8]* %12, i64 0, i64 0
%29 = getelementptr inbounds [80 x i8], [80 x i8]* %13, i64 0, i64 0
store i8 100, i8* %29
%30 = getelementptr inbounds [80 x i8], [80 x i8]* %13, i64 0, i64 1
store i8 101, i8* %30
%31 = getelementptr inbounds [80 x i8], [80 x i8]* %13, i64 0, i64 2
store i8 103, i8* %31
%32 = getelementptr inbounds [80 x i8], [80 x i8]* %13, i64 0, i64 3
store i8 114, i8* %32
%33 = getelementptr inbounds [80 x i8], [80 x i8]* %13, i64 0, i64 4
store i8 101, i8* %33
%34 = getelementptr inbounds [80 x i8], [80 x i8]* %13, i64 0, i64 5
store i8 101, i8* %34
%35 = getelementptr inbounds [80 x i8], [80 x i8]* %14, i64 0, i64 0
store i8 100, i8* %35
%36 = getelementptr inbounds [80 x i8], [80 x i8]* %14, i64 0, i64 1
store i8 101, i8* %36
%37 = getelementptr inbounds [80 x i8], [80 x i8]* %14, i64 0, i64 2
store i8 103, i8* %37
%38 = getelementptr inbounds [80 x i8], [80 x i8]* %14, i64 0, i64 3
store i8 114, i8* %38
%39 = getelementptr inbounds [80 x i8], [80 x i8]* %14, i64 0, i64 4
store i8 101, i8* %39
%40 = getelementptr inbounds [80 x i8], [80 x i8]* %14, i64 0, i64 5
store i8 101, i8* %40
%41 = getelementptr inbounds [80 x i8], [80 x i8]* %15, i64 0, i64 0
%42 = getelementptr inbounds [80 x i8], [80 x i8]* %16, i64 0, i64 0
%43 = getelementptr inbounds [80 x i8], [80 x i8]* %17, i64 0, i64 0
%44 = getelementptr inbounds [80 x i8], [80 x i8]* %18, i64 0, i64 0
%45 = call i32 (%struct.icom*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, ...) bitcast (i32 (...)* @imc_getWCS to i32 (%struct.icom*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, ...)*)(%struct.icom* %0, i8* %19, i8* %20, i8* %25, i8* %23, i8* %24, i8* %26, i8* %27, i8* %28, i8* %29, i8* %35, i8* %21, i8* %22, i8* %41, i8* %42, i8* %43, i8* %44)
%46 = icmp eq i32 %45, 1
br i1 %46, label %47, label %91
47: ; preds = %2
%48 = call i32 (i8*, ...) bitcast (i32 (...)* @atof to i32 (i8*, ...)*)(i8* %19)
%49 = call i32 (%struct.icom*, i8*, i8*, i32, i8*, ...) bitcast (i32 (...)* @imupdate_fitsf to i32 (%struct.icom*, i8*, i8*, i32, i8*, ...)*)(%struct.icom* %1, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.1, i64 0, i64 0), i32 %48, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0))
%50 = call i32 (i8*, ...) bitcast (i32 (...)* @atof to i32 (i8*, ...)*)(i8* %20)
%51 = call i32 (%struct.icom*, i8*, i8*, i32, i8*, ...) bitcast (i32 (...)* @imupdate_fitsf to i32 (%struct.icom*, i8*, i8*, i32, i8*, ...)*)(%struct.icom* %1, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.3, i64 0, i64 0), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.1, i64 0, i64 0), i32 %50, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0))
%52 = call i32 (i8*, ...) bitcast (i32 (...)* @atof to i32 (i8*, ...)*)(i8* %25)
%53 = call i32 (%struct.icom*, i8*, i8*, i32, i8*, ...) bitcast (i32 (...)* @imupdate_fitsf to i32 (%struct.icom*, i8*, i8*, i32, i8*, ...)*)(%struct.icom* %1, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.4, i64 0, i64 0), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.5, i64 0, i64 0), i32 %52, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0))
%54 = call i32 (i8*, ...) bitcast (i32 (...)* @atof to i32 (i8*, ...)*)(i8* %26)
%55 = call i32 (%struct.icom*, i8*, i8*, i32, ...) bitcast (i32 (...)* @imrep_fitsf to i32 (%struct.icom*, i8*, i8*, i32, ...)*)(%struct.icom* %1, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.6, i64 0, i64 0), i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.7, i64 0, i64 0), i32 %54)
%56 = icmp eq i32 %55, 0
br i1 %56, label %57, label %60
57: ; preds = %47
%58 = call i32 (i8*, ...) bitcast (i32 (...)* @atof to i32 (i8*, ...)*)(i8* %26)
%59 = call i32 (%struct.icom*, i8*, i8*, i32, i8*, ...) bitcast (i32 (...)* @imupdate_fitsf to i32 (%struct.icom*, i8*, i8*, i32, i8*, ...)*)(%struct.icom* %1, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.8, i64 0, i64 0), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.5, i64 0, i64 0), i32 %58, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0))
br label %60
60: ; preds = %57, %47
%61 = call i32 (i8*, ...) bitcast (i32 (...)* @atof to i32 (i8*, ...)*)(i8* %23)
%62 = icmp eq i32 %61, 0
br i1 %62, label %66, label %63
63: ; preds = %60
%64 = call i32 (i8*, ...) bitcast (i32 (...)* @atof to i32 (i8*, ...)*)(i8* %23)
%65 = call i32 (%struct.icom*, i8*, i8*, i32, i8*, ...) bitcast (i32 (...)* @imupdate_fitsf to i32 (%struct.icom*, i8*, i8*, i32, i8*, ...)*)(%struct.icom* %1, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.9, i64 0, i64 0), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.1, i64 0, i64 0), i32 %64, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0))
br label %66
66: ; preds = %63, %60
%67 = call i32 (i8*, ...) bitcast (i32 (...)* @atof to i32 (i8*, ...)*)(i8* %24)
%68 = icmp eq i32 %67, 0
br i1 %68, label %72, label %69
69: ; preds = %66
%70 = call i32 (i8*, ...) bitcast (i32 (...)* @atof to i32 (i8*, ...)*)(i8* %24)
%71 = call i32 (%struct.icom*, i8*, i8*, i32, i8*, ...) bitcast (i32 (...)* @imupdate_fitsf to i32 (%struct.icom*, i8*, i8*, i32, i8*, ...)*)(%struct.icom* %1, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.1, i64 0, i64 0), i32 %70, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0))
br label %72
72: ; preds = %69, %66
%73 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @.str.11, i64 0, i64 0), i8* %27)
%74 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @.str.12, i64 0, i64 0), i8* %29)
%75 = call i32 (%struct.icom*, i8*, i8*, ...) bitcast (i32 (...)* @imupdate_fitsf to i32 (%struct.icom*, i8*, i8*, ...)*)(%struct.icom* %1, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.13, i64 0, i64 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.14, i64 0, i64 0))
%76 = call i32 (%struct.icom*, i8*, i8*, ...) bitcast (i32 (...)* @imupdate_fitsf to i32 (%struct.icom*, i8*, i8*, ...)*)(%struct.icom* %1, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.15, i64 0, i64 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.16, i64 0, i64 0))
%77 = call i32 (%struct.icom*, i8*, i8*, i8*, ...) bitcast (i32 (...)* @imupdate_fitsf to i32 (%struct.icom*, i8*, i8*, i8*, ...)*)(%struct.icom* %1, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.17, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.18, i64 0, i64 0), i8* %29)
%78 = call i32 (%struct.icom*, i8*, i8*, i8*, ...) bitcast (i32 (...)* @imupdate_fitsf to i32 (%struct.icom*, i8*, i8*, i8*, ...)*)(%struct.icom* %1, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.19, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.18, i64 0, i64 0), i8* %35)
%79 = call i32 (i8*, ...) bitcast (i32 (...)* @atof to i32 (i8*, ...)*)(i8* %41)
%80 = call i32 (%struct.icom*, i8*, i8*, i32, i8*, ...) bitcast (i32 (...)* @imupdate_fitsf to i32 (%struct.icom*, i8*, i8*, i32, i8*, ...)*)(%struct.icom* %1, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.20, i64 0, i64 0), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.1, i64 0, i64 0), i32 %79, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0))
%81 = call i32 (i8*, ...) bitcast (i32 (...)* @atof to i32 (i8*, ...)*)(i8* %42)
%82 = call i32 (%struct.icom*, i8*, i8*, i32, i8*, ...) bitcast (i32 (...)* @imupdate_fitsf to i32 (%struct.icom*, i8*, i8*, i32, i8*, ...)*)(%struct.icom* %1, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.21, i64 0, i64 0), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.1, i64 0, i64 0), i32 %81, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0))
%83 = call i32 (i8*, ...) bitcast (i32 (...)* @atof to i32 (i8*, ...)*)(i8* %43)
%84 = call i32 (%struct.icom*, i8*, i8*, i32, i8*, ...) bitcast (i32 (...)* @imupdate_fitsf to i32 (%struct.icom*, i8*, i8*, i32, i8*, ...)*)(%struct.icom* %1, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.22, i64 0, i64 0), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.1, i64 0, i64 0), i32 %83, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0))
%85 = call i32 (i8*, ...) bitcast (i32 (...)* @atof to i32 (i8*, ...)*)(i8* %44)
%86 = call i32 (%struct.icom*, i8*, i8*, i32, i8*, ...) bitcast (i32 (...)* @imupdate_fitsf to i32 (%struct.icom*, i8*, i8*, i32, i8*, ...)*)(%struct.icom* %1, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.23, i64 0, i64 0), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.1, i64 0, i64 0), i32 %85, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0))
%87 = call i32 (i8*, ...) bitcast (i32 (...)* @atof to i32 (i8*, ...)*)(i8* %21)
%88 = call i32 (%struct.icom*, i8*, i8*, i32, i8*, ...) bitcast (i32 (...)* @imupdate_fitsf to i32 (%struct.icom*, i8*, i8*, i32, i8*, ...)*)(%struct.icom* %1, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.24, i64 0, i64 0), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.5, i64 0, i64 0), i32 %87, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0))
%89 = call i32 (i8*, ...) bitcast (i32 (...)* @atof to i32 (i8*, ...)*)(i8* %22)
%90 = call i32 (%struct.icom*, i8*, i8*, i32, i8*, ...) bitcast (i32 (...)* @imupdate_fitsf to i32 (%struct.icom*, i8*, i8*, i32, i8*, ...)*)(%struct.icom* %1, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.25, i64 0, i64 0), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.5, i64 0, i64 0), i32 %89, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0))
br label %91
91: ; preds = %2, %72
%92 = phi i32 [ 1, %72 ], [ 0, %2 ]
ret i32 %92
}