// File: /workspace/github_cpp_makefile_star2_O1/KellerMartins[P]PDS2-Pacman/source/game/game.cpp
// Function: Game::GameInProgressStateUpdate()
void GameInProgressStateUpdate(){
        GameEvents::TriggerUpdate();
        std::ostringstream scoreString;
        scoreString << "Score:" << pacman->GetPontuacao();
        UI::DrawTextCentered(scoreString.str(), 0.5, 0.05, 5, 0.5, RAYWHITE);
        for(unsigned i=0; i<pacman->GetVidas(); i++)
            UI::DrawImage("assets/interface/pacman_icon.png", 0.05 + i*0.05, 0.9, 0.1, 0.1);

        if(!pacman->IsAlive()){
            if(restartTimer < 0)
                restartTimer = 0;

            restartTimer += GetFrameTime();

            if(restartTimer >= 3){
                if(pacman->GetVidas() == 0){
                    SetState(GameOver);
                }else{
                    GameEvents::TriggerRestart();
                    SetState(GameStart);
                }
            }
        }
        else if(Mapa::GetPontosRestantes() == 0){
            SetState(LevelCleared);
        }
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1b8, %rsp            # imm = 0x1B8
callq 0xb6e2
leaq -0x1e0(%rbp), %rbx
movq %rbx, %rdi
callq 0x8a90
leaq 0x8e423(%rip), %rsi     # 0x993f9
movl $0x6, %edx
movq %rbx, %rdi
callq 0x8980
movq 0xcee4e(%rip), %rdi     # 0xd9e38
callq 0xdc7e
movl %eax, %esi
leaq -0x1e0(%rbp), %rdi
callq 0x8570
leaq -0x1d8(%rbp), %rsi
leaq -0x68(%rbp), %rdi
callq 0x8d10
leaq -0x68(%rbp), %rdi
movss 0x8e2ef(%rip), %xmm1    # 0x99308
movss 0x8e213(%rip), %xmm2    # 0x99234
movss 0x8e2cb(%rip), %xmm0    # 0x992f4
movapd %xmm0, %xmm3
movl $0xfff5f5f5, %esi       # imm = 0xFFF5F5F5
callq 0x104b2
leaq -0x58(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb050
movq -0x58(%rbp), %rsi
incq %rsi
callq 0x8880
xorl %r13d, %r13d
leaq -0x38(%rbp), %r12
leaq 0x8e3a2(%rip), %rbx     # 0x99400
leaq 0x8e3bb(%rip), %r14     # 0x99420
leaq -0x48(%rbp), %r15
movq 0xcedc8(%rip), %rdi     # 0xd9e38
callq 0xdc8a
cmpl %eax, %r13d
jae 0xb0e1
movq %r12, -0x48(%rbp)
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0xa78c
movl %r13d, %eax
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
movsd 0x8e2b1(%rip), %xmm1    # 0x99350
mulsd %xmm1, %xmm0
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movq %r15, %rdi
movss 0x8e256(%rip), %xmm1    # 0x9930c
movss 0x8e252(%rip), %xmm2    # 0x99310
movapd %xmm2, %xmm3
callq 0x102de
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0xb0dc
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x8880
incl %r13d
jmp 0xb069
movq 0xced50(%rip), %rdi     # 0xd9e38
callq 0xdc72
testb %al, %al
je 0xb107
callq 0xc4e0
testl %eax, %eax
jne 0xb18a
leaq 0x11a(%rip), %rax       # 0xb21f
jmp 0xb178
xorpd %xmm0, %xmm0
ucomisd 0xced4d(%rip), %xmm0    # 0xd9e60
jbe 0xb120
movq $0x0, 0xced40(%rip) # 0xd9e60
callq 0x2f3b6
cvtss2sd %xmm0, %xmm0
addsd 0xced2f(%rip), %xmm0    # 0xd9e60
movsd %xmm0, 0xced27(%rip)    # 0xd9e60
ucomisd 0x8e207(%rip), %xmm0    # 0x99348
jb 0xb18a
movq 0xcecee(%rip), %rdi     # 0xd9e38
callq 0xdc8a
testl %eax, %eax
je 0xb171
callq 0xb710
movq $0x0, 0xcecdd(%rip) # 0xd9e40
callq 0xae24
leaq -0x2d8(%rip), %rax      # 0xae97
jmp 0xb183
leaq 0x271(%rip), %rax       # 0xb3e9
movq $0x0, 0xcecbd(%rip) # 0xd9e40
movq %rax, 0xcecce(%rip)     # 0xd9e58
movq 0xcbe37(%rip), %rsi     # 0xd6fc8
leaq -0x1e0(%rbp), %rdi
callq 0x8440
leaq -0x170(%rbp), %rdi
callq 0x8280
addq $0x1b8, %rsp            # imm = 0x1B8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq -0x58(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb1f2
movq -0x58(%rbp), %rsi
jmp 0xb1e3
jmp 0xb1ef
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0xb1f2
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x8880
jmp 0xb1f2
jmp 0xb1ef
movq %rax, %rbx
movq 0xcbdcf(%rip), %rsi     # 0xd6fc8
leaq -0x1e0(%rbp), %rdi
callq 0x8440
leaq -0x170(%rbp), %rdi
callq 0x8280
movq %rbx, %rdi
callq 0x8ea0