// File: /workspace/github_c_makefile_star2_O0/dalnefre[P]kernel_abe/kernel.c
// Function: test_kernel
void
test_kernel()
{
	SOURCE* src;
	CONS* expr;
	CONS* expect;

	DBUG_ENTER("test_kernel");
	TRACE(printf("--test_kernel--\n"));

	/*
	 * test character source
	 */
	src = string_source(NULL);
	assert((src->empty)(src) == a_true);
	assert((src->next)(src) == NUMBER(EOF));

	src = string_source("");
	assert((src->empty)(src) == a_true);
	assert((src->next)(src) == NUMBER(EOF));

	src = string_source(" ");
	assert((src->empty)(src) == a_false);
	expr = (src->next)(src);
	assert(expr == NUMBER(32));
	assert(expr == NUMBER(' '));
	assert((src->empty)(src) == a_true);
	assert((src->next)(src) == NUMBER(EOF));

	src = string_source("()");
	assert((src->empty)(src) == a_false);
	expr = (src->next)(src);
	assert(expr == NUMBER('('));
	assert((src->empty)(src) == a_false);
	expr = (src->next)(src);
	assert(expr == NUMBER(')'));
	assert((src->empty)(src) == a_true);
	assert((src->next)(src) == NUMBER(EOF));

	src = string_source("\r\n");
	expr = read_sexpr(src);
	expect = NUMBER(EOF);
	assert(equal(expect, expr));

	src = string_source("()");
	expr = read_sexpr(src);
	expect = a_nil;
	assert(equal(expect, expr));
/*
	src = string_source("(x)");
	expr = read_sexpr(src);
	expect = pr(ATOM("x"), NIL);
	assert(equal(expect, expr));

	src = string_source("(x y)");
	expr = read_sexpr(src);
	expect = pr(ATOM("x"), pr(ATOM("y"), NIL));
	assert(equal(expect, expr));
*/
	src = string_source("(x (y");
	expr = read_sexpr(src);
	expect = NUMBER(EOF);
	assert(equal(expect, expr));

	/*
	 * #inert
	 * ==> #inert
	 */
	expr = a_inert;
	expect = a_inert;
	assert_eval(expr, expect);

	/*
	 * (boolean? #t #f)
	 * ==> #t
	 */
	expr = ACTOR(pair_type, pr(
		get_symbol(ATOM("boolean?")),
		ACTOR(pair_type, pr(
			a_true,
			ACTOR(pair_type, pr(
				a_false,
				a_nil))))));
	expect = a_true;
	assert_eval(expr, expect);

	/*
	 * (ignore? #ignore #inert)
	 * ==> #f
	 */
	expr = ACTOR(pair_type, pr(
		get_symbol(ATOM("ignore?")),
		ACTOR(pair_type, pr(
			a_ignore,
			ACTOR(pair_type, pr(
				a_inert,
				a_nil))))));
	expect = a_false;
	assert_eval(expr, expect);

	/*
	 * (($vau (x) #ignore x) y)
	 * ==> y
	 */
	expr = read_sexpr(string_source(
		"(($vau (x) #ignore x) y)"));
/*	expr = ACTOR(pair_type, pr(
		ACTOR(pair_type, pr(
			get_symbol(ATOM("$vau")),
			ACTOR(pair_type, pr(
				ACTOR(pair_type, pr(
					get_symbol(ATOM("x")),
					a_nil)),
				ACTOR(pair_type, pr(
					a_ignore,
					ACTOR(pair_type, pr(
						get_symbol(ATOM("x")),
						a_nil)))))))),
		ACTOR(pair_type, pr(
			get_symbol(ATOM("y")),
			a_nil)))); */
	expect = get_symbol(ATOM("y"));
	assert_eval(expr, expect);

	/*
	 * (list #t #f)
	 */
/*	expr = ACTOR(pair_type, pr(
		get_symbol(ATOM("list")),
		ACTOR(pair_type, pr(
			a_true,
			ACTOR(pair_type, pr(
				a_false,
				a_nil))))));
	expect = a_true;
	assert_eval(expr, expect);
*/
	/*
	 * ($sequence
	 *		($define! y #t)
	 *		(($lambda (x) x) y))
	 * ==> #t
	 */
	expr = read_sexpr(string_source(
"($sequence \n\
	($define! y #t) \n\
	(($lambda (x) x) y))\n\
"));
/*	expr = ACTOR(pair_type, pr(
		get_symbol(ATOM("$sequence")),
		ACTOR(pair_type, pr(
			ACTOR(pair_type, pr(
				get_symbol(ATOM("$define!")),
				ACTOR(pair_type, pr(
					get_symbol(ATOM("y")),
					ACTOR(pair_type, pr(
						a_true,
						a_nil)))))),
			ACTOR(pair_type, pr(
				ACTOR(pair_type, pr(
					ACTOR(pair_type, pr(
						get_symbol(ATOM("$lambda")),
						ACTOR(pair_type, pr(
							ACTOR(pair_type, pr(
								get_symbol(ATOM("x")),
								a_nil)),
							ACTOR(pair_type, pr(
								get_symbol(ATOM("x")),
								a_nil)))))),
					ACTOR(pair_type, pr(
						get_symbol(ATOM("y")),
						a_nil)))),
				a_nil)))))); */
	expect = a_true;
	assert_eval(expr, expect);

	/*
	 * (eq? #f (boolean? #t #f))
	 * ==> #f
	 */
	expr = read_sexpr(string_source(
		"(eq? #f (boolean? #t #f))"));
	expect = a_false;
	assert_eval(expr, expect);

	/*
	 * ($if #t
	 *		($if #f
	 *			0
	 *			42)
	 *		314)
	 * ==> 42
	 */
	expr = read_sexpr(string_source(
"($if #t \n\
	($if #f \n\
		0 \n\
		42) \n\
	314)\n\
"));
	expect = get_const(NUMBER(42));
	assert_eval(expr, expect);

	/*
	 * (eq? (cons 0 (cons 1 ())) (list 0 1))
	 * ==> #f  ; equal?, but not eq?
	 */
	expr = read_sexpr(string_source(
		"(eq? (cons 0 (cons 1 ())) (list 0 1))"));
	expect = a_false;
	assert_eval(expr, expect);

	/*
	 * ($sequence
	 *		(write (cons (list #t #f #inert #ignore) (cons 0 1)))
	 *		(newline))
	 * ==> #t
	 */
	expr = read_sexpr(string_source(
"($sequence \n\
	(write (cons (list #t #f #inert #ignore) (cons 0 1))) \n\
	(newline))"
));
	expect = a_true;
	assert_eval(expr, expect);
	
	/*
	 * (($lambda ((#ignore . x)) x) (cons 0 1))
	 * ==> 1
	 */
	expr = read_sexpr(string_source(
		"(($lambda ((#ignore . x)) x) (cons 0 1))"));
	expect = get_const(NUMBER(1));
	assert_eval(expr, expect);

/* ...ADD TESTS HERE... */

#if 1
	cfg_force_gc(CFG);			/* clean up garbage created by tests */
#endif

	DBUG_RETURN;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
leaq 0x24653(%rip), %rax     # 0x29295
movq %rax, -0x40(%rbp)
leaq 0x2a6d3(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl 0x8(%rax), %eax
movl %eax, -0x38(%rbp)
movl $0xbd3, -0x34(%rbp)     # imm = 0xBD3
leaq 0x24707(%rip), %rax     # 0x2936f
movq %rax, -0x30(%rbp)
leaq 0x2a4cd(%rip), %rax     # 0x2f140
movq %rax, -0x28(%rbp)
leaq 0x2a6a2(%rip), %rax     # 0x2f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movq %rax, -0x20(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x28490
leaq 0x24608(%rip), %rdi     # 0x292a1
movb $0x0, %al
callq 0x20e0
xorl %eax, %eax
movl %eax, %edi
callq 0x2c20
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x8(%rbp), %rdi
callq *%rax
cmpq 0x2a6b6(%rip), %rax     # 0x2f378
jne 0x4cc6
jmp 0x4ce5
leaq 0x245e5(%rip), %rdi     # 0x292b2
leaq 0x24348(%rip), %rsi     # 0x2901c
movl $0xbda, %edx            # imm = 0xBDA
leaq 0x245ee(%rip), %rcx     # 0x292ce
callq 0x2100
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x8(%rbp), %rdi
callq *%rax
movq $-0x1, %rcx
cmpq %rcx, %rax
jne 0x4d01
jmp 0x4d20
leaq 0x245d9(%rip), %rdi     # 0x292e1
leaq 0x2430d(%rip), %rsi     # 0x2901c
movl $0xbdb, %edx            # imm = 0xBDB
leaq 0x245b3(%rip), %rcx     # 0x292ce
callq 0x2100
leaq 0x24648(%rip), %rdi     # 0x2936f
callq 0x2c20
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x8(%rbp), %rdi
callq *%rax
cmpq 0x2a633(%rip), %rax     # 0x2f378
jne 0x4d49
jmp 0x4d68
leaq 0x24562(%rip), %rdi     # 0x292b2
leaq 0x242c5(%rip), %rsi     # 0x2901c
movl $0xbde, %edx            # imm = 0xBDE
leaq 0x2456b(%rip), %rcx     # 0x292ce
callq 0x2100
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x8(%rbp), %rdi
callq *%rax
movq $-0x1, %rcx
cmpq %rcx, %rax
jne 0x4d84
jmp 0x4da3
leaq 0x24556(%rip), %rdi     # 0x292e1
leaq 0x2428a(%rip), %rsi     # 0x2901c
movl $0xbdf, %edx            # imm = 0xBDF
leaq 0x24530(%rip), %rcx     # 0x292ce
callq 0x2100
leaq 0x26bfe(%rip), %rdi     # 0x2b9a8
callq 0x2c20
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x8(%rbp), %rdi
callq *%rax
cmpq 0x2a5a8(%rip), %rax     # 0x2f370
jne 0x4dcc
jmp 0x4deb
leaq 0x2452e(%rip), %rdi     # 0x29301
leaq 0x24242(%rip), %rsi     # 0x2901c
movl $0xbe2, %edx            # imm = 0xBE2
leaq 0x244e8(%rip), %rcx     # 0x292ce
callq 0x2100
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x8(%rbp), %rdi
callq *%rax
movq %rax, -0x10(%rbp)
movl $0x83, %eax
cmpq %rax, -0x10(%rbp)
jne 0x4e0a
jmp 0x4e29
leaq 0x2450d(%rip), %rdi     # 0x2931e
leaq 0x24204(%rip), %rsi     # 0x2901c
movl $0xbe4, %edx            # imm = 0xBE4
leaq 0x244aa(%rip), %rcx     # 0x292ce
callq 0x2100
movl $0x83, %eax
cmpq %rax, -0x10(%rbp)
jne 0x4e36
jmp 0x4e55
leaq 0x244f4(%rip), %rdi     # 0x29331
leaq 0x241d8(%rip), %rsi     # 0x2901c
movl $0xbe5, %edx            # imm = 0xBE5
leaq 0x2447e(%rip), %rcx     # 0x292ce
callq 0x2100
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x8(%rbp), %rdi
callq *%rax
cmpq 0x2a50e(%rip), %rax     # 0x2f378
jne 0x4e6e
jmp 0x4e8d
leaq 0x2443d(%rip), %rdi     # 0x292b2
leaq 0x241a0(%rip), %rsi     # 0x2901c
movl $0xbe6, %edx            # imm = 0xBE6
leaq 0x24446(%rip), %rcx     # 0x292ce
callq 0x2100
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x8(%rbp), %rdi
callq *%rax
movq $-0x1, %rcx
cmpq %rcx, %rax
jne 0x4ea9
jmp 0x4ec8
leaq 0x24431(%rip), %rdi     # 0x292e1
leaq 0x24165(%rip), %rsi     # 0x2901c
movl $0xbe7, %edx            # imm = 0xBE7
leaq 0x2440b(%rip), %rcx     # 0x292ce
callq 0x2100
leaq 0x2428e(%rip), %rdi     # 0x2915d
callq 0x2c20
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x8(%rbp), %rdi
callq *%rax
cmpq 0x2a483(%rip), %rax     # 0x2f370
jne 0x4ef1
jmp 0x4f10
leaq 0x24409(%rip), %rdi     # 0x29301
leaq 0x2411d(%rip), %rsi     # 0x2901c
movl $0xbea, %edx            # imm = 0xBEA
leaq 0x243c3(%rip), %rcx     # 0x292ce
callq 0x2100
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x8(%rbp), %rdi
callq *%rax
movq %rax, -0x10(%rbp)
movl $0xa3, %eax
cmpq %rax, -0x10(%rbp)
jne 0x4f2f
jmp 0x4f4e
leaq 0x2440f(%rip), %rdi     # 0x29345
leaq 0x240df(%rip), %rsi     # 0x2901c
movl $0xbec, %edx            # imm = 0xBEC
leaq 0x24385(%rip), %rcx     # 0x292ce
callq 0x2100
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x8(%rbp), %rdi
callq *%rax
cmpq 0x2a40d(%rip), %rax     # 0x2f370
jne 0x4f67
jmp 0x4f86
leaq 0x24393(%rip), %rdi     # 0x29301
leaq 0x240a7(%rip), %rsi     # 0x2901c
movl $0xbed, %edx            # imm = 0xBED
leaq 0x2434d(%rip), %rcx     # 0x292ce
callq 0x2100
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x8(%rbp), %rdi
callq *%rax
movq %rax, -0x10(%rbp)
movl $0xa7, %eax
cmpq %rax, -0x10(%rbp)
jne 0x4fa5
jmp 0x4fc4
leaq 0x243ad(%rip), %rdi     # 0x29359
leaq 0x24069(%rip), %rsi     # 0x2901c
movl $0xbef, %edx            # imm = 0xBEF
leaq 0x2430f(%rip), %rcx     # 0x292ce
callq 0x2100
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x8(%rbp), %rdi
callq *%rax
cmpq 0x2a39f(%rip), %rax     # 0x2f378
jne 0x4fdd
jmp 0x4ffc
leaq 0x242ce(%rip), %rdi     # 0x292b2
leaq 0x24031(%rip), %rsi     # 0x2901c
movl $0xbf0, %edx            # imm = 0xBF0
leaq 0x242d7(%rip), %rcx     # 0x292ce
callq 0x2100
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x8(%rbp), %rdi
callq *%rax
movq $-0x1, %rcx
cmpq %rcx, %rax
jne 0x5018
jmp 0x5037
leaq 0x242c2(%rip), %rdi     # 0x292e1
leaq 0x23ff6(%rip), %rsi     # 0x2901c
movl $0xbf1, %edx            # imm = 0xBF1
leaq 0x2429c(%rip), %rcx     # 0x292ce
callq 0x2100
leaq 0x2432f(%rip), %rdi     # 0x2936d
callq 0x2c20
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0x3340
movq %rax, -0x10(%rbp)
movq $-0x1, %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x25700
cmpq $0x0, %rax
je 0x5074
jmp 0x5093
leaq 0x242f5(%rip), %rdi     # 0x29370
leaq 0x23f9a(%rip), %rsi     # 0x2901c
movl $0xbf6, %edx            # imm = 0xBF6
leaq 0x24240(%rip), %rcx     # 0x292ce
callq 0x2100
leaq 0x240c3(%rip), %rdi     # 0x2915d
callq 0x2c20
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0x3340
movq %rax, -0x10(%rbp)
movq 0x2a2d1(%rip), %rax     # 0x2f388
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x25700
cmpq $0x0, %rax
je 0x50d0
jmp 0x50ef
leaq 0x24299(%rip), %rdi     # 0x29370
leaq 0x23f3e(%rip), %rsi     # 0x2901c
movl $0xbfb, %edx            # imm = 0xBFB
leaq 0x241e4(%rip), %rcx     # 0x292ce
callq 0x2100
leaq 0x2428e(%rip), %rdi     # 0x29384
callq 0x2c20
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0x3340
movq %rax, -0x10(%rbp)
movq $-0x1, %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x25700
cmpq $0x0, %rax
je 0x512c
jmp 0x514b
leaq 0x2423d(%rip), %rdi     # 0x29370
leaq 0x23ee2(%rip), %rsi     # 0x2901c
movl $0xc0a, %edx            # imm = 0xC0A
leaq 0x24188(%rip), %rcx     # 0x292ce
callq 0x2100
movq 0x2a246(%rip), %rax     # 0x2f398
movq %rax, -0x10(%rbp)
movq 0x2a23b(%rip), %rax     # 0x2f398
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x5490
movq 0x2a21b(%rip), %rax     # 0x2f390
movq %rax, -0x70(%rbp)
leaq 0x2420a(%rip), %rdi     # 0x2938a
callq 0x216e0
movq %rax, %rdi
callq 0x4570
movq %rax, -0x78(%rbp)
movq 0x2a1f8(%rip), %rax     # 0x2f390
movq %rax, -0x80(%rbp)
movq 0x2a1d5(%rip), %rax     # 0x2f378
movq %rax, -0x88(%rbp)
movq 0x2a1df(%rip), %rax     # 0x2f390
movq %rax, -0x90(%rbp)
movq 0x2a1b1(%rip), %rdi     # 0x2f370
movq 0x2a1c2(%rip), %rsi     # 0x2f388
callq 0x25290
movq -0x90(%rbp), %rdi
movq %rax, %rdx
leaq -0x13cc(%rip), %rsi     # 0x3e10
callq 0x1b6f0
movq -0x88(%rbp), %rdi
movq %rax, %rsi
callq 0x25290
movq -0x80(%rbp), %rdi
movq %rax, %rdx
leaq -0x13ee(%rip), %rsi     # 0x3e10
callq 0x1b6f0
movq -0x78(%rbp), %rdi
movq %rax, %rsi
callq 0x25290
movq -0x70(%rbp), %rdi
movq %rax, %rdx
leaq -0x140d(%rip), %rsi     # 0x3e10
callq 0x1b6f0
movq %rax, -0x10(%rbp)
movq 0x2a14b(%rip), %rax     # 0x2f378
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x5490
movq 0x2a14b(%rip), %rax     # 0x2f390
movq %rax, -0x48(%rbp)
leaq 0x24143(%rip), %rdi     # 0x29393
callq 0x216e0
movq %rax, %rdi
callq 0x4570
movq %rax, -0x50(%rbp)
movq 0x2a128(%rip), %rax     # 0x2f390
movq %rax, -0x58(%rbp)
movq 0x2a12d(%rip), %rax     # 0x2f3a0
movq %rax, -0x60(%rbp)
movq 0x2a112(%rip), %rax     # 0x2f390
movq %rax, -0x68(%rbp)
movq 0x2a10f(%rip), %rdi     # 0x2f398
movq 0x2a0f8(%rip), %rsi     # 0x2f388
callq 0x25290
movq -0x68(%rbp), %rdi
movq %rax, %rdx
leaq -0x1493(%rip), %rsi     # 0x3e10
callq 0x1b6f0
movq -0x60(%rbp), %rdi
movq %rax, %rsi
callq 0x25290
movq -0x58(%rbp), %rdi
movq %rax, %rdx
leaq -0x14b2(%rip), %rsi     # 0x3e10
callq 0x1b6f0
movq -0x50(%rbp), %rdi
movq %rax, %rsi
callq 0x25290
movq -0x48(%rbp), %rdi
movq %rax, %rdx
leaq -0x14d1(%rip), %rsi     # 0x3e10
callq 0x1b6f0
movq %rax, -0x10(%rbp)
movq 0x2a07f(%rip), %rax     # 0x2f370
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x5490
leaq 0x24092(%rip), %rdi     # 0x2939b
callq 0x2c20
movq %rax, %rdi
callq 0x3340
movq %rax, -0x10(%rbp)
leaq 0x24067(%rip), %rdi     # 0x29388
callq 0x216e0
movq %rax, %rdi
callq 0x4570
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x5490
leaq 0x2406e(%rip), %rdi     # 0x293b4
callq 0x2c20
movq %rax, %rdi
callq 0x3340
movq %rax, -0x10(%rbp)
movq 0x2a01a(%rip), %rax     # 0x2f378
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x5490
leaq 0x24073(%rip), %rdi     # 0x293e9
callq 0x2c20
movq %rax, %rdi
callq 0x3340
movq %rax, -0x10(%rbp)
movq 0x29fe2(%rip), %rax     # 0x2f370
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x5490
leaq 0x2405d(%rip), %rdi     # 0x29403
callq 0x2c20
movq %rax, %rdi
callq 0x3340
movq %rax, -0x10(%rbp)
movl $0xab, %edi
callq 0x43a0
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x5490
leaq 0x24050(%rip), %rdi     # 0x29429
callq 0x2c20
movq %rax, %rdi
callq 0x3340
movq %rax, -0x10(%rbp)
movq 0x29f7f(%rip), %rax     # 0x2f370
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x5490
leaq 0x24046(%rip), %rdi     # 0x2944f
callq 0x2c20
movq %rax, %rdi
callq 0x3340
movq %rax, -0x10(%rbp)
movq 0x29f57(%rip), %rax     # 0x2f378
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x5490
leaq 0x24066(%rip), %rdi     # 0x2949f
callq 0x2c20
movq %rax, %rdi
callq 0x3340
movq %rax, -0x10(%rbp)
movl $0x7, %edi
callq 0x43a0
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x5490
movq 0x29f24(%rip), %rdi     # 0x2f390
callq 0x1b1b0
movl $0xcbd, -0x34(%rbp)     # imm = 0xCBD
leaq -0x40(%rbp), %rdi
callq 0x28660
addq $0x90, %rsp
popq %rbp
retq
nopw (%rax,%rax)