// File: /workspace/github_cpp_makefile_star2_O1/ChanTsune[P]py_string/example.cpp
// Function: main
int main(int argc, char const *argv[])
{
  using namespace std;
  // string multiplication
  py::string multiplication = "hello world!";

  std::cout << multiplication * 2 << std::endl;
  // hello world!hello world!

  // Subscript operator
  py::string Subscript_operator = "0123456789";

  cout << Subscript_operator[0] << endl;

  cout << Subscript_operator[-1] << endl; // last element

  cout << Subscript_operator[-3] << endl; // third element from the back (7)

  // string slice
  py::string slice = "0123456789";

  cout << slice.slice(0, 20, 2) << endl;
  cout << slice.slice(0, 20, -2) << endl;
  cout << slice[{ 4, py::nullopt }] << endl;

  // string format
  py::string format = "{} is {} than {}";

  cout << format.format(3, "bigger", 1) << endl;

  cout << format.format(2, "smaller", 4) << endl;

  py::string format2 = "{0} is {1} as {0}";

  cout << format2.format(2, "same") << endl;

  // string replace

  py::string replace = "1+2-3";

  cout << replace.pyreplace("-", "=");
  // 1+2=3

  // string split
  py::string split = "12,3,4-2,2,3";
  std::deque<py::string> slist; // std::vector is also acceptable

  split.split(slist, ",");

  for (auto &&s : slist) {
    cout << s << endl;
  }
  // Check ASCII character string
  py::string ascii = "Hello World!";
  cout << std::boolalpha << ascii.isascii() << endl;

  py::string not_ascii = "ハローワールド！";
  cout << std::boolalpha << not_ascii.isascii() << endl;

  // translate
  py::string tstr = "text abc so cool.";
  auto table = py::string::maketrans("abcd", "ABCD", ".");
  std::unordered_map<char, py::string> _t;
  _t['.'] = "!!";
  _t['s'] = "";
  _t['o'] = "O";

  auto table2 = py::string::maketrans(_t);

  cout << tstr.translate(table) << endl;

  cout << tstr.translate(table2) << endl;

  return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x358, %rsp            # imm = 0x358
leaq -0x190(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x178c8(%rip), %rsi     # 0x1c15a
leaq 0x178cd(%rip), %rdx     # 0x1c166
leaq -0x1a0(%rbp), %rbx
movq %rbx, %rdi
callq 0x6436
leaq -0x80(%rbp), %rdi
movl $0x2, %edx
movq %rbx, %rsi
callq 0x59bc
movq -0x80(%rbp), %rsi
movq -0x78(%rbp), %rdx
movq 0x206f8(%rip), %rdi     # 0x24fc0
callq 0x4350
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x42b0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x4200
leaq -0x70(%rbp), %r14
movq -0x10(%r14), %rdi
cmpq %r14, %rdi
je 0x4910
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x42d0
leaq -0xb0(%rbp), %r12
movq %r12, -0x10(%r12)
leaq 0x17844(%rip), %rsi     # 0x1c167
leaq 0x17847(%rip), %rdx     # 0x1c171
leaq -0xc0(%rbp), %rdi
callq 0x6436
movq -0xc0(%rbp), %rax
movb (%rax), %al
leaq -0x80(%rbp), %rsi
movb %al, (%rsi)
movq 0x20674(%rip), %rdi     # 0x24fc0
movl $0x1, %edx
callq 0x4350
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x42b0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x4200
movq -0xc0(%rbp), %rax
movq -0xb8(%rbp), %rcx
movb -0x1(%rax,%rcx), %al
leaq -0x80(%rbp), %rsi
movb %al, (%rsi)
movq 0x20621(%rip), %rdi     # 0x24fc0
movl $0x1, %edx
callq 0x4350
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x42b0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x4200
movq -0xc0(%rbp), %rax
movq -0xb8(%rbp), %rcx
movb -0x3(%rax,%rcx), %al
leaq -0x80(%rbp), %rsi
movb %al, (%rsi)
movq 0x205ce(%rip), %rdi     # 0x24fc0
movl $0x1, %edx
callq 0x4350
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x42b0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x4200
leaq -0xf0(%rbp), %r13
movq %r13, -0x10(%r13)
leaq 0x1772f(%rip), %rsi     # 0x1c167
leaq 0x17732(%rip), %rdx     # 0x1c171
leaq -0x100(%rbp), %rdi
callq 0x6436
leaq -0x80(%rbp), %rdi
leaq -0x100(%rbp), %rsi
movabsq $0x100000000, %rdx      # imm = 0x100000000
movabsq $0x100000014, %rcx      # imm = 0x100000014
movabsq $0x100000002, %r8       # imm = 0x100000002
callq 0x5a54
movq -0x80(%rbp), %rsi
movq -0x78(%rbp), %rdx
movq 0x20538(%rip), %rdi     # 0x24fc0
callq 0x4350
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x42b0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x4200
movq -0x80(%rbp), %rdi
cmpq %r14, %rdi
je 0x4acc
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x42d0
leaq -0x80(%rbp), %rdi
leaq -0x100(%rbp), %rsi
movabsq $0x100000000, %rdx      # imm = 0x100000000
movabsq $0x100000014, %rcx      # imm = 0x100000014
movabsq $0x1fffffffe, %r8       # imm = 0x1FFFFFFFE
callq 0x5a54
movq -0x80(%rbp), %rsi
movq -0x78(%rbp), %rdx
movq 0x204b7(%rip), %rdi     # 0x24fc0
callq 0x4350
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x42b0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x4200
movq -0x80(%rbp), %rdi
cmpq %r14, %rdi
je 0x4b4d
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x42d0
leaq -0x348(%rbp), %rdx
movl $0x4, (%rdx)
movb $0x1, 0x4(%rdx)
movb $0x0, 0xc(%rdx)
leaq -0x80(%rbp), %rdi
leaq -0x100(%rbp), %rsi
movl $0x2, %ecx
callq 0x5bde
movq -0x80(%rbp), %rsi
movq -0x78(%rbp), %rdx
movq 0x2043a(%rip), %rdi     # 0x24fc0
callq 0x4350
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x42b0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x4200
movq -0x80(%rbp), %rdi
cmpq %r14, %rdi
je 0x4bca
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x42d0
leaq -0xd0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x17596(%rip), %rsi     # 0x1c172
leaq 0x1759f(%rip), %rdx     # 0x1c182
leaq -0xe0(%rbp), %rdi
callq 0x6436
leaq 0x1758d(%rip), %rcx     # 0x1c183
leaq -0x80(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
movl $0x3, %edx
movl $0x1, %r8d
callq 0x5c9e
movq -0x80(%rbp), %rsi
movq -0x78(%rbp), %rdx
movq 0x203a0(%rip), %rdi     # 0x24fc0
callq 0x4350
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x42b0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x4200
movq -0x80(%rbp), %rdi
cmpq %r14, %rdi
je 0x4c64
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x42d0
leaq 0x1751f(%rip), %rcx     # 0x1c18a
leaq -0x80(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
movl $0x2, %edx
movl $0x4, %r8d
callq 0x5c9e
movq -0x80(%rbp), %rsi
movq -0x78(%rbp), %rdx
movq 0x2032b(%rip), %rdi     # 0x24fc0
callq 0x4350
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x42b0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x4200
movq -0x80(%rbp), %rdi
cmpq %r14, %rdi
je 0x4cd9
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x42d0
leaq -0x170(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x174a7(%rip), %rsi     # 0x1c192
leaq 0x174b1(%rip), %rdx     # 0x1c1a3
leaq -0x180(%rbp), %rdi
callq 0x6436
leaq 0x1749f(%rip), %rcx     # 0x1c1a4
leaq -0x80(%rbp), %rdi
leaq -0x180(%rbp), %rsi
movl $0x2, %edx
callq 0x5e32
movq -0x80(%rbp), %rsi
movq -0x78(%rbp), %rdx
movq 0x20297(%rip), %rdi     # 0x24fc0
callq 0x4350
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x42b0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x4200
movq -0x80(%rbp), %rdi
cmpq %r14, %rdi
je 0x4d6d
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x42d0
leaq -0x150(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x1742a(%rip), %rsi     # 0x1c1a9
leaq 0x17428(%rip), %rdx     # 0x1c1ae
leaq -0x160(%rbp), %rdi
callq 0x6436
leaq -0x290(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x1740b(%rip), %rsi     # 0x1c1af
leaq 0x17405(%rip), %rdx     # 0x1c1b0
leaq -0x2a0(%rbp), %rdi
callq 0x6436
leaq -0x270(%rbp), %r12
movq %r12, -0x10(%r12)
leaq 0x173e7(%rip), %rsi     # 0x1c1b1
leaq 0x173e1(%rip), %rdx     # 0x1c1b2
leaq -0x280(%rbp), %rdi
callq 0x6436
leaq -0x80(%rbp), %rdi
leaq -0x160(%rbp), %rsi
leaq -0x2a0(%rbp), %rdx
leaq -0x280(%rbp), %rcx
movq $-0x1, %r8
callq 0x5fbc
movq -0x80(%rbp), %rsi
movq -0x78(%rbp), %rdx
movq 0x201af(%rip), %rdi     # 0x24fc0
callq 0x4350
movq -0x80(%rbp), %rdi
cmpq %r14, %rdi
je 0x4e2b
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x42d0
movq -0x280(%rbp), %rdi
cmpq %r12, %rdi
je 0x4e46
movq -0x270(%rbp), %rsi
incq %rsi
callq 0x42d0
movq -0x2a0(%rbp), %rdi
cmpq %r15, %rdi
je 0x4e61
movq -0x290(%rbp), %rsi
incq %rsi
callq 0x42d0
leaq -0x130(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x17340(%rip), %rsi     # 0x1c1b3
leaq 0x17345(%rip), %rdx     # 0x1c1bf
leaq -0x140(%rbp), %rdi
callq 0x6436
xorps %xmm0, %xmm0
leaq -0x80(%rbp), %rdi
movaps %xmm0, 0x40(%rdi)
movaps %xmm0, 0x30(%rdi)
movaps %xmm0, 0x20(%rdi)
movaps %xmm0, 0x10(%rdi)
movaps %xmm0, (%rdi)
xorl %esi, %esi
callq 0x64de
leaq -0x250(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x17307(%rip), %rsi     # 0x1c1c0
leaq 0x17301(%rip), %rdx     # 0x1c1c1
leaq -0x260(%rbp), %rdi
callq 0x6436
leaq -0x140(%rbp), %rdi
leaq -0x80(%rbp), %rsi
leaq -0x260(%rbp), %rdx
movq $-0x1, %rcx
callq 0x60aa
movq -0x260(%rbp), %rdi
cmpq %rbx, %rdi
je 0x4f05
movq -0x250(%rbp), %rsi
incq %rsi
callq 0x42d0
movq -0x70(%rbp), %r12
movq -0x50(%rbp), %r13
cmpq %r13, %r12
je 0x4f77
movq -0x60(%rbp), %r14
movq -0x58(%rbp), %rbx
movq (%r12), %rsi
movq 0x8(%r12), %rdx
movq 0x20096(%rip), %rdi     # 0x24fc0
callq 0x4350
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x42b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x4200
addq $0x20, %r12
cmpq %r14, %r12
jne 0x4f72
movq 0x8(%rbx), %r12
addq $0x8, %rbx
leaq 0x200(%r12), %r14
cmpq %r13, %r12
jne 0x4f1a
leaq -0x1d0(%rbp), %r13
movq %r13, -0x10(%r13)
leaq 0x17239(%rip), %rsi     # 0x1c1c2
leaq 0x1723e(%rip), %rdx     # 0x1c1ce
leaq -0x1e0(%rbp), %rdi
callq 0x6436
movq 0x2001d(%rip), %rcx     # 0x24fc0
movq (%rcx), %rax
movq -0x18(%rax), %rax
orl $0x1, 0x18(%rcx,%rax)
movq -0x1d8(%rbp), %rcx
testq %rcx, %rcx
je 0x4fe0
movq -0x1e0(%rbp), %rdx
cmpb $0x0, (%rdx)
js 0x4fe4
movl $0x1, %esi
cmpq %rsi, %rcx
sete %al
je 0x4fe6
cmpb $0x0, (%rdx,%rsi)
leaq 0x1(%rsi), %rsi
jns 0x4fcc
jmp 0x4fe6
movb $0x1, %al
jmp 0x4fe6
xorl %eax, %eax
movzbl %al, %esi
movq 0x1ffd0(%rip), %rbx     # 0x24fc0
movq %rbx, %rdi
callq 0x44c0
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x42b0
movsbl %al, %esi
movq %r14, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x4200
leaq -0x1b0(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x1719b(%rip), %rsi     # 0x1c1cf
leaq 0x171ac(%rip), %rdx     # 0x1c1e7
leaq -0x1c0(%rbp), %rdi
callq 0x6436
movq (%rbx), %rax
movq -0x18(%rax), %rax
orl $0x1, 0x18(%rbx,%rax)
movq -0x1b8(%rbp), %rcx
testq %rcx, %rcx
je 0x5084
movq -0x1c0(%rbp), %rdx
cmpb $0x0, (%rdx)
js 0x5088
movl $0x1, %esi
cmpq %rsi, %rcx
sete %al
je 0x508a
cmpb $0x0, (%rdx,%rsi)
leaq 0x1(%rsi), %rsi
jns 0x5070
jmp 0x508a
movb $0x1, %al
jmp 0x508a
xorl %eax, %eax
movzbl %al, %esi
movq 0x1ff2c(%rip), %rdi     # 0x24fc0
callq 0x44c0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x42b0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x4200
leaq -0x110(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x17113(%rip), %rsi     # 0x1c1e8
leaq 0x1711d(%rip), %rdx     # 0x1c1f9
leaq -0x120(%rbp), %rdi
callq 0x6436
leaq -0x230(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x17100(%rip), %rsi     # 0x1c1fa
leaq 0x170fd(%rip), %rdx     # 0x1c1fe
leaq -0x240(%rbp), %rdi
callq 0x6436
leaq -0x210(%rbp), %r12
movq %r12, -0x10(%r12)
leaq 0x170df(%rip), %rsi     # 0x1c1ff
leaq 0x170dc(%rip), %rdx     # 0x1c203
leaq -0x220(%rbp), %rdi
callq 0x6436
leaq -0x1f0(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x1740d(%rip), %rsi     # 0x1c552
leaq 0x17407(%rip), %rdx     # 0x1c553
leaq -0x200(%rbp), %rdi
callq 0x6436
leaq -0x348(%rbp), %rdi
leaq -0x240(%rbp), %rsi
leaq -0x220(%rbp), %rdx
leaq -0x200(%rbp), %rcx
callq 0x6240
movq -0x200(%rbp), %rdi
cmpq %r15, %rdi
je 0x5194
movq -0x1f0(%rbp), %rsi
incq %rsi
callq 0x42d0
movq -0x220(%rbp), %rdi
cmpq %r12, %rdi
je 0x51af
movq -0x210(%rbp), %rsi
incq %rsi
callq 0x42d0
movq -0x240(%rbp), %rdi
cmpq %rbx, %rdi
je 0x51ca
movq -0x230(%rbp), %rsi
incq %rsi
callq 0x42d0
leaq -0x2a8(%rbp), %rax
movq %rax, -0x30(%rax)
movq $0x1, -0x28(%rax)
xorps %xmm0, %xmm0
movups %xmm0, -0x20(%rax)
movl $0x3f800000, -0x10(%rax) # imm = 0x3F800000
movups %xmm0, -0x8(%rax)
leaq -0x310(%rbp), %rsi
movb $0x2e, (%rsi)
leaq -0x2d8(%rbp), %rdi
callq 0x1b1f2
movq 0x8(%rax), %rdx
leaq 0x16ff4(%rip), %rcx     # 0x1c204
movl $0x2, %r8d
movq %rax, %rdi
xorl %esi, %esi
callq 0x4460
leaq -0x310(%rbp), %rsi
movb $0x73, (%rsi)
leaq -0x2d8(%rbp), %rdi
callq 0x1b1f2
movq 0x8(%rax), %rdx
leaq 0x17036(%rip), %rcx     # 0x1c277
movq %rax, %rdi
xorl %esi, %esi
xorl %r8d, %r8d
callq 0x4460
leaq -0x310(%rbp), %rsi
movb $0x6f, (%rsi)
leaq -0x2d8(%rbp), %rdi
callq 0x1b1f2
movq 0x8(%rax), %rdx
leaq 0x17542(%rip), %rcx     # 0x1c7b1
movl $0x1, %r8d
movq %rax, %rdi
xorl %esi, %esi
callq 0x4460
leaq -0x2b8(%rbp), %rax
xorl %ecx, %ecx
leaq -0x380(%rbp), %rdi
movq %rcx, (%rdi)
movq -0x18(%rax), %rdx
movq -0x8(%rax), %rsi
movq %rdx, 0x8(%rdi)
movq %rcx, 0x10(%rdi)
movq %rsi, 0x18(%rdi)
movups (%rax), %xmm0
movups %xmm0, 0x20(%rdi)
movq %rcx, 0x30(%rdi)
leaq -0xa0(%rbp), %rdx
movq %rdi, (%rdx)
leaq -0x2d8(%rbp), %rsi
callq 0x666a
leaq -0x310(%rbp), %rdi
leaq -0x380(%rbp), %rsi
callq 0x1b2c0
leaq -0x380(%rbp), %rdi
callq 0x695a
leaq -0xa0(%rbp), %rdi
leaq -0x120(%rbp), %rsi
leaq -0x348(%rbp), %rdx
callq 0x6344
movq -0xa0(%rbp), %rsi
movq -0x98(%rbp), %rdx
movq 0x1fcab(%rip), %rdi     # 0x24fc0
callq 0x4350
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x42b0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x4200
leaq -0x90(%rbp), %r12
movq -0x10(%r12), %rdi
cmpq %r12, %rdi
je 0x5364
movq -0x90(%rbp), %rsi
incq %rsi
callq 0x42d0
leaq -0xa0(%rbp), %rdi
leaq -0x120(%rbp), %rsi
leaq -0x310(%rbp), %rdx
callq 0x6344
movq -0xa0(%rbp), %rsi
movq -0x98(%rbp), %rdx
movq 0x1fc2d(%rip), %rdi     # 0x24fc0
callq 0x4350
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x42b0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x4200
movq -0xa0(%rbp), %rdi
cmpq %r12, %rdi
je 0x53dd
movq -0x90(%rbp), %rsi
incq %rsi
callq 0x42d0
leaq -0x310(%rbp), %rdi
callq 0x695a
leaq -0x2d8(%rbp), %rdi
callq 0x695a
leaq -0x348(%rbp), %rdi
callq 0x695a
movq -0x120(%rbp), %rdi
leaq -0x110(%rbp), %rax
cmpq %rax, %rdi
je 0x5423
movq -0x110(%rbp), %rsi
incq %rsi
callq 0x42d0
movq -0x1c0(%rbp), %rdi
cmpq %r14, %rdi
leaq -0x190(%rbp), %rbx
leaq -0xb0(%rbp), %r14
leaq -0xf0(%rbp), %r15
leaq -0x150(%rbp), %r12
je 0x545a
movq -0x1b0(%rbp), %rsi
incq %rsi
callq 0x42d0
movq -0x1e0(%rbp), %rdi
cmpq %r13, %rdi
je 0x5475
movq -0x1d0(%rbp), %rsi
incq %rsi
callq 0x42d0
leaq -0x80(%rbp), %rdi
callq 0x63e8
movq -0x140(%rbp), %rdi
leaq -0x130(%rbp), %rax
cmpq %rax, %rdi
je 0x54a0
movq -0x130(%rbp), %rsi
incq %rsi
callq 0x42d0
movq -0x160(%rbp), %rdi
cmpq %r12, %rdi
je 0x54bb
movq -0x150(%rbp), %rsi
incq %rsi
callq 0x42d0
movq -0x180(%rbp), %rdi
leaq -0x170(%rbp), %rax
cmpq %rax, %rdi
je 0x54dd
movq -0x170(%rbp), %rsi
incq %rsi
callq 0x42d0
movq -0xe0(%rbp), %rdi
leaq -0xd0(%rbp), %rax
cmpq %rax, %rdi
je 0x54ff
movq -0xd0(%rbp), %rsi
incq %rsi
callq 0x42d0
movq -0x100(%rbp), %rdi
cmpq %r15, %rdi
je 0x551a
movq -0xf0(%rbp), %rsi
incq %rsi
callq 0x42d0
movq -0xc0(%rbp), %rdi
cmpq %r14, %rdi
je 0x5535
movq -0xb0(%rbp), %rsi
incq %rsi
callq 0x42d0
movq -0x1a0(%rbp), %rdi
cmpq %rbx, %rdi
je 0x5550
movq -0x190(%rbp), %rsi
incq %rsi
callq 0x42d0
xorl %eax, %eax
addq $0x358, %rsp            # imm = 0x358
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x5566
movq %rax, -0x30(%rbp)
jmp 0x570e
movq %rax, -0x30(%rbp)
leaq -0x380(%rbp), %rdi
jmp 0x5715
jmp 0x56d3
movq %rax, -0x30(%rbp)
movq -0x200(%rbp), %rdi
cmpq %r15, %rdi
je 0x55a9
movq -0x1f0(%rbp), %rsi
incq %rsi
callq 0x42d0
jmp 0x55a9
movq %rax, -0x30(%rbp)
movq -0x220(%rbp), %rdi
cmpq %r12, %rdi
je 0x55ca
movq -0x210(%rbp), %rsi
incq %rsi
callq 0x42d0
jmp 0x55ca
movq %rax, -0x30(%rbp)
movq -0x240(%rbp), %rdi
cmpq %rbx, %rdi
je 0x5732
movq -0x230(%rbp), %rsi
incq %rsi
callq 0x42d0
jmp 0x5732
movq %rax, -0x30(%rbp)
jmp 0x5732
jmp 0x5756
jmp 0x5777
jmp 0x581e
movq %rax, -0x30(%rbp)
movq -0x260(%rbp), %rdi
cmpq %rbx, %rdi
je 0x5822
movq -0x250(%rbp), %rsi
jmp 0x5792
jmp 0x581e
movq %rax, -0x30(%rbp)
jmp 0x582b
jmp 0x5692
movq %rax, -0x30(%rbp)
movq -0x80(%rbp), %rdi
cmpq %r14, %rdi
je 0x5655
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x42d0
jmp 0x5655
movq %rax, -0x30(%rbp)
movq -0x280(%rbp), %rdi
cmpq %r12, %rdi
je 0x5676
movq -0x270(%rbp), %rsi
incq %rsi
callq 0x42d0
jmp 0x5676
movq %rax, -0x30(%rbp)
movq -0x2a0(%rbp), %rdi
cmpq %r15, %rdi
je 0x584d
movq -0x290(%rbp), %rsi
jmp 0x5845
movq %rax, -0x30(%rbp)
jmp 0x584d
jmp 0x569d
movq %rax, -0x30(%rbp)
jmp 0x586f
jmp 0x56aa
jmp 0x56aa
movq %rax, %rbx
jmp 0x58aa
jmp 0x56b8
jmp 0x56b8
jmp 0x56b8
movq %rax, %rbx
jmp 0x58cc
jmp 0x5816
jmp 0x56c7
movq %rax, %rbx
jmp 0x5902
jmp 0x56d3
jmp 0x56d3
movq %rax, -0x30(%rbp)
jmp 0x571a
movq %rax, -0x30(%rbp)
movq -0xa0(%rbp), %rdi
cmpq %r12, %rdi
jne 0x56ff
jmp 0x570e
movq %rax, -0x30(%rbp)
leaq -0x90(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x570e
movq -0x90(%rbp), %rsi
incq %rsi
callq 0x42d0
leaq -0x310(%rbp), %rdi
callq 0x695a
leaq -0x2d8(%rbp), %rdi
callq 0x695a
leaq -0x348(%rbp), %rdi
callq 0x695a
movq -0x120(%rbp), %rdi
leaq -0x110(%rbp), %rax
cmpq %rax, %rdi
je 0x575a
movq -0x110(%rbp), %rsi
incq %rsi
callq 0x42d0
jmp 0x575a
movq %rax, -0x30(%rbp)
movq -0x1c0(%rbp), %rdi
cmpq %r14, %rdi
je 0x577b
movq -0x1b0(%rbp), %rsi
incq %rsi
callq 0x42d0
jmp 0x577b
movq %rax, -0x30(%rbp)
movq -0x1e0(%rbp), %rdi
cmpq %r13, %rdi
je 0x5822
movq -0x1d0(%rbp), %rsi
incq %rsi
callq 0x42d0
jmp 0x5822
movq %rax, -0x30(%rbp)
movq -0x80(%rbp), %rdi
cmpq %r14, %rdi
je 0x586f
movq -0x70(%rbp), %rsi
jmp 0x5867
jmp 0x57bb
movq %rax, %rbx
movq -0x80(%rbp), %rdi
cmpq %r14, %rdi
je 0x58aa
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x42d0
jmp 0x58aa
jmp 0x57e0
jmp 0x57e0
movq %rax, %rbx
movq -0x80(%rbp), %rdi
cmpq %r14, %rdi
je 0x58cc
movq -0x70(%rbp), %rsi
jmp 0x58c4
movq %rax, %rbx
leaq -0x70(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5902
movq -0x70(%rbp), %rsi
jmp 0x58fa
movq %rax, %rbx
jmp 0x58e7
movq %rax, -0x30(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x63e8
movq -0x140(%rbp), %rdi
leaq -0x130(%rbp), %rax
cmpq %rax, %rdi
je 0x584d
movq -0x130(%rbp), %rsi
incq %rsi
callq 0x42d0
movq -0x160(%rbp), %rdi
leaq -0x150(%rbp), %rax
cmpq %rax, %rdi
je 0x586f
movq -0x150(%rbp), %rsi
incq %rsi
callq 0x42d0
movq -0x180(%rbp), %rdi
leaq -0x170(%rbp), %rax
cmpq %rax, %rdi
je 0x5891
movq -0x170(%rbp), %rsi
incq %rsi
callq 0x42d0
leaq -0x190(%rbp), %r15
leaq -0xb0(%rbp), %r12
leaq -0xf0(%rbp), %r13
movq -0x30(%rbp), %rbx
leaq -0xd0(%rbp), %rax
movq -0xe0(%rbp), %rdi
cmpq %rax, %rdi
je 0x58cc
movq -0xd0(%rbp), %rsi
incq %rsi
callq 0x42d0
movq -0x100(%rbp), %rdi
cmpq %r13, %rdi
je 0x58e7
movq -0xf0(%rbp), %rsi
incq %rsi
callq 0x42d0
movq -0xc0(%rbp), %rdi
cmpq %r12, %rdi
je 0x5902
movq -0xb0(%rbp), %rsi
incq %rsi
callq 0x42d0
movq -0x1a0(%rbp), %rdi
cmpq %r15, %rdi
je 0x591d
movq -0x190(%rbp), %rsi
incq %rsi
callq 0x42d0
movq %rbx, %rdi
callq 0x4510
nop