// File: /workspace/github_c_makefile_star2_O1/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 0x2b2f(%rip), %rsi      # 0x9bfb
callq 0x1100
movq %rax, %rbx
testq %rax, %rax
je 0x7311
leaq -0x44(%rbp), %r14
movl $0x1, %esi
movl $0x4, %edx
movq %r14, %rdi
movq %rbx, %rcx
callq 0x1080
movl (%r14), %esi
bswapl %esi
movl %esi, (%r14)
leaq 0x317c(%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
movw %ax, (%r14)
movzwl %ax, %esi
leaq 0x3153(%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
movw %ax, (%r14)
movzwl %ax, %esi
leaq 0x3132(%rip), %rdi      # 0xa2a3
xorl %eax, %eax
callq 0x10b0
xorps %xmm0, %xmm0
leaq -0x60(%rbp), %rsi
movaps %xmm0, (%rsi)
movq %rbx, %rdi
callq 0x62db
leaq -0x30(%rbp), %r14
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, %esi
leaq 0x245d(%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
movw %ax, (%r14)
movzwl %ax, %esi
leaq 0x30c9(%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
movw %ax, (%r14)
movzwl %ax, %esi
leaq 0x30a5(%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), %r12d
movl %r12d, %eax
rolw $0x8, %ax
movw %ax, (%r14)
movzwl %ax, %r15d
leaq 0x307e(%rip), %rdi      # 0xa2dd
movl %r15d, %esi
xorl %eax, %eax
callq 0x10b0
testw %r12w, %r12w
je 0x72e4
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 0x3055(%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 0x72a3
movq -0x40(%rbp), %rsp
leaq -0x60(%rbp), %r14
movq (%r14), %rsi
movq %rbx, %rdi
callq 0x69d1
movq (%r14), %rsi
movq %rbx, %rdi
callq 0x6f83
movq (%r14), %rsi
movq %rbx, %rdi
callq 0x12b3
movq %r14, %rdi
callq 0x6951
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