// File: /workspace/github_cpp_makefile_star2_O3/mikeakohn[P]cloudtari/build/../src/TIA.cxx
// Function: TIA::TIA()
TIA::TIA() :
  pos_x{0},
  pos_y{0},
  hsync_latch{false},
  image_32{nullptr},
  image_8{nullptr},
  check_events{false},
  fps{0},
  timestamp{0}
{
  for (int n = 0; n < 256; n++)
  {
    reverse[n]=
      (((n & 0x01) << 7) | ((n & 0x02) << 5) |
       ((n & 0x04) << 3) | ((n & 0x08) << 1) |
       ((n & 0x10) >> 1) | ((n & 0x20) >> 3) |
       ((n & 0x40) >> 5) | ((n & 0x80) >> 7));
  }

  reset();
}

// Assembly:
leaq 0x8(%rdi), %rax
xorl %ecx, %ecx
movq %rcx, 0x20(%rdi)
movq %rcx, 0x8(%rdi)
movb %cl, 0x10(%rdi)
movq $0x1, 0x28(%rdi)
movl %ecx, 0x30(%rdi)
movd 0x42ec(%rip), %xmm0     # 0xbc00
movdqu %xmm0, 0x38(%rdi)
movl $0x1, 0x4c(%rdi)
movl %ecx, 0x50(%rdi)
movl %ecx, 0x54(%rdi)
movw $0x1, %dx
movw %dx, 0x58(%rdi)
movb %cl, 0x5a(%rdi)
movl %ecx, 0x5c(%rdi)
movw %dx, 0x64(%rdi)
movb %cl, 0x66(%rdi)
movl %ecx, 0x68(%rdi)
movw %dx, 0x70(%rdi)
movb %cl, 0x72(%rdi)
movl %ecx, 0x74(%rdi)
movw $0x0, 0x7c(%rdi)
movb %cl, 0x1e4(%rdi)
movl %ecx, 0x1e8(%rdi)
movq %rcx, 0x1f0(%rdi)
pxor %xmm0, %xmm0
movdqu %xmm0, 0x1d0(%rdi)
movdqa 0x41aa(%rip), %xmm15    # 0xbb20
movdqa 0x41b2(%rip), %xmm1     # 0xbb30
movdqa 0x41ba(%rip), %xmm2     # 0xbb40
movdqa 0x41c2(%rip), %xmm3     # 0xbb50
movdqa 0x41c9(%rip), %xmm11    # 0xbb60
movdqa 0x41d1(%rip), %xmm5     # 0xbb70
movdqa 0x3aa8(%rip), %xmm12    # 0xb450
movdqa 0x3aaf(%rip), %xmm10    # 0xb460
movdqa 0x41c6(%rip), %xmm9     # 0xbb80
movdqa 0x420d(%rip), %xmm13    # 0xbbd0
movdqa 0x4214(%rip), %xmm14    # 0xbbe0
movdqa %xmm9, %xmm0
psrlw $0x4, %xmm0
pand 0x41b2(%rip), %xmm0     # 0xbb90
movdqa 0x41ba(%rip), %xmm4     # 0xbba0
pand %xmm4, %xmm0
movdqa %xmm9, %xmm8
pand %xmm4, %xmm8
psllw $0x4, %xmm8
por %xmm0, %xmm8
movdqa %xmm8, %xmm0
psrlw $0x2, %xmm0
movdqa 0x419f(%rip), %xmm4     # 0xbbb0
pand %xmm4, %xmm0
pand %xmm4, %xmm8
psllw $0x2, %xmm8
por %xmm0, %xmm8
movdqa %xmm8, %xmm0
psrlw $0x1, %xmm0
movdqa 0x4189(%rip), %xmm4     # 0xbbc0
pand %xmm4, %xmm0
pand %xmm4, %xmm8
paddb %xmm8, %xmm8
por %xmm0, %xmm8
movdqa %xmm15, %xmm0
psrlq $0x7, %xmm0
movdqa %xmm11, %xmm4
psrlq $0x7, %xmm4
movdqa %xmm12, %xmm6
psrlq $0x7, %xmm6
movdqa %xmm10, %xmm7
psrlq $0x7, %xmm7
pand %xmm13, %xmm7
pand %xmm13, %xmm6
packuswb %xmm6, %xmm7
movdqa %xmm5, %xmm6
psrlq $0x7, %xmm6
pand %xmm13, %xmm6
pand %xmm13, %xmm4
packuswb %xmm4, %xmm6
movdqa %xmm2, %xmm4
psrlq $0x7, %xmm4
packuswb %xmm6, %xmm7
movdqa %xmm3, %xmm6
psrlq $0x7, %xmm6
pand %xmm13, %xmm6
pand %xmm13, %xmm4
packuswb %xmm4, %xmm6
movdqa %xmm1, %xmm4
psrlq $0x7, %xmm4
pand %xmm13, %xmm4
pand %xmm13, %xmm0
packuswb %xmm0, %xmm4
packuswb %xmm4, %xmm6
packuswb %xmm6, %xmm7
por %xmm8, %xmm7
movdqu %xmm7, 0xd0(%rdi,%rcx)
addq $0x10, %rcx
paddq %xmm14, %xmm10
paddq %xmm14, %xmm12
paddq %xmm14, %xmm5
paddq %xmm14, %xmm11
paddq %xmm14, %xmm3
paddq %xmm14, %xmm2
paddq %xmm14, %xmm1
paddq %xmm14, %xmm15
paddb 0x40d3(%rip), %xmm9     # 0xbbf0
cmpq $0x100, %rcx            # imm = 0x100
jne 0x79cc
movb $0x0, 0x8(%rax)
movq $0x0, (%rax)
movq $0x1, 0x28(%rdi)
pxor %xmm0, %xmm0
movdqu %xmm0, 0xc0(%rdi)
movdqu %xmm0, 0x80(%rdi)
movdqu %xmm0, 0x90(%rdi)
movdqu %xmm0, 0xa0(%rdi)
movdqu %xmm0, 0xb0(%rdi)
movw $0x8080, 0xcc(%rdi)     # imm = 0x8080
retq
nop