// File: Lartu[P]polaris/src/polaris.cpp
// Function: load_source_file(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
string load_source_file(string filename)
{
    string contents = "";
    filename = expand_home(filename);
    ifstream file(filename.c_str());
    if(!file.is_open())
        error("the file '" + filename + "' couldn't be loaded.");
    string line = "";
    while(getline(file, line))
        contents += line + "\n";
    return contents;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x340, %rsp            # imm = 0x340
movq %rsi, -0x318(%rbp)
movq %rdi, -0x308(%rbp)
movq %rdi, %rax
movq %rax, -0x310(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movb $0x0, -0x11(%rbp)
leaq -0x12(%rbp), %rdi
movq %rdi, -0x300(%rbp)
callq 0x34a0
movq -0x308(%rbp), %rdi
movq -0x300(%rbp), %rdx
leaq 0xbfa3(%rip), %rsi      # 0x103c7
callq 0x33a0
jmp 0x442b
leaq -0x12(%rbp), %rdi
callq 0x3330
movq -0x318(%rbp), %rsi
leaq -0x68(%rbp), %rdi
callq 0x3170
jmp 0x4446
leaq -0x48(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x4780
jmp 0x4455
movq -0x318(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x3040
jmp 0x4467
leaq -0x48(%rbp), %rdi
callq 0x31c0
jmp 0x4472
leaq -0x68(%rbp), %rdi
callq 0x31c0
jmp 0x447d
movq -0x318(%rbp), %rdi
callq 0x3160
movq %rax, -0x320(%rbp)
jmp 0x4492
movq -0x320(%rbp), %rsi
leaq -0x270(%rbp), %rdi
movl $0x8, %edx
callq 0x34b0
jmp 0x44ac
leaq -0x270(%rbp), %rdi
callq 0x3440
movb %al, -0x321(%rbp)
jmp 0x44c0
movb -0x321(%rbp), %al
testb $0x1, %al
jne 0x45e7
jmp 0x44d0
movq -0x318(%rbp), %rdx
leaq 0xbe48(%rip), %rsi      # 0x10326
leaq -0x2b0(%rbp), %rdi
callq 0xa7e0
jmp 0x44ec
leaq 0xbe3e(%rip), %rdx      # 0x10331
leaq -0x290(%rbp), %rdi
leaq -0x2b0(%rbp), %rsi
callq 0xa720
jmp 0x4508
leaq -0x290(%rbp), %rdi
callq 0x4b20
jmp 0x4516
leaq -0x290(%rbp), %rdi
callq 0x31c0
jmp 0x4524
leaq -0x2b0(%rbp), %rdi
callq 0x31c0
jmp 0x4532
jmp 0x45e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x12(%rbp), %rdi
callq 0x3330
jmp 0x476a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x475a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x4589
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x31c0
jmp 0x4587
jmp 0x4589
leaq -0x68(%rbp), %rdi
callq 0x31c0
jmp 0x4594
jmp 0x475a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x472e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x45d4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x290(%rbp), %rdi
callq 0x31c0
jmp 0x45d2
jmp 0x45d4
leaq -0x2b0(%rbp), %rdi
callq 0x31c0
jmp 0x45e2
jmp 0x472e
leaq -0x2d1(%rbp), %rdi
movq %rdi, -0x330(%rbp)
callq 0x34a0
movq -0x330(%rbp), %rdx
leaq 0xbdbf(%rip), %rsi      # 0x103c7
leaq -0x2d0(%rbp), %rdi
callq 0x33a0
jmp 0x4616
leaq -0x2d1(%rbp), %rdi
callq 0x3330
leaq -0x270(%rbp), %rdi
leaq -0x2d0(%rbp), %rsi
callq 0x3090
movq %rax, -0x338(%rbp)
jmp 0x463e
movq -0x338(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x3420
movq %rax, -0x340(%rbp)
jmp 0x465d
movq -0x340(%rbp), %rax
cmpq $0x0, %rax
je 0x46f6
leaq 0xbcd2(%rip), %rdx      # 0x10347
leaq -0x2f8(%rbp), %rdi
leaq -0x2d0(%rbp), %rsi
callq 0xa720
jmp 0x468a
movq -0x308(%rbp), %rdi
leaq -0x2f8(%rbp), %rsi
callq 0x3370
jmp 0x469f
leaq -0x2f8(%rbp), %rdi
callq 0x31c0
jmp 0x46ad
jmp 0x4622
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x2d1(%rbp), %rdi
callq 0x3330
jmp 0x472e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x4716
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x2f8(%rbp), %rdi
callq 0x31c0
jmp 0x46f4
jmp 0x4716
movb $0x1, -0x11(%rbp)
leaq -0x2d0(%rbp), %rdi
callq 0x31c0
jmp 0x4708
leaq -0x270(%rbp), %rdi
callq 0x30c0
jmp 0x4726
leaq -0x2d0(%rbp), %rdi
callq 0x31c0
jmp 0x4724
jmp 0x472e
testb $0x1, -0x11(%rbp)
jne 0x474a
jmp 0x473e
leaq -0x270(%rbp), %rdi
callq 0x30c0
jmp 0x473c
jmp 0x475a
movq -0x308(%rbp), %rdi
callq 0x31c0
movq -0x310(%rbp), %rax
addq $0x340, %rsp            # imm = 0x340
popq %rbp
retq
movq -0x308(%rbp), %rdi
callq 0x31c0
jmp 0x4768
jmp 0x476a
movq -0x20(%rbp), %rdi
callq 0x3490
movq %rax, %rdi
callq 0xa540
nopl (%rax,%rax)