#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */
typedef struct TYPE_9__ TYPE_2__;
typedef struct TYPE_8__ TYPE_1__;

/* Type definitions */
struct TYPE_9__ {
  size_t fts_nitems;
  TYPE_1__ **fts_array;
  scalar_t__ fts_compar;
};
struct TYPE_8__ {
  struct TYPE_8__ *fts_link;
};
typedef TYPE_1__ FTSENT;
typedef TYPE_2__ FTS;

/* Variables and functions */
size_t UINT_MAX;
int /*<<< orphan*/ qsort(void *, size_t, int,
                         int (*)(void const *, void const *));
TYPE_1__ **realloc(TYPE_1__ **, int);
FTSENT *fts_sort(FTS *sp, FTSENT *head, size_t nitems) {
  FTSENT **ap, *p;
  ;
  ;
  if (nitems > sp->fts_nitems) {
    FTSENT **new;
    new = realloc(sp->fts_array, sizeof(FTSENT *) * (nitems + 40));
    if (new == 0)
      return (head);
    sp->fts_array = new;
    sp->fts_nitems =
        ((nitems + 40) > UINT_MAX ? UINT_MAX : (unsigned int)(nitems + 40));
  }
  for (ap = sp->fts_array, p = head; p; p = p->fts_link)
    *ap++ = p;
  qsort((void *)sp->fts_array, nitems, sizeof(FTSENT *),
        (int (*)(const void *, const void *))sp->fts_compar);
  for (head = *(ap = sp->fts_array); --nitems; ++ap)
    ap[0]->fts_link = ap[1];
  ap[0]->fts_link = NULL;
  return (head);
}


x86 assembly (clang, -O0):
<fts_sort>:
push   %rbp
mov    %rsp,%rbp
sub    $0x40,%rsp
mov    %rdi,-0x10(%rbp)
mov    %rsi,-0x18(%rbp)
mov    %rdx,-0x20(%rbp)
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
cmp    (%rcx),%rax
jbe    11cc <fts_sort+0xac>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rdi
mov    -0x20(%rbp),%rax
add    $0x28,%rax
shl    $0x3,%rax
mov    %eax,%esi
call   1040 <realloc@plt>
mov    %rax,-0x38(%rbp)
cmpq   $0x0,-0x38(%rbp)
jne    117c <fts_sort+0x5c>
mov    -0x18(%rbp),%rax
mov    %rax,-0x8(%rbp)
jmp    1291 <fts_sort+0x171>
mov    -0x38(%rbp),%rcx
mov    -0x10(%rbp),%rax
mov    %rcx,0x8(%rax)
mov    -0x20(%rbp),%rax
add    $0x28,%rax
mov    0x2e51(%rip),%rcx
cmp    (%rcx),%rax
jbe    11b3 <fts_sort+0x93>
mov    0x2e41(%rip),%rax
mov    (%rax),%rax
mov    %rax,-0x40(%rbp)
jmp    11c1 <fts_sort+0xa1>
mov    -0x20(%rbp),%rax
add    $0x28,%rax
mov    %eax,%eax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rcx
mov    -0x10(%rbp),%rax
mov    %rcx,(%rax)
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
mov    %rax,-0x28(%rbp)
mov    -0x18(%rbp),%rax
mov    %rax,-0x30(%rbp)
cmpq   $0x0,-0x30(%rbp)
je     1211 <fts_sort+0xf1>
mov    -0x30(%rbp),%rcx
mov    -0x28(%rbp),%rax
mov    %rax,%rdx
add    $0x8,%rdx
mov    %rdx,-0x28(%rbp)
mov    %rcx,(%rax)
mov    -0x30(%rbp),%rax
mov    (%rax),%rax
mov    %rax,-0x30(%rbp)
jmp    11e0 <fts_sort+0xc0>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rdi
mov    -0x20(%rbp),%rsi
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rcx
mov    $0x8,%edx
call   1030 <qsort@plt>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
mov    %rax,-0x28(%rbp)
mov    (%rax),%rax
mov    %rax,-0x18(%rbp)
mov    -0x20(%rbp),%rax
add    $0xffffffffffffffff,%rax
mov    %rax,-0x20(%rbp)
cmp    $0x0,%rax
je     127b <fts_sort+0x15b>
mov    -0x28(%rbp),%rax
mov    0x8(%rax),%rcx
mov    -0x28(%rbp),%rax
mov    (%rax),%rax
mov    %rcx,(%rax)
mov    -0x28(%rbp),%rax
add    $0x8,%rax
mov    %rax,-0x28(%rbp)
jmp    1242 <fts_sort+0x122>
mov    -0x28(%rbp),%rax
mov    (%rax),%rax
movq   $0x0,(%rax)
mov    -0x18(%rbp),%rax
mov    %rax,-0x8(%rbp)
mov    -0x8(%rbp),%rax
add    $0x40,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<fts_sort>:
push   %r15
push   %r14
push   %r12
push   %rbx
push   %rax
mov    %rdx,%r14
mov    %rsi,%rbx
mov    %rdi,%r15
mov    0x8(%rdi),%rdi
cmp    %rdx,(%r15)
jae    1172 <fts_sort+0x52>
lea    0x28(%r14),%r12
lea    0x0(,%r12,8),%esi
call   1040 <realloc@plt>
test   %rax,%rax
je     123f <fts_sort+0x11f>
mov    %rax,%rdi
mov    %rax,0x8(%r15)
mov    0x2e86(%rip),%rax
mov    (%rax),%rax
cmp    %rax,%r12
mov    %r12d,%ecx
cmova  %rax,%rcx
mov    %rcx,(%r15)
test   %rbx,%rbx
je     1193 <fts_sort+0x73>
nopw   0x0(%rax,%rax,1)
mov    %rbx,(%rdi)
add    $0x8,%rdi
mov    (%rbx),%rbx
test   %rbx,%rbx
jne    1180 <fts_sort+0x60>
mov    0x8(%r15),%rdi
mov    0x10(%r15),%rcx
mov    %r14,%rsi
mov    $0x8,%edx
call   1030 <qsort@plt>
mov    0x8(%r15),%rax
mov    (%rax),%rbx
mov    %rbx,%rcx
cmp    $0x1,%r14
je     1238 <fts_sort+0x118>
mov    0x8(%rax),%rcx
add    $0x8,%rax
mov    %rcx,(%rbx)
mov    %r14,%rcx
add    $0xfffffffffffffffe,%rcx
je     1235 <fts_sort+0x115>
add    $0xfffffffffffffffd,%r14
mov    %rcx,%r8
and    $0x3,%r8
je     11fa <fts_sort+0xda>
xor    %esi,%esi
nopl   0x0(%rax,%rax,1)
mov    (%rax),%rdi
mov    0x8(%rax),%rdx
add    $0x8,%rax
mov    %rdx,(%rdi)
add    $0x1,%rsi
cmp    %rsi,%r8
jne    11e0 <fts_sort+0xc0>
sub    %rsi,%rcx
cmp    $0x3,%r14
jb     1235 <fts_sort+0x115>
mov    (%rax),%rdx
mov    0x8(%rax),%rsi
mov    %rsi,(%rdx)
mov    0x8(%rax),%rdx
mov    0x10(%rax),%rsi
mov    %rsi,(%rdx)
mov    0x10(%rax),%rdx
mov    0x18(%rax),%rsi
mov    %rsi,(%rdx)
mov    0x18(%rax),%rdx
mov    0x20(%rax),%rsi
add    $0x20,%rax
mov    %rsi,(%rdx)
add    $0xfffffffffffffffc,%rcx
jne    1200 <fts_sort+0xe0>
mov    (%rax),%rcx
movq   $0x0,(%rcx)
mov    %rbx,%rax
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r14
pop    %r15
ret

LLVM IR (-O0):
%struct.TYPE_9__ = type { i64, %struct.TYPE_8__**, i64 }
%struct.TYPE_8__ = type { %struct.TYPE_8__* }
@UINT_MAX = global i64 0
define %struct.TYPE_8__* @fts_sort(%struct.TYPE_9__* %0, %struct.TYPE_8__* %1, i64 %2) {
%4 = alloca %struct.TYPE_8__*
%5 = alloca %struct.TYPE_9__*
%6 = alloca %struct.TYPE_8__*
%7 = alloca i64
%8 = alloca %struct.TYPE_8__**
%9 = alloca %struct.TYPE_8__*
%10 = alloca %struct.TYPE_8__**
store %struct.TYPE_9__* %0, %struct.TYPE_9__** %5
store %struct.TYPE_8__* %1, %struct.TYPE_8__** %6
store i64 %2, i64* %7
%11 = load i64, i64* %7
%12 = load %struct.TYPE_9__*, %struct.TYPE_9__** %5
%13 = getelementptr inbounds %struct.TYPE_9__, %struct.TYPE_9__* %12, i32 0, i32 0
%14 = load i64, i64* %13
%15 = icmp ugt i64 %11, %14
br i1 %15, label %16, label %48
16: ; preds = %3
%17 = load %struct.TYPE_9__*, %struct.TYPE_9__** %5
%18 = getelementptr inbounds %struct.TYPE_9__, %struct.TYPE_9__* %17, i32 0, i32 1
%19 = load %struct.TYPE_8__**, %struct.TYPE_8__*** %18
%20 = load i64, i64* %7
%21 = add i64 %20, 40
%22 = mul i64 8, %21
%23 = trunc i64 %22 to i32
%24 = call %struct.TYPE_8__** @realloc(%struct.TYPE_8__** %19, i32 %23)
store %struct.TYPE_8__** %24, %struct.TYPE_8__*** %10
%25 = load %struct.TYPE_8__**, %struct.TYPE_8__*** %10
%26 = icmp eq %struct.TYPE_8__** %25, null
br i1 %26, label %27, label %29
27: ; preds = %16
%28 = load %struct.TYPE_8__*, %struct.TYPE_8__** %6
store %struct.TYPE_8__* %28, %struct.TYPE_8__** %4
br label %100
29: ; preds = %16
%30 = load %struct.TYPE_8__**, %struct.TYPE_8__*** %10
%31 = load %struct.TYPE_9__*, %struct.TYPE_9__** %5
%32 = getelementptr inbounds %struct.TYPE_9__, %struct.TYPE_9__* %31, i32 0, i32 1
store %struct.TYPE_8__** %30, %struct.TYPE_8__*** %32
%33 = load i64, i64* %7
%34 = add i64 %33, 40
%35 = load i64, i64* @UINT_MAX
%36 = icmp ugt i64 %34, %35
br i1 %36, label %37, label %39
37: ; preds = %29
%38 = load i64, i64* @UINT_MAX
br label %44
39: ; preds = %29
%40 = load i64, i64* %7
%41 = add i64 %40, 40
%42 = trunc i64 %41 to i32
%43 = zext i32 %42 to i64
br label %44
44: ; preds = %39, %37
%45 = phi i64 [ %38, %37 ], [ %43, %39 ]
%46 = load %struct.TYPE_9__*, %struct.TYPE_9__** %5
%47 = getelementptr inbounds %struct.TYPE_9__, %struct.TYPE_9__* %46, i32 0, i32 0
store i64 %45, i64* %47
br label %48
48: ; preds = %44, %3
%49 = load %struct.TYPE_9__*, %struct.TYPE_9__** %5
%50 = getelementptr inbounds %struct.TYPE_9__, %struct.TYPE_9__* %49, i32 0, i32 1
%51 = load %struct.TYPE_8__**, %struct.TYPE_8__*** %50
store %struct.TYPE_8__** %51, %struct.TYPE_8__*** %8
%52 = load %struct.TYPE_8__*, %struct.TYPE_8__** %6
store %struct.TYPE_8__* %52, %struct.TYPE_8__** %9
br label %53
53: ; preds = %60, %48
%54 = load %struct.TYPE_8__*, %struct.TYPE_8__** %9
%55 = icmp ne %struct.TYPE_8__* %54, null
br i1 %55, label %56, label %64
56: ; preds = %53
%57 = load %struct.TYPE_8__*, %struct.TYPE_8__** %9
%58 = load %struct.TYPE_8__**, %struct.TYPE_8__*** %8
%59 = getelementptr inbounds %struct.TYPE_8__*, %struct.TYPE_8__** %58, i32 1
store %struct.TYPE_8__** %59, %struct.TYPE_8__*** %8
store %struct.TYPE_8__* %57, %struct.TYPE_8__** %58
br label %60
60: ; preds = %56
%61 = load %struct.TYPE_8__*, %struct.TYPE_8__** %9
%62 = getelementptr inbounds %struct.TYPE_8__, %struct.TYPE_8__* %61, i32 0, i32 0
%63 = load %struct.TYPE_8__*, %struct.TYPE_8__** %62
store %struct.TYPE_8__* %63, %struct.TYPE_8__** %9
br label %53
64: ; preds = %53
%65 = load %struct.TYPE_9__*, %struct.TYPE_9__** %5
%66 = getelementptr inbounds %struct.TYPE_9__, %struct.TYPE_9__* %65, i32 0, i32 1
%67 = load %struct.TYPE_8__**, %struct.TYPE_8__*** %66
%68 = bitcast %struct.TYPE_8__** %67 to i8*
%69 = load i64, i64* %7
%70 = load %struct.TYPE_9__*, %struct.TYPE_9__** %5
%71 = getelementptr inbounds %struct.TYPE_9__, %struct.TYPE_9__* %70, i32 0, i32 2
%72 = load i64, i64* %71
%73 = inttoptr i64 %72 to i32 (i8*, i8*)*
%74 = call i32 @qsort(i8* %68, i64 %69, i32 8, i32 (i8*, i8*)* %73)
%75 = load %struct.TYPE_9__*, %struct.TYPE_9__** %5
%76 = getelementptr inbounds %struct.TYPE_9__, %struct.TYPE_9__* %75, i32 0, i32 1
%77 = load %struct.TYPE_8__**, %struct.TYPE_8__*** %76
store %struct.TYPE_8__** %77, %struct.TYPE_8__*** %8
%78 = load %struct.TYPE_8__*, %struct.TYPE_8__** %77
store %struct.TYPE_8__* %78, %struct.TYPE_8__** %6
br label %79
79: ; preds = %91, %64
%80 = load i64, i64* %7
%81 = add i64 %80, -1
store i64 %81, i64* %7
%82 = icmp ne i64 %81, 0
br i1 %82, label %83, label %94
83: ; preds = %79
%84 = load %struct.TYPE_8__**, %struct.TYPE_8__*** %8
%85 = getelementptr inbounds %struct.TYPE_8__*, %struct.TYPE_8__** %84, i64 1
%86 = load %struct.TYPE_8__*, %struct.TYPE_8__** %85
%87 = load %struct.TYPE_8__**, %struct.TYPE_8__*** %8
%88 = getelementptr inbounds %struct.TYPE_8__*, %struct.TYPE_8__** %87, i64 0
%89 = load %struct.TYPE_8__*, %struct.TYPE_8__** %88
%90 = getelementptr inbounds %struct.TYPE_8__, %struct.TYPE_8__* %89, i32 0, i32 0
store %struct.TYPE_8__* %86, %struct.TYPE_8__** %90
br label %91
91: ; preds = %83
%92 = load %struct.TYPE_8__**, %struct.TYPE_8__*** %8
%93 = getelementptr inbounds %struct.TYPE_8__*, %struct.TYPE_8__** %92, i32 1
store %struct.TYPE_8__** %93, %struct.TYPE_8__*** %8
br label %79
94: ; preds = %79
%95 = load %struct.TYPE_8__**, %struct.TYPE_8__*** %8
%96 = getelementptr inbounds %struct.TYPE_8__*, %struct.TYPE_8__** %95, i64 0
%97 = load %struct.TYPE_8__*, %struct.TYPE_8__** %96
%98 = getelementptr inbounds %struct.TYPE_8__, %struct.TYPE_8__* %97, i32 0, i32 0
store %struct.TYPE_8__* null, %struct.TYPE_8__** %98
%99 = load %struct.TYPE_8__*, %struct.TYPE_8__** %6
store %struct.TYPE_8__* %99, %struct.TYPE_8__** %4
br label %100
100: ; preds = %94, %27
%101 = load %struct.TYPE_8__*, %struct.TYPE_8__** %4
ret %struct.TYPE_8__* %101
}

LLVM IR (-O2):
%struct.TYPE_9__ = type { i64, %struct.TYPE_8__**, i64 }
%struct.TYPE_8__ = type { %struct.TYPE_8__* }
@UINT_MAX = global i64 0
define %struct.TYPE_8__* @fts_sort(%struct.TYPE_9__* nocapture %0, %struct.TYPE_8__* %1, i64 %2) {
%4 = getelementptr inbounds %struct.TYPE_9__, %struct.TYPE_9__* %0, i64 0, i32 0
%5 = load i64, i64* %4
%6 = icmp ult i64 %5, %2
%7 = getelementptr inbounds %struct.TYPE_9__, %struct.TYPE_9__* %0, i64 0, i32 1
%8 = load %struct.TYPE_8__**, %struct.TYPE_8__*** %7
br i1 %6, label %9, label %20
9: ; preds = %3
%10 = add i64 %2, 40
%11 = trunc i64 %10 to i32
%12 = shl i32 %11, 3
%13 = tail call %struct.TYPE_8__** @realloc(%struct.TYPE_8__** %8, i32 %12)
%14 = icmp eq %struct.TYPE_8__** %13, null
br i1 %14, label %98, label %15
15: ; preds = %9
store %struct.TYPE_8__** %13, %struct.TYPE_8__*** %7
%16 = load i64, i64* @UINT_MAX
%17 = icmp ugt i64 %10, %16
%18 = and i64 %10, 4294967295
%19 = select i1 %17, i64 %16, i64 %18
store i64 %19, i64* %4
br label %20
20: ; preds = %3, %15
%21 = phi %struct.TYPE_8__** [ %13, %15 ], [ %8, %3 ]
%22 = getelementptr inbounds %struct.TYPE_9__, %struct.TYPE_9__* %0, i64 0, i32 1
%23 = icmp eq %struct.TYPE_8__* %1, null
br i1 %23, label %24, label %26
24: ; preds = %20
%25 = bitcast %struct.TYPE_8__** %21 to i8*
br label %36
26: ; preds = %20, %26
%27 = phi %struct.TYPE_8__* [ %31, %26 ], [ %1, %20 ]
%28 = phi %struct.TYPE_8__** [ %29, %26 ], [ %21, %20 ]
%29 = getelementptr inbounds %struct.TYPE_8__*, %struct.TYPE_8__** %28, i64 1
store %struct.TYPE_8__* %27, %struct.TYPE_8__** %28
%30 = getelementptr inbounds %struct.TYPE_8__, %struct.TYPE_8__* %27, i64 0, i32 0
%31 = load %struct.TYPE_8__*, %struct.TYPE_8__** %30
%32 = icmp eq %struct.TYPE_8__* %31, null
br i1 %32, label %33, label %26
33: ; preds = %26
%34 = bitcast %struct.TYPE_8__*** %22 to i8**
%35 = load i8*, i8** %34
br label %36
36: ; preds = %24, %33
%37 = phi i8* [ %35, %33 ], [ %25, %24 ]
%38 = getelementptr inbounds %struct.TYPE_9__, %struct.TYPE_9__* %0, i64 0, i32 2
%39 = load i64, i64* %38
%40 = inttoptr i64 %39 to i32 (i8*, i8*)*
%41 = tail call i32 @qsort(i8* %37, i64 %2, i32 8, i32 (i8*, i8*)* %40)
%42 = load %struct.TYPE_8__**, %struct.TYPE_8__*** %22
%43 = load %struct.TYPE_8__*, %struct.TYPE_8__** %42
%44 = icmp eq i64 %2, 1
br i1 %44, label %95, label %45
45: ; preds = %36
%46 = getelementptr inbounds %struct.TYPE_8__*, %struct.TYPE_8__** %42, i64 1
%47 = load %struct.TYPE_8__*, %struct.TYPE_8__** %46
%48 = getelementptr inbounds %struct.TYPE_8__, %struct.TYPE_8__* %43, i64 0, i32 0
store %struct.TYPE_8__* %47, %struct.TYPE_8__** %48
%49 = add i64 %2, -2
%50 = icmp eq i64 %49, 0
br i1 %50, label %92, label %51
51: ; preds = %45
%52 = add i64 %2, -3
%53 = and i64 %49, 3
%54 = icmp eq i64 %53, 0
br i1 %54, label %66, label %55
55: ; preds = %51, %55
%56 = phi i64 [ %63, %55 ], [ %49, %51 ]
%57 = phi %struct.TYPE_8__** [ %60, %55 ], [ %46, %51 ]
%58 = phi i64 [ %64, %55 ], [ 0, %51 ]
%59 = load %struct.TYPE_8__*, %struct.TYPE_8__** %57
%60 = getelementptr inbounds %struct.TYPE_8__*, %struct.TYPE_8__** %57, i64 1
%61 = load %struct.TYPE_8__*, %struct.TYPE_8__** %60
%62 = getelementptr inbounds %struct.TYPE_8__, %struct.TYPE_8__* %59, i64 0, i32 0
store %struct.TYPE_8__* %61, %struct.TYPE_8__** %62
%63 = add i64 %56, -1
%64 = add i64 %58, 1
%65 = icmp eq i64 %64, %53
br i1 %65, label %66, label %55
66: ; preds = %55, %51
%67 = phi %struct.TYPE_8__** [ undef, %51 ], [ %60, %55 ]
%68 = phi i64 [ %49, %51 ], [ %63, %55 ]
%69 = phi %struct.TYPE_8__** [ %46, %51 ], [ %60, %55 ]
%70 = icmp ult i64 %52, 3
br i1 %70, label %92, label %71
71: ; preds = %66, %71
%72 = phi i64 [ %90, %71 ], [ %68, %66 ]
%73 = phi %struct.TYPE_8__** [ %87, %71 ], [ %69, %66 ]
%74 = load %struct.TYPE_8__*, %struct.TYPE_8__** %73
%75 = getelementptr inbounds %struct.TYPE_8__*, %struct.TYPE_8__** %73, i64 1
%76 = load %struct.TYPE_8__*, %struct.TYPE_8__** %75
%77 = getelementptr inbounds %struct.TYPE_8__, %struct.TYPE_8__* %74, i64 0, i32 0
store %struct.TYPE_8__* %76, %struct.TYPE_8__** %77
%78 = load %struct.TYPE_8__*, %struct.TYPE_8__** %75
%79 = getelementptr inbounds %struct.TYPE_8__*, %struct.TYPE_8__** %73, i64 2
%80 = load %struct.TYPE_8__*, %struct.TYPE_8__** %79
%81 = getelementptr inbounds %struct.TYPE_8__, %struct.TYPE_8__* %78, i64 0, i32 0
store %struct.TYPE_8__* %80, %struct.TYPE_8__** %81
%82 = load %struct.TYPE_8__*, %struct.TYPE_8__** %79
%83 = getelementptr inbounds %struct.TYPE_8__*, %struct.TYPE_8__** %73, i64 3
%84 = load %struct.TYPE_8__*, %struct.TYPE_8__** %83
%85 = getelementptr inbounds %struct.TYPE_8__, %struct.TYPE_8__* %82, i64 0, i32 0
store %struct.TYPE_8__* %84, %struct.TYPE_8__** %85
%86 = load %struct.TYPE_8__*, %struct.TYPE_8__** %83
%87 = getelementptr inbounds %struct.TYPE_8__*, %struct.TYPE_8__** %73, i64 4
%88 = load %struct.TYPE_8__*, %struct.TYPE_8__** %87
%89 = getelementptr inbounds %struct.TYPE_8__, %struct.TYPE_8__* %86, i64 0, i32 0
store %struct.TYPE_8__* %88, %struct.TYPE_8__** %89
%90 = add i64 %72, -4
%91 = icmp eq i64 %90, 0
br i1 %91, label %92, label %71
92: ; preds = %66, %71, %45
%93 = phi %struct.TYPE_8__** [ %46, %45 ], [ %67, %66 ], [ %87, %71 ]
%94 = load %struct.TYPE_8__*, %struct.TYPE_8__** %93
br label %95
95: ; preds = %92, %36
%96 = phi %struct.TYPE_8__* [ %43, %36 ], [ %94, %92 ]
%97 = getelementptr inbounds %struct.TYPE_8__, %struct.TYPE_8__* %96, i64 0, i32 0
store %struct.TYPE_8__* null, %struct.TYPE_8__** %97
br label %98
98: ; preds = %9, %95
%99 = phi %struct.TYPE_8__* [ %43, %95 ], [ %1, %9 ]
ret %struct.TYPE_8__* %99
}