// File: /workspace/github_c_makefile_star2_O2/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
pushq %rax
movq %rdx, %r13
movl %esi, %ebx
movq %rdi, %r12
leaq 0x7e54(%rip), %rsi      # 0x1d7e4
leaq 0x381a(%rip), %rcx      # 0x191b1
movl %ebx, %edx
movq %r13, %r8
xorl %eax, %eax
callq 0x2200
testq %r13, %r13
je 0x15bac
leal 0x2(%rbx), %ebp
movq (%r13), %rdx
movq %r12, %rdi
movl %ebp, %esi
callq 0x14253
leaq 0x7e38(%rip), %rsi      # 0x1d7fc
leaq 0x37e6(%rip), %rcx      # 0x191b1
movq %r12, %rdi
movl %ebp, %edx
xorl %eax, %eax
callq 0x2200
movl 0x8(%r13), %esi
movq %r12, %rdi
callq 0x14087
pushq $0xa
popq %r14
movl %r14d, %edi
movq %r12, %rsi
callq 0x21b0
movq 0x40(%r13), %rcx
leaq 0x7e1a(%rip), %rdx      # 0x1d817
movq %r12, %rdi
movl %ebp, %esi
callq 0x140e1
movq 0x48(%r13), %rcx
leaq 0x7e1e(%rip), %rdx      # 0x1d830
movq %r12, %rdi
movl %ebp, %esi
callq 0x140e1
leaq 0x7e26(%rip), %rsi      # 0x1d849
movq %r12, %rdi
movl %ebp, %edx
leaq 0x3782(%rip), %r15      # 0x191b1
movq %r15, %rcx
xorl %eax, %eax
callq 0x2200
movl 0xc(%r13), %esi
movq %r12, %rdi
callq 0x140ad
movl %r14d, %edi
movq %r12, %rsi
callq 0x21b0
leaq 0x7e0e(%rip), %rsi      # 0x1d865
movq %r12, %rdi
movl %ebp, %edx
movq %r15, %rcx
xorl %eax, %eax
callq 0x2200
movl 0x2c(%r13), %esi
movq %r12, %rdi
callq 0x140ad
movl %r14d, %edi
movq %r12, %rsi
callq 0x21b0
movq %r13, %r14
movq 0x38(%r13), %r8
leaq 0x7dfd(%rip), %rsi      # 0x1d888
movq %r12, %r15
movq %r12, %rdi
movl %ebp, 0x4(%rsp)
movl %ebp, %edx
leaq 0x3713(%rip), %rcx      # 0x191b1
xorl %eax, %eax
callq 0x2200
addl $0x4, %ebx
leaq 0x7df4(%rip), %r13      # 0x1d8a3
leaq 0x7e06(%rip), %rbp      # 0x1d8bc
xorl %r12d, %r12d
cmpq 0x38(%r14), %r12
jae 0x15add
movq %r15, %rdi
movq %r13, %rsi
movl %ebx, %edx
leaq 0x36e3(%rip), %rcx      # 0x191b1
movq %rbp, %r8
xorl %eax, %eax
callq 0x2200
incq %r12
jmp 0x15ab9
movq 0x10(%r14), %rdx
movq %r15, %rbx
movq %r15, %rdi
movl 0x4(%rsp), %ebp
movl %ebp, %esi
callq 0x1573d
leaq 0x7dc7(%rip), %rsi      # 0x1d8c0
leaq 0x36b1(%rip), %r15      # 0x191b1
movq %rbx, %rdi
movl %ebp, %edx
movq %r15, %rcx
xorl %eax, %eax
callq 0x2200
movl 0x18(%r14), %esi
movq %rbx, %rdi
callq 0x1272e
pushq $0xa
popq %r12
movl %r12d, %edi
movq %rbx, %rsi
callq 0x21b0
leaq 0x7db4(%rip), %rsi      # 0x1d8e5
movq %rbx, %rdi
movl %ebp, %edx
movq %r15, %rcx
xorl %eax, %eax
callq 0x2200
movl 0x1c(%r14), %esi
movq %rbx, %rdi
callq 0x140ad
movl %r12d, %edi
movq %rbx, %rsi
callq 0x21b0
leaq 0x7d9f(%rip), %rsi      # 0x1d8fd
movq %rbx, %rdi
movl %ebp, %edx
movq %r15, %rcx
xorl %eax, %eax
callq 0x2200
movq 0x20(%r14), %rsi
movq %rbx, %rdi
callq 0x14210
movl %r12d, %edi
movq %rbx, %rsi
callq 0x21b0
movl 0x28(%r14), %r8d
leaq 0x7d7e(%rip), %rsi      # 0x1d90d
movq %rbx, %rdi
movl %ebp, %edx
movq %r15, %rcx
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x2200
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq