// File: /workspace/github_c_makefile_star2_O0/mikeakohn[P]print_pe/build/../src/minidump.c
// Function: print_minidump_thread_context_x86_64
static void print_minidump_thread_context_x86_64(FILE *in)
{
  int n;

  printf("    context_flags: 0x%x\n", read_uint32(in));
  printf("           mx_csr: 0x%x\n", read_uint32(in));

  read_uint64(in);
  read_uint64(in);
  read_uint64(in);
  read_uint64(in);
  read_uint64(in);
  read_uint64(in);

  printf("     fs: 0x%04x   es: 0x%04x   ds: 0x%04x   cs: 0x%04x\n",
   read_uint16(in), read_uint16(in), read_uint16(in), read_uint16(in));
  printf("          eflags: 0x%08x   ss: 0x%04x   gs: 0x%04x\n",
   read_uint32(in), read_uint16(in), read_uint16(in));

  printf("    dr0: 0x%016" PRIx64 "   dr1: 0x%016" PRIx64 "\n",
   read_uint64(in), read_uint64(in));
  printf("    dr2: 0x%016" PRIx64 "   dr3: 0x%016" PRIx64 "\n",
   read_uint64(in), read_uint64(in));
  printf("    dr6: 0x%016" PRIx64 "   dr7: 0x%016" PRIx64 "\n",
   read_uint64(in), read_uint64(in));

  printf("    rcx: 0x%016" PRIx64 "   rax: 0x%016" PRIx64 "\n",
   read_uint64(in), read_uint64(in));
  printf("    rbx: 0x%016" PRIx64 "   rdx: 0x%016" PRIx64 "\n",
   read_uint64(in), read_uint64(in));
  printf("    rbp: 0x%016" PRIx64 "   rsp: 0x%016" PRIx64 "\n",
   read_uint64(in), read_uint64(in));
  printf("    rdi: 0x%016" PRIx64 "   rsi: 0x%016" PRIx64 "\n",
   read_uint64(in), read_uint64(in));
  printf("     r9: 0x%016" PRIx64 "    r8: 0x%016" PRIx64 "\n",
   read_uint64(in), read_uint64(in));
  printf("    r11: 0x%016" PRIx64 "   r10: 0x%016" PRIx64 "\n",
   read_uint64(in), read_uint64(in));
  printf("    r13: 0x%016" PRIx64 "   r12: 0x%016" PRIx64 "\n",
   read_uint64(in), read_uint64(in));
  printf("    r15: 0x%016" PRIx64 "   r14: 0x%016" PRIx64 "\n",
   read_uint64(in), read_uint64(in));
  printf("    rip: 0x%016" PRIx64 "\n", read_uint64(in));

  // Fxsave
  printf("    fcw: 0x%04x  fsw: 0x%04x  ftw: 0x%04x  reserved_1: 0x%04x\n",
    read_uint16(in), read_uint16(in), read_uint8(in), read_uint8(in));
  printf("    fop: 0x%04x\n", read_uint16(in));
  printf("    fpu_ip_64: 0x%016" PRIx64 "   fpu_dp_64: 0x%016" PRIx64 "\n",
   read_uint64(in), read_uint64(in));
  printf("     mxcsr: 0x%x  mxcsr_mask: 0x%x\n",
    read_uint32(in), read_uint32(in));

  for (n = 0; n < 8; n++)
  {
    printf("  mm%d: 0x%016" PRIx64, n, read_uint64(in));

    read_uint64(in);

    if ((n % 2) == 1) { printf("\n"); }
  }

  for (n = 0; n < 16; n++)
  {
    printf(" xmm%d: 0x%08x 0x%08x 0x%08x 0x%08x\n", n,
      read_uint32(in), read_uint32(in), read_uint32(in), read_uint32(in));
  }

  for (n = 0; n < 26; n++)
  {
    printf(" ymm%d: 0x%08x 0x%08x 0x%08x 0x%08x\n", n,
      read_uint32(in), read_uint32(in), read_uint32(in), read_uint32(in));
    printf("        0x%08x 0x%08x 0x%08x 0x%08x\n",
      read_uint32(in), read_uint32(in), read_uint32(in), read_uint32(in));
  }

  printf("  p1_home: 0x%016" PRIx64 "  p2_home: 0x%016" PRIx64 "\n",
   read_uint64(in), read_uint64(in));
  printf("  p3_home: 0x%016" PRIx64 "  p4_home: 0x%016" PRIx64 "\n",
   read_uint64(in), read_uint64(in));
  printf("  p5_home: 0x%016" PRIx64 "  p6_home: 0x%016" PRIx64 "\n",
   read_uint64(in), read_uint64(in));
  printf("            debug_control: 0x%016" PRIx64 "\n", read_uint64(in));
  printf("       last_branch_to_rip: 0x%016" PRIx64 "\n", read_uint64(in));
  printf("     last_branch_from_rip: 0x%016" PRIx64 "\n", read_uint64(in));
  printf("    last_exception_to_rip: 0x%016" PRIx64 "\n", read_uint64(in));
  printf("  last_exception_from_rip: 0x%016" PRIx64 "\n", read_uint64(in));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xe0, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1a00
movl %eax, %esi
leaq 0x1708(%rip), %rdi      # 0x4d59
movb $0x0, %al
callq 0x1050
movq -0x8(%rbp), %rdi
callq 0x1a00
movl %eax, %esi
leaq 0x1a53(%rip), %rdi      # 0x50bd
movb $0x0, %al
callq 0x1050
movq -0x8(%rbp), %rdi
callq 0x1930
movq -0x8(%rbp), %rdi
callq 0x1930
movq -0x8(%rbp), %rdi
callq 0x1930
movq -0x8(%rbp), %rdi
callq 0x1930
movq -0x8(%rbp), %rdi
callq 0x1930
movq -0x8(%rbp), %rdi
callq 0x1930
movq -0x8(%rbp), %rdi
callq 0x1a60
movl %eax, -0x94(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1a60
movl %eax, -0x90(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1a60
movl %eax, -0x8c(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1a60
movl -0x94(%rbp), %esi
movl -0x90(%rbp), %edx
movl -0x8c(%rbp), %ecx
movl %eax, %r8d
leaq 0x19dd(%rip), %rdi      # 0x50d6
movb $0x0, %al
callq 0x1050
movq -0x8(%rbp), %rdi
callq 0x1a00
movl %eax, -0x88(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1a60
movl %eax, -0x84(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1a60
movl -0x88(%rbp), %esi
movl -0x84(%rbp), %edx
movl %eax, %ecx
leaq 0x19d2(%rip), %rdi      # 0x510e
movb $0x0, %al
callq 0x1050
movq -0x8(%rbp), %rdi
callq 0x1930
movq %rax, -0x80(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1930
movq -0x80(%rbp), %rsi
movq %rax, %rdx
leaq 0x19db(%rip), %rdi      # 0x5142
movb $0x0, %al
callq 0x1050
movq -0x8(%rbp), %rdi
callq 0x1930
movq %rax, -0x78(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1930
movq -0x78(%rbp), %rsi
movq %rax, %rdx
leaq 0x19d3(%rip), %rdi      # 0x5165
movb $0x0, %al
callq 0x1050
movq -0x8(%rbp), %rdi
callq 0x1930
movq %rax, -0x70(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1930
movq -0x70(%rbp), %rsi
movq %rax, %rdx
leaq 0x19cb(%rip), %rdi      # 0x5188
movb $0x0, %al
callq 0x1050
movq -0x8(%rbp), %rdi
callq 0x1930
movq %rax, -0x68(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1930
movq -0x68(%rbp), %rsi
movq %rax, %rdx
leaq 0x19c3(%rip), %rdi      # 0x51ab
movb $0x0, %al
callq 0x1050
movq -0x8(%rbp), %rdi
callq 0x1930
movq %rax, -0x60(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1930
movq -0x60(%rbp), %rsi
movq %rax, %rdx
leaq 0x19bb(%rip), %rdi      # 0x51ce
movb $0x0, %al
callq 0x1050
movq -0x8(%rbp), %rdi
callq 0x1930
movq %rax, -0x58(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1930
movq -0x58(%rbp), %rsi
movq %rax, %rdx
leaq 0x19b3(%rip), %rdi      # 0x51f1
movb $0x0, %al
callq 0x1050
movq -0x8(%rbp), %rdi
callq 0x1930
movq %rax, -0x50(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1930
movq -0x50(%rbp), %rsi
movq %rax, %rdx
leaq 0x19ab(%rip), %rdi      # 0x5214
movb $0x0, %al
callq 0x1050
movq -0x8(%rbp), %rdi
callq 0x1930
movq %rax, -0x48(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1930
movq -0x48(%rbp), %rsi
movq %rax, %rdx
leaq 0x19a3(%rip), %rdi      # 0x5237
movb $0x0, %al
callq 0x1050
movq -0x8(%rbp), %rdi
callq 0x1930
movq %rax, -0x40(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1930
movq -0x40(%rbp), %rsi
movq %rax, %rdx
leaq 0x199b(%rip), %rdi      # 0x525a
movb $0x0, %al
callq 0x1050
movq -0x8(%rbp), %rdi
callq 0x1930
movq %rax, -0x38(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1930
movq -0x38(%rbp), %rsi
movq %rax, %rdx
leaq 0x1993(%rip), %rdi      # 0x527d
movb $0x0, %al
callq 0x1050
movq -0x8(%rbp), %rdi
callq 0x1930
movq %rax, -0x30(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1930
movq -0x30(%rbp), %rsi
movq %rax, %rdx
leaq 0x198b(%rip), %rdi      # 0x52a0
movb $0x0, %al
callq 0x1050
movq -0x8(%rbp), %rdi
callq 0x1930
movq %rax, %rsi
leaq 0x1994(%rip), %rdi      # 0x52c3
movb $0x0, %al
callq 0x1050
movq -0x8(%rbp), %rdi
callq 0x1a60
movl %eax, -0x24(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1a60
movl %eax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1aa0
movl %eax, -0x1c(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1aa0
movl -0x24(%rbp), %esi
movl -0x20(%rbp), %edx
movl -0x1c(%rbp), %ecx
movl %eax, %r8d
leaq 0x1960(%rip), %rdi      # 0x52d6
movb $0x0, %al
callq 0x1050
movq -0x8(%rbp), %rdi
callq 0x1a60
movl %eax, %esi
leaq 0x1986(%rip), %rdi      # 0x5315
movb $0x0, %al
callq 0x1050
movq -0x8(%rbp), %rdi
callq 0x1930
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1930
movq -0x18(%rbp), %rsi
movq %rax, %rdx
leaq 0x196c(%rip), %rdi      # 0x5326
movb $0x0, %al
callq 0x1050
movq -0x8(%rbp), %rdi
callq 0x1a00
movl %eax, -0x10(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1a00
movl -0x10(%rbp), %esi
movl %eax, %edx
leaq 0x1973(%rip), %rdi      # 0x5355
movb $0x0, %al
callq 0x1050
movl $0x0, -0xc(%rbp)
cmpl $0x8, -0xc(%rbp)
jge 0x3a53
movl -0xc(%rbp), %eax
movl %eax, -0x98(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1930
movl -0x98(%rbp), %esi
movq %rax, %rdx
leaq 0x166f(%rip), %rdi      # 0x5087
movb $0x0, %al
callq 0x1050
movq -0x8(%rbp), %rdi
callq 0x1930
movl -0xc(%rbp), %eax
movl $0x2, %ecx
cltd
idivl %ecx
cmpl $0x1, %edx
jne 0x3a46
leaq 0x6bc(%rip), %rdi       # 0x40fb
movb $0x0, %al
callq 0x1050
jmp 0x3a48
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x39f0
movl $0x0, -0xc(%rbp)
cmpl $0x10, -0xc(%rbp)
jge 0x3ad4
movl -0xc(%rbp), %eax
movl %eax, -0xa8(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1a00
movl %eax, -0xa4(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1a00
movl %eax, -0xa0(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1a00
movl %eax, -0x9c(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1a00
movl -0xa8(%rbp), %esi
movl -0xa4(%rbp), %edx
movl -0xa0(%rbp), %ecx
movl -0x9c(%rbp), %r8d
movl %eax, %r9d
leaq 0x15d6(%rip), %rdi      # 0x5098
movb $0x0, %al
callq 0x1050
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x3a5a
movl $0x0, -0xc(%rbp)
cmpl $0x1a, -0xc(%rbp)
jge 0x3bb5
movl -0xc(%rbp), %eax
movl %eax, -0xc4(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1a00
movl %eax, -0xc0(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1a00
movl %eax, -0xbc(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1a00
movl %eax, -0xb8(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1a00
movl -0xc4(%rbp), %esi
movl -0xc0(%rbp), %edx
movl -0xbc(%rbp), %ecx
movl -0xb8(%rbp), %r8d
movl %eax, %r9d
leaq 0x1832(%rip), %rdi      # 0x5379
movb $0x0, %al
callq 0x1050
movq -0x8(%rbp), %rdi
callq 0x1a00
movl %eax, -0xb4(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1a00
movl %eax, -0xb0(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1a00
movl %eax, -0xac(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1a00
movl -0xb4(%rbp), %esi
movl -0xb0(%rbp), %edx
movl -0xac(%rbp), %ecx
movl %eax, %r8d
leaq 0x17fe(%rip), %rdi      # 0x539e
movb $0x0, %al
callq 0x1050
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x3adb
movq -0x8(%rbp), %rdi
callq 0x1930
movq %rax, -0xe0(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1930
movq -0xe0(%rbp), %rsi
movq %rax, %rdx
leaq 0x17e4(%rip), %rdi      # 0x53c3
movb $0x0, %al
callq 0x1050
movq -0x8(%rbp), %rdi
callq 0x1930
movq %rax, -0xd8(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1930
movq -0xd8(%rbp), %rsi
movq %rax, %rdx
leaq 0x17db(%rip), %rdi      # 0x53eb
movb $0x0, %al
callq 0x1050
movq -0x8(%rbp), %rdi
callq 0x1930
movq %rax, -0xd0(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1930
movq -0xd0(%rbp), %rsi
movq %rax, %rdx
leaq 0x17d2(%rip), %rdi      # 0x5413
movb $0x0, %al
callq 0x1050
movq -0x8(%rbp), %rdi
callq 0x1930
movq %rax, %rsi
leaq 0x17e0(%rip), %rdi      # 0x543b
movb $0x0, %al
callq 0x1050
movq -0x8(%rbp), %rdi
callq 0x1930
movq %rax, %rsi
leaq 0x17eb(%rip), %rdi      # 0x5460
movb $0x0, %al
callq 0x1050
movq -0x8(%rbp), %rdi
callq 0x1930
movq %rax, %rsi
leaq 0x17f6(%rip), %rdi      # 0x5485
movb $0x0, %al
callq 0x1050
movq -0x8(%rbp), %rdi
callq 0x1930
movq %rax, %rsi
leaq 0x1801(%rip), %rdi      # 0x54aa
movb $0x0, %al
callq 0x1050
movq -0x8(%rbp), %rdi
callq 0x1930
movq %rax, %rsi
leaq 0x180c(%rip), %rdi      # 0x54cf
movb $0x0, %al
callq 0x1050
addq $0xe0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nopl (%rax)