source_filename = "test"
target datalayout = "e-p:32:32-f64:32:64-f80:32-n8:16:32-S128"

define i32 @function_0() local_unnamed_addr {
dec_label_pc_0:
  %eax.global-to-local = alloca i32, align 4
  %edi.global-to-local = alloca i32, align 4
  %esi.global-to-local = alloca i32, align 4
  %fpsw.global-to-local = alloca i32, align 4
  %fpu_stat_TOP.global-to-local = alloca i3, align 1
  %st6.global-to-local = alloca x86_fp80, align 4
  %st7.global-to-local = alloca x86_fp80, align 4
  %tmp288 = call i32 @__decompiler_undefined_function_1()
  %tmp292 = call double @__decompiler_undefined_function_3()
  %stack_var_-80 = alloca double, align 8
  %v0_3 = load i32, i32* %esi.global-to-local, align 4
  %v1_3 = add i32 %v0_3, -120
  %v2_3 = inttoptr i32 %v1_3 to i128*
  %v3_3 = load i128, i128* %v2_3, align 4
  %v4_3 = call i128 @__asm_movupd(i128 %v3_3)
  %v1_8 = add i32 %v0_3, -104
  %v2_8 = inttoptr i32 %v1_8 to i64*
  %v3_8 = load i64, i64* %v2_8, align 4
  %v4_8 = call i128 @__asm_movsd(i64 %v3_8)
  %v1_d = load i32, i32* %edi.global-to-local, align 4
  %v2_d = add i32 %v1_d, -32
  %v3_d = inttoptr i32 %v2_d to i128*
  %v4_d = load i128, i128* %v3_d, align 4
  %v5_d = call i128 @__asm_mulpd(i128 %v4_3, i128 %v4_d)
  %v2_12 = add i32 %v1_d, -32
  %v3_12 = inttoptr i32 %v2_12 to i64*
  %v4_12 = load i64, i64* %v3_12, align 4
  %v5_12 = call i128 @__asm_mulsd(i128 %v4_8, i64 %v4_12)
  %v1_17 = load i32, i32* %edi.global-to-local, align 4
  %v2_17 = add i32 %v1_17, -64
  %v3_17 = inttoptr i32 %v2_17 to i128*
  %v4_17 = load i128, i128* %v3_17, align 4
  %v5_17 = call i128 @__asm_addpd(i128 %v5_d, i128 %v4_17)
  %v2_1c = add i32 %v1_17, -48
  %v3_1c = inttoptr i32 %v2_1c to i64*
  %v4_1c = load i64, i64* %v3_1c, align 4
  %v5_1c = call i128 @__asm_addsd(i128 %v5_12, i64 %v4_1c)
  %v0_21 = load i32, i32* %edi.global-to-local, align 4
  %v1_21 = add i32 %v0_21, -68
  %v2_21 = inttoptr i32 %v1_21 to i32*
  %v3_21 = load i32, i32* %v2_21, align 4
  %v10_21 = icmp eq i32 %v3_21, 0
  br i1 %v10_21, label %dec_label_pc_40, label %dec_label_pc_27

dec_label_pc_27:                                  ; preds = %dec_label_pc_0
  %v0_27 = load i32, i32* %esi.global-to-local, align 4
  %v1_27 = add i32 %v0_27, 112
  %v2_27 = inttoptr i32 %v1_27 to i64*
  %v3_27 = load i64, i64* %v2_27, align 4
  %v4_27 = call i128 @__asm_movsd(i64 %v3_27)
  %v1_2c = load i32, i32* %edi.global-to-local, align 4
  %v2_2c = add i32 %v1_2c, -32
  %v3_2c = inttoptr i32 %v2_2c to i64*
  %v4_2c = load i64, i64* %v3_2c, align 4
  %v5_2c = call i128 @__asm_mulsd(i128 %v4_27, i64 %v4_2c)
  %v0_31 = load i32, i32* %esi.global-to-local, align 4
  %v1_31 = add i32 %v0_31, -120
  %v2_31 = inttoptr i32 %v1_31 to i128*
  %v3_31 = load i128, i128* %v2_31, align 4
  call void @__asm_movupd.1(i128 %v3_31, i128 %v5_17)
  %v1_36 = call i32 @__asm_movsd.2(i128 %v5_1c)
  %v3_36 = add i32 %v0_31, -104
  %v4_36 = sext i32 %v1_36 to i64
  %v5_36 = inttoptr i32 %v3_36 to i64*
  store i64 %v4_36, i64* %v5_36, align 4
  %v1_3b = call i32 @__asm_movsd.2(i128 %v5_2c)
  %v2_3b = load i32, i32* %esi.global-to-local, align 4
  %v3_3b = add i32 %v2_3b, 112
  %v4_3b = sext i32 %v1_3b to i64
  %v5_3b = inttoptr i32 %v3_3b to i64*
  store i64 %v4_3b, i64* %v5_3b, align 4
  br label %dec_label_pc_40

dec_label_pc_40:                                  ; preds = %dec_label_pc_27, %dec_label_pc_0
  %v2_40 = load double, double* %stack_var_-80, align 8
  %v3_40 = fptrunc double %v2_40 to float
  %v4_40 = bitcast float %v3_40 to i32
  %v5_40 = sext i32 %v4_40 to i128
  call void @__asm_movupd.1(i128 %v5_40, i128 %v5_17)
  %v1_45 = call i32 @__asm_movsd.2(i128 %v5_1c)
  %v4_45 = sext i32 %v1_45 to i64
  %v6_45 = bitcast i64 %v4_45 to double
  %v0_4b = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v7_4b = fpext double %v6_45 to x86_fp80
  store x86_fp80 %v7_4b, x86_fp80* %st7.global-to-local, align 4
  %v5_4f = fpext double %tmp292 to x86_fp80
  store x86_fp80 %v5_4f, x86_fp80* %st6.global-to-local, align 4
  %v3_53 = load double, double* %stack_var_-80, align 8
  %v8_53 = fpext double %v3_53 to x86_fp80
  %v2_58 = load i32, i32* %edi.global-to-local, align 4
  %v3_58 = add i32 %v2_58, -104
  %v4_58 = inttoptr i32 %v3_58 to float*
  %v5_58 = load float, float* %v4_58, align 4
  %v6_58 = fpext float %v5_58 to x86_fp80
  %v7_58 = fmul x86_fp80 %v8_53, %v6_58
  %v3_5d = add i32 %v2_58, -108
  %v4_5d = inttoptr i32 %v3_5d to float*
  %v5_5d = load float, float* %v4_5d, align 4
  %v6_5d = fpext float %v5_5d to x86_fp80
  %v7_5d = fmul x86_fp80 %v5_4f, %v6_5d
  %v4_60 = fadd x86_fp80 %v7_58, %v7_5d
  %v3_64 = add i32 %v2_58, -112
  %v4_64 = inttoptr i32 %v3_64 to float*
  %v5_64 = load float, float* %v4_64, align 4
  %v6_64 = fpext float %v5_64 to x86_fp80
  %v7_64 = fmul x86_fp80 %v7_4b, %v6_64
  %v4_67 = fadd x86_fp80 %v7_64, %v4_60
  %v3_6b = add i32 %v2_58, -80
  %v4_6b = inttoptr i32 %v3_6b to float*
  %v5_6b = load float, float* %v4_6b, align 4
  %v6_6b = fpext float %v5_6b to x86_fp80
  %v7_6b = fmul x86_fp80 %v8_53, %v6_6b
  %v3_70 = add i32 %v2_58, -84
  %v4_70 = inttoptr i32 %v3_70 to float*
  %v5_70 = load float, float* %v4_70, align 4
  %v6_70 = fpext float %v5_70 to x86_fp80
  %v7_70 = fmul x86_fp80 %v5_4f, %v6_70
  %v4_73 = fadd x86_fp80 %v7_6b, %v7_70
  %v3_77 = add i32 %v2_58, -88
  %v4_77 = inttoptr i32 %v3_77 to float*
  %v5_77 = load float, float* %v4_77, align 4
  %v6_77 = fpext float %v5_77 to x86_fp80
  %v7_77 = fmul x86_fp80 %v7_4b, %v6_77
  %v4_7a = fadd x86_fp80 %v4_73, %v7_77
  %v3_7e = add i32 %v2_58, -92
  %v4_7e = inttoptr i32 %v3_7e to float*
  %v5_7e = load float, float* %v4_7e, align 4
  %v6_7e = fpext float %v5_7e to x86_fp80
  %v7_7e = fmul x86_fp80 %v8_53, %v6_7e
  store x86_fp80 %v7_7e, x86_fp80* %st6.global-to-local, align 4
  %v3_83 = add i32 %v2_58, -96
  %v4_83 = inttoptr i32 %v3_83 to float*
  %v5_83 = load float, float* %v4_83, align 4
  %v6_83 = fpext float %v5_83 to x86_fp80
  %v7_83 = fmul x86_fp80 %v5_4f, %v6_83
  %v4_86 = fadd x86_fp80 %v7_7e, %v7_83
  store x86_fp80 %v4_86, x86_fp80* %st6.global-to-local, align 4
  store x86_fp80 %v4_67, x86_fp80* %st7.global-to-local, align 4
  %v3_8a = add i32 %v2_58, -100
  %v4_8a = inttoptr i32 %v3_8a to float*
  %v5_8a = load float, float* %v4_8a, align 4
  %v6_8a = fpext float %v5_8a to x86_fp80
  %v7_8a = fmul x86_fp80 %v7_4b, %v6_8a
  %v4_8d = fadd x86_fp80 %v4_86, %v7_8a
  store x86_fp80 %v4_8d, x86_fp80* %st6.global-to-local, align 4
  %tmp297 = fptrunc x86_fp80 %v4_7a to double
  store double %tmp297, double* %stack_var_-80, align 8
  %v6_92 = add i3 %v0_4b, -1
  %v2_9a = add i32 %v2_58, -140
  %v3_9a = inttoptr i32 %v2_9a to double*
  %v4_9a = load double, double* %v3_9a, align 4
  %v5_9a = fpext double %v4_9a to x86_fp80
  store i3 %v6_92, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v5_9a, x86_fp80* %st7.global-to-local, align 4
  %v0_a2 = call i32 @__asm_wait()
  store i32 %v0_a2, i32* %eax.global-to-local, align 4
  %v0_a3 = load i32, i32* %fpsw.global-to-local, align 4
  %v1_a3 = call i16 @__asm_fnstsw(i32 %v0_a3)
  %v2_a3 = sext i16 %v1_a3 to i32
  %v3_a3 = load i32, i32* %eax.global-to-local, align 4
  %v4_a3 = and i32 %v3_a3, -65536
  %v1_a5 = udiv i32 %v2_a3, 256
  %v2_a5 = trunc i32 %v1_a5 to i8
  %v3_a5 = and i8 %v2_a5, 65
  %v4_a5 = icmp eq i8 %v3_a5, 0
  %v9_a5 = zext i8 %v3_a5 to i32
  %v11_a5 = mul i32 %v9_a5, 256
  %v2_a3.masked = and i32 %v2_a3, -65281
  %v12_a5 = or i32 %v4_a3, %v2_a3.masked
  %v13_a5 = or i32 %v12_a5, %v11_a5
  store i32 %v13_a5, i32* %eax.global-to-local, align 4
  %v1_a8 = icmp eq i1 %v4_a5, false
  %v0_bb = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_bb = load double, double* %stack_var_-80, align 8
  %v8_bb = fpext double %v3_bb to x86_fp80
  %v9_bb = add i3 %v0_bb, -1
  store i3 %v9_bb, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v8_bb, x86_fp80* %st7.global-to-local, align 4
  br i1 %v1_a8, label %dec_label_pc_bb, label %dec_label_pc_aa

dec_label_pc_aa:                                  ; preds = %dec_label_pc_40
  %v3_ad = fmul x86_fp80 %v8_bb, %v8_bb
  %v3_b3 = fmul x86_fp80 %v4_8d, %v4_8d
  store x86_fp80 %v3_b3, x86_fp80* %st6.global-to-local, align 4
  %v4_b5 = fadd x86_fp80 %v3_b3, %v3_ad
  store i3 %v9_bb, i3* %fpu_stat_TOP.global-to-local, align 1
  %v2_b7 = call x86_fp80 @llvm.sqrt.f80(x86_fp80 %v4_b5)
  store x86_fp80 %v2_b7, x86_fp80* %st7.global-to-local, align 4
  br label %dec_label_pc_d6

dec_label_pc_bb:                                  ; preds = %dec_label_pc_40
  %v4_92 = fptrunc x86_fp80 %v4_8d to double
  %v2_be = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v8_bb)
  store x86_fp80 %v2_be, x86_fp80* %st7.global-to-local, align 4
  %v6_c0 = add i3 %v0_bb, -2
  store i3 %v6_c0, i3* %fpu_stat_TOP.global-to-local, align 1
  %tmp298 = call double @llvm.fabs.f64(double %v4_92)
  %v2_c4 = fpext double %tmp298 to x86_fp80
  store x86_fp80 %v2_c4, x86_fp80* %st6.global-to-local, align 4
  %v0_c8 = call i32 @__asm_wait()
  store i32 %v0_c8, i32* %eax.global-to-local, align 4
  %v0_c9 = load i32, i32* %fpsw.global-to-local, align 4
  %v1_c9 = call i16 @__asm_fnstsw(i32 %v0_c9)
  %v2_c9 = sext i16 %v1_c9 to i32
  %v3_c9 = load i32, i32* %eax.global-to-local, align 4
  %v4_c9 = and i32 %v3_c9, -65536
  %v1_cb = udiv i32 %v2_c9, 256
  %v2_cb = trunc i32 %v1_cb to i8
  %v3_cb = and i8 %v2_cb, 65
  %v4_cb = icmp eq i8 %v3_cb, 0
  %v9_cb = zext i8 %v3_cb to i32
  %v11_cb = mul i32 %v9_cb, 256
  %v2_c9.masked = and i32 %v2_c9, -65281
  %v12_cb = or i32 %v4_c9, %v2_c9.masked
  %v13_cb = or i32 %v12_cb, %v11_cb
  store i32 %v13_cb, i32* %eax.global-to-local, align 4
  %v1_ce = icmp eq i1 %v4_cb, false
  %v0_d4 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  br i1 %v1_ce, label %dec_label_pc_d4, label %dec_label_pc_d0

