// File: /workspace/github_cpp_makefile_star2_O2/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 0x424a
movl 0x4fff(%rip), %eax      # 0x923c
incl %eax
movl %eax, 0x4ff7(%rip)      # 0x923c
cmpl 0x4(%rdi), %eax
jge 0x427d
movl 0x18(%rdi), %eax
cmpl $0x15, %eax
jl 0x427d
cvtsi2sdl 0x4fae(%rip), %xmm0 # 0x9208
cvtsi2sdl 0x4fda(%rip), %xmm1 # 0x923c
mulsd 0x207e(%rip), %xmm1     # 0x62e8
addsd %xmm0, %xmm1
cvtsi2sd %eax, %xmm0
subsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movl %eax, 0x18(%rdi)
cmpb $0x0, 0x1(%rdi)
jne 0x4296
movl 0x4fb7(%rip), %eax      # 0x9240
incl %eax
movl %eax, 0x4faf(%rip)      # 0x9240
cmpl 0x8(%rdi), %eax
jge 0x42cb
movl 0x18(%rdi), %eax
cmpl $0xbb7, %eax            # imm = 0xBB7
jg 0x42cb
cvtsi2sdl 0x4f60(%rip), %xmm0 # 0x9208
cvtsi2sdl 0x4f90(%rip), %xmm1 # 0x9240
mulsd 0x2030(%rip), %xmm1     # 0x62e8
addsd %xmm0, %xmm1
cvtsi2sd %eax, %xmm0
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movl %eax, 0x18(%rdi)
cmpb $0x0, 0x2(%rdi)
jne 0x42e4
movl 0x4f6d(%rip), %eax      # 0x9244
incl %eax
movl %eax, 0x4f65(%rip)      # 0x9244
cmpl 0xc(%rdi), %eax
jge 0x4316
movl 0x14(%rdi), %eax
testl %eax, %eax
jle 0x4316
cvtsi2sdl 0x4f15(%rip), %xmm0 # 0x9208
cvtsi2sdl 0x4f49(%rip), %xmm1 # 0x9244
mulsd 0x1fe5(%rip), %xmm1     # 0x62e8
addsd %xmm0, %xmm1
cvtsi2sd %eax, %xmm0
subsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movl %eax, 0x14(%rdi)
cmpb $0x0, 0x3(%rdi)
jne 0x432f
movl 0x4f26(%rip), %eax      # 0x9248
incl %eax
movl %eax, 0x4f1e(%rip)      # 0x9248
cmpl 0x10(%rdi), %eax
jge 0x436c
movl 0x14(%rdi), %eax
movl $0xfa0, %ecx            # imm = 0xFA0
subl 0x4ef7(%rip), %ecx      # 0x9234
cmpl %ecx, %eax
jge 0x436c
cvtsi2sdl 0x4ebf(%rip), %xmm0 # 0x9208
cvtsi2sdl 0x4ef7(%rip), %xmm1 # 0x9248
mulsd 0x1f8f(%rip), %xmm1     # 0x62e8
addsd %xmm0, %xmm1
cvtsi2sd %eax, %xmm0
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movl %eax, 0x14(%rdi)
movl 0x4eca(%rip), %eax      # 0x923c
cmpl 0x4(%rdi), %eax
jl 0x4382
andl $0x0, 0x4ebe(%rip)      # 0x923c
andl $0x0, 0x4(%rdi)
movl 0x4eb8(%rip), %eax      # 0x9240
cmpl 0x8(%rdi), %eax
jl 0x4398
andl $0x0, 0x4eac(%rip)      # 0x9240
andl $0x0, 0x8(%rdi)
movl 0x4eaa(%rip), %eax      # 0x9248
cmpl 0x10(%rdi), %eax
jl 0x43ae
andl $0x0, 0x4e9e(%rip)      # 0x9248
andl $0x0, 0x10(%rdi)
movl 0x4e90(%rip), %eax      # 0x9244
cmpl 0xc(%rdi), %eax
jl 0x43c4
andl $0x0, 0x4e84(%rip)      # 0x9244
andl $0x0, 0xc(%rdi)
retq
nop