// File: /workspace/github_c_makefile_star2_O3/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 0x2b8b(%rip), %rsi      # 0x9bfb
callq 0x1100
movq %rax, %rbx
testq %rax, %rax
je 0x729a
leaq -0x44(%rbp), %r14
movl $0x1, %esi
movl $0x4, %edx
movq %r14, %rdi
movq %rbx, %rcx
callq 0x1080
movl (%r14), %esi
bswapl %esi
leaq 0x31db(%rip), %rdi      # 0xa281
xorl %eax, %eax
callq 0x10b0
leaq -0x34(%rbp), %r14
movl $0x1, %esi
movl $0x2, %edx
movq %r14, %rdi
movq %rbx, %rcx
callq 0x1080
movzwl (%r14), %eax
rolw $0x8, %ax
movzwl %ax, %esi
leaq 0x31b6(%rip), %rdi      # 0xa28e
xorl %eax, %eax
callq 0x10b0
leaq -0x32(%rbp), %r14
movl $0x1, %esi
movl $0x2, %edx
movq %r14, %rdi
movq %rbx, %rcx
callq 0x1080
movzwl (%r14), %eax
rolw $0x8, %ax
movzwl %ax, %esi
leaq 0x3199(%rip), %rdi      # 0xa2a3
xorl %eax, %eax
callq 0x10b0
xorps %xmm0, %xmm0
leaq -0x60(%rbp), %rsi
movaps %xmm0, (%rsi)
movq %rbx, %rdi
callq 0x62d7
leaq -0x30(%rbp), %r14
movl $0x1, %esi
movl $0x2, %edx
movq %r14, %rdi
movq %rbx, %rcx
callq 0x1080
movzwl (%r14), %eax
rolw $0x8, %ax
movzwl %ax, %esi
leaq 0x24c8(%rip), %rdi      # 0x9616
xorl %eax, %eax
callq 0x10b0
leaq -0x2e(%rbp), %r14
movl $0x1, %esi
movl $0x2, %edx
movq %r14, %rdi
movq %rbx, %rcx
callq 0x1080
movzwl (%r14), %eax
rolw $0x8, %ax
movzwl %ax, %esi
leaq 0x3138(%rip), %rdi      # 0xa2b8
xorl %eax, %eax
callq 0x10b0
leaq -0x2c(%rbp), %r14
movl $0x1, %esi
movl $0x2, %edx
movq %r14, %rdi
movq %rbx, %rcx
callq 0x1080
movzwl (%r14), %eax
rolw $0x8, %ax
movzwl %ax, %esi
leaq 0x3118(%rip), %rdi      # 0xa2ca
xorl %eax, %eax
callq 0x10b0
leaq -0x2a(%rbp), %r14
movl $0x1, %esi
movl $0x2, %edx
movq %r14, %rdi
movq %rbx, %rcx
callq 0x1080
movzwl (%r14), %r14d
movl %r14d, %eax
rolw $0x8, %ax
movzwl %ax, %r15d
leaq 0x30f5(%rip), %rdi      # 0xa2dd
movl %r15d, %esi
xorl %eax, %eax
callq 0x10b0
testw %r14w, %r14w
je 0x726d
movq %rsp, -0x40(%rbp)
leal 0xf(,%r15,2), %eax
andl $-0x10, %eax
movq %rsp, %r14
subq %rax, %r14
movq %r14, %rsp
cmpw $0x2, %r15w
movl $0x1, %eax
cmovael %r15d, %eax
movzwl %ax, %r13d
leaq 0x30cc(%rip), %r15      # 0xa2f5
xorl %r12d, %r12d
movl $0x1, %esi
movl $0x2, %edx
movq %r14, %rdi
movq %rbx, %rcx
callq 0x1080
movzwl (%r14), %eax
rolw $0x8, %ax
movw %ax, (%r14)
movzwl %ax, %edx
movq %r15, %rdi
movl %r12d, %esi
xorl %eax, %eax
callq 0x10b0
incl %r12d
addq $0x2, %r14
decq %r13
jne 0x722c
movq -0x40(%rbp), %rsp
leaq -0x60(%rbp), %r14
movq (%r14), %rsi
movq %rbx, %rdi
callq 0x6995
movq (%r14), %rsi
movq %rbx, %rdi
callq 0x6f37
movq (%r14), %rsi
movq %rbx, %rdi
callq 0x12b3
movq %r14, %rdi
callq 0x690f
movq %rbx, %rdi
callq 0x1090
xorl %eax, %eax
leaq -0x28(%rbp), %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop