// File: /workspace/github_c_makefile_star2_O1/TomCrypto[P]avxfish/include/avxfish.h
// Function: threefish1024_key_schedule
void threefish1024_key_schedule(const void *key, const void *tweak, uint64_t * subkeys) {
  uint64_t tweak_w[3];
  uint64_t key_w[17];

  memcpy(key_w, key, 16 * sizeof(uint64_t));
  memcpy(tweak_w, tweak, 2 * sizeof(uint64_t));

  key_w[16] = key_w[0] ^ key_w[1] ^ key_w[2] ^ key_w[3] ^ key_w[4] ^ key_w[5]
            ^ key_w[6] ^ key_w[7] ^ key_w[8] ^ key_w[9] ^ key_w[10] ^ key_w[11]
            ^ key_w[12] ^ key_w[13] ^ key_w[14] ^ key_w[15] ^ K_S;
  tweak_w[2] = tweak_w[0] ^ tweak_w[1];

  subkey( 0,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 0, 1);
  subkey( 1,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 1, 2);
  subkey( 2,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,  0, 2, 0);
  subkey( 3,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,  0,  1, 0, 1);
  subkey( 4,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,  0,  1,  2, 1, 2);
  subkey( 5,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,  0,  1,  2,  3, 2, 0);
  subkey( 6,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,  0,  1,  2,  3,  4, 0, 1);
  subkey( 7,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,  0,  1,  2,  3,  4,  5, 1, 2);
  subkey( 8,  8,  9, 10, 11, 12, 13, 14, 15, 16,  0,  1,  2,  3,  4,  5,  6, 2, 0);
  subkey( 9,  9, 10, 11, 12, 13, 14, 15, 16,  0,  1,  2,  3,  4,  5,  6,  7, 0, 1);
  subkey(10, 10, 11, 12, 13, 14, 15, 16,  0,  1,  2,  3,  4,  5,  6,  7,  8, 1, 2);
  subkey(11, 11, 12, 13, 14, 15, 16,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 2, 0);
  subkey(12, 12, 13, 14, 15, 16,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 0, 1);
  subkey(13, 13, 14, 15, 16,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 1, 2);
  subkey(14, 14, 15, 16,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 2, 0);
  subkey(15, 15, 16,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 0, 1);
  subkey(16, 16,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 1, 2);
  subkey(17,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 2, 0);
  subkey(18,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 0, 1);
  subkey(19,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,  0, 1, 2);
  subkey(20,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,  0,  1, 2, 0);

  // Vectorize all subkeys except the last one, by applying:
  // (0, 2, 4, 6, 8, 10, 12, 14, 1, 3, 5, 7, 9, 11, 13, 15)

  for (int i = 0; i < 20; ++i) {
    uint64_t tmp[16];

    tmp[0] = subkeys[16 * i + 0];
    tmp[1] = subkeys[16 * i + 2];
    tmp[2] = subkeys[16 * i + 4];
    tmp[3] = subkeys[16 * i + 6];
    tmp[4] = subkeys[16 * i + 8];
    tmp[5] = subkeys[16 * i + 10];
    tmp[6] = subkeys[16 * i + 12];
    tmp[7] = subkeys[16 * i + 14];
    tmp[8] = subkeys[16 * i + 1];
    tmp[9] = subkeys[16 * i + 3];
    tmp[10] = subkeys[16 * i + 5];
    tmp[11] = subkeys[16 * i + 7];
    tmp[12] = subkeys[16 * i + 9];
    tmp[13] = subkeys[16 * i + 11];
    tmp[14] = subkeys[16 * i + 13];
    tmp[15] = subkeys[16 * i + 15];

    memcpy(&subkeys[16 * i], tmp, sizeof(tmp));
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rsi, -0x80(%rsp)
movq (%rdi), %r9
movq 0x8(%rdi), %r15
movq %r15, -0x68(%rsp)
movq 0x10(%rdi), %r8
movq %r8, -0x20(%rsp)
movq 0x18(%rdi), %r12
movq %r12, -0x58(%rsp)
movq 0x20(%rdi), %rsi
movq %rsi, -0x60(%rsp)
movq 0x28(%rdi), %r11
movq 0x30(%rdi), %rbx
movq %rbx, -0x48(%rsp)
movq 0x38(%rdi), %r13
movq 0x40(%rdi), %r14
movq %r14, 0x8(%rsp)
movq 0x48(%rdi), %r10
movq %r10, -0x50(%rsp)
movq %r9, %rax
movq %r9, -0x28(%rsp)
xorq %r15, %rax
movq %r8, %rcx
xorq %r12, %rcx
xorq %rax, %rcx
movq %rsi, %rax
xorq %r11, %rax
xorq %rbx, %rax
xorq %rcx, %rax
movq %r13, %rbx
movq %r13, %r15
xorq %r14, %rbx
xorq %r10, %rbx
movq 0x50(%rdi), %rcx
movq %rcx, -0x70(%rsp)
xorq %rcx, %rbx
xorq %rax, %rbx
movq 0x58(%rdi), %r12
movq 0x60(%rdi), %rcx
movq %rcx, -0x10(%rsp)
movq 0x68(%rdi), %rsi
movq %rsi, 0x18(%rsp)
movq 0x70(%rdi), %rax
movq %rax, -0x40(%rsp)
movq 0x78(%rdi), %rdi
movq %rdi, -0x30(%rsp)
movq %r12, %rbp
movq %r12, -0x78(%rsp)
xorq %rcx, %rbp
xorq %rsi, %rbp
xorq %rax, %rbp
xorq %rdi, %rbp
xorq %rbx, %rbp
movabsq $0x1bd11bdaa9fc1a22, %rax # imm = 0x1BD11BDAA9FC1A22
xorq %rbp, %rax
movq %rax, -0x8(%rsp)
movq -0x80(%rsp), %rax
movq (%rax), %r10
movq %r10, -0x18(%rsp)
movq 0x8(%rax), %r13
movq %r13, -0x80(%rsp)
movq %r9, (%rdx)
movq -0x68(%rsp), %rbp
movq %rbp, 0x8(%rdx)
movq -0x20(%rsp), %rsi
movq %rsi, 0x10(%rdx)
movq -0x58(%rsp), %rdi
movq %rdi, 0x18(%rdx)
movq -0x60(%rsp), %r14
movq %r14, 0x20(%rdx)
movq %r11, %r9
movq %r11, -0x38(%rsp)
movq %r11, 0x28(%rdx)
movq -0x48(%rsp), %r8
movq %r8, 0x30(%rdx)
movq %r15, %r11
movq %r15, 0x10(%rsp)
movq %r15, 0x38(%rdx)
movq 0x8(%rsp), %r15
movq %r15, 0x40(%rdx)
movq -0x50(%rsp), %rax
movq %rax, 0x48(%rdx)
movq -0x70(%rsp), %rcx
movq %rcx, 0x50(%rdx)
movq %r12, 0x58(%rdx)
movq -0x10(%rsp), %rbx
movq %rbx, 0x60(%rdx)
movq 0x18(%rsp), %r12
leaq (%r10,%r12), %rbx
movq %rbx, 0x68(%rdx)
movq -0x40(%rsp), %r10
leaq (%r13,%r10), %rbx
movq %rbx, 0x70(%rdx)
movq -0x30(%rsp), %r10
movq %r10, 0x78(%rdx)
movq %rbp, 0x80(%rdx)
movq %rsi, 0x88(%rdx)
movq %rdi, 0x90(%rdx)
movq %r14, 0x98(%rdx)
movq %r9, 0xa0(%rdx)
movq %r8, 0xa8(%rdx)
movq %r8, %r9
movq %r11, 0xb0(%rdx)
movq %r15, 0xb8(%rdx)
movq %rax, 0xc0(%rdx)
movq %rcx, 0xc8(%rdx)
movq -0x78(%rsp), %r13
movq %r13, 0xd0(%rdx)
movq -0x10(%rsp), %r8
movq %r8, 0xd8(%rdx)
movq %r12, 0xe0(%rdx)
movq %rbx, 0xe8(%rdx)
movq -0x80(%rsp), %rcx
movq -0x18(%rsp), %rsi
xorq %rsi, %rcx
movq %rcx, (%rsp)
leaq (%rcx,%r10), %r15
movq %r15, 0xf0(%rdx)
movq -0x8(%rsp), %rcx
leaq 0x1(%rcx), %rbp
movq %rbp, 0xf8(%rdx)
movq -0x20(%rsp), %r10
movq %r10, 0x100(%rdx)
movq %rdi, 0x108(%rdx)
movq %rdi, %rbx
movq %r14, 0x110(%rdx)
movq -0x38(%rsp), %r11
movq %r11, 0x118(%rdx)
movq %r9, 0x120(%rdx)
movq 0x10(%rsp), %r9
movq %r9, 0x128(%rdx)
movq 0x8(%rsp), %rdi
movq %rdi, 0x130(%rdx)
movq %rax, 0x138(%rdx)
movq -0x70(%rsp), %rax
movq %rax, 0x140(%rdx)
movq %r13, 0x148(%rdx)
movq %r8, 0x150(%rdx)
movq %r12, 0x158(%rdx)
movq -0x40(%rsp), %rdi
movq %rdi, 0x160(%rdx)
movq %r15, 0x168(%rdx)
leaq (%rcx,%rsi), %r15
movq %r15, 0x170(%rdx)
movq -0x28(%rsp), %r10
leaq 0x2(%r10), %rbp
movq %rbp, 0x178(%rdx)
movq %rbx, 0x180(%rdx)
movq %r14, 0x188(%rdx)
movq %r14, %rbx
movq %r11, %r14
movq %r11, 0x190(%rdx)
movq -0x48(%rsp), %rsi
movq %rsi, 0x198(%rdx)
movq %r9, 0x1a0(%rdx)
movq 0x8(%rsp), %r11
movq %r11, 0x1a8(%rdx)
movq -0x50(%rsp), %rcx
movq %rcx, 0x1b0(%rdx)
movq %rax, 0x1b8(%rdx)
movq %r13, 0x1c0(%rdx)
movq %r8, 0x1c8(%rdx)
movq %r12, 0x1d0(%rdx)
movq %rdi, 0x1d8(%rdx)
movq -0x30(%rsp), %rdi
movq %rdi, 0x1e0(%rdx)
movq %r15, 0x1e8(%rdx)
movq -0x80(%rsp), %rax
leaq (%rax,%r10), %r13
movq %r13, 0x1f0(%rdx)
movq -0x68(%rsp), %rax
leaq 0x3(%rax), %rbp
movq %rbp, 0x1f8(%rdx)
movq %rbx, 0x200(%rdx)
movq %r14, 0x208(%rdx)
movq %rsi, 0x210(%rdx)
movq %r9, 0x218(%rdx)
movq %r11, %r15
movq %r11, 0x220(%rdx)
movq %rcx, 0x228(%rdx)
movq -0x70(%rsp), %rcx
movq %rcx, 0x230(%rdx)
movq -0x78(%rsp), %rsi
movq %rsi, 0x238(%rdx)
movq %r8, 0x240(%rdx)
movq %r12, 0x248(%rdx)
movq -0x40(%rsp), %r10
movq %r10, 0x250(%rdx)
movq %rdi, %rsi
movq %rdi, 0x258(%rdx)
movq -0x8(%rsp), %r11
movq %r11, 0x260(%rdx)
movq %r13, 0x268(%rdx)
movq (%rsp), %rbx
leaq (%rbx,%rax), %rbx
movq %rbx, 0x270(%rdx)
movq -0x20(%rsp), %rax
leaq 0x4(%rax), %rbp
movq %rbp, 0x278(%rdx)
movq %r14, 0x280(%rdx)
movq -0x48(%rsp), %rdi
movq %rdi, 0x288(%rdx)
movq %r9, 0x290(%rdx)
movq %r15, 0x298(%rdx)
movq -0x50(%rsp), %r9
movq %r9, 0x2a0(%rdx)
movq %rcx, 0x2a8(%rdx)
movq -0x78(%rsp), %rcx
movq %rcx, 0x2b0(%rdx)
movq %r8, 0x2b8(%rdx)
movq %r12, 0x2c0(%rdx)
movq %r10, %rcx
movq %r10, 0x2c8(%rdx)
movq %rsi, 0x2d0(%rdx)
movq %r11, 0x2d8(%rdx)
movq %r11, %r10
movq -0x28(%rsp), %r11
movq %r11, 0x2e0(%rdx)
movq %rbx, 0x2e8(%rdx)
movq -0x18(%rsp), %rbx
leaq (%rbx,%rax), %r13
movq %r13, 0x2f0(%rdx)
movq -0x58(%rsp), %r14
leaq 0x5(%r14), %rbp
movq %rbp, 0x2f8(%rdx)
movq %rdi, 0x300(%rdx)
movq 0x10(%rsp), %rsi
movq %rsi, 0x308(%rdx)
movq %r15, 0x310(%rdx)
movq %r9, %r8
movq %r9, 0x318(%rdx)
movq -0x70(%rsp), %rax
movq %rax, 0x320(%rdx)
movq -0x78(%rsp), %rax
movq %rax, 0x328(%rdx)
movq -0x10(%rsp), %rbx
movq %rbx, 0x330(%rdx)
movq %r12, 0x338(%rdx)
movq %rcx, 0x340(%rdx)
movq %rcx, %r9
movq -0x30(%rsp), %rcx
movq %rcx, 0x348(%rdx)
movq %r10, 0x350(%rdx)
movq %r11, 0x358(%rdx)
movq -0x68(%rsp), %rax
movq %rax, 0x360(%rdx)
movq %r13, 0x368(%rdx)
movq -0x80(%rsp), %rdi
leaq (%rdi,%r14), %r14
movq %r14, 0x370(%rdx)
movq -0x60(%rsp), %rdi
leaq 0x6(%rdi), %rbp
movq %rbp, 0x378(%rdx)
movq %rsi, 0x380(%rdx)
movq %r15, 0x388(%rdx)
movq %r8, 0x390(%rdx)
movq -0x70(%rsp), %r10
movq %r10, 0x398(%rdx)
movq -0x78(%rsp), %r13
movq %r13, 0x3a0(%rdx)
movq %rbx, 0x3a8(%rdx)
movq %r12, 0x3b0(%rdx)
movq %r9, 0x3b8(%rdx)
movq %rcx, 0x3c0(%rdx)
movq -0x8(%rsp), %rcx
movq %rcx, 0x3c8(%rdx)
movq %r11, 0x3d0(%rdx)
movq %rax, 0x3d8(%rdx)
movq -0x20(%rsp), %rax
movq %rax, 0x3e0(%rdx)
movq %r14, 0x3e8(%rdx)
movq (%rsp), %rcx
leaq (%rcx,%rdi), %r14
movq %r14, 0x3f0(%rdx)
movq -0x38(%rsp), %r9
leaq 0x7(%r9), %rbp
movq %rbp, 0x3f8(%rdx)
movq %r15, 0x400(%rdx)
movq %r8, 0x408(%rdx)
movq %r8, %r15
movq %r10, 0x410(%rdx)
movq %r10, %r11
movq %r13, 0x418(%rdx)
movq %rbx, 0x420(%rdx)
movq %r12, 0x428(%rdx)
movq %r12, %rbx
movq -0x40(%rsp), %rcx
movq %rcx, 0x430(%rdx)
movq -0x30(%rsp), %r12
movq %r12, 0x438(%rdx)
movq -0x8(%rsp), %r8
movq %r8, 0x440(%rdx)
movq -0x28(%rsp), %rdi
movq %rdi, 0x448(%rdx)
movq -0x68(%rsp), %rsi
movq %rsi, 0x450(%rdx)
movq %rax, 0x458(%rdx)
movq -0x58(%rsp), %r10
movq %r10, 0x460(%rdx)
movq %r14, 0x468(%rdx)
movq -0x18(%rsp), %rax
leaq (%rax,%r9), %r14
movq %r14, 0x470(%rdx)
movq -0x48(%rsp), %rax
leaq 0x8(%rax), %rbp
movq %rbp, 0x478(%rdx)
movq %r15, 0x480(%rdx)
movq %r11, 0x488(%rdx)
movq %r13, 0x490(%rdx)
movq -0x10(%rsp), %r11
movq %r11, 0x498(%rdx)
movq %rbx, 0x4a0(%rdx)
movq %rbx, %r13
movq %rcx, 0x4a8(%rdx)
movq %rcx, %r15
movq %r12, 0x4b0(%rdx)
movq %r8, 0x4b8(%rdx)
movq %rdi, 0x4c0(%rdx)
movq %rsi, 0x4c8(%rdx)
movq -0x20(%rsp), %r9
movq %r9, 0x4d0(%rdx)
movq %r10, %rcx
movq %r10, 0x4d8(%rdx)
movq -0x60(%rsp), %rdi
movq %rdi, 0x4e0(%rdx)
movq %r14, 0x4e8(%rdx)
movq -0x80(%rsp), %rsi
leaq (%rsi,%rax), %rbx
movq %rbx, 0x4f0(%rdx)
movq 0x10(%rsp), %rsi
leaq 0x9(%rsi), %rbp
movq %rbp, 0x4f8(%rdx)
movq -0x70(%rsp), %rax
movq %rax, 0x500(%rdx)
movq -0x78(%rsp), %rax
movq %rax, 0x508(%rdx)
movq %r11, %r8
movq %r11, 0x510(%rdx)
movq %r13, 0x518(%rdx)
movq %r15, 0x520(%rdx)
movq %r12, 0x528(%rdx)
movq %r12, %r10
movq -0x8(%rsp), %r14
movq %r14, 0x530(%rdx)
movq -0x28(%rsp), %r11
movq %r11, 0x538(%rdx)
movq -0x68(%rsp), %r12
movq %r12, 0x540(%rdx)
movq %r9, 0x548(%rdx)
movq %rcx, 0x550(%rdx)
movq %rdi, 0x558(%rdx)
movq -0x38(%rsp), %r12
movq %r12, 0x560(%rdx)
movq %rbx, 0x568(%rdx)
movq (%rsp), %rbx
leaq (%rbx,%rsi), %rcx
movq %rcx, 0x20(%rsp)
movq %rcx, 0x570(%rdx)
movq 0x8(%rsp), %rcx
leaq 0xa(%rcx), %rbp
movq %rbp, 0x578(%rdx)
movq %rax, 0x580(%rdx)
movq %r8, 0x588(%rdx)
movq %r8, %rax
movq %r13, 0x590(%rdx)
movq %r15, 0x598(%rdx)
movq %r10, 0x5a0(%rdx)
movq %r10, %rsi
movq %r14, 0x5a8(%rdx)
movq %r14, %r13
movq %r11, 0x5b0(%rdx)
movq -0x68(%rsp), %rdi
movq %rdi, 0x5b8(%rdx)
movq %r9, 0x5c0(%rdx)
movq %r9, %rbx
movq -0x58(%rsp), %r9
movq %r9, 0x5c8(%rdx)
movq -0x60(%rsp), %r10
movq %r10, 0x5d0(%rdx)
movq %r12, 0x5d8(%rdx)
movq -0x48(%rsp), %r8
movq %r8, 0x5e0(%rdx)
movq 0x20(%rsp), %r11
movq %r11, 0x5e8(%rdx)
movq %rcx, %r12
movq -0x18(%rsp), %rcx
leaq (%rcx,%r12), %rcx
movq %rcx, 0x5f0(%rdx)
movq -0x50(%rsp), %r14
leaq 0xb(%r14), %rbp
movq %rbp, 0x5f8(%rdx)
movq %rax, 0x600(%rdx)
movq 0x18(%rsp), %rax
movq %rax, 0x608(%rdx)
movq %r15, 0x610(%rdx)
movq %rsi, 0x618(%rdx)
movq %rsi, %r11
movq %r13, 0x620(%rdx)
movq -0x28(%rsp), %rsi
movq %rsi, 0x628(%rdx)
movq %rdi, 0x630(%rdx)
movq %rbx, 0x638(%rdx)
movq %r9, 0x640(%rdx)
movq %r10, 0x648(%rdx)
movq -0x38(%rsp), %rbx
movq %rbx, 0x650(%rdx)
movq %r8, 0x658(%rdx)
movq %r8, %r10
movq 0x10(%rsp), %r8
movq %r8, 0x660(%rdx)
movq %rcx, 0x668(%rdx)
movq -0x80(%rsp), %rcx
leaq (%rcx,%r14), %r15
movq %r15, 0x670(%rdx)
movq -0x70(%rsp), %rdi
leaq 0xc(%rdi), %rbp
movq %rbp, 0x678(%rdx)
movq %rax, 0x680(%rdx)
movq -0x40(%rsp), %rcx
movq %rcx, 0x688(%rdx)
movq %r11, 0x690(%rdx)
movq %r13, 0x698(%rdx)
movq %rsi, 0x6a0(%rdx)
movq -0x68(%rsp), %r14
movq %r14, 0x6a8(%rdx)
movq -0x20(%rsp), %r9
movq %r9, 0x6b0(%rdx)
movq -0x58(%rsp), %rsi
movq %rsi, 0x6b8(%rdx)
movq -0x60(%rsp), %r11
movq %r11, 0x6c0(%rdx)
movq %rbx, 0x6c8(%rdx)
movq %r10, 0x6d0(%rdx)
movq %r8, 0x6d8(%rdx)
movq %r12, 0x6e0(%rdx)
movq %r12, %r8
movq %r15, 0x6e8(%rdx)
movq (%rsp), %rax
leaq (%rax,%rdi), %rbx
movq %rbx, 0x6f0(%rdx)
movq -0x78(%rsp), %rax
leaq 0xd(%rax), %rbp
movq %rbp, 0x6f8(%rdx)
movq %rcx, 0x700(%rdx)
movq -0x30(%rsp), %rcx
movq %rcx, 0x708(%rdx)
movq %r13, 0x710(%rdx)
movq -0x28(%rsp), %r15
movq %r15, 0x718(%rdx)
movq %r14, 0x720(%rdx)
movq %r9, 0x728(%rdx)
movq %rsi, 0x730(%rdx)
movq %r11, %rsi
movq %r11, 0x738(%rdx)
movq -0x38(%rsp), %r12
movq %r12, 0x740(%rdx)
movq %r10, 0x748(%rdx)
movq %r10, %r14
movq 0x10(%rsp), %rdi
movq %rdi, 0x750(%rdx)
movq %r8, 0x758(%rdx)
movq %r8, %r10
movq -0x50(%rsp), %r8
movq %r8, 0x760(%rdx)
movq %rbx, 0x768(%rdx)
movq -0x18(%rsp), %rbx
leaq (%rbx,%rax), %rbx
movq %rbx, 0x770(%rdx)
movq -0x10(%rsp), %rax
leaq 0xe(%rax), %rbp
movq %rbp, 0x778(%rdx)
movq %rcx, 0x780(%rdx)
movq %r13, 0x788(%rdx)
movq %r15, 0x790(%rdx)
movq -0x68(%rsp), %rcx
movq %rcx, 0x798(%rdx)
movq %r9, 0x7a0(%rdx)
movq -0x58(%rsp), %r11
movq %r11, 0x7a8(%rdx)
movq %rsi, 0x7b0(%rdx)
movq %r12, 0x7b8(%rdx)
movq %r14, 0x7c0(%rdx)
movq %rdi, 0x7c8(%rdx)
movq %r10, 0x7d0(%rdx)
movq %r8, 0x7d8(%rdx)
movq -0x70(%rsp), %rsi
movq %rsi, 0x7e0(%rdx)
movq %rbx, 0x7e8(%rdx)
movq -0x80(%rsp), %rsi
leaq (%rsi,%rax), %rax
movq %rax, 0x20(%rsp)
movq %rax, 0x7f0(%rdx)
movq 0x18(%rsp), %r8
leaq 0xf(%r8), %rbp
movq %rbp, 0x7f8(%rdx)
movq %r13, 0x800(%rdx)
movq %r15, 0x808(%rdx)
movq %r15, %rsi
movq %rcx, 0x810(%rdx)
movq %rcx, %rbx
movq %r9, 0x818(%rdx)
movq %r11, %rcx
movq %r11, 0x820(%rdx)
movq -0x60(%rsp), %r14
movq %r14, 0x828(%rdx)
movq %r12, %r11
movq %r12, 0x830(%rdx)
movq -0x48(%rsp), %rax
movq %rax, 0x838(%rdx)
movq %rdi, 0x840(%rdx)
movq %r10, 0x848(%rdx)
movq -0x50(%rsp), %r12
movq %r12, 0x850(%rdx)
movq -0x70(%rsp), %r13
movq %r13, 0x858(%rdx)
movq -0x78(%rsp), %r10
movq %r10, 0x860(%rdx)
movq 0x20(%rsp), %r10
movq %r10, 0x868(%rdx)
movq (%rsp), %r10
leaq (%r10,%r8), %r15
movq %r15, 0x870(%rdx)
movq -0x40(%rsp), %r8
leaq 0x10(%r8), %rbp
movq %rbp, 0x878(%rdx)
movq %rsi, 0x880(%rdx)
movq %rbx, 0x888(%rdx)
movq %r9, 0x890(%rdx)
movq %rcx, 0x898(%rdx)
movq %r14, 0x8a0(%rdx)
movq %r11, 0x8a8(%rdx)
movq %rax, 0x8b0(%rdx)
movq %rdi, 0x8b8(%rdx)
movq %rdi, %r10
movq 0x8(%rsp), %r14
movq %r14, 0x8c0(%rdx)
movq %r12, 0x8c8(%rdx)
movq %r12, %rax
movq %r13, 0x8d0(%rdx)
movq -0x78(%rsp), %rcx
movq %rcx, 0x8d8(%rdx)
movq -0x10(%rsp), %r9
movq %r9, 0x8e0(%rdx)
movq %r15, 0x8e8(%rdx)
movq -0x18(%rsp), %rsi
leaq (%rsi,%r8), %r15
movq %r15, 0x8f0(%rdx)
movq -0x30(%rsp), %r8
leaq 0x11(%r8), %rbp
movq %rbp, 0x8f8(%rdx)
movq %rbx, 0x900(%rdx)
movq -0x20(%rsp), %r12
movq %r12, 0x908(%rdx)
movq -0x58(%rsp), %rdi
movq %rdi, 0x910(%rdx)
movq -0x60(%rsp), %r11
movq %r11, 0x918(%rdx)
movq -0x38(%rsp), %rsi
movq %rsi, 0x920(%rdx)
movq -0x48(%rsp), %rbp
movq %rbp, 0x928(%rdx)
movq %r10, 0x930(%rdx)
movq %r14, 0x938(%rdx)
movq %rax, 0x940(%rdx)
movq %r13, 0x948(%rdx)
movq %rcx, %rax
movq %rcx, 0x950(%rdx)
movq %r9, %rsi
movq %r9, 0x958(%rdx)
movq 0x18(%rsp), %rcx
movq %rcx, 0x960(%rdx)
movq %r15, 0x968(%rdx)
movq -0x80(%rsp), %r9
addq %r8, %r9
movq %r9, -0x80(%rsp)
movq %r9, 0x970(%rdx)
movq -0x8(%rsp), %r8
leaq 0x12(%r8), %rbx
movq %rbx, 0x978(%rdx)
movq %r12, 0x980(%rdx)
movq %rdi, 0x988(%rdx)
movq %r11, 0x990(%rdx)
movq -0x38(%rsp), %r15
movq %r15, 0x998(%rdx)
movq %rbp, 0x9a0(%rdx)
movq %r10, 0x9a8(%rdx)
movq %r14, 0x9b0(%rdx)
movq -0x50(%rsp), %r12
movq %r12, 0x9b8(%rdx)
movq %r13, 0x9c0(%rdx)
movq %rax, 0x9c8(%rdx)
movq %rax, %r11
movq %rsi, 0x9d0(%rdx)
movq %rsi, %r9
movq %rcx, 0x9d8(%rdx)
movq -0x40(%rsp), %rsi
movq %rsi, 0x9e0(%rdx)
movq -0x80(%rsp), %rax
movq %rax, 0x9e8(%rdx)
movq (%rsp), %rax
addq %r8, %rax
movq %rax, 0x9f0(%rdx)
movq %rax, %rdi
movq -0x28(%rsp), %rbx
leaq 0x13(%rbx), %rax
movq %rax, 0x9f8(%rdx)
movq -0x58(%rsp), %rax
movq %rax, 0xa00(%rdx)
movq -0x60(%rsp), %rax
movq %rax, 0xa08(%rdx)
movq %r15, 0xa10(%rdx)
movq %rbp, 0xa18(%rdx)
movq %r10, 0xa20(%rdx)
movq %r14, 0xa28(%rdx)
movq %r12, 0xa30(%rdx)
movq %r13, 0xa38(%rdx)
movq %r11, 0xa40(%rdx)
movq %r9, 0xa48(%rdx)
movq %rcx, 0xa50(%rdx)
movq %rsi, 0xa58(%rdx)
movq -0x30(%rsp), %rax
movq %rax, 0xa60(%rdx)
movq %rdi, 0xa68(%rdx)
movq -0x18(%rsp), %rax
addq %rbx, %rax
movq %rax, 0xa70(%rdx)
movq -0x68(%rsp), %rax
addq $0x14, %rax
movq %rax, 0xa78(%rdx)
movl $0x78, %eax
movq -0x70(%rdx,%rax), %rcx
movq %rcx, -0x80(%rsp)
movq -0x68(%rdx,%rax), %rsi
movq -0x58(%rdx,%rax), %rdi
movq -0x48(%rdx,%rax), %r8
movq -0x38(%rdx,%rax), %r9
movq -0x28(%rdx,%rax), %r10
movq -0x18(%rdx,%rax), %r11
movq -0x8(%rdx,%rax), %rbx
movq -0x60(%rdx,%rax), %r14
movq -0x50(%rdx,%rax), %r15
movq -0x40(%rdx,%rax), %r12
movq -0x30(%rdx,%rax), %r13
movq -0x20(%rdx,%rax), %rbp
movq -0x10(%rdx,%rax), %rcx
movq %rsi, -0x70(%rdx,%rax)
movq %rdi, -0x68(%rdx,%rax)
movq %r8, -0x60(%rdx,%rax)
movq %r9, -0x58(%rdx,%rax)
movq %r10, -0x50(%rdx,%rax)
movq %r11, -0x48(%rdx,%rax)
movq %rbx, -0x40(%rdx,%rax)
movq -0x80(%rsp), %rsi
movq %rsi, -0x38(%rdx,%rax)
movq %r14, -0x30(%rdx,%rax)
movq %r15, -0x28(%rdx,%rax)
movq %r12, -0x20(%rdx,%rax)
movq %r13, -0x18(%rdx,%rax)
movq %rbp, -0x10(%rdx,%rax)
movq %rcx, -0x8(%rdx,%rax)
subq $-0x80, %rax
cmpq $0xa78, %rax            # imm = 0xA78
jne 0x4033c2
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq