// File: /workspace/github_cpp_makefile_star2_O3/exrd[P]neteruhsp/neteruhsp/neteruhsp.cc
// Function: neteruhsp::generate_and_append_code(neteruhsp::execute_environment_t*, neteruhsp::list_t*)::_::walk(neteruhsp::execute_environment_t*, neteruhsp::ast_node_t const*, neteruhsp::generate_and_append_code(neteruhsp::execute_environment_t*, neteruhsp::list_t*)::generate_context_t*)
static void walk( execute_environment_t* e, const ast_node_t* n, generate_context_t* c )
			{
				switch( n->tag_ )
				{
					case NODE_EMPTY:
						break;

					case NODE_LABEL:
					{
						const auto label_name = n->token_->content_;
						const auto label = search_label( e, label_name );
						assert( label != nullptr );
						label->position_ = static_cast<int>( e->execute_code_->code_size_ );

						code_write( e, OPERATOR_LABEL );
						break;
					}

					case NODE_BLOCK_STATEMENTS:
						if ( n->left_ )
						{ walk( e, n->left_, c ); }
						if ( n->right_ )
						{ walk( e, n->right_, c ); }
						break;

					case NODE_COMMAND:
					{
						assert( n->token_->tag_ == TOKEN_IDENTIFIER );
						const auto command_name = n->token_->content_;

						const auto command = query_command( command_name );
						if ( command == -1 )
						{
							raise_error( "コマンドが見つかりません：%s", command_name );
						}

						const auto top = c->stack_;
						if ( n->left_ != nullptr )
						{
							walk( e, n->left_, c );
						}
						const auto arg_num = c->stack_ -top;

						code_write( e, OPERATOR_COMMAND );
						code_write( e, command );
						code_write( e, arg_num );

						c->stack_ = top;
						break;
					}
					case NODE_ARGUMENTS:
					{
						if ( n->left_ != nullptr )
						{ walk( e, n->left_, c ); }
						if ( n->right_ != nullptr )
						{ walk( e, n->right_, c ); }
						break;
					}

					case NODE_ASSIGN:
					case NODE_ADD_ASSIGN:
					case NODE_SUB_ASSIGN:
					case NODE_MUL_ASSIGN:
					case NODE_DIV_ASSIGN:
					case NODE_MOD_ASSIGN:
					case NODE_BOR_ASSIGN:
					case NODE_BAND_ASSIGN:
					case NODE_BXOR_ASSIGN:
					{
						walk( e, n->left_, c );
						walk( e, n->right_, c );
						switch( n->tag_ )
						{
						case NODE_ASSIGN:		code_write( e, OPERATOR_ASSIGN ); break;
						case NODE_ADD_ASSIGN:	code_write( e, OPERATOR_ADD_ASSIGN ); break;
						case NODE_SUB_ASSIGN:	code_write( e, OPERATOR_SUB_ASSIGN ); break;
						case NODE_MUL_ASSIGN:	code_write( e, OPERATOR_MUL_ASSIGN ); break;
						case NODE_DIV_ASSIGN:	code_write( e, OPERATOR_DIV_ASSIGN ); break;
						case NODE_MOD_ASSIGN:	code_write( e, OPERATOR_MOD_ASSIGN ); break;
						case NODE_BOR_ASSIGN:	code_write( e, OPERATOR_BOR_ASSIGN ); break;
						case NODE_BAND_ASSIGN:	code_write( e, OPERATOR_BAND_ASSIGN ); break;
						case NODE_BXOR_ASSIGN:	code_write( e, OPERATOR_BXOR_ASSIGN ); break;
						default: assert( false ); break;
						}
						c->stack_ -= 2; 
						break;
					}
					case NODE_VARIABLE:
					{
						auto idx_node = n->left_;
						if ( idx_node )
						{
							walk( e, idx_node, c );
						}
						else
						{
							code_write( e, OPERATOR_PUSH_INT );
							code_write( e, 0 );
						}

						const auto var_name = n->token_->content_;
						const auto var = search_variable( e->variable_table_, var_name );
						assert( var != nullptr );

						code_write( e, OPERATOR_PUSH_VARIABLE );
						code_write( e, var );
						++c->stack_;
						break;
					}

					case NODE_EXPRESSION:
						assert( n->left_ != nullptr );
						walk( e, n->left_, c );
						break;

					case NODE_BOR:
					case NODE_BAND:
					case NODE_BXOR:
					case NODE_EQ:
					case NODE_NEQ:
					case NODE_GT:
					case NODE_GTOE:
					case NODE_LT:
					case NODE_LTOE:
					case NODE_ADD:
					case NODE_SUB:
					case NODE_MUL:
					case NODE_DIV:
					case NODE_MOD:
					{
						assert( n->left_ != nullptr );
						walk( e, n->left_, c );
						assert( n->right_ != nullptr );
						walk( e, n->right_, c );

						switch( n->tag_ )
						{
							case NODE_BOR:		code_write( e, OPERATOR_BOR ); break;
							case NODE_BAND:		code_write( e, OPERATOR_BAND ); break;
							case NODE_BXOR:		code_write( e, OPERATOR_BXOR ); break;
							case NODE_EQ:		code_write( e, OPERATOR_EQ ); break;
							case NODE_NEQ:		code_write( e, OPERATOR_NEQ ); break;
							case NODE_GT:		code_write( e, OPERATOR_GT ); break;
							case NODE_GTOE:		code_write( e, OPERATOR_GTOE ); break;
							case NODE_LT:		code_write( e, OPERATOR_LT ); break;
							case NODE_LTOE:		code_write( e, OPERATOR_LTOE ); break;
							case NODE_ADD:		code_write( e, OPERATOR_ADD ); break;
							case NODE_SUB:		code_write( e, OPERATOR_SUB ); break;
							case NODE_MUL:		code_write( e, OPERATOR_MUL ); break;
							case NODE_DIV:		code_write( e, OPERATOR_DIV ); break;
							case NODE_MOD:		code_write( e, OPERATOR_MOD ); break;
							default: assert( false ); break;
						}

						--c->stack_;
						break;
					}

					case NODE_UNARY_MINUS:
					{
						assert( n->left_ != nullptr );
						walk( e, n->left_, c );
						code_write( e, OPERATOR_UNARY_MINUS );
						break;
					}

					case NODE_PRIMITIVE_VALUE:
					{
						switch( n->token_->tag_ )
						{
							case TOKEN_INTEGER:	code_write( e, OPERATOR_PUSH_INT ); code_write( e, atoi( n->token_->content_ ) ); break;
							case TOKEN_REAL:	code_write( e, OPERATOR_PUSH_DOUBLE ); code_write_block( e, atof( n->token_->content_ ) ); break;
							case TOKEN_STRING:	code_write( e, OPERATOR_PUSH_STRING ); code_write( e, n->token_->content_ ); break;
							default: assert( false ); break;
						}
						++c->stack_;
						break;
					}
					case NODE_IDENTIFIER_EXPR:
					{
						assert( n->token_->tag_ == TOKEN_IDENTIFIER );
						const auto ident = n->token_->content_;

						const auto top = c->stack_;
						if ( n->left_ != nullptr )
						{
							walk( e, n->left_, c );
						}
						const auto arg_num = c->stack_ -top;

						const auto function = query_function( ident );
						if ( function >= 0 )
						{
							code_write( e, OPERATOR_FUNCTION );
							code_write( e, function );
							code_write( e, arg_num );
						}
						else
						{
							// システム変数
							const auto sysvar = query_sysvar( ident );
							if ( sysvar >= 0 )
							{
								if ( arg_num > 0 )
								{
									raise_error( "システム変数に添え字はありません : %s", ident );
								}

								code_write( e, OPERATOR_PUSH_SYSVAR );
								code_write( e, sysvar );
							}
							else
							{
								// 配列変数
								if ( arg_num > 1 )
								{
									raise_error( "関数がみつかりません、配列変数の添え字は1次元までです@@ %s", ident );
								}

								const auto var = search_variable( e->variable_table_, ident );
								assert( var != nullptr );

								if ( arg_num == 0 )
								{
									code_write( e, OPERATOR_PUSH_INT );
									code_write( e, 0 );
								}

								code_write( e, OPERATOR_PUSH_VARIABLE );
								code_write( e, var );
							}
						}

						c->stack_ = top +1;
						break;
					}

					case NODE_END:
						code_write( e, OPERATOR_END );
						break;

					case NODE_RETURN:
					{
						if ( n->left_ )
						{
							walk( e, n->left_, c );
							--c->stack_;
						}
						code_write( e, OPERATOR_RETURN );
						code_write( e, n->left_==nullptr ? 0 : 1 );
						break;
					}

					case NODE_GOTO:
					{
						const auto label_node = n->left_;
						assert( label_node != nullptr );
						assert( label_node->tag_ == NODE_LABEL );

						const auto label_name = label_node->token_->content_;
						const auto label = search_label( e, label_name );
						if ( label == nullptr )
						{
							raise_error( "goto：ラベルがみつかりません@@ %s", label_name );
						}

						code_write( e, OPERATOR_GOTO );
						code_write( e, label );
						break;
					}
					case NODE_GOSUB:
					{
						const auto label_node = n->left_;
						assert( label_node != nullptr );
						assert( label_node->tag_ == NODE_LABEL );

						const auto label_name = label_node->token_->content_;
						const auto label = search_label( e, label_name );
						if ( label == nullptr )
						{
							raise_error( "gosub：ラベルがみつかりません@@ %s", label_name );
						}

						code_write( e, OPERATOR_GOSUB );
						code_write( e, label );
						break;
					}

					case NODE_REPEAT:
					{
						if ( n->left_ )
						{
							walk( e, n->left_, c );
							--c->stack_;
						}
						else
						{
							code_write( e, OPERATOR_PUSH_INT );
							code_write( e, -1 );
						}
						const auto pos_head = e->execute_code_->code_size_;
						code_write( e, OPERATOR_REPEAT );
						code_write( e, 0 );// dummy TAIL

						if ( c->repeat_depth_ >= sizeof(c->repeat_head_) /sizeof(*c->repeat_head_) )
						{
							raise_error( "repeat-loop: ソースコード上でネストが深すぎます@@ %d行目", n->token_->appear_line_ );
						}
						c->repeat_head_[c->repeat_depth_] = static_cast<int>( pos_head );
						++c->repeat_depth_;

						code_write( e, OPERATOR_REPEAT_CHECK );
						break;
					}
					case NODE_LOOP:
					{
						if ( c->repeat_depth_ <= 0 )
						{
							raise_error( "repeat-loop: repeatがないのにloopを検出しました@@ %d行目", n->token_->appear_line_ );
						}

						const auto loop_head = e->execute_code_->code_size_;
						code_write( e, OPERATOR_LOOP );

						const auto write_offset = c->repeat_head_[c->repeat_depth_ -1] +1;
						e->execute_code_->code_[ write_offset ] = static_cast<int>( loop_head );
						--c->repeat_depth_;
						break;
					}
					case NODE_CONTINUE:		code_write( e, OPERATOR_CONTINUE ); break;
					case NODE_BREAK:		code_write( e, OPERATOR_BREAK ); break;

					case NODE_IF:
					{
						assert( n->left_ != nullptr );
						walk( e, n->left_, c );

						assert( n->right_ != nullptr );
						const auto dispatcher = n->right_;
						assert( dispatcher->tag_ == NODE_IF_DISPATCHER );

						const auto pos_root = e->execute_code_->code_size_;
						code_write( e, OPERATOR_IF );
						code_write( e, 0 );// dummy FALSE

						walk( e, dispatcher->left_, c );
						const auto pos_true_tail = e->execute_code_->code_size_;
						code_write( e, OPERATOR_JUMP_RELATIVE );
						code_write( e, 0 );// dummy TAIL

						const auto pos_false_head = e->execute_code_->code_size_;
						if ( dispatcher->right_ )
						{
							walk( e, dispatcher->right_, c );
						}

						const auto pos_tail = e->execute_code_->code_size_;
						e->execute_code_->code_[ pos_root +1 ] = static_cast<int>( pos_false_head - pos_root );
						e->execute_code_->code_[ pos_true_tail +1 ] = static_cast<int>( pos_tail - pos_true_tail );
						break;
					}
					case NODE_IF_DISPATCHER:
						assert( false );
						break;

					default: assert( false ); break;
				}
			}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %rbx