dec_label_pc_d0:                                  ; preds = %dec_label_pc_bb
  %v1_d4 = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  store x86_fp80 %v1_d4, x86_fp80* %st7.global-to-local, align 4
  %v5_d0 = add i3 %v0_d4, 1
  store i3 %v5_d0, i3* %fpu_stat_TOP.global-to-local, align 1
  br label %dec_label_pc_d6

dec_label_pc_d4:                                  ; preds = %dec_label_pc_bb
  %v4_d4 = add i3 %v0_d4, 1
  store i3 %v4_d4, i3* %fpu_stat_TOP.global-to-local, align 1
  br label %dec_label_pc_d6

dec_label_pc_d6:                                  ; preds = %dec_label_pc_d4, %dec_label_pc_d0, %dec_label_pc_aa
  %v0_d6 = phi i3 [ %v4_d4, %dec_label_pc_d4 ], [ %v5_d0, %dec_label_pc_d0 ], [ %v9_bb, %dec_label_pc_aa ]
  store x86_fp80 %v4_8d, x86_fp80* %st7.global-to-local, align 4
  %v3_dc = load double, double* %stack_var_-80, align 8
  %v8_dc = fpext double %v3_dc to x86_fp80
  %v9_dc = add i3 %v0_d6, -1
  store i3 %v9_dc, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v8_dc, x86_fp80* %st6.global-to-local, align 4
  %v0_df = call i32 @__asm_fpatan()
  store i32 %v0_df, i32* %eax.global-to-local, align 4
  %v1_e1 = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  %v2_e1 = load i32, i32* %edi.global-to-local, align 4
  %v3_e1 = add i32 %v2_e1, 8
  %v4_e1 = inttoptr i32 %v3_e1 to double*
  %v5_e1 = load double, double* %v4_e1, align 4
  %v6_e1 = fpext double %v5_e1 to x86_fp80
  %v7_e1 = fmul x86_fp80 %v1_e1, %v6_e1
  store x86_fp80 %v7_e1, x86_fp80* %st6.global-to-local, align 4
  %v3_e4 = add i32 %v2_e1, -116
  %v4_e4 = inttoptr i32 %v3_e4 to i32*
  %v5_e4 = load i32, i32* %v4_e4, align 4
  %v6_e4 = sitofp i32 %v5_e4 to x86_fp80
  %v7_e4 = fmul x86_fp80 %v7_e1, %v6_e4
  %v0_eb = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v4_ef = fsub x86_fp80 %v7_e4, %v7_e4
  store x86_fp80 %v4_ef, x86_fp80* %st6.global-to-local, align 4
  %v3_f1 = add i32 %v2_e1, 16
  %v4_f1 = inttoptr i32 %v3_f1 to double*
  %v5_f1 = load double, double* %v4_f1, align 4
  %v6_f1 = fpext double %v5_f1 to x86_fp80
  %v7_f1 = fmul x86_fp80 %v4_ef, %v6_f1
  store x86_fp80 %v7_f1, x86_fp80* %st6.global-to-local, align 4
  %v5_f4 = load i32, i32* %v4_e4, align 4
  %v6_f4 = sitofp i32 %v5_f4 to x86_fp80
  %v7_f4 = fdiv x86_fp80 %v7_f1, %v6_f4
  store x86_fp80 %v7_f4, x86_fp80* %st6.global-to-local, align 4
  %v1_fb = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %tmp299 = fptrunc x86_fp80 %v1_fb to double
  store double %tmp299, double* %stack_var_-80, align 8
  %v2_fe = add i32 %v2_e1, -124
  %v3_fe = inttoptr i32 %v2_fe to double*
  %v4_fe = load double, double* %v3_fe, align 4
  %tmp300 = call double @llvm.fabs.f64(double %v4_fe)
  %v2_101 = fpext double %tmp300 to x86_fp80
  %v2_103 = fsub x86_fp80 0xK80000000000000000000, %v2_101
  store x86_fp80 %v2_103, x86_fp80* %st7.global-to-local, align 4
  store x86_fp80 %v2_103, x86_fp80* %st6.global-to-local, align 4
  %v3_107 = add i32 %v2_e1, 24
  %v4_107 = inttoptr i32 %v3_107 to double*
  %v5_107 = load double, double* %v4_107, align 4
  %v6_107 = fpext double %v5_107 to x86_fp80
  %v7_107 = fmul x86_fp80 %v2_103, %v6_107
  store x86_fp80 %v7_107, x86_fp80* %st6.global-to-local, align 4
  %v5_10e = load i32, i32* %v4_e4, align 4
  %v6_10e = sitofp i32 %v5_10e to x86_fp80
  %v7_10e = fmul x86_fp80 %v2_103, %v6_10e
  %tmp301 = fptrunc x86_fp80 %v7_10e to double
  %v4_113 = call double @llvm.fabs.f64(double %tmp301)
  store x86_fp80 %v4_67, x86_fp80* %st7.global-to-local, align 4
  store x86_fp80 %v7_e4, x86_fp80* %st6.global-to-local, align 4
  %v4_11f = load double, double* %v3_fe, align 4
  %tmp302 = call double @llvm.fabs.f64(double %v4_11f)
  %v2_122 = fpext double %tmp302 to x86_fp80
  %tmp309 = fmul x86_fp80 %v7_e4, %v2_122
  %v4_128 = fsub x86_fp80 %v4_67, %tmp309
  %v6_12c = fpext double %v4_113 to x86_fp80
  %v7_12c = fdiv x86_fp80 %v4_128, %v6_12c
  %v2_130 = call x86_fp80 @llvm.round.f80(x86_fp80 %v7_12c)
  %v7_132 = fmul x86_fp80 %v2_130, %v6_12c
  store x86_fp80 %v7_132, x86_fp80* %st6.global-to-local, align 4
  %v4_136 = fsub x86_fp80 %v4_128, %v7_132
  store x86_fp80 %v4_136, x86_fp80* %st7.global-to-local, align 4
  %v8_138 = add i3 %v0_eb, 2
  store i3 %v8_138, i3* %fpu_stat_TOP.global-to-local, align 1
  %v1_13c = add i32 %v2_e1, -120
  %v2_13c = inttoptr i32 %v1_13c to i32*
  %v3_13c = load i32, i32* %v2_13c, align 4
  %v2_13f = icmp sgt i32 %v3_13c, -1
  br i1 %v2_13f, label %dec_label_pc_192, label %dec_label_pc_146

dec_label_pc_146:                                 ; preds = %dec_label_pc_d6
  %v7_14a = fsub x86_fp80 %v7_f4, %v7_107
  store x86_fp80 %v7_14a, x86_fp80* %st7.global-to-local, align 4
  %v2_152 = fsub x86_fp80 0xK80000000000000000000, %v4_136
  store x86_fp80 %v2_152, x86_fp80* %st6.global-to-local, align 4
  store i3 %v8_138, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_156 = call i32 @__asm_wait()
  store i32 %v0_156, i32* %eax.global-to-local, align 4
  %v0_157 = load i32, i32* %fpsw.global-to-local, align 4
  %v1_157 = call i16 @__asm_fnstsw(i32 %v0_157)
  %v2_157 = sext i16 %v1_157 to i32
  %v3_157 = load i32, i32* %eax.global-to-local, align 4
  %v4_157 = and i32 %v3_157, -65536
  %v1_159 = udiv i32 %v2_157, 256
  %v2_159 = trunc i32 %v1_159 to i8
  %v3_159 = and i8 %v2_159, 65
  %v4_159 = icmp eq i8 %v3_159, 0
  %v9_159 = zext i8 %v3_159 to i32
  %v11_159 = mul i32 %v9_159, 256
  %v2_157.masked = and i32 %v2_157, -65281
  %v12_159 = or i32 %v4_157, %v2_157.masked
  %v13_159 = or i32 %v12_159, %v11_159
  store i32 %v13_159, i32* %eax.global-to-local, align 4
  %v1_15c = icmp eq i1 %v4_159, false
  %v0_168 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v6_168 = add i3 %v0_168, -1
  store i3 %v6_168, i3* %fpu_stat_TOP.global-to-local, align 1
  br i1 %v1_15c, label %dec_label_pc_168, label %dec_label_pc_15e

dec_label_pc_15e:                                 ; preds = %dec_label_pc_146
  %v7_162 = fsub x86_fp80 %v4_136, %v7_107
  store x86_fp80 %v7_162, x86_fp80* %st7.global-to-local, align 4
  br label %dec_label_pc_208

dec_label_pc_168:                                 ; preds = %dec_label_pc_146
  %v7_16c = fadd x86_fp80 %v7_f4, %v7_107
  store x86_fp80 %v7_16c, x86_fp80* %st7.global-to-local, align 4
  store x86_fp80 %v2_152, x86_fp80* %st6.global-to-local, align 4
  store i3 %v0_168, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_178 = call i32 @__asm_wait()
  store i32 %v0_178, i32* %eax.global-to-local, align 4
  %v0_179 = load i32, i32* %fpsw.global-to-local, align 4
  %v1_179 = call i16 @__asm_fnstsw(i32 %v0_179)
  %v2_179 = sext i16 %v1_179 to i32
  %v3_179 = load i32, i32* %eax.global-to-local, align 4
  %v4_179 = and i32 %v3_179, -65536
  %v1_17b = udiv i32 %v2_179, 256
  %v2_17b = trunc i32 %v1_17b to i8
  %v3_17b = and i8 %v2_17b, 65
  %v4_17b = icmp eq i8 %v3_17b, 0
  %v9_17b = zext i8 %v3_17b to i32
  %v11_17b = mul i32 %v9_17b, 256
  %v2_179.masked = and i32 %v2_179, -65281
  %v12_17b = or i32 %v4_179, %v2_179.masked
  %v13_17b = or i32 %v12_17b, %v11_17b
  store i32 %v13_17b, i32* %eax.global-to-local, align 4
  %v0_18a = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v6_18a = add i3 %v0_18a, -1
  store i3 %v6_18a, i3* %fpu_stat_TOP.global-to-local, align 1
  br i1 %v4_17b, label %dec_label_pc_18a, label %dec_label_pc_180

dec_label_pc_180:                                 ; preds = %dec_label_pc_168
  %v7_184 = fadd x86_fp80 %v7_107, %v4_136
  store x86_fp80 %v7_184, x86_fp80* %st7.global-to-local, align 4
  br label %dec_label_pc_208

dec_label_pc_18a:                                 ; preds = %dec_label_pc_168
  %v2_18e = fsub x86_fp80 0xK80000000000000000000, %v7_f4
  store x86_fp80 %v2_18e, x86_fp80* %st7.global-to-local, align 4
  br label %dec_label_pc_208

dec_label_pc_192:                                 ; preds = %dec_label_pc_d6
  %v4_138 = fptrunc x86_fp80 %v4_136 to double
  %v2_196 = icmp sgt i32 %tmp288, -1
  %tmp303 = call double @llvm.fabs.f64(double %v4_138)
  %v2_19f = fpext double %tmp303 to x86_fp80
  %v7_1a1 = fadd x86_fp80 %v7_107, %v2_19f
  %v2_1a5 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v7_1a1)
  store x86_fp80 %v2_1a5, x86_fp80* %st7.global-to-local, align 4
  store i3 %v0_eb, i3* %fpu_stat_TOP.global-to-local, align 1
  %v1_1ad = icmp eq i1 %v2_196, false
  %v2_1af = fsub x86_fp80 0xK80000000000000000000, %v7_f4
  %spec.select = select i1 %v1_1ad, x86_fp80 %v7_f4, x86_fp80 %v2_1af
  store x86_fp80 %spec.select, x86_fp80* %st6.global-to-local, align 4
  %v0_1b3 = call i32 @__asm_wait()
  store i32 %v0_1b3, i32* %eax.global-to-local, align 4
  %v0_1b4 = load i32, i32* %fpsw.global-to-local, align 4
  %v1_1b4 = call i16 @__asm_fnstsw(i32 %v0_1b4)
  %v2_1b4 = sext i16 %v1_1b4 to i32
  %v3_1b4 = load i32, i32* %eax.global-to-local, align 4
  %v4_1b4 = and i32 %v3_1b4, -65536
  %v3_1b6 = and i32 %v2_1b4, 16640
  %v2_1b4.masked = and i32 %v2_1b4, -65281
  %v12_1b6 = or i32 %v4_1b4, %v2_1b4.masked
  %v13_1b6 = or i32 %v12_1b6, %v3_1b6
  store i32 %v13_1b6, i32* %eax.global-to-local, align 4
  %v1_1bf = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v2_1c1 = load i32, i32* %edi.global-to-local, align 4
  %v3_1c1 = add i32 %v2_1c1, -132
  %v4_1c1 = inttoptr i32 %v3_1c1 to double*
  %v5_1c1 = load double, double* %v4_1c1, align 4
  %v6_1c1 = fpext double %v5_1c1 to x86_fp80
  %v7_1c1 = fsub x86_fp80 %v1_1bf, %v6_1c1
  store x86_fp80 %v7_1c1, x86_fp80* %st7.global-to-local, align 4
  %v3_1c7 = load double, double* %stack_var_-80, align 8
  %v8_1c7 = fpext double %v3_1c7 to x86_fp80
  store x86_fp80 %v8_1c7, x86_fp80* %st6.global-to-local, align 4
  %v2_1ca = add i32 %v2_1c1, -140
  %v3_1ca = inttoptr i32 %v2_1ca to double*
  %v4_1ca = load double, double* %v3_1ca, align 4
  %tmp304 = call double @llvm.fabs.f64(double %v4_1ca)
  %v2_1d0 = fpext double %tmp304 to x86_fp80
  %v4_1d2 = fsub x86_fp80 %v8_1c7, %v2_1d0
  store x86_fp80 %v4_1d2, x86_fp80* %st6.global-to-local, align 4
  %v2_1d4 = load i32, i32* %esi.global-to-local, align 4
  %v3_1d4 = add i32 %v2_1d4, -32
  %v4_1d4 = fptrunc x86_fp80 %v4_1d2 to double
  %v5_1d4 = inttoptr i32 %v3_1d4 to double*
  store double %v4_1d4, double* %v5_1d4, align 4
  %v1_1d7 = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  %v3_1d7 = add i32 %v2_1c1, -148
  %v4_1d7 = inttoptr i32 %v3_1d7 to double*
  %v5_1d7 = load double, double* %v4_1d7, align 4
  %v6_1d7 = fpext double %v5_1d7 to x86_fp80
  %v7_1d7 = fsub x86_fp80 %v1_1d7, %v6_1d7
  store x86_fp80 %v7_1d7, x86_fp80* %st6.global-to-local, align 4
  %v0_1df = call i32 @__asm_wait()
  store i32 %v0_1df, i32* %eax.global-to-local, align 4
  %v0_1e0 = load i32, i32* %fpsw.global-to-local, align 4
  %v1_1e0 = call i16 @__asm_fnstsw(i32 %v0_1e0)
  %v2_1e0 = sext i16 %v1_1e0 to i32
  %v3_1e0 = load i32, i32* %eax.global-to-local, align 4
  %v4_1e0 = and i32 %v3_1e0, -65536
  %v3_1e2 = and i32 %v2_1e0, 16640
  %v2_1e0.masked = and i32 %v2_1e0, -65281
  %v12_1e2 = or i32 %v4_1e0, %v2_1e0.masked
  %v13_1e2 = or i32 %v12_1e2, %v3_1e2
  store i32 %v13_1e2, i32* %eax.global-to-local, align 4
  %v1_1ed = load i32, i32* %esi.global-to-local, align 4
  %v2_1ed = add i32 %v1_1ed, -32
  %v3_1ed = inttoptr i32 %v2_1ed to double*
  %v4_1ed = load double, double* %v3_1ed, align 4
  %v5_1ed = fpext double %v4_1ed to x86_fp80
  store x86_fp80 %v5_1ed, x86_fp80* %st7.global-to-local, align 4
  %v2_1f0 = load i32, i32* %edi.global-to-local, align 4
  %v3_1f0 = add i32 %v2_1f0, -148
  %v4_1f0 = inttoptr i32 %v3_1f0 to double*
  %v5_1f0 = load double, double* %v4_1f0, align 4
  %v6_1f0 = fpext double %v5_1f0 to x86_fp80
  %v7_1f0 = fadd x86_fp80 %v5_1ed, %v6_1f0
  store x86_fp80 %v7_1f0, x86_fp80* %st7.global-to-local, align 4
  %v0_1f8 = call i32 @__asm_wait()
  store i32 %v0_1f8, i32* %eax.global-to-local, align 4
  %v0_1f9 = load i32, i32* %fpsw.global-to-local, align 4
  %v1_1f9 = call i16 @__asm_fnstsw(i32 %v0_1f9)
  %v2_1f9 = sext i16 %v1_1f9 to i32
  %v3_1f9 = load i32, i32* %eax.global-to-local, align 4
  %v4_1f9 = and i32 %v3_1f9, -65536
  %v5_1f9 = or i32 %v4_1f9, %v2_1f9
  br label %dec_label_pc_235

dec_label_pc_208:                                 ; preds = %dec_label_pc_15e, %dec_label_pc_180, %dec_label_pc_18a
  %v0_210 = phi i3 [ %v6_168, %dec_label_pc_15e ], [ %v6_18a, %dec_label_pc_180 ], [ %v6_18a, %dec_label_pc_18a ]
  %v1_208 = phi x86_fp80 [ %v7_162, %dec_label_pc_15e ], [ %v7_184, %dec_label_pc_180 ], [ %v2_18e, %dec_label_pc_18a ]
  %v2_208 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v1_208)
  store x86_fp80 %v2_208, x86_fp80* %st7.global-to-local, align 4
  %v2_20a = load i32, i32* %edi.global-to-local, align 4
  %v3_20a = add i32 %v2_20a, -132
  %v4_20a = inttoptr i32 %v3_20a to double*
  %v5_20a = load double, double* %v4_20a, align 4
  %v6_20a = fpext double %v5_20a to x86_fp80
  %v7_20a = fsub x86_fp80 %v2_208, %v6_20a
  store x86_fp80 %v7_20a, x86_fp80* %st7.global-to-local, align 4
  %v3_210 = load double, double* %stack_var_-80, align 8
  %v8_210 = fpext double %v3_210 to x86_fp80
  %v9_210 = add i3 %v0_210, -1
  store x86_fp80 %v8_210, x86_fp80* %st6.global-to-local, align 4
  %v2_213 = add i32 %v2_20a, -140
  %v3_213 = inttoptr i32 %v2_213 to double*
  %v4_213 = load double, double* %v3_213, align 4
  %tmp305 = call double @llvm.fabs.f64(double %v4_213)
  %v2_219 = fpext double %tmp305 to x86_fp80
  %v4_21b = fsub x86_fp80 %v8_210, %v2_219
  store i3 %v9_210, i3* %fpu_stat_TOP.global-to-local, align 1
  %v2_21d = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v4_21b)
  store x86_fp80 %v2_21d, x86_fp80* %st6.global-to-local, align 4
  %v3_21f = add i32 %v2_20a, -148
  %v4_21f = inttoptr i32 %v3_21f to double*
  %v5_21f = load double, double* %v4_21f, align 4
  %v6_21f = fpext double %v5_21f to x86_fp80
  %v7_21f = fsub x86_fp80 %v2_21d, %v6_21f
  store x86_fp80 %v7_21f, x86_fp80* %st6.global-to-local, align 4
  %v0_227 = call i32 @__asm_wait()
  store i32 %v0_227, i32* %eax.global-to-local, align 4
  %v0_228 = load i32, i32* %fpsw.global-to-local, align 4
  %v1_228 = call i16 @__asm_fnstsw(i32 %v0_228)
  %v2_228 = sext i16 %v1_228 to i32
  %v3_228 = load i32, i32* %eax.global-to-local, align 4
  %v4_228 = and i32 %v3_228, -65536
  %v5_228 = or i32 %v4_228, %v2_228
  br label %dec_label_pc_235

dec_label_pc_235:                                 ; preds = %dec_label_pc_208, %dec_label_pc_192
  %v0_257.in = phi i32 [ %v5_228, %dec_label_pc_208 ], [ %v5_1f9, %dec_label_pc_192 ]
  %v0_257 = and i32 %v0_257.in, -48641
  store i32 %v0_257, i32* %eax.global-to-local, align 4
  %storemerge.in = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %storemerge = add i3 %storemerge.in, 1
  store i3 %storemerge, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_235 = load i32, i32* %edi.global-to-local, align 4
  %v1_235 = add i32 %v0_235, -68
  %v2_235 = inttoptr i32 %v1_235 to i32*
  %v3_235 = load i32, i32* %v2_235, align 4
  %v10_235 = icmp eq i32 %v3_235, 0
  %v1_239 = icmp eq i1 %v10_235, false
  %v1_23e.pre = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  br i1 %v1_239, label %dec_label_pc_23e, label %dec_label_pc_23b

dec_label_pc_23b:                                 ; preds = %dec_label_pc_235
  %v3_23b = add i32 %v0_235, -32
  %v4_23b = inttoptr i32 %v3_23b to double*
  %v5_23b = load double, double* %v4_23b, align 4
  %v6_23b = fpext double %v5_23b to x86_fp80
  %v7_23b = fdiv x86_fp80 %v1_23e.pre, %v6_23b
  store x86_fp80 %v7_23b, x86_fp80* %st7.global-to-local, align 4
  br label %dec_label_pc_23e

