#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 */

/* Variables and functions */
int /*<<< orphan*/ exit(int);
int /*<<< orphan*/ fprintf(int /*<<< orphan*/, char *, char *);
int /*<<< orphan*/ mcdis_multiline(int, double, double, double, double, double,
                                   double, double, double, double, double,
                                   double, double, double, double, double);
int /*<<< orphan*/ stderr;
scalar_t__ strcmp(char *, char *);
void mcdis_rectangle(char *plane, double x, double y, double z, double width,
                     double height) {
  if (strcmp("xy", plane) == 0) {
    mcdis_multiline(5, x - width / 2, y - height / 2, z, x + width / 2,
                    y - height / 2, z, x + width / 2, y + height / 2, z,
                    x - width / 2, y + height / 2, z, x - width / 2,
                    y - height / 2, z);
  } else if (strcmp("xz", plane) == 0) {
    mcdis_multiline(5, x - width / 2, y, z - height / 2, x + width / 2, y,
                    z - height / 2, x + width / 2, y, z + height / 2,
                    x - width / 2, y, z + height / 2, x - width / 2, y,
                    z - height / 2);
  } else if (strcmp("yz", plane) == 0) {
    mcdis_multiline(5, x, y - height / 2, z - width / 2, x, y - height / 2,
                    z + width / 2, x, y + height / 2, z + width / 2, x,
                    y + height / 2, z - width / 2, x, y - height / 2,
                    z - width / 2);
  } else {
    fprintf(stderr, "Error: Definition of plane %s unknown\n", plane);
    exit(1);
  }
}


x86 assembly (clang, -O0):
<mcdis_rectangle>:
push   %rbp
mov    %rsp,%rbp
sub    $0x80,%rsp
mov    %rdi,-0x8(%rbp)
movsd  %xmm0,-0x10(%rbp)
movsd  %xmm1,-0x18(%rbp)
movsd  %xmm2,-0x20(%rbp)
movsd  %xmm3,-0x28(%rbp)
movsd  %xmm4,-0x30(%rbp)
mov    -0x8(%rbp),%rsi
lea    0xe95(%rip),%rdi
call   1030 <strcmp@plt>
cmp    $0x0,%rax
jne    12fb <mcdis_rectangle+0x1bb>
movsd  -0x10(%rbp),%xmm0
movsd  -0x28(%rbp),%xmm1
movsd  0xe6c(%rip),%xmm2
divsd  %xmm2,%xmm1
subsd  %xmm1,%xmm0
movsd  -0x18(%rbp),%xmm1
movsd  -0x30(%rbp),%xmm2
movsd  0xe52(%rip),%xmm3
divsd  %xmm3,%xmm2
subsd  %xmm2,%xmm1
movsd  -0x20(%rbp),%xmm2
movsd  -0x10(%rbp),%xmm3
movsd  -0x28(%rbp),%xmm4
movsd  0xe33(%rip),%xmm5
divsd  %xmm5,%xmm4
addsd  %xmm4,%xmm3
movsd  -0x18(%rbp),%xmm4
movsd  -0x30(%rbp),%xmm5
movsd  0xe19(%rip),%xmm6
divsd  %xmm6,%xmm5
subsd  %xmm5,%xmm4
movsd  -0x20(%rbp),%xmm5
movsd  -0x10(%rbp),%xmm6
movsd  -0x28(%rbp),%xmm7
movsd  0xdf9(%rip),%xmm8
divsd  %xmm8,%xmm7
addsd  %xmm7,%xmm6
movsd  -0x18(%rbp),%xmm7
movsd  -0x30(%rbp),%xmm8
movsd  0xddc(%rip),%xmm9
divsd  %xmm9,%xmm8
addsd  %xmm8,%xmm7
movsd  -0x20(%rbp),%xmm14
movsd  -0x10(%rbp),%xmm13
movsd  -0x28(%rbp),%xmm8
movsd  0xdb7(%rip),%xmm9
divsd  %xmm9,%xmm8
subsd  %xmm8,%xmm13
movsd  -0x18(%rbp),%xmm12
movsd  -0x30(%rbp),%xmm8
movsd  0xd98(%rip),%xmm9
divsd  %xmm9,%xmm8
addsd  %xmm8,%xmm12
movsd  -0x20(%rbp),%xmm11
movsd  -0x10(%rbp),%xmm10
movsd  -0x28(%rbp),%xmm8
movsd  0xd73(%rip),%xmm9
divsd  %xmm9,%xmm8
subsd  %xmm8,%xmm10
movsd  -0x18(%rbp),%xmm9
movsd  -0x30(%rbp),%xmm8
movsd  0xd54(%rip),%xmm15
divsd  %xmm15,%xmm8
subsd  %xmm8,%xmm9
movsd  -0x20(%rbp),%xmm8
mov    $0x5,%edi
movsd  %xmm14,(%rsp)
movsd  %xmm13,0x8(%rsp)
movsd  %xmm12,0x10(%rsp)
movsd  %xmm11,0x18(%rsp)
movsd  %xmm10,0x20(%rsp)
movsd  %xmm9,0x28(%rsp)
movsd  %xmm8,0x30(%rsp)
call   1050 <mcdis_multiline@plt>
jmp    1656 <mcdis_rectangle+0x516>
mov    -0x8(%rbp),%rsi
lea    0xd05(%rip),%rdi
call   1030 <strcmp@plt>
cmp    $0x0,%rax
jne    1491 <mcdis_rectangle+0x351>
movsd  -0x10(%rbp),%xmm0
movsd  -0x28(%rbp),%xmm1
movsd  0xcd9(%rip),%xmm2
divsd  %xmm2,%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x18(%rbp),%xmm1
movsd  -0x20(%rbp),%xmm2
movsd  -0x30(%rbp),%xmm0
movsd  0xcb5(%rip),%xmm3
divsd  %xmm3,%xmm0
subsd  %xmm0,%xmm2
movsd  -0x10(%rbp),%xmm3
movsd  -0x28(%rbp),%xmm0
movsd  0xc9b(%rip),%xmm4
divsd  %xmm4,%xmm0
addsd  %xmm0,%xmm3
movsd  -0x18(%rbp),%xmm4
movsd  -0x20(%rbp),%xmm5
movsd  -0x30(%rbp),%xmm0
movsd  0xc7c(%rip),%xmm6
divsd  %xmm6,%xmm0
subsd  %xmm0,%xmm5
movsd  -0x10(%rbp),%xmm6
movsd  -0x28(%rbp),%xmm0
movsd  0xc62(%rip),%xmm7
divsd  %xmm7,%xmm0
addsd  %xmm0,%xmm6
movsd  -0x18(%rbp),%xmm7
movsd  -0x20(%rbp),%xmm14
movsd  -0x30(%rbp),%xmm0
movsd  0xc41(%rip),%xmm8
divsd  %xmm8,%xmm0
addsd  %xmm0,%xmm14
movsd  -0x10(%rbp),%xmm13
movsd  -0x28(%rbp),%xmm0
movsd  0xc23(%rip),%xmm8
divsd  %xmm8,%xmm0
subsd  %xmm0,%xmm13
movsd  -0x18(%rbp),%xmm12
movsd  -0x20(%rbp),%xmm11
movsd  -0x30(%rbp),%xmm0
movsd  0xbff(%rip),%xmm8
divsd  %xmm8,%xmm0
addsd  %xmm0,%xmm11
movsd  -0x10(%rbp),%xmm10
movsd  -0x28(%rbp),%xmm0
movsd  0xbe1(%rip),%xmm8
divsd  %xmm8,%xmm0
subsd  %xmm0,%xmm10
movsd  -0x18(%rbp),%xmm9
movsd  -0x20(%rbp),%xmm8
movsd  -0x30(%rbp),%xmm15
movsd  0xbbd(%rip),%xmm0
divsd  %xmm0,%xmm15
movsd  -0x38(%rbp),%xmm0
subsd  %xmm15,%xmm8
mov    $0x5,%edi
movsd  %xmm14,(%rsp)
movsd  %xmm13,0x8(%rsp)
movsd  %xmm12,0x10(%rsp)
movsd  %xmm11,0x18(%rsp)
movsd  %xmm10,0x20(%rsp)
movsd  %xmm9,0x28(%rsp)
movsd  %xmm8,0x30(%rsp)
call   1050 <mcdis_multiline@plt>
jmp    1651 <mcdis_rectangle+0x511>
mov    -0x8(%rbp),%rsi
lea    0xb72(%rip),%rdi
call   1030 <strcmp@plt>
cmp    $0x0,%rax
jne    1629 <mcdis_rectangle+0x4e9>
movsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x40(%rbp)
movsd  -0x18(%rbp),%xmm1
movsd  -0x30(%rbp),%xmm0
movsd  0xb39(%rip),%xmm2
divsd  %xmm2,%xmm0
subsd  %xmm0,%xmm1
movsd  -0x20(%rbp),%xmm2
movsd  -0x28(%rbp),%xmm0
movsd  0xb1f(%rip),%xmm3
divsd  %xmm3,%xmm0
subsd  %xmm0,%xmm2
movsd  -0x10(%rbp),%xmm3
movsd  -0x18(%rbp),%xmm4
movsd  -0x30(%rbp),%xmm0
movsd  0xb00(%rip),%xmm5
divsd  %xmm5,%xmm0
subsd  %xmm0,%xmm4
movsd  -0x20(%rbp),%xmm5
movsd  -0x28(%rbp),%xmm0
movsd  0xae6(%rip),%xmm6
divsd  %xmm6,%xmm0
addsd  %xmm0,%xmm5
movsd  -0x10(%rbp),%xmm6
movsd  -0x18(%rbp),%xmm7
movsd  -0x30(%rbp),%xmm0
movsd  0xac6(%rip),%xmm8
divsd  %xmm8,%xmm0
addsd  %xmm0,%xmm7
movsd  -0x20(%rbp),%xmm14
movsd  -0x28(%rbp),%xmm0
movsd  0xaa9(%rip),%xmm8
divsd  %xmm8,%xmm0
addsd  %xmm0,%xmm14
movsd  -0x10(%rbp),%xmm13
movsd  -0x18(%rbp),%xmm12
movsd  -0x30(%rbp),%xmm0
movsd  0xa85(%rip),%xmm8
divsd  %xmm8,%xmm0
addsd  %xmm0,%xmm12
movsd  -0x20(%rbp),%xmm11
movsd  -0x28(%rbp),%xmm0
movsd  0xa67(%rip),%xmm8
divsd  %xmm8,%xmm0
subsd  %xmm0,%xmm11
movsd  -0x10(%rbp),%xmm10
movsd  -0x18(%rbp),%xmm9
movsd  -0x30(%rbp),%xmm0
movsd  0xa43(%rip),%xmm8
divsd  %xmm8,%xmm0
subsd  %xmm0,%xmm9
movsd  -0x20(%rbp),%xmm8
movsd  -0x28(%rbp),%xmm15
movsd  0xa25(%rip),%xmm0
divsd  %xmm0,%xmm15
movsd  -0x40(%rbp),%xmm0
subsd  %xmm15,%xmm8
mov    $0x5,%edi
movsd  %xmm14,(%rsp)
movsd  %xmm13,0x8(%rsp)
movsd  %xmm12,0x10(%rsp)
movsd  %xmm11,0x18(%rsp)
movsd  %xmm10,0x20(%rsp)
movsd  %xmm9,0x28(%rsp)
movsd  %xmm8,0x30(%rsp)
call   1050 <mcdis_multiline@plt>
jmp    164c <mcdis_rectangle+0x50c>
mov    0x29b0(%rip),%rax
mov    (%rax),%edi
mov    -0x8(%rbp),%rdx
lea    0x9d4(%rip),%rsi
call   1040 <fprintf@plt>
mov    $0x1,%edi
call   1060 <exit@plt>
jmp    1651 <mcdis_rectangle+0x511>
jmp    1656 <mcdis_rectangle+0x516>
add    $0x80,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<mcdis_rectangle>:
push   %rbx
sub    $0x60,%rsp
movsd  %xmm4,0x50(%rsp)
movsd  %xmm3,0x58(%rsp)
movsd  %xmm2,0x40(%rsp)
movsd  %xmm1,0x48(%rsp)
movsd  %xmm0,0x38(%rsp)
mov    %rdi,%rbx
lea    0xe9b(%rip),%rdi
mov    %rbx,%rsi
call   1030 <strcmp@plt>
test   %rax,%rax
je     1233 <mcdis_rectangle+0xf3>
lea    0xe86(%rip),%rdi
mov    %rbx,%rsi
call   1030 <strcmp@plt>
test   %rax,%rax
je     12b8 <mcdis_rectangle+0x178>
lea    0xe71(%rip),%rdi
mov    %rbx,%rsi
call   1030 <strcmp@plt>
test   %rax,%rax
jne    1347 <mcdis_rectangle+0x207>
movsd  0xe4a(%rip),%xmm0
movsd  0x50(%rsp),%xmm7
mulsd  %xmm0,%xmm7
movsd  0x48(%rsp),%xmm3
movapd %xmm3,%xmm1
subsd  %xmm7,%xmm1
movsd  0x58(%rsp),%xmm5
mulsd  %xmm0,%xmm5
movsd  0x40(%rsp),%xmm0
movapd %xmm0,%xmm2
subsd  %xmm5,%xmm2
addsd  %xmm0,%xmm5
addsd  %xmm3,%xmm7
movsd  0x38(%rsp),%xmm0
movsd  %xmm0,0x20(%rsp)
movsd  %xmm0,0x8(%rsp)
movsd  %xmm2,0x30(%rsp)
movsd  %xmm1,0x28(%rsp)
movsd  %xmm2,0x18(%rsp)
movsd  %xmm7,0x10(%rsp)
movsd  %xmm5,(%rsp)
mov    $0x5,%edi
movapd %xmm0,%xmm3
movapd %xmm1,%xmm4
movapd %xmm0,%xmm6
jmp    133c <mcdis_rectangle+0x1fc>
movsd  0xdc5(%rip),%xmm1
movsd  0x58(%rsp),%xmm3
mulsd  %xmm1,%xmm3
movsd  0x38(%rsp),%xmm4
movapd %xmm4,%xmm0
subsd  %xmm3,%xmm0
movsd  0x50(%rsp),%xmm7
mulsd  %xmm1,%xmm7
movsd  0x48(%rsp),%xmm2
movapd %xmm2,%xmm1
subsd  %xmm7,%xmm1
addsd  %xmm4,%xmm3
addsd  %xmm2,%xmm7
movsd  0x40(%rsp),%xmm2
movsd  %xmm2,0x30(%rsp)
movsd  %xmm2,0x18(%rsp)
movsd  %xmm2,(%rsp)
movsd  %xmm1,0x28(%rsp)
movsd  %xmm0,0x20(%rsp)
movsd  %xmm7,0x10(%rsp)
movsd  %xmm0,0x8(%rsp)
mov    $0x5,%edi
movapd %xmm1,%xmm4
movapd %xmm2,%xmm5
movapd %xmm3,%xmm6
jmp    133c <mcdis_rectangle+0x1fc>
movsd  0xd40(%rip),%xmm1
movsd  0x58(%rsp),%xmm3
mulsd  %xmm1,%xmm3
movsd  0x38(%rsp),%xmm5
movapd %xmm5,%xmm0
subsd  %xmm3,%xmm0
movsd  0x50(%rsp),%xmm4
mulsd  %xmm1,%xmm4
movsd  0x40(%rsp),%xmm1
movapd %xmm1,%xmm2
subsd  %xmm4,%xmm2
addsd  %xmm5,%xmm3
addsd  %xmm1,%xmm4
movsd  0x48(%rsp),%xmm1
movsd  %xmm1,0x28(%rsp)
movsd  %xmm1,0x10(%rsp)
movsd  %xmm2,0x30(%rsp)
movsd  %xmm0,0x20(%rsp)
movsd  %xmm4,0x18(%rsp)
movsd  %xmm0,0x8(%rsp)
movsd  %xmm4,(%rsp)
mov    $0x5,%edi
movapd %xmm1,%xmm4
movapd %xmm2,%xmm5
movapd %xmm3,%xmm6
movapd %xmm1,%xmm7
call   1050 <mcdis_multiline@plt>
add    $0x60,%rsp
pop    %rbx
ret
mov    0x2c92(%rip),%rax
mov    (%rax),%edi
lea    0xcba(%rip),%rsi
mov    %rbx,%rdx
call   1040 <fprintf@plt>
mov    $0x1,%edi
call   1060 <exit@plt>

LLVM IR (-O0):
@.str = [3 x i8] c"xy\00"
@.str.1 = [3 x i8] c"xz\00"
@.str.2 = [3 x i8] c"yz\00"
@stderr = global i32 0
@.str.3 = [39 x i8] c"Error: Definition of plane %s unknown\0A\00"
define void @mcdis_rectangle(i8* %0, double %1, double %2, double %3, double %4, double %5) {
%7 = alloca i8*
%8 = alloca double
%9 = alloca double
%10 = alloca double
%11 = alloca double
%12 = alloca double
store i8* %0, i8** %7
store double %1, double* %8
store double %2, double* %9
store double %3, double* %10
store double %4, double* %11
store double %5, double* %12
%13 = load i8*, i8** %7
%14 = call i64 @strcmp(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8* %13)
%15 = icmp eq i64 %14, 0
br i1 %15, label %16, label %63
16: ; preds = %6
%17 = load double, double* %8
%18 = load double, double* %11
%19 = fdiv double %18, 2.000000e+00
%20 = fsub double %17, %19
%21 = load double, double* %9
%22 = load double, double* %12
%23 = fdiv double %22, 2.000000e+00
%24 = fsub double %21, %23
%25 = load double, double* %10
%26 = load double, double* %8
%27 = load double, double* %11
%28 = fdiv double %27, 2.000000e+00
%29 = fadd double %26, %28
%30 = load double, double* %9
%31 = load double, double* %12
%32 = fdiv double %31, 2.000000e+00
%33 = fsub double %30, %32
%34 = load double, double* %10
%35 = load double, double* %8
%36 = load double, double* %11
%37 = fdiv double %36, 2.000000e+00
%38 = fadd double %35, %37
%39 = load double, double* %9
%40 = load double, double* %12
%41 = fdiv double %40, 2.000000e+00
%42 = fadd double %39, %41
%43 = load double, double* %10
%44 = load double, double* %8
%45 = load double, double* %11
%46 = fdiv double %45, 2.000000e+00
%47 = fsub double %44, %46
%48 = load double, double* %9
%49 = load double, double* %12
%50 = fdiv double %49, 2.000000e+00
%51 = fadd double %48, %50
%52 = load double, double* %10
%53 = load double, double* %8
%54 = load double, double* %11
%55 = fdiv double %54, 2.000000e+00
%56 = fsub double %53, %55
%57 = load double, double* %9
%58 = load double, double* %12
%59 = fdiv double %58, 2.000000e+00
%60 = fsub double %57, %59
%61 = load double, double* %10
%62 = call i32 @mcdis_multiline(i32 5, double %20, double %24, double %25, double %29, double %33, double %34, double %38, double %42, double %43, double %47, double %51, double %52, double %56, double %60, double %61)
br label %172
63: ; preds = %6
%64 = load i8*, i8** %7
%65 = call i64 @strcmp(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i8* %64)
%66 = icmp eq i64 %65, 0
br i1 %66, label %67, label %114
67: ; preds = %63
%68 = load double, double* %8
%69 = load double, double* %11
%70 = fdiv double %69, 2.000000e+00
%71 = fsub double %68, %70
%72 = load double, double* %9
%73 = load double, double* %10
%74 = load double, double* %12
%75 = fdiv double %74, 2.000000e+00
%76 = fsub double %73, %75
%77 = load double, double* %8
%78 = load double, double* %11
%79 = fdiv double %78, 2.000000e+00
%80 = fadd double %77, %79
%81 = load double, double* %9
%82 = load double, double* %10
%83 = load double, double* %12
%84 = fdiv double %83, 2.000000e+00
%85 = fsub double %82, %84
%86 = load double, double* %8
%87 = load double, double* %11
%88 = fdiv double %87, 2.000000e+00
%89 = fadd double %86, %88
%90 = load double, double* %9
%91 = load double, double* %10
%92 = load double, double* %12
%93 = fdiv double %92, 2.000000e+00
%94 = fadd double %91, %93
%95 = load double, double* %8
%96 = load double, double* %11
%97 = fdiv double %96, 2.000000e+00
%98 = fsub double %95, %97
%99 = load double, double* %9
%100 = load double, double* %10
%101 = load double, double* %12
%102 = fdiv double %101, 2.000000e+00
%103 = fadd double %100, %102
%104 = load double, double* %8
%105 = load double, double* %11
%106 = fdiv double %105, 2.000000e+00
%107 = fsub double %104, %106
%108 = load double, double* %9
%109 = load double, double* %10
%110 = load double, double* %12
%111 = fdiv double %110, 2.000000e+00
%112 = fsub double %109, %111
%113 = call i32 @mcdis_multiline(i32 5, double %71, double %72, double %76, double %80, double %81, double %85, double %89, double %90, double %94, double %98, double %99, double %103, double %107, double %108, double %112)
br label %171
114: ; preds = %63
%115 = load i8*, i8** %7
%116 = call i64 @strcmp(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i8* %115)
%117 = icmp eq i64 %116, 0
br i1 %117, label %118, label %165
118: ; preds = %114
%119 = load double, double* %8
%120 = load double, double* %9
%121 = load double, double* %12
%122 = fdiv double %121, 2.000000e+00
%123 = fsub double %120, %122
%124 = load double, double* %10
%125 = load double, double* %11
%126 = fdiv double %125, 2.000000e+00
%127 = fsub double %124, %126
%128 = load double, double* %8
%129 = load double, double* %9
%130 = load double, double* %12
%131 = fdiv double %130, 2.000000e+00
%132 = fsub double %129, %131
%133 = load double, double* %10
%134 = load double, double* %11
%135 = fdiv double %134, 2.000000e+00
%136 = fadd double %133, %135
%137 = load double, double* %8
%138 = load double, double* %9
%139 = load double, double* %12
%140 = fdiv double %139, 2.000000e+00
%141 = fadd double %138, %140
%142 = load double, double* %10
%143 = load double, double* %11
%144 = fdiv double %143, 2.000000e+00
%145 = fadd double %142, %144
%146 = load double, double* %8
%147 = load double, double* %9
%148 = load double, double* %12
%149 = fdiv double %148, 2.000000e+00
%150 = fadd double %147, %149
%151 = load double, double* %10
%152 = load double, double* %11
%153 = fdiv double %152, 2.000000e+00
%154 = fsub double %151, %153
%155 = load double, double* %8
%156 = load double, double* %9
%157 = load double, double* %12
%158 = fdiv double %157, 2.000000e+00
%159 = fsub double %156, %158
%160 = load double, double* %10
%161 = load double, double* %11
%162 = fdiv double %161, 2.000000e+00
%163 = fsub double %160, %162
%164 = call i32 @mcdis_multiline(i32 5, double %119, double %123, double %127, double %128, double %132, double %136, double %137, double %141, double %145, double %146, double %150, double %154, double %155, double %159, double %163)
br label %170
165: ; preds = %114
%166 = load i32, i32* @stderr
%167 = load i8*, i8** %7
%168 = call i32 @fprintf(i32 %166, i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.3, i64 0, i64 0), i8* %167)
%169 = call i32 @exit(i32 1)
unreachable
170: ; preds = %118
br label %171
171: ; preds = %170, %67
br label %172
172: ; preds = %171, %16
ret void
}

LLVM IR (-O2):
@.str = [3 x i8] c"xy\00"
@.str.1 = [3 x i8] c"xz\00"
@.str.2 = [3 x i8] c"yz\00"
@stderr = global i32 0
@.str.3 = [39 x i8] c"Error: Definition of plane %s unknown\0A\00"
define void @mcdis_rectangle(i8* %0, double %1, double %2, double %3, double %4, double %5) {
%7 = tail call i64 @strcmp(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8* %0)
%8 = icmp eq i64 %7, 0
br i1 %8, label %9, label %17
9: ; preds = %6
%10 = fmul double %4, 5.000000e-01
%11 = fsub double %1, %10
%12 = fmul double %5, 5.000000e-01
%13 = fsub double %2, %12
%14 = fadd double %10, %1
%15 = fadd double %12, %2
%16 = tail call i32 @mcdis_multiline(i32 5, double %11, double %13, double %3, double %14, double %13, double %3, double %14, double %15, double %3, double %11, double %15, double %3, double %11, double %13, double %3)
br label %43
17: ; preds = %6
%18 = tail call i64 @strcmp(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i8* %0)
%19 = icmp eq i64 %18, 0
br i1 %19, label %20, label %28
20: ; preds = %17
%21 = fmul double %4, 5.000000e-01
%22 = fsub double %1, %21
%23 = fmul double %5, 5.000000e-01
%24 = fsub double %3, %23
%25 = fadd double %21, %1
%26 = fadd double %23, %3
%27 = tail call i32 @mcdis_multiline(i32 5, double %22, double %2, double %24, double %25, double %2, double %24, double %25, double %2, double %26, double %22, double %2, double %26, double %22, double %2, double %24)
br label %43
28: ; preds = %17
%29 = tail call i64 @strcmp(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i8* %0)
%30 = icmp eq i64 %29, 0
br i1 %30, label %31, label %39
31: ; preds = %28
%32 = fmul double %5, 5.000000e-01
%33 = fsub double %2, %32
%34 = fmul double %4, 5.000000e-01
%35 = fsub double %3, %34
%36 = fadd double %34, %3
%37 = fadd double %32, %2
%38 = tail call i32 @mcdis_multiline(i32 5, double %1, double %33, double %35, double %1, double %33, double %36, double %1, double %37, double %36, double %1, double %37, double %35, double %1, double %33, double %35)
br label %43
39: ; preds = %28
%40 = load i32, i32* @stderr
%41 = tail call i32 @fprintf(i32 %40, i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.3, i64 0, i64 0), i8* %0)
%42 = tail call i32 @exit(i32 1)
unreachable
43: ; preds = %20, %31, %9
ret void
}