// File: /workspace/github_c_makefile_star2_O2/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq 0x10(%rsi), %rdi
leaq 0x21db(%rip), %rsi      # 0x8bfb
callq 0x1100
movq %rax, %r13
testq %rax, %rax
je 0x6c1a
leaq -0x44(%rbp), %rbx
pushq $0x1
popq %r14
pushq $0x4
popq %rdx
movq %rbx, %rdi
movq %r14, %rsi
movq %r13, %rcx
callq 0x1080
movl (%rbx), %esi
bswapl %esi
leaq 0x282c(%rip), %rdi      # 0x9281
xorl %eax, %eax
callq 0x10b0
leaq -0x34(%rbp), %rbx
pushq $0x2
popq %r15
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %r13, %rcx
callq 0x1080
movzwl (%rbx), %eax
rolw $0x8, %ax
movzwl %ax, %esi
leaq 0x2808(%rip), %rdi      # 0x928e
xorl %eax, %eax
callq 0x10b0
leaq -0x32(%rbp), %rbx
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %r13, %rcx
callq 0x1080
movzwl (%rbx), %eax
rolw $0x8, %ax
movzwl %ax, %esi
leaq 0x27f0(%rip), %rdi      # 0x92a3
xorl %eax, %eax
callq 0x10b0
xorps %xmm0, %xmm0
leaq -0x60(%rbp), %rsi
movaps %xmm0, (%rsi)
movq %r13, %rdi
callq 0x5d69
leaq -0x30(%rbp), %rbx
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %r13, %rcx
callq 0x1080
movzwl (%rbx), %eax
rolw $0x8, %ax
movzwl %ax, %esi
leaq 0x1b24(%rip), %rdi      # 0x8616
xorl %eax, %eax
callq 0x10b0
leaq -0x2e(%rbp), %rbx
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %r13, %rcx
callq 0x1080
movzwl (%rbx), %eax
rolw $0x8, %ax
movzwl %ax, %esi
leaq 0x2799(%rip), %rdi      # 0x92b8
xorl %eax, %eax
callq 0x10b0
leaq -0x2c(%rbp), %rbx
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %r13, %rcx
callq 0x1080
movzwl (%rbx), %eax
rolw $0x8, %ax
movzwl %ax, %esi
leaq 0x277e(%rip), %rdi      # 0x92ca
xorl %eax, %eax
callq 0x10b0
leaq -0x2a(%rbp), %rbx
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %r13, %rcx
callq 0x1080
movzwl (%rbx), %ebx
movl %ebx, %eax
rolw $0x8, %ax
movzwl %ax, %r14d
leaq 0x2761(%rip), %rdi      # 0x92dd
movl %r14d, %esi
xorl %eax, %eax
callq 0x10b0
testw %bx, %bx
je 0x6bed
movq %rsp, -0x40(%rbp)
leal 0xf(,%r14,2), %eax
andl $-0x10, %eax
movq %rsp, %r15
subq %rax, %r15
movq %r15, %rsp
leaq 0x274b(%rip), %rbx      # 0x92f5
xorl %r12d, %r12d
subq $0x1, %r14
jb 0x6be9
movq %r15, %rdi
pushq $0x1
popq %rsi
pushq $0x2
popq %rdx
movq %r13, %rcx
callq 0x1080
movzwl (%r15), %eax
rolw $0x8, %ax
movw %ax, (%r15)
movzwl %ax, %edx
movq %rbx, %rdi
movl %r12d, %esi
xorl %eax, %eax
callq 0x10b0
addq $0x2, %r15
incl %r12d
jmp 0x6bad
movq -0x40(%rbp), %rsp
leaq -0x60(%rbp), %rbx
movq (%rbx), %rsi
movq %r13, %rdi
callq 0x63c4
movq (%rbx), %rsi
movq %r13, %rdi
callq 0x6900
movq (%rbx), %rsi
movq %r13, %rdi
callq 0x12b3
movq %rbx, %rdi
callq 0x6358
movq %r13, %rdi
callq 0x1090
xorl %eax, %eax
leaq -0x28(%rbp), %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop