// File: Kei18[P]pibt/./src/solver/pps.cpp
// Function: PPS::ADD_DONE_SWAPERS(S*)
void PPS::ADD_DONE_SWAPERS(S* s) {
  doneSwapers.push_back(s);
  Agents agents = s->agents;
  if (agents.size() == 3) {
    Agent* a3 = agents[2];
    isTmpGoals[a3->getId()] = false;
    P->assign(a3->getTask());
    a3->releaseTask();
    a3->setGoal(goals[a3->getId()]);
  }
  for (auto a : agents) {
    if (!inArray(a, pushers)) {
      pushers.push_back(a);
    } else {
      std::cout << "error@PPS::ADD_DONE_SWAPERS, "
                << "duplicated pusher : " << a->getId()
                << "\n";
      std::exit(1);
    }
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xf0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x78(%rbp)
addq $0xc8, %rdi
leaq -0x10(%rbp), %rsi
callq 0x97000
movq -0x10(%rbp), %rsi
addq $0x8, %rsi
leaq -0x28(%rbp), %rdi
callq 0xdbb0
leaq -0x28(%rbp), %rdi
callq 0x383b0
cmpq $0x3, %rax
jne 0x91b85
leaq -0x28(%rbp), %rdi
movl $0x2, %esi
callq 0x53720
movq %rax, %rcx
movq -0x78(%rbp), %rax
movq (%rcx), %rcx
movq %rcx, -0x30(%rbp)
addq $0x160, %rax            # imm = 0x160
movq %rax, -0x88(%rbp)
movq -0x30(%rbp), %rdi
callq 0x63b50
movl %eax, -0x7c(%rbp)
jmp 0x91a96
movq -0x88(%rbp), %rdi
movl -0x7c(%rbp), %eax
movslq %eax, %rsi
callq 0x96f20
movq %rdx, -0x98(%rbp)
movq %rax, -0x90(%rbp)
jmp 0x91ab8
movq -0x98(%rbp), %rax
movq -0x90(%rbp), %rcx
movq %rcx, -0x40(%rbp)
movq %rax, -0x38(%rbp)
leaq -0x40(%rbp), %rdi
xorl %esi, %esi
callq 0x97070
movq -0x78(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0xa8(%rbp)
movq -0x30(%rbp), %rdi
callq 0x51c90
movq %rax, -0xa0(%rbp)
jmp 0x91afa
movq -0xa0(%rbp), %rsi
movq -0xa8(%rbp), %rdi
callq 0x57630
jmp 0x91b0f
movq -0x30(%rbp), %rdi
callq 0x3a780
jmp 0x91b1a
movq -0x78(%rbp), %rax
movq -0x30(%rbp), %rdi
movq %rdi, -0xc0(%rbp)
addq $0x148, %rax            # imm = 0x148
movq %rax, -0xb8(%rbp)
callq 0x63b50
movl %eax, -0xac(%rbp)
jmp 0x91b43
movq -0xb8(%rbp), %rdi
movl -0xac(%rbp), %eax
movslq %eax, %rsi
callq 0xda90
movq -0xc0(%rbp), %rdi
movq (%rax), %rsi
callq 0x51d10
jmp 0x91b69
jmp 0x91b85
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x28(%rbp), %rdi
callq 0xddf0
jmp 0x91caf
leaq -0x28(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rdi
callq 0x39b60
movq %rax, -0x60(%rbp)
movq -0x58(%rbp), %rdi
callq 0x399f0
movq %rax, -0x68(%rbp)
leaq -0x60(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x51bd0
testb $0x1, %al
jne 0x91bbd
jmp 0x91c9d
leaq -0x60(%rbp), %rdi
callq 0x51c10
movq -0x78(%rbp), %rsi
movq (%rax), %rax
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rdi
addq $0x68, %rsi
callq 0x8f430
movb %al, -0xc1(%rbp)
jmp 0x91be6
movb -0xc1(%rbp), %al
testb $0x1, %al
jne 0x91c0a
jmp 0x91bf2
movq -0x78(%rbp), %rdi
addq $0x68, %rdi
leaq -0x70(%rbp), %rsi
callq 0xdab0
jmp 0x91c05
jmp 0x91c8d
movq 0x6f387(%rip), %rdi     # 0x100f98
leaq 0x24f77(%rip), %rsi     # 0xb6b8f
callq 0x84d0
movq %rax, -0xd0(%rbp)
jmp 0x91c26
movq -0xd0(%rbp), %rdi
leaq 0x24f79(%rip), %rsi     # 0xb6bad
callq 0x84d0
movq %rax, -0xd8(%rbp)
jmp 0x91c42
movq -0x70(%rbp), %rdi
callq 0x63b50
movl %eax, -0xdc(%rbp)
jmp 0x91c53
movl -0xdc(%rbp), %esi
movq -0xd8(%rbp), %rdi
callq 0x8860
movq %rax, -0xe8(%rbp)
jmp 0x91c6e
movq -0xe8(%rbp), %rdi
leaq 0x2193b(%rip), %rsi     # 0xb35b7
callq 0x84d0
jmp 0x91c83
movl $0x1, %edi
callq 0x85d0
jmp 0x91c8f
leaq -0x60(%rbp), %rdi
callq 0x51c30
jmp 0x91ba7
leaq -0x28(%rbp), %rdi
callq 0xddf0
addq $0xf0, %rsp
popq %rbp
retq
movq -0x48(%rbp), %rdi
callq 0x8880
nopl (%rax,%rax)