// File: alan0201tw[P]RayTracer/include/stb_image.h
// Function: stbi__process_frame_header(stbi__jpeg*, int)
static int stbi__process_frame_header(stbi__jpeg *z, int scan)
{
   stbi__context *s = z->s;
   int Lf,p,i,q, h_max=1,v_max=1,c;
   Lf = stbi__get16be(s);         if (Lf < 11) return stbi__err("bad SOF len","Corrupt JPEG"); // JPEG
   p  = stbi__get8(s);            if (p != 8) return stbi__err("only 8-bit","JPEG format not supported: 8-bit only"); // JPEG baseline
   s->img_y = stbi__get16be(s);   if (s->img_y == 0) return stbi__err("no header height", "JPEG format not supported: delayed height"); // Legal, but we don't handle it--but neither does IJG
   s->img_x = stbi__get16be(s);   if (s->img_x == 0) return stbi__err("0 width","Corrupt JPEG"); // JPEG requires
   c = stbi__get8(s);
   if (c != 3 && c != 1 && c != 4) return stbi__err("bad component count","Corrupt JPEG");
   s->img_n = c;
   for (i=0; i < c; ++i) {
      z->img_comp[i].data = NULL;
      z->img_comp[i].linebuf = NULL;
   }

   if (Lf != 8+3*s->img_n) return stbi__err("bad SOF len","Corrupt JPEG");

   z->rgb = 0;
   for (i=0; i < s->img_n; ++i) {
      static const unsigned char rgb[3] = { 'R', 'G', 'B' };
      z->img_comp[i].id = stbi__get8(s);
      if (s->img_n == 3 && z->img_comp[i].id == rgb[i])
         ++z->rgb;
      q = stbi__get8(s);
      z->img_comp[i].h = (q >> 4);  if (!z->img_comp[i].h || z->img_comp[i].h > 4) return stbi__err("bad H","Corrupt JPEG");
      z->img_comp[i].v = q & 15;    if (!z->img_comp[i].v || z->img_comp[i].v > 4) return stbi__err("bad V","Corrupt JPEG");
      z->img_comp[i].tq = stbi__get8(s);  if (z->img_comp[i].tq > 3) return stbi__err("bad TQ","Corrupt JPEG");
   }

   if (scan != STBI__SCAN_load) return 1;

   if (!stbi__mad3sizes_valid(s->img_x, s->img_y, s->img_n, 0)) return stbi__err("too large", "Image too large to decode");

   for (i=0; i < s->img_n; ++i) {
      if (z->img_comp[i].h > h_max) h_max = z->img_comp[i].h;
      if (z->img_comp[i].v > v_max) v_max = z->img_comp[i].v;
   }

   // compute interleaved mcu info
   z->img_h_max = h_max;
   z->img_v_max = v_max;
   z->img_mcu_w = h_max * 8;
   z->img_mcu_h = v_max * 8;
   // these sizes can't be more than 17 bits
   z->img_mcu_x = (s->img_x + z->img_mcu_w-1) / z->img_mcu_w;
   z->img_mcu_y = (s->img_y + z->img_mcu_h-1) / z->img_mcu_h;

   for (i=0; i < s->img_n; ++i) {
      // number of effective pixels (e.g. for non-interleaved MCU)
      z->img_comp[i].x = (s->img_x * z->img_comp[i].h + h_max-1) / h_max;
      z->img_comp[i].y = (s->img_y * z->img_comp[i].v + v_max-1) / v_max;
      // to simplify generation, we'll allocate enough memory to decode
      // the bogus oversized data from using interleaved MCUs and their
      // big blocks (e.g. a 16x16 iMCU on an image of width 33); we won't
      // discard the extra data until colorspace conversion
      //
      // img_mcu_x, img_mcu_y: <=17 bits; comp[i].h and .v are <=4 (checked earlier)
      // so these muls can't overflow with 32-bit ints (which we require)
      z->img_comp[i].w2 = z->img_mcu_x * z->img_comp[i].h * 8;
      z->img_comp[i].h2 = z->img_mcu_y * z->img_comp[i].v * 8;
      z->img_comp[i].coeff = 0;
      z->img_comp[i].raw_coeff = 0;
      z->img_comp[i].linebuf = NULL;
      z->img_comp[i].raw_data = stbi__malloc_mad2(z->img_comp[i].w2, z->img_comp[i].h2, 15);
      if (z->img_comp[i].raw_data == NULL)
         return stbi__free_jpeg_components(z, i+1, stbi__err("outofmem", "Out of memory"));
      // align blocks for idct using mmx/sse
      z->img_comp[i].data = (stbi_uc*) (((size_t) z->img_comp[i].raw_data + 15) & ~15);
      if (z->progressive) {
         // w2, h2 are multiples of 8 (see above)
         z->img_comp[i].coeff_w = z->img_comp[i].w2 / 8;
         z->img_comp[i].coeff_h = z->img_comp[i].h2 / 8;
         z->img_comp[i].raw_coeff = stbi__malloc_mad3(z->img_comp[i].w2, z->img_comp[i].h2, sizeof(short), 15);
         if (z->img_comp[i].raw_coeff == NULL)
            return stbi__free_jpeg_components(z, i+1, stbi__err("outofmem", "Out of memory"));
         z->img_comp[i].coeff = (short*) (((size_t) z->img_comp[i].raw_coeff + 15) & ~15);
      }
   }

   return 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
movl $0x1, -0x34(%rbp)
movl $0x1, -0x38(%rbp)
movq -0x20(%rbp), %rdi
callq 0x65e40
movl %eax, -0x24(%rbp)
cmpl $0xb, -0x24(%rbp)
jge 0x6549e
leaq 0x1bc10(%rip), %rdi     # 0x810a1
callq 0x56040
movl %eax, -0x4(%rbp)
jmp 0x65cee
movq -0x20(%rbp), %rdi
callq 0x65d00
movzbl %al, %eax
movl %eax, -0x28(%rbp)
cmpl $0x8, -0x28(%rbp)
je 0x654c7
leaq 0x1bbf3(%rip), %rdi     # 0x810ad
callq 0x56040
movl %eax, -0x4(%rbp)
jmp 0x65cee
movq -0x20(%rbp), %rdi
callq 0x65e40
movl %eax, %ecx
movq -0x20(%rbp), %rax
movl %ecx, 0x4(%rax)
movq -0x20(%rbp), %rax
cmpl $0x0, 0x4(%rax)
jne 0x654f7
leaq 0x1bbce(%rip), %rdi     # 0x810b8
callq 0x56040
movl %eax, -0x4(%rbp)
jmp 0x65cee
movq -0x20(%rbp), %rdi
callq 0x65e40
movl %eax, %ecx
movq -0x20(%rbp), %rax
movl %ecx, (%rax)
movq -0x20(%rbp), %rax
cmpl $0x0, (%rax)
jne 0x65525
leaq 0x1bbb1(%rip), %rdi     # 0x810c9
callq 0x56040
movl %eax, -0x4(%rbp)
jmp 0x65cee
movq -0x20(%rbp), %rdi
callq 0x65d00
movzbl %al, %eax
movl %eax, -0x3c(%rbp)
cmpl $0x3, -0x3c(%rbp)
je 0x6555a
cmpl $0x1, -0x3c(%rbp)
je 0x6555a
cmpl $0x4, -0x3c(%rbp)
je 0x6555a
leaq 0x1bb84(%rip), %rdi     # 0x810d1
callq 0x56040
movl %eax, -0x4(%rbp)
jmp 0x65cee
movl -0x3c(%rbp), %ecx
movq -0x20(%rbp), %rax
movl %ecx, 0x8(%rax)
movl $0x0, -0x2c(%rbp)
movl -0x2c(%rbp), %eax
cmpl -0x3c(%rbp), %eax
jge 0x655b8
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rcx
imulq $0x60, %rcx, %rcx
addq %rcx, %rax
movq $0x0, 0x30(%rax)
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rcx
imulq $0x60, %rcx, %rcx
addq %rcx, %rax
movq $0x0, 0x48(%rax)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0x6556b
movl -0x24(%rbp), %eax
movq -0x20(%rbp), %rcx
imull $0x3, 0x8(%rcx), %ecx
addl $0x8, %ecx
cmpl %ecx, %eax
je 0x655de
leaq 0x1bad0(%rip), %rdi     # 0x810a1
callq 0x56040
movl %eax, -0x4(%rbp)
jmp 0x65cee
movq -0x10(%rbp), %rax
movl $0x0, 0x4850(%rax)
movl $0x0, -0x2c(%rbp)
movl -0x2c(%rbp), %eax
movq -0x20(%rbp), %rcx
cmpl 0x8(%rcx), %eax
jge 0x657af
movq -0x20(%rbp), %rdi
callq 0x65d00
movzbl %al, %ecx
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rdx
imulq $0x60, %rdx, %rdx
addq %rdx, %rax
movl %ecx, (%rax)
movq -0x20(%rbp), %rax
cmpl $0x3, 0x8(%rax)
jne 0x6566d
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rcx
imulq $0x60, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %eax
movslq -0x2c(%rbp), %rdx
leaq 0x19e78(%rip), %rcx     # 0x7f4ca
movzbl (%rcx,%rdx), %ecx
cmpl %ecx, %eax
jne 0x6566d
movq -0x10(%rbp), %rax
movl 0x4850(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x4850(%rax)
movq -0x20(%rbp), %rdi
callq 0x65d00
movzbl %al, %eax
movl %eax, -0x30(%rbp)
movl -0x30(%rbp), %ecx
sarl $0x4, %ecx
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rdx
imulq $0x60, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x4(%rax)
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rcx
imulq $0x60, %rcx, %rcx
addq %rcx, %rax
cmpl $0x0, 0x4(%rax)
je 0x656d0
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rcx
imulq $0x60, %rcx, %rcx
addq %rcx, %rax
cmpl $0x4, 0x4(%rax)
jle 0x656e4
leaq 0x1ba0e(%rip), %rdi     # 0x810e5
callq 0x56040
movl %eax, -0x4(%rbp)
jmp 0x65cee
movl -0x30(%rbp), %ecx
andl $0xf, %ecx
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rdx
imulq $0x60, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x8(%rax)
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rcx
imulq $0x60, %rcx, %rcx
addq %rcx, %rax
cmpl $0x0, 0x8(%rax)
je 0x65738
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rcx
imulq $0x60, %rcx, %rcx
addq %rcx, %rax
cmpl $0x4, 0x8(%rax)
jle 0x6574c
leaq 0x1b9ac(%rip), %rdi     # 0x810eb
callq 0x56040
movl %eax, -0x4(%rbp)
jmp 0x65cee
movq -0x20(%rbp), %rdi
callq 0x65d00
movzbl %al, %ecx
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rdx
imulq $0x60, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0xc(%rax)
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rcx
imulq $0x60, %rcx, %rcx
addq %rcx, %rax
cmpl $0x3, 0xc(%rax)
jle 0x6579f
leaq 0x1b95f(%rip), %rdi     # 0x810f1
callq 0x56040
movl %eax, -0x4(%rbp)
jmp 0x65cee
jmp 0x657a1
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0x655f3
cmpl $0x0, -0x14(%rbp)
je 0x657c1
movl $0x1, -0x4(%rbp)
jmp 0x65cee
movq -0x20(%rbp), %rax
movl (%rax), %edi
movq -0x20(%rbp), %rax
movl 0x4(%rax), %esi
movq -0x20(%rbp), %rax
movl 0x8(%rax), %edx
xorl %ecx, %ecx
callq 0x662a0
cmpl $0x0, %eax
jne 0x657f5
leaq 0x1b910(%rip), %rdi     # 0x810f8
callq 0x56040
movl %eax, -0x4(%rbp)
jmp 0x65cee
movl $0x0, -0x2c(%rbp)
movl -0x2c(%rbp), %eax
movq -0x20(%rbp), %rcx
cmpl 0x8(%rcx), %eax
jge 0x6588c
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rcx
imulq $0x60, %rcx, %rcx
addq %rcx, %rax
movl 0x4(%rax), %eax
cmpl -0x34(%rbp), %eax
jle 0x65844
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rcx
imulq $0x60, %rcx, %rcx
addq %rcx, %rax
movl 0x4(%rax), %eax
movl %eax, -0x34(%rbp)
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rcx
imulq $0x60, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
cmpl -0x38(%rbp), %eax
jle 0x6587c
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rcx
imulq $0x60, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
movl %eax, -0x38(%rbp)
jmp 0x6587e
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0x657fc
movl -0x34(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x4688(%rax)
movl -0x38(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x468c(%rax)
movl -0x34(%rbp), %ecx
shll $0x3, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x4698(%rax)
movl -0x38(%rbp), %ecx
shll $0x3, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x469c(%rax)
movq -0x20(%rbp), %rax
movl (%rax), %eax
movq -0x10(%rbp), %rcx
addl 0x4698(%rcx), %eax
subl $0x1, %eax
movq -0x10(%rbp), %rcx
xorl %edx, %edx
divl 0x4698(%rcx)
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x4690(%rax)
movq -0x20(%rbp), %rax
movl 0x4(%rax), %eax
movq -0x10(%rbp), %rcx
addl 0x469c(%rcx), %eax
subl $0x1, %eax
movq -0x10(%rbp), %rcx
xorl %edx, %edx
divl 0x469c(%rcx)
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x4694(%rax)
movl $0x0, -0x2c(%rbp)
movl -0x2c(%rbp), %eax
movq -0x20(%rbp), %rcx
cmpl 0x8(%rcx), %eax
jge 0x65ce7
movq -0x20(%rbp), %rax
movl (%rax), %eax
movq -0x10(%rbp), %rcx
addq $0x46a0, %rcx           # imm = 0x46A0
movslq -0x2c(%rbp), %rdx
imulq $0x60, %rdx, %rdx
addq %rdx, %rcx
imull 0x4(%rcx), %eax
addl -0x34(%rbp), %eax
subl $0x1, %eax
xorl %edx, %edx
divl -0x34(%rbp)
movl %eax, %ecx
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rdx
imulq $0x60, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x1c(%rax)
movq -0x20(%rbp), %rax
movl 0x4(%rax), %eax
movq -0x10(%rbp), %rcx
addq $0x46a0, %rcx           # imm = 0x46A0
movslq -0x2c(%rbp), %rdx
imulq $0x60, %rdx, %rdx
addq %rdx, %rcx
imull 0x8(%rcx), %eax
addl -0x38(%rbp), %eax
subl $0x1, %eax
xorl %edx, %edx
divl -0x38(%rbp)
movl %eax, %ecx
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rdx
imulq $0x60, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x20(%rax)
movq -0x10(%rbp), %rax
movl 0x4690(%rax), %ecx
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rdx
imulq $0x60, %rdx, %rdx
addq %rdx, %rax
imull 0x4(%rax), %ecx
shll $0x3, %ecx
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rdx
imulq $0x60, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x24(%rax)
movq -0x10(%rbp), %rax
movl 0x4694(%rax), %ecx
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rdx
imulq $0x60, %rdx, %rdx
addq %rdx, %rax
imull 0x8(%rax), %ecx
shll $0x3, %ecx
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rdx
imulq $0x60, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x28(%rax)
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rcx
imulq $0x60, %rcx, %rcx
addq %rcx, %rax
movq $0x0, 0x50(%rax)
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rcx
imulq $0x60, %rcx, %rcx
addq %rcx, %rax
movq $0x0, 0x40(%rax)
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rcx
imulq $0x60, %rcx, %rcx
addq %rcx, %rax
movq $0x0, 0x48(%rax)
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rcx
imulq $0x60, %rcx, %rcx
addq %rcx, %rax
movl 0x24(%rax), %edi
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rcx
imulq $0x60, %rcx, %rcx
addq %rcx, %rax
movl 0x28(%rax), %esi
movl $0xf, %edx
callq 0x66310
movq %rax, %rcx
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rdx
imulq $0x60, %rdx, %rdx
addq %rdx, %rax
movq %rcx, 0x38(%rax)
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rcx
imulq $0x60, %rcx, %rcx
addq %rcx, %rax
cmpq $0x0, 0x38(%rax)
jne 0x65b37
movq -0x10(%rbp), %rax
movq %rax, -0x48(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x40(%rbp)
leaq 0x1b5e6(%rip), %rdi     # 0x81102
callq 0x56040
movq -0x48(%rbp), %rdi
movl -0x40(%rbp), %esi
movl %eax, %edx
callq 0x66360
movl %eax, -0x4(%rbp)
jmp 0x65cee
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rcx
imulq $0x60, %rcx, %rcx
addq %rcx, %rax
movq 0x38(%rax), %rcx
addq $0xf, %rcx
andq $-0x10, %rcx
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rdx
imulq $0x60, %rdx, %rdx
addq %rdx, %rax
movq %rcx, 0x30(%rax)
movq -0x10(%rbp), %rax
cmpl $0x0, 0x4830(%rax)
je 0x65cd7
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rcx
imulq $0x60, %rcx, %rcx
addq %rcx, %rax
movl 0x24(%rax), %eax
movl $0x8, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rdx
imulq $0x60, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x58(%rax)
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rcx
imulq $0x60, %rcx, %rcx
addq %rcx, %rax
movl 0x28(%rax), %eax
movl $0x8, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rdx
imulq $0x60, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x5c(%rax)
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rcx
imulq $0x60, %rcx, %rcx
addq %rcx, %rax
movl 0x24(%rax), %edi
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rcx
imulq $0x60, %rcx, %rcx
addq %rcx, %rax
movl 0x28(%rax), %esi
movl $0x2, %edx
movl $0xf, %ecx
callq 0x664e0
movq %rax, %rcx
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rdx
imulq $0x60, %rdx, %rdx
addq %rdx, %rax
movq %rcx, 0x40(%rax)
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rcx
imulq $0x60, %rcx, %rcx
addq %rcx, %rax
cmpq $0x0, 0x40(%rax)
jne 0x65c9d
movq -0x10(%rbp), %rax
movq %rax, -0x58(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
leaq 0x1b47d(%rip), %rdi     # 0x81102
callq 0x56040
movq -0x58(%rbp), %rdi
movl -0x4c(%rbp), %esi
movl %eax, %edx
callq 0x66360
movl %eax, -0x4(%rbp)
jmp 0x65cee
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rcx
imulq $0x60, %rcx, %rcx
addq %rcx, %rax
movq 0x40(%rax), %rcx
addq $0xf, %rcx
andq $-0x10, %rcx
movq -0x10(%rbp), %rax
addq $0x46a0, %rax           # imm = 0x46A0
movslq -0x2c(%rbp), %rdx
imulq $0x60, %rdx, %rdx
addq %rdx, %rax
movq %rcx, 0x50(%rax)
jmp 0x65cd9
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0x65924
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x60, %rsp
popq %rbp
retq
nopw (%rax,%rax)