// 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
{
   int typeDelta = type_ - other.type_;
   if ( typeDelta )
      return typeDelta < 0 ? true : false;
   switch ( type_ )
   {
   case nullValue:
      return false;
   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_ == 0  &&  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:
      {
         int delta = int( value_.map_->size() - other.value_.map_->size() );
         if ( delta )
            return delta < 0;
         return (*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)
movw 0x8(%rax), %ax
andw $0xff, %ax
movzwl %ax, %eax
movq 0x30(%rsp), %rcx
movw 0x8(%rcx), %cx
andw $0xff, %cx
movzwl %cx, %ecx
subl %ecx, %eax
movl %eax, 0x2c(%rsp)
cmpl $0x0, 0x2c(%rsp)
je 0x121cf3
movl 0x2c(%rsp), %eax
sarl $0x1f, %eax
andb $0x1, %al
movb %al, 0x47(%rsp)
jmp 0x121e90
movq 0x20(%rsp), %rax
movzbl 0x8(%rax), %eax
movzwl %ax, %ecx
movq %rcx, 0x18(%rsp)
subw $0x7, %ax
ja 0x121e89
movq 0x18(%rsp), %rax
leaq 0x12c46(%rip), %rcx     # 0x134960
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movb $0x0, 0x47(%rsp)
jmp 0x121e90
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x30(%rsp), %rcx
cmpq (%rcx), %rax
setl %al
andb $0x1, %al
movb %al, 0x47(%rsp)
jmp 0x121e90
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x30(%rsp), %rcx
cmpq (%rcx), %rax
setb %al
andb $0x1, %al
movb %al, 0x47(%rsp)
jmp 0x121e90
movq 0x20(%rsp), %rax
movsd (%rax), %xmm1
movq 0x30(%rsp), %rax
movsd (%rax), %xmm0
ucomisd %xmm1, %xmm0
seta %al
andb $0x1, %al
movb %al, 0x47(%rsp)
jmp 0x121e90
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
setl %al
andb $0x1, %al
movb %al, 0x47(%rsp)
jmp 0x121e90
movq 0x20(%rsp), %rax
cmpq $0x0, (%rax)
jne 0x121dd2
movq 0x30(%rsp), %rcx
movb $0x1, %al
cmpq $0x0, (%rcx)
movb %al, 0x17(%rsp)
jne 0x121e1b
movq 0x30(%rsp), %rcx
xorl %eax, %eax
cmpq $0x0, (%rcx)
movb %al, 0x16(%rsp)
je 0x121e13
movq 0x20(%rsp), %rcx
xorl %eax, %eax
cmpq $0x0, (%rcx)
movb %al, 0x16(%rsp)
je 0x121e13
movq 0x20(%rsp), %rax
movq (%rax), %rdi
movq 0x30(%rsp), %rax
movq (%rax), %rsi
callq 0x86a60
cmpl $0x0, %eax
setl %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 0x121e90
movq 0x20(%rsp), %rax
movq (%rax), %rdi
callq 0x1259d0
movq %rax, 0x8(%rsp)
movq 0x30(%rsp), %rax
movq (%rax), %rdi
callq 0x1259d0
movq %rax, %rcx
movq 0x8(%rsp), %rax
subq %rcx, %rax
movl %eax, 0x28(%rsp)
cmpl $0x0, 0x28(%rsp)
je 0x121e6c
cmpl $0x0, 0x28(%rsp)
setl %al
andb $0x1, %al
movb %al, 0x47(%rsp)
jmp 0x121e90
movq 0x20(%rsp), %rax
movq (%rax), %rdi
movq 0x30(%rsp), %rax
movq (%rax), %rsi
callq 0x1259e0
andb $0x1, %al
movb %al, 0x47(%rsp)
jmp 0x121e90
jmp 0x121e8b
movb $0x0, 0x47(%rsp)
movb 0x47(%rsp), %al
andb $0x1, %al
addq $0x48, %rsp
retq
nopl (%rax,%rax)