// File: /workspace/github_cpp_makefile_star2_O3/therealgymmy[P]HelicopterGame/src/helicopter.cpp
// Function: Helicopter::move()
void Helicopter::move () {
    if ((up_    || ++delayU < delayUp_  )  &&
        y_ > top_.h()) {
        y_ -= (speed_ - 0.3 * delayU);
    }

    if ((down_  || ++delayD < delayDown_)  &&
        y_ < PLANE_H) {
        y_ += (speed_ - 0.3 * delayD);
    }

    if ((left_  || ++delayL < delayLeft_)  &&
        x_ > 0) {
        x_ -= (speed_ - 0.3 * delayL);
    }

    if ((right_ || ++delayR < delayRight_) &&
        x_ < PLANE_W - w_) {
        x_ += (speed_ - 0.3 * delayR);
    }

    if (delayU >= delayUp_) {
        delayU = 0;
        delayUp_ = 0;
    }
    if (delayD >= delayDown_) {
        delayD = 0;
        delayDown_ = 0;
    }
    if (delayR >= delayRight_) {
        delayR = 0;
        delayRight_ = 0;
    }
    if (delayL >= delayLeft_) {
        delayL = 0;
        delayLeft_ = 0;
    }
}

// Assembly:
cmpb $0x0, (%rdi)
jne 0x4cb8
movl 0x45a1(%rip), %eax      # 0x924c
incl %eax
movl %eax, 0x4599(%rip)      # 0x924c
cmpl 0x4(%rdi), %eax
jge 0x4cee
movl 0x18(%rdi), %eax
cmpl $0x15, %eax
jl 0x4cee
cvtsi2sdl 0x4550(%rip), %xmm0 # 0x9218
cvtsi2sdl 0x457c(%rip), %xmm1 # 0x924c
mulsd 0x1610(%rip), %xmm1     # 0x62e8
addsd %xmm0, %xmm1
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
subsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movl %eax, 0x18(%rdi)
cmpb $0x0, 0x1(%rdi)
jne 0x4d07
movl 0x4556(%rip), %eax      # 0x9250
incl %eax
movl %eax, 0x454e(%rip)      # 0x9250
cmpl 0x8(%rdi), %eax
jge 0x4d45
movl 0x18(%rdi), %eax
cmpl $0xbb7, %eax            # imm = 0xBB7
jg 0x4d45
xorps %xmm0, %xmm0
cvtsi2sdl 0x44fc(%rip), %xmm0 # 0x9218
xorps %xmm1, %xmm1
cvtsi2sdl 0x4529(%rip), %xmm1 # 0x9250
mulsd 0x15b9(%rip), %xmm1     # 0x62e8
addsd %xmm0, %xmm1
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movl %eax, 0x18(%rdi)
cmpb $0x0, 0x2(%rdi)
jne 0x4d5e
movl 0x4503(%rip), %eax      # 0x9254
incl %eax
movl %eax, 0x44fb(%rip)      # 0x9254
cmpl 0xc(%rdi), %eax
jge 0x4d99
movl 0x14(%rdi), %eax
testl %eax, %eax
jle 0x4d99
xorps %xmm0, %xmm0
cvtsi2sdl 0x44a8(%rip), %xmm0 # 0x9218
xorps %xmm1, %xmm1
cvtsi2sdl 0x44d9(%rip), %xmm1 # 0x9254
mulsd 0x1565(%rip), %xmm1     # 0x62e8
addsd %xmm0, %xmm1
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
subsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movl %eax, 0x14(%rdi)
cmpb $0x0, 0x3(%rdi)
jne 0x4db2
movl 0x44b3(%rip), %eax      # 0x9258
incl %eax
movl %eax, 0x44ab(%rip)      # 0x9258
cmpl 0x10(%rdi), %eax
jge 0x4df8
movl 0x14(%rdi), %eax
movl $0xfa0, %ecx            # imm = 0xFA0
subl 0x4484(%rip), %ecx      # 0x9244
cmpl %ecx, %eax
jge 0x4df8
xorps %xmm0, %xmm0
cvtsi2sdl 0x4449(%rip), %xmm0 # 0x9218
xorps %xmm1, %xmm1
cvtsi2sdl 0x447e(%rip), %xmm1 # 0x9258
mulsd 0x1506(%rip), %xmm1     # 0x62e8
addsd %xmm0, %xmm1
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movl %eax, 0x14(%rdi)
movl 0x444e(%rip), %eax      # 0x924c
cmpl 0x4(%rdi), %eax
jl 0x4e0e
xorl %eax, %eax
movl %eax, 0x4441(%rip)      # 0x924c
movl %eax, 0x4(%rdi)
movl 0x443c(%rip), %eax      # 0x9250
cmpl 0x8(%rdi), %eax
jl 0x4e24
xorl %eax, %eax
movl %eax, 0x442f(%rip)      # 0x9250
movl %eax, 0x8(%rdi)
movl 0x442e(%rip), %eax      # 0x9258
cmpl 0x10(%rdi), %eax
jl 0x4e3a
xorl %eax, %eax
movl %eax, 0x4421(%rip)      # 0x9258
movl %eax, 0x10(%rdi)
movl 0x4414(%rip), %eax      # 0x9254
cmpl 0xc(%rdi), %eax
jl 0x4e50
xorl %eax, %eax
movl %eax, 0x4407(%rip)      # 0x9254
movl %eax, 0xc(%rdi)
retq
nopl (%rax)