// File: /workspace/github_cpp_makefile_star2_O3/wrighteagle2d[P]wrighteaglebase/Debug/../src/VisualSystem.cpp
// Function: VisualSystem::RaisePlayer(int, double)
void VisualSystem::RaisePlayer(ObjectIndex unum, double eva) {
  if (unum == 0 || !mpWorldState->GetPlayer(unum).IsAlive() ||
      unum == mpSelfState->GetUnum()) {
    return;
  }

  if (eva < FLOAT_EPS) {
    double dis = mpInfoState->GetPositionInfo().GetPlayerDistToPlayer(
        mpSelfState->GetUnum(), unum);
    if (dis < 3.0) {
      eva = 6.0;
    } else if (dis < 6.0) {
      eva = 5.0;
    } else if (dis < 20.0) {
      eva = 10.0;
    } else if (dis < 40.0) {
      eva = 26.0;
    } else {
      eva = 50.0;
    }
  }

  VisualRequest *vr = GetVisualRequest(unum);
  vr->mFreq = Min(vr->mFreq, eva);

  if (mpWorldState->GetPlayer(unum).GetPosConf() < FLOAT_EPS) {
    if (eva <= 2) {
      RaiseForgotObject(unum);
    }
  }

  PlayMode pm = mpWorldState->GetPlayMode();
  if (((/*pm == PM_Our_Penalty_Setup ||*/ pm == PM_Our_Penalty_Ready ||
        pm == PM_Our_Penalty_Taken) &&
       mpWorldState->GetPlayer(unum).IsGoalie()) ||
      (-unum == mpInfoState->GetPositionInfo().GetTeammateOffsideLineOpp() &&
       mpAgent->GetFormation().GetMyRole().mLineType == LT_Forward &&
       eva <= mpWorldState->GetPlayer(unum).GetPosDelay())) {
    RaiseForgotObject(unum);
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x10, %rsp
testl %esi, %esi
je 0x578e5
movl %esi, %ebx
movq %rdi, %r14
movq 0x10(%rdi), %rax
leal -0x1(%rbx), %ecx
imulq $0x178, %rcx, %r15      # imm = 0x178
movl %esi, %ecx
notl %ecx
imulq $0x178, %rcx, %r12      # imm = 0x178
testl %esi, %esi
leaq 0xa8(%rax,%r15), %rcx
leaq 0x10d0(%rax,%r12), %rax
cmovgq %rcx, %rax
cmpb $0x1, 0x112(%rax)
jne 0x578e5
movq 0x20(%r14), %rax
cmpl %ebx, 0x11c(%rax)
je 0x578e5
movsd 0x118e6(%rip), %xmm2    # 0x69040
ucomisd %xmm0, %xmm2
jbe 0x577fd
movq 0x28(%r14), %rdi
callq 0x2a4b4
movq 0x20(%r14), %rcx
movl 0x11c(%rcx), %esi
movq %rax, %rdi
movl %ebx, %edx
callq 0x47086
movsd (%rax), %xmm0
movsd 0x12493(%rip), %xmm1    # 0x69c20
ucomisd %xmm0, %xmm1
jbe 0x577a5
movsd 0x146f5(%rip), %xmm0    # 0x6be90
movsd 0x1189d(%rip), %xmm2    # 0x69040
jmp 0x577fd
movsd 0x146e3(%rip), %xmm1    # 0x6be90
ucomisd %xmm0, %xmm1
movsd 0x11887(%rip), %xmm2    # 0x69040
jbe 0x577c5
movsd 0x12205(%rip), %xmm0    # 0x699c8
jmp 0x577fd
movsd 0x137cb(%rip), %xmm1    # 0x6af98
ucomisd %xmm0, %xmm1
jbe 0x577dd
movsd 0x11f85(%rip), %xmm0    # 0x69760
jmp 0x577fd
movsd 0x137a3(%rip), %xmm1    # 0x6af88
ucomisd %xmm0, %xmm1
jbe 0x577f5
movsd 0x15e0d(%rip), %xmm0    # 0x6d600
jmp 0x577fd
movsd 0x12683(%rip), %xmm0    # 0x69e80
movl $0xb, %eax
subl %ebx, %eax
testl %ebx, %ebx
movl %ebx, %ecx
cmovnsq %rcx, %rax
shlq $0x6, %rax
testl %ebx, %ebx
movapd %xmm0, %xmm1
minsd 0x48(%r14,%rax), %xmm1
movsd %xmm1, 0x48(%r14,%rax)
movq 0x10(%r14), %rax
leaq 0xa8(%rax,%r15), %rdx
leaq 0x10d0(%rax,%r12), %rcx
cmovgq %rdx, %rcx
movsd 0x11f3c(%rip), %xmm1    # 0x69780
ucomisd %xmm0, %xmm1
movsd %xmm0, -0x28(%rbp)
jb 0x57864
ucomisd 0x20(%rcx), %xmm2
jbe 0x57864
movq %r14, %rdi
movl %ebx, %esi
callq 0x56778
movq 0x10(%r14), %rax
movl 0x1c(%rax), %ecx
addl $-0xf, %ecx
cmpl $0x1, %ecx
ja 0x5788e
testl %ebx, %ebx
leaq 0xa8(%rax,%r15), %rcx
leaq 0x10d0(%rax,%r12), %rax
cmovgq %rcx, %rax
cmpb $0x0, 0x175(%rax)
jne 0x578f2
movq 0x28(%r14), %rdi
callq 0x2a4b4
movl 0x1798(%rax), %eax
addl %ebx, %eax
jne 0x578e5
movq 0x8(%r14), %rdi
callq 0x13432
movq %rax, %rdi
callq 0x266bc
movsd -0x28(%rbp), %xmm1
cmpl $0x3, 0x8(%rax)
jne 0x578e5
testl %ebx, %ebx
movq 0x10(%r14), %rax
leaq 0xa8(%rax,%r15), %rcx
leaq 0x10d0(%rax,%r12), %rax
cmovgq %rcx, %rax
xorps %xmm0, %xmm0
cvtsi2sdl 0x18(%rax), %xmm0
ucomisd %xmm1, %xmm0
jae 0x578f2
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %r14, %rdi
movl %ebx, %esi
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x56778