// File: /workspace/github_cpp_makefile_star2_O3/iamlouk[P]asbi/src/macros.cc
// Function: asbi::Context::load_macros()
void Context::load_macros() {
	static bool seeded = false;
	if (!seeded) {
		seeded = true;
		srand((unsigned)time(nullptr));
	}

	global_env->decl(this, "assert",   Value::macro( macro_assert  ));
	global_env->decl(this, "mod",      Value::macro( macro_mod     ));
	global_env->decl(this, "random",   Value::macro( macro_random  ));
	global_env->decl(this, "toInt",    Value::macro( macro_toInt   ));
	global_env->decl(this, "len",      Value::macro( macro_len     ));
	global_env->decl(this, "__debug",  Value::macro( macro_debug   ));
	global_env->decl(this, "__scope",  Value::macro( macro_scope   ));
	global_env->decl(this, "import",   Value::macro( macro_import  ));
	global_env->decl(this, "typeof",   Value::macro( macro_typeof  ));
	global_env->decl(this, "reduce",   Value::macro( macro_reduce  ));
	global_env->decl(this, "map",      Value::macro( macro_map     ));
	global_env->decl(this, "eval",     Value::macro( macro_eval    ));

	auto io = new MapContainer(this);
	io->set(Value::symbol("print", this), Value::macro(macro_io_print));
	io->set(Value::symbol("println", this), Value::macro(macro_io_println));
	io->set(Value::symbol("readline", this), Value::macro(macro_io_readline));
	global_env->decl(this, "io", Value::map(io));

	auto time = new MapContainer(this);
	time->set(Value::symbol("now", this), Value::macro(macro_time_now));
	time->set(Value::symbol("runat", this), Value::macro(macro_time_runAt));
	global_env->decl(this, "time", Value::map(time));

}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
cmpb $0x0, 0xf7bc(%rip)      # 0x2138e
jne 0x11be9
movb $0x1, 0xf7b3(%rip)      # 0x2138e
xorl %edi, %edi
callq 0x5340
movl %eax, %edi
callq 0x5350
movq 0x4f8(%rbx), %rdi
leaq 0x6511(%rip), %rdx      # 0x18108
leaq 0x2c9(%rip), %r8        # 0x11ec7
movq %rbx, %rsi
movl $0x7, %ecx
callq 0x10b76
movq 0x4f8(%rbx), %rdi
leaq 0x64f6(%rip), %rdx      # 0x1810f
leaq 0x47d(%rip), %r8        # 0x1209d
movq %rbx, %rsi
movl $0x7, %ecx
callq 0x10b76
movq 0x4f8(%rbx), %rdi
leaq 0x64d8(%rip), %rdx      # 0x18113
leaq 0x516(%rip), %r8        # 0x12158
movq %rbx, %rsi
movl $0x7, %ecx
callq 0x10b76
movq 0x4f8(%rbx), %rdi
leaq 0x64bd(%rip), %rdx      # 0x1811a
leaq 0x564(%rip), %r8        # 0x121c8
movq %rbx, %rsi
movl $0x7, %ecx
callq 0x10b76
movq 0x4f8(%rbx), %rdi
leaq 0x64a1(%rip), %rdx      # 0x18120
leaq 0x5d9(%rip), %r8        # 0x1225f
movq %rbx, %rsi
movl $0x7, %ecx
callq 0x10b76
movq 0x4f8(%rbx), %rdi
leaq 0x6483(%rip), %rdx      # 0x18124
leaq 0x67c(%rip), %r8        # 0x12324
movq %rbx, %rsi
movl $0x7, %ecx
callq 0x10b76
movq 0x4f8(%rbx), %rdi
leaq 0x6469(%rip), %rdx      # 0x1812c
leaq 0x81c(%rip), %r8        # 0x124e6
movq %rbx, %rsi
movl $0x7, %ecx
callq 0x10b76
movq 0x4f8(%rbx), %rdi
leaq 0x644f(%rip), %rdx      # 0x18134
leaq 0x856(%rip), %r8        # 0x12542
movq %rbx, %rsi
movl $0x7, %ecx
callq 0x10b76
movq 0x4f8(%rbx), %rdi
leaq 0x6434(%rip), %rdx      # 0x1813b
leaq 0xbbc(%rip), %r8        # 0x128ca
movq %rbx, %rsi
movl $0x7, %ecx
callq 0x10b76
movq 0x4f8(%rbx), %rdi
leaq 0x6419(%rip), %rdx      # 0x18142
leaq 0xc70(%rip), %r8        # 0x129a0
movq %rbx, %rsi
movl $0x7, %ecx
callq 0x10b76
movq 0x4f8(%rbx), %rdi
leaq 0x5f54(%rip), %rdx      # 0x17c9f
leaq 0xebc(%rip), %r8        # 0x12c0e
movq %rbx, %rsi
movl $0x7, %ecx
callq 0x10b76
movq 0x4f8(%rbx), %rdi
leaq 0x52a0(%rip), %rdx      # 0x1700d
leaq 0x112d(%rip), %r8       # 0x12ea1
movq %rbx, %rsi
movl $0x7, %ecx
callq 0x10b76
movl $0x68, %edi
callq 0x5380
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0xf274
leaq 0x63a9(%rip), %rdi      # 0x18149
movq %rbx, %rsi
callq 0xf538
leaq 0x12fc(%rip), %r8       # 0x130ab
movq %r14, %rdi
movl %eax, %esi
movl $0x7, %ecx
callq 0xf382
leaq 0x638a(%rip), %rdi      # 0x1814f
movq %rbx, %rsi
callq 0xf538
leaq 0x1393(%rip), %r8       # 0x13167
movq %r14, %rdi
movl %eax, %esi
movl $0x7, %ecx
callq 0xf382
leaq 0x636d(%rip), %rdi      # 0x18157
movq %rbx, %rsi
callq 0xf538
leaq 0x143f(%rip), %r8       # 0x13238
movq %r14, %rdi
movl %eax, %esi
movl $0x7, %ecx
callq 0xf382
movq 0x4f8(%rbx), %rdi
leaq 0x634a(%rip), %rdx      # 0x18160
movq %rbx, %rsi
movl $0x6, %ecx
movq %r14, %r8
callq 0x10b76
movl $0x68, %edi
callq 0x5380
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0xf274
leaq 0x631e(%rip), %rdi      # 0x18163
movq %rbx, %rsi
callq 0xf538
leaq 0x14f4(%rip), %r8       # 0x13348
movq %r14, %rdi
movl %eax, %esi
movl $0x7, %ecx
callq 0xf382
leaq 0x62fd(%rip), %rdi      # 0x18167
movq %rbx, %rsi
callq 0xf538
leaq 0x1538(%rip), %r8       # 0x133b1
movq %r14, %rdi
movl %eax, %esi
movl $0x7, %ecx
callq 0xf382
movq 0x4f8(%rbx), %rdi
leaq 0x62d7(%rip), %rdx      # 0x1816d
movq %rbx, %rsi
movl $0x6, %ecx
movq %r14, %r8
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x10b76
jmp 0x11eaf
movq %rax, %rbx
movl $0x68, %esi
movq %r14, %rdi
callq 0x5390
movq %rbx, %rdi
callq 0x55e0