// File: interimadd[P]M5Stack-PixelArt/test/pixel_art_manager_test.cpp
// Function: (anonymous namespace)::TestPixelArtManager_DrawPixelArt_Test::TestBody()
TEST_F(TestPixelArtManager, DrawPixelArt)
  {
    int pos_x = 0, pos_y = 0, scale = 1;
    MonochromePixelArt pixel_art = {
      {1, 0, 0},
      {0, 0, 1}
    };
    mng->drawPixelArt(pixel_art, pos_x, pos_y, scale);
  
    LCDState expect = {
      {1, 0, 0, 0, 0, 0},
      {0, 0, 1, 0, 0, 0},
      {0, 0, 0, 0, 0, 0},
      {0, 0, 0, 0, 0, 0}
    };
    EXPECT_EQ(expect, lcd->getState());
  }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x310, %rsp            # imm = 0x310
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x218(%rbp)
movl $0x0, -0xc(%rbp)
movl $0x0, -0x10(%rbp)
movl $0x1, -0x14(%rbp)
movb $0x1, -0xb5(%rbp)
leaq -0x70(%rbp), %rax
movq %rax, -0x210(%rbp)
movq %rax, -0x78(%rbp)
movb $0x1, -0x8b(%rbp)
movb $0x0, -0x8a(%rbp)
movb $0x0, -0x89(%rbp)
leaq -0x8b(%rbp), %rax
movq %rax, -0x88(%rbp)
movq $0x3, -0x80(%rbp)
leaq -0x8c(%rbp), %rdi
movq %rdi, -0x208(%rbp)
callq 0x57400
movq -0x210(%rbp), %rdi
movq -0x208(%rbp), %rcx
movq -0x88(%rbp), %rsi
movq -0x80(%rbp), %rdx
callq 0x57420
jmp 0x5c233
leaq -0x58(%rbp), %rax
movq %rax, -0x228(%rbp)
movq %rax, -0x78(%rbp)
movb $0x0, -0xb3(%rbp)
movb $0x0, -0xb2(%rbp)
movb $0x1, -0xb1(%rbp)
leaq -0xb3(%rbp), %rax
movq %rax, -0xb0(%rbp)
movq $0x3, -0xa8(%rbp)
leaq -0xb4(%rbp), %rdi
movq %rdi, -0x220(%rbp)
callq 0x57400
movq -0x228(%rbp), %rdi
movq -0x220(%rbp), %rcx
movq -0xb0(%rbp), %rsi
movq -0xa8(%rbp), %rdx
callq 0x57420
jmp 0x5c2a6
movb $0x0, -0xb5(%rbp)
leaq -0x70(%rbp), %rax
movq %rax, -0x40(%rbp)
movq $0x2, -0x38(%rbp)
leaq -0xb6(%rbp), %rdi
movq %rdi, -0x230(%rbp)
callq 0x574a0
movq -0x230(%rbp), %rcx
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rdx
leaq -0x30(%rbp), %rdi
callq 0x574c0
jmp 0x5c2ea
leaq -0xb6(%rbp), %rdi
callq 0x57540
leaq -0x70(%rbp), %rax
movq %rax, -0x240(%rbp)
addq $0x30, %rax
movq %rax, -0x238(%rbp)
movq -0x238(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x248(%rbp)
callq 0x57560
movq -0x240(%rbp), %rcx
movq -0x248(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x238(%rbp)
jne 0x5c30c
leaq -0xb4(%rbp), %rdi
callq 0x575c0
leaq -0x8c(%rbp), %rdi
callq 0x575c0
movq -0x218(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x250(%rbp)
leaq -0xd0(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x593c0
jmp 0x5c379
movq -0x250(%rbp), %rdi
movl -0xc(%rbp), %edx
movl -0x10(%rbp), %ecx
movl -0x14(%rbp), %r8d
leaq -0xd0(%rbp), %rsi
callq 0x6af60
jmp 0x5c398
leaq -0xd0(%rbp), %rdi
callq 0x57740
movb $0x1, -0x1c0(%rbp)
leaq -0x158(%rbp), %rax
movq %rax, -0x260(%rbp)
movq %rax, -0x160(%rbp)
movb $0x1, -0x176(%rbp)
movb $0x0, -0x175(%rbp)
movb $0x0, -0x174(%rbp)
movb $0x0, -0x173(%rbp)
movb $0x0, -0x172(%rbp)
movb $0x0, -0x171(%rbp)
leaq -0x176(%rbp), %rax
movq %rax, -0x170(%rbp)
movq $0x6, -0x168(%rbp)
leaq -0x177(%rbp), %rdi
movq %rdi, -0x258(%rbp)
callq 0x57400
movq -0x260(%rbp), %rdi
movq -0x258(%rbp), %rcx
movq -0x170(%rbp), %rsi
movq -0x168(%rbp), %rdx
callq 0x57420
jmp 0x5c439
leaq -0x140(%rbp), %rax
movq %rax, -0x270(%rbp)
movq %rax, -0x160(%rbp)
movb $0x0, -0x18e(%rbp)
movb $0x0, -0x18d(%rbp)
movb $0x1, -0x18c(%rbp)
movb $0x0, -0x18b(%rbp)
movb $0x0, -0x18a(%rbp)
movb $0x0, -0x189(%rbp)
leaq -0x18e(%rbp), %rax
movq %rax, -0x188(%rbp)
movq $0x6, -0x180(%rbp)
leaq -0x18f(%rbp), %rdi
movq %rdi, -0x268(%rbp)
callq 0x57400
movq -0x270(%rbp), %rdi
movq -0x268(%rbp), %rcx
movq -0x188(%rbp), %rsi
movq -0x180(%rbp), %rdx
callq 0x57420
jmp 0x5c4c7
leaq -0x128(%rbp), %rax
movq %rax, -0x280(%rbp)
movq %rax, -0x160(%rbp)
movb $0x0, -0x1a6(%rbp)
movb $0x0, -0x1a5(%rbp)
movb $0x0, -0x1a4(%rbp)
movb $0x0, -0x1a3(%rbp)
movb $0x0, -0x1a2(%rbp)
movb $0x0, -0x1a1(%rbp)
leaq -0x1a6(%rbp), %rax
movq %rax, -0x1a0(%rbp)
movq $0x6, -0x198(%rbp)
leaq -0x1a7(%rbp), %rdi
movq %rdi, -0x278(%rbp)
callq 0x57400
movq -0x280(%rbp), %rdi
movq -0x278(%rbp), %rcx
movq -0x1a0(%rbp), %rsi
movq -0x198(%rbp), %rdx
callq 0x57420
jmp 0x5c555
leaq -0x110(%rbp), %rax
movq %rax, -0x290(%rbp)
movq %rax, -0x160(%rbp)
movb $0x0, -0x1be(%rbp)
movb $0x0, -0x1bd(%rbp)
movb $0x0, -0x1bc(%rbp)
movb $0x0, -0x1bb(%rbp)
movb $0x0, -0x1ba(%rbp)
movb $0x0, -0x1b9(%rbp)
leaq -0x1be(%rbp), %rax
movq %rax, -0x1b8(%rbp)
movq $0x6, -0x1b0(%rbp)
leaq -0x1bf(%rbp), %rdi
movq %rdi, -0x288(%rbp)
callq 0x57400
movq -0x290(%rbp), %rdi
movq -0x288(%rbp), %rcx
movq -0x1b8(%rbp), %rsi
movq -0x1b0(%rbp), %rdx
callq 0x57420
jmp 0x5c5e3
movb $0x0, -0x1c0(%rbp)
leaq -0x158(%rbp), %rax
movq %rax, -0xf8(%rbp)
movq $0x4, -0xf0(%rbp)
leaq -0x1c1(%rbp), %rdi
movq %rdi, -0x298(%rbp)
callq 0x574a0
movq -0x298(%rbp), %rcx
movq -0xf8(%rbp), %rsi
movq -0xf0(%rbp), %rdx
leaq -0xe8(%rbp), %rdi
callq 0x574c0
jmp 0x5c639
leaq -0x1c1(%rbp), %rdi
callq 0x57540
leaq -0x158(%rbp), %rax
movq %rax, -0x2a8(%rbp)
addq $0x60, %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 0x5c65e
leaq -0x1bf(%rbp), %rdi
callq 0x575c0
leaq -0x1a7(%rbp), %rdi
callq 0x575c0
leaq -0x18f(%rbp), %rdi
callq 0x575c0
leaq -0x177(%rbp), %rdi
callq 0x575c0
movq -0x218(%rbp), %rax
movq 0x10(%rax), %rsi
leaq -0x1f0(%rbp), %rdi
callq 0x61640
jmp 0x5c6d8
leaq 0x4ae0c(%rip), %rsi     # 0xa74eb
leaq 0x4ae0c(%rip), %rdx     # 0xa74f2
leaq -0x1d8(%rbp), %rdi
leaq -0xe8(%rbp), %rcx
leaq -0x1f0(%rbp), %r8
callq 0x595d0
jmp 0x5c702
leaq -0x1f0(%rbp), %rdi
callq 0x57740
leaq -0x1d8(%rbp), %rdi
callq 0x57670
testb $0x1, %al
jne 0x5c723
jmp 0x5c9ea
jmp 0x5cab6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x98(%rbp)
movl %eax, -0x9c(%rbp)
jmp 0x5c7c6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x98(%rbp)
movl %eax, -0x9c(%rbp)
jmp 0x5c7ba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x98(%rbp)
movl %eax, -0x9c(%rbp)
leaq -0xb6(%rbp), %rdi
callq 0x57540
leaq -0x70(%rbp), %rax
movq %rax, -0x2c0(%rbp)
addq $0x30, %rax
movq %rax, -0x2b8(%rbp)
movq -0x2b8(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x2c8(%rbp)
callq 0x57560
movq -0x2c0(%rbp), %rcx
movq -0x2c8(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x2b8(%rbp)
jne 0x5c787
jmp 0x5c7ba
leaq -0xb4(%rbp), %rdi
callq 0x575c0
leaq -0x8c(%rbp), %rdi
callq 0x575c0
testb $0x1, -0xb5(%rbp)
jne 0x5c7dd
jmp 0x5c821
movq -0x78(%rbp), %rax
leaq -0x70(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x2d0(%rbp)
je 0x5c81f
movq -0x2d0(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x2d8(%rbp)
callq 0x57560
movq -0x2d8(%rbp), %rax
leaq -0x70(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x2d0(%rbp)
jne 0x5c7f1
jmp 0x5c821
jmp 0x5cb01
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x98(%rbp)
movl %eax, -0x9c(%rbp)
jmp 0x5caf8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x98(%rbp)
movl %eax, -0x9c(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x57740
jmp 0x5caf8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x98(%rbp)
movl %eax, -0x9c(%rbp)
jmp 0x5c947
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x98(%rbp)
movl %eax, -0x9c(%rbp)
jmp 0x5c93b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x98(%rbp)
movl %eax, -0x9c(%rbp)
jmp 0x5c92f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x98(%rbp)
movl %eax, -0x9c(%rbp)
jmp 0x5c923
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x98(%rbp)
movl %eax, -0x9c(%rbp)
leaq -0x1c1(%rbp), %rdi
callq 0x57540
leaq -0x158(%rbp), %rax
movq %rax, -0x2e8(%rbp)
addq $0x60, %rax
movq %rax, -0x2e0(%rbp)
movq -0x2e0(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x2f0(%rbp)
callq 0x57560
movq -0x2e8(%rbp), %rcx
movq -0x2f0(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x2e0(%rbp)
jne 0x5c8f0
jmp 0x5c923
leaq -0x1bf(%rbp), %rdi
callq 0x575c0
leaq -0x1a7(%rbp), %rdi
callq 0x575c0
leaq -0x18f(%rbp), %rdi
callq 0x575c0
leaq -0x177(%rbp), %rdi
callq 0x575c0
testb $0x1, -0x1c0(%rbp)
jne 0x5c95e
jmp 0x5c9ab
movq -0x160(%rbp), %rax
leaq -0x158(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x2f8(%rbp)
je 0x5c9a9
movq -0x2f8(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x300(%rbp)
callq 0x57560
movq -0x300(%rbp), %rax
leaq -0x158(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x2f8(%rbp)
jne 0x5c978
jmp 0x5c9ab
jmp 0x5caf8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x98(%rbp)
movl %eax, -0x9c(%rbp)
jmp 0x5caec
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x98(%rbp)
movl %eax, -0x9c(%rbp)
leaq -0x1f0(%rbp), %rdi
callq 0x57740
jmp 0x5caec
leaq -0x1f8(%rbp), %rdi
callq 0x6f710
jmp 0x5c9f8
leaq -0x1d8(%rbp), %rdi
callq 0x57690
movq %rax, -0x308(%rbp)
jmp 0x5ca0d
movq -0x308(%rbp), %r8
leaq 0x4a9a6(%rip), %rdx     # 0xa73c1
leaq -0x200(%rbp), %rdi
movl $0x1, %esi
movl $0x3c, %ecx
callq 0x6c940
jmp 0x5ca33
leaq -0x200(%rbp), %rdi
leaq -0x1f8(%rbp), %rsi
callq 0x6ca00
jmp 0x5ca48
leaq -0x200(%rbp), %rdi
callq 0x6c9c0
leaq -0x1f8(%rbp), %rdi
callq 0x576b0
jmp 0x5cab6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x98(%rbp)
movl %eax, -0x9c(%rbp)
jmp 0x5cae0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x98(%rbp)
movl %eax, -0x9c(%rbp)
jmp 0x5caa8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x98(%rbp)
movl %eax, -0x9c(%rbp)
leaq -0x200(%rbp), %rdi
callq 0x6c9c0
leaq -0x1f8(%rbp), %rdi
callq 0x576b0
jmp 0x5cae0
leaq -0x1d8(%rbp), %rdi
callq 0x576d0
leaq -0xe8(%rbp), %rdi
callq 0x57740
leaq -0x30(%rbp), %rdi
callq 0x57740
addq $0x310, %rsp            # imm = 0x310
popq %rbp
retq
leaq -0x1d8(%rbp), %rdi
callq 0x576d0
leaq -0xe8(%rbp), %rdi
callq 0x57740
leaq -0x30(%rbp), %rdi
callq 0x57740
movq -0x98(%rbp), %rdi
callq 0x52bc0
nopl (%rax)