// File: /workspace/github_cpp_makefile_star2_O3/tomfunkhouser[P]gaps/pkgs/jpeg/jdmarker.c
// Function: read_markers
METHODDEF(int)
read_markers (j_decompress_ptr cinfo)
{
  /* Outer loop repeats once for each marker. */
  for (;;) {
    /* Collect the marker proper, unless we already did. */
    /* NB: first_marker() enforces the requirement that SOI appear first. */
    if (cinfo->unread_marker == 0) {
      if (! cinfo->marker->saw_SOI) {
	if (! first_marker(cinfo))
	  return JPEG_SUSPENDED;
      } else {
	if (! next_marker(cinfo))
	  return JPEG_SUSPENDED;
      }
    }
    /* At this point cinfo->unread_marker contains the marker code and the
     * input point is just past the marker proper, but before any parameters.
     * A suspension will cause us to return with this state still true.
     */
    switch (cinfo->unread_marker) {
    case M_SOI:
      if (! get_soi(cinfo))
	return JPEG_SUSPENDED;
      break;

    case M_SOF0:		/* Baseline */
    case M_SOF1:		/* Extended sequential, Huffman */
      if (! get_sof(cinfo, FALSE, FALSE))
	return JPEG_SUSPENDED;
      break;

    case M_SOF2:		/* Progressive, Huffman */
      if (! get_sof(cinfo, TRUE, FALSE))
	return JPEG_SUSPENDED;
      break;

    case M_SOF9:		/* Extended sequential, arithmetic */
      if (! get_sof(cinfo, FALSE, TRUE))
	return JPEG_SUSPENDED;
      break;

    case M_SOF10:		/* Progressive, arithmetic */
      if (! get_sof(cinfo, TRUE, TRUE))
	return JPEG_SUSPENDED;
      break;

    /* Currently unsupported SOFn types */
    case M_SOF3:		/* Lossless, Huffman */
    case M_SOF5:		/* Differential sequential, Huffman */
    case M_SOF6:		/* Differential progressive, Huffman */
    case M_SOF7:		/* Differential lossless, Huffman */
    case M_JPG:			/* Reserved for JPEG extensions */
    case M_SOF11:		/* Lossless, arithmetic */
    case M_SOF13:		/* Differential sequential, arithmetic */
    case M_SOF14:		/* Differential progressive, arithmetic */
    case M_SOF15:		/* Differential lossless, arithmetic */
      ERREXIT1(cinfo, JERR_SOF_UNSUPPORTED, cinfo->unread_marker);
      break;

    case M_SOS:
      if (! get_sos(cinfo))
	return JPEG_SUSPENDED;
      cinfo->unread_marker = 0;	/* processed the marker */
      return JPEG_REACHED_SOS;
    
    case M_EOI:
      TRACEMS(cinfo, 1, JTRC_EOI);
      cinfo->unread_marker = 0;	/* processed the marker */
      return JPEG_REACHED_EOI;
      
    case M_DAC:
      if (! get_dac(cinfo))
	return JPEG_SUSPENDED;
      break;
      
    case M_DHT:
      if (! get_dht(cinfo))
	return JPEG_SUSPENDED;
      break;
      
    case M_DQT:
      if (! get_dqt(cinfo))
	return JPEG_SUSPENDED;
      break;
      
    case M_DRI:
      if (! get_dri(cinfo))
	return JPEG_SUSPENDED;
      break;
      
    case M_APP0:
    case M_APP1:
    case M_APP2:
    case M_APP3:
    case M_APP4:
    case M_APP5:
    case M_APP6:
    case M_APP7:
    case M_APP8:
    case M_APP9:
    case M_APP10:
    case M_APP11:
    case M_APP12:
    case M_APP13:
    case M_APP14:
    case M_APP15:
      if (! (*((my_marker_ptr) cinfo->marker)->process_APPn[
		cinfo->unread_marker - (int) M_APP0]) (cinfo))
	return JPEG_SUSPENDED;
      break;
      
    case M_COM:
      if (! (*((my_marker_ptr) cinfo->marker)->process_COM) (cinfo))
	return JPEG_SUSPENDED;
      break;

    case M_RST0:		/* these are all parameterless */
    case M_RST1:
    case M_RST2:
    case M_RST3:
    case M_RST4:
    case M_RST5:
    case M_RST6:
    case M_RST7:
    case M_TEM:
      TRACEMS1(cinfo, 1, JTRC_PARMLESS_MARKER, cinfo->unread_marker);
      break;

    case M_DNL:			/* Ignore DNL ... perhaps the wrong thing */
      if (! skip_variable(cinfo))
	return JPEG_SUSPENDED;
      break;

    default:			/* must be DHP, EXP, JPGn, or RESn */
      /* For now, we treat the reserved markers as fatal errors since they are
       * likely to be used to signal incompatible JPEG Part 3 extensions.
       * Once the JPEG 3 version-number marker is well defined, this code
       * ought to change!
       */
      ERREXIT1(cinfo, JERR_UNKNOWN_MARKER, cinfo->unread_marker);
      break;
    }
    /* Successfully processed marker, so reset state variable */
    cinfo->unread_marker = 0;
  } /* end loop */
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x168, %rsp            # imm = 0x168
movq %rdi, %rbx
leaq 0x108(%rdi), %rax
movq %rax, 0x48(%rsp)
leaq 0xe8(%rdi), %rax
movq %rax, 0x40(%rsp)
leaq 0x140(%rdi), %rax
movq %rax, 0x8(%rsp)
leaq 0x150(%rdi), %rax
movq %rax, 0x58(%rsp)
leaq 0x160(%rdi), %rax
movq %rax, 0x50(%rsp)
movl 0x21c(%rdi), %r14d
leaq 0x2e375(%rip), %r15     # 0xaa854
testl %r14d, %r14d
jne 0x7c5a6
movq 0x248(%rbx), %rax
cmpl $0x0, 0x18(%rax)
je 0x7c511
movq %rbx, %rdi
callq 0x7c27a
testl %eax, %eax
je 0x7d06c
movl 0x21c(%rbx), %r14d
jmp 0x7c5a6
movq 0x28(%rbx), %r15
movq 0x8(%r15), %r12
testq %r12, %r12
jne 0x7c531
movq %rbx, %rdi
callq *0x18(%r15)
testl %eax, %eax
je 0x7d06c
movq 0x8(%r15), %r12
movq (%r15), %r13
movzbl (%r13), %ebp
decq %r12
je 0x7c543
incq %r13
jmp 0x7c559
movq %rbx, %rdi
callq *0x18(%r15)
testl %eax, %eax
je 0x7d06c
movq (%r15), %r13
movq 0x8(%r15), %r12
movb (%r13), %al
movzbl %al, %r14d
movl %ebp, %eax
notb %al
movl %r14d, %ecx
xorb $-0x28, %cl
orb %al, %cl
je 0x7c58b
movq (%rbx), %rax
movl $0x35, 0x28(%rax)
movl %ebp, 0x2c(%rax)
movq (%rbx), %rax
movl %r14d, 0x30(%rax)
movq (%rbx), %rax
movq %rbx, %rdi
callq *(%rax)
decq %r12
incq %r13
movl %r14d, 0x21c(%rbx)
movq %r13, (%r15)
movq %r12, 0x8(%r15)
leaq 0x2e2ae(%rip), %r15     # 0xaa854
leal -0xc0(%r14), %eax
cmpl $0x3e, %eax
ja 0x7c60f
movslq (%r15,%rax,4), %rax
addq %r15, %rax
jmpq *%rax
movq 0x248(%rbx), %rax
addl $0xffffff20, %r14d      # imm = 0xFFFFFF20
movq %rbx, %rdi
callq *0x30(%rax,%r14,8)
testl %eax, %eax
jne 0x7cd39
jmp 0x7d06c
movq (%rbx), %rax
movl $0x3c, 0x28(%rax)
movl %r14d, 0x2c(%rax)
movq (%rbx), %rax
movq %rbx, %rdi
callq *(%rax)
jmp 0x7cd39
xorl %ebp, %ebp
movq %rbx, %rdi
xorl %esi, %esi
jmp 0x7c685
movq %rbx, %rdi
callq 0x7d108
jmp 0x7c5d1
cmpl $0x1, %r14d
jne 0x7c636
movq (%rbx), %rax
movl $0x5c, 0x28(%rax)
movl %r14d, 0x2c(%rax)
movq (%rbx), %rax
movq %rbx, %rdi
movl $0x1, %esi
callq *0x8(%rax)
jmp 0x7cd39
movq (%rbx), %rax
movl $0x44, 0x28(%rax)
jmp 0x7c5e8
movq 0x28(%rbx), %r15
movq 0x8(%r15), %rbp
testq %rbp, %rbp
jne 0x7c662
movq %rbx, %rdi
callq *0x18(%r15)
testl %eax, %eax
je 0x7d06c
movq 0x8(%r15), %rbp
movq (%r15), %r13
movzbl (%r13), %r14d
decq %rbp
je 0x7c7ec
incq %r13
jmp 0x7c802
xorl %ebp, %ebp
movq %rbx, %rdi
movl $0x1, %esi
xorl %edx, %edx
jmp 0x7c6f7
movq 0x28(%rbx), %r14
movq 0x8(%r14), %r15
testq %r15, %r15
jne 0x7c6a9
movq %rbx, %rdi
callq *0x18(%r14)
testl %eax, %eax
je 0x7d06c
movq 0x8(%r14), %r15
movq (%r14), %r12
movzbl (%r12), %r13d
decq %r15
je 0x7ca4b
incq %r12
jmp 0x7ca61
movq 0x248(%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
jmp 0x7c5d1
movq %rbx, %rdi
movl $0x1, %esi
movl $0x1, %edx
callq 0x7d6b2
jmp 0x7c5d1
xorl %ebp, %ebp
movq %rbx, %rdi
xorl %esi, %esi
movl $0x1, %edx
callq 0x7d6b2
testl %eax, %eax
jne 0x7cd39
jmp 0x7d06e
movq (%rbx), %rax
movl $0x66, 0x28(%rax)
movq %rbx, %rdi
movl $0x1, %esi
callq *0x8(%rax)
movq 0x248(%rbx), %rax
cmpl $0x0, 0x18(%rax)
je 0x7c741
movq (%rbx), %rax
movl $0x3d, 0x28(%rax)
movq %rbx, %rdi
callq *(%rax)
movq 0x248(%rbx), %rax
movq 0x8(%rsp), %rcx
xorps %xmm0, %xmm0
movups %xmm0, (%rcx)
movq 0x58(%rsp), %rcx
movaps 0x2d8d8(%rip), %xmm0    # 0xaa030
movups %xmm0, (%rcx)
movq 0x50(%rsp), %rcx
movdqa 0x2d8d8(%rip), %xmm0    # 0xaa040
movdqu %xmm0, (%rcx)
movq $0x0, 0x170(%rbx)
xorl %ecx, %ecx
movl %ecx, 0x3c(%rbx)
movl %ecx, 0x188(%rbx)
movw $0x101, 0x178(%rbx)     # imm = 0x101
movb %cl, 0x17a(%rbx)
movq $0x10001, 0x17c(%rbx) # imm = 0x10001
movb %cl, 0x184(%rbx)
movl $0x1, 0x18(%rax)
jmp 0x7cd39
movq 0x28(%rbx), %r15
movq 0x8(%r15), %r12
testq %r12, %r12
jne 0x7c7ce
movq %rbx, %rdi
callq *0x18(%r15)
testl %eax, %eax
je 0x7d06c
movq 0x8(%r15), %r12
movq (%r15), %r13
movzbl (%r13), %r14d
decq %r12
movq %r15, 0x10(%rsp)
je 0x7ca93
incq %r13
jmp 0x7caa9
movq %rbx, %rdi
callq *0x18(%r15)
testl %eax, %eax
je 0x7d06c
movq (%r15), %r13
movq 0x8(%r15), %rbp
shll $0x8, %r14d
decq %rbp
movzbl (%r13), %eax
incq %r13
movq %r14, %rcx
orq %rax, %rcx
addq %rax, %r14
addq $-0x2, %r14
cmpq $0x13, %rcx
jb 0x7ca2b
movq %r14, 0x18(%rsp)
testq %rbp, %rbp
jne 0x7c848
movq %rbx, %rdi
callq *0x18(%r15)
testl %eax, %eax
je 0x7d06c
movq (%r15), %r13
movq 0x8(%r15), %rbp
movzbl (%r13), %ecx
movq (%rbx), %rax
movl $0x50, 0x28(%rax)
movq %rcx, 0x10(%rsp)
movl %ecx, 0x2c(%rax)
movq (%rbx), %rax
movq %rbx, %rdi
movl $0x1, %esi
callq *0x8(%rax)
movb $0x0, 0x20(%rsp)
incq %r13
decq %rbp
xorl %r12d, %r12d
movl $0x1, %r14d
testq %rbp, %rbp
jne 0x7c89c
movq %rbx, %rdi
callq *0x18(%r15)
testl %eax, %eax
je 0x7d06c
movq (%r15), %r13
movq 0x8(%r15), %rbp
movzbl (%r13), %eax
movb %al, 0x20(%rsp,%r14)
addl %eax, %r12d
incq %r14
incq %r13
decq %rbp
cmpq $0x11, %r14
jne 0x7c881
addq $-0x11, 0x18(%rsp)
movq (%rbx), %rax
movd 0x21(%rsp), %xmm0
pxor %xmm1, %xmm1
punpcklbw %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3],xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]
punpcklwd %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]
movdqu %xmm0, 0x2c(%rax)
movd 0x25(%rsp), %xmm0
punpcklbw %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3],xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]
punpcklwd %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]
movdqu %xmm0, 0x3c(%rax)
movl $0x56, %r14d
movl %r14d, 0x28(%rax)
movq %rbx, %rdi
movl $0x2, %esi
callq *0x8(%rax)
movq (%rbx), %rax
movd 0x29(%rsp), %xmm0
pxor %xmm1, %xmm1
punpcklbw %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3],xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]
punpcklwd %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]
movdqu %xmm0, 0x2c(%rax)
movd 0x2d(%rsp), %xmm0
punpcklbw %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3],xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]
punpcklwd %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]
movdqu %xmm0, 0x3c(%rax)
movl %r14d, 0x28(%rax)
movq %rbx, %rdi
movl $0x2, %esi
callq *0x8(%rax)
movl %r12d, %r14d
cmpl $0x100, %r12d           # imm = 0x100
ja 0x7c94f
cmpq %r14, 0x18(%rsp)
jge 0x7c95e
movq (%rbx), %rax
movl $0x8, 0x28(%rax)
movq %rbx, %rdi
callq *(%rax)
testl %r12d, %r12d
je 0x7c998
xorl %r12d, %r12d
testq %rbp, %rbp
jne 0x7c981
movq %rbx, %rdi
callq *0x18(%r15)
testl %eax, %eax
je 0x7d06c
movq (%r15), %r13
movq 0x8(%r15), %rbp
decq %rbp
movb (%r13), %al
incq %r13
movb %al, 0x60(%rsp,%r12)
incq %r12
cmpq %r12, %r14
jne 0x7c966
movq 0x10(%rsp), %rsi
leal -0x10(%rsi), %eax
testb $0x10, %sil
movq 0x48(%rsp), %rcx
leaq (%rcx,%rax,8), %rcx
movl %esi, %edx
cmovel %esi, %eax
movq 0x40(%rsp), %rsi
leaq (%rsi,%rdx,8), %r12
cmovneq %rcx, %r12
cmpl $0x4, %eax
jl 0x7c9d9
movq (%rbx), %rcx
movl $0x1e, 0x28(%rcx)
movl %eax, 0x2c(%rcx)
movq (%rbx), %rax
movq %rbx, %rdi
callq *(%rax)
movq (%r12), %rax
testq %rax, %rax
jne 0x7c9ee
movq %rbx, %rdi
callq 0x85c7a
movq %rax, (%r12)
movq 0x18(%rsp), %rcx
subq %r14, %rcx
movq %rcx, %r14
movb 0x30(%rsp), %cl
movb %cl, 0x10(%rax)
movdqa 0x20(%rsp), %xmm0
movdqu %xmm0, (%rax)
movq (%r12), %rdi
addq $0x11, %rdi
movl $0x100, %edx            # imm = 0x100
leaq 0x60(%rsp), %rsi
callq 0xe370
cmpq $0x10, %r14
jg 0x7c828
testq %r14, %r14
je 0x7ca3f
movq (%rbx), %rax
movl $0xb, 0x28(%rax)
movq %rbx, %rdi
callq *(%rax)
movq %r13, (%r15)
movq %rbp, 0x8(%r15)
jmp 0x7cd32
movq %rbx, %rdi
callq *0x18(%r14)
testl %eax, %eax
je 0x7d06c
movq (%r14), %r12
movq 0x8(%r14), %r15
shll $0x8, %r13d
movzbl (%r12), %eax
orl %eax, %r13d
cmpl $0x4, %r13d
je 0x7ca82
movq (%rbx), %rax
movl $0xb, 0x28(%rax)
movq %rbx, %rdi
callq *(%rax)
decq %r15
je 0x7ccbc
incq %r12
jmp 0x7ccd2
movq %rbx, %rdi
callq *0x18(%r15)
testl %eax, %eax
je 0x7d06c
movq (%r15), %r13
movq 0x8(%r15), %r12
shll $0x8, %r14d
decq %r12
movzbl (%r13), %eax
incq %r13
movq %r14, %rcx
orq %rax, %rcx
leaq (%r14,%rax), %r15
addq $-0x2, %r15
cmpq $0x3, %rcx
jb 0x7cc9a
testq %r12, %r12
jne 0x7caf0
movq %rbx, %rdi
movq 0x10(%rsp), %r14
callq *0x18(%r14)
testl %eax, %eax
je 0x7d06c
movq (%r14), %r13
movq 0x8(%r14), %r12
movq %r15, 0x38(%rsp)
movzbl (%r13), %r14d
movl %r14d, %eax
shrl $0x4, %eax
movq %r14, 0x18(%rsp)
andl $0xf, %r14d
movq (%rbx), %rcx
movl $0x51, 0x28(%rcx)
movl %r14d, 0x2c(%rcx)
movq (%rbx), %rcx
movl %eax, 0x30(%rcx)
movq (%rbx), %rax
movq %rbx, %rdi
movl $0x1, %esi
callq *0x8(%rax)
cmpl $0x4, %r14d
jb 0x7cb47
movq (%rbx), %rax
movl $0x1f, 0x28(%rax)
movl %r14d, 0x2c(%rax)
movq (%rbx), %rax
movq %rbx, %rdi
callq *(%rax)
movq 0xc8(%rbx,%r14,8), %r15
testq %r15, %r15
jne 0x7cb67
movq %rbx, %rdi
callq 0x85c60
movq %rax, %r15
movq %rax, 0xc8(%rbx,%r14,8)
decq %r12
incq %r13
xorl %r14d, %r14d
cmpb $0x10, 0x18(%rsp)
jae 0x7cba1
testq %r12, %r12
jne 0x7cb9a
movq %rbx, %rdi
movq 0x10(%rsp), %r12
callq *0x18(%r12)
testl %eax, %eax
je 0x7d06c
movq (%r12), %r13
movq 0x8(%r12), %r12
movzbl (%r13), %ebp
jmp 0x7cbfb
testq %r12, %r12
jne 0x7cbc4
movq %rbx, %rdi
movq 0x10(%rsp), %r12
callq *0x18(%r12)
testl %eax, %eax
je 0x7d06c
movq (%r12), %r13
movq 0x8(%r12), %r12
movzbl (%r13), %ebp
decq %r12
je 0x7cbd3
incq %r13
jmp 0x7cbf1
movq %rbx, %rdi
movq 0x10(%rsp), %r12
callq *0x18(%r12)
testl %eax, %eax
je 0x7d06c
movq (%r12), %r13
movq 0x8(%r12), %r12
shll $0x8, %ebp
movzbl (%r13), %eax
orl %eax, %ebp
leaq 0x2e0be(%rip), %rax     # 0xaacc0
movslq (%rax,%r14,4), %rax
movw %bp, (%r15,%rax,2)
incq %r14
decq %r12
incq %r13
cmpq $0x40, %r14
jne 0x7cb70
movq (%rbx), %rax
cmpl $0x2, 0x7c(%rax)
pxor %xmm1, %xmm1
jl 0x7cc75
movq $-0x8, %r14
movq (%rbx), %rax
movq 0x10(%r15,%r14,2), %xmm0
punpcklwd %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]
movdqu %xmm0, 0x2c(%rax)
movq 0x18(%r15,%r14,2), %xmm0
punpcklwd %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]
movdqu %xmm0, 0x3c(%rax)
movl $0x5d, 0x28(%rax)
movq %rbx, %rdi
movl $0x2, %esi
callq *0x8(%rax)
pxor %xmm1, %xmm1
addq $0x8, %r14
cmpq $0x38, %r14
jb 0x7cc32
xorl %eax, %eax
cmpb $0x10, 0x18(%rsp)
setb %al
shll $0x6, %eax
movq 0x38(%rsp), %r15
addq %rax, %r15
addq $-0x81, %r15
testq %r15, %r15
jg 0x7cad0
testq %r15, %r15
je 0x7ccae
movq (%rbx), %rax
movl $0xb, 0x28(%rax)
movq %rbx, %rdi
callq *(%rax)
movq 0x10(%rsp), %rax
movq %r13, (%rax)
movq %r12, 0x8(%rax)
jmp 0x7cd32
movq %rbx, %rdi
callq *0x18(%r14)
testl %eax, %eax
je 0x7d06c
movq (%r14), %r12
movq 0x8(%r14), %r15
movzbl (%r12), %ebp
decq %r15
je 0x7cce1
incq %r12
jmp 0x7ccf7
movq %rbx, %rdi
callq *0x18(%r14)
testl %eax, %eax
je 0x7d06c
movq (%r14), %r12
movq 0x8(%r14), %r15
shll $0x8, %ebp
decq %r15
movzbl (%r12), %r13d
incq %r12
orl %ebp, %r13d
movq (%rbx), %rax
movl $0x52, 0x28(%rax)
movl %r13d, 0x2c(%rax)
movq (%rbx), %rax
movq %rbx, %rdi
movl $0x1, %esi
callq *0x8(%rax)
movl %r13d, 0x170(%rbx)
movq %r12, (%r14)
movq %r15, 0x8(%r14)
leaq 0x2db1b(%rip), %r15     # 0xaa854
movl $0x0, 0x21c(%rbx)
xorl %r14d, %r14d
jmp 0x7c4df
movq (%rbx), %rax
movl $0x55, 0x28(%rax)
movq %rbx, %rdi
movl $0x1, %esi
callq *0x8(%rax)
movl $0x0, 0x21c(%rbx)
movl $0x2, %ebp
jmp 0x7d06e
movq 0x28(%rbx), %rax
movq (%rax), %r15
movq %rax, 0x8(%rsp)
movq 0x8(%rax), %r12
movq 0x248(%rbx), %rax
cmpl $0x0, 0x1c(%rax)
jne 0x7cda0
movq (%rbx), %rax
movl $0x3e, 0x28(%rax)
movq %rbx, %rdi
callq *(%rax)
testq %r12, %r12
jne 0x7cdc0
movq %rbx, %rdi
movq 0x8(%rsp), %r14
callq *0x18(%r14)
testl %eax, %eax
je 0x7d06c
movq (%r14), %r15
movq 0x8(%r14), %r12
movzbl (%r15), %r13d
decq %r12
je 0x7cdce
incq %r15
jmp 0x7cde9
movq %rbx, %rdi
movq 0x8(%rsp), %r14
callq *0x18(%r14)
testl %eax, %eax
je 0x7d06c
movq (%r14), %r15
movq 0x8(%r14), %r12
movzbl (%r15), %r14d
decq %r12
je 0x7cdf7
incq %r15
jmp 0x7ce15
movq %rbx, %rdi
movq 0x8(%rsp), %r15
callq *0x18(%r15)
testl %eax, %eax
je 0x7d06c
movq (%r15), %rax
movq 0x8(%r15), %r12
movq %rax, %r15
shll $0x8, %r13d
orq %r13, %r14
movzbl (%r15), %r13d
movq (%rbx), %rax
movl $0x67, 0x28(%rax)
movl %r13d, 0x2c(%rax)
movq (%rbx), %rax
movq %rbx, %rdi
movl $0x1, %esi
callq *0x8(%rax)
leal 0x6(,%r13,2), %eax
cmpl %eax, %r14d
jne 0x7ce60
leal -0x5(%r13), %eax
cmpb $-0x4, %al
jb 0x7ce60
movl %r13d, 0x1b0(%rbx)
incq %r15
decq %r12
jmp 0x7ce85
movq (%rbx), %rax
movl $0xb, 0x28(%rax)
movq %rbx, %rdi
callq *(%rax)
movl %r13d, 0x1b0(%rbx)
incq %r15
decq %r12
testl %r13d, %r13d
je 0x7cf6c
xorl %ebp, %ebp
movq %r13, 0x10(%rsp)
testq %r12, %r12
jne 0x7ceac
movq %rbx, %rdi
movq 0x8(%rsp), %r14
callq *0x18(%r14)
testl %eax, %eax
je 0x7d06c
movq (%r14), %r15
movq 0x8(%r14), %r12
movzbl (%r15), %r13d
decq %r12
je 0x7ceba
incq %r15
jmp 0x7ced5
movq %rbx, %rdi
movq 0x8(%rsp), %r14
callq *0x18(%r14)
testl %eax, %eax
je 0x7d06c
movq (%r14), %r15
movq 0x8(%r14), %r12
movq %r15, 0x18(%rsp)
movzbl (%r15), %r15d
movq 0x130(%rbx), %r14
movl 0x38(%rbx), %eax
testl %eax, %eax
jle 0x7cef9
cmpl %r13d, (%r14)
je 0x7cf0f
addq $0x60, %r14
decl %eax
jne 0x7ceec
movq (%rbx), %rax
movl $0x5, 0x28(%rax)
movl %r13d, 0x2c(%rax)
movq (%rbx), %rax
movq %rbx, %rdi
callq *(%rax)
movq %r14, 0x1b8(%rbx,%rbp,8)
movl %r15d, %eax
shrl $0x4, %eax
movl %eax, 0x14(%r14)
andl $0xf, %r15d
movl %r15d, 0x18(%r14)
movq (%rbx), %rax
movl %r13d, 0x2c(%rax)
movl 0x14(%r14), %ecx
movl %ecx, 0x30(%rax)
movl 0x18(%r14), %ecx
movl %ecx, 0x34(%rax)
movl $0x68, 0x28(%rax)
movq %rbx, %rdi
movl $0x1, %esi
callq *0x8(%rax)
incq %rbp
movq 0x18(%rsp), %r15
incq %r15
decq %r12
movq 0x10(%rsp), %r13
cmpq %r13, %rbp
jne 0x7ce8c
testq %r12, %r12
jne 0x7cf8c
movq %rbx, %rdi
movq 0x8(%rsp), %r14
callq *0x18(%r14)
testl %eax, %eax
je 0x7d06c
movq (%r14), %r15
movq 0x8(%r14), %r12
movzbl (%r15), %eax
movl %eax, 0x20c(%rbx)
decq %r12
je 0x7cfa0
incq %r15
jmp 0x7cfbb
movq %rbx, %rdi
movq 0x8(%rsp), %r14
callq *0x18(%r14)
testl %eax, %eax
je 0x7d06c
movq (%r14), %r15
movq 0x8(%r14), %r12
movzbl (%r15), %eax
movl %eax, 0x210(%rbx)
decq %r12
je 0x7cfcf
incq %r15
jmp 0x7cfea
movq %rbx, %rdi
movq 0x8(%rsp), %r14
callq *0x18(%r14)
testl %eax, %eax
je 0x7d06c
movq (%r14), %r15
movq 0x8(%r14), %r12
decq %r12
movzbl (%r15), %eax
incq %r15
movl %eax, %ecx
shrl $0x4, %ecx
movl %ecx, 0x214(%rbx)
andl $0xf, %eax
movl %eax, 0x218(%rbx)
movq (%rbx), %rax
movl 0x20c(%rbx), %ecx
movl %ecx, 0x2c(%rax)
movl 0x210(%rbx), %ecx
movl %ecx, 0x30(%rax)
movl 0x214(%rbx), %ecx
movl %ecx, 0x34(%rax)
movl 0x218(%rbx), %ecx
movl %ecx, 0x38(%rax)
movl $0x69, 0x28(%rax)
movl $0x1, %ebp
movq %rbx, %rdi
movl $0x1, %esi
callq *0x8(%rax)
movq 0x248(%rbx), %rax
xorl %ecx, %ecx
movl %ecx, 0x20(%rax)
incl 0xac(%rbx)
movq 0x8(%rsp), %rax
movq %r15, (%rax)
movq %r12, 0x8(%rax)
movl %ecx, 0x21c(%rbx)
jmp 0x7d06e
xorl %ebp, %ebp
movl %ebp, %eax
addq $0x168, %rsp            # imm = 0x168
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq