// File: /workspace/github_c_makefile_star2_O1/Ihsoh[P]ilang/compiler/preprocessor/evaluator.c
// Function: eval_expr
static int _eval_expr(
	PPGeneratorContext *genctx,
	ParserASTNode *node
) {
	assert(genctx);
	assert(node);

	switch (node->type) {
		case _NODE_EXPR: {
			assert(node->nchilds == 1);
			return _eval_expr(genctx, node->childs[0]);
		}

		case _NODE_EXPR_OR: {
			assert(node->nchilds == 2);
			return _eval_expr(genctx, node->childs[0])
				|| _eval_expr(genctx, node->childs[1]);
		}

		case _NODE_EXPR_AND: {
			assert(node->nchilds == 2);
			return _eval_expr(genctx, node->childs[0])
				&& _eval_expr(genctx, node->childs[1]);
		}

		case _NODE_EXPR_BOR: {
			assert(node->nchilds == 2);
			return _eval_expr(genctx, node->childs[0])
				| _eval_expr(genctx, node->childs[1]);
		}

		case _NODE_EXPR_BXOR: {
			assert(node->nchilds == 2);
			return _eval_expr(genctx, node->childs[0])
				^ _eval_expr(genctx, node->childs[1]);
		}

		case _NODE_EXPR_BAND: {
			assert(node->nchilds == 2);
			return _eval_expr(genctx, node->childs[0])
				& _eval_expr(genctx, node->childs[1]);
		}

		case _NODE_EXPR_EQ: {
			assert(node->nchilds == 2);
			return _eval_expr(genctx, node->childs[0])
				== _eval_expr(genctx, node->childs[1]);
		}
		case _NODE_EXPR_NEQ: {
			assert(node->nchilds == 2);
			return _eval_expr(genctx, node->childs[0])
				!= _eval_expr(genctx, node->childs[1]);
		}

		case _NODE_EXPR_LT: {
			assert(node->nchilds == 2);
			return _eval_expr(genctx, node->childs[0])
				< _eval_expr(genctx, node->childs[1]);
		}
		case _NODE_EXPR_LE: {
			assert(node->nchilds == 2);
			return _eval_expr(genctx, node->childs[0])
				<= _eval_expr(genctx, node->childs[1]);
		}
		case _NODE_EXPR_GT: {
			assert(node->nchilds == 2);
			return _eval_expr(genctx, node->childs[0])
				> _eval_expr(genctx, node->childs[1]);
		}
		case _NODE_EXPR_GE: {
			assert(node->nchilds == 2);
			return _eval_expr(genctx, node->childs[0])
				>= _eval_expr(genctx, node->childs[1]);
		}

		case _NODE_EXPR_SHIFT_LEFT: {
			assert(node->nchilds == 2);
			return _eval_expr(genctx, node->childs[0])
				<< _eval_expr(genctx, node->childs[1]);
		}
		case _NODE_EXPR_SHIFT_RIGHT: {
			assert(node->nchilds == 2);
			return _eval_expr(genctx, node->childs[0])
				>> _eval_expr(genctx, node->childs[1]);
		}

		case _NODE_EXPR_ADD: {
			assert(node->nchilds == 2);
			return _eval_expr(genctx, node->childs[0])
				+ _eval_expr(genctx, node->childs[1]);
		}
		case _NODE_EXPR_SUB: {
			assert(node->nchilds == 2);
			return _eval_expr(genctx, node->childs[0])
				- _eval_expr(genctx, node->childs[1]);
		}

		case _NODE_EXPR_MUL: {
			assert(node->nchilds == 2);
			return _eval_expr(genctx, node->childs[0])
				* _eval_expr(genctx, node->childs[1]);
		}
		case _NODE_EXPR_DIV: {
			assert(node->nchilds == 2);
			return _eval_expr(genctx, node->childs[0])
				/ _eval_expr(genctx, node->childs[1]);
		}
		case _NODE_EXPR_MOD: {
			assert(node->nchilds == 2);
			return _eval_expr(genctx, node->childs[0])
				% _eval_expr(genctx, node->childs[1]);
		}

		case _NODE_EXPR_NOT: {
			assert(node->nchilds == 1);
			return !_eval_expr(genctx, node->childs[0]);
		}
		case _NODE_EXPR_BNOT: {
			assert(node->nchilds == 1);
			return ~_eval_expr(genctx, node->childs[0]);
		}
		case _NODE_EXPR_POSITIVE: {
			assert(node->nchilds == 1);
			return +_eval_expr(genctx, node->childs[0]);
		}
		case _NODE_EXPR_NEGATIVE: {
			assert(node->nchilds == 1);
			return -_eval_expr(genctx, node->childs[0]);
		}
		case _NODE_EXPR_DEFINED: {
			assert(node->nchilds == 1);
			
			ParserASTNode *child = node->childs[0];
			assert(child->type == _NODE_IDENTIFIER);

			LexerToken *token = child->token;
			assert(token->type == _TOKEN_IDENTIFIER);

			int result;

			ResizableString key;
			rstr_init_with_raw(&key, token->content, token->len);
			if (map_exists_key(genctx->map_kv, &key)) {
				result = 1;
			} else {
				result = 0;
			}
			rstr_free(&key);

			return result;
		}
		case _NODE_EXPR_STREQ: {
			assert(node->nchilds == 2);

			ParserASTNode *node_param1 = node->childs[0];
			ResizableString rstr_param1;
			rstr_init(&rstr_param1);
			_get_string_from_node(genctx, &rstr_param1, node_param1);

			ParserASTNode *node_param2 = node->childs[1];
			ResizableString rstr_param2;
			rstr_init(&rstr_param2);
			_get_string_from_node(genctx, &rstr_param2, node_param2);

			int result = rstr_compare(&rstr_param1, &rstr_param2) ? 1 : 0;

			rstr_free(&rstr_param1);
			rstr_free(&rstr_param2);

			return result;
		}
		case _NODE_EXPR_ATOM: {
			return _eval_expr_atom(genctx, node);
		}

		default: {
			assert(0);
			return 0;
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rsi, %r15
movq %rdi, %r14
xorl %ebx, %ebx
leaq 0x11354(%rip), %r12     # 0x36654
testq %r15, %r15
je 0x25ba6
movl (%r15), %eax
cmpl $0xe80, %eax            # imm = 0xE80
jg 0x25331
cmpl $0xe1f, %eax            # imm = 0xE1F
jg 0x25368
cmpl $0xe00, %eax            # imm = 0xE00
jne 0x2585f
cmpl $0x1, 0x44(%r15)
je 0x2535f
jmp 0x25c03
cmpl $0xe9f, %eax            # imm = 0xE9F
jle 0x2546a
leal -0xea0(%rax), %ecx
cmpl $0x15, %ecx
ja 0x255a1
movslq (%r12,%rcx,4), %rax
addq %r12, %rax
jmpq *%rax
cmpl $0x1, 0x44(%r15)
jne 0x25be4
movq 0x48(%r15), %rax
movq (%rax), %r15
jmp 0x25300
cmpl $0xe60, %eax            # imm = 0xE60
jg 0x253b9
cmpl $0xe3f, %eax            # imm = 0xE3F
jg 0x25412
cmpl $0xe20, %eax            # imm = 0xE20
je 0x25577
cmpl $0xe30, %eax            # imm = 0xE30
jne 0x25bc5
cmpl $0x2, 0x44(%r15)
jne 0x25c9e
movq 0x48(%r15), %rax
movq (%rax), %rsi
movq %r14, %rdi
callq 0x252e0
movq 0x48(%r15), %rcx
movq 0x8(%rcx), %r15
orl %eax, %ebx
jmp 0x25300
leal -0xe70(%rax), %ecx
cmpl $0x3, %ecx
ja 0x254c0
leaq 0x11275(%rip), %rax     # 0x36644
movslq (%rax,%rcx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
cmpl $0x2, 0x44(%r15)
jne 0x25e8e
movq 0x48(%r15), %rax
movq (%rax), %rsi
movq %r14, %rdi
callq 0x252e0
movl %eax, %r12d
movq 0x48(%r15), %rax
movq 0x8(%rax), %rsi
movq %r14, %rdi
callq 0x252e0
xorl %ecx, %ecx
cmpl %eax, %r12d
setl %cl
jmp 0x25985
cmpl $0xe40, %eax            # imm = 0xE40
je 0x25542
cmpl $0xe50, %eax            # imm = 0xE50
je 0x2550d
cmpl $0xe60, %eax            # imm = 0xE60
jne 0x25bc5
cmpl $0x2, 0x44(%r15)
jne 0x25c22
movq 0x48(%r15), %rax
movq (%rax), %rsi
movq %r14, %rdi
callq 0x252e0
movl %eax, %r12d
movq 0x48(%r15), %rax
movq 0x8(%rax), %rsi
movq %r14, %rdi
callq 0x252e0
xorl %ecx, %ecx
cmpl %eax, %r12d
jmp 0x257cb
cmpl $0xe81, %eax            # imm = 0xE81
je 0x25828
cmpl $0xe90, %eax            # imm = 0xE90
je 0x257f1
cmpl $0xe91, %eax            # imm = 0xE91
jne 0x25bc5
cmpl $0x2, 0x44(%r15)
jne 0x25db5
movq 0x48(%r15), %rax
movq (%rax), %rsi
movq %r14, %rdi
callq 0x252e0
movl %eax, %r12d
movq 0x48(%r15), %rax
movq 0x8(%rax), %rsi
movq %r14, %rdi
callq 0x252e0
subl %eax, %r12d
jmp 0x25b92
cmpl $0xe61, %eax            # imm = 0xE61
je 0x258e2
cmpl $0xe80, %eax            # imm = 0xE80
jne 0x25bc5
cmpl $0x2, 0x44(%r15)
jne 0x25ead
movq 0x48(%r15), %rax
movq (%rax), %rsi
movq %r14, %rdi
callq 0x252e0
movl %eax, %r12d
movq 0x48(%r15), %rax
movq 0x8(%rax), %rsi
movq %r14, %rdi
callq 0x252e0
movl %eax, %ecx
shll %cl, %r12d
jmp 0x25b92
cmpl $0x2, 0x44(%r15)
jne 0x25c41
movq 0x48(%r15), %rax
movq (%rax), %rsi
movq %r14, %rdi
callq 0x252e0
movl %eax, %r12d
movq 0x48(%r15), %rax
movq 0x8(%rax), %rsi
movq %r14, %rdi
callq 0x252e0
andl %r12d, %eax
jmp 0x25821
cmpl $0x2, 0x44(%r15)
jne 0x25c60
movq 0x48(%r15), %rax
movq (%rax), %rsi
movq %r14, %rdi
callq 0x252e0
movl %eax, %r12d
movq 0x48(%r15), %rax
movq 0x8(%rax), %rsi
movq %r14, %rdi
callq 0x252e0
xorl %r12d, %eax
jmp 0x25821
cmpl $0x2, 0x44(%r15)
jne 0x25c7f
movq 0x48(%r15), %rax
movq (%rax), %rsi
movq %r14, %rdi
callq 0x252e0
testl %eax, %eax
jne 0x25892
xorl %r12d, %r12d
jmp 0x25b92
cmpl $0xec0, %eax            # imm = 0xEC0
jne 0x25bc5
cmpl $0x1, 0x44(%r15)
jne 0x25e50
movq 0x48(%r15), %rax
movq (%rax), %rax
movl (%rax), %ecx
cmpl $0x300, %ecx            # imm = 0x300
jg 0x2598c
cmpl $0x200, %ecx            # imm = 0x200
je 0x259fd
cmpl $0x300, %ecx            # imm = 0x300
jne 0x25f48
movq 0x10(%rax), %rax
movl $0xfffff000, %ecx       # imm = 0xFFFFF000
addl (%rax), %ecx
cmpl $0x3, %ecx
ja 0x25fa5
leaq 0x110ad(%rip), %rdx     # 0x366ac
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
movq 0x8(%rax), %rdi
movl 0x4(%rax), %esi
callq 0x11199
jmp 0x25b0a
cmpl $0x1, 0x44(%r15)
jne 0x25cbd
movq 0x48(%r15), %rax
movq (%rax), %rax
cmpl $0x200, (%rax)          # imm = 0x200
jne 0x25e12
movq 0x10(%rax), %rax
cmpl $0x2000, (%rax)         # imm = 0x2000
jne 0x25e31
movq 0x8(%rax), %rsi
movl 0x4(%rax), %edx
leaq -0x38(%rbp), %r15
movq %r15, %rdi
callq 0xe60d
movq 0x18(%r14), %rdi
movq %r15, %rsi
callq 0xc91a
movzbl %al, %r12d
movq %r15, %rdi
jmp 0x25b8d
cmpl $0x2, 0x44(%r15)
jne 0x25cdc
movq 0x48(%r15), %rax
movq (%rax), %rsi
movq %r14, %rdi
callq 0x252e0
movl %eax, %r12d
movq 0x48(%r15), %rax
movq 0x8(%rax), %rsi
movq %r14, %rdi
callq 0x252e0
imull %r12d, %eax
jmp 0x25821
cmpl $0x1, 0x44(%r15)
jne 0x25cfb
movq 0x48(%r15), %rax
movq (%rax), %rsi
movq %r14, %rdi
callq 0x252e0
negl %eax
jmp 0x25821
cmpl $0x2, 0x44(%r15)
jne 0x25d1a
movq 0x48(%r15), %rax
movq (%rax), %r12
leaq -0x38(%rbp), %r13
movq %r13, %rdi
callq 0xe468
movq %r14, %rdi
movq %r13, %rsi
movq %r12, %rdx
callq 0x287d1
movq 0x48(%r15), %rax
movq 0x8(%rax), %r15
leaq -0x48(%rbp), %r13
movq %r13, %rdi
callq 0xe468
movq %r14, %rdi
movq %r13, %rsi
movq %r15, %rdx
callq 0x287d1
leaq -0x38(%rbp), %r14
movq %r14, %rdi
movq %r13, %rsi
callq 0xefa6
movzbl %al, %r12d
movq %r14, %rdi
callq 0xe958
movq %r13, %rdi
jmp 0x25b8d
cmpl $0x2, 0x44(%r15)
jne 0x25d39
movq 0x48(%r15), %rax
movq (%rax), %rsi
movq %r14, %rdi
callq 0x252e0
movl %eax, %r12d
movq 0x48(%r15), %rax
movq 0x8(%rax), %rsi
movq %r14, %rdi
callq 0x252e0
movl %eax, %ecx
movl %r12d, %eax
cltd
idivl %ecx
orl %edx, %ebx
jmp 0x25b95
cmpl $0x2, 0x44(%r15)
jne 0x25d58
movq 0x48(%r15), %rax
movq (%rax), %rsi
movq %r14, %rdi
callq 0x252e0
movl %eax, %r12d
movq 0x48(%r15), %rax
movq 0x8(%rax), %rsi
movq %r14, %rdi
callq 0x252e0
movl %eax, %ecx
movl %r12d, %eax
cltd
idivl %ecx
jmp 0x25821
cmpl $0x1, 0x44(%r15)
jne 0x25d77
movq 0x48(%r15), %rax
movq (%rax), %rsi
movq %r14, %rdi
callq 0x252e0
xorl %ecx, %ecx
testl %eax, %eax
sete %cl
jmp 0x25985
cmpl $0x1, 0x44(%r15)
jne 0x25d96
movq 0x48(%r15), %rax
movq (%rax), %rsi
movq %r14, %rdi
callq 0x252e0
notl %eax
jmp 0x25821
cmpl $0x2, 0x44(%r15)
jne 0x25dd4
movq 0x48(%r15), %rax
movq (%rax), %rsi
movq %r14, %rdi
callq 0x252e0
movl %eax, %r12d
movq 0x48(%r15), %rax
movq 0x8(%rax), %rsi
movq %r14, %rdi
callq 0x252e0
addl %r12d, %eax
orl %eax, %ebx
jmp 0x25b95
cmpl $0x2, 0x44(%r15)
jne 0x25df3
movq 0x48(%r15), %rax
movq (%rax), %rsi
movq %r14, %rdi
callq 0x252e0
movl %eax, %r12d
movq 0x48(%r15), %rax
movq 0x8(%rax), %rsi
movq %r14, %rdi
callq 0x252e0
movl %eax, %ecx
sarl %cl, %r12d
jmp 0x25b92
cmpl $0xe10, %eax            # imm = 0xE10
jne 0x25bc5
cmpl $0x2, 0x44(%r15)
jne 0x25e6f
movq 0x48(%r15), %rax
movq (%rax), %rsi
movq %r14, %rdi
callq 0x252e0
movl $0x1, %r12d
testl %eax, %eax
jne 0x25b92
movq 0x48(%r15), %rax
movq 0x8(%rax), %rsi
movq %r14, %rdi
callq 0x252e0
xorl %ecx, %ecx
testl %eax, %eax
jmp 0x25914
cmpl $0x2, 0x44(%r15)
jne 0x25ecc
movq 0x48(%r15), %rax
movq (%rax), %rsi
movq %r14, %rdi
callq 0x252e0
movl %eax, %r12d
movq 0x48(%r15), %rax
movq 0x8(%rax), %rsi
movq %r14, %rdi
callq 0x252e0
xorl %ecx, %ecx
cmpl %eax, %r12d
setg %cl
jmp 0x25985
cmpl $0x2, 0x44(%r15)
jne 0x25eeb
movq 0x48(%r15), %rax
movq (%rax), %rsi
movq %r14, %rdi
callq 0x252e0
movl %eax, %r12d
movq 0x48(%r15), %rax
movq 0x8(%rax), %rsi
movq %r14, %rdi
callq 0x252e0
xorl %ecx, %ecx
cmpl %eax, %r12d
setne %cl
jmp 0x25985
cmpl $0x2, 0x44(%r15)
jne 0x25f0a
movq 0x48(%r15), %rax
movq (%rax), %rsi
movq %r14, %rdi
callq 0x252e0
movl %eax, %r12d
movq 0x48(%r15), %rax
movq 0x8(%rax), %rsi
movq %r14, %rdi
callq 0x252e0
xorl %ecx, %ecx
cmpl %eax, %r12d
setge %cl
jmp 0x25985
cmpl $0x2, 0x44(%r15)
jne 0x25f29
movq 0x48(%r15), %rax
movq (%rax), %rsi
movq %r14, %rdi
callq 0x252e0
movl %eax, %r12d
movq 0x48(%r15), %rax
movq 0x8(%rax), %rsi
movq %r14, %rdi
callq 0x252e0
xorl %ecx, %ecx
cmpl %eax, %r12d
setle %cl
orl %ecx, %ebx
jmp 0x25b95
cmpl $0x301, %ecx            # imm = 0x301
je 0x25a64
cmpl $0x302, %ecx            # imm = 0x302
jne 0x25f48
movq 0x10(%rax), %r15
leaq -0x38(%rbp), %r14
movq %r14, %rdi
callq 0xe468
movq 0x8(%r15), %rsi
movl 0x4(%r15), %edx
movq %r14, %rdi
callq 0x10f79
movq 0x8(%r14), %rax
testq %rax, %rax
leaq 0x9de4(%rip), %r15      # 0x2f7b6
cmovneq %rax, %r15
movl 0x4(%r14), %r14d
movq %r15, %rdi
movl %r14d, %esi
callq 0x10b3a
testb %al, %al
je 0x25a85
movq %r15, %rdi
movl %r14d, %esi
callq 0x11200
jmp 0x25b86
movq 0x10(%rax), %r15
cmpl $0x2000, (%r15)         # imm = 0x2000
jne 0x25f67
leaq -0x38(%rbp), %r12
movq %r12, %rdi
callq 0xe468
movq 0x8(%r15), %rdx
movl 0x4(%r15), %ecx
movq %r12, %rdi
movq %r14, %rsi
callq 0x2b098
movq 0x8(%r12), %rax
testq %rax, %rax
leaq 0x9d7a(%rip), %r15      # 0x2f7b6
cmovneq %rax, %r15
movl 0x4(%r12), %r14d
movq %r15, %rdi
movl %r14d, %esi
callq 0x10908
testb %al, %al
je 0x25aa4
movq %r15, %rdi
movl %r14d, %esi
callq 0x10f64
jmp 0x25b86
movq 0x10(%rax), %rax
cmpl $0x1004, (%rax)         # imm = 0x1004
jne 0x25f86
movq 0x8(%rax), %rdi
movl 0x4(%rax), %esi
callq 0x10f64
jmp 0x25b0a
movq %r15, %rdi
movl %r14d, %esi
callq 0x10c1f
testb %al, %al
je 0x25ac3
movq %r15, %rdi
movl %r14d, %esi
callq 0x11328
jmp 0x25b86
movq %r15, %rdi
movl %r14d, %esi
callq 0x10aa5
testb %al, %al
je 0x25b12
movq %r15, %rdi
movl %r14d, %esi
callq 0x11199
jmp 0x25b86
movq %r15, %rdi
movl %r14d, %esi
callq 0x10cf2
testb %al, %al
je 0x25b2e
movq %r15, %rdi
movl %r14d, %esi
callq 0x11444
jmp 0x25b86
movq 0x8(%rax), %rdi
movl 0x4(%rax), %esi
callq 0x113dd
jmp 0x25b0a
movq 0x8(%rax), %rdi
movl 0x4(%rax), %esi
callq 0x11581
jmp 0x25b0a
movq 0x8(%rax), %rdi
movl 0x4(%rax), %esi
callq 0x112c1
movl %eax, %r12d
jmp 0x25b92
movq %r15, %rdi
movl %r14d, %esi
callq 0x10b81
testb %al, %al
je 0x25b4d
movq %r15, %rdi
movl %r14d, %esi
callq 0x112c1
jmp 0x25b86
movq %r15, %rdi
movl %r14d, %esi
callq 0x10e23
xorl %r12d, %r12d
testb %al, %al
je 0x25b89
movq %r15, %rdi
movl %r14d, %esi
callq 0x115e8
jmp 0x25b86
movq %r15, %rdi
movl %r14d, %esi
callq 0x10c66
testb %al, %al
je 0x25b69
movq %r15, %rdi
movl %r14d, %esi
callq 0x113dd
jmp 0x25b86
movq %r15, %rdi
movl %r14d, %esi
callq 0x10d39
xorl %r12d, %r12d
testb %al, %al
je 0x25b89
movq %r15, %rdi
movl %r14d, %esi
callq 0x11581
movl %eax, %r12d
leaq -0x38(%rbp), %rdi
callq 0xe958
orl %r12d, %ebx
movl %ebx, %eax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xd14e(%rip), %rdi      # 0x32cfb
leaq 0x10b3b(%rip), %rsi     # 0x366ef
leaq 0x10bc3(%rip), %rcx     # 0x3677e
movl $0x4ce, %edx            # imm = 0x4CE
callq 0xa0b0
leaq 0x97c8(%rip), %rdi      # 0x2f394
leaq 0x10b1c(%rip), %rsi     # 0x366ef
leaq 0x10ba4(%rip), %rcx     # 0x3677e
movl $0x579, %edx            # imm = 0x579
callq 0xa0b0
leaq 0xcaff(%rip), %rdi      # 0x326ea
leaq 0x10afd(%rip), %rsi     # 0x366ef
leaq 0x10b85(%rip), %rcx     # 0x3677e
movl $0x543, %edx            # imm = 0x543
callq 0xa0b0
leaq 0xcae0(%rip), %rdi      # 0x326ea
leaq 0x10ade(%rip), %rsi     # 0x366ef
leaq 0x10b66(%rip), %rcx     # 0x3677e
movl $0x4d2, %edx            # imm = 0x4D2
callq 0xa0b0
leaq 0xcce6(%rip), %rdi      # 0x3290f
leaq 0x10abf(%rip), %rsi     # 0x366ef
leaq 0x10b47(%rip), %rcx     # 0x3677e
movl $0x4f5, %edx            # imm = 0x4F5
callq 0xa0b0
leaq 0xccc7(%rip), %rdi      # 0x3290f
leaq 0x10aa0(%rip), %rsi     # 0x366ef
leaq 0x10b28(%rip), %rcx     # 0x3677e
movl $0x4ef, %edx            # imm = 0x4EF
callq 0xa0b0
leaq 0xcca8(%rip), %rdi      # 0x3290f
leaq 0x10a81(%rip), %rsi     # 0x366ef
leaq 0x10b09(%rip), %rcx     # 0x3677e
movl $0x4e9, %edx            # imm = 0x4E9
callq 0xa0b0
leaq 0xcc89(%rip), %rdi      # 0x3290f
leaq 0x10a62(%rip), %rsi     # 0x366ef
leaq 0x10aea(%rip), %rcx     # 0x3677e
movl $0x4dd, %edx            # imm = 0x4DD
callq 0xa0b0
leaq 0xcc6a(%rip), %rdi      # 0x3290f
leaq 0x10a43(%rip), %rsi     # 0x366ef
leaq 0x10acb(%rip), %rcx     # 0x3677e
movl $0x4e3, %edx            # imm = 0x4E3
callq 0xa0b0
leaq 0xca26(%rip), %rdi      # 0x326ea
leaq 0x10a24(%rip), %rsi     # 0x366ef
leaq 0x10aac(%rip), %rcx     # 0x3677e
movl $0x54b, %edx            # imm = 0x54B
callq 0xa0b0
leaq 0xcc2c(%rip), %rdi      # 0x3290f
leaq 0x10a05(%rip), %rsi     # 0x366ef
leaq 0x10a8d(%rip), %rcx     # 0x3677e
movl $0x52b, %edx            # imm = 0x52B
callq 0xa0b0
leaq 0xc9e8(%rip), %rdi      # 0x326ea
leaq 0x109e6(%rip), %rsi     # 0x366ef
leaq 0x10a6e(%rip), %rcx     # 0x3677e
movl $0x547, %edx            # imm = 0x547
callq 0xa0b0
leaq 0xcbee(%rip), %rdi      # 0x3290f
leaq 0x109c7(%rip), %rsi     # 0x366ef
leaq 0x10a4f(%rip), %rcx     # 0x3677e
movl $0x561, %edx            # imm = 0x561
callq 0xa0b0
leaq 0xcbcf(%rip), %rdi      # 0x3290f
leaq 0x109a8(%rip), %rsi     # 0x366ef
leaq 0x10a30(%rip), %rcx     # 0x3677e
movl $0x535, %edx            # imm = 0x535
callq 0xa0b0
leaq 0xcbb0(%rip), %rdi      # 0x3290f
leaq 0x10989(%rip), %rsi     # 0x366ef
leaq 0x10a11(%rip), %rcx     # 0x3677e
movl $0x530, %edx            # imm = 0x530
callq 0xa0b0
leaq 0xc96c(%rip), %rdi      # 0x326ea
leaq 0x1096a(%rip), %rsi     # 0x366ef
leaq 0x109f2(%rip), %rcx     # 0x3677e
movl $0x53b, %edx            # imm = 0x53B
callq 0xa0b0
leaq 0xc94d(%rip), %rdi      # 0x326ea
leaq 0x1094b(%rip), %rsi     # 0x366ef
leaq 0x109d3(%rip), %rcx     # 0x3677e
movl $0x53f, %edx            # imm = 0x53F
callq 0xa0b0
leaq 0xcb53(%rip), %rdi      # 0x3290f
leaq 0x1092c(%rip), %rsi     # 0x366ef
leaq 0x109b4(%rip), %rcx     # 0x3677e
movl $0x525, %edx            # imm = 0x525
callq 0xa0b0
leaq 0xcb34(%rip), %rdi      # 0x3290f
leaq 0x1090d(%rip), %rsi     # 0x366ef
leaq 0x10995(%rip), %rcx     # 0x3677e
movl $0x520, %edx            # imm = 0x520
callq 0xa0b0
leaq 0xcb15(%rip), %rdi      # 0x3290f
leaq 0x108ee(%rip), %rsi     # 0x366ef
leaq 0x10976(%rip), %rcx     # 0x3677e
movl $0x51a, %edx            # imm = 0x51A
callq 0xa0b0
leaq 0x1099b(%rip), %rdi     # 0x367b4
leaq 0x108cf(%rip), %rsi     # 0x366ef
leaq 0x10957(%rip), %rcx     # 0x3677e
movl $0x54e, %edx            # imm = 0x54E
callq 0xa0b0
leaq 0x1099c(%rip), %rdi     # 0x367d4
leaq 0x108b0(%rip), %rsi     # 0x366ef
leaq 0x10938(%rip), %rcx     # 0x3677e
movl $0x551, %edx            # imm = 0x551
callq 0xa0b0
leaq 0xc893(%rip), %rdi      # 0x326ea
leaq 0x10891(%rip), %rsi     # 0x366ef
leaq 0x109e5(%rip), %rcx     # 0x3684a
movl $0x483, %edx            # imm = 0x483
callq 0xa0b0
leaq 0xca99(%rip), %rdi      # 0x3290f
leaq 0x10872(%rip), %rsi     # 0x366ef
leaq 0x108fa(%rip), %rcx     # 0x3677e
movl $0x4d7, %edx            # imm = 0x4D7
callq 0xa0b0
leaq 0xca7a(%rip), %rdi      # 0x3290f
leaq 0x10853(%rip), %rsi     # 0x366ef
leaq 0x108db(%rip), %rcx     # 0x3677e
movl $0x500, %edx            # imm = 0x500
callq 0xa0b0
leaq 0xca5b(%rip), %rdi      # 0x3290f
leaq 0x10834(%rip), %rsi     # 0x366ef
leaq 0x108bc(%rip), %rcx     # 0x3677e
movl $0x515, %edx            # imm = 0x515
callq 0xa0b0
leaq 0xca3c(%rip), %rdi      # 0x3290f
leaq 0x10815(%rip), %rsi     # 0x366ef
leaq 0x1089d(%rip), %rcx     # 0x3677e
movl $0x50a, %edx            # imm = 0x50A
callq 0xa0b0
leaq 0xca1d(%rip), %rdi      # 0x3290f
leaq 0x107f6(%rip), %rsi     # 0x366ef
leaq 0x1087e(%rip), %rcx     # 0x3677e
movl $0x4fa, %edx            # imm = 0x4FA
callq 0xa0b0
leaq 0xc9fe(%rip), %rdi      # 0x3290f
leaq 0x107d7(%rip), %rsi     # 0x366ef
leaq 0x1085f(%rip), %rcx     # 0x3677e
movl $0x50f, %edx            # imm = 0x50F
callq 0xa0b0
leaq 0xc9df(%rip), %rdi      # 0x3290f
leaq 0x107b8(%rip), %rsi     # 0x366ef
leaq 0x10840(%rip), %rcx     # 0x3677e
movl $0x505, %edx            # imm = 0x505
callq 0xa0b0
leaq 0x9445(%rip), %rdi      # 0x2f394
leaq 0x10799(%rip), %rsi     # 0x366ef
leaq 0x108ed(%rip), %rcx     # 0x3684a
movl $0x494, %edx            # imm = 0x494
callq 0xa0b0
leaq 0x9426(%rip), %rdi      # 0x2f394
leaq 0x1077a(%rip), %rsi     # 0x366ef
leaq 0x10909(%rip), %rcx     # 0x36885
movl $0x42a, %edx            # imm = 0x42A
callq 0xa0b0
leaq 0x9407(%rip), %rdi      # 0x2f394
leaq 0x1075b(%rip), %rsi     # 0x366ef
leaq 0x10964(%rip), %rcx     # 0x368ff
movl $0x458, %edx            # imm = 0x458
callq 0xa0b0
leaq 0x93e8(%rip), %rdi      # 0x2f394
leaq 0x1073c(%rip), %rsi     # 0x366ef
leaq 0x10907(%rip), %rcx     # 0x368c1
movl $0x446, %edx            # imm = 0x446
callq 0xa0b0