// File: /workspace/github_c_makefile_star2_O2/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 0xb7c5(%rip), %rax      # 0x17617
movq %rsp, %rdi
movq %rax, (%rdi)
leaq 0x124c1(%rip), %rax     # 0x1e320
movq (%rax), %rax
movq 0x50(%rax), %rax
movl 0x8(%rax), %ecx
movl %ecx, 0x8(%rdi)
movl $0xa2c, 0xc(%rdi)       # imm = 0xA2C
leaq 0xdb42(%rip), %rcx      # 0x199bc
movq %rcx, 0x10(%rdi)
leaq 0x122bb(%rip), %rcx     # 0x1e140
movq %rcx, 0x18(%rdi)
movq %rax, 0x20(%rdi)
callq 0x16679
leaq 0xbf78(%rip), %rdi      # 0x17e11
callq 0x20a0
leaq 0xcf29(%rip), %r13      # 0x18dce
movq %r14, %rdi
movq %r13, %rsi
movq %r13, %rdx
callq 0xc833
leaq 0xd1fa(%rip), %rdx      # 0x190b4
movq %r14, %rdi
movq %rdx, %rsi
callq 0xc833
leaq 0xb758(%rip), %rdx      # 0x17624
movq %r14, %rdi
movq %rdx, %rsi
callq 0xc833
leaq 0xb748(%rip), %r15      # 0x17626
movq %r14, %rdi
movq %r15, %rsi
movq %r15, %rdx
callq 0xc833
leaq 0xb736(%rip), %r12      # 0x17629
movq %r14, %rdi
movq %r12, %rsi
movq %r12, %rdx
callq 0xc833
leaq 0xb460(%rip), %rbx      # 0x17368
movq %r14, %rdi
movq %rbx, %rsi
movq %r15, %rdx
callq 0xc833
leaq 0xb445(%rip), %rsi      # 0x17362
movq %r14, %rdi
movq %r12, %rdx
callq 0xc833
leaq 0xb793(%rip), %rbp      # 0x176c2
movq %r14, %rdi
movq %rbp, %rsi
movq %rbp, %rdx
callq 0xc833
leaq 0xd79a(%rip), %r15      # 0x196de
movq %r14, %rdi
movq %rbp, %rsi
movq %r15, %rdx
callq 0xc833
leaq 0xb6d3(%rip), %rsi      # 0x1762c
leaq 0xb6d6(%rip), %rdx      # 0x17636
movq %r14, %rdi
callq 0xc833
leaq 0xb6eb(%rip), %rsi      # 0x1765a
movq %r14, %rdi
movq %r13, %rdx
callq 0xc833
leaq 0xb6e3(%rip), %rsi      # 0x17664
leaq 0xcff3(%rip), %rdx      # 0x18f7b
movq %r14, %rdi
callq 0xc833
leaq 0xb6d7(%rip), %rsi      # 0x1766e
movq %r14, %rdi
movq %rbx, %rdx
callq 0xc833
leaq 0xb6d2(%rip), %rsi      # 0x1767b
movq %r14, %rdi
movq %rbp, %rdx
callq 0xc833
leaq 0xb6cb(%rip), %rsi      # 0x17686
leaq 0xd523(%rip), %rdx      # 0x194e5
movq %r14, %rdi
callq 0xc833
leaq 0xb6c1(%rip), %rsi      # 0x17692
leaq 0xb6c8(%rip), %rdx      # 0x176a0
movq %r14, %rdi
callq 0xc833
leaq 0xb6bf(%rip), %rsi      # 0x176a6
leaq 0xb6c8(%rip), %rdx      # 0x176b6
movq %r14, %rdi
callq 0xc833
leaq 0xb6c1(%rip), %rsi      # 0x176be
leaq 0xb6bb(%rip), %rdx      # 0x176bf
movq %r14, %rdi
callq 0xc833
leaq 0xb6ae(%rip), %rsi      # 0x176c1
movq %r14, %rdi
movq %r15, %rdx
callq 0xc833
leaq 0xb6a0(%rip), %rsi      # 0x176c5
leaq 0xb69a(%rip), %rdx      # 0x176c6
movq %r14, %rdi
callq 0xc833
leaq 0xb693(%rip), %rsi      # 0x176ce
leaq 0xb091(%rip), %rdx      # 0x170d3
movq %r14, %rdi
callq 0xc833
leaq 0xb68b(%rip), %rsi      # 0x176dc
leaq 0xb686(%rip), %rdx      # 0x176de
movq %r14, %rdi
callq 0xc833
leaq 0xb67a(%rip), %rsi      # 0x176e1
leaq 0xb05b(%rip), %rdx      # 0x170c9
movq %r14, %rdi
callq 0xc833
leaq 0xb671(%rip), %rsi      # 0x176ee
movq %r14, %rdi
movq %r13, %rdx
callq 0xc833
leaq 0xb676(%rip), %rsi      # 0x17705
leaq 0xb67c(%rip), %rdx      # 0x17712
movq %r14, %rdi
callq 0xc833
leaq 0xb675(%rip), %rsi      # 0x1771a
leaq 0xb679(%rip), %rdx      # 0x17725
movq %r14, %rdi
callq 0xc833
leaq 0xcd6d(%rip), %rsi      # 0x18e28
movq %r14, %rdi
movq %rbp, %rdx
callq 0xc833
leaq 0xb65e(%rip), %rsi      # 0x1772b
leaq 0xb661(%rip), %rdx      # 0x17735
movq %r14, %rdi
callq 0xc833
leaq 0xb656(%rip), %rsi      # 0x17739
leaq 0xb65e(%rip), %rdx      # 0x17748
movq %r14, %rdi
callq 0xc833
leaq 0xb657(%rip), %rsi      # 0x17750
leaq 0xd774(%rip), %rdx      # 0x19874
movq %r14, %rdi
callq 0xc833
leaq 0xb64e(%rip), %rsi      # 0x1775d
leaq 0xb65d(%rip), %rbx      # 0x17773
movq %r14, %rdi
movq %rbx, %rdx
callq 0xc833
leaq 0xb651(%rip), %rsi      # 0x17779
movq %r14, %rdi
movq %rbx, %rdx
callq 0xc833
leaq 0xb654(%rip), %rsi      # 0x1778e
movq %r14, %rdi
leaq 0xb55c(%rip), %rdx      # 0x176a0
callq 0xc833
leaq 0xb64d(%rip), %rsi      # 0x1779d
movq %r14, %rdi
leaq 0xce21(%rip), %rbx      # 0x18f7b
movq %rbx, %rdx
callq 0xc833
leaq 0xb63f(%rip), %rsi      # 0x177a8
movq %r14, %rdi
movq %rbp, %rdx
callq 0xc833
leaq 0xb638(%rip), %rsi      # 0x177b3
movq %r14, %rdi
movq %rbx, %rdx
callq 0xc833
leaq 0xb633(%rip), %rsi      # 0x177c0
leaq 0xd377(%rip), %rdx      # 0x1950b
movq %r14, %rdi
callq 0xc833
leaq 0xb62a(%rip), %rsi      # 0x177cd
movq %r14, %rdi
leaq 0xb479(%rip), %r15      # 0x17626
movq %r15, %rdx
callq 0xc833
leaq 0xb624(%rip), %rsi      # 0x177e0
movq %r14, %rdi
movq %r12, %rdx
callq 0xc833
leaq 0xb625(%rip), %rsi      # 0x177f3
movq %r14, %rdi
leaq 0xcedc(%rip), %rbx      # 0x190b4
movq %rbx, %rdx
callq 0xc833
leaq 0xb621(%rip), %rsi      # 0x17808
movq %r14, %rdi
movq %r13, %rdx
callq 0xc833
leaq 0xb628(%rip), %rsi      # 0x17821
leaq 0xb644(%rip), %rdx      # 0x17844
movq %r14, %rdi
callq 0xc833
leaq 0xb639(%rip), %rsi      # 0x17848
movq %r14, %rdi
movq %rbx, %rdx
callq 0xc833
leaq 0xb63a(%rip), %rsi      # 0x1785b
leaq 0xb663(%rip), %rdx      # 0x1788b
movq %r14, %rdi
callq 0xc833
leaq 0xb65c(%rip), %rsi      # 0x17893
movq %r14, %rdi
movq %r15, %rdx
callq 0xc833
leaq 0xb654(%rip), %rsi      # 0x1789d
movq %r14, %rdi
movq %r12, %rdx
callq 0xc833
leaq 0xb64c(%rip), %rsi      # 0x178a7
movq %r14, %rdi
movq %r15, %rdx
callq 0xc833
leaq 0xb648(%rip), %rsi      # 0x178b5
movq %r14, %rdi
movq %r12, %rdx
callq 0xc833
leaq 0xb642(%rip), %rsi      # 0x178c1
movq %r14, %rdi
movq %r15, %rdx
callq 0xc833
leaq 0xb63c(%rip), %rsi      # 0x178cd
movq %r14, %rdi
movq %r15, %rdx
callq 0xc833
leaq 0xb638(%rip), %rsi      # 0x178db
movq %r14, %rdi
movq %r12, %rdx
callq 0xc833
leaq 0xb636(%rip), %rsi      # 0x178eb
movq %r14, %rdi
movq %r12, %rdx
callq 0xc833
leaq 0xb640(%rip), %rsi      # 0x17907
movq %r14, %rdi
movq %r15, %rdx
callq 0xc833
leaq 0xb647(%rip), %rsi      # 0x17920
movq %r14, %rdi
movq %r15, %rdx
callq 0xc833
leaq 0xb64e(%rip), %rsi      # 0x17939
movq %r14, %rdi
movq %r12, %rdx
callq 0xc833
leaq 0xb647(%rip), %rsi      # 0x17944
movq %r14, %rdi
movq %r12, %rdx
callq 0xc833
leaq 0xb63f(%rip), %rsi      # 0x1794e
movq %r14, %rdi
movq %r12, %rdx
callq 0xc833
leaq 0xb638(%rip), %rsi      # 0x17959
movq %r14, %rdi
movq %r12, %rdx
callq 0xc833
leaq 0xb632(%rip), %rsi      # 0x17965
movq %r14, %rdi
movq %r15, %rdx
callq 0xc833
leaq 0xb62d(%rip), %rsi      # 0x17972
movq %r14, %rdi
movq %r15, %rdx
callq 0xc833
leaq 0xb62e(%rip), %rsi      # 0x17985
movq %r14, %rdi
movq %r12, %rdx
callq 0xc833
leaq 0xb629(%rip), %rsi      # 0x17992
movq %r14, %rdi
movq %r12, %rdx
callq 0xc833
leaq 0xb623(%rip), %rsi      # 0x1799e
movq %r14, %rdi
movq %r15, %rdx
callq 0xc833
leaq 0xb61e(%rip), %rsi      # 0x179ab
movq %r14, %rdi
movq %r12, %rdx
callq 0xc833
leaq 0xb61a(%rip), %rsi      # 0x179b9
movq %r14, %rdi
movq %r12, %rdx
callq 0xc833
leaq 0xb617(%rip), %rsi      # 0x179c8
movq %r14, %rdi
movq %r12, %rdx
callq 0xc833
leaq 0xb61a(%rip), %rsi      # 0x179dd
movq %r14, %rdi
movq %r15, %rdx
callq 0xc833
leaq 0xb616(%rip), %rsi      # 0x179eb
movq %r14, %rdi
movq %r12, %rdx
callq 0xc833
leaq 0xb611(%rip), %rsi      # 0x179f8
movq %r14, %rdi
movq %r12, %rdx
callq 0xc833
leaq 0xb60d(%rip), %rsi      # 0x17a06
movq %r14, %rdi
movq %r12, %rdx
callq 0xc833
leaq 0xb60a(%rip), %rsi      # 0x17a15
movq %r14, %rdi
movq %r12, %rdx
callq 0xc833
leaq 0xb608(%rip), %rsi      # 0x17a25
movq %r14, %rdi
movq %r12, %rdx
callq 0xc833
leaq 0xb60c(%rip), %rsi      # 0x17a3b
movq %r14, %rdi
movq %r12, %rdx
callq 0xc833
leaq 0xb607(%rip), %rsi      # 0x17a48
movq %r14, %rdi
movq %r15, %rdx
callq 0xc833
leaq 0xb601(%rip), %rsi      # 0x17a54
movq %r14, %rdi
movq %r12, %rdx
callq 0xc833
leaq 0xb5fc(%rip), %rsi      # 0x17a61
movq %r14, %rdi
movq %r12, %rdx
callq 0xc833
leaq 0xb5f8(%rip), %rsi      # 0x17a6f
movq %r14, %rdi
movq %r12, %rdx
callq 0xc833
leaq 0xb5f5(%rip), %rsi      # 0x17a7e
movq %r14, %rdi
movq %r12, %rdx
callq 0xc833
leaq 0xb5f8(%rip), %rsi      # 0x17a93
movq %r14, %rdi
movq %r15, %rdx
callq 0xc833
leaq 0xb5ec(%rip), %rsi      # 0x17a99
movq %r14, %rdi
movq %r12, %rdx
callq 0xc833
leaq 0xb5e6(%rip), %rsi      # 0x17aa5
movq %r14, %rdi
movq %r15, %rdx
callq 0xc833
leaq 0xb5df(%rip), %rsi      # 0x17ab0
movq %r14, %rdi
movq %r12, %rdx
callq 0xc833
leaq 0xb5df(%rip), %rsi      # 0x17ac2
movq %r14, %rdi
movq %r12, %rdx
callq 0xc833
leaq 0xb5de(%rip), %rsi      # 0x17ad3
movq %r14, %rdi
movq %r12, %rdx
callq 0xc833
leaq 0xb5dd(%rip), %rsi      # 0x17ae4
movq %r14, %rdi
movq %r15, %rdx
callq 0xc833
leaq 0xb5db(%rip), %rsi      # 0x17af4
leaq 0xcb54(%rip), %rbx      # 0x19074
movq %r14, %rdi
movq %rbx, %rdx
callq 0xc833
leaq 0xb5ce(%rip), %rsi      # 0x17b00
movq %r14, %rdi
movq %r12, %rdx
callq 0xc833
leaq 0xb5c1(%rip), %rsi      # 0x17b05
movq %r14, %rdi
movq %r12, %rdx
callq 0xc833
leaq 0xb5ba(%rip), %rsi      # 0x17b10
movq %r14, %rdi
movq %r15, %rdx
callq 0xc833
leaq 0xb5b2(%rip), %rsi      # 0x17b1a
movq %r14, %rdi
movq %r12, %rdx
callq 0xc833
leaq 0xb5b1(%rip), %rsi      # 0x17b2b
movq %r14, %rdi
movq %r15, %rdx
callq 0xc833
leaq 0xb5af(%rip), %rsi      # 0x17b3b
movq %r14, %rdi
movq %r15, %rdx
callq 0xc833
leaq 0xb5ad(%rip), %rsi      # 0x17b4b
movq %r14, %rdi
movq %r15, %rdx
callq 0xc833
leaq 0xb5aa(%rip), %rsi      # 0x17b5a
movq %r14, %rdi
movq %r13, %rdx
callq 0xc833
leaq 0xb5a3(%rip), %rsi      # 0x17b65
movq %r14, %rdi
movq %r13, %rdx
movq %r13, %r15
callq 0xc833
leaq 0xb592(%rip), %rsi      # 0x17b69
movq %r14, %rdi
movq %rbx, %rdx
callq 0xc833
leaq 0xb586(%rip), %rsi      # 0x17b6f
movq %r14, %rdi
movq %r13, %rdx
callq 0xc833
leaq 0xb57c(%rip), %rsi      # 0x17b77
movq %r14, %rdi
movq %rbx, %rdx
callq 0xc833
leaq 0xb572(%rip), %rsi      # 0x17b7f
movq %r14, %rdi
movq %rbx, %rdx
callq 0xc833
leaq 0xb568(%rip), %rsi      # 0x17b87
leaq 0xb569(%rip), %rdx      # 0x17b8f
movq %r14, %rdi
callq 0xc833
leaq 0xb55c(%rip), %rsi      # 0x17b91
leaq 0xb55f(%rip), %r13      # 0x17b9b
movq %r14, %rdi
movq %r13, %rdx
callq 0xc833
leaq 0xb54f(%rip), %rsi      # 0x17b9d
leaq 0xb54e(%rip), %rbp      # 0x17ba3
movq %r14, %rdi
movq %rbp, %rdx
callq 0xc833
leaq 0xb53f(%rip), %rsi      # 0x17ba6
movq %r14, %rdi
movq %r15, %rdx
callq 0xc833
leaq 0xb535(%rip), %rsi      # 0x17bae
movq %r14, %rdi
movq %rbp, %rdx
callq 0xc833
leaq 0xb52b(%rip), %rsi      # 0x17bb6
movq %r14, %rdi
movq %rbx, %rdx
callq 0xc833
leaq 0xb521(%rip), %rsi      # 0x17bbe
movq %r14, %rdi
leaq 0xb037(%rip), %rdx      # 0x176de
callq 0xc833
leaq 0xb513(%rip), %rsi      # 0x17bc6
leaq 0xb516(%rip), %rdx      # 0x17bd0
movq %r14, %rdi
callq 0xc833
leaq 0xb50a(%rip), %rsi      # 0x17bd3
movq %r14, %rdi
leaq 0xc9e1(%rip), %rdx      # 0x190b4
callq 0xc833
leaq 0xb4f8(%rip), %rsi      # 0x17bd7
movq %r14, %rdi
movq %rbx, %rdx
callq 0xc833
leaq 0xb4ec(%rip), %rsi      # 0x17bdd
movq %r14, %rdi
movq %r15, %rdx
callq 0xc833
leaq 0xb4e2(%rip), %rsi      # 0x17be5
movq %r14, %rdi
movq %r15, %rdx
callq 0xc833
leaq 0xb4d8(%rip), %rsi      # 0x17bed
movq %r14, %rdi
movq %r15, %rdx
callq 0xc833
leaq 0xb4ce(%rip), %rsi      # 0x17bf5
movq %r14, %rdi
movq %r13, %rdx
callq 0xc833
leaq 0xb4c4(%rip), %rsi      # 0x17bfd
movq %r14, %rdi
movq %r13, %rdx
callq 0xc833
leaq 0xb4bc(%rip), %rsi      # 0x17c07
movq %r14, %rdi
movq %r12, %rdx
callq 0xc833
leaq 0xb4b2(%rip), %rsi      # 0x17c0f
movq %r14, %rdi
leaq 0xaebf(%rip), %rbx      # 0x17626
movq %rbx, %rdx
callq 0xc833
leaq 0xb4a1(%rip), %rsi      # 0x17c17
movq %r14, %rdi
movq %r12, %rdx
callq 0xc833
leaq 0xb497(%rip), %rsi      # 0x17c1f
movq %r14, %rdi
movq %rbx, %rdx
callq 0xc833
leaq 0xb48f(%rip), %rsi      # 0x17c29
movq %r14, %rdi
movq %r12, %rdx
callq 0xc833
leaq 0xb487(%rip), %rsi      # 0x17c33
movq %r14, %rdi
movq %r12, %rdx
callq 0xc833
leaq 0xb47d(%rip), %rsi      # 0x17c3b
movq %r14, %rdi
movq %r12, %rdx
callq 0xc833
leaq 0xb473(%rip), %rsi      # 0x17c43
movq %r14, %rdi
movq %rbx, %rdx
callq 0xc833
leaq 0xb469(%rip), %rsi      # 0x17c4b
movq %r14, %rdi
movq %r12, %rdx
callq 0xc833
leaq 0xb461(%rip), %rsi      # 0x17c55
movq %r14, %rdi
movq %rbx, %rdx
callq 0xc833
leaq 0xb459(%rip), %rsi      # 0x17c5f
leaq 0xcfe8(%rip), %rdx      # 0x197f5
movq %r14, %rdi
callq 0xc833
movq %rsp, %rdi
movl $0xadb, 0xc(%rdi)       # imm = 0xADB
callq 0x167f2
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq