void field2regular(int gridID1, int gridID2, double missval, double *array,
                   int nmiss) {
  int nx = 0, ny, np;
  int gridtype;
  int lmiss, lperio, lveggy;
  int iret;
  int *rowlon;
  double xfirstandlast[2];
  double xfirst, xlast;
  gridtype = gridInqType(gridID1);
  if (gridtype != 3)
    Error_(__func__, "Not a reduced gaussian grid!");
  lmiss = nmiss > 0;
  lperio = 1;
  lveggy = 0;
  ny = gridInqYsize(gridID1);
  np = gridInqNP(gridID1);
  rowlon = (int *)Malloc(
      __func__,
      "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
      "2022-01-22/02-19-57/repos/AZed/cdo/refs/heads/master/src/grid.c",
      817, (ny * sizeof(int)));
  gridInqRowlon(gridID1, rowlon);
  xfirstandlast[0] = 0.;
  xfirstandlast[1] = 0.;
  gridInqXvals(gridID1, xfirstandlast);
  xfirst = xfirstandlast[0];
  xlast = xfirstandlast[1];
  if (fabs(xfirst) > 0 ||
      (np > 0 && fabs(xlast - (360.0 - 90.0 / np)) > 90.0 / np)) {
    nx = qu2reg_subarea(gridInqSize(gridID1), np, xfirst, xlast, array, rowlon,
                        ny, missval, &iret, lmiss, lperio, lveggy);
  } else {
    nx = 2 * ny;
    (void)qu2reg3_double(array, rowlon, ny, nx, missval, &iret, lmiss, lperio,
                         lveggy);
  }
  if (gridInqSize(gridID2) != nx * ny)
    Error_(__func__, "Gridsize differ!");
  Free(__func__,
       "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
       "2022-01-22/02-19-57/repos/AZed/cdo/refs/heads/master/src/grid.c",
       838, (rowlon));
}


x86 assembly (clang, -O0):
<field2regular>:
push   %rbp
mov    %rsp,%rbp
sub    $0x90,%rsp
mov    %edi,-0x4(%rbp)
mov    %esi,-0x8(%rbp)
movsd  %xmm0,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %ecx,-0x1c(%rbp)
movl   $0x0,-0x20(%rbp)
mov    -0x4(%rbp),%edi
mov    $0x0,%al
call   10b0 <gridInqType@plt>
mov    %eax,-0x2c(%rbp)
cmpl   $0x3,-0x2c(%rbp)
je     1200 <field2regular+0x50>
lea    0xe2e(%rip),%rdi
lea    0xe35(%rip),%rsi
mov    $0x0,%al
call   1080 <Error_@plt>
cmpl   $0x0,-0x1c(%rbp)
setg   %al
and    $0x1,%al
movzbl %al,%eax
mov    %eax,-0x30(%rbp)
movl   $0x1,-0x34(%rbp)
movl   $0x0,-0x38(%rbp)
mov    -0x4(%rbp),%edi
mov    $0x0,%al
call   1070 <gridInqYsize@plt>
mov    %eax,-0x24(%rbp)
mov    -0x4(%rbp),%edi
mov    $0x0,%al
call   10d0 <gridInqNP@plt>
mov    %eax,-0x28(%rbp)
movslq -0x24(%rbp),%rcx
shl    $0x2,%rcx
lea    0xdda(%rip),%rdi
lea    0xdfe(%rip),%rsi
mov    $0x331,%edx
mov    $0x0,%al
call   1030 <Malloc@plt>
cltq
mov    %rax,-0x48(%rbp)
mov    -0x4(%rbp),%edi
mov    -0x48(%rbp),%rsi
mov    $0x0,%al
call   1040 <gridInqRowlon@plt>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x60(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    -0x4(%rbp),%edi
lea    -0x60(%rbp),%rsi
mov    $0x0,%al
call   1090 <gridInqXvals@plt>
movsd  -0x60(%rbp),%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x58(%rbp),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x68(%rbp),%xmm0
movaps 0xd55(%rip),%xmm1
pand   %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
ja     1312 <field2regular+0x162>
cmpl   $0x0,-0x28(%rbp)
jle    1367 <field2regular+0x1b7>
movsd  -0x70(%rbp),%xmm0
cvtsi2sdl -0x28(%rbp),%xmm1
movsd  0xd38(%rip),%xmm2
divsd  %xmm1,%xmm2
movsd  0xd34(%rip),%xmm1
subsd  %xmm2,%xmm1
subsd  %xmm1,%xmm0
movaps 0xd0d(%rip),%xmm1
pand   %xmm1,%xmm0
cvtsi2sdl -0x28(%rbp),%xmm2
movsd  0xd0c(%rip),%xmm1
divsd  %xmm2,%xmm1
ucomisd %xmm1,%xmm0
jbe    1367 <field2regular+0x1b7>
mov    -0x4(%rbp),%edi
mov    $0x0,%al
call   10c0 <gridInqSize@plt>
mov    %eax,%edi
mov    -0x28(%rbp),%esi
movsd  -0x68(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm1
mov    -0x18(%rbp),%rdx
mov    -0x48(%rbp),%rcx
mov    -0x24(%rbp),%r8d
movsd  -0x10(%rbp),%xmm2
mov    -0x30(%rbp),%r11d
mov    -0x34(%rbp),%r10d
mov    -0x38(%rbp),%eax
lea    -0x3c(%rbp),%r9
mov    %r11d,(%rsp)
mov    %r10d,0x8(%rsp)
mov    %eax,0x10(%rsp)
mov    $0x3,%al
call   1050 <qu2reg_subarea@plt>
mov    %eax,-0x20(%rbp)
jmp    13a1 <field2regular+0x1f1>
mov    -0x24(%rbp),%eax
shl    $0x1,%eax
mov    %eax,-0x20(%rbp)
mov    -0x18(%rbp),%rdi
mov    -0x48(%rbp),%rsi
mov    -0x24(%rbp),%edx
mov    -0x20(%rbp),%ecx
movsd  -0x10(%rbp),%xmm0
mov    -0x30(%rbp),%r9d
mov    -0x34(%rbp),%r10d
mov    -0x38(%rbp),%eax
lea    -0x3c(%rbp),%r8
mov    %r10d,(%rsp)
mov    %eax,0x8(%rsp)
mov    $0x1,%al
call   1060 <qu2reg3_double@plt>
mov    -0x8(%rbp),%edi
mov    $0x0,%al
call   10c0 <gridInqSize@plt>
mov    -0x20(%rbp),%ecx
imul   -0x24(%rbp),%ecx
cmp    %ecx,%eax
je     13cf <field2regular+0x21f>
lea    0xc5f(%rip),%rdi
lea    0xd03(%rip),%rsi
mov    $0x0,%al
call   1080 <Error_@plt>
mov    -0x48(%rbp),%rcx
lea    0xc46(%rip),%rdi
lea    0xc6a(%rip),%rsi
mov    $0x346,%edx
mov    $0x0,%al
call   10a0 <Free@plt>
add    $0x90,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<field2regular>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x48,%rsp
mov    %ecx,%ebx
mov    %rdx,0x10(%rsp)
movsd  %xmm0,0x18(%rsp)
mov    %esi,0x8(%rsp)
mov    %edi,%ebp
xor    %eax,%eax
call   10b0 <gridInqType@plt>
cmp    $0x3,%eax
je     11f2 <field2regular+0x42>
lea    0xe3c(%rip),%rdi
lea    0xe43(%rip),%rsi
xor    %eax,%eax
call   1080 <Error_@plt>
xor    %r15d,%r15d
test   %ebx,%ebx
setg   %r15b
mov    %ebp,%edi
xor    %eax,%eax
call   1070 <gridInqYsize@plt>
mov    %eax,%r13d
mov    %ebp,%edi
xor    %eax,%eax
call   10d0 <gridInqNP@plt>
mov    %eax,%r14d
movslq %r13d,%rcx
shl    $0x2,%rcx
lea    0xdff(%rip),%rdi
lea    0xe23(%rip),%rsi
mov    $0x331,%edx
xor    %eax,%eax
call   1030 <Malloc@plt>
movslq %eax,%r12
mov    %ebp,%edi
mov    %r12,%rsi
xor    %eax,%eax
call   1040 <gridInqRowlon@plt>
xorpd  %xmm0,%xmm0
movapd %xmm0,0x20(%rsp)
lea    0x20(%rsp),%rsi
mov    %ebp,%edi
xor    %eax,%eax
call   1090 <gridInqXvals@plt>
movsd  0x20(%rsp),%xmm3
movsd  0x28(%rsp),%xmm4
xorpd  %xmm0,%xmm0
ucomisd %xmm3,%xmm0
je     12c6 <field2regular+0x116>
mov    %ebp,%edi
xor    %eax,%eax
movsd  %xmm3,0x38(%rsp)
movsd  %xmm4,0x40(%rsp)
call   10c0 <gridInqSize@plt>
sub    $0x8,%rsp
lea    0x14(%rsp),%r9
mov    %eax,%edi
mov    %r14d,%esi
movsd  0x40(%rsp),%xmm0
movsd  0x48(%rsp),%xmm1
mov    0x18(%rsp),%rdx
mov    %r12,%rcx
mov    %r13d,%r8d
movsd  0x20(%rsp),%xmm2
mov    $0x3,%al
push   $0x0
push   $0x1
push   %r15
call   1050 <qu2reg_subarea@plt>
add    $0x20,%rsp
mov    %eax,%ebp
jmp    1334 <field2regular+0x184>
test   %r14d,%r14d
jle    1305 <field2regular+0x155>
xorps  %xmm0,%xmm0
cvtsi2sd %r14d,%xmm0
movsd  0xd25(%rip),%xmm1
divsd  %xmm0,%xmm1
movsd  0xd21(%rip),%xmm0
subsd  %xmm1,%xmm0
movapd %xmm4,%xmm2
subsd  %xmm0,%xmm2
andpd  0xd15(%rip),%xmm2
ucomisd %xmm1,%xmm2
ja     1271 <field2regular+0xc1>
lea    0x0(%r13,%r13,1),%ebp
lea    0xc(%rsp),%r8
mov    0x10(%rsp),%rdi
mov    %r12,%rsi
mov    %r13d,%edx
mov    %ebp,%ecx
movsd  0x18(%rsp),%xmm0
mov    %r15d,%r9d
mov    $0x1,%al
push   $0x0
push   $0x1
call   1060 <qu2reg3_double@plt>
add    $0x10,%rsp
mov    0x8(%rsp),%edi
xor    %eax,%eax
call   10c0 <gridInqSize@plt>
imul   %r13d,%ebp
cmp    %ebp,%eax
je     135c <field2regular+0x1ac>
lea    0xcd2(%rip),%rdi
lea    0xd76(%rip),%rsi
xor    %eax,%eax
call   1080 <Error_@plt>
lea    0xcbd(%rip),%rdi
lea    0xce1(%rip),%rsi
mov    $0x346,%edx
mov    %r12,%rcx
xor    %eax,%eax
call   10a0 <Free@plt>
add    $0x48,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@__func__.field2regular = [14 x i8] c"field2regular\00"
@.str = [29 x i8] c"Not a reduced gaussian grid!\00"
@.str.1 = [128 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/AZed/cdo/refs/heads/master/src/grid.c\00"
@.str.2 = [17 x i8] c"Gridsize differ!\00"
define void @field2regular(i32 %0, i32 %1, double %2, double* %3, i32 %4) {
%6 = alloca i32
%7 = alloca i32
%8 = alloca double
%9 = alloca double*
%10 = alloca i32
%11 = alloca i32
%12 = alloca i32
%13 = alloca i32
%14 = alloca i32
%15 = alloca i32
%16 = alloca i32
%17 = alloca i32
%18 = alloca i32
%19 = alloca i32*
%20 = alloca [2 x double]
%21 = alloca double
%22 = alloca double
store i32 %0, i32* %6
store i32 %1, i32* %7
store double %2, double* %8
store double* %3, double** %9
store i32 %4, i32* %10
store i32 0, i32* %11
%23 = load i32, i32* %6
%24 = call i32 (i32, ...) bitcast (i32 (...)* @gridInqType to i32 (i32, ...)*)(i32 %23)
store i32 %24, i32* %14
%25 = load i32, i32* %14
%26 = icmp ne i32 %25, 3
br i1 %26, label %27, label %29
27: ; preds = %5
%28 = call i32 (i8*, i8*, ...) bitcast (i32 (...)* @Error_ to i32 (i8*, i8*, ...)*)(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @__func__.field2regular, i64 0, i64 0), i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str, i64 0, i64 0))
br label %29
29: ; preds = %27, %5
%30 = load i32, i32* %10
%31 = icmp sgt i32 %30, 0
%32 = zext i1 %31 to i32
store i32 %32, i32* %15
store i32 1, i32* %16
store i32 0, i32* %17
%33 = load i32, i32* %6
%34 = call i32 (i32, ...) bitcast (i32 (...)* @gridInqYsize to i32 (i32, ...)*)(i32 %33)
store i32 %34, i32* %12
%35 = load i32, i32* %6
%36 = call i32 (i32, ...) bitcast (i32 (...)* @gridInqNP to i32 (i32, ...)*)(i32 %35)
store i32 %36, i32* %13
%37 = load i32, i32* %12
%38 = sext i32 %37 to i64
%39 = mul i64 %38, 4
%40 = call i32 (i8*, i8*, i32, i64, ...) bitcast (i32 (...)* @Malloc to i32 (i8*, i8*, i32, i64, ...)*)(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @__func__.field2regular, i64 0, i64 0), i8* getelementptr inbounds ([128 x i8], [128 x i8]* @.str.1, i64 0, i64 0), i32 817, i64 %39)
%41 = sext i32 %40 to i64
%42 = inttoptr i64 %41 to i32*
store i32* %42, i32** %19
%43 = load i32, i32* %6
%44 = load i32*, i32** %19
%45 = call i32 (i32, i32*, ...) bitcast (i32 (...)* @gridInqRowlon to i32 (i32, i32*, ...)*)(i32 %43, i32* %44)
%46 = getelementptr inbounds [2 x double], [2 x double]* %20, i64 0, i64 0
store double 0.000000e+00, double* %46
%47 = getelementptr inbounds [2 x double], [2 x double]* %20, i64 0, i64 1
store double 0.000000e+00, double* %47
%48 = load i32, i32* %6
%49 = getelementptr inbounds [2 x double], [2 x double]* %20, i64 0, i64 0
%50 = call i32 (i32, double*, ...) bitcast (i32 (...)* @gridInqXvals to i32 (i32, double*, ...)*)(i32 %48, double* %49)
%51 = getelementptr inbounds [2 x double], [2 x double]* %20, i64 0, i64 0
%52 = load double, double* %51
store double %52, double* %21
%53 = getelementptr inbounds [2 x double], [2 x double]* %20, i64 0, i64 1
%54 = load double, double* %53
store double %54, double* %22
%55 = load double, double* %21
%56 = call double @llvm.fabs.f64(double %55)
%57 = fcmp ogt double %56, 0.000000e+00
br i1 %57, label %73, label %58
58: ; preds = %29
%59 = load i32, i32* %13
%60 = icmp sgt i32 %59, 0
br i1 %60, label %61, label %87
61: ; preds = %58
%62 = load double, double* %22
%63 = load i32, i32* %13
%64 = sitofp i32 %63 to double
%65 = fdiv double 9.000000e+01, %64
%66 = fsub double 3.600000e+02, %65
%67 = fsub double %62, %66
%68 = call double @llvm.fabs.f64(double %67)
%69 = load i32, i32* %13
%70 = sitofp i32 %69 to double
%71 = fdiv double 9.000000e+01, %70
%72 = fcmp ogt double %68, %71
br i1 %72, label %73, label %87
73: ; preds = %61, %29
%74 = load i32, i32* %6
%75 = call i32 (i32, ...) bitcast (i32 (...)* @gridInqSize to i32 (i32, ...)*)(i32 %74)
%76 = load i32, i32* %13
%77 = load double, double* %21
%78 = load double, double* %22
%79 = load double*, double** %9
%80 = load i32*, i32** %19
%81 = load i32, i32* %12
%82 = load double, double* %8
%83 = load i32, i32* %15
%84 = load i32, i32* %16
%85 = load i32, i32* %17
%86 = call i32 (i32, i32, double, double, double*, i32*, i32, double, i32*, i32, i32, i32, ...) bitcast (i32 (...)* @qu2reg_subarea to i32 (i32, i32, double, double, double*, i32*, i32, double, i32*, i32, i32, i32, ...)*)(i32 %75, i32 %76, double %77, double %78, double* %79, i32* %80, i32 %81, double %82, i32* %18, i32 %83, i32 %84, i32 %85)
store i32 %86, i32* %11
br label %99
87: ; preds = %61, %58
%88 = load i32, i32* %12
%89 = mul nsw i32 2, %88
store i32 %89, i32* %11
%90 = load double*, double** %9
%91 = load i32*, i32** %19
%92 = load i32, i32* %12
%93 = load i32, i32* %11
%94 = load double, double* %8
%95 = load i32, i32* %15
%96 = load i32, i32* %16
%97 = load i32, i32* %17
%98 = call i32 (double*, i32*, i32, i32, double, i32*, i32, i32, i32, ...) bitcast (i32 (...)* @qu2reg3_double to i32 (double*, i32*, i32, i32, double, i32*, i32, i32, i32, ...)*)(double* %90, i32* %91, i32 %92, i32 %93, double %94, i32* %18, i32 %95, i32 %96, i32 %97)
br label %99
99: ; preds = %87, %73
%100 = load i32, i32* %7
%101 = call i32 (i32, ...) bitcast (i32 (...)* @gridInqSize to i32 (i32, ...)*)(i32 %100)
%102 = load i32, i32* %11
%103 = load i32, i32* %12
%104 = mul nsw i32 %102, %103
%105 = icmp ne i32 %101, %104
br i1 %105, label %106, label %108
106: ; preds = %99
%107 = call i32 (i8*, i8*, ...) bitcast (i32 (...)* @Error_ to i32 (i8*, i8*, ...)*)(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @__func__.field2regular, i64 0, i64 0), i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.2, i64 0, i64 0))
br label %108
108: ; preds = %106, %99
%109 = load i32*, i32** %19
%110 = call i32 (i8*, i8*, i32, i32*, ...) bitcast (i32 (...)* @Free to i32 (i8*, i8*, i32, i32*, ...)*)(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @__func__.field2regular, i64 0, i64 0), i8* getelementptr inbounds ([128 x i8], [128 x i8]* @.str.1, i64 0, i64 0), i32 838, i32* %109)
ret void
}

