digraph "CFG for 'd4d_init' function" {
	label="CFG for 'd4d_init' function";

	Node0x2204ed0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f7bca170",label="{%2:\l  %3 = alloca i32, align 4\l  %4 = alloca i8* (i32)*, align 8\l  %5 = alloca void (i8*)*, align 8\l  %6 = alloca %struct.splay_tree_s*, align 8\l  %7 = alloca i64, align 8\l  %8 = alloca %struct.splay_tree_node_s*, align 8\l  store i8* (i32)* %0, i8* (i32)** %4, align 8\l  store void (i8*)* %1, void (i8*)** %5, align 8\l  %9 = load i8* (i32)*, i8* (i32)** %4, align 8\l  %10 = icmp ne i8* (i32)* %9, null\l  br i1 %10, label %12, label %11\l|{<s0>T|<s1>F}}"];
	Node0x2204ed0:s0 -> Node0x2204ff0;
	Node0x2204ed0:s1 -> Node0x2204fa0;
	Node0x2204fa0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%11:\l11:                                               \l  store i32 -1, i32* %3, align 4\l  br label %49\l}"];
	Node0x2204fa0 -> Node0x2205360;
	Node0x2204ff0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#efcebd70",label="{%12:\l12:                                               \l  %13 = load void (i8*)*, void (i8*)** %5, align 8\l  %14 = icmp ne void (i8*)* %13, null\l  br i1 %14, label %16, label %15\l|{<s0>T|<s1>F}}"];
	Node0x2204ff0:s0 -> Node0x2205090;
	Node0x2204ff0:s1 -> Node0x2205040;
	Node0x2205040 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#c5d6f270",label="{%15:\l15:                                               \l  store i32 -1, i32* %3, align 4\l  br label %49\l}"];
	Node0x2205040 -> Node0x2205360;
	Node0x2205090 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%16:\l16:                                               \l  %17 = load i8* (i32)*, i8* (i32)** %4, align 8\l  %18 = call i8* %17(i32 16)\l  %19 = bitcast i8* %18 to %struct.d4d__maing*\l  store %struct.d4d__maing* %19, %struct.d4d__maing** @d4d__main, align 8\l  %20 = load %struct.d4d__maing*, %struct.d4d__maing** @d4d__main, align 8\l  %21 = icmp ne %struct.d4d__maing* %20, null\l  br i1 %21, label %23, label %22\l|{<s0>T|<s1>F}}"];
	Node0x2205090:s0 -> Node0x2205130;
	Node0x2205090:s1 -> Node0x22050e0;
	Node0x22050e0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#aec9fc70",label="{%22:\l22:                                               \l  store i32 -2, i32* %3, align 4\l  br label %49\l}"];
	Node0x22050e0 -> Node0x2205360;
	Node0x2205130 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#c7d7f070",label="{%23:\l23:                                               \l  %24 = load %struct.d4d__maing*, %struct.d4d__maing** @d4d__main, align 8\l  %25 = bitcast %struct.d4d__maing* %24 to i8*\l  call void @d4d__memzero(i8* %25, i32 16)\l  %26 = load i8* (i32)*, i8* (i32)** %4, align 8\l  %27 = load %struct.d4d__maing*, %struct.d4d__maing** @d4d__main, align 8\l  %28 = getelementptr inbounds %struct.d4d__maing, %struct.d4d__maing* %27,\l... i32 0, i32 0\l  store i8* (i32)* %26, i8* (i32)** %28, align 8\l  %29 = load void (i8*)*, void (i8*)** %5, align 8\l  %30 = load %struct.d4d__maing*, %struct.d4d__maing** @d4d__main, align 8\l  %31 = getelementptr inbounds %struct.d4d__maing, %struct.d4d__maing* %30,\l... i32 0, i32 1\l  store void (i8*)* %29, void (i8*)** %31, align 8\l  store %struct.splay_tree_s* null, %struct.splay_tree_s** %6, align 8\l  store i64 0, i64* %7, align 8\l  store %struct.splay_tree_node_s* null, %struct.splay_tree_node_s** %8, align\l... 8\l  %32 = call %struct.splay_tree_s* @splay_tree_new(i32 (i64, i64)*\l... @splay_tree_compare_ints, void (i64)* null, void (i64)* null)\l  store %struct.splay_tree_s* %32, %struct.splay_tree_s** %6, align 8\l  store i64 0, i64* %7, align 8\l  br label %33\l}"];
	Node0x2205130 -> Node0x2205180;
	Node0x2205180 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%33:\l33:                                               \l  %34 = load i64, i64* %7, align 8\l  %35 = icmp ult i64 %34, 10\l  br i1 %35, label %36, label %47\l|{<s0>T|<s1>F}}"];
	Node0x2205180:s0 -> Node0x22051d0;
	Node0x2205180:s1 -> Node0x2205310;
	Node0x22051d0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%36:\l36:                                               \l  %37 = load %struct.splay_tree_s*, %struct.splay_tree_s** %6, align 8\l  %38 = load i64, i64* %7, align 8\l  %39 = call %struct.splay_tree_node_s*\l... @d4dag___splay_tree_insert(%struct.splay_tree_s* %37, i64 %38, i64 0)\l  store %struct.splay_tree_node_s* %39, %struct.splay_tree_node_s** %8, align 8\l  %40 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %8, align\l... 8\l  %41 = icmp ne %struct.splay_tree_node_s* %40, null\l  br i1 %41, label %43, label %42\l|{<s0>T|<s1>F}}"];
	Node0x22051d0:s0 -> Node0x2205270;
	Node0x22051d0:s1 -> Node0x2205220;
	Node0x2205220 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e97a5f70",label="{%42:\l42:                                               \l  br label %43\l}"];
	Node0x2205220 -> Node0x2205270;
	Node0x2205270 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%43:\l43:                                               \l  br label %44\l}"];
	Node0x2205270 -> Node0x22052c0;
	Node0x22052c0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%44:\l44:                                               \l  %45 = load i64, i64* %7, align 8\l  %46 = add i64 %45, 1\l  store i64 %46, i64* %7, align 8\l  br label %33\l}"];
	Node0x22052c0 -> Node0x2205180;
	Node0x2205310 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#c7d7f070",label="{%47:\l47:                                               \l  %48 = load %struct.splay_tree_s*, %struct.splay_tree_s** %6, align 8\l  call void @d4dag___splay_tree_delete(%struct.splay_tree_s* %48)\l  store i32 0, i32* %3, align 4\l  br label %49\l}"];
	Node0x2205310 -> Node0x2205360;
	Node0x2205360 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f7bca170",label="{%49:\l49:                                               \l  %50 = load i32, i32* %3, align 4\l  ret i32 %50\l}"];
}
