// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen.c
// Function: ir_expr_logic
static bool _ir_expr_logic(
	IRGeneratorContext *ctx,
	ResizableString *rstr,
	_ExprResult *expr_result,
	ParserASTNode *node
) {
	assert(ctx);
	assert(rstr);
	assert(expr_result);
	assert(node);

	switch (node->type) {
		case FE_NODE_EXPR_AND: {
			assert(node->nchilds == 2);

			ParserASTNode *node_lhs = node->childs[0];
			ParserASTNode *node_rhs = node->childs[1];

			ParserASTNode *node_target_type = FE_EXPR_AST_NODE_GET_TYPE_NODE(node);

			ResizableString rstr_zero;
			rstr_init(&rstr_zero);
			_const_int(ctx, &rstr_zero, node_target_type, 0);

			ResizableString rstr_one;
			rstr_init(&rstr_one);
			_const_int(ctx, &rstr_one, node_target_type, 1);

			ResizableString rstr_result;
			rstr_init(&rstr_result);
			_generate_func_tmp_var(
				ctx,
				ctx->func_symbol,
				&rstr_result,
				node_target_type
			);

			rstr_appendf(
				rstr,
				"assign %s, %s;\n",
				RSTR_CSTR(&rstr_result),
				RSTR_CSTR(&rstr_zero)
			);

			_ExprResult result_lhs;
			_expr_result_init(&result_lhs);

			_ir_expr(ctx, rstr, &result_lhs, node_lhs);
			rstr_append_with_rstr(rstr, &(result_lhs.rstr_for_result_ptr));
			rstr_append_with_rstr(rstr, &(result_lhs.rstr_for_result));

			ResizableString rstr_cond_expr_lhs;
			rstr_init(&rstr_cond_expr_lhs);
			_ir_cond_expr_with_rstr(ctx, rstr, &rstr_cond_expr_lhs, &result_lhs, node_lhs);

			_TMP_LABEL_DEF(ctx, lhs_true)
			_TMP_LABEL_DEF(ctx, rhs_true)
			_TMP_LABEL_DEF(ctx, end)

			rstr_appendf(
				rstr,
				"cbr %s, %s, %s;\n",
				RSTR_CSTR(&rstr_cond_expr_lhs),
				_TMP_LABEL_CSTR(lhs_true),
				_TMP_LABEL_CSTR(end)
			);

			rstr_appendf(
				rstr,
				"%s:\n",
				_TMP_LABEL_CSTR(lhs_true)
			);

			_ExprResult result_rhs;
			_expr_result_init(&result_rhs);

			_ir_expr(ctx, rstr, &result_rhs, node_rhs);
			rstr_append_with_rstr(rstr, &(result_rhs.rstr_for_result_ptr));
			rstr_append_with_rstr(rstr, &(result_rhs.rstr_for_result));

			ResizableString rstr_cond_expr_rhs;
			rstr_init(&rstr_cond_expr_rhs);
			_ir_cond_expr_with_rstr(ctx, rstr, &rstr_cond_expr_rhs, &result_rhs, node_rhs);

			rstr_appendf(
				rstr,
				"cbr %s, %s, %s;\n",
				RSTR_CSTR(&rstr_cond_expr_rhs),
				_TMP_LABEL_CSTR(rhs_true),
				_TMP_LABEL_CSTR(end)
			);

			rstr_appendf(
				rstr,
				"%s:\n",
				_TMP_LABEL_CSTR(rhs_true)
			);

			rstr_appendf(
				rstr,
				"assign %s, %s;\n",
				RSTR_CSTR(&rstr_result),
				RSTR_CSTR(&rstr_one)
			);

			rstr_appendf(
				rstr,
				"%s:\n",
				_TMP_LABEL_CSTR(end)
			);

			_expr_result_set_result(
				expr_result,
				RSTR_CSTR(&rstr_result)
			);

			rstr_free(&rstr_zero);
			rstr_free(&rstr_one);
			rstr_free(&rstr_result);

			_expr_result_free(&result_lhs);
			rstr_free(&rstr_cond_expr_lhs);

			_TMP_LABEL_FREE(lhs_true)
			_TMP_LABEL_FREE(rhs_true)
			_TMP_LABEL_FREE(end)

			_expr_result_free(&result_rhs);
			rstr_free(&rstr_cond_expr_rhs);

			return true;
		}
		case FE_NODE_EXPR_OR: {
			assert(node->nchilds == 2);

			ParserASTNode *node_lhs = node->childs[0];
			ParserASTNode *node_rhs = node->childs[1];

			ParserASTNode *node_target_type = FE_EXPR_AST_NODE_GET_TYPE_NODE(node);

			ResizableString rstr_zero;
			rstr_init(&rstr_zero);
			_const_int(ctx, &rstr_zero, node_target_type, 0);

			ResizableString rstr_one;
			rstr_init(&rstr_one);
			_const_int(ctx, &rstr_one, node_target_type, 1);

			ResizableString rstr_result;
			rstr_init(&rstr_result);
			_generate_func_tmp_var(
				ctx,
				ctx->func_symbol,
				&rstr_result,
				node_target_type
			);

			rstr_appendf(
				rstr,
				"assign %s, %s;\n",
				RSTR_CSTR(&rstr_result),
				RSTR_CSTR(&rstr_zero)
			);

			_ExprResult result_lhs;
			_expr_result_init(&result_lhs);

			_ir_expr(ctx, rstr, &result_lhs, node_lhs);
			rstr_append_with_rstr(rstr, &(result_lhs.rstr_for_result_ptr));
			rstr_append_with_rstr(rstr, &(result_lhs.rstr_for_result));

			ResizableString rstr_cond_expr_lhs;
			rstr_init(&rstr_cond_expr_lhs);
			_ir_cond_expr_with_rstr(ctx, rstr, &rstr_cond_expr_lhs, &result_lhs, node_lhs);

			_TMP_LABEL_DEF(ctx, lhs_true)
			_TMP_LABEL_DEF(ctx, lhs_false)
			_TMP_LABEL_DEF(ctx, rhs_true)
			_TMP_LABEL_DEF(ctx, end)

			rstr_appendf(
				rstr,
				"cbr %s, %s, %s;\n",
				RSTR_CSTR(&rstr_cond_expr_lhs),
				_TMP_LABEL_CSTR(lhs_true),
				_TMP_LABEL_CSTR(lhs_false)
			);

			rstr_appendf(
				rstr,
				"%s:\n",
				_TMP_LABEL_CSTR(lhs_true)
			);

			rstr_appendf(
				rstr,
				"assign %s, %s;\n",
				RSTR_CSTR(&rstr_result),
				RSTR_CSTR(&rstr_one)
			);

			rstr_appendf(
				rstr,
				"br %s;\n",
				_TMP_LABEL_CSTR(end)
			);

			rstr_appendf(
				rstr,
				"%s:\n",
				_TMP_LABEL_CSTR(lhs_false)
			);

			_ExprResult result_rhs;
			_expr_result_init(&result_rhs);

			_ir_expr(ctx, rstr, &result_rhs, node_rhs);
			rstr_append_with_rstr(rstr, &(result_rhs.rstr_for_result_ptr));
			rstr_append_with_rstr(rstr, &(result_rhs.rstr_for_result));

			ResizableString rstr_cond_expr_rhs;
			rstr_init(&rstr_cond_expr_rhs);
			_ir_cond_expr_with_rstr(ctx, rstr, &rstr_cond_expr_rhs, &result_rhs, node_rhs);

			rstr_appendf(
				rstr,
				"cbr %s, %s, %s;\n",
				RSTR_CSTR(&rstr_cond_expr_rhs),
				_TMP_LABEL_CSTR(rhs_true),
				_TMP_LABEL_CSTR(end)
			);

			rstr_appendf(
				rstr,
				"%s:\n",
				_TMP_LABEL_CSTR(rhs_true)
			);

			rstr_appendf(
				rstr,
				"assign %s, %s;\n",
				RSTR_CSTR(&rstr_result),
				RSTR_CSTR(&rstr_one)
			);

			rstr_appendf(
				rstr,
				"%s:\n",
				_TMP_LABEL_CSTR(end)
			);

			_expr_result_set_result(
				expr_result,
				RSTR_CSTR(&rstr_result)
			);

			rstr_free(&rstr_zero);
			rstr_free(&rstr_one);
			rstr_free(&rstr_result);

			_expr_result_free(&result_lhs);
			rstr_free(&rstr_cond_expr_lhs);

			_TMP_LABEL_FREE(lhs_true)
			_TMP_LABEL_FREE(lhs_false)
			_TMP_LABEL_FREE(rhs_true)
			_TMP_LABEL_FREE(end)

			_expr_result_free(&result_rhs);
			rstr_free(&rstr_cond_expr_rhs);

			return true;
		}
		default: {
			return false;
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x470, %rsp            # imm = 0x470
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x17ec4
jmp 0x17ee3
leaq 0x6468b(%rip), %rdi     # 0x7c556
leaq 0x5c4c2(%rip), %rsi     # 0x74394
movl $0xbd5, %edx            # imm = 0xBD5
leaq 0x5de00(%rip), %rcx     # 0x75cde
callq 0x30a0
cmpq $0x0, -0x18(%rbp)
je 0x17eec
jmp 0x17f0b
leaq 0x5ac1b(%rip), %rdi     # 0x72b0e
leaq 0x5c49a(%rip), %rsi     # 0x74394
movl $0xbd6, %edx            # imm = 0xBD6
leaq 0x5ddd8(%rip), %rcx     # 0x75cde
callq 0x30a0
cmpq $0x0, -0x20(%rbp)
je 0x17f14
jmp 0x17f33
leaq 0x5ccf8(%rip), %rdi     # 0x74c13
leaq 0x5c472(%rip), %rsi     # 0x74394
movl $0xbd7, %edx            # imm = 0xBD7
leaq 0x5ddb0(%rip), %rcx     # 0x75cde
callq 0x30a0
cmpq $0x0, -0x28(%rbp)
je 0x17f3c
jmp 0x17f5b
leaq 0x5e090(%rip), %rdi     # 0x75fd3
leaq 0x5c44a(%rip), %rsi     # 0x74394
movl $0xbd8, %edx            # imm = 0xBD8
leaq 0x5dd88(%rip), %rcx     # 0x75cde
callq 0x30a0
movq -0x28(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x26c(%rbp)
subl $0xe20, %eax            # imm = 0xE20
je 0x185c3
jmp 0x17f74
movl -0x26c(%rbp), %eax
subl $0xe30, %eax            # imm = 0xE30
jne 0x18dad
jmp 0x17f87
movq -0x28(%rbp), %rax
cmpl $0x2, 0x44(%rax)
jne 0x17f93
jmp 0x17fb2
leaq 0x666da(%rip), %rdi     # 0x7e674
leaq 0x5c3f3(%rip), %rsi     # 0x74394
movl $0xbdc, %edx            # imm = 0xBDC
leaq 0x5dd31(%rip), %rcx     # 0x75cde
callq 0x30a0
movq -0x28(%rbp), %rax
movq 0x48(%rax), %rax
movq (%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x28(%rbp), %rax
movq 0x48(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x38(%rbp)
movq -0x28(%rbp), %rax
movq 0x68(%rax), %rax
movq %rax, -0x40(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x8c90
movq -0x10(%rbp), %rdi
movq -0x40(%rbp), %rdx
leaq -0x50(%rbp), %rsi
xorl %ecx, %ecx
callq 0x1d630
leaq -0x60(%rbp), %rdi
callq 0x8c90
movq -0x10(%rbp), %rdi
movq -0x40(%rbp), %rdx
leaq -0x60(%rbp), %rsi
movl $0x1, %ecx
callq 0x1d630
leaq -0x70(%rbp), %rdi
callq 0x8c90
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rsi
movq -0x40(%rbp), %rcx
leaq -0x70(%rbp), %rdx
callq 0x1ab00
movq -0x18(%rbp), %rax
movq %rax, -0x278(%rbp)
cmpq $0x0, -0x68(%rbp)
jne 0x1805c
leaq 0x5f862(%rip), %rax     # 0x778b5
movq %rax, -0x280(%rbp)
jmp 0x18067
movq -0x68(%rbp), %rax
movq %rax, -0x280(%rbp)
movq -0x280(%rbp), %rax
movq %rax, -0x288(%rbp)
cmpq $0x0, -0x48(%rbp)
jne 0x1808c
leaq 0x5f832(%rip), %rax     # 0x778b5
movq %rax, -0x290(%rbp)
jmp 0x18097
movq -0x48(%rbp), %rax
movq %rax, -0x290(%rbp)
movq -0x288(%rbp), %rdx
movq -0x278(%rbp), %rdi
movq -0x290(%rbp), %rcx
leaq 0x5c5b3(%rip), %rsi     # 0x74666
movb $0x0, %al
callq 0x94d0
leaq -0xb0(%rbp), %rdi
callq 0x113b0
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x30(%rbp), %rcx
leaq -0xb0(%rbp), %rdx
callq 0x13d10
movq -0x18(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
addq $0x10, %rsi
callq 0x9100
movq -0x18(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x9100
leaq -0xc0(%rbp), %rdi
callq 0x8c90
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x30(%rbp), %r8
leaq -0xc0(%rbp), %rdx
leaq -0xb0(%rbp), %rcx
callq 0x1d730
leaq -0xd0(%rbp), %rdi
callq 0x8c90
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rsi
leaq -0xd0(%rbp), %rdx
callq 0x1aa30
leaq -0xe0(%rbp), %rdi
callq 0x8c90
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rsi
leaq -0xe0(%rbp), %rdx
callq 0x1aa30
leaq -0xf0(%rbp), %rdi
callq 0x8c90
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rsi
leaq -0xf0(%rbp), %rdx
callq 0x1aa30
movq -0x18(%rbp), %rax
movq %rax, -0x298(%rbp)
cmpq $0x0, -0xb8(%rbp)
jne 0x181be
leaq 0x5f700(%rip), %rax     # 0x778b5
movq %rax, -0x2a0(%rbp)
jmp 0x181cc
movq -0xb8(%rbp), %rax
movq %rax, -0x2a0(%rbp)
movq -0x2a0(%rbp), %rax
movq %rax, -0x2a8(%rbp)
cmpq $0x0, -0xc8(%rbp)
jne 0x181f4
leaq 0x5f6ca(%rip), %rax     # 0x778b5
movq %rax, -0x2b0(%rbp)
jmp 0x18202
movq -0xc8(%rbp), %rax
movq %rax, -0x2b0(%rbp)
movq -0x2b0(%rbp), %rax
movq %rax, -0x2b8(%rbp)
cmpq $0x0, -0xe8(%rbp)
jne 0x1822a
leaq 0x5f694(%rip), %rax     # 0x778b5
movq %rax, -0x2c0(%rbp)
jmp 0x18238
movq -0xe8(%rbp), %rax
movq %rax, -0x2c0(%rbp)
movq -0x2b8(%rbp), %rcx
movq -0x2a8(%rbp), %rdx
movq -0x298(%rbp), %rdi
movq -0x2c0(%rbp), %r8
leaq 0x5dae1(%rip), %rsi     # 0x75d3c
movb $0x0, %al
callq 0x94d0
movq -0x18(%rbp), %rax
movq %rax, -0x2c8(%rbp)
cmpq $0x0, -0xc8(%rbp)
jne 0x18287
leaq 0x5f637(%rip), %rax     # 0x778b5
movq %rax, -0x2d0(%rbp)
jmp 0x18295
movq -0xc8(%rbp), %rax
movq %rax, -0x2d0(%rbp)
movq -0x2c8(%rbp), %rdi
movq -0x2d0(%rbp), %rdx
leaq 0x613b2(%rip), %rsi     # 0x7965c
movb $0x0, %al
callq 0x94d0
leaq -0x130(%rbp), %rdi
callq 0x113b0
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x38(%rbp), %rcx
leaq -0x130(%rbp), %rdx
callq 0x13d10
movq -0x18(%rbp), %rdi
leaq -0x130(%rbp), %rsi
addq $0x10, %rsi
callq 0x9100
movq -0x18(%rbp), %rdi
leaq -0x130(%rbp), %rsi
callq 0x9100
leaq -0x140(%rbp), %rdi
callq 0x8c90
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x38(%rbp), %r8
leaq -0x140(%rbp), %rdx
leaq -0x130(%rbp), %rcx
callq 0x1d730
movq -0x18(%rbp), %rax
movq %rax, -0x2d8(%rbp)
cmpq $0x0, -0x138(%rbp)
jne 0x18349
leaq 0x5f575(%rip), %rax     # 0x778b5
movq %rax, -0x2e0(%rbp)
jmp 0x18357
movq -0x138(%rbp), %rax
movq %rax, -0x2e0(%rbp)
movq -0x2e0(%rbp), %rax
movq %rax, -0x2e8(%rbp)
cmpq $0x0, -0xd8(%rbp)
jne 0x1837f
leaq 0x5f53f(%rip), %rax     # 0x778b5
movq %rax, -0x2f0(%rbp)
jmp 0x1838d
movq -0xd8(%rbp), %rax
movq %rax, -0x2f0(%rbp)
movq -0x2f0(%rbp), %rax
movq %rax, -0x2f8(%rbp)
cmpq $0x0, -0xe8(%rbp)
jne 0x183b5
leaq 0x5f509(%rip), %rax     # 0x778b5
movq %rax, -0x300(%rbp)
jmp 0x183c3
movq -0xe8(%rbp), %rax
movq %rax, -0x300(%rbp)
movq -0x2f8(%rbp), %rcx
movq -0x2e8(%rbp), %rdx
movq -0x2d8(%rbp), %rdi
movq -0x300(%rbp), %r8
leaq 0x5d956(%rip), %rsi     # 0x75d3c
movb $0x0, %al
callq 0x94d0
movq -0x18(%rbp), %rax
movq %rax, -0x308(%rbp)
cmpq $0x0, -0xd8(%rbp)
jne 0x18412
leaq 0x5f4ac(%rip), %rax     # 0x778b5
movq %rax, -0x310(%rbp)
jmp 0x18420
movq -0xd8(%rbp), %rax
movq %rax, -0x310(%rbp)
movq -0x308(%rbp), %rdi
movq -0x310(%rbp), %rdx
leaq 0x61227(%rip), %rsi     # 0x7965c
movb $0x0, %al
callq 0x94d0
movq -0x18(%rbp), %rax
movq %rax, -0x318(%rbp)
cmpq $0x0, -0x68(%rbp)
jne 0x1845e
leaq 0x5f460(%rip), %rax     # 0x778b5
movq %rax, -0x320(%rbp)
jmp 0x18469
movq -0x68(%rbp), %rax
movq %rax, -0x320(%rbp)
movq -0x320(%rbp), %rax
movq %rax, -0x328(%rbp)
cmpq $0x0, -0x58(%rbp)
jne 0x1848e
leaq 0x5f430(%rip), %rax     # 0x778b5
movq %rax, -0x330(%rbp)
jmp 0x18499
movq -0x58(%rbp), %rax
movq %rax, -0x330(%rbp)
movq -0x328(%rbp), %rdx
movq -0x318(%rbp), %rdi
movq -0x330(%rbp), %rcx
leaq 0x5c1b1(%rip), %rsi     # 0x74666
movb $0x0, %al
callq 0x94d0
movq -0x18(%rbp), %rax
movq %rax, -0x338(%rbp)
cmpq $0x0, -0xe8(%rbp)
jne 0x184e1
leaq 0x5f3dd(%rip), %rax     # 0x778b5
movq %rax, -0x340(%rbp)
jmp 0x184ef
movq -0xe8(%rbp), %rax
movq %rax, -0x340(%rbp)
movq -0x338(%rbp), %rdi
movq -0x340(%rbp), %rdx
leaq 0x61158(%rip), %rsi     # 0x7965c
movb $0x0, %al
callq 0x94d0
movq -0x20(%rbp), %rax
movq %rax, -0x348(%rbp)
cmpq $0x0, -0x68(%rbp)
jne 0x1852d
leaq 0x5f391(%rip), %rax     # 0x778b5
movq %rax, -0x350(%rbp)
jmp 0x18538
movq -0x68(%rbp), %rax
movq %rax, -0x350(%rbp)
movq -0x348(%rbp), %rdi
movq -0x350(%rbp), %rsi
callq 0x1a6c0
leaq -0x50(%rbp), %rdi
callq 0x9310
leaq -0x60(%rbp), %rdi
callq 0x9310
leaq -0x70(%rbp), %rdi
callq 0x9310
leaq -0xb0(%rbp), %rdi
callq 0x130a0
leaq -0xc0(%rbp), %rdi
callq 0x9310
leaq -0xd0(%rbp), %rdi
callq 0x9310
leaq -0xe0(%rbp), %rdi
callq 0x9310
leaq -0xf0(%rbp), %rdi
callq 0x9310
leaq -0x130(%rbp), %rdi
callq 0x130a0
leaq -0x140(%rbp), %rdi
callq 0x9310
movb $0x1, -0x1(%rbp)
jmp 0x18db1
movq -0x28(%rbp), %rax
cmpl $0x2, 0x44(%rax)
jne 0x185cf
jmp 0x185ee
leaq 0x6609e(%rip), %rdi     # 0x7e674
leaq 0x5bdb7(%rip), %rsi     # 0x74394
movl $0xc54, %edx            # imm = 0xC54
leaq 0x5d6f5(%rip), %rcx     # 0x75cde
callq 0x30a0
movq -0x28(%rbp), %rax
movq 0x48(%rax), %rax
movq (%rax), %rax
movq %rax, -0x148(%rbp)
movq -0x28(%rbp), %rax
movq 0x48(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x150(%rbp)
movq -0x28(%rbp), %rax
movq 0x68(%rax), %rax
movq %rax, -0x158(%rbp)
leaq -0x168(%rbp), %rdi
callq 0x8c90
movq -0x10(%rbp), %rdi
movq -0x158(%rbp), %rdx
leaq -0x168(%rbp), %rsi
xorl %ecx, %ecx
callq 0x1d630
leaq -0x178(%rbp), %rdi
callq 0x8c90
movq -0x10(%rbp), %rdi
movq -0x158(%rbp), %rdx
leaq -0x178(%rbp), %rsi
movl $0x1, %ecx
callq 0x1d630
leaq -0x188(%rbp), %rdi
callq 0x8c90
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rsi
movq -0x158(%rbp), %rcx
leaq -0x188(%rbp), %rdx
callq 0x1ab00
movq -0x18(%rbp), %rax
movq %rax, -0x358(%rbp)
cmpq $0x0, -0x180(%rbp)
jne 0x186bf
leaq 0x5f1ff(%rip), %rax     # 0x778b5
movq %rax, -0x360(%rbp)
jmp 0x186cd
movq -0x180(%rbp), %rax
movq %rax, -0x360(%rbp)
movq -0x360(%rbp), %rax
movq %rax, -0x368(%rbp)
cmpq $0x0, -0x160(%rbp)
jne 0x186f5
leaq 0x5f1c9(%rip), %rax     # 0x778b5
movq %rax, -0x370(%rbp)
jmp 0x18703
movq -0x160(%rbp), %rax
movq %rax, -0x370(%rbp)
movq -0x368(%rbp), %rdx
movq -0x358(%rbp), %rdi
movq -0x370(%rbp), %rcx
leaq 0x5bf47(%rip), %rsi     # 0x74666
movb $0x0, %al
callq 0x94d0
leaq -0x1c8(%rbp), %rdi
callq 0x113b0
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x148(%rbp), %rcx
leaq -0x1c8(%rbp), %rdx
callq 0x13d10
movq -0x18(%rbp), %rdi
leaq -0x1c8(%rbp), %rsi
addq $0x10, %rsi
callq 0x9100
movq -0x18(%rbp), %rdi
leaq -0x1c8(%rbp), %rsi
callq 0x9100
leaq -0x1d8(%rbp), %rdi
callq 0x8c90
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x148(%rbp), %r8
leaq -0x1d8(%rbp), %rdx
leaq -0x1c8(%rbp), %rcx
callq 0x1d730
leaq -0x1e8(%rbp), %rdi
callq 0x8c90
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rsi
leaq -0x1e8(%rbp), %rdx
callq 0x1aa30
leaq -0x1f8(%rbp), %rdi
callq 0x8c90
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rsi
leaq -0x1f8(%rbp), %rdx
callq 0x1aa30
leaq -0x208(%rbp), %rdi
callq 0x8c90
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rsi
leaq -0x208(%rbp), %rdx
callq 0x1aa30
leaq -0x218(%rbp), %rdi
callq 0x8c90
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rsi
leaq -0x218(%rbp), %rdx
callq 0x1aa30
movq -0x18(%rbp), %rax
movq %rax, -0x378(%rbp)
cmpq $0x0, -0x1d0(%rbp)
jne 0x18854
leaq 0x5f06a(%rip), %rax     # 0x778b5
movq %rax, -0x380(%rbp)
jmp 0x18862
movq -0x1d0(%rbp), %rax
movq %rax, -0x380(%rbp)
movq -0x380(%rbp), %rax
movq %rax, -0x388(%rbp)
cmpq $0x0, -0x1e0(%rbp)
jne 0x1888a
leaq 0x5f034(%rip), %rax     # 0x778b5
movq %rax, -0x390(%rbp)
jmp 0x18898
movq -0x1e0(%rbp), %rax
movq %rax, -0x390(%rbp)
movq -0x390(%rbp), %rax
movq %rax, -0x398(%rbp)
cmpq $0x0, -0x1f0(%rbp)
jne 0x188c0
leaq 0x5effe(%rip), %rax     # 0x778b5
movq %rax, -0x3a0(%rbp)
jmp 0x188ce
movq -0x1f0(%rbp), %rax
movq %rax, -0x3a0(%rbp)
movq -0x398(%rbp), %rcx
movq -0x388(%rbp), %rdx
movq -0x378(%rbp), %rdi
movq -0x3a0(%rbp), %r8
leaq 0x5d44b(%rip), %rsi     # 0x75d3c
movb $0x0, %al
callq 0x94d0
movq -0x18(%rbp), %rax
movq %rax, -0x3a8(%rbp)
cmpq $0x0, -0x1e0(%rbp)
jne 0x1891d
leaq 0x5efa1(%rip), %rax     # 0x778b5
movq %rax, -0x3b0(%rbp)
jmp 0x1892b
movq -0x1e0(%rbp), %rax
movq %rax, -0x3b0(%rbp)
movq -0x3a8(%rbp), %rdi
movq -0x3b0(%rbp), %rdx
leaq 0x60d1c(%rip), %rsi     # 0x7965c
movb $0x0, %al
callq 0x94d0
movq -0x18(%rbp), %rax
movq %rax, -0x3b8(%rbp)
cmpq $0x0, -0x180(%rbp)
jne 0x1896c
leaq 0x5ef52(%rip), %rax     # 0x778b5
movq %rax, -0x3c0(%rbp)
jmp 0x1897a
movq -0x180(%rbp), %rax
movq %rax, -0x3c0(%rbp)
movq -0x3c0(%rbp), %rax
movq %rax, -0x3c8(%rbp)
cmpq $0x0, -0x170(%rbp)
jne 0x189a2
leaq 0x5ef1c(%rip), %rax     # 0x778b5
movq %rax, -0x3d0(%rbp)
jmp 0x189b0
movq -0x170(%rbp), %rax
movq %rax, -0x3d0(%rbp)
movq -0x3c8(%rbp), %rdx
movq -0x3b8(%rbp), %rdi
movq -0x3d0(%rbp), %rcx
leaq 0x5bc9a(%rip), %rsi     # 0x74666
movb $0x0, %al
callq 0x94d0
movq -0x18(%rbp), %rax
movq %rax, -0x3d8(%rbp)
cmpq $0x0, -0x210(%rbp)
jne 0x189f8
leaq 0x5eec6(%rip), %rax     # 0x778b5
movq %rax, -0x3e0(%rbp)
jmp 0x18a06
movq -0x210(%rbp), %rax
movq %rax, -0x3e0(%rbp)
movq -0x3d8(%rbp), %rdi
movq -0x3e0(%rbp), %rdx
leaq 0x5d332(%rip), %rsi     # 0x75d4d
movb $0x0, %al
callq 0x94d0
movq -0x18(%rbp), %rax
movq %rax, -0x3e8(%rbp)
cmpq $0x0, -0x1f0(%rbp)
jne 0x18a47
leaq 0x5ee77(%rip), %rax     # 0x778b5
movq %rax, -0x3f0(%rbp)
jmp 0x18a55
movq -0x1f0(%rbp), %rax
movq %rax, -0x3f0(%rbp)
movq -0x3e8(%rbp), %rdi
movq -0x3f0(%rbp), %rdx
leaq 0x60bf2(%rip), %rsi     # 0x7965c
movb $0x0, %al
callq 0x94d0
leaq -0x258(%rbp), %rdi
callq 0x113b0
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x150(%rbp), %rcx
leaq -0x258(%rbp), %rdx
callq 0x13d10
movq -0x18(%rbp), %rdi
leaq -0x258(%rbp), %rsi
addq $0x10, %rsi
callq 0x9100
movq -0x18(%rbp), %rdi
leaq -0x258(%rbp), %rsi
callq 0x9100
leaq -0x268(%rbp), %rdi
callq 0x8c90
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x150(%rbp), %r8
leaq -0x268(%rbp), %rdx
leaq -0x258(%rbp), %rcx
callq 0x1d730
movq -0x18(%rbp), %rax
movq %rax, -0x3f8(%rbp)
cmpq $0x0, -0x260(%rbp)
jne 0x18b0f
leaq 0x5edaf(%rip), %rax     # 0x778b5
movq %rax, -0x400(%rbp)
jmp 0x18b1d
movq -0x260(%rbp), %rax
movq %rax, -0x400(%rbp)
movq -0x400(%rbp), %rax
movq %rax, -0x408(%rbp)
cmpq $0x0, -0x200(%rbp)
jne 0x18b45
leaq 0x5ed79(%rip), %rax     # 0x778b5
movq %rax, -0x410(%rbp)
jmp 0x18b53
movq -0x200(%rbp), %rax
movq %rax, -0x410(%rbp)
movq -0x410(%rbp), %rax
movq %rax, -0x418(%rbp)
cmpq $0x0, -0x210(%rbp)
jne 0x18b7b
leaq 0x5ed43(%rip), %rax     # 0x778b5
movq %rax, -0x420(%rbp)
jmp 0x18b89
movq -0x210(%rbp), %rax
movq %rax, -0x420(%rbp)
movq -0x418(%rbp), %rcx
movq -0x408(%rbp), %rdx
movq -0x3f8(%rbp), %rdi
movq -0x420(%rbp), %r8
leaq 0x5d190(%rip), %rsi     # 0x75d3c
movb $0x0, %al
callq 0x94d0
movq -0x18(%rbp), %rax
movq %rax, -0x428(%rbp)
cmpq $0x0, -0x200(%rbp)
jne 0x18bd8
leaq 0x5ece6(%rip), %rax     # 0x778b5
movq %rax, -0x430(%rbp)
jmp 0x18be6
movq -0x200(%rbp), %rax
movq %rax, -0x430(%rbp)
movq -0x428(%rbp), %rdi
movq -0x430(%rbp), %rdx
leaq 0x60a61(%rip), %rsi     # 0x7965c
movb $0x0, %al
callq 0x94d0
movq -0x18(%rbp), %rax
movq %rax, -0x438(%rbp)
cmpq $0x0, -0x180(%rbp)
jne 0x18c27
leaq 0x5ec97(%rip), %rax     # 0x778b5
movq %rax, -0x440(%rbp)
jmp 0x18c35
movq -0x180(%rbp), %rax
movq %rax, -0x440(%rbp)
movq -0x440(%rbp), %rax
movq %rax, -0x448(%rbp)
cmpq $0x0, -0x170(%rbp)
jne 0x18c5d
leaq 0x5ec61(%rip), %rax     # 0x778b5
movq %rax, -0x450(%rbp)
jmp 0x18c6b
movq -0x170(%rbp), %rax
movq %rax, -0x450(%rbp)
movq -0x448(%rbp), %rdx
movq -0x438(%rbp), %rdi
movq -0x450(%rbp), %rcx
leaq 0x5b9df(%rip), %rsi     # 0x74666
movb $0x0, %al
callq 0x94d0
movq -0x18(%rbp), %rax
movq %rax, -0x458(%rbp)
cmpq $0x0, -0x210(%rbp)
jne 0x18cb3
leaq 0x5ec0b(%rip), %rax     # 0x778b5
movq %rax, -0x460(%rbp)
jmp 0x18cc1
movq -0x210(%rbp), %rax
movq %rax, -0x460(%rbp)
movq -0x458(%rbp), %rdi
movq -0x460(%rbp), %rdx
leaq 0x60986(%rip), %rsi     # 0x7965c
movb $0x0, %al
callq 0x94d0
movq -0x20(%rbp), %rax
movq %rax, -0x468(%rbp)
cmpq $0x0, -0x180(%rbp)
jne 0x18d02
leaq 0x5ebbc(%rip), %rax     # 0x778b5
movq %rax, -0x470(%rbp)
jmp 0x18d10
movq -0x180(%rbp), %rax
movq %rax, -0x470(%rbp)
movq -0x468(%rbp), %rdi
movq -0x470(%rbp), %rsi
callq 0x1a6c0
leaq -0x168(%rbp), %rdi
callq 0x9310
leaq -0x178(%rbp), %rdi
callq 0x9310
leaq -0x188(%rbp), %rdi
callq 0x9310
leaq -0x1c8(%rbp), %rdi
callq 0x130a0
leaq -0x1d8(%rbp), %rdi
callq 0x9310
leaq -0x1e8(%rbp), %rdi
callq 0x9310
leaq -0x1f8(%rbp), %rdi
callq 0x9310
leaq -0x208(%rbp), %rdi
callq 0x9310
leaq -0x218(%rbp), %rdi
callq 0x9310
leaq -0x258(%rbp), %rdi
callq 0x130a0
leaq -0x268(%rbp), %rdi
callq 0x9310
movb $0x1, -0x1(%rbp)
jmp 0x18db1
movb $0x0, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x470, %rsp            # imm = 0x470
popq %rbp
retq
nop