// File: interimadd[P]M5Stack-PixelArt/test/pixel_art_m5stack_test.cpp
// Function: (anonymous namespace)::TestPixelArtM5stack_ButtonOperation_Test::TestBody()
TEST_F(TestPixelArtM5stack, ButtonOperation)
  {
    ALL_PIXEL_ARTS_LIST = {
      {{{1}}}, {{{2}}}
    };
    PIXEL_ART_POS_X = 0;
    PIXEL_ART_POS_Y = 0;
    PIXEL_ART_SCALE = 1;
    setup();

    OperationType next_op = OperationType::NEXT_BUTTON;
    setButtonoperation(next_op);
    loop();
    MonochromePixelArt expect = {
      {2, 0, 0},
      {0, 0, 0}
    };
    EXPECT_EQ(expect, lcd->getState());
  }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x420, %rsp            # imm = 0x420
movq %rdi, -0x8(%rbp)
movb $0x1, -0x14f(%rbp)
leaq -0x48(%rbp), %rax
movq %rax, -0x50(%rbp)
movb $0x1, -0xd7(%rbp)
leaq -0x78(%rbp), %rax
movq %rax, -0x80(%rbp)
movb $0x1, -0xd5(%rbp)
leaq -0xa8(%rbp), %rax
movq %rax, -0x230(%rbp)
movq %rax, -0xb0(%rbp)
movb $0x1, -0xc1(%rbp)
leaq -0xc1(%rbp), %rax
movq %rax, -0xc0(%rbp)
movq $0x1, -0xb8(%rbp)
leaq -0xc2(%rbp), %rdi
movq %rdi, -0x228(%rbp)
callq 0x57400
movq -0x230(%rbp), %rdi
movq -0x228(%rbp), %rcx
movq -0xc0(%rbp), %rsi
movq -0xb8(%rbp), %rdx
callq 0x57420
jmp 0x66dff
movb $0x0, -0xd5(%rbp)
leaq -0xa8(%rbp), %rax
movq %rax, -0x90(%rbp)
movq $0x1, -0x88(%rbp)
leaq -0xd6(%rbp), %rdi
movq %rdi, -0x238(%rbp)
callq 0x574a0
movq -0x238(%rbp), %rcx
movq -0x90(%rbp), %rsi
movq -0x88(%rbp), %rdx
leaq -0x78(%rbp), %rdi
callq 0x574c0
jmp 0x66e52
movb $0x0, -0xd7(%rbp)
leaq -0x78(%rbp), %rax
movq %rax, -0x60(%rbp)
movq $0x1, -0x58(%rbp)
leaq -0xd8(%rbp), %rdi
movq %rdi, -0x240(%rbp)
callq 0x594b0
movq -0x240(%rbp), %rcx
movq -0x60(%rbp), %rsi
movq -0x58(%rbp), %rdx
leaq -0x48(%rbp), %rdi
callq 0x594d0
jmp 0x66e96
leaq -0x30(%rbp), %rax
movq %rax, -0x258(%rbp)
movq %rax, -0x50(%rbp)
movb $0x1, -0x14d(%rbp)
leaq -0x100(%rbp), %rax
movq %rax, -0x108(%rbp)
movb $0x1, -0x14b(%rbp)
leaq -0x130(%rbp), %rax
movq %rax, -0x250(%rbp)
movq %rax, -0x138(%rbp)
movb $0x2, -0x149(%rbp)
leaq -0x149(%rbp), %rax
movq %rax, -0x148(%rbp)
movq $0x1, -0x140(%rbp)
leaq -0x14a(%rbp), %rdi
movq %rdi, -0x248(%rbp)
callq 0x57400
movq -0x250(%rbp), %rdi
movq -0x248(%rbp), %rcx
movq -0x148(%rbp), %rsi
movq -0x140(%rbp), %rdx
callq 0x57420
jmp 0x66f2c
movb $0x0, -0x14b(%rbp)
leaq -0x130(%rbp), %rax
movq %rax, -0x118(%rbp)
movq $0x1, -0x110(%rbp)
leaq -0x14c(%rbp), %rdi
movq %rdi, -0x260(%rbp)
callq 0x574a0
movq -0x260(%rbp), %rcx
movq -0x118(%rbp), %rsi
movq -0x110(%rbp), %rdx
leaq -0x100(%rbp), %rdi
callq 0x574c0
jmp 0x66f82
movb $0x0, -0x14d(%rbp)
leaq -0x100(%rbp), %rax
movq %rax, -0xe8(%rbp)
movq $0x1, -0xe0(%rbp)
leaq -0x14e(%rbp), %rdi
movq %rdi, -0x268(%rbp)
callq 0x594b0
movq -0x258(%rbp), %rdi
movq -0x268(%rbp), %rcx
movq -0xe8(%rbp), %rsi
movq -0xe0(%rbp), %rdx
callq 0x594d0
jmp 0x66fd8
movb $0x0, -0x14f(%rbp)
leaq -0x48(%rbp), %rax
movq %rax, -0x18(%rbp)
movq $0x2, -0x10(%rbp)
movq -0x18(%rbp), %rsi
movq -0x10(%rbp), %rdx
leaq 0x6a7c2(%rip), %rdi     # 0xd17c0
callq 0x68090
jmp 0x67005
leaq -0x48(%rbp), %rax
movq %rax, -0x278(%rbp)
addq $0x30, %rax
movq %rax, -0x270(%rbp)
movq -0x270(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x280(%rbp)
callq 0x59550
movq -0x278(%rbp), %rcx
movq -0x280(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x270(%rbp)
jne 0x6701b
leaq -0x14e(%rbp), %rdi
callq 0x595b0
leaq -0x100(%rbp), %rax
movq %rax, -0x290(%rbp)
addq $0x18, %rax
movq %rax, -0x288(%rbp)
movq -0x288(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x298(%rbp)
callq 0x57740
movq -0x290(%rbp), %rcx
movq -0x298(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x288(%rbp)
jne 0x67071
leaq -0x14c(%rbp), %rdi
callq 0x57540
leaq -0x130(%rbp), %rax
movq %rax, -0x2a8(%rbp)
addq $0x18, %rax
movq %rax, -0x2a0(%rbp)
movq -0x2a0(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x2b0(%rbp)
callq 0x57560
movq -0x2a8(%rbp), %rcx
movq -0x2b0(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x2a0(%rbp)
jne 0x670c7
leaq -0x14a(%rbp), %rdi
callq 0x575c0
leaq -0xd8(%rbp), %rdi
callq 0x595b0
leaq -0x78(%rbp), %rax
movq %rax, -0x2c0(%rbp)
addq $0x18, %rax
movq %rax, -0x2b8(%rbp)
movq -0x2b8(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x2c8(%rbp)
callq 0x57740
movq -0x2c0(%rbp), %rcx
movq -0x2c8(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x2b8(%rbp)
jne 0x67126
leaq -0xd6(%rbp), %rdi
callq 0x57540
leaq -0xa8(%rbp), %rax
movq %rax, -0x2d8(%rbp)
addq $0x18, %rax
movq %rax, -0x2d0(%rbp)
movq -0x2d0(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x2e0(%rbp)
callq 0x57560
movq -0x2d8(%rbp), %rcx
movq -0x2e0(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x2d0(%rbp)
jne 0x6717c
leaq -0xc2(%rbp), %rdi
callq 0x575c0
movl $0x0, 0x6a615(%rip)     # 0xd17d8
movl $0x0, 0x6a60f(%rip)     # 0xd17dc
movl $0x1, 0x6a609(%rip)     # 0xd17e0
callq 0x6bfc0
movl $0x1, -0x154(%rbp)
movl -0x154(%rbp), %edi
callq 0x6ad30
callq 0x6c1c0
movb $0x1, -0x1e5(%rbp)
leaq -0x1b0(%rbp), %rax
movq %rax, -0x2f0(%rbp)
movq %rax, -0x1b8(%rbp)
movb $0x2, -0x1cb(%rbp)
movb $0x0, -0x1ca(%rbp)
movb $0x0, -0x1c9(%rbp)
leaq -0x1cb(%rbp), %rax
movq %rax, -0x1c8(%rbp)
movq $0x3, -0x1c0(%rbp)
leaq -0x1cc(%rbp), %rdi
movq %rdi, -0x2e8(%rbp)
callq 0x57400
movq -0x2f0(%rbp), %rdi
movq -0x2e8(%rbp), %rcx
movq -0x1c8(%rbp), %rsi
movq -0x1c0(%rbp), %rdx
callq 0x57420
jmp 0x67276
leaq -0x198(%rbp), %rax
movq %rax, -0x300(%rbp)
movq %rax, -0x1b8(%rbp)
movb $0x0, -0x1e3(%rbp)
movb $0x0, -0x1e2(%rbp)
movb $0x0, -0x1e1(%rbp)
leaq -0x1e3(%rbp), %rax
movq %rax, -0x1e0(%rbp)
movq $0x3, -0x1d8(%rbp)
leaq -0x1e4(%rbp), %rdi
movq %rdi, -0x2f8(%rbp)
callq 0x57400
movq -0x300(%rbp), %rdi
movq -0x2f8(%rbp), %rcx
movq -0x1e0(%rbp), %rsi
movq -0x1d8(%rbp), %rdx
callq 0x57420
jmp 0x672ef
movb $0x0, -0x1e5(%rbp)
leaq -0x1b0(%rbp), %rax
movq %rax, -0x180(%rbp)
movq $0x2, -0x178(%rbp)
leaq -0x1e6(%rbp), %rdi
movq %rdi, -0x308(%rbp)
callq 0x574a0
movq -0x308(%rbp), %rcx
movq -0x180(%rbp), %rsi
movq -0x178(%rbp), %rdx
leaq -0x170(%rbp), %rdi
callq 0x574c0
jmp 0x67345
leaq -0x1e6(%rbp), %rdi
callq 0x57540
leaq -0x1b0(%rbp), %rax
movq %rax, -0x318(%rbp)
addq $0x30, %rax
movq %rax, -0x310(%rbp)
movq -0x310(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x320(%rbp)
callq 0x57560
movq -0x318(%rbp), %rcx
movq -0x320(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x310(%rbp)
jne 0x6736a
leaq -0x1e4(%rbp), %rdi
callq 0x575c0
leaq -0x1cc(%rbp), %rdi
callq 0x575c0
leaq 0x6a456(%rip), %rax     # 0xd1810
movq (%rax), %rsi
leaq -0x210(%rbp), %rdi
callq 0x61640
jmp 0x673cb
leaq 0x40119(%rip), %rsi     # 0xa74eb
leaq 0x40119(%rip), %rdx     # 0xa74f2
leaq -0x1f8(%rbp), %rdi
leaq -0x170(%rbp), %rcx
leaq -0x210(%rbp), %r8
callq 0x595d0
jmp 0x673f5
leaq -0x210(%rbp), %rdi
callq 0x57740
leaq -0x1f8(%rbp), %rdi
callq 0x57670
testb $0x1, %al
jne 0x67416
jmp 0x67963
jmp 0x67a2f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd0(%rbp)
movl %eax, -0xd4(%rbp)
jmp 0x67718
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd0(%rbp)
movl %eax, -0xd4(%rbp)
jmp 0x676c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd0(%rbp)
movl %eax, -0xd4(%rbp)
jmp 0x6766b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd0(%rbp)
movl %eax, -0xd4(%rbp)
jmp 0x675ad
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd0(%rbp)
movl %eax, -0xd4(%rbp)
jmp 0x67555
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd0(%rbp)
movl %eax, -0xd4(%rbp)
jmp 0x674fd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd0(%rbp)
movl %eax, -0xd4(%rbp)
leaq -0x48(%rbp), %rax
movq %rax, -0x330(%rbp)
addq $0x30, %rax
movq %rax, -0x328(%rbp)
movq -0x328(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x338(%rbp)
callq 0x59550
movq -0x330(%rbp), %rcx
movq -0x338(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x328(%rbp)
jne 0x674ca
jmp 0x674fd
leaq -0x14e(%rbp), %rdi
callq 0x595b0
leaq -0x100(%rbp), %rax
movq %rax, -0x348(%rbp)
addq $0x18, %rax
movq %rax, -0x340(%rbp)
movq -0x340(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x350(%rbp)
callq 0x57740
movq -0x348(%rbp), %rcx
movq -0x350(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x340(%rbp)
jne 0x67522
jmp 0x67555
leaq -0x14c(%rbp), %rdi
callq 0x57540
leaq -0x130(%rbp), %rax
movq %rax, -0x360(%rbp)
addq $0x18, %rax
movq %rax, -0x358(%rbp)
movq -0x358(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x368(%rbp)
callq 0x57560
movq -0x360(%rbp), %rcx
movq -0x368(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x358(%rbp)
jne 0x6757a
jmp 0x675ad
leaq -0x14a(%rbp), %rdi
callq 0x575c0
testb $0x1, -0x14b(%rbp)
jne 0x675c4
jmp 0x67611
movq -0x138(%rbp), %rax
leaq -0x130(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x370(%rbp)
je 0x6760f
movq -0x370(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x378(%rbp)
callq 0x57560
movq -0x378(%rbp), %rax
leaq -0x130(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x370(%rbp)
jne 0x675de
jmp 0x67611
testb $0x1, -0x14d(%rbp)
jne 0x6761c
jmp 0x67669
movq -0x108(%rbp), %rax
leaq -0x100(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x380(%rbp)
je 0x67667
movq -0x380(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x388(%rbp)
callq 0x57740
movq -0x388(%rbp), %rax
leaq -0x100(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x380(%rbp)
jne 0x67636
jmp 0x67669
jmp 0x6766b
leaq -0xd8(%rbp), %rdi
callq 0x595b0
leaq -0x78(%rbp), %rax
movq %rax, -0x398(%rbp)
addq $0x18, %rax
movq %rax, -0x390(%rbp)
movq -0x390(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x3a0(%rbp)
callq 0x57740
movq -0x398(%rbp), %rcx
movq -0x3a0(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x390(%rbp)
jne 0x6768d
jmp 0x676c0
leaq -0xd6(%rbp), %rdi
callq 0x57540
leaq -0xa8(%rbp), %rax
movq %rax, -0x3b0(%rbp)
addq $0x18, %rax
movq %rax, -0x3a8(%rbp)
movq -0x3a8(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x3b8(%rbp)
callq 0x57560
movq -0x3b0(%rbp), %rcx
movq -0x3b8(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x3a8(%rbp)
jne 0x676e5
jmp 0x67718
leaq -0xc2(%rbp), %rdi
callq 0x575c0
testb $0x1, -0xd5(%rbp)
jne 0x6772f
jmp 0x6777c
movq -0xb0(%rbp), %rax
leaq -0xa8(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x3c0(%rbp)
je 0x6777a
movq -0x3c0(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x3c8(%rbp)
callq 0x57560
movq -0x3c8(%rbp), %rax
leaq -0xa8(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x3c0(%rbp)
jne 0x67749
jmp 0x6777c
testb $0x1, -0xd7(%rbp)
jne 0x67787
jmp 0x677cb
movq -0x80(%rbp), %rax
leaq -0x78(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x3d0(%rbp)
je 0x677c9
movq -0x3d0(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x3d8(%rbp)
callq 0x57740
movq -0x3d8(%rbp), %rax
leaq -0x78(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x3d0(%rbp)
jne 0x6779b
jmp 0x677cb
testb $0x1, -0x14f(%rbp)
jne 0x677d6
jmp 0x6781a
movq -0x50(%rbp), %rax
leaq -0x48(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x3e0(%rbp)
je 0x67818
movq -0x3e0(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x3e8(%rbp)
callq 0x59550
movq -0x3e8(%rbp), %rax
leaq -0x48(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x3e0(%rbp)
jne 0x677ea
jmp 0x6781a
jmp 0x67a68
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd0(%rbp)
movl %eax, -0xd4(%rbp)
jmp 0x678c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd0(%rbp)
movl %eax, -0xd4(%rbp)
jmp 0x678b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd0(%rbp)
movl %eax, -0xd4(%rbp)
leaq -0x1e6(%rbp), %rdi
callq 0x57540
leaq -0x1b0(%rbp), %rax
movq %rax, -0x3f8(%rbp)
addq $0x30, %rax
movq %rax, -0x3f0(%rbp)
movq -0x3f0(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x400(%rbp)
callq 0x57560
movq -0x3f8(%rbp), %rcx
movq -0x400(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x3f0(%rbp)
jne 0x67881
jmp 0x678b4
leaq -0x1e4(%rbp), %rdi
callq 0x575c0
leaq -0x1cc(%rbp), %rdi
callq 0x575c0
testb $0x1, -0x1e5(%rbp)
jne 0x678d7
jmp 0x67924
movq -0x1b8(%rbp), %rax
leaq -0x1b0(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x408(%rbp)
je 0x67922
movq -0x408(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x410(%rbp)
callq 0x57560
movq -0x410(%rbp), %rax
leaq -0x1b0(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x408(%rbp)
jne 0x678f1
jmp 0x67924
jmp 0x67a68
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd0(%rbp)
movl %eax, -0xd4(%rbp)
jmp 0x67a5c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd0(%rbp)
movl %eax, -0xd4(%rbp)
leaq -0x210(%rbp), %rdi
callq 0x57740
jmp 0x67a5c
leaq -0x218(%rbp), %rdi
callq 0x6f710
jmp 0x67971
leaq -0x1f8(%rbp), %rdi
callq 0x57690
movq %rax, -0x418(%rbp)
jmp 0x67986
movq -0x418(%rbp), %r8
leaq 0x4089d(%rip), %rdx     # 0xa8231
leaq -0x220(%rbp), %rdi
movl $0x1, %esi
movl $0x56, %ecx
callq 0x6c940
jmp 0x679ac
leaq -0x220(%rbp), %rdi
leaq -0x218(%rbp), %rsi
callq 0x6ca00
jmp 0x679c1
leaq -0x220(%rbp), %rdi
callq 0x6c9c0
leaq -0x218(%rbp), %rdi
callq 0x576b0
jmp 0x67a2f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd0(%rbp)
movl %eax, -0xd4(%rbp)
jmp 0x67a50
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd0(%rbp)
movl %eax, -0xd4(%rbp)
jmp 0x67a21
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd0(%rbp)
movl %eax, -0xd4(%rbp)
leaq -0x220(%rbp), %rdi
callq 0x6c9c0
leaq -0x218(%rbp), %rdi
callq 0x576b0
jmp 0x67a50
leaq -0x1f8(%rbp), %rdi
callq 0x576d0
leaq -0x170(%rbp), %rdi
callq 0x57740
addq $0x420, %rsp            # imm = 0x420
popq %rbp
retq
leaq -0x1f8(%rbp), %rdi
callq 0x576d0
leaq -0x170(%rbp), %rdi
callq 0x57740
movq -0xd0(%rbp), %rdi
callq 0x52bc0
nopw %cs:(%rax,%rax)
nop