// File: /workspace/github_cpp_makefile_star2_O3/therealgymmy[P]HelicopterGame/src/misc.cpp
// Function: Score::draw(XInfo*)
void Score::draw (XInfo *xinfo) {
    XFillRectangle(xinfo->display_,
                   xinfo->buffer_,
                   xinfo->white_,
                   x_ / attr::DrawableBase::ScaleX,
                   y_ / 5 / attr::DrawableBase::ScaleY,
                   500 / attr::DrawableBase::ScaleX,
                   100 / attr::DrawableBase::ScaleY);

    XDrawRectangle(xinfo->display_,
                   xinfo->buffer_,
                   xinfo->black_,
                   x_ / attr::DrawableBase::ScaleX,
                   y_ / 5 / attr::DrawableBase::ScaleY,
                   500 / attr::DrawableBase::ScaleX,
                   100 / attr::DrawableBase::ScaleY);

    std::stringstream ss;
    ss << "Score: " << score_ / 10;

    XDrawString(xinfo->display_,
                xinfo->buffer_,
                xinfo->black_,
                (x_ + 50) / attr::DrawableBase::ScaleX,
                y_ / attr::DrawableBase::ScaleY,
                ss.str().c_str(), ss.str().length());
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1e0, %rsp            # imm = 0x1E0
movq %rsi, %rbx
movq %rdi, %r14
movq (%rsi), %rdi
movq 0xa0(%rsi), %rsi
cvtsi2sdl 0x3676(%rip), %xmm0 # 0x9230
leaq 0x3647(%rip), %r12      # 0x9208
movsd (%r12), %xmm1
divsd %xmm1, %xmm0
cvttsd2si %xmm0, %ecx
movslq 0x365e(%rip), %rax      # 0x9234
imulq $0x66666667, %rax, %rax # imm = 0x66666667
movq %rax, %rdx
shrq $0x3f, %rdx
sarq $0x21, %rax
addl %edx, %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movq 0xb0(%rbx), %rdx
leaq 0x3611(%rip), %r13      # 0x9210
movsd (%r13), %xmm2
divsd %xmm2, %xmm0
cvttsd2si %xmm0, %r8d
movsd 0x432(%rip), %xmm0      # 0x6048
divsd %xmm1, %xmm0
cvttsd2si %xmm0, %r9
movsd 0x409(%rip), %xmm0      # 0x6030
divsd %xmm2, %xmm0
cvttsd2si %xmm0, %rax
movl %eax, (%rsp)
callq 0x20f0
movq (%rbx), %rdi
xorps %xmm0, %xmm0
cvtsi2sdl 0x35ea(%rip), %xmm0 # 0x9230
movsd (%r12), %xmm1
divsd %xmm1, %xmm0
cvttsd2si %xmm0, %ecx
movslq 0x35d9(%rip), %rax      # 0x9234
imulq $0x66666667, %rax, %rax # imm = 0x66666667
movq %rax, %rdx
shrq $0x3f, %rdx
sarq $0x21, %rax
addl %edx, %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movsd (%r13), %xmm2
divsd %xmm2, %xmm0
cvttsd2si %xmm0, %r8d
movq 0xa0(%rbx), %rsi
movsd 0x3b4(%rip), %xmm0      # 0x6048
divsd %xmm1, %xmm0
cvttsd2si %xmm0, %r9
movq 0xa8(%rbx), %rdx
movsd 0x384(%rip), %xmm0      # 0x6030
divsd %xmm2, %xmm0
cvttsd2si %xmm0, %rax
movl %eax, (%rsp)
callq 0x2120
leaq 0x58(%rsp), %rdi
callq 0x2130
leaq 0x68(%rsp), %r15
leaq 0x685(%rip), %rsi       # 0x6358
movl $0x7, %edx
movq %r15, %rdi
callq 0x2210
movslq (%r14), %rax
imulq $0x66666667, %rax, %rsi # imm = 0x66666667
movq %rsi, %rax
shrq $0x3f, %rax
sarq $0x22, %rsi
addl %eax, %esi
movq %r15, %rdi
callq 0x2340
movq (%rbx), %r14
movq 0xa0(%rbx), %r15
movl 0x3521(%rip), %eax      # 0x9230
addl $0x32, %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
divsd (%r12), %xmm0
movsd %xmm0, 0x10(%rsp)
xorps %xmm0, %xmm0
cvtsi2sdl 0x3504(%rip), %xmm0 # 0x9234
movq 0xa8(%rbx), %rbx
divsd (%r13), %xmm0
movsd %xmm0, 0x8(%rsp)
leaq 0x70(%rsp), %r13
leaq 0x38(%rsp), %rdi
movq %r13, %rsi
callq 0x2300
movq 0x38(%rsp), %r12
leaq 0x18(%rsp), %rdi
movq %r13, %rsi
callq 0x2300
cvttsd2si 0x10(%rsp), %ecx
cvttsd2si 0x8(%rsp), %r8d
movl 0x20(%rsp), %eax
movl %eax, (%rsp)
movq %r14, %rdi
movq %r15, %rsi
movq %rbx, %rdx
movq %r12, %r9
callq 0x21e0
leaq 0x28(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5da7
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x2200
leaq 0x48(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5dc2
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x2200
movq 0x31ef(%rip), %rsi      # 0x8fb8
leaq 0x58(%rsp), %rdi
callq 0x2150
leaq 0xd8(%rsp), %rdi
callq 0x2090
addq $0x1e0, %rsp            # imm = 0x1E0
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
movq %rax, %rbx
leaq 0x28(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5e14
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x2200
jmp 0x5e14
movq %rax, %rbx
leaq 0x48(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5e36
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x2200
jmp 0x5e36
jmp 0x5e33
movq %rax, %rbx
movq 0x317b(%rip), %rsi      # 0x8fb8
leaq 0x58(%rsp), %rdi
callq 0x2150
leaq 0xd8(%rsp), %rdi
callq 0x2090
movq %rbx, %rdi
callq 0x2350