dec_label_pc_23e:                                 ; preds = %dec_label_pc_235, %dec_label_pc_23b
  %v1_23e = phi x86_fp80 [ %v7_23b, %dec_label_pc_23b ], [ %v1_23e.pre, %dec_label_pc_235 ]
  %v2_23e = load i32, i32* %esi.global-to-local, align 4
  %v3_23e = add i32 %v2_23e, -32
  %v4_23e = fptrunc x86_fp80 %v1_23e to double
  %v5_23e = inttoptr i32 %v3_23e to double*
  store double %v4_23e, double* %v5_23e, align 4
  %v2_241 = add i32 %v0_235, -16
  %v3_241 = inttoptr i32 %v2_241 to double*
  %v4_241 = load double, double* %v3_241, align 4
  %v5_241 = fpext double %v4_241 to x86_fp80
  store x86_fp80 %v5_241, x86_fp80* %st7.global-to-local, align 4
  %v2_244 = add i32 %v2_23e, -24
  %v3_244 = inttoptr i32 %v2_244 to i32*
  %v4_244 = load i32, i32* %v3_244, align 4
  %v5_244 = sitofp i32 %v4_244 to x86_fp80
  store x86_fp80 %v5_244, x86_fp80* %st6.global-to-local, align 4
  %v3_247 = add i32 %v0_235, -76
  %v4_247 = inttoptr i32 %v3_247 to double*
  %v5_247 = load double, double* %v4_247, align 4
  %v6_247 = fpext double %v5_247 to x86_fp80
  %v7_247 = fmul x86_fp80 %v5_244, %v6_247
  store x86_fp80 %v7_247, x86_fp80* %st6.global-to-local, align 4
  %v4_24a = fadd x86_fp80 %v7_247, %v5_241
  %v2_24c = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v4_24a)
  store x86_fp80 %v2_24c, x86_fp80* %st7.global-to-local, align 4
  %v3_24e = add i32 %v2_23e, 128
  %tmp306 = fptrunc x86_fp80 %v4_24a to double
  %v4_24e = call double @llvm.fabs.f64(double %tmp306)
  %v5_24e = inttoptr i32 %v3_24e to double*
  store double %v4_24e, double* %v5_24e, align 4
  %v6_24e = add i3 %storemerge.in, 2
  store i3 %v6_24e, i3* %fpu_stat_TOP.global-to-local, align 1
  ret i32 %v0_257
}

declare i128 @__asm_movupd(i128) local_unnamed_addr

declare i128 @__asm_movsd(i64) local_unnamed_addr

declare i128 @__asm_mulpd(i128, i128) local_unnamed_addr

declare i128 @__asm_mulsd(i128, i64) local_unnamed_addr

declare i128 @__asm_addpd(i128, i128) local_unnamed_addr

declare i128 @__asm_addsd(i128, i64) local_unnamed_addr

declare void @__asm_movupd.1(i128, i128) local_unnamed_addr

declare i32 @__asm_movsd.2(i128) local_unnamed_addr

declare i32 @__asm_wait() local_unnamed_addr

declare i16 @__asm_fnstsw(i32) local_unnamed_addr

; Function Attrs: nounwind readnone speculatable
declare x86_fp80 @llvm.sqrt.f80(x86_fp80) #0

; Function Attrs: nounwind readnone speculatable
declare x86_fp80 @llvm.fabs.f80(x86_fp80) #0

declare i32 @__asm_fpatan() local_unnamed_addr

; Function Attrs: nounwind readnone speculatable
declare x86_fp80 @llvm.round.f80(x86_fp80) #0

declare i32 @__decompiler_undefined_function_1() local_unnamed_addr

declare double @__decompiler_undefined_function_3() local_unnamed_addr

; Function Attrs: nounwind readnone speculatable
declare double @llvm.fabs.f64(double) #0

attributes #0 = { nounwind readnone speculatable }
