// File: /workspace/github_cpp_makefile_star2_O1/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 0x4cac
movl 0x45ad(%rip), %eax      # 0x924c
incl %eax
movl %eax, 0x45a5(%rip)      # 0x924c
cmpl 0x4(%rdi), %eax
jge 0x4ce2
movl 0x18(%rdi), %eax
cmpl $0x15, %eax
jl 0x4ce2
cvtsi2sdl 0x455c(%rip), %xmm0 # 0x9218
cvtsi2sdl 0x4588(%rip), %xmm1 # 0x924c
mulsd 0x161c(%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 0x4cfb
movl 0x4562(%rip), %eax      # 0x9250
incl %eax
movl %eax, 0x455a(%rip)      # 0x9250
cmpl 0x8(%rdi), %eax
jge 0x4d39
movl 0x18(%rdi), %eax
cmpl $0xbb7, %eax            # imm = 0xBB7
jg 0x4d39
xorps %xmm0, %xmm0
cvtsi2sdl 0x4508(%rip), %xmm0 # 0x9218
xorps %xmm1, %xmm1
cvtsi2sdl 0x4535(%rip), %xmm1 # 0x9250
mulsd 0x15c5(%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 0x4d52
movl 0x450f(%rip), %eax      # 0x9254
incl %eax
movl %eax, 0x4507(%rip)      # 0x9254
cmpl 0xc(%rdi), %eax
jge 0x4d8d
movl 0x14(%rdi), %eax
testl %eax, %eax
jle 0x4d8d
xorps %xmm0, %xmm0
cvtsi2sdl 0x44b4(%rip), %xmm0 # 0x9218
xorps %xmm1, %xmm1
cvtsi2sdl 0x44e5(%rip), %xmm1 # 0x9254
mulsd 0x1571(%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 0x4da6
movl 0x44bf(%rip), %eax      # 0x9258
incl %eax
movl %eax, 0x44b7(%rip)      # 0x9258
cmpl 0x10(%rdi), %eax
jge 0x4dec
movl 0x14(%rdi), %eax
movl $0xfa0, %ecx            # imm = 0xFA0
subl 0x4490(%rip), %ecx      # 0x9244
cmpl %ecx, %eax
jge 0x4dec
xorps %xmm0, %xmm0
cvtsi2sdl 0x4455(%rip), %xmm0 # 0x9218
xorps %xmm1, %xmm1
cvtsi2sdl 0x448a(%rip), %xmm1 # 0x9258
mulsd 0x1512(%rip), %xmm1     # 0x62e8
addsd %xmm0, %xmm1
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movl %eax, 0x14(%rdi)
movl 0x445a(%rip), %eax      # 0x924c
cmpl 0x4(%rdi), %eax
jl 0x4e02
xorl %eax, %eax
movl %eax, 0x444d(%rip)      # 0x924c
movl %eax, 0x4(%rdi)
movl 0x4448(%rip), %eax      # 0x9250
cmpl 0x8(%rdi), %eax
jl 0x4e18
xorl %eax, %eax
movl %eax, 0x443b(%rip)      # 0x9250
movl %eax, 0x8(%rdi)
movl 0x443a(%rip), %eax      # 0x9258
cmpl 0x10(%rdi), %eax
jl 0x4e2e
xorl %eax, %eax
movl %eax, 0x442d(%rip)      # 0x9258
movl %eax, 0x10(%rdi)
movl 0x4420(%rip), %eax      # 0x9254
cmpl 0xc(%rdi), %eax
jl 0x4e44
xorl %eax, %eax
movl %eax, 0x4413(%rip)      # 0x9254
movl %eax, 0xc(%rdi)
retq
nopl (%rax)