// File: /workspace/github_c_makefile_star2_O0/CheneyThinker[P]jbyte/src/jbyte_analyzer.c
// Function: jbyte_analyzer
int jbyte_analyzer(int argc, char** argv) {
  FILE* pReadFile = fopen(argv[2], "r");
  if (pReadFile != NULL) {
    PRINTF_U4(magic)
    PRINTF_U2(minor_version)
    PRINTF_U2(major_version)
    cp_info cp = { NULL, 0x0000 };
    analyzer_constant_pool(pReadFile, &cp);
    PRINTF_U2(access_flags)
    PRINTF_U2(this_class)
    PRINTF_U2(super_class)
    PRINTF_U2(interfaces_count)
    PRINTF_U2_ARRAY(interfaces_count, interfaces)
    analyzer_fields(pReadFile, cp.constant_pool);
    analyzer_methods(pReadFile, cp.constant_pool);
    analyzer_attributes(pReadFile, cp.constant_pool);
    free_constant_pool(&cp);
  }
  fclose(pReadFile);
  return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movl %edi, -0x4(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x2ddc(%rip), %rsi      # 0xd58a
callq 0x10f0
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0xaaed
movq -0x18(%rbp), %rcx
leaq -0x1c(%rbp), %rdi
movl $0x1, %esi
movl $0x4, %edx
callq 0x1050
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)
movl -0x1c(%rbp), %esi
leaq 0x2cd8(%rip), %rdi      # 0xd4f3
movb $0x0, %al
callq 0x1090
movq -0x18(%rbp), %rcx
leaq -0x1e(%rbp), %rdi
movl $0x1, %esi
movl $0x2, %edx
callq 0x1050
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)
movzwl -0x1e(%rbp), %esi
leaq 0x2c9d(%rip), %rdi      # 0xd500
movb $0x0, %al
callq 0x1090
movq -0x18(%rbp), %rcx
leaq -0x20(%rbp), %rdi
movl $0x1, %esi
movl $0x2, %edx
callq 0x1050
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)
movzwl -0x20(%rbp), %esi
leaq 0x2c6a(%rip), %rdi      # 0xd515
movb $0x0, %al
callq 0x1090
leaq -0x30(%rbp), %rdi
xorl %esi, %esi
movl $0x10, %edx
callq 0x10a0
movq -0x18(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x8dd0
movq -0x18(%rbp), %rcx
leaq -0x32(%rbp), %rdi
movl $0x1, %esi
movl $0x2, %edx
callq 0x1050
movzwl -0x32(%rbp), %eax
shll $0x8, %eax
andl $0xff00, %eax           # imm = 0xFF00
movzwl -0x32(%rbp), %ecx
sarl $0x8, %ecx
andl $0xff, %ecx
orl %ecx, %eax
movw %ax, -0x32(%rbp)
movzwl -0x32(%rbp), %esi
leaq 0x23a3(%rip), %rdi      # 0xccb3
movb $0x0, %al
callq 0x1090
movq -0x18(%rbp), %rcx
leaq -0x34(%rbp), %rdi
movl $0x1, %esi
movl $0x2, %edx
callq 0x1050
movzwl -0x34(%rbp), %eax
shll $0x8, %eax
andl $0xff00, %eax           # imm = 0xFF00
movzwl -0x34(%rbp), %ecx
sarl $0x8, %ecx
andl $0xff, %ecx
orl %ecx, %eax
movw %ax, -0x34(%rbp)
movzwl -0x34(%rbp), %esi
leaq 0x2bd2(%rip), %rdi      # 0xd52a
movb $0x0, %al
callq 0x1090
movq -0x18(%rbp), %rcx
leaq -0x36(%rbp), %rdi
movl $0x1, %esi
movl $0x2, %edx
callq 0x1050
movzwl -0x36(%rbp), %eax
shll $0x8, %eax
andl $0xff00, %eax           # imm = 0xFF00
movzwl -0x36(%rbp), %ecx
sarl $0x8, %ecx
andl $0xff, %ecx
orl %ecx, %eax
movw %ax, -0x36(%rbp)
movzwl -0x36(%rbp), %esi
leaq 0x2b9c(%rip), %rdi      # 0xd53c
movb $0x0, %al
callq 0x1090
movq -0x18(%rbp), %rcx
leaq -0x38(%rbp), %rdi
movl $0x1, %esi
movl $0x2, %edx
callq 0x1050
movzwl -0x38(%rbp), %eax
shll $0x8, %eax
andl $0xff00, %eax           # imm = 0xFF00
movzwl -0x38(%rbp), %ecx
sarl $0x8, %ecx
andl $0xff, %ecx
orl %ecx, %eax
movw %ax, -0x38(%rbp)
movzwl -0x38(%rbp), %esi
leaq 0x2b67(%rip), %rdi      # 0xd54f
movb $0x0, %al
callq 0x1090
movzwl -0x38(%rbp), %eax
cmpl $0x0, %eax
jle 0xaabd
movzwl -0x38(%rbp), %edx
movl %edx, %eax
movq %rsp, %rcx
movq %rcx, -0x40(%rbp)
movl %edx, %ecx
leal 0xf(%rcx,%rcx), %ecx
andl $-0x10, %ecx
movl %ecx, %edx
movq %rsp, %rcx
subq %rdx, %rcx
movq %rcx, -0x58(%rbp)
movq %rcx, %rsp
movq %rax, -0x48(%rbp)
movw $0x0, -0x4a(%rbp)
movzwl -0x4a(%rbp), %eax
movzwl -0x38(%rbp), %ecx
cmpl %ecx, %eax
jge 0xaab6
movq -0x58(%rbp), %rdi
movzwl -0x4a(%rbp), %eax
shlq %rax
addq %rax, %rdi
movq -0x18(%rbp), %rcx
movl $0x1, %esi
movl $0x2, %edx
callq 0x1050
movq -0x58(%rbp), %rax
movzwl -0x4a(%rbp), %ecx
movzwl (%rax,%rcx,2), %ecx
shll $0x8, %ecx
andl $0xff00, %ecx           # imm = 0xFF00
movzwl -0x4a(%rbp), %edx
movzwl (%rax,%rdx,2), %edx
sarl $0x8, %edx
andl $0xff, %edx
orl %edx, %ecx
movw %cx, %dx
movzwl -0x4a(%rbp), %ecx
movw %dx, (%rax,%rcx,2)
movzwl -0x4a(%rbp), %esi
movzwl -0x4a(%rbp), %ecx
movzwl (%rax,%rcx,2), %edx
leaq 0x2ac9(%rip), %rdi      # 0xd567
movb $0x0, %al
callq 0x1090
movw -0x4a(%rbp), %ax
addw $0x1, %ax
movw %ax, -0x4a(%rbp)
jmp 0xaa2b
movq -0x40(%rbp), %rax
movq %rax, %rsp
movq -0x18(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0x99e0
movq -0x18(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0xa610
movq -0x18(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0x1330
leaq -0x30(%rbp), %rdi
callq 0x98c0
movq -0x18(%rbp), %rdi
callq 0x1070
xorl %eax, %eax
movq %rbp, %rsp
popq %rbp
retq
nopl (%rax)