// File: kobanium[P]Ray/src/learn/FactorizationMachines.cpp
// Function: Output()
static void
Output( void )
{
  const std::string output_directory = GetWorkingDirectory() + PATH_SEPARATOR +
    LEARNING_RESULT_DIR_NAME + PATH_SEPARATOR +
    TREE_RESULT_DIR_NAME + PATH_SEPARATOR;

  for (unsigned int i = 0; i < static_cast<unsigned int>(PAT3_MAX); i++) {
    pat3[i].w = pat3[pat3_index[i]].w;
    for (int j = 0; j < FM_DIMENSION; j++) {
      pat3[i].v[j] = pat3[pat3_index[i]].v[j];
    }
  }
  
  // パス
  OutputBTFMParameter(output_directory + "Pass.txt", pass);

  // 戦術的特徴
  OutputBTFMParameter(output_directory + "CaptureFeature.txt", capture);
  OutputBTFMParameter(output_directory + "SaveExtensionFeature.txt", save_extension);
  OutputBTFMParameter(output_directory + "AtariFeature.txt", atari);
  OutputBTFMParameter(output_directory + "ExtensionFeature.txt", extension);
  OutputBTFMParameter(output_directory + "DameFeature.txt", dame);
  OutputBTFMParameter(output_directory + "ConnectFeature.txt", connect);
  OutputBTFMParameter(output_directory + "ThrowInFeature.txt", throw_in);

  //  直前の手との距離
  OutputBTFMParameter(output_directory + "MoveDistance1.txt", move_distance_1);
  OutputBTFMParameter(output_directory + "MoveDistance2.txt", move_distance_2);
  OutputBTFMParameter(output_directory + "MoveDistance3.txt", move_distance_3);
  OutputBTFMParameter(output_directory + "MoveDistance4.txt", move_distance_4);

  //  盤上の位置
  OutputBTFMParameter(output_directory + "PosID.txt", pos_id);

  //  近傍の配石パターン(3x3, md2, md3, md4, md5)
  OutputBTFMParameter(output_directory + "Pat3.txt", pat3);
  OutputBTFMParameter(output_directory + "MD2.txt", md2, md2_list, md2_target);
  OutputBTFMParameter(output_directory + "MD3.txt", md3, md3_list, md3_index, md3_target);
  OutputBTFMParameter(output_directory + "MD4.txt", md4, md4_list, md4_index, md4_target);
  OutputBTFMParameter(output_directory + "MD5.txt", md5, md5_list, md5_index, md5_target);

  // Capture
  for (const auto &item : capture_file_name) {
    OutputFMAdd(output_directory + item.second, capture[item.first]);
  }

  // SaveExtension
  for (const auto &item : save_extension_file_name) {
    OutputFMAdd(output_directory + item.second, save_extension[item.first]);
  }

  //  Atari
  for (const auto &item : atari_file_name) {
    OutputFMAdd(output_directory + item.second, atari[item.first]);
  }

  //  Dame
  for (const auto &item : dame_file_name) {
    OutputFMAdd(output_directory + item.second, dame[item.first]);
  }

  //  Extension
  for (const auto &item : extension_file_name) {
    OutputFMAdd(output_directory + item.second, extension[item.first]);
  }

  // Connect
  for (const auto &item : connect_file_name) {
    OutputFMAdd(output_directory + item.second, connect[item.first]);
  }

  //  Throw in
  for (const auto &item : throw_in_file_name) {
    OutputFMAdd(output_directory + item.second, throw_in[item.first]);
  }

  //  Ko existence
  OutputFMAdd(output_directory + "KoExist.txt", ko_exist[0]);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x510, %rsp            # imm = 0x510
leaq -0xc0(%rbp), %rdi
movq %rdi, -0x500(%rbp)
callq 0x2ccc0
movq -0x500(%rbp), %rsi
leaq 0x8df64(%rip), %rdx     # 0xe91b0
leaq -0xa0(%rbp), %rdi
callq 0x632c0
jmp 0x5b25a
leaq 0x52d7f(%rip), %rdx     # 0xadfe0
leaq -0x80(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x63310
jmp 0x5b273
leaq 0x8df36(%rip), %rdx     # 0xe91b0
leaq -0x60(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x632c0
jmp 0x5b289
leaq 0x52db6(%rip), %rdx     # 0xae046
leaq -0x40(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x63310
jmp 0x5b29f
leaq 0x8df0a(%rip), %rdx     # 0xe91b0
leaq -0x20(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x632c0
jmp 0x5b2b5
leaq -0x40(%rbp), %rdi
callq 0x7ae8
leaq -0x60(%rbp), %rdi
callq 0x7ae8
leaq -0x80(%rbp), %rdi
callq 0x7ae8
leaq -0xa0(%rbp), %rdi
callq 0x7ae8
leaq -0xc0(%rbp), %rdi
callq 0x7ae8
movl $0x0, -0xd0(%rbp)
cmpl $0x10000, -0xd0(%rbp)   # imm = 0x10000
jae 0x5b48a
movl -0xd0(%rbp), %eax
movl %eax, %esi
leaq 0x8debf(%rip), %rdi     # 0xe91d0
callq 0x63590
movslq (%rax), %rsi
leaq 0x8df28(%rip), %rdi     # 0xe9248
callq 0x63540
movsd (%rax), %xmm0
movsd %xmm0, -0x508(%rbp)
movl -0xd0(%rbp), %eax
movl %eax, %esi
leaq 0x8df08(%rip), %rdi     # 0xe9248
callq 0x63540
movsd -0x508(%rbp), %xmm0
movsd %xmm0, (%rax)
movl $0x0, -0xd4(%rbp)
cmpl $0x5, -0xd4(%rbp)
jge 0x5b474
movl -0xd0(%rbp), %eax
movl %eax, %esi
leaq 0x8de59(%rip), %rdi     # 0xe91d0
callq 0x63590
movslq (%rax), %rsi
leaq 0x8dec2(%rip), %rdi     # 0xe9248
callq 0x63540
movslq -0xd4(%rbp), %rcx
movsd 0x8(%rax,%rcx,8), %xmm0
movsd %xmm0, -0x510(%rbp)
movl -0xd0(%rbp), %eax
movl %eax, %esi
leaq 0x8de99(%rip), %rdi     # 0xe9248
callq 0x63540
movsd -0x510(%rbp), %xmm0
movslq -0xd4(%rbp), %rcx
movsd %xmm0, 0x8(%rax,%rcx,8)
movl -0xd4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xd4(%rbp)
jmp 0x5b35b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
jmp 0x5b463
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
jmp 0x5b457
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
jmp 0x5b44e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
jmp 0x5b445
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x7ae8
leaq -0x60(%rbp), %rdi
callq 0x7ae8
leaq -0x80(%rbp), %rdi
callq 0x7ae8
leaq -0xa0(%rbp), %rdi
callq 0x7ae8
leaq -0xc0(%rbp), %rdi
callq 0x7ae8
jmp 0x5c24c
jmp 0x5b476
movl -0xd0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xd0(%rbp)
jmp 0x5b2f2
leaq 0x52c4b(%rip), %rdx     # 0xae0dc
leaq -0xf8(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x63360
jmp 0x5b4a3
leaq 0x8df36(%rip), %rsi     # 0xe93e0
leaq -0xf8(%rbp), %rdi
callq 0x7b3c0
jmp 0x5b4b8
leaq -0xf8(%rbp), %rdi
callq 0x7ae8
leaq 0x52c1a(%rip), %rdx     # 0xae0e5
leaq -0x118(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x63360
jmp 0x5b4dd
leaq 0x8ddf4(%rip), %rsi     # 0xe92d8
leaq -0x118(%rbp), %rdi
callq 0x7b3c0
jmp 0x5b4f2
leaq -0x118(%rbp), %rdi
callq 0x7ae8
leaq 0x52bf3(%rip), %rdx     # 0xae0f8
leaq -0x138(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x63360
jmp 0x5b517
leaq 0x8ddd2(%rip), %rsi     # 0xe92f0
leaq -0x138(%rbp), %rdi
callq 0x7b3c0
jmp 0x5b52c
leaq -0x138(%rbp), %rdi
callq 0x7ae8
leaq 0x52bd2(%rip), %rdx     # 0xae111
leaq -0x158(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x63360
jmp 0x5b551
leaq 0x8ddb0(%rip), %rsi     # 0xe9308
leaq -0x158(%rbp), %rdi
callq 0x7b3c0
jmp 0x5b566
leaq -0x158(%rbp), %rdi
callq 0x7ae8
leaq 0x52b83(%rip), %rdx     # 0xae0fc
leaq -0x178(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x63360
jmp 0x5b58b
leaq 0x8dd8e(%rip), %rsi     # 0xe9320
leaq -0x178(%rbp), %rdi
callq 0x7b3c0
jmp 0x5b5a0
leaq -0x178(%rbp), %rdi
callq 0x7ae8
leaq 0x52b6f(%rip), %rdx     # 0xae122
leaq -0x198(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x63360
jmp 0x5b5c5
leaq 0x8dd6c(%rip), %rsi     # 0xe9338
leaq -0x198(%rbp), %rdi
callq 0x7b3c0
jmp 0x5b5da
leaq -0x198(%rbp), %rdi
callq 0x7ae8
leaq 0x52b45(%rip), %rdx     # 0xae132
leaq -0x1b8(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x63360
jmp 0x5b5ff
leaq 0x8dd4a(%rip), %rsi     # 0xe9350
leaq -0x1b8(%rbp), %rdi
callq 0x7b3c0
jmp 0x5b614
leaq -0x1b8(%rbp), %rdi
callq 0x7ae8
leaq 0x52b1e(%rip), %rdx     # 0xae145
leaq -0x1d8(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x63360
jmp 0x5b639
leaq 0x8dd28(%rip), %rsi     # 0xe9368
leaq -0x1d8(%rbp), %rdi
callq 0x7b3c0
jmp 0x5b64e
leaq -0x1d8(%rbp), %rdi
callq 0x7ae8
leaq 0x52af7(%rip), %rdx     # 0xae158
leaq -0x1f8(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x63360
jmp 0x5b673
leaq 0x8dd06(%rip), %rsi     # 0xe9380
leaq -0x1f8(%rbp), %rdi
callq 0x7b3c0
jmp 0x5b688
leaq -0x1f8(%rbp), %rdi
callq 0x7ae8
leaq 0x52acf(%rip), %rdx     # 0xae16a
leaq -0x218(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x63360
jmp 0x5b6ad
leaq 0x8dce4(%rip), %rsi     # 0xe9398
leaq -0x218(%rbp), %rdi
callq 0x7b3c0
jmp 0x5b6c2
leaq -0x218(%rbp), %rdi
callq 0x7ae8
leaq 0x52aa7(%rip), %rdx     # 0xae17c
leaq -0x238(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x63360
jmp 0x5b6e7
leaq 0x8dcc2(%rip), %rsi     # 0xe93b0
leaq -0x238(%rbp), %rdi
callq 0x7b3c0
jmp 0x5b6fc
leaq -0x238(%rbp), %rdi
callq 0x7ae8
leaq 0x52a7f(%rip), %rdx     # 0xae18e
leaq -0x258(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x63360
jmp 0x5b721
leaq 0x8dca0(%rip), %rsi     # 0xe93c8
leaq -0x258(%rbp), %rdi
callq 0x7b3c0
jmp 0x5b736
leaq -0x258(%rbp), %rdi
callq 0x7ae8
leaq 0x52a57(%rip), %rdx     # 0xae1a0
leaq -0x278(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x63360
jmp 0x5b75b
leaq 0x8db5e(%rip), %rsi     # 0xe92c0
leaq -0x278(%rbp), %rdi
callq 0x7b3c0
jmp 0x5b770
leaq -0x278(%rbp), %rdi
callq 0x7ae8
leaq 0x52a27(%rip), %rdx     # 0xae1aa
leaq -0x298(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x63360
jmp 0x5b795
leaq 0x8daac(%rip), %rsi     # 0xe9248
leaq -0x298(%rbp), %rdi
callq 0x7b3c0
jmp 0x5b7aa
leaq -0x298(%rbp), %rdi
callq 0x7ae8
leaq 0x529f6(%rip), %rdx     # 0xae1b3
leaq -0x2b8(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x63360
jmp 0x5b7cf
leaq 0x8da8a(%rip), %rsi     # 0xe9260
leaq 0x8dc33(%rip), %rdx     # 0xe9410
leaq 0x8dc8c(%rip), %rcx     # 0xe9470
leaq -0x2b8(%rbp), %rdi
callq 0x7b630
jmp 0x5b7f2
leaq -0x2b8(%rbp), %rdi
callq 0x7ae8
leaq 0x529b6(%rip), %rdx     # 0xae1bb
leaq -0x2d8(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x63360
jmp 0x5b817
leaq 0x8da5a(%rip), %rsi     # 0xe9278
leaq 0x8dc03(%rip), %rdx     # 0xe9428
leaq 0x8d9d4(%rip), %rcx     # 0xe9200
leaq 0x8dc65(%rip), %r8      # 0xe9498
leaq -0x2d8(%rbp), %rdi
callq 0x7b8f0
jmp 0x5b841
leaq -0x2d8(%rbp), %rdi
callq 0x7ae8
leaq 0x5296f(%rip), %rdx     # 0xae1c3
leaq -0x2f8(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x63360
jmp 0x5b866
leaq 0x8da23(%rip), %rsi     # 0xe9290
leaq 0x8dbcc(%rip), %rdx     # 0xe9440
leaq 0x8d99d(%rip), %rcx     # 0xe9218
leaq 0x8dc3e(%rip), %r8      # 0xe94c0
leaq -0x2f8(%rbp), %rdi
callq 0x7b8f0
jmp 0x5b890
leaq -0x2f8(%rbp), %rdi
callq 0x7ae8
leaq 0x52928(%rip), %rdx     # 0xae1cb
leaq -0x318(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x63360
jmp 0x5b8b5
leaq 0x8d9ec(%rip), %rsi     # 0xe92a8
leaq 0x8db95(%rip), %rdx     # 0xe9458
leaq 0x8d966(%rip), %rcx     # 0xe9230
leaq 0x8dc17(%rip), %r8      # 0xe94e8
leaq -0x318(%rbp), %rdi
callq 0x7b8f0
jmp 0x5b8df
leaq -0x318(%rbp), %rdi
callq 0x7ae8
leaq 0x8dc66(%rip), %rax     # 0xe9558
movq %rax, -0x320(%rbp)
leaq 0x8dc58(%rip), %rdi     # 0xe9558
callq 0x6b7c0
movq %rax, -0x328(%rbp)
leaq 0x8dc45(%rip), %rdi     # 0xe9558
callq 0x6b7f0
movq %rax, -0x330(%rbp)
leaq -0x328(%rbp), %rdi
leaq -0x330(%rbp), %rsi
callq 0x6b820
testb $0x1, %al
jne 0x5b93b
jmp 0x5bc60
leaq -0x328(%rbp), %rdi
callq 0x6b850
movq %rax, -0x338(%rbp)
movq -0x338(%rbp), %rdx
addq $0x8, %rdx
leaq -0x358(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x6b870
jmp 0x5b96b
movq -0x338(%rbp), %rax
movl (%rax), %eax
movl %eax, %esi
leaq 0x8d95b(%rip), %rdi     # 0xe92d8
callq 0x63540
movq %rax, %rsi
leaq -0x358(%rbp), %rdi
callq 0x5f780
jmp 0x5b993
leaq -0x358(%rbp), %rdi
callq 0x7ae8
leaq -0x328(%rbp), %rdi
callq 0x6b8f0
jmp 0x5b91f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
jmp 0x5c243
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
leaq -0xf8(%rbp), %rdi
callq 0x7ae8
jmp 0x5c243
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
leaq -0x118(%rbp), %rdi
callq 0x7ae8
jmp 0x5c243
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
leaq -0x138(%rbp), %rdi
callq 0x7ae8
jmp 0x5c243
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
leaq -0x158(%rbp), %rdi
callq 0x7ae8
jmp 0x5c243
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
leaq -0x178(%rbp), %rdi
callq 0x7ae8
jmp 0x5c243
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
leaq -0x198(%rbp), %rdi
callq 0x7ae8
jmp 0x5c243
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
leaq -0x1b8(%rbp), %rdi
callq 0x7ae8
jmp 0x5c243
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
leaq -0x1d8(%rbp), %rdi
callq 0x7ae8
jmp 0x5c243
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
leaq -0x1f8(%rbp), %rdi
callq 0x7ae8
jmp 0x5c243
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
leaq -0x218(%rbp), %rdi
callq 0x7ae8
jmp 0x5c243
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
leaq -0x238(%rbp), %rdi
callq 0x7ae8
jmp 0x5c243
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
leaq -0x258(%rbp), %rdi
callq 0x7ae8
jmp 0x5c243
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
leaq -0x278(%rbp), %rdi
callq 0x7ae8
jmp 0x5c243
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
leaq -0x298(%rbp), %rdi
callq 0x7ae8
jmp 0x5c243
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
leaq -0x2b8(%rbp), %rdi
callq 0x7ae8
jmp 0x5c243
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
leaq -0x2d8(%rbp), %rdi
callq 0x7ae8
jmp 0x5c243
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
leaq -0x2f8(%rbp), %rdi
callq 0x7ae8
jmp 0x5c243
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
leaq -0x318(%rbp), %rdi
callq 0x7ae8
jmp 0x5c243
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
leaq -0x358(%rbp), %rdi
callq 0x7ae8
jmp 0x5c243
leaq 0x8d921(%rip), %rax     # 0xe9588
movq %rax, -0x360(%rbp)
leaq 0x8d913(%rip), %rdi     # 0xe9588
callq 0x6b920
movq %rax, -0x368(%rbp)
leaq 0x8d900(%rip), %rdi     # 0xe9588
callq 0x6b950
movq %rax, -0x370(%rbp)
leaq -0x368(%rbp), %rdi
leaq -0x370(%rbp), %rsi
callq 0x6b980
testb $0x1, %al
jne 0x5bcb0
jmp 0x5bd48
leaq -0x368(%rbp), %rdi
callq 0x6b9b0
movq %rax, -0x378(%rbp)
movq -0x378(%rbp), %rdx
addq $0x8, %rdx
leaq -0x398(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x6b870
jmp 0x5bce0
movq -0x378(%rbp), %rax
movl (%rax), %eax
movl %eax, %esi
leaq 0x8d5fe(%rip), %rdi     # 0xe92f0
callq 0x63540
movq %rax, %rsi
leaq -0x398(%rbp), %rdi
callq 0x5f780
jmp 0x5bd08
leaq -0x398(%rbp), %rdi
callq 0x7ae8
leaq -0x368(%rbp), %rdi
callq 0x6b9d0
jmp 0x5bc94
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
leaq -0x398(%rbp), %rdi
callq 0x7ae8
jmp 0x5c243
leaq 0x8d869(%rip), %rax     # 0xe95b8
movq %rax, -0x3a0(%rbp)
leaq 0x8d85b(%rip), %rdi     # 0xe95b8
callq 0x6ba00
movq %rax, -0x3a8(%rbp)
leaq 0x8d848(%rip), %rdi     # 0xe95b8
callq 0x6ba30
movq %rax, -0x3b0(%rbp)
leaq -0x3a8(%rbp), %rdi
leaq -0x3b0(%rbp), %rsi
callq 0x6ba60
testb $0x1, %al
jne 0x5bd98
jmp 0x5be30
leaq -0x3a8(%rbp), %rdi
callq 0x6ba90
movq %rax, -0x3b8(%rbp)
movq -0x3b8(%rbp), %rdx
addq $0x8, %rdx
leaq -0x3d8(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x6b870
jmp 0x5bdc8
movq -0x3b8(%rbp), %rax
movl (%rax), %eax
movl %eax, %esi
leaq 0x8d52e(%rip), %rdi     # 0xe9308
callq 0x63540
movq %rax, %rsi
leaq -0x3d8(%rbp), %rdi
callq 0x5f780
jmp 0x5bdf0
leaq -0x3d8(%rbp), %rdi
callq 0x7ae8
leaq -0x3a8(%rbp), %rdi
callq 0x6bab0
jmp 0x5bd7c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
leaq -0x3d8(%rbp), %rdi
callq 0x7ae8
jmp 0x5c243
leaq 0x8d7e1(%rip), %rax     # 0xe9618
movq %rax, -0x3e0(%rbp)
leaq 0x8d7d3(%rip), %rdi     # 0xe9618
callq 0x6bae0
movq %rax, -0x3e8(%rbp)
leaq 0x8d7c0(%rip), %rdi     # 0xe9618
callq 0x6bb10
movq %rax, -0x3f0(%rbp)
leaq -0x3e8(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
callq 0x6bb40
testb $0x1, %al
jne 0x5be80
jmp 0x5bf18
leaq -0x3e8(%rbp), %rdi
callq 0x6bb70
movq %rax, -0x3f8(%rbp)
movq -0x3f8(%rbp), %rdx
addq $0x8, %rdx
leaq -0x418(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x6b870
jmp 0x5beb0
movq -0x3f8(%rbp), %rax
movl (%rax), %eax
movl %eax, %esi
leaq 0x8d476(%rip), %rdi     # 0xe9338
callq 0x63540
movq %rax, %rsi
leaq -0x418(%rbp), %rdi
callq 0x5f780
jmp 0x5bed8
leaq -0x418(%rbp), %rdi
callq 0x7ae8
leaq -0x3e8(%rbp), %rdi
callq 0x6bb90
jmp 0x5be64
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
leaq -0x418(%rbp), %rdi
callq 0x7ae8
jmp 0x5c243
leaq 0x8d6c9(%rip), %rax     # 0xe95e8
movq %rax, -0x420(%rbp)
leaq 0x8d6bb(%rip), %rdi     # 0xe95e8
callq 0x6bbc0
movq %rax, -0x428(%rbp)
leaq 0x8d6a8(%rip), %rdi     # 0xe95e8
callq 0x6bbf0
movq %rax, -0x430(%rbp)
leaq -0x428(%rbp), %rdi
leaq -0x430(%rbp), %rsi
callq 0x6bc20
testb $0x1, %al
jne 0x5bf68
jmp 0x5c000
leaq -0x428(%rbp), %rdi
callq 0x6bc50
movq %rax, -0x438(%rbp)
movq -0x438(%rbp), %rdx
addq $0x8, %rdx
leaq -0x458(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x6b870
jmp 0x5bf98
movq -0x438(%rbp), %rax
movl (%rax), %eax
movl %eax, %esi
leaq 0x8d376(%rip), %rdi     # 0xe9320
callq 0x63540
movq %rax, %rsi
leaq -0x458(%rbp), %rdi
callq 0x5f780
jmp 0x5bfc0
leaq -0x458(%rbp), %rdi
callq 0x7ae8
leaq -0x428(%rbp), %rdi
callq 0x6bc70
jmp 0x5bf4c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
leaq -0x458(%rbp), %rdi
callq 0x7ae8
jmp 0x5c243
leaq 0x8d641(%rip), %rax     # 0xe9648
movq %rax, -0x460(%rbp)
leaq 0x8d633(%rip), %rdi     # 0xe9648
callq 0x6bca0
movq %rax, -0x468(%rbp)
leaq 0x8d620(%rip), %rdi     # 0xe9648
callq 0x6bcd0
movq %rax, -0x470(%rbp)
leaq -0x468(%rbp), %rdi
leaq -0x470(%rbp), %rsi
callq 0x6bd00
testb $0x1, %al
jne 0x5c050
jmp 0x5c0e8
leaq -0x468(%rbp), %rdi
callq 0x6bd30
movq %rax, -0x478(%rbp)
movq -0x478(%rbp), %rdx
addq $0x8, %rdx
leaq -0x498(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x6b870
jmp 0x5c080
movq -0x478(%rbp), %rax
movl (%rax), %eax
movl %eax, %esi
leaq 0x8d2be(%rip), %rdi     # 0xe9350
callq 0x63540
movq %rax, %rsi
leaq -0x498(%rbp), %rdi
callq 0x5f780
jmp 0x5c0a8
leaq -0x498(%rbp), %rdi
callq 0x7ae8
leaq -0x468(%rbp), %rdi
callq 0x6bd50
jmp 0x5c034
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
leaq -0x498(%rbp), %rdi
callq 0x7ae8
jmp 0x5c243
leaq 0x8d589(%rip), %rax     # 0xe9678
movq %rax, -0x4a0(%rbp)
leaq 0x8d57b(%rip), %rdi     # 0xe9678
callq 0x6bd80
movq %rax, -0x4a8(%rbp)
leaq 0x8d568(%rip), %rdi     # 0xe9678
callq 0x6bdb0
movq %rax, -0x4b0(%rbp)
leaq -0x4a8(%rbp), %rdi
leaq -0x4b0(%rbp), %rsi
callq 0x6bde0
testb $0x1, %al
jne 0x5c138
jmp 0x5c1cd
leaq -0x4a8(%rbp), %rdi
callq 0x6be10
movq %rax, -0x4b8(%rbp)
movq -0x4b8(%rbp), %rdx
addq $0x8, %rdx
leaq -0x4d8(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x6b870
jmp 0x5c168
movq -0x4b8(%rbp), %rax
movl (%rax), %eax
movl %eax, %esi
leaq 0x8d1ee(%rip), %rdi     # 0xe9368
callq 0x63540
movq %rax, %rsi
leaq -0x4d8(%rbp), %rdi
callq 0x5f780
jmp 0x5c190
leaq -0x4d8(%rbp), %rdi
callq 0x7ae8
leaq -0x4a8(%rbp), %rdi
callq 0x6be30
jmp 0x5c11c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
leaq -0x4d8(%rbp), %rdi
callq 0x7ae8
jmp 0x5c243
leaq 0x51fff(%rip), %rdx     # 0xae1d3
leaq -0x4f8(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x63360
jmp 0x5c1e6
leaq 0x8d20b(%rip), %rdi     # 0xe93f8
xorl %eax, %eax
movl %eax, %esi
callq 0x63540
movq %rax, %rsi
leaq -0x4f8(%rbp), %rdi
callq 0x5f780
jmp 0x5c207
leaq -0x4f8(%rbp), %rdi
callq 0x7ae8
leaq -0x20(%rbp), %rdi
callq 0x7ae8
addq $0x510, %rsp            # imm = 0x510
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
leaq -0x4f8(%rbp), %rdi
callq 0x7ae8
leaq -0x20(%rbp), %rdi
callq 0x7ae8
movq -0xc8(%rbp), %rdi
callq 0x79b0
nopl (%rax,%rax)