// File: Heptagon196[P]Gos/Gos.cpp
// Function: Gos::GosProject::ExecuteFiles(std::queue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::deque<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>&)
void Gos::GosProject::ExecuteFiles(std::queue<std::string>& files) {
    std::unordered_set<std::string> vis;
    while (!files.empty()) {
        std::string scriptPath = files.front();
        if (vis.contains(scriptPath)) {
            continue;
        }
        vis.insert(scriptPath);
        std::cout << "Gos: Import " << scriptPath << std::endl;
        files.pop();
        auto fin = FileSystem::Read(scriptPath);
        GosScript& script = scripts[scriptPath];
        script.Read(fin, scriptPath);
        script.Execute();
    }
}

// Assembly:
subq $0x348, %rsp            # imm = 0x348
movq %rdi, 0x340(%rsp)
movq %rsi, 0x338(%rsp)
movq 0x340(%rsp), %rax
movq %rax, 0x58(%rsp)
leaq 0x300(%rsp), %rdi
callq 0x1e73d0
movq 0x338(%rsp), %rdi
callq 0x1e73e0
movb %al, 0x57(%rsp)
jmp 0x1e6294
movb 0x57(%rsp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x1e62a3
jmp 0x1e65b6
movq 0x338(%rsp), %rdi
callq 0x1e7400
movq %rax, 0x48(%rsp)
jmp 0x1e62b7
movq 0x48(%rsp), %rsi
leaq 0x2d0(%rsp), %rdi
callq 0x6f070
jmp 0x1e62cb
leaq 0x300(%rsp), %rdi
leaq 0x2d0(%rsp), %rsi
callq 0x1e7410
movb %al, 0x47(%rsp)
jmp 0x1e62e6
movb 0x47(%rsp), %al
testb $0x1, %al
jne 0x1e62f0
jmp 0x1e6332
movl $0x2, 0x2cc(%rsp)
jmp 0x1e64fc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f8(%rsp)
movl %eax, 0x2f4(%rsp)
jmp 0x1e65cb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f8(%rsp)
movl %eax, 0x2f4(%rsp)
jmp 0x1e65a7
leaq 0x300(%rsp), %rdi
leaq 0x2d0(%rsp), %rsi
callq 0x1e7460
movb %dl, 0x37(%rsp)
movq %rax, 0x38(%rsp)
jmp 0x1e6352
movb 0x37(%rsp), %al
movq 0x38(%rsp), %rcx
movq %rcx, 0x2b8(%rsp)
movb %al, 0x2c0(%rsp)
movq 0x11ac4f(%rip), %rdi    # 0x300fc0
leaq 0x3bd8c(%rip), %rsi     # 0x222104
callq 0x13380
movq %rax, 0x28(%rsp)
jmp 0x1e6384
movq 0x28(%rsp), %rdi
leaq 0x2d0(%rsp), %rsi
callq 0x131a0
movq %rax, 0x20(%rsp)
jmp 0x1e639d
movq 0x20(%rsp), %rdi
movq 0x11ac37(%rip), %rsi    # 0x300fe0
callq 0x135d0
jmp 0x1e63b0
movq 0x338(%rsp), %rdi
callq 0x1e74b0
jmp 0x1e63bf
leaq 0x108(%rsp), %rdi
leaq 0x2d0(%rsp), %rsi
movl $0x2, %edx
callq 0x1e6eb0
jmp 0x1e63db
leaq 0x130(%rsp), %rdi
leaq 0x108(%rsp), %rsi
callq 0x1eeaf0
jmp 0x1e63f2
leaq 0x108(%rsp), %rdi
callq 0x1e7130
movq 0x58(%rsp), %rdi
leaq 0x2d0(%rsp), %rsi
callq 0x1e74c0
movq %rax, 0x18(%rsp)
jmp 0x1e6418
movq 0x18(%rsp), %rax
movq %rax, 0x100(%rsp)
movq 0x100(%rsp), %rax
movq %rax, 0x10(%rsp)
leaq 0xe0(%rsp), %rdi
leaq 0x2d0(%rsp), %rsi
callq 0x6f070
jmp 0x1e6449
movq 0x10(%rsp), %rdi
leaq 0x130(%rsp), %rsi
leaq 0xe0(%rsp), %rdx
callq 0x1e5a60
jmp 0x1e6465
leaq 0xe0(%rsp), %rdi
callq 0x52f50
movq 0x100(%rsp), %rax
movq %rax, 0x8(%rsp)
leaq 0x80(%rsp), %rdi
callq 0x1e0e0
jmp 0x1e648e
xorps %xmm0, %xmm0
movaps %xmm0, 0x60(%rsp)
movq $0x0, 0x70(%rsp)
leaq 0x60(%rsp), %rdi
movq %rdi, (%rsp)
callq 0x53b40
movq 0x8(%rsp), %rsi
movq (%rsp), %rcx
leaq 0xa8(%rsp), %rdi
leaq 0x80(%rsp), %rdx
callq 0x1e57f0
jmp 0x1e64cd
leaq 0xa8(%rsp), %rdi
callq 0x23b00
leaq 0x60(%rsp), %rdi
callq 0x53b50
leaq 0x130(%rsp), %rdi
callq 0x13240
movl $0x0, 0x2cc(%rsp)
leaq 0x2d0(%rsp), %rdi
callq 0x52f50
movl 0x2cc(%rsp), %eax
testl %eax, %eax
je 0x1e651b
jmp 0x1e6516
jmp 0x1e6281
jmp 0x1e6281
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f8(%rsp)
movl %eax, 0x2f4(%rsp)
leaq 0x108(%rsp), %rdi
callq 0x1e7130
jmp 0x1e65a7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f8(%rsp)
movl %eax, 0x2f4(%rsp)
jmp 0x1e659a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f8(%rsp)
movl %eax, 0x2f4(%rsp)
leaq 0xe0(%rsp), %rdi
callq 0x52f50
jmp 0x1e659a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f8(%rsp)
movl %eax, 0x2f4(%rsp)
leaq 0x60(%rsp), %rdi
callq 0x53b50
leaq 0x130(%rsp), %rdi
callq 0x13240
leaq 0x2d0(%rsp), %rdi
callq 0x52f50
jmp 0x1e65cb
leaq 0x300(%rsp), %rdi
callq 0x1e74f0
addq $0x348, %rsp            # imm = 0x348
retq
leaq 0x300(%rsp), %rdi
callq 0x1e74f0
movq 0x2f8(%rsp), %rdi
callq 0x133f0
nopw %cs:(%rax,%rax)