// File: /workspace/github_c_makefile_star2_O3/skeeto[P]flappy/flappy.cc
// Function: World::draw()
void draw() {
    init_pair(2, COLOR_GREEN, COLOR_BLACK);
    init_pair(3, COLOR_GREEN, COLOR_GREEN);
    attron(COLOR_PAIR(2));
    for (int i = 0; i < walls.size(); i++) {
      int wall = walls[i];
      if (wall != 0) {
        for (int y = 1; y < display->height - 1; y++) {
          if (y == wall - kVGap - 1 || y == wall + kVGap + 1) {
            attroff(COLOR_PAIR(2));
            attron(COLOR_PAIR(3));
            mvaddch(y, i + 1, '=');
            attroff(COLOR_PAIR(3));
            attron(COLOR_PAIR(2));
          } else if (y < wall - kVGap || y > wall + kVGap) {
            mvaddch(y, i + 1, '|');
          }
        }
      }
    }
    attroff(COLOR_PAIR(2));
    attron(A_BOLD);
    mvprintw(display->height, 0, "Score: %d", score());
    attroff(A_BOLD);
  }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdi, %rbx
xorl %r14d, %r14d
movl $0x2, %edi
movl $0x2, %esi
xorl %edx, %edx
callq 0x7050
movl $0x3, %edi
movl $0x2, %esi
movl $0x2, %edx
callq 0x7050
movq 0x818ba(%rip), %r15     # 0x89fe0
movq (%r15), %rdi
movl $0x200, %esi            # imm = 0x200
xorl %edx, %edx
callq 0x7160
movq 0x48(%rbx), %rcx
movq 0x28(%rbx), %rax
movq %rcx, %rsi
subq %rax, %rsi
shrq $0x3, %rsi
cmpq $0x1, %rcx
adcq $-0x1, %rsi
shlq $0x7, %rsi
movq 0x30(%rbx), %rcx
subq 0x38(%rbx), %rcx
sarq $0x2, %rcx
movq 0x10(%rbx), %rdx
movq 0x20(%rbx), %rdi
subq %rdx, %rdi
sarq $0x2, %rdi
addq %rcx, %rdi
addq %rsi, %rdi
cmpq %r14, %rdi
jbe 0x88be
movq %rdx, %rcx
subq 0x18(%rbx), %rcx
sarq $0x2, %rcx
addq %r14, %rcx
movq %r14, 0x10(%rsp)
js 0x879e
cmpq $0x7f, %rcx
ja 0x87a7
leaq (%rdx,%r14,4), %rcx
jmp 0x87c0
movq %rcx, %rdx
sarq $0x7, %rdx
jmp 0x87ae
movq %rcx, %rdx
shrq $0x7, %rdx
movq %rdx, %rsi
shlq $0x7, %rsi
subq %rsi, %rcx
shlq $0x2, %rcx
addq (%rax,%rdx,8), %rcx
movl (%rcx), %r13d
testl %r13d, %r13d
je 0x88b1
movq 0x50(%rbx), %rax
cmpl $0x3, (%rax)
jl 0x88b1
leal -0x2(%r13), %eax
movl %eax, 0xc(%rsp)
leal 0x2(%r13), %r12d
movq 0x10(%rsp), %rax
leal 0x1(%rax), %ebp
negl %r13d
movl $0x1, %r14d
leal (%r14,%r13), %eax
cmpl $-0x3, %eax
sete %cl
cmpl $0x3, %eax
sete %al
orb %cl, %al
cmpb $0x1, %al
jne 0x8869
movq (%r15), %rdi
movl $0x200, %esi            # imm = 0x200
xorl %edx, %edx
callq 0x7380
movq (%r15), %rdi
movl $0x300, %esi            # imm = 0x300
xorl %edx, %edx
callq 0x7160
movq (%r15), %rdi
movl %r14d, %esi
movl %ebp, %edx
callq 0x72d0
cmpl $-0x1, %eax
je 0x8849
movq (%r15), %rdi
movl $0x3d, %esi
callq 0x70b0
movq (%r15), %rdi
movl $0x300, %esi            # imm = 0x300
xorl %edx, %edx
callq 0x7380
movq (%r15), %rdi
movl $0x200, %esi            # imm = 0x200
xorl %edx, %edx
callq 0x7160
jmp 0x889d
cmpl 0xc(%rsp), %r14d
setl %al
cmpl %r12d, %r14d
setg %cl
orb %al, %cl
cmpb $0x1, %cl
jne 0x889d
movq (%r15), %rdi
movl %r14d, %esi
movl %ebp, %edx
callq 0x72d0
cmpl $-0x1, %eax
je 0x889d
movq (%r15), %rdi
movl $0x7c, %esi
callq 0x70b0
incl %r14d
movq 0x50(%rbx), %rax
movl (%rax), %eax
decl %eax
cmpl %eax, %r14d
jl 0x87f6
movq 0x10(%rsp), %r14
incq %r14
jmp 0x8735
movq (%r15), %rdi
movl $0x200, %esi            # imm = 0x200
xorl %edx, %edx
callq 0x7380
movq (%r15), %rdi
movl $0x200000, %esi         # imm = 0x200000
xorl %edx, %edx
callq 0x7160
movq 0x50(%rbx), %rax
movl (%rax), %edi
movl 0x58(%rbx), %eax
addl $-0x2, %eax
cltq
imulq $0x66666667, %rax, %rax # imm = 0x66666667
movq %rax, %rcx
shrq $0x3f, %rcx
sarq $0x23, %rax
addl %ecx, %eax
cmpl $0x3, %eax
movl $0x2, %ecx
cmovgel %eax, %ecx
addl $-0x2, %ecx
leaq 0x6482c(%rip), %rdx     # 0x6d13f
xorl %esi, %esi
xorl %eax, %eax
callq 0x7390
movq (%r15), %rdi
movl $0x200000, %esi         # imm = 0x200000
xorl %edx, %edx
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x7380
nop