// File: AgathokakologicalBit[P]wit/src/code_generation/generators/javascript/generator.cpp
// Function: akbit::system::code_generation::js::(anonymous namespace)::cg_visit_block[abi:cxx11](std::shared_ptr<akbit::system::Node>, akbit::system::Node::block_t&, akbit::system::code_generation::js::Settings)
std::string cg_visit_block(std::shared_ptr<Node>, Node::block_t &val, Settings s)
    {
      std::string res = "(() => {\n";
      s.indent += 4;
      for (auto& stmt : val.code)
      {
        res += std::string(s.indent, ' ');
        if (&stmt == &val.code.back()) res += "return ";
        res += cg_visit(stmt, s) + ";\n";
      }
      res += std::string(s.indent - 4, ' ') + "})()";
      return res;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1a0, %rsp            # imm = 0x1A0
movq %rdi, -0x160(%rbp)
movb %r8b, %al
movq %rdi, %r8
movq %r8, -0x168(%rbp)
movq %rdi, -0x8(%rbp)
movq %rcx, -0x28(%rbp)
movb %al, -0x20(%rbp)
movl -0x20(%rbp), %eax
movl %eax, -0x10(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x18(%rbp)
movq %rsi, -0x30(%rbp)
movq %rdx, -0x38(%rbp)
movb $0x0, -0x39(%rbp)
leaq -0x3a(%rbp), %rdi
movq %rdi, -0x158(%rbp)
callq 0x4570
movq -0x160(%rbp), %rdi
movq -0x158(%rbp), %rdx
leaq 0x3f7e(%rip), %rsi      # 0x36c77
callq 0x9e70
jmp 0x32d00
leaq -0x3a(%rbp), %rdi
callq 0x4370
movl -0x14(%rbp), %eax
addl $0x4, %eax
movl %eax, -0x14(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rdi
callq 0x18160
movq %rax, -0x60(%rbp)
movq -0x58(%rbp), %rdi
callq 0x17fa0
movq %rax, -0x68(%rbp)
leaq -0x60(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x22a70
testb $0x1, %al
jne 0x32d4a
jmp 0x32f79
leaq -0x60(%rbp), %rdi
callq 0x184a0
movq %rax, -0x70(%rbp)
movl -0x14(%rbp), %eax
movq %rax, -0x178(%rbp)
leaq -0x91(%rbp), %rdi
movq %rdi, -0x170(%rbp)
callq 0x4570
movq -0x178(%rbp), %rsi
movq -0x170(%rbp), %rcx
leaq -0x90(%rbp), %rdi
movl $0x20, %edx
callq 0x34de0
jmp 0x32d95
movq -0x160(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x4410
jmp 0x32daa
leaq -0x90(%rbp), %rdi
callq 0x4210
leaq -0x91(%rbp), %rdi
callq 0x4370
movq -0x70(%rbp), %rax
movq %rax, -0x180(%rbp)
movq -0x38(%rbp), %rdi
callq 0x17fd0
movq %rax, %rcx
movq -0x180(%rbp), %rax
cmpq %rcx, %rax
jne 0x32e5e
movq -0x160(%rbp), %rdi
leaq 0x3e61(%rip), %rsi      # 0x36c54
callq 0x42d0
jmp 0x32dfa
jmp 0x32e5e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x3a(%rbp), %rdi
callq 0x4370
jmp 0x33091
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x32e3c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x4210
leaq -0x91(%rbp), %rdi
callq 0x4370
jmp 0x33085
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x33085
movq -0x70(%rbp), %rsi
leaq -0xe8(%rbp), %rdi
movq %rdi, -0x188(%rbp)
callq 0x9b20
movq -0x188(%rbp), %rsi
movl -0x10(%rbp), %eax
movl %eax, -0xf0(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0xf8(%rbp)
movl -0xf0(%rbp), %eax
movl %eax, -0x100(%rbp)
movq -0xf8(%rbp), %rax
movq %rax, -0x108(%rbp)
movq -0x108(%rbp), %rdx
movl -0x100(%rbp), %ecx
leaq -0xd8(%rbp), %rdi
callq 0x31180
jmp 0x32ec5
leaq 0x3d6b(%rip), %rdx      # 0x36c37
leaq -0xb8(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x11a50
jmp 0x32ee1
movq -0x160(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x4410
jmp 0x32ef6
leaq -0xb8(%rbp), %rdi
callq 0x4210
leaq -0xd8(%rbp), %rdi
callq 0x4210
leaq -0xe8(%rbp), %rdi
callq 0x9b50
leaq -0x60(%rbp), %rdi
callq 0x22ab0
jmp 0x32d34
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x32f68
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x32f5c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0x4210
leaq -0xd8(%rbp), %rdi
callq 0x4210
leaq -0xe8(%rbp), %rdi
callq 0x9b50
jmp 0x33085
movl -0x14(%rbp), %eax
addl $-0x4, %eax
movq %rax, -0x198(%rbp)
leaq -0x149(%rbp), %rdi
movq %rdi, -0x190(%rbp)
callq 0x4570
movq -0x198(%rbp), %rsi
movq -0x190(%rbp), %rcx
leaq -0x148(%rbp), %rdi
movl $0x20, %edx
callq 0x34de0
jmp 0x32fba
leaq 0x3cb1(%rip), %rdx      # 0x36c72
leaq -0x128(%rbp), %rdi
leaq -0x148(%rbp), %rsi
callq 0x11a50
jmp 0x32fd6
movq -0x160(%rbp), %rdi
leaq -0x128(%rbp), %rsi
callq 0x4410
jmp 0x32feb
leaq -0x128(%rbp), %rdi
callq 0x4210
leaq -0x148(%rbp), %rdi
callq 0x4210
leaq -0x149(%rbp), %rdi
callq 0x4370
movb $0x1, -0x39(%rbp)
testb $0x1, -0x39(%rbp)
jne 0x33075
jmp 0x33069
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x3305b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x3304f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x128(%rbp), %rdi
callq 0x4210
leaq -0x148(%rbp), %rdi
callq 0x4210
leaq -0x149(%rbp), %rdi
callq 0x4370
jmp 0x33085
movq -0x160(%rbp), %rdi
callq 0x4210
movq -0x168(%rbp), %rax
addq $0x1a0, %rsp            # imm = 0x1A0
popq %rbp
retq
movq -0x160(%rbp), %rdi
callq 0x4210
movq -0x48(%rbp), %rdi
callq 0x4560
nopw (%rax,%rax)