// File: /workspace/github_cpp_makefile_star2_O2/Worthy-Wang[P]Warcraft3-StartWar/warcraftWorld.cpp
// Function: warcraft::WarcraftWorld::warriorArriveHeadquarters()
void WarcraftWorld::warriorArriveHeadquarters()
{
    //蓝方基地
    WarriorPtr redWarrior = _citys[GameConfig::getInstance()->getCityNum(_caseNum) + 1]->getRedWarrior();
    if (redWarrior.get())
        cout << "red " << redWarrior->getName() << " " << redWarrior->getId() << " reached blue headquarters with " << redWarrior->getHp() << " elements and force " << GameConfig::getInstance()->getInitWarriorAttack(_caseNum, redWarrior->getType()) << endl;
    //红方基地
    WarriorPtr blueWarrior = _citys[0]->getBlueWarrior();
    if (blueWarrior.get())
        cout << "blue " << blueWarrior->getName() << " " << blueWarrior->getId() << " reached red headquarters with " << blueWarrior->getHp() << " elements and force " << GameConfig::getInstance()->getInitWarriorAttack(_caseNum, blueWarrior->getType()) << endl;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x48, %rsp
movq %rdi, %rbx
leaq 0x958b(%rip), %r15      # 0x16168
movq (%r15), %rax
movq 0x10(%rdi), %rcx
movq 0x28(%rdi), %rdx
movq 0x18(%rax), %rax
shlq $0x7, %rdx
movq -0x78(%rax,%rdx), %rax
shlq $0x4, %rax
movq 0x10(%rcx,%rax), %rsi
addq $0x8, %rsi
leaq -0x38(%rbp), %r14
movq %r14, %rdi
callq 0x5392
cmpq $0x0, (%r14)
je 0xccc9
movq 0x93b1(%rip), %rdi      # 0x15fd0
leaq 0x1407(%rip), %rsi      # 0xe02d
callq 0x4160
movq %rax, %r14
movq -0x38(%rbp), %rsi
addq $0x10, %rsi
leaq -0x58(%rbp), %rdi
callq 0x41d0
leaq -0x58(%rbp), %rsi
movq %r14, %rdi
callq 0x4150
leaq 0x1e11(%rip), %rsi      # 0xea63
movq %rax, %rdi
callq 0x4160
movq -0x38(%rbp), %rcx
movq 0x30(%rcx), %rsi
movq %rax, %rdi
callq 0x40f0
leaq 0x1d59(%rip), %rsi      # 0xe9ca
movq %rax, %rdi
callq 0x4160
movq -0x38(%rbp), %rcx
movl 0x38(%rcx), %esi
movq %rax, %rdi
callq 0x4240
leaq 0x1d5c(%rip), %rsi      # 0xe9eb
movq %rax, %rdi
callq 0x4160
movq %rax, %r14
movq (%r15), %rdi
movq 0x28(%rbx), %rsi
movq -0x38(%rbp), %rax
movl 0x3c(%rax), %edx
callq 0x9778
movq %r14, %rdi
movq %rax, %rsi
callq 0x40f0
movq %rax, %rdi
callq 0x40b0
leaq -0x58(%rbp), %rdi
callq 0x40a0
movq 0x10(%rbx), %rax
movq (%rax), %rsi
addq $0x18, %rsi
leaq -0x28(%rbp), %r14
movq %r14, %rdi
callq 0x5392
cmpq $0x0, (%r14)
je 0xcd9b
movq 0x92df(%rip), %rdi      # 0x15fd0
leaq 0x133f(%rip), %rsi      # 0xe037
callq 0x4160
movq %rax, %r14
movq -0x28(%rbp), %rsi
addq $0x10, %rsi
leaq -0x58(%rbp), %rdi
callq 0x41d0
leaq -0x58(%rbp), %rsi
movq %r14, %rdi
callq 0x4150
leaq 0x1d3f(%rip), %rsi      # 0xea63
movq %rax, %rdi
callq 0x4160
movq -0x28(%rbp), %rcx
movq 0x30(%rcx), %rsi
movq %rax, %rdi
callq 0x40f0
leaq 0x1cbd(%rip), %rsi      # 0xea00
movq %rax, %rdi
callq 0x4160
movq -0x28(%rbp), %rcx
movl 0x38(%rcx), %esi
movq %rax, %rdi
callq 0x4240
leaq 0x1c8a(%rip), %rsi      # 0xe9eb
movq %rax, %rdi
callq 0x4160
movq %rax, %r14
movq (%r15), %rdi
movq 0x28(%rbx), %rsi
movq -0x28(%rbp), %rax
movl 0x3c(%rax), %edx
callq 0x9778
movq %r14, %rdi
movq %rax, %rsi
callq 0x40f0
movq %rax, %rdi
callq 0x40b0
leaq -0x58(%rbp), %rdi
callq 0x40a0
leaq -0x20(%rbp), %rdi
callq 0x5302
leaq -0x30(%rbp), %rdi
callq 0x5302
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0xcdba
movq %rax, %rbx
jmp 0xcdd2
jmp 0xcdc1
movq %rax, %rbx
jmp 0xcde9
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0x40a0
leaq -0x20(%rbp), %rdi
callq 0x5302
jmp 0xcde9
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0x40a0
leaq -0x30(%rbp), %rdi
callq 0x5302
movq %rbx, %rdi
callq 0x4250