// File: czinn[P]homeworlds/game.cc
// Function: Game::legal_system_actions(std::vector<Action, std::allocator<Action>>&, System const&, ActionType) const
void Game::legal_system_actions(std::vector<Action>& result,
                                const System& system, ActionType type) const {
  std::set<Action> actions;

  switch(type) {
    case PASS:
      break;

    case ATTACK: {
        Size largest = ZERO;
        for (const Ship& ship : system.ships) {
          if (ship.player == cur_player_ && ship.pyramid.size > largest) {
            largest = ship.pyramid.size;
          }
        }
        if (largest == ZERO) {
          break;

        }
        for (const Ship& ship : system.ships) {
          if (ship.player != cur_player_ && ship.pyramid.size <= largest) {
            actions.insert(
                Action{cur_player_, ATTACK, system.id, ship.pyramid});
          }
        }
      }
      break;

    case DISCOVER:
      for (const auto& it : stash_) {
        if (connected(system, it.first) && it.second > 0) {
          for (const Ship& ship : system.ships) {
            if (ship.player == cur_player_) {
              actions.insert(Action{cur_player_, DISCOVER,
                  system.id, ship.pyramid, 0, it.first});
            }
          }
        }
      }
      break;

    case TRAVEL:
      for (const auto& to_system : systems_) {
        if (connected(system, to_system)) {
          for (const Ship& ship : system.ships) {
            if (ship.player == cur_player_) {
              actions.insert(Action{cur_player_, TRAVEL,
                  system.id, ship.pyramid, to_system.id});
            }
          }
        }
      }
      break;

    case BUILD:
      for (Colour colour : { RED, YELLOW, GREEN, BLUE }) {
        if (colour_available(system, cur_player_, colour, false)) {
          Pyramid p = smallest_of_colour(colour);
          if (p.size != ZERO && stash_.at(p) > 0) {
            actions.insert(Action{cur_player_, BUILD, system.id, p});
          }
        }
      }
      break;

    case TRADE:
      for (const Ship& ship : system.ships) {
        if (ship.player == cur_player_) {
          for (Colour colour : { RED, YELLOW, GREEN, BLUE }) {
            Pyramid trade_pyramid{ship.pyramid.size, colour};
            if (colour != ship.pyramid.colour && stash_.at(trade_pyramid) > 0) {
              actions.insert(Action{cur_player_, TRADE,
                  system.id, ship.pyramid, 0, trade_pyramid});
            }
          }
        }
      }
      break;

    case SACRIFICE:
      for (const Ship& ship : system.ships) {
        if (ship.player == cur_player_) {
          actions.insert(Action{cur_player_, SACRIFICE,
              system.id, ship.pyramid});
        }
      }
      break;

    case CATASTROPHE: {
        int colour_counts[4] = {0};
        for (const Pyramid& star : system.stars) {
          colour_counts[star.colour]++;
        }
        for (const Ship& ship : system.ships) {
          if (++colour_counts[ship.pyramid.colour] == 4) {
            actions.insert(Action{cur_player_, CATASTROPHE,
                system.id, ship.pyramid});
          }
        }
      }
      break;
  }

  result.insert(result.end(), actions.begin(), actions.end());
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x470, %rsp            # imm = 0x470
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x3d8(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x8f90
movl -0x1c(%rbp), %eax
movq %rax, -0x3d0(%rbp)
subq $0x7, %rax
ja 0x55c9
movq -0x3d0(%rbp), %rax
leaq 0x1f6c0(%rip), %rcx     # 0x24010
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
jmp 0x55c9
movl $0x0, -0x54(%rbp)
movq -0x18(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rdi
callq 0x8be0
movq %rax, -0x68(%rbp)
movq -0x60(%rbp), %rdi
callq 0x8c10
movq %rax, -0x70(%rbp)
leaq -0x68(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x8ba0
testb $0x1, %al
jne 0x499e
jmp 0x49e0
leaq -0x68(%rbp), %rdi
callq 0x8fb0
movq -0x3d8(%rbp), %rcx
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rax
movl (%rax), %eax
cmpl 0x4(%rcx), %eax
jne 0x49d3
movq -0x78(%rbp), %rax
movl 0x4(%rax), %eax
cmpl -0x54(%rbp), %eax
jle 0x49d3
movq -0x78(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0x54(%rbp)
jmp 0x49d5
leaq -0x68(%rbp), %rdi
callq 0x8fd0
jmp 0x498b
cmpl $0x0, -0x54(%rbp)
jne 0x49eb
jmp 0x55c9
movq -0x18(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x80(%rbp)
movq -0x80(%rbp), %rdi
callq 0x8be0
movq %rax, -0x88(%rbp)
movq -0x80(%rbp), %rdi
callq 0x8c10
movq %rax, -0x90(%rbp)
leaq -0x88(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x8ba0
testb $0x1, %al
jne 0x4a33
jmp 0x4b36
leaq -0x88(%rbp), %rdi
callq 0x8fb0
movq -0x3d8(%rbp), %rcx
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
movl (%rax), %eax
cmpl 0x4(%rcx), %eax
je 0x4b23
movq -0x98(%rbp), %rax
movl 0x4(%rax), %eax
cmpl -0x54(%rbp), %eax
jg 0x4b23
movq -0x3d8(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0xb8(%rbp)
movl $0x1, -0xb4(%rbp)
movq -0x18(%rbp), %rax
movl (%rax), %eax
movl %eax, -0xb0(%rbp)
movq -0x98(%rbp), %rax
movq 0x4(%rax), %rax
movq %rax, -0xac(%rbp)
movl $0x0, -0xa4(%rbp)
movl $0x0, -0xa0(%rbp)
movl $0x0, -0x9c(%rbp)
leaq -0x50(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x8ff0
movb %dl, -0x3e1(%rbp)
movq %rax, -0x3e0(%rbp)
jmp 0x4ae7
movb -0x3e1(%rbp), %al
movq -0x3e0(%rbp), %rcx
movq %rcx, -0xd8(%rbp)
movb %al, -0xd0(%rbp)
jmp 0x4b23
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x9340
jmp 0x5667
jmp 0x4b25
leaq -0x88(%rbp), %rdi
callq 0x8fd0
jmp 0x4a17
jmp 0x55c9
movq -0x3d8(%rbp), %rax
addq $0x38, %rax
movq %rax, -0xe0(%rbp)
movq -0xe0(%rbp), %rdi
callq 0x8c60
movq %rax, -0xe8(%rbp)
movq -0xe0(%rbp), %rdi
callq 0x8c90
movq %rax, -0xf0(%rbp)
leaq -0xe8(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x8cc0
testb $0x1, %al
jne 0x4b8f
jmp 0x4d0b
leaq -0xe8(%rbp), %rdi
callq 0x8cf0
movq %rax, -0xf8(%rbp)
movq -0x18(%rbp), %rdi
movq -0xf8(%rbp), %rsi
callq 0x5790
movb %al, -0x3e2(%rbp)
jmp 0x4bba
movb -0x3e2(%rbp), %al
testb $0x1, %al
jne 0x4bc9
jmp 0x4cf8
movq -0xf8(%rbp), %rax
cmpl $0x0, 0x8(%rax)
jle 0x4cf8
movq -0x18(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x100(%rbp)
movq -0x100(%rbp), %rdi
callq 0x8be0
movq %rax, -0x108(%rbp)
movq -0x100(%rbp), %rdi
callq 0x8c10
movq %rax, -0x110(%rbp)
leaq -0x108(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x8ba0
testb $0x1, %al
jne 0x4c2b
jmp 0x4cf6
leaq -0x108(%rbp), %rdi
callq 0x8fb0
movq -0x3d8(%rbp), %rcx
movq %rax, -0x118(%rbp)
movq -0x118(%rbp), %rax
movl (%rax), %eax
cmpl 0x4(%rcx), %eax
jne 0x4ce3
movq -0x3d8(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0x138(%rbp)
movl $0x2, -0x134(%rbp)
movq -0x18(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x130(%rbp)
movq -0x118(%rbp), %rax
movq 0x4(%rax), %rax
movq %rax, -0x12c(%rbp)
movl $0x0, -0x124(%rbp)
movq -0xf8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x120(%rbp)
leaq -0x50(%rbp), %rdi
leaq -0x138(%rbp), %rsi
callq 0x8ff0
movb %dl, -0x3f1(%rbp)
movq %rax, -0x3f0(%rbp)
jmp 0x4cc9
movb -0x3f1(%rbp), %al
movq -0x3f0(%rbp), %rcx
movq %rcx, -0x148(%rbp)
movb %al, -0x140(%rbp)
jmp 0x4ce5
leaq -0x108(%rbp), %rdi
callq 0x8fd0
jmp 0x4c0f
jmp 0x4cf8
jmp 0x4cfa
leaq -0xe8(%rbp), %rdi
callq 0x8d10
jmp 0x4b73
jmp 0x55c9
movq -0x3d8(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x150(%rbp)
movq -0x150(%rbp), %rdi
callq 0x8ae0
movq %rax, -0x158(%rbp)
movq -0x150(%rbp), %rdi
callq 0x8b10
movq %rax, -0x160(%rbp)
leaq -0x158(%rbp), %rdi
leaq -0x160(%rbp), %rsi
callq 0x8b40
testb $0x1, %al
jne 0x4d64
jmp 0x4ed7
leaq -0x158(%rbp), %rdi
callq 0x8b80
movq %rax, -0x168(%rbp)
movq -0x18(%rbp), %rdi
movq -0x168(%rbp), %rsi
callq 0x5820
movb %al, -0x3f2(%rbp)
jmp 0x4d8f
movb -0x3f2(%rbp), %al
testb $0x1, %al
jne 0x4d9e
jmp 0x4ec4
movq -0x18(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x170(%rbp)
movq -0x170(%rbp), %rdi
callq 0x8be0
movq %rax, -0x178(%rbp)
movq -0x170(%rbp), %rdi
callq 0x8c10
movq %rax, -0x180(%rbp)
leaq -0x178(%rbp), %rdi
leaq -0x180(%rbp), %rsi
callq 0x8ba0
testb $0x1, %al
jne 0x4def
jmp 0x4ec2
leaq -0x178(%rbp), %rdi
callq 0x8fb0
movq -0x3d8(%rbp), %rcx
movq %rax, -0x188(%rbp)
movq -0x188(%rbp), %rax
movl (%rax), %eax
cmpl 0x4(%rcx), %eax
jne 0x4eaf
movq -0x3d8(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0x1a8(%rbp)
movl $0x3, -0x1a4(%rbp)
movq -0x18(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x1a0(%rbp)
movq -0x188(%rbp), %rax
movq 0x4(%rax), %rax
movq %rax, -0x19c(%rbp)
movq -0x168(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x194(%rbp)
movl $0x0, -0x190(%rbp)
movl $0x0, -0x18c(%rbp)
leaq -0x50(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0x8ff0
movb %dl, -0x401(%rbp)
movq %rax, -0x400(%rbp)
jmp 0x4e95
movb -0x401(%rbp), %al
movq -0x400(%rbp), %rcx
movq %rcx, -0x1b8(%rbp)
movb %al, -0x1b0(%rbp)
jmp 0x4eb1
leaq -0x178(%rbp), %rdi
callq 0x8fd0
jmp 0x4dd3
jmp 0x4ec4
jmp 0x4ec6
leaq -0x158(%rbp), %rdi
callq 0x8c40
jmp 0x4d48
jmp 0x55c9
movl $0x0, -0x1e0(%rbp)
movl $0x1, -0x1dc(%rbp)
movl $0x2, -0x1d8(%rbp)
movl $0x3, -0x1d4(%rbp)
leaq -0x1e0(%rbp), %rax
movq %rax, -0x1d0(%rbp)
movq $0x4, -0x1c8(%rbp)
leaq -0x1d0(%rbp), %rax
movq %rax, -0x1c0(%rbp)
movq -0x1c0(%rbp), %rdi
callq 0x88c0
movq %rax, -0x1e8(%rbp)
movq -0x1c0(%rbp), %rdi
callq 0x88e0
movq %rax, -0x1f0(%rbp)
movq -0x1e8(%rbp), %rax
cmpq -0x1f0(%rbp), %rax
je 0x50a2
movq -0x3d8(%rbp), %rax
movq -0x1e8(%rbp), %rcx
movl (%rcx), %ecx
movl %ecx, -0x1f4(%rbp)
movq -0x18(%rbp), %rdi
movl 0x4(%rax), %esi
movl -0x1f4(%rbp), %edx
xorl %ecx, %ecx
callq 0x5680
movb %al, -0x402(%rbp)
jmp 0x4f97
movb -0x402(%rbp), %al
testb $0x1, %al
jne 0x4fa6
jmp 0x5089
movq -0x3d8(%rbp), %rdi
movl -0x1f4(%rbp), %esi
callq 0x3ec0
movq %rax, -0x1fc(%rbp)
cmpl $0x0, -0x1fc(%rbp)
je 0x5087
movq -0x3d8(%rbp), %rdi
addq $0x38, %rdi
leaq -0x1fc(%rbp), %rsi
callq 0x9040
movq %rax, -0x410(%rbp)
jmp 0x4fec
movq -0x410(%rbp), %rax
cmpl $0x0, (%rax)
jle 0x5087
movq -0x3d8(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0x21c(%rbp)
movl $0x4, -0x218(%rbp)
movq -0x18(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x214(%rbp)
movq -0x1fc(%rbp), %rax
movq %rax, -0x210(%rbp)
movl $0x0, -0x208(%rbp)
movl $0x0, -0x204(%rbp)
movl $0x0, -0x200(%rbp)
leaq -0x50(%rbp), %rdi
leaq -0x21c(%rbp), %rsi
callq 0x8ff0
movb %dl, -0x419(%rbp)
movq %rax, -0x418(%rbp)
jmp 0x506d
movb -0x419(%rbp), %al
movq -0x418(%rbp), %rcx
movq %rcx, -0x230(%rbp)
movb %al, -0x228(%rbp)
jmp 0x5089
jmp 0x508b
movq -0x1e8(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x1e8(%rbp)
jmp 0x4f51
jmp 0x55c9
movq -0x18(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x238(%rbp)
movq -0x238(%rbp), %rdi
callq 0x8be0
movq %rax, -0x240(%rbp)
movq -0x238(%rbp), %rdi
callq 0x8c10
movq %rax, -0x248(%rbp)
leaq -0x240(%rbp), %rdi
leaq -0x248(%rbp), %rsi
callq 0x8ba0
testb $0x1, %al
jne 0x50f8
jmp 0x52d5
leaq -0x240(%rbp), %rdi
callq 0x8fb0
movq -0x3d8(%rbp), %rcx
movq %rax, -0x250(%rbp)
movq -0x250(%rbp), %rax
movl (%rax), %eax
cmpl 0x4(%rcx), %eax
jne 0x52c2
movl $0x0, -0x278(%rbp)
movl $0x1, -0x274(%rbp)
movl $0x2, -0x270(%rbp)
movl $0x3, -0x26c(%rbp)
leaq -0x278(%rbp), %rax
movq %rax, -0x268(%rbp)
movq $0x4, -0x260(%rbp)
leaq -0x268(%rbp), %rax
movq %rax, -0x258(%rbp)
movq -0x258(%rbp), %rdi
callq 0x88c0
movq %rax, -0x280(%rbp)
movq -0x258(%rbp), %rdi
callq 0x88e0
movq %rax, -0x288(%rbp)
movq -0x280(%rbp), %rax
cmpq -0x288(%rbp), %rax
je 0x52c0
movq -0x280(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x28c(%rbp)
movq -0x250(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0x294(%rbp)
movl -0x28c(%rbp), %eax
movl %eax, -0x290(%rbp)
movl -0x28c(%rbp), %eax
movq -0x250(%rbp), %rcx
cmpl 0x8(%rcx), %eax
je 0x52a7
movq -0x3d8(%rbp), %rdi
addq $0x38, %rdi
leaq -0x294(%rbp), %rsi
callq 0x9040
movq %rax, -0x428(%rbp)
jmp 0x520e
movq -0x428(%rbp), %rax
cmpl $0x0, (%rax)
jle 0x52a7
movq -0x3d8(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0x2b4(%rbp)
movl $0x5, -0x2b0(%rbp)
movq -0x18(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x2ac(%rbp)
movq -0x250(%rbp), %rax
movq 0x4(%rax), %rax
movq %rax, -0x2a8(%rbp)
movl $0x0, -0x2a0(%rbp)
movq -0x294(%rbp), %rax
movq %rax, -0x29c(%rbp)
leaq -0x50(%rbp), %rdi
leaq -0x2b4(%rbp), %rsi
callq 0x8ff0
movb %dl, -0x431(%rbp)
movq %rax, -0x430(%rbp)
jmp 0x528d
movb -0x431(%rbp), %al
movq -0x430(%rbp), %rcx
movq %rcx, -0x2c8(%rbp)
movb %al, -0x2c0(%rbp)
jmp 0x52a9
movq -0x280(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x280(%rbp)
jmp 0x5199
jmp 0x52c2
jmp 0x52c4
leaq -0x240(%rbp), %rdi
callq 0x8fd0
jmp 0x50dc
jmp 0x55c9
movq -0x18(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x2d0(%rbp)
movq -0x2d0(%rbp), %rdi
callq 0x8be0
movq %rax, -0x2d8(%rbp)
movq -0x2d0(%rbp), %rdi
callq 0x8c10
movq %rax, -0x2e0(%rbp)
leaq -0x2d8(%rbp), %rdi
leaq -0x2e0(%rbp), %rsi
callq 0x8ba0
testb $0x1, %al
jne 0x532b
jmp 0x53f9
leaq -0x2d8(%rbp), %rdi
callq 0x8fb0
movq -0x3d8(%rbp), %rcx
movq %rax, -0x2e8(%rbp)
movq -0x2e8(%rbp), %rax
movl (%rax), %eax
cmpl 0x4(%rcx), %eax
jne 0x53e6
movq -0x3d8(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0x308(%rbp)
movl $0x6, -0x304(%rbp)
movq -0x18(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x300(%rbp)
movq -0x2e8(%rbp), %rax
movq 0x4(%rax), %rax
movq %rax, -0x2fc(%rbp)
movl $0x0, -0x2f4(%rbp)
movl $0x0, -0x2f0(%rbp)
movl $0x0, -0x2ec(%rbp)
leaq -0x50(%rbp), %rdi
leaq -0x308(%rbp), %rsi
callq 0x8ff0
movb %dl, -0x441(%rbp)
movq %rax, -0x440(%rbp)
jmp 0x53cc
movb -0x441(%rbp), %al
movq -0x440(%rbp), %rcx
movq %rcx, -0x318(%rbp)
movb %al, -0x310(%rbp)
jmp 0x53e8
leaq -0x2d8(%rbp), %rdi
callq 0x8fd0
jmp 0x530f
jmp 0x55c9
leaq -0x330(%rbp), %rdi
xorl %esi, %esi
movl $0x10, %edx
callq 0x3120
movq -0x18(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x338(%rbp)
movq -0x338(%rbp), %rdi
callq 0x90e0
movq %rax, -0x340(%rbp)
movq -0x338(%rbp), %rdi
callq 0x9110
movq %rax, -0x348(%rbp)
leaq -0x340(%rbp), %rdi
leaq -0x348(%rbp), %rsi
callq 0x9140
testb $0x1, %al
jne 0x545f
jmp 0x549b
leaq -0x340(%rbp), %rdi
callq 0x9180
movq %rax, -0x350(%rbp)
movq -0x350(%rbp), %rax
movl 0x4(%rax), %eax
movl -0x330(%rbp,%rax,4), %ecx
addl $0x1, %ecx
movl %ecx, -0x330(%rbp,%rax,4)
leaq -0x340(%rbp), %rdi
callq 0x91a0
jmp 0x5446
movq -0x18(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x358(%rbp)
movq -0x358(%rbp), %rdi
callq 0x8be0
movq %rax, -0x360(%rbp)
movq -0x358(%rbp), %rdi
callq 0x8c10
movq %rax, -0x368(%rbp)
leaq -0x360(%rbp), %rdi
leaq -0x368(%rbp), %rsi
callq 0x8ba0
testb $0x1, %al
jne 0x54ec
jmp 0x55c7
leaq -0x360(%rbp), %rdi
callq 0x8fb0
movq %rax, -0x370(%rbp)
movq -0x370(%rbp), %rax
movl 0x8(%rax), %eax
movl %eax, %ecx
movl -0x330(%rbp,%rcx,4), %eax
addl $0x1, %eax
movl %eax, -0x330(%rbp,%rcx,4)
cmpl $0x4, %eax
jne 0x55b4
movq -0x3d8(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0x390(%rbp)
movl $0x7, -0x38c(%rbp)
movq -0x18(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x388(%rbp)
movq -0x370(%rbp), %rax
movq 0x4(%rax), %rax
movq %rax, -0x384(%rbp)
movl $0x0, -0x37c(%rbp)
movl $0x0, -0x378(%rbp)
movl $0x0, -0x374(%rbp)
leaq -0x50(%rbp), %rdi
leaq -0x390(%rbp), %rsi
callq 0x8ff0
movb %dl, -0x451(%rbp)
movq %rax, -0x450(%rbp)
jmp 0x559a
movb -0x451(%rbp), %al
movq -0x450(%rbp), %rcx
movq %rcx, -0x3a0(%rbp)
movb %al, -0x398(%rbp)
jmp 0x55b6
leaq -0x360(%rbp), %rdi
callq 0x8fd0
jmp 0x54d0
jmp 0x55c9
movq -0x10(%rbp), %rdi
movq %rdi, -0x468(%rbp)
callq 0x9270
movq %rax, -0x3b0(%rbp)
leaq -0x3a8(%rbp), %rdi
leaq -0x3b0(%rbp), %rsi
callq 0x92a0
leaq -0x50(%rbp), %rdi
movq %rdi, -0x470(%rbp)
callq 0x92e0
movq -0x470(%rbp), %rdi
movq %rax, -0x3b8(%rbp)
callq 0x9310
movq -0x468(%rbp), %rdi
movq %rax, -0x3c0(%rbp)
movq -0x3a8(%rbp), %rsi
movq -0x3b8(%rbp), %rdx
movq -0x3c0(%rbp), %rcx
callq 0x91c0
movq %rax, -0x460(%rbp)
jmp 0x5647
movq -0x460(%rbp), %rax
movq %rax, -0x3c8(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x9340
addq $0x470, %rsp            # imm = 0x470
popq %rbp
retq
movq -0xc0(%rbp), %rdi
callq 0x33c0
nopw %cs:(%rax,%rax)