leaq 0x39d2(%rip), %r12      # 0xc52c
movl (%r15), %eax
cmpq $0x2a, %rax
ja 0x9778
movslq (%r12,%rax,4), %rax
addq %r12, %rax
jmpq *%rax
movq 0x10(%r15), %rsi
testq %rsi, %rsi
je 0x8b84
movq %rbx, %rdi
movq %r14, %rdx
callq 0x8b3c
movq 0x18(%r15), %r15
testq %r15, %r15
jne 0x8b5a
jmp 0x8c7f
movq 0x10(%r15), %r15
testq %r15, %r15
jne 0x8b5a
leaq 0x6ef7(%rip), %rdi      # 0xfa99
leaq 0x3cf0(%rip), %rsi      # 0xc899
leaq 0x71b2(%rip), %rcx      # 0xfd62
movl $0x1641, %edx           # imm = 0x1641
callq 0x20e0
movq 0x10(%r15), %rsi
testq %rsi, %rsi
je 0x9797
movq %rbx, %rdi
movq %r14, %rdx
callq 0x8b3c
movq 0x18(%r15), %rsi
testq %rsi, %rsi
je 0x97b6
movq %rbx, %rdi
movq %r14, %rdx
callq 0x8b3c
movl (%r15), %r15d
leal -0x10(%r15), %eax
cmpl $0xe, %eax
jae 0x97d5
decl %r15d
movl $0x1, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x8(%rax)
movl %r15d, (%rcx,%rdx,4)
decl (%r14)
jmp 0x8c7f
movq 0x10(%r15), %rsi
movq %rbx, %rdi
movq %r14, %rdx
callq 0x8b3c
movq 0x18(%r15), %rsi
movq %rbx, %rdi
movq %r14, %rdx
callq 0x8b3c
movl (%r15), %r15d
leal -0x5(%r15), %eax
cmpl $0x9, %eax
jae 0x97f4
incl %r15d
movl $0x1, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x8(%rax)
movl %r15d, (%rcx,%rdx,4)
addl $-0x2, (%r14)
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x8(%r15), %rax
cmpl $0x23, (%rax)
jne 0x9813
movq 0x8(%rax), %r12
movl (%r14), %r13d
movq 0x10(%r15), %rsi
movl %r13d, %r15d
testq %rsi, %rsi
je 0x8cbc
movq %rbx, %rdi
movq %r14, %rdx
callq 0x8b3c
movl (%r14), %r15d
movl %r15d, 0x8(%rsp)
subl %r13d, %r15d
leaq 0x6f4c(%rip), %rsi      # 0xfc17
movq %r12, %rdi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2d26
xorl %ebp, %ebp
testb %al, %al
jne 0x8d32
movl %r15d, 0x10(%rsp)
movl %r13d, 0x14(%rsp)
movl $0x18, %r15d
leaq 0xce9b(%rip), %rbp      # 0x15b90
movq %r15, %r13
addq $0x10, %r15
cmpq $0x178, %r15            # imm = 0x178
je 0x8d1b
movq (%r13,%rbp), %rsi
movq %r12, %rdi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2d26
testb %al, %al
je 0x8cf5
movl -0x8(%r13,%rbp), %ebp
testl %ebp, %ebp
movl 0x14(%rsp), %r13d
movl 0x10(%rsp), %r15d
js 0x9611
movl $0x1, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x8(%rax)
movl $0x28, (%rcx,%rdx,4)
movl $0x1, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x8(%rax)
movl %ebp, (%rcx,%rdx,4)
movl $0x1, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x8(%rax)
movl %r15d, (%rcx,%rdx,4)
incl %r13d
movl %r13d, (%r14)
jmp 0x8c7f
movl $0x1, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x8(%rax)
movl $0x2c, (%rcx,%rdx,4)
jmp 0x8c7f
movq 0x10(%rbx), %rax
movq (%rax), %r12
testq %r12, %r12
je 0x8e12
movq 0x8(%r15), %rax
movq 0x8(%rax), %r14
movq 0x10(%r12), %r15
movq (%r15), %rdi
movq %r14, %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2d26
testb %al, %al
jne 0x9329
movq 0x8(%r12), %r12
testq %r12, %r12
jne 0x8deb
leaq 0x6b5b(%rip), %rdi      # 0xf974
leaq 0x3a79(%rip), %rsi      # 0xc899
leaq 0x6f3b(%rip), %rcx      # 0xfd62
movl $0x15dd, %edx           # imm = 0x15DD
callq 0x20e0
movq 0x8(%r15), %rax
cmpl $0x23, (%rax)
jne 0x9832
movq 0x8(%rax), %r12
leaq 0x6d9c(%rip), %rsi      # 0xfbe5
movq %r12, %rdi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2d26
xorl %r13d, %r13d
testb %al, %al
jne 0x8ea6
movl $0x18, %r13d
movq %r13, %rbp
addq $0x10, %r13
cmpq $0xb8, %r13
je 0x8e90
leaq 0xcc06(%rip), %rax      # 0x15a80
movq (%rbp,%rax), %rsi
movq %r12, %rdi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2d26
testb %al, %al
je 0x8e63
leaq 0xcbe9(%rip), %rax      # 0x15a80
movl -0x8(%rbp,%rax), %r13d
cmpl $-0x1, %r13d
je 0x998d
movl (%r14), %ebp
movq 0x10(%r15), %rsi
movl %ebp, %r15d
testq %rsi, %rsi
je 0x8ec3
movq %rbx, %rdi
movq %r14, %rdx
callq 0x8b3c
movl (%r14), %r15d
subl %ebp, %r15d
movl $0x1, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x8(%rax)
movl $0x27, (%rcx,%rdx,4)
movl $0x1, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x8(%rax)
movl %r13d, (%rcx,%rdx,4)
movl $0x1, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x8(%rax)
movl %r15d, (%rcx,%rdx,4)
movl %ebp, (%r14)
jmp 0x8c7f
movl $0x1, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x8(%rax)
movl $0x23, (%rcx,%rdx,4)
jmp 0x8c7f
movq 0x10(%r15), %rsi
testq %rsi, %rsi
je 0x9851
movq %rbx, %rdi
movq %r14, %rdx
callq 0x8b3c
movq 0x18(%r15), %r12
testq %r12, %r12
je 0x9911
cmpl $0x2a, (%r12)
jne 0x996e
movq 0x20(%rbx), %rax
movq 0x8(%rax), %r15
movl $0x1, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x8(%rax)
movl $0x1e, (%rcx,%rdx,4)
movl $0x1, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x8(%rax)
xorl %eax, %eax
movl %eax, (%rcx,%rdx,4)
movq 0x10(%r12), %rsi
movq %rbx, %rdi
movq %r14, %rdx
callq 0x8b3c
movq 0x20(%rbx), %rax
movq 0x8(%rax), %r13
movl $0x1, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x8(%rax)
movl $0x2a, (%rcx,%rdx,4)
movl $0x1, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rcx
movq (%rcx), %rax
movq 0x8(%rcx), %rdx
leaq 0x1(%rdx), %rbp
movq %rbp, 0x8(%rcx)
xorl %ecx, %ecx
movl %ecx, (%rax,%rdx,4)
movq 0x18(%r12), %rsi
movq %rbp, %rcx
testq %rsi, %rsi
je 0x9074
movq %rbx, %rdi
movq %r14, %rdx
callq 0x8b3c
movq 0x20(%rbx), %rcx
movq (%rcx), %rax
movq 0x8(%rcx), %rcx
subl %r15d, %ebp
movl %ebp, 0x4(%rax,%r15,4)
subl %r13d, %ecx
movl %ecx, 0x4(%rax,%r13,4)
jmp 0x8c7f
movq 0x10(%r15), %rsi
testq %rsi, %rsi
je 0x9870
movq %rbx, %rdi
movq %r14, %rdx
callq 0x8b3c
movl $0x1, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x8(%rax)
movl $0x1d, (%rcx,%rdx,4)
jmp 0x8c7f
cmpl $0x0, 0x84(%r14)
jle 0x988f
movq 0x20(%rbx), %rax
movl 0x8(%rax), %ebp
movl $0x1, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x8(%rax)
movl $0x21, (%rcx,%rdx,4)
movslq 0x84(%r14), %rax
movslq (%r14,%rax,4), %rax
movl %ebp, 0x4(%rcx,%rax,4)
decl 0x84(%r14)
jmp 0x8c7f
movq 0x10(%r15), %rax
testq %rax, %rax
je 0x989f
cmpl $0x1, (%rax)
jne 0x9930
movq 0x8(%rax), %rax
movq 0x8(%rax), %r14
movq 0x10(%rbx), %rax
movq (%rax), %r12
testq %r12, %r12
je 0x973f
movq 0x10(%r12), %r15
movq (%r15), %rdi
movq %r14, %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2d26
testb %al, %al
jne 0x9360
movq 0x8(%r12), %r12
jmp 0x9149
movq 0x10(%r15), %rsi
testq %rsi, %rsi
je 0x93da
movq %rbx, %rdi
movq %r14, %rdx
callq 0x8b3c
decl (%r14)
movq 0x20(%rbx), %rax
movq 0x8(%rax), %r12
jmp 0x9428
movq 0x8(%r15), %rax
movl (%rax), %eax
cmpl $0xb, %eax
je 0x95b5
cmpl $0xa, %eax
je 0x9556
cmpl $0x9, %eax
jne 0x999c
movl $0x1, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x8(%rax)
movl $0x1, (%rcx,%rdx,4)
movq 0x8(%r15), %rax
movq 0x8(%rax), %rdi
callq 0x2250
movl %eax, %ebp
movl $0x1, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x8(%rax)
movl %ebp, (%rcx,%rdx,4)
jmp 0x9609
movl $0x1, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x8(%rax)
movl $0x22, (%rcx,%rdx,4)
jmp 0x8c7f
movq 0x10(%r15), %rsi
testq %rsi, %rsi
je 0x94bf
movq %rbx, %rdi
movq %r14, %rdx
callq 0x8b3c
jmp 0x950d
movq 0x10(%r15), %rax
testq %rax, %rax
je 0x98be
cmpl $0x1, (%rax)
jne 0x994f
movq 0x8(%rax), %rax
movq 0x8(%rax), %r14
movq 0x10(%rbx), %rax
movq (%rax), %r12
testq %r12, %r12
je 0x9748
movq 0x10(%r12), %r15
movq (%r15), %rdi
movq %r14, %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2d26
testb %al, %al
jne 0x9389
movq 0x8(%r12), %r12
jmp 0x928b
movq 0x10(%r15), %rsi
testq %rsi, %rsi
je 0x92cf
movq %rbx, %rdi
movq %r14, %rdx
callq 0x8b3c
decl (%r14)
movl $0x1, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x8(%rax)
movl $0x2b, (%rcx,%rdx,4)
xorl %ebp, %ebp
cmpq $0x0, 0x10(%r15)
setne %bpl
movl $0x1, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x8(%rax)
movl %ebp, (%rcx,%rdx,4)
jmp 0x8c7f
movq 0x20(%rbx), %rax
movl 0x8(%rax), %eax
movl %eax, 0x8(%r15)
movl $0x1, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x8(%rax)
movl $0x24, (%rcx,%rdx,4)
jmp 0x8c7f
movl $0x1, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x8(%rax)
movl $0x26, (%rcx,%rdx,4)
jmp 0x93b0
movl $0x1, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x8(%rax)
movl $0x25, (%rcx,%rdx,4)
movl $0x2, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rax
movq %r15, (%rcx,%rax,4)
movq 0x20(%rbx), %rax
addq $0x2, 0x8(%rax)
jmp 0x8c7f
movl $0x1, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x8(%rax)
movl $0x1, (%rcx,%rdx,4)
movl $0x1, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0x1(%rdx), %r12
movq %r12, 0x8(%rax)
movl $0xffffffff, (%rcx,%rdx,4) # imm = 0xFFFFFFFF
movl $0x1, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x8(%rax)
movl $0x1f, (%rcx,%rdx,4)
movl $0x1, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x8(%rax)
movl $0x0, (%rcx,%rdx,4)
movl 0x84(%r14), %eax
cmpq $0x20, %rax
jae 0x98dd
movl %r12d, 0x4(%r14,%rax,4)
incl 0x84(%r14)
movl $0x1, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x8(%rax)
movl $0x20, (%rcx,%rdx,4)
jmp 0x8c7f
movl $0x1, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x8(%rax)
movl $0x1, (%rcx,%rdx,4)
movl $0x1, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x8(%rax)
movl $0x0, (%rcx,%rdx,4)
movq 0x8(%r15), %rax
movq 0x8(%rax), %rsi
movq 0x18(%rbx), %rdi
callq 0x62ce
testq %rax, %rax
je 0x98f2
movq %rax, %r15
movl $0x1, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x8(%rax)
movl $0x4, (%rcx,%rdx,4)
jmp 0x95e4
movl $0x1, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x8(%rax)
movl $0x2, (%rcx,%rdx,4)
movq 0x8(%r15), %rax
movq 0x8(%rax), %rdi
callq 0x21c0
movsd %xmm0, 0x8(%rsp)
movl $0x2, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rax
movsd 0x8(%rsp), %xmm0
movsd %xmm0, (%rcx,%rax,4)
jmp 0x9600
movl $0x1, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x8(%rax)
movl $0x3, (%rcx,%rdx,4)
movq 0x8(%r15), %rax
movq 0x8(%rax), %r15
movl $0x2, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rax
movq %r15, (%rcx,%rax,4)
movq 0x20(%rbx), %rax
addq $0x2, 0x8(%rax)
incl (%r14)
jmp 0x8c7f
movq %r12, %rdi
callq 0x7b4a
testl %eax, %eax
js 0x9677
testl %r15d, %r15d
jg 0x99bb
movl %eax, %ebp
movl $0x1, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x8(%rax)
movl $0x5, (%rcx,%rdx,4)
movl $0x1, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x8(%rax)
movl %ebp, (%rcx,%rdx,4)
jmp 0x8da0
cmpl $0x2, %r15d
jge 0x99c4
movq 0x18(%rbx), %rdi
movq %r12, %rsi
callq 0x62ce
testq %rax, %rax
je 0x99cd
movq %rax, %r15
cmpl %r13d, 0x8(%rsp)
jne 0x96ee
movl $0x1, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x8(%rax)
movl $0x1, (%rcx,%rdx,4)
movl $0x1, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x8(%rax)
movl $0x0, (%rcx,%rdx,4)
movl $0x1, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x8(%rax)
movl $0x4, (%rcx,%rdx,4)
movl $0x2, %esi
movq %rbx, %rdi
callq 0xbc81
movq 0x20(%rbx), %rax
movq (%rax), %rcx
movq 0x8(%rax), %rax
movq %r15, (%rcx,%rax,4)
movq 0x20(%rbx), %rax
addq $0x2, 0x8(%rax)
jmp 0x8da0
leaq 0x67c9(%rip), %rdi      # 0xff0f
jmp 0x974f
leaq 0x67ee(%rip), %rdi      # 0xff3d
movq %r14, %rsi
xorl %eax, %eax
callq 0x344d
leaq 0x4025(%rip), %rdi      # 0xd785
leaq 0x3132(%rip), %rsi      # 0xc899
leaq 0x65f4(%rip), %rcx      # 0xfd62
movl $0x173c, %edx           # imm = 0x173C
callq 0x20e0
leaq 0x4006(%rip), %rdi      # 0xd785
leaq 0x3113(%rip), %rsi      # 0xc899
leaq 0x65d5(%rip), %rcx      # 0xfd62
movl $0x173f, %edx           # imm = 0x173F
callq 0x20e0
leaq 0x62fb(%rip), %rdi      # 0xfa99
leaq 0x30f4(%rip), %rsi      # 0xc899
leaq 0x65b6(%rip), %rcx      # 0xfd62
movl $0x1654, %edx           # imm = 0x1654
callq 0x20e0
leaq 0x6331(%rip), %rdi      # 0xfaee
leaq 0x30d5(%rip), %rsi      # 0xc899
leaq 0x6597(%rip), %rcx      # 0xfd62
movl $0x1656, %edx           # imm = 0x1656
callq 0x20e0
leaq 0x3fa9(%rip), %rdi      # 0xd785
leaq 0x30b6(%rip), %rsi      # 0xc899
leaq 0x6578(%rip), %rcx      # 0xfd62
movl $0x1669, %edx           # imm = 0x1669
callq 0x20e0
leaq 0x3f8a(%rip), %rdi      # 0xd785
leaq 0x3097(%rip), %rsi      # 0xc899
leaq 0x6559(%rip), %rcx      # 0xfd62
movl $0x1624, %edx           # imm = 0x1624
callq 0x20e0
leaq 0x65e7(%rip), %rdi      # 0xfe01
leaq 0x3078(%rip), %rsi      # 0xc899
leaq 0x653a(%rip), %rcx      # 0xfd62
movl $0x1686, %edx           # imm = 0x1686
callq 0x20e0
leaq 0x65c8(%rip), %rdi      # 0xfe01
leaq 0x3059(%rip), %rsi      # 0xc899
leaq 0x651b(%rip), %rcx      # 0xfd62
movl $0x15ed, %edx           # imm = 0x15ED
callq 0x20e0
leaq 0x6241(%rip), %rdi      # 0xfa99
leaq 0x303a(%rip), %rsi      # 0xc899
leaq 0x64fc(%rip), %rcx      # 0xfd62
movl $0x1720, %edx           # imm = 0x1720
callq 0x20e0
leaq 0x6222(%rip), %rdi      # 0xfa99
leaq 0x301b(%rip), %rsi      # 0xc899
leaq 0x64dd(%rip), %rcx      # 0xfd62
movl $0x1672, %edx           # imm = 0x1672
callq 0x20e0
movq 0x8(%r15), %rax
movl 0x18(%rax), %esi
leaq 0x671b(%rip), %rdi      # 0xffb8
jmp 0x98eb
leaq 0x6634(%rip), %rdi      # 0xfeda
leaq 0x2fec(%rip), %rsi      # 0xc899
leaq 0x64ae(%rip), %rcx      # 0xfd62
movl $0x16d2, %edx           # imm = 0x16D2
callq 0x20e0
leaq 0x6615(%rip), %rdi      # 0xfeda
leaq 0x2fcd(%rip), %rsi      # 0xc899
leaq 0x648f(%rip), %rcx      # 0xfd62
movl $0x16e3, %edx           # imm = 0x16E3
callq 0x20e0
movq 0x8(%r15), %rax
movl 0x18(%rax), %esi
leaq 0x6681(%rip), %rdi      # 0xff6c
xorl %eax, %eax
callq 0x344d
leaq 0x4b63(%rip), %rdi      # 0xe45c
leaq 0x2f99(%rip), %rsi      # 0xc899
leaq 0x645b(%rip), %rcx      # 0xfd62
movl $0x1638, %edx           # imm = 0x1638
callq 0x20e0
leaq 0x61d6(%rip), %rdi      # 0xfaee
leaq 0x2f7a(%rip), %rsi      # 0xc899
leaq 0x643c(%rip), %rcx      # 0xfd62
movl $0x1723, %edx           # imm = 0x1723
callq 0x20e0
leaq 0x65b9(%rip), %rdi      # 0xfef0
leaq 0x2f5b(%rip), %rsi      # 0xc899
leaq 0x641d(%rip), %rcx      # 0xfd62
movl $0x16d3, %edx           # imm = 0x16D3
callq 0x20e0
leaq 0x659a(%rip), %rdi      # 0xfef0
leaq 0x2f3c(%rip), %rsi      # 0xc899
leaq 0x63fe(%rip), %rcx      # 0xfd62
movl $0x16e4, %edx           # imm = 0x16E4
callq 0x20e0
leaq 0x668a(%rip), %rdi      # 0xffff
leaq 0x2f1d(%rip), %rsi      # 0xc899
leaq 0x63df(%rip), %rcx      # 0xfd62
movl $0x1725, %edx           # imm = 0x1725
callq 0x20e0
leaq 0x6491(%rip), %rdi      # 0xfe25
movq %r12, %rsi
jmp 0x9752
leaq 0x3de2(%rip), %rdi      # 0xd785
leaq 0x2eef(%rip), %rsi      # 0xc899
leaq 0x63b1(%rip), %rcx      # 0xfd62
movl $0x167f, %edx           # imm = 0x167F
callq 0x20e0
leaq 0x648d(%rip), %rdi      # 0xfe4f
jmp 0x9994
leaq 0x64ba(%rip), %rdi      # 0xfe85
jmp 0x9994
leaq 0x4a88(%rip), %rdi      # 0xe45c
leaq 0x2ebe(%rip), %rsi      # 0xc899
leaq 0x6380(%rip), %rcx      # 0xfd62
movl $0x16ae, %edx           # imm = 0x16AE
callq 0x20e0