// File: /workspace/github_c_makefile_star2_O0/OpenKMIP[P]libkmip/src/kmip.c
// Function: kmip_compare_response_header
int
kmip_compare_response_header(const ResponseHeader *a, const ResponseHeader *b)
{
    if(a != b)
    {
        if((a == NULL) || (b == NULL))
        {
            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_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->nonce != b->nonce)
        {
            if((a->nonce == NULL) || (b->nonce == NULL))
            {
                return(KMIP_FALSE);
            }
            
            if(kmip_compare_nonce(a->nonce, b->nonce) == KMIP_FALSE)
            {
                return(KMIP_FALSE);
            }
        }

        if(a->server_hashed_password != b->server_hashed_password)
        {
            if((a->server_hashed_password == NULL) || (b->server_hashed_password == NULL))
                return(KMIP_FALSE);

            if(kmip_compare_byte_string(a->server_hashed_password, b->server_hashed_password) == 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 0xfcf7
cmpq $0x0, -0x10(%rbp)
je 0xfa4c
cmpq $0x0, -0x18(%rbp)
jne 0xfa58
movl $0x0, -0x4(%rbp)
jmp 0xfcfe
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rcx
cmpq 0x8(%rcx), %rax
je 0xfa76
movl $0x0, -0x4(%rbp)
jmp 0xfcfe
movq -0x10(%rbp), %rax
movl 0x10(%rax), %eax
movq -0x18(%rbp), %rcx
cmpl 0x10(%rcx), %eax
je 0xfa92
movl $0x0, -0x4(%rbp)
jmp 0xfcfe
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x18(%rbp), %rcx
cmpq 0x28(%rcx), %rax
je 0xfab0
movl $0x0, -0x4(%rbp)
jmp 0xfcfe
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq -0x18(%rbp), %rcx
cmpq (%rcx), %rax
je 0xfb06
movq -0x10(%rbp), %rax
cmpq $0x0, (%rax)
je 0xfad4
movq -0x18(%rbp), %rax
cmpq $0x0, (%rax)
jne 0xfae0
movl $0x0, -0x4(%rbp)
jmp 0xfcfe
movq -0x10(%rbp), %rax
movq (%rax), %rdi
movq -0x18(%rbp), %rax
movq (%rax), %rsi
callq 0x6b70
cmpl $0x0, %eax
jne 0xfb04
movl $0x0, -0x4(%rbp)
jmp 0xfcfe
jmp 0xfb06
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x18(%rbp), %rcx
cmpq 0x18(%rcx), %rax
je 0xfb62
movq -0x10(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0xfb2e
movq -0x18(%rbp), %rax
cmpq $0x0, 0x18(%rax)
jne 0xfb3a
movl $0x0, -0x4(%rbp)
jmp 0xfcfe
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rsi
callq 0x65a0
cmpl $0x0, %eax
jne 0xfb60
movl $0x0, -0x4(%rbp)
jmp 0xfcfe
jmp 0xfb62
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rax
movq -0x18(%rbp), %rcx
cmpq 0x40(%rcx), %rax
je 0xfbbe
movq -0x10(%rbp), %rax
cmpq $0x0, 0x40(%rax)
je 0xfb8a
movq -0x18(%rbp), %rax
cmpq $0x0, 0x40(%rax)
jne 0xfb96
movl $0x0, -0x4(%rbp)
jmp 0xfcfe
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rdi
movq -0x18(%rbp), %rax
movq 0x40(%rax), %rsi
callq 0x6430
cmpl $0x0, %eax
jne 0xfbbc
movl $0x0, -0x4(%rbp)
jmp 0xfcfe
jmp 0xfbbe
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movq -0x18(%rbp), %rcx
cmpq 0x20(%rcx), %rax
je 0xfc46
movq -0x10(%rbp), %rax
cmpq $0x0, 0x20(%rax)
je 0xfbe6
movq -0x18(%rbp), %rax
cmpq $0x0, 0x20(%rax)
jne 0xfbf2
movl $0x0, -0x4(%rbp)
jmp 0xfcfe
movq $0x0, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq 0x28(%rcx), %rax
jae 0xfc44
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movq -0x20(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movq -0x18(%rbp), %rcx
movq 0x20(%rcx), %rcx
movq -0x20(%rbp), %rdx
cmpl (%rcx,%rdx,4), %eax
je 0xfc34
movl $0x0, -0x4(%rbp)
jmp 0xfcfe
jmp 0xfc36
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0xfbfa
jmp 0xfc46
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq -0x18(%rbp), %rcx
cmpq 0x30(%rcx), %rax
je 0xfc9f
movq -0x10(%rbp), %rax
cmpq $0x0, 0x30(%rax)
je 0xfc6e
movq -0x18(%rbp), %rax
cmpq $0x0, 0x30(%rax)
jne 0xfc7a
movl $0x0, -0x4(%rbp)
jmp 0xfcfe
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
movq -0x18(%rbp), %rax
movq 0x30(%rax), %rsi
callq 0x64d0
cmpl $0x0, %eax
jne 0xfc9d
movl $0x0, -0x4(%rbp)
jmp 0xfcfe
jmp 0xfc9f
movq -0x10(%rbp), %rax
movq 0x38(%rax), %rax
movq -0x18(%rbp), %rcx
cmpq 0x38(%rcx), %rax
je 0xfcf5
movq -0x10(%rbp), %rax
cmpq $0x0, 0x38(%rax)
je 0xfcc7
movq -0x18(%rbp), %rax
cmpq $0x0, 0x38(%rax)
jne 0xfcd0
movl $0x0, -0x4(%rbp)
jmp 0xfcfe
movq -0x10(%rbp), %rax
movq 0x38(%rax), %rdi
movq -0x18(%rbp), %rax
movq 0x38(%rax), %rsi
callq 0x64d0
cmpl $0x0, %eax
jne 0xfcf3
movl $0x0, -0x4(%rbp)
jmp 0xfcfe
jmp 0xfcf5
jmp 0xfcf7
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)