// File: /workspace/github_cpp_makefile_star2_O1/alan0201tw[P]RayTracer/include/tiny_obj_loader.h
// Function: tinyobj::InitMaterial(tinyobj::material_t*)
static void InitMaterial(material_t *material) {
  InitTexOpt(&material->ambient_texopt, /* is_bump */ false);
  InitTexOpt(&material->diffuse_texopt, /* is_bump */ false);
  InitTexOpt(&material->specular_texopt, /* is_bump */ false);
  InitTexOpt(&material->specular_highlight_texopt, /* is_bump */ false);
  InitTexOpt(&material->bump_texopt, /* is_bump */ true);
  InitTexOpt(&material->displacement_texopt, /* is_bump */ false);
  InitTexOpt(&material->alpha_texopt, /* is_bump */ false);
  InitTexOpt(&material->reflection_texopt, /* is_bump */ false);
  InitTexOpt(&material->roughness_texopt, /* is_bump */ false);
  InitTexOpt(&material->metallic_texopt, /* is_bump */ false);
  InitTexOpt(&material->sheen_texopt, /* is_bump */ false);
  InitTexOpt(&material->emissive_texopt, /* is_bump */ false);
  InitTexOpt(&material->normal_texopt,
             /* is_bump */ false);  // @fixme { is_bump will be true? }
  material->name = "";
  material->ambient_texname = "";
  material->diffuse_texname = "";
  material->specular_texname = "";
  material->specular_highlight_texname = "";
  material->bump_texname = "";
  material->displacement_texname = "";
  material->reflection_texname = "";
  material->alpha_texname = "";
  for (int i = 0; i < 3; i++) {
    material->ambient[i] = static_cast<real_t>(0.0);
    material->diffuse[i] = static_cast<real_t>(0.0);
    material->specular[i] = static_cast<real_t>(0.0);
    material->transmittance[i] = static_cast<real_t>(0.0);
    material->emission[i] = static_cast<real_t>(0.0);
  }
  material->illum = 0;
  material->dissolve = static_cast<real_t>(1.0);
  material->shininess = static_cast<real_t>(1.0);
  material->ior = static_cast<real_t>(1.0);

  material->roughness = static_cast<real_t>(0.0);
  material->metallic = static_cast<real_t>(0.0);
  material->sheen = static_cast<real_t>(0.0);
  material->clearcoat_thickness = static_cast<real_t>(0.0);
  material->clearcoat_roughness = static_cast<real_t>(0.0);
  material->anisotropy_rotation = static_cast<real_t>(0.0);
  material->anisotropy = static_cast<real_t>(0.0);
  material->roughness_texname = "";
  material->metallic_texname = "";
  material->sheen_texname = "";
  material->emissive_texname = "";
  material->normal_texname = "";

  material->unknown_parameter.clear();
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movabsq $0x3f80000001016d00, %rcx # imm = 0x3F80000001016D00
movq %rcx, 0x1a4(%rdi)
movaps 0x2d9c0(%rip), %xmm0    # 0x3c4c0
movups %xmm0, 0x174(%rdi)
movaps 0x2d9c2(%rip), %xmm1    # 0x3c4d0
movups %xmm1, 0x184(%rdi)
movss 0x2d70b(%rip), %xmm2    # 0x3c228
movups %xmm2, 0x194(%rdi)
xorl %eax, %eax
movl %eax, 0x170(%rdi)
movq %rcx, 0x204(%rdi)
movups %xmm0, 0x1d4(%rdi)
movups %xmm1, 0x1e4(%rdi)
movups %xmm2, 0x1f4(%rdi)
movl %eax, 0x1d0(%rdi)
movq %rcx, 0x264(%rdi)
movups %xmm0, 0x234(%rdi)
movups %xmm1, 0x244(%rdi)
movups %xmm2, 0x254(%rdi)
movl %eax, 0x230(%rdi)
movb $0x6d, %cl
movb %cl, 0x2c5(%rdi)
movl $0x3f800000, %edx       # imm = 0x3F800000
movl %edx, 0x2c8(%rdi)
movb %al, 0x2c4(%rdi)
movw $0x101, %si             # imm = 0x101
movw %si, 0x2c6(%rdi)
movups %xmm0, 0x294(%rdi)
movups %xmm1, 0x2a4(%rdi)
movups %xmm2, 0x2b4(%rdi)
movl %eax, 0x290(%rdi)
movb $0x6c, 0x325(%rdi)
movl %edx, 0x328(%rdi)
movb %al, 0x324(%rdi)
movw %si, 0x326(%rdi)
movups %xmm0, 0x2f4(%rdi)
movups %xmm1, 0x304(%rdi)
movups %xmm2, 0x314(%rdi)
movl %eax, 0x2f0(%rdi)
movb %cl, 0x385(%rdi)
movl %edx, 0x388(%rdi)
movb %al, 0x384(%rdi)
movw %si, 0x386(%rdi)
movups %xmm0, 0x354(%rdi)
movups %xmm1, 0x364(%rdi)
movups %xmm2, 0x374(%rdi)
movl %eax, 0x350(%rdi)
movb %cl, 0x3e5(%rdi)
movl %edx, 0x3e8(%rdi)
movb %al, 0x3e4(%rdi)
movw %si, 0x3e6(%rdi)
movups %xmm0, 0x3b4(%rdi)
movups %xmm1, 0x3c4(%rdi)
movups %xmm2, 0x3d4(%rdi)
movl %eax, 0x3b0(%rdi)
movb %cl, 0x445(%rdi)
movl %edx, 0x448(%rdi)
movb %al, 0x444(%rdi)
movw %si, 0x446(%rdi)
movups %xmm0, 0x414(%rdi)
movups %xmm1, 0x424(%rdi)
movups %xmm2, 0x434(%rdi)
movl %eax, 0x410(%rdi)
movb %cl, 0x565(%rdi)
movl %edx, 0x568(%rdi)
movb %al, 0x564(%rdi)
movw %si, 0x566(%rdi)
movups %xmm0, 0x534(%rdi)
movups %xmm1, 0x544(%rdi)
movups %xmm2, 0x554(%rdi)
movl %eax, 0x530(%rdi)
movb %cl, 0x5c5(%rdi)
movl %edx, 0x5c8(%rdi)
movb %al, 0x5c4(%rdi)
movw %si, 0x5c6(%rdi)
movups %xmm0, 0x594(%rdi)
movups %xmm1, 0x5a4(%rdi)
movups %xmm2, 0x5b4(%rdi)
movl %eax, 0x590(%rdi)
movb %cl, 0x625(%rdi)
movl %edx, 0x628(%rdi)
movb %al, 0x624(%rdi)
movw %si, 0x626(%rdi)
movups %xmm0, 0x5f4(%rdi)
movups %xmm1, 0x604(%rdi)
movups %xmm2, 0x614(%rdi)
movl %eax, 0x5f0(%rdi)
movb %cl, 0x685(%rdi)
movl %edx, 0x688(%rdi)
movb %al, 0x684(%rdi)
movw %si, 0x686(%rdi)
movups %xmm0, 0x654(%rdi)
movups %xmm1, 0x664(%rdi)
movups %xmm2, 0x674(%rdi)
movl %eax, 0x650(%rdi)
movb %cl, 0x6e5(%rdi)
movl %edx, 0x6e8(%rdi)
movb %al, 0x6e4(%rdi)
movw %si, 0x6e6(%rdi)
movups %xmm0, 0x6b4(%rdi)
movups %xmm1, 0x6c4(%rdi)
movups %xmm2, 0x6d4(%rdi)
movl %eax, 0x6b0(%rdi)
movq 0x8(%rdi), %rdx
leaq 0x2d8bb(%rip), %r14     # 0x3c64a
xorl %esi, %esi
movq %r14, %rcx
xorl %r8d, %r8d
callq 0x65c0
leaq 0x70(%rbx), %rdi
movq 0x78(%rbx), %rdx
xorl %esi, %esi
movq %r14, %rcx
xorl %r8d, %r8d
callq 0x65c0
leaq 0x90(%rbx), %rdi
movq 0x98(%rbx), %rdx
xorl %esi, %esi
movq %r14, %rcx
xorl %r8d, %r8d
callq 0x65c0
leaq 0xb0(%rbx), %rdi
movq 0xb8(%rbx), %rdx
xorl %esi, %esi
movq %r14, %rcx
xorl %r8d, %r8d
callq 0x65c0
leaq 0xd0(%rbx), %rdi
movq 0xd8(%rbx), %rdx
xorl %esi, %esi
movq %r14, %rcx
xorl %r8d, %r8d
callq 0x65c0
leaq 0xf0(%rbx), %rdi
movq 0xf8(%rbx), %rdx
xorl %esi, %esi
movq %r14, %rcx
xorl %r8d, %r8d
callq 0x65c0
leaq 0x110(%rbx), %rdi
movq 0x118(%rbx), %rdx
xorl %esi, %esi
movq %r14, %rcx
xorl %r8d, %r8d
callq 0x65c0
leaq 0x150(%rbx), %rdi
movq 0x158(%rbx), %rdx
xorl %esi, %esi
movq %r14, %rcx
xorl %r8d, %r8d
callq 0x65c0
leaq 0x130(%rbx), %rdi
movq 0x138(%rbx), %rdx
xorl %esi, %esi
movq %r14, %rcx
xorl %r8d, %r8d
callq 0x65c0
xorps %xmm0, %xmm0
movups %xmm0, 0x20(%rbx)
movups %xmm0, 0x30(%rbx)
movups %xmm0, 0x40(%rbx)
movups %xmm0, 0x4c(%rbx)
movq $0x3f800000, 0x64(%rbx) # imm = 0x3F800000
movabsq $0x3f8000003f800000, %rax # imm = 0x3F8000003F800000
movq %rax, 0x5c(%rbx)
leaq 0x490(%rbx), %rdi
movups %xmm0, 0x470(%rbx)
movups %xmm0, 0x47c(%rbx)
movq 0x498(%rbx), %rdx
xorl %esi, %esi
movq %r14, %rcx
xorl %r8d, %r8d
callq 0x65c0
leaq 0x4b0(%rbx), %rdi
movq 0x4b8(%rbx), %rdx
xorl %esi, %esi
movq %r14, %rcx
xorl %r8d, %r8d
callq 0x65c0
leaq 0x4d0(%rbx), %rdi
movq 0x4d8(%rbx), %rdx
xorl %esi, %esi
movq %r14, %rcx
xorl %r8d, %r8d
callq 0x65c0
leaq 0x4f0(%rbx), %rdi
movq 0x4f8(%rbx), %rdx
xorl %esi, %esi
movq %r14, %rcx
xorl %r8d, %r8d
callq 0x65c0
leaq 0x510(%rbx), %rdi
movq 0x518(%rbx), %rdx
xorl %esi, %esi
movq %r14, %rcx
xorl %r8d, %r8d
callq 0x65c0
addq $0x718, %rbx            # imm = 0x718
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x1bd26