// File: /workspace/github_c_makefile_star2_O0/OpenKMIP[P]libkmip/src/kmip.c
// Function: kmip_compare_request_header
int
kmip_compare_request_header(const RequestHeader *a, const RequestHeader *b)
{
    if(a != b)
    {
        if((a == NULL) || (b == NULL))
        {
            return(KMIP_FALSE);
        }
        
        if(a->maximum_response_size != b->maximum_response_size)
        {
            return(KMIP_FALSE);
        }
        
        if(a->asynchronous_indicator != b->asynchronous_indicator)
        {
            return(KMIP_FALSE);
        }
        
        if(a->batch_error_continuation_option != b->batch_error_continuation_option)
        {
            return(KMIP_FALSE);
        }
        
        if(a->batch_order_option != b->batch_order_option)
        {
            return(KMIP_FALSE);
        }
        
        if(a->time_stamp != b->time_stamp)
        {
            return(KMIP_FALSE);
        }
        
        if(a->batch_count != b->batch_count)
        {
            return(KMIP_FALSE);
        }
        
        if(a->attestation_capable_indicator != b->attestation_capable_indicator)
        {
            return(KMIP_FALSE);
        }
        
        if(a->attestation_type_count != b->attestation_type_count)
        {
            return(KMIP_FALSE);
        }
        
        if(a->protocol_version != b->protocol_version)
        {
            if((a->protocol_version == NULL) || (b->protocol_version == NULL))
            {
                return(KMIP_FALSE);
            }
            
            if(kmip_compare_protocol_version(a->protocol_version, b->protocol_version) == KMIP_FALSE)
            {
                return(KMIP_FALSE);
            }
        }
        
        if(a->authentication != b->authentication)
        {
            if((a->authentication == NULL) || (b->authentication == NULL))
            {
                return(KMIP_FALSE);
            }
            
            if(kmip_compare_authentication(a->authentication, b->authentication) == KMIP_FALSE)
            {
                return(KMIP_FALSE);
            }
        }
        
        if(a->attestation_types != b->attestation_types)
        {
            if((a->attestation_types == NULL) || (b->attestation_types == NULL))
            {
                return(KMIP_FALSE);
            }
            
            for(size_t i = 0; i < a->attestation_type_count; i++)
            {
                if(a->attestation_types[i] != b->attestation_types[i])
                {
                    return(KMIP_FALSE);
                }
            }
        }
        
        if(a->client_correlation_value != b->client_correlation_value)
        {
            if((a->client_correlation_value == NULL) || (b->client_correlation_value == NULL))
            {
                return(KMIP_FALSE);
            }
            
            if(kmip_compare_text_string(a->client_correlation_value, b->client_correlation_value) == KMIP_FALSE)
            {
                return(KMIP_FALSE);
            }
        }
        
        if(a->server_correlation_value != b->server_correlation_value)
        {
            if((a->server_correlation_value == NULL) || (b->server_correlation_value == NULL))
            {
                return(KMIP_FALSE);
            }
            
            if(kmip_compare_text_string(a->server_correlation_value, b->server_correlation_value) == KMIP_FALSE)
            {
                return(KMIP_FALSE);
            }
        }
    }
    
    return(KMIP_TRUE);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rax
cmpq -0x18(%rbp), %rax
je 0xfa07
cmpq $0x0, -0x10(%rbp)
je 0xf72c
cmpq $0x0, -0x18(%rbp)
jne 0xf738
movl $0x0, -0x4(%rbp)
jmp 0xfa0e
movq -0x10(%rbp), %rax
movl 0x8(%rax), %eax
movq -0x18(%rbp), %rcx
cmpl 0x8(%rcx), %eax
je 0xf754
movl $0x0, -0x4(%rbp)
jmp 0xfa0e
movq -0x10(%rbp), %rax
movl 0xc(%rax), %eax
movq -0x18(%rbp), %rcx
cmpl 0xc(%rcx), %eax
je 0xf770
movl $0x0, -0x4(%rbp)
jmp 0xfa0e
movq -0x10(%rbp), %rax
movl 0x18(%rax), %eax
movq -0x18(%rbp), %rcx
cmpl 0x18(%rcx), %eax
je 0xf78c
movl $0x0, -0x4(%rbp)
jmp 0xfa0e
movq -0x10(%rbp), %rax
movl 0x1c(%rax), %eax
movq -0x18(%rbp), %rcx
cmpl 0x1c(%rcx), %eax
je 0xf7a8
movl $0x0, -0x4(%rbp)
jmp 0xfa0e
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movq -0x18(%rbp), %rcx
cmpq 0x20(%rcx), %rax
je 0xf7c6
movl $0x0, -0x4(%rbp)
jmp 0xfa0e
movq -0x10(%rbp), %rax
movl 0x28(%rax), %eax
movq -0x18(%rbp), %rcx
cmpl 0x28(%rcx), %eax
je 0xf7e2
movl $0x0, -0x4(%rbp)
jmp 0xfa0e
movq -0x10(%rbp), %rax
movl 0x2c(%rax), %eax
movq -0x18(%rbp), %rcx
cmpl 0x2c(%rcx), %eax
je 0xf7fe
movl $0x0, -0x4(%rbp)
jmp 0xfa0e
movq -0x10(%rbp), %rax
movq 0x38(%rax), %rax
movq -0x18(%rbp), %rcx
cmpq 0x38(%rcx), %rax
je 0xf81c
movl $0x0, -0x4(%rbp)
jmp 0xfa0e
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq -0x18(%rbp), %rcx
cmpq (%rcx), %rax
je 0xf872
movq -0x10(%rbp), %rax
cmpq $0x0, (%rax)
je 0xf840
movq -0x18(%rbp), %rax
cmpq $0x0, (%rax)
jne 0xf84c
movl $0x0, -0x4(%rbp)
jmp 0xfa0e
movq -0x10(%rbp), %rax
movq (%rax), %rdi
movq -0x18(%rbp), %rax
movq (%rax), %rsi
callq 0x6b70
cmpl $0x0, %eax
jne 0xf870
movl $0x0, -0x4(%rbp)
jmp 0xfa0e
jmp 0xf872
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rcx
cmpq 0x10(%rcx), %rax
je 0xf8ce
movq -0x10(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0xf89a
movq -0x18(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jne 0xf8a6
movl $0x0, -0x4(%rbp)
jmp 0xfa0e
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rsi
callq 0x69d0
cmpl $0x0, %eax
jne 0xf8cc
movl $0x0, -0x4(%rbp)
jmp 0xfa0e
jmp 0xf8ce
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq -0x18(%rbp), %rcx
cmpq 0x30(%rcx), %rax
je 0xf956
movq -0x10(%rbp), %rax
cmpq $0x0, 0x30(%rax)
je 0xf8f6
movq -0x18(%rbp), %rax
cmpq $0x0, 0x30(%rax)
jne 0xf902
movl $0x0, -0x4(%rbp)
jmp 0xfa0e
movq $0x0, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq 0x38(%rcx), %rax
jae 0xf954
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq -0x20(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movq -0x18(%rbp), %rcx
movq 0x30(%rcx), %rcx
movq -0x20(%rbp), %rdx
cmpl (%rcx,%rdx,4), %eax
je 0xf944
movl $0x0, -0x4(%rbp)
jmp 0xfa0e
jmp 0xf946
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0xf90a
jmp 0xf956
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rax
movq -0x18(%rbp), %rcx
cmpq 0x40(%rcx), %rax
je 0xf9af
movq -0x10(%rbp), %rax
cmpq $0x0, 0x40(%rax)
je 0xf97e
movq -0x18(%rbp), %rax
cmpq $0x0, 0x40(%rax)
jne 0xf98a
movl $0x0, -0x4(%rbp)
jmp 0xfa0e
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rdi
movq -0x18(%rbp), %rax
movq 0x40(%rax), %rsi
callq 0x64d0
cmpl $0x0, %eax
jne 0xf9ad
movl $0x0, -0x4(%rbp)
jmp 0xfa0e
jmp 0xf9af
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq -0x18(%rbp), %rcx
cmpq 0x48(%rcx), %rax
je 0xfa05
movq -0x10(%rbp), %rax
cmpq $0x0, 0x48(%rax)
je 0xf9d7
movq -0x18(%rbp), %rax
cmpq $0x0, 0x48(%rax)
jne 0xf9e0
movl $0x0, -0x4(%rbp)
jmp 0xfa0e
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rdi
movq -0x18(%rbp), %rax
movq 0x48(%rax), %rsi
callq 0x64d0
cmpl $0x0, %eax
jne 0xfa03
movl $0x0, -0x4(%rbp)
jmp 0xfa0e
jmp 0xfa05
jmp 0xfa07
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)