Skip to content

Instantly share code, notes, and snippets.

@raviqqe
Created October 23, 2021 22:06
Show Gist options
  • Save raviqqe/07dfc63e1ba9d29e88bccdb8753b84fe to your computer and use it in GitHub Desktop.
Save raviqqe/07dfc63e1ba9d29e88bccdb8753b84fe to your computer and use it in GitHub Desktop.
; ModuleID = '840c8f9e80eb3a7b.bc'
target triple = "x86_64-unknown-linux-gnu"
@"/.pen/default/packages/cc2ed307d895f924/Print.pen:Line" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }
@"/.pen/default/packages/cc2ed307d895f924/Print.pen:Lines" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }
@"/.pen/default/packages/fb4346304f4058b6/Context.pen:New" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }
@"/.pen/default/packages/fb4346304f4058b6/Context.pen:Inner" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }
@"/.pen/default/packages/fb4346304f4058b6/Environment.pen:Arguments" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }
@"/.pen/default/packages/fb4346304f4058b6/Environment.pen:Variable" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }
@"/.pen/default/packages/fb4346304f4058b6/File.pen:StdIn" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }
@"/.pen/default/packages/fb4346304f4058b6/File.pen:StdOut" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }
@"/.pen/default/packages/fb4346304f4058b6/File.pen:StdErr" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }
@"/.pen/default/packages/fb4346304f4058b6/File.pen:OpenWithOptions" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }
@"/.pen/default/packages/fb4346304f4058b6/File.pen:Open" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }
@"/.pen/default/packages/fb4346304f4058b6/File.pen:Read" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }
@"/.pen/default/packages/fb4346304f4058b6/File.pen:ReadLimit" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*, double)*, {} (i64)*, {} }
@"/.pen/default/packages/fb4346304f4058b6/File.pen:Write" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }
@"/.pen/default/packages/fb4346304f4058b6/File.pen:Copy" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }
@"/.pen/default/packages/fb4346304f4058b6/File.pen:Move" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }
@"/.pen/default/packages/fb4346304f4058b6/File.pen:Remove" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }
@"/.pen/default/packages/fb4346304f4058b6/File.pen:Metadata" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }
@"/.pen/default/packages/fb4346304f4058b6/Tcp.pen:Bind" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }
@"/.pen/default/packages/fb4346304f4058b6/Tcp.pen:Connect" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }
@"/.pen/default/packages/fb4346304f4058b6/Tcp.pen:Accept" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }
@"/.pen/default/packages/fb4346304f4058b6/Tcp.pen:Receive" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*, double)*, {} (i64)*, {} }
@"/.pen/default/packages/fb4346304f4058b6/Tcp.pen:Send" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }
@"/arguments.pen:Parse" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*)*, {} (i64)*, {} }
@"prelude:_equalStrings" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, i1)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }
@"prelude:_first" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }*)*, {}*, {}*)*, {} (i64)*, {} }
@"prelude:_rest" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }
@"prelude:_firstRest" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*)*, {} (i64)*, {} }
@"prelude:_emptyList" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }
@"prelude:_prependToList" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }*, {}*)*, {} (i64)*, {} }
@"prelude:_prependToNode" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }*)*, {} (i64)*, {} }
@"prelude:_concatenateLists" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, {}*)*, {} (i64)*, {} }
@"prelude:_concatenateNodes" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }*)*, {}*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }*)*, {} (i64)*, {} }
@"prelude:_equalLists" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, i1)*, {}*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, i1)*, {}*, { { {} (i64)*, {} (i64)* }*, i64 }, { { {} (i64)*, {} (i64)* }*, i64 })*, {} (i64)*, {} }*, {}*, {}*)*, {} (i64)*, {} }
@"prelude:_equalNodes" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, i1)*, {}*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, i1)*, {}*, { { {} (i64)*, {} (i64)* }*, i64 }, { { {} (i64)*, {} (i64)* }*, i64 })*, {} (i64)*, {} }*, { { {} (i64)*, {} (i64)* }*, i64 }, { { {} (i64)*, {} (i64)* }*, i64 })*, {} (i64)*, {} }
@"prelude:error" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { { {} (i64)*, {} (i64)* }*, i64 })*, {} (i64)*, {} }
@"prelude:source" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*)*, {} (i64)*, {} }
@"/.pen/default/packages/fb4346304f4058b6/Context.pen:FfiMetadataResult.$equal" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, i1)*, {}*, {}*, {}*)*, {} (i64)*, {} }
@"/.pen/default/packages/fb4346304f4058b6/Context.pen:FfiNoneResult.$equal" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, i1)*, {}*, {}*, {}*)*, {} (i64)*, {} }
@"/.pen/default/packages/fb4346304f4058b6/Context.pen:FfiNumberResult.$equal" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, i1)*, {}*, {}*, {}*)*, {} (i64)*, {} }
@"/.pen/default/packages/fb4346304f4058b6/Context.pen:FfiStringResult.$equal" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, i1)*, {}*, {}*, {}*)*, {} (i64)*, {} }
@"/.pen/default/packages/fb4346304f4058b6/Context.pen:FfiUdpDatagramResult.$equal" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, i1)*, {}*, {}*, {}*)*, {} (i64)*, {} }
@"/.pen/default/packages/fb4346304f4058b6/File.pen:stdErr.$equal" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, i1)*, {}*, {}, {})*, {} (i64)*, {} }
@"/.pen/default/packages/fb4346304f4058b6/File.pen:stdIn.$equal" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, i1)*, {}*, {}, {})*, {} (i64)*, {} }
@"/.pen/default/packages/fb4346304f4058b6/File.pen:stdOut.$equal" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, i1)*, {}*, {}, {})*, {} (i64)*, {} }
@"/.pen/default/packages/fb4346304f4058b6/File/Metadata.pen:Metadata.$equal" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, i1)*, {}*, {}*, {}*)*, {} (i64)*, {} }
@"/.pen/default/packages/fb4346304f4058b6/File/OpenOptions.pen:OpenOptions.$equal" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, i1)*, {}*, {}*, {}*)*, {} (i64)*, {} }
@"/.pen/default/packages/fb4346304f4058b6/Udp/Datagram.pen:Datagram.$equal" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, i1)*, {}*, {}*, {}*)*, {} (i64)*, {} }
@"/arguments.pen:Arguments.$equal" = external global { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, i1)*, {}*, {}*, {}*)*, {} (i64)*, {} }
@ByteString = linkonce constant { {} (i64)*, {} (i64)* } { {} (i64)* @variant_clone_ByteString, {} (i64)* @variant_drop_ByteString }
@None = linkonce constant { {} (i64)*, {} (i64)* } { {} (i64)* @variant_clone_None, {} (i64)* @variant_drop_None }
@Number = linkonce constant { {} (i64)*, {} (i64)* } { {} (i64)* @variant_clone_Number, {} (i64)* @variant_drop_Number }
@"Record(Record { name: \22/.pen/default/packages/fb4346304f4058b6/Tcp/AcceptedStream.pen:AcceptedStream\22 })" = linkonce constant { {} (i64)*, {} (i64)* } { {} (i64)* @"variant_clone_Record(Record { name: \22/.pen/default/packages/fb4346304f4058b6/Tcp/AcceptedStream.pen:AcceptedStream\22 })", {} (i64)* @"variant_drop_Record(Record { name: \22/.pen/default/packages/fb4346304f4058b6/Tcp/AcceptedStream.pen:AcceptedStream\22 })" }
@"Record(Record { name: \22/.pen/default/packages/fb4346304f4058b6/Tcp/Listener.pen:Listener\22 })" = linkonce constant { {} (i64)*, {} (i64)* } { {} (i64)* @"variant_clone_Record(Record { name: \22/.pen/default/packages/fb4346304f4058b6/Tcp/Listener.pen:Listener\22 })", {} (i64)* @"variant_drop_Record(Record { name: \22/.pen/default/packages/fb4346304f4058b6/Tcp/Listener.pen:Listener\22 })" }
@"Record(Record { name: \22/arguments.pen:Arguments\22 })" = linkonce constant { {} (i64)*, {} (i64)* } { {} (i64)* @"variant_clone_Record(Record { name: \22/arguments.pen:Arguments\22 })", {} (i64)* @"variant_drop_Record(Record { name: \22/arguments.pen:Arguments\22 })" }
@"Record(Record { name: \22prelude:error\22 })" = linkonce constant { {} (i64)*, {} (i64)* } { {} (i64)* @"variant_clone_Record(Record { name: \22prelude:error\22 })", {} (i64)* @"variant_drop_Record(Record { name: \22prelude:error\22 })" }
@_fmm_294 = internal constant { i64, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } { i64 13, i8 117, i8 110, i8 107, i8 110, i8 111, i8 119, i8 110, i8 32, i8 101, i8 114, i8 114, i8 111, i8 114 }
@"/main.pen:main" = constant { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, {}*)*, {} (i64)*, {} } { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, {}*)* @_fmm_279, {} (i64)* @_fmm_29f, {} zeroinitializer }
@"/main.pen:run" = constant { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*)*, {} (i64)*, {} } { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*)* @_fmm_2a1, {} (i64)* @_fmm_2cb, {} zeroinitializer }
@"/main.pen:serve" = constant { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} } { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)* @_fmm_2cd, {} (i64)* @_fmm_333, {} zeroinitializer }
@_pen_main__wrapper = constant { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, {}*)*, {} (i64)*, {} } { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, {}*)* @_fmm_335, {} (i64)* @_fmm_33e, {} zeroinitializer }
declare i8* @_pen_malloc(i64)
declare i8* @_pen_realloc(i8*, i64)
declare void @_pen_free(i8*)
declare void @_pen_unreachable()
define linkonce {} @variant_clone_ByteString(i64 %0) {
entry:
%1 = insertvalue { i64, [0 x i8] } zeroinitializer, i64 %0, 0
%2 = alloca { i64, [0 x i8] }, align 8
store { i64, [0 x i8] } %1, { i64, [0 x i8] }* %2, align 4
%3 = bitcast { i64, [0 x i8] }* %2 to { [1 x i64] }*
%4 = load { [1 x i64] }, { [1 x i64] }* %3, align 4
%5 = alloca { [1 x i64] }, align 8
store { [1 x i64] } %4, { [1 x i64] }* %5, align 4
%6 = bitcast { [1 x i64] }* %5 to { { i64, i8 }*, [0 x i8] }*
%7 = load { { i64, i8 }*, [0 x i8] }, { { i64, i8 }*, [0 x i8] }* %6, align 8
%_fmm_0 = extractvalue { { i64, i8 }*, [0 x i8] } %7, 0
%8 = ptrtoint { i64, i8 }* %_fmm_0 to i64
%9 = icmp ne i64 %8, 0
br i1 %9, label %then, label %else
then: ; preds = %entry
%10 = ptrtoint { i64, i8 }* %_fmm_0 to i64
%11 = and i64 %10, 1
%12 = icmp ne i64 %11, 1
br i1 %12, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_3 = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%13 = ptrtoint { i64, i8 }* %_fmm_0 to i64
%14 = inttoptr i64 %13 to i64*
%15 = getelementptr i64, i64* %14, i64 -1
%16 = atomicrmw add i64* %15, i64 1 monotonic, align 8
br label %phi3
else2: ; preds = %then
br label %phi3
phi3: ; preds = %else2, %then1
%_fmm_2 = phi {} [ zeroinitializer, %then1 ], [ zeroinitializer, %else2 ]
br label %phi
}
define linkonce {} @variant_drop_ByteString(i64 %0) {
entry:
%1 = insertvalue { i64, [0 x i8] } zeroinitializer, i64 %0, 0
%2 = alloca { i64, [0 x i8] }, align 8
store { i64, [0 x i8] } %1, { i64, [0 x i8] }* %2, align 4
%3 = bitcast { i64, [0 x i8] }* %2 to { [1 x i64] }*
%4 = load { [1 x i64] }, { [1 x i64] }* %3, align 4
%5 = alloca { [1 x i64] }, align 8
store { [1 x i64] } %4, { [1 x i64] }* %5, align 4
%6 = bitcast { [1 x i64] }* %5 to { { i64, i8 }*, [0 x i8] }*
%7 = load { { i64, i8 }*, [0 x i8] }, { { i64, i8 }*, [0 x i8] }* %6, align 8
%_fmm_4 = extractvalue { { i64, i8 }*, [0 x i8] } %7, 0
%8 = ptrtoint { i64, i8 }* %_fmm_4 to i64
%9 = icmp ne i64 %8, 0
br i1 %9, label %then, label %else
then: ; preds = %entry
%10 = ptrtoint { i64, i8 }* %_fmm_4 to i64
%11 = and i64 %10, 1
%12 = icmp ne i64 %11, 1
br i1 %12, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_8 = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%13 = ptrtoint { i64, i8 }* %_fmm_4 to i64
%14 = inttoptr i64 %13 to i64*
%15 = getelementptr i64, i64* %14, i64 -1
%16 = atomicrmw sub i64* %15, i64 1 release, align 8
%17 = icmp eq i64 %16, 0
br i1 %17, label %then4, label %else5
else2: ; preds = %then
br label %phi3
phi3: ; preds = %phi6, %else2
%_fmm_7 = phi {} [ zeroinitializer, %phi6 ], [ zeroinitializer, %else2 ]
br label %phi
then4: ; preds = %then1
fence acquire
%18 = ptrtoint { i64, i8 }* %_fmm_4 to i64
%19 = inttoptr i64 %18 to i8*
%20 = ptrtoint i8* %19 to i64
%21 = inttoptr i64 %20 to i64*
%22 = getelementptr i64, i64* %21, i64 -1
%23 = ptrtoint i64* %22 to i64
%24 = inttoptr i64 %23 to i8*
call void @_pen_free(i8* %24)
br label %phi6
else5: ; preds = %then1
br label %phi6
phi6: ; preds = %else5, %then4
%_fmm_6 = phi {} [ zeroinitializer, %then4 ], [ zeroinitializer, %else5 ]
br label %phi3
}
define linkonce {} @variant_clone_None(i64 %0) {
entry:
%1 = insertvalue { i64, [0 x i8] } zeroinitializer, i64 %0, 0
%2 = alloca { i64, [0 x i8] }, align 8
store { i64, [0 x i8] } %1, { i64, [0 x i8] }* %2, align 4
%3 = bitcast { i64, [0 x i8] }* %2 to { [1 x i64] }*
%4 = load { [1 x i64] }, { [1 x i64] }* %3, align 4
%5 = alloca { [1 x i64] }, align 8
store { [1 x i64] } %4, { [1 x i64] }* %5, align 4
%6 = bitcast { [1 x i64] }* %5 to { {}, [8 x i8] }*
%7 = load { {}, [8 x i8] }, { {}, [8 x i8] }* %6, align 1
%_fmm_9 = extractvalue { {}, [8 x i8] } %7, 0
ret {} zeroinitializer
}
define linkonce {} @variant_drop_None(i64 %0) {
entry:
%1 = insertvalue { i64, [0 x i8] } zeroinitializer, i64 %0, 0
%2 = alloca { i64, [0 x i8] }, align 8
store { i64, [0 x i8] } %1, { i64, [0 x i8] }* %2, align 4
%3 = bitcast { i64, [0 x i8] }* %2 to { [1 x i64] }*
%4 = load { [1 x i64] }, { [1 x i64] }* %3, align 4
%5 = alloca { [1 x i64] }, align 8
store { [1 x i64] } %4, { [1 x i64] }* %5, align 4
%6 = bitcast { [1 x i64] }* %5 to { {}, [8 x i8] }*
%7 = load { {}, [8 x i8] }, { {}, [8 x i8] }* %6, align 1
%_fmm_a = extractvalue { {}, [8 x i8] } %7, 0
ret {} zeroinitializer
}
define linkonce {} @variant_clone_Number(i64 %0) {
entry:
%1 = insertvalue { i64, [0 x i8] } zeroinitializer, i64 %0, 0
%2 = alloca { i64, [0 x i8] }, align 8
store { i64, [0 x i8] } %1, { i64, [0 x i8] }* %2, align 4
%3 = bitcast { i64, [0 x i8] }* %2 to { [1 x i64] }*
%4 = load { [1 x i64] }, { [1 x i64] }* %3, align 4
%5 = alloca { [1 x i64] }, align 8
store { [1 x i64] } %4, { [1 x i64] }* %5, align 4
%6 = bitcast { [1 x i64] }* %5 to { double, [0 x i8] }*
%7 = load { double, [0 x i8] }, { double, [0 x i8] }* %6, align 8
%_fmm_b = extractvalue { double, [0 x i8] } %7, 0
ret {} zeroinitializer
}
define linkonce {} @variant_drop_Number(i64 %0) {
entry:
%1 = insertvalue { i64, [0 x i8] } zeroinitializer, i64 %0, 0
%2 = alloca { i64, [0 x i8] }, align 8
store { i64, [0 x i8] } %1, { i64, [0 x i8] }* %2, align 4
%3 = bitcast { i64, [0 x i8] }* %2 to { [1 x i64] }*
%4 = load { [1 x i64] }, { [1 x i64] }* %3, align 4
%5 = alloca { [1 x i64] }, align 8
store { [1 x i64] } %4, { [1 x i64] }* %5, align 4
%6 = bitcast { [1 x i64] }* %5 to { double, [0 x i8] }*
%7 = load { double, [0 x i8] }, { double, [0 x i8] }* %6, align 8
%_fmm_c = extractvalue { double, [0 x i8] } %7, 0
ret {} zeroinitializer
}
define linkonce {} @"variant_clone_Record(Record { name: \22/.pen/default/packages/fb4346304f4058b6/Tcp/AcceptedStream.pen:AcceptedStream\22 })"(i64 %0) {
entry:
%1 = insertvalue { i64, [0 x i8] } zeroinitializer, i64 %0, 0
%2 = alloca { i64, [0 x i8] }, align 8
store { i64, [0 x i8] } %1, { i64, [0 x i8] }* %2, align 4
%3 = bitcast { i64, [0 x i8] }* %2 to { [1 x i64] }*
%4 = load { [1 x i64] }, { [1 x i64] }* %3, align 4
%5 = alloca { [1 x i64] }, align 8
store { [1 x i64] } %4, { [1 x i64] }* %5, align 4
%6 = bitcast { [1 x i64] }* %5 to { {}*, [0 x i8] }*
%7 = load { {}*, [0 x i8] }, { {}*, [0 x i8] }* %6, align 8
%_fmm_d = extractvalue { {}*, [0 x i8] } %7, 0
%_fmm_e = tail call {} @"mir_clone_/.pen/default/packages/fb4346304f4058b6/Tcp/AcceptedStream.pen:AcceptedStream"({}* %_fmm_d)
ret {} zeroinitializer
}
define linkonce {} @"variant_drop_Record(Record { name: \22/.pen/default/packages/fb4346304f4058b6/Tcp/AcceptedStream.pen:AcceptedStream\22 })"(i64 %0) {
entry:
%1 = insertvalue { i64, [0 x i8] } zeroinitializer, i64 %0, 0
%2 = alloca { i64, [0 x i8] }, align 8
store { i64, [0 x i8] } %1, { i64, [0 x i8] }* %2, align 4
%3 = bitcast { i64, [0 x i8] }* %2 to { [1 x i64] }*
%4 = load { [1 x i64] }, { [1 x i64] }* %3, align 4
%5 = alloca { [1 x i64] }, align 8
store { [1 x i64] } %4, { [1 x i64] }* %5, align 4
%6 = bitcast { [1 x i64] }* %5 to { {}*, [0 x i8] }*
%7 = load { {}*, [0 x i8] }, { {}*, [0 x i8] }* %6, align 8
%_fmm_f = extractvalue { {}*, [0 x i8] } %7, 0
%_fmm_10 = tail call {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Tcp/AcceptedStream.pen:AcceptedStream"({}* %_fmm_f)
ret {} zeroinitializer
}
define linkonce {} @"variant_clone_Record(Record { name: \22/.pen/default/packages/fb4346304f4058b6/Tcp/Listener.pen:Listener\22 })"(i64 %0) {
entry:
%1 = insertvalue { i64, [0 x i8] } zeroinitializer, i64 %0, 0
%2 = alloca { i64, [0 x i8] }, align 8
store { i64, [0 x i8] } %1, { i64, [0 x i8] }* %2, align 4
%3 = bitcast { i64, [0 x i8] }* %2 to { [1 x i64] }*
%4 = load { [1 x i64] }, { [1 x i64] }* %3, align 4
%5 = alloca { [1 x i64] }, align 8
store { [1 x i64] } %4, { [1 x i64] }* %5, align 4
%6 = bitcast { [1 x i64] }* %5 to { {}*, [0 x i8] }*
%7 = load { {}*, [0 x i8] }, { {}*, [0 x i8] }* %6, align 8
%_fmm_11 = extractvalue { {}*, [0 x i8] } %7, 0
%_fmm_12 = tail call {} @"mir_clone_/.pen/default/packages/fb4346304f4058b6/Tcp/Listener.pen:Listener"({}* %_fmm_11)
ret {} zeroinitializer
}
define linkonce {} @"variant_drop_Record(Record { name: \22/.pen/default/packages/fb4346304f4058b6/Tcp/Listener.pen:Listener\22 })"(i64 %0) {
entry:
%1 = insertvalue { i64, [0 x i8] } zeroinitializer, i64 %0, 0
%2 = alloca { i64, [0 x i8] }, align 8
store { i64, [0 x i8] } %1, { i64, [0 x i8] }* %2, align 4
%3 = bitcast { i64, [0 x i8] }* %2 to { [1 x i64] }*
%4 = load { [1 x i64] }, { [1 x i64] }* %3, align 4
%5 = alloca { [1 x i64] }, align 8
store { [1 x i64] } %4, { [1 x i64] }* %5, align 4
%6 = bitcast { [1 x i64] }* %5 to { {}*, [0 x i8] }*
%7 = load { {}*, [0 x i8] }, { {}*, [0 x i8] }* %6, align 8
%_fmm_13 = extractvalue { {}*, [0 x i8] } %7, 0
%_fmm_14 = tail call {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Tcp/Listener.pen:Listener"({}* %_fmm_13)
ret {} zeroinitializer
}
define linkonce {} @"variant_clone_Record(Record { name: \22/arguments.pen:Arguments\22 })"(i64 %0) {
entry:
%1 = insertvalue { i64, [0 x i8] } zeroinitializer, i64 %0, 0
%2 = alloca { i64, [0 x i8] }, align 8
store { i64, [0 x i8] } %1, { i64, [0 x i8] }* %2, align 4
%3 = bitcast { i64, [0 x i8] }* %2 to { [1 x i64] }*
%4 = load { [1 x i64] }, { [1 x i64] }* %3, align 4
%5 = alloca { [1 x i64] }, align 8
store { [1 x i64] } %4, { [1 x i64] }* %5, align 4
%6 = bitcast { [1 x i64] }* %5 to { {}*, [0 x i8] }*
%7 = load { {}*, [0 x i8] }, { {}*, [0 x i8] }* %6, align 8
%_fmm_15 = extractvalue { {}*, [0 x i8] } %7, 0
%_fmm_16 = tail call {} @"mir_clone_/arguments.pen:Arguments"({}* %_fmm_15)
ret {} zeroinitializer
}
define linkonce {} @"variant_drop_Record(Record { name: \22/arguments.pen:Arguments\22 })"(i64 %0) {
entry:
%1 = insertvalue { i64, [0 x i8] } zeroinitializer, i64 %0, 0
%2 = alloca { i64, [0 x i8] }, align 8
store { i64, [0 x i8] } %1, { i64, [0 x i8] }* %2, align 4
%3 = bitcast { i64, [0 x i8] }* %2 to { [1 x i64] }*
%4 = load { [1 x i64] }, { [1 x i64] }* %3, align 4
%5 = alloca { [1 x i64] }, align 8
store { [1 x i64] } %4, { [1 x i64] }* %5, align 4
%6 = bitcast { [1 x i64] }* %5 to { {}*, [0 x i8] }*
%7 = load { {}*, [0 x i8] }, { {}*, [0 x i8] }* %6, align 8
%_fmm_17 = extractvalue { {}*, [0 x i8] } %7, 0
%_fmm_18 = tail call {} @"mir_drop_/arguments.pen:Arguments"({}* %_fmm_17)
ret {} zeroinitializer
}
define linkonce {} @"variant_clone_Record(Record { name: \22prelude:error\22 })"(i64 %0) {
entry:
%1 = insertvalue { i64, [0 x i8] } zeroinitializer, i64 %0, 0
%2 = alloca { i64, [0 x i8] }, align 8
store { i64, [0 x i8] } %1, { i64, [0 x i8] }* %2, align 4
%3 = bitcast { i64, [0 x i8] }* %2 to { [1 x i64] }*
%4 = load { [1 x i64] }, { [1 x i64] }* %3, align 4
%5 = alloca { [1 x i64] }, align 8
store { [1 x i64] } %4, { [1 x i64] }* %5, align 4
%6 = bitcast { [1 x i64] }* %5 to { {}*, [0 x i8] }*
%7 = load { {}*, [0 x i8] }, { {}*, [0 x i8] }* %6, align 8
%_fmm_19 = extractvalue { {}*, [0 x i8] } %7, 0
%_fmm_1a = tail call {} @"mir_clone_prelude:error"({}* %_fmm_19)
ret {} zeroinitializer
}
define linkonce {} @"variant_drop_Record(Record { name: \22prelude:error\22 })"(i64 %0) {
entry:
%1 = insertvalue { i64, [0 x i8] } zeroinitializer, i64 %0, 0
%2 = alloca { i64, [0 x i8] }, align 8
store { i64, [0 x i8] } %1, { i64, [0 x i8] }* %2, align 4
%3 = bitcast { i64, [0 x i8] }* %2 to { [1 x i64] }*
%4 = load { [1 x i64] }, { [1 x i64] }* %3, align 4
%5 = alloca { [1 x i64] }, align 8
store { [1 x i64] } %4, { [1 x i64] }* %5, align 4
%6 = bitcast { [1 x i64] }* %5 to { {}*, [0 x i8] }*
%7 = load { {}*, [0 x i8] }, { {}*, [0 x i8] }* %6, align 8
%_fmm_1b = extractvalue { {}*, [0 x i8] } %7, 0
%_fmm_1c = tail call {} @"mir_drop_prelude:error"({}* %_fmm_1b)
ret {} zeroinitializer
}
define linkonce {} @"mir_clone_/.pen/default/packages/fb4346304f4058b6/Context.pen:Context"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_1f = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw add i64* %8, i64 1 monotonic, align 8
br label %phi3
else2: ; preds = %then
br label %phi3
phi3: ; preds = %else2, %then1
%_fmm_1e = phi {} [ zeroinitializer, %then1 ], [ zeroinitializer, %else2 ]
br label %phi
}
define linkonce {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Context.pen:Context"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_26 = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw sub i64* %8, i64 1 release, align 8
%10 = icmp eq i64 %9, 0
br i1 %10, label %then4, label %else5
else2: ; preds = %then
br label %phi3
phi3: ; preds = %phi6, %else2
%_fmm_25 = phi {} [ zeroinitializer, %phi6 ], [ zeroinitializer, %else2 ]
br label %phi
then4: ; preds = %then1
fence acquire
%11 = ptrtoint {}* %0 to i64
%12 = inttoptr i64 %11 to { {}* }*
%_fmm_21 = load { {}* }, { {}* }* %12, align 8
%_fmm_22 = extractvalue { {}* } %_fmm_21, 0
%_fmm_23 = tail call {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Context.pen:InnerContext"({}* %_fmm_22)
%13 = ptrtoint {}* %0 to i64
%14 = inttoptr i64 %13 to i8*
%15 = ptrtoint i8* %14 to i64
%16 = inttoptr i64 %15 to i64*
%17 = getelementptr i64, i64* %16, i64 -1
%18 = ptrtoint i64* %17 to i64
%19 = inttoptr i64 %18 to i8*
call void @_pen_free(i8* %19)
br label %phi6
else5: ; preds = %then1
br label %phi6
phi6: ; preds = %else5, %then4
%_fmm_24 = phi {} [ zeroinitializer, %then4 ], [ zeroinitializer, %else5 ]
br label %phi3
}
define linkonce {} @"mir_clone_/.pen/default/packages/fb4346304f4058b6/Context.pen:FfiMetadataResult"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_29 = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw add i64* %8, i64 1 monotonic, align 8
br label %phi3
else2: ; preds = %then
br label %phi3
phi3: ; preds = %else2, %then1
%_fmm_28 = phi {} [ zeroinitializer, %then1 ], [ zeroinitializer, %else2 ]
br label %phi
}
define linkonce {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Context.pen:FfiMetadataResult"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_32 = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw sub i64* %8, i64 1 release, align 8
%10 = icmp eq i64 %9, 0
br i1 %10, label %then4, label %else5
else2: ; preds = %then
br label %phi3
phi3: ; preds = %phi6, %else2
%_fmm_31 = phi {} [ zeroinitializer, %phi6 ], [ zeroinitializer, %else2 ]
br label %phi
then4: ; preds = %then1
fence acquire
%11 = ptrtoint {}* %0 to i64
%12 = inttoptr i64 %11 to { {}*, double }*
%_fmm_2b = load { {}*, double }, { {}*, double }* %12, align 8
%_fmm_2c = extractvalue { {}*, double } %_fmm_2b, 0
%_fmm_2d = tail call {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/File/Metadata.pen:Metadata"({}* %_fmm_2c)
%13 = ptrtoint {}* %0 to i64
%14 = inttoptr i64 %13 to { {}*, double }*
%_fmm_2e = load { {}*, double }, { {}*, double }* %14, align 8
%_fmm_2f = extractvalue { {}*, double } %_fmm_2e, 1
%15 = ptrtoint {}* %0 to i64
%16 = inttoptr i64 %15 to i8*
%17 = ptrtoint i8* %16 to i64
%18 = inttoptr i64 %17 to i64*
%19 = getelementptr i64, i64* %18, i64 -1
%20 = ptrtoint i64* %19 to i64
%21 = inttoptr i64 %20 to i8*
call void @_pen_free(i8* %21)
br label %phi6
else5: ; preds = %then1
br label %phi6
phi6: ; preds = %else5, %then4
%_fmm_30 = phi {} [ zeroinitializer, %then4 ], [ zeroinitializer, %else5 ]
br label %phi3
}
define linkonce {} @"mir_clone_/.pen/default/packages/fb4346304f4058b6/Context.pen:FfiNoneResult"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_35 = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw add i64* %8, i64 1 monotonic, align 8
br label %phi3
else2: ; preds = %then
br label %phi3
phi3: ; preds = %else2, %then1
%_fmm_34 = phi {} [ zeroinitializer, %then1 ], [ zeroinitializer, %else2 ]
br label %phi
}
define linkonce {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Context.pen:FfiNoneResult"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_3d = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw sub i64* %8, i64 1 release, align 8
%10 = icmp eq i64 %9, 0
br i1 %10, label %then4, label %else5
else2: ; preds = %then
br label %phi3
phi3: ; preds = %phi6, %else2
%_fmm_3c = phi {} [ zeroinitializer, %phi6 ], [ zeroinitializer, %else2 ]
br label %phi
then4: ; preds = %then1
fence acquire
%11 = ptrtoint {}* %0 to i64
%12 = inttoptr i64 %11 to { {}, double }*
%_fmm_37 = load { {}, double }, { {}, double }* %12, align 8
%_fmm_38 = extractvalue { {}, double } %_fmm_37, 0
%13 = ptrtoint {}* %0 to i64
%14 = inttoptr i64 %13 to { {}, double }*
%_fmm_39 = load { {}, double }, { {}, double }* %14, align 8
%_fmm_3a = extractvalue { {}, double } %_fmm_39, 1
%15 = ptrtoint {}* %0 to i64
%16 = inttoptr i64 %15 to i8*
%17 = ptrtoint i8* %16 to i64
%18 = inttoptr i64 %17 to i64*
%19 = getelementptr i64, i64* %18, i64 -1
%20 = ptrtoint i64* %19 to i64
%21 = inttoptr i64 %20 to i8*
call void @_pen_free(i8* %21)
br label %phi6
else5: ; preds = %then1
br label %phi6
phi6: ; preds = %else5, %then4
%_fmm_3b = phi {} [ zeroinitializer, %then4 ], [ zeroinitializer, %else5 ]
br label %phi3
}
define linkonce {} @"mir_clone_/.pen/default/packages/fb4346304f4058b6/Context.pen:FfiNumberResult"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_40 = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw add i64* %8, i64 1 monotonic, align 8
br label %phi3
else2: ; preds = %then
br label %phi3
phi3: ; preds = %else2, %then1
%_fmm_3f = phi {} [ zeroinitializer, %then1 ], [ zeroinitializer, %else2 ]
br label %phi
}
define linkonce {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Context.pen:FfiNumberResult"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_48 = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw sub i64* %8, i64 1 release, align 8
%10 = icmp eq i64 %9, 0
br i1 %10, label %then4, label %else5
else2: ; preds = %then
br label %phi3
phi3: ; preds = %phi6, %else2
%_fmm_47 = phi {} [ zeroinitializer, %phi6 ], [ zeroinitializer, %else2 ]
br label %phi
then4: ; preds = %then1
fence acquire
%11 = ptrtoint {}* %0 to i64
%12 = inttoptr i64 %11 to { double, double }*
%_fmm_42 = load { double, double }, { double, double }* %12, align 8
%_fmm_43 = extractvalue { double, double } %_fmm_42, 0
%13 = ptrtoint {}* %0 to i64
%14 = inttoptr i64 %13 to { double, double }*
%_fmm_44 = load { double, double }, { double, double }* %14, align 8
%_fmm_45 = extractvalue { double, double } %_fmm_44, 1
%15 = ptrtoint {}* %0 to i64
%16 = inttoptr i64 %15 to i8*
%17 = ptrtoint i8* %16 to i64
%18 = inttoptr i64 %17 to i64*
%19 = getelementptr i64, i64* %18, i64 -1
%20 = ptrtoint i64* %19 to i64
%21 = inttoptr i64 %20 to i8*
call void @_pen_free(i8* %21)
br label %phi6
else5: ; preds = %then1
br label %phi6
phi6: ; preds = %else5, %then4
%_fmm_46 = phi {} [ zeroinitializer, %then4 ], [ zeroinitializer, %else5 ]
br label %phi3
}
define linkonce {} @"mir_clone_/.pen/default/packages/fb4346304f4058b6/Context.pen:FfiOpenResult"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_4b = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw add i64* %8, i64 1 monotonic, align 8
br label %phi3
else2: ; preds = %then
br label %phi3
phi3: ; preds = %else2, %then1
%_fmm_4a = phi {} [ zeroinitializer, %then1 ], [ zeroinitializer, %else2 ]
br label %phi
}
define linkonce {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Context.pen:FfiOpenResult"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_54 = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw sub i64* %8, i64 1 release, align 8
%10 = icmp eq i64 %9, 0
br i1 %10, label %then4, label %else5
else2: ; preds = %then
br label %phi3
phi3: ; preds = %phi6, %else2
%_fmm_53 = phi {} [ zeroinitializer, %phi6 ], [ zeroinitializer, %else2 ]
br label %phi
then4: ; preds = %then1
fence acquire
%11 = ptrtoint {}* %0 to i64
%12 = inttoptr i64 %11 to { {}*, double }*
%_fmm_4d = load { {}*, double }, { {}*, double }* %12, align 8
%_fmm_4e = extractvalue { {}*, double } %_fmm_4d, 0
%_fmm_4f = tail call {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/normalFile.pen:NormalFile"({}* %_fmm_4e)
%13 = ptrtoint {}* %0 to i64
%14 = inttoptr i64 %13 to { {}*, double }*
%_fmm_50 = load { {}*, double }, { {}*, double }* %14, align 8
%_fmm_51 = extractvalue { {}*, double } %_fmm_50, 1
%15 = ptrtoint {}* %0 to i64
%16 = inttoptr i64 %15 to i8*
%17 = ptrtoint i8* %16 to i64
%18 = inttoptr i64 %17 to i64*
%19 = getelementptr i64, i64* %18, i64 -1
%20 = ptrtoint i64* %19 to i64
%21 = inttoptr i64 %20 to i8*
call void @_pen_free(i8* %21)
br label %phi6
else5: ; preds = %then1
br label %phi6
phi6: ; preds = %else5, %then4
%_fmm_52 = phi {} [ zeroinitializer, %then4 ], [ zeroinitializer, %else5 ]
br label %phi3
}
define linkonce {} @"mir_clone_/.pen/default/packages/fb4346304f4058b6/Context.pen:FfiReadDirectoryResult"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_57 = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw add i64* %8, i64 1 monotonic, align 8
br label %phi3
else2: ; preds = %then
br label %phi3
phi3: ; preds = %else2, %then1
%_fmm_56 = phi {} [ zeroinitializer, %then1 ], [ zeroinitializer, %else2 ]
br label %phi
}
define linkonce {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Context.pen:FfiReadDirectoryResult"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_60 = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw sub i64* %8, i64 1 release, align 8
%10 = icmp eq i64 %9, 0
br i1 %10, label %then4, label %else5
else2: ; preds = %then
br label %phi3
phi3: ; preds = %phi6, %else2
%_fmm_5f = phi {} [ zeroinitializer, %phi6 ], [ zeroinitializer, %else2 ]
br label %phi
then4: ; preds = %then1
fence acquire
%11 = ptrtoint {}* %0 to i64
%12 = inttoptr i64 %11 to { {}*, double }*
%_fmm_59 = load { {}*, double }, { {}*, double }* %12, align 8
%_fmm_5a = extractvalue { {}*, double } %_fmm_59, 0
%_fmm_5b = tail call {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/array.pen:Array"({}* %_fmm_5a)
%13 = ptrtoint {}* %0 to i64
%14 = inttoptr i64 %13 to { {}*, double }*
%_fmm_5c = load { {}*, double }, { {}*, double }* %14, align 8
%_fmm_5d = extractvalue { {}*, double } %_fmm_5c, 1
%15 = ptrtoint {}* %0 to i64
%16 = inttoptr i64 %15 to i8*
%17 = ptrtoint i8* %16 to i64
%18 = inttoptr i64 %17 to i64*
%19 = getelementptr i64, i64* %18, i64 -1
%20 = ptrtoint i64* %19 to i64
%21 = inttoptr i64 %20 to i8*
call void @_pen_free(i8* %21)
br label %phi6
else5: ; preds = %then1
br label %phi6
phi6: ; preds = %else5, %then4
%_fmm_5e = phi {} [ zeroinitializer, %then4 ], [ zeroinitializer, %else5 ]
br label %phi3
}
define linkonce {} @"mir_clone_/.pen/default/packages/fb4346304f4058b6/Context.pen:FfiStringResult"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_63 = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw add i64* %8, i64 1 monotonic, align 8
br label %phi3
else2: ; preds = %then
br label %phi3
phi3: ; preds = %else2, %then1
%_fmm_62 = phi {} [ zeroinitializer, %then1 ], [ zeroinitializer, %else2 ]
br label %phi
}
define linkonce {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Context.pen:FfiStringResult"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_6f = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw sub i64* %8, i64 1 release, align 8
%10 = icmp eq i64 %9, 0
br i1 %10, label %then4, label %else5
else2: ; preds = %then
br label %phi3
phi3: ; preds = %phi6, %else2
%_fmm_6e = phi {} [ zeroinitializer, %phi6 ], [ zeroinitializer, %else2 ]
br label %phi
then4: ; preds = %then1
fence acquire
%11 = ptrtoint {}* %0 to i64
%12 = inttoptr i64 %11 to { { i64, i8 }*, double }*
%_fmm_65 = load { { i64, i8 }*, double }, { { i64, i8 }*, double }* %12, align 8
%_fmm_66 = extractvalue { { i64, i8 }*, double } %_fmm_65, 0
%13 = ptrtoint { i64, i8 }* %_fmm_66 to i64
%14 = icmp ne i64 %13, 0
br i1 %14, label %then7, label %else8
else5: ; preds = %then1
br label %phi6
phi6: ; preds = %phi9, %else5
%_fmm_6d = phi {} [ zeroinitializer, %phi9 ], [ zeroinitializer, %else5 ]
br label %phi3
then7: ; preds = %then4
%15 = ptrtoint { i64, i8 }* %_fmm_66 to i64
%16 = and i64 %15, 1
%17 = icmp ne i64 %16, 1
br i1 %17, label %then10, label %else11
else8: ; preds = %then4
br label %phi9
phi9: ; preds = %phi12, %else8
%_fmm_6a = phi {} [ zeroinitializer, %phi12 ], [ zeroinitializer, %else8 ]
%18 = ptrtoint {}* %0 to i64
%19 = inttoptr i64 %18 to { { i64, i8 }*, double }*
%_fmm_6b = load { { i64, i8 }*, double }, { { i64, i8 }*, double }* %19, align 8
%_fmm_6c = extractvalue { { i64, i8 }*, double } %_fmm_6b, 1
%20 = ptrtoint {}* %0 to i64
%21 = inttoptr i64 %20 to i8*
%22 = ptrtoint i8* %21 to i64
%23 = inttoptr i64 %22 to i64*
%24 = getelementptr i64, i64* %23, i64 -1
%25 = ptrtoint i64* %24 to i64
%26 = inttoptr i64 %25 to i8*
call void @_pen_free(i8* %26)
br label %phi6
then10: ; preds = %then7
%27 = ptrtoint { i64, i8 }* %_fmm_66 to i64
%28 = inttoptr i64 %27 to i64*
%29 = getelementptr i64, i64* %28, i64 -1
%30 = atomicrmw sub i64* %29, i64 1 release, align 8
%31 = icmp eq i64 %30, 0
br i1 %31, label %then13, label %else14
else11: ; preds = %then7
br label %phi12
phi12: ; preds = %phi15, %else11
%_fmm_69 = phi {} [ zeroinitializer, %phi15 ], [ zeroinitializer, %else11 ]
br label %phi9
then13: ; preds = %then10
fence acquire
%32 = ptrtoint { i64, i8 }* %_fmm_66 to i64
%33 = inttoptr i64 %32 to i8*
%34 = ptrtoint i8* %33 to i64
%35 = inttoptr i64 %34 to i64*
%36 = getelementptr i64, i64* %35, i64 -1
%37 = ptrtoint i64* %36 to i64
%38 = inttoptr i64 %37 to i8*
call void @_pen_free(i8* %38)
br label %phi15
else14: ; preds = %then10
br label %phi15
phi15: ; preds = %else14, %then13
%_fmm_68 = phi {} [ zeroinitializer, %then13 ], [ zeroinitializer, %else14 ]
br label %phi12
}
define linkonce {} @"mir_clone_/.pen/default/packages/fb4346304f4058b6/Context.pen:FfiTcpAcceptedStreamResult"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_72 = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw add i64* %8, i64 1 monotonic, align 8
br label %phi3
else2: ; preds = %then
br label %phi3
phi3: ; preds = %else2, %then1
%_fmm_71 = phi {} [ zeroinitializer, %then1 ], [ zeroinitializer, %else2 ]
br label %phi
}
define linkonce {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Context.pen:FfiTcpAcceptedStreamResult"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_7b = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw sub i64* %8, i64 1 release, align 8
%10 = icmp eq i64 %9, 0
br i1 %10, label %then4, label %else5
else2: ; preds = %then
br label %phi3
phi3: ; preds = %phi6, %else2
%_fmm_7a = phi {} [ zeroinitializer, %phi6 ], [ zeroinitializer, %else2 ]
br label %phi
then4: ; preds = %then1
fence acquire
%11 = ptrtoint {}* %0 to i64
%12 = inttoptr i64 %11 to { {}*, double }*
%_fmm_74 = load { {}*, double }, { {}*, double }* %12, align 8
%_fmm_75 = extractvalue { {}*, double } %_fmm_74, 0
%_fmm_76 = tail call {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Tcp/AcceptedStream.pen:AcceptedStream"({}* %_fmm_75)
%13 = ptrtoint {}* %0 to i64
%14 = inttoptr i64 %13 to { {}*, double }*
%_fmm_77 = load { {}*, double }, { {}*, double }* %14, align 8
%_fmm_78 = extractvalue { {}*, double } %_fmm_77, 1
%15 = ptrtoint {}* %0 to i64
%16 = inttoptr i64 %15 to i8*
%17 = ptrtoint i8* %16 to i64
%18 = inttoptr i64 %17 to i64*
%19 = getelementptr i64, i64* %18, i64 -1
%20 = ptrtoint i64* %19 to i64
%21 = inttoptr i64 %20 to i8*
call void @_pen_free(i8* %21)
br label %phi6
else5: ; preds = %then1
br label %phi6
phi6: ; preds = %else5, %then4
%_fmm_79 = phi {} [ zeroinitializer, %then4 ], [ zeroinitializer, %else5 ]
br label %phi3
}
define linkonce {} @"mir_clone_/.pen/default/packages/fb4346304f4058b6/Context.pen:FfiTcpListenerResult"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_7e = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw add i64* %8, i64 1 monotonic, align 8
br label %phi3
else2: ; preds = %then
br label %phi3
phi3: ; preds = %else2, %then1
%_fmm_7d = phi {} [ zeroinitializer, %then1 ], [ zeroinitializer, %else2 ]
br label %phi
}
define linkonce {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Context.pen:FfiTcpListenerResult"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_87 = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw sub i64* %8, i64 1 release, align 8
%10 = icmp eq i64 %9, 0
br i1 %10, label %then4, label %else5
else2: ; preds = %then
br label %phi3
phi3: ; preds = %phi6, %else2
%_fmm_86 = phi {} [ zeroinitializer, %phi6 ], [ zeroinitializer, %else2 ]
br label %phi
then4: ; preds = %then1
fence acquire
%11 = ptrtoint {}* %0 to i64
%12 = inttoptr i64 %11 to { {}*, double }*
%_fmm_80 = load { {}*, double }, { {}*, double }* %12, align 8
%_fmm_81 = extractvalue { {}*, double } %_fmm_80, 0
%_fmm_82 = tail call {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Tcp/Listener.pen:Listener"({}* %_fmm_81)
%13 = ptrtoint {}* %0 to i64
%14 = inttoptr i64 %13 to { {}*, double }*
%_fmm_83 = load { {}*, double }, { {}*, double }* %14, align 8
%_fmm_84 = extractvalue { {}*, double } %_fmm_83, 1
%15 = ptrtoint {}* %0 to i64
%16 = inttoptr i64 %15 to i8*
%17 = ptrtoint i8* %16 to i64
%18 = inttoptr i64 %17 to i64*
%19 = getelementptr i64, i64* %18, i64 -1
%20 = ptrtoint i64* %19 to i64
%21 = inttoptr i64 %20 to i8*
call void @_pen_free(i8* %21)
br label %phi6
else5: ; preds = %then1
br label %phi6
phi6: ; preds = %else5, %then4
%_fmm_85 = phi {} [ zeroinitializer, %then4 ], [ zeroinitializer, %else5 ]
br label %phi3
}
define linkonce {} @"mir_clone_/.pen/default/packages/fb4346304f4058b6/Context.pen:FfiTcpStreamResult"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_8a = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw add i64* %8, i64 1 monotonic, align 8
br label %phi3
else2: ; preds = %then
br label %phi3
phi3: ; preds = %else2, %then1
%_fmm_89 = phi {} [ zeroinitializer, %then1 ], [ zeroinitializer, %else2 ]
br label %phi
}
define linkonce {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Context.pen:FfiTcpStreamResult"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_93 = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw sub i64* %8, i64 1 release, align 8
%10 = icmp eq i64 %9, 0
br i1 %10, label %then4, label %else5
else2: ; preds = %then
br label %phi3
phi3: ; preds = %phi6, %else2
%_fmm_92 = phi {} [ zeroinitializer, %phi6 ], [ zeroinitializer, %else2 ]
br label %phi
then4: ; preds = %then1
fence acquire
%11 = ptrtoint {}* %0 to i64
%12 = inttoptr i64 %11 to { {}*, double }*
%_fmm_8c = load { {}*, double }, { {}*, double }* %12, align 8
%_fmm_8d = extractvalue { {}*, double } %_fmm_8c, 0
%_fmm_8e = tail call {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Tcp/Stream.pen:Stream"({}* %_fmm_8d)
%13 = ptrtoint {}* %0 to i64
%14 = inttoptr i64 %13 to { {}*, double }*
%_fmm_8f = load { {}*, double }, { {}*, double }* %14, align 8
%_fmm_90 = extractvalue { {}*, double } %_fmm_8f, 1
%15 = ptrtoint {}* %0 to i64
%16 = inttoptr i64 %15 to i8*
%17 = ptrtoint i8* %16 to i64
%18 = inttoptr i64 %17 to i64*
%19 = getelementptr i64, i64* %18, i64 -1
%20 = ptrtoint i64* %19 to i64
%21 = inttoptr i64 %20 to i8*
call void @_pen_free(i8* %21)
br label %phi6
else5: ; preds = %then1
br label %phi6
phi6: ; preds = %else5, %then4
%_fmm_91 = phi {} [ zeroinitializer, %then4 ], [ zeroinitializer, %else5 ]
br label %phi3
}
define linkonce {} @"mir_clone_/.pen/default/packages/fb4346304f4058b6/Context.pen:FfiUdpDatagramResult"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_96 = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw add i64* %8, i64 1 monotonic, align 8
br label %phi3
else2: ; preds = %then
br label %phi3
phi3: ; preds = %else2, %then1
%_fmm_95 = phi {} [ zeroinitializer, %then1 ], [ zeroinitializer, %else2 ]
br label %phi
}
define linkonce {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Context.pen:FfiUdpDatagramResult"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_9f = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw sub i64* %8, i64 1 release, align 8
%10 = icmp eq i64 %9, 0
br i1 %10, label %then4, label %else5
else2: ; preds = %then
br label %phi3
phi3: ; preds = %phi6, %else2
%_fmm_9e = phi {} [ zeroinitializer, %phi6 ], [ zeroinitializer, %else2 ]
br label %phi
then4: ; preds = %then1
fence acquire
%11 = ptrtoint {}* %0 to i64
%12 = inttoptr i64 %11 to { {}*, double }*
%_fmm_98 = load { {}*, double }, { {}*, double }* %12, align 8
%_fmm_99 = extractvalue { {}*, double } %_fmm_98, 0
%_fmm_9a = tail call {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Udp/Datagram.pen:Datagram"({}* %_fmm_99)
%13 = ptrtoint {}* %0 to i64
%14 = inttoptr i64 %13 to { {}*, double }*
%_fmm_9b = load { {}*, double }, { {}*, double }* %14, align 8
%_fmm_9c = extractvalue { {}*, double } %_fmm_9b, 1
%15 = ptrtoint {}* %0 to i64
%16 = inttoptr i64 %15 to i8*
%17 = ptrtoint i8* %16 to i64
%18 = inttoptr i64 %17 to i64*
%19 = getelementptr i64, i64* %18, i64 -1
%20 = ptrtoint i64* %19 to i64
%21 = inttoptr i64 %20 to i8*
call void @_pen_free(i8* %21)
br label %phi6
else5: ; preds = %then1
br label %phi6
phi6: ; preds = %else5, %then4
%_fmm_9d = phi {} [ zeroinitializer, %then4 ], [ zeroinitializer, %else5 ]
br label %phi3
}
define linkonce {} @"mir_clone_/.pen/default/packages/fb4346304f4058b6/Context.pen:FfiUdpSocketResult"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_a2 = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw add i64* %8, i64 1 monotonic, align 8
br label %phi3
else2: ; preds = %then
br label %phi3
phi3: ; preds = %else2, %then1
%_fmm_a1 = phi {} [ zeroinitializer, %then1 ], [ zeroinitializer, %else2 ]
br label %phi
}
define linkonce {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Context.pen:FfiUdpSocketResult"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_ab = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw sub i64* %8, i64 1 release, align 8
%10 = icmp eq i64 %9, 0
br i1 %10, label %then4, label %else5
else2: ; preds = %then
br label %phi3
phi3: ; preds = %phi6, %else2
%_fmm_aa = phi {} [ zeroinitializer, %phi6 ], [ zeroinitializer, %else2 ]
br label %phi
then4: ; preds = %then1
fence acquire
%11 = ptrtoint {}* %0 to i64
%12 = inttoptr i64 %11 to { {}*, double }*
%_fmm_a4 = load { {}*, double }, { {}*, double }* %12, align 8
%_fmm_a5 = extractvalue { {}*, double } %_fmm_a4, 0
%_fmm_a6 = tail call {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Udp/Socket.pen:Socket"({}* %_fmm_a5)
%13 = ptrtoint {}* %0 to i64
%14 = inttoptr i64 %13 to { {}*, double }*
%_fmm_a7 = load { {}*, double }, { {}*, double }* %14, align 8
%_fmm_a8 = extractvalue { {}*, double } %_fmm_a7, 1
%15 = ptrtoint {}* %0 to i64
%16 = inttoptr i64 %15 to i8*
%17 = ptrtoint i8* %16 to i64
%18 = inttoptr i64 %17 to i64*
%19 = getelementptr i64, i64* %18, i64 -1
%20 = ptrtoint i64* %19 to i64
%21 = inttoptr i64 %20 to i8*
call void @_pen_free(i8* %21)
br label %phi6
else5: ; preds = %then1
br label %phi6
phi6: ; preds = %else5, %then4
%_fmm_a9 = phi {} [ zeroinitializer, %then4 ], [ zeroinitializer, %else5 ]
br label %phi3
}
define linkonce {} @"mir_clone_/.pen/default/packages/fb4346304f4058b6/Context.pen:InnerContext"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_ae = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw add i64* %8, i64 1 monotonic, align 8
br label %phi3
else2: ; preds = %then
br label %phi3
phi3: ; preds = %else2, %then1
%_fmm_ad = phi {} [ zeroinitializer, %then1 ], [ zeroinitializer, %else2 ]
br label %phi
}
define linkonce {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Context.pen:InnerContext"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_192 = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw sub i64* %8, i64 1 release, align 8
%10 = icmp eq i64 %9, 0
br i1 %10, label %then4, label %else5
else2: ; preds = %then
br label %phi3
phi3: ; preds = %phi6, %else2
%_fmm_191 = phi {} [ zeroinitializer, %phi6 ], [ zeroinitializer, %else2 ]
br label %phi
then4: ; preds = %then1
fence acquire
%11 = ptrtoint {}* %0 to i64
%12 = inttoptr i64 %11 to { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }*
%_fmm_b0 = load { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }, { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }* %12, align 8
%_fmm_b1 = extractvalue { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* } %_fmm_b0, 0
%13 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }* %_fmm_b1 to i64
%14 = icmp ne i64 %13, 0
br i1 %14, label %then7, label %else8
else5: ; preds = %then1
br label %phi6
phi6: ; preds = %phi252, %else5
%_fmm_190 = phi {} [ zeroinitializer, %phi252 ], [ zeroinitializer, %else5 ]
br label %phi3
then7: ; preds = %then4
%15 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }* %_fmm_b1 to i64
%16 = and i64 %15, 1
%17 = icmp ne i64 %16, 1
br i1 %17, label %then10, label %else11
else8: ; preds = %then4
br label %phi9
phi9: ; preds = %phi12, %else8
%_fmm_b7 = phi {} [ zeroinitializer, %phi12 ], [ zeroinitializer, %else8 ]
%18 = ptrtoint {}* %0 to i64
%19 = inttoptr i64 %18 to { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }*
%_fmm_b8 = load { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }, { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }* %19, align 8
%_fmm_b9 = extractvalue { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* } %_fmm_b8, 1
%20 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }* %_fmm_b9 to i64
%21 = icmp ne i64 %20, 0
br i1 %21, label %then16, label %else17
then10: ; preds = %then7
%22 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }* %_fmm_b1 to i64
%23 = inttoptr i64 %22 to i64*
%24 = getelementptr i64, i64* %23, i64 -1
%25 = atomicrmw sub i64* %24, i64 1 release, align 8
%26 = icmp eq i64 %25, 0
br i1 %26, label %then13, label %else14
else11: ; preds = %then7
br label %phi12
phi12: ; preds = %phi15, %else11
%_fmm_b6 = phi {} [ zeroinitializer, %phi15 ], [ zeroinitializer, %else11 ]
br label %phi9
then13: ; preds = %then10
fence acquire
%27 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }* %_fmm_b1 to i64
%28 = and i64 %27, -2
%29 = inttoptr i64 %28 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*
%30 = getelementptr { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }* %29, i32 0, i32 1
%_fmm_b3 = load {} (i64)*, {} (i64)** %30, align 8
%31 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }* %_fmm_b1 to i64
%_fmm_b4 = tail call {} %_fmm_b3(i64 %31)
%32 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }* %_fmm_b1 to i64
%33 = inttoptr i64 %32 to i8*
%34 = ptrtoint i8* %33 to i64
%35 = inttoptr i64 %34 to i64*
%36 = getelementptr i64, i64* %35, i64 -1
%37 = ptrtoint i64* %36 to i64
%38 = inttoptr i64 %37 to i8*
call void @_pen_free(i8* %38)
br label %phi15
else14: ; preds = %then10
br label %phi15
phi15: ; preds = %else14, %then13
%_fmm_b5 = phi {} [ zeroinitializer, %then13 ], [ zeroinitializer, %else14 ]
br label %phi12
then16: ; preds = %phi9
%39 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }* %_fmm_b9 to i64
%40 = and i64 %39, 1
%41 = icmp ne i64 %40, 1
br i1 %41, label %then19, label %else20
else17: ; preds = %phi9
br label %phi18
phi18: ; preds = %phi21, %else17
%_fmm_bf = phi {} [ zeroinitializer, %phi21 ], [ zeroinitializer, %else17 ]
%42 = ptrtoint {}* %0 to i64
%43 = inttoptr i64 %42 to { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }*
%_fmm_c0 = load { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }, { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }* %43, align 8
%_fmm_c1 = extractvalue { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* } %_fmm_c0, 2
%44 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_c1 to i64
%45 = icmp ne i64 %44, 0
br i1 %45, label %then25, label %else26
then19: ; preds = %then16
%46 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }* %_fmm_b9 to i64
%47 = inttoptr i64 %46 to i64*
%48 = getelementptr i64, i64* %47, i64 -1
%49 = atomicrmw sub i64* %48, i64 1 release, align 8
%50 = icmp eq i64 %49, 0
br i1 %50, label %then22, label %else23
else20: ; preds = %then16
br label %phi21
phi21: ; preds = %phi24, %else20
%_fmm_be = phi {} [ zeroinitializer, %phi24 ], [ zeroinitializer, %else20 ]
br label %phi18
then22: ; preds = %then19
fence acquire
%51 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }* %_fmm_b9 to i64
%52 = and i64 %51, -2
%53 = inttoptr i64 %52 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*
%54 = getelementptr { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }* %53, i32 0, i32 1
%_fmm_bb = load {} (i64)*, {} (i64)** %54, align 8
%55 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }* %_fmm_b9 to i64
%_fmm_bc = tail call {} %_fmm_bb(i64 %55)
%56 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }* %_fmm_b9 to i64
%57 = inttoptr i64 %56 to i8*
%58 = ptrtoint i8* %57 to i64
%59 = inttoptr i64 %58 to i64*
%60 = getelementptr i64, i64* %59, i64 -1
%61 = ptrtoint i64* %60 to i64
%62 = inttoptr i64 %61 to i8*
call void @_pen_free(i8* %62)
br label %phi24
else23: ; preds = %then19
br label %phi24
phi24: ; preds = %else23, %then22
%_fmm_bd = phi {} [ zeroinitializer, %then22 ], [ zeroinitializer, %else23 ]
br label %phi21
then25: ; preds = %phi18
%63 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_c1 to i64
%64 = and i64 %63, 1
%65 = icmp ne i64 %64, 1
br i1 %65, label %then28, label %else29
else26: ; preds = %phi18
br label %phi27
phi27: ; preds = %phi30, %else26
%_fmm_c7 = phi {} [ zeroinitializer, %phi30 ], [ zeroinitializer, %else26 ]
%66 = ptrtoint {}* %0 to i64
%67 = inttoptr i64 %66 to { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }*
%_fmm_c8 = load { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }, { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }* %67, align 8
%_fmm_c9 = extractvalue { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* } %_fmm_c8, 3
%68 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_c9 to i64
%69 = icmp ne i64 %68, 0
br i1 %69, label %then34, label %else35
then28: ; preds = %then25
%70 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_c1 to i64
%71 = inttoptr i64 %70 to i64*
%72 = getelementptr i64, i64* %71, i64 -1
%73 = atomicrmw sub i64* %72, i64 1 release, align 8
%74 = icmp eq i64 %73, 0
br i1 %74, label %then31, label %else32
else29: ; preds = %then25
br label %phi30
phi30: ; preds = %phi33, %else29
%_fmm_c6 = phi {} [ zeroinitializer, %phi33 ], [ zeroinitializer, %else29 ]
br label %phi27
then31: ; preds = %then28
fence acquire
%75 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_c1 to i64
%76 = and i64 %75, -2
%77 = inttoptr i64 %76 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*
%78 = getelementptr { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %77, i32 0, i32 1
%_fmm_c3 = load {} (i64)*, {} (i64)** %78, align 8
%79 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_c1 to i64
%_fmm_c4 = tail call {} %_fmm_c3(i64 %79)
%80 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_c1 to i64
%81 = inttoptr i64 %80 to i8*
%82 = ptrtoint i8* %81 to i64
%83 = inttoptr i64 %82 to i64*
%84 = getelementptr i64, i64* %83, i64 -1
%85 = ptrtoint i64* %84 to i64
%86 = inttoptr i64 %85 to i8*
call void @_pen_free(i8* %86)
br label %phi33
else32: ; preds = %then28
br label %phi33
phi33: ; preds = %else32, %then31
%_fmm_c5 = phi {} [ zeroinitializer, %then31 ], [ zeroinitializer, %else32 ]
br label %phi30
then34: ; preds = %phi27
%87 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_c9 to i64
%88 = and i64 %87, 1
%89 = icmp ne i64 %88, 1
br i1 %89, label %then37, label %else38
else35: ; preds = %phi27
br label %phi36
phi36: ; preds = %phi39, %else35
%_fmm_cf = phi {} [ zeroinitializer, %phi39 ], [ zeroinitializer, %else35 ]
%90 = ptrtoint {}* %0 to i64
%91 = inttoptr i64 %90 to { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }*
%_fmm_d0 = load { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }, { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }* %91, align 8
%_fmm_d1 = extractvalue { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* } %_fmm_d0, 4
%92 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }* %_fmm_d1 to i64
%93 = icmp ne i64 %92, 0
br i1 %93, label %then43, label %else44
then37: ; preds = %then34
%94 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_c9 to i64
%95 = inttoptr i64 %94 to i64*
%96 = getelementptr i64, i64* %95, i64 -1
%97 = atomicrmw sub i64* %96, i64 1 release, align 8
%98 = icmp eq i64 %97, 0
br i1 %98, label %then40, label %else41
else38: ; preds = %then34
br label %phi39
phi39: ; preds = %phi42, %else38
%_fmm_ce = phi {} [ zeroinitializer, %phi42 ], [ zeroinitializer, %else38 ]
br label %phi36
then40: ; preds = %then37
fence acquire
%99 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_c9 to i64
%100 = and i64 %99, -2
%101 = inttoptr i64 %100 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*
%102 = getelementptr { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %101, i32 0, i32 1
%_fmm_cb = load {} (i64)*, {} (i64)** %102, align 8
%103 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_c9 to i64
%_fmm_cc = tail call {} %_fmm_cb(i64 %103)
%104 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_c9 to i64
%105 = inttoptr i64 %104 to i8*
%106 = ptrtoint i8* %105 to i64
%107 = inttoptr i64 %106 to i64*
%108 = getelementptr i64, i64* %107, i64 -1
%109 = ptrtoint i64* %108 to i64
%110 = inttoptr i64 %109 to i8*
call void @_pen_free(i8* %110)
br label %phi42
else41: ; preds = %then37
br label %phi42
phi42: ; preds = %else41, %then40
%_fmm_cd = phi {} [ zeroinitializer, %then40 ], [ zeroinitializer, %else41 ]
br label %phi39
then43: ; preds = %phi36
%111 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }* %_fmm_d1 to i64
%112 = and i64 %111, 1
%113 = icmp ne i64 %112, 1
br i1 %113, label %then46, label %else47
else44: ; preds = %phi36
br label %phi45
phi45: ; preds = %phi48, %else44
%_fmm_d7 = phi {} [ zeroinitializer, %phi48 ], [ zeroinitializer, %else44 ]
%114 = ptrtoint {}* %0 to i64
%115 = inttoptr i64 %114 to { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }*
%_fmm_d8 = load { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }, { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }* %115, align 8
%_fmm_d9 = extractvalue { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* } %_fmm_d8, 5
%116 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }* %_fmm_d9 to i64
%117 = icmp ne i64 %116, 0
br i1 %117, label %then52, label %else53
then46: ; preds = %then43
%118 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }* %_fmm_d1 to i64
%119 = inttoptr i64 %118 to i64*
%120 = getelementptr i64, i64* %119, i64 -1
%121 = atomicrmw sub i64* %120, i64 1 release, align 8
%122 = icmp eq i64 %121, 0
br i1 %122, label %then49, label %else50
else47: ; preds = %then43
br label %phi48
phi48: ; preds = %phi51, %else47
%_fmm_d6 = phi {} [ zeroinitializer, %phi51 ], [ zeroinitializer, %else47 ]
br label %phi45
then49: ; preds = %then46
fence acquire
%123 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }* %_fmm_d1 to i64
%124 = and i64 %123, -2
%125 = inttoptr i64 %124 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*
%126 = getelementptr { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }* %125, i32 0, i32 1
%_fmm_d3 = load {} (i64)*, {} (i64)** %126, align 8
%127 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }* %_fmm_d1 to i64
%_fmm_d4 = tail call {} %_fmm_d3(i64 %127)
%128 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }* %_fmm_d1 to i64
%129 = inttoptr i64 %128 to i8*
%130 = ptrtoint i8* %129 to i64
%131 = inttoptr i64 %130 to i64*
%132 = getelementptr i64, i64* %131, i64 -1
%133 = ptrtoint i64* %132 to i64
%134 = inttoptr i64 %133 to i8*
call void @_pen_free(i8* %134)
br label %phi51
else50: ; preds = %then46
br label %phi51
phi51: ; preds = %else50, %then49
%_fmm_d5 = phi {} [ zeroinitializer, %then49 ], [ zeroinitializer, %else50 ]
br label %phi48
then52: ; preds = %phi45
%135 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }* %_fmm_d9 to i64
%136 = and i64 %135, 1
%137 = icmp ne i64 %136, 1
br i1 %137, label %then55, label %else56
else53: ; preds = %phi45
br label %phi54
phi54: ; preds = %phi57, %else53
%_fmm_df = phi {} [ zeroinitializer, %phi57 ], [ zeroinitializer, %else53 ]
%138 = ptrtoint {}* %0 to i64
%139 = inttoptr i64 %138 to { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }*
%_fmm_e0 = load { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }, { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }* %139, align 8
%_fmm_e1 = extractvalue { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* } %_fmm_e0, 6
%140 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }* %_fmm_e1 to i64
%141 = icmp ne i64 %140, 0
br i1 %141, label %then61, label %else62
then55: ; preds = %then52
%142 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }* %_fmm_d9 to i64
%143 = inttoptr i64 %142 to i64*
%144 = getelementptr i64, i64* %143, i64 -1
%145 = atomicrmw sub i64* %144, i64 1 release, align 8
%146 = icmp eq i64 %145, 0
br i1 %146, label %then58, label %else59
else56: ; preds = %then52
br label %phi57
phi57: ; preds = %phi60, %else56
%_fmm_de = phi {} [ zeroinitializer, %phi60 ], [ zeroinitializer, %else56 ]
br label %phi54
then58: ; preds = %then55
fence acquire
%147 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }* %_fmm_d9 to i64
%148 = and i64 %147, -2
%149 = inttoptr i64 %148 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*
%150 = getelementptr { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }* %149, i32 0, i32 1
%_fmm_db = load {} (i64)*, {} (i64)** %150, align 8
%151 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }* %_fmm_d9 to i64
%_fmm_dc = tail call {} %_fmm_db(i64 %151)
%152 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }* %_fmm_d9 to i64
%153 = inttoptr i64 %152 to i8*
%154 = ptrtoint i8* %153 to i64
%155 = inttoptr i64 %154 to i64*
%156 = getelementptr i64, i64* %155, i64 -1
%157 = ptrtoint i64* %156 to i64
%158 = inttoptr i64 %157 to i8*
call void @_pen_free(i8* %158)
br label %phi60
else59: ; preds = %then55
br label %phi60
phi60: ; preds = %else59, %then58
%_fmm_dd = phi {} [ zeroinitializer, %then58 ], [ zeroinitializer, %else59 ]
br label %phi57
then61: ; preds = %phi54
%159 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }* %_fmm_e1 to i64
%160 = and i64 %159, 1
%161 = icmp ne i64 %160, 1
br i1 %161, label %then64, label %else65
else62: ; preds = %phi54
br label %phi63
phi63: ; preds = %phi66, %else62
%_fmm_e7 = phi {} [ zeroinitializer, %phi66 ], [ zeroinitializer, %else62 ]
%162 = ptrtoint {}* %0 to i64
%163 = inttoptr i64 %162 to { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }*
%_fmm_e8 = load { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }, { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }* %163, align 8
%_fmm_e9 = extractvalue { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* } %_fmm_e8, 7
%164 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_e9 to i64
%165 = icmp ne i64 %164, 0
br i1 %165, label %then70, label %else71
then64: ; preds = %then61
%166 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }* %_fmm_e1 to i64
%167 = inttoptr i64 %166 to i64*
%168 = getelementptr i64, i64* %167, i64 -1
%169 = atomicrmw sub i64* %168, i64 1 release, align 8
%170 = icmp eq i64 %169, 0
br i1 %170, label %then67, label %else68
else65: ; preds = %then61
br label %phi66
phi66: ; preds = %phi69, %else65
%_fmm_e6 = phi {} [ zeroinitializer, %phi69 ], [ zeroinitializer, %else65 ]
br label %phi63
then67: ; preds = %then64
fence acquire
%171 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }* %_fmm_e1 to i64
%172 = and i64 %171, -2
%173 = inttoptr i64 %172 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*
%174 = getelementptr { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }* %173, i32 0, i32 1
%_fmm_e3 = load {} (i64)*, {} (i64)** %174, align 8
%175 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }* %_fmm_e1 to i64
%_fmm_e4 = tail call {} %_fmm_e3(i64 %175)
%176 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }* %_fmm_e1 to i64
%177 = inttoptr i64 %176 to i8*
%178 = ptrtoint i8* %177 to i64
%179 = inttoptr i64 %178 to i64*
%180 = getelementptr i64, i64* %179, i64 -1
%181 = ptrtoint i64* %180 to i64
%182 = inttoptr i64 %181 to i8*
call void @_pen_free(i8* %182)
br label %phi69
else68: ; preds = %then64
br label %phi69
phi69: ; preds = %else68, %then67
%_fmm_e5 = phi {} [ zeroinitializer, %then67 ], [ zeroinitializer, %else68 ]
br label %phi66
then70: ; preds = %phi63
%183 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_e9 to i64
%184 = and i64 %183, 1
%185 = icmp ne i64 %184, 1
br i1 %185, label %then73, label %else74
else71: ; preds = %phi63
br label %phi72
phi72: ; preds = %phi75, %else71
%_fmm_ef = phi {} [ zeroinitializer, %phi75 ], [ zeroinitializer, %else71 ]
%186 = ptrtoint {}* %0 to i64
%187 = inttoptr i64 %186 to { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }*
%_fmm_f0 = load { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }, { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }* %187, align 8
%_fmm_f1 = extractvalue { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* } %_fmm_f0, 8
%188 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_f1 to i64
%189 = icmp ne i64 %188, 0
br i1 %189, label %then79, label %else80
then73: ; preds = %then70
%190 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_e9 to i64
%191 = inttoptr i64 %190 to i64*
%192 = getelementptr i64, i64* %191, i64 -1
%193 = atomicrmw sub i64* %192, i64 1 release, align 8
%194 = icmp eq i64 %193, 0
br i1 %194, label %then76, label %else77
else74: ; preds = %then70
br label %phi75
phi75: ; preds = %phi78, %else74
%_fmm_ee = phi {} [ zeroinitializer, %phi78 ], [ zeroinitializer, %else74 ]
br label %phi72
then76: ; preds = %then73
fence acquire
%195 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_e9 to i64
%196 = and i64 %195, -2
%197 = inttoptr i64 %196 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*
%198 = getelementptr { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %197, i32 0, i32 1
%_fmm_eb = load {} (i64)*, {} (i64)** %198, align 8
%199 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_e9 to i64
%_fmm_ec = tail call {} %_fmm_eb(i64 %199)
%200 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_e9 to i64
%201 = inttoptr i64 %200 to i8*
%202 = ptrtoint i8* %201 to i64
%203 = inttoptr i64 %202 to i64*
%204 = getelementptr i64, i64* %203, i64 -1
%205 = ptrtoint i64* %204 to i64
%206 = inttoptr i64 %205 to i8*
call void @_pen_free(i8* %206)
br label %phi78
else77: ; preds = %then73
br label %phi78
phi78: ; preds = %else77, %then76
%_fmm_ed = phi {} [ zeroinitializer, %then76 ], [ zeroinitializer, %else77 ]
br label %phi75
then79: ; preds = %phi72
%207 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_f1 to i64
%208 = and i64 %207, 1
%209 = icmp ne i64 %208, 1
br i1 %209, label %then82, label %else83
else80: ; preds = %phi72
br label %phi81
phi81: ; preds = %phi84, %else80
%_fmm_f7 = phi {} [ zeroinitializer, %phi84 ], [ zeroinitializer, %else80 ]
%210 = ptrtoint {}* %0 to i64
%211 = inttoptr i64 %210 to { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }*
%_fmm_f8 = load { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }, { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }* %211, align 8
%_fmm_f9 = extractvalue { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* } %_fmm_f8, 9
%212 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_f9 to i64
%213 = icmp ne i64 %212, 0
br i1 %213, label %then88, label %else89
then82: ; preds = %then79
%214 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_f1 to i64
%215 = inttoptr i64 %214 to i64*
%216 = getelementptr i64, i64* %215, i64 -1
%217 = atomicrmw sub i64* %216, i64 1 release, align 8
%218 = icmp eq i64 %217, 0
br i1 %218, label %then85, label %else86
else83: ; preds = %then79
br label %phi84
phi84: ; preds = %phi87, %else83
%_fmm_f6 = phi {} [ zeroinitializer, %phi87 ], [ zeroinitializer, %else83 ]
br label %phi81
then85: ; preds = %then82
fence acquire
%219 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_f1 to i64
%220 = and i64 %219, -2
%221 = inttoptr i64 %220 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*
%222 = getelementptr { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* %221, i32 0, i32 1
%_fmm_f3 = load {} (i64)*, {} (i64)** %222, align 8
%223 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_f1 to i64
%_fmm_f4 = tail call {} %_fmm_f3(i64 %223)
%224 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_f1 to i64
%225 = inttoptr i64 %224 to i8*
%226 = ptrtoint i8* %225 to i64
%227 = inttoptr i64 %226 to i64*
%228 = getelementptr i64, i64* %227, i64 -1
%229 = ptrtoint i64* %228 to i64
%230 = inttoptr i64 %229 to i8*
call void @_pen_free(i8* %230)
br label %phi87
else86: ; preds = %then82
br label %phi87
phi87: ; preds = %else86, %then85
%_fmm_f5 = phi {} [ zeroinitializer, %then85 ], [ zeroinitializer, %else86 ]
br label %phi84
then88: ; preds = %phi81
%231 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_f9 to i64
%232 = and i64 %231, 1
%233 = icmp ne i64 %232, 1
br i1 %233, label %then91, label %else92
else89: ; preds = %phi81
br label %phi90
phi90: ; preds = %phi93, %else89
%_fmm_ff = phi {} [ zeroinitializer, %phi93 ], [ zeroinitializer, %else89 ]
%234 = ptrtoint {}* %0 to i64
%235 = inttoptr i64 %234 to { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }*
%_fmm_100 = load { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }, { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }* %235, align 8
%_fmm_101 = extractvalue { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* } %_fmm_100, 10
%236 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_101 to i64
%237 = icmp ne i64 %236, 0
br i1 %237, label %then97, label %else98
then91: ; preds = %then88
%238 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_f9 to i64
%239 = inttoptr i64 %238 to i64*
%240 = getelementptr i64, i64* %239, i64 -1
%241 = atomicrmw sub i64* %240, i64 1 release, align 8
%242 = icmp eq i64 %241, 0
br i1 %242, label %then94, label %else95
else92: ; preds = %then88
br label %phi93
phi93: ; preds = %phi96, %else92
%_fmm_fe = phi {} [ zeroinitializer, %phi96 ], [ zeroinitializer, %else92 ]
br label %phi90
then94: ; preds = %then91
fence acquire
%243 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_f9 to i64
%244 = and i64 %243, -2
%245 = inttoptr i64 %244 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*
%246 = getelementptr { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* %245, i32 0, i32 1
%_fmm_fb = load {} (i64)*, {} (i64)** %246, align 8
%247 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_f9 to i64
%_fmm_fc = tail call {} %_fmm_fb(i64 %247)
%248 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_f9 to i64
%249 = inttoptr i64 %248 to i8*
%250 = ptrtoint i8* %249 to i64
%251 = inttoptr i64 %250 to i64*
%252 = getelementptr i64, i64* %251, i64 -1
%253 = ptrtoint i64* %252 to i64
%254 = inttoptr i64 %253 to i8*
call void @_pen_free(i8* %254)
br label %phi96
else95: ; preds = %then91
br label %phi96
phi96: ; preds = %else95, %then94
%_fmm_fd = phi {} [ zeroinitializer, %then94 ], [ zeroinitializer, %else95 ]
br label %phi93
then97: ; preds = %phi90
%255 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_101 to i64
%256 = and i64 %255, 1
%257 = icmp ne i64 %256, 1
br i1 %257, label %then100, label %else101
else98: ; preds = %phi90
br label %phi99
phi99: ; preds = %phi102, %else98
%_fmm_107 = phi {} [ zeroinitializer, %phi102 ], [ zeroinitializer, %else98 ]
%258 = ptrtoint {}* %0 to i64
%259 = inttoptr i64 %258 to { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }*
%_fmm_108 = load { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }, { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }* %259, align 8
%_fmm_109 = extractvalue { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* } %_fmm_108, 11
%260 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_109 to i64
%261 = icmp ne i64 %260, 0
br i1 %261, label %then106, label %else107
then100: ; preds = %then97
%262 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_101 to i64
%263 = inttoptr i64 %262 to i64*
%264 = getelementptr i64, i64* %263, i64 -1
%265 = atomicrmw sub i64* %264, i64 1 release, align 8
%266 = icmp eq i64 %265, 0
br i1 %266, label %then103, label %else104
else101: ; preds = %then97
br label %phi102
phi102: ; preds = %phi105, %else101
%_fmm_106 = phi {} [ zeroinitializer, %phi105 ], [ zeroinitializer, %else101 ]
br label %phi99
then103: ; preds = %then100
fence acquire
%267 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_101 to i64
%268 = and i64 %267, -2
%269 = inttoptr i64 %268 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*
%270 = getelementptr { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %269, i32 0, i32 1
%_fmm_103 = load {} (i64)*, {} (i64)** %270, align 8
%271 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_101 to i64
%_fmm_104 = tail call {} %_fmm_103(i64 %271)
%272 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_101 to i64
%273 = inttoptr i64 %272 to i8*
%274 = ptrtoint i8* %273 to i64
%275 = inttoptr i64 %274 to i64*
%276 = getelementptr i64, i64* %275, i64 -1
%277 = ptrtoint i64* %276 to i64
%278 = inttoptr i64 %277 to i8*
call void @_pen_free(i8* %278)
br label %phi105
else104: ; preds = %then100
br label %phi105
phi105: ; preds = %else104, %then103
%_fmm_105 = phi {} [ zeroinitializer, %then103 ], [ zeroinitializer, %else104 ]
br label %phi102
then106: ; preds = %phi99
%279 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_109 to i64
%280 = and i64 %279, 1
%281 = icmp ne i64 %280, 1
br i1 %281, label %then109, label %else110
else107: ; preds = %phi99
br label %phi108
phi108: ; preds = %phi111, %else107
%_fmm_10f = phi {} [ zeroinitializer, %phi111 ], [ zeroinitializer, %else107 ]
%282 = ptrtoint {}* %0 to i64
%283 = inttoptr i64 %282 to { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }*
%_fmm_110 = load { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }, { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }* %283, align 8
%_fmm_111 = extractvalue { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* } %_fmm_110, 12
%284 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_111 to i64
%285 = icmp ne i64 %284, 0
br i1 %285, label %then115, label %else116
then109: ; preds = %then106
%286 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_109 to i64
%287 = inttoptr i64 %286 to i64*
%288 = getelementptr i64, i64* %287, i64 -1
%289 = atomicrmw sub i64* %288, i64 1 release, align 8
%290 = icmp eq i64 %289, 0
br i1 %290, label %then112, label %else113
else110: ; preds = %then106
br label %phi111
phi111: ; preds = %phi114, %else110
%_fmm_10e = phi {} [ zeroinitializer, %phi114 ], [ zeroinitializer, %else110 ]
br label %phi108
then112: ; preds = %then109
fence acquire
%291 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_109 to i64
%292 = and i64 %291, -2
%293 = inttoptr i64 %292 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*
%294 = getelementptr { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %293, i32 0, i32 1
%_fmm_10b = load {} (i64)*, {} (i64)** %294, align 8
%295 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_109 to i64
%_fmm_10c = tail call {} %_fmm_10b(i64 %295)
%296 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_109 to i64
%297 = inttoptr i64 %296 to i8*
%298 = ptrtoint i8* %297 to i64
%299 = inttoptr i64 %298 to i64*
%300 = getelementptr i64, i64* %299, i64 -1
%301 = ptrtoint i64* %300 to i64
%302 = inttoptr i64 %301 to i8*
call void @_pen_free(i8* %302)
br label %phi114
else113: ; preds = %then109
br label %phi114
phi114: ; preds = %else113, %then112
%_fmm_10d = phi {} [ zeroinitializer, %then112 ], [ zeroinitializer, %else113 ]
br label %phi111
then115: ; preds = %phi108
%303 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_111 to i64
%304 = and i64 %303, 1
%305 = icmp ne i64 %304, 1
br i1 %305, label %then118, label %else119
else116: ; preds = %phi108
br label %phi117
phi117: ; preds = %phi120, %else116
%_fmm_117 = phi {} [ zeroinitializer, %phi120 ], [ zeroinitializer, %else116 ]
%306 = ptrtoint {}* %0 to i64
%307 = inttoptr i64 %306 to { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }*
%_fmm_118 = load { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }, { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }* %307, align 8
%_fmm_119 = extractvalue { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* } %_fmm_118, 13
%308 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_119 to i64
%309 = icmp ne i64 %308, 0
br i1 %309, label %then124, label %else125
then118: ; preds = %then115
%310 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_111 to i64
%311 = inttoptr i64 %310 to i64*
%312 = getelementptr i64, i64* %311, i64 -1
%313 = atomicrmw sub i64* %312, i64 1 release, align 8
%314 = icmp eq i64 %313, 0
br i1 %314, label %then121, label %else122
else119: ; preds = %then115
br label %phi120
phi120: ; preds = %phi123, %else119
%_fmm_116 = phi {} [ zeroinitializer, %phi123 ], [ zeroinitializer, %else119 ]
br label %phi117
then121: ; preds = %then118
fence acquire
%315 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_111 to i64
%316 = and i64 %315, -2
%317 = inttoptr i64 %316 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*
%318 = getelementptr { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %317, i32 0, i32 1
%_fmm_113 = load {} (i64)*, {} (i64)** %318, align 8
%319 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_111 to i64
%_fmm_114 = tail call {} %_fmm_113(i64 %319)
%320 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_111 to i64
%321 = inttoptr i64 %320 to i8*
%322 = ptrtoint i8* %321 to i64
%323 = inttoptr i64 %322 to i64*
%324 = getelementptr i64, i64* %323, i64 -1
%325 = ptrtoint i64* %324 to i64
%326 = inttoptr i64 %325 to i8*
call void @_pen_free(i8* %326)
br label %phi123
else122: ; preds = %then118
br label %phi123
phi123: ; preds = %else122, %then121
%_fmm_115 = phi {} [ zeroinitializer, %then121 ], [ zeroinitializer, %else122 ]
br label %phi120
then124: ; preds = %phi117
%327 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_119 to i64
%328 = and i64 %327, 1
%329 = icmp ne i64 %328, 1
br i1 %329, label %then127, label %else128
else125: ; preds = %phi117
br label %phi126
phi126: ; preds = %phi129, %else125
%_fmm_11f = phi {} [ zeroinitializer, %phi129 ], [ zeroinitializer, %else125 ]
%330 = ptrtoint {}* %0 to i64
%331 = inttoptr i64 %330 to { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }*
%_fmm_120 = load { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }, { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }* %331, align 8
%_fmm_121 = extractvalue { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* } %_fmm_120, 14
%332 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }* %_fmm_121 to i64
%333 = icmp ne i64 %332, 0
br i1 %333, label %then133, label %else134
then127: ; preds = %then124
%334 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_119 to i64
%335 = inttoptr i64 %334 to i64*
%336 = getelementptr i64, i64* %335, i64 -1
%337 = atomicrmw sub i64* %336, i64 1 release, align 8
%338 = icmp eq i64 %337, 0
br i1 %338, label %then130, label %else131
else128: ; preds = %then124
br label %phi129
phi129: ; preds = %phi132, %else128
%_fmm_11e = phi {} [ zeroinitializer, %phi132 ], [ zeroinitializer, %else128 ]
br label %phi126
then130: ; preds = %then127
fence acquire
%339 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_119 to i64
%340 = and i64 %339, -2
%341 = inttoptr i64 %340 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*
%342 = getelementptr { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %341, i32 0, i32 1
%_fmm_11b = load {} (i64)*, {} (i64)** %342, align 8
%343 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_119 to i64
%_fmm_11c = tail call {} %_fmm_11b(i64 %343)
%344 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_119 to i64
%345 = inttoptr i64 %344 to i8*
%346 = ptrtoint i8* %345 to i64
%347 = inttoptr i64 %346 to i64*
%348 = getelementptr i64, i64* %347, i64 -1
%349 = ptrtoint i64* %348 to i64
%350 = inttoptr i64 %349 to i8*
call void @_pen_free(i8* %350)
br label %phi132
else131: ; preds = %then127
br label %phi132
phi132: ; preds = %else131, %then130
%_fmm_11d = phi {} [ zeroinitializer, %then130 ], [ zeroinitializer, %else131 ]
br label %phi129
then133: ; preds = %phi126
%351 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }* %_fmm_121 to i64
%352 = and i64 %351, 1
%353 = icmp ne i64 %352, 1
br i1 %353, label %then136, label %else137
else134: ; preds = %phi126
br label %phi135
phi135: ; preds = %phi138, %else134
%_fmm_127 = phi {} [ zeroinitializer, %phi138 ], [ zeroinitializer, %else134 ]
%354 = ptrtoint {}* %0 to i64
%355 = inttoptr i64 %354 to { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }*
%_fmm_128 = load { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }, { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }* %355, align 8
%_fmm_129 = extractvalue { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* } %_fmm_128, 15
%356 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_129 to i64
%357 = icmp ne i64 %356, 0
br i1 %357, label %then142, label %else143
then136: ; preds = %then133
%358 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }* %_fmm_121 to i64
%359 = inttoptr i64 %358 to i64*
%360 = getelementptr i64, i64* %359, i64 -1
%361 = atomicrmw sub i64* %360, i64 1 release, align 8
%362 = icmp eq i64 %361, 0
br i1 %362, label %then139, label %else140
else137: ; preds = %then133
br label %phi138
phi138: ; preds = %phi141, %else137
%_fmm_126 = phi {} [ zeroinitializer, %phi141 ], [ zeroinitializer, %else137 ]
br label %phi135
then139: ; preds = %then136
fence acquire
%363 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }* %_fmm_121 to i64
%364 = and i64 %363, -2
%365 = inttoptr i64 %364 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*
%366 = getelementptr { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }* %365, i32 0, i32 1
%_fmm_123 = load {} (i64)*, {} (i64)** %366, align 8
%367 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }* %_fmm_121 to i64
%_fmm_124 = tail call {} %_fmm_123(i64 %367)
%368 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }* %_fmm_121 to i64
%369 = inttoptr i64 %368 to i8*
%370 = ptrtoint i8* %369 to i64
%371 = inttoptr i64 %370 to i64*
%372 = getelementptr i64, i64* %371, i64 -1
%373 = ptrtoint i64* %372 to i64
%374 = inttoptr i64 %373 to i8*
call void @_pen_free(i8* %374)
br label %phi141
else140: ; preds = %then136
br label %phi141
phi141: ; preds = %else140, %then139
%_fmm_125 = phi {} [ zeroinitializer, %then139 ], [ zeroinitializer, %else140 ]
br label %phi138
then142: ; preds = %phi135
%375 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_129 to i64
%376 = and i64 %375, 1
%377 = icmp ne i64 %376, 1
br i1 %377, label %then145, label %else146
else143: ; preds = %phi135
br label %phi144
phi144: ; preds = %phi147, %else143
%_fmm_12f = phi {} [ zeroinitializer, %phi147 ], [ zeroinitializer, %else143 ]
%378 = ptrtoint {}* %0 to i64
%379 = inttoptr i64 %378 to { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }*
%_fmm_130 = load { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }, { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }* %379, align 8
%_fmm_131 = extractvalue { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* } %_fmm_130, 16
%380 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_131 to i64
%381 = icmp ne i64 %380, 0
br i1 %381, label %then151, label %else152
then145: ; preds = %then142
%382 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_129 to i64
%383 = inttoptr i64 %382 to i64*
%384 = getelementptr i64, i64* %383, i64 -1
%385 = atomicrmw sub i64* %384, i64 1 release, align 8
%386 = icmp eq i64 %385, 0
br i1 %386, label %then148, label %else149
else146: ; preds = %then142
br label %phi147
phi147: ; preds = %phi150, %else146
%_fmm_12e = phi {} [ zeroinitializer, %phi150 ], [ zeroinitializer, %else146 ]
br label %phi144
then148: ; preds = %then145
fence acquire
%387 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_129 to i64
%388 = and i64 %387, -2
%389 = inttoptr i64 %388 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*
%390 = getelementptr { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %389, i32 0, i32 1
%_fmm_12b = load {} (i64)*, {} (i64)** %390, align 8
%391 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_129 to i64
%_fmm_12c = tail call {} %_fmm_12b(i64 %391)
%392 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_129 to i64
%393 = inttoptr i64 %392 to i8*
%394 = ptrtoint i8* %393 to i64
%395 = inttoptr i64 %394 to i64*
%396 = getelementptr i64, i64* %395, i64 -1
%397 = ptrtoint i64* %396 to i64
%398 = inttoptr i64 %397 to i8*
call void @_pen_free(i8* %398)
br label %phi150
else149: ; preds = %then145
br label %phi150
phi150: ; preds = %else149, %then148
%_fmm_12d = phi {} [ zeroinitializer, %then148 ], [ zeroinitializer, %else149 ]
br label %phi147
then151: ; preds = %phi144
%399 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_131 to i64
%400 = and i64 %399, 1
%401 = icmp ne i64 %400, 1
br i1 %401, label %then154, label %else155
else152: ; preds = %phi144
br label %phi153
phi153: ; preds = %phi156, %else152
%_fmm_137 = phi {} [ zeroinitializer, %phi156 ], [ zeroinitializer, %else152 ]
%402 = ptrtoint {}* %0 to i64
%403 = inttoptr i64 %402 to { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }*
%_fmm_138 = load { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }, { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }* %403, align 8
%_fmm_139 = extractvalue { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* } %_fmm_138, 17
%404 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_139 to i64
%405 = icmp ne i64 %404, 0
br i1 %405, label %then160, label %else161
then154: ; preds = %then151
%406 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_131 to i64
%407 = inttoptr i64 %406 to i64*
%408 = getelementptr i64, i64* %407, i64 -1
%409 = atomicrmw sub i64* %408, i64 1 release, align 8
%410 = icmp eq i64 %409, 0
br i1 %410, label %then157, label %else158
else155: ; preds = %then151
br label %phi156
phi156: ; preds = %phi159, %else155
%_fmm_136 = phi {} [ zeroinitializer, %phi159 ], [ zeroinitializer, %else155 ]
br label %phi153
then157: ; preds = %then154
fence acquire
%411 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_131 to i64
%412 = and i64 %411, -2
%413 = inttoptr i64 %412 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*
%414 = getelementptr { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %413, i32 0, i32 1
%_fmm_133 = load {} (i64)*, {} (i64)** %414, align 8
%415 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_131 to i64
%_fmm_134 = tail call {} %_fmm_133(i64 %415)
%416 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_131 to i64
%417 = inttoptr i64 %416 to i8*
%418 = ptrtoint i8* %417 to i64
%419 = inttoptr i64 %418 to i64*
%420 = getelementptr i64, i64* %419, i64 -1
%421 = ptrtoint i64* %420 to i64
%422 = inttoptr i64 %421 to i8*
call void @_pen_free(i8* %422)
br label %phi159
else158: ; preds = %then154
br label %phi159
phi159: ; preds = %else158, %then157
%_fmm_135 = phi {} [ zeroinitializer, %then157 ], [ zeroinitializer, %else158 ]
br label %phi156
then160: ; preds = %phi153
%423 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_139 to i64
%424 = and i64 %423, 1
%425 = icmp ne i64 %424, 1
br i1 %425, label %then163, label %else164
else161: ; preds = %phi153
br label %phi162
phi162: ; preds = %phi165, %else161
%_fmm_13f = phi {} [ zeroinitializer, %phi165 ], [ zeroinitializer, %else161 ]
%426 = ptrtoint {}* %0 to i64
%427 = inttoptr i64 %426 to { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }*
%_fmm_140 = load { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }, { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }* %427, align 8
%_fmm_141 = extractvalue { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* } %_fmm_140, 18
%428 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_141 to i64
%429 = icmp ne i64 %428, 0
br i1 %429, label %then169, label %else170
then163: ; preds = %then160
%430 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_139 to i64
%431 = inttoptr i64 %430 to i64*
%432 = getelementptr i64, i64* %431, i64 -1
%433 = atomicrmw sub i64* %432, i64 1 release, align 8
%434 = icmp eq i64 %433, 0
br i1 %434, label %then166, label %else167
else164: ; preds = %then160
br label %phi165
phi165: ; preds = %phi168, %else164
%_fmm_13e = phi {} [ zeroinitializer, %phi168 ], [ zeroinitializer, %else164 ]
br label %phi162
then166: ; preds = %then163
fence acquire
%435 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_139 to i64
%436 = and i64 %435, -2
%437 = inttoptr i64 %436 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*
%438 = getelementptr { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %437, i32 0, i32 1
%_fmm_13b = load {} (i64)*, {} (i64)** %438, align 8
%439 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_139 to i64
%_fmm_13c = tail call {} %_fmm_13b(i64 %439)
%440 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_139 to i64
%441 = inttoptr i64 %440 to i8*
%442 = ptrtoint i8* %441 to i64
%443 = inttoptr i64 %442 to i64*
%444 = getelementptr i64, i64* %443, i64 -1
%445 = ptrtoint i64* %444 to i64
%446 = inttoptr i64 %445 to i8*
call void @_pen_free(i8* %446)
br label %phi168
else167: ; preds = %then163
br label %phi168
phi168: ; preds = %else167, %then166
%_fmm_13d = phi {} [ zeroinitializer, %then166 ], [ zeroinitializer, %else167 ]
br label %phi165
then169: ; preds = %phi162
%447 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_141 to i64
%448 = and i64 %447, 1
%449 = icmp ne i64 %448, 1
br i1 %449, label %then172, label %else173
else170: ; preds = %phi162
br label %phi171
phi171: ; preds = %phi174, %else170
%_fmm_147 = phi {} [ zeroinitializer, %phi174 ], [ zeroinitializer, %else170 ]
%450 = ptrtoint {}* %0 to i64
%451 = inttoptr i64 %450 to { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }*
%_fmm_148 = load { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }, { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }* %451, align 8
%_fmm_149 = extractvalue { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* } %_fmm_148, 19
%452 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }* %_fmm_149 to i64
%453 = icmp ne i64 %452, 0
br i1 %453, label %then178, label %else179
then172: ; preds = %then169
%454 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_141 to i64
%455 = inttoptr i64 %454 to i64*
%456 = getelementptr i64, i64* %455, i64 -1
%457 = atomicrmw sub i64* %456, i64 1 release, align 8
%458 = icmp eq i64 %457, 0
br i1 %458, label %then175, label %else176
else173: ; preds = %then169
br label %phi174
phi174: ; preds = %phi177, %else173
%_fmm_146 = phi {} [ zeroinitializer, %phi177 ], [ zeroinitializer, %else173 ]
br label %phi171
then175: ; preds = %then172
fence acquire
%459 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_141 to i64
%460 = and i64 %459, -2
%461 = inttoptr i64 %460 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*
%462 = getelementptr { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %461, i32 0, i32 1
%_fmm_143 = load {} (i64)*, {} (i64)** %462, align 8
%463 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_141 to i64
%_fmm_144 = tail call {} %_fmm_143(i64 %463)
%464 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_141 to i64
%465 = inttoptr i64 %464 to i8*
%466 = ptrtoint i8* %465 to i64
%467 = inttoptr i64 %466 to i64*
%468 = getelementptr i64, i64* %467, i64 -1
%469 = ptrtoint i64* %468 to i64
%470 = inttoptr i64 %469 to i8*
call void @_pen_free(i8* %470)
br label %phi177
else176: ; preds = %then172
br label %phi177
phi177: ; preds = %else176, %then175
%_fmm_145 = phi {} [ zeroinitializer, %then175 ], [ zeroinitializer, %else176 ]
br label %phi174
then178: ; preds = %phi171
%471 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }* %_fmm_149 to i64
%472 = and i64 %471, 1
%473 = icmp ne i64 %472, 1
br i1 %473, label %then181, label %else182
else179: ; preds = %phi171
br label %phi180
phi180: ; preds = %phi183, %else179
%_fmm_14f = phi {} [ zeroinitializer, %phi183 ], [ zeroinitializer, %else179 ]
%474 = ptrtoint {}* %0 to i64
%475 = inttoptr i64 %474 to { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }*
%_fmm_150 = load { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }, { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }* %475, align 8
%_fmm_151 = extractvalue { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* } %_fmm_150, 20
%476 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }* %_fmm_151 to i64
%477 = icmp ne i64 %476, 0
br i1 %477, label %then187, label %else188
then181: ; preds = %then178
%478 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }* %_fmm_149 to i64
%479 = inttoptr i64 %478 to i64*
%480 = getelementptr i64, i64* %479, i64 -1
%481 = atomicrmw sub i64* %480, i64 1 release, align 8
%482 = icmp eq i64 %481, 0
br i1 %482, label %then184, label %else185
else182: ; preds = %then178
br label %phi183
phi183: ; preds = %phi186, %else182
%_fmm_14e = phi {} [ zeroinitializer, %phi186 ], [ zeroinitializer, %else182 ]
br label %phi180
then184: ; preds = %then181
fence acquire
%483 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }* %_fmm_149 to i64
%484 = and i64 %483, -2
%485 = inttoptr i64 %484 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*
%486 = getelementptr { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }* %485, i32 0, i32 1
%_fmm_14b = load {} (i64)*, {} (i64)** %486, align 8
%487 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }* %_fmm_149 to i64
%_fmm_14c = tail call {} %_fmm_14b(i64 %487)
%488 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }* %_fmm_149 to i64
%489 = inttoptr i64 %488 to i8*
%490 = ptrtoint i8* %489 to i64
%491 = inttoptr i64 %490 to i64*
%492 = getelementptr i64, i64* %491, i64 -1
%493 = ptrtoint i64* %492 to i64
%494 = inttoptr i64 %493 to i8*
call void @_pen_free(i8* %494)
br label %phi186
else185: ; preds = %then181
br label %phi186
phi186: ; preds = %else185, %then184
%_fmm_14d = phi {} [ zeroinitializer, %then184 ], [ zeroinitializer, %else185 ]
br label %phi183
then187: ; preds = %phi180
%495 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }* %_fmm_151 to i64
%496 = and i64 %495, 1
%497 = icmp ne i64 %496, 1
br i1 %497, label %then190, label %else191
else188: ; preds = %phi180
br label %phi189
phi189: ; preds = %phi192, %else188
%_fmm_157 = phi {} [ zeroinitializer, %phi192 ], [ zeroinitializer, %else188 ]
%498 = ptrtoint {}* %0 to i64
%499 = inttoptr i64 %498 to { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }*
%_fmm_158 = load { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }, { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }* %499, align 8
%_fmm_159 = extractvalue { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* } %_fmm_158, 21
%500 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_159 to i64
%501 = icmp ne i64 %500, 0
br i1 %501, label %then196, label %else197
then190: ; preds = %then187
%502 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }* %_fmm_151 to i64
%503 = inttoptr i64 %502 to i64*
%504 = getelementptr i64, i64* %503, i64 -1
%505 = atomicrmw sub i64* %504, i64 1 release, align 8
%506 = icmp eq i64 %505, 0
br i1 %506, label %then193, label %else194
else191: ; preds = %then187
br label %phi192
phi192: ; preds = %phi195, %else191
%_fmm_156 = phi {} [ zeroinitializer, %phi195 ], [ zeroinitializer, %else191 ]
br label %phi189
then193: ; preds = %then190
fence acquire
%507 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }* %_fmm_151 to i64
%508 = and i64 %507, -2
%509 = inttoptr i64 %508 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*
%510 = getelementptr { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }* %509, i32 0, i32 1
%_fmm_153 = load {} (i64)*, {} (i64)** %510, align 8
%511 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }* %_fmm_151 to i64
%_fmm_154 = tail call {} %_fmm_153(i64 %511)
%512 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }* %_fmm_151 to i64
%513 = inttoptr i64 %512 to i8*
%514 = ptrtoint i8* %513 to i64
%515 = inttoptr i64 %514 to i64*
%516 = getelementptr i64, i64* %515, i64 -1
%517 = ptrtoint i64* %516 to i64
%518 = inttoptr i64 %517 to i8*
call void @_pen_free(i8* %518)
br label %phi195
else194: ; preds = %then190
br label %phi195
phi195: ; preds = %else194, %then193
%_fmm_155 = phi {} [ zeroinitializer, %then193 ], [ zeroinitializer, %else194 ]
br label %phi192
then196: ; preds = %phi189
%519 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_159 to i64
%520 = and i64 %519, 1
%521 = icmp ne i64 %520, 1
br i1 %521, label %then199, label %else200
else197: ; preds = %phi189
br label %phi198
phi198: ; preds = %phi201, %else197
%_fmm_15f = phi {} [ zeroinitializer, %phi201 ], [ zeroinitializer, %else197 ]
%522 = ptrtoint {}* %0 to i64
%523 = inttoptr i64 %522 to { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }*
%_fmm_160 = load { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }, { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }* %523, align 8
%_fmm_161 = extractvalue { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* } %_fmm_160, 22
%524 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_161 to i64
%525 = icmp ne i64 %524, 0
br i1 %525, label %then205, label %else206
then199: ; preds = %then196
%526 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_159 to i64
%527 = inttoptr i64 %526 to i64*
%528 = getelementptr i64, i64* %527, i64 -1
%529 = atomicrmw sub i64* %528, i64 1 release, align 8
%530 = icmp eq i64 %529, 0
br i1 %530, label %then202, label %else203
else200: ; preds = %then196
br label %phi201
phi201: ; preds = %phi204, %else200
%_fmm_15e = phi {} [ zeroinitializer, %phi204 ], [ zeroinitializer, %else200 ]
br label %phi198
then202: ; preds = %then199
fence acquire
%531 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_159 to i64
%532 = and i64 %531, -2
%533 = inttoptr i64 %532 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*
%534 = getelementptr { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %533, i32 0, i32 1
%_fmm_15b = load {} (i64)*, {} (i64)** %534, align 8
%535 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_159 to i64
%_fmm_15c = tail call {} %_fmm_15b(i64 %535)
%536 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_159 to i64
%537 = inttoptr i64 %536 to i8*
%538 = ptrtoint i8* %537 to i64
%539 = inttoptr i64 %538 to i64*
%540 = getelementptr i64, i64* %539, i64 -1
%541 = ptrtoint i64* %540 to i64
%542 = inttoptr i64 %541 to i8*
call void @_pen_free(i8* %542)
br label %phi204
else203: ; preds = %then199
br label %phi204
phi204: ; preds = %else203, %then202
%_fmm_15d = phi {} [ zeroinitializer, %then202 ], [ zeroinitializer, %else203 ]
br label %phi201
then205: ; preds = %phi198
%543 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_161 to i64
%544 = and i64 %543, 1
%545 = icmp ne i64 %544, 1
br i1 %545, label %then208, label %else209
else206: ; preds = %phi198
br label %phi207
phi207: ; preds = %phi210, %else206
%_fmm_167 = phi {} [ zeroinitializer, %phi210 ], [ zeroinitializer, %else206 ]
%546 = ptrtoint {}* %0 to i64
%547 = inttoptr i64 %546 to { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }*
%_fmm_168 = load { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }, { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }* %547, align 8
%_fmm_169 = extractvalue { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* } %_fmm_168, 23
%548 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_169 to i64
%549 = icmp ne i64 %548, 0
br i1 %549, label %then214, label %else215
then208: ; preds = %then205
%550 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_161 to i64
%551 = inttoptr i64 %550 to i64*
%552 = getelementptr i64, i64* %551, i64 -1
%553 = atomicrmw sub i64* %552, i64 1 release, align 8
%554 = icmp eq i64 %553, 0
br i1 %554, label %then211, label %else212
else209: ; preds = %then205
br label %phi210
phi210: ; preds = %phi213, %else209
%_fmm_166 = phi {} [ zeroinitializer, %phi213 ], [ zeroinitializer, %else209 ]
br label %phi207
then211: ; preds = %then208
fence acquire
%555 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_161 to i64
%556 = and i64 %555, -2
%557 = inttoptr i64 %556 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*
%558 = getelementptr { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %557, i32 0, i32 1
%_fmm_163 = load {} (i64)*, {} (i64)** %558, align 8
%559 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_161 to i64
%_fmm_164 = tail call {} %_fmm_163(i64 %559)
%560 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_161 to i64
%561 = inttoptr i64 %560 to i8*
%562 = ptrtoint i8* %561 to i64
%563 = inttoptr i64 %562 to i64*
%564 = getelementptr i64, i64* %563, i64 -1
%565 = ptrtoint i64* %564 to i64
%566 = inttoptr i64 %565 to i8*
call void @_pen_free(i8* %566)
br label %phi213
else212: ; preds = %then208
br label %phi213
phi213: ; preds = %else212, %then211
%_fmm_165 = phi {} [ zeroinitializer, %then211 ], [ zeroinitializer, %else212 ]
br label %phi210
then214: ; preds = %phi207
%567 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_169 to i64
%568 = and i64 %567, 1
%569 = icmp ne i64 %568, 1
br i1 %569, label %then217, label %else218
else215: ; preds = %phi207
br label %phi216
phi216: ; preds = %phi219, %else215
%_fmm_16f = phi {} [ zeroinitializer, %phi219 ], [ zeroinitializer, %else215 ]
%570 = ptrtoint {}* %0 to i64
%571 = inttoptr i64 %570 to { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }*
%_fmm_170 = load { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }, { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }* %571, align 8
%_fmm_171 = extractvalue { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* } %_fmm_170, 24
%572 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }* %_fmm_171 to i64
%573 = icmp ne i64 %572, 0
br i1 %573, label %then223, label %else224
then217: ; preds = %then214
%574 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_169 to i64
%575 = inttoptr i64 %574 to i64*
%576 = getelementptr i64, i64* %575, i64 -1
%577 = atomicrmw sub i64* %576, i64 1 release, align 8
%578 = icmp eq i64 %577, 0
br i1 %578, label %then220, label %else221
else218: ; preds = %then214
br label %phi219
phi219: ; preds = %phi222, %else218
%_fmm_16e = phi {} [ zeroinitializer, %phi222 ], [ zeroinitializer, %else218 ]
br label %phi216
then220: ; preds = %then217
fence acquire
%579 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_169 to i64
%580 = and i64 %579, -2
%581 = inttoptr i64 %580 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*
%582 = getelementptr { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %581, i32 0, i32 1
%_fmm_16b = load {} (i64)*, {} (i64)** %582, align 8
%583 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_169 to i64
%_fmm_16c = tail call {} %_fmm_16b(i64 %583)
%584 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_169 to i64
%585 = inttoptr i64 %584 to i8*
%586 = ptrtoint i8* %585 to i64
%587 = inttoptr i64 %586 to i64*
%588 = getelementptr i64, i64* %587, i64 -1
%589 = ptrtoint i64* %588 to i64
%590 = inttoptr i64 %589 to i8*
call void @_pen_free(i8* %590)
br label %phi222
else221: ; preds = %then217
br label %phi222
phi222: ; preds = %else221, %then220
%_fmm_16d = phi {} [ zeroinitializer, %then220 ], [ zeroinitializer, %else221 ]
br label %phi219
then223: ; preds = %phi216
%591 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }* %_fmm_171 to i64
%592 = and i64 %591, 1
%593 = icmp ne i64 %592, 1
br i1 %593, label %then226, label %else227
else224: ; preds = %phi216
br label %phi225
phi225: ; preds = %phi228, %else224
%_fmm_177 = phi {} [ zeroinitializer, %phi228 ], [ zeroinitializer, %else224 ]
%594 = ptrtoint {}* %0 to i64
%595 = inttoptr i64 %594 to { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }*
%_fmm_178 = load { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }, { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }* %595, align 8
%_fmm_179 = extractvalue { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* } %_fmm_178, 25
%596 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }* %_fmm_179 to i64
%597 = icmp ne i64 %596, 0
br i1 %597, label %then232, label %else233
then226: ; preds = %then223
%598 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }* %_fmm_171 to i64
%599 = inttoptr i64 %598 to i64*
%600 = getelementptr i64, i64* %599, i64 -1
%601 = atomicrmw sub i64* %600, i64 1 release, align 8
%602 = icmp eq i64 %601, 0
br i1 %602, label %then229, label %else230
else227: ; preds = %then223
br label %phi228
phi228: ; preds = %phi231, %else227
%_fmm_176 = phi {} [ zeroinitializer, %phi231 ], [ zeroinitializer, %else227 ]
br label %phi225
then229: ; preds = %then226
fence acquire
%603 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }* %_fmm_171 to i64
%604 = and i64 %603, -2
%605 = inttoptr i64 %604 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*
%606 = getelementptr { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }* %605, i32 0, i32 1
%_fmm_173 = load {} (i64)*, {} (i64)** %606, align 8
%607 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }* %_fmm_171 to i64
%_fmm_174 = tail call {} %_fmm_173(i64 %607)
%608 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }* %_fmm_171 to i64
%609 = inttoptr i64 %608 to i8*
%610 = ptrtoint i8* %609 to i64
%611 = inttoptr i64 %610 to i64*
%612 = getelementptr i64, i64* %611, i64 -1
%613 = ptrtoint i64* %612 to i64
%614 = inttoptr i64 %613 to i8*
call void @_pen_free(i8* %614)
br label %phi231
else230: ; preds = %then226
br label %phi231
phi231: ; preds = %else230, %then229
%_fmm_175 = phi {} [ zeroinitializer, %then229 ], [ zeroinitializer, %else230 ]
br label %phi228
then232: ; preds = %phi225
%615 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }* %_fmm_179 to i64
%616 = and i64 %615, 1
%617 = icmp ne i64 %616, 1
br i1 %617, label %then235, label %else236
else233: ; preds = %phi225
br label %phi234
phi234: ; preds = %phi237, %else233
%_fmm_17f = phi {} [ zeroinitializer, %phi237 ], [ zeroinitializer, %else233 ]
%618 = ptrtoint {}* %0 to i64
%619 = inttoptr i64 %618 to { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }*
%_fmm_180 = load { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }, { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }* %619, align 8
%_fmm_181 = extractvalue { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* } %_fmm_180, 26
%620 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_181 to i64
%621 = icmp ne i64 %620, 0
br i1 %621, label %then241, label %else242
then235: ; preds = %then232
%622 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }* %_fmm_179 to i64
%623 = inttoptr i64 %622 to i64*
%624 = getelementptr i64, i64* %623, i64 -1
%625 = atomicrmw sub i64* %624, i64 1 release, align 8
%626 = icmp eq i64 %625, 0
br i1 %626, label %then238, label %else239
else236: ; preds = %then232
br label %phi237
phi237: ; preds = %phi240, %else236
%_fmm_17e = phi {} [ zeroinitializer, %phi240 ], [ zeroinitializer, %else236 ]
br label %phi234
then238: ; preds = %then235
fence acquire
%627 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }* %_fmm_179 to i64
%628 = and i64 %627, -2
%629 = inttoptr i64 %628 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*
%630 = getelementptr { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }* %629, i32 0, i32 1
%_fmm_17b = load {} (i64)*, {} (i64)** %630, align 8
%631 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }* %_fmm_179 to i64
%_fmm_17c = tail call {} %_fmm_17b(i64 %631)
%632 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }* %_fmm_179 to i64
%633 = inttoptr i64 %632 to i8*
%634 = ptrtoint i8* %633 to i64
%635 = inttoptr i64 %634 to i64*
%636 = getelementptr i64, i64* %635, i64 -1
%637 = ptrtoint i64* %636 to i64
%638 = inttoptr i64 %637 to i8*
call void @_pen_free(i8* %638)
br label %phi240
else239: ; preds = %then235
br label %phi240
phi240: ; preds = %else239, %then238
%_fmm_17d = phi {} [ zeroinitializer, %then238 ], [ zeroinitializer, %else239 ]
br label %phi237
then241: ; preds = %phi234
%639 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_181 to i64
%640 = and i64 %639, 1
%641 = icmp ne i64 %640, 1
br i1 %641, label %then244, label %else245
else242: ; preds = %phi234
br label %phi243
phi243: ; preds = %phi246, %else242
%_fmm_187 = phi {} [ zeroinitializer, %phi246 ], [ zeroinitializer, %else242 ]
%642 = ptrtoint {}* %0 to i64
%643 = inttoptr i64 %642 to { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }*
%_fmm_188 = load { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }, { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* }* %643, align 8
%_fmm_189 = extractvalue { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, double)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* } %_fmm_188, 27
%644 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_189 to i64
%645 = icmp ne i64 %644, 0
br i1 %645, label %then250, label %else251
then244: ; preds = %then241
%646 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_181 to i64
%647 = inttoptr i64 %646 to i64*
%648 = getelementptr i64, i64* %647, i64 -1
%649 = atomicrmw sub i64* %648, i64 1 release, align 8
%650 = icmp eq i64 %649, 0
br i1 %650, label %then247, label %else248
else245: ; preds = %then241
br label %phi246
phi246: ; preds = %phi249, %else245
%_fmm_186 = phi {} [ zeroinitializer, %phi249 ], [ zeroinitializer, %else245 ]
br label %phi243
then247: ; preds = %then244
fence acquire
%651 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_181 to i64
%652 = and i64 %651, -2
%653 = inttoptr i64 %652 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*
%654 = getelementptr { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %653, i32 0, i32 1
%_fmm_183 = load {} (i64)*, {} (i64)** %654, align 8
%655 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_181 to i64
%_fmm_184 = tail call {} %_fmm_183(i64 %655)
%656 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_181 to i64
%657 = inttoptr i64 %656 to i8*
%658 = ptrtoint i8* %657 to i64
%659 = inttoptr i64 %658 to i64*
%660 = getelementptr i64, i64* %659, i64 -1
%661 = ptrtoint i64* %660 to i64
%662 = inttoptr i64 %661 to i8*
call void @_pen_free(i8* %662)
br label %phi249
else248: ; preds = %then244
br label %phi249
phi249: ; preds = %else248, %then247
%_fmm_185 = phi {} [ zeroinitializer, %then247 ], [ zeroinitializer, %else248 ]
br label %phi246
then250: ; preds = %phi243
%663 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_189 to i64
%664 = and i64 %663, 1
%665 = icmp ne i64 %664, 1
br i1 %665, label %then253, label %else254
else251: ; preds = %phi243
br label %phi252
phi252: ; preds = %phi255, %else251
%_fmm_18f = phi {} [ zeroinitializer, %phi255 ], [ zeroinitializer, %else251 ]
%666 = ptrtoint {}* %0 to i64
%667 = inttoptr i64 %666 to i8*
%668 = ptrtoint i8* %667 to i64
%669 = inttoptr i64 %668 to i64*
%670 = getelementptr i64, i64* %669, i64 -1
%671 = ptrtoint i64* %670 to i64
%672 = inttoptr i64 %671 to i8*
call void @_pen_free(i8* %672)
br label %phi6
then253: ; preds = %then250
%673 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_189 to i64
%674 = inttoptr i64 %673 to i64*
%675 = getelementptr i64, i64* %674, i64 -1
%676 = atomicrmw sub i64* %675, i64 1 release, align 8
%677 = icmp eq i64 %676, 0
br i1 %677, label %then256, label %else257
else254: ; preds = %then250
br label %phi255
phi255: ; preds = %phi258, %else254
%_fmm_18e = phi {} [ zeroinitializer, %phi258 ], [ zeroinitializer, %else254 ]
br label %phi252
then256: ; preds = %then253
fence acquire
%678 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_189 to i64
%679 = and i64 %678, -2
%680 = inttoptr i64 %679 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }*
%681 = getelementptr { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* %680, i32 0, i32 1
%_fmm_18b = load {} (i64)*, {} (i64)** %681, align 8
%682 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_189 to i64
%_fmm_18c = tail call {} %_fmm_18b(i64 %682)
%683 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*, { i64, i8 }*, { i64, i8 }*)*, {} (i64)*, {} }* %_fmm_189 to i64
%684 = inttoptr i64 %683 to i8*
%685 = ptrtoint i8* %684 to i64
%686 = inttoptr i64 %685 to i64*
%687 = getelementptr i64, i64* %686, i64 -1
%688 = ptrtoint i64* %687 to i64
%689 = inttoptr i64 %688 to i8*
call void @_pen_free(i8* %689)
br label %phi258
else257: ; preds = %then253
br label %phi258
phi258: ; preds = %else257, %then256
%_fmm_18d = phi {} [ zeroinitializer, %then256 ], [ zeroinitializer, %else257 ]
br label %phi255
}
define linkonce {} @"mir_clone_/.pen/default/packages/fb4346304f4058b6/File.pen:File"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_195 = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw add i64* %8, i64 1 monotonic, align 8
br label %phi3
else2: ; preds = %then
br label %phi3
phi3: ; preds = %else2, %then1
%_fmm_194 = phi {} [ zeroinitializer, %then1 ], [ zeroinitializer, %else2 ]
br label %phi
}
define linkonce {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/File.pen:File"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_1a0 = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw sub i64* %8, i64 1 release, align 8
%10 = icmp eq i64 %9, 0
br i1 %10, label %then4, label %else5
else2: ; preds = %then
br label %phi3
phi3: ; preds = %phi6, %else2
%_fmm_19f = phi {} [ zeroinitializer, %phi6 ], [ zeroinitializer, %else2 ]
br label %phi
then4: ; preds = %then1
fence acquire
%11 = ptrtoint {}* %0 to i64
%12 = inttoptr i64 %11 to { { { {} (i64)*, {} (i64)* }*, i64 } }*
%_fmm_197 = load { { { {} (i64)*, {} (i64)* }*, i64 } }, { { { {} (i64)*, {} (i64)* }*, i64 } }* %12, align 8
%_fmm_198 = extractvalue { { { {} (i64)*, {} (i64)* }*, i64 } } %_fmm_197, 0
%_fmm_199 = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %_fmm_198, 0
%_fmm_19a = load { {} (i64)*, {} (i64)* }, { {} (i64)*, {} (i64)* }* %_fmm_199, align 8
%_fmm_19b = extractvalue { {} (i64)*, {} (i64)* } %_fmm_19a, 1
%_fmm_19c = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %_fmm_198, 1
%_fmm_19d = tail call {} %_fmm_19b(i64 %_fmm_19c)
%13 = ptrtoint {}* %0 to i64
%14 = inttoptr i64 %13 to i8*
%15 = ptrtoint i8* %14 to i64
%16 = inttoptr i64 %15 to i64*
%17 = getelementptr i64, i64* %16, i64 -1
%18 = ptrtoint i64* %17 to i64
%19 = inttoptr i64 %18 to i8*
call void @_pen_free(i8* %19)
br label %phi6
else5: ; preds = %then1
br label %phi6
phi6: ; preds = %else5, %then4
%_fmm_19e = phi {} [ zeroinitializer, %then4 ], [ zeroinitializer, %else5 ]
br label %phi3
}
define linkonce {} @"mir_clone_/.pen/default/packages/fb4346304f4058b6/File.pen:stdErr"({} %0) {
entry:
ret {} zeroinitializer
}
define linkonce {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/File.pen:stdErr"({} %0) {
entry:
ret {} zeroinitializer
}
define linkonce {} @"mir_clone_/.pen/default/packages/fb4346304f4058b6/File.pen:stdIn"({} %0) {
entry:
ret {} zeroinitializer
}
define linkonce {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/File.pen:stdIn"({} %0) {
entry:
ret {} zeroinitializer
}
define linkonce {} @"mir_clone_/.pen/default/packages/fb4346304f4058b6/File.pen:stdOut"({} %0) {
entry:
ret {} zeroinitializer
}
define linkonce {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/File.pen:stdOut"({} %0) {
entry:
ret {} zeroinitializer
}
define linkonce {} @"mir_clone_/.pen/default/packages/fb4346304f4058b6/File/Metadata.pen:Metadata"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_1a3 = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw add i64* %8, i64 1 monotonic, align 8
br label %phi3
else2: ; preds = %then
br label %phi3
phi3: ; preds = %else2, %then1
%_fmm_1a2 = phi {} [ zeroinitializer, %then1 ], [ zeroinitializer, %else2 ]
br label %phi
}
define linkonce {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/File/Metadata.pen:Metadata"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_1a9 = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw sub i64* %8, i64 1 release, align 8
%10 = icmp eq i64 %9, 0
br i1 %10, label %then4, label %else5
else2: ; preds = %then
br label %phi3
phi3: ; preds = %phi6, %else2
%_fmm_1a8 = phi {} [ zeroinitializer, %phi6 ], [ zeroinitializer, %else2 ]
br label %phi
then4: ; preds = %then1
fence acquire
%11 = ptrtoint {}* %0 to i64
%12 = inttoptr i64 %11 to { double }*
%_fmm_1a5 = load { double }, { double }* %12, align 8
%_fmm_1a6 = extractvalue { double } %_fmm_1a5, 0
%13 = ptrtoint {}* %0 to i64
%14 = inttoptr i64 %13 to i8*
%15 = ptrtoint i8* %14 to i64
%16 = inttoptr i64 %15 to i64*
%17 = getelementptr i64, i64* %16, i64 -1
%18 = ptrtoint i64* %17 to i64
%19 = inttoptr i64 %18 to i8*
call void @_pen_free(i8* %19)
br label %phi6
else5: ; preds = %then1
br label %phi6
phi6: ; preds = %else5, %then4
%_fmm_1a7 = phi {} [ zeroinitializer, %then4 ], [ zeroinitializer, %else5 ]
br label %phi3
}
define linkonce {} @"mir_clone_/.pen/default/packages/fb4346304f4058b6/File/OpenOptions.pen:OpenOptions"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_1ac = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw add i64* %8, i64 1 monotonic, align 8
br label %phi3
else2: ; preds = %then
br label %phi3
phi3: ; preds = %else2, %then1
%_fmm_1ab = phi {} [ zeroinitializer, %then1 ], [ zeroinitializer, %else2 ]
br label %phi
}
define linkonce {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/File/OpenOptions.pen:OpenOptions"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_1bc = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw sub i64* %8, i64 1 release, align 8
%10 = icmp eq i64 %9, 0
br i1 %10, label %then4, label %else5
else2: ; preds = %then
br label %phi3
phi3: ; preds = %phi6, %else2
%_fmm_1bb = phi {} [ zeroinitializer, %phi6 ], [ zeroinitializer, %else2 ]
br label %phi
then4: ; preds = %then1
fence acquire
%11 = ptrtoint {}* %0 to i64
%12 = inttoptr i64 %11 to { i1, i1, i1, i1, i1, i1 }*
%_fmm_1ae = load { i1, i1, i1, i1, i1, i1 }, { i1, i1, i1, i1, i1, i1 }* %12, align 1
%_fmm_1af = extractvalue { i1, i1, i1, i1, i1, i1 } %_fmm_1ae, 0
%13 = ptrtoint {}* %0 to i64
%14 = inttoptr i64 %13 to { i1, i1, i1, i1, i1, i1 }*
%_fmm_1b0 = load { i1, i1, i1, i1, i1, i1 }, { i1, i1, i1, i1, i1, i1 }* %14, align 1
%_fmm_1b1 = extractvalue { i1, i1, i1, i1, i1, i1 } %_fmm_1b0, 1
%15 = ptrtoint {}* %0 to i64
%16 = inttoptr i64 %15 to { i1, i1, i1, i1, i1, i1 }*
%_fmm_1b2 = load { i1, i1, i1, i1, i1, i1 }, { i1, i1, i1, i1, i1, i1 }* %16, align 1
%_fmm_1b3 = extractvalue { i1, i1, i1, i1, i1, i1 } %_fmm_1b2, 2
%17 = ptrtoint {}* %0 to i64
%18 = inttoptr i64 %17 to { i1, i1, i1, i1, i1, i1 }*
%_fmm_1b4 = load { i1, i1, i1, i1, i1, i1 }, { i1, i1, i1, i1, i1, i1 }* %18, align 1
%_fmm_1b5 = extractvalue { i1, i1, i1, i1, i1, i1 } %_fmm_1b4, 3
%19 = ptrtoint {}* %0 to i64
%20 = inttoptr i64 %19 to { i1, i1, i1, i1, i1, i1 }*
%_fmm_1b6 = load { i1, i1, i1, i1, i1, i1 }, { i1, i1, i1, i1, i1, i1 }* %20, align 1
%_fmm_1b7 = extractvalue { i1, i1, i1, i1, i1, i1 } %_fmm_1b6, 4
%21 = ptrtoint {}* %0 to i64
%22 = inttoptr i64 %21 to { i1, i1, i1, i1, i1, i1 }*
%_fmm_1b8 = load { i1, i1, i1, i1, i1, i1 }, { i1, i1, i1, i1, i1, i1 }* %22, align 1
%_fmm_1b9 = extractvalue { i1, i1, i1, i1, i1, i1 } %_fmm_1b8, 5
%23 = ptrtoint {}* %0 to i64
%24 = inttoptr i64 %23 to i8*
%25 = ptrtoint i8* %24 to i64
%26 = inttoptr i64 %25 to i64*
%27 = getelementptr i64, i64* %26, i64 -1
%28 = ptrtoint i64* %27 to i64
%29 = inttoptr i64 %28 to i8*
call void @_pen_free(i8* %29)
br label %phi6
else5: ; preds = %then1
br label %phi6
phi6: ; preds = %else5, %then4
%_fmm_1ba = phi {} [ zeroinitializer, %then4 ], [ zeroinitializer, %else5 ]
br label %phi3
}
define linkonce {} @"mir_clone_/.pen/default/packages/fb4346304f4058b6/Tcp/AcceptedStream.pen:AcceptedStream"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_1bf = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw add i64* %8, i64 1 monotonic, align 8
br label %phi3
else2: ; preds = %then
br label %phi3
phi3: ; preds = %else2, %then1
%_fmm_1be = phi {} [ zeroinitializer, %then1 ], [ zeroinitializer, %else2 ]
br label %phi
}
define linkonce {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Tcp/AcceptedStream.pen:AcceptedStream"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_1cc = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw sub i64* %8, i64 1 release, align 8
%10 = icmp eq i64 %9, 0
br i1 %10, label %then4, label %else5
else2: ; preds = %then
br label %phi3
phi3: ; preds = %phi6, %else2
%_fmm_1cb = phi {} [ zeroinitializer, %phi6 ], [ zeroinitializer, %else2 ]
br label %phi
then4: ; preds = %then1
fence acquire
%11 = ptrtoint {}* %0 to i64
%12 = inttoptr i64 %11 to { {}*, { i64, i8 }* }*
%_fmm_1c1 = load { {}*, { i64, i8 }* }, { {}*, { i64, i8 }* }* %12, align 8
%_fmm_1c2 = extractvalue { {}*, { i64, i8 }* } %_fmm_1c1, 0
%_fmm_1c3 = tail call {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Tcp/Stream.pen:Stream"({}* %_fmm_1c2)
%13 = ptrtoint {}* %0 to i64
%14 = inttoptr i64 %13 to { {}*, { i64, i8 }* }*
%_fmm_1c4 = load { {}*, { i64, i8 }* }, { {}*, { i64, i8 }* }* %14, align 8
%_fmm_1c5 = extractvalue { {}*, { i64, i8 }* } %_fmm_1c4, 1
%15 = ptrtoint { i64, i8 }* %_fmm_1c5 to i64
%16 = icmp ne i64 %15, 0
br i1 %16, label %then7, label %else8
else5: ; preds = %then1
br label %phi6
phi6: ; preds = %phi9, %else5
%_fmm_1ca = phi {} [ zeroinitializer, %phi9 ], [ zeroinitializer, %else5 ]
br label %phi3
then7: ; preds = %then4
%17 = ptrtoint { i64, i8 }* %_fmm_1c5 to i64
%18 = and i64 %17, 1
%19 = icmp ne i64 %18, 1
br i1 %19, label %then10, label %else11
else8: ; preds = %then4
br label %phi9
phi9: ; preds = %phi12, %else8
%_fmm_1c9 = phi {} [ zeroinitializer, %phi12 ], [ zeroinitializer, %else8 ]
%20 = ptrtoint {}* %0 to i64
%21 = inttoptr i64 %20 to i8*
%22 = ptrtoint i8* %21 to i64
%23 = inttoptr i64 %22 to i64*
%24 = getelementptr i64, i64* %23, i64 -1
%25 = ptrtoint i64* %24 to i64
%26 = inttoptr i64 %25 to i8*
call void @_pen_free(i8* %26)
br label %phi6
then10: ; preds = %then7
%27 = ptrtoint { i64, i8 }* %_fmm_1c5 to i64
%28 = inttoptr i64 %27 to i64*
%29 = getelementptr i64, i64* %28, i64 -1
%30 = atomicrmw sub i64* %29, i64 1 release, align 8
%31 = icmp eq i64 %30, 0
br i1 %31, label %then13, label %else14
else11: ; preds = %then7
br label %phi12
phi12: ; preds = %phi15, %else11
%_fmm_1c8 = phi {} [ zeroinitializer, %phi15 ], [ zeroinitializer, %else11 ]
br label %phi9
then13: ; preds = %then10
fence acquire
%32 = ptrtoint { i64, i8 }* %_fmm_1c5 to i64
%33 = inttoptr i64 %32 to i8*
%34 = ptrtoint i8* %33 to i64
%35 = inttoptr i64 %34 to i64*
%36 = getelementptr i64, i64* %35, i64 -1
%37 = ptrtoint i64* %36 to i64
%38 = inttoptr i64 %37 to i8*
call void @_pen_free(i8* %38)
br label %phi15
else14: ; preds = %then10
br label %phi15
phi15: ; preds = %else14, %then13
%_fmm_1c7 = phi {} [ zeroinitializer, %then13 ], [ zeroinitializer, %else14 ]
br label %phi12
}
define linkonce {} @"mir_clone_/.pen/default/packages/fb4346304f4058b6/Tcp/Listener.pen:Listener"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_1cf = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw add i64* %8, i64 1 monotonic, align 8
br label %phi3
else2: ; preds = %then
br label %phi3
phi3: ; preds = %else2, %then1
%_fmm_1ce = phi {} [ zeroinitializer, %then1 ], [ zeroinitializer, %else2 ]
br label %phi
}
define linkonce {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Tcp/Listener.pen:Listener"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_1da = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw sub i64* %8, i64 1 release, align 8
%10 = icmp eq i64 %9, 0
br i1 %10, label %then4, label %else5
else2: ; preds = %then
br label %phi3
phi3: ; preds = %phi6, %else2
%_fmm_1d9 = phi {} [ zeroinitializer, %phi6 ], [ zeroinitializer, %else2 ]
br label %phi
then4: ; preds = %then1
fence acquire
%11 = ptrtoint {}* %0 to i64
%12 = inttoptr i64 %11 to { { { {} (i64)*, {} (i64)* }*, i64 } }*
%_fmm_1d1 = load { { { {} (i64)*, {} (i64)* }*, i64 } }, { { { {} (i64)*, {} (i64)* }*, i64 } }* %12, align 8
%_fmm_1d2 = extractvalue { { { {} (i64)*, {} (i64)* }*, i64 } } %_fmm_1d1, 0
%_fmm_1d3 = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %_fmm_1d2, 0
%_fmm_1d4 = load { {} (i64)*, {} (i64)* }, { {} (i64)*, {} (i64)* }* %_fmm_1d3, align 8
%_fmm_1d5 = extractvalue { {} (i64)*, {} (i64)* } %_fmm_1d4, 1
%_fmm_1d6 = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %_fmm_1d2, 1
%_fmm_1d7 = tail call {} %_fmm_1d5(i64 %_fmm_1d6)
%13 = ptrtoint {}* %0 to i64
%14 = inttoptr i64 %13 to i8*
%15 = ptrtoint i8* %14 to i64
%16 = inttoptr i64 %15 to i64*
%17 = getelementptr i64, i64* %16, i64 -1
%18 = ptrtoint i64* %17 to i64
%19 = inttoptr i64 %18 to i8*
call void @_pen_free(i8* %19)
br label %phi6
else5: ; preds = %then1
br label %phi6
phi6: ; preds = %else5, %then4
%_fmm_1d8 = phi {} [ zeroinitializer, %then4 ], [ zeroinitializer, %else5 ]
br label %phi3
}
define linkonce {} @"mir_clone_/.pen/default/packages/fb4346304f4058b6/Tcp/Stream.pen:Stream"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_1dd = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw add i64* %8, i64 1 monotonic, align 8
br label %phi3
else2: ; preds = %then
br label %phi3
phi3: ; preds = %else2, %then1
%_fmm_1dc = phi {} [ zeroinitializer, %then1 ], [ zeroinitializer, %else2 ]
br label %phi
}
define linkonce {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Tcp/Stream.pen:Stream"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_1e8 = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw sub i64* %8, i64 1 release, align 8
%10 = icmp eq i64 %9, 0
br i1 %10, label %then4, label %else5
else2: ; preds = %then
br label %phi3
phi3: ; preds = %phi6, %else2
%_fmm_1e7 = phi {} [ zeroinitializer, %phi6 ], [ zeroinitializer, %else2 ]
br label %phi
then4: ; preds = %then1
fence acquire
%11 = ptrtoint {}* %0 to i64
%12 = inttoptr i64 %11 to { { { {} (i64)*, {} (i64)* }*, i64 } }*
%_fmm_1df = load { { { {} (i64)*, {} (i64)* }*, i64 } }, { { { {} (i64)*, {} (i64)* }*, i64 } }* %12, align 8
%_fmm_1e0 = extractvalue { { { {} (i64)*, {} (i64)* }*, i64 } } %_fmm_1df, 0
%_fmm_1e1 = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %_fmm_1e0, 0
%_fmm_1e2 = load { {} (i64)*, {} (i64)* }, { {} (i64)*, {} (i64)* }* %_fmm_1e1, align 8
%_fmm_1e3 = extractvalue { {} (i64)*, {} (i64)* } %_fmm_1e2, 1
%_fmm_1e4 = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %_fmm_1e0, 1
%_fmm_1e5 = tail call {} %_fmm_1e3(i64 %_fmm_1e4)
%13 = ptrtoint {}* %0 to i64
%14 = inttoptr i64 %13 to i8*
%15 = ptrtoint i8* %14 to i64
%16 = inttoptr i64 %15 to i64*
%17 = getelementptr i64, i64* %16, i64 -1
%18 = ptrtoint i64* %17 to i64
%19 = inttoptr i64 %18 to i8*
call void @_pen_free(i8* %19)
br label %phi6
else5: ; preds = %then1
br label %phi6
phi6: ; preds = %else5, %then4
%_fmm_1e6 = phi {} [ zeroinitializer, %then4 ], [ zeroinitializer, %else5 ]
br label %phi3
}
define linkonce {} @"mir_clone_/.pen/default/packages/fb4346304f4058b6/Udp/Datagram.pen:Datagram"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_1eb = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw add i64* %8, i64 1 monotonic, align 8
br label %phi3
else2: ; preds = %then
br label %phi3
phi3: ; preds = %else2, %then1
%_fmm_1ea = phi {} [ zeroinitializer, %then1 ], [ zeroinitializer, %else2 ]
br label %phi
}
define linkonce {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Udp/Datagram.pen:Datagram"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_1fb = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw sub i64* %8, i64 1 release, align 8
%10 = icmp eq i64 %9, 0
br i1 %10, label %then4, label %else5
else2: ; preds = %then
br label %phi3
phi3: ; preds = %phi6, %else2
%_fmm_1fa = phi {} [ zeroinitializer, %phi6 ], [ zeroinitializer, %else2 ]
br label %phi
then4: ; preds = %then1
fence acquire
%11 = ptrtoint {}* %0 to i64
%12 = inttoptr i64 %11 to { { i64, i8 }*, { i64, i8 }* }*
%_fmm_1ed = load { { i64, i8 }*, { i64, i8 }* }, { { i64, i8 }*, { i64, i8 }* }* %12, align 8
%_fmm_1ee = extractvalue { { i64, i8 }*, { i64, i8 }* } %_fmm_1ed, 0
%13 = ptrtoint { i64, i8 }* %_fmm_1ee to i64
%14 = icmp ne i64 %13, 0
br i1 %14, label %then7, label %else8
else5: ; preds = %then1
br label %phi6
phi6: ; preds = %phi18, %else5
%_fmm_1f9 = phi {} [ zeroinitializer, %phi18 ], [ zeroinitializer, %else5 ]
br label %phi3
then7: ; preds = %then4
%15 = ptrtoint { i64, i8 }* %_fmm_1ee to i64
%16 = and i64 %15, 1
%17 = icmp ne i64 %16, 1
br i1 %17, label %then10, label %else11
else8: ; preds = %then4
br label %phi9
phi9: ; preds = %phi12, %else8
%_fmm_1f2 = phi {} [ zeroinitializer, %phi12 ], [ zeroinitializer, %else8 ]
%18 = ptrtoint {}* %0 to i64
%19 = inttoptr i64 %18 to { { i64, i8 }*, { i64, i8 }* }*
%_fmm_1f3 = load { { i64, i8 }*, { i64, i8 }* }, { { i64, i8 }*, { i64, i8 }* }* %19, align 8
%_fmm_1f4 = extractvalue { { i64, i8 }*, { i64, i8 }* } %_fmm_1f3, 1
%20 = ptrtoint { i64, i8 }* %_fmm_1f4 to i64
%21 = icmp ne i64 %20, 0
br i1 %21, label %then16, label %else17
then10: ; preds = %then7
%22 = ptrtoint { i64, i8 }* %_fmm_1ee to i64
%23 = inttoptr i64 %22 to i64*
%24 = getelementptr i64, i64* %23, i64 -1
%25 = atomicrmw sub i64* %24, i64 1 release, align 8
%26 = icmp eq i64 %25, 0
br i1 %26, label %then13, label %else14
else11: ; preds = %then7
br label %phi12
phi12: ; preds = %phi15, %else11
%_fmm_1f1 = phi {} [ zeroinitializer, %phi15 ], [ zeroinitializer, %else11 ]
br label %phi9
then13: ; preds = %then10
fence acquire
%27 = ptrtoint { i64, i8 }* %_fmm_1ee to i64
%28 = inttoptr i64 %27 to i8*
%29 = ptrtoint i8* %28 to i64
%30 = inttoptr i64 %29 to i64*
%31 = getelementptr i64, i64* %30, i64 -1
%32 = ptrtoint i64* %31 to i64
%33 = inttoptr i64 %32 to i8*
call void @_pen_free(i8* %33)
br label %phi15
else14: ; preds = %then10
br label %phi15
phi15: ; preds = %else14, %then13
%_fmm_1f0 = phi {} [ zeroinitializer, %then13 ], [ zeroinitializer, %else14 ]
br label %phi12
then16: ; preds = %phi9
%34 = ptrtoint { i64, i8 }* %_fmm_1f4 to i64
%35 = and i64 %34, 1
%36 = icmp ne i64 %35, 1
br i1 %36, label %then19, label %else20
else17: ; preds = %phi9
br label %phi18
phi18: ; preds = %phi21, %else17
%_fmm_1f8 = phi {} [ zeroinitializer, %phi21 ], [ zeroinitializer, %else17 ]
%37 = ptrtoint {}* %0 to i64
%38 = inttoptr i64 %37 to i8*
%39 = ptrtoint i8* %38 to i64
%40 = inttoptr i64 %39 to i64*
%41 = getelementptr i64, i64* %40, i64 -1
%42 = ptrtoint i64* %41 to i64
%43 = inttoptr i64 %42 to i8*
call void @_pen_free(i8* %43)
br label %phi6
then19: ; preds = %then16
%44 = ptrtoint { i64, i8 }* %_fmm_1f4 to i64
%45 = inttoptr i64 %44 to i64*
%46 = getelementptr i64, i64* %45, i64 -1
%47 = atomicrmw sub i64* %46, i64 1 release, align 8
%48 = icmp eq i64 %47, 0
br i1 %48, label %then22, label %else23
else20: ; preds = %then16
br label %phi21
phi21: ; preds = %phi24, %else20
%_fmm_1f7 = phi {} [ zeroinitializer, %phi24 ], [ zeroinitializer, %else20 ]
br label %phi18
then22: ; preds = %then19
fence acquire
%49 = ptrtoint { i64, i8 }* %_fmm_1f4 to i64
%50 = inttoptr i64 %49 to i8*
%51 = ptrtoint i8* %50 to i64
%52 = inttoptr i64 %51 to i64*
%53 = getelementptr i64, i64* %52, i64 -1
%54 = ptrtoint i64* %53 to i64
%55 = inttoptr i64 %54 to i8*
call void @_pen_free(i8* %55)
br label %phi24
else23: ; preds = %then19
br label %phi24
phi24: ; preds = %else23, %then22
%_fmm_1f6 = phi {} [ zeroinitializer, %then22 ], [ zeroinitializer, %else23 ]
br label %phi21
}
define linkonce {} @"mir_clone_/.pen/default/packages/fb4346304f4058b6/Udp/Socket.pen:Socket"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_1fe = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw add i64* %8, i64 1 monotonic, align 8
br label %phi3
else2: ; preds = %then
br label %phi3
phi3: ; preds = %else2, %then1
%_fmm_1fd = phi {} [ zeroinitializer, %then1 ], [ zeroinitializer, %else2 ]
br label %phi
}
define linkonce {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Udp/Socket.pen:Socket"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_209 = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw sub i64* %8, i64 1 release, align 8
%10 = icmp eq i64 %9, 0
br i1 %10, label %then4, label %else5
else2: ; preds = %then
br label %phi3
phi3: ; preds = %phi6, %else2
%_fmm_208 = phi {} [ zeroinitializer, %phi6 ], [ zeroinitializer, %else2 ]
br label %phi
then4: ; preds = %then1
fence acquire
%11 = ptrtoint {}* %0 to i64
%12 = inttoptr i64 %11 to { { { {} (i64)*, {} (i64)* }*, i64 } }*
%_fmm_200 = load { { { {} (i64)*, {} (i64)* }*, i64 } }, { { { {} (i64)*, {} (i64)* }*, i64 } }* %12, align 8
%_fmm_201 = extractvalue { { { {} (i64)*, {} (i64)* }*, i64 } } %_fmm_200, 0
%_fmm_202 = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %_fmm_201, 0
%_fmm_203 = load { {} (i64)*, {} (i64)* }, { {} (i64)*, {} (i64)* }* %_fmm_202, align 8
%_fmm_204 = extractvalue { {} (i64)*, {} (i64)* } %_fmm_203, 1
%_fmm_205 = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %_fmm_201, 1
%_fmm_206 = tail call {} %_fmm_204(i64 %_fmm_205)
%13 = ptrtoint {}* %0 to i64
%14 = inttoptr i64 %13 to i8*
%15 = ptrtoint i8* %14 to i64
%16 = inttoptr i64 %15 to i64*
%17 = getelementptr i64, i64* %16, i64 -1
%18 = ptrtoint i64* %17 to i64
%19 = inttoptr i64 %18 to i8*
call void @_pen_free(i8* %19)
br label %phi6
else5: ; preds = %then1
br label %phi6
phi6: ; preds = %else5, %then4
%_fmm_207 = phi {} [ zeroinitializer, %then4 ], [ zeroinitializer, %else5 ]
br label %phi3
}
define linkonce {} @"mir_clone_/.pen/default/packages/fb4346304f4058b6/array.pen:Array"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_20c = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw add i64* %8, i64 1 monotonic, align 8
br label %phi3
else2: ; preds = %then
br label %phi3
phi3: ; preds = %else2, %then1
%_fmm_20b = phi {} [ zeroinitializer, %then1 ], [ zeroinitializer, %else2 ]
br label %phi
}
define linkonce {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/array.pen:Array"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_217 = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw sub i64* %8, i64 1 release, align 8
%10 = icmp eq i64 %9, 0
br i1 %10, label %then4, label %else5
else2: ; preds = %then
br label %phi3
phi3: ; preds = %phi6, %else2
%_fmm_216 = phi {} [ zeroinitializer, %phi6 ], [ zeroinitializer, %else2 ]
br label %phi
then4: ; preds = %then1
fence acquire
%11 = ptrtoint {}* %0 to i64
%12 = inttoptr i64 %11 to { { { {} (i64)*, {} (i64)* }*, i64 } }*
%_fmm_20e = load { { { {} (i64)*, {} (i64)* }*, i64 } }, { { { {} (i64)*, {} (i64)* }*, i64 } }* %12, align 8
%_fmm_20f = extractvalue { { { {} (i64)*, {} (i64)* }*, i64 } } %_fmm_20e, 0
%_fmm_210 = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %_fmm_20f, 0
%_fmm_211 = load { {} (i64)*, {} (i64)* }, { {} (i64)*, {} (i64)* }* %_fmm_210, align 8
%_fmm_212 = extractvalue { {} (i64)*, {} (i64)* } %_fmm_211, 1
%_fmm_213 = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %_fmm_20f, 1
%_fmm_214 = tail call {} %_fmm_212(i64 %_fmm_213)
%13 = ptrtoint {}* %0 to i64
%14 = inttoptr i64 %13 to i8*
%15 = ptrtoint i8* %14 to i64
%16 = inttoptr i64 %15 to i64*
%17 = getelementptr i64, i64* %16, i64 -1
%18 = ptrtoint i64* %17 to i64
%19 = inttoptr i64 %18 to i8*
call void @_pen_free(i8* %19)
br label %phi6
else5: ; preds = %then1
br label %phi6
phi6: ; preds = %else5, %then4
%_fmm_215 = phi {} [ zeroinitializer, %then4 ], [ zeroinitializer, %else5 ]
br label %phi3
}
define linkonce {} @"mir_clone_/.pen/default/packages/fb4346304f4058b6/normalFile.pen:NormalFile"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_21a = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw add i64* %8, i64 1 monotonic, align 8
br label %phi3
else2: ; preds = %then
br label %phi3
phi3: ; preds = %else2, %then1
%_fmm_219 = phi {} [ zeroinitializer, %then1 ], [ zeroinitializer, %else2 ]
br label %phi
}
define linkonce {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/normalFile.pen:NormalFile"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_225 = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw sub i64* %8, i64 1 release, align 8
%10 = icmp eq i64 %9, 0
br i1 %10, label %then4, label %else5
else2: ; preds = %then
br label %phi3
phi3: ; preds = %phi6, %else2
%_fmm_224 = phi {} [ zeroinitializer, %phi6 ], [ zeroinitializer, %else2 ]
br label %phi
then4: ; preds = %then1
fence acquire
%11 = ptrtoint {}* %0 to i64
%12 = inttoptr i64 %11 to { { { {} (i64)*, {} (i64)* }*, i64 } }*
%_fmm_21c = load { { { {} (i64)*, {} (i64)* }*, i64 } }, { { { {} (i64)*, {} (i64)* }*, i64 } }* %12, align 8
%_fmm_21d = extractvalue { { { {} (i64)*, {} (i64)* }*, i64 } } %_fmm_21c, 0
%_fmm_21e = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %_fmm_21d, 0
%_fmm_21f = load { {} (i64)*, {} (i64)* }, { {} (i64)*, {} (i64)* }* %_fmm_21e, align 8
%_fmm_220 = extractvalue { {} (i64)*, {} (i64)* } %_fmm_21f, 1
%_fmm_221 = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %_fmm_21d, 1
%_fmm_222 = tail call {} %_fmm_220(i64 %_fmm_221)
%13 = ptrtoint {}* %0 to i64
%14 = inttoptr i64 %13 to i8*
%15 = ptrtoint i8* %14 to i64
%16 = inttoptr i64 %15 to i64*
%17 = getelementptr i64, i64* %16, i64 -1
%18 = ptrtoint i64* %17 to i64
%19 = inttoptr i64 %18 to i8*
call void @_pen_free(i8* %19)
br label %phi6
else5: ; preds = %then1
br label %phi6
phi6: ; preds = %else5, %then4
%_fmm_223 = phi {} [ zeroinitializer, %then4 ], [ zeroinitializer, %else5 ]
br label %phi3
}
define linkonce {} @"mir_clone_/arguments.pen:Arguments"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_228 = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw add i64* %8, i64 1 monotonic, align 8
br label %phi3
else2: ; preds = %then
br label %phi3
phi3: ; preds = %else2, %then1
%_fmm_227 = phi {} [ zeroinitializer, %then1 ], [ zeroinitializer, %else2 ]
br label %phi
}
define linkonce {} @"mir_drop_/arguments.pen:Arguments"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_232 = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw sub i64* %8, i64 1 release, align 8
%10 = icmp eq i64 %9, 0
br i1 %10, label %then4, label %else5
else2: ; preds = %then
br label %phi3
phi3: ; preds = %phi6, %else2
%_fmm_231 = phi {} [ zeroinitializer, %phi6 ], [ zeroinitializer, %else2 ]
br label %phi
then4: ; preds = %then1
fence acquire
%11 = ptrtoint {}* %0 to i64
%12 = inttoptr i64 %11 to { { i64, i8 }* }*
%_fmm_22a = load { { i64, i8 }* }, { { i64, i8 }* }* %12, align 8
%_fmm_22b = extractvalue { { i64, i8 }* } %_fmm_22a, 0
%13 = ptrtoint { i64, i8 }* %_fmm_22b to i64
%14 = icmp ne i64 %13, 0
br i1 %14, label %then7, label %else8
else5: ; preds = %then1
br label %phi6
phi6: ; preds = %phi9, %else5
%_fmm_230 = phi {} [ zeroinitializer, %phi9 ], [ zeroinitializer, %else5 ]
br label %phi3
then7: ; preds = %then4
%15 = ptrtoint { i64, i8 }* %_fmm_22b to i64
%16 = and i64 %15, 1
%17 = icmp ne i64 %16, 1
br i1 %17, label %then10, label %else11
else8: ; preds = %then4
br label %phi9
phi9: ; preds = %phi12, %else8
%_fmm_22f = phi {} [ zeroinitializer, %phi12 ], [ zeroinitializer, %else8 ]
%18 = ptrtoint {}* %0 to i64
%19 = inttoptr i64 %18 to i8*
%20 = ptrtoint i8* %19 to i64
%21 = inttoptr i64 %20 to i64*
%22 = getelementptr i64, i64* %21, i64 -1
%23 = ptrtoint i64* %22 to i64
%24 = inttoptr i64 %23 to i8*
call void @_pen_free(i8* %24)
br label %phi6
then10: ; preds = %then7
%25 = ptrtoint { i64, i8 }* %_fmm_22b to i64
%26 = inttoptr i64 %25 to i64*
%27 = getelementptr i64, i64* %26, i64 -1
%28 = atomicrmw sub i64* %27, i64 1 release, align 8
%29 = icmp eq i64 %28, 0
br i1 %29, label %then13, label %else14
else11: ; preds = %then7
br label %phi12
phi12: ; preds = %phi15, %else11
%_fmm_22e = phi {} [ zeroinitializer, %phi15 ], [ zeroinitializer, %else11 ]
br label %phi9
then13: ; preds = %then10
fence acquire
%30 = ptrtoint { i64, i8 }* %_fmm_22b to i64
%31 = inttoptr i64 %30 to i8*
%32 = ptrtoint i8* %31 to i64
%33 = inttoptr i64 %32 to i64*
%34 = getelementptr i64, i64* %33, i64 -1
%35 = ptrtoint i64* %34 to i64
%36 = inttoptr i64 %35 to i8*
call void @_pen_free(i8* %36)
br label %phi15
else14: ; preds = %then10
br label %phi15
phi15: ; preds = %else14, %then13
%_fmm_22d = phi {} [ zeroinitializer, %then13 ], [ zeroinitializer, %else14 ]
br label %phi12
}
define linkonce {} @"mir_clone_prelude:_AnyList"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_235 = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw add i64* %8, i64 1 monotonic, align 8
br label %phi3
else2: ; preds = %then
br label %phi3
phi3: ; preds = %else2, %then1
%_fmm_234 = phi {} [ zeroinitializer, %then1 ], [ zeroinitializer, %else2 ]
br label %phi
}
define linkonce {} @"mir_drop_prelude:_AnyList"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_241 = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw sub i64* %8, i64 1 release, align 8
%10 = icmp eq i64 %9, 0
br i1 %10, label %then4, label %else5
else2: ; preds = %then
br label %phi3
phi3: ; preds = %phi6, %else2
%_fmm_240 = phi {} [ zeroinitializer, %phi6 ], [ zeroinitializer, %else2 ]
br label %phi
then4: ; preds = %then1
fence acquire
%11 = ptrtoint {}* %0 to i64
%12 = inttoptr i64 %11 to { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* }*
%_fmm_237 = load { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* }, { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* }* %12, align 8
%_fmm_238 = extractvalue { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* } %_fmm_237, 0
%13 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* %_fmm_238 to i64
%14 = icmp ne i64 %13, 0
br i1 %14, label %then7, label %else8
else5: ; preds = %then1
br label %phi6
phi6: ; preds = %phi9, %else5
%_fmm_23f = phi {} [ zeroinitializer, %phi9 ], [ zeroinitializer, %else5 ]
br label %phi3
then7: ; preds = %then4
%15 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* %_fmm_238 to i64
%16 = and i64 %15, 1
%17 = icmp ne i64 %16, 1
br i1 %17, label %then10, label %else11
else8: ; preds = %then4
br label %phi9
phi9: ; preds = %phi12, %else8
%_fmm_23e = phi {} [ zeroinitializer, %phi12 ], [ zeroinitializer, %else8 ]
%18 = ptrtoint {}* %0 to i64
%19 = inttoptr i64 %18 to i8*
%20 = ptrtoint i8* %19 to i64
%21 = inttoptr i64 %20 to i64*
%22 = getelementptr i64, i64* %21, i64 -1
%23 = ptrtoint i64* %22 to i64
%24 = inttoptr i64 %23 to i8*
call void @_pen_free(i8* %24)
br label %phi6
then10: ; preds = %then7
%25 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* %_fmm_238 to i64
%26 = inttoptr i64 %25 to i64*
%27 = getelementptr i64, i64* %26, i64 -1
%28 = atomicrmw sub i64* %27, i64 1 release, align 8
%29 = icmp eq i64 %28, 0
br i1 %29, label %then13, label %else14
else11: ; preds = %then7
br label %phi12
phi12: ; preds = %phi15, %else11
%_fmm_23d = phi {} [ zeroinitializer, %phi15 ], [ zeroinitializer, %else11 ]
br label %phi9
then13: ; preds = %then10
fence acquire
%30 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* %_fmm_238 to i64
%31 = and i64 %30, -2
%32 = inttoptr i64 %31 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }*
%33 = getelementptr { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* %32, i32 0, i32 1
%_fmm_23a = load {} (i64)*, {} (i64)** %33, align 8
%34 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* %_fmm_238 to i64
%_fmm_23b = tail call {} %_fmm_23a(i64 %34)
%35 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* %_fmm_238 to i64
%36 = inttoptr i64 %35 to i8*
%37 = ptrtoint i8* %36 to i64
%38 = inttoptr i64 %37 to i64*
%39 = getelementptr i64, i64* %38, i64 -1
%40 = ptrtoint i64* %39 to i64
%41 = inttoptr i64 %40 to i8*
call void @_pen_free(i8* %41)
br label %phi15
else14: ; preds = %then10
br label %phi15
phi15: ; preds = %else14, %then13
%_fmm_23c = phi {} [ zeroinitializer, %then13 ], [ zeroinitializer, %else14 ]
br label %phi12
}
define linkonce {} @"mir_clone_prelude:_FirstRest"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_244 = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw add i64* %8, i64 1 monotonic, align 8
br label %phi3
else2: ; preds = %then
br label %phi3
phi3: ; preds = %else2, %then1
%_fmm_243 = phi {} [ zeroinitializer, %then1 ], [ zeroinitializer, %else2 ]
br label %phi
}
define linkonce {} @"mir_drop_prelude:_FirstRest"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_253 = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw sub i64* %8, i64 1 release, align 8
%10 = icmp eq i64 %9, 0
br i1 %10, label %then4, label %else5
else2: ; preds = %then
br label %phi3
phi3: ; preds = %phi6, %else2
%_fmm_252 = phi {} [ zeroinitializer, %phi6 ], [ zeroinitializer, %else2 ]
br label %phi
then4: ; preds = %then1
fence acquire
%11 = ptrtoint {}* %0 to i64
%12 = inttoptr i64 %11 to { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }*, {}* }*
%_fmm_246 = load { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }*, {}* }, { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }*, {}* }* %12, align 8
%_fmm_247 = extractvalue { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }*, {}* } %_fmm_246, 0
%13 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* %_fmm_247 to i64
%14 = icmp ne i64 %13, 0
br i1 %14, label %then7, label %else8
else5: ; preds = %then1
br label %phi6
phi6: ; preds = %phi9, %else5
%_fmm_251 = phi {} [ zeroinitializer, %phi9 ], [ zeroinitializer, %else5 ]
br label %phi3
then7: ; preds = %then4
%15 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* %_fmm_247 to i64
%16 = and i64 %15, 1
%17 = icmp ne i64 %16, 1
br i1 %17, label %then10, label %else11
else8: ; preds = %then4
br label %phi9
phi9: ; preds = %phi12, %else8
%_fmm_24d = phi {} [ zeroinitializer, %phi12 ], [ zeroinitializer, %else8 ]
%18 = ptrtoint {}* %0 to i64
%19 = inttoptr i64 %18 to { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }*, {}* }*
%_fmm_24e = load { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }*, {}* }, { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }*, {}* }* %19, align 8
%_fmm_24f = extractvalue { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }*, {}* } %_fmm_24e, 1
%_fmm_250 = tail call {} @"mir_drop_prelude:_AnyList"({}* %_fmm_24f)
%20 = ptrtoint {}* %0 to i64
%21 = inttoptr i64 %20 to i8*
%22 = ptrtoint i8* %21 to i64
%23 = inttoptr i64 %22 to i64*
%24 = getelementptr i64, i64* %23, i64 -1
%25 = ptrtoint i64* %24 to i64
%26 = inttoptr i64 %25 to i8*
call void @_pen_free(i8* %26)
br label %phi6
then10: ; preds = %then7
%27 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* %_fmm_247 to i64
%28 = inttoptr i64 %27 to i64*
%29 = getelementptr i64, i64* %28, i64 -1
%30 = atomicrmw sub i64* %29, i64 1 release, align 8
%31 = icmp eq i64 %30, 0
br i1 %31, label %then13, label %else14
else11: ; preds = %then7
br label %phi12
phi12: ; preds = %phi15, %else11
%_fmm_24c = phi {} [ zeroinitializer, %phi15 ], [ zeroinitializer, %else11 ]
br label %phi9
then13: ; preds = %then10
fence acquire
%32 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* %_fmm_247 to i64
%33 = and i64 %32, -2
%34 = inttoptr i64 %33 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }*
%35 = getelementptr { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* %34, i32 0, i32 1
%_fmm_249 = load {} (i64)*, {} (i64)** %35, align 8
%36 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* %_fmm_247 to i64
%_fmm_24a = tail call {} %_fmm_249(i64 %36)
%37 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* %_fmm_247 to i64
%38 = inttoptr i64 %37 to i8*
%39 = ptrtoint i8* %38 to i64
%40 = inttoptr i64 %39 to i64*
%41 = getelementptr i64, i64* %40, i64 -1
%42 = ptrtoint i64* %41 to i64
%43 = inttoptr i64 %42 to i8*
call void @_pen_free(i8* %43)
br label %phi15
else14: ; preds = %then10
br label %phi15
phi15: ; preds = %else14, %then13
%_fmm_24b = phi {} [ zeroinitializer, %then13 ], [ zeroinitializer, %else14 ]
br label %phi12
}
define linkonce {} @"mir_clone_prelude:_Node"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_256 = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw add i64* %8, i64 1 monotonic, align 8
br label %phi3
else2: ; preds = %then
br label %phi3
phi3: ; preds = %else2, %then1
%_fmm_255 = phi {} [ zeroinitializer, %then1 ], [ zeroinitializer, %else2 ]
br label %phi
}
define linkonce {} @"mir_drop_prelude:_Node"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_26a = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw sub i64* %8, i64 1 release, align 8
%10 = icmp eq i64 %9, 0
br i1 %10, label %then4, label %else5
else2: ; preds = %then
br label %phi3
phi3: ; preds = %phi6, %else2
%_fmm_269 = phi {} [ zeroinitializer, %phi6 ], [ zeroinitializer, %else2 ]
br label %phi
then4: ; preds = %then1
fence acquire
%11 = ptrtoint {}* %0 to i64
%12 = inttoptr i64 %11 to { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* }*
%_fmm_258 = load { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* }, { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* }* %12, align 8
%_fmm_259 = extractvalue { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* } %_fmm_258, 0
%13 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* %_fmm_259 to i64
%14 = icmp ne i64 %13, 0
br i1 %14, label %then7, label %else8
else5: ; preds = %then1
br label %phi6
phi6: ; preds = %phi18, %else5
%_fmm_268 = phi {} [ zeroinitializer, %phi18 ], [ zeroinitializer, %else5 ]
br label %phi3
then7: ; preds = %then4
%15 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* %_fmm_259 to i64
%16 = and i64 %15, 1
%17 = icmp ne i64 %16, 1
br i1 %17, label %then10, label %else11
else8: ; preds = %then4
br label %phi9
phi9: ; preds = %phi12, %else8
%_fmm_25f = phi {} [ zeroinitializer, %phi12 ], [ zeroinitializer, %else8 ]
%18 = ptrtoint {}* %0 to i64
%19 = inttoptr i64 %18 to { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* }*
%_fmm_260 = load { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* }, { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* }* %19, align 8
%_fmm_261 = extractvalue { { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }*, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* } %_fmm_260, 1
%20 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* %_fmm_261 to i64
%21 = icmp ne i64 %20, 0
br i1 %21, label %then16, label %else17
then10: ; preds = %then7
%22 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* %_fmm_259 to i64
%23 = inttoptr i64 %22 to i64*
%24 = getelementptr i64, i64* %23, i64 -1
%25 = atomicrmw sub i64* %24, i64 1 release, align 8
%26 = icmp eq i64 %25, 0
br i1 %26, label %then13, label %else14
else11: ; preds = %then7
br label %phi12
phi12: ; preds = %phi15, %else11
%_fmm_25e = phi {} [ zeroinitializer, %phi15 ], [ zeroinitializer, %else11 ]
br label %phi9
then13: ; preds = %then10
fence acquire
%27 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* %_fmm_259 to i64
%28 = and i64 %27, -2
%29 = inttoptr i64 %28 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }*
%30 = getelementptr { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* %29, i32 0, i32 1
%_fmm_25b = load {} (i64)*, {} (i64)** %30, align 8
%31 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* %_fmm_259 to i64
%_fmm_25c = tail call {} %_fmm_25b(i64 %31)
%32 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* %_fmm_259 to i64
%33 = inttoptr i64 %32 to i8*
%34 = ptrtoint i8* %33 to i64
%35 = inttoptr i64 %34 to i64*
%36 = getelementptr i64, i64* %35, i64 -1
%37 = ptrtoint i64* %36 to i64
%38 = inttoptr i64 %37 to i8*
call void @_pen_free(i8* %38)
br label %phi15
else14: ; preds = %then10
br label %phi15
phi15: ; preds = %else14, %then13
%_fmm_25d = phi {} [ zeroinitializer, %then13 ], [ zeroinitializer, %else14 ]
br label %phi12
then16: ; preds = %phi9
%39 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* %_fmm_261 to i64
%40 = and i64 %39, 1
%41 = icmp ne i64 %40, 1
br i1 %41, label %then19, label %else20
else17: ; preds = %phi9
br label %phi18
phi18: ; preds = %phi21, %else17
%_fmm_267 = phi {} [ zeroinitializer, %phi21 ], [ zeroinitializer, %else17 ]
%42 = ptrtoint {}* %0 to i64
%43 = inttoptr i64 %42 to i8*
%44 = ptrtoint i8* %43 to i64
%45 = inttoptr i64 %44 to i64*
%46 = getelementptr i64, i64* %45, i64 -1
%47 = ptrtoint i64* %46 to i64
%48 = inttoptr i64 %47 to i8*
call void @_pen_free(i8* %48)
br label %phi6
then19: ; preds = %then16
%49 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* %_fmm_261 to i64
%50 = inttoptr i64 %49 to i64*
%51 = getelementptr i64, i64* %50, i64 -1
%52 = atomicrmw sub i64* %51, i64 1 release, align 8
%53 = icmp eq i64 %52, 0
br i1 %53, label %then22, label %else23
else20: ; preds = %then16
br label %phi21
phi21: ; preds = %phi24, %else20
%_fmm_266 = phi {} [ zeroinitializer, %phi24 ], [ zeroinitializer, %else20 ]
br label %phi18
then22: ; preds = %then19
fence acquire
%54 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* %_fmm_261 to i64
%55 = and i64 %54, -2
%56 = inttoptr i64 %55 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }*
%57 = getelementptr { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* %56, i32 0, i32 1
%_fmm_263 = load {} (i64)*, {} (i64)** %57, align 8
%58 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* %_fmm_261 to i64
%_fmm_264 = tail call {} %_fmm_263(i64 %58)
%59 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*)*, {} (i64)*, {} }* %_fmm_261 to i64
%60 = inttoptr i64 %59 to i8*
%61 = ptrtoint i8* %60 to i64
%62 = inttoptr i64 %61 to i64*
%63 = getelementptr i64, i64* %62, i64 -1
%64 = ptrtoint i64* %63 to i64
%65 = inttoptr i64 %64 to i8*
call void @_pen_free(i8* %65)
br label %phi24
else23: ; preds = %then19
br label %phi24
phi24: ; preds = %else23, %then22
%_fmm_265 = phi {} [ zeroinitializer, %then22 ], [ zeroinitializer, %else23 ]
br label %phi21
}
define linkonce {} @"mir_clone_prelude:error"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_26d = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw add i64* %8, i64 1 monotonic, align 8
br label %phi3
else2: ; preds = %then
br label %phi3
phi3: ; preds = %else2, %then1
%_fmm_26c = phi {} [ zeroinitializer, %then1 ], [ zeroinitializer, %else2 ]
br label %phi
}
define linkonce {} @"mir_drop_prelude:error"({}* %0) {
entry:
%1 = ptrtoint {}* %0 to i64
%2 = icmp ne i64 %1, 0
br i1 %2, label %then, label %else
then: ; preds = %entry
%3 = ptrtoint {}* %0 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 1
br i1 %5, label %then1, label %else2
else: ; preds = %entry
br label %phi
phi: ; preds = %phi3, %else
%_fmm_278 = phi {} [ zeroinitializer, %phi3 ], [ zeroinitializer, %else ]
ret {} zeroinitializer
then1: ; preds = %then
%6 = ptrtoint {}* %0 to i64
%7 = inttoptr i64 %6 to i64*
%8 = getelementptr i64, i64* %7, i64 -1
%9 = atomicrmw sub i64* %8, i64 1 release, align 8
%10 = icmp eq i64 %9, 0
br i1 %10, label %then4, label %else5
else2: ; preds = %then
br label %phi3
phi3: ; preds = %phi6, %else2
%_fmm_277 = phi {} [ zeroinitializer, %phi6 ], [ zeroinitializer, %else2 ]
br label %phi
then4: ; preds = %then1
fence acquire
%11 = ptrtoint {}* %0 to i64
%12 = inttoptr i64 %11 to { { { {} (i64)*, {} (i64)* }*, i64 } }*
%_fmm_26f = load { { { {} (i64)*, {} (i64)* }*, i64 } }, { { { {} (i64)*, {} (i64)* }*, i64 } }* %12, align 8
%_fmm_270 = extractvalue { { { {} (i64)*, {} (i64)* }*, i64 } } %_fmm_26f, 0
%_fmm_271 = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %_fmm_270, 0
%_fmm_272 = load { {} (i64)*, {} (i64)* }, { {} (i64)*, {} (i64)* }* %_fmm_271, align 8
%_fmm_273 = extractvalue { {} (i64)*, {} (i64)* } %_fmm_272, 1
%_fmm_274 = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %_fmm_270, 1
%_fmm_275 = tail call {} %_fmm_273(i64 %_fmm_274)
%13 = ptrtoint {}* %0 to i64
%14 = inttoptr i64 %13 to i8*
%15 = ptrtoint i8* %14 to i64
%16 = inttoptr i64 %15 to i64*
%17 = getelementptr i64, i64* %16, i64 -1
%18 = ptrtoint i64* %17 to i64
%19 = inttoptr i64 %18 to i8*
call void @_pen_free(i8* %19)
br label %phi6
else5: ; preds = %then1
br label %phi6
phi6: ; preds = %else5, %then4
%_fmm_276 = phi {} [ zeroinitializer, %then4 ], [ zeroinitializer, %else5 ]
br label %phi3
}
define internal fastcc {} @_fmm_279({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, double)* %1, {}* %2, {}* %3) {
entry:
br i1 icmp ne (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:main" to i64), i64 1), i64 0), label %then, label %else
then: ; preds = %entry
br i1 icmp ne (i64 and (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:main" to i64), i64 1), i64 1), i64 1), label %then1, label %else2
else: ; preds = %entry
%_result9 = tail call fastcc {} @_if_0({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, double)* %1, {}* %3)
ret {} %_result9
phi: ; No predecessors!
call void @_pen_unreachable()
unreachable
then1: ; preds = %then
%4 = atomicrmw sub i64* getelementptr (i64, i64* inttoptr (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:main" to i64), i64 1) to i64*), i64 -1), i64 1 release, align 8
%5 = icmp eq i64 %4, 0
br i1 %5, label %then4, label %else5
else2: ; preds = %then
%_result8 = tail call fastcc {} @_if_a({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, double)* %1, {}* %3)
ret {} %_result8
phi3: ; No predecessors!
call void @_pen_unreachable()
unreachable
then4: ; preds = %then1
fence acquire
%_fmm_27b = load {} (i64)*, {} (i64)** getelementptr ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, {}*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, {}*)*, {} (i64)*, {} }* inttoptr (i64 and (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:main" to i64), i64 1), i64 -2) to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, {}*)*, {} (i64)*, {} }*), i32 0, i32 1), align 8
%_fmm_27c = tail call {} %_fmm_27b(i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:main" to i64), i64 1))
call void @_pen_free(i8* bitcast (i64* getelementptr (i64, i64* inttoptr (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:main" to i64), i64 1) to i64*), i64 -1) to i8*))
%_result = tail call fastcc {} @_if_c({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, double)* %1, {}* %3)
ret {} %_result
else5: ; preds = %then1
%_result7 = tail call fastcc {} @_if_c({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, double)* %1, {}* %3)
ret {} %_result7
phi6: ; No predecessors!
call void @_pen_unreachable()
unreachable
}
define internal {} @_fmm_29f(i64 %0) {
entry:
%1 = inttoptr i64 %0 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, double)*, {} (i64)*, {} }*
%2 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, double)*, {} (i64)*, {} }* %1 to i64
%3 = and i64 %2, -2
%4 = inttoptr i64 %3 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, double)*, {} (i64)*, {} }*
%5 = getelementptr { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, double)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, double)*, {} (i64)*, {} }* %4, i32 0, i32 2
%6 = ptrtoint {}* %5 to i64
%7 = inttoptr i64 %6 to {}*
%_fmm_2a0 = load {}, {}* %7, align 1
ret {} zeroinitializer
}
define internal fastcc {} @_fmm_2a1({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, {}* %3) {
entry:
br i1 icmp ne (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:run" to i64), i64 1), i64 0), label %then, label %else
then: ; preds = %entry
br i1 icmp ne (i64 and (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:run" to i64), i64 1), i64 1), i64 1), label %then1, label %else2
else: ; preds = %entry
%_result9 = tail call fastcc {} @_if_11({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %3)
ret {} %_result9
phi: ; No predecessors!
call void @_pen_unreachable()
unreachable
then1: ; preds = %then
%4 = atomicrmw sub i64* getelementptr (i64, i64* inttoptr (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:run" to i64), i64 1) to i64*), i64 -1), i64 1 release, align 8
%5 = icmp eq i64 %4, 0
br i1 %5, label %then4, label %else5
else2: ; preds = %then
%_result8 = tail call fastcc {} @_if_21({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %3)
ret {} %_result8
phi3: ; No predecessors!
call void @_pen_unreachable()
unreachable
then4: ; preds = %then1
fence acquire
%_fmm_2a3 = load {} (i64)*, {} (i64)** getelementptr ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*)*, {} (i64)*, {} }* inttoptr (i64 and (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:run" to i64), i64 1), i64 -2) to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*)*, {} (i64)*, {} }*), i32 0, i32 1), align 8
%_fmm_2a4 = tail call {} %_fmm_2a3(i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:run" to i64), i64 1))
call void @_pen_free(i8* bitcast (i64* getelementptr (i64, i64* inttoptr (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:run" to i64), i64 1) to i64*), i64 -1) to i8*))
%_result = tail call fastcc {} @_if_23({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %3)
ret {} %_result
else5: ; preds = %then1
%_result7 = tail call fastcc {} @_if_23({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %3)
ret {} %_result7
phi6: ; No predecessors!
call void @_pen_unreachable()
unreachable
}
define internal {} @_fmm_2cb(i64 %0) {
entry:
%1 = inttoptr i64 %0 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, double)*, {} (i64)*, {} }*
%2 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, double)*, {} (i64)*, {} }* %1 to i64
%3 = and i64 %2, -2
%4 = inttoptr i64 %3 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, double)*, {} (i64)*, {} }*
%5 = getelementptr { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, double)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, double)*, {} (i64)*, {} }* %4, i32 0, i32 2
%6 = ptrtoint {}* %5 to i64
%7 = inttoptr i64 %6 to {}*
%_fmm_2cc = load {}, {}* %7, align 1
ret {} zeroinitializer
}
define internal fastcc {} @_fmm_2cd({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, {}* %3, {}* %4) {
entry:
%_fmm_2ce = tail call {} @"mir_clone_/.pen/default/packages/fb4346304f4058b6/Context.pen:Context"({}* %3)
%_fmm_2cf = tail call {} @"mir_clone_/.pen/default/packages/fb4346304f4058b6/Tcp/Listener.pen:Listener"({}* %4)
%_fmm_2d0 = load atomic {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)** getelementptr ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }* inttoptr (i64 and (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }* @"/.pen/default/packages/fb4346304f4058b6/Tcp.pen:Accept" to i64), i64 1), i64 -2) to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }*), i32 0, i32 0) acquire, align 8
%5 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_10 = load i64, i64* %5, align 4
br i1 false, label %then, label %else
then: ; preds = %entry
br label %phi
else: ; preds = %entry
br label %phi
phi: ; preds = %else, %then
%_k_11 = phi i64 [ 0, %then ], [ 24, %else ]
%6 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 2
%_k_12 = load i64, i64* %6, align 4
%7 = add i64 %_k_10, %_k_11
%8 = icmp ugt i64 %7, %_k_12
br i1 %8, label %then1, label %else2
then1: ; preds = %phi
%9 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
%_k_13 = load i8*, i8** %9, align 8
%10 = mul i64 %_k_12, 2
%_k_14 = call i8* @_pen_realloc(i8* %_k_13, i64 %10)
%11 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
store i8* %_k_14, i8** %11, align 8
%12 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 2
%13 = mul i64 %_k_12, 2
store i64 %13, i64* %12, align 4
br label %phi3
else2: ; preds = %phi
br label %phi3
phi3: ; preds = %else2, %then1
%_k_15 = phi {} [ zeroinitializer, %then1 ], [ zeroinitializer, %else2 ]
%14 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
%_k_16 = load i8*, i8** %14, align 8
%15 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_17 = load i64, i64* %15, align 4
%16 = getelementptr i8, i8* %_k_16, i64 %_k_17
%17 = ptrtoint i8* %16 to i64
%18 = inttoptr i64 %17 to { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}* }*
%19 = insertvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}* } zeroinitializer, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, 0
%20 = insertvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}* } %19, {}* %3, 1
%21 = insertvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}* } %20, {}* %4, 2
store { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}* } %21, { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}* }* %18, align 8
%22 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%23 = add i64 %_k_10, %_k_11
store i64 %23, i64* %22, align 4
%_result = tail call fastcc {} %_fmm_2d0({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* @_k_6, {}* inttoptr (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }* @"/.pen/default/packages/fb4346304f4058b6/Tcp.pen:Accept" to i64), i64 1) to {}*), {}* %3, {}* %4)
ret {} %_result
}
define internal {} @_fmm_333(i64 %0) {
entry:
%1 = inttoptr i64 %0 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, double)*, {} (i64)*, {} }*
%2 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, double)*, {} (i64)*, {} }* %1 to i64
%3 = and i64 %2, -2
%4 = inttoptr i64 %3 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, double)*, {} (i64)*, {} }*
%5 = getelementptr { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, double)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, double)*, {} (i64)*, {} }* %4, i32 0, i32 2
%6 = ptrtoint {}* %5 to i64
%7 = inttoptr i64 %6 to {}*
%_fmm_334 = load {}, {}* %7, align 1
ret {} zeroinitializer
}
define internal fastcc {} @_fmm_335({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, double)* %1, {}* %2, {}* %3) {
entry:
br i1 icmp ne (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, {}*)*, {} (i64)*, {} }* @_pen_main__wrapper to i64), i64 1), i64 0), label %then, label %else
then: ; preds = %entry
br i1 icmp ne (i64 and (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, {}*)*, {} (i64)*, {} }* @_pen_main__wrapper to i64), i64 1), i64 1), i64 1), label %then1, label %else2
else: ; preds = %entry
%_result9 = tail call fastcc {} @_if_6b({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, double)* %1, {}* %3)
ret {} %_result9
phi: ; No predecessors!
call void @_pen_unreachable()
unreachable
then1: ; preds = %then
%4 = atomicrmw sub i64* getelementptr (i64, i64* inttoptr (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, {}*)*, {} (i64)*, {} }* @_pen_main__wrapper to i64), i64 1) to i64*), i64 -1), i64 1 release, align 8
%5 = icmp eq i64 %4, 0
br i1 %5, label %then4, label %else5
else2: ; preds = %then
%_result8 = tail call fastcc {} @_if_6d({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, double)* %1, {}* %3)
ret {} %_result8
phi3: ; No predecessors!
call void @_pen_unreachable()
unreachable
then4: ; preds = %then1
fence acquire
%_fmm_337 = load {} (i64)*, {} (i64)** getelementptr ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, {}*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, {}*)*, {} (i64)*, {} }* inttoptr (i64 and (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, {}*)*, {} (i64)*, {} }* @_pen_main__wrapper to i64), i64 1), i64 -2) to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, {}*)*, {} (i64)*, {} }*), i32 0, i32 1), align 8
%_fmm_338 = tail call {} %_fmm_337(i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, {}*)*, {} (i64)*, {} }* @_pen_main__wrapper to i64), i64 1))
call void @_pen_free(i8* bitcast (i64* getelementptr (i64, i64* inttoptr (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, {}*)*, {} (i64)*, {} }* @_pen_main__wrapper to i64), i64 1) to i64*), i64 -1) to i8*))
%_result = tail call fastcc {} @_if_6f({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, double)* %1, {}* %3)
ret {} %_result
else5: ; preds = %then1
%_result7 = tail call fastcc {} @_if_6f({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, double)* %1, {}* %3)
ret {} %_result7
phi6: ; No predecessors!
call void @_pen_unreachable()
unreachable
}
define internal {} @_fmm_33e(i64 %0) {
entry:
%1 = inttoptr i64 %0 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, double)*, {} (i64)*, {} }*
%2 = ptrtoint { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, double)*, {} (i64)*, {} }* %1 to i64
%3 = and i64 %2, -2
%4 = inttoptr i64 %3 to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, double)*, {} (i64)*, {} }*
%5 = getelementptr { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, double)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, double)*, {} (i64)*, {} }* %4, i32 0, i32 2
%6 = ptrtoint {}* %5 to i64
%7 = inttoptr i64 %6 to {}*
%_fmm_33f = load {}, {}* %7, align 1
ret {} zeroinitializer
}
define fastcc {} @_pen_main({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, double)* %1, {}* %2) {
entry:
%_fmm_340 = load atomic {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, {}*)*, {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, {}*)** getelementptr ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, {}*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, {}*)*, {} (i64)*, {} }* inttoptr (i64 and (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, {}*)*, {} (i64)*, {} }* @_pen_main__wrapper to i64), i64 1), i64 -2) to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, {}*)*, {} (i64)*, {} }*), i32 0, i32 0) acquire, align 8
%_result = tail call fastcc {} %_fmm_340({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, double)* %1, {}* inttoptr (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, {}*)*, {} (i64)*, {} }* @_pen_main__wrapper to i64), i64 1) to {}*), {}* %2)
ret {} %_result
}
define internal fastcc {} @_if_1({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, double)* %1, double %2) {
entry:
%_result = tail call fastcc {} %1({ i8*, i64, i64 }* %0, double %2)
ret {} %_result
}
define internal fastcc {} @_if_4({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, double)* %1, double %2) {
entry:
%_result = tail call fastcc {} @_if_1({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, double)* %1, double %2)
ret {} %_result
}
define internal fastcc {} @_if_6({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, double)* %1, { i64, i8 }* %2, {}* %3) {
entry:
%_fmm_296 = load atomic {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, { i64, i8 }*)*, {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, { i64, i8 }*)** getelementptr ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* inttoptr (i64 and (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* @"/.pen/default/packages/cc2ed307d895f924/Print.pen:Line" to i64), i64 1), i64 -2) to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*), i32 0, i32 0) acquire, align 8
%4 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_21 = load i64, i64* %4, align 4
br i1 false, label %then, label %else
then: ; preds = %entry
br label %phi
else: ; preds = %entry
br label %phi
phi: ; preds = %else, %then
%_k_22 = phi i64 [ 0, %then ], [ 8, %else ]
%5 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 2
%_k_23 = load i64, i64* %5, align 4
%6 = add i64 %_k_21, %_k_22
%7 = icmp ugt i64 %6, %_k_23
br i1 %7, label %then1, label %else2
then1: ; preds = %phi
%8 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
%_k_24 = load i8*, i8** %8, align 8
%9 = mul i64 %_k_23, 2
%_k_25 = call i8* @_pen_realloc(i8* %_k_24, i64 %9)
%10 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
store i8* %_k_25, i8** %10, align 8
%11 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 2
%12 = mul i64 %_k_23, 2
store i64 %12, i64* %11, align 4
br label %phi3
else2: ; preds = %phi
br label %phi3
phi3: ; preds = %else2, %then1
%_k_26 = phi {} [ zeroinitializer, %then1 ], [ zeroinitializer, %else2 ]
%13 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
%_k_27 = load i8*, i8** %13, align 8
%14 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_28 = load i64, i64* %14, align 4
%15 = getelementptr i8, i8* %_k_27, i64 %_k_28
%16 = ptrtoint i8* %15 to i64
%17 = inttoptr i64 %16 to { {} ({ i8*, i64, i64 }*, double)* }*
%18 = insertvalue { {} ({ i8*, i64, i64 }*, double)* } zeroinitializer, {} ({ i8*, i64, i64 }*, double)* %1, 0
store { {} ({ i8*, i64, i64 }*, double)* } %18, { {} ({ i8*, i64, i64 }*, double)* }* %17, align 8
%19 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%20 = add i64 %_k_21, %_k_22
store i64 %20, i64* %19, align 4
%_result = tail call fastcc {} %_fmm_296({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* @_k_1b, {}* inttoptr (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* @"/.pen/default/packages/cc2ed307d895f924/Print.pen:Line" to i64), i64 1) to {}*), {}* %3, { i64, i8 }* %2)
ret {} %_result
}
define internal fastcc {} @_if_0({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, double)* %1, {}* %2) {
entry:
%_fmm_280 = tail call {} @"mir_clone_/.pen/default/packages/fb4346304f4058b6/Context.pen:Context"({}* %2)
%_fmm_281 = load atomic {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*)*, {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*)** getelementptr ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*)*, {} (i64)*, {} }* inttoptr (i64 and (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:run" to i64), i64 1), i64 -2) to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*)*, {} (i64)*, {} }*), i32 0, i32 0) acquire, align 8
%3 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_40 = load i64, i64* %3, align 4
br i1 false, label %then, label %else
then: ; preds = %entry
br label %phi
else: ; preds = %entry
br label %phi
phi: ; preds = %else, %then
%_k_41 = phi i64 [ 0, %then ], [ 16, %else ]
%4 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 2
%_k_42 = load i64, i64* %4, align 4
%5 = add i64 %_k_40, %_k_41
%6 = icmp ugt i64 %5, %_k_42
br i1 %6, label %then1, label %else2
then1: ; preds = %phi
%7 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
%_k_43 = load i8*, i8** %7, align 8
%8 = mul i64 %_k_42, 2
%_k_44 = call i8* @_pen_realloc(i8* %_k_43, i64 %8)
%9 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
store i8* %_k_44, i8** %9, align 8
%10 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 2
%11 = mul i64 %_k_42, 2
store i64 %11, i64* %10, align 4
br label %phi3
else2: ; preds = %phi
br label %phi3
phi3: ; preds = %else2, %then1
%_k_45 = phi {} [ zeroinitializer, %then1 ], [ zeroinitializer, %else2 ]
%12 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
%_k_46 = load i8*, i8** %12, align 8
%13 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_47 = load i64, i64* %13, align 4
%14 = getelementptr i8, i8* %_k_46, i64 %_k_47
%15 = ptrtoint i8* %14 to i64
%16 = inttoptr i64 %15 to { {} ({ i8*, i64, i64 }*, double)*, {}* }*
%17 = insertvalue { {} ({ i8*, i64, i64 }*, double)*, {}* } zeroinitializer, {} ({ i8*, i64, i64 }*, double)* %1, 0
%18 = insertvalue { {} ({ i8*, i64, i64 }*, double)*, {}* } %17, {}* %2, 1
store { {} ({ i8*, i64, i64 }*, double)*, {}* } %18, { {} ({ i8*, i64, i64 }*, double)*, {}* }* %16, align 8
%19 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%20 = add i64 %_k_40, %_k_41
store i64 %20, i64* %19, align 4
%_result = tail call fastcc {} %_fmm_281({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* @_k_29, {}* inttoptr (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:run" to i64), i64 1) to {}*), {}* %2)
ret {} %_result
}
define internal fastcc {} @_if_a({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, double)* %1, {}* %2) {
entry:
%_result = tail call fastcc {} @_if_0({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, double)* %1, {}* %2)
ret {} %_result
}
define internal fastcc {} @_if_c({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, double)* %1, {}* %2) {
entry:
%_result = tail call fastcc {} @_if_a({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, double)* %1, {}* %2)
ret {} %_result
}
define internal fastcc {} @_if_16({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, {}* %3) {
entry:
%_fmm_2c9 = load atomic {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)** getelementptr ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }* inttoptr (i64 and (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:serve" to i64), i64 1), i64 -2) to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }*), i32 0, i32 0) acquire, align 8
%_result = tail call fastcc {} %_fmm_2c9({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* inttoptr (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:serve" to i64), i64 1) to {}*), {}* %3, {}* %2)
ret {} %_result
}
define internal fastcc {} @_if_15({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, { { {} (i64)*, {} (i64)* }*, i64 } %2, {}* %3) {
entry:
%_fmm_2c5 = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %2, 0
%4 = ptrtoint { {} (i64)*, {} (i64)* }* %_fmm_2c5 to i64
%5 = icmp eq i64 %4, ptrtoint ({ {} (i64)*, {} (i64)* }* @"Record(Record { name: \22/.pen/default/packages/fb4346304f4058b6/Tcp/Listener.pen:Listener\22 })" to i64)
br i1 %5, label %then, label %else
then: ; preds = %entry
%_fmm_2c6 = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %2, 1
%6 = insertvalue { i64, [0 x i8] } zeroinitializer, i64 %_fmm_2c6, 0
%7 = alloca { i64, [0 x i8] }, align 8
store { i64, [0 x i8] } %6, { i64, [0 x i8] }* %7, align 4
%8 = bitcast { i64, [0 x i8] }* %7 to { [1 x i64] }*
%9 = load { [1 x i64] }, { [1 x i64] }* %8, align 4
%10 = alloca { [1 x i64] }, align 8
store { [1 x i64] } %9, { [1 x i64] }* %10, align 4
%11 = bitcast { [1 x i64] }* %10 to { {}*, [0 x i8] }*
%12 = load { {}*, [0 x i8] }, { {}*, [0 x i8] }* %11, align 8
%_fmm_2c7 = extractvalue { {}*, [0 x i8] } %12, 0
%_result = tail call fastcc {} @_if_16({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %_fmm_2c7, {}* %3)
ret {} %_result
else: ; preds = %entry
call void @_pen_unreachable()
unreachable
phi: ; No predecessors!
call void @_pen_unreachable()
unreachable
}
define internal fastcc {} @_if_14({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, { i64, i8 }* %3, {}* %4) {
entry:
%_fmm_2bd = tail call {} @"mir_drop_/arguments.pen:Arguments"({}* %2)
%_fmm_2be = load atomic {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, { i64, i8 }*)*, {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, { i64, i8 }*)** getelementptr ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* inttoptr (i64 and (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* @"/.pen/default/packages/fb4346304f4058b6/Tcp.pen:Bind" to i64), i64 1), i64 -2) to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*), i32 0, i32 0) acquire, align 8
%5 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_50 = load i64, i64* %5, align 4
br i1 false, label %then, label %else
then: ; preds = %entry
br label %phi
else: ; preds = %entry
br label %phi
phi: ; preds = %else, %then
%_k_51 = phi i64 [ 0, %then ], [ 16, %else ]
%6 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 2
%_k_52 = load i64, i64* %6, align 4
%7 = add i64 %_k_50, %_k_51
%8 = icmp ugt i64 %7, %_k_52
br i1 %8, label %then1, label %else2
then1: ; preds = %phi
%9 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
%_k_53 = load i8*, i8** %9, align 8
%10 = mul i64 %_k_52, 2
%_k_54 = call i8* @_pen_realloc(i8* %_k_53, i64 %10)
%11 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
store i8* %_k_54, i8** %11, align 8
%12 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 2
%13 = mul i64 %_k_52, 2
store i64 %13, i64* %12, align 4
br label %phi3
else2: ; preds = %phi
br label %phi3
phi3: ; preds = %else2, %then1
%_k_55 = phi {} [ zeroinitializer, %then1 ], [ zeroinitializer, %else2 ]
%14 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
%_k_56 = load i8*, i8** %14, align 8
%15 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_57 = load i64, i64* %15, align 4
%16 = getelementptr i8, i8* %_k_56, i64 %_k_57
%17 = ptrtoint i8* %16 to i64
%18 = inttoptr i64 %17 to { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}* }*
%19 = insertvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}* } zeroinitializer, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, 0
%20 = insertvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}* } %19, {}* %4, 1
store { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}* } %20, { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}* }* %18, align 8
%21 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%22 = add i64 %_k_50, %_k_51
store i64 %22, i64* %21, align 4
%_result = tail call fastcc {} %_fmm_2be({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* @_k_49, {}* inttoptr (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* @"/.pen/default/packages/fb4346304f4058b6/Tcp.pen:Bind" to i64), i64 1) to {}*), {}* %4, { i64, i8 }* %3)
ret {} %_result
}
define internal fastcc {} @_if_1a({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, { i64, i8 }* %3, {}* %4) {
entry:
%_result = tail call fastcc {} @_if_14({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, { i64, i8 }* %3, {}* %4)
ret {} %_result
}
define internal fastcc {} @_if_13({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, {}* %3) {
entry:
%_fmm_2b7 = tail call {} @"mir_clone_/.pen/default/packages/fb4346304f4058b6/Context.pen:Context"({}* %3)
%4 = ptrtoint {}* %2 to i64
%5 = inttoptr i64 %4 to { { i64, i8 }* }*
%_fmm_2b8 = load { { i64, i8 }* }, { { i64, i8 }* }* %5, align 8
%_fmm_2b9 = extractvalue { { i64, i8 }* } %_fmm_2b8, 0
%6 = ptrtoint { i64, i8 }* %_fmm_2b9 to i64
%7 = icmp ne i64 %6, 0
br i1 %7, label %then, label %else
then: ; preds = %entry
%8 = ptrtoint { i64, i8 }* %_fmm_2b9 to i64
%9 = and i64 %8, 1
%10 = icmp ne i64 %9, 1
br i1 %10, label %then1, label %else2
else: ; preds = %entry
%_result5 = tail call fastcc {} @_if_14({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, { i64, i8 }* %_fmm_2b9, {}* %3)
ret {} %_result5
phi: ; No predecessors!
call void @_pen_unreachable()
unreachable
then1: ; preds = %then
%11 = ptrtoint { i64, i8 }* %_fmm_2b9 to i64
%12 = inttoptr i64 %11 to i64*
%13 = getelementptr i64, i64* %12, i64 -1
%14 = atomicrmw add i64* %13, i64 1 monotonic, align 8
%_result = tail call fastcc {} @_if_1a({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, { i64, i8 }* %_fmm_2b9, {}* %3)
ret {} %_result
else2: ; preds = %then
%_result4 = tail call fastcc {} @_if_1a({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, { i64, i8 }* %_fmm_2b9, {}* %3)
ret {} %_result4
phi3: ; No predecessors!
call void @_pen_unreachable()
unreachable
}
define internal fastcc {} @_if_12({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, { { {} (i64)*, {} (i64)* }*, i64 } %2, {}* %3) {
entry:
%_fmm_2b3 = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %2, 0
%4 = ptrtoint { {} (i64)*, {} (i64)* }* %_fmm_2b3 to i64
%5 = icmp eq i64 %4, ptrtoint ({ {} (i64)*, {} (i64)* }* @"Record(Record { name: \22/arguments.pen:Arguments\22 })" to i64)
br i1 %5, label %then, label %else
then: ; preds = %entry
%_fmm_2b4 = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %2, 1
%6 = insertvalue { i64, [0 x i8] } zeroinitializer, i64 %_fmm_2b4, 0
%7 = alloca { i64, [0 x i8] }, align 8
store { i64, [0 x i8] } %6, { i64, [0 x i8] }* %7, align 4
%8 = bitcast { i64, [0 x i8] }* %7 to { [1 x i64] }*
%9 = load { [1 x i64] }, { [1 x i64] }* %8, align 4
%10 = alloca { [1 x i64] }, align 8
store { [1 x i64] } %9, { [1 x i64] }* %10, align 4
%11 = bitcast { [1 x i64] }* %10 to { {}*, [0 x i8] }*
%12 = load { {}*, [0 x i8] }, { {}*, [0 x i8] }* %11, align 8
%_fmm_2b5 = extractvalue { {}*, [0 x i8] } %12, 0
%_result = tail call fastcc {} @_if_13({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %_fmm_2b5, {}* %3)
ret {} %_result
else: ; preds = %entry
call void @_pen_unreachable()
unreachable
phi: ; No predecessors!
call void @_pen_unreachable()
unreachable
}
define internal fastcc {} @_if_11({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2) {
entry:
%_fmm_2a8 = tail call {} @"mir_clone_/.pen/default/packages/fb4346304f4058b6/Context.pen:Context"({}* %2)
%_fmm_2a9 = load atomic {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)** getelementptr ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }* inttoptr (i64 and (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }* @"/.pen/default/packages/fb4346304f4058b6/Environment.pen:Arguments" to i64), i64 1), i64 -2) to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }*), i32 0, i32 0) acquire, align 8
%3 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_70 = load i64, i64* %3, align 4
br i1 false, label %then, label %else
then: ; preds = %entry
br label %phi
else: ; preds = %entry
br label %phi
phi: ; preds = %else, %then
%_k_71 = phi i64 [ 0, %then ], [ 16, %else ]
%4 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 2
%_k_72 = load i64, i64* %4, align 4
%5 = add i64 %_k_70, %_k_71
%6 = icmp ugt i64 %5, %_k_72
br i1 %6, label %then1, label %else2
then1: ; preds = %phi
%7 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
%_k_73 = load i8*, i8** %7, align 8
%8 = mul i64 %_k_72, 2
%_k_74 = call i8* @_pen_realloc(i8* %_k_73, i64 %8)
%9 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
store i8* %_k_74, i8** %9, align 8
%10 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 2
%11 = mul i64 %_k_72, 2
store i64 %11, i64* %10, align 4
br label %phi3
else2: ; preds = %phi
br label %phi3
phi3: ; preds = %else2, %then1
%_k_75 = phi {} [ zeroinitializer, %then1 ], [ zeroinitializer, %else2 ]
%12 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
%_k_76 = load i8*, i8** %12, align 8
%13 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_77 = load i64, i64* %13, align 4
%14 = getelementptr i8, i8* %_k_76, i64 %_k_77
%15 = ptrtoint i8* %14 to i64
%16 = inttoptr i64 %15 to { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}* }*
%17 = insertvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}* } zeroinitializer, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, 0
%18 = insertvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}* } %17, {}* %2, 1
store { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}* } %18, { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}* }* %16, align 8
%19 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%20 = add i64 %_k_70, %_k_71
store i64 %20, i64* %19, align 4
%_result = tail call fastcc {} %_fmm_2a9({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, {}*)* @_k_5b, {}* inttoptr (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, {}*)*, {}*, {}*)*, {} (i64)*, {} }* @"/.pen/default/packages/fb4346304f4058b6/Environment.pen:Arguments" to i64), i64 1) to {}*), {}* %2)
ret {} %_result
}
define internal fastcc {} @_if_21({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2) {
entry:
%_result = tail call fastcc {} @_if_11({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2)
ret {} %_result
}
define internal fastcc {} @_if_23({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2) {
entry:
%_result = tail call fastcc {} @_if_21({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2)
ret {} %_result
}
define internal fastcc {} @_if_30({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, {}* %3) {
entry:
%_fmm_331 = load atomic {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)** getelementptr ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }* inttoptr (i64 and (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:serve" to i64), i64 1), i64 -2) to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }*), i32 0, i32 0) acquire, align 8
%_result = tail call fastcc {} %_fmm_331({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* inttoptr (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:serve" to i64), i64 1) to {}*), {}* %2, {}* %3)
ret {} %_result
}
define internal fastcc {} @_if_2f({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, { { {} (i64)*, {} (i64)* }*, i64 } %2, {}* %3, {}* %4) {
entry:
%_fmm_32d = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %2, 0
%5 = ptrtoint { {} (i64)*, {} (i64)* }* %_fmm_32d to i64
%6 = icmp eq i64 %5, ptrtoint ({ {} (i64)*, {} (i64)* }* @Number to i64)
br i1 %6, label %then, label %else
then: ; preds = %entry
%_fmm_32e = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %2, 1
%7 = insertvalue { i64, [0 x i8] } zeroinitializer, i64 %_fmm_32e, 0
%8 = alloca { i64, [0 x i8] }, align 8
store { i64, [0 x i8] } %7, { i64, [0 x i8] }* %8, align 4
%9 = bitcast { i64, [0 x i8] }* %8 to { [1 x i64] }*
%10 = load { [1 x i64] }, { [1 x i64] }* %9, align 4
%11 = alloca { [1 x i64] }, align 8
store { [1 x i64] } %10, { [1 x i64] }* %11, align 4
%12 = bitcast { [1 x i64] }* %11 to { double, [0 x i8] }*
%13 = load { double, [0 x i8] }, { double, [0 x i8] }* %12, align 8
%_fmm_32f = extractvalue { double, [0 x i8] } %13, 0
%_result = tail call fastcc {} @_if_30({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %3, {}* %4)
ret {} %_result
else: ; preds = %entry
call void @_pen_unreachable()
unreachable
phi: ; No predecessors!
call void @_pen_unreachable()
unreachable
}
define internal fastcc {} @_if_32({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, {}* %3, {}* %4) {
entry:
%_fmm_329 = tail call {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Context.pen:Context"({}* %3)
%_fmm_32a = tail call {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Tcp/Listener.pen:Listener"({}* %4)
%5 = insertvalue { {}*, [0 x i8] } zeroinitializer, {}* %2, 0
%6 = alloca { {}*, [0 x i8] }, align 8
store { {}*, [0 x i8] } %5, { {}*, [0 x i8] }* %6, align 8
%7 = bitcast { {}*, [0 x i8] }* %6 to { [1 x i64] }*
%8 = load { [1 x i64] }, { [1 x i64] }* %7, align 4
%9 = alloca { [1 x i64] }, align 8
store { [1 x i64] } %8, { [1 x i64] }* %9, align 4
%10 = bitcast { [1 x i64] }* %9 to { i64, [0 x i8] }*
%11 = load { i64, [0 x i8] }, { i64, [0 x i8] }* %10, align 4
%_fmm_32b = extractvalue { i64, [0 x i8] } %11, 0
%12 = insertvalue { { {} (i64)*, {} (i64)* }*, i64 } { { {} (i64)*, {} (i64)* }* @"Record(Record { name: \22prelude:error\22 })", i64 0 }, i64 %_fmm_32b, 1
%_result = tail call fastcc {} %1({ i8*, i64, i64 }* %0, { { {} (i64)*, {} (i64)* }*, i64 } %12)
ret {} %_result
}
define internal fastcc {} @_if_34({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, {}* %3, {}* %4) {
entry:
%_result = tail call fastcc {} @_if_32({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, {}* %3, {}* %4)
ret {} %_result
}
define internal fastcc {} @_if_36({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, {}* %3, {}* %4) {
entry:
%_result = tail call fastcc {} @_if_34({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, {}* %3, {}* %4)
ret {} %_result
}
define internal fastcc {} @_if_2e({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, { i64, i8 }* %3, {}* %4, {}* %5) {
entry:
%_fmm_319 = tail call {} @"mir_clone_/.pen/default/packages/fb4346304f4058b6/Context.pen:Context"({}* %4)
%6 = ptrtoint {}* %2 to i64
%7 = inttoptr i64 %6 to { {}*, { i64, i8 }* }*
%_fmm_31a = load { {}*, { i64, i8 }* }, { {}*, { i64, i8 }* }* %7, align 8
%_fmm_31b = extractvalue { {}*, { i64, i8 }* } %_fmm_31a, 0
%_fmm_31c = tail call {} @"mir_clone_/.pen/default/packages/fb4346304f4058b6/Tcp/Stream.pen:Stream"({}* %_fmm_31b)
%_fmm_31d = tail call {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Tcp/AcceptedStream.pen:AcceptedStream"({}* %2)
%_fmm_31e = load atomic {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*, { i64, i8 }*)*, {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*, { i64, i8 }*)** getelementptr ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* inttoptr (i64 and (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* @"/.pen/default/packages/fb4346304f4058b6/Tcp.pen:Send" to i64), i64 1), i64 -2) to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*), i32 0, i32 0) acquire, align 8
%8 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_83 = load i64, i64* %8, align 4
br i1 false, label %then, label %else
then: ; preds = %entry
br label %phi
else: ; preds = %entry
br label %phi
phi: ; preds = %else, %then
%_k_84 = phi i64 [ 0, %then ], [ 24, %else ]
%9 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 2
%_k_85 = load i64, i64* %9, align 4
%10 = add i64 %_k_83, %_k_84
%11 = icmp ugt i64 %10, %_k_85
br i1 %11, label %then1, label %else2
then1: ; preds = %phi
%12 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
%_k_86 = load i8*, i8** %12, align 8
%13 = mul i64 %_k_85, 2
%_k_87 = call i8* @_pen_realloc(i8* %_k_86, i64 %13)
%14 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
store i8* %_k_87, i8** %14, align 8
%15 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 2
%16 = mul i64 %_k_85, 2
store i64 %16, i64* %15, align 4
br label %phi3
else2: ; preds = %phi
br label %phi3
phi3: ; preds = %else2, %then1
%_k_88 = phi {} [ zeroinitializer, %then1 ], [ zeroinitializer, %else2 ]
%17 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
%_k_89 = load i8*, i8** %17, align 8
%18 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_8a = load i64, i64* %18, align 4
%19 = getelementptr i8, i8* %_k_89, i64 %_k_8a
%20 = ptrtoint i8* %19 to i64
%21 = inttoptr i64 %20 to { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}* }*
%22 = insertvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}* } zeroinitializer, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, 0
%23 = insertvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}* } %22, {}* %4, 1
%24 = insertvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}* } %23, {}* %5, 2
store { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}* } %24, { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}* }* %21, align 8
%25 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%26 = add i64 %_k_83, %_k_84
store i64 %26, i64* %25, align 4
%_result = tail call fastcc {} %_fmm_31e({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* @_k_79, {}* inttoptr (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* @"/.pen/default/packages/fb4346304f4058b6/Tcp.pen:Send" to i64), i64 1) to {}*), {}* %4, {}* %_fmm_31b, { i64, i8 }* %3)
ret {} %_result
}
define internal fastcc {} @_if_2d({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, { i64, i8 }* %3, { { {} (i64)*, {} (i64)* }*, i64 } %4, {}* %5, {}* %6) {
entry:
%_fmm_315 = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %4, 0
%7 = ptrtoint { {} (i64)*, {} (i64)* }* %_fmm_315 to i64
%8 = icmp eq i64 %7, ptrtoint ({ {} (i64)*, {} (i64)* }* @None to i64)
br i1 %8, label %then, label %else
then: ; preds = %entry
%_fmm_316 = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %4, 1
%9 = insertvalue { i64, [0 x i8] } zeroinitializer, i64 %_fmm_316, 0
%10 = alloca { i64, [0 x i8] }, align 8
store { i64, [0 x i8] } %9, { i64, [0 x i8] }* %10, align 4
%11 = bitcast { i64, [0 x i8] }* %10 to { [1 x i64] }*
%12 = load { [1 x i64] }, { [1 x i64] }* %11, align 4
%13 = alloca { [1 x i64] }, align 8
store { [1 x i64] } %12, { [1 x i64] }* %13, align 4
%14 = bitcast { [1 x i64] }* %13 to { {}, [8 x i8] }*
%15 = load { {}, [8 x i8] }, { {}, [8 x i8] }* %14, align 1
%_fmm_317 = extractvalue { {}, [8 x i8] } %15, 0
%_result = tail call fastcc {} @_if_2e({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, { i64, i8 }* %3, {}* %5, {}* %6)
ret {} %_result
else: ; preds = %entry
call void @_pen_unreachable()
unreachable
phi: ; No predecessors!
call void @_pen_unreachable()
unreachable
}
define internal fastcc {} @_if_3e({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, {}* %3, {}* %4) {
entry:
%_fmm_311 = tail call {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Tcp/Listener.pen:Listener"({}* %4)
%_fmm_312 = tail call {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Tcp/AcceptedStream.pen:AcceptedStream"({}* %2)
%5 = insertvalue { {}*, [0 x i8] } zeroinitializer, {}* %3, 0
%6 = alloca { {}*, [0 x i8] }, align 8
store { {}*, [0 x i8] } %5, { {}*, [0 x i8] }* %6, align 8
%7 = bitcast { {}*, [0 x i8] }* %6 to { [1 x i64] }*
%8 = load { [1 x i64] }, { [1 x i64] }* %7, align 4
%9 = alloca { [1 x i64] }, align 8
store { [1 x i64] } %8, { [1 x i64] }* %9, align 4
%10 = bitcast { [1 x i64] }* %9 to { i64, [0 x i8] }*
%11 = load { i64, [0 x i8] }, { i64, [0 x i8] }* %10, align 4
%_fmm_313 = extractvalue { i64, [0 x i8] } %11, 0
%12 = insertvalue { { {} (i64)*, {} (i64)* }*, i64 } { { {} (i64)*, {} (i64)* }* @"Record(Record { name: \22prelude:error\22 })", i64 0 }, i64 %_fmm_313, 1
%_result = tail call fastcc {} %1({ i8*, i64, i64 }* %0, { { {} (i64)*, {} (i64)* }*, i64 } %12)
ret {} %_result
}
define internal fastcc {} @_if_40({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, {}* %3, {}* %4) {
entry:
%_result = tail call fastcc {} @_if_3e({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, {}* %3, {}* %4)
ret {} %_result
}
define internal fastcc {} @_if_42({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, {}* %3, {}* %4) {
entry:
%_result = tail call fastcc {} @_if_40({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, {}* %3, {}* %4)
ret {} %_result
}
define internal fastcc {} @_if_3d({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, { i64, i8 }* %3, {}* %4, {}* %5, {}* %6) {
entry:
%_fmm_30c = tail call {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Context.pen:Context"({}* %5)
%7 = ptrtoint { i64, i8 }* %3 to i64
%8 = icmp ne i64 %7, 0
br i1 %8, label %then, label %else
then: ; preds = %entry
%9 = ptrtoint { i64, i8 }* %3 to i64
%10 = and i64 %9, 1
%11 = icmp ne i64 %10, 1
br i1 %11, label %then1, label %else2
else: ; preds = %entry
%_result9 = tail call fastcc {} @_if_3e({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, {}* %4, {}* %6)
ret {} %_result9
phi: ; No predecessors!
call void @_pen_unreachable()
unreachable
then1: ; preds = %then
%12 = ptrtoint { i64, i8 }* %3 to i64
%13 = inttoptr i64 %12 to i64*
%14 = getelementptr i64, i64* %13, i64 -1
%15 = atomicrmw sub i64* %14, i64 1 release, align 8
%16 = icmp eq i64 %15, 0
br i1 %16, label %then4, label %else5
else2: ; preds = %then
%_result8 = tail call fastcc {} @_if_40({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, {}* %4, {}* %6)
ret {} %_result8
phi3: ; No predecessors!
call void @_pen_unreachable()
unreachable
then4: ; preds = %then1
fence acquire
%17 = ptrtoint { i64, i8 }* %3 to i64
%18 = inttoptr i64 %17 to i8*
%19 = ptrtoint i8* %18 to i64
%20 = inttoptr i64 %19 to i64*
%21 = getelementptr i64, i64* %20, i64 -1
%22 = ptrtoint i64* %21 to i64
%23 = inttoptr i64 %22 to i8*
call void @_pen_free(i8* %23)
%_result = tail call fastcc {} @_if_42({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, {}* %4, {}* %6)
ret {} %_result
else5: ; preds = %then1
%_result7 = tail call fastcc {} @_if_42({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, {}* %4, {}* %6)
ret {} %_result7
phi6: ; No predecessors!
call void @_pen_unreachable()
unreachable
}
define internal fastcc {} @_if_48({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, { i64, i8 }* %3, {}* %4, {}* %5, {}* %6) {
entry:
%_result = tail call fastcc {} @_if_3d({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, { i64, i8 }* %3, {}* %4, {}* %5, {}* %6)
ret {} %_result
}
define internal fastcc {} @_if_4a({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, { i64, i8 }* %3, {}* %4, {}* %5, {}* %6) {
entry:
%_result = tail call fastcc {} @_if_48({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, { i64, i8 }* %3, {}* %4, {}* %5, {}* %6)
ret {} %_result
}
define internal fastcc {} @_if_2c({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, { i64, i8 }* %3, {}* %4, {}* %5) {
entry:
%_fmm_301 = load atomic {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, { i64, i8 }*)*, {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, { i64, i8 }*)** getelementptr ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* inttoptr (i64 and (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* @"/.pen/default/packages/cc2ed307d895f924/Print.pen:Line" to i64), i64 1), i64 -2) to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }*), i32 0, i32 0) acquire, align 8
%6 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_99 = load i64, i64* %6, align 4
br i1 false, label %then, label %else
then: ; preds = %entry
br label %phi
else: ; preds = %entry
br label %phi
phi: ; preds = %else, %then
%_k_9a = phi i64 [ 0, %then ], [ 40, %else ]
%7 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 2
%_k_9b = load i64, i64* %7, align 4
%8 = add i64 %_k_99, %_k_9a
%9 = icmp ugt i64 %8, %_k_9b
br i1 %9, label %then1, label %else2
then1: ; preds = %phi
%10 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
%_k_9c = load i8*, i8** %10, align 8
%11 = mul i64 %_k_9b, 2
%_k_9d = call i8* @_pen_realloc(i8* %_k_9c, i64 %11)
%12 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
store i8* %_k_9d, i8** %12, align 8
%13 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 2
%14 = mul i64 %_k_9b, 2
store i64 %14, i64* %13, align 4
br label %phi3
else2: ; preds = %phi
br label %phi3
phi3: ; preds = %else2, %then1
%_k_9e = phi {} [ zeroinitializer, %then1 ], [ zeroinitializer, %else2 ]
%15 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
%_k_9f = load i8*, i8** %15, align 8
%16 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_a0 = load i64, i64* %16, align 4
%17 = getelementptr i8, i8* %_k_9f, i64 %_k_a0
%18 = ptrtoint i8* %17 to i64
%19 = inttoptr i64 %18 to { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, { i64, i8 }*, {}*, {}* }*
%20 = insertvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, { i64, i8 }*, {}*, {}* } zeroinitializer, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, 0
%21 = insertvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, { i64, i8 }*, {}*, {}* } %20, {}* %2, 1
%22 = insertvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, { i64, i8 }*, {}*, {}* } %21, { i64, i8 }* %3, 2
%23 = insertvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, { i64, i8 }*, {}*, {}* } %22, {}* %4, 3
%24 = insertvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, { i64, i8 }*, {}*, {}* } %23, {}* %5, 4
store { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, { i64, i8 }*, {}*, {}* } %24, { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, { i64, i8 }*, {}*, {}* }* %19, align 8
%25 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%26 = add i64 %_k_99, %_k_9a
store i64 %26, i64* %25, align 4
%_result = tail call fastcc {} %_fmm_301({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* @_k_8f, {}* inttoptr (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, { i64, i8 }*)*, {} (i64)*, {} }* @"/.pen/default/packages/cc2ed307d895f924/Print.pen:Line" to i64), i64 1) to {}*), {}* %4, { i64, i8 }* %3)
ret {} %_result
}
define internal fastcc {} @_if_51({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, { i64, i8 }* %3, {}* %4, {}* %5) {
entry:
%_result = tail call fastcc {} @_if_2c({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, { i64, i8 }* %3, {}* %4, {}* %5)
ret {} %_result
}
define internal fastcc {} @_if_2b({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, { i64, i8 }* %3, {}* %4, {}* %5) {
entry:
%_fmm_2fd = tail call {} @"mir_clone_/.pen/default/packages/fb4346304f4058b6/Context.pen:Context"({}* %4)
%6 = ptrtoint { i64, i8 }* %3 to i64
%7 = icmp ne i64 %6, 0
br i1 %7, label %then, label %else
then: ; preds = %entry
%8 = ptrtoint { i64, i8 }* %3 to i64
%9 = and i64 %8, 1
%10 = icmp ne i64 %9, 1
br i1 %10, label %then1, label %else2
else: ; preds = %entry
%_result5 = tail call fastcc {} @_if_2c({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, { i64, i8 }* %3, {}* %4, {}* %5)
ret {} %_result5
phi: ; No predecessors!
call void @_pen_unreachable()
unreachable
then1: ; preds = %then
%11 = ptrtoint { i64, i8 }* %3 to i64
%12 = inttoptr i64 %11 to i64*
%13 = getelementptr i64, i64* %12, i64 -1
%14 = atomicrmw add i64* %13, i64 1 monotonic, align 8
%_result = tail call fastcc {} @_if_51({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, { i64, i8 }* %3, {}* %4, {}* %5)
ret {} %_result
else2: ; preds = %then
%_result4 = tail call fastcc {} @_if_51({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, { i64, i8 }* %3, {}* %4, {}* %5)
ret {} %_result4
phi3: ; No predecessors!
call void @_pen_unreachable()
unreachable
}
define internal fastcc {} @_if_2a({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, { { {} (i64)*, {} (i64)* }*, i64 } %3, {}* %4, {}* %5) {
entry:
%_fmm_2f9 = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %3, 0
%6 = ptrtoint { {} (i64)*, {} (i64)* }* %_fmm_2f9 to i64
%7 = icmp eq i64 %6, ptrtoint ({ {} (i64)*, {} (i64)* }* @ByteString to i64)
br i1 %7, label %then, label %else
then: ; preds = %entry
%_fmm_2fa = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %3, 1
%8 = insertvalue { i64, [0 x i8] } zeroinitializer, i64 %_fmm_2fa, 0
%9 = alloca { i64, [0 x i8] }, align 8
store { i64, [0 x i8] } %8, { i64, [0 x i8] }* %9, align 4
%10 = bitcast { i64, [0 x i8] }* %9 to { [1 x i64] }*
%11 = load { [1 x i64] }, { [1 x i64] }* %10, align 4
%12 = alloca { [1 x i64] }, align 8
store { [1 x i64] } %11, { [1 x i64] }* %12, align 4
%13 = bitcast { [1 x i64] }* %12 to { { i64, i8 }*, [0 x i8] }*
%14 = load { { i64, i8 }*, [0 x i8] }, { { i64, i8 }*, [0 x i8] }* %13, align 8
%_fmm_2fb = extractvalue { { i64, i8 }*, [0 x i8] } %14, 0
%_result = tail call fastcc {} @_if_2b({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, { i64, i8 }* %_fmm_2fb, {}* %4, {}* %5)
ret {} %_result
else: ; preds = %entry
call void @_pen_unreachable()
unreachable
phi: ; No predecessors!
call void @_pen_unreachable()
unreachable
}
define internal fastcc {} @_if_56({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, {}* %3, {}* %4, {}* %5) {
entry:
%_fmm_2f4 = tail call {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Context.pen:Context"({}* %4)
%_fmm_2f5 = tail call {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Tcp/Listener.pen:Listener"({}* %5)
%_fmm_2f6 = tail call {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Tcp/AcceptedStream.pen:AcceptedStream"({}* %2)
%6 = insertvalue { {}*, [0 x i8] } zeroinitializer, {}* %3, 0
%7 = alloca { {}*, [0 x i8] }, align 8
store { {}*, [0 x i8] } %6, { {}*, [0 x i8] }* %7, align 8
%8 = bitcast { {}*, [0 x i8] }* %7 to { [1 x i64] }*
%9 = load { [1 x i64] }, { [1 x i64] }* %8, align 4
%10 = alloca { [1 x i64] }, align 8
store { [1 x i64] } %9, { [1 x i64] }* %10, align 4
%11 = bitcast { [1 x i64] }* %10 to { i64, [0 x i8] }*
%12 = load { i64, [0 x i8] }, { i64, [0 x i8] }* %11, align 4
%_fmm_2f7 = extractvalue { i64, [0 x i8] } %12, 0
%13 = insertvalue { { {} (i64)*, {} (i64)* }*, i64 } { { {} (i64)*, {} (i64)* }* @"Record(Record { name: \22prelude:error\22 })", i64 0 }, i64 %_fmm_2f7, 1
%_result = tail call fastcc {} %1({ i8*, i64, i64 }* %0, { { {} (i64)*, {} (i64)* }*, i64 } %13)
ret {} %_result
}
define internal fastcc {} @_if_58({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, {}* %3, {}* %4, {}* %5) {
entry:
%_result = tail call fastcc {} @_if_56({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, {}* %3, {}* %4, {}* %5)
ret {} %_result
}
define internal fastcc {} @_if_5a({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, {}* %3, {}* %4, {}* %5) {
entry:
%_result = tail call fastcc {} @_if_58({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, {}* %3, {}* %4, {}* %5)
ret {} %_result
}
define internal fastcc {} @_if_29({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, {}* %3, {}* %4) {
entry:
%_fmm_2e3 = tail call {} @"mir_clone_/.pen/default/packages/fb4346304f4058b6/Context.pen:Context"({}* %3)
%_fmm_2e4 = tail call {} @"mir_clone_/.pen/default/packages/fb4346304f4058b6/Tcp/AcceptedStream.pen:AcceptedStream"({}* %2)
%5 = ptrtoint {}* %2 to i64
%6 = inttoptr i64 %5 to { {}*, { i64, i8 }* }*
%_fmm_2e5 = load { {}*, { i64, i8 }* }, { {}*, { i64, i8 }* }* %6, align 8
%_fmm_2e6 = extractvalue { {}*, { i64, i8 }* } %_fmm_2e5, 0
%_fmm_2e7 = tail call {} @"mir_clone_/.pen/default/packages/fb4346304f4058b6/Tcp/Stream.pen:Stream"({}* %_fmm_2e6)
%_fmm_2e8 = tail call {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Tcp/AcceptedStream.pen:AcceptedStream"({}* %2)
%_fmm_2e9 = load atomic {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*, double)*, {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*, double)** getelementptr ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*, double)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*, double)*, {} (i64)*, {} }* inttoptr (i64 and (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*, double)*, {} (i64)*, {} }* @"/.pen/default/packages/fb4346304f4058b6/Tcp.pen:Receive" to i64), i64 1), i64 -2) to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*, double)*, {} (i64)*, {} }*), i32 0, i32 0) acquire, align 8
%7 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_ae = load i64, i64* %7, align 4
br i1 false, label %then, label %else
then: ; preds = %entry
br label %phi
else: ; preds = %entry
br label %phi
phi: ; preds = %else, %then
%_k_af = phi i64 [ 0, %then ], [ 32, %else ]
%8 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 2
%_k_b0 = load i64, i64* %8, align 4
%9 = add i64 %_k_ae, %_k_af
%10 = icmp ugt i64 %9, %_k_b0
br i1 %10, label %then1, label %else2
then1: ; preds = %phi
%11 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
%_k_b1 = load i8*, i8** %11, align 8
%12 = mul i64 %_k_b0, 2
%_k_b2 = call i8* @_pen_realloc(i8* %_k_b1, i64 %12)
%13 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
store i8* %_k_b2, i8** %13, align 8
%14 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 2
%15 = mul i64 %_k_b0, 2
store i64 %15, i64* %14, align 4
br label %phi3
else2: ; preds = %phi
br label %phi3
phi3: ; preds = %else2, %then1
%_k_b3 = phi {} [ zeroinitializer, %then1 ], [ zeroinitializer, %else2 ]
%16 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
%_k_b4 = load i8*, i8** %16, align 8
%17 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_b5 = load i64, i64* %17, align 4
%18 = getelementptr i8, i8* %_k_b4, i64 %_k_b5
%19 = ptrtoint i8* %18 to i64
%20 = inttoptr i64 %19 to { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}* }*
%21 = insertvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}* } zeroinitializer, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, 0
%22 = insertvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}* } %21, {}* %2, 1
%23 = insertvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}* } %22, {}* %3, 2
%24 = insertvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}* } %23, {}* %4, 3
store { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}* } %24, { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}* }* %20, align 8
%25 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%26 = add i64 %_k_ae, %_k_af
store i64 %26, i64* %25, align 4
%_result = tail call fastcc {} %_fmm_2e9({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* @_k_a4, {}* inttoptr (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*, double)*, {} (i64)*, {} }* @"/.pen/default/packages/fb4346304f4058b6/Tcp.pen:Receive" to i64), i64 1) to {}*), {}* %3, {}* %_fmm_2e6, double 1.024000e+03)
ret {} %_result
}
define internal fastcc {} @_if_28({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, { { {} (i64)*, {} (i64)* }*, i64 } %2, {}* %3, {}* %4) {
entry:
%_fmm_2df = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %2, 0
%5 = ptrtoint { {} (i64)*, {} (i64)* }* %_fmm_2df to i64
%6 = icmp eq i64 %5, ptrtoint ({ {} (i64)*, {} (i64)* }* @"Record(Record { name: \22/.pen/default/packages/fb4346304f4058b6/Tcp/AcceptedStream.pen:AcceptedStream\22 })" to i64)
br i1 %6, label %then, label %else
then: ; preds = %entry
%_fmm_2e0 = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %2, 1
%7 = insertvalue { i64, [0 x i8] } zeroinitializer, i64 %_fmm_2e0, 0
%8 = alloca { i64, [0 x i8] }, align 8
store { i64, [0 x i8] } %7, { i64, [0 x i8] }* %8, align 4
%9 = bitcast { i64, [0 x i8] }* %8 to { [1 x i64] }*
%10 = load { [1 x i64] }, { [1 x i64] }* %9, align 4
%11 = alloca { [1 x i64] }, align 8
store { [1 x i64] } %10, { [1 x i64] }* %11, align 4
%12 = bitcast { [1 x i64] }* %11 to { {}*, [0 x i8] }*
%13 = load { {}*, [0 x i8] }, { {}*, [0 x i8] }* %12, align 8
%_fmm_2e1 = extractvalue { {}*, [0 x i8] } %13, 0
%_result = tail call fastcc {} @_if_29({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %_fmm_2e1, {}* %3, {}* %4)
ret {} %_result
else: ; preds = %entry
call void @_pen_unreachable()
unreachable
phi: ; No predecessors!
call void @_pen_unreachable()
unreachable
}
define internal fastcc {} @_if_61({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, {}* %3, {}* %4) {
entry:
%_fmm_2db = tail call {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Context.pen:Context"({}* %3)
%_fmm_2dc = tail call {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Tcp/Listener.pen:Listener"({}* %4)
%5 = insertvalue { {}*, [0 x i8] } zeroinitializer, {}* %2, 0
%6 = alloca { {}*, [0 x i8] }, align 8
store { {}*, [0 x i8] } %5, { {}*, [0 x i8] }* %6, align 8
%7 = bitcast { {}*, [0 x i8] }* %6 to { [1 x i64] }*
%8 = load { [1 x i64] }, { [1 x i64] }* %7, align 4
%9 = alloca { [1 x i64] }, align 8
store { [1 x i64] } %8, { [1 x i64] }* %9, align 4
%10 = bitcast { [1 x i64] }* %9 to { i64, [0 x i8] }*
%11 = load { i64, [0 x i8] }, { i64, [0 x i8] }* %10, align 4
%_fmm_2dd = extractvalue { i64, [0 x i8] } %11, 0
%12 = insertvalue { { {} (i64)*, {} (i64)* }*, i64 } { { {} (i64)*, {} (i64)* }* @"Record(Record { name: \22prelude:error\22 })", i64 0 }, i64 %_fmm_2dd, 1
%_result = tail call fastcc {} %1({ i8*, i64, i64 }* %0, { { {} (i64)*, {} (i64)* }*, i64 } %12)
ret {} %_result
}
define internal fastcc {} @_if_63({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, {}* %3, {}* %4) {
entry:
%_result = tail call fastcc {} @_if_61({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, {}* %3, {}* %4)
ret {} %_result
}
define internal fastcc {} @_if_65({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, {}* %3, {}* %4) {
entry:
%_result = tail call fastcc {} @_if_63({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %1, {}* %2, {}* %3, {}* %4)
ret {} %_result
}
define internal fastcc {} @_if_6b({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, double)* %1, {}* %2) {
entry:
%_fmm_33c = load atomic {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, {}*)*, {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, {}*)** getelementptr ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, {}*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, {}*)*, {} (i64)*, {} }* inttoptr (i64 and (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:main" to i64), i64 1), i64 -2) to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, {}*)*, {} (i64)*, {} }*), i32 0, i32 0) acquire, align 8
%_result = tail call fastcc {} %_fmm_33c({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, double)* %1, {}* inttoptr (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, double)*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:main" to i64), i64 1) to {}*), {}* %2)
ret {} %_result
}
define internal fastcc {} @_if_6d({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, double)* %1, {}* %2) {
entry:
%_result = tail call fastcc {} @_if_6b({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, double)* %1, {}* %2)
ret {} %_result
}
define internal fastcc {} @_if_6f({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, double)* %1, {}* %2) {
entry:
%_result = tail call fastcc {} @_if_6d({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, double)* %1, {}* %2)
ret {} %_result
}
define internal fastcc {} @_k_6({ i8*, i64, i64 }* %0, { { {} (i64)*, {} (i64)* }*, i64 } %1) {
entry:
%2 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_b = load i64, i64* %2, align 4
br i1 false, label %then, label %else
then: ; preds = %entry
br label %phi
else: ; preds = %entry
br label %phi
phi: ; preds = %else, %then
%_k_c = phi i64 [ 0, %then ], [ 24, %else ]
%3 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%4 = sub i64 %_k_b, %_k_c
store i64 %4, i64* %3, align 4
%5 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
%_k_d = load i8*, i8** %5, align 8
%6 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_e = load i64, i64* %6, align 4
%7 = getelementptr i8, i8* %_k_d, i64 %_k_e
%8 = ptrtoint i8* %7 to i64
%9 = inttoptr i64 %8 to { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}* }*
%_k_f = load { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}* }, { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}* }* %9, align 8
%_k = extractvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}* } %_k_f, 0
%ctx = extractvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}* } %_k_f, 1
%l = extractvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}* } %_k_f, 2
%_fmm_2d2 = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %1, 0
%10 = ptrtoint { {} (i64)*, {} (i64)* }* %_fmm_2d2 to i64
%11 = icmp eq i64 %10, ptrtoint ({ {} (i64)*, {} (i64)* }* @"Record(Record { name: \22prelude:error\22 })" to i64)
br i1 %11, label %then1, label %else2
then1: ; preds = %phi
%_fmm_2d3 = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %1, 1
%12 = insertvalue { i64, [0 x i8] } zeroinitializer, i64 %_fmm_2d3, 0
%13 = alloca { i64, [0 x i8] }, align 8
store { i64, [0 x i8] } %12, { i64, [0 x i8] }* %13, align 4
%14 = bitcast { i64, [0 x i8] }* %13 to { [1 x i64] }*
%15 = load { [1 x i64] }, { [1 x i64] }* %14, align 4
%16 = alloca { [1 x i64] }, align 8
store { [1 x i64] } %15, { [1 x i64] }* %16, align 4
%17 = bitcast { [1 x i64] }* %16 to { {}*, [0 x i8] }*
%18 = load { {}*, [0 x i8] }, { {}*, [0 x i8] }* %17, align 8
%_fmm_2d4 = extractvalue { {}*, [0 x i8] } %18, 0
br i1 icmp ne (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:serve" to i64), i64 1), i64 0), label %then4, label %else5
else2: ; preds = %phi
%_result16 = tail call fastcc {} @_if_28({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %_k, { { {} (i64)*, {} (i64)* }*, i64 } %1, {}* %ctx, {}* %l)
ret {} %_result16
phi3: ; No predecessors!
call void @_pen_unreachable()
unreachable
then4: ; preds = %then1
br i1 icmp ne (i64 and (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:serve" to i64), i64 1), i64 1), i64 1), label %then7, label %else8
else5: ; preds = %then1
%_result15 = tail call fastcc {} @_if_61({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %_k, {}* %_fmm_2d4, {}* %ctx, {}* %l)
ret {} %_result15
phi6: ; No predecessors!
call void @_pen_unreachable()
unreachable
then7: ; preds = %then4
%19 = atomicrmw sub i64* getelementptr (i64, i64* inttoptr (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:serve" to i64), i64 1) to i64*), i64 -1), i64 1 release, align 8
%20 = icmp eq i64 %19, 0
br i1 %20, label %then10, label %else11
else8: ; preds = %then4
%_result14 = tail call fastcc {} @_if_63({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %_k, {}* %_fmm_2d4, {}* %ctx, {}* %l)
ret {} %_result14
phi9: ; No predecessors!
call void @_pen_unreachable()
unreachable
then10: ; preds = %then7
fence acquire
%_fmm_2d6 = load {} (i64)*, {} (i64)** getelementptr ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }* inttoptr (i64 and (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:serve" to i64), i64 1), i64 -2) to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }*), i32 0, i32 1), align 8
%_fmm_2d7 = tail call {} %_fmm_2d6(i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:serve" to i64), i64 1))
call void @_pen_free(i8* bitcast (i64* getelementptr (i64, i64* inttoptr (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:serve" to i64), i64 1) to i64*), i64 -1) to i8*))
%_result = tail call fastcc {} @_if_65({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %_k, {}* %_fmm_2d4, {}* %ctx, {}* %l)
ret {} %_result
else11: ; preds = %then7
%_result13 = tail call fastcc {} @_if_65({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %_k, {}* %_fmm_2d4, {}* %ctx, {}* %l)
ret {} %_result13
phi12: ; No predecessors!
call void @_pen_unreachable()
unreachable
}
define internal fastcc {} @_k_1b({ i8*, i64, i64 }* %0, { { {} (i64)*, {} (i64)* }*, i64 } %1) {
entry:
%2 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_1c = load i64, i64* %2, align 4
br i1 false, label %then, label %else
then: ; preds = %entry
br label %phi
else: ; preds = %entry
br label %phi
phi: ; preds = %else, %then
%_k_1d = phi i64 [ 0, %then ], [ 8, %else ]
%3 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%4 = sub i64 %_k_1c, %_k_1d
store i64 %4, i64* %3, align 4
%5 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
%_k_1e = load i8*, i8** %5, align 8
%6 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_1f = load i64, i64* %6, align 4
%7 = getelementptr i8, i8* %_k_1e, i64 %_k_1f
%8 = ptrtoint i8* %7 to i64
%9 = inttoptr i64 %8 to { {} ({ i8*, i64, i64 }*, double)* }*
%_k_20 = load { {} ({ i8*, i64, i64 }*, double)* }, { {} ({ i8*, i64, i64 }*, double)* }* %9, align 8
%_k = extractvalue { {} ({ i8*, i64, i64 }*, double)* } %_k_20, 0
%_fmm_298 = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %1, 0
%_fmm_299 = load { {} (i64)*, {} (i64)* }, { {} (i64)*, {} (i64)* }* %_fmm_298, align 8
%_fmm_29a = extractvalue { {} (i64)*, {} (i64)* } %_fmm_299, 1
%_fmm_29b = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %1, 1
%_fmm_29c = tail call {} %_fmm_29a(i64 %_fmm_29b)
%_result = tail call fastcc {} @_if_4({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, double)* %_k, double 1.000000e+00)
ret {} %_result
}
define internal fastcc {} @_k_2a({ i8*, i64, i64 }* %0, { { {} (i64)*, {} (i64)* }*, i64 } %1) {
entry:
%2 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_2c = load i64, i64* %2, align 4
br i1 false, label %then, label %else
then: ; preds = %entry
br label %phi
else: ; preds = %entry
br label %phi
phi: ; preds = %else, %then
%_k_2d = phi i64 [ 0, %then ], [ 16, %else ]
%3 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%4 = sub i64 %_k_2c, %_k_2d
store i64 %4, i64* %3, align 4
%5 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
%_k_2e = load i8*, i8** %5, align 8
%6 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_2f = load i64, i64* %6, align 4
%7 = getelementptr i8, i8* %_k_2e, i64 %_k_2f
%8 = ptrtoint i8* %7 to i64
%9 = inttoptr i64 %8 to { {} ({ i8*, i64, i64 }*, double)*, {}* }*
%_k_30 = load { {} ({ i8*, i64, i64 }*, double)*, {}* }, { {} ({ i8*, i64, i64 }*, double)*, {}* }* %9, align 8
%_k = extractvalue { {} ({ i8*, i64, i64 }*, double)*, {}* } %_k_30, 0
%ctx = extractvalue { {} ({ i8*, i64, i64 }*, double)*, {}* } %_k_30, 1
%_fmm_28c = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %1, 0
%10 = ptrtoint { {} (i64)*, {} (i64)* }* %_fmm_28c to i64
%11 = icmp eq i64 %10, ptrtoint ({ {} (i64)*, {} (i64)* }* @ByteString to i64)
br i1 %11, label %then1, label %else2
then1: ; preds = %phi
%_fmm_28d = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %1, 1
%12 = insertvalue { i64, [0 x i8] } zeroinitializer, i64 %_fmm_28d, 0
%13 = alloca { i64, [0 x i8] }, align 8
store { i64, [0 x i8] } %12, { i64, [0 x i8] }* %13, align 4
%14 = bitcast { i64, [0 x i8] }* %13 to { [1 x i64] }*
%15 = load { [1 x i64] }, { [1 x i64] }* %14, align 4
%16 = alloca { [1 x i64] }, align 8
store { [1 x i64] } %15, { [1 x i64] }* %16, align 4
%17 = bitcast { [1 x i64] }* %16 to { { i64, i8 }*, [0 x i8] }*
%18 = load { { i64, i8 }*, [0 x i8] }, { { i64, i8 }*, [0 x i8] }* %17, align 8
%_fmm_28e = extractvalue { { i64, i8 }*, [0 x i8] } %18, 0
%_result = tail call fastcc {} @_if_6({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, double)* %_k, { i64, i8 }* %_fmm_28e, {}* %ctx)
ret {} %_result
else2: ; preds = %phi
%_fmm_28f = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %1, 0
%_fmm_290 = load { {} (i64)*, {} (i64)* }, { {} (i64)*, {} (i64)* }* %_fmm_28f, align 8
%_fmm_291 = extractvalue { {} (i64)*, {} (i64)* } %_fmm_290, 1
%_fmm_292 = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %1, 1
%_fmm_293 = tail call {} %_fmm_291(i64 %_fmm_292)
%_result4 = tail call fastcc {} @_if_6({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, double)* %_k, { i64, i8 }* inttoptr (i64 or (i64 ptrtoint ({ i64, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @_fmm_294 to i64), i64 1) to { i64, i8 }*), {}* %ctx)
ret {} %_result4
phi3: ; No predecessors!
call void @_pen_unreachable()
unreachable
}
define internal fastcc {} @_k_29({ i8*, i64, i64 }* %0, { { {} (i64)*, {} (i64)* }*, i64 } %1) {
entry:
%2 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_3b = load i64, i64* %2, align 4
br i1 false, label %then, label %else
then: ; preds = %entry
br label %phi
else: ; preds = %entry
br label %phi
phi: ; preds = %else, %then
%_k_3c = phi i64 [ 0, %then ], [ 16, %else ]
%3 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%4 = sub i64 %_k_3b, %_k_3c
store i64 %4, i64* %3, align 4
%5 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
%_k_3d = load i8*, i8** %5, align 8
%6 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_3e = load i64, i64* %6, align 4
%7 = getelementptr i8, i8* %_k_3d, i64 %_k_3e
%8 = ptrtoint i8* %7 to i64
%9 = inttoptr i64 %8 to { {} ({ i8*, i64, i64 }*, double)*, {}* }*
%_k_3f = load { {} ({ i8*, i64, i64 }*, double)*, {}* }, { {} ({ i8*, i64, i64 }*, double)*, {}* }* %9, align 8
%_k = extractvalue { {} ({ i8*, i64, i64 }*, double)*, {}* } %_k_3f, 0
%ctx = extractvalue { {} ({ i8*, i64, i64 }*, double)*, {}* } %_k_3f, 1
%_fmm_283 = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %1, 0
%10 = ptrtoint { {} (i64)*, {} (i64)* }* %_fmm_283 to i64
%11 = icmp eq i64 %10, ptrtoint ({ {} (i64)*, {} (i64)* }* @None to i64)
br i1 %11, label %then1, label %else2
then1: ; preds = %phi
%_fmm_284 = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %1, 1
%12 = insertvalue { i64, [0 x i8] } zeroinitializer, i64 %_fmm_284, 0
%13 = alloca { i64, [0 x i8] }, align 8
store { i64, [0 x i8] } %12, { i64, [0 x i8] }* %13, align 4
%14 = bitcast { i64, [0 x i8] }* %13 to { [1 x i64] }*
%15 = load { [1 x i64] }, { [1 x i64] }* %14, align 4
%16 = alloca { [1 x i64] }, align 8
store { [1 x i64] } %15, { [1 x i64] }* %16, align 4
%17 = bitcast { [1 x i64] }* %16 to { {}, [8 x i8] }*
%18 = load { {}, [8 x i8] }, { {}, [8 x i8] }* %17, align 1
%_fmm_285 = extractvalue { {}, [8 x i8] } %18, 0
%_fmm_286 = tail call {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Context.pen:Context"({}* %ctx)
%_result = tail call fastcc {} @_if_1({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, double)* %_k, double 0.000000e+00)
ret {} %_result
else2: ; preds = %phi
%_fmm_287 = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %1, 0
%19 = ptrtoint { {} (i64)*, {} (i64)* }* %_fmm_287 to i64
%20 = icmp eq i64 %19, ptrtoint ({ {} (i64)*, {} (i64)* }* @"Record(Record { name: \22prelude:error\22 })" to i64)
br i1 %20, label %then4, label %else5
phi3: ; No predecessors!
call void @_pen_unreachable()
unreachable
then4: ; preds = %else2
%_fmm_288 = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %1, 1
%21 = insertvalue { i64, [0 x i8] } zeroinitializer, i64 %_fmm_288, 0
%22 = alloca { i64, [0 x i8] }, align 8
store { i64, [0 x i8] } %21, { i64, [0 x i8] }* %22, align 4
%23 = bitcast { i64, [0 x i8] }* %22 to { [1 x i64] }*
%24 = load { [1 x i64] }, { [1 x i64] }* %23, align 4
%25 = alloca { [1 x i64] }, align 8
store { [1 x i64] } %24, { [1 x i64] }* %25, align 4
%26 = bitcast { [1 x i64] }* %25 to { {}*, [0 x i8] }*
%27 = load { {}*, [0 x i8] }, { {}*, [0 x i8] }* %26, align 8
%_fmm_289 = extractvalue { {}*, [0 x i8] } %27, 0
%_fmm_28a = load atomic {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*)*, {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*)** getelementptr ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*)*, {} (i64)*, {} }* inttoptr (i64 and (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*)*, {} (i64)*, {} }* @"prelude:source" to i64), i64 1), i64 -2) to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*)*, {} (i64)*, {} }*), i32 0, i32 0) acquire, align 8
%28 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_31 = load i64, i64* %28, align 4
br i1 false, label %then7, label %else8
else5: ; preds = %else2
call void @_pen_unreachable()
unreachable
phi6: ; No predecessors!
call void @_pen_unreachable()
unreachable
then7: ; preds = %then4
br label %phi9
else8: ; preds = %then4
br label %phi9
phi9: ; preds = %else8, %then7
%_k_32 = phi i64 [ 0, %then7 ], [ 16, %else8 ]
%29 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 2
%_k_33 = load i64, i64* %29, align 4
%30 = add i64 %_k_31, %_k_32
%31 = icmp ugt i64 %30, %_k_33
br i1 %31, label %then10, label %else11
then10: ; preds = %phi9
%32 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
%_k_34 = load i8*, i8** %32, align 8
%33 = mul i64 %_k_33, 2
%_k_35 = call i8* @_pen_realloc(i8* %_k_34, i64 %33)
%34 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
store i8* %_k_35, i8** %34, align 8
%35 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 2
%36 = mul i64 %_k_33, 2
store i64 %36, i64* %35, align 4
br label %phi12
else11: ; preds = %phi9
br label %phi12
phi12: ; preds = %else11, %then10
%_k_36 = phi {} [ zeroinitializer, %then10 ], [ zeroinitializer, %else11 ]
%37 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
%_k_37 = load i8*, i8** %37, align 8
%38 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_38 = load i64, i64* %38, align 4
%39 = getelementptr i8, i8* %_k_37, i64 %_k_38
%40 = ptrtoint i8* %39 to i64
%41 = inttoptr i64 %40 to { {} ({ i8*, i64, i64 }*, double)*, {}* }*
%42 = insertvalue { {} ({ i8*, i64, i64 }*, double)*, {}* } zeroinitializer, {} ({ i8*, i64, i64 }*, double)* %_k, 0
%43 = insertvalue { {} ({ i8*, i64, i64 }*, double)*, {}* } %42, {}* %ctx, 1
store { {} ({ i8*, i64, i64 }*, double)*, {}* } %43, { {} ({ i8*, i64, i64 }*, double)*, {}* }* %41, align 8
%44 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%45 = add i64 %_k_31, %_k_32
store i64 %45, i64* %44, align 4
%_result13 = tail call fastcc {} %_fmm_28a({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* @_k_2a, {}* inttoptr (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*)*, {} (i64)*, {} }* @"prelude:source" to i64), i64 1) to {}*), {}* %_fmm_289)
ret {} %_result13
}
define internal fastcc {} @_k_49({ i8*, i64, i64 }* %0, { { {} (i64)*, {} (i64)* }*, i64 } %1) {
entry:
%2 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_4b = load i64, i64* %2, align 4
br i1 false, label %then, label %else
then: ; preds = %entry
br label %phi
else: ; preds = %entry
br label %phi
phi: ; preds = %else, %then
%_k_4c = phi i64 [ 0, %then ], [ 16, %else ]
%3 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%4 = sub i64 %_k_4b, %_k_4c
store i64 %4, i64* %3, align 4
%5 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
%_k_4d = load i8*, i8** %5, align 8
%6 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_4e = load i64, i64* %6, align 4
%7 = getelementptr i8, i8* %_k_4d, i64 %_k_4e
%8 = ptrtoint i8* %7 to i64
%9 = inttoptr i64 %8 to { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}* }*
%_k_4f = load { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}* }, { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}* }* %9, align 8
%_k = extractvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}* } %_k_4f, 0
%ctx = extractvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}* } %_k_4f, 1
%_fmm_2c0 = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %1, 0
%10 = ptrtoint { {} (i64)*, {} (i64)* }* %_fmm_2c0 to i64
%11 = icmp eq i64 %10, ptrtoint ({ {} (i64)*, {} (i64)* }* @"Record(Record { name: \22prelude:error\22 })" to i64)
br i1 %11, label %then1, label %else2
then1: ; preds = %phi
%_fmm_2c1 = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %1, 1
%12 = insertvalue { i64, [0 x i8] } zeroinitializer, i64 %_fmm_2c1, 0
%13 = alloca { i64, [0 x i8] }, align 8
store { i64, [0 x i8] } %12, { i64, [0 x i8] }* %13, align 4
%14 = bitcast { i64, [0 x i8] }* %13 to { [1 x i64] }*
%15 = load { [1 x i64] }, { [1 x i64] }* %14, align 4
%16 = alloca { [1 x i64] }, align 8
store { [1 x i64] } %15, { [1 x i64] }* %16, align 4
%17 = bitcast { [1 x i64] }* %16 to { {}*, [0 x i8] }*
%18 = load { {}*, [0 x i8] }, { {}*, [0 x i8] }* %17, align 8
%_fmm_2c2 = extractvalue { {}*, [0 x i8] } %18, 0
%19 = insertvalue { {}*, [0 x i8] } zeroinitializer, {}* %_fmm_2c2, 0
%20 = alloca { {}*, [0 x i8] }, align 8
store { {}*, [0 x i8] } %19, { {}*, [0 x i8] }* %20, align 8
%21 = bitcast { {}*, [0 x i8] }* %20 to { [1 x i64] }*
%22 = load { [1 x i64] }, { [1 x i64] }* %21, align 4
%23 = alloca { [1 x i64] }, align 8
store { [1 x i64] } %22, { [1 x i64] }* %23, align 4
%24 = bitcast { [1 x i64] }* %23 to { i64, [0 x i8] }*
%25 = load { i64, [0 x i8] }, { i64, [0 x i8] }* %24, align 4
%_fmm_2c3 = extractvalue { i64, [0 x i8] } %25, 0
%26 = insertvalue { { {} (i64)*, {} (i64)* }*, i64 } { { {} (i64)*, {} (i64)* }* @"Record(Record { name: \22prelude:error\22 })", i64 0 }, i64 %_fmm_2c3, 1
%_result = tail call fastcc {} %_k({ i8*, i64, i64 }* %0, { { {} (i64)*, {} (i64)* }*, i64 } %26)
ret {} %_result
else2: ; preds = %phi
%_result4 = tail call fastcc {} @_if_15({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %_k, { { {} (i64)*, {} (i64)* }*, i64 } %1, {}* %ctx)
ret {} %_result4
phi3: ; No predecessors!
call void @_pen_unreachable()
unreachable
}
define internal fastcc {} @_k_5c({ i8*, i64, i64 }* %0, { { {} (i64)*, {} (i64)* }*, i64 } %1) {
entry:
%2 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_5e = load i64, i64* %2, align 4
br i1 false, label %then, label %else
then: ; preds = %entry
br label %phi
else: ; preds = %entry
br label %phi
phi: ; preds = %else, %then
%_k_5f = phi i64 [ 0, %then ], [ 16, %else ]
%3 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%4 = sub i64 %_k_5e, %_k_5f
store i64 %4, i64* %3, align 4
%5 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
%_k_60 = load i8*, i8** %5, align 8
%6 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_61 = load i64, i64* %6, align 4
%7 = getelementptr i8, i8* %_k_60, i64 %_k_61
%8 = ptrtoint i8* %7 to i64
%9 = inttoptr i64 %8 to { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}* }*
%_k_62 = load { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}* }, { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}* }* %9, align 8
%_k = extractvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}* } %_k_62, 0
%ctx = extractvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}* } %_k_62, 1
%_fmm_2ad = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %1, 0
%10 = ptrtoint { {} (i64)*, {} (i64)* }* %_fmm_2ad to i64
%11 = icmp eq i64 %10, ptrtoint ({ {} (i64)*, {} (i64)* }* @"Record(Record { name: \22prelude:error\22 })" to i64)
br i1 %11, label %then1, label %else2
then1: ; preds = %phi
%_fmm_2ae = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %1, 1
%12 = insertvalue { i64, [0 x i8] } zeroinitializer, i64 %_fmm_2ae, 0
%13 = alloca { i64, [0 x i8] }, align 8
store { i64, [0 x i8] } %12, { i64, [0 x i8] }* %13, align 4
%14 = bitcast { i64, [0 x i8] }* %13 to { [1 x i64] }*
%15 = load { [1 x i64] }, { [1 x i64] }* %14, align 4
%16 = alloca { [1 x i64] }, align 8
store { [1 x i64] } %15, { [1 x i64] }* %16, align 4
%17 = bitcast { [1 x i64] }* %16 to { {}*, [0 x i8] }*
%18 = load { {}*, [0 x i8] }, { {}*, [0 x i8] }* %17, align 8
%_fmm_2af = extractvalue { {}*, [0 x i8] } %18, 0
%_fmm_2b0 = tail call {} @"mir_drop_/.pen/default/packages/fb4346304f4058b6/Context.pen:Context"({}* %ctx)
%19 = insertvalue { {}*, [0 x i8] } zeroinitializer, {}* %_fmm_2af, 0
%20 = alloca { {}*, [0 x i8] }, align 8
store { {}*, [0 x i8] } %19, { {}*, [0 x i8] }* %20, align 8
%21 = bitcast { {}*, [0 x i8] }* %20 to { [1 x i64] }*
%22 = load { [1 x i64] }, { [1 x i64] }* %21, align 4
%23 = alloca { [1 x i64] }, align 8
store { [1 x i64] } %22, { [1 x i64] }* %23, align 4
%24 = bitcast { [1 x i64] }* %23 to { i64, [0 x i8] }*
%25 = load { i64, [0 x i8] }, { i64, [0 x i8] }* %24, align 4
%_fmm_2b1 = extractvalue { i64, [0 x i8] } %25, 0
%26 = insertvalue { { {} (i64)*, {} (i64)* }*, i64 } { { {} (i64)*, {} (i64)* }* @"Record(Record { name: \22prelude:error\22 })", i64 0 }, i64 %_fmm_2b1, 1
%_result = tail call fastcc {} %_k({ i8*, i64, i64 }* %0, { { {} (i64)*, {} (i64)* }*, i64 } %26)
ret {} %_result
else2: ; preds = %phi
%_result4 = tail call fastcc {} @_if_12({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %_k, { { {} (i64)*, {} (i64)* }*, i64 } %1, {}* %ctx)
ret {} %_result4
phi3: ; No predecessors!
call void @_pen_unreachable()
unreachable
}
define internal fastcc {} @_k_5b({ i8*, i64, i64 }* %0, {}* %1) {
entry:
%2 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_6b = load i64, i64* %2, align 4
br i1 false, label %then, label %else
then: ; preds = %entry
br label %phi
else: ; preds = %entry
br label %phi
phi: ; preds = %else, %then
%_k_6c = phi i64 [ 0, %then ], [ 16, %else ]
%3 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%4 = sub i64 %_k_6b, %_k_6c
store i64 %4, i64* %3, align 4
%5 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
%_k_6d = load i8*, i8** %5, align 8
%6 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_6e = load i64, i64* %6, align 4
%7 = getelementptr i8, i8* %_k_6d, i64 %_k_6e
%8 = ptrtoint i8* %7 to i64
%9 = inttoptr i64 %8 to { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}* }*
%_k_6f = load { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}* }, { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}* }* %9, align 8
%_k = extractvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}* } %_k_6f, 0
%ctx = extractvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}* } %_k_6f, 1
%_fmm_2ab = load atomic {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*)*, {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*)** getelementptr ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*)*, {} (i64)*, {} }* inttoptr (i64 and (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*)*, {} (i64)*, {} }* @"/arguments.pen:Parse" to i64), i64 1), i64 -2) to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*)*, {} (i64)*, {} }*), i32 0, i32 0) acquire, align 8
%10 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_63 = load i64, i64* %10, align 4
br i1 false, label %then1, label %else2
then1: ; preds = %phi
br label %phi3
else2: ; preds = %phi
br label %phi3
phi3: ; preds = %else2, %then1
%_k_64 = phi i64 [ 0, %then1 ], [ 16, %else2 ]
%11 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 2
%_k_65 = load i64, i64* %11, align 4
%12 = add i64 %_k_63, %_k_64
%13 = icmp ugt i64 %12, %_k_65
br i1 %13, label %then4, label %else5
then4: ; preds = %phi3
%14 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
%_k_66 = load i8*, i8** %14, align 8
%15 = mul i64 %_k_65, 2
%_k_67 = call i8* @_pen_realloc(i8* %_k_66, i64 %15)
%16 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
store i8* %_k_67, i8** %16, align 8
%17 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 2
%18 = mul i64 %_k_65, 2
store i64 %18, i64* %17, align 4
br label %phi6
else5: ; preds = %phi3
br label %phi6
phi6: ; preds = %else5, %then4
%_k_68 = phi {} [ zeroinitializer, %then4 ], [ zeroinitializer, %else5 ]
%19 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
%_k_69 = load i8*, i8** %19, align 8
%20 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_6a = load i64, i64* %20, align 4
%21 = getelementptr i8, i8* %_k_69, i64 %_k_6a
%22 = ptrtoint i8* %21 to i64
%23 = inttoptr i64 %22 to { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}* }*
%24 = insertvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}* } zeroinitializer, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %_k, 0
%25 = insertvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}* } %24, {}* %ctx, 1
store { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}* } %25, { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}* }* %23, align 8
%26 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%27 = add i64 %_k_63, %_k_64
store i64 %27, i64* %26, align 4
%_result = tail call fastcc {} %_fmm_2ab({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* @_k_5c, {}* inttoptr (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*)*, {} (i64)*, {} }* @"/arguments.pen:Parse" to i64), i64 1) to {}*), {}* %1)
ret {} %_result
}
define internal fastcc {} @_k_79({ i8*, i64, i64 }* %0, { { {} (i64)*, {} (i64)* }*, i64 } %1) {
entry:
%2 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_7e = load i64, i64* %2, align 4
br i1 false, label %then, label %else
then: ; preds = %entry
br label %phi
else: ; preds = %entry
br label %phi
phi: ; preds = %else, %then
%_k_7f = phi i64 [ 0, %then ], [ 24, %else ]
%3 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%4 = sub i64 %_k_7e, %_k_7f
store i64 %4, i64* %3, align 4
%5 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
%_k_80 = load i8*, i8** %5, align 8
%6 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_81 = load i64, i64* %6, align 4
%7 = getelementptr i8, i8* %_k_80, i64 %_k_81
%8 = ptrtoint i8* %7 to i64
%9 = inttoptr i64 %8 to { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}* }*
%_k_82 = load { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}* }, { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}* }* %9, align 8
%_k = extractvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}* } %_k_82, 0
%ctx = extractvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}* } %_k_82, 1
%l = extractvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}* } %_k_82, 2
%_fmm_320 = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %1, 0
%10 = ptrtoint { {} (i64)*, {} (i64)* }* %_fmm_320 to i64
%11 = icmp eq i64 %10, ptrtoint ({ {} (i64)*, {} (i64)* }* @"Record(Record { name: \22prelude:error\22 })" to i64)
br i1 %11, label %then1, label %else2
then1: ; preds = %phi
%_fmm_321 = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %1, 1
%12 = insertvalue { i64, [0 x i8] } zeroinitializer, i64 %_fmm_321, 0
%13 = alloca { i64, [0 x i8] }, align 8
store { i64, [0 x i8] } %12, { i64, [0 x i8] }* %13, align 4
%14 = bitcast { i64, [0 x i8] }* %13 to { [1 x i64] }*
%15 = load { [1 x i64] }, { [1 x i64] }* %14, align 4
%16 = alloca { [1 x i64] }, align 8
store { [1 x i64] } %15, { [1 x i64] }* %16, align 4
%17 = bitcast { [1 x i64] }* %16 to { {}*, [0 x i8] }*
%18 = load { {}*, [0 x i8] }, { {}*, [0 x i8] }* %17, align 8
%_fmm_322 = extractvalue { {}*, [0 x i8] } %18, 0
br i1 icmp ne (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:serve" to i64), i64 1), i64 0), label %then4, label %else5
else2: ; preds = %phi
%_result16 = tail call fastcc {} @_if_2f({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %_k, { { {} (i64)*, {} (i64)* }*, i64 } %1, {}* %ctx, {}* %l)
ret {} %_result16
phi3: ; No predecessors!
call void @_pen_unreachable()
unreachable
then4: ; preds = %then1
br i1 icmp ne (i64 and (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:serve" to i64), i64 1), i64 1), i64 1), label %then7, label %else8
else5: ; preds = %then1
%_result15 = tail call fastcc {} @_if_32({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %_k, {}* %_fmm_322, {}* %ctx, {}* %l)
ret {} %_result15
phi6: ; No predecessors!
call void @_pen_unreachable()
unreachable
then7: ; preds = %then4
%19 = atomicrmw sub i64* getelementptr (i64, i64* inttoptr (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:serve" to i64), i64 1) to i64*), i64 -1), i64 1 release, align 8
%20 = icmp eq i64 %19, 0
br i1 %20, label %then10, label %else11
else8: ; preds = %then4
%_result14 = tail call fastcc {} @_if_34({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %_k, {}* %_fmm_322, {}* %ctx, {}* %l)
ret {} %_result14
phi9: ; No predecessors!
call void @_pen_unreachable()
unreachable
then10: ; preds = %then7
fence acquire
%_fmm_324 = load {} (i64)*, {} (i64)** getelementptr ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }* inttoptr (i64 and (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:serve" to i64), i64 1), i64 -2) to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }*), i32 0, i32 1), align 8
%_fmm_325 = tail call {} %_fmm_324(i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:serve" to i64), i64 1))
call void @_pen_free(i8* bitcast (i64* getelementptr (i64, i64* inttoptr (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:serve" to i64), i64 1) to i64*), i64 -1) to i8*))
%_result = tail call fastcc {} @_if_36({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %_k, {}* %_fmm_322, {}* %ctx, {}* %l)
ret {} %_result
else11: ; preds = %then7
%_result13 = tail call fastcc {} @_if_36({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %_k, {}* %_fmm_322, {}* %ctx, {}* %l)
ret {} %_result13
phi12: ; No predecessors!
call void @_pen_unreachable()
unreachable
}
define internal fastcc {} @_k_8f({ i8*, i64, i64 }* %0, { { {} (i64)*, {} (i64)* }*, i64 } %1) {
entry:
%2 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_94 = load i64, i64* %2, align 4
br i1 false, label %then, label %else
then: ; preds = %entry
br label %phi
else: ; preds = %entry
br label %phi
phi: ; preds = %else, %then
%_k_95 = phi i64 [ 0, %then ], [ 40, %else ]
%3 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%4 = sub i64 %_k_94, %_k_95
store i64 %4, i64* %3, align 4
%5 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
%_k_96 = load i8*, i8** %5, align 8
%6 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_97 = load i64, i64* %6, align 4
%7 = getelementptr i8, i8* %_k_96, i64 %_k_97
%8 = ptrtoint i8* %7 to i64
%9 = inttoptr i64 %8 to { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, { i64, i8 }*, {}*, {}* }*
%_k_98 = load { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, { i64, i8 }*, {}*, {}* }, { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, { i64, i8 }*, {}*, {}* }* %9, align 8
%_k = extractvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, { i64, i8 }*, {}*, {}* } %_k_98, 0
%_fmm_2e2 = extractvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, { i64, i8 }*, {}*, {}* } %_k_98, 1
%_fmm_2fc = extractvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, { i64, i8 }*, {}*, {}* } %_k_98, 2
%ctx = extractvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, { i64, i8 }*, {}*, {}* } %_k_98, 3
%l = extractvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, { i64, i8 }*, {}*, {}* } %_k_98, 4
%_fmm_303 = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %1, 0
%10 = ptrtoint { {} (i64)*, {} (i64)* }* %_fmm_303 to i64
%11 = icmp eq i64 %10, ptrtoint ({ {} (i64)*, {} (i64)* }* @"Record(Record { name: \22prelude:error\22 })" to i64)
br i1 %11, label %then1, label %else2
then1: ; preds = %phi
%_fmm_304 = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %1, 1
%12 = insertvalue { i64, [0 x i8] } zeroinitializer, i64 %_fmm_304, 0
%13 = alloca { i64, [0 x i8] }, align 8
store { i64, [0 x i8] } %12, { i64, [0 x i8] }* %13, align 4
%14 = bitcast { i64, [0 x i8] }* %13 to { [1 x i64] }*
%15 = load { [1 x i64] }, { [1 x i64] }* %14, align 4
%16 = alloca { [1 x i64] }, align 8
store { [1 x i64] } %15, { [1 x i64] }* %16, align 4
%17 = bitcast { [1 x i64] }* %16 to { {}*, [0 x i8] }*
%18 = load { {}*, [0 x i8] }, { {}*, [0 x i8] }* %17, align 8
%_fmm_305 = extractvalue { {}*, [0 x i8] } %18, 0
br i1 icmp ne (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:serve" to i64), i64 1), i64 0), label %then4, label %else5
else2: ; preds = %phi
%_result16 = tail call fastcc {} @_if_2d({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %_k, {}* %_fmm_2e2, { i64, i8 }* %_fmm_2fc, { { {} (i64)*, {} (i64)* }*, i64 } %1, {}* %ctx, {}* %l)
ret {} %_result16
phi3: ; No predecessors!
call void @_pen_unreachable()
unreachable
then4: ; preds = %then1
br i1 icmp ne (i64 and (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:serve" to i64), i64 1), i64 1), i64 1), label %then7, label %else8
else5: ; preds = %then1
%_result15 = tail call fastcc {} @_if_3d({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %_k, {}* %_fmm_2e2, { i64, i8 }* %_fmm_2fc, {}* %_fmm_305, {}* %ctx, {}* %l)
ret {} %_result15
phi6: ; No predecessors!
call void @_pen_unreachable()
unreachable
then7: ; preds = %then4
%19 = atomicrmw sub i64* getelementptr (i64, i64* inttoptr (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:serve" to i64), i64 1) to i64*), i64 -1), i64 1 release, align 8
%20 = icmp eq i64 %19, 0
br i1 %20, label %then10, label %else11
else8: ; preds = %then4
%_result14 = tail call fastcc {} @_if_48({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %_k, {}* %_fmm_2e2, { i64, i8 }* %_fmm_2fc, {}* %_fmm_305, {}* %ctx, {}* %l)
ret {} %_result14
phi9: ; No predecessors!
call void @_pen_unreachable()
unreachable
then10: ; preds = %then7
fence acquire
%_fmm_307 = load {} (i64)*, {} (i64)** getelementptr ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }* inttoptr (i64 and (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:serve" to i64), i64 1), i64 -2) to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }*), i32 0, i32 1), align 8
%_fmm_308 = tail call {} %_fmm_307(i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:serve" to i64), i64 1))
call void @_pen_free(i8* bitcast (i64* getelementptr (i64, i64* inttoptr (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:serve" to i64), i64 1) to i64*), i64 -1) to i8*))
%_result = tail call fastcc {} @_if_4a({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %_k, {}* %_fmm_2e2, { i64, i8 }* %_fmm_2fc, {}* %_fmm_305, {}* %ctx, {}* %l)
ret {} %_result
else11: ; preds = %then7
%_result13 = tail call fastcc {} @_if_4a({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %_k, {}* %_fmm_2e2, { i64, i8 }* %_fmm_2fc, {}* %_fmm_305, {}* %ctx, {}* %l)
ret {} %_result13
phi12: ; No predecessors!
call void @_pen_unreachable()
unreachable
}
define internal fastcc {} @_k_a4({ i8*, i64, i64 }* %0, { { {} (i64)*, {} (i64)* }*, i64 } %1) {
entry:
%2 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_a9 = load i64, i64* %2, align 4
br i1 false, label %then, label %else
then: ; preds = %entry
br label %phi
else: ; preds = %entry
br label %phi
phi: ; preds = %else, %then
%_k_aa = phi i64 [ 0, %then ], [ 32, %else ]
%3 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%4 = sub i64 %_k_a9, %_k_aa
store i64 %4, i64* %3, align 4
%5 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 0
%_k_ab = load i8*, i8** %5, align 8
%6 = getelementptr { i8*, i64, i64 }, { i8*, i64, i64 }* %0, i32 0, i32 1
%_k_ac = load i64, i64* %6, align 4
%7 = getelementptr i8, i8* %_k_ab, i64 %_k_ac
%8 = ptrtoint i8* %7 to i64
%9 = inttoptr i64 %8 to { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}* }*
%_k_ad = load { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}* }, { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}* }* %9, align 8
%_k = extractvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}* } %_k_ad, 0
%_fmm_2e2 = extractvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}* } %_k_ad, 1
%ctx = extractvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}* } %_k_ad, 2
%l = extractvalue { {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}* } %_k_ad, 3
%_fmm_2eb = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %1, 0
%10 = ptrtoint { {} (i64)*, {} (i64)* }* %_fmm_2eb to i64
%11 = icmp eq i64 %10, ptrtoint ({ {} (i64)*, {} (i64)* }* @"Record(Record { name: \22prelude:error\22 })" to i64)
br i1 %11, label %then1, label %else2
then1: ; preds = %phi
%_fmm_2ec = extractvalue { { {} (i64)*, {} (i64)* }*, i64 } %1, 1
%12 = insertvalue { i64, [0 x i8] } zeroinitializer, i64 %_fmm_2ec, 0
%13 = alloca { i64, [0 x i8] }, align 8
store { i64, [0 x i8] } %12, { i64, [0 x i8] }* %13, align 4
%14 = bitcast { i64, [0 x i8] }* %13 to { [1 x i64] }*
%15 = load { [1 x i64] }, { [1 x i64] }* %14, align 4
%16 = alloca { [1 x i64] }, align 8
store { [1 x i64] } %15, { [1 x i64] }* %16, align 4
%17 = bitcast { [1 x i64] }* %16 to { {}*, [0 x i8] }*
%18 = load { {}*, [0 x i8] }, { {}*, [0 x i8] }* %17, align 8
%_fmm_2ed = extractvalue { {}*, [0 x i8] } %18, 0
br i1 icmp ne (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:serve" to i64), i64 1), i64 0), label %then4, label %else5
else2: ; preds = %phi
%_result16 = tail call fastcc {} @_if_2a({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %_k, {}* %_fmm_2e2, { { {} (i64)*, {} (i64)* }*, i64 } %1, {}* %ctx, {}* %l)
ret {} %_result16
phi3: ; No predecessors!
call void @_pen_unreachable()
unreachable
then4: ; preds = %then1
br i1 icmp ne (i64 and (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:serve" to i64), i64 1), i64 1), i64 1), label %then7, label %else8
else5: ; preds = %then1
%_result15 = tail call fastcc {} @_if_56({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %_k, {}* %_fmm_2e2, {}* %_fmm_2ed, {}* %ctx, {}* %l)
ret {} %_result15
phi6: ; No predecessors!
call void @_pen_unreachable()
unreachable
then7: ; preds = %then4
%19 = atomicrmw sub i64* getelementptr (i64, i64* inttoptr (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:serve" to i64), i64 1) to i64*), i64 -1), i64 1 release, align 8
%20 = icmp eq i64 %19, 0
br i1 %20, label %then10, label %else11
else8: ; preds = %then4
%_result14 = tail call fastcc {} @_if_58({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %_k, {}* %_fmm_2e2, {}* %_fmm_2ed, {}* %ctx, {}* %l)
ret {} %_result14
phi9: ; No predecessors!
call void @_pen_unreachable()
unreachable
then10: ; preds = %then7
fence acquire
%_fmm_2ef = load {} (i64)*, {} (i64)** getelementptr ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }, { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }* inttoptr (i64 and (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:serve" to i64), i64 1), i64 -2) to { {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }*), i32 0, i32 1), align 8
%_fmm_2f0 = tail call {} %_fmm_2ef(i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:serve" to i64), i64 1))
call void @_pen_free(i8* bitcast (i64* getelementptr (i64, i64* inttoptr (i64 or (i64 ptrtoint ({ {} ({ i8*, i64, i64 }*, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })*, {}*, {}*, {}*)*, {} (i64)*, {} }* @"/main.pen:serve" to i64), i64 1) to i64*), i64 -1) to i8*))
%_result = tail call fastcc {} @_if_5a({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %_k, {}* %_fmm_2e2, {}* %_fmm_2ed, {}* %ctx, {}* %l)
ret {} %_result
else11: ; preds = %then7
%_result13 = tail call fastcc {} @_if_5a({ i8*, i64, i64 }* %0, {} ({ i8*, i64, i64 }*, { { {} (i64)*, {} (i64)* }*, i64 })* %_k, {}* %_fmm_2e2, {}* %_fmm_2ed, {}* %ctx, {}* %l)
ret {} %_result13
phi12: ; No predecessors!
call void @_pen_unreachable()
unreachable
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment