// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/graphics/bitmap.cpp
// Function: smooth::GUI::Bitmap::operator==(smooth::GUI::Bitmap const&) const
S::Bool S::GUI::Bitmap::operator ==(const Bitmap &bitmap) const
{
	if (*this == NIL && bitmap == NIL) return True;
	if (*this == NIL || bitmap == NIL) return False;

	if (GetSize()	       != bitmap.GetSize()	   ||
	    GetDepth()	       != bitmap.GetDepth()	   ||
	    GetBitsPerPixel()  != bitmap.GetBitsPerPixel() ||
	    GetLineAlignment() != bitmap.GetLineAlignment()) return False;

	Size	 size  = GetSize();
	Int	 bpp   = GetBitsPerPixel();
	Int	 align = GetLineAlignment();
	Int	 bpl   = ((align - ((size.cx * (bpp / 8)) % align)) % align) + size.cx * (bpp / 8);
	Int	 bytes = bpl * size.cy;

	if (memcmp(GetBytes(), bitmap.GetBytes(), bytes) != 0) return False;

	return True;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x38(%rbp)
xorl %esi, %esi
callq 0x5c730
testb $0x1, %al
jne 0x69475
jmp 0x6948f
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x5c730
testb $0x1, %al
jne 0x69486
jmp 0x6948f
movb $0x1, -0x1(%rbp)
jmp 0x69610
movq -0x38(%rbp), %rdi
xorl %esi, %esi
callq 0x5c730
testb $0x1, %al
jne 0x694af
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x5c730
testb $0x1, %al
jne 0x694af
jmp 0x694b8
movb $0x0, -0x1(%rbp)
jmp 0x69610
movq -0x38(%rbp), %rdi
callq 0x5ce60
movq %rax, -0x40(%rbp)
movq -0x18(%rbp), %rdi
callq 0x5ce60
movq -0x40(%rbp), %rdi
movq %rax, %rsi
callq 0x5d9c0
testb $0x1, %al
jne 0x6954a
movq -0x38(%rbp), %rdi
callq 0x5b190
movsbl %al, %eax
movl %eax, -0x44(%rbp)
movq -0x18(%rbp), %rdi
callq 0x5b190
movb %al, %cl
movl -0x44(%rbp), %eax
movsbl %cl, %ecx
cmpl %ecx, %eax
jne 0x6954a
movq -0x38(%rbp), %rdi
callq 0x5ab10
movsbl %al, %eax
movl %eax, -0x48(%rbp)
movq -0x18(%rbp), %rdi
callq 0x5ab10
movb %al, %cl
movl -0x48(%rbp), %eax
movsbl %cl, %ecx
cmpl %ecx, %eax
jne 0x6954a
movq -0x38(%rbp), %rdi
callq 0x5dcc0
movsbl %al, %eax
movl %eax, -0x4c(%rbp)
movq -0x18(%rbp), %rdi
callq 0x5dcc0
movb %al, %cl
movl -0x4c(%rbp), %eax
movsbl %cl, %ecx
cmpl %ecx, %eax
je 0x69553
movb $0x0, -0x1(%rbp)
jmp 0x69610
movq -0x38(%rbp), %rdi
callq 0x5ce60
movq -0x38(%rbp), %rdi
movq (%rax), %rax
movq %rax, -0x20(%rbp)
callq 0x5ab10
movq -0x38(%rbp), %rdi
movsbl %al, %eax
movl %eax, -0x24(%rbp)
callq 0x5dcc0
movq -0x38(%rbp), %rdi
movsbl %al, %eax
movl %eax, -0x28(%rbp)
movl -0x28(%rbp), %eax
movl %eax, -0x64(%rbp)
movl -0x20(%rbp), %eax
movl %eax, -0x68(%rbp)
movl -0x24(%rbp), %eax
movl $0x8, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x68(%rbp), %eax
imull %ecx, %eax
cltd
idivl -0x28(%rbp)
movl -0x64(%rbp), %eax
subl %edx, %eax
cltd
idivl -0x28(%rbp)
movl %edx, -0x60(%rbp)
movl -0x20(%rbp), %eax
movl %eax, -0x5c(%rbp)
movl -0x24(%rbp), %eax
movl $0x8, %ecx
cltd
idivl %ecx
movl -0x60(%rbp), %edx
movl %eax, %ecx
movl -0x5c(%rbp), %eax
imull %ecx, %eax
addl %eax, %edx
movl %edx, -0x2c(%rbp)
movl -0x2c(%rbp), %eax
imull -0x1c(%rbp), %eax
movl %eax, -0x30(%rbp)
callq 0x5b750
movq %rax, -0x58(%rbp)
movq -0x18(%rbp), %rdi
callq 0x5b750
movq -0x58(%rbp), %rdi
movq %rax, %rsi
movslq -0x30(%rbp), %rdx
callq 0x5d490
cmpl $0x0, %eax
je 0x6960c
movb $0x0, -0x1(%rbp)
jmp 0x69610
movb $0x1, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x70, %rsp
popq %rbp
retq
nopl (%rax,%rax)