// File: /workspace/github_cpp_makefile_star2_O3/srajangarg[P]raytracer/src/core/stb_image.hpp
// Function: stbi__loadf_main(stbi__context*, int*, int*, int*, int)
static float *stbi__loadf_main(stbi__context *s, int *x, int *y, int *comp, int req_comp)
{
   unsigned char *data;
   #ifndef STBI_NO_HDR
   if (stbi__hdr_test(s)) {
      float *hdr_data = stbi__hdr_load(s,x,y,comp,req_comp);
      if (hdr_data)
         stbi__float_postprocess(hdr_data,x,y,comp,req_comp);
      return hdr_data;
   }
   #endif
   data = stbi__load_flip(s, x, y, comp, req_comp);
   if (data)
      return stbi__ldr_to_hdr(data, *x, *y, req_comp ? req_comp : *comp);
   return stbi__errpf("unknown image type", "Image not of any known type, or corrupt");
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movl %r8d, %ebx
movq %rcx, %r13
movq %rdx, %rbp
movq %rsi, %r12
movq %rdi, %r14
callq 0x149d2
movq %r14, %rdi
movq %r12, %rsi
movq %rbp, %rdx
movq %r13, %rcx
movl %ebx, %r8d
testl %eax, %eax
je 0x14691
callq 0x1b9e7
testq %rax, %rax
je 0x147f0
movq %rax, %r10
cmpl $0x0, 0x22da5(%rip)     # 0x37398
je 0x147ca
movl (%rbp), %ebp
testl %ebx, %ebx
jne 0x14604
movl (%r13), %ebx
movl %ebp, %esi
sarl %esi
testl %esi, %esi
jle 0x147ca
movslq (%r12), %rcx
movslq %ebx, %rdx
movl %esi, %esi
movl %edx, %edi
leaq (,%rdx,4), %r8
decl %ebp
imull %ecx, %ebp
imulq %rcx, %rdx
shlq $0x2, %rdx
xorl %r9d, %r9d
movq %r10, %rax
testl %ecx, %ecx
jle 0x1467f
movslq %ebp, %r11
imulq %r8, %r11
addq %rax, %r11
movq %r10, %r14
xorl %r15d, %r15d
testl %ebx, %ebx
jle 0x14671
xorl %r12d, %r12d
movss (%r14,%r12,4), %xmm0
movss (%r11,%r12,4), %xmm1
movss %xmm1, (%r14,%r12,4)
movss %xmm0, (%r11,%r12,4)
incq %r12
cmpq %r12, %rdi
jne 0x14651
incq %r15
addq %r8, %r11
addq %r8, %r14
cmpq %rcx, %r15
jne 0x1464a
incq %r9
subl %ecx, %ebp
addq %rdx, %r10
cmpq %rsi, %r9
jne 0x14636
jmp 0x147f2
callq 0x1437b
movq %rax, 0x8(%rsp)
testq %rax, %rax
je 0x147cf
movl (%r12), %eax
movl (%rbp), %r14d
testl %ebx, %ebx
jne 0x146b4
movl (%r13), %ebx
imull %eax, %r14d
movl %ebx, %eax
imull %r14d, %eax
movslq %eax, %rdi
shlq $0x2, %rdi
callq 0x43f0
testq %rax, %rax
je 0x147d8
movq %rax, 0x10(%rsp)
testl %r14d, %r14d
jle 0x147b9
movl %ebx, %eax
andl $0x1, %eax
leal (%rbx,%rax), %edx
decl %edx
movslq %ebx, %rsi
movl %r14d, %eax
movq %rax, 0x30(%rsp)
movl %edx, %r15d
leaq (,%rsi,4), %rax
movq %rax, 0x28(%rsp)
xorl %r13d, %r13d
movss 0x174bf(%rip), %xmm1    # 0x2bbd0
movq 0x8(%rsp), %r14
movq 0x10(%rsp), %r12
movl %edx, 0x1c(%rsp)
movq %rsi, 0x20(%rsp)
movl $0x0, %eax
testl %edx, %edx
jle 0x14775
xorl %ebp, %ebp
movzbl (%r14,%rbp), %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
divss %xmm1, %xmm0
movss 0x22bf9(%rip), %xmm1    # 0x37340
callq 0x44d0
movss 0x1747c(%rip), %xmm1    # 0x2bbd0
mulss 0x22be8(%rip), %xmm0    # 0x37344
movss %xmm0, (%r12,%rbp,4)
incq %rbp
cmpq %rbp, %r15
jne 0x1472f
movl 0x1c(%rsp), %edx
movl %edx, %eax
movq 0x20(%rsp), %rsi
cmpl %ebx, %eax
jge 0x147a3
movq %r13, %rcx
imulq %rsi, %rcx
movl %eax, %eax
addq %rcx, %rax
movq 0x8(%rsp), %rcx
movzbl (%rcx,%rax), %ecx
xorps %xmm0, %xmm0
cvtsi2ss %ecx, %xmm0
divss %xmm1, %xmm0
movq 0x10(%rsp), %rcx
movss %xmm0, (%rcx,%rax,4)
incq %r13
addq 0x28(%rsp), %r12
addq %rsi, %r14
cmpq 0x30(%rsp), %r13
jne 0x14724
movq 0x8(%rsp), %rdi
callq 0x4380
movq 0x10(%rsp), %rax
jmp 0x147f2
movq %r10, %rax
jmp 0x147f2
leaq 0x17a09(%rip), %rax     # 0x2c1df
jmp 0x147e9
movq 0x8(%rsp), %rdi
callq 0x4380
leaq 0x17ae0(%rip), %rax     # 0x2c2c9
movq %rax, 0x22ba0(%rip)     # 0x37390
xorl %eax, %eax
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq