// File: /workspace/github_c_makefile_star2_O3/OpenKMIP[P]libkmip/src/kmip_io.c
// Function: kmip_print_request_header
void
kmip_print_request_header(FILE *f, int indent, RequestHeader *value)
{
    fprintf(f, "%*sRequest Header @ %p\n", indent, "", (void *)value);

    if(value != NULL)
    {
        kmip_print_protocol_version(f, indent + 2, value->protocol_version);

        fprintf(f, "%*sMaximum Response Size: ", indent + 2, "");
        kmip_print_integer(f, value->maximum_response_size);
        fprintf(f, "\n");

        kmip_print_text_string(f, indent + 2, "Client Correlation Value", value->client_correlation_value);
        kmip_print_text_string(f, indent + 2, "Server Correlation Value", value->server_correlation_value);
        fprintf(f, "%*sAsynchronous Indicator: ", indent + 2, "");
        kmip_print_bool(f, value->asynchronous_indicator);
        fprintf(f, "\n");
        fprintf(f, "%*sAttestation Capable Indicator: ", indent + 2, "");
        kmip_print_bool(f, value->attestation_capable_indicator);
        fprintf(f, "\n");
        fprintf(f, "%*sAttestation Types: %zu\n", indent + 2, "", value->attestation_type_count);
        for(size_t i = 0; i < value->attestation_type_count; i++)
        {
            /* TODO (ph) Add enum value -> string functionality. */
            fprintf(f, "%*sAttestation Type: %s\n", indent + 4, "", "???");
        }
        kmip_print_authentication(f, indent + 2, value->authentication);
        fprintf(f, "%*sBatch Error Continuation Option: ", indent + 2, "");
        kmip_print_batch_error_continuation_option(f, value->batch_error_continuation_option);
        fprintf(f, "\n");
        fprintf(f, "%*sBatch Order Option: ", indent + 2, "");
        kmip_print_bool(f, value->batch_order_option);
        fprintf(f, "\n");
        fprintf(f, "%*sTime Stamp: ", indent + 2, "");
        kmip_print_date_time(f, value->time_stamp);
        fprintf(f, "\n");
        fprintf(f, "%*sBatch Count: %d\n", indent + 2, "", value->batch_count);
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdx, %r14
movl %esi, %edx
movq %rdi, %rbx
leaq 0x9408(%rip), %rsi      # 0x25ed4
leaq 0x36de(%rip), %rcx      # 0x201b1
movq %rdx, 0x8(%rsp)
movq %r14, %r8
xorl %eax, %eax
callq 0x2200
testq %r14, %r14
je 0x1ccf7
movq 0x8(%rsp), %rax
leal 0x2(%rax), %ebp
movq (%r14), %rdx
movq %rbx, %rdi
movl %ebp, %esi
callq 0x1b2dc
leaq 0x93e5(%rip), %rsi      # 0x25eec
leaq 0x36a3(%rip), %r12      # 0x201b1
movq %rbx, %rdi
movl %ebp, %edx
movq %r12, %rcx
xorl %eax, %eax
callq 0x2200
movl 0x8(%r14), %esi
movq %rbx, %rdi
callq 0x1b0fc
movl $0xa, %edi
movq %rbx, %rsi
callq 0x21b0
movq 0x40(%r14), %rcx
leaq 0x93c6(%rip), %rdx      # 0x25f07
movq %rbx, %rdi
movl %ebp, %esi
callq 0x1b161
movq 0x48(%r14), %rcx
leaq 0x93ca(%rip), %rdx      # 0x25f20
movq %rbx, %rdi
movl %ebp, %esi
callq 0x1b161
leaq 0x93d2(%rip), %rsi      # 0x25f39
movq %rbx, %rdi
movl %ebp, %edx
movq %r12, %rcx
xorl %eax, %eax
callq 0x2200
movl 0xc(%r14), %esi
movq %rbx, %rdi
callq 0x1b124
movl $0xa, %edi
movq %rbx, %rsi
callq 0x21b0
leaq 0x93bf(%rip), %rsi      # 0x25f55
movq %rbx, %rdi
movl %ebp, %edx
movq %r12, %rcx
xorl %eax, %eax
callq 0x2200
movl 0x2c(%r14), %esi
movq %rbx, %rdi
callq 0x1b124
movl $0xa, %edi
movq %rbx, %rsi
callq 0x21b0
movq 0x38(%r14), %r8
leaq 0x93af(%rip), %rsi      # 0x25f78
movq %rbx, %rdi
movl %ebp, 0x14(%rsp)
movl %ebp, %edx
movq %r12, %rcx
xorl %eax, %eax
callq 0x2200
cmpq $0x0, 0x38(%r14)
je 0x1cc29
movq 0x8(%rsp), %rax
addl $0x4, %eax
movq %rax, 0x8(%rsp)
leaq 0x939c(%rip), %r12      # 0x25f93
leaq 0x35b3(%rip), %r13      # 0x201b1
leaq 0x93a7(%rip), %rbp      # 0x25fac
xorl %r15d, %r15d
movq %rbx, %rdi
movq %r12, %rsi
movq 0x8(%rsp), %rdx
movq %r13, %rcx
movq %rbp, %r8
xorl %eax, %eax
callq 0x2200
incq %r15
cmpq 0x38(%r14), %r15
jb 0x1cc08
movq 0x10(%r14), %rdx
movq %rbx, %rdi
movl 0x14(%rsp), %ebp
movl %ebp, %esi
callq 0x1c861
leaq 0x936e(%rip), %rsi      # 0x25fb0
leaq 0x3568(%rip), %r15      # 0x201b1
movq %rbx, %rdi
movl %ebp, %edx
movq %r15, %rcx
xorl %eax, %eax
callq 0x2200
movl 0x18(%r14), %esi
movq %rbx, %rdi
callq 0x19559
movl $0xa, %edi
movq %rbx, %rsi
callq 0x21b0
leaq 0x935d(%rip), %rsi      # 0x25fd5
movq %rbx, %rdi
movl %ebp, %edx
movq %r15, %rcx
xorl %eax, %eax
callq 0x2200
movl 0x1c(%r14), %esi
movq %rbx, %rdi
callq 0x1b124
movl $0xa, %edi
movq %rbx, %rsi
callq 0x21b0
leaq 0x9346(%rip), %rsi      # 0x25fed
movq %rbx, %rdi
movl %ebp, %edx
movq %r15, %rcx
xorl %eax, %eax
callq 0x2200
movq 0x20(%r14), %rsi
movq %rbx, %rdi
callq 0x1b297
movl $0xa, %edi
movq %rbx, %rsi
callq 0x21b0
movl 0x28(%r14), %r8d
leaq 0x9323(%rip), %rsi      # 0x25ffd
movq %rbx, %rdi
movl %ebp, %edx
movq %r15, %rcx
xorl %eax, %eax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x2200
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq