// File: /workspace/github_c_makefile_star2_O2/OpenKMIP[P]libkmip/src/kmip_io.c
// Function: kmip_print_attribute_value
void
kmip_print_attribute_value(FILE *f, int indent, enum attribute_type type, void *value)
{
    fprintf(f, "%*sAttribute Value: ", indent, "");
    
    switch(type)
    {
        case KMIP_ATTR_APPLICATION_SPECIFIC_INFORMATION:
        {
            fprintf(f, "\n");
            kmip_print_application_specific_information(f, indent + 2, value);
        }
        break;

        case KMIP_ATTR_UNIQUE_IDENTIFIER:
        fprintf(f, "\n");
        kmip_print_text_string(f, indent + 2, "Unique Identifier", value);
        break;
        
        case KMIP_ATTR_NAME:
        fprintf(f, "\n");
        kmip_print_name(f, indent + 2, value);
        break;
        
        case KMIP_ATTR_OBJECT_TYPE:
        kmip_print_object_type_enum(f, *(enum object_type *)value);
        fprintf(f, "\n");
        break;
        
        case KMIP_ATTR_CRYPTOGRAPHIC_ALGORITHM:
        kmip_print_cryptographic_algorithm_enum(f, *(enum cryptographic_algorithm *)value);
        fprintf(f, "\n");
        break;
        
        case KMIP_ATTR_CRYPTOGRAPHIC_LENGTH:
        fprintf(f, "%d\n", *(int32 *)value);
        break;
        
        case KMIP_ATTR_OPERATION_POLICY_NAME:
        fprintf(f, "\n");
        kmip_print_text_string(f, indent + 2, "Operation Policy Name", value);
        break;
        
        case KMIP_ATTR_CRYPTOGRAPHIC_USAGE_MASK:
        kmip_print_cryptographic_usage_mask_enums(f, indent + 2, *(int32 *)value);
        break;
        
        case KMIP_ATTR_STATE:
        kmip_print_state_enum(f, *(enum state *)value);
        fprintf(f, "\n");
        break;

        case KMIP_ATTR_OBJECT_GROUP:
        {
            fprintf(f, "\n");
            kmip_print_text_string(f, indent + 2, "Object Group", value);
        }
        break;

        case KMIP_ATTR_ACTIVATION_DATE:
        case KMIP_ATTR_DEACTIVATION_DATE:
        case KMIP_ATTR_PROCESS_START_DATE:
        case KMIP_ATTR_PROTECT_STOP_DATE:
        {
            fprintf(f, "\n");
            kmip_print_date_time(f, *(int64 *)value);
        } break;

        case KMIP_ATTR_CRYPTOGRAPHIC_PARAMETERS:
        {
            fprintf(f, "\n");
            kmip_print_cryptographic_parameters(f, indent + 2, value);
        } break;

        default:
        fprintf(f, "Unknown\n");
        break;
    };
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rcx, %r14
movl %edx, %r15d
movl %esi, %ebp
movq %rdi, %rbx
leaq 0x89c5(%rip), %rsi      # 0x1d302
leaq 0x486d(%rip), %rcx      # 0x191b1
movl %ebp, %edx
xorl %eax, %eax
callq 0x2200
cmpl $0xe, %r15d
ja 0x14a89
movl %r15d, %eax
leaq 0x7003(%rip), %rcx      # 0x1b964
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
pushq $0xa
popq %rdi
movq %rbx, %rsi
callq 0x21b0
movq (%r14), %rsi
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x14210
pushq $0xa
popq %rdi
movq %rbx, %rsi
callq 0x21b0
addl $0x2, %ebp
movq %rbx, %rdi
movl %ebp, %esi
movq %r14, %rdx
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x14418
movl (%r14), %edx
leaq 0x47c4(%rip), %rsi      # 0x1917d
movq %rbx, %rdi
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x2200
pushq $0xa
popq %rdi
movq %rbx, %rsi
callq 0x21b0
addl $0x2, %ebp
leaq 0x516a(%rip), %rdx      # 0x19b4c
jmp 0x14a72
movl (%r14), %esi
movq %rbx, %rdi
callq 0x12e08
jmp 0x14a0c
movl (%r14), %esi
movq %rbx, %rdi
callq 0x13038
jmp 0x14a0c
movl (%r14), %esi
movq %rbx, %rdi
callq 0x1341c
pushq $0xa
popq %rdi
movq %rbx, %rsi
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x21b0
pushq $0xa
popq %rdi
movq %rbx, %rsi
callq 0x21b0
addl $0x2, %ebp
leaq 0x50a0(%rip), %rdx      # 0x19ad6
jmp 0x14a72
pushq $0xa
popq %rdi
movq %rbx, %rsi
callq 0x21b0
addl $0x2, %ebp
movq %rbx, %rdi
movl %ebp, %esi
movq %r14, %rdx
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x142d6
pushq $0xa
popq %rdi
movq %rbx, %rsi
callq 0x21b0
addl $0x2, %ebp
leaq 0x50a3(%rip), %rdx      # 0x19b15
movq %rbx, %rdi
movl %ebp, %esi
movq %r14, %rcx
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x140e1
leaq 0x8887(%rip), %rdi      # 0x1d317
pushq $0x8
popq %rsi
pushq $0x1
popq %rdx
movq %rbx, %rcx
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x2240
addl $0x2, %ebp
movl (%r14), %edx
movq %rbx, %rdi
movl %ebp, %esi
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x13ad8
pushq $0xa
popq %rdi
movq %rbx, %rsi
callq 0x21b0
addl $0x2, %ebp
movq %rbx, %rdi
movl %ebp, %esi
movq %r14, %rdx
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x143b5