// File: /workspace/github_c_makefile_star2_O3/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
testq %rsi, %rsi
je 0x2538e
movq %rsi, %r14
movq %rdi, %rbx
xorl %r13d, %r13d
leaq 0x10b20(%rip), %r15     # 0x35604
movl (%r14), %eax
cmpl $0xe80, %eax            # imm = 0xE80
jg 0x24b0c
cmpl $0xe1f, %eax            # imm = 0xE1F
jg 0x24b4b
cmpl $0xe00, %eax            # imm = 0xE00
jne 0x25054
cmpl $0x1, 0x44(%r14)
je 0x24b3a
jmp 0x253eb
cmpl $0xe9f, %eax            # imm = 0xE9F
jle 0x24c4b
leal -0xea0(%rax), %ecx
cmpl $0x15, %ecx
ja 0x24d88
movslq (%r15,%rcx,4), %rax
addq %r15, %rax
jmpq *%rax
cmpl $0x1, 0x44(%r14)
jne 0x253cc
movq 0x48(%r14), %rax
movq (%rax), %r14
testq %r14, %r14
jne 0x24ae4
jmp 0x2538e
cmpl $0xe60, %eax            # imm = 0xE60
jg 0x24b9a
cmpl $0xe3f, %eax            # imm = 0xE3F
jg 0x24bf3
cmpl $0xe20, %eax            # imm = 0xE20
je 0x24d5e
cmpl $0xe30, %eax            # imm = 0xE30
jne 0x253ad
cmpl $0x2, 0x44(%r14)
jne 0x25486
movq 0x48(%r14), %rax
movq (%rax), %rsi
movq %rbx, %rdi
callq 0x24aba
movq 0x48(%r14), %rcx
movq 0x8(%rcx), %r14
orl %eax, %r13d
jmp 0x24b41
leal -0xe70(%rax), %ecx
cmpl $0x3, %ecx
ja 0x24ca1
leaq 0x10a44(%rip), %rax     # 0x355f4
movslq (%rax,%rcx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
cmpl $0x2, 0x44(%r14)
jne 0x256f2
movq 0x48(%r14), %rax
movq (%rax), %rsi
movq %rbx, %rdi
callq 0x24aba
movl %eax, %r15d
movq 0x48(%r14), %rax
movq 0x8(%rax), %rsi
movq %rbx, %rdi
callq 0x24aba
xorl %ecx, %ecx
cmpl %eax, %r15d
setl %cl
jmp 0x2517a
cmpl $0xe40, %eax            # imm = 0xE40
je 0x24d26
cmpl $0xe50, %eax            # imm = 0xE50
je 0x24cee
cmpl $0xe60, %eax            # imm = 0xE60
jne 0x253ad
cmpl $0x2, 0x44(%r14)
jne 0x2540a
movq 0x48(%r14), %rax
movq (%rax), %rsi
movq %rbx, %rdi
callq 0x24aba
movl %eax, %r15d
movq 0x48(%r14), %rax
movq 0x8(%rax), %rsi
movq %rbx, %rdi
callq 0x24aba
xorl %ecx, %ecx
cmpl %eax, %r15d
jmp 0x24f84
cmpl $0xe81, %eax            # imm = 0xE81
je 0x2501d
cmpl $0xe90, %eax            # imm = 0xE90
je 0x24fe5
cmpl $0xe91, %eax            # imm = 0xE91
jne 0x253ad
cmpl $0x2, 0x44(%r14)
jne 0x2559d
movq 0x48(%r14), %rax
movq (%rax), %rsi
movq %rbx, %rdi
callq 0x24aba
movl %eax, %r15d
movq 0x48(%r14), %rax
movq 0x8(%rax), %rsi
movq %rbx, %rdi
callq 0x24aba
subl %eax, %r15d
jmp 0x25379
cmpl $0xe61, %eax            # imm = 0xE61
je 0x250d7
cmpl $0xe80, %eax            # imm = 0xE80
jne 0x253ad
cmpl $0x2, 0x44(%r14)
jne 0x25676
movq 0x48(%r14), %rax
movq (%rax), %rsi
movq %rbx, %rdi
callq 0x24aba
movl %eax, %r15d
movq 0x48(%r14), %rax
movq 0x8(%rax), %rsi
movq %rbx, %rdi
callq 0x24aba
movl %eax, %ecx
shll %cl, %r15d
jmp 0x25379
cmpl $0x2, 0x44(%r14)
jne 0x25429
movq 0x48(%r14), %rax
movq (%rax), %rsi
movq %rbx, %rdi
callq 0x24aba
movl %eax, %r12d
movq 0x48(%r14), %rax
movq 0x8(%rax), %rsi
movq %rbx, %rdi
callq 0x24aba
movl %eax, %r15d
andl %r12d, %r15d
jmp 0x25379
cmpl $0x2, 0x44(%r14)
jne 0x25448
movq 0x48(%r14), %rax
movq (%rax), %rsi
movq %rbx, %rdi
callq 0x24aba
movl %eax, %r12d
movq 0x48(%r14), %rax
movq 0x8(%rax), %rsi
movq %rbx, %rdi
callq 0x24aba
movl %eax, %r15d
xorl %r12d, %r15d
jmp 0x25379
cmpl $0x2, 0x44(%r14)
jne 0x25467
movq 0x48(%r14), %rax
movq (%rax), %rsi
movq %rbx, %rdi
callq 0x24aba
testl %eax, %eax
jne 0x25087
xorl %r15d, %r15d
jmp 0x25379
cmpl $0xec0, %eax            # imm = 0xEC0
jne 0x253ad
cmpl $0x1, 0x44(%r14)
jne 0x25638
movq 0x48(%r14), %rax
movq (%rax), %rax
movl (%rax), %ecx
cmpl $0x300, %ecx            # imm = 0x300
jg 0x25185
cmpl $0x200, %ecx            # imm = 0x200
je 0x251f3
cmpl $0x300, %ecx            # imm = 0x300
jne 0x25730
movq 0x10(%rax), %rax
movl $0xfffff000, %ecx       # imm = 0xFFFFF000
addl (%rax), %ecx
cmpl $0x3, %ecx
ja 0x2578d
leaq 0x10876(%rip), %rdx     # 0x3565c
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
movq 0x8(%rax), %rdi
movl 0x4(%rax), %esi
callq 0x10f3d
jmp 0x24e53
cmpl $0x1, 0x44(%r14)
jne 0x254a5
movq 0x48(%r14), %rax
movq (%rax), %rsi
movq %rbx, %rdi
callq 0x24aba
notl %eax
jmp 0x24eb0
cmpl $0x2, 0x44(%r14)
jne 0x254c4
movq 0x48(%r14), %rax
movq (%rax), %rsi
movq %rbx, %rdi
callq 0x24aba
movl %eax, %r15d
movq 0x48(%r14), %rax
movq 0x8(%rax), %rsi
movq %rbx, %rdi
callq 0x24aba
movl %eax, %ecx
movl %r15d, %eax
cltd
idivl %ecx
movl %eax, %r15d
jmp 0x25379
cmpl $0x2, 0x44(%r14)
jne 0x254e3
movq 0x48(%r14), %rax
movq (%rax), %rsi
movq %rbx, %rdi
callq 0x24aba
movl %eax, %r12d
movq 0x48(%r14), %rax
movq 0x8(%rax), %rsi
movq %rbx, %rdi
callq 0x24aba
movl %eax, %r15d
imull %r12d, %r15d
jmp 0x25379
cmpl $0x1, 0x44(%r14)
jne 0x25502
movq 0x48(%r14), %rax
movq (%rax), %rsi
movq %rbx, %rdi
callq 0x24aba
negl %eax
orl %eax, %r13d
jmp 0x2517d
cmpl $0x2, 0x44(%r14)
jne 0x25521
movq 0x48(%r14), %rax
movq (%rax), %rsi
movq %rbx, %rdi
callq 0x24aba
movl %eax, %r15d
movq 0x48(%r14), %rax
movq 0x8(%rax), %rsi
movq %rbx, %rdi
callq 0x24aba
movl %eax, %ecx
movl %r15d, %eax
cltd
idivl %ecx
movl %edx, %r15d
jmp 0x25379
cmpl $0x2, 0x44(%r14)
jne 0x25540
movq 0x48(%r14), %rax
movq (%rax), %r15
leaq -0x38(%rbp), %r12
movq %r12, %rdi
callq 0xe274
movq %rbx, %rdi
movq %r12, %rsi
movq %r15, %rdx
callq 0x27e99
movq 0x48(%r14), %rax
movq 0x8(%rax), %r14
leaq -0x48(%rbp), %r12
movq %r12, %rdi
callq 0xe274
movq %rbx, %rdi
movq %r12, %rsi
movq %r14, %rdx
callq 0x27e99
leaq -0x38(%rbp), %rbx
movq %rbx, %rdi
movq %r12, %rsi
callq 0xedc1
movzbl %al, %r15d
movq %rbx, %rdi
callq 0xe772
movq %r12, %rdi
jmp 0x25374
cmpl $0x1, 0x44(%r14)
jne 0x2555f
movq 0x48(%r14), %rax
movq (%rax), %rsi
movq %rbx, %rdi
callq 0x24aba
xorl %ecx, %ecx
testl %eax, %eax
sete %cl
jmp 0x2517a
cmpl $0x1, 0x44(%r14)
jne 0x2557e
movq 0x48(%r14), %rax
movq (%rax), %rax
cmpl $0x200, (%rax)          # imm = 0x200
jne 0x255fa
movq 0x10(%rax), %rax
cmpl $0x2000, (%rax)         # imm = 0x2000
jne 0x25619
movq 0x8(%rax), %rsi
movl 0x4(%rax), %edx
leaq -0x38(%rbp), %r14
movq %r14, %rdi
callq 0xe41c
movq 0x18(%rbx), %rdi
movq %r14, %rsi
callq 0xc82a
movzbl %al, %r15d
movq %r14, %rdi
jmp 0x25374
cmpl $0x2, 0x44(%r14)
jne 0x255bc
movq 0x48(%r14), %rax
movq (%rax), %rsi
movq %rbx, %rdi
callq 0x24aba
movl %eax, %r12d
movq 0x48(%r14), %rax
movq 0x8(%rax), %rsi
movq %rbx, %rdi
callq 0x24aba
movl %eax, %r15d
addl %r12d, %r15d
jmp 0x25379
cmpl $0x2, 0x44(%r14)
jne 0x255db
movq 0x48(%r14), %rax
movq (%rax), %rsi
movq %rbx, %rdi
callq 0x24aba
movl %eax, %r15d
movq 0x48(%r14), %rax
movq 0x8(%rax), %rsi
movq %rbx, %rdi
callq 0x24aba
movl %eax, %ecx
sarl %cl, %r15d
jmp 0x25379
cmpl $0xe10, %eax            # imm = 0xE10
jne 0x253ad
cmpl $0x2, 0x44(%r14)
jne 0x25657
movq 0x48(%r14), %rax
movq (%rax), %rsi
movq %rbx, %rdi
callq 0x24aba
movl $0x1, %r15d
testl %eax, %eax
jne 0x25379
movq 0x48(%r14), %rax
movq 0x8(%rax), %rsi
movq %rbx, %rdi
callq 0x24aba
xorl %ecx, %ecx
testl %eax, %eax
jmp 0x25109
cmpl $0x2, 0x44(%r14)
jne 0x25695
movq 0x48(%r14), %rax
movq (%rax), %rsi
movq %rbx, %rdi
callq 0x24aba
movl %eax, %r15d
movq 0x48(%r14), %rax
movq 0x8(%rax), %rsi
movq %rbx, %rdi
callq 0x24aba
xorl %ecx, %ecx
cmpl %eax, %r15d
setg %cl
jmp 0x2517a
cmpl $0x2, 0x44(%r14)
jne 0x256b4
movq 0x48(%r14), %rax
movq (%rax), %rsi
movq %rbx, %rdi
callq 0x24aba
movl %eax, %r15d
movq 0x48(%r14), %rax
movq 0x8(%rax), %rsi
movq %rbx, %rdi
callq 0x24aba
xorl %ecx, %ecx
cmpl %eax, %r15d
setne %cl
jmp 0x2517a
cmpl $0x2, 0x44(%r14)
jne 0x256d3
movq 0x48(%r14), %rax
movq (%rax), %rsi
movq %rbx, %rdi
callq 0x24aba
movl %eax, %r15d
movq 0x48(%r14), %rax
movq 0x8(%rax), %rsi
movq %rbx, %rdi
callq 0x24aba
xorl %ecx, %ecx
cmpl %eax, %r15d
setge %cl
jmp 0x2517a
cmpl $0x2, 0x44(%r14)
jne 0x25711
movq 0x48(%r14), %rax
movq (%rax), %rsi
movq %rbx, %rdi
callq 0x24aba
movl %eax, %r15d
movq 0x48(%r14), %rax
movq 0x8(%rax), %rsi
movq %rbx, %rdi
callq 0x24aba
xorl %ecx, %ecx
cmpl %eax, %r15d
setle %cl
orl %ecx, %r13d
movl %r13d, %r15d
jmp 0x2537c
cmpl $0x301, %ecx            # imm = 0x301
je 0x25256
cmpl $0x302, %ecx            # imm = 0x302
jne 0x25730
movq 0x10(%rax), %r14
leaq -0x38(%rbp), %rbx
movq %rbx, %rdi
callq 0xe274
movq 0x8(%r14), %rsi
movl 0x4(%r14), %edx
movq %rbx, %rdi
callq 0x10d2a
movq 0x8(%rbx), %rax
testq %rax, %rax
leaq 0x95c7(%rip), %r14      # 0x2e792
cmovneq %rax, %r14
movl 0x4(%rbx), %ebx
movq %r14, %rdi
movl %ebx, %esi
callq 0x108e1
testb %al, %al
je 0x25277
movq %r14, %rdi
movl %ebx, %esi
callq 0x10fa4
jmp 0x2536d
movq 0x10(%rax), %r14
cmpl $0x2000, (%r14)         # imm = 0x2000
jne 0x2574f
leaq -0x38(%rbp), %r15
movq %r15, %rdi
callq 0xe274
movq 0x8(%r14), %rdx
movl 0x4(%r14), %ecx
movq %r15, %rdi
movq %rbx, %rsi
callq 0x2a6b4
movq 0x8(%r15), %rax
testq %rax, %rax
leaq 0x9561(%rip), %r14      # 0x2e792
cmovneq %rax, %r14
movl 0x4(%r15), %ebx
movq %r14, %rdi
movl %ebx, %esi
callq 0x106e4
testb %al, %al
je 0x25294
movq %r14, %rdi
movl %ebx, %esi
callq 0x10d15
jmp 0x2536d
movq 0x10(%rax), %rax
cmpl $0x1004, (%rax)         # imm = 0x1004
jne 0x2576e
movq 0x8(%rax), %rdi
movl 0x4(%rax), %esi
callq 0x10d15
jmp 0x24e53
movq %r14, %rdi
movl %ebx, %esi
callq 0x109a7
testb %al, %al
je 0x252b1
movq %r14, %rdi
movl %ebx, %esi
callq 0x110c3
jmp 0x2536d
movq %r14, %rdi
movl %ebx, %esi
callq 0x10865
testb %al, %al
je 0x25301
movq %r14, %rdi
movl %ebx, %esi
callq 0x10f3d
jmp 0x2536d
movq %r14, %rdi
movl %ebx, %esi
callq 0x10a5c
testb %al, %al
je 0x2531b
movq %r14, %rdi
movl %ebx, %esi
callq 0x111d6
jmp 0x2536d
movq 0x8(%rax), %rdi
movl 0x4(%rax), %esi
callq 0x1116f
jmp 0x24e53
movq 0x8(%rax), %rdi
movl 0x4(%rax), %esi
callq 0x1130d
jmp 0x24e53
movq 0x8(%rax), %rdi
movl 0x4(%rax), %esi
callq 0x1105c
jmp 0x24e53
movq %r14, %rdi
movl %ebx, %esi
callq 0x10928
testb %al, %al
je 0x25338
movq %r14, %rdi
movl %ebx, %esi
callq 0x1105c
jmp 0x2536d
movq %r14, %rdi
movl %ebx, %esi
callq 0x10bd0
xorl %r15d, %r15d
testb %al, %al
je 0x25370
movq %r14, %rdi
movl %ebx, %esi
callq 0x11374
jmp 0x2536d
movq %r14, %rdi
movl %ebx, %esi
callq 0x109ee
testb %al, %al
je 0x25352
movq %r14, %rdi
movl %ebx, %esi
callq 0x1116f
jmp 0x2536d
movq %r14, %rdi
movl %ebx, %esi
callq 0x10b20
xorl %r15d, %r15d
testb %al, %al
je 0x25370
movq %r14, %rdi
movl %ebx, %esi
callq 0x1130d
movl %eax, %r15d
leaq -0x38(%rbp), %rdi
callq 0xe772
orl %r13d, %r15d
movl %r15d, %eax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xc916(%rip), %rdi      # 0x31cab
leaq 0x10303(%rip), %rsi     # 0x3569f
leaq 0x10385(%rip), %rcx     # 0x35728
movl $0x4ce, %edx            # imm = 0x4CE
callq 0xa0b0
leaq 0x8fbc(%rip), %rdi      # 0x2e370
leaq 0x102e4(%rip), %rsi     # 0x3569f
leaq 0x10366(%rip), %rcx     # 0x35728
movl $0x579, %edx            # imm = 0x579
callq 0xa0b0
leaq 0xc2c7(%rip), %rdi      # 0x3169a
leaq 0x102c5(%rip), %rsi     # 0x3569f
leaq 0x10347(%rip), %rcx     # 0x35728
movl $0x543, %edx            # imm = 0x543
callq 0xa0b0
leaq 0xc2a8(%rip), %rdi      # 0x3169a
leaq 0x102a6(%rip), %rsi     # 0x3569f
leaq 0x10328(%rip), %rcx     # 0x35728
movl $0x4d2, %edx            # imm = 0x4D2
callq 0xa0b0
leaq 0xc4ae(%rip), %rdi      # 0x318bf
leaq 0x10287(%rip), %rsi     # 0x3569f
leaq 0x10309(%rip), %rcx     # 0x35728
movl $0x4f5, %edx            # imm = 0x4F5
callq 0xa0b0
leaq 0xc48f(%rip), %rdi      # 0x318bf
leaq 0x10268(%rip), %rsi     # 0x3569f
leaq 0x102ea(%rip), %rcx     # 0x35728
movl $0x4ef, %edx            # imm = 0x4EF
callq 0xa0b0
leaq 0xc470(%rip), %rdi      # 0x318bf
leaq 0x10249(%rip), %rsi     # 0x3569f
leaq 0x102cb(%rip), %rcx     # 0x35728
movl $0x4e9, %edx            # imm = 0x4E9
callq 0xa0b0
leaq 0xc451(%rip), %rdi      # 0x318bf
leaq 0x1022a(%rip), %rsi     # 0x3569f
leaq 0x102ac(%rip), %rcx     # 0x35728
movl $0x4dd, %edx            # imm = 0x4DD
callq 0xa0b0
leaq 0xc432(%rip), %rdi      # 0x318bf
leaq 0x1020b(%rip), %rsi     # 0x3569f
leaq 0x1028d(%rip), %rcx     # 0x35728
movl $0x4e3, %edx            # imm = 0x4E3
callq 0xa0b0
leaq 0xc1ee(%rip), %rdi      # 0x3169a
leaq 0x101ec(%rip), %rsi     # 0x3569f
leaq 0x1026e(%rip), %rcx     # 0x35728
movl $0x53f, %edx            # imm = 0x53F
callq 0xa0b0
leaq 0xc3f4(%rip), %rdi      # 0x318bf
leaq 0x101cd(%rip), %rsi     # 0x3569f
leaq 0x1024f(%rip), %rcx     # 0x35728
movl $0x530, %edx            # imm = 0x530
callq 0xa0b0
leaq 0xc3d5(%rip), %rdi      # 0x318bf
leaq 0x101ae(%rip), %rsi     # 0x3569f
leaq 0x10230(%rip), %rcx     # 0x35728
movl $0x52b, %edx            # imm = 0x52B
callq 0xa0b0
leaq 0xc191(%rip), %rdi      # 0x3169a
leaq 0x1018f(%rip), %rsi     # 0x3569f
leaq 0x10211(%rip), %rcx     # 0x35728
movl $0x547, %edx            # imm = 0x547
callq 0xa0b0
leaq 0xc397(%rip), %rdi      # 0x318bf
leaq 0x10170(%rip), %rsi     # 0x3569f
leaq 0x101f2(%rip), %rcx     # 0x35728
movl $0x535, %edx            # imm = 0x535
callq 0xa0b0
leaq 0xc378(%rip), %rdi      # 0x318bf
leaq 0x10151(%rip), %rsi     # 0x3569f
leaq 0x101d3(%rip), %rcx     # 0x35728
movl $0x561, %edx            # imm = 0x561
callq 0xa0b0
leaq 0xc134(%rip), %rdi      # 0x3169a
leaq 0x10132(%rip), %rsi     # 0x3569f
leaq 0x101b4(%rip), %rcx     # 0x35728
movl $0x53b, %edx            # imm = 0x53B
callq 0xa0b0
leaq 0xc115(%rip), %rdi      # 0x3169a
leaq 0x10113(%rip), %rsi     # 0x3569f
leaq 0x10195(%rip), %rcx     # 0x35728
movl $0x54b, %edx            # imm = 0x54B
callq 0xa0b0
leaq 0xc31b(%rip), %rdi      # 0x318bf
leaq 0x100f4(%rip), %rsi     # 0x3569f
leaq 0x10176(%rip), %rcx     # 0x35728
movl $0x525, %edx            # imm = 0x525
callq 0xa0b0
leaq 0xc2fc(%rip), %rdi      # 0x318bf
leaq 0x100d5(%rip), %rsi     # 0x3569f
leaq 0x10157(%rip), %rcx     # 0x35728
movl $0x520, %edx            # imm = 0x520
callq 0xa0b0
leaq 0xc2dd(%rip), %rdi      # 0x318bf
leaq 0x100b6(%rip), %rsi     # 0x3569f
leaq 0x10138(%rip), %rcx     # 0x35728
movl $0x51a, %edx            # imm = 0x51A
callq 0xa0b0
leaq 0x1015d(%rip), %rdi     # 0x3575e
leaq 0x10097(%rip), %rsi     # 0x3569f
leaq 0x10119(%rip), %rcx     # 0x35728
movl $0x54e, %edx            # imm = 0x54E
callq 0xa0b0
leaq 0x1015e(%rip), %rdi     # 0x3577e
leaq 0x10078(%rip), %rsi     # 0x3569f
leaq 0x100fa(%rip), %rcx     # 0x35728
movl $0x551, %edx            # imm = 0x551
callq 0xa0b0
leaq 0xc05b(%rip), %rdi      # 0x3169a
leaq 0x10059(%rip), %rsi     # 0x3569f
leaq 0x101a7(%rip), %rcx     # 0x357f4
movl $0x483, %edx            # imm = 0x483
callq 0xa0b0
leaq 0xc261(%rip), %rdi      # 0x318bf
leaq 0x1003a(%rip), %rsi     # 0x3569f
leaq 0x100bc(%rip), %rcx     # 0x35728
movl $0x4d7, %edx            # imm = 0x4D7
callq 0xa0b0
leaq 0xc242(%rip), %rdi      # 0x318bf
leaq 0x1001b(%rip), %rsi     # 0x3569f
leaq 0x1009d(%rip), %rcx     # 0x35728
movl $0x515, %edx            # imm = 0x515
callq 0xa0b0
leaq 0xc223(%rip), %rdi      # 0x318bf
leaq 0xfffc(%rip), %rsi      # 0x3569f
leaq 0x1007e(%rip), %rcx     # 0x35728
movl $0x50a, %edx            # imm = 0x50A
callq 0xa0b0
leaq 0xc204(%rip), %rdi      # 0x318bf
leaq 0xffdd(%rip), %rsi      # 0x3569f
leaq 0x1005f(%rip), %rcx     # 0x35728
movl $0x4fa, %edx            # imm = 0x4FA
callq 0xa0b0
leaq 0xc1e5(%rip), %rdi      # 0x318bf
leaq 0xffbe(%rip), %rsi      # 0x3569f
leaq 0x10040(%rip), %rcx     # 0x35728
movl $0x50f, %edx            # imm = 0x50F
callq 0xa0b0
leaq 0xc1c6(%rip), %rdi      # 0x318bf
leaq 0xff9f(%rip), %rsi      # 0x3569f
leaq 0x10021(%rip), %rcx     # 0x35728
movl $0x500, %edx            # imm = 0x500
callq 0xa0b0
leaq 0xc1a7(%rip), %rdi      # 0x318bf
leaq 0xff80(%rip), %rsi      # 0x3569f
leaq 0x10002(%rip), %rcx     # 0x35728
movl $0x505, %edx            # imm = 0x505
callq 0xa0b0
leaq 0x8c39(%rip), %rdi      # 0x2e370
leaq 0xff61(%rip), %rsi      # 0x3569f
leaq 0x100af(%rip), %rcx     # 0x357f4
movl $0x494, %edx            # imm = 0x494
callq 0xa0b0
leaq 0x8c1a(%rip), %rdi      # 0x2e370
leaq 0xff42(%rip), %rsi      # 0x3569f
leaq 0x100cb(%rip), %rcx     # 0x3582f
movl $0x42a, %edx            # imm = 0x42A
callq 0xa0b0
leaq 0x8bfb(%rip), %rdi      # 0x2e370
leaq 0xff23(%rip), %rsi      # 0x3569f
leaq 0x10126(%rip), %rcx     # 0x358a9
movl $0x458, %edx            # imm = 0x458
callq 0xa0b0
leaq 0x8bdc(%rip), %rdi      # 0x2e370
leaq 0xff04(%rip), %rsi      # 0x3569f
leaq 0x100c9(%rip), %rcx     # 0x3586b
movl $0x446, %edx            # imm = 0x446
callq 0xa0b0