// File: /workspace/github_c_makefile_star2_O0/k0n10pl4tr[P]minimal_crafter/./stb_perlin.h
// Function: stb_perlin_noise3_internal
float stb_perlin_noise3_internal(float x, float y, float z, int x_wrap, int y_wrap, int z_wrap, unsigned char seed)
{
   float u,v,w;
   float n000,n001,n010,n011,n100,n101,n110,n111;
   float n00,n01,n10,n11;
   float n0,n1;

   unsigned int x_mask = (x_wrap-1) & 255;
   unsigned int y_mask = (y_wrap-1) & 255;
   unsigned int z_mask = (z_wrap-1) & 255;
   int px = stb__perlin_fastfloor(x);
   int py = stb__perlin_fastfloor(y);
   int pz = stb__perlin_fastfloor(z);
   int x0 = px & x_mask, x1 = (px+1) & x_mask;
   int y0 = py & y_mask, y1 = (py+1) & y_mask;
   int z0 = pz & z_mask, z1 = (pz+1) & z_mask;
   int r0,r1, r00,r01,r10,r11;

   #define stb__perlin_ease(a)   (((a*6-15)*a + 10) * a * a * a)

   x -= px; u = stb__perlin_ease(x);
   y -= py; v = stb__perlin_ease(y);
   z -= pz; w = stb__perlin_ease(z);

   r0 = stb__perlin_randtab[x0+seed];
   r1 = stb__perlin_randtab[x1+seed];

   r00 = stb__perlin_randtab[r0+y0];
   r01 = stb__perlin_randtab[r0+y1];
   r10 = stb__perlin_randtab[r1+y0];
   r11 = stb__perlin_randtab[r1+y1];

   n000 = stb__perlin_grad(stb__perlin_randtab_grad_idx[r00+z0], x  , y  , z   );
   n001 = stb__perlin_grad(stb__perlin_randtab_grad_idx[r00+z1], x  , y  , z-1 );
   n010 = stb__perlin_grad(stb__perlin_randtab_grad_idx[r01+z0], x  , y-1, z   );
   n011 = stb__perlin_grad(stb__perlin_randtab_grad_idx[r01+z1], x  , y-1, z-1 );
   n100 = stb__perlin_grad(stb__perlin_randtab_grad_idx[r10+z0], x-1, y  , z   );
   n101 = stb__perlin_grad(stb__perlin_randtab_grad_idx[r10+z1], x-1, y  , z-1 );
   n110 = stb__perlin_grad(stb__perlin_randtab_grad_idx[r11+z0], x-1, y-1, z   );
   n111 = stb__perlin_grad(stb__perlin_randtab_grad_idx[r11+z1], x-1, y-1, z-1 );

   n00 = stb__perlin_lerp(n000,n001,w);
   n01 = stb__perlin_lerp(n010,n011,w);
   n10 = stb__perlin_lerp(n100,n101,w);
   n11 = stb__perlin_lerp(n110,n111,w);

   n0 = stb__perlin_lerp(n00,n01,v);
   n1 = stb__perlin_lerp(n10,n11,v);

   return stb__perlin_lerp(n0,n1,u);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movb %cl, %al
movss %xmm0, -0x4(%rbp)
movss %xmm1, -0x8(%rbp)
movss %xmm2, -0xc(%rbp)
movl %edi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movl %edx, -0x18(%rbp)
movb %al, -0x19(%rbp)
movl -0x10(%rbp), %eax
subl $0x1, %eax
andl $0xff, %eax
movl %eax, -0x64(%rbp)
movl -0x14(%rbp), %eax
subl $0x1, %eax
andl $0xff, %eax
movl %eax, -0x68(%rbp)
movl -0x18(%rbp), %eax
subl $0x1, %eax
andl $0xff, %eax
movl %eax, -0x6c(%rbp)
movss -0x4(%rbp), %xmm0
callq 0x7ca0
movl %eax, -0x70(%rbp)
movss -0x8(%rbp), %xmm0
callq 0x7ca0
movl %eax, -0x74(%rbp)
movss -0xc(%rbp), %xmm0
callq 0x7ca0
movl %eax, -0x78(%rbp)
movl -0x70(%rbp), %eax
andl -0x64(%rbp), %eax
movl %eax, -0x7c(%rbp)
movl -0x70(%rbp), %eax
addl $0x1, %eax
andl -0x64(%rbp), %eax
movl %eax, -0x80(%rbp)
movl -0x74(%rbp), %eax
andl -0x68(%rbp), %eax
movl %eax, -0x84(%rbp)
movl -0x74(%rbp), %eax
addl $0x1, %eax
andl -0x68(%rbp), %eax
movl %eax, -0x88(%rbp)
movl -0x78(%rbp), %eax
andl -0x6c(%rbp), %eax
movl %eax, -0x8c(%rbp)
movl -0x78(%rbp), %eax
addl $0x1, %eax
andl -0x6c(%rbp), %eax
movl %eax, -0x90(%rbp)
cvtsi2ssl -0x70(%rbp), %xmm1
movss -0x4(%rbp), %xmm0
subss %xmm1, %xmm0
movss %xmm0, -0x4(%rbp)
movss -0x4(%rbp), %xmm0
movss 0x3840(%rip), %xmm1     # 0xb054
mulss %xmm1, %xmm0
movss 0x3838(%rip), %xmm1     # 0xb058
addss %xmm1, %xmm0
movss -0x4(%rbp), %xmm1
mulss %xmm1, %xmm0
movss 0x381b(%rip), %xmm1     # 0xb050
addss %xmm1, %xmm0
mulss -0x4(%rbp), %xmm0
mulss -0x4(%rbp), %xmm0
mulss -0x4(%rbp), %xmm0
movss %xmm0, -0x20(%rbp)
cvtsi2ssl -0x74(%rbp), %xmm1
movss -0x8(%rbp), %xmm0
subss %xmm1, %xmm0
movss %xmm0, -0x8(%rbp)
movss -0x8(%rbp), %xmm0
movss 0x37e7(%rip), %xmm1     # 0xb054
mulss %xmm1, %xmm0
movss 0x37df(%rip), %xmm1     # 0xb058
addss %xmm1, %xmm0
movss -0x8(%rbp), %xmm1
mulss %xmm1, %xmm0
movss 0x37c2(%rip), %xmm1     # 0xb050
addss %xmm1, %xmm0
mulss -0x8(%rbp), %xmm0
mulss -0x8(%rbp), %xmm0
mulss -0x8(%rbp), %xmm0
movss %xmm0, -0x24(%rbp)
cvtsi2ssl -0x78(%rbp), %xmm1
movss -0xc(%rbp), %xmm0
subss %xmm1, %xmm0
movss %xmm0, -0xc(%rbp)
movss -0xc(%rbp), %xmm0
movss 0x378e(%rip), %xmm1     # 0xb054
mulss %xmm1, %xmm0
movss 0x3786(%rip), %xmm1     # 0xb058
addss %xmm1, %xmm0
movss -0xc(%rbp), %xmm1
mulss %xmm1, %xmm0
movss 0x3769(%rip), %xmm1     # 0xb050
addss %xmm1, %xmm0
mulss -0xc(%rbp), %xmm0
mulss -0xc(%rbp), %xmm0
mulss -0xc(%rbp), %xmm0
movss %xmm0, -0x28(%rbp)
movl -0x7c(%rbp), %eax
movzbl -0x19(%rbp), %ecx
addl %ecx, %eax
movslq %eax, %rcx
leaq 0x590e(%rip), %rax      # 0xd220
movzbl (%rax,%rcx), %eax
movl %eax, -0x94(%rbp)
movl -0x80(%rbp), %eax
movzbl -0x19(%rbp), %ecx
addl %ecx, %eax
movslq %eax, %rcx
leaq 0x58f1(%rip), %rax      # 0xd220
movzbl (%rax,%rcx), %eax
movl %eax, -0x98(%rbp)
movl -0x94(%rbp), %eax
addl -0x84(%rbp), %eax
movslq %eax, %rcx
leaq 0x58d1(%rip), %rax      # 0xd220
movzbl (%rax,%rcx), %eax
movl %eax, -0x9c(%rbp)
movl -0x94(%rbp), %eax
addl -0x88(%rbp), %eax
movslq %eax, %rcx
leaq 0x58b1(%rip), %rax      # 0xd220
movzbl (%rax,%rcx), %eax
movl %eax, -0xa0(%rbp)
movl -0x98(%rbp), %eax
addl -0x84(%rbp), %eax
movslq %eax, %rcx
leaq 0x5891(%rip), %rax      # 0xd220
movzbl (%rax,%rcx), %eax
movl %eax, -0xa4(%rbp)
movl -0x98(%rbp), %eax
addl -0x88(%rbp), %eax
movslq %eax, %rcx
leaq 0x5871(%rip), %rax      # 0xd220
movzbl (%rax,%rcx), %eax
movl %eax, -0xa8(%rbp)
movl -0x9c(%rbp), %eax
addl -0x8c(%rbp), %eax
movslq %eax, %rcx
leaq 0x5a51(%rip), %rax      # 0xd420
movzbl (%rax,%rcx), %edi
movss -0x4(%rbp), %xmm0
movss -0x8(%rbp), %xmm1
movss -0xc(%rbp), %xmm2
callq 0x7ce0
movss %xmm0, -0x2c(%rbp)
movl -0x9c(%rbp), %eax
addl -0x90(%rbp), %eax
movslq %eax, %rcx
leaq 0x5a1e(%rip), %rax      # 0xd420
movzbl (%rax,%rcx), %edi
movss -0x4(%rbp), %xmm0
movss -0x8(%rbp), %xmm1
movss -0xc(%rbp), %xmm2
movss 0x3287(%rip), %xmm3     # 0xaca4
subss %xmm3, %xmm2
callq 0x7ce0
movss %xmm0, -0x30(%rbp)
movl -0xa0(%rbp), %eax
addl -0x8c(%rbp), %eax
movslq %eax, %rcx
leaq 0x59df(%rip), %rax      # 0xd420
movzbl (%rax,%rcx), %edi
movss -0x4(%rbp), %xmm0
movss -0x8(%rbp), %xmm1
movss 0x324d(%rip), %xmm2     # 0xaca4
subss %xmm2, %xmm1
movss -0xc(%rbp), %xmm2
callq 0x7ce0
movss %xmm0, -0x34(%rbp)
movl -0xa0(%rbp), %eax
addl -0x90(%rbp), %eax
movslq %eax, %rcx
leaq 0x59a0(%rip), %rax      # 0xd420
movzbl (%rax,%rcx), %edi
movss -0x4(%rbp), %xmm0
movss -0x8(%rbp), %xmm1
movss 0x320e(%rip), %xmm2     # 0xaca4
subss %xmm2, %xmm1
movss -0xc(%rbp), %xmm2
movss 0x31fd(%rip), %xmm3     # 0xaca4
subss %xmm3, %xmm2
callq 0x7ce0
movss %xmm0, -0x38(%rbp)
movl -0xa4(%rbp), %eax
addl -0x8c(%rbp), %eax
movslq %eax, %rcx
leaq 0x5955(%rip), %rax      # 0xd420
movzbl (%rax,%rcx), %edi
movss -0x4(%rbp), %xmm0
movss 0x31c8(%rip), %xmm1     # 0xaca4
subss %xmm1, %xmm0
movss -0x8(%rbp), %xmm1
movss -0xc(%rbp), %xmm2
callq 0x7ce0
movss %xmm0, -0x3c(%rbp)
movl -0xa4(%rbp), %eax
addl -0x90(%rbp), %eax
movslq %eax, %rcx
leaq 0x5916(%rip), %rax      # 0xd420
movzbl (%rax,%rcx), %edi
movss -0x4(%rbp), %xmm0
movss 0x3189(%rip), %xmm1     # 0xaca4
subss %xmm1, %xmm0
movss -0x8(%rbp), %xmm1
movss -0xc(%rbp), %xmm2
movss 0x3173(%rip), %xmm3     # 0xaca4
subss %xmm3, %xmm2
callq 0x7ce0
movss %xmm0, -0x40(%rbp)
movl -0xa8(%rbp), %eax
addl -0x8c(%rbp), %eax
movslq %eax, %rcx
leaq 0x58cb(%rip), %rax      # 0xd420
movzbl (%rax,%rcx), %edi
movss -0x4(%rbp), %xmm0
movss 0x313e(%rip), %xmm1     # 0xaca4
subss %xmm1, %xmm0
movss -0x8(%rbp), %xmm1
movss 0x312d(%rip), %xmm2     # 0xaca4
subss %xmm2, %xmm1
movss -0xc(%rbp), %xmm2
callq 0x7ce0
movss %xmm0, -0x44(%rbp)
movl -0xa8(%rbp), %eax
addl -0x90(%rbp), %eax
movslq %eax, %rcx
leaq 0x5880(%rip), %rax      # 0xd420
movzbl (%rax,%rcx), %edi
movss -0x4(%rbp), %xmm0
movss 0x30f3(%rip), %xmm1     # 0xaca4
subss %xmm1, %xmm0
movss -0x8(%rbp), %xmm1
movss 0x30e2(%rip), %xmm2     # 0xaca4
subss %xmm2, %xmm1
movss -0xc(%rbp), %xmm2
movss 0x30d1(%rip), %xmm3     # 0xaca4
subss %xmm3, %xmm2
callq 0x7ce0
movss %xmm0, -0x48(%rbp)
movss -0x2c(%rbp), %xmm0
movss -0x30(%rbp), %xmm1
movss -0x28(%rbp), %xmm2
callq 0x7d50
movss %xmm0, -0x4c(%rbp)
movss -0x34(%rbp), %xmm0
movss -0x38(%rbp), %xmm1
movss -0x28(%rbp), %xmm2
callq 0x7d50
movss %xmm0, -0x50(%rbp)
movss -0x3c(%rbp), %xmm0
movss -0x40(%rbp), %xmm1
movss -0x28(%rbp), %xmm2
callq 0x7d50
movss %xmm0, -0x54(%rbp)
movss -0x44(%rbp), %xmm0
movss -0x48(%rbp), %xmm1
movss -0x28(%rbp), %xmm2
callq 0x7d50
movss %xmm0, -0x58(%rbp)
movss -0x4c(%rbp), %xmm0
movss -0x50(%rbp), %xmm1
movss -0x24(%rbp), %xmm2
callq 0x7d50
movss %xmm0, -0x5c(%rbp)
movss -0x54(%rbp), %xmm0
movss -0x58(%rbp), %xmm1
movss -0x24(%rbp), %xmm2
callq 0x7d50
movss %xmm0, -0x60(%rbp)
movss -0x5c(%rbp), %xmm0
movss -0x60(%rbp), %xmm1
movss -0x20(%rbp), %xmm2
callq 0x7d50
addq $0xb0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)