// File: zeeev[P]DASVC/bamtools/src/third_party/jsoncpp/json_value.cpp
// Function: Json::Value::operator==(Json::Value const&) const
bool 
Value::operator ==( const Value &other ) const
{
   //if ( type_ != other.type_ )
   // GCC 2.95.3 says:
   // attempt to take address of bit-field structure member `Json::Value::type_'
   // Beats me, but a temp solves the problem.
   int temp = other.type_;
   if ( type_ != temp )
      return false;
   switch ( type_ )
   {
   case nullValue:
      return true;
   case intValue:
      return value_.int_ == other.value_.int_;
   case uintValue:
      return value_.uint_ == other.value_.uint_;
   case realValue:
      return value_.real_ == other.value_.real_;
   case booleanValue:
      return value_.bool_ == other.value_.bool_;
   case stringValue:
      return ( value_.string_ == other.value_.string_ )
             || ( other.value_.string_  
                  &&  value_.string_  
                  && strcmp( value_.string_, other.value_.string_ ) == 0 );
#ifndef JSON_VALUE_USE_INTERNAL_MAP
   case arrayValue:
   case objectValue:
      return value_.map_->size() == other.value_.map_->size()
             && (*value_.map_) == (*other.value_.map_);
#else
   case arrayValue:
      return value_.array_->compare( *(other.value_.array_) ) == 0;
   case objectValue:
      return value_.map_->compare( *(other.value_.map_) ) == 0;
#endif
   default:
      JSON_ASSERT_UNREACHABLE;
   }
   return 0;  // unreachable
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x38(%rsp)
movq %rsi, 0x30(%rsp)
movq 0x38(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x30(%rsp), %rcx
movw 0x8(%rcx), %cx
andw $0xff, %cx
movzwl %cx, %ecx
movl %ecx, 0x2c(%rsp)
movw 0x8(%rax), %ax
andw $0xff, %ax
movzwl %ax, %eax
cmpl 0x2c(%rsp), %eax
je 0x121f78
movb $0x0, 0x47(%rsp)
jmp 0x122107
movq 0x20(%rsp), %rax
movzbl 0x8(%rax), %eax
movzwl %ax, %ecx
movq %rcx, 0x18(%rsp)
subw $0x7, %ax
ja 0x122100
movq 0x18(%rsp), %rax
leaq 0x129e1(%rip), %rcx     # 0x134980
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movb $0x1, 0x47(%rsp)
jmp 0x122107
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x30(%rsp), %rcx
cmpq (%rcx), %rax
sete %al
andb $0x1, %al
movb %al, 0x47(%rsp)
jmp 0x122107
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x30(%rsp), %rcx
cmpq (%rcx), %rax
sete %al
andb $0x1, %al
movb %al, 0x47(%rsp)
jmp 0x122107
movq 0x20(%rsp), %rax
movsd (%rax), %xmm0
movq 0x30(%rsp), %rax
ucomisd (%rax), %xmm0
sete %al
setnp %cl
andb %cl, %al
andb $0x1, %al
movb %al, 0x47(%rsp)
jmp 0x122107
movq 0x20(%rsp), %rax
movb (%rax), %al
andb $0x1, %al
movzbl %al, %eax
movq 0x30(%rsp), %rcx
movb (%rcx), %cl
andb $0x1, %cl
movzbl %cl, %ecx
cmpl %ecx, %eax
sete %al
andb $0x1, %al
movb %al, 0x47(%rsp)
jmp 0x122107
movq 0x20(%rsp), %rax
movq (%rax), %rcx
movq 0x30(%rsp), %rdx
movb $0x1, %al
cmpq (%rdx), %rcx
movb %al, 0x17(%rsp)
je 0x12209d
movq 0x30(%rsp), %rcx
xorl %eax, %eax
cmpq $0x0, (%rcx)
movb %al, 0x16(%rsp)
je 0x122095
movq 0x20(%rsp), %rcx
xorl %eax, %eax
cmpq $0x0, (%rcx)
movb %al, 0x16(%rsp)
je 0x122095
movq 0x20(%rsp), %rax
movq (%rax), %rdi
movq 0x30(%rsp), %rax
movq (%rax), %rsi
callq 0x86a60
cmpl $0x0, %eax
sete %al
movb %al, 0x16(%rsp)
movb 0x16(%rsp), %al
movb %al, 0x17(%rsp)
movb 0x17(%rsp), %al
andb $0x1, %al
movb %al, 0x47(%rsp)
jmp 0x122107
movq 0x20(%rsp), %rax
movq (%rax), %rdi
callq 0x1259d0
movq %rax, 0x8(%rsp)
movq 0x30(%rsp), %rax
movq (%rax), %rdi
callq 0x1259d0
movq 0x8(%rsp), %rcx
movq %rax, %rdx
xorl %eax, %eax
cmpq %rdx, %rcx
movb %al, 0x15(%rsp)
jne 0x1220f4
movq 0x20(%rsp), %rax
movq (%rax), %rdi
movq 0x30(%rsp), %rax
movq (%rax), %rsi
callq 0x125a10
movb %al, 0x15(%rsp)
movb 0x15(%rsp), %al
andb $0x1, %al
movb %al, 0x47(%rsp)
jmp 0x122107
jmp 0x122102
movb $0x0, 0x47(%rsp)
movb 0x47(%rsp), %al
andb $0x1, %al
addq $0x48, %rsp
retq
nopw %cs:(%rax,%rax)