// File: /workspace/github_c_makefile_star2_O1/dalnefre[P]kernel_abe/schemer.c
// Function: test_schemer
void
test_schemer(CONFIG* cfg)
{
	DBUG_ENTER("test_schemer");
	TRACE(printf("--test_schemer--\n"));

	assert_reduce(cfg, "0", "0");
	assert_reduce(cfg, "1", "1");
	assert_reduce(cfg, "_", "_");	/* NOTE: this is non-standard */

	assert_reduce(cfg, "#t", "#t");
	assert_reduce(cfg, "#f", "#f");
	assert_reduce(cfg, "true", "#t");
	assert_reduce(cfg, "false", "#f");

	assert_reduce(cfg, "()", "()");			/* FIXME: this SHOULD signal FAILURE! */
	assert_reduce(cfg, "()", "NIL");		/* FIXME: this SHOULD signal FAILURE! */
	assert_reduce(cfg, "undefined", "(FAILURE! unknown-symbol undefined)");
	
	assert_reduce(cfg, "(quote 0)", "0");
	assert_reduce(cfg, "(quote x)", "x");
	assert_reduce(cfg, "(quote true)", "true");
	assert_reduce(cfg, "(quote ())", "()");
	assert_reduce(cfg, "(quote (x))", "(x)");
	assert_reduce(cfg, "(quote (x y))", "(x y)");
	assert_reduce(cfg, "(quote ((x) y))", "((x) y)");

	assert_reduce(cfg, "'y", "y");
	assert_reduce(cfg, "'()", "NIL");
	assert_reduce(cfg, "'(a b c)", "(a b c)");

	assert_reduce(cfg, "(define z -1)", "ok");	/* NOTE: this is unspecified */
	assert_reduce(cfg, "z", "-1");
	assert_reduce(cfg, "(define z 1)", "redefined");	/* NOTE: this is unspecified */
	assert_reduce(cfg, "(begin (define z 0) z)", "0");
	assert_reduce(cfg, "(list 1 2 3)", "(1 2 3)");
	assert_reduce(cfg, "(list z 0)", "(0 0)");
	assert_reduce(cfg, "(list)", "()");
	assert_reduce(cfg, "(list 'z)", "(z)");
	assert_reduce(cfg, "(list 'x '(y))", "(x (y))");

	assert_reduce(cfg, "(cons 0 NIL)", "(0)");
	assert_reduce(cfg, "(cons 0 (cons 1 '()))", "(0 1)");
	assert_reduce(cfg, "(cons 0 (quote (1)))", "(0 1)");
	assert_reduce(cfg, "(cons 'x '(y))", "(x y)");
	assert_reduce(cfg, "(car '(x))", "x");
	assert_reduce(cfg, "(cdr '(x))", "()");
	assert_reduce(cfg, "(car '(x y))", "x");
	assert_reduce(cfg, "(cdr '(x y))", "(y)");
	assert_reduce(cfg, "(car (cons #t #f))", "#t");
	assert_reduce(cfg, "(cdr (cons #t #f))", "#f");

	assert_reduce(cfg, "(cond (#f 0) (#t 1))", "1");
	assert_reduce(cfg, "(cond (true 0) (else 1))", "0");
	assert_reduce(cfg, "(cond (false 'no) (else 'or 'yes))", "yes");
#if 0 /* "if" is now defined in "library.scm" */
	assert_reduce(cfg, "(if (eq? true #f) #t #f)", "#f");
	assert_reduce(cfg, "(if (eq? false #f) #t #f)", "#t");
#endif

	assert_reduce(cfg, "((lambda (x) x) 1)", "1");
	assert_reduce(cfg, "(((lambda (x) (lambda (y) (list '+ x y))) 3) 4)", "(+ 3 4)");

	assert_reduce(cfg, "(eq? 0 0)", "#t");
	assert_reduce(cfg, "(eq? 0 1)", "#f");
	assert_reduce(cfg, "(eq? NIL '())", "#t");
	assert_reduce(cfg, "(eq? NIL 0)", "#f");
	assert_reduce(cfg, "(eq? 'x 'x)", "#t");
	assert_reduce(cfg, "(eq? '() '())", "#t");
	assert_reduce(cfg, "(eq? '(x) '(x))", "#f");
	assert_reduce(cfg, "(eq? (cons 0 1) (cons 0 1))", "#f");
	assert_reduce(cfg, "(eq? (car (cons 0 1)) 0)", "#t");
	assert_reduce(cfg, "(eq? (cdr (cons 0 1)) 1)", "#t");

	assert_reduce(cfg, "(pair? #t)", "#f");
	assert_reduce(cfg, "(pair? 0)", "#f");
	assert_reduce(cfg, "(pair? 'x)", "#f");
	assert_reduce(cfg, "(pair? '())", "#f");
	assert_reduce(cfg, "(pair? '(0))", "#t");
	assert_reduce(cfg, "(pair? (cons 0 1))", "#t");
	
	assert_reduce(cfg, "(symbol? #t)", "#f");
	assert_reduce(cfg, "(symbol? 0)", "#f");
	assert_reduce(cfg, "(symbol? 'x)", "#t");
	assert_reduce(cfg, "(symbol? '())", "#f");
	assert_reduce(cfg, "(symbol? '(0))", "#f");
	assert_reduce(cfg, "(symbol? (cons 0 1))", "#f");
	
	assert_reduce(cfg, "(boolean? #t)", "#t");
	assert_reduce(cfg, "(boolean? 0)", "#f");
	assert_reduce(cfg, "(boolean? 'x)", "#f");
	assert_reduce(cfg, "(boolean? '())", "#f");
	assert_reduce(cfg, "(boolean? '(0))", "#f");
	assert_reduce(cfg, "(boolean? (cons 0 1))", "#f");
	
	assert_reduce(cfg, "(number? #t)", "#f");
	assert_reduce(cfg, "(number? 0)", "#t");
	assert_reduce(cfg, "(number? 'x)", "#f");
	assert_reduce(cfg, "(number? '())", "#f");
	assert_reduce(cfg, "(number? '(0))", "#f");
	assert_reduce(cfg, "(number? (cons 0 1))", "#f");

	assert_reduce(cfg, "(and)", "#t");
	assert_reduce(cfg, "(and false)", "#f");
	assert_reduce(cfg, "(and true)", "#t");
	assert_reduce(cfg, "(and false false)", "#f");
	assert_reduce(cfg, "(and false true)", "#f");
	assert_reduce(cfg, "(and true false)", "#f");
	assert_reduce(cfg, "(and true true)", "#t");
	assert_reduce(cfg, "(and 0 1 2)", "2");

	assert_reduce(cfg, "(or)", "#f");
	assert_reduce(cfg, "(or false)", "#f");
	assert_reduce(cfg, "(or true)", "#t");
	assert_reduce(cfg, "(or false false)", "#f");
	assert_reduce(cfg, "(or false true)", "#t");
	assert_reduce(cfg, "(or true false)", "#t");
	assert_reduce(cfg, "(or true true)", "#t");
	assert_reduce(cfg, "(or 0 1 2)", "0");

	assert_reduce(cfg, "(+)", "0");
	assert_reduce(cfg, "(+ 2)", "2");
	assert_reduce(cfg, "(+ 0 0)", "0");
	assert_reduce(cfg, "(+ 0 2)", "2");
	assert_reduce(cfg, "(+ 2 0)", "2");
	assert_reduce(cfg, "(+ 2 3)", "5");
	assert_reduce(cfg, "(+ 1 2 3)", "6");

	assert_reduce(cfg, "(- 2)", "-2");
	assert_reduce(cfg, "(- 0 0)", "0");
	assert_reduce(cfg, "(- 0 2)", "-2");
	assert_reduce(cfg, "(- 2 0)", "2");
	assert_reduce(cfg, "(- 2 3)", "-1");
	assert_reduce(cfg, "(- 1 2 3)", "-4");

	assert_reduce(cfg, "(*)", "1");
	assert_reduce(cfg, "(* 2)", "2");
	assert_reduce(cfg, "(* 0 0)", "0");
	assert_reduce(cfg, "(* 0 2)", "0");
	assert_reduce(cfg, "(* 2 0)", "0");
	assert_reduce(cfg, "(* 2 3)", "6");
	assert_reduce(cfg, "(* 1 2 3)", "6");

	assert_reduce(cfg, "(< 0 0)", "#f");
	assert_reduce(cfg, "(< 0 1)", "#t");
	assert_reduce(cfg, "(< 1 0)", "#f");
	assert_reduce(cfg, "(< 0 1 2)", "#t");
	assert_reduce(cfg, "(< 2 1 0)", "#f");

	assert_reduce(cfg, "(> 0 0)", "#f");
	assert_reduce(cfg, "(> 0 1)", "#f");
	assert_reduce(cfg, "(> 1 0)", "#t");
	assert_reduce(cfg, "(> 0 1 2)", "#f");
	assert_reduce(cfg, "(> 2 1 0)", "#t");
	
	assert_reduce(cfg, "(+ 1 (call/cc (lambda (esc) (+ 2 (esc 3)))))", "4");

#if 0
	assert_reduce("((template (x) (literal x)) 0)", "0");
	assert_reduce("((template (x y) (literal (y x))) TRUE FALSE)", "(FALSE TRUE)");
	assert_reduce("((template (x y) (literal (y x))) foo bar)", "(bar foo)");
	reduce_line(reduce_cfg, "(define 2tuple (template (x y) (prepend x (prepend y ()))))", a_sink);
	assert_reduce("(2tuple () (sum 1 2))", "(() 3)");
	
	assert_reduce("((function (x) (prepend x ())) 0)", "(0)");
	assert_reduce("((function (x) (if x FALSE TRUE)) TRUE)", "FALSE");
	assert_reduce("((function (x) (if x FALSE TRUE)) FALSE)", "TRUE");	
	assert_reduce("((function (x) (list (literal Hello) x)) (literal World))", "(Hello World)");
	assert_reduce("(((function (x) (function (y) (sum x y))) 3) 4)", "7");
	reduce_line(reduce_cfg, "(define fact (function (n) (if (zero? n) 1 (product n (fact (sum n -1))))))", a_sink);
	assert_reduce("(fact 3)", "6");

	assert_reduce("(reduce 0)", "0");
	assert_reduce("(reduce (literal (equal? 0 0)))", "TRUE");

	report_actor_usage(reduce_cfg);
#endif

	DBUG_RETURN;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rdi, %r14
leaq 0xc28f(%rip), %rax      # 0x18617
movq %rsp, %rdi
movq %rax, (%rdi)
leaq 0x12f8b(%rip), %rax     # 0x1f320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl 0x8(%rax), %ecx
movl %ecx, 0x8(%rdi)
movl $0xa2c, 0xc(%rdi)       # imm = 0xA2C
leaq 0xe630(%rip), %rcx      # 0x1a9e0
movq %rcx, 0x10(%rdi)
leaq 0x12d85(%rip), %rcx     # 0x1f140
movq %rcx, 0x18(%rdi)
movq %rax, 0x20(%rdi)
callq 0x16ef2
leaq 0xca42(%rip), %rdi      # 0x18e11
callq 0x20a0
leaq 0xda17(%rip), %r13      # 0x19df2
movq %r14, %rdi
movq %r13, %rsi
movq %r13, %rdx
callq 0xcd69
leaq 0xdce8(%rip), %rdx      # 0x1a0d8
movq %r14, %rdi
movq %rdx, %rsi
callq 0xcd69
leaq 0xc222(%rip), %rdx      # 0x18624
movq %r14, %rdi
movq %rdx, %rsi
callq 0xcd69
leaq 0xc212(%rip), %r15      # 0x18626
movq %r14, %rdi
movq %r15, %rsi
movq %r15, %rdx
callq 0xcd69
leaq 0xc200(%rip), %r12      # 0x18629
movq %r14, %rdi
movq %r12, %rsi
movq %r12, %rdx
callq 0xcd69
leaq 0xbf2a(%rip), %rbx      # 0x18368
movq %r14, %rdi
movq %rbx, %rsi
movq %r15, %rdx
callq 0xcd69
leaq 0xbf0f(%rip), %rsi      # 0x18362
movq %r14, %rdi
movq %r12, %rdx
callq 0xcd69
leaq 0xc25d(%rip), %rbp      # 0x186c2
movq %r14, %rdi
movq %rbp, %rsi
movq %rbp, %rdx
callq 0xcd69
leaq 0xe288(%rip), %r15      # 0x1a702
movq %r14, %rdi
movq %rbp, %rsi
movq %r15, %rdx
callq 0xcd69
leaq 0xc19d(%rip), %rsi      # 0x1862c
leaq 0xc1a0(%rip), %rdx      # 0x18636
movq %r14, %rdi
callq 0xcd69
leaq 0xc1b5(%rip), %rsi      # 0x1865a
movq %r14, %rdi
movq %r13, %rdx
callq 0xcd69
leaq 0xc1ad(%rip), %rsi      # 0x18664
leaq 0xdae1(%rip), %rdx      # 0x19f9f
movq %r14, %rdi
callq 0xcd69
leaq 0xc1a1(%rip), %rsi      # 0x1866e
movq %r14, %rdi
movq %rbx, %rdx
callq 0xcd69
leaq 0xc19c(%rip), %rsi      # 0x1867b
movq %r14, %rdi
movq %rbp, %rdx
callq 0xcd69
leaq 0xc195(%rip), %rsi      # 0x18686
leaq 0xe011(%rip), %rdx      # 0x1a509
movq %r14, %rdi
callq 0xcd69
leaq 0xc18b(%rip), %rsi      # 0x18692
leaq 0xc192(%rip), %rdx      # 0x186a0
movq %r14, %rdi
callq 0xcd69
leaq 0xc189(%rip), %rsi      # 0x186a6
leaq 0xc192(%rip), %rdx      # 0x186b6
movq %r14, %rdi
callq 0xcd69
leaq 0xc18b(%rip), %rsi      # 0x186be
leaq 0xc185(%rip), %rdx      # 0x186bf
movq %r14, %rdi
callq 0xcd69
leaq 0xc178(%rip), %rsi      # 0x186c1
movq %r14, %rdi
movq %r15, %rdx
callq 0xcd69
leaq 0xc16a(%rip), %rsi      # 0x186c5
leaq 0xc164(%rip), %rdx      # 0x186c6
movq %r14, %rdi
callq 0xcd69
leaq 0xc15d(%rip), %rsi      # 0x186ce
leaq 0xbb5b(%rip), %rdx      # 0x180d3
movq %r14, %rdi
callq 0xcd69
leaq 0xc155(%rip), %rsi      # 0x186dc
leaq 0xc150(%rip), %rdx      # 0x186de
movq %r14, %rdi
callq 0xcd69
leaq 0xc144(%rip), %rsi      # 0x186e1
leaq 0xbb25(%rip), %rdx      # 0x180c9
movq %r14, %rdi
callq 0xcd69
leaq 0xc13b(%rip), %rsi      # 0x186ee
movq %r14, %rdi
movq %r13, %rdx
callq 0xcd69
leaq 0xc140(%rip), %rsi      # 0x18705
leaq 0xc146(%rip), %rdx      # 0x18712
movq %r14, %rdi
callq 0xcd69
leaq 0xc13f(%rip), %rsi      # 0x1871a
leaq 0xc143(%rip), %rdx      # 0x18725
movq %r14, %rdi
callq 0xcd69
leaq 0xd85b(%rip), %rsi      # 0x19e4c
movq %r14, %rdi
movq %rbp, %rdx
callq 0xcd69
leaq 0xc128(%rip), %rsi      # 0x1872b
leaq 0xc12b(%rip), %rdx      # 0x18735
movq %r14, %rdi
callq 0xcd69
leaq 0xc120(%rip), %rsi      # 0x18739
leaq 0xc128(%rip), %rdx      # 0x18748
movq %r14, %rdi
callq 0xcd69
leaq 0xc121(%rip), %rsi      # 0x18750
leaq 0xe262(%rip), %rdx      # 0x1a898
movq %r14, %rdi
callq 0xcd69
leaq 0xc118(%rip), %rsi      # 0x1875d
leaq 0xc127(%rip), %rbx      # 0x18773
movq %r14, %rdi
movq %rbx, %rdx
callq 0xcd69
leaq 0xc11b(%rip), %rsi      # 0x18779
movq %r14, %rdi
movq %rbx, %rdx
callq 0xcd69
leaq 0xc11e(%rip), %rsi      # 0x1878e
movq %r14, %rdi
leaq 0xc026(%rip), %rdx      # 0x186a0
callq 0xcd69
leaq 0xc117(%rip), %rsi      # 0x1879d
movq %r14, %rdi
leaq 0xd90f(%rip), %rbx      # 0x19f9f
movq %rbx, %rdx
callq 0xcd69
leaq 0xc109(%rip), %rsi      # 0x187a8
movq %r14, %rdi
movq %rbp, %rdx
callq 0xcd69
leaq 0xc102(%rip), %rsi      # 0x187b3
movq %r14, %rdi
movq %rbx, %rdx
callq 0xcd69
leaq 0xc0fd(%rip), %rsi      # 0x187c0
leaq 0xde65(%rip), %rdx      # 0x1a52f
movq %r14, %rdi
callq 0xcd69
leaq 0xc0f4(%rip), %rsi      # 0x187cd
movq %r14, %rdi
leaq 0xbf43(%rip), %r15      # 0x18626
movq %r15, %rdx
callq 0xcd69
leaq 0xc0ee(%rip), %rsi      # 0x187e0
movq %r14, %rdi
movq %r12, %rdx
callq 0xcd69
leaq 0xc0ef(%rip), %rsi      # 0x187f3
movq %r14, %rdi
leaq 0xd9ca(%rip), %rbx      # 0x1a0d8
movq %rbx, %rdx
callq 0xcd69
leaq 0xc0eb(%rip), %rsi      # 0x18808
movq %r14, %rdi
movq %r13, %rdx
callq 0xcd69
leaq 0xc0f2(%rip), %rsi      # 0x18821
leaq 0xc10e(%rip), %rdx      # 0x18844
movq %r14, %rdi
callq 0xcd69
leaq 0xc103(%rip), %rsi      # 0x18848
movq %r14, %rdi
movq %rbx, %rdx
callq 0xcd69
leaq 0xc104(%rip), %rsi      # 0x1885b
leaq 0xc12d(%rip), %rdx      # 0x1888b
movq %r14, %rdi
callq 0xcd69
leaq 0xc126(%rip), %rsi      # 0x18893
movq %r14, %rdi
movq %r15, %rdx
callq 0xcd69
leaq 0xc11e(%rip), %rsi      # 0x1889d
movq %r14, %rdi
movq %r12, %rdx
callq 0xcd69
leaq 0xc116(%rip), %rsi      # 0x188a7
movq %r14, %rdi
movq %r15, %rdx
callq 0xcd69
leaq 0xc112(%rip), %rsi      # 0x188b5
movq %r14, %rdi
movq %r12, %rdx
callq 0xcd69
leaq 0xc10c(%rip), %rsi      # 0x188c1
movq %r14, %rdi
movq %r15, %rdx
callq 0xcd69
leaq 0xc106(%rip), %rsi      # 0x188cd
movq %r14, %rdi
movq %r15, %rdx
callq 0xcd69
leaq 0xc102(%rip), %rsi      # 0x188db
movq %r14, %rdi
movq %r12, %rdx
callq 0xcd69
leaq 0xc100(%rip), %rsi      # 0x188eb
movq %r14, %rdi
movq %r12, %rdx
callq 0xcd69
leaq 0xc10a(%rip), %rsi      # 0x18907
movq %r14, %rdi
movq %r15, %rdx
callq 0xcd69
leaq 0xc111(%rip), %rsi      # 0x18920
movq %r14, %rdi
movq %r15, %rdx
callq 0xcd69
leaq 0xc118(%rip), %rsi      # 0x18939
movq %r14, %rdi
movq %r12, %rdx
callq 0xcd69
leaq 0xc111(%rip), %rsi      # 0x18944
movq %r14, %rdi
movq %r12, %rdx
callq 0xcd69
leaq 0xc109(%rip), %rsi      # 0x1894e
movq %r14, %rdi
movq %r12, %rdx
callq 0xcd69
leaq 0xc102(%rip), %rsi      # 0x18959
movq %r14, %rdi
movq %r12, %rdx
callq 0xcd69
leaq 0xc0fc(%rip), %rsi      # 0x18965
movq %r14, %rdi
movq %r15, %rdx
callq 0xcd69
leaq 0xc0f7(%rip), %rsi      # 0x18972
movq %r14, %rdi
movq %r15, %rdx
callq 0xcd69
leaq 0xc0f8(%rip), %rsi      # 0x18985
movq %r14, %rdi
movq %r12, %rdx
callq 0xcd69
leaq 0xc0f3(%rip), %rsi      # 0x18992
movq %r14, %rdi
movq %r12, %rdx
callq 0xcd69
leaq 0xc0ed(%rip), %rsi      # 0x1899e
movq %r14, %rdi
movq %r15, %rdx
callq 0xcd69
leaq 0xc0e8(%rip), %rsi      # 0x189ab
movq %r14, %rdi
movq %r12, %rdx
callq 0xcd69
leaq 0xc0e4(%rip), %rsi      # 0x189b9
movq %r14, %rdi
movq %r12, %rdx
callq 0xcd69
leaq 0xc0e1(%rip), %rsi      # 0x189c8
movq %r14, %rdi
movq %r12, %rdx
callq 0xcd69
leaq 0xc0e4(%rip), %rsi      # 0x189dd
movq %r14, %rdi
movq %r15, %rdx
callq 0xcd69
leaq 0xc0e0(%rip), %rsi      # 0x189eb
movq %r14, %rdi
movq %r12, %rdx
callq 0xcd69
leaq 0xc0db(%rip), %rsi      # 0x189f8
movq %r14, %rdi
movq %r12, %rdx
callq 0xcd69
leaq 0xc0d7(%rip), %rsi      # 0x18a06
movq %r14, %rdi
movq %r12, %rdx
callq 0xcd69
leaq 0xc0d4(%rip), %rsi      # 0x18a15
movq %r14, %rdi
movq %r12, %rdx
callq 0xcd69
leaq 0xc0d2(%rip), %rsi      # 0x18a25
movq %r14, %rdi
movq %r12, %rdx
callq 0xcd69
leaq 0xc0d6(%rip), %rsi      # 0x18a3b
movq %r14, %rdi
movq %r12, %rdx
callq 0xcd69
leaq 0xc0d1(%rip), %rsi      # 0x18a48
movq %r14, %rdi
movq %r15, %rdx
callq 0xcd69
leaq 0xc0cb(%rip), %rsi      # 0x18a54
movq %r14, %rdi
movq %r12, %rdx
callq 0xcd69
leaq 0xc0c6(%rip), %rsi      # 0x18a61
movq %r14, %rdi
movq %r12, %rdx
callq 0xcd69
leaq 0xc0c2(%rip), %rsi      # 0x18a6f
movq %r14, %rdi
movq %r12, %rdx
callq 0xcd69
leaq 0xc0bf(%rip), %rsi      # 0x18a7e
movq %r14, %rdi
movq %r12, %rdx
callq 0xcd69
leaq 0xc0c2(%rip), %rsi      # 0x18a93
movq %r14, %rdi
movq %r15, %rdx
callq 0xcd69
leaq 0xc0b6(%rip), %rsi      # 0x18a99
movq %r14, %rdi
movq %r12, %rdx
callq 0xcd69
leaq 0xc0b0(%rip), %rsi      # 0x18aa5
movq %r14, %rdi
movq %r15, %rdx
callq 0xcd69
leaq 0xc0a9(%rip), %rsi      # 0x18ab0
movq %r14, %rdi
movq %r12, %rdx
callq 0xcd69
leaq 0xc0a9(%rip), %rsi      # 0x18ac2
movq %r14, %rdi
movq %r12, %rdx
callq 0xcd69
leaq 0xc0a8(%rip), %rsi      # 0x18ad3
movq %r14, %rdi
movq %r12, %rdx
callq 0xcd69
leaq 0xc0a7(%rip), %rsi      # 0x18ae4
movq %r14, %rdi
movq %r15, %rdx
callq 0xcd69
leaq 0xc0a5(%rip), %rsi      # 0x18af4
leaq 0xd642(%rip), %rbx      # 0x1a098
movq %r14, %rdi
movq %rbx, %rdx
callq 0xcd69
leaq 0xc098(%rip), %rsi      # 0x18b00
movq %r14, %rdi
movq %r12, %rdx
callq 0xcd69
leaq 0xc08b(%rip), %rsi      # 0x18b05
movq %r14, %rdi
movq %r12, %rdx
callq 0xcd69
leaq 0xc084(%rip), %rsi      # 0x18b10
movq %r14, %rdi
movq %r15, %rdx
callq 0xcd69
leaq 0xc07c(%rip), %rsi      # 0x18b1a
movq %r14, %rdi
movq %r12, %rdx
callq 0xcd69
leaq 0xc07b(%rip), %rsi      # 0x18b2b
movq %r14, %rdi
movq %r15, %rdx
callq 0xcd69
leaq 0xc079(%rip), %rsi      # 0x18b3b
movq %r14, %rdi
movq %r15, %rdx
callq 0xcd69
leaq 0xc077(%rip), %rsi      # 0x18b4b
movq %r14, %rdi
movq %r15, %rdx
callq 0xcd69
leaq 0xc074(%rip), %rsi      # 0x18b5a
movq %r14, %rdi
movq %r13, %rdx
callq 0xcd69
leaq 0xc06d(%rip), %rsi      # 0x18b65
movq %r14, %rdi
movq %r13, %rdx
movq %r13, %r15
callq 0xcd69
leaq 0xc05c(%rip), %rsi      # 0x18b69
movq %r14, %rdi
movq %rbx, %rdx
callq 0xcd69
leaq 0xc050(%rip), %rsi      # 0x18b6f
movq %r14, %rdi
movq %r13, %rdx
callq 0xcd69
leaq 0xc046(%rip), %rsi      # 0x18b77
movq %r14, %rdi
movq %rbx, %rdx
callq 0xcd69
leaq 0xc03c(%rip), %rsi      # 0x18b7f
movq %r14, %rdi
movq %rbx, %rdx
callq 0xcd69
leaq 0xc032(%rip), %rsi      # 0x18b87
leaq 0xc033(%rip), %rdx      # 0x18b8f
movq %r14, %rdi
callq 0xcd69
leaq 0xc026(%rip), %rsi      # 0x18b91
leaq 0xc029(%rip), %r13      # 0x18b9b
movq %r14, %rdi
movq %r13, %rdx
callq 0xcd69
leaq 0xc019(%rip), %rsi      # 0x18b9d
leaq 0xc018(%rip), %rbp      # 0x18ba3
movq %r14, %rdi
movq %rbp, %rdx
callq 0xcd69
leaq 0xc009(%rip), %rsi      # 0x18ba6
movq %r14, %rdi
movq %r15, %rdx
callq 0xcd69
leaq 0xbfff(%rip), %rsi      # 0x18bae
movq %r14, %rdi
movq %rbp, %rdx
callq 0xcd69
leaq 0xbff5(%rip), %rsi      # 0x18bb6
movq %r14, %rdi
movq %rbx, %rdx
callq 0xcd69
leaq 0xbfeb(%rip), %rsi      # 0x18bbe
movq %r14, %rdi
leaq 0xbb01(%rip), %rdx      # 0x186de
callq 0xcd69
leaq 0xbfdd(%rip), %rsi      # 0x18bc6
leaq 0xbfe0(%rip), %rdx      # 0x18bd0
movq %r14, %rdi
callq 0xcd69
leaq 0xbfd4(%rip), %rsi      # 0x18bd3
movq %r14, %rdi
leaq 0xd4cf(%rip), %rdx      # 0x1a0d8
callq 0xcd69
leaq 0xbfc2(%rip), %rsi      # 0x18bd7
movq %r14, %rdi
movq %rbx, %rdx
callq 0xcd69
leaq 0xbfb6(%rip), %rsi      # 0x18bdd
movq %r14, %rdi
movq %r15, %rdx
callq 0xcd69
leaq 0xbfac(%rip), %rsi      # 0x18be5
movq %r14, %rdi
movq %r15, %rdx
callq 0xcd69
leaq 0xbfa2(%rip), %rsi      # 0x18bed
movq %r14, %rdi
movq %r15, %rdx
callq 0xcd69
leaq 0xbf98(%rip), %rsi      # 0x18bf5
movq %r14, %rdi
movq %r13, %rdx
callq 0xcd69
leaq 0xbf8e(%rip), %rsi      # 0x18bfd
movq %r14, %rdi
movq %r13, %rdx
callq 0xcd69
leaq 0xbf86(%rip), %rsi      # 0x18c07
movq %r14, %rdi
movq %r12, %rdx
callq 0xcd69
leaq 0xbf7c(%rip), %rsi      # 0x18c0f
movq %r14, %rdi
leaq 0xb989(%rip), %rbx      # 0x18626
movq %rbx, %rdx
callq 0xcd69
leaq 0xbf6b(%rip), %rsi      # 0x18c17
movq %r14, %rdi
movq %r12, %rdx
callq 0xcd69
leaq 0xbf61(%rip), %rsi      # 0x18c1f
movq %r14, %rdi
movq %rbx, %rdx
callq 0xcd69
leaq 0xbf59(%rip), %rsi      # 0x18c29
movq %r14, %rdi
movq %r12, %rdx
callq 0xcd69
leaq 0xbf51(%rip), %rsi      # 0x18c33
movq %r14, %rdi
movq %r12, %rdx
callq 0xcd69
leaq 0xbf47(%rip), %rsi      # 0x18c3b
movq %r14, %rdi
movq %r12, %rdx
callq 0xcd69
leaq 0xbf3d(%rip), %rsi      # 0x18c43
movq %r14, %rdi
movq %rbx, %rdx
callq 0xcd69
leaq 0xbf33(%rip), %rsi      # 0x18c4b
movq %r14, %rdi
movq %r12, %rdx
callq 0xcd69
leaq 0xbf2b(%rip), %rsi      # 0x18c55
movq %r14, %rdi
movq %rbx, %rdx
callq 0xcd69
leaq 0xbf23(%rip), %rsi      # 0x18c5f
leaq 0xdad6(%rip), %rdx      # 0x1a819
movq %r14, %rdi
callq 0xcd69
movq %rsp, %rdi
movl $0xadb, 0xc(%rdi)       # imm = 0xADB
callq 0x17077
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq