// File: tomfunkhouser[P]gaps/apps/scninfo/scninfo.cpp
// Function: PrintNodes(gaps::R3Scene*, gaps::R3SceneNode*, int, int)
static int
PrintNodes(R3Scene *scene, R3SceneNode *node, int index, int level)
{
  // Construct indent
  char indent[4096] = { '\0' };
  for (int i = 0; i < level; i++) {
    strcat(indent, "  ");
  }

  // Print node
  const char *name = node->Name();
  R3Box bbox = node->BBox();
  R3Point centroid = node->Centroid();
  R4Matrix m = node->Transformation().Matrix();
  printf("%sNode %s\n", indent, (name) ? name : "Null");
  printf("%s  Parent  = %s\n", indent, (node->Parent()) ? ((node->Parent()->Name()) ? node->Parent()->Name() : "NoName") : "None");
  printf("%s  Parent index = %d\n", indent, node->ParentIndex());
  printf("%s  Scene index = %d\n", indent, node->SceneIndex());
  printf("%s  # Elements = %d\n", indent, node->NElements());
  printf("%s  # References = %d\n", indent, node->NReferences());
  printf("%s  # Facets = %g\n", indent, node->NFacets().Mid());

  // Print properties
  printf("%s  Area = %g\n", indent, node->Area());
  printf("%s  Centroid = %g %g %g\n", indent, centroid[0], centroid[1], centroid[2]);
  printf("%s  BBox = ( %g %g %g ) ( %g %g %g )\n", indent, bbox[0][0], bbox[0][1], bbox[0][2], bbox[1][0], bbox[1][1], bbox[1][2]);

  // Print categories
  if (node->Info("index")) printf("%s  Category index = %s\n", indent, node->Info("index"));
  if (node->Info("model_id")) printf("%s  Category model id = %s\n", indent, node->Info("model_id"));
  if (node->Info("fine_grained_class")) printf("%s  Fine grained class = %s\n", indent, node->Info("fine_grained_class"));
  if (node->Info("coarse_grained_class")) printf("%s  Coarse grained class = %s\n", indent, node->Info("coarse_grained_class"));
  if (node->Info("nyuv2_40class")) printf("%s  NYUv2 40 class = %s\n", indent, node->Info("nyuv2_40class"));

  // Print transformation
  printf("%s  Transformation matrix = \n", indent);
  printf("%s    %12.3g %12.3g %12.3g %12.3g\n", indent, m[0][0], m[0][1], m[0][2], m[0][3]);
  printf("%s    %12.3g %12.3g %12.3g %12.3g\n", indent, m[1][0], m[1][1], m[1][2], m[1][3]);
  printf("%s    %12.3g %12.3g %12.3g %12.3g\n", indent, m[2][0], m[2][1], m[2][2], m[2][3]);
  printf("%s    %12.3g %12.3g %12.3g %12.3g\n", indent, m[3][0], m[3][1], m[3][2], m[3][3]);
  printf("\n");

  // Print elements
  if (print_elements) {
    for (int i = 0; i < node->NElements(); i++) {
      R3SceneElement *element = node->Element(i);
      if (!PrintElement(element, i, level+1)) return 0;
    }
  }

  // Print references
  if (print_references) {
    for (int i = 0; i < node->NReferences(); i++) {
      R3SceneReference *reference = node->Reference(i);
      if (!PrintReference(reference, i, level+1)) return 0;
    }
  }

  // Print children
  for (int i = 0; i < node->NChildren(); i++) {
    R3SceneNode *child = node->Child(i);
    if (!PrintNodes(scene, child, i, level+1)) return 0;
  }

  // Return success
  return 1;
}

// Assembly:
subq $0x1468, %rsp           # imm = 0x1468
movq %rdi, 0x1458(%rsp)
movq %rsi, 0x1450(%rsp)
movl %edx, 0x144c(%rsp)
movl %ecx, 0x1448(%rsp)
leaq 0x440(%rsp), %rdi
xorl %esi, %esi
movl $0x1000, %edx           # imm = 0x1000
callq 0x224b0
movl $0x0, 0x43c(%rsp)
movl 0x43c(%rsp), %eax
cmpl 0x1448(%rsp), %eax
jge 0x278db
leaq 0x440(%rsp), %rdi
leaq 0x167f9e(%rip), %rsi    # 0x18f861
callq 0x23230
movl 0x43c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x43c(%rsp)
jmp 0x278a4
movq 0x1450(%rsp), %rdi
callq 0x29c60
movq %rax, 0x430(%rsp)
movq 0x1450(%rsp), %rdi
callq 0x54d50
movq %rax, %rsi
leaq 0x3f8(%rsp), %rdi
callq 0xb53c0
movq 0x1450(%rsp), %rsi
leaq 0x3e0(%rsp), %rdi
callq 0x550f0
jmp 0x27924
movq 0x1450(%rsp), %rdi
callq 0x29c80
movq %rax, 0x308(%rsp)
jmp 0x2793b
movq 0x308(%rsp), %rdi
callq 0x29c90
movq %rax, 0x300(%rsp)
jmp 0x27952
movq 0x300(%rsp), %rsi
leaq 0x350(%rsp), %rdi
callq 0xc4220
jmp 0x27969
leaq 0x440(%rsp), %rax
movq %rax, 0x2f8(%rsp)
cmpq $0x0, 0x430(%rsp)
je 0x27996
movq 0x430(%rsp), %rax
movq %rax, 0x2f0(%rsp)
jmp 0x279a7
leaq 0x164858(%rip), %rax    # 0x18c1f5
movq %rax, 0x2f0(%rsp)
jmp 0x279a7
movq 0x2f8(%rsp), %rsi
movq 0x2f0(%rsp), %rdx
leaq 0x16482c(%rip), %rdi    # 0x18c1ea
xorl %eax, %eax
callq 0x22090
jmp 0x279c7
leaq 0x440(%rsp), %rax
movq %rax, 0x2e0(%rsp)
movq 0x1450(%rsp), %rdi
callq 0x29ca0
movq %rax, 0x2e8(%rsp)
jmp 0x279ee
movq 0x2e8(%rsp), %rax
cmpq $0x0, %rax
je 0x27a9f
movq 0x1450(%rsp), %rdi
callq 0x29ca0
movq %rax, 0x2d8(%rsp)
jmp 0x27a17
movq 0x2d8(%rsp), %rdi
callq 0x29c60
movq %rax, 0x2d0(%rsp)
jmp 0x27a2e
movq 0x2d0(%rsp), %rax
cmpq $0x0, %rax
je 0x27a7c
movq 0x1450(%rsp), %rdi
callq 0x29ca0
movq %rax, 0x2c8(%rsp)
jmp 0x27a53
movq 0x2c8(%rsp), %rdi
callq 0x29c60
movq %rax, 0x2c0(%rsp)
jmp 0x27a6a
movq 0x2c0(%rsp), %rax
movq %rax, 0x2b8(%rsp)
jmp 0x27a8d
leaq 0x164789(%rip), %rax    # 0x18c20c
movq %rax, 0x2b8(%rsp)
jmp 0x27a8d
movq 0x2b8(%rsp), %rax
movq %rax, 0x2b0(%rsp)
jmp 0x27ab0
leaq 0x16476d(%rip), %rax    # 0x18c213
movq %rax, 0x2b0(%rsp)
jmp 0x27ab0
movq 0x2e0(%rsp), %rsi
movq 0x2b0(%rsp), %rdx
leaq 0x164733(%rip), %rdi    # 0x18c1fa
xorl %eax, %eax
callq 0x22090
jmp 0x27ad0
leaq 0x440(%rsp), %rax
movq %rax, 0x2a0(%rsp)
movq 0x1450(%rsp), %rdi
callq 0x29cb0
movl %eax, 0x2ac(%rsp)
jmp 0x27af6
movl 0x2ac(%rsp), %edx
movq 0x2a0(%rsp), %rsi
leaq 0x16470c(%rip), %rdi    # 0x18c218
xorl %eax, %eax
callq 0x22090
jmp 0x27b15
leaq 0x440(%rsp), %rax
movq %rax, 0x290(%rsp)
movq 0x1450(%rsp), %rdi
callq 0x29cc0
movl %eax, 0x29c(%rsp)
jmp 0x27b3b
movl 0x29c(%rsp), %edx
movq 0x290(%rsp), %rsi
leaq 0x1646de(%rip), %rdi    # 0x18c22f
xorl %eax, %eax
callq 0x22090
jmp 0x27b5a
leaq 0x440(%rsp), %rax
movq %rax, 0x280(%rsp)
movq 0x1450(%rsp), %rdi
callq 0x29cd0
movl %eax, 0x28c(%rsp)
jmp 0x27b80
movl 0x28c(%rsp), %edx
movq 0x280(%rsp), %rsi
leaq 0x1646af(%rip), %rdi    # 0x18c245
xorl %eax, %eax
callq 0x22090
jmp 0x27b9f
leaq 0x440(%rsp), %rax
movq %rax, 0x270(%rsp)
movq 0x1450(%rsp), %rdi
callq 0x29cf0
movl %eax, 0x27c(%rsp)
jmp 0x27bc5
movl 0x27c(%rsp), %edx
movq 0x270(%rsp), %rsi
leaq 0x16467f(%rip), %rdi    # 0x18c25a
xorl %eax, %eax
callq 0x22090
jmp 0x27be4
leaq 0x440(%rsp), %rax
movq %rax, 0x268(%rsp)
movq 0x1450(%rsp), %rsi
leaq 0x340(%rsp), %rdi
callq 0x53dd0
jmp 0x27c0b
leaq 0x340(%rsp), %rdi
callq 0x29d10
movsd %xmm0, 0x260(%rsp)
jmp 0x27c23
movsd 0x260(%rsp), %xmm0
movq 0x268(%rsp), %rsi
leaq 0x164636(%rip), %rdi    # 0x18c271
movb $0x1, %al
callq 0x22090
jmp 0x27c44
leaq 0x440(%rsp), %rax
movq %rax, 0x250(%rsp)
movq 0x1450(%rsp), %rdi
callq 0x540c0
movsd %xmm0, 0x258(%rsp)
jmp 0x27c6c
movsd 0x258(%rsp), %xmm0
movq 0x250(%rsp), %rsi
leaq 0x164600(%rip), %rdi    # 0x18c284
movb $0x1, %al
callq 0x22090
jmp 0x27c8d
leaq 0x3e0(%rsp), %rdi
movq %rdi, 0x238(%rsp)
xorl %esi, %esi
callq 0x29b10
movq 0x238(%rsp), %rdi
movsd (%rax), %xmm0
movsd %xmm0, 0x240(%rsp)
movl $0x1, %esi
callq 0x29b10
movq 0x238(%rsp), %rdi
movsd (%rax), %xmm0
movsd %xmm0, 0x248(%rsp)
movl $0x2, %esi
callq 0x29b10
movsd 0x240(%rsp), %xmm0
movsd 0x248(%rsp), %xmm1
movsd (%rax), %xmm2
leaq 0x164594(%rip), %rdi    # 0x18c293
leaq 0x440(%rsp), %rsi
movb $0x3, %al
callq 0x22090
jmp 0x27d10
leaq 0x440(%rsp), %rax
movq %rax, 0x228(%rsp)
leaq 0x3f8(%rsp), %rdi
xorl %esi, %esi
callq 0x29d30
movq %rax, 0x230(%rsp)
jmp 0x27d39
movq 0x230(%rsp), %rdi
xorl %esi, %esi
movl %esi, 0x214(%rsp)
callq 0x29b10
movl 0x214(%rsp), %esi
movsd (%rax), %xmm0
movsd %xmm0, 0x218(%rsp)
leaq 0x3f8(%rsp), %rdi
callq 0x29d30
movq %rax, 0x220(%rsp)
jmp 0x27d7a
movq 0x220(%rsp), %rdi
movl $0x1, %esi
callq 0x29b10
movsd (%rax), %xmm0
movsd %xmm0, 0x200(%rsp)
leaq 0x3f8(%rsp), %rdi
xorl %esi, %esi
callq 0x29d30
movq %rax, 0x208(%rsp)
jmp 0x27db2
movq 0x208(%rsp), %rdi
movl $0x2, %esi
callq 0x29b10
movsd (%rax), %xmm0
movsd %xmm0, 0x1f0(%rsp)
leaq 0x3f8(%rsp), %rdi
movl $0x1, %esi
callq 0x29d30
movq %rax, 0x1f8(%rsp)
jmp 0x27ded
movq 0x1f8(%rsp), %rdi
xorl %esi, %esi
callq 0x29b10
movsd (%rax), %xmm0
movsd %xmm0, 0x1e0(%rsp)
leaq 0x3f8(%rsp), %rdi
movl $0x1, %esi
callq 0x29d30
movq %rax, 0x1e8(%rsp)
jmp 0x27e25
movq 0x1e8(%rsp), %rdi
movl $0x1, %esi
movl %esi, 0x1cc(%rsp)
callq 0x29b10
movl 0x1cc(%rsp), %esi
movsd (%rax), %xmm0
movsd %xmm0, 0x1d0(%rsp)
leaq 0x3f8(%rsp), %rdi
callq 0x29d30
movq %rax, 0x1d8(%rsp)
jmp 0x27e69
movq 0x1d8(%rsp), %rdi
movl $0x2, %esi
callq 0x29b10
movq 0x228(%rsp), %rsi
movsd 0x218(%rsp), %xmm0
movsd 0x200(%rsp), %xmm1
movsd 0x1f0(%rsp), %xmm2
movsd 0x1e0(%rsp), %xmm3
movsd 0x1d0(%rsp), %xmm4
movsd (%rax), %xmm5
leaq 0x1643f1(%rip), %rdi    # 0x18c2ac
movb $0x6, %al
callq 0x22090
jmp 0x27ec4
movq 0x1450(%rsp), %rdi
leaq 0x1737b2(%rip), %rsi    # 0x19b685
callq 0x29d70
movq %rax, 0x1c0(%rsp)
jmp 0x27ee2
movq 0x1c0(%rsp), %rax
cmpq $0x0, %rax
je 0x27f66
leaq 0x440(%rsp), %rax
movq %rax, 0x1b0(%rsp)
movq 0x1450(%rsp), %rdi
leaq 0x173776(%rip), %rsi    # 0x19b685
callq 0x29d70
movq %rax, 0x1b8(%rsp)
jmp 0x27f1e
movq 0x1b8(%rsp), %rdx
movq 0x1b0(%rsp), %rsi
leaq 0x16439d(%rip), %rdi    # 0x18c2d2
xorl %eax, %eax
callq 0x22090
jmp 0x27f3e
jmp 0x27f66
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3d8(%rsp)
movl %eax, 0x3d4(%rsp)
leaq 0x3f8(%rsp), %rdi
callq 0x29f40
jmp 0x287e7
movq 0x1450(%rsp), %rdi
leaq 0x164376(%rip), %rsi    # 0x18c2eb
callq 0x29d70
movq %rax, 0x1a8(%rsp)
jmp 0x27f84
movq 0x1a8(%rsp), %rax
cmpq $0x0, %rax
je 0x27fe2
leaq 0x440(%rsp), %rax
movq %rax, 0x198(%rsp)
movq 0x1450(%rsp), %rdi
leaq 0x16433a(%rip), %rsi    # 0x18c2eb
callq 0x29d70
movq %rax, 0x1a0(%rsp)
jmp 0x27fc0
movq 0x1a0(%rsp), %rdx
movq 0x198(%rsp), %rsi
leaq 0x16431d(%rip), %rdi    # 0x18c2f4
xorl %eax, %eax
callq 0x22090
jmp 0x27fe0
jmp 0x27fe2
movq 0x1450(%rsp), %rdi
leaq 0x16431f(%rip), %rsi    # 0x18c310
callq 0x29d70
movq %rax, 0x190(%rsp)
jmp 0x28000
movq 0x190(%rsp), %rax
cmpq $0x0, %rax
je 0x2805e
leaq 0x440(%rsp), %rax
movq %rax, 0x180(%rsp)
movq 0x1450(%rsp), %rdi
leaq 0x1642e3(%rip), %rsi    # 0x18c310
callq 0x29d70
movq %rax, 0x188(%rsp)
jmp 0x2803c
movq 0x188(%rsp), %rdx
movq 0x180(%rsp), %rsi
leaq 0x1642d0(%rip), %rdi    # 0x18c323
xorl %eax, %eax
callq 0x22090
jmp 0x2805c
jmp 0x2805e
movq 0x1450(%rsp), %rdi
leaq 0x1642d3(%rip), %rsi    # 0x18c340
callq 0x29d70
movq %rax, 0x178(%rsp)
jmp 0x2807c
movq 0x178(%rsp), %rax
cmpq $0x0, %rax
je 0x280da
leaq 0x440(%rsp), %rax
movq %rax, 0x168(%rsp)
movq 0x1450(%rsp), %rdi
leaq 0x164297(%rip), %rsi    # 0x18c340
callq 0x29d70
movq %rax, 0x170(%rsp)
jmp 0x280b8
movq 0x170(%rsp), %rdx
movq 0x168(%rsp), %rsi
leaq 0x164286(%rip), %rdi    # 0x18c355
xorl %eax, %eax
callq 0x22090
jmp 0x280d8
jmp 0x280da
movq 0x1450(%rsp), %rdi
leaq 0x16428b(%rip), %rsi    # 0x18c374
callq 0x29d70
movq %rax, 0x160(%rsp)
jmp 0x280f8
movq 0x160(%rsp), %rax
cmpq $0x0, %rax
je 0x28156
leaq 0x440(%rsp), %rax
movq %rax, 0x150(%rsp)
movq 0x1450(%rsp), %rdi
leaq 0x16424f(%rip), %rsi    # 0x18c374
callq 0x29d70
movq %rax, 0x158(%rsp)
jmp 0x28134
movq 0x158(%rsp), %rdx
movq 0x150(%rsp), %rsi
leaq 0x164237(%rip), %rdi    # 0x18c382
xorl %eax, %eax
callq 0x22090
jmp 0x28154
jmp 0x28156
leaq 0x16423e(%rip), %rdi    # 0x18c39b
xorl %eax, %eax
leaq 0x440(%rsp), %rsi
callq 0x22090
jmp 0x2816e
leaq 0x440(%rsp), %rax
movq %rax, 0x140(%rsp)
leaq 0x350(%rsp), %rdi
xorl %esi, %esi
callq 0x29e70
movq %rax, 0x148(%rsp)
jmp 0x28197
movq 0x148(%rsp), %rax
movsd (%rax), %xmm0
movsd %xmm0, 0x130(%rsp)
leaq 0x350(%rsp), %rdi
xorl %esi, %esi
callq 0x29e70
movq %rax, 0x138(%rsp)
jmp 0x281c5
movq 0x138(%rsp), %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, 0x120(%rsp)
leaq 0x350(%rsp), %rdi
xorl %esi, %esi
callq 0x29e70
movq %rax, 0x128(%rsp)
jmp 0x281f4
movq 0x128(%rsp), %rax
movsd 0x10(%rax), %xmm0
movsd %xmm0, 0x110(%rsp)
leaq 0x350(%rsp), %rdi
xorl %esi, %esi
callq 0x29e70
movq %rax, 0x118(%rsp)
jmp 0x28223
movsd 0x110(%rsp), %xmm2
movsd 0x120(%rsp), %xmm1
movsd 0x130(%rsp), %xmm0
movq 0x140(%rsp), %rsi
movq 0x118(%rsp), %rax
movsd 0x18(%rax), %xmm3
leaq 0x16415f(%rip), %rdi    # 0x18c3b9
movb $0x4, %al
callq 0x22090
jmp 0x28263
leaq 0x440(%rsp), %rax
movq %rax, 0x100(%rsp)
leaq 0x350(%rsp), %rdi
movl $0x1, %esi
callq 0x29e70
movq %rax, 0x108(%rsp)
jmp 0x2828f
movq 0x108(%rsp), %rax
movsd (%rax), %xmm0
movsd %xmm0, 0xf0(%rsp)
leaq 0x350(%rsp), %rdi
movl $0x1, %esi
callq 0x29e70
movq %rax, 0xf8(%rsp)
jmp 0x282c0
movq 0xf8(%rsp), %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, 0xe0(%rsp)
leaq 0x350(%rsp), %rdi
movl $0x1, %esi
callq 0x29e70
movq %rax, 0xe8(%rsp)
jmp 0x282f2
movq 0xe8(%rsp), %rax
movsd 0x10(%rax), %xmm0
movsd %xmm0, 0xd0(%rsp)
leaq 0x350(%rsp), %rdi
movl $0x1, %esi
callq 0x29e70
movq %rax, 0xd8(%rsp)
jmp 0x28324
movsd 0xd0(%rsp), %xmm2
movsd 0xe0(%rsp), %xmm1
movsd 0xf0(%rsp), %xmm0
movq 0x100(%rsp), %rsi
movq 0xd8(%rsp), %rax
movsd 0x18(%rax), %xmm3
leaq 0x16405e(%rip), %rdi    # 0x18c3b9
movb $0x4, %al
callq 0x22090
jmp 0x28364
leaq 0x440(%rsp), %rax
movq %rax, 0xc0(%rsp)
leaq 0x350(%rsp), %rdi
movl $0x2, %esi
callq 0x29e70
movq %rax, 0xc8(%rsp)
jmp 0x28390
movq 0xc8(%rsp), %rax
movsd (%rax), %xmm0
movsd %xmm0, 0xb0(%rsp)
leaq 0x350(%rsp), %rdi
movl $0x2, %esi
callq 0x29e70
movq %rax, 0xb8(%rsp)
jmp 0x283c1
movq 0xb8(%rsp), %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, 0xa0(%rsp)
leaq 0x350(%rsp), %rdi
movl $0x2, %esi
callq 0x29e70
movq %rax, 0xa8(%rsp)
jmp 0x283f3
movq 0xa8(%rsp), %rax
movsd 0x10(%rax), %xmm0
movsd %xmm0, 0x90(%rsp)
leaq 0x350(%rsp), %rdi
movl $0x2, %esi
callq 0x29e70
movq %rax, 0x98(%rsp)
jmp 0x28425
movsd 0x90(%rsp), %xmm2
movsd 0xa0(%rsp), %xmm1
movsd 0xb0(%rsp), %xmm0
movq 0xc0(%rsp), %rsi
movq 0x98(%rsp), %rax
movsd 0x18(%rax), %xmm3
leaq 0x163f5d(%rip), %rdi    # 0x18c3b9
movb $0x4, %al
callq 0x22090
jmp 0x28465
leaq 0x440(%rsp), %rax
movq %rax, 0x80(%rsp)
leaq 0x350(%rsp), %rdi
movl $0x3, %esi
callq 0x29e70
movq %rax, 0x88(%rsp)
jmp 0x28491
movq 0x88(%rsp), %rax
movsd (%rax), %xmm0
movsd %xmm0, 0x70(%rsp)
leaq 0x350(%rsp), %rdi
movl $0x3, %esi
callq 0x29e70
movq %rax, 0x78(%rsp)
jmp 0x284bc
movq 0x78(%rsp), %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, 0x60(%rsp)
leaq 0x350(%rsp), %rdi
movl $0x3, %esi
callq 0x29e70
movq %rax, 0x68(%rsp)
jmp 0x284e5
movq 0x68(%rsp), %rax
movsd 0x10(%rax), %xmm0
movsd %xmm0, 0x50(%rsp)
leaq 0x350(%rsp), %rdi
movl $0x3, %esi
callq 0x29e70
movq %rax, 0x58(%rsp)
jmp 0x2850e
movsd 0x50(%rsp), %xmm2
movsd 0x60(%rsp), %xmm1
movsd 0x70(%rsp), %xmm0
movq 0x80(%rsp), %rsi
movq 0x58(%rsp), %rax
movsd 0x18(%rax), %xmm3
leaq 0x163e80(%rip), %rdi    # 0x18c3b9
movb $0x4, %al
callq 0x22090
jmp 0x28542
leaq 0x16b1b9(%rip), %rdi    # 0x193702
xorl %eax, %eax
callq 0x22090
jmp 0x28552
cmpl $0x0, 0x1d15b3(%rip)    # 0x1f9b0c
je 0x28621
movl $0x0, 0x33c(%rsp)
movl 0x33c(%rsp), %eax
movl %eax, 0x48(%rsp)
movq 0x1450(%rsp), %rdi
callq 0x29cd0
movl %eax, 0x4c(%rsp)
jmp 0x28588
movl 0x48(%rsp), %eax
movl 0x4c(%rsp), %ecx
cmpl %ecx, %eax
jge 0x2861f
movq 0x1450(%rsp), %rdi
movl 0x33c(%rsp), %esi
callq 0x29e90
movq %rax, 0x40(%rsp)
jmp 0x285b3
movq 0x40(%rsp), %rax
movq %rax, 0x330(%rsp)
movq 0x330(%rsp), %rdi
movl 0x33c(%rsp), %esi
movl 0x1448(%rsp), %edx
incl %edx
callq 0x291d0
movl %eax, 0x3c(%rsp)
jmp 0x285e3
movl 0x3c(%rsp), %eax
cmpl $0x0, %eax
jne 0x28607
movl $0x0, 0x1464(%rsp)
movl $0x1, 0x32c(%rsp)
jmp 0x287cb
jmp 0x28609
movl 0x33c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x33c(%rsp)
jmp 0x2856a
jmp 0x28621
cmpl $0x0, 0x1d14e8(%rip)    # 0x1f9b10
je 0x286f0
movl $0x0, 0x328(%rsp)
movl 0x328(%rsp), %eax
movl %eax, 0x34(%rsp)
movq 0x1450(%rsp), %rdi
callq 0x29cf0
movl %eax, 0x38(%rsp)
jmp 0x28657
movl 0x34(%rsp), %eax
movl 0x38(%rsp), %ecx
cmpl %ecx, %eax
jge 0x286ee
movq 0x1450(%rsp), %rdi
movl 0x328(%rsp), %esi
callq 0x29ec0
movq %rax, 0x28(%rsp)
jmp 0x28682
movq 0x28(%rsp), %rax
movq %rax, 0x320(%rsp)
movq 0x320(%rsp), %rdi
movl 0x328(%rsp), %esi
movl 0x1448(%rsp), %edx
incl %edx
callq 0x29520
movl %eax, 0x24(%rsp)
jmp 0x286b2
movl 0x24(%rsp), %eax
cmpl $0x0, %eax
jne 0x286d6
movl $0x0, 0x1464(%rsp)
movl $0x1, 0x32c(%rsp)
jmp 0x287cb
jmp 0x286d8
movl 0x328(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x328(%rsp)
jmp 0x28639
jmp 0x286f0
movl $0x0, 0x31c(%rsp)
movl 0x31c(%rsp), %eax
movl %eax, 0x1c(%rsp)
movq 0x1450(%rsp), %rdi
callq 0x29ef0
movl %eax, 0x20(%rsp)
jmp 0x28719
movl 0x1c(%rsp), %eax
movl 0x20(%rsp), %ecx
cmpl %ecx, %eax
jge 0x287b5
movq 0x1450(%rsp), %rdi
movl 0x31c(%rsp), %esi
callq 0x29f10
movq %rax, 0x10(%rsp)
jmp 0x28744
movq 0x10(%rsp), %rax
movq %rax, 0x310(%rsp)
movq 0x1458(%rsp), %rdi
movq 0x310(%rsp), %rsi
movl 0x31c(%rsp), %edx
movl 0x1448(%rsp), %ecx
incl %ecx
callq 0x27860
movl %eax, 0xc(%rsp)
jmp 0x2877c
movl 0xc(%rsp), %eax
cmpl $0x0, %eax
jne 0x2879d
movl $0x0, 0x1464(%rsp)
movl $0x1, 0x32c(%rsp)
jmp 0x287cb
jmp 0x2879f
movl 0x31c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x31c(%rsp)
jmp 0x286fb
movl $0x1, 0x1464(%rsp)
movl $0x1, 0x32c(%rsp)
leaq 0x3f8(%rsp), %rdi
callq 0x29f40
movl 0x1464(%rsp), %eax
addq $0x1468, %rsp           # imm = 0x1468
retq
movq 0x3d8(%rsp), %rdi
callq 0x23210
nopw %cs:(%rax,%rax)