LLVM IR (-O2):
@__func__.field2regular = [14 x i8] c"field2regular\00"
@.str = [29 x i8] c"Not a reduced gaussian grid!\00"
@.str.1 = [128 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/AZed/cdo/refs/heads/master/src/grid.c\00"
@.str.2 = [17 x i8] c"Gridsize differ!\00"
define void @field2regular(i32 %0, i32 %1, double %2, double* %3, i32 %4) {
%6 = alloca i32
%7 = alloca [2 x double]
%8 = bitcast i32* %6 to i8*
%9 = bitcast [2 x double]* %7 to i8*
%10 = tail call i32 (i32, ...) bitcast (i32 (...)* @gridInqType to i32 (i32, ...)*)(i32 %0)
%11 = icmp eq i32 %10, 3
br i1 %11, label %14, label %12
12: ; preds = %5
%13 = tail call i32 (i8*, i8*, ...) bitcast (i32 (...)* @Error_ to i32 (i8*, i8*, ...)*)(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @__func__.field2regular, i64 0, i64 0), i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str, i64 0, i64 0))
br label %14
14: ; preds = %12, %5
%15 = icmp sgt i32 %4, 0
%16 = zext i1 %15 to i32
%17 = tail call i32 (i32, ...) bitcast (i32 (...)* @gridInqYsize to i32 (i32, ...)*)(i32 %0)
%18 = tail call i32 (i32, ...) bitcast (i32 (...)* @gridInqNP to i32 (i32, ...)*)(i32 %0)
%19 = sext i32 %17 to i64
%20 = shl nsw i64 %19, 2
%21 = tail call i32 (i8*, i8*, i32, i64, ...) bitcast (i32 (...)* @Malloc to i32 (i8*, i8*, i32, i64, ...)*)(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @__func__.field2regular, i64 0, i64 0), i8* getelementptr inbounds ([128 x i8], [128 x i8]* @.str.1, i64 0, i64 0), i32 817, i64 %20)
%22 = sext i32 %21 to i64
%23 = inttoptr i64 %22 to i32*
%24 = tail call i32 (i32, i32*, ...) bitcast (i32 (...)* @gridInqRowlon to i32 (i32, i32*, ...)*)(i32 %0, i32* %23)
%25 = getelementptr inbounds [2 x double], [2 x double]* %7, i64 0, i64 0
%26 = getelementptr inbounds [2 x double], [2 x double]* %7, i64 0, i64 1
%27 = bitcast [2 x double]* %7 to i8*
%28 = call i32 (i32, double*, ...) bitcast (i32 (...)* @gridInqXvals to i32 (i32, double*, ...)*)(i32 %0, double* %25)
%29 = load double, double* %25
%30 = load double, double* %26
%31 = fcmp ueq double %29, 0.000000e+00
br i1 %31, label %32, label %41
32: ; preds = %14
%33 = icmp sgt i32 %18, 0
br i1 %33, label %34, label %44
34: ; preds = %32
%35 = sitofp i32 %18 to double
%36 = fdiv double 9.000000e+01, %35
%37 = fsub double 3.600000e+02, %36
%38 = fsub double %30, %37
%39 = call double @llvm.fabs.f64(double %38)
%40 = fcmp ogt double %39, %36
br i1 %40, label %41, label %44
41: ; preds = %34, %14
%42 = call i32 (i32, ...) bitcast (i32 (...)* @gridInqSize to i32 (i32, ...)*)(i32 %0)
%43 = call i32 (i32, i32, double, double, double*, i32*, i32, double, i32*, i32, i32, i32, ...) bitcast (i32 (...)* @qu2reg_subarea to i32 (i32, i32, double, double, double*, i32*, i32, double, i32*, i32, i32, i32, ...)*)(i32 %42, i32 %18, double %29, double %30, double* %3, i32* %23, i32 %17, double %2, i32* %6, i32 %16, i32 1, i32 0)
br label %47
44: ; preds = %34, %32
%45 = shl nsw i32 %17, 1
%46 = call i32 (double*, i32*, i32, i32, double, i32*, i32, i32, i32, ...) bitcast (i32 (...)* @qu2reg3_double to i32 (double*, i32*, i32, i32, double, i32*, i32, i32, i32, ...)*)(double* %3, i32* %23, i32 %17, i32 %45, double %2, i32* %6, i32 %16, i32 1, i32 0)
br label %47
47: ; preds = %44, %41
%48 = phi i32 [ %43, %41 ], [ %45, %44 ]
%49 = call i32 (i32, ...) bitcast (i32 (...)* @gridInqSize to i32 (i32, ...)*)(i32 %1)
%50 = mul nsw i32 %48, %17
%51 = icmp eq i32 %49, %50
br i1 %51, label %54, label %52
52: ; preds = %47
%53 = call i32 (i8*, i8*, ...) bitcast (i32 (...)* @Error_ to i32 (i8*, i8*, ...)*)(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @__func__.field2regular, i64 0, i64 0), i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.2, i64 0, i64 0))
br label %54
54: ; preds = %52, %47
%55 = call i32 (i8*, i8*, i32, i32*, ...) bitcast (i32 (...)* @Free to i32 (i8*, i8*, i32, i32*, ...)*)(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @__func__.field2regular, i64 0, i64 0), i8* getelementptr inbounds ([128 x i8], [128 x i8]* @.str.1, i64 0, i64 0), i32 838, i32* %23)
ret void
}