// File: martinda3[P]Compiler/src/JVM/JVMgenerateProgram.cpp
// Function: toyc::JVMgenerateProgram::gen_intro_comments(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, toyc::JVMtargetCode*)
void JVMgenerateProgram::gen_intro_comments(std::string s, std::string t, JVMtargetCode *tc) {
    tc->add(new blankComment());
    tc->add(new sourceFileComment(s));
    tc->add(new targetFileComment(t));
    tc->add(new timeAndSourceComment());
    tc->add(new blankComment());
  }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x100, %rsp            # imm = 0x100
movq %rdi, -0x98(%rbp)
movq %rsi, -0x90(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x88(%rbp)
movl $0x10, %edi
callq 0x9350
movq %rax, %rdi
movq %rdi, -0x80(%rbp)
xorl %esi, %esi
movl $0x10, %edx
callq 0x91d0
movq -0x80(%rbp), %rdi
callq 0x2d3e0
movq -0x80(%rbp), %rcx
xorl %eax, %eax
cmpq $0x0, %rcx
movq %rax, -0x78(%rbp)
je 0x2c122
movq -0x80(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x78(%rbp)
movq -0x88(%rbp), %rdi
movq -0x78(%rbp), %rsi
movq (%rdi), %rax
movq (%rax), %rax
callq *%rax
movq -0x18(%rbp), %rax
movq %rax, -0xa8(%rbp)
movl $0x30, %edi
callq 0x9350
movq -0x98(%rbp), %rsi
movq %rax, -0xa0(%rbp)
movb $0x1, -0x45(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x9170
jmp 0x2c167
movq -0xa0(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x21090
jmp 0x2c179
movq -0xa0(%rbp), %rcx
movb $0x0, -0x45(%rbp)
xorl %eax, %eax
cmpq $0x0, %rcx
movq %rax, -0xb0(%rbp)
je 0x2c1a5
movq -0xa0(%rbp), %rax
addq $0x8, %rax
movq %rax, -0xb0(%rbp)
movq -0xa8(%rbp), %rdi
movq -0xb0(%rbp), %rsi
movq (%rdi), %rax
movq (%rax), %rax
callq *%rax
jmp 0x2c1bd
leaq -0x38(%rbp), %rdi
callq 0x9658
movq -0x18(%rbp), %rax
movq %rax, -0xc0(%rbp)
movl $0x30, %edi
callq 0x9350
movq -0x90(%rbp), %rsi
movq %rax, -0xb8(%rbp)
movb $0x1, -0x69(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x9170
jmp 0x2c1f8
movq -0xb8(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x20d90
jmp 0x2c20a
movq -0xb8(%rbp), %rcx
movb $0x0, -0x69(%rbp)
xorl %eax, %eax
cmpq $0x0, %rcx
movq %rax, -0xc8(%rbp)
je 0x2c236
movq -0xb8(%rbp), %rax
addq $0x8, %rax
movq %rax, -0xc8(%rbp)
movq -0xc0(%rbp), %rdi
movq -0xc8(%rbp), %rsi
movq (%rdi), %rax
movq (%rax), %rax
callq *%rax
jmp 0x2c24e
leaq -0x68(%rbp), %rdi
callq 0x9658
movq -0x18(%rbp), %rax
movq %rax, -0xd8(%rbp)
movl $0x30, %edi
callq 0x9350
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xd0(%rbp)
callq 0x20b00
jmp 0x2c280
movq -0xd0(%rbp), %rcx
xorl %eax, %eax
cmpq $0x0, %rcx
movq %rax, -0xe0(%rbp)
je 0x2c2a8
movq -0xd0(%rbp), %rax
addq $0x8, %rax
movq %rax, -0xe0(%rbp)
movq -0xd8(%rbp), %rdi
movq -0xe0(%rbp), %rsi
movq (%rdi), %rax
callq *(%rax)
movq -0x18(%rbp), %rax
movq %rax, -0xf8(%rbp)
movl $0x10, %edi
callq 0x9350
movq %rax, %rdi
movq %rdi, -0xf0(%rbp)
xorl %esi, %esi
movl $0x10, %edx
callq 0x91d0
movq -0xf0(%rbp), %rdi
callq 0x2d3e0
movq -0xf0(%rbp), %rcx
xorl %eax, %eax
cmpq $0x0, %rcx
movq %rax, -0xe8(%rbp)
je 0x2c31a
movq -0xf0(%rbp), %rax
addq $0x8, %rax
movq %rax, -0xe8(%rbp)
movq -0xf8(%rbp), %rdi
movq -0xe8(%rbp), %rsi
movq (%rdi), %rax
callq *(%rax)
addq $0x100, %rsp            # imm = 0x100
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2c359
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x9658
testb $0x1, -0x45(%rbp)
jne 0x2c361
jmp 0x2c372
movq -0xa0(%rbp), %rdi
movl $0x30, %esi
callq 0x9360
jmp 0x2c3cf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2c397
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x9658
testb $0x1, -0x69(%rbp)
jne 0x2c39f
jmp 0x2c3b0
movq -0xb8(%rbp), %rdi
movl $0x30, %esi
callq 0x9360
jmp 0x2c3cf
movq -0xd0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
movl $0x30, %esi
callq 0x9360
movq -0x40(%rbp), %rdi
callq 0x95b0
nopl (%rax,%rax)