// File: martinda3[P]Compiler/src/JVM/JVMgenerateProgram.cpp
// Function: toyc::JVMgenerateProgram::gen_main_header(toyc::JVMtargetCode*)
void JVMgenerateProgram::gen_main_header(JVMtargetCode* tc) {
    method *m = new method("main", "V");
    m->addArg("[Ljava/lang/String;");
    m->addAccessSpec("public");
    m->addAccessSpec("static");
    tc->add(m);
  }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x130, %rsp            # imm = 0x130
movq %rdi, -0x8(%rbp)
movl $0x580, %edi            # imm = 0x580
callq 0x9350
movq %rax, -0xf8(%rbp)
movb $0x1, -0x6a(%rbp)
leaq -0x31(%rbp), %rdi
movq %rdi, -0xf0(%rbp)
callq 0x95c0
movq -0xf0(%rbp), %rdx
leaq 0x8198(%rip), %rsi      # 0x348fa
leaq -0x30(%rbp), %rdi
callq 0x13550
jmp 0x2c76d
leaq -0x69(%rbp), %rdi
movq %rdi, -0x100(%rbp)
callq 0x95c0
movq -0x100(%rbp), %rdx
leaq 0x82af(%rip), %rsi      # 0x34a3a
leaq -0x68(%rbp), %rdi
callq 0x13550
jmp 0x2c796
movq -0xf8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x25390
jmp 0x2c7ac
movb $0x0, -0x6a(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x9658
leaq -0x69(%rbp), %rdi
callq 0x93b0
leaq -0x30(%rbp), %rdi
callq 0x9658
leaq -0x31(%rbp), %rdi
callq 0x93b0
movq -0xf8(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x110(%rbp)
leaq -0x91(%rbp), %rdi
movq %rdi, -0x108(%rbp)
callq 0x95c0
movq -0x108(%rbp), %rdx
leaq 0x80f4(%rip), %rsi      # 0x348ff
leaq -0x90(%rbp), %rdi
callq 0x13550
jmp 0x2c819
movq -0x110(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x25600
jmp 0x2c82e
leaq -0x90(%rbp), %rdi
callq 0x9658
leaq -0x91(%rbp), %rdi
callq 0x93b0
movq -0x10(%rbp), %rax
movq %rax, -0x120(%rbp)
leaq -0xb9(%rbp), %rdi
movq %rdi, -0x118(%rbp)
callq 0x95c0
movq -0x118(%rbp), %rdx
leaq 0x8081(%rip), %rsi      # 0x348f3
leaq -0xb8(%rbp), %rdi
callq 0x13550
jmp 0x2c880
movq -0x120(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x255c0
jmp 0x2c895
leaq -0xb8(%rbp), %rdi
callq 0x9658
leaq -0xb9(%rbp), %rdi
callq 0x93b0
movq -0x10(%rbp), %rax
movq %rax, -0x130(%rbp)
leaq -0xe1(%rbp), %rdi
movq %rdi, -0x128(%rbp)
callq 0x95c0
movq -0x128(%rbp), %rdx
leaq 0x803a(%rip), %rsi      # 0x34913
leaq -0xe0(%rbp), %rdi
callq 0x13550
jmp 0x2c8e7
movq -0x130(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x255c0
jmp 0x2c8fc
leaq -0xe0(%rbp), %rdi
callq 0x9658
leaq -0xe1(%rbp), %rdi
callq 0x93b0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq (%rdi), %rax
callq *(%rax)
addq $0x130, %rsp            # imm = 0x130
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2c96d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2c95b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x9658
leaq -0x69(%rbp), %rdi
callq 0x93b0
leaq -0x30(%rbp), %rdi
callq 0x9658
leaq -0x31(%rbp), %rdi
callq 0x93b0
testb $0x1, -0x6a(%rbp)
jne 0x2c97e
jmp 0x2c98f
movq -0xf8(%rbp), %rdi
movl $0x580, %esi            # imm = 0x580
callq 0x9360
jmp 0x2ca2e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2c9ba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x9658
leaq -0x91(%rbp), %rdi
callq 0x93b0
jmp 0x2ca2e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2c9ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0x9658
leaq -0xb9(%rbp), %rdi
callq 0x93b0
jmp 0x2ca2e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2ca22
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xe0(%rbp), %rdi
callq 0x9658
leaq -0xe1(%rbp), %rdi
callq 0x93b0
movq -0x40(%rbp), %rdi
callq 0x95b0
nopw (%rax,%rax)