// File: /workspace/github_c_makefile_star2_O0/archer1357[P]Offline-Raytracer/stb_image.c
// Function: stbi__process_marker
static int stbi__process_marker(stbi__jpeg *z, int m)
{
   int L;
   switch (m) {
      case STBI__MARKER_none: // no marker found
         return stbi__err("expected marker","Corrupt JPEG");

      case 0xC2: // stbi__SOF - progressive
         return stbi__err("progressive jpeg","JPEG format not supported (progressive)");

      case 0xDD: // DRI - specify restart interval
         if (stbi__get16be(z->s) != 4) return stbi__err("bad DRI len","Corrupt JPEG");
         z->restart_interval = stbi__get16be(z->s);
         return 1;

      case 0xDB: // DQT - define quantization table
         L = stbi__get16be(z->s)-2;
         while (L > 0) {
            int q = stbi__get8(z->s);
            int p = q >> 4;
            int t = q & 15,i;
            if (p != 0) return stbi__err("bad DQT type","Corrupt JPEG");
            if (t > 3) return stbi__err("bad DQT table","Corrupt JPEG");
            for (i=0; i < 64; ++i)
               z->dequant[t][stbi__jpeg_dezigzag[i]] = stbi__get8(z->s);
            #ifdef STBI_SIMD
            for (i=0; i < 64; ++i)
               z->dequant2[t][i] = z->dequant[t][i];
            #endif
            L -= 65;
         }
         return L==0;

      case 0xC4: // DHT - define huffman table
         L = stbi__get16be(z->s)-2;
         while (L > 0) {
            stbi_uc *v;
            int sizes[16],i,n=0;
            int q = stbi__get8(z->s);
            int tc = q >> 4;
            int th = q & 15;
            if (tc > 1 || th > 3) return stbi__err("bad DHT header","Corrupt JPEG");
            for (i=0; i < 16; ++i) {
               sizes[i] = stbi__get8(z->s);
               n += sizes[i];
            }
            L -= 17;
            if (tc == 0) {
               if (!stbi__build_huffman(z->huff_dc+th, sizes)) return 0;
               v = z->huff_dc[th].values;
            } else {
               if (!stbi__build_huffman(z->huff_ac+th, sizes)) return 0;
               v = z->huff_ac[th].values;
            }
            for (i=0; i < n; ++i)
               v[i] = stbi__get8(z->s);
            L -= n;
         }
         return L==0;
   }
   // check for comment block or APP blocks
   if ((m >= 0xE0 && m <= 0xEF) || m == 0xFE) {
      stbi__skip(z->s, stbi__get16be(z->s)-2);
      return 1;
   }
   return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x88(%rbp)
subl $0xc2, %eax
je 0x414e30
jmp 0x414dd4
movl -0x88(%rbp), %eax
subl $0xc4, %eax
je 0x414f70
jmp 0x414de7
movl -0x88(%rbp), %eax
subl $0xdb, %eax
je 0x414e8d
jmp 0x414dfa
movl -0x88(%rbp), %eax
subl $0xdd, %eax
je 0x414e44
jmp 0x414e09
movl -0x88(%rbp), %eax
subl $0xff, %eax
jne 0x415130
jmp 0x414e1c
leaq 0xd05e2(%rip), %rdi     # 0x4e5405
callq 0x411080
movl %eax, -0x4(%rbp)
jmp 0x415186
leaq 0xd05de(%rip), %rdi     # 0x4e5415
callq 0x411080
movl %eax, -0x4(%rbp)
jmp 0x415186
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x415aa0
cmpl $0x4, %eax
je 0x414e69
leaq 0xd05ca(%rip), %rdi     # 0x4e5426
callq 0x411080
movl %eax, -0x4(%rbp)
jmp 0x415186
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x415aa0
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x36e4(%rax)
movl $0x1, -0x4(%rbp)
jmp 0x415186
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x415aa0
subl $0x2, %eax
movl %eax, -0x18(%rbp)
cmpl $0x0, -0x18(%rbp)
jle 0x414f5c
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x415960
movzbl %al, %eax
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
sarl $0x4, %eax
movl %eax, -0x20(%rbp)
movl -0x1c(%rbp), %eax
andl $0xf, %eax
movl %eax, -0x24(%rbp)
cmpl $0x0, -0x20(%rbp)
je 0x414ee7
leaq 0xd0558(%rip), %rdi     # 0x4e5432
callq 0x411080
movl %eax, -0x4(%rbp)
jmp 0x415186
cmpl $0x3, -0x24(%rbp)
jle 0x414f01
leaq 0xd054b(%rip), %rdi     # 0x4e543f
callq 0x411080
movl %eax, -0x4(%rbp)
jmp 0x415186
movl $0x0, -0x28(%rbp)
cmpl $0x40, -0x28(%rbp)
jge 0x414f4e
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x415960
movb %al, %dl
movq -0x10(%rbp), %rax
addq $0x3488, %rax           # imm = 0x3488
movslq -0x24(%rbp), %rcx
shlq $0x6, %rcx
addq %rcx, %rax
movslq -0x28(%rbp), %rsi
leaq 0x111364(%rip), %rcx    # 0x5262a0
movzbl (%rcx,%rsi), %ecx
movb %dl, (%rax,%rcx)
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0x414f08
movl -0x18(%rbp), %eax
subl $0x41, %eax
movl %eax, -0x18(%rbp)
jmp 0x414e9f
cmpl $0x0, -0x18(%rbp)
sete %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x4(%rbp)
jmp 0x415186
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x415aa0
subl $0x2, %eax
movl %eax, -0x18(%rbp)
cmpl $0x0, -0x18(%rbp)
jle 0x41511f
movl $0x0, -0x78(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x415960
movzbl %al, %eax
movl %eax, -0x7c(%rbp)
movl -0x7c(%rbp), %eax
sarl $0x4, %eax
movl %eax, -0x80(%rbp)
movl -0x7c(%rbp), %eax
andl $0xf, %eax
movl %eax, -0x84(%rbp)
cmpl $0x1, -0x80(%rbp)
jg 0x414fc9
cmpl $0x3, -0x84(%rbp)
jle 0x414fdd
leaq 0xd047d(%rip), %rdi     # 0x4e544d
callq 0x411080
movl %eax, -0x4(%rbp)
jmp 0x415186
movl $0x0, -0x74(%rbp)
cmpl $0x10, -0x74(%rbp)
jge 0x41501a
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x415960
movzbl %al, %ecx
movslq -0x74(%rbp), %rax
movl %ecx, -0x70(%rbp,%rax,4)
movslq -0x74(%rbp), %rax
movl -0x70(%rbp,%rax,4), %eax
addl -0x78(%rbp), %eax
movl %eax, -0x78(%rbp)
movl -0x74(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x74(%rbp)
jmp 0x414fe4
movl -0x18(%rbp), %eax
subl $0x11, %eax
movl %eax, -0x18(%rbp)
cmpl $0x0, -0x80(%rbp)
jne 0x415081
movq -0x10(%rbp), %rdi
addq $0x8, %rdi
movslq -0x84(%rbp), %rax
imulq $0x690, %rax, %rax      # imm = 0x690
addq %rax, %rdi
leaq -0x70(%rbp), %rsi
callq 0x415ae0
cmpl $0x0, %eax
jne 0x41505c
movl $0x0, -0x4(%rbp)
jmp 0x415186
movq -0x10(%rbp), %rax
addq $0x8, %rax
movslq -0x84(%rbp), %rcx
imulq $0x690, %rcx, %rcx      # imm = 0x690
addq %rcx, %rax
addq $0x400, %rax            # imm = 0x400
movq %rax, -0x30(%rbp)
jmp 0x4150dc
movq -0x10(%rbp), %rdi
addq $0x1a48, %rdi           # imm = 0x1A48
movslq -0x84(%rbp), %rax
imulq $0x690, %rax, %rax      # imm = 0x690
addq %rax, %rdi
leaq -0x70(%rbp), %rsi
callq 0x415ae0
cmpl $0x0, %eax
jne 0x4150b7
movl $0x0, -0x4(%rbp)
jmp 0x415186
movq -0x10(%rbp), %rax
addq $0x1a48, %rax           # imm = 0x1A48
movslq -0x84(%rbp), %rcx
imulq $0x690, %rcx, %rcx      # imm = 0x690
addq %rcx, %rax
addq $0x400, %rax            # imm = 0x400
movq %rax, -0x30(%rbp)
movl $0x0, -0x74(%rbp)
movl -0x74(%rbp), %eax
cmpl -0x78(%rbp), %eax
jge 0x41510f
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x415960
movb %al, %dl
movq -0x30(%rbp), %rax
movslq -0x74(%rbp), %rcx
movb %dl, (%rax,%rcx)
movl -0x74(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x74(%rbp)
jmp 0x4150e3
movl -0x78(%rbp), %ecx
movl -0x18(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x18(%rbp)
jmp 0x414f82
cmpl $0x0, -0x18(%rbp)
sete %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x4(%rbp)
jmp 0x415186
cmpl $0xe0, -0x14(%rbp)
jl 0x415142
cmpl $0xef, -0x14(%rbp)
jle 0x41514b
cmpl $0xfe, -0x14(%rbp)
jne 0x41517f
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x90(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x415aa0
movq -0x90(%rbp), %rdi
movl %eax, %esi
subl $0x2, %esi
callq 0x415d20
movl $0x1, -0x4(%rbp)
jmp 0x415186
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x90, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)