// File: tomfunkhouser[P]gaps/pkgs/RGBD/RGBDConfiguration.cpp
// Function: gaps::RGBDConfiguration::WriteConfigurationStream(_IO_FILE*, int) const
int RGBDConfiguration::
WriteConfigurationStream(FILE *fp, int write_every_kth_image) const
{
  // Write header
  fprintf(fp, "n_images %d\n", NImages());
  if (Name()) fprintf(fp, "sequence %s\n", Name());
  if (DatasetFormat()) fprintf(fp, "dataset %s\n", DatasetFormat());
  if (color_directory) fprintf(fp, "color_directory %s\n", color_directory);
  if (depth_directory) fprintf(fp, "depth_directory %s\n", depth_directory);
  if (category_directory) fprintf(fp, "category_directory %s\n", category_directory);
  if (instance_directory) fprintf(fp, "instance_directory %s\n", instance_directory);
  if (texture_directory) fprintf(fp, "texture_directory %s\n", texture_directory);
  
  // Write blank line
  fprintf(fp, "\n");

  // Write surfaces
  for (int i = 0; i < NSurfaces(); i++) {
    RGBDSurface *surface = Surface(i);
    // surface->WriteChannels();
    if (surface->rectangle) {
      R3Point centroid = surface->rectangle->Centroid();
      R3Vector normal = surface->rectangle->Normal();
      R3Vector up = surface->rectangle->Axis(1);
      RNLength rx = surface->rectangle->Radius(0);
      RNLength ry = surface->rectangle->Radius(1);
      const char *texture_filename = (surface->TextureFilename()) ? surface->TextureFilename() : "-";
      fprintf(fp, "rectangle  %s  %g   %g %g %g   %g %g %g   %g %g %g   %g %g %g\n",
        texture_filename, surface->WorldTexelSpacing(),
        centroid.X(), centroid.Y(), centroid.Z(),
        normal.X(), normal.Y(), normal.Z(),
        up.X(), up.Y(), up.Z(), rx, ry, surface->thickness);
    }
    else if (surface->mesh) {
      const char *texture_filename = (surface->TextureFilename()) ? surface->TextureFilename() : "-";
      const char *mesh_filename = (surface->MeshFilename()) ? surface->MeshFilename() : "-";
      fprintf(fp, "mesh  %s  %s  %g\n", texture_filename, mesh_filename, surface->WorldTexelSpacing());
    }
  }
  
  // Write blank line
  fprintf(fp, "\n");

  // Write images
  int image_width = 0;
  int image_height = 0;
  R3Matrix intrinsics_matrix = R3identity_matrix;
  for (int i = 0; i < NImages(); i++) {
    if ((write_every_kth_image > 1) && ((i % write_every_kth_image) != 0)) continue;
    RGBDImage *image = Image(i);

    // Write image dimensions
    if ((image->NPixels(RN_X) > 0) && (image->NPixels(RN_Y) > 0)) {
      if ((image->NPixels(RN_X) != image_width) || (image->NPixels(RN_Y) != image_height)) {
        fprintf(fp, "depth_resolution %d %d\n", image->NPixels(RN_X), image->NPixels(RN_Y));
        image_width = image->NPixels(RN_X);
        image_height = image->NPixels(RN_Y);
      }
    }

    // Write intrinsics matrix
    if (!image->Intrinsics().IsZero()) {
      if (image->Intrinsics() != intrinsics_matrix) {
        intrinsics_matrix = image->Intrinsics();
        fprintf(fp, "intrinsics_matrix  %g %g %g  %g %g %g  %g %g %g\n",
          intrinsics_matrix[0][0], intrinsics_matrix[0][1], intrinsics_matrix[0][2],
          intrinsics_matrix[1][0], intrinsics_matrix[1][1], intrinsics_matrix[1][2],
          intrinsics_matrix[2][0], intrinsics_matrix[2][1], intrinsics_matrix[2][2]);
      }
    }

    // Write images
    // if (!image->WriteChannels()) return 0;

    // Write image with extrinsics
    R4Matrix m = image->CameraToWorld().Matrix();
    const char *depth_filename = (image->DepthFilename()) ? image->DepthFilename() : "-";
    const char *color_filename = (image->ColorFilename()) ? image->ColorFilename() : "-";
    fprintf(fp, "image %s %s  %g %g %g %g  %g %g %g %g  %g %g %g %g  %g %g %g %g\n",
       depth_filename, color_filename, 
       m[0][0], m[0][1], m[0][2], m[0][3],
       m[1][0], m[1][1], m[1][2], m[1][3], 
       m[2][0], m[2][1], m[2][2], m[2][3],
       m[3][0], m[3][1], m[3][2], m[3][3]);
  }

  // Return success
  return 1;
}

// Assembly:
subq $0x368, %rsp            # imm = 0x368
movq %rdi, 0x360(%rsp)
movq %rsi, 0x358(%rsp)
movl %edx, 0x354(%rsp)
movq 0x360(%rsp), %rdi
movq %rdi, 0x1e0(%rsp)
movq 0x358(%rsp), %rax
movq %rax, 0x1d8(%rsp)
callq 0x19c40
movq 0x1d8(%rsp), %rdi
movl %eax, %edx
leaq 0x148f7f(%rip), %rsi    # 0x166933
movb $0x0, %al
callq 0x12a30
movq 0x1e0(%rsp), %rdi
callq 0x225b0
cmpq $0x0, %rax
je 0x1da04
movq 0x1e0(%rsp), %rdi
movq 0x358(%rsp), %rax
movq %rax, 0x1d0(%rsp)
callq 0x225b0
movq 0x1d0(%rsp), %rdi
movq %rax, %rdx
leaq 0x148f43(%rip), %rsi    # 0x166940
movb $0x0, %al
callq 0x12a30
movq 0x1e0(%rsp), %rdi
callq 0x225c0
cmpq $0x0, %rax
je 0x1da4d
movq 0x1e0(%rsp), %rdi
movq 0x358(%rsp), %rax
movq %rax, 0x1c8(%rsp)
callq 0x225c0
movq 0x1c8(%rsp), %rdi
movq %rax, %rdx
leaq 0x148f07(%rip), %rsi    # 0x16694d
movb $0x0, %al
callq 0x12a30
movq 0x1e0(%rsp), %rax
cmpq $0x0, 0x30(%rax)
je 0x1da7e
movq 0x1e0(%rsp), %rax
movq 0x358(%rsp), %rdi
movq 0x30(%rax), %rdx
leaq 0x148ee2(%rip), %rsi    # 0x166959
movb $0x0, %al
callq 0x12a30
movq 0x1e0(%rsp), %rax
cmpq $0x0, 0x38(%rax)
je 0x1daaf
movq 0x1e0(%rsp), %rax
movq 0x358(%rsp), %rdi
movq 0x38(%rax), %rdx
leaq 0x148ec5(%rip), %rsi    # 0x16696d
movb $0x0, %al
callq 0x12a30
movq 0x1e0(%rsp), %rax
cmpq $0x0, 0x40(%rax)
je 0x1dae0
movq 0x1e0(%rsp), %rax
movq 0x358(%rsp), %rdi
movq 0x40(%rax), %rdx
leaq 0x148ea8(%rip), %rsi    # 0x166981
movb $0x0, %al
callq 0x12a30
movq 0x1e0(%rsp), %rax
cmpq $0x0, 0x48(%rax)
je 0x1db11
movq 0x1e0(%rsp), %rax
movq 0x358(%rsp), %rdi
movq 0x48(%rax), %rdx
leaq 0x148e8e(%rip), %rsi    # 0x166998
movb $0x0, %al
callq 0x12a30
movq 0x1e0(%rsp), %rax
cmpq $0x0, 0x50(%rax)
je 0x1db42
movq 0x1e0(%rsp), %rax
movq 0x358(%rsp), %rdi
movq 0x50(%rax), %rdx
leaq 0x148e74(%rip), %rsi    # 0x1669af
movb $0x0, %al
callq 0x12a30
movq 0x358(%rsp), %rdi
leaq 0x14f3f1(%rip), %rsi    # 0x16cf42
movb $0x0, %al
callq 0x12a30
movl $0x0, 0x350(%rsp)
movq 0x1e0(%rsp), %rdi
movl 0x350(%rsp), %eax
movl %eax, 0x1c4(%rsp)
callq 0x19c60
movl %eax, %ecx
movl 0x1c4(%rsp), %eax
cmpl %ecx, %eax
jge 0x1df93
movq 0x1e0(%rsp), %rdi
movl 0x350(%rsp), %esi
callq 0x19f70
movq %rax, 0x348(%rsp)
movq 0x348(%rsp), %rax
cmpq $0x0, 0x80(%rax)
je 0x1de6a
movq 0x348(%rsp), %rax
movq 0x80(%rax), %rsi
movq (%rsi), %rax
leaq 0x330(%rsp), %rdi
callq *0x68(%rax)
movq 0x348(%rsp), %rax
movq 0x80(%rax), %rdi
callq 0x225d0
movq %rax, %rsi
leaq 0x318(%rsp), %rdi
callq 0x8bb40
movq 0x348(%rsp), %rax
movq 0x80(%rax), %rdi
movl $0x1, %esi
callq 0x22600
movq %rax, %rsi
leaq 0x300(%rsp), %rdi
callq 0x8bb40
movq 0x348(%rsp), %rax
movq 0x80(%rax), %rdi
xorl %esi, %esi
callq 0x22630
movsd %xmm0, 0x2f8(%rsp)
movq 0x348(%rsp), %rax
movq 0x80(%rax), %rdi
movl $0x1, %esi
callq 0x22630
movsd %xmm0, 0x2f0(%rsp)
movq 0x348(%rsp), %rdi
callq 0x22650
cmpq $0x0, %rax
je 0x1dc96
movq 0x348(%rsp), %rdi
callq 0x22650
movq %rax, 0x1b8(%rsp)
jmp 0x1dca7
leaq 0x1486b0(%rip), %rax    # 0x16634d
movq %rax, 0x1b8(%rsp)
jmp 0x1dca7
movq 0x1b8(%rsp), %rax
movq %rax, 0x2e8(%rsp)
movq 0x358(%rsp), %rax
movq %rax, 0x160(%rsp)
movq 0x2e8(%rsp), %rax
movq %rax, 0x168(%rsp)
movq 0x348(%rsp), %rdi
callq 0x1a010
movsd %xmm0, 0x1b0(%rsp)
leaq 0x330(%rsp), %rdi
callq 0x19ea0
movsd %xmm0, 0x170(%rsp)
leaq 0x330(%rsp), %rdi
callq 0x19eb0
movsd %xmm0, 0x178(%rsp)
leaq 0x330(%rsp), %rdi
callq 0x19ec0
movsd %xmm0, 0x180(%rsp)
leaq 0x318(%rsp), %rdi
callq 0x22660
movsd %xmm0, 0x188(%rsp)
leaq 0x318(%rsp), %rdi
callq 0x22670
movsd %xmm0, 0x190(%rsp)
leaq 0x318(%rsp), %rdi
callq 0x22680
movsd %xmm0, 0x198(%rsp)
leaq 0x300(%rsp), %rdi
callq 0x22660
movsd %xmm0, 0x1a0(%rsp)
leaq 0x300(%rsp), %rdi
callq 0x22670
movsd %xmm0, 0x1a8(%rsp)
leaq 0x300(%rsp), %rdi
callq 0x22680
movq 0x160(%rsp), %rdi
movq 0x168(%rsp), %rdx
movsd 0x170(%rsp), %xmm1
movsd 0x178(%rsp), %xmm2
movsd 0x180(%rsp), %xmm3
movsd 0x188(%rsp), %xmm4
movsd 0x190(%rsp), %xmm5
movsd 0x198(%rsp), %xmm6
movsd 0x1a0(%rsp), %xmm7
movsd 0x1a8(%rsp), %xmm12
movaps %xmm0, %xmm11
movsd 0x1b0(%rsp), %xmm0
movsd 0x2f8(%rsp), %xmm10
movsd 0x2f0(%rsp), %xmm9
movq 0x348(%rsp), %rax
movsd 0x98(%rax), %xmm8
leaq 0x148b89(%rip), %rsi    # 0x1669c5
movsd %xmm12, (%rsp)
movsd %xmm11, 0x8(%rsp)
movsd %xmm10, 0x10(%rsp)
movsd %xmm9, 0x18(%rsp)
movsd %xmm8, 0x20(%rsp)
movb $0x8, %al
callq 0x12a30
jmp 0x1df7b
movq 0x348(%rsp), %rax
cmpq $0x0, 0x88(%rax)
je 0x1df79
movq 0x348(%rsp), %rdi
callq 0x22650
cmpq $0x0, %rax
je 0x1deaa
movq 0x348(%rsp), %rdi
callq 0x22650
movq %rax, 0x158(%rsp)
jmp 0x1debb
leaq 0x14849c(%rip), %rax    # 0x16634d
movq %rax, 0x158(%rsp)
jmp 0x1debb
movq 0x158(%rsp), %rax
movq %rax, 0x2e0(%rsp)
movq 0x348(%rsp), %rdi
callq 0x22690
cmpq $0x0, %rax
je 0x1def5
movq 0x348(%rsp), %rdi
callq 0x22690
movq %rax, 0x150(%rsp)
jmp 0x1df06
leaq 0x148451(%rip), %rax    # 0x16634d
movq %rax, 0x150(%rsp)
jmp 0x1df06
movq 0x150(%rsp), %rax
movq %rax, 0x2d8(%rsp)
movq 0x358(%rsp), %rax
movq %rax, 0x138(%rsp)
movq 0x2e0(%rsp), %rax
movq %rax, 0x140(%rsp)
movq 0x2d8(%rsp), %rax
movq %rax, 0x148(%rsp)
movq 0x348(%rsp), %rdi
callq 0x1a010
movq 0x138(%rsp), %rdi
movq 0x140(%rsp), %rdx
movq 0x148(%rsp), %rcx
leaq 0x148a92(%rip), %rsi    # 0x166a04
movb $0x1, %al
callq 0x12a30
jmp 0x1df7b
jmp 0x1df7d
movl 0x350(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x350(%rsp)
jmp 0x1db63
movq 0x358(%rsp), %rdi
leaq 0x14efa0(%rip), %rsi    # 0x16cf42
movb $0x0, %al
callq 0x12a30
movl $0x0, 0x2d4(%rsp)
movl $0x0, 0x2d0(%rsp)
leaq 0x288(%rsp), %rdi
leaq 0x1965ca(%rip), %rsi    # 0x1b4598
callq 0xcc3e0
movl $0x0, 0x284(%rsp)
movq 0x1e0(%rsp), %rdi
movl 0x284(%rsp), %eax
movl %eax, 0x134(%rsp)
callq 0x19c40
movl %eax, %ecx
movl 0x134(%rsp), %eax
cmpl %ecx, %eax
jge 0x1e6c2
cmpl $0x1, 0x354(%rsp)
jle 0x1e02d
movl 0x284(%rsp), %eax
cltd
idivl 0x354(%rsp)
cmpl $0x0, %edx
je 0x1e02d
jmp 0x1e6ac
movq 0x1e0(%rsp), %rdi
movl 0x284(%rsp), %esi
callq 0x19c90
movq %rax, 0x278(%rsp)
movq 0x278(%rsp), %rdi
xorl %esi, %esi
callq 0x1af30
cmpl $0x0, %eax
jle 0x1e13b
movq 0x278(%rsp), %rdi
movl $0x1, %esi
callq 0x1af30
cmpl $0x0, %eax
jle 0x1e13b
movq 0x278(%rsp), %rdi
xorl %esi, %esi
callq 0x1af30
cmpl 0x2d4(%rsp), %eax
jne 0x1e0b3
movq 0x278(%rsp), %rdi
movl $0x1, %esi
callq 0x1af30
cmpl 0x2d0(%rsp), %eax
je 0x1e139
movq 0x358(%rsp), %rax
movq %rax, 0x128(%rsp)
movq 0x278(%rsp), %rdi
xorl %esi, %esi
callq 0x1af30
movl %eax, 0x130(%rsp)
movq 0x278(%rsp), %rdi
movl $0x1, %esi
callq 0x1af30
movq 0x128(%rsp), %rdi
movl 0x130(%rsp), %edx
movl %eax, %ecx
leaq 0x148913(%rip), %rsi    # 0x166a16
movb $0x0, %al
callq 0x12a30
movq 0x278(%rsp), %rdi
xorl %esi, %esi
callq 0x1af30
movl %eax, 0x2d4(%rsp)
movq 0x278(%rsp), %rdi
movl $0x1, %esi
callq 0x1af30
movl %eax, 0x2d0(%rsp)
jmp 0x1e13b
movq 0x278(%rsp), %rdi
callq 0x226a0
movq %rax, %rdi
callq 0xcc5d0
cmpl $0x0, %eax
jne 0x1e31e
movq 0x278(%rsp), %rdi
callq 0x226a0
movq %rax, %rdi
leaq 0x288(%rsp), %rsi
callq 0x226c0
cmpl $0x0, %eax
je 0x1e31c
movq 0x278(%rsp), %rdi
callq 0x226a0
movq %rax, %rsi
leaq 0x288(%rsp), %rdi
callq 0xcd370
movq 0x358(%rsp), %rax
movq %rax, 0xe0(%rsp)
leaq 0x288(%rsp), %rdi
xorl %esi, %esi
callq 0x226f0
movsd (%rax), %xmm0
movsd %xmm0, 0xe8(%rsp)
leaq 0x288(%rsp), %rdi
xorl %esi, %esi
callq 0x226f0
movsd 0x8(%rax), %xmm0
movsd %xmm0, 0xf0(%rsp)
leaq 0x288(%rsp), %rdi
xorl %esi, %esi
callq 0x226f0
movsd 0x10(%rax), %xmm0
movsd %xmm0, 0xf8(%rsp)
leaq 0x288(%rsp), %rdi
movl $0x1, %esi
callq 0x226f0
movsd (%rax), %xmm0
movsd %xmm0, 0x100(%rsp)
leaq 0x288(%rsp), %rdi
movl $0x1, %esi
callq 0x226f0
movsd 0x8(%rax), %xmm0
movsd %xmm0, 0x108(%rsp)
leaq 0x288(%rsp), %rdi
movl $0x1, %esi
callq 0x226f0
movsd 0x10(%rax), %xmm0
movsd %xmm0, 0x110(%rsp)
leaq 0x288(%rsp), %rdi
movl $0x2, %esi
callq 0x226f0
movsd (%rax), %xmm0
movsd %xmm0, 0x118(%rsp)
leaq 0x288(%rsp), %rdi
movl $0x2, %esi
callq 0x226f0
movsd 0x8(%rax), %xmm0
movsd %xmm0, 0x120(%rsp)
leaq 0x288(%rsp), %rdi
movl $0x2, %esi
callq 0x226f0
movq 0xe0(%rsp), %rdi
movsd 0xe8(%rsp), %xmm0
movsd 0xf0(%rsp), %xmm1
movsd 0xf8(%rsp), %xmm2
movsd 0x100(%rsp), %xmm3
movsd 0x108(%rsp), %xmm4
movsd 0x110(%rsp), %xmm5
movsd 0x118(%rsp), %xmm6
movsd 0x120(%rsp), %xmm7
movsd 0x10(%rax), %xmm8
leaq 0x14871f(%rip), %rsi    # 0x166a2e
movsd %xmm8, (%rsp)
movb $0x8, %al
callq 0x12a30
jmp 0x1e31e
movq 0x278(%rsp), %rdi
callq 0x22710
movq %rax, %rdi
callq 0x19ed0
movq %rax, %rsi
leaq 0x1f8(%rsp), %rdi
callq 0x84270
movq 0x278(%rsp), %rdi
callq 0x22720
cmpq $0x0, %rax
je 0x1e36d
movq 0x278(%rsp), %rdi
callq 0x22720
movq %rax, 0xd8(%rsp)
jmp 0x1e37e
leaq 0x147fd9(%rip), %rax    # 0x16634d
movq %rax, 0xd8(%rsp)
jmp 0x1e37e
movq 0xd8(%rsp), %rax
movq %rax, 0x1f0(%rsp)
movq 0x278(%rsp), %rdi
callq 0x22740
cmpq $0x0, %rax
je 0x1e3b8
movq 0x278(%rsp), %rdi
callq 0x22740
movq %rax, 0xd0(%rsp)
jmp 0x1e3c9
leaq 0x147f8e(%rip), %rax    # 0x16634d
movq %rax, 0xd0(%rsp)
jmp 0x1e3c9
movq 0xd0(%rsp), %rax
movq %rax, 0x1e8(%rsp)
movq 0x358(%rsp), %rax
movq %rax, 0x40(%rsp)
movq 0x1f0(%rsp), %rax
movq %rax, 0x48(%rsp)
movq 0x1e8(%rsp), %rax
movq %rax, 0x50(%rsp)
leaq 0x1f8(%rsp), %rdi
xorl %esi, %esi
callq 0x19ba0
movsd (%rax), %xmm0
movsd %xmm0, 0x58(%rsp)
leaq 0x1f8(%rsp), %rdi
xorl %esi, %esi
callq 0x19ba0
movsd 0x8(%rax), %xmm0
movsd %xmm0, 0x60(%rsp)
leaq 0x1f8(%rsp), %rdi
xorl %esi, %esi
callq 0x19ba0
movsd 0x10(%rax), %xmm0
movsd %xmm0, 0x68(%rsp)
leaq 0x1f8(%rsp), %rdi
xorl %esi, %esi
callq 0x19ba0
movsd 0x18(%rax), %xmm0
movsd %xmm0, 0x70(%rsp)
leaq 0x1f8(%rsp), %rdi
movl $0x1, %esi
callq 0x19ba0
movsd (%rax), %xmm0
movsd %xmm0, 0x78(%rsp)
leaq 0x1f8(%rsp), %rdi
movl $0x1, %esi
callq 0x19ba0
movsd 0x8(%rax), %xmm0
movsd %xmm0, 0x80(%rsp)
leaq 0x1f8(%rsp), %rdi
movl $0x1, %esi
callq 0x19ba0
movsd 0x10(%rax), %xmm0
movsd %xmm0, 0x88(%rsp)
leaq 0x1f8(%rsp), %rdi
movl $0x1, %esi
callq 0x19ba0
movsd 0x18(%rax), %xmm0
movsd %xmm0, 0x90(%rsp)
leaq 0x1f8(%rsp), %rdi
movl $0x2, %esi
callq 0x19ba0
movsd (%rax), %xmm0
movsd %xmm0, 0x98(%rsp)
leaq 0x1f8(%rsp), %rdi
movl $0x2, %esi
callq 0x19ba0
movsd 0x8(%rax), %xmm0
movsd %xmm0, 0xa0(%rsp)
leaq 0x1f8(%rsp), %rdi
movl $0x2, %esi
callq 0x19ba0
movsd 0x10(%rax), %xmm0
movsd %xmm0, 0xa8(%rsp)
leaq 0x1f8(%rsp), %rdi
movl $0x2, %esi
callq 0x19ba0
movsd 0x18(%rax), %xmm0
movsd %xmm0, 0xb0(%rsp)
leaq 0x1f8(%rsp), %rdi
movl $0x3, %esi
callq 0x19ba0
movsd (%rax), %xmm0
movsd %xmm0, 0xb8(%rsp)
leaq 0x1f8(%rsp), %rdi
movl $0x3, %esi
callq 0x19ba0
movsd 0x8(%rax), %xmm0
movsd %xmm0, 0xc0(%rsp)
leaq 0x1f8(%rsp), %rdi
movl $0x3, %esi
callq 0x19ba0
movsd 0x10(%rax), %xmm0
movsd %xmm0, 0xc8(%rsp)
leaq 0x1f8(%rsp), %rdi
movl $0x3, %esi
callq 0x19ba0
movq 0x40(%rsp), %rdi
movq 0x48(%rsp), %rdx
movq 0x50(%rsp), %rcx
movsd 0x58(%rsp), %xmm0
movsd 0x60(%rsp), %xmm1
movsd 0x68(%rsp), %xmm2
movsd 0x70(%rsp), %xmm3
movsd 0x78(%rsp), %xmm4
movsd 0x80(%rsp), %xmm5
movsd 0x88(%rsp), %xmm6
movsd 0x90(%rsp), %xmm7
movsd 0x98(%rsp), %xmm15
movsd 0xa0(%rsp), %xmm14
movsd 0xa8(%rsp), %xmm13
movsd 0xb0(%rsp), %xmm12
movsd 0xb8(%rsp), %xmm11
movsd 0xc0(%rsp), %xmm10
movsd 0xc8(%rsp), %xmm9
movsd 0x18(%rax), %xmm8
leaq 0x1483f1(%rip), %rsi    # 0x166a5f
movsd %xmm15, (%rsp)
movsd %xmm14, 0x8(%rsp)
movsd %xmm13, 0x10(%rsp)
movsd %xmm12, 0x18(%rsp)
movsd %xmm11, 0x20(%rsp)
movsd %xmm10, 0x28(%rsp)
movsd %xmm9, 0x30(%rsp)
movsd %xmm8, 0x38(%rsp)
movb $0x8, %al
callq 0x12a30
movl 0x284(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x284(%rsp)
jmp 0x1dfde
movl $0x1, %eax
addq $0x368, %rsp            # imm = 0x368
retq
nop