// File: /workspace/github_cpp_makefile_star2_O1/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, 0xf650(%rip)      # 0x2138e
jne 0x11d55
movb $0x1, 0xf647(%rip)      # 0x2138e
xorl %edi, %edi
callq 0x5340
movl %eax, %edi
callq 0x5350
movq 0x4f8(%rbx), %rdi
leaq 0x63a5(%rip), %rdx      # 0x18108
leaq 0x2c9(%rip), %r8        # 0x12033
movq %rbx, %rsi
movl $0x7, %ecx
callq 0x10cb6
movq 0x4f8(%rbx), %rdi
leaq 0x638a(%rip), %rdx      # 0x1810f
leaq 0x47d(%rip), %r8        # 0x12209
movq %rbx, %rsi
movl $0x7, %ecx
callq 0x10cb6
movq 0x4f8(%rbx), %rdi
leaq 0x636c(%rip), %rdx      # 0x18113
leaq 0x516(%rip), %r8        # 0x122c4
movq %rbx, %rsi
movl $0x7, %ecx
callq 0x10cb6
movq 0x4f8(%rbx), %rdi
leaq 0x6351(%rip), %rdx      # 0x1811a
leaq 0x564(%rip), %r8        # 0x12334
movq %rbx, %rsi
movl $0x7, %ecx
callq 0x10cb6
movq 0x4f8(%rbx), %rdi
leaq 0x6335(%rip), %rdx      # 0x18120
leaq 0x5d9(%rip), %r8        # 0x123cb
movq %rbx, %rsi
movl $0x7, %ecx
callq 0x10cb6
movq 0x4f8(%rbx), %rdi
leaq 0x6317(%rip), %rdx      # 0x18124
leaq 0x688(%rip), %r8        # 0x1249c
movq %rbx, %rsi
movl $0x7, %ecx
callq 0x10cb6
movq 0x4f8(%rbx), %rdi
leaq 0x62fd(%rip), %rdx      # 0x1812c
leaq 0x828(%rip), %r8        # 0x1265e
movq %rbx, %rsi
movl $0x7, %ecx
callq 0x10cb6
movq 0x4f8(%rbx), %rdi
leaq 0x62e3(%rip), %rdx      # 0x18134
leaq 0x862(%rip), %r8        # 0x126ba
movq %rbx, %rsi
movl $0x7, %ecx
callq 0x10cb6
movq 0x4f8(%rbx), %rdi
leaq 0x62c8(%rip), %rdx      # 0x1813b
leaq 0xbcd(%rip), %r8        # 0x12a47
movq %rbx, %rsi
movl $0x7, %ecx
callq 0x10cb6
movq 0x4f8(%rbx), %rdi
leaq 0x62ad(%rip), %rdx      # 0x18142
leaq 0xc81(%rip), %r8        # 0x12b1d
movq %rbx, %rsi
movl $0x7, %ecx
callq 0x10cb6
movq 0x4f8(%rbx), %rdi
leaq 0x5de8(%rip), %rdx      # 0x17c9f
leaq 0xece(%rip), %r8        # 0x12d8c
movq %rbx, %rsi
movl $0x7, %ecx
callq 0x10cb6
movq 0x4f8(%rbx), %rdi
leaq 0x5134(%rip), %rdx      # 0x1700d
leaq 0x1143(%rip), %r8       # 0x13023
movq %rbx, %rsi
movl $0x7, %ecx
callq 0x10cb6
movl $0x68, %edi
callq 0x5380
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0xf2dc
leaq 0x623d(%rip), %rdi      # 0x18149
movq %rbx, %rsi
callq 0xf59a
leaq 0x1304(%rip), %r8       # 0x1321f
movq %r14, %rdi
movl %eax, %esi
movl $0x7, %ecx
callq 0xf3ea
leaq 0x621e(%rip), %rdi      # 0x1814f
movq %rbx, %rsi
callq 0xf59a
leaq 0x139b(%rip), %r8       # 0x132db
movq %r14, %rdi
movl %eax, %esi
movl $0x7, %ecx
callq 0xf3ea
leaq 0x6201(%rip), %rdi      # 0x18157
movq %rbx, %rsi
callq 0xf59a
leaq 0x1447(%rip), %r8       # 0x133ac
movq %r14, %rdi
movl %eax, %esi
movl $0x7, %ecx
callq 0xf3ea
movq 0x4f8(%rbx), %rdi
leaq 0x61de(%rip), %rdx      # 0x18160
movq %rbx, %rsi
movl $0x6, %ecx
movq %r14, %r8
callq 0x10cb6
movl $0x68, %edi
callq 0x5380
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0xf2dc
leaq 0x61b2(%rip), %rdi      # 0x18163
movq %rbx, %rsi
callq 0xf59a
leaq 0x1502(%rip), %r8       # 0x134c2
movq %r14, %rdi
movl %eax, %esi
movl $0x7, %ecx
callq 0xf3ea
leaq 0x6191(%rip), %rdi      # 0x18167
movq %rbx, %rsi
callq 0xf59a
leaq 0x1546(%rip), %r8       # 0x1352b
movq %r14, %rdi
movl %eax, %esi
movl $0x7, %ecx
callq 0xf3ea
movq 0x4f8(%rbx), %rdi
leaq 0x616b(%rip), %rdx      # 0x1816d
movq %rbx, %rsi
movl $0x6, %ecx
movq %r14, %r8
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x10cb6
jmp 0x1201b
movq %rax, %rbx
movl $0x68, %esi
movq %r14, %rdi
callq 0x5390
movq %rbx, %rdi
callq 0x55e0