// File: iamlouk[P]asbi/src/context.cc
// Function: asbi::Context::Context()
Context::Context(): evtloop(this, 0) {
	global_env = std::make_shared<Env>(this, nullptr);

	std::string str = "__file";
	names.__file = new_stringconstant(str);
	str = "__main";
	names.__main = new_stringconstant(str);
	str = "__imports";
	names.__imports = new_stringconstant(str);
	str = "exports";
	names.exports = new_stringconstant(str);
	str = "ok";
	names.ok = new_stringconstant(str);
	str = "err";
	names.err = new_stringconstant(str);

	load_macros();
}

// Assembly:
subq $0xf8, %rsp
movq %rdi, 0xf0(%rsp)
movq 0xf0(%rsp), %rax
movq %rax, 0x80(%rsp)
movq %rax, %rcx
addq $0x300, %rcx            # imm = 0x300
movq %rcx, 0x88(%rsp)
movq %rax, 0x90(%rsp)
movq 0x90(%rsp), %rdi
movq %rdi, 0x78(%rsp)
callq 0x127f0
movq 0x78(%rsp), %rax
movq 0x88(%rsp), %rcx
addq $0x18, %rax
cmpq %rcx, %rax
movq %rax, 0x90(%rsp)
jne 0x264b9
movq 0x80(%rsp), %rsi
movq $0x0, 0x300(%rsi)
movq $0x0, 0x308(%rsi)
movq $0x200, 0x310(%rsi) # imm = 0x200
movq %rsi, %rdi
addq $0x318, %rdi            # imm = 0x318
movq %rdi, 0x70(%rsp)
xorl %edx, %edx
callq 0x2f870
jmp 0x2652a
movq 0x80(%rsp), %rdi
addq $0x4f8, %rdi            # imm = 0x4F8
movq %rdi, 0x58(%rsp)
callq 0x1fc30
movq 0x80(%rsp), %rdi
addq $0x508, %rdi            # imm = 0x508
movq %rdi, 0x60(%rsp)
callq 0x22a70
movq 0x80(%rsp), %rdi
addq $0x520, %rdi            # imm = 0x520
movq %rdi, 0x68(%rsp)
callq 0x274f0
movq 0x80(%rsp), %rax
movq %rax, 0xc8(%rsp)
movq $0x0, 0xc0(%rsp)
leaq 0xd0(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
leaq 0xc0(%rsp), %rdx
callq 0x27500
jmp 0x265b0
movq 0x80(%rsp), %rdi
addq $0x4f8, %rdi            # imm = 0x4F8
leaq 0xd0(%rsp), %rsi
movq %rsi, 0x48(%rsp)
callq 0x1d2c0
movq 0x48(%rsp), %rdi
callq 0x7db0
leaq 0x9f(%rsp), %rdi
movq %rdi, 0x50(%rsp)
callq 0x67b0
movq 0x50(%rsp), %rdx
leaq 0x12af4(%rip), %rsi     # 0x390ed
leaq 0xa0(%rsp), %rdi
callq 0x7c20
jmp 0x26608
leaq 0x9f(%rsp), %rdi
callq 0x64c0
movq 0x80(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
callq 0x260c0
movq %rax, 0x40(%rsp)
jmp 0x26631
movq 0x80(%rsp), %rax
movq 0x40(%rsp), %rcx
movq %rcx, 0x538(%rax)
leaq 0x12aa8(%rip), %rsi     # 0x390f4
leaq 0xa0(%rsp), %rdi
callq 0x6630
jmp 0x2665b
movq 0x80(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
callq 0x260c0
movq %rax, 0x38(%rsp)
jmp 0x26677
movq 0x80(%rsp), %rax
movq 0x38(%rsp), %rcx
movq %rcx, 0x540(%rax)
leaq 0x12a69(%rip), %rsi     # 0x390fb
leaq 0xa0(%rsp), %rdi
callq 0x6630
jmp 0x266a1
movq 0x80(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
callq 0x260c0
movq %rax, 0x30(%rsp)
jmp 0x266bd
movq 0x80(%rsp), %rax
movq 0x30(%rsp), %rcx
movq %rcx, 0x548(%rax)
leaq 0x12a2d(%rip), %rsi     # 0x39105
leaq 0xa0(%rsp), %rdi
callq 0x6630
jmp 0x266e7
movq 0x80(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
callq 0x260c0
movq %rax, 0x28(%rsp)
jmp 0x26703
movq 0x80(%rsp), %rax
movq 0x28(%rsp), %rcx
movq %rcx, 0x550(%rax)
leaq 0x129ef(%rip), %rsi     # 0x3910d
leaq 0xa0(%rsp), %rdi
callq 0x6630
jmp 0x2672d
movq 0x80(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
callq 0x260c0
movq %rax, 0x20(%rsp)
jmp 0x26749
movq 0x80(%rsp), %rax
movq 0x20(%rsp), %rcx
movq %rcx, 0x558(%rax)
leaq 0x129ac(%rip), %rsi     # 0x39110
leaq 0xa0(%rsp), %rdi
callq 0x6630
jmp 0x26773
movq 0x80(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
callq 0x260c0
movq %rax, 0x18(%rsp)
jmp 0x2678f
movq 0x80(%rsp), %rdi
movq 0x18(%rsp), %rax
movq %rax, 0x560(%rdi)
callq 0x29b20
jmp 0x267aa
leaq 0xa0(%rsp), %rdi
callq 0x6290
addq $0xf8, %rsp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xe8(%rsp)
movl %eax, 0xe4(%rsp)
jmp 0x2685a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xe8(%rsp)
movl %eax, 0xe4(%rsp)
jmp 0x26832
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xe8(%rsp)
movl %eax, 0xe4(%rsp)
leaq 0x9f(%rsp), %rdi
callq 0x64c0
jmp 0x26832
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xe8(%rsp)
movl %eax, 0xe4(%rsp)
leaq 0xa0(%rsp), %rdi
callq 0x6290
movq 0x68(%rsp), %rdi
callq 0x27580
movq 0x60(%rsp), %rdi
callq 0x232e0
movq 0x58(%rsp), %rdi
callq 0x7db0
movq 0x70(%rsp), %rdi
callq 0x2fa80
movq 0x80(%rsp), %rax
addq $0x300, %rax            # imm = 0x300
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rdi
addq $-0x18, %rdi
movq %rdi, 0x8(%rsp)
callq 0x129f0
movq 0x80(%rsp), %rcx
movq 0x8(%rsp), %rax
cmpq %rcx, %rax
movq %rax, 0x10(%rsp)
jne 0x2686d
jmp 0x26899
movq 0xe8(%rsp), %rdi
callq 0x67a0
nopw %cs:(%rax,%rax)