// File: /workspace/github_c_makefile_star2_O0/CheneyThinker[P]jbyte/src/jbyte_generator.c
// Function: jbyte_generator
int jbyte_generator(int argc, char** argv) {
  FILE* pWriteFile = fopen(argv[2], "w+b");
  if (pWriteFile != NULL) {
    PUT_U4(magic, MAGIC)
    PUT_U2(minor_version, 0x0000)
    PUT_U2(major_version, JDK13)
    generator_constant_pool(pWriteFile);
    PUT_U2(access_flags, ACC_PUBLIC | ACC_SUPER)
    PUT_U2(this_class, 0x0012)
    PUT_U2(super_class, 0x0013)
    u2 interfaces_count_value = 0x0000;
    PUT_U2(interfaces_count, interfaces_count_value)
    for (u2 interfaces_count_index = 0; interfaces_count_index < interfaces_count_value; interfaces_count_index++) {
      //PUT_U2(interfaces, )
    }
    generator_fields(pWriteFile);
    generator_methods(pWriteFile);
    generator_attributes(pWriteFile);
  }
  fclose(pWriteFile);
  return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movl %edi, -0x4(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x2a5f(%rip), %rsi      # 0xd57d
callq 0x10f0
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0xad3e
movl $0xcafebabe, -0x1c(%rbp) # imm = 0xCAFEBABE
movl -0x1c(%rbp), %eax
shll $0x18, %eax
andl $0xff000000, %eax       # imm = 0xFF000000
movl -0x1c(%rbp), %ecx
shll $0x8, %ecx
andl $0xff0000, %ecx         # imm = 0xFF0000
orl %ecx, %eax
movl -0x1c(%rbp), %ecx
shrl $0x18, %ecx
andl $0xff, %ecx
orl %ecx, %eax
movl -0x1c(%rbp), %ecx
shrl $0x8, %ecx
andl $0xff00, %ecx           # imm = 0xFF00
orl %ecx, %eax
movl %eax, -0x1c(%rbp)
movq -0x18(%rbp), %rcx
leaq -0x1c(%rbp), %rdi
movl $0x4, %esi
movl $0x1, %edx
callq 0x1100
movw $0x0, -0x1e(%rbp)
movzwl -0x1e(%rbp), %eax
shll $0x8, %eax
andl $0xff00, %eax           # imm = 0xFF00
movzwl -0x1e(%rbp), %ecx
sarl $0x8, %ecx
andl $0xff, %ecx
orl %ecx, %eax
movw %ax, -0x1e(%rbp)
movq -0x18(%rbp), %rcx
leaq -0x1e(%rbp), %rdi
movl $0x2, %esi
movl $0x1, %edx
callq 0x1100
movw $0x39, -0x20(%rbp)
movzwl -0x20(%rbp), %eax
shll $0x8, %eax
andl $0xff00, %eax           # imm = 0xFF00
movzwl -0x20(%rbp), %ecx
sarl $0x8, %ecx
andl $0xff, %ecx
orl %ecx, %eax
movw %ax, -0x20(%rbp)
movq -0x18(%rbp), %rcx
leaq -0x20(%rbp), %rdi
movl $0x2, %esi
movl $0x1, %edx
callq 0x1100
movq -0x18(%rbp), %rdi
callq 0x80c0
movw $0x21, -0x22(%rbp)
movzwl -0x22(%rbp), %eax
shll $0x8, %eax
andl $0xff00, %eax           # imm = 0xFF00
movzwl -0x22(%rbp), %ecx
sarl $0x8, %ecx
andl $0xff, %ecx
orl %ecx, %eax
movw %ax, -0x22(%rbp)
movq -0x18(%rbp), %rcx
leaq -0x22(%rbp), %rdi
movl $0x2, %esi
movl $0x1, %edx
callq 0x1100
movw $0x12, -0x24(%rbp)
movzwl -0x24(%rbp), %eax
shll $0x8, %eax
andl $0xff00, %eax           # imm = 0xFF00
movzwl -0x24(%rbp), %ecx
sarl $0x8, %ecx
andl $0xff, %ecx
orl %ecx, %eax
movw %ax, -0x24(%rbp)
movq -0x18(%rbp), %rcx
leaq -0x24(%rbp), %rdi
movl $0x2, %esi
movl $0x1, %edx
callq 0x1100
movw $0x13, -0x26(%rbp)
movzwl -0x26(%rbp), %eax
shll $0x8, %eax
andl $0xff00, %eax           # imm = 0xFF00
movzwl -0x26(%rbp), %ecx
sarl $0x8, %ecx
andl $0xff, %ecx
orl %ecx, %eax
movw %ax, -0x26(%rbp)
movq -0x18(%rbp), %rcx
leaq -0x26(%rbp), %rdi
movl $0x2, %esi
movl $0x1, %edx
callq 0x1100
movw $0x0, -0x28(%rbp)
movw -0x28(%rbp), %ax
movw %ax, -0x2a(%rbp)
movzwl -0x2a(%rbp), %eax
shll $0x8, %eax
andl $0xff00, %eax           # imm = 0xFF00
movzwl -0x2a(%rbp), %ecx
sarl $0x8, %ecx
andl $0xff, %ecx
orl %ecx, %eax
movw %ax, -0x2a(%rbp)
movq -0x18(%rbp), %rcx
leaq -0x2a(%rbp), %rdi
movl $0x2, %esi
movl $0x1, %edx
callq 0x1100
movw $0x0, -0x2c(%rbp)
movzwl -0x2c(%rbp), %eax
movzwl -0x28(%rbp), %ecx
cmpl %ecx, %eax
jge 0xad23
jmp 0xad15
movw -0x2c(%rbp), %ax
addw $0x1, %ax
movw %ax, -0x2c(%rbp)
jmp 0xad07
movq -0x18(%rbp), %rdi
callq 0x9960
movq -0x18(%rbp), %rdi
callq 0x9b60
movq -0x18(%rbp), %rdi
callq 0x1210
movq -0x18(%rbp), %rdi
callq 0x1070
xorl %eax, %eax
addq $0x30, %rsp
popq %rbp
retq
nop