Given the following C code and unoptimized assembly code, your task is to generate highly optimized x86-64 assembly code.
C Code:

```c
#include <stdio.h>

typedef struct node_t_tag {
	struct node_t_tag *left;
	struct node_t_tag *right;
} node_t;

node_t node_pool[1000];
int node_pool_pos=0;

node_t *create_node(void) {
	return &node_pool[node_pool_pos++];
}

node_t *create_tree_i(const char **tree_str) {
	node_t *node=create_node();
	(*tree_str)++; /* '(' no hazu */
	if(*(*tree_str)=='(') {
		node->left=create_tree_i(tree_str);
	} else {
		node->left=NULL;
	}
	(*tree_str)++; /* ',' no hazu */
	if(*(*tree_str)=='(') {
		node->right=create_tree_i(tree_str);
	} else {
		node->right=NULL;
	}
	(*tree_str)++; /* ')' no hazu */
	return node;
}

node_t *create_tree(const char *tree_str) {
	return create_tree_i(&tree_str);
}

node_t *calc(const node_t *tree1,const node_t *tree2,int is_union) {
	node_t *node;
	if(tree1==NULL && tree2==NULL)return NULL;
	if(!is_union && (tree1==NULL || tree2==NULL))return NULL;
	node=create_node();
	node->left=calc(
		tree1==NULL?NULL:tree1->left,tree2==NULL?NULL:tree2->left,is_union);
	node->right=calc(
		tree1==NULL?NULL:tree1->right,tree2==NULL?NULL:tree2->right,is_union);
	return node;
}

void display_tree(const node_t *node) {
	putchar('(');
	if(node->left!=NULL)display_tree(node->left);
	putchar(',');
	if(node->right!=NULL)display_tree(node->right);
	putchar(')');
}

int main(void) {
	char query[32];
	char A[1024];
	char B[1024];
	while(node_pool_pos=0,scanf("%s%s%s",query,A,B)==3) {
		node_t *tree1=create_tree(A);
		node_t *tree2=create_tree(B);
		node_t *res=calc(tree1,tree2,query[0]=='u');
		display_tree(res);
		putchar('\n');
	}
	return 0;
}```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.globl	node_pool
	.bss
	.align 32
	.type	node_pool, @object
	.size	node_pool, 16000
node_pool:
	.zero	16000
	.globl	node_pool_pos
	.align 4
	.type	node_pool_pos, @object
	.size	node_pool_pos, 4
node_pool_pos:
	.zero	4
	.text
	.globl	create_node
	.type	create_node, @function
create_node:
.LFB0:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movl	node_pool_pos(%rip), %eax
	leal	1(%rax), %edx
	movl	%edx, node_pool_pos(%rip)
	cltq
	salq	$4, %rax
	movq	%rax, %rdx
	leaq	node_pool(%rip), %rax
	addq	%rdx, %rax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	create_node, .-create_node
	.globl	create_tree_i
	.type	create_tree_i, @function
create_tree_i:
.LFB1:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$32, %rsp
	movq	%rdi, -24(%rbp)
	call	create_node
	movq	%rax, -8(%rbp)
	movq	-24(%rbp), %rax
	movq	(%rax), %rax
	leaq	1(%rax), %rdx
	movq	-24(%rbp), %rax
	movq	%rdx, (%rax)
	movq	-24(%rbp), %rax
	movq	(%rax), %rax
	movzbl	(%rax), %eax
	cmpb	$40, %al
	jne	.L4
	movq	-24(%rbp), %rax
	movq	%rax, %rdi
	call	create_tree_i
	movq	-8(%rbp), %rdx
	movq	%rax, (%rdx)
	jmp	.L5
.L4:
	movq	-8(%rbp), %rax
	movq	$0, (%rax)
.L5:
	movq	-24(%rbp), %rax
	movq	(%rax), %rax
	leaq	1(%rax), %rdx
	movq	-24(%rbp), %rax
	movq	%rdx, (%rax)
	movq	-24(%rbp), %rax
	movq	(%rax), %rax
	movzbl	(%rax), %eax
	cmpb	$40, %al
	jne	.L6
	movq	-24(%rbp), %rax
	movq	%rax, %rdi
	call	create_tree_i
	movq	-8(%rbp), %rdx
	movq	%rax, 8(%rdx)
	jmp	.L7
.L6:
	movq	-8(%rbp), %rax
	movq	$0, 8(%rax)
.L7:
	movq	-24(%rbp), %rax
	movq	(%rax), %rax
	leaq	1(%rax), %rdx
	movq	-24(%rbp), %rax
	movq	%rdx, (%rax)
	movq	-8(%rbp), %rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	create_tree_i, .-create_tree_i
	.globl	create_tree
	.type	create_tree, @function
create_tree:
.LFB2:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$16, %rsp
	movq	%rdi, -8(%rbp)
	leaq	-8(%rbp), %rax
	movq	%rax, %rdi
	call	create_tree_i
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE2:
	.size	create_tree, .-create_tree
	.globl	calc
	.type	calc, @function
calc:
.LFB3:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$48, %rsp
	movq	%rdi, -24(%rbp)
	movq	%rsi, -32(%rbp)
	movl	%edx, -36(%rbp)
	cmpq	$0, -24(%rbp)
	jne	.L12
	cmpq	$0, -32(%rbp)
	jne	.L12
	movl	$0, %eax
	jmp	.L13
.L12:
	cmpl	$0, -36(%rbp)
	jne	.L14
	cmpq	$0, -24(%rbp)
	je	.L15
	cmpq	$0, -32(%rbp)
	jne	.L14
.L15:
	movl	$0, %eax
	jmp	.L13
.L14:
	call	create_node
	movq	%rax, -8(%rbp)
	cmpq	$0, -32(%rbp)
	je	.L16
	movq	-32(%rbp), %rax
	movq	(%rax), %rcx
	jmp	.L17
.L16:
	movl	$0, %ecx
.L17:
	cmpq	$0, -24(%rbp)
	je	.L18
	movq	-24(%rbp), %rax
	movq	(%rax), %rax
	jmp	.L19
.L18:
	movl	$0, %eax
.L19:
	movl	-36(%rbp), %edx
	movq	%rcx, %rsi
	movq	%rax, %rdi
	call	calc
	movq	-8(%rbp), %rdx
	movq	%rax, (%rdx)
	cmpq	$0, -32(%rbp)
	je	.L20
	movq	-32(%rbp), %rax
	movq	8(%rax), %rcx
	jmp	.L21
.L20:
	movl	$0, %ecx
.L21:
	cmpq	$0, -24(%rbp)
	je	.L22
	movq	-24(%rbp), %rax
	movq	8(%rax), %rax
	jmp	.L23
.L22:
	movl	$0, %eax
.L23:
	movl	-36(%rbp), %edx
	movq	%rcx, %rsi
	movq	%rax, %rdi
	call	calc
	movq	-8(%rbp), %rdx
	movq	%rax, 8(%rdx)
	movq	-8(%rbp), %rax
.L13:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE3:
	.size	calc, .-calc
	.globl	display_tree
	.type	display_tree, @function
display_tree:
.LFB4:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$16, %rsp
	movq	%rdi, -8(%rbp)
	movl	$40, %edi
	call	putchar@PLT
	movq	-8(%rbp), %rax
	movq	(%rax), %rax
	testq	%rax, %rax
	je	.L25
	movq	-8(%rbp), %rax
	movq	(%rax), %rax
	movq	%rax, %rdi
	call	display_tree
.L25:
	movl	$44, %edi
	call	putchar@PLT
	movq	-8(%rbp), %rax
	movq	8(%rax), %rax
	testq	%rax, %rax
	je	.L26
	movq	-8(%rbp), %rax
	movq	8(%rax), %rax
	movq	%rax, %rdi
	call	display_tree
.L26:
	movl	$41, %edi
	call	putchar@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE4:
	.size	display_tree, .-display_tree
	.section	.rodata
.LC0:
	.string	"%s%s%s"
	.text
	.globl	main
	.type	main, @function
main:
.LFB5:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$2128, %rsp
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	jmp	.L28
.L29:
	leaq	-2064(%rbp), %rax
	movq	%rax, %rdi
	call	create_tree
	movq	%rax, -2120(%rbp)
	leaq	-1040(%rbp), %rax
	movq	%rax, %rdi
	call	create_tree
	movq	%rax, -2112(%rbp)
	movzbl	-2096(%rbp), %eax
	cmpb	$117, %al
	sete	%al
	movzbl	%al, %edx
	movq	-2112(%rbp), %rcx
	movq	-2120(%rbp), %rax
	movq	%rcx, %rsi
	movq	%rax, %rdi
	call	calc
	movq	%rax, -2104(%rbp)
	movq	-2104(%rbp), %rax
	movq	%rax, %rdi
	call	display_tree
	movl	$10, %edi
	call	putchar@PLT
.L28:
	movl	$0, node_pool_pos(%rip)
	leaq	-1040(%rbp), %rcx
	leaq	-2064(%rbp), %rdx
	leaq	-2096(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	cmpl	$3, %eax
	je	.L29
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L31
	call	__stack_chk_fail@PLT
.L31:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE5:
	.size	main, .-main
	.ident	"GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	1f - 0f
	.long	4f - 1f
	.long	5
0:
	.string	"GNU"
1:
	.align 8
	.long	0xc0000002
	.long	3f - 2f
2:
	.long	0x3
3:
	.align 8
4:
```

Only output the optimized assembly code. Do not include any other text. Do not write any comments in the assembly code. Wrap the assembly code in ```assembly``` tags.
user
	.file	"temp.c"
	.text
	.p2align 4
	.globl	create_node
	.type	create_node, @function
create_node:
.LFB23:
	.cfi_startproc
	endbr64
	movslq	node_pool_pos(%rip), %rax
	leal	1(%rax), %edx
	salq	$4, %rax
	movl	%edx, node_pool_pos(%rip)
	leaq	node_pool(%rip), %rdx
	addq	%rdx, %rax
	ret
	.cfi_endproc
.LFE23:
	.size	create_node, .-create_node
	.p2align 4
	.globl	create_tree_i
	.type	create_tree_i, @function
create_tree_i:
.LFB24:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	xorl	%r15d, %r15d
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	leaq	node_pool(%rip), %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	subq	$16, %rsp
	.cfi_def_cfa_offset 64
	movslq	node_pool_pos(%rip), %rbp
	movq	(%rdi), %rcx
	leal	1(%rbp), %r13d
	movq	%rbp, %rsi
	leaq	1(%rcx), %rdx
	movl	%r13d, node_pool_pos(%rip)
	salq	$4, %rsi
	movq	%rdx, (%rdi)
	cmpb	$40, 1(%rcx)
	leaq	(%r12,%rsi), %r14
	je	.L18
.L4:
	movq	%rbp, %rax
	xorl	%r13d, %r13d
	salq	$4, %rax
	movq	%r15, (%r12,%rax)
	leaq	1(%rdx), %rax
	movq	%rax, (%rdi)
	cmpb	$40, 1(%rdx)
	je	.L19
.L9:
	salq	$4, %rbp
	addq	$1, %rax
	movq	%r13, 8(%r12,%rbp)
	movq	%rax, (%rdi)
	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	movq	%r14, %rax
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L18:
	.cfi_restore_state
	movq	%rbp, %rax
	leaq	16(%r12,%rsi), %r15
	addl	$2, %eax
	movl	%eax, node_pool_pos(%rip)
	leaq	2(%rcx), %rax
	movq	%rax, (%rdi)
	cmpb	$40, 2(%rcx)
	je	.L20
	movslq	%r13d, %r13
	movq	%r13, %rdx
	salq	$4, %rdx
	movq	$0, (%r12,%rdx)
.L6:
	leaq	1(%rax), %rdx
	movq	%rdx, (%rdi)
	cmpb	$40, 1(%rax)
	je	.L21
	salq	$4, %r13
	movq	$0, 8(%r12,%r13)
.L8:
	addq	$1, %rdx
	jmp	.L4
	.p2align 4,,10
	.p2align 3
.L19:
	movslq	node_pool_pos(%rip), %r15
	leaq	2(%rdx), %rcx
	movq	%r15, %r13
	leal	1(%r15), %eax
	salq	$4, %r13
	movl	%eax, node_pool_pos(%rip)
	addq	%r12, %r13
	movq	%rcx, (%rdi)
	cmpb	$40, 2(%rdx)
	je	.L22
	movq	$0, 0(%r13)
.L11:
	leaq	1(%rcx), %rax
	movq	%rax, (%rdi)
	cmpb	$40, 1(%rcx)
	je	.L23
	salq	$4, %r15
	movq	$0, 8(%r12,%r15)
.L13:
	addq	$1, %rax
	jmp	.L9
	.p2align 4,,10
	.p2align 3
.L22:
	movq	%rdi, 8(%rsp)
	call	create_tree_i
	movq	8(%rsp), %rdi
	movq	%rax, 0(%r13)
	movq	(%rdi), %rcx
	jmp	.L11
	.p2align 4,,10
	.p2align 3
.L20:
	movq	%rdi, 8(%rsp)
	movslq	%r13d, %r13
	call	create_tree_i
	movq	8(%rsp), %rdi
	movq	%rax, %r8
	movq	%r13, %rax
	salq	$4, %rax
	movq	%r8, (%r12,%rax)
	movq	(%rdi), %rax
	jmp	.L6
	.p2align 4,,10
	.p2align 3
.L21:
	movq	%rdi, 8(%rsp)
	salq	$4, %r13
	call	create_tree_i
	movq	8(%rsp), %rdi
	movq	%rax, 8(%r12,%r13)
	movq	(%rdi), %rdx
	jmp	.L8
	.p2align 4,,10
	.p2align 3
.L23:
	movq	%rdi, 8(%rsp)
	salq	$4, %r15
	call	create_tree_i
	movq	8(%rsp), %rdi
	movq	%rax, 8(%r12,%r15)
	movq	(%rdi), %rax
	jmp	.L13
	.cfi_endproc
.LFE24:
	.size	create_tree_i, .-create_tree_i
	.p2align 4
	.globl	create_tree
	.type	create_tree, @function
create_tree:
.LFB25:
	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	leaq	1(%rdi), %rax
	leaq	node_pool(%rip), %r10
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	xorl	%ebx, %ebx
	subq	$24, %rsp
	.cfi_def_cfa_offset 64
	movslq	node_pool_pos(%rip), %r9
	movq	%rax, 8(%rsp)
	leal	1(%r9), %r11d
	movq	%r9, %rcx
	salq	$4, %rcx
	movl	%r11d, node_pool_pos(%rip)
	cmpb	$40, 1(%rdi)
	leaq	(%r10,%rcx), %r12
	je	.L55
.L25:
	movq	%r9, %rdx
	xorl	%r11d, %r11d
	salq	$4, %rdx
	movq	%rbx, (%r10,%rdx)
	leaq	1(%rax), %rdx
	movq	%rdx, 8(%rsp)
	cmpb	$40, 1(%rax)
	je	.L56
.L36:
	salq	$4, %r9
	movq	%r12, %rax
	movq	%r11, 8(%r10,%r9)
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L55:
	.cfi_restore_state
	leal	2(%r9), %ebp
	leaq	2(%rdi), %rsi
	xorl	%r13d, %r13d
	movq	%r9, %rdx
	movl	%ebp, node_pool_pos(%rip)
	leaq	16(%r10,%rcx), %rbx
	movq	%rsi, 8(%rsp)
	cmpb	$40, 2(%rdi)
	je	.L57
.L26:
	movslq	%r11d, %r11
	xorl	%ebp, %ebp
	movq	%r11, %rax
	salq	$4, %rax
	movq	%r13, (%r10,%rax)
	leaq	1(%rsi), %rax
	movq	%rax, 8(%rsp)
	cmpb	$40, 1(%rsi)
	je	.L58
.L31:
	salq	$4, %r11
	addq	$1, %rax
	movq	%rbp, 8(%r10,%r11)
	jmp	.L25
	.p2align 4,,10
	.p2align 3
.L56:
	movslq	node_pool_pos(%rip), %rbx
	leaq	2(%rax), %rdx
	xorl	%r13d, %r13d
	movq	%rdx, 8(%rsp)
	leal	1(%rbx), %ebp
	movq	%rbx, %rsi
	movq	%rbx, %rcx
	salq	$4, %rsi
	movl	%ebp, node_pool_pos(%rip)
	cmpb	$40, 2(%rax)
	leaq	(%r10,%rsi), %r11
	je	.L59
.L37:
	movq	%rbx, %rax
	xorl	%ebp, %ebp
	salq	$4, %rax
	movq	%r13, (%r10,%rax)
	leaq	1(%rdx), %rax
	movq	%rax, 8(%rsp)
	cmpb	$40, 1(%rdx)
	je	.L60
.L42:
	movq	%rbx, %rax
	salq	$4, %rax
	movq	%rbp, 8(%r10,%rax)
	jmp	.L36
	.p2align 4,,10
	.p2align 3
.L60:
	movslq	node_pool_pos(%rip), %r13
	leal	1(%r13), %ecx
	movq	%r13, %rax
	movl	%ecx, node_pool_pos(%rip)
	leaq	2(%rdx), %rcx
	salq	$4, %rax
	movq	%rcx, 8(%rsp)
	cmpb	$40, 2(%rdx)
	leaq	(%r10,%rax), %rbp
	je	.L61
	movq	$0, 0(%rbp)
.L44:
	leaq	1(%rcx), %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	cmpb	$40, 1(%rcx)
	je	.L62
.L45:
	movq	%r13, %rdx
	salq	$4, %rdx
	movq	%rax, 8(%r10,%rdx)
	jmp	.L42
	.p2align 4,,10
	.p2align 3
.L57:
	addl	$3, %edx
	leaq	3(%rdi), %rax
	leaq	32(%r10,%rcx), %r13
	movl	%edx, node_pool_pos(%rip)
	movq	%rax, 8(%rsp)
	cmpb	$40, 3(%rdi)
	je	.L63
	movslq	%ebp, %rbp
	movq	%rbp, %rdx
	salq	$4, %rdx
	movq	$0, (%r10,%rdx)
.L28:
	leaq	1(%rax), %rsi
	movq	%rsi, 8(%rsp)
	cmpb	$40, 1(%rax)
	je	.L64
	salq	$4, %rbp
	movq	$0, 8(%r10,%rbp)
.L30:
	addq	$1, %rsi
	jmp	.L26
	.p2align 4,,10
	.p2align 3
.L58:
	movslq	node_pool_pos(%rip), %r13
	leaq	2(%rsi), %rcx
	movq	%rcx, 8(%rsp)
	movq	%r13, %rbp
	leal	1(%r13), %eax
	salq	$4, %rbp
	movl	%eax, node_pool_pos(%rip)
	addq	%r10, %rbp
	cmpb	$40, 2(%rsi)
	je	.L65
	movq	$0, 0(%rbp)
.L33:
	leaq	1(%rcx), %rax
	movq	%rax, 8(%rsp)
	cmpb	$40, 1(%rcx)
	je	.L66
	movq	%r13, %rdx
	salq	$4, %rdx
	movq	$0, 8(%r10,%rdx)
.L35:
	addq	$1, %rax
	jmp	.L31
	.p2align 4,,10
	.p2align 3
.L59:
	addl	$2, %ecx
	leaq	16(%r10,%rsi), %r13
	movl	%ecx, node_pool_pos(%rip)
	leaq	3(%rax), %rcx
	movq	%rcx, 8(%rsp)
	cmpb	$40, 3(%rax)
	je	.L67
	movslq	%ebp, %rbp
	movq	%rbp, %rax
	salq	$4, %rax
	movq	$0, (%r10,%rax)
.L39:
	leaq	1(%rcx), %rdx
	movq	%rdx, 8(%rsp)
	cmpb	$40, 1(%rcx)
	je	.L68
	salq	$4, %rbp
	movq	$0, 8(%r10,%rbp)
.L41:
	addq	$1, %rdx
	jmp	.L37
.L66:
	leaq	8(%rsp), %rdi
	call	create_tree_i
	movq	%r13, %rdx
	salq	$4, %rdx
	movq	%rax, 8(%r10,%rdx)
	movq	8(%rsp), %rax
	jmp	.L35
.L65:
	leaq	8(%rsp), %rdi
	call	create_tree_i
	movq	8(%rsp), %rcx
	movq	%rax, 0(%rbp)
	jmp	.L33
.L68:
	leaq	8(%rsp), %rdi
	salq	$4, %rbp
	call	create_tree_i
	movq	8(%rsp), %rdx
	movq	%rax, 8(%r10,%rbp)
	jmp	.L41
.L67:
	leaq	8(%rsp), %rdi
	movslq	%ebp, %rbp
	call	create_tree_i
	movq	8(%rsp), %rcx
	movq	%rax, %r8
	movq	%rbp, %rax
	salq	$4, %rax
	movq	%r8, (%r10,%rax)
	jmp	.L39
.L62:
	leaq	8(%rsp), %rdi
	call	create_tree_i
	jmp	.L45
.L61:
	leaq	8(%rsp), %rdi
	call	create_tree_i
	movq	8(%rsp), %rcx
	movq	%rax, 0(%rbp)
	jmp	.L44
.L64:
	leaq	8(%rsp), %rdi
	salq	$4, %rbp
	call	create_tree_i
	movq	8(%rsp), %rsi
	movq	%rax, 8(%r10,%rbp)
	jmp	.L30
.L63:
	leaq	8(%rsp), %rdi
	movslq	%ebp, %rbp
	call	create_tree_i
	movq	%rax, %r8
	movq	%rbp, %rax
	salq	$4, %rax
	movq	%r8, (%r10,%rax)
	movq	8(%rsp), %rax
	jmp	.L28
	.cfi_endproc
.LFE25:
	.size	create_tree, .-create_tree
	.p2align 4
	.globl	calc
	.type	calc, @function
calc:
.LFB26:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %rax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$104, %rsp
	.cfi_def_cfa_offset 160
	orq	%rsi, %rax
	movq	%rax, (%rsp)
	je	.L69
	movq	%rdi, %rbp
	movq	%rsi, %r8
	testl	%edx, %edx
	jne	.L71
	testq	%rdi, %rdi
	je	.L233
	testq	%rsi, %rsi
	je	.L233
	movslq	node_pool_pos(%rip), %rax
	movq	(%rsi), %r10
	leaq	node_pool(%rip), %rbx
	leal	1(%rax), %ecx
	movq	%rax, 8(%rsp)
	salq	$4, %rax
	movl	%ecx, node_pool_pos(%rip)
	addq	%rbx, %rax
	testq	%r10, %r10
	movq	%rax, (%rsp)
	sete	%al
.L74:
	movq	0(%rbp), %r9
	movq	%r10, %rdi
	testq	%r9, %r9
	sete	%sil
	orq	%r9, %rdi
	je	.L334
.L231:
	testl	%edx, %edx
	jne	.L76
	testb	%al, %al
	jne	.L234
	testb	%sil, %sil
	jne	.L234
	movslq	%ecx, %rdi
	leal	1(%rcx), %eax
	movq	%rdi, %rcx
	movl	%eax, node_pool_pos(%rip)
	salq	$4, %rcx
	movq	%rdi, 16(%rsp)
	leaq	(%rbx,%rcx), %rsi
	movq	%rsi, 24(%rsp)
.L174:
	movq	(%r10), %r15
	testq	%r15, %r15
	sete	%cl
	testq	%r9, %r9
	je	.L80
.L202:
	movq	(%r9), %r14
	testq	%r14, %r14
	movq	%r14, %rdi
	sete	%sil
	orq	%r15, %rdi
	je	.L81
	testl	%edx, %edx
	jne	.L82
	testb	%cl, %cl
	jne	.L235
	testb	%sil, %sil
	jne	.L235
	leal	1(%rax), %r12d
	cltq
	movq	%rax, 32(%rsp)
	salq	$4, %rax
	addq	%rbx, %rax
	movl	%r12d, node_pool_pos(%rip)
	movq	%rax, 40(%rsp)
.L173:
	movq	(%r15), %r11
	testq	%r11, %r11
	sete	%al
	testq	%r14, %r14
	je	.L86
.L200:
	movq	(%r14), %rcx
	testq	%rcx, %rcx
	movq	%rcx, %rdi
	sete	%sil
	orq	%r11, %rdi
	je	.L87
	testl	%edx, %edx
	jne	.L88
	testb	%al, %al
	jne	.L236
	testb	%sil, %sil
	jne	.L236
	leal	1(%r12), %eax
	movslq	%r12d, %r12
	movq	%r12, %r13
	movl	%eax, node_pool_pos(%rip)
	salq	$4, %r13
	addq	%rbx, %r13
.L172:
	movq	%r8, 88(%rsp)
	movq	(%r11), %rsi
	movq	%r9, 80(%rsp)
	movq	%r10, 72(%rsp)
	movq	%r11, 64(%rsp)
	testq	%rcx, %rcx
	je	.L92
	movq	(%rcx), %rdi
	movl	%edx, 56(%rsp)
	movq	%rcx, 48(%rsp)
	call	calc
	movq	64(%rsp), %r11
	movq	88(%rsp), %r8
	movq	%rax, %rsi
	movq	%r12, %rax
	movq	80(%rsp), %r9
	movl	56(%rsp), %edx
	salq	$4, %rax
	movq	72(%rsp), %r10
	movq	48(%rsp), %rcx
	movq	%rsi, (%rbx,%rax)
	movq	8(%r11), %r11
.L197:
	movq	8(%rcx), %rcx
.L218:
	movq	%r11, %rsi
	movq	%rcx, %rdi
	movq	%r8, 72(%rsp)
	salq	$4, %r12
	movq	%r9, 64(%rsp)
	movq	%r10, 56(%rsp)
	movl	%edx, 48(%rsp)
	call	calc
	movl	48(%rsp), %edx
	movq	56(%rsp), %r10
	movq	64(%rsp), %r9
	movq	72(%rsp), %r8
	movq	%rax, 8(%rbx,%r12)
.L89:
	movq	32(%rsp), %rax
	salq	$4, %rax
	movq	%r13, (%rbx,%rax)
	testq	%r15, %r15
	je	.L93
.L228:
	movq	8(%r15), %r15
	testq	%r15, %r15
	sete	%cl
	testq	%r14, %r14
	je	.L335
.L171:
	movq	8(%r14), %r14
	testq	%r14, %r14
	movq	%r14, %r13
	sete	%al
	orq	%r15, %r13
.L94:
	testq	%r13, %r13
	je	.L95
	testl	%edx, %edx
	jne	.L96
	testb	%al, %al
	jne	.L238
	testb	%cl, %cl
	jne	.L238
	movslq	node_pool_pos(%rip), %r12
	leal	1(%r12), %eax
	movq	%r12, %r13
	movl	%eax, node_pool_pos(%rip)
	salq	$4, %r13
	addq	%rbx, %r13
.L170:
	movq	%r8, 72(%rsp)
	movq	(%r15), %rsi
	movq	%r9, 64(%rsp)
	movq	%r10, 56(%rsp)
	movl	%edx, 48(%rsp)
	testq	%r14, %r14
	je	.L99
	movq	(%r14), %rdi
	call	calc
	movq	72(%rsp), %r8
	movq	64(%rsp), %r9
	movq	%rax, %r11
	movq	%r12, %rax
	movq	56(%rsp), %r10
	movl	48(%rsp), %edx
	salq	$4, %rax
	movq	%r11, (%rbx,%rax)
	movq	8(%r15), %r15
.L194:
	movq	8(%r14), %r14
.L217:
	movq	%r15, %rsi
	movq	%r14, %rdi
	movq	%r8, 72(%rsp)
	salq	$4, %r12
	movq	%r9, 64(%rsp)
	movq	%r10, 56(%rsp)
	movl	%edx, 48(%rsp)
	call	calc
	movl	48(%rsp), %edx
	movq	56(%rsp), %r10
	movq	64(%rsp), %r9
	movq	72(%rsp), %r8
	movq	%rax, 8(%rbx,%r12)
.L95:
	movq	32(%rsp), %rax
	salq	$4, %rax
	movq	%r13, 8(%rbx,%rax)
.L83:
	movq	16(%rsp), %rax
	movq	40(%rsp), %rdi
	salq	$4, %rax
	movq	%rdi, (%rbx,%rax)
	testq	%r10, %r10
	je	.L100
.L227:
	movq	8(%r10), %r10
	testq	%r10, %r10
	sete	%cl
	testq	%r9, %r9
	je	.L336
.L169:
	movq	8(%r9), %r9
	testq	%r9, %r9
	movq	%r9, %r14
	sete	%al
	orq	%r10, %r14
.L101:
	testq	%r14, %r14
	je	.L102
	testl	%edx, %edx
	jne	.L103
	testb	%al, %al
	jne	.L240
	testb	%cl, %cl
	jne	.L240
	movslq	node_pool_pos(%rip), %r12
	leal	1(%r12), %r13d
	movq	%r12, %r14
	movl	%r13d, node_pool_pos(%rip)
	salq	$4, %r14
	addq	%rbx, %r14
.L168:
	movq	(%r10), %r11
	testq	%r11, %r11
	sete	%al
	testq	%r9, %r9
	je	.L106
.L192:
	movq	(%r9), %rcx
	testq	%rcx, %rcx
	movq	%rcx, %rdi
	sete	%sil
	orq	%r11, %rdi
	je	.L107
	testl	%edx, %edx
	jne	.L108
	testb	%al, %al
	jne	.L241
	testb	%sil, %sil
	jne	.L241
	leal	1(%r13), %eax
	movslq	%r13d, %r13
	movl	%eax, node_pool_pos(%rip)
	movq	%r13, %rax
	salq	$4, %rax
	leaq	(%rbx,%rax), %r15
.L167:
	movq	%r8, 72(%rsp)
	movq	(%r11), %rsi
	movq	%r9, 64(%rsp)
	movq	%r10, 56(%rsp)
	movq	%r11, 48(%rsp)
	testq	%rcx, %rcx
	je	.L112
	movq	(%rcx), %rdi
	movl	%edx, 40(%rsp)
	movq	%rcx, 32(%rsp)
	call	calc
	movq	48(%rsp), %r11
	movq	72(%rsp), %r8
	movq	%rax, %rsi
	movq	%r13, %rax
	movq	64(%rsp), %r9
	movl	40(%rsp), %edx
	salq	$4, %rax
	movq	56(%rsp), %r10
	movq	32(%rsp), %rcx
	movq	%rsi, (%rbx,%rax)
	movq	8(%r11), %r11
.L189:
	movq	8(%rcx), %rcx
.L214:
	movq	%r11, %rsi
	movq	%rcx, %rdi
	movq	%r8, 56(%rsp)
	salq	$4, %r13
	movq	%r9, 48(%rsp)
	movq	%r10, 40(%rsp)
	movl	%edx, 32(%rsp)
	call	calc
	movl	32(%rsp), %edx
	movq	40(%rsp), %r10
	movq	48(%rsp), %r9
	movq	56(%rsp), %r8
	movq	%rax, 8(%rbx,%r13)
.L109:
	movq	%r12, %rax
	salq	$4, %rax
	movq	%r15, (%rbx,%rax)
	testq	%r10, %r10
	je	.L113
.L226:
	movq	8(%r10), %r10
	testq	%r10, %r10
	sete	%cl
	testq	%r9, %r9
	je	.L337
.L166:
	movq	8(%r9), %r9
	movq	%r9, %r15
	orq	%r10, %r15
	testq	%r9, %r9
	sete	%al
.L114:
	testq	%r15, %r15
	je	.L115
	testl	%edx, %edx
	jne	.L116
	testb	%al, %al
	jne	.L243
	testb	%cl, %cl
	jne	.L243
	movslq	node_pool_pos(%rip), %r13
	leal	1(%r13), %eax
	movq	%r13, %r15
	movl	%eax, node_pool_pos(%rip)
	salq	$4, %r15
	addq	%rbx, %r15
.L165:
	movq	%r8, 56(%rsp)
	movq	(%r10), %rsi
	testq	%r9, %r9
	je	.L119
	movq	(%r9), %rdi
	movq	%r10, 48(%rsp)
	movl	%edx, 40(%rsp)
	movq	%r9, 32(%rsp)
	call	calc
	movq	48(%rsp), %r10
	movq	56(%rsp), %r8
	movq	%rax, %r11
	movq	%r13, %rax
	movl	40(%rsp), %edx
	movq	32(%rsp), %r9
	salq	$4, %rax
	movq	%r11, (%rbx,%rax)
	movq	8(%r10), %r10
.L186:
	movq	8(%r9), %r9
.L213:
	movq	%r10, %rsi
	movq	%r9, %rdi
	movq	%r8, 40(%rsp)
	salq	$4, %r13
	movl	%edx, 32(%rsp)
	call	calc
	movl	32(%rsp), %edx
	movq	40(%rsp), %r8
	movq	%rax, 8(%rbx,%r13)
.L115:
	salq	$4, %r12
	movq	%r15, 8(%rbx,%r12)
	jmp	.L102
	.p2align 4,,10
	.p2align 3
.L343:
	movq	(%rsi), %r10
	testq	%r10, %r10
	sete	%al
	testq	%rdi, %rdi
	jne	.L74
	testq	%r10, %r10
	je	.L223
	xorl	%r9d, %r9d
.L76:
	movslq	%ecx, %rdi
	leal	1(%rcx), %eax
	movq	%rdi, %rcx
	movq	%rdi, 16(%rsp)
	salq	$4, %rcx
	movl	%eax, node_pool_pos(%rip)
	leaq	(%rbx,%rcx), %rdi
	movq	%rdi, 24(%rsp)
	testq	%r10, %r10
	jne	.L174
	xorl	%r15d, %r15d
	movl	$1, %ecx
	testq	%r9, %r9
	jne	.L202
	movq	$0, (%rdi)
	xorl	%r14d, %r14d
	.p2align 4,,10
	.p2align 3
.L102:
	movq	16(%rsp), %rax
	salq	$4, %rax
	movq	%r14, 8(%rbx,%rax)
.L77:
	movq	8(%rsp), %rax
	movq	24(%rsp), %rdi
	salq	$4, %rax
	movq	%rdi, (%rbx,%rax)
	testq	%r8, %r8
	je	.L120
.L229:
	movq	8(%r8), %r8
	testq	%r8, %r8
	sete	%cl
	testq	%rbp, %rbp
	je	.L338
.L164:
	movq	8(%rbp), %rbp
	movq	%rbp, %r14
	orq	%r8, %r14
	testq	%rbp, %rbp
	sete	%al
.L121:
	testq	%r14, %r14
	je	.L122
	testl	%edx, %edx
	jne	.L123
	testb	%al, %al
	jne	.L245
	testb	%cl, %cl
	jne	.L245
	movslq	node_pool_pos(%rip), %r12
	leal	1(%r12), %r13d
	movq	%r12, %r14
	movl	%r13d, node_pool_pos(%rip)
	salq	$4, %r14
	addq	%rbx, %r14
.L163:
	movq	(%r8), %r10
	testq	%r10, %r10
	sete	%al
	testq	%rbp, %rbp
	je	.L126
.L184:
	movq	0(%rbp), %r9
	testq	%r9, %r9
	movq	%r9, %rdi
	sete	%cl
	orq	%r10, %rdi
	je	.L127
	testl	%edx, %edx
	jne	.L128
	testb	%al, %al
	jne	.L246
	testb	%cl, %cl
	jne	.L246
	leal	1(%r13), %r15d
	movslq	%r13d, %r13
	movq	%r13, %rax
	movl	%r15d, node_pool_pos(%rip)
	salq	$4, %rax
	addq	%rbx, %rax
	movq	%rax, 16(%rsp)
.L162:
	movq	(%r10), %rcx
	testq	%rcx, %rcx
	sete	%al
	testq	%r9, %r9
	je	.L132
	movq	(%r9), %r11
	movq	%rcx, %rdi
	testq	%r11, %r11
	sete	%sil
	orq	%r11, %rdi
	je	.L133
	testl	%edx, %edx
	jne	.L134
	testb	%sil, %sil
	jne	.L247
	testb	%al, %al
	jne	.L247
	leal	1(%r15), %eax
	movslq	%r15d, %r15
	movl	%eax, node_pool_pos(%rip)
	movq	%r15, %rax
	salq	$4, %rax
	addq	%rbx, %rax
	movq	%rax, 24(%rsp)
.L161:
	movq	%r8, 72(%rsp)
	movq	(%rcx), %rsi
	movq	%r10, 64(%rsp)
	movq	%r9, 56(%rsp)
	testq	%r11, %r11
	je	.L138
	movq	(%r11), %rdi
	movq	%rcx, 48(%rsp)
	movl	%edx, 40(%rsp)
	movq	%r11, 32(%rsp)
	call	calc
	movq	48(%rsp), %rcx
	movq	72(%rsp), %r8
	movq	%rax, %rsi
	movq	%r15, %rax
	movq	64(%rsp), %r10
	movl	40(%rsp), %edx
	salq	$4, %rax
	movq	56(%rsp), %r9
	movq	32(%rsp), %r11
	movq	%rsi, (%rbx,%rax)
	movq	8(%rcx), %rcx
.L179:
	movq	8(%r11), %r11
.L208:
	movq	%rcx, %rsi
	movq	%r11, %rdi
	movq	%r8, 56(%rsp)
	salq	$4, %r15
	movq	%r10, 48(%rsp)
	movq	%r9, 40(%rsp)
	movl	%edx, 32(%rsp)
	call	calc
	movl	32(%rsp), %edx
	movq	40(%rsp), %r9
	movq	48(%rsp), %r10
	movq	56(%rsp), %r8
	movq	%rax, 8(%rbx,%r15)
.L135:
	movq	24(%rsp), %rsi
	movq	%r13, %rax
	salq	$4, %rax
	movq	%rsi, (%rbx,%rax)
	testq	%r10, %r10
	je	.L139
.L225:
	movq	8(%r10), %r10
	testq	%r10, %r10
	sete	%sil
	testq	%r9, %r9
	je	.L339
.L160:
	movq	8(%r9), %r9
	testq	%r9, %r9
	movq	%r9, %rcx
	sete	%al
	orq	%r10, %rcx
.L140:
	testq	%rcx, %rcx
	je	.L141
	testl	%edx, %edx
	jne	.L142
	testb	%al, %al
	jne	.L249
	testb	%sil, %sil
	jne	.L249
	movslq	node_pool_pos(%rip), %r15
	leal	1(%r15), %eax
	movq	%r15, %rcx
	movl	%eax, node_pool_pos(%rip)
	salq	$4, %rcx
	addq	%rbx, %rcx
.L159:
	movq	(%r10), %rsi
	testq	%r9, %r9
	je	.L340
	movq	(%r9), %rdi
	movq	%r8, 56(%rsp)
	movq	%r10, 48(%rsp)
	movq	%rcx, 40(%rsp)
	movl	%edx, 32(%rsp)
	movq	%r9, 24(%rsp)
	call	calc
	movq	48(%rsp), %r10
	movq	24(%rsp), %r9
	movq	%rax, %r11
	movq	%r15, %rax
	movl	32(%rsp), %edx
	movq	40(%rsp), %rcx
	salq	$4, %rax
	movq	56(%rsp), %r8
	movq	%r11, (%rbx,%rax)
	movq	8(%r10), %r10
.L207:
	movq	8(%r9), %r9
.L158:
	movq	%r10, %rsi
	movq	%r9, %rdi
	movq	%r8, 40(%rsp)
	salq	$4, %r15
	movq	%rcx, 32(%rsp)
	movl	%edx, 24(%rsp)
	call	calc
	movl	24(%rsp), %edx
	movq	32(%rsp), %rcx
	movq	%rax, 8(%rbx,%r15)
	movq	40(%rsp), %r8
.L141:
	salq	$4, %r13
	movq	%rcx, 8(%rbx,%r13)
.L129:
	movq	16(%rsp), %rdi
	movq	%r12, %rax
	salq	$4, %rax
	movq	%rdi, (%rbx,%rax)
	testq	%r8, %r8
	je	.L147
.L224:
	movq	8(%r8), %r8
	testq	%r8, %r8
	sete	%cl
	testq	%rbp, %rbp
	je	.L341
.L157:
	movq	8(%rbp), %rbp
	testq	%rbp, %rbp
	movq	%rbp, %r15
	sete	%al
	orq	%r8, %r15
.L148:
	testq	%r15, %r15
	je	.L149
	testl	%edx, %edx
	jne	.L150
	testb	%al, %al
	jne	.L251
	testb	%cl, %cl
	jne	.L251
	movslq	node_pool_pos(%rip), %r13
	leal	1(%r13), %eax
	movq	%r13, %r15
	movl	%eax, node_pool_pos(%rip)
	salq	$4, %r15
	addq	%rbx, %r15
.L156:
	movq	(%r8), %rsi
	testq	%rbp, %rbp
	je	.L342
	movq	0(%rbp), %rdi
	movq	%r8, 24(%rsp)
	movl	%edx, 16(%rsp)
	call	calc
	movq	24(%rsp), %r8
	movl	16(%rsp), %edx
	movq	%rax, %r9
	movq	%r13, %rax
	salq	$4, %rax
	movq	%r9, (%rbx,%rax)
	movq	8(%r8), %r8
.L206:
	movq	8(%rbp), %rbp
.L155:
	movq	%r8, %rsi
	movq	%rbp, %rdi
	salq	$4, %r13
	call	calc
	movq	%rax, 8(%rbx,%r13)
.L149:
	salq	$4, %r12
	movq	%r15, 8(%rbx,%r12)
.L122:
	movq	8(%rsp), %rax
	salq	$4, %rax
	movq	%r14, 8(%rbx,%rax)
.L69:
	movq	(%rsp), %rax
	addq	$104, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L71:
	.cfi_restore_state
	movslq	node_pool_pos(%rip), %rax
	leaq	node_pool(%rip), %rbx
	leal	1(%rax), %ecx
	movq	%rax, 8(%rsp)
	salq	$4, %rax
	addq	%rbx, %rax
	movl	%ecx, node_pool_pos(%rip)
	movq	%rax, (%rsp)
	testq	%rsi, %rsi
	jne	.L343
	testq	%rdi, %rdi
	je	.L344
	movq	(%rdi), %r9
	testq	%r9, %r9
	sete	%sil
	je	.L232
	xorl	%r10d, %r10d
	movl	$1, %eax
	jmp	.L231
	.p2align 4,,10
	.p2align 3
.L80:
	testq	%r15, %r15
	je	.L345
	movq	$0, 40(%rsp)
	xorl	%r14d, %r14d
	testl	%edx, %edx
	je	.L83
.L82:
	leal	1(%rax), %r12d
	cltq
	movq	%rax, 32(%rsp)
	salq	$4, %rax
	addq	%rbx, %rax
	movl	%r12d, node_pool_pos(%rip)
	movq	%rax, 40(%rsp)
	testq	%r15, %r15
	jne	.L173
	xorl	%r11d, %r11d
	movl	$1, %eax
	testq	%r14, %r14
	jne	.L200
	movq	40(%rsp), %rax
	xorl	%r13d, %r13d
	movq	$0, (%rax)
	jmp	.L95
	.p2align 4,,10
	.p2align 3
.L86:
	testq	%r11, %r11
	je	.L346
	xorl	%r13d, %r13d
	xorl	%ecx, %ecx
	testl	%edx, %edx
	je	.L89
.L88:
	leal	1(%r12), %eax
	movslq	%r12d, %r12
	movq	%r12, %r13
	movl	%eax, node_pool_pos(%rip)
	salq	$4, %r13
	addq	%rbx, %r13
	testq	%r11, %r11
	jne	.L172
	testq	%rcx, %rcx
	je	.L347
	movq	(%rcx), %rdi
	xorl	%esi, %esi
	movq	%r8, 88(%rsp)
	movq	%r9, 80(%rsp)
	movq	%r10, 72(%rsp)
	movq	%r11, 64(%rsp)
	movl	%edx, 56(%rsp)
	movq	%rcx, 48(%rsp)
	call	calc
	movq	48(%rsp), %rcx
	movl	56(%rsp), %edx
	movq	64(%rsp), %r11
	movq	72(%rsp), %r10
	movq	%rax, 0(%r13)
	movq	80(%rsp), %r9
	movq	88(%rsp), %r8
	jmp	.L197
	.p2align 4,,10
	.p2align 3
.L344:
	movq	$0, (%rax)
	xorl	%r14d, %r14d
	jmp	.L122
	.p2align 4,,10
	.p2align 3
.L123:
	movslq	node_pool_pos(%rip), %r12
	movq	%r12, %r14
	leal	1(%r12), %r13d
	salq	$4, %r14
	movl	%r13d, node_pool_pos(%rip)
	addq	%rbx, %r14
	testq	%r8, %r8
	jne	.L163
	xorl	%r10d, %r10d
	movl	$1, %eax
	testq	%rbp, %rbp
	jne	.L184
	movq	$0, (%r14)
	xorl	%r15d, %r15d
	jmp	.L149
	.p2align 4,,10
	.p2align 3
.L126:
	testq	%r10, %r10
	je	.L348
	movq	$0, 16(%rsp)
	xorl	%r9d, %r9d
	testl	%edx, %edx
	je	.L129
.L128:
	leal	1(%r13), %r15d
	movslq	%r13d, %r13
	movq	%r13, %rax
	movl	%r15d, node_pool_pos(%rip)
	salq	$4, %rax
	addq	%rbx, %rax
	movq	%rax, 16(%rsp)
	testq	%r10, %r10
	jne	.L162
	testq	%r9, %r9
	je	.L349
	movq	(%r9), %r11
	testq	%r11, %r11
	je	.L133
	xorl	%ecx, %ecx
.L134:
	leal	1(%r15), %eax
	movslq	%r15d, %r15
	movl	%eax, node_pool_pos(%rip)
	movq	%r15, %rax
	salq	$4, %rax
	addq	%rbx, %rax
	movq	%rax, 24(%rsp)
	testq	%rcx, %rcx
	jne	.L161
	testq	%r11, %r11
	je	.L350
	movq	(%r11), %rdi
	xorl	%esi, %esi
	movq	%r8, 72(%rsp)
	movq	%r10, 64(%rsp)
	movq	%r9, 56(%rsp)
	movq	%rcx, 48(%rsp)
	movl	%edx, 40(%rsp)
	movq	%r11, 32(%rsp)
	call	calc
	movq	24(%rsp), %rsi
	movq	32(%rsp), %r11
	movl	40(%rsp), %edx
	movq	48(%rsp), %rcx
	movq	56(%rsp), %r9
	movq	64(%rsp), %r10
	movq	%rax, (%rsi)
	movq	72(%rsp), %r8
	jmp	.L179
	.p2align 4,,10
	.p2align 3
.L103:
	movslq	node_pool_pos(%rip), %r12
	movq	%r12, %r14
	leal	1(%r12), %r13d
	salq	$4, %r14
	movl	%r13d, node_pool_pos(%rip)
	addq	%rbx, %r14
	testq	%r10, %r10
	jne	.L168
	xorl	%r11d, %r11d
	movl	$1, %eax
	testq	%r9, %r9
	jne	.L192
	movq	$0, (%r14)
	xorl	%r15d, %r15d
	jmp	.L115
	.p2align 4,,10
	.p2align 3
.L150:
	movslq	node_pool_pos(%rip), %r13
	movq	%r13, %r15
	leal	1(%r13), %eax
	salq	$4, %r15
	movl	%eax, node_pool_pos(%rip)
	addq	%rbx, %r15
	testq	%r8, %r8
	jne	.L156
	testq	%rbp, %rbp
	je	.L351
	movq	0(%rbp), %rdi
	xorl	%esi, %esi
	movq	%r8, 24(%rsp)
	movl	%edx, 16(%rsp)
	call	calc
	movl	16(%rsp), %edx
	movq	24(%rsp), %r8
	movq	%rax, (%r15)
	jmp	.L206
	.p2align 4,,10
	.p2align 3
.L142:
	movslq	node_pool_pos(%rip), %r15
	movq	%r15, %rcx
	leal	1(%r15), %eax
	salq	$4, %rcx
	movl	%eax, node_pool_pos(%rip)
	addq	%rbx, %rcx
	testq	%r10, %r10
	jne	.L159
	testq	%r9, %r9
	je	.L352
	movq	(%r9), %rdi
	xorl	%esi, %esi
	movq	%r8, 56(%rsp)
	movq	%r10, 48(%rsp)
	movq	%rcx, 40(%rsp)
	movl	%edx, 32(%rsp)
	movq	%r9, 24(%rsp)
	call	calc
	movq	40(%rsp), %rcx
	movq	24(%rsp), %r9
	movl	32(%rsp), %edx
	movq	48(%rsp), %r10
	movq	%rax, (%rcx)
	movq	56(%rsp), %r8
	jmp	.L207
	.p2align 4,,10
	.p2align 3
.L96:
	movslq	node_pool_pos(%rip), %r12
	movq	%r12, %r13
	leal	1(%r12), %eax
	salq	$4, %r13
	movl	%eax, node_pool_pos(%rip)
	addq	%rbx, %r13
	testq	%r15, %r15
	jne	.L170
	testq	%r14, %r14
	je	.L353
	movq	(%r14), %rdi
	xorl	%esi, %esi
	movq	%r8, 72(%rsp)
	movq	%r9, 64(%rsp)
	movq	%r10, 56(%rsp)
	movl	%edx, 48(%rsp)
	call	calc
	movl	48(%rsp), %edx
	movq	56(%rsp), %r10
	movq	64(%rsp), %r9
	movq	72(%rsp), %r8
	movq	%rax, 0(%r13)
	jmp	.L194
	.p2align 4,,10
	.p2align 3
.L106:
	testq	%r11, %r11
	je	.L354
	xorl	%r15d, %r15d
	xorl	%ecx, %ecx
	testl	%edx, %edx
	je	.L109
.L108:
	leal	1(%r13), %eax
	movslq	%r13d, %r13
	movl	%eax, node_pool_pos(%rip)
	movq	%r13, %rax
	salq	$4, %rax
	leaq	(%rbx,%rax), %r15
	testq	%r11, %r11
	jne	.L167
	testq	%rcx, %rcx
	je	.L355
	movq	(%rcx), %rdi
	xorl	%esi, %esi
	movq	%r8, 72(%rsp)
	movq	%r9, 64(%rsp)
	movq	%r10, 56(%rsp)
	movq	%r11, 48(%rsp)
	movl	%edx, 40(%rsp)
	movq	%rcx, 32(%rsp)
	call	calc
	movq	32(%rsp), %rcx
	movl	40(%rsp), %edx
	movq	48(%rsp), %r11
	movq	56(%rsp), %r10
	movq	%rax, (%r15)
	movq	64(%rsp), %r9
	movq	72(%rsp), %r8
	jmp	.L189
	.p2align 4,,10
	.p2align 3
.L116:
	movslq	node_pool_pos(%rip), %r13
	movq	%r13, %r15
	leal	1(%r13), %eax
	salq	$4, %r15
	movl	%eax, node_pool_pos(%rip)
	addq	%rbx, %r15
	testq	%r10, %r10
	jne	.L165
	testq	%r9, %r9
	je	.L356
	movq	(%r9), %rdi
	xorl	%esi, %esi
	movq	%r8, 56(%rsp)
	movq	%r10, 48(%rsp)
	movl	%edx, 40(%rsp)
	movq	%r9, 32(%rsp)
	call	calc
	movq	32(%rsp), %r9
	movl	40(%rsp), %edx
	movq	48(%rsp), %r10
	movq	56(%rsp), %r8
	movq	%rax, (%r15)
	jmp	.L186
	.p2align 4,,10
	.p2align 3
.L338:
	movq	%r8, %r14
	movl	$1, %eax
	jmp	.L121
	.p2align 4,,10
	.p2align 3
.L120:
	testq	%rbp, %rbp
	je	.L245
	movl	$1, %ecx
	jmp	.L164
	.p2align 4,,10
	.p2align 3
.L100:
	testq	%r9, %r9
	je	.L240
.L256:
	movl	$1, %ecx
	jmp	.L169
	.p2align 4,,10
	.p2align 3
.L147:
	testq	%rbp, %rbp
	je	.L251
.L252:
	movl	$1, %ecx
	jmp	.L157
	.p2align 4,,10
	.p2align 3
.L336:
	movq	%r10, %r14
	movl	$1, %eax
	jmp	.L101
	.p2align 4,,10
	.p2align 3
.L341:
	movq	%r8, %r15
	movl	$1, %eax
	jmp	.L148
	.p2align 4,,10
	.p2align 3
.L132:
	testq	%rcx, %rcx
	je	.L357
	movq	$0, 24(%rsp)
	xorl	%r11d, %r11d
	testl	%edx, %edx
	jne	.L134
	jmp	.L135
	.p2align 4,,10
	.p2align 3
.L342:
	xorl	%edi, %edi
	movq	%r8, 24(%rsp)
	movl	%edx, 16(%rsp)
	call	calc
	movq	24(%rsp), %r8
	movl	16(%rsp), %edx
	movq	%rax, %r9
	movq	%r13, %rax
	salq	$4, %rax
	movq	%r9, (%rbx,%rax)
	movq	8(%r8), %r8
	jmp	.L155
	.p2align 4,,10
	.p2align 3
.L93:
	testq	%r14, %r14
	je	.L238
.L257:
	movl	$1, %ecx
	jmp	.L171
	.p2align 4,,10
	.p2align 3
.L139:
	testq	%r9, %r9
	je	.L249
.L253:
	movl	$1, %esi
	jmp	.L160
	.p2align 4,,10
	.p2align 3
.L113:
	testq	%r9, %r9
	je	.L243
.L255:
	movl	$1, %ecx
	jmp	.L166
	.p2align 4,,10
	.p2align 3
.L337:
	movq	%r10, %r15
	movl	$1, %eax
	jmp	.L114
	.p2align 4,,10
	.p2align 3
.L335:
	movq	%r15, %r13
	movl	$1, %eax
	jmp	.L94
	.p2align 4,,10
	.p2align 3
.L339:
	movq	%r10, %rcx
	movl	$1, %eax
	jmp	.L140
	.p2align 4,,10
	.p2align 3
.L233:
	movq	$0, (%rsp)
	jmp	.L69
	.p2align 4,,10
	.p2align 3
.L119:
	xorl	%edi, %edi
	movq	%r9, 48(%rsp)
	movq	%r10, 40(%rsp)
	movl	%edx, 32(%rsp)
	call	calc
	movq	40(%rsp), %r10
	movl	32(%rsp), %edx
	movq	%rax, %r11
	movq	%r13, %rax
	movq	48(%rsp), %r9
	movq	56(%rsp), %r8
	salq	$4, %rax
	movq	%r11, (%rbx,%rax)
	movq	8(%r10), %r10
	jmp	.L213
	.p2align 4,,10
	.p2align 3
.L92:
	xorl	%edi, %edi
	movq	%rcx, 56(%rsp)
	movl	%edx, 48(%rsp)
	call	calc
	movq	64(%rsp), %r11
	movl	48(%rsp), %edx
	movq	%rax, %rsi
	movq	%r12, %rax
	movq	56(%rsp), %rcx
	movq	72(%rsp), %r10
	salq	$4, %rax
	movq	80(%rsp), %r9
	movq	88(%rsp), %r8
	movq	%rsi, (%rbx,%rax)
	movq	8(%r11), %r11
	jmp	.L218
	.p2align 4,,10
	.p2align 3
.L138:
	xorl	%edi, %edi
	movq	%r11, 48(%rsp)
	movq	%rcx, 40(%rsp)
	movl	%edx, 32(%rsp)
	call	calc
	movq	40(%rsp), %rcx
	movl	32(%rsp), %edx
	movq	%rax, %rsi
	movq	%r15, %rax
	movq	48(%rsp), %r11
	movq	56(%rsp), %r9
	salq	$4, %rax
	movq	64(%rsp), %r10
	movq	72(%rsp), %r8
	movq	%rsi, (%rbx,%rax)
	movq	8(%rcx), %rcx
	jmp	.L208
	.p2align 4,,10
	.p2align 3
.L112:
	xorl	%edi, %edi
	movq	%rcx, 40(%rsp)
	movl	%edx, 32(%rsp)
	call	calc
	movq	48(%rsp), %r11
	movl	32(%rsp), %edx
	movq	%rax, %rsi
	movq	%r13, %rax
	movq	40(%rsp), %rcx
	movq	56(%rsp), %r10
	salq	$4, %rax
	movq	64(%rsp), %r9
	movq	72(%rsp), %r8
	movq	%rsi, (%rbx,%rax)
	movq	8(%r11), %r11
	jmp	.L214
	.p2align 4,,10
	.p2align 3
.L340:
	xorl	%edi, %edi
	movq	%r8, 56(%rsp)
	movq	%r10, 48(%rsp)
	movq	%r9, 40(%rsp)
	movq	%rcx, 32(%rsp)
	movl	%edx, 24(%rsp)
	call	calc
	movq	48(%rsp), %r10
	movl	24(%rsp), %edx
	movq	%rax, %r11
	movq	%r15, %rax
	movq	32(%rsp), %rcx
	movq	40(%rsp), %r9
	salq	$4, %rax
	movq	56(%rsp), %r8
	movq	%r11, (%rbx,%rax)
	movq	8(%r10), %r10
	jmp	.L158
	.p2align 4,,10
	.p2align 3
.L99:
	xorl	%edi, %edi
	call	calc
	movl	48(%rsp), %edx
	movq	56(%rsp), %r10
	movq	%rax, %r11
	movq	%r12, %rax
	movq	64(%rsp), %r9
	movq	72(%rsp), %r8
	salq	$4, %rax
	movq	%r11, (%rbx,%rax)
	movq	8(%r15), %r15
	jmp	.L217
	.p2align 4,,10
	.p2align 3
.L234:
	movq	$0, 24(%rsp)
	jmp	.L77
	.p2align 4,,10
	.p2align 3
.L245:
	xorl	%r14d, %r14d
	jmp	.L122
	.p2align 4,,10
	.p2align 3
.L240:
	xorl	%r14d, %r14d
	jmp	.L102
	.p2align 4,,10
	.p2align 3
.L251:
	xorl	%r15d, %r15d
	jmp	.L149
	.p2align 4,,10
	.p2align 3
.L349:
	movq	$0, (%rax)
	xorl	%ecx, %ecx
	jmp	.L141
	.p2align 4,,10
	.p2align 3
.L351:
	xorl	%esi, %esi
	xorl	%edi, %edi
	movq	%r8, 24(%rsp)
	movl	%edx, 16(%rsp)
	call	calc
	movl	16(%rsp), %edx
	movq	24(%rsp), %r8
	movq	%rax, (%r15)
	jmp	.L155
	.p2align 4,,10
	.p2align 3
.L127:
	movq	%r12, %rax
	salq	$4, %rax
	movq	$0, (%rbx,%rax)
	testq	%r8, %r8
	jne	.L224
	jmp	.L252
	.p2align 4,,10
	.p2align 3
.L81:
	movq	16(%rsp), %rax
	salq	$4, %rax
	movq	$0, (%rbx,%rax)
	testq	%r10, %r10
	jne	.L227
	jmp	.L256
	.p2align 4,,10
	.p2align 3
.L334:
	movq	8(%rsp), %rax
	salq	$4, %rax
	movq	$0, (%rbx,%rax)
	jmp	.L229
	.p2align 4,,10
	.p2align 3
.L238:
	xorl	%r13d, %r13d
	jmp	.L95
	.p2align 4,,10
	.p2align 3
.L249:
	xorl	%ecx, %ecx
	jmp	.L141
	.p2align 4,,10
	.p2align 3
.L243:
	xorl	%r15d, %r15d
	jmp	.L115
	.p2align 4,,10
	.p2align 3
.L350:
	xorl	%esi, %esi
	xorl	%edi, %edi
	movq	%r8, 72(%rsp)
	movq	%r10, 64(%rsp)
	movq	%r9, 56(%rsp)
	movq	%r11, 48(%rsp)
	movq	%rcx, 40(%rsp)
	movl	%edx, 32(%rsp)
	call	calc
	movq	24(%rsp), %rsi
	movl	32(%rsp), %edx
	movq	40(%rsp), %rcx
	movq	48(%rsp), %r11
	movq	56(%rsp), %r9
	movq	64(%rsp), %r10
	movq	%rax, (%rsi)
	movq	72(%rsp), %r8
	jmp	.L208
	.p2align 4,,10
	.p2align 3
.L347:
	xorl	%esi, %esi
	xorl	%edi, %edi
	movq	%r8, 88(%rsp)
	movq	%r9, 80(%rsp)
	movq	%r10, 72(%rsp)
	movq	%r11, 64(%rsp)
	movq	%rcx, 56(%rsp)
	movl	%edx, 48(%rsp)
	call	calc
	movl	48(%rsp), %edx
	movq	56(%rsp), %rcx
	movq	64(%rsp), %r11
	movq	72(%rsp), %r10
	movq	%rax, 0(%r13)
	movq	80(%rsp), %r9
	movq	88(%rsp), %r8
	jmp	.L218
	.p2align 4,,10
	.p2align 3
.L356:
	xorl	%esi, %esi
	xorl	%edi, %edi
	movq	%r8, 56(%rsp)
	movq	%r9, 48(%rsp)
	movq	%r10, 40(%rsp)
	movl	%edx, 32(%rsp)
	call	calc
	movl	32(%rsp), %edx
	movq	40(%rsp), %r10
	movq	48(%rsp), %r9
	movq	56(%rsp), %r8
	movq	%rax, (%r15)
	jmp	.L213
	.p2align 4,,10
	.p2align 3
.L355:
	xorl	%esi, %esi
	xorl	%edi, %edi
	movq	%r8, 72(%rsp)
	movq	%r9, 64(%rsp)
	movq	%r10, 56(%rsp)
	movq	%r11, 48(%rsp)
	movq	%rcx, 40(%rsp)
	movl	%edx, 32(%rsp)
	call	calc
	movl	32(%rsp), %edx
	movq	40(%rsp), %rcx
	movq	48(%rsp), %r11
	movq	56(%rsp), %r10
	movq	%rax, (%r15)
	movq	64(%rsp), %r9
	movq	72(%rsp), %r8
	jmp	.L214
	.p2align 4,,10
	.p2align 3
.L353:
	xorl	%esi, %esi
	xorl	%edi, %edi
	movq	%r8, 72(%rsp)
	movq	%r9, 64(%rsp)
	movq	%r10, 56(%rsp)
	movl	%edx, 48(%rsp)
	call	calc
	movl	48(%rsp), %edx
	movq	56(%rsp), %r10
	movq	64(%rsp), %r9
	movq	72(%rsp), %r8
	movq	%rax, 0(%r13)
	jmp	.L217
	.p2align 4,,10
	.p2align 3
.L352:
	xorl	%esi, %esi
	xorl	%edi, %edi
	movq	%r8, 56(%rsp)
	movq	%r10, 48(%rsp)
	movq	%r9, 40(%rsp)
	movq	%rcx, 32(%rsp)
	movl	%edx, 24(%rsp)
	call	calc
	movq	32(%rsp), %rcx
	movl	24(%rsp), %edx
	movq	40(%rsp), %r9
	movq	48(%rsp), %r10
	movq	%rax, (%rcx)
	movq	56(%rsp), %r8
	jmp	.L158
	.p2align 4,,10
	.p2align 3
.L107:
	movq	%r12, %rax
	salq	$4, %rax
	movq	$0, (%rbx,%rax)
	testq	%r10, %r10
	jne	.L226
	jmp	.L255
	.p2align 4,,10
	.p2align 3
.L87:
	movq	32(%rsp), %rax
	salq	$4, %rax
	movq	$0, (%rbx,%rax)
	testq	%r15, %r15
	jne	.L228
	jmp	.L257
	.p2align 4,,10
	.p2align 3
.L133:
	movq	%r13, %rax
	salq	$4, %rax
	movq	$0, (%rbx,%rax)
	testq	%r10, %r10
	jne	.L225
	jmp	.L253
	.p2align 4,,10
	.p2align 3
.L223:
	movq	(%rsp), %rax
	movq	$0, (%rax)
	movq	8(%r8), %r14
	movl	$1, %eax
	testq	%r14, %r14
	movq	%r14, %r8
	sete	%cl
	jmp	.L121
	.p2align 4,,10
	.p2align 3
.L232:
	movq	$0, (%rax)
	movl	$1, %ecx
	jmp	.L164
	.p2align 4,,10
	.p2align 3
.L345:
	movq	16(%rsp), %rax
	salq	$4, %rax
	movq	$0, (%rbx,%rax)
	movq	8(%r10), %r14
	movl	$1, %eax
	testq	%r14, %r14
	movq	%r14, %r10
	sete	%cl
	jmp	.L101
	.p2align 4,,10
	.p2align 3
.L348:
	movq	%r12, %rax
	salq	$4, %rax
	movq	$0, (%rbx,%rax)
	movq	8(%r8), %r15
	movl	$1, %eax
	testq	%r15, %r15
	movq	%r15, %r8
	sete	%cl
	jmp	.L148
.L357:
	movq	%r13, %rax
	salq	$4, %rax
	movq	$0, (%rbx,%rax)
	movq	8(%r10), %rcx
	movl	$1, %eax
	testq	%rcx, %rcx
	movq	%rcx, %r10
	sete	%sil
	jmp	.L140
.L354:
	movq	%r12, %rax
	salq	$4, %rax
	movq	$0, (%rbx,%rax)
	movq	8(%r10), %r15
	movl	$1, %eax
	testq	%r15, %r15
	movq	%r15, %r10
	sete	%cl
	jmp	.L114
.L346:
	movq	32(%rsp), %rax
	salq	$4, %rax
	movq	$0, (%rbx,%rax)
	movq	8(%r15), %r13
	movl	$1, %eax
	testq	%r13, %r13
	movq	%r13, %r15
	sete	%cl
	jmp	.L94
.L246:
	movq	$0, 16(%rsp)
	jmp	.L129
.L235:
	movq	$0, 40(%rsp)
	jmp	.L83
.L241:
	xorl	%r15d, %r15d
	jmp	.L109
.L236:
	xorl	%r13d, %r13d
	jmp	.L89
.L247:
	movq	$0, 24(%rsp)
	jmp	.L135
	.cfi_endproc
.LFE26:
	.size	calc, .-calc
	.p2align 4
	.globl	display_tree
	.type	display_tree, @function
display_tree:
.LFB27:
	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	movl	$40, %edi
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
	movq	stdout(%rip), %rsi
	call	putc@PLT
	movq	(%rbx), %rbp
	testq	%rbp, %rbp
	je	.L359
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%rbp), %r12
	testq	%r12, %r12
	je	.L360
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%r12), %r13
	testq	%r13, %r13
	je	.L361
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%r13), %rdi
	testq	%rdi, %rdi
	je	.L362
	call	display_tree
.L362:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r13), %rdi
	testq	%rdi, %rdi
	je	.L363
	call	display_tree
.L363:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L361:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r12), %r12
	testq	%r12, %r12
	je	.L364
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%r12), %rdi
	testq	%rdi, %rdi
	je	.L365
	call	display_tree
.L365:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r12), %rdi
	testq	%rdi, %rdi
	je	.L366
	call	display_tree
.L366:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L364:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L360:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%rbp), %rbp
	testq	%rbp, %rbp
	je	.L367
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%rbp), %r12
	testq	%r12, %r12
	je	.L368
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%r12), %rdi
	testq	%rdi, %rdi
	je	.L369
	call	display_tree
.L369:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r12), %rdi
	testq	%rdi, %rdi
	je	.L370
	call	display_tree
.L370:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L368:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%rbp), %rbp
	testq	%rbp, %rbp
	je	.L371
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%rbp), %rdi
	testq	%rdi, %rdi
	je	.L372
	call	display_tree
.L372:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%rbp), %rdi
	testq	%rdi, %rdi
	je	.L373
	call	display_tree
.L373:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L371:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L367:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L359:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%rbx), %rbx
	testq	%rbx, %rbx
	je	.L374
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%rbx), %rbp
	testq	%rbp, %rbp
	je	.L375
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%rbp), %r12
	testq	%r12, %r12
	je	.L376
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%r12), %rdi
	testq	%rdi, %rdi
	je	.L377
	call	display_tree
.L377:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r12), %rdi
	testq	%rdi, %rdi
	je	.L378
	call	display_tree
.L378:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L376:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%rbp), %rbp
	testq	%rbp, %rbp
	je	.L379
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%rbp), %rdi
	testq	%rdi, %rdi
	je	.L380
	call	display_tree
.L380:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%rbp), %rdi
	testq	%rdi, %rdi
	je	.L381
	call	display_tree
.L381:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L379:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L375:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%rbx), %rbx
	testq	%rbx, %rbx
	je	.L382
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%rbx), %rbp
	testq	%rbp, %rbp
	je	.L383
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%rbp), %rdi
	testq	%rdi, %rdi
	je	.L384
	call	display_tree
.L384:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%rbp), %rdi
	testq	%rdi, %rdi
	je	.L385
	call	display_tree
.L385:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L383:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%rbx), %rbx
	testq	%rbx, %rbx
	je	.L386
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%rbx), %rdi
	testq	%rdi, %rdi
	je	.L387
	call	display_tree
.L387:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%rbx), %rdi
	testq	%rdi, %rdi
	je	.L388
	call	display_tree
.L388:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L386:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L382:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L374:
	movq	stdout(%rip), %rsi
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	movl	$41, %edi
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	jmp	putc@PLT
	.cfi_endproc
.LFE27:
	.size	display_tree, .-display_tree
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"%s%s%s"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB28:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	leaq	node_pool(%rip), %rbx
	subq	$2152, %rsp
	.cfi_def_cfa_offset 2208
	movq	%fs:40, %rax
	movq	%rax, 2136(%rsp)
	xorl	%eax, %eax
	leaq	80(%rsp), %rax
	leaq	1104(%rsp), %r14
	movq	%rax, 16(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, 8(%rsp)
	.p2align 4,,10
	.p2align 3
.L481:
	movq	16(%rsp), %rdx
	movq	8(%rsp), %rsi
	xorl	%eax, %eax
	movq	%r14, %rcx
	leaq	.LC0(%rip), %rdi
	movl	$0, node_pool_pos(%rip)
	call	__isoc99_scanf@PLT
	cmpl	$3, %eax
	jne	.L789
	movslq	node_pool_pos(%rip), %r10
	xorl	%ecx, %ecx
	leaq	81(%rsp), %rdx
	movq	%r10, %r12
	leal	1(%r10), %r11d
	movq	%r10, %rax
	salq	$4, %r12
	cmpb	$40, 81(%rsp)
	movl	%r11d, node_pool_pos(%rip)
	leaq	(%rbx,%r12), %rbp
	je	.L790
.L482:
	movq	%r10, %rax
	xorl	%r9d, %r9d
	salq	$4, %rax
	movq	%rcx, (%rbx,%rax)
	leaq	1(%rdx), %rax
	movq	%rax, 40(%rsp)
	cmpb	$40, 1(%rdx)
	je	.L791
.L491:
	salq	$4, %r10
	xorl	%r12d, %r12d
	leaq	1105(%rsp), %rdx
	movq	%r9, 8(%rbx,%r10)
	movslq	%r11d, %r9
	leal	1(%r11), %r10d
	movq	%r9, %rax
	movl	%r10d, node_pool_pos(%rip)
	salq	$4, %rax
	cmpb	$40, 1105(%rsp)
	leaq	(%rbx,%rax), %rsi
	je	.L792
.L500:
	movq	%r9, %rax
	xorl	%r10d, %r10d
	salq	$4, %rax
	movq	%r12, (%rbx,%rax)
	leaq	1(%rdx), %rax
	movq	%rax, 40(%rsp)
	cmpb	$40, 1(%rdx)
	je	.L793
.L507:
	salq	$4, %r9
	xorl	%edx, %edx
	cmpb	$117, 48(%rsp)
	movq	%rbp, %rdi
	sete	%dl
	movq	%r10, 8(%rbx,%r9)
	call	calc
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	movq	%rax, %rbp
	call	putc@PLT
	movq	0(%rbp), %r12
	testq	%r12, %r12
	je	.L514
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%r12), %r13
	testq	%r13, %r13
	je	.L515
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%r13), %r15
	testq	%r15, %r15
	je	.L516
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%r15), %rdx
	testq	%rdx, %rdx
	movq	%rdx, 24(%rsp)
	je	.L517
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	24(%rsp), %rdx
	movq	(%rdx), %rdi
	testq	%rdi, %rdi
	je	.L518
	call	display_tree
	movq	24(%rsp), %rdx
.L518:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	movq	%rdx, 24(%rsp)
	call	putc@PLT
	movq	24(%rsp), %rdx
	movq	8(%rdx), %rdi
	testq	%rdi, %rdi
	je	.L519
	call	display_tree
.L519:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L517:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r15), %r15
	testq	%r15, %r15
	je	.L520
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%r15), %rdi
	testq	%rdi, %rdi
	je	.L521
	call	display_tree
.L521:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r15), %rdi
	testq	%rdi, %rdi
	je	.L522
	call	display_tree
.L522:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L520:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L516:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r13), %r13
	testq	%r13, %r13
	je	.L523
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%r13), %r15
	testq	%r15, %r15
	je	.L524
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%r15), %rdi
	testq	%rdi, %rdi
	je	.L525
	call	display_tree
.L525:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r15), %rdi
	testq	%rdi, %rdi
	je	.L526
	call	display_tree
.L526:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L524:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r13), %r13
	testq	%r13, %r13
	je	.L527
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%r13), %rdi
	testq	%rdi, %rdi
	je	.L528
	call	display_tree
.L528:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r13), %rdi
	testq	%rdi, %rdi
	je	.L529
	call	display_tree
.L529:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L527:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L523:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L515:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r12), %r12
	testq	%r12, %r12
	je	.L530
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%r12), %r13
	testq	%r13, %r13
	je	.L531
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%r13), %r15
	testq	%r15, %r15
	je	.L532
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%r15), %rdi
	testq	%rdi, %rdi
	je	.L533
	call	display_tree
.L533:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r15), %rdi
	testq	%rdi, %rdi
	je	.L534
	call	display_tree
.L534:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L532:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r13), %r13
	testq	%r13, %r13
	je	.L535
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%r13), %rdi
	testq	%rdi, %rdi
	je	.L536
	call	display_tree
.L536:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r13), %rdi
	testq	%rdi, %rdi
	je	.L537
	call	display_tree
.L537:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L535:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L531:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r12), %r12
	testq	%r12, %r12
	je	.L538
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%r12), %r13
	testq	%r13, %r13
	je	.L539
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%r13), %rdi
	testq	%rdi, %rdi
	je	.L540
	call	display_tree
.L540:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r13), %rdi
	testq	%rdi, %rdi
	je	.L541
	call	display_tree
.L541:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L539:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r12), %r12
	testq	%r12, %r12
	je	.L542
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%r12), %rdi
	testq	%rdi, %rdi
	je	.L543
	call	display_tree
.L543:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r12), %rdi
	testq	%rdi, %rdi
	je	.L544
	call	display_tree
.L544:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L542:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L538:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L530:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L514:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%rbp), %rbp
	testq	%rbp, %rbp
	je	.L545
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%rbp), %r12
	testq	%r12, %r12
	je	.L546
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%r12), %r13
	testq	%r13, %r13
	je	.L547
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%r13), %r15
	testq	%r15, %r15
	je	.L548
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%r15), %rdi
	testq	%rdi, %rdi
	je	.L549
	call	display_tree
.L549:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r15), %rdi
	testq	%rdi, %rdi
	je	.L550
	call	display_tree
.L550:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L548:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r13), %r13
	testq	%r13, %r13
	je	.L551
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%r13), %rdi
	testq	%rdi, %rdi
	je	.L552
	call	display_tree
.L552:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r13), %rdi
	testq	%rdi, %rdi
	je	.L553
	call	display_tree
.L553:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L551:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L547:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r12), %r12
	testq	%r12, %r12
	je	.L554
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%r12), %r13
	testq	%r13, %r13
	je	.L555
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%r13), %rdi
	testq	%rdi, %rdi
	je	.L556
	call	display_tree
.L556:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r13), %rdi
	testq	%rdi, %rdi
	je	.L557
	call	display_tree
.L557:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L555:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r12), %r12
	testq	%r12, %r12
	je	.L558
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%r12), %rdi
	testq	%rdi, %rdi
	je	.L559
	call	display_tree
.L559:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r12), %rdi
	testq	%rdi, %rdi
	je	.L560
	call	display_tree
.L560:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L558:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L554:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L546:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%rbp), %rbp
	testq	%rbp, %rbp
	je	.L561
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%rbp), %r12
	testq	%r12, %r12
	je	.L562
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%r12), %r13
	testq	%r13, %r13
	je	.L563
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%r13), %rdi
	testq	%rdi, %rdi
	je	.L564
	call	display_tree
.L564:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r13), %rdi
	testq	%rdi, %rdi
	je	.L565
	call	display_tree
.L565:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L563:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r12), %r12
	testq	%r12, %r12
	je	.L566
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%r12), %rdi
	testq	%rdi, %rdi
	je	.L567
	call	display_tree
.L567:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r12), %rdi
	testq	%rdi, %rdi
	je	.L568
	call	display_tree
.L568:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L566:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L562:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%rbp), %r12
	testq	%r12, %r12
	je	.L569
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%r12), %rbp
	testq	%rbp, %rbp
	je	.L570
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%rbp), %rdi
	testq	%rdi, %rdi
	je	.L571
	call	display_tree
.L571:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%rbp), %rdi
	testq	%rdi, %rdi
	je	.L572
	call	display_tree
.L572:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L570:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r12), %rbp
	testq	%rbp, %rbp
	je	.L573
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%rbp), %rdi
	testq	%rdi, %rdi
	je	.L574
	call	display_tree
.L574:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%rbp), %rdi
	testq	%rdi, %rdi
	je	.L575
	call	display_tree
.L575:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L573:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L569:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L561:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L545:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
	movq	stdout(%rip), %rsi
	movl	$10, %edi
	call	putc@PLT
	jmp	.L481
	.p2align 4,,10
	.p2align 3
.L793:
	movslq	node_pool_pos(%rip), %r11
	leaq	2(%rdx), %rdi
	xorl	%r13d, %r13d
	movq	%rdi, 40(%rsp)
	leal	1(%r11), %r12d
	movq	%r11, %rcx
	movq	%r11, %rax
	salq	$4, %rcx
	movl	%r12d, node_pool_pos(%rip)
	cmpb	$40, 2(%rdx)
	leaq	(%rbx,%rcx), %r10
	je	.L794
.L508:
	movq	%r11, %rax
	xorl	%r12d, %r12d
	salq	$4, %rax
	movq	%r13, (%rbx,%rax)
	leaq	1(%rdi), %rax
	movq	%rax, 40(%rsp)
	cmpb	$40, 1(%rdi)
	je	.L795
.L511:
	movq	%r11, %rax
	salq	$4, %rax
	movq	%r12, 8(%rbx,%rax)
	jmp	.L507
	.p2align 4,,10
	.p2align 3
.L792:
	leal	2(%r11), %r13d
	xorl	%r15d, %r15d
	cmpb	$40, 1106(%rsp)
	movl	%r13d, node_pool_pos(%rip)
	leaq	16(%rbx,%rax), %r12
	leaq	1106(%rsp), %rcx
	je	.L796
.L501:
	movslq	%r10d, %r10
	leaq	1(%rcx), %rdx
	xorl	%r11d, %r11d
	movq	%r10, %rax
	movq	%rdx, 40(%rsp)
	salq	$4, %rax
	movq	%r15, (%rbx,%rax)
	cmpb	$40, 1(%rcx)
	je	.L797
.L504:
	salq	$4, %r10
	addq	$1, %rdx
	movq	%r11, 8(%rbx,%r10)
	jmp	.L500
	.p2align 4,,10
	.p2align 3
.L791:
	leal	1(%r11), %r12d
	leaq	2(%rdx), %rcx
	movl	%r12d, node_pool_pos(%rip)
	movq	%rcx, 40(%rsp)
	cmpb	$40, 2(%rdx)
	je	.L798
	movslq	%r11d, %r9
	movq	%r9, %rax
	salq	$4, %rax
	movq	$0, (%rbx,%rax)
.L495:
	leaq	1(%rcx), %rax
	movq	%rax, 40(%rsp)
	cmpb	$40, 1(%rcx)
	je	.L799
	movq	%r9, %rax
	salq	$4, %rax
	movq	$0, 8(%rbx,%rax)
.L499:
	salq	$4, %r9
	movl	%r12d, %r11d
	addq	%rbx, %r9
	jmp	.L491
	.p2align 4,,10
	.p2align 3
.L790:
	leal	2(%r10), %r13d
	cmpb	$40, 82(%rsp)
	leaq	82(%rsp), %rcx
	movl	%r13d, node_pool_pos(%rip)
	je	.L800
	movslq	%r11d, %r9
	movq	%r9, %rax
	salq	$4, %rax
	movq	$0, (%rbx,%rax)
.L486:
	leaq	1(%rcx), %rdx
	movq	%rdx, 40(%rsp)
	cmpb	$40, 1(%rcx)
	je	.L801
	salq	$4, %r9
	movl	%r13d, %r11d
	movq	$0, 8(%rbx,%r9)
.L490:
	leaq	16(%rbx,%r12), %rcx
	addq	$1, %rdx
	jmp	.L482
	.p2align 4,,10
	.p2align 3
.L789:
	movq	2136(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L802
	addq	$2152, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L801:
	.cfi_restore_state
	leal	1(%r13), %eax
	movl	%eax, node_pool_pos(%rip)
	leaq	2(%rcx), %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	cmpb	$40, 2(%rcx)
	je	.L803
.L488:
	movslq	%r13d, %r13
	movq	%r13, %rdx
	salq	$4, %rdx
	movq	%rax, (%rbx,%rdx)
	movq	40(%rsp), %rdx
	leaq	1(%rdx), %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	cmpb	$40, 1(%rdx)
	je	.L804
.L489:
	salq	$4, %r13
	salq	$4, %r9
	movl	node_pool_pos(%rip), %r11d
	leaq	(%rbx,%r13), %rcx
	movq	%rax, 8(%rcx)
	movq	40(%rsp), %rax
	movq	%rcx, 8(%rbx,%r9)
	leaq	1(%rax), %rdx
	jmp	.L490
.L800:
	addl	$3, %eax
	movl	%eax, node_pool_pos(%rip)
	leaq	83(%rsp), %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	cmpb	$40, 83(%rsp)
	je	.L805
.L484:
	movslq	%r13d, %r13
	movq	%r13, %rdx
	salq	$4, %rdx
	movq	%rax, (%rbx,%rdx)
	movq	40(%rsp), %rdx
	leaq	1(%rdx), %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	cmpb	$40, 1(%rdx)
	je	.L806
.L485:
	salq	$4, %r13
	movslq	%r11d, %r9
	leaq	32(%rbx,%r12), %rdx
	movq	%rax, 8(%rbx,%r13)
	movq	40(%rsp), %rax
	movl	node_pool_pos(%rip), %r13d
	leaq	1(%rax), %rcx
	movq	%r9, %rax
	salq	$4, %rax
	movq	%rdx, (%rbx,%rax)
	jmp	.L486
.L799:
	leal	1(%r12), %eax
	movl	%eax, node_pool_pos(%rip)
	leaq	2(%rcx), %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	cmpb	$40, 2(%rcx)
	je	.L807
.L497:
	movslq	%r12d, %r12
	movq	%r12, %rdx
	salq	$4, %rdx
	movq	%rax, (%rbx,%rdx)
	movq	40(%rsp), %rdx
	leaq	1(%rdx), %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	cmpb	$40, 1(%rdx)
	je	.L808
.L498:
	salq	$4, %r12
	leaq	(%rbx,%r12), %rdx
	movl	node_pool_pos(%rip), %r12d
	movq	%rax, 8(%rdx)
	movq	%r9, %rax
	salq	$4, %rax
	movq	%rdx, 8(%rbx,%rax)
	jmp	.L499
.L798:
	leal	2(%r11), %eax
	movl	%eax, node_pool_pos(%rip)
	leaq	3(%rdx), %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	cmpb	$40, 3(%rdx)
	je	.L809
.L493:
	movslq	%r12d, %r12
	movq	%r12, %rdx
	salq	$4, %rdx
	movq	%rax, (%rbx,%rdx)
	movq	40(%rsp), %rdx
	leaq	1(%rdx), %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	cmpb	$40, 1(%rdx)
	je	.L810
.L494:
	salq	$4, %r12
	movslq	%r11d, %r9
	addq	%rbx, %r12
	movq	%rax, 8(%r12)
	movq	40(%rsp), %rax
	leaq	1(%rax), %rcx
	movq	%r9, %rax
	salq	$4, %rax
	movq	%r12, (%rbx,%rax)
	movl	node_pool_pos(%rip), %r12d
	jmp	.L495
.L797:
	movslq	node_pool_pos(%rip), %r13
	leal	1(%r13), %eax
	movq	%r13, %r11
	movl	%eax, node_pool_pos(%rip)
	salq	$4, %r11
	leaq	2(%rcx), %rax
	movq	%rax, 40(%rsp)
	addq	%rbx, %r11
	xorl	%eax, %eax
	cmpb	$40, 2(%rcx)
	je	.L811
.L505:
	movq	%r13, %rdx
	salq	$4, %rdx
	movq	%rax, (%rbx,%rdx)
	movq	40(%rsp), %rdx
	leaq	1(%rdx), %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	cmpb	$40, 1(%rdx)
	je	.L812
.L506:
	movq	%r13, %rdx
	salq	$4, %rdx
	movq	%rax, 8(%rbx,%rdx)
	movq	40(%rsp), %rax
	leaq	1(%rax), %rdx
	jmp	.L504
.L796:
	leaq	32(%rbx,%rax), %r15
	leaq	1107(%rsp), %rax
	addl	$3, %r11d
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	cmpb	$40, 1107(%rsp)
	movl	%r11d, node_pool_pos(%rip)
	je	.L813
.L502:
	movslq	%r13d, %r13
	movq	%r13, %rdx
	salq	$4, %rdx
	movq	%rax, (%rbx,%rdx)
	movq	40(%rsp), %rdx
	leaq	1(%rdx), %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	cmpb	$40, 1(%rdx)
	je	.L814
.L503:
	salq	$4, %r13
	movq	%rax, 8(%rbx,%r13)
	movq	40(%rsp), %rax
	leaq	1(%rax), %rcx
	jmp	.L501
.L795:
	movslq	node_pool_pos(%rip), %r13
	leal	1(%r13), %eax
	movq	%r13, %r12
	movl	%eax, node_pool_pos(%rip)
	salq	$4, %r12
	leaq	2(%rdi), %rax
	movq	%rax, 40(%rsp)
	addq	%rbx, %r12
	xorl	%eax, %eax
	cmpb	$40, 2(%rdi)
	je	.L815
.L512:
	movq	%r13, %rdx
	salq	$4, %rdx
	movq	%rax, (%rbx,%rdx)
	movq	40(%rsp), %rdx
	leaq	1(%rdx), %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	cmpb	$40, 1(%rdx)
	je	.L816
.L513:
	movq	%r13, %rdx
	salq	$4, %rdx
	movq	%rax, 8(%rbx,%rdx)
	jmp	.L511
.L794:
	addl	$2, %eax
	leaq	16(%rbx,%rcx), %r13
	movl	%eax, node_pool_pos(%rip)
	leaq	3(%rdx), %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	cmpb	$40, 3(%rdx)
	je	.L817
.L509:
	movslq	%r12d, %r12
	movq	%r12, %rdx
	salq	$4, %rdx
	movq	%rax, (%rbx,%rdx)
	movq	40(%rsp), %rdx
	leaq	1(%rdx), %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	cmpb	$40, 1(%rdx)
	je	.L818
.L510:
	salq	$4, %r12
	movq	%rax, 8(%rbx,%r12)
	movq	40(%rsp), %rax
	leaq	1(%rax), %rdi
	jmp	.L508
.L803:
	leaq	40(%rsp), %rdi
	call	create_tree_i
	jmp	.L488
.L818:
	leaq	40(%rsp), %rdi
	movq	%rsi, 24(%rsp)
	call	create_tree_i
	movq	24(%rsp), %rsi
	jmp	.L510
.L817:
	leaq	40(%rsp), %rdi
	movq	%rsi, 24(%rsp)
	call	create_tree_i
	movq	24(%rsp), %rsi
	jmp	.L509
.L816:
	leaq	40(%rsp), %rdi
	movq	%rsi, 24(%rsp)
	call	create_tree_i
	movq	24(%rsp), %rsi
	jmp	.L513
.L815:
	leaq	40(%rsp), %rdi
	movq	%rsi, 24(%rsp)
	call	create_tree_i
	movq	24(%rsp), %rsi
	jmp	.L512
.L814:
	leaq	40(%rsp), %rdi
	movq	%rsi, 24(%rsp)
	call	create_tree_i
	movq	24(%rsp), %rsi
	jmp	.L503
.L813:
	leaq	40(%rsp), %rdi
	movq	%rsi, 24(%rsp)
	call	create_tree_i
	movq	24(%rsp), %rsi
	jmp	.L502
.L812:
	leaq	40(%rsp), %rdi
	movq	%rsi, 24(%rsp)
	call	create_tree_i
	movq	24(%rsp), %rsi
	jmp	.L506
.L811:
	leaq	40(%rsp), %rdi
	movq	%rsi, 24(%rsp)
	call	create_tree_i
	movq	24(%rsp), %rsi
	jmp	.L505
.L810:
	leaq	40(%rsp), %rdi
	call	create_tree_i
	jmp	.L494
.L809:
	leaq	40(%rsp), %rdi
	call	create_tree_i
	jmp	.L493
.L808:
	leaq	40(%rsp), %rdi
	call	create_tree_i
	jmp	.L498
.L807:
	leaq	40(%rsp), %rdi
	call	create_tree_i
	jmp	.L497
.L806:
	leaq	40(%rsp), %rdi
	call	create_tree_i
	jmp	.L485
.L805:
	leaq	40(%rsp), %rdi
	call	create_tree_i
	jmp	.L484
.L804:
	leaq	40(%rsp), %rdi
	call	create_tree_i
	jmp	.L489
.L802:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE28:
	.size	main, .-main
	.globl	node_pool_pos
	.bss
	.align 4
	.type	node_pool_pos, @object
	.size	node_pool_pos, 4
node_pool_pos:
	.zero	4
	.globl	node_pool
	.align 32
	.type	node_pool, @object
	.size	node_pool, 16000
node_pool:
	.zero	16000
	.ident	"GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	1f - 0f
	.long	4f - 1f
	.long	5
0:
	.string	"GNU"
1:
	.align 8
	.long	0xc0000002
	.long	3f - 2f
2:
	.long	0x3
3:
	.align 8
4:

rule
	.file	"temp.c"
	.text
	.p2align 4
	.globl	create_node
	.type	create_node, @function
create_node:
.LFB23:
	.cfi_startproc
	endbr64
	movslq	node_pool_pos(%rip), %rax
	leal	1(%rax), %edx
	salq	$4, %rax
	movl	%edx, node_pool_pos(%rip)
	leaq	node_pool(%rip), %rdx
	addq	%rdx, %rax
	ret
	.cfi_endproc
.LFE23:
	.size	create_node, .-create_node
	.p2align 4
	.globl	create_tree_i
	.type	create_tree_i, @function
create_tree_i:
.LFB24:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	xorl	%r15d, %r15d
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	leaq	node_pool(%rip), %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	subq	$16, %rsp
	.cfi_def_cfa_offset 64
	movslq	node_pool_pos(%rip), %rbp
	movq	(%rdi), %rcx
	leal	1(%rbp), %r13d
	movq	%rbp, %rsi
	leaq	1(%rcx), %rdx
	movl	%r13d, node_pool_pos(%rip)
	salq	$4, %rsi
	movq	%rdx, (%rdi)
	cmpb	$40, 1(%rcx)
	leaq	(%r12,%rsi), %r14
	je	.L18
.L4:
	movq	%rbp, %rax
	xorl	%r13d, %r13d
	salq	$4, %rax
	movq	%r15, (%r12,%rax)
	leaq	1(%rdx), %rax
	movq	%rax, (%rdi)
	cmpb	$40, 1(%rdx)
	je	.L19
.L9:
	salq	$4, %rbp
	addq	$1, %rax
	movq	%r13, 8(%r12,%rbp)
	movq	%rax, (%rdi)
	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	movq	%r14, %rax
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L18:
	.cfi_restore_state
	movq	%rbp, %rax
	leaq	16(%r12,%rsi), %r15
	addl	$2, %eax
	movl	%eax, node_pool_pos(%rip)
	leaq	2(%rcx), %rax
	movq	%rax, (%rdi)
	cmpb	$40, 2(%rcx)
	je	.L20
	movslq	%r13d, %r13
	movq	%r13, %rdx
	salq	$4, %rdx
	movq	$0, (%r12,%rdx)
.L6:
	leaq	1(%rax), %rdx
	movq	%rdx, (%rdi)
	cmpb	$40, 1(%rax)
	je	.L21
	salq	$4, %r13
	movq	$0, 8(%r12,%r13)
.L8:
	addq	$1, %rdx
	jmp	.L4
	.p2align 4,,10
	.p2align 3
.L19:
	movslq	node_pool_pos(%rip), %r15
	leaq	2(%rdx), %rcx
	movq	%r15, %r13
	leal	1(%r15), %eax
	salq	$4, %r13
	movl	%eax, node_pool_pos(%rip)
	addq	%r12, %r13
	movq	%rcx, (%rdi)
	cmpb	$40, 2(%rdx)
	je	.L22
	movq	$0, 0(%r13)
.L11:
	leaq	1(%rcx), %rax
	movq	%rax, (%rdi)
	cmpb	$40, 1(%rcx)
	je	.L23
	salq	$4, %r15
	movq	$0, 8(%r12,%r15)
.L13:
	addq	$1, %rax
	jmp	.L9
	.p2align 4,,10
	.p2align 3
.L22:
	movq	%rdi, 8(%rsp)
	call	create_tree_i
	movq	8(%rsp), %rdi
	movq	%rax, 0(%r13)
	movq	(%rdi), %rcx
	jmp	.L11
	.p2align 4,,10
	.p2align 3
.L20:
	movq	%rdi, 8(%rsp)
	movslq	%r13d, %r13
	call	create_tree_i
	movq	8(%rsp), %rdi
	movq	%rax, %r8
	movq	%r13, %rax
	salq	$4, %rax
	movq	%r8, (%r12,%rax)
	movq	(%rdi), %rax
	jmp	.L6
	.p2align 4,,10
	.p2align 3
.L21:
	movq	%rdi, 8(%rsp)
	salq	$4, %r13
	call	create_tree_i
	movq	8(%rsp), %rdi
	movq	%rax, 8(%r12,%r13)
	movq	(%rdi), %rdx
	jmp	.L8
	.p2align 4,,10
	.p2align 3
.L23:
	movq	%rdi, 8(%rsp)
	salq	$4, %r15
	call	create_tree_i
	movq	8(%rsp), %rdi
	movq	%rax, 8(%r12,%r15)
	movq	(%rdi), %rax
	jmp	.L13
	.cfi_endproc
.LFE24:
	.size	create_tree_i, .-create_tree_i
	.p2align 4
	.globl	create_tree
	.type	create_tree, @function
create_tree:
.LFB25:
	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	leaq	1(%rdi), %rax
	leaq	node_pool(%rip), %r10
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	xorl	%ebx, %ebx
	subq	$24, %rsp
	.cfi_def_cfa_offset 64
	movslq	node_pool_pos(%rip), %r9
	movq	%rax, 8(%rsp)
	leal	1(%r9), %r11d
	movq	%r9, %rcx
	salq	$4, %rcx
	movl	%r11d, node_pool_pos(%rip)
	cmpb	$40, 1(%rdi)
	leaq	(%r10,%rcx), %r12
	je	.L55
.L25:
	movq	%r9, %rdx
	xorl	%r11d, %r11d
	salq	$4, %rdx
	movq	%rbx, (%r10,%rdx)
	leaq	1(%rax), %rdx
	movq	%rdx, 8(%rsp)
	cmpb	$40, 1(%rax)
	je	.L56
.L36:
	salq	$4, %r9
	movq	%r12, %rax
	movq	%r11, 8(%r10,%r9)
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L55:
	.cfi_restore_state
	leal	2(%r9), %ebp
	leaq	2(%rdi), %rsi
	xorl	%r13d, %r13d
	movq	%r9, %rdx
	movl	%ebp, node_pool_pos(%rip)
	leaq	16(%r10,%rcx), %rbx
	movq	%rsi, 8(%rsp)
	cmpb	$40, 2(%rdi)
	je	.L57
.L26:
	movslq	%r11d, %r11
	xorl	%ebp, %ebp
	movq	%r11, %rax
	salq	$4, %rax
	movq	%r13, (%r10,%rax)
	leaq	1(%rsi), %rax
	movq	%rax, 8(%rsp)
	cmpb	$40, 1(%rsi)
	je	.L58
.L31:
	salq	$4, %r11
	addq	$1, %rax
	movq	%rbp, 8(%r10,%r11)
	jmp	.L25
	.p2align 4,,10
	.p2align 3
.L56:
	movslq	node_pool_pos(%rip), %rbx
	leaq	2(%rax), %rdx
	xorl	%r13d, %r13d
	movq	%rdx, 8(%rsp)
	leal	1(%rbx), %ebp
	movq	%rbx, %rsi
	movq	%rbx, %rcx
	salq	$4, %rsi
	movl	%ebp, node_pool_pos(%rip)
	cmpb	$40, 2(%rax)
	leaq	(%r10,%rsi), %r11
	je	.L59
.L37:
	movq	%rbx, %rax
	xorl	%ebp, %ebp
	salq	$4, %rax
	movq	%r13, (%r10,%rax)
	leaq	1(%rdx), %rax
	movq	%rax, 8(%rsp)
	cmpb	$40, 1(%rdx)
	je	.L60
.L42:
	movq	%rbx, %rax
	salq	$4, %rax
	movq	%rbp, 8(%r10,%rax)
	jmp	.L36
	.p2align 4,,10
	.p2align 3
.L60:
	movslq	node_pool_pos(%rip), %r13
	leal	1(%r13), %ecx
	movq	%r13, %rax
	movl	%ecx, node_pool_pos(%rip)
	leaq	2(%rdx), %rcx
	salq	$4, %rax
	movq	%rcx, 8(%rsp)
	cmpb	$40, 2(%rdx)
	leaq	(%r10,%rax), %rbp
	je	.L61
	movq	$0, 0(%rbp)
.L44:
	leaq	1(%rcx), %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	cmpb	$40, 1(%rcx)
	je	.L62
.L45:
	movq	%r13, %rdx
	salq	$4, %rdx
	movq	%rax, 8(%r10,%rdx)
	jmp	.L42
	.p2align 4,,10
	.p2align 3
.L57:
	addl	$3, %edx
	leaq	3(%rdi), %rax
	leaq	32(%r10,%rcx), %r13
	movl	%edx, node_pool_pos(%rip)
	movq	%rax, 8(%rsp)
	cmpb	$40, 3(%rdi)
	je	.L63
	movslq	%ebp, %rbp
	movq	%rbp, %rdx
	salq	$4, %rdx
	movq	$0, (%r10,%rdx)
.L28:
	leaq	1(%rax), %rsi
	movq	%rsi, 8(%rsp)
	cmpb	$40, 1(%rax)
	je	.L64
	salq	$4, %rbp
	movq	$0, 8(%r10,%rbp)
.L30:
	addq	$1, %rsi
	jmp	.L26
	.p2align 4,,10
	.p2align 3
.L58:
	movslq	node_pool_pos(%rip), %r13
	leaq	2(%rsi), %rcx
	movq	%rcx, 8(%rsp)
	movq	%r13, %rbp
	leal	1(%r13), %eax
	salq	$4, %rbp
	movl	%eax, node_pool_pos(%rip)
	addq	%r10, %rbp
	cmpb	$40, 2(%rsi)
	je	.L65
	movq	$0, 0(%rbp)
.L33:
	leaq	1(%rcx), %rax
	movq	%rax, 8(%rsp)
	cmpb	$40, 1(%rcx)
	je	.L66
	movq	%r13, %rdx
	salq	$4, %rdx
	movq	$0, 8(%r10,%rdx)
.L35:
	addq	$1, %rax
	jmp	.L31
	.p2align 4,,10
	.p2align 3
.L59:
	addl	$2, %ecx
	leaq	16(%r10,%rsi), %r13
	movl	%ecx, node_pool_pos(%rip)
	leaq	3(%rax), %rcx
	movq	%rcx, 8(%rsp)
	cmpb	$40, 3(%rax)
	je	.L67
	movslq	%ebp, %rbp
	movq	%rbp, %rax
	salq	$4, %rax
	movq	$0, (%r10,%rax)
.L39:
	leaq	1(%rcx), %rdx
	movq	%rdx, 8(%rsp)
	cmpb	$40, 1(%rcx)
	je	.L68
	salq	$4, %rbp
	movq	$0, 8(%r10,%rbp)
.L41:
	addq	$1, %rdx
	jmp	.L37
.L66:
	leaq	8(%rsp), %rdi
	call	create_tree_i
	movq	%r13, %rdx
	salq	$4, %rdx
	movq	%rax, 8(%r10,%rdx)
	movq	8(%rsp), %rax
	jmp	.L35
.L65:
	leaq	8(%rsp), %rdi
	call	create_tree_i
	movq	8(%rsp), %rcx
	movq	%rax, 0(%rbp)
	jmp	.L33
.L68:
	leaq	8(%rsp), %rdi
	salq	$4, %rbp
	call	create_tree_i
	movq	8(%rsp), %rdx
	movq	%rax, 8(%r10,%rbp)
	jmp	.L41
.L67:
	leaq	8(%rsp), %rdi
	movslq	%ebp, %rbp
	call	create_tree_i
	movq	8(%rsp), %rcx
	movq	%rax, %r8
	movq	%rbp, %rax
	salq	$4, %rax
	movq	%r8, (%r10,%rax)
	jmp	.L39
.L62:
	leaq	8(%rsp), %rdi
	call	create_tree_i
	jmp	.L45
.L61:
	leaq	8(%rsp), %rdi
	call	create_tree_i
	movq	8(%rsp), %rcx
	movq	%rax, 0(%rbp)
	jmp	.L44
.L64:
	leaq	8(%rsp), %rdi
	salq	$4, %rbp
	call	create_tree_i
	movq	8(%rsp), %rsi
	movq	%rax, 8(%r10,%rbp)
	jmp	.L30
.L63:
	leaq	8(%rsp), %rdi
	movslq	%ebp, %rbp
	call	create_tree_i
	movq	%rax, %r8
	movq	%rbp, %rax
	salq	$4, %rax
	movq	%r8, (%r10,%rax)
	movq	8(%rsp), %rax
	jmp	.L28
	.cfi_endproc
.LFE25:
	.size	create_tree, .-create_tree
	.p2align 4
	.globl	calc
	.type	calc, @function
calc:
.LFB26:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdi, %rax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$104, %rsp
	.cfi_def_cfa_offset 160
	orq	%rsi, %rax
	movq	%rax, (%rsp)
	je	.L69
	movq	%rdi, %rbp
	movq	%rsi, %r8
	testl	%edx, %edx
	jne	.L71
	testq	%rdi, %rdi
	je	.L233
	testq	%rsi, %rsi
	je	.L233
	movslq	node_pool_pos(%rip), %rax
	movq	(%rsi), %r10
	leaq	node_pool(%rip), %rbx
	leal	1(%rax), %ecx
	movq	%rax, 8(%rsp)
	salq	$4, %rax
	movl	%ecx, node_pool_pos(%rip)
	addq	%rbx, %rax
	testq	%r10, %r10
	movq	%rax, (%rsp)
	sete	%al
.L74:
	movq	0(%rbp), %r9
	movq	%r10, %rdi
	testq	%r9, %r9
	sete	%sil
	orq	%r9, %rdi
	je	.L334
.L231:
	testl	%edx, %edx
	jne	.L76
	testb	%al, %al
	jne	.L234
	testb	%sil, %sil
	jne	.L234
	movslq	%ecx, %rdi
	leal	1(%rcx), %eax
	movq	%rdi, %rcx
	movl	%eax, node_pool_pos(%rip)
	salq	$4, %rcx
	movq	%rdi, 16(%rsp)
	leaq	(%rbx,%rcx), %rsi
	movq	%rsi, 24(%rsp)
.L174:
	movq	(%r10), %r15
	testq	%r15, %r15
	sete	%cl
	testq	%r9, %r9
	je	.L80
.L202:
	movq	(%r9), %r14
	testq	%r14, %r14
	movq	%r14, %rdi
	sete	%sil
	orq	%r15, %rdi
	je	.L81
	testl	%edx, %edx
	jne	.L82
	testb	%cl, %cl
	jne	.L235
	testb	%sil, %sil
	jne	.L235
	leal	1(%rax), %r12d
	cltq
	movq	%rax, 32(%rsp)
	salq	$4, %rax
	addq	%rbx, %rax
	movl	%r12d, node_pool_pos(%rip)
	movq	%rax, 40(%rsp)
.L173:
	movq	(%r15), %r11
	testq	%r11, %r11
	sete	%al
	testq	%r14, %r14
	je	.L86
.L200:
	movq	(%r14), %rcx
	testq	%rcx, %rcx
	movq	%rcx, %rdi
	sete	%sil
	orq	%r11, %rdi
	je	.L87
	testl	%edx, %edx
	jne	.L88
	testb	%al, %al
	jne	.L236
	testb	%sil, %sil
	jne	.L236
	leal	1(%r12), %eax
	movslq	%r12d, %r12
	movq	%r12, %r13
	movl	%eax, node_pool_pos(%rip)
	salq	$4, %r13
	addq	%rbx, %r13
.L172:
	movq	%r8, 88(%rsp)
	movq	(%r11), %rsi
	movq	%r9, 80(%rsp)
	movq	%r10, 72(%rsp)
	movq	%r11, 64(%rsp)
	testq	%rcx, %rcx
	je	.L92
	movq	(%rcx), %rdi
	movl	%edx, 56(%rsp)
	movq	%rcx, 48(%rsp)
	call	calc
	movq	64(%rsp), %r11
	movq	88(%rsp), %r8
	movq	%rax, %rsi
	movq	%r12, %rax
	movq	80(%rsp), %r9
	movl	56(%rsp), %edx
	salq	$4, %rax
	movq	72(%rsp), %r10
	movq	48(%rsp), %rcx
	movq	%rsi, (%rbx,%rax)
	movq	8(%r11), %r11
.L197:
	movq	8(%rcx), %rcx
.L218:
	movq	%r11, %rsi
	movq	%rcx, %rdi
	movq	%r8, 72(%rsp)
	salq	$4, %r12
	movq	%r9, 64(%rsp)
	movq	%r10, 56(%rsp)
	movl	%edx, 48(%rsp)
	call	calc
	movl	48(%rsp), %edx
	movq	56(%rsp), %r10
	movq	64(%rsp), %r9
	movq	72(%rsp), %r8
	movq	%rax, 8(%rbx,%r12)
.L89:
	movq	32(%rsp), %rax
	salq	$4, %rax
	movq	%r13, (%rbx,%rax)
	testq	%r15, %r15
	je	.L93
.L228:
	movq	8(%r15), %r15
	testq	%r15, %r15
	sete	%cl
	testq	%r14, %r14
	je	.L335
.L171:
	movq	8(%r14), %r14
	testq	%r14, %r14
	movq	%r14, %r13
	sete	%al
	orq	%r15, %r13
.L94:
	testq	%r13, %r13
	je	.L95
	testl	%edx, %edx
	jne	.L96
	testb	%al, %al
	jne	.L238
	testb	%cl, %cl
	jne	.L238
	movslq	node_pool_pos(%rip), %r12
	leal	1(%r12), %eax
	movq	%r12, %r13
	movl	%eax, node_pool_pos(%rip)
	salq	$4, %r13
	addq	%rbx, %r13
.L170:
	movq	%r8, 72(%rsp)
	movq	(%r15), %rsi
	movq	%r9, 64(%rsp)
	movq	%r10, 56(%rsp)
	movl	%edx, 48(%rsp)
	testq	%r14, %r14
	je	.L99
	movq	(%r14), %rdi
	call	calc
	movq	72(%rsp), %r8
	movq	64(%rsp), %r9
	movq	%rax, %r11
	movq	%r12, %rax
	movq	56(%rsp), %r10
	movl	48(%rsp), %edx
	salq	$4, %rax
	movq	%r11, (%rbx,%rax)
	movq	8(%r15), %r15
.L194:
	movq	8(%r14), %r14
.L217:
	movq	%r15, %rsi
	movq	%r14, %rdi
	movq	%r8, 72(%rsp)
	salq	$4, %r12
	movq	%r9, 64(%rsp)
	movq	%r10, 56(%rsp)
	movl	%edx, 48(%rsp)
	call	calc
	movl	48(%rsp), %edx
	movq	56(%rsp), %r10
	movq	64(%rsp), %r9
	movq	72(%rsp), %r8
	movq	%rax, 8(%rbx,%r12)
.L95:
	movq	32(%rsp), %rax
	salq	$4, %rax
	movq	%r13, 8(%rbx,%rax)
.L83:
	movq	16(%rsp), %rax
	movq	40(%rsp), %rdi
	salq	$4, %rax
	movq	%rdi, (%rbx,%rax)
	testq	%r10, %r10
	je	.L100
.L227:
	movq	8(%r10), %r10
	testq	%r10, %r10
	sete	%cl
	testq	%r9, %r9
	je	.L336
.L169:
	movq	8(%r9), %r9
	testq	%r9, %r9
	movq	%r9, %r14
	sete	%al
	orq	%r10, %r14
.L101:
	testq	%r14, %r14
	je	.L102
	testl	%edx, %edx
	jne	.L103
	testb	%al, %al
	jne	.L240
	testb	%cl, %cl
	jne	.L240
	movslq	node_pool_pos(%rip), %r12
	leal	1(%r12), %r13d
	movq	%r12, %r14
	movl	%r13d, node_pool_pos(%rip)
	salq	$4, %r14
	addq	%rbx, %r14
.L168:
	movq	(%r10), %r11
	testq	%r11, %r11
	sete	%al
	testq	%r9, %r9
	je	.L106
.L192:
	movq	(%r9), %rcx
	testq	%rcx, %rcx
	movq	%rcx, %rdi
	sete	%sil
	orq	%r11, %rdi
	je	.L107
	testl	%edx, %edx
	jne	.L108
	testb	%al, %al
	jne	.L241
	testb	%sil, %sil
	jne	.L241
	leal	1(%r13), %eax
	movslq	%r13d, %r13
	movl	%eax, node_pool_pos(%rip)
	movq	%r13, %rax
	salq	$4, %rax
	leaq	(%rbx,%rax), %r15
.L167:
	movq	%r8, 72(%rsp)
	movq	(%r11), %rsi
	movq	%r9, 64(%rsp)
	movq	%r10, 56(%rsp)
	movq	%r11, 48(%rsp)
	testq	%rcx, %rcx
	je	.L112
	movq	(%rcx), %rdi
	movl	%edx, 40(%rsp)
	movq	%rcx, 32(%rsp)
	call	calc
	movq	48(%rsp), %r11
	movq	72(%rsp), %r8
	movq	%rax, %rsi
	movq	%r13, %rax
	movq	64(%rsp), %r9
	movl	40(%rsp), %edx
	salq	$4, %rax
	movq	56(%rsp), %r10
	movq	32(%rsp), %rcx
	movq	%rsi, (%rbx,%rax)
	movq	8(%r11), %r11
.L189:
	movq	8(%rcx), %rcx
.L214:
	movq	%r11, %rsi
	movq	%rcx, %rdi
	movq	%r8, 56(%rsp)
	salq	$4, %r13
	movq	%r9, 48(%rsp)
	movq	%r10, 40(%rsp)
	movl	%edx, 32(%rsp)
	call	calc
	movl	32(%rsp), %edx
	movq	40(%rsp), %r10
	movq	48(%rsp), %r9
	movq	56(%rsp), %r8
	movq	%rax, 8(%rbx,%r13)
.L109:
	movq	%r12, %rax
	salq	$4, %rax
	movq	%r15, (%rbx,%rax)
	testq	%r10, %r10
	je	.L113
.L226:
	movq	8(%r10), %r10
	testq	%r10, %r10
	sete	%cl
	testq	%r9, %r9
	je	.L337
.L166:
	movq	8(%r9), %r9
	movq	%r9, %r15
	orq	%r10, %r15
	testq	%r9, %r9
	sete	%al
.L114:
	testq	%r15, %r15
	je	.L115
	testl	%edx, %edx
	jne	.L116
	testb	%al, %al
	jne	.L243
	testb	%cl, %cl
	jne	.L243
	movslq	node_pool_pos(%rip), %r13
	leal	1(%r13), %eax
	movq	%r13, %r15
	movl	%eax, node_pool_pos(%rip)
	salq	$4, %r15
	addq	%rbx, %r15
.L165:
	movq	%r8, 56(%rsp)
	movq	(%r10), %rsi
	testq	%r9, %r9
	je	.L119
	movq	(%r9), %rdi
	movq	%r10, 48(%rsp)
	movl	%edx, 40(%rsp)
	movq	%r9, 32(%rsp)
	call	calc
	movq	48(%rsp), %r10
	movq	56(%rsp), %r8
	movq	%rax, %r11
	movq	%r13, %rax
	movl	40(%rsp), %edx
	movq	32(%rsp), %r9
	salq	$4, %rax
	movq	%r11, (%rbx,%rax)
	movq	8(%r10), %r10
.L186:
	movq	8(%r9), %r9
.L213:
	movq	%r10, %rsi
	movq	%r9, %rdi
	movq	%r8, 40(%rsp)
	salq	$4, %r13
	movl	%edx, 32(%rsp)
	call	calc
	movl	32(%rsp), %edx
	movq	40(%rsp), %r8
	movq	%rax, 8(%rbx,%r13)
.L115:
	salq	$4, %r12
	movq	%r15, 8(%rbx,%r12)
	jmp	.L102
	.p2align 4,,10
	.p2align 3
.L343:
	movq	(%rsi), %r10
	testq	%r10, %r10
	sete	%al
	testq	%rdi, %rdi
	jne	.L74
	testq	%r10, %r10
	je	.L223
	xorl	%r9d, %r9d
.L76:
	movslq	%ecx, %rdi
	leal	1(%rcx), %eax
	movq	%rdi, %rcx
	movq	%rdi, 16(%rsp)
	salq	$4, %rcx
	movl	%eax, node_pool_pos(%rip)
	leaq	(%rbx,%rcx), %rdi
	movq	%rdi, 24(%rsp)
	testq	%r10, %r10
	jne	.L174
	xorl	%r15d, %r15d
	movl	$1, %ecx
	testq	%r9, %r9
	jne	.L202
	movq	$0, (%rdi)
	xorl	%r14d, %r14d
	.p2align 4,,10
	.p2align 3
.L102:
	movq	16(%rsp), %rax
	salq	$4, %rax
	movq	%r14, 8(%rbx,%rax)
.L77:
	movq	8(%rsp), %rax
	movq	24(%rsp), %rdi
	salq	$4, %rax
	movq	%rdi, (%rbx,%rax)
	testq	%r8, %r8
	je	.L120
.L229:
	movq	8(%r8), %r8
	testq	%r8, %r8
	sete	%cl
	testq	%rbp, %rbp
	je	.L338
.L164:
	movq	8(%rbp), %rbp
	movq	%rbp, %r14
	orq	%r8, %r14
	testq	%rbp, %rbp
	sete	%al
.L121:
	testq	%r14, %r14
	je	.L122
	testl	%edx, %edx
	jne	.L123
	testb	%al, %al
	jne	.L245
	testb	%cl, %cl
	jne	.L245
	movslq	node_pool_pos(%rip), %r12
	leal	1(%r12), %r13d
	movq	%r12, %r14
	movl	%r13d, node_pool_pos(%rip)
	salq	$4, %r14
	addq	%rbx, %r14
.L163:
	movq	(%r8), %r10
	testq	%r10, %r10
	sete	%al
	testq	%rbp, %rbp
	je	.L126
.L184:
	movq	0(%rbp), %r9
	testq	%r9, %r9
	movq	%r9, %rdi
	sete	%cl
	orq	%r10, %rdi
	je	.L127
	testl	%edx, %edx
	jne	.L128
	testb	%al, %al
	jne	.L246
	testb	%cl, %cl
	jne	.L246
	leal	1(%r13), %r15d
	movslq	%r13d, %r13
	movq	%r13, %rax
	movl	%r15d, node_pool_pos(%rip)
	salq	$4, %rax
	addq	%rbx, %rax
	movq	%rax, 16(%rsp)
.L162:
	movq	(%r10), %rcx
	testq	%rcx, %rcx
	sete	%al
	testq	%r9, %r9
	je	.L132
	movq	(%r9), %r11
	movq	%rcx, %rdi
	testq	%r11, %r11
	sete	%sil
	orq	%r11, %rdi
	je	.L133
	testl	%edx, %edx
	jne	.L134
	testb	%sil, %sil
	jne	.L247
	testb	%al, %al
	jne	.L247
	leal	1(%r15), %eax
	movslq	%r15d, %r15
	movl	%eax, node_pool_pos(%rip)
	movq	%r15, %rax
	salq	$4, %rax
	addq	%rbx, %rax
	movq	%rax, 24(%rsp)
.L161:
	movq	%r8, 72(%rsp)
	movq	(%rcx), %rsi
	movq	%r10, 64(%rsp)
	movq	%r9, 56(%rsp)
	testq	%r11, %r11
	je	.L138
	movq	(%r11), %rdi
	movq	%rcx, 48(%rsp)
	movl	%edx, 40(%rsp)
	movq	%r11, 32(%rsp)
	call	calc
	movq	48(%rsp), %rcx
	movq	72(%rsp), %r8
	movq	%rax, %rsi
	movq	%r15, %rax
	movq	64(%rsp), %r10
	movl	40(%rsp), %edx
	salq	$4, %rax
	movq	56(%rsp), %r9
	movq	32(%rsp), %r11
	movq	%rsi, (%rbx,%rax)
	movq	8(%rcx), %rcx
.L179:
	movq	8(%r11), %r11
.L208:
	movq	%rcx, %rsi
	movq	%r11, %rdi
	movq	%r8, 56(%rsp)
	salq	$4, %r15
	movq	%r10, 48(%rsp)
	movq	%r9, 40(%rsp)
	movl	%edx, 32(%rsp)
	call	calc
	movl	32(%rsp), %edx
	movq	40(%rsp), %r9
	movq	48(%rsp), %r10
	movq	56(%rsp), %r8
	movq	%rax, 8(%rbx,%r15)
.L135:
	movq	24(%rsp), %rsi
	movq	%r13, %rax
	salq	$4, %rax
	movq	%rsi, (%rbx,%rax)
	testq	%r10, %r10
	je	.L139
.L225:
	movq	8(%r10), %r10
	testq	%r10, %r10
	sete	%sil
	testq	%r9, %r9
	je	.L339
.L160:
	movq	8(%r9), %r9
	testq	%r9, %r9
	movq	%r9, %rcx
	sete	%al
	orq	%r10, %rcx
.L140:
	testq	%rcx, %rcx
	je	.L141
	testl	%edx, %edx
	jne	.L142
	testb	%al, %al
	jne	.L249
	testb	%sil, %sil
	jne	.L249
	movslq	node_pool_pos(%rip), %r15
	leal	1(%r15), %eax
	movq	%r15, %rcx
	movl	%eax, node_pool_pos(%rip)
	salq	$4, %rcx
	addq	%rbx, %rcx
.L159:
	movq	(%r10), %rsi
	testq	%r9, %r9
	je	.L340
	movq	(%r9), %rdi
	movq	%r8, 56(%rsp)
	movq	%r10, 48(%rsp)
	movq	%rcx, 40(%rsp)
	movl	%edx, 32(%rsp)
	movq	%r9, 24(%rsp)
	call	calc
	movq	48(%rsp), %r10
	movq	24(%rsp), %r9
	movq	%rax, %r11
	movq	%r15, %rax
	movl	32(%rsp), %edx
	movq	40(%rsp), %rcx
	salq	$4, %rax
	movq	56(%rsp), %r8
	movq	%r11, (%rbx,%rax)
	movq	8(%r10), %r10
.L207:
	movq	8(%r9), %r9
.L158:
	movq	%r10, %rsi
	movq	%r9, %rdi
	movq	%r8, 40(%rsp)
	salq	$4, %r15
	movq	%rcx, 32(%rsp)
	movl	%edx, 24(%rsp)
	call	calc
	movl	24(%rsp), %edx
	movq	32(%rsp), %rcx
	movq	%rax, 8(%rbx,%r15)
	movq	40(%rsp), %r8
.L141:
	salq	$4, %r13
	movq	%rcx, 8(%rbx,%r13)
.L129:
	movq	16(%rsp), %rdi
	movq	%r12, %rax
	salq	$4, %rax
	movq	%rdi, (%rbx,%rax)
	testq	%r8, %r8
	je	.L147
.L224:
	movq	8(%r8), %r8
	testq	%r8, %r8
	sete	%cl
	testq	%rbp, %rbp
	je	.L341
.L157:
	movq	8(%rbp), %rbp
	testq	%rbp, %rbp
	movq	%rbp, %r15
	sete	%al
	orq	%r8, %r15
.L148:
	testq	%r15, %r15
	je	.L149
	testl	%edx, %edx
	jne	.L150
	testb	%al, %al
	jne	.L251
	testb	%cl, %cl
	jne	.L251
	movslq	node_pool_pos(%rip), %r13
	leal	1(%r13), %eax
	movq	%r13, %r15
	movl	%eax, node_pool_pos(%rip)
	salq	$4, %r15
	addq	%rbx, %r15
.L156:
	movq	(%r8), %rsi
	testq	%rbp, %rbp
	je	.L342
	movq	0(%rbp), %rdi
	movq	%r8, 24(%rsp)
	movl	%edx, 16(%rsp)
	call	calc
	movq	24(%rsp), %r8
	movl	16(%rsp), %edx
	movq	%rax, %r9
	movq	%r13, %rax
	salq	$4, %rax
	movq	%r9, (%rbx,%rax)
	movq	8(%r8), %r8
.L206:
	movq	8(%rbp), %rbp
.L155:
	movq	%r8, %rsi
	movq	%rbp, %rdi
	salq	$4, %r13
	call	calc
	movq	%rax, 8(%rbx,%r13)
.L149:
	salq	$4, %r12
	movq	%r15, 8(%rbx,%r12)
.L122:
	movq	8(%rsp), %rax
	salq	$4, %rax
	movq	%r14, 8(%rbx,%rax)
.L69:
	movq	(%rsp), %rax
	addq	$104, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L71:
	.cfi_restore_state
	movslq	node_pool_pos(%rip), %rax
	leaq	node_pool(%rip), %rbx
	leal	1(%rax), %ecx
	movq	%rax, 8(%rsp)
	salq	$4, %rax
	addq	%rbx, %rax
	movl	%ecx, node_pool_pos(%rip)
	movq	%rax, (%rsp)
	testq	%rsi, %rsi
	jne	.L343
	testq	%rdi, %rdi
	je	.L344
	movq	(%rdi), %r9
	testq	%r9, %r9
	sete	%sil
	je	.L232
	xorl	%r10d, %r10d
	movl	$1, %eax
	jmp	.L231
	.p2align 4,,10
	.p2align 3
.L80:
	testq	%r15, %r15
	je	.L345
	movq	$0, 40(%rsp)
	xorl	%r14d, %r14d
	testl	%edx, %edx
	je	.L83
.L82:
	leal	1(%rax), %r12d
	cltq
	movq	%rax, 32(%rsp)
	salq	$4, %rax
	addq	%rbx, %rax
	movl	%r12d, node_pool_pos(%rip)
	movq	%rax, 40(%rsp)
	testq	%r15, %r15
	jne	.L173
	xorl	%r11d, %r11d
	movl	$1, %eax
	testq	%r14, %r14
	jne	.L200
	movq	40(%rsp), %rax
	xorl	%r13d, %r13d
	movq	$0, (%rax)
	jmp	.L95
	.p2align 4,,10
	.p2align 3
.L86:
	testq	%r11, %r11
	je	.L346
	xorl	%r13d, %r13d
	xorl	%ecx, %ecx
	testl	%edx, %edx
	je	.L89
.L88:
	leal	1(%r12), %eax
	movslq	%r12d, %r12
	movq	%r12, %r13
	movl	%eax, node_pool_pos(%rip)
	salq	$4, %r13
	addq	%rbx, %r13
	testq	%r11, %r11
	jne	.L172
	testq	%rcx, %rcx
	je	.L347
	movq	(%rcx), %rdi
	xorl	%esi, %esi
	movq	%r8, 88(%rsp)
	movq	%r9, 80(%rsp)
	movq	%r10, 72(%rsp)
	movq	%r11, 64(%rsp)
	movl	%edx, 56(%rsp)
	movq	%rcx, 48(%rsp)
	call	calc
	movq	48(%rsp), %rcx
	movl	56(%rsp), %edx
	movq	64(%rsp), %r11
	movq	72(%rsp), %r10
	movq	%rax, 0(%r13)
	movq	80(%rsp), %r9
	movq	88(%rsp), %r8
	jmp	.L197
	.p2align 4,,10
	.p2align 3
.L344:
	movq	$0, (%rax)
	xorl	%r14d, %r14d
	jmp	.L122
	.p2align 4,,10
	.p2align 3
.L123:
	movslq	node_pool_pos(%rip), %r12
	movq	%r12, %r14
	leal	1(%r12), %r13d
	salq	$4, %r14
	movl	%r13d, node_pool_pos(%rip)
	addq	%rbx, %r14
	testq	%r8, %r8
	jne	.L163
	xorl	%r10d, %r10d
	movl	$1, %eax
	testq	%rbp, %rbp
	jne	.L184
	movq	$0, (%r14)
	xorl	%r15d, %r15d
	jmp	.L149
	.p2align 4,,10
	.p2align 3
.L126:
	testq	%r10, %r10
	je	.L348
	movq	$0, 16(%rsp)
	xorl	%r9d, %r9d
	testl	%edx, %edx
	je	.L129
.L128:
	leal	1(%r13), %r15d
	movslq	%r13d, %r13
	movq	%r13, %rax
	movl	%r15d, node_pool_pos(%rip)
	salq	$4, %rax
	addq	%rbx, %rax
	movq	%rax, 16(%rsp)
	testq	%r10, %r10
	jne	.L162
	testq	%r9, %r9
	je	.L349
	movq	(%r9), %r11
	testq	%r11, %r11
	je	.L133
	xorl	%ecx, %ecx
.L134:
	leal	1(%r15), %eax
	movslq	%r15d, %r15
	movl	%eax, node_pool_pos(%rip)
	movq	%r15, %rax
	salq	$4, %rax
	addq	%rbx, %rax
	movq	%rax, 24(%rsp)
	testq	%rcx, %rcx
	jne	.L161
	testq	%r11, %r11
	je	.L350
	movq	(%r11), %rdi
	xorl	%esi, %esi
	movq	%r8, 72(%rsp)
	movq	%r10, 64(%rsp)
	movq	%r9, 56(%rsp)
	movq	%rcx, 48(%rsp)
	movl	%edx, 40(%rsp)
	movq	%r11, 32(%rsp)
	call	calc
	movq	24(%rsp), %rsi
	movq	32(%rsp), %r11
	movl	40(%rsp), %edx
	movq	48(%rsp), %rcx
	movq	56(%rsp), %r9
	movq	64(%rsp), %r10
	movq	%rax, (%rsi)
	movq	72(%rsp), %r8
	jmp	.L179
	.p2align 4,,10
	.p2align 3
.L103:
	movslq	node_pool_pos(%rip), %r12
	movq	%r12, %r14
	leal	1(%r12), %r13d
	salq	$4, %r14
	movl	%r13d, node_pool_pos(%rip)
	addq	%rbx, %r14
	testq	%r10, %r10
	jne	.L168
	xorl	%r11d, %r11d
	movl	$1, %eax
	testq	%r9, %r9
	jne	.L192
	movq	$0, (%r14)
	xorl	%r15d, %r15d
	jmp	.L115
	.p2align 4,,10
	.p2align 3
.L150:
	movslq	node_pool_pos(%rip), %r13
	movq	%r13, %r15
	leal	1(%r13), %eax
	salq	$4, %r15
	movl	%eax, node_pool_pos(%rip)
	addq	%rbx, %r15
	testq	%r8, %r8
	jne	.L156
	testq	%rbp, %rbp
	je	.L351
	movq	0(%rbp), %rdi
	xorl	%esi, %esi
	movq	%r8, 24(%rsp)
	movl	%edx, 16(%rsp)
	call	calc
	movl	16(%rsp), %edx
	movq	24(%rsp), %r8
	movq	%rax, (%r15)
	jmp	.L206
	.p2align 4,,10
	.p2align 3
.L142:
	movslq	node_pool_pos(%rip), %r15
	movq	%r15, %rcx
	leal	1(%r15), %eax
	salq	$4, %rcx
	movl	%eax, node_pool_pos(%rip)
	addq	%rbx, %rcx
	testq	%r10, %r10
	jne	.L159
	testq	%r9, %r9
	je	.L352
	movq	(%r9), %rdi
	xorl	%esi, %esi
	movq	%r8, 56(%rsp)
	movq	%r10, 48(%rsp)
	movq	%rcx, 40(%rsp)
	movl	%edx, 32(%rsp)
	movq	%r9, 24(%rsp)
	call	calc
	movq	40(%rsp), %rcx
	movq	24(%rsp), %r9
	movl	32(%rsp), %edx
	movq	48(%rsp), %r10
	movq	%rax, (%rcx)
	movq	56(%rsp), %r8
	jmp	.L207
	.p2align 4,,10
	.p2align 3
.L96:
	movslq	node_pool_pos(%rip), %r12
	movq	%r12, %r13
	leal	1(%r12), %eax
	salq	$4, %r13
	movl	%eax, node_pool_pos(%rip)
	addq	%rbx, %r13
	testq	%r15, %r15
	jne	.L170
	testq	%r14, %r14
	je	.L353
	movq	(%r14), %rdi
	xorl	%esi, %esi
	movq	%r8, 72(%rsp)
	movq	%r9, 64(%rsp)
	movq	%r10, 56(%rsp)
	movl	%edx, 48(%rsp)
	call	calc
	movl	48(%rsp), %edx
	movq	56(%rsp), %r10
	movq	64(%rsp), %r9
	movq	72(%rsp), %r8
	movq	%rax, 0(%r13)
	jmp	.L194
	.p2align 4,,10
	.p2align 3
.L106:
	testq	%r11, %r11
	je	.L354
	xorl	%r15d, %r15d
	xorl	%ecx, %ecx
	testl	%edx, %edx
	je	.L109
.L108:
	leal	1(%r13), %eax
	movslq	%r13d, %r13
	movl	%eax, node_pool_pos(%rip)
	movq	%r13, %rax
	salq	$4, %rax
	leaq	(%rbx,%rax), %r15
	testq	%r11, %r11
	jne	.L167
	testq	%rcx, %rcx
	je	.L355
	movq	(%rcx), %rdi
	xorl	%esi, %esi
	movq	%r8, 72(%rsp)
	movq	%r9, 64(%rsp)
	movq	%r10, 56(%rsp)
	movq	%r11, 48(%rsp)
	movl	%edx, 40(%rsp)
	movq	%rcx, 32(%rsp)
	call	calc
	movq	32(%rsp), %rcx
	movl	40(%rsp), %edx
	movq	48(%rsp), %r11
	movq	56(%rsp), %r10
	movq	%rax, (%r15)
	movq	64(%rsp), %r9
	movq	72(%rsp), %r8
	jmp	.L189
	.p2align 4,,10
	.p2align 3
.L116:
	movslq	node_pool_pos(%rip), %r13
	movq	%r13, %r15
	leal	1(%r13), %eax
	salq	$4, %r15
	movl	%eax, node_pool_pos(%rip)
	addq	%rbx, %r15
	testq	%r10, %r10
	jne	.L165
	testq	%r9, %r9
	je	.L356
	movq	(%r9), %rdi
	xorl	%esi, %esi
	movq	%r8, 56(%rsp)
	movq	%r10, 48(%rsp)
	movl	%edx, 40(%rsp)
	movq	%r9, 32(%rsp)
	call	calc
	movq	32(%rsp), %r9
	movl	40(%rsp), %edx
	movq	48(%rsp), %r10
	movq	56(%rsp), %r8
	movq	%rax, (%r15)
	jmp	.L186
	.p2align 4,,10
	.p2align 3
.L338:
	movq	%r8, %r14
	movl	$1, %eax
	jmp	.L121
	.p2align 4,,10
	.p2align 3
.L120:
	testq	%rbp, %rbp
	je	.L245
	movl	$1, %ecx
	jmp	.L164
	.p2align 4,,10
	.p2align 3
.L100:
	testq	%r9, %r9
	je	.L240
.L256:
	movl	$1, %ecx
	jmp	.L169
	.p2align 4,,10
	.p2align 3
.L147:
	testq	%rbp, %rbp
	je	.L251
.L252:
	movl	$1, %ecx
	jmp	.L157
	.p2align 4,,10
	.p2align 3
.L336:
	movq	%r10, %r14
	movl	$1, %eax
	jmp	.L101
	.p2align 4,,10
	.p2align 3
.L341:
	movq	%r8, %r15
	movl	$1, %eax
	jmp	.L148
	.p2align 4,,10
	.p2align 3
.L132:
	testq	%rcx, %rcx
	je	.L357
	movq	$0, 24(%rsp)
	xorl	%r11d, %r11d
	testl	%edx, %edx
	jne	.L134
	jmp	.L135
	.p2align 4,,10
	.p2align 3
.L342:
	xorl	%edi, %edi
	movq	%r8, 24(%rsp)
	movl	%edx, 16(%rsp)
	call	calc
	movq	24(%rsp), %r8
	movl	16(%rsp), %edx
	movq	%rax, %r9
	movq	%r13, %rax
	salq	$4, %rax
	movq	%r9, (%rbx,%rax)
	movq	8(%r8), %r8
	jmp	.L155
	.p2align 4,,10
	.p2align 3
.L93:
	testq	%r14, %r14
	je	.L238
.L257:
	movl	$1, %ecx
	jmp	.L171
	.p2align 4,,10
	.p2align 3
.L139:
	testq	%r9, %r9
	je	.L249
.L253:
	movl	$1, %esi
	jmp	.L160
	.p2align 4,,10
	.p2align 3
.L113:
	testq	%r9, %r9
	je	.L243
.L255:
	movl	$1, %ecx
	jmp	.L166
	.p2align 4,,10
	.p2align 3
.L337:
	movq	%r10, %r15
	movl	$1, %eax
	jmp	.L114
	.p2align 4,,10
	.p2align 3
.L335:
	movq	%r15, %r13
	movl	$1, %eax
	jmp	.L94
	.p2align 4,,10
	.p2align 3
.L339:
	movq	%r10, %rcx
	movl	$1, %eax
	jmp	.L140
	.p2align 4,,10
	.p2align 3
.L233:
	movq	$0, (%rsp)
	jmp	.L69
	.p2align 4,,10
	.p2align 3
.L119:
	xorl	%edi, %edi
	movq	%r9, 48(%rsp)
	movq	%r10, 40(%rsp)
	movl	%edx, 32(%rsp)
	call	calc
	movq	40(%rsp), %r10
	movl	32(%rsp), %edx
	movq	%rax, %r11
	movq	%r13, %rax
	movq	48(%rsp), %r9
	movq	56(%rsp), %r8
	salq	$4, %rax
	movq	%r11, (%rbx,%rax)
	movq	8(%r10), %r10
	jmp	.L213
	.p2align 4,,10
	.p2align 3
.L92:
	xorl	%edi, %edi
	movq	%rcx, 56(%rsp)
	movl	%edx, 48(%rsp)
	call	calc
	movq	64(%rsp), %r11
	movl	48(%rsp), %edx
	movq	%rax, %rsi
	movq	%r12, %rax
	movq	56(%rsp), %rcx
	movq	72(%rsp), %r10
	salq	$4, %rax
	movq	80(%rsp), %r9
	movq	88(%rsp), %r8
	movq	%rsi, (%rbx,%rax)
	movq	8(%r11), %r11
	jmp	.L218
	.p2align 4,,10
	.p2align 3
.L138:
	xorl	%edi, %edi
	movq	%r11, 48(%rsp)
	movq	%rcx, 40(%rsp)
	movl	%edx, 32(%rsp)
	call	calc
	movq	40(%rsp), %rcx
	movl	32(%rsp), %edx
	movq	%rax, %rsi
	movq	%r15, %rax
	movq	48(%rsp), %r11
	movq	56(%rsp), %r9
	salq	$4, %rax
	movq	64(%rsp), %r10
	movq	72(%rsp), %r8
	movq	%rsi, (%rbx,%rax)
	movq	8(%rcx), %rcx
	jmp	.L208
	.p2align 4,,10
	.p2align 3
.L112:
	xorl	%edi, %edi
	movq	%rcx, 40(%rsp)
	movl	%edx, 32(%rsp)
	call	calc
	movq	48(%rsp), %r11
	movl	32(%rsp), %edx
	movq	%rax, %rsi
	movq	%r13, %rax
	movq	40(%rsp), %rcx
	movq	56(%rsp), %r10
	salq	$4, %rax
	movq	64(%rsp), %r9
	movq	72(%rsp), %r8
	movq	%rsi, (%rbx,%rax)
	movq	8(%r11), %r11
	jmp	.L214
	.p2align 4,,10
	.p2align 3
.L340:
	xorl	%edi, %edi
	movq	%r8, 56(%rsp)
	movq	%r10, 48(%rsp)
	movq	%r9, 40(%rsp)
	movq	%rcx, 32(%rsp)
	movl	%edx, 24(%rsp)
	call	calc
	movq	48(%rsp), %r10
	movl	24(%rsp), %edx
	movq	%rax, %r11
	movq	%r15, %rax
	movq	32(%rsp), %rcx
	movq	40(%rsp), %r9
	salq	$4, %rax
	movq	56(%rsp), %r8
	movq	%r11, (%rbx,%rax)
	movq	8(%r10), %r10
	jmp	.L158
	.p2align 4,,10
	.p2align 3
.L99:
	xorl	%edi, %edi
	call	calc
	movl	48(%rsp), %edx
	movq	56(%rsp), %r10
	movq	%rax, %r11
	movq	%r12, %rax
	movq	64(%rsp), %r9
	movq	72(%rsp), %r8
	salq	$4, %rax
	movq	%r11, (%rbx,%rax)
	movq	8(%r15), %r15
	jmp	.L217
	.p2align 4,,10
	.p2align 3
.L234:
	movq	$0, 24(%rsp)
	jmp	.L77
	.p2align 4,,10
	.p2align 3
.L245:
	xorl	%r14d, %r14d
	jmp	.L122
	.p2align 4,,10
	.p2align 3
.L240:
	xorl	%r14d, %r14d
	jmp	.L102
	.p2align 4,,10
	.p2align 3
.L251:
	xorl	%r15d, %r15d
	jmp	.L149
	.p2align 4,,10
	.p2align 3
.L349:
	movq	$0, (%rax)
	xorl	%ecx, %ecx
	jmp	.L141
	.p2align 4,,10
	.p2align 3
.L351:
	xorl	%esi, %esi
	xorl	%edi, %edi
	movq	%r8, 24(%rsp)
	movl	%edx, 16(%rsp)
	call	calc
	movl	16(%rsp), %edx
	movq	24(%rsp), %r8
	movq	%rax, (%r15)
	jmp	.L155
	.p2align 4,,10
	.p2align 3
.L127:
	movq	%r12, %rax
	salq	$4, %rax
	movq	$0, (%rbx,%rax)
	testq	%r8, %r8
	jne	.L224
	jmp	.L252
	.p2align 4,,10
	.p2align 3
.L81:
	movq	16(%rsp), %rax
	salq	$4, %rax
	movq	$0, (%rbx,%rax)
	testq	%r10, %r10
	jne	.L227
	jmp	.L256
	.p2align 4,,10
	.p2align 3
.L334:
	movq	8(%rsp), %rax
	salq	$4, %rax
	movq	$0, (%rbx,%rax)
	jmp	.L229
	.p2align 4,,10
	.p2align 3
.L238:
	xorl	%r13d, %r13d
	jmp	.L95
	.p2align 4,,10
	.p2align 3
.L249:
	xorl	%ecx, %ecx
	jmp	.L141
	.p2align 4,,10
	.p2align 3
.L243:
	xorl	%r15d, %r15d
	jmp	.L115
	.p2align 4,,10
	.p2align 3
.L350:
	xorl	%esi, %esi
	xorl	%edi, %edi
	movq	%r8, 72(%rsp)
	movq	%r10, 64(%rsp)
	movq	%r9, 56(%rsp)
	movq	%r11, 48(%rsp)
	movq	%rcx, 40(%rsp)
	movl	%edx, 32(%rsp)
	call	calc
	movq	24(%rsp), %rsi
	movl	32(%rsp), %edx
	movq	40(%rsp), %rcx
	movq	48(%rsp), %r11
	movq	56(%rsp), %r9
	movq	64(%rsp), %r10
	movq	%rax, (%rsi)
	movq	72(%rsp), %r8
	jmp	.L208
	.p2align 4,,10
	.p2align 3
.L347:
	xorl	%esi, %esi
	xorl	%edi, %edi
	movq	%r8, 88(%rsp)
	movq	%r9, 80(%rsp)
	movq	%r10, 72(%rsp)
	movq	%r11, 64(%rsp)
	movq	%rcx, 56(%rsp)
	movl	%edx, 48(%rsp)
	call	calc
	movl	48(%rsp), %edx
	movq	56(%rsp), %rcx
	movq	64(%rsp), %r11
	movq	72(%rsp), %r10
	movq	%rax, 0(%r13)
	movq	80(%rsp), %r9
	movq	88(%rsp), %r8
	jmp	.L218
	.p2align 4,,10
	.p2align 3
.L356:
	xorl	%esi, %esi
	xorl	%edi, %edi
	movq	%r8, 56(%rsp)
	movq	%r9, 48(%rsp)
	movq	%r10, 40(%rsp)
	movl	%edx, 32(%rsp)
	call	calc
	movl	32(%rsp), %edx
	movq	40(%rsp), %r10
	movq	48(%rsp), %r9
	movq	56(%rsp), %r8
	movq	%rax, (%r15)
	jmp	.L213
	.p2align 4,,10
	.p2align 3
.L355:
	xorl	%esi, %esi
	xorl	%edi, %edi
	movq	%r8, 72(%rsp)
	movq	%r9, 64(%rsp)
	movq	%r10, 56(%rsp)
	movq	%r11, 48(%rsp)
	movq	%rcx, 40(%rsp)
	movl	%edx, 32(%rsp)
	call	calc
	movl	32(%rsp), %edx
	movq	40(%rsp), %rcx
	movq	48(%rsp), %r11
	movq	56(%rsp), %r10
	movq	%rax, (%r15)
	movq	64(%rsp), %r9
	movq	72(%rsp), %r8
	jmp	.L214
	.p2align 4,,10
	.p2align 3
.L353:
	xorl	%esi, %esi
	xorl	%edi, %edi
	movq	%r8, 72(%rsp)
	movq	%r9, 64(%rsp)
	movq	%r10, 56(%rsp)
	movl	%edx, 48(%rsp)
	call	calc
	movl	48(%rsp), %edx
	movq	56(%rsp), %r10
	movq	64(%rsp), %r9
	movq	72(%rsp), %r8
	movq	%rax, 0(%r13)
	jmp	.L217
	.p2align 4,,10
	.p2align 3
.L352:
	xorl	%esi, %esi
	xorl	%edi, %edi
	movq	%r8, 56(%rsp)
	movq	%r10, 48(%rsp)
	movq	%r9, 40(%rsp)
	movq	%rcx, 32(%rsp)
	movl	%edx, 24(%rsp)
	call	calc
	movq	32(%rsp), %rcx
	movl	24(%rsp), %edx
	movq	40(%rsp), %r9
	movq	48(%rsp), %r10
	movq	%rax, (%rcx)
	movq	56(%rsp), %r8
	jmp	.L158
	.p2align 4,,10
	.p2align 3
.L107:
	movq	%r12, %rax
	salq	$4, %rax
	movq	$0, (%rbx,%rax)
	testq	%r10, %r10
	jne	.L226
	jmp	.L255
	.p2align 4,,10
	.p2align 3
.L87:
	movq	32(%rsp), %rax
	salq	$4, %rax
	movq	$0, (%rbx,%rax)
	testq	%r15, %r15
	jne	.L228
	jmp	.L257
	.p2align 4,,10
	.p2align 3
.L133:
	movq	%r13, %rax
	salq	$4, %rax
	movq	$0, (%rbx,%rax)
	testq	%r10, %r10
	jne	.L225
	jmp	.L253
	.p2align 4,,10
	.p2align 3
.L223:
	movq	(%rsp), %rax
	movq	$0, (%rax)
	movq	8(%r8), %r14
	movl	$1, %eax
	testq	%r14, %r14
	movq	%r14, %r8
	sete	%cl
	jmp	.L121
	.p2align 4,,10
	.p2align 3
.L232:
	movq	$0, (%rax)
	movl	$1, %ecx
	jmp	.L164
	.p2align 4,,10
	.p2align 3
.L345:
	movq	16(%rsp), %rax
	salq	$4, %rax
	movq	$0, (%rbx,%rax)
	movq	8(%r10), %r14
	movl	$1, %eax
	testq	%r14, %r14
	movq	%r14, %r10
	sete	%cl
	jmp	.L101
	.p2align 4,,10
	.p2align 3
.L348:
	movq	%r12, %rax
	salq	$4, %rax
	movq	$0, (%rbx,%rax)
	movq	8(%r8), %r15
	movl	$1, %eax
	testq	%r15, %r15
	movq	%r15, %r8
	sete	%cl
	jmp	.L148
.L357:
	movq	%r13, %rax
	salq	$4, %rax
	movq	$0, (%rbx,%rax)
	movq	8(%r10), %rcx
	movl	$1, %eax
	testq	%rcx, %rcx
	movq	%rcx, %r10
	sete	%sil
	jmp	.L140
.L354:
	movq	%r12, %rax
	salq	$4, %rax
	movq	$0, (%rbx,%rax)
	movq	8(%r10), %r15
	movl	$1, %eax
	testq	%r15, %r15
	movq	%r15, %r10
	sete	%cl
	jmp	.L114
.L346:
	movq	32(%rsp), %rax
	salq	$4, %rax
	movq	$0, (%rbx,%rax)
	movq	8(%r15), %r13
	movl	$1, %eax
	testq	%r13, %r13
	movq	%r13, %r15
	sete	%cl
	jmp	.L94
.L246:
	movq	$0, 16(%rsp)
	jmp	.L129
.L235:
	movq	$0, 40(%rsp)
	jmp	.L83
.L241:
	xorl	%r15d, %r15d
	jmp	.L109
.L236:
	xorl	%r13d, %r13d
	jmp	.L89
.L247:
	movq	$0, 24(%rsp)
	jmp	.L135
	.cfi_endproc
.LFE26:
	.size	calc, .-calc
	.p2align 4
	.globl	display_tree
	.type	display_tree, @function
display_tree:
.LFB27:
	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	movl	$40, %edi
	subq	$8, %rsp
	.cfi_def_cfa_offset 48
	movq	stdout(%rip), %rsi
	call	putc@PLT
	movq	(%rbx), %rbp
	testq	%rbp, %rbp
	je	.L359
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%rbp), %r12
	testq	%r12, %r12
	je	.L360
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%r12), %r13
	testq	%r13, %r13
	je	.L361
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%r13), %rdi
	testq	%rdi, %rdi
	je	.L362
	call	display_tree
.L362:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r13), %rdi
	testq	%rdi, %rdi
	je	.L363
	call	display_tree
.L363:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L361:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r12), %r12
	testq	%r12, %r12
	je	.L364
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%r12), %rdi
	testq	%rdi, %rdi
	je	.L365
	call	display_tree
.L365:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r12), %rdi
	testq	%rdi, %rdi
	je	.L366
	call	display_tree
.L366:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L364:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L360:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%rbp), %rbp
	testq	%rbp, %rbp
	je	.L367
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%rbp), %r12
	testq	%r12, %r12
	je	.L368
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%r12), %rdi
	testq	%rdi, %rdi
	je	.L369
	call	display_tree
.L369:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r12), %rdi
	testq	%rdi, %rdi
	je	.L370
	call	display_tree
.L370:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L368:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%rbp), %rbp
	testq	%rbp, %rbp
	je	.L371
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%rbp), %rdi
	testq	%rdi, %rdi
	je	.L372
	call	display_tree
.L372:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%rbp), %rdi
	testq	%rdi, %rdi
	je	.L373
	call	display_tree
.L373:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L371:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L367:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L359:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%rbx), %rbx
	testq	%rbx, %rbx
	je	.L374
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%rbx), %rbp
	testq	%rbp, %rbp
	je	.L375
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%rbp), %r12
	testq	%r12, %r12
	je	.L376
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%r12), %rdi
	testq	%rdi, %rdi
	je	.L377
	call	display_tree
.L377:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r12), %rdi
	testq	%rdi, %rdi
	je	.L378
	call	display_tree
.L378:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L376:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%rbp), %rbp
	testq	%rbp, %rbp
	je	.L379
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%rbp), %rdi
	testq	%rdi, %rdi
	je	.L380
	call	display_tree
.L380:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%rbp), %rdi
	testq	%rdi, %rdi
	je	.L381
	call	display_tree
.L381:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L379:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L375:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%rbx), %rbx
	testq	%rbx, %rbx
	je	.L382
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%rbx), %rbp
	testq	%rbp, %rbp
	je	.L383
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%rbp), %rdi
	testq	%rdi, %rdi
	je	.L384
	call	display_tree
.L384:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%rbp), %rdi
	testq	%rdi, %rdi
	je	.L385
	call	display_tree
.L385:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L383:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%rbx), %rbx
	testq	%rbx, %rbx
	je	.L386
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%rbx), %rdi
	testq	%rdi, %rdi
	je	.L387
	call	display_tree
.L387:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%rbx), %rdi
	testq	%rdi, %rdi
	je	.L388
	call	display_tree
.L388:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L386:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L382:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L374:
	movq	stdout(%rip), %rsi
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	movl	$41, %edi
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	jmp	putc@PLT
	.cfi_endproc
.LFE27:
	.size	display_tree, .-display_tree
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"%s%s%s"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB28:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	leaq	node_pool(%rip), %rbx
	subq	$2152, %rsp
	.cfi_def_cfa_offset 2208
	movq	%fs:40, %rax
	movq	%rax, 2136(%rsp)
	xorl	%eax, %eax
	leaq	80(%rsp), %rax
	leaq	1104(%rsp), %r14
	movq	%rax, 16(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, 8(%rsp)
	.p2align 4,,10
	.p2align 3
.L481:
	movq	16(%rsp), %rdx
	movq	8(%rsp), %rsi
	xorl	%eax, %eax
	movq	%r14, %rcx
	leaq	.LC0(%rip), %rdi
	movl	$0, node_pool_pos(%rip)
	call	__isoc99_scanf@PLT
	cmpl	$3, %eax
	jne	.L789
	movslq	node_pool_pos(%rip), %r10
	xorl	%ecx, %ecx
	leaq	81(%rsp), %rdx
	movq	%r10, %r12
	leal	1(%r10), %r11d
	movq	%r10, %rax
	salq	$4, %r12
	cmpb	$40, 81(%rsp)
	movl	%r11d, node_pool_pos(%rip)
	leaq	(%rbx,%r12), %rbp
	je	.L790
.L482:
	movq	%r10, %rax
	xorl	%r9d, %r9d
	salq	$4, %rax
	movq	%rcx, (%rbx,%rax)
	leaq	1(%rdx), %rax
	movq	%rax, 40(%rsp)
	cmpb	$40, 1(%rdx)
	je	.L791
.L491:
	salq	$4, %r10
	xorl	%r12d, %r12d
	leaq	1105(%rsp), %rdx
	movq	%r9, 8(%rbx,%r10)
	movslq	%r11d, %r9
	leal	1(%r11), %r10d
	movq	%r9, %rax
	movl	%r10d, node_pool_pos(%rip)
	salq	$4, %rax
	cmpb	$40, 1105(%rsp)
	leaq	(%rbx,%rax), %rsi
	je	.L792
.L500:
	movq	%r9, %rax
	xorl	%r10d, %r10d
	salq	$4, %rax
	movq	%r12, (%rbx,%rax)
	leaq	1(%rdx), %rax
	movq	%rax, 40(%rsp)
	cmpb	$40, 1(%rdx)
	je	.L793
.L507:
	salq	$4, %r9
	xorl	%edx, %edx
	cmpb	$117, 48(%rsp)
	movq	%rbp, %rdi
	sete	%dl
	movq	%r10, 8(%rbx,%r9)
	call	calc
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	movq	%rax, %rbp
	call	putc@PLT
	movq	0(%rbp), %r12
	testq	%r12, %r12
	je	.L514
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%r12), %r13
	testq	%r13, %r13
	je	.L515
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%r13), %r15
	testq	%r15, %r15
	je	.L516
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%r15), %rdx
	testq	%rdx, %rdx
	movq	%rdx, 24(%rsp)
	je	.L517
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	24(%rsp), %rdx
	movq	(%rdx), %rdi
	testq	%rdi, %rdi
	je	.L518
	call	display_tree
	movq	24(%rsp), %rdx
.L518:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	movq	%rdx, 24(%rsp)
	call	putc@PLT
	movq	24(%rsp), %rdx
	movq	8(%rdx), %rdi
	testq	%rdi, %rdi
	je	.L519
	call	display_tree
.L519:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L517:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r15), %r15
	testq	%r15, %r15
	je	.L520
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%r15), %rdi
	testq	%rdi, %rdi
	je	.L521
	call	display_tree
.L521:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r15), %rdi
	testq	%rdi, %rdi
	je	.L522
	call	display_tree
.L522:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L520:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L516:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r13), %r13
	testq	%r13, %r13
	je	.L523
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%r13), %r15
	testq	%r15, %r15
	je	.L524
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%r15), %rdi
	testq	%rdi, %rdi
	je	.L525
	call	display_tree
.L525:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r15), %rdi
	testq	%rdi, %rdi
	je	.L526
	call	display_tree
.L526:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L524:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r13), %r13
	testq	%r13, %r13
	je	.L527
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%r13), %rdi
	testq	%rdi, %rdi
	je	.L528
	call	display_tree
.L528:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r13), %rdi
	testq	%rdi, %rdi
	je	.L529
	call	display_tree
.L529:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L527:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L523:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L515:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r12), %r12
	testq	%r12, %r12
	je	.L530
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%r12), %r13
	testq	%r13, %r13
	je	.L531
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%r13), %r15
	testq	%r15, %r15
	je	.L532
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%r15), %rdi
	testq	%rdi, %rdi
	je	.L533
	call	display_tree
.L533:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r15), %rdi
	testq	%rdi, %rdi
	je	.L534
	call	display_tree
.L534:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L532:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r13), %r13
	testq	%r13, %r13
	je	.L535
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%r13), %rdi
	testq	%rdi, %rdi
	je	.L536
	call	display_tree
.L536:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r13), %rdi
	testq	%rdi, %rdi
	je	.L537
	call	display_tree
.L537:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L535:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L531:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r12), %r12
	testq	%r12, %r12
	je	.L538
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%r12), %r13
	testq	%r13, %r13
	je	.L539
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%r13), %rdi
	testq	%rdi, %rdi
	je	.L540
	call	display_tree
.L540:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r13), %rdi
	testq	%rdi, %rdi
	je	.L541
	call	display_tree
.L541:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L539:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r12), %r12
	testq	%r12, %r12
	je	.L542
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%r12), %rdi
	testq	%rdi, %rdi
	je	.L543
	call	display_tree
.L543:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r12), %rdi
	testq	%rdi, %rdi
	je	.L544
	call	display_tree
.L544:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L542:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L538:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L530:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L514:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%rbp), %rbp
	testq	%rbp, %rbp
	je	.L545
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%rbp), %r12
	testq	%r12, %r12
	je	.L546
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%r12), %r13
	testq	%r13, %r13
	je	.L547
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%r13), %r15
	testq	%r15, %r15
	je	.L548
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%r15), %rdi
	testq	%rdi, %rdi
	je	.L549
	call	display_tree
.L549:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r15), %rdi
	testq	%rdi, %rdi
	je	.L550
	call	display_tree
.L550:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L548:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r13), %r13
	testq	%r13, %r13
	je	.L551
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%r13), %rdi
	testq	%rdi, %rdi
	je	.L552
	call	display_tree
.L552:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r13), %rdi
	testq	%rdi, %rdi
	je	.L553
	call	display_tree
.L553:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L551:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L547:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r12), %r12
	testq	%r12, %r12
	je	.L554
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%r12), %r13
	testq	%r13, %r13
	je	.L555
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%r13), %rdi
	testq	%rdi, %rdi
	je	.L556
	call	display_tree
.L556:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r13), %rdi
	testq	%rdi, %rdi
	je	.L557
	call	display_tree
.L557:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L555:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r12), %r12
	testq	%r12, %r12
	je	.L558
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%r12), %rdi
	testq	%rdi, %rdi
	je	.L559
	call	display_tree
.L559:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r12), %rdi
	testq	%rdi, %rdi
	je	.L560
	call	display_tree
.L560:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L558:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L554:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L546:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%rbp), %rbp
	testq	%rbp, %rbp
	je	.L561
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%rbp), %r12
	testq	%r12, %r12
	je	.L562
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%r12), %r13
	testq	%r13, %r13
	je	.L563
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%r13), %rdi
	testq	%rdi, %rdi
	je	.L564
	call	display_tree
.L564:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r13), %rdi
	testq	%rdi, %rdi
	je	.L565
	call	display_tree
.L565:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L563:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r12), %r12
	testq	%r12, %r12
	je	.L566
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%r12), %rdi
	testq	%rdi, %rdi
	je	.L567
	call	display_tree
.L567:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r12), %rdi
	testq	%rdi, %rdi
	je	.L568
	call	display_tree
.L568:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L566:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L562:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%rbp), %r12
	testq	%r12, %r12
	je	.L569
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	(%r12), %rbp
	testq	%rbp, %rbp
	je	.L570
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%rbp), %rdi
	testq	%rdi, %rdi
	je	.L571
	call	display_tree
.L571:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%rbp), %rdi
	testq	%rdi, %rdi
	je	.L572
	call	display_tree
.L572:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L570:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%r12), %rbp
	testq	%rbp, %rbp
	je	.L573
	movq	stdout(%rip), %rsi
	movl	$40, %edi
	call	putc@PLT
	movq	0(%rbp), %rdi
	testq	%rdi, %rdi
	je	.L574
	call	display_tree
.L574:
	movq	stdout(%rip), %rsi
	movl	$44, %edi
	call	putc@PLT
	movq	8(%rbp), %rdi
	testq	%rdi, %rdi
	je	.L575
	call	display_tree
.L575:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L573:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L569:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L561:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
.L545:
	movq	stdout(%rip), %rsi
	movl	$41, %edi
	call	putc@PLT
	movq	stdout(%rip), %rsi
	movl	$10, %edi
	call	putc@PLT
	jmp	.L481
	.p2align 4,,10
	.p2align 3
.L793:
	movslq	node_pool_pos(%rip), %r11
	leaq	2(%rdx), %rdi
	xorl	%r13d, %r13d
	movq	%rdi, 40(%rsp)
	leal	1(%r11), %r12d
	movq	%r11, %rcx
	movq	%r11, %rax
	salq	$4, %rcx
	movl	%r12d, node_pool_pos(%rip)
	cmpb	$40, 2(%rdx)
	leaq	(%rbx,%rcx), %r10
	je	.L794
.L508:
	movq	%r11, %rax
	xorl	%r12d, %r12d
	salq	$4, %rax
	movq	%r13, (%rbx,%rax)
	leaq	1(%rdi), %rax
	movq	%rax, 40(%rsp)
	cmpb	$40, 1(%rdi)
	je	.L795
.L511:
	movq	%r11, %rax
	salq	$4, %rax
	movq	%r12, 8(%rbx,%rax)
	jmp	.L507
	.p2align 4,,10
	.p2align 3
.L792:
	leal	2(%r11), %r13d
	xorl	%r15d, %r15d
	cmpb	$40, 1106(%rsp)
	movl	%r13d, node_pool_pos(%rip)
	leaq	16(%rbx,%rax), %r12
	leaq	1106(%rsp), %rcx
	je	.L796
.L501:
	movslq	%r10d, %r10
	leaq	1(%rcx), %rdx
	xorl	%r11d, %r11d
	movq	%r10, %rax
	movq	%rdx, 40(%rsp)
	salq	$4, %rax
	movq	%r15, (%rbx,%rax)
	cmpb	$40, 1(%rcx)
	je	.L797
.L504:
	salq	$4, %r10
	addq	$1, %rdx
	movq	%r11, 8(%rbx,%r10)
	jmp	.L500
	.p2align 4,,10
	.p2align 3
.L791:
	leal	1(%r11), %r12d
	leaq	2(%rdx), %rcx
	movl	%r12d, node_pool_pos(%rip)
	movq	%rcx, 40(%rsp)
	cmpb	$40, 2(%rdx)
	je	.L798
	movslq	%r11d, %r9
	movq	%r9, %rax
	salq	$4, %rax
	movq	$0, (%rbx,%rax)
.L495:
	leaq	1(%rcx), %rax
	movq	%rax, 40(%rsp)
	cmpb	$40, 1(%rcx)
	je	.L799
	movq	%r9, %rax
	salq	$4, %rax
	movq	$0, 8(%rbx,%rax)
.L499:
	salq	$4, %r9
	movl	%r12d, %r11d
	addq	%rbx, %r9
	jmp	.L491
	.p2align 4,,10
	.p2align 3
.L790:
	leal	2(%r10), %r13d
	cmpb	$40, 82(%rsp)
	leaq	82(%rsp), %rcx
	movl	%r13d, node_pool_pos(%rip)
	je	.L800
	movslq	%r11d, %r9
	movq	%r9, %rax
	salq	$4, %rax
	movq	$0, (%rbx,%rax)
.L486:
	leaq	1(%rcx), %rdx
	movq	%rdx, 40(%rsp)
	cmpb	$40, 1(%rcx)
	je	.L801
	salq	$4, %r9
	movl	%r13d, %r11d
	movq	$0, 8(%rbx,%r9)
.L490:
	leaq	16(%rbx,%r12), %rcx
	addq	$1, %rdx
	jmp	.L482
	.p2align 4,,10
	.p2align 3
.L789:
	movq	2136(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L802
	addq	$2152, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L801:
	.cfi_restore_state
	leal	1(%r13), %eax
	movl	%eax, node_pool_pos(%rip)
	leaq	2(%rcx), %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	cmpb	$40, 2(%rcx)
	je	.L803
.L488:
	movslq	%r13d, %r13
	movq	%r13, %rdx
	salq	$4, %rdx
	movq	%rax, (%rbx,%rdx)
	movq	40(%rsp), %rdx
	leaq	1(%rdx), %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	cmpb	$40, 1(%rdx)
	je	.L804
.L489:
	salq	$4, %r13
	salq	$4, %r9
	movl	node_pool_pos(%rip), %r11d
	leaq	(%rbx,%r13), %rcx
	movq	%rax, 8(%rcx)
	movq	40(%rsp), %rax
	movq	%rcx, 8(%rbx,%r9)
	leaq	1(%rax), %rdx
	jmp	.L490
.L800:
	addl	$3, %eax
	movl	%eax, node_pool_pos(%rip)
	leaq	83(%rsp), %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	cmpb	$40, 83(%rsp)
	je	.L805
.L484:
	movslq	%r13d, %r13
	movq	%r13, %rdx
	salq	$4, %rdx
	movq	%rax, (%rbx,%rdx)
	movq	40(%rsp), %rdx
	leaq	1(%rdx), %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	cmpb	$40, 1(%rdx)
	je	.L806
.L485:
	salq	$4, %r13
	movslq	%r11d, %r9
	leaq	32(%rbx,%r12), %rdx
	movq	%rax, 8(%rbx,%r13)
	movq	40(%rsp), %rax
	movl	node_pool_pos(%rip), %r13d
	leaq	1(%rax), %rcx
	movq	%r9, %rax
	salq	$4, %rax
	movq	%rdx, (%rbx,%rax)
	jmp	.L486
.L799:
	leal	1(%r12), %eax
	movl	%eax, node_pool_pos(%rip)
	leaq	2(%rcx), %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	cmpb	$40, 2(%rcx)
	je	.L807
.L497:
	movslq	%r12d, %r12
	movq	%r12, %rdx
	salq	$4, %rdx
	movq	%rax, (%rbx,%rdx)
	movq	40(%rsp), %rdx
	leaq	1(%rdx), %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	cmpb	$40, 1(%rdx)
	je	.L808
.L498:
	salq	$4, %r12
	leaq	(%rbx,%r12), %rdx
	movl	node_pool_pos(%rip), %r12d
	movq	%rax, 8(%rdx)
	movq	%r9, %rax
	salq	$4, %rax
	movq	%rdx, 8(%rbx,%rax)
	jmp	.L499
.L798:
	leal	2(%r11), %eax
	movl	%eax, node_pool_pos(%rip)
	leaq	3(%rdx), %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	cmpb	$40, 3(%rdx)
	je	.L809
.L493:
	movslq	%r12d, %r12
	movq	%r12, %rdx
	salq	$4, %rdx
	movq	%rax, (%rbx,%rdx)
	movq	40(%rsp), %rdx
	leaq	1(%rdx), %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	cmpb	$40, 1(%rdx)
	je	.L810
.L494:
	salq	$4, %r12
	movslq	%r11d, %r9
	addq	%rbx, %r12
	movq	%rax, 8(%r12)
	movq	40(%rsp), %rax
	leaq	1(%rax), %rcx
	movq	%r9, %rax
	salq	$4, %rax
	movq	%r12, (%rbx,%rax)
	movl	node_pool_pos(%rip), %r12d
	jmp	.L495
.L797:
	movslq	node_pool_pos(%rip), %r13
	leal	1(%r13), %eax
	movq	%r13, %r11
	movl	%eax, node_pool_pos(%rip)
	salq	$4, %r11
	leaq	2(%rcx), %rax
	movq	%rax, 40(%rsp)
	addq	%rbx, %r11
	xorl	%eax, %eax
	cmpb	$40, 2(%rcx)
	je	.L811
.L505:
	movq	%r13, %rdx
	salq	$4, %rdx
	movq	%rax, (%rbx,%rdx)
	movq	40(%rsp), %rdx
	leaq	1(%rdx), %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	cmpb	$40, 1(%rdx)
	je	.L812
.L506:
	movq	%r13, %rdx
	salq	$4, %rdx
	movq	%rax, 8(%rbx,%rdx)
	movq	40(%rsp), %rax
	leaq	1(%rax), %rdx
	jmp	.L504
.L796:
	leaq	32(%rbx,%rax), %r15
	leaq	1107(%rsp), %rax
	addl	$3, %r11d
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	cmpb	$40, 1107(%rsp)
	movl	%r11d, node_pool_pos(%rip)
	je	.L813
.L502:
	movslq	%r13d, %r13
	movq	%r13, %rdx
	salq	$4, %rdx
	movq	%rax, (%rbx,%rdx)
	movq	40(%rsp), %rdx
	leaq	1(%rdx), %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	cmpb	$40, 1(%rdx)
	je	.L814
.L503:
	salq	$4, %r13
	movq	%rax, 8(%rbx,%r13)
	movq	40(%rsp), %rax
	leaq	1(%rax), %rcx
	jmp	.L501
.L795:
	movslq	node_pool_pos(%rip), %r13
	leal	1(%r13), %eax
	movq	%r13, %r12
	movl	%eax, node_pool_pos(%rip)
	salq	$4, %r12
	leaq	2(%rdi), %rax
	movq	%rax, 40(%rsp)
	addq	%rbx, %r12
	xorl	%eax, %eax
	cmpb	$40, 2(%rdi)
	je	.L815
.L512:
	movq	%r13, %rdx
	salq	$4, %rdx
	movq	%rax, (%rbx,%rdx)
	movq	40(%rsp), %rdx
	leaq	1(%rdx), %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	cmpb	$40, 1(%rdx)
	je	.L816
.L513:
	movq	%r13, %rdx
	salq	$4, %rdx
	movq	%rax, 8(%rbx,%rdx)
	jmp	.L511
.L794:
	addl	$2, %eax
	leaq	16(%rbx,%rcx), %r13
	movl	%eax, node_pool_pos(%rip)
	leaq	3(%rdx), %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	cmpb	$40, 3(%rdx)
	je	.L817
.L509:
	movslq	%r12d, %r12
	movq	%r12, %rdx
	salq	$4, %rdx
	movq	%rax, (%rbx,%rdx)
	movq	40(%rsp), %rdx
	leaq	1(%rdx), %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	cmpb	$40, 1(%rdx)
	je	.L818
.L510:
	salq	$4, %r12
	movq	%rax, 8(%rbx,%r12)
	movq	40(%rsp), %rax
	leaq	1(%rax), %rdi
	jmp	.L508
.L803:
	leaq	40(%rsp), %rdi
	call	create_tree_i
	jmp	.L488
.L818:
	leaq	40(%rsp), %rdi
	movq	%rsi, 24(%rsp)
	call	create_tree_i
	movq	24(%rsp), %rsi
	jmp	.L510
.L817:
	leaq	40(%rsp), %rdi
	movq	%rsi, 24(%rsp)
	call	create_tree_i
	movq	24(%rsp), %rsi
	jmp	.L509
.L816:
	leaq	40(%rsp), %rdi
	movq	%rsi, 24(%rsp)
	call	create_tree_i
	movq	24(%rsp), %rsi
	jmp	.L513
.L815:
	leaq	40(%rsp), %rdi
	movq	%rsi, 24(%rsp)
	call	create_tree_i
	movq	24(%rsp), %rsi
	jmp	.L512
.L814:
	leaq	40(%rsp), %rdi
	movq	%rsi, 24(%rsp)
	call	create_tree_i
	movq	24(%rsp), %rsi
	jmp	.L503
.L813:
	leaq	40(%rsp), %rdi
	movq	%rsi, 24(%rsp)
	call	create_tree_i
	movq	24(%rsp), %rsi
	jmp	.L502
.L812:
	leaq	40(%rsp), %rdi
	movq	%rsi, 24(%rsp)
	call	create_tree_i
	movq	24(%rsp), %rsi
	jmp	.L506
.L811:
	leaq	40(%rsp), %rdi
	movq	%rsi, 24(%rsp)
	call	create_tree_i
	movq	24(%rsp), %rsi
	jmp	.L505
.L810:
	leaq	40(%rsp), %rdi
	call	create_tree_i
	jmp	.L494
.L809:
	leaq	40(%rsp), %rdi
	call	create_tree_i
	jmp	.L493
.L808:
	leaq	40(%rsp), %rdi
	call	create_tree_i
	jmp	.L498
.L807:
	leaq	40(%rsp), %rdi
	call	create_tree_i
	jmp	.L497
.L806:
	leaq	40(%rsp), %rdi
	call	create_tree_i
	jmp	.L485
.L805:
	leaq	40(%rsp), %rdi
	call	create_tree_i
	jmp	.L484
.L804:
	leaq	40(%rsp), %rdi
	call	create_tree_i
	jmp	.L489
.L802:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE28:
	.size	main, .-main
	.globl	node_pool_pos
	.bss
	.align 4
	.type	node_pool_pos, @object
	.size	node_pool_pos, 4
node_pool_pos:
	.zero	4
	.globl	node_pool
	.align 32
	.type	node_pool, @object
	.size	node_pool, 16000
node_pool:
	.zero	16000
	.ident	"GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	1f - 0f
	.long	4f - 1f
	.long	5
0:
	.string	"GNU"
1:
	.align 8
	.long	0xc0000002
	.long	3f - 2f
2:
	.long	0x3
3:
	.align 8
4:

#include <stdio.h>

typedef struct node_t_tag {
	struct node_t_tag *left;
	struct node_t_tag *right;
} node_t;

node_t node_pool[1000];
int node_pool_pos=0;

node_t *create_node(void) {
	return &node_pool[node_pool_pos++];
}

node_t *create_tree_i(const char **tree_str) {
	node_t *node=create_node();
	(*tree_str)++; /* '(' no hazu */
	if(*(*tree_str)=='(') {
		node->left=create_tree_i(tree_str);
	} else {
		node->left=NULL;
	}
	(*tree_str)++; /* ',' no hazu */
	if(*(*tree_str)=='(') {
		node->right=create_tree_i(tree_str);
	} else {
		node->right=NULL;
	}
	(*tree_str)++; /* ')' no hazu */
	return node;
}

node_t *create_tree(const char *tree_str) {
	return create_tree_i(&tree_str);
}

node_t *calc(const node_t *tree1,const node_t *tree2,int is_union) {
	node_t *node;
	if(tree1==NULL && tree2==NULL)return NULL;
	if(!is_union && (tree1==NULL || tree2==NULL))return NULL;
	node=create_node();
	node->left=calc(
		tree1==NULL?NULL:tree1->left,tree2==NULL?NULL:tree2->left,is_union);
	node->right=calc(
		tree1==NULL?NULL:tree1->right,tree2==NULL?NULL:tree2->right,is_union);
	return node;
}

void display_tree(const node_t *node) {
	putchar('(');
	if(node->left!=NULL)display_tree(node->left);
	putchar(',');
	if(node->right!=NULL)display_tree(node->right);
	putchar(')');
}

int main(void) {
	char query[32];
	char A[1024];
	char B[1024];
	while(node_pool_pos=0,scanf("%s%s%s",query,A,B)==3) {
		node_t *tree1=create_tree(A);
		node_t *tree2=create_tree(B);
		node_t *res=calc(tree1,tree2,query[0]=='u');
		display_tree(res);
		putchar('\n');
	}
	return 0;
}
i ((,),(,)) ((,(,)),)
u ((,),(,)) ((,(,)),)
 i ((,),(,)) ((,(,)),)
u ((,),(,)) ((,(,)),)

((,),)
((,(,)),(,))
 ((,),)
((,(,)),(,))

Given the following C code and unoptimized assembly code, your task is to generate highly optimized x86-64 assembly code.
C Code:

```c
#include <stdio.h>

typedef struct node_t_tag {
	struct node_t_tag *left;
	struct node_t_tag *right;
} node_t;

node_t node_pool[1000];
int node_pool_pos=0;

node_t *create_node(void) {
	return &node_pool[node_pool_pos++];
}

node_t *create_tree_i(const char **tree_str) {
	node_t *node=create_node();
	(*tree_str)++; /* '(' no hazu */
	if(*(*tree_str)=='(') {
		node->left=create_tree_i(tree_str);
	} else {
		node->left=NULL;
	}
	(*tree_str)++; /* ',' no hazu */
	if(*(*tree_str)=='(') {
		node->right=create_tree_i(tree_str);
	} else {
		node->right=NULL;
	}
	(*tree_str)++; /* ')' no hazu */
	return node;
}

node_t *create_tree(const char *tree_str) {
	return create_tree_i(&tree_str);
}

node_t *calc(const node_t *tree1,const node_t *tree2,int is_union) {
	node_t *node;
	if(tree1==NULL && tree2==NULL)return NULL;
	if(!is_union && (tree1==NULL || tree2==NULL))return NULL;
	node=create_node();
	node->left=calc(
		tree1==NULL?NULL:tree1->left,tree2==NULL?NULL:tree2->left,is_union);
	node->right=calc(
		tree1==NULL?NULL:tree1->right,tree2==NULL?NULL:tree2->right,is_union);
	return node;
}

void display_tree(const node_t *node) {
	putchar('(');
	if(node->left!=NULL)display_tree(node->left);
	putchar(',');
	if(node->right!=NULL)display_tree(node->right);
	putchar(')');
}

int main(void) {
	char query[32];
	char A[1024];
	char B[1024];
	while(node_pool_pos=0,scanf("%s%s%s",query,A,B)==3) {
		node_t *tree1=create_tree(A);
		node_t *tree2=create_tree(B);
		node_t *res=calc(tree1,tree2,query[0]=='u');
		display_tree(res);
		putchar('\n');
	}
	return 0;
}```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.globl	node_pool
	.bss
	.align 32
	.type	node_pool, @object
	.size	node_pool, 16000
node_pool:
	.zero	16000
	.globl	node_pool_pos
	.align 4
	.type	node_pool_pos, @object
	.size	node_pool_pos, 4
node_pool_pos:
	.zero	4
	.text
	.globl	create_node
	.type	create_node, @function
create_node:
.LFB0:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movl	node_pool_pos(%rip), %eax
	leal	1(%rax), %edx
	movl	%edx, node_pool_pos(%rip)
	cltq
	salq	$4, %rax
	movq	%rax, %rdx
	leaq	node_pool(%rip), %rax
	addq	%rdx, %rax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	create_node, .-create_node
	.globl	create_tree_i
	.type	create_tree_i, @function
create_tree_i:
.LFB1:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$32, %rsp
	movq	%rdi, -24(%rbp)
	call	create_node
	movq	%rax, -8(%rbp)
	movq	-24(%rbp), %rax
	movq	(%rax), %rax
	leaq	1(%rax), %rdx
	movq	-24(%rbp), %rax
	movq	%rdx, (%rax)
	movq	-24(%rbp), %rax
	movq	(%rax), %rax
	movzbl	(%rax), %eax
	cmpb	$40, %al
	jne	.L4
	movq	-24(%rbp), %rax
	movq	%rax, %rdi
	call	create_tree_i
	movq	-8(%rbp), %rdx
	movq	%rax, (%rdx)
	jmp	.L5
.L4:
	movq	-8(%rbp), %rax
	movq	$0, (%rax)
.L5:
	movq	-24(%rbp), %rax
	movq	(%rax), %rax
	leaq	1(%rax), %rdx
	movq	-24(%rbp), %rax
	movq	%rdx, (%rax)
	movq	-24(%rbp), %rax
	movq	(%rax), %rax
	movzbl	(%rax), %eax
	cmpb	$40, %al
	jne	.L6
	movq	-24(%rbp), %rax
	movq	%rax, %rdi
	call	create_tree_i
	movq	-8(%rbp), %rdx
	movq	%rax, 8(%rdx)
	jmp	.L7
.L6:
	movq	-8(%rbp), %rax
	movq	$0, 8(%rax)
.L7:
	movq	-24(%rbp), %rax
	movq	(%rax), %rax
	leaq	1(%rax), %rdx
	movq	-24(%rbp), %rax
	movq	%rdx, (%rax)
	movq	-8(%rbp), %rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	create_tree_i, .-create_tree_i
	.globl	create_tree
	.type	create_tree, @function
create_tree:
.LFB2:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$16, %rsp
	movq	%rdi, -8(%rbp)
	leaq	-8(%rbp), %rax
	movq	%rax, %rdi
	call	create_tree_i
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE2:
	.size	create_tree, .-create_tree
	.globl	calc
	.type	calc, @function
calc:
.LFB3:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$48, %rsp
	movq	%rdi, -24(%rbp)
	movq	%rsi, -32(%rbp)
	movl	%edx, -36(%rbp)
	cmpq	$0, -24(%rbp)
	jne	.L12
	cmpq	$0, -32(%rbp)
	jne	.L12
	movl	$0, %eax
	jmp	.L13
.L12:
	cmpl	$0, -36(%rbp)
	jne	.L14
	cmpq	$0, -24(%rbp)
	je	.L15
	cmpq	$0, -32(%rbp)
	jne	.L14
.L15:
	movl	$0, %eax
	jmp	.L13
.L14:
	call	create_node
	movq	%rax, -8(%rbp)
	cmpq	$0, -32(%rbp)
	je	.L16
	movq	-32(%rbp), %rax
	movq	(%rax), %rcx
	jmp	.L17
.L16:
	movl	$0, %ecx
.L17:
	cmpq	$0, -24(%rbp)
	je	.L18
	movq	-24(%rbp), %rax
	movq	(%rax), %rax
	jmp	.L19
.L18:
	movl	$0, %eax
.L19:
	movl	-36(%rbp), %edx
	movq	%rcx, %rsi
	movq	%rax, %rdi
	call	calc
	movq	-8(%rbp), %rdx
	movq	%rax, (%rdx)
	cmpq	$0, -32(%rbp)
	je	.L20
	movq	-32(%rbp), %rax
	movq	8(%rax), %rcx
	jmp	.L21
.L20:
	movl	$0, %ecx
.L21:
	cmpq	$0, -24(%rbp)
	je	.L22
	movq	-24(%rbp), %rax
	movq	8(%rax), %rax
	jmp	.L23
.L22:
	movl	$0, %eax
.L23:
	movl	-36(%rbp), %edx
	movq	%rcx, %rsi
	movq	%rax, %rdi
	call	calc
	movq	-8(%rbp), %rdx
	movq	%rax, 8(%rdx)
	movq	-8(%rbp), %rax
.L13:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE3:
	.size	calc, .-calc
	.globl	display_tree
	.type	display_tree, @function
display_tree:
.LFB4:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$16, %rsp
	movq	%rdi, -8(%rbp)
	movl	$40, %edi
	call	putchar@PLT
	movq	-8(%rbp), %rax
	movq	(%rax), %rax
	testq	%rax, %rax
	je	.L25
	movq	-8(%rbp), %rax
	movq	(%rax), %rax
	movq	%rax, %rdi
	call	display_tree
.L25:
	movl	$44, %edi
	call	putchar@PLT
	movq	-8(%rbp), %rax
	movq	8(%rax), %rax
	testq	%rax, %rax
	je	.L26
	movq	-8(%rbp), %rax
	movq	8(%rax), %rax
	movq	%rax, %rdi
	call	display_tree
.L26:
	movl	$41, %edi
	call	putchar@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE4:
	.size	display_tree, .-display_tree
	.section	.rodata
.LC0:
	.string	"%s%s%s"
	.text
	.globl	main
	.type	main, @function
main:
.LFB5:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$2128, %rsp
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	jmp	.L28
.L29:
	leaq	-2064(%rbp), %rax
	movq	%rax, %rdi
	call	create_tree
	movq	%rax, -2120(%rbp)
	leaq	-1040(%rbp), %rax
	movq	%rax, %rdi
	call	create_tree
	movq	%rax, -2112(%rbp)
	movzbl	-2096(%rbp), %eax
	cmpb	$117, %al
	sete	%al
	movzbl	%al, %edx
	movq	-2112(%rbp), %rcx
	movq	-2120(%rbp), %rax
	movq	%rcx, %rsi
	movq	%rax, %rdi
	call	calc
	movq	%rax, -2104(%rbp)
	movq	-2104(%rbp), %rax
	movq	%rax, %rdi
	call	display_tree
	movl	$10, %edi
	call	putchar@PLT
.L28:
	movl	$0, node_pool_pos(%rip)
	leaq	-1040(%rbp), %rcx
	leaq	-2064(%rbp), %rdx
	leaq	-2096(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	cmpl	$3, %eax
	je	.L29
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L31
	call	__stack_chk_fail@PLT
.L31:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE5:
	.size	main, .-main
	.ident	"GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	1f - 0f
	.long	4f - 1f
	.long	5
0:
	.string	"GNU"
1:
	.align 8
	.long	0xc0000002
	.long	3f - 2f
2:
	.long	0x3
3:
	.align 8
4:
```

Only output the optimized assembly code. Do not include any other text. Do not write any comments in the assembly code. Wrap the assembly code in ```assembly``` tags.
train
	.file	"temp.c"
	.text
	.globl	node_pool
	.bss
	.align 32
	.type	node_pool, @object
	.size	node_pool, 16000
node_pool:
	.zero	16000
	.globl	node_pool_pos
	.align 4
	.type	node_pool_pos, @object
	.size	node_pool_pos, 4
node_pool_pos:
	.zero	4
	.text
	.globl	create_node
	.type	create_node, @function
create_node:
.LFB0:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movl	node_pool_pos(%rip), %eax
	leal	1(%rax), %edx
	movl	%edx, node_pool_pos(%rip)
	cltq
	salq	$4, %rax
	movq	%rax, %rdx
	leaq	node_pool(%rip), %rax
	addq	%rdx, %rax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	create_node, .-create_node
	.globl	create_tree_i
	.type	create_tree_i, @function
create_tree_i:
.LFB1:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$32, %rsp
	movq	%rdi, -24(%rbp)
	call	create_node
	movq	%rax, -8(%rbp)
	movq	-24(%rbp), %rax
	movq	(%rax), %rax
	leaq	1(%rax), %rdx
	movq	-24(%rbp), %rax
	movq	%rdx, (%rax)
	movq	-24(%rbp), %rax
	movq	(%rax), %rax
	movzbl	(%rax), %eax
	cmpb	$40, %al
	jne	.L4
	movq	-24(%rbp), %rax
	movq	%rax, %rdi
	call	create_tree_i
	movq	-8(%rbp), %rdx
	movq	%rax, (%rdx)
	jmp	.L5
.L4:
	movq	-8(%rbp), %rax
	movq	$0, (%rax)
.L5:
	movq	-24(%rbp), %rax
	movq	(%rax), %rax
	leaq	1(%rax), %rdx
	movq	-24(%rbp), %rax
	movq	%rdx, (%rax)
	movq	-24(%rbp), %rax
	movq	(%rax), %rax
	movzbl	(%rax), %eax
	cmpb	$40, %al
	jne	.L6
	movq	-24(%rbp), %rax
	movq	%rax, %rdi
	call	create_tree_i
	movq	-8(%rbp), %rdx
	movq	%rax, 8(%rdx)
	jmp	.L7
.L6:
	movq	-8(%rbp), %rax
	movq	$0, 8(%rax)
.L7:
	movq	-24(%rbp), %rax
	movq	(%rax), %rax
	leaq	1(%rax), %rdx
	movq	-24(%rbp), %rax
	movq	%rdx, (%rax)
	movq	-8(%rbp), %rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	create_tree_i, .-create_tree_i
	.globl	create_tree
	.type	create_tree, @function
create_tree:
.LFB2:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$16, %rsp
	movq	%rdi, -8(%rbp)
	leaq	-8(%rbp), %rax
	movq	%rax, %rdi
	call	create_tree_i
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE2:
	.size	create_tree, .-create_tree
	.globl	calc
	.type	calc, @function
calc:
.LFB3:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$48, %rsp
	movq	%rdi, -24(%rbp)
	movq	%rsi, -32(%rbp)
	movl	%edx, -36(%rbp)
	cmpq	$0, -24(%rbp)
	jne	.L12
	cmpq	$0, -32(%rbp)
	jne	.L12
	movl	$0, %eax
	jmp	.L13
.L12:
	cmpl	$0, -36(%rbp)
	jne	.L14
	cmpq	$0, -24(%rbp)
	je	.L15
	cmpq	$0, -32(%rbp)
	jne	.L14
.L15:
	movl	$0, %eax
	jmp	.L13
.L14:
	call	create_node
	movq	%rax, -8(%rbp)
	cmpq	$0, -32(%rbp)
	je	.L16
	movq	-32(%rbp), %rax
	movq	(%rax), %rcx
	jmp	.L17
.L16:
	movl	$0, %ecx
.L17:
	cmpq	$0, -24(%rbp)
	je	.L18
	movq	-24(%rbp), %rax
	movq	(%rax), %rax
	jmp	.L19
.L18:
	movl	$0, %eax
.L19:
	movl	-36(%rbp), %edx
	movq	%rcx, %rsi
	movq	%rax, %rdi
	call	calc
	movq	-8(%rbp), %rdx
	movq	%rax, (%rdx)
	cmpq	$0, -32(%rbp)
	je	.L20
	movq	-32(%rbp), %rax
	movq	8(%rax), %rcx
	jmp	.L21
.L20:
	movl	$0, %ecx
.L21:
	cmpq	$0, -24(%rbp)
	je	.L22
	movq	-24(%rbp), %rax
	movq	8(%rax), %rax
	jmp	.L23
.L22:
	movl	$0, %eax
.L23:
	movl	-36(%rbp), %edx
	movq	%rcx, %rsi
	movq	%rax, %rdi
	call	calc
	movq	-8(%rbp), %rdx
	movq	%rax, 8(%rdx)
	movq	-8(%rbp), %rax
.L13:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE3:
	.size	calc, .-calc
	.globl	display_tree
	.type	display_tree, @function
display_tree:
.LFB4:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$16, %rsp
	movq	%rdi, -8(%rbp)
	movl	$40, %edi
	call	putchar@PLT
	movq	-8(%rbp), %rax
	movq	(%rax), %rax
	testq	%rax, %rax
	je	.L25
	movq	-8(%rbp), %rax
	movq	(%rax), %rax
	movq	%rax, %rdi
	call	display_tree
.L25:
	movl	$44, %edi
	call	putchar@PLT
	movq	-8(%rbp), %rax
	movq	8(%rax), %rax
	testq	%rax, %rax
	je	.L26
	movq	-8(%rbp), %rax
	movq	8(%rax), %rax
	movq	%rax, %rdi
	call	display_tree
.L26:
	movl	$41, %edi
	call	putchar@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE4:
	.size	display_tree, .-display_tree
	.section	.rodata
.LC0:
	.string	"%s%s%s"
	.text
	.globl	main
	.type	main, @function
main:
.LFB5:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$2128, %rsp
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	jmp	.L28
.L29:
	leaq	-2064(%rbp), %rax
	movq	%rax, %rdi
	call	create_tree
	movq	%rax, -2120(%rbp)
	leaq	-1040(%rbp), %rax
	movq	%rax, %rdi
	call	create_tree
	movq	%rax, -2112(%rbp)
	movzbl	-2096(%rbp), %eax
	cmpb	$117, %al
	sete	%al
	movzbl	%al, %edx
	movq	-2112(%rbp), %rcx
	movq	-2120(%rbp), %rax
	movq	%rcx, %rsi
	movq	%rax, %rdi
	call	calc
	movq	%rax, -2104(%rbp)
	movq	-2104(%rbp), %rax
	movq	%rax, %rdi
	call	display_tree
	movl	$10, %edi
	call	putchar@PLT
.L28:
	movl	$0, node_pool_pos(%rip)
	leaq	-1040(%rbp), %rcx
	leaq	-2064(%rbp), %rdx
	leaq	-2096(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	cmpl	$3, %eax
	je	.L29
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L31
	call	__stack_chk_fail@PLT
.L31:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE5:
	.size	main, .-main
	.ident	"GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	1f - 0f
	.long	4f - 1f
	.long	5
0:
	.string	"GNU"
1:
	.align 8
	.long	0xc0000002
	.long	3f - 2f
2:
	.long	0x3
3:
	.align 8
4:
