// File: /workspace/github_c_makefile_star2_O0/OpenKMIP[P]libkmip/src/kmip.c
// Function: kmip_decode_attribute_v1
int
kmip_decode_attribute_v1(KMIP *ctx, Attribute *value)
{
    CHECK_BUFFER_FULL(ctx, 8);
    
    kmip_init_attribute(value);
    
    int result = 0;
    int32 tag_type = 0;
    uint32 length = 0;
    
    kmip_decode_int32_be(ctx, &tag_type);
    CHECK_TAG_TYPE(ctx, tag_type, KMIP_TAG_ATTRIBUTE, KMIP_TYPE_STRUCTURE);
    
    kmip_decode_length(ctx, &length);
    CHECK_BUFFER_FULL(ctx, length);
    
    result = kmip_decode_attribute_name(ctx, &value->type);
    CHECK_RESULT(ctx, result);
    
    if(kmip_is_tag_next(ctx, KMIP_TAG_ATTRIBUTE_INDEX))
    {
        result = kmip_decode_integer(ctx, KMIP_TAG_ATTRIBUTE_INDEX, &value->index);
        CHECK_RESULT(ctx, result);
    }
    
    uint8 *curr_index = 0;
    uint8 *tag_index = ctx->index;
    enum tag t = KMIP_TAG_ATTRIBUTE_VALUE;
    
    switch(value->type)
    {
        case KMIP_ATTR_APPLICATION_SPECIFIC_INFORMATION:
        {
            /* TODO (ph) Like encoding, this is messy. Better solution? */
            if(kmip_is_tag_type_next(ctx, KMIP_TAG_ATTRIBUTE_VALUE, KMIP_TYPE_STRUCTURE))
            {
                /* NOTE (ph) Decoding structures will fail if the structure tag */
                /* is not present in the encoding. Temporarily swap the tags, */
                /* decode the structure, and then swap the tags back to */
                /* preserve the encoding. The tag/type check above guarantees */
                /* space exists for this to succeed. */
                kmip_encode_int32_be(ctx, TAG_TYPE(KMIP_TAG_APPLICATION_SPECIFIC_INFORMATION, KMIP_TYPE_STRUCTURE));
                ctx->index = tag_index;
                value->value = ctx->calloc_func(ctx->state, 1, sizeof(ApplicationSpecificInformation));
                CHECK_NEW_MEMORY(ctx, value->value, sizeof(ApplicationSpecificInformation), "ApplicationSpecificInformation structure");
                result = kmip_decode_application_specific_information(ctx, (ApplicationSpecificInformation*)value->value);

                curr_index = ctx->index;
                ctx->index = tag_index;

                kmip_encode_int32_be(ctx, TAG_TYPE(KMIP_TAG_ATTRIBUTE_VALUE, KMIP_TYPE_STRUCTURE));
                ctx->index = curr_index;
            }
            else
            {
                result = KMIP_TAG_MISMATCH;
            }

            CHECK_RESULT(ctx, result);
        }
        break;

        case KMIP_ATTR_UNIQUE_IDENTIFIER:
        value->value = ctx->calloc_func(ctx->state, 1, sizeof(TextString));
        CHECK_NEW_MEMORY(ctx, value->value, sizeof(TextString), "UniqueIdentifier text string");
        result = kmip_decode_text_string(ctx, t, (TextString*)value->value);
        CHECK_RESULT(ctx, result);
        break;
        
        case KMIP_ATTR_NAME:
        {
            /* TODO (ph) Like encoding, this is messy. Better solution? */
            if(kmip_is_tag_type_next(ctx, KMIP_TAG_ATTRIBUTE_VALUE, KMIP_TYPE_STRUCTURE))
            {
                /* NOTE (ph) Decoding structures will fail if the structure tag */
                /* is not present in the encoding. Temporarily swap the tags, */
                /* decode the structure, and then swap the tags back to */
                /* preserve the encoding. The tag/type check above guarantees */
                /* space exists for this to succeed. */
                kmip_encode_int32_be(ctx, TAG_TYPE(KMIP_TAG_NAME, KMIP_TYPE_STRUCTURE));
                ctx->index = tag_index;
                value->value = ctx->calloc_func(ctx->state, 1, sizeof(Name));
                CHECK_NEW_MEMORY(ctx, value->value, sizeof(Name), "Name structure");
                result = kmip_decode_name(ctx, (Name*)value->value);

                curr_index = ctx->index;
                ctx->index = tag_index;

                kmip_encode_int32_be(ctx, TAG_TYPE(KMIP_TAG_ATTRIBUTE_VALUE, KMIP_TYPE_STRUCTURE));
                ctx->index = curr_index;
            }
            else
            {
                result = KMIP_TAG_MISMATCH;
            }

            CHECK_RESULT(ctx, result);
        }
        break;

        case KMIP_ATTR_CRYPTOGRAPHIC_PARAMETERS:
        {
            /* TODO (ph) Like encoding, this is messy. Better solution? */
            if(kmip_is_tag_type_next(ctx, KMIP_TAG_ATTRIBUTE_VALUE, KMIP_TYPE_STRUCTURE))
            {
                /* NOTE (ph) Decoding structures will fail if the structure tag */
                /* is not present in the encoding. Temporarily swap the tags, */
                /* decode the structure, and then swap the tags back to */
                /* preserve the encoding. The tag/type check above guarantees */
                /* space exists for this to succeed. */
                kmip_encode_int32_be(ctx, TAG_TYPE(KMIP_TAG_CRYPTOGRAPHIC_PARAMETERS, KMIP_TYPE_STRUCTURE));
                ctx->index = tag_index;
                value->value = ctx->calloc_func(ctx->state, 1, sizeof(CryptographicParameters));
                CHECK_NEW_MEMORY(ctx, value->value, sizeof(CryptographicParameters), "CryptographicParameters structure");
                kmip_init_cryptographic_parameters((CryptographicParameters*)value->value);
                result = kmip_decode_cryptographic_parameters(ctx, (CryptographicParameters*)value->value);

                curr_index = ctx->index;
                ctx->index = tag_index;

                kmip_encode_int32_be(ctx, TAG_TYPE(KMIP_TAG_ATTRIBUTE_VALUE, KMIP_TYPE_STRUCTURE));
                ctx->index = curr_index;
            }
            else
            {
                result = KMIP_TAG_MISMATCH;
            }

            CHECK_RESULT(ctx, result);
        } break;

        case KMIP_ATTR_OBJECT_TYPE:
        value->value = ctx->calloc_func(ctx->state, 1, sizeof(int32));
        CHECK_NEW_MEMORY(ctx, value->value, sizeof(int32), "ObjectType enumeration");
        result = kmip_decode_enum(ctx, t, (int32 *)value->value);
        CHECK_RESULT(ctx, result);
        CHECK_ENUM(ctx, KMIP_TAG_OBJECT_TYPE, *(int32 *)value->value);
        break;
        
        case KMIP_ATTR_CRYPTOGRAPHIC_ALGORITHM:
        value->value = ctx->calloc_func(ctx->state, 1, sizeof(int32));
        CHECK_NEW_MEMORY(ctx, value->value, sizeof(int32), "CryptographicAlgorithm enumeration");
        result = kmip_decode_enum(ctx, t, (int32 *)value->value);
        CHECK_RESULT(ctx, result);
        CHECK_ENUM(ctx, KMIP_TAG_CRYPTOGRAPHIC_ALGORITHM, *(int32 *)value->value);
        break;
        
        case KMIP_ATTR_CRYPTOGRAPHIC_LENGTH:
        value->value = ctx->calloc_func(ctx->state, 1, sizeof(int32));
        CHECK_NEW_MEMORY(ctx, value->value, sizeof(int32), "CryptographicLength integer");
        result = kmip_decode_integer(ctx, t, (int32 *)value->value);
        CHECK_RESULT(ctx, result);
        break;
        
        case KMIP_ATTR_OPERATION_POLICY_NAME:
        value->value = ctx->calloc_func(ctx->state, 1, sizeof(TextString));
        CHECK_NEW_MEMORY(ctx, value->value, sizeof(TextString), "OperationPolicyName text string");
        result = kmip_decode_text_string(ctx, t, (TextString*)value->value);
        CHECK_RESULT(ctx, result);
        break;
        
        case KMIP_ATTR_CRYPTOGRAPHIC_USAGE_MASK:
        value->value = ctx->calloc_func(ctx->state, 1, sizeof(int32));
        CHECK_NEW_MEMORY(ctx, value->value, sizeof(int32), "CryptographicUsageMask integer");
        result = kmip_decode_integer(ctx, t, (int32 *)value->value);
        CHECK_RESULT(ctx, result);
        break;
        
        case KMIP_ATTR_STATE:
        value->value = ctx->calloc_func(ctx->state, 1, sizeof(int32));
        CHECK_NEW_MEMORY(ctx, value->value, sizeof(int32), "State enumeration");
        result = kmip_decode_enum(ctx, t, (int32 *)value->value);
        CHECK_RESULT(ctx, result);
        CHECK_ENUM(ctx, KMIP_TAG_STATE, *(int32 *)value->value);
        break;

        case KMIP_ATTR_OBJECT_GROUP:
        {
            value->value = ctx->calloc_func(ctx->state, 1, sizeof(TextString));
            CHECK_NEW_MEMORY(ctx, value->value, sizeof(TextString), "ObjectGroup text string");
            result = kmip_decode_text_string(ctx, t, (TextString*)value->value);
            CHECK_RESULT(ctx, result);
        }
        break;

        case KMIP_ATTR_ACTIVATION_DATE:
        {
            value->value = ctx->calloc_func(ctx->state, 1, sizeof(int64));
            CHECK_NEW_MEMORY(ctx, value->value, sizeof(int64), "ActivationDate date time");

            result = kmip_decode_date_time(ctx, t, (int64*)value->value);
            CHECK_RESULT(ctx, result);
        } break;

        case KMIP_ATTR_DEACTIVATION_DATE:
        {
            value->value = ctx->calloc_func(ctx->state, 1, sizeof(int64));
            CHECK_NEW_MEMORY(ctx, value->value, sizeof(int64), "DeactivationDate date time");

            result = kmip_decode_date_time(ctx, t, (int64*)value->value);
            CHECK_RESULT(ctx, result);
        } break;

        case KMIP_ATTR_PROCESS_START_DATE:
        {
            value->value = ctx->calloc_func(ctx->state, 1, sizeof(int64));
            CHECK_NEW_MEMORY(ctx, value->value, sizeof(int64), "ProcessStartDate date time");

            result = kmip_decode_date_time(ctx, t, (int64*)value->value);
            CHECK_RESULT(ctx, result);
        } break;

        case KMIP_ATTR_PROTECT_STOP_DATE:
        {
            value->value = ctx->calloc_func(ctx->state, 1, sizeof(int64));
            CHECK_NEW_MEMORY(ctx, value->value, sizeof(int64), "ProtectStopDate date time");

            result = kmip_decode_date_time(ctx, t, (int64*)value->value);
            CHECK_RESULT(ctx, result);
        } break;

        default:
        kmip_push_error_frame(ctx, __func__, __LINE__);
        return(KMIP_ERROR_ATTR_UNSUPPORTED);
        break;
    };
    CHECK_RESULT(ctx, result);
    
    return(KMIP_OK);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x8(%rcx), %rcx
movq -0x10(%rbp), %rdx
movq (%rdx), %rdx
subq %rdx, %rcx
subq %rcx, %rax
cmpq $0x8, %rax
jae 0x181a4
movq -0x10(%rbp), %rdi
leaq 0xd2ad(%rip), %rsi      # 0x2543b
movl $0x22a8, %edx           # imm = 0x22A8
callq 0x6f20
movl $0xfffffffe, -0x4(%rbp) # imm = 0xFFFFFFFE
jmp 0x190af
jmp 0x181a6
movq -0x18(%rbp), %rdi
callq 0x6930
movl $0x0, -0x1c(%rbp)
movl $0x0, -0x20(%rbp)
movl $0x0, -0x24(%rbp)
movq -0x10(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x6b10
movl -0x20(%rbp), %eax
sarl $0x8, %eax
cmpl $0x420008, %eax         # imm = 0x420008
je 0x181ff
movq -0x10(%rbp), %rdi
leaq 0xd252(%rip), %rsi      # 0x2543b
movl $0x22b1, %edx           # imm = 0x22B1
callq 0x6f20
movl $0xfffffffc, -0x4(%rbp) # imm = 0xFFFFFFFC
jmp 0x190af
movl -0x20(%rbp), %eax
andl $0xff, %eax
cmpl $0x1, %eax
je 0x1822d
movq -0x10(%rbp), %rdi
leaq 0xd224(%rip), %rsi      # 0x2543b
movl $0x22b1, %edx           # imm = 0x22B1
callq 0x6f20
movl $0xfffffffb, -0x4(%rbp) # imm = 0xFFFFFFFB
jmp 0x190af
jmp 0x1822f
jmp 0x18231
movq -0x10(%rbp), %rdi
leaq -0x24(%rbp), %rsi
callq 0x6520
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x8(%rcx), %rcx
movq -0x10(%rbp), %rdx
movq (%rdx), %rdx
subq %rdx, %rcx
subq %rcx, %rax
movl -0x24(%rbp), %ecx
cmpq %rcx, %rax
jae 0x18284
movq -0x10(%rbp), %rdi
leaq 0xd1cd(%rip), %rsi      # 0x2543b
movl $0x22b4, %edx           # imm = 0x22B4
callq 0x6f20
movl $0xfffffffe, -0x4(%rbp) # imm = 0xFFFFFFFE
jmp 0x190af
jmp 0x18286
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x6cf0
movl %eax, -0x1c(%rbp)
cmpl $0x0, -0x1c(%rbp)
je 0x182bc
movq -0x10(%rbp), %rdi
leaq 0xd194(%rip), %rsi      # 0x2543b
movl $0x22b7, %edx           # imm = 0x22B7
callq 0x6f20
movl -0x1c(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x190af
jmp 0x182be
movq -0x10(%rbp), %rdi
movl $0x420009, %esi         # imm = 0x420009
callq 0x6300
cmpl $0x0, %eax
je 0x18314
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rdx
addq $0x4, %rdx
movl $0x420009, %esi         # imm = 0x420009
callq 0x60e0
movl %eax, -0x1c(%rbp)
cmpl $0x0, -0x1c(%rbp)
je 0x18310
movq -0x10(%rbp), %rdi
leaq 0xd140(%rip), %rsi      # 0x2543b
movl $0x22bc, %edx           # imm = 0x22BC
callq 0x6f20
movl -0x1c(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x190af
jmp 0x18312
jmp 0x18314
movq $0x0, -0x30(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x38(%rbp)
movl $0x42000b, -0x3c(%rbp)  # imm = 0x42000B
movq -0x18(%rbp), %rax
movl (%rax), %eax
movq %rax, -0x50(%rbp)
subq $0xe, %rax
ja 0x19063
movq -0x50(%rbp), %rax
leaq 0xc65a(%rip), %rcx      # 0x249a8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x10(%rbp), %rdi
movl $0x42000b, %esi         # imm = 0x42000B
movl $0x1, %edx
callq 0x68c0
cmpl $0x0, %eax
je 0x18445
movq -0x10(%rbp), %rdi
movl $0x42000401, %esi       # imm = 0x42000401
callq 0x60b0
movq -0x38(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
movq 0x868(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x890(%rcx), %rdi
movl $0x1, %esi
movl $0x10, %edx
callq *%rax
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x18(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x183fb
movq -0x10(%rbp), %rdi
movl $0x10, %esi
leaq 0xd07f(%rip), %rdx      # 0x25454
callq 0x6cd0
movq -0x10(%rbp), %rdi
leaq 0xd056(%rip), %rsi      # 0x2543b
movl $0x22d2, %edx           # imm = 0x22D2
callq 0x6f20
movl $0xfffffff4, -0x4(%rbp) # imm = 0xFFFFFFF4
jmp 0x190af
jmp 0x183fd
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x67b0
movl %eax, -0x1c(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x38(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rdi
movl $0x42000b01, %esi       # imm = 0x42000B01
callq 0x60b0
movq -0x30(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x8(%rax)
jmp 0x1844c
movl $0xfffffffc, -0x1c(%rbp) # imm = 0xFFFFFFFC
jmp 0x1844e
cmpl $0x0, -0x1c(%rbp)
je 0x18474
movq -0x10(%rbp), %rdi
leaq 0xcfdc(%rip), %rsi      # 0x2543b
movl $0x22e0, %edx           # imm = 0x22E0
callq 0x6f20
movl -0x1c(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x190af
jmp 0x18476
jmp 0x19081
movq -0x10(%rbp), %rax
movq 0x868(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x890(%rcx), %rdi
movl $0x1, %esi
movl $0x10, %edx
callq *%rax
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x18(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x184e9
movq -0x10(%rbp), %rdi
movl $0x10, %esi
leaq 0xcfba(%rip), %rdx      # 0x2547d
callq 0x6cd0
movq -0x10(%rbp), %rdi
leaq 0xcf68(%rip), %rsi      # 0x2543b
movl $0x22e6, %edx           # imm = 0x22E6
callq 0x6f20
movl $0xfffffff4, -0x4(%rbp) # imm = 0xFFFFFFF4
jmp 0x190af
jmp 0x184eb
movq -0x10(%rbp), %rdi
movl -0x3c(%rbp), %esi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rdx
callq 0x65b0
movl %eax, -0x1c(%rbp)
cmpl $0x0, -0x1c(%rbp)
je 0x18528
movq -0x10(%rbp), %rdi
leaq 0xcf28(%rip), %rsi      # 0x2543b
movl $0x22e8, %edx           # imm = 0x22E8
callq 0x6f20
movl -0x1c(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x190af
jmp 0x1852a
jmp 0x19081
movq -0x10(%rbp), %rdi
movl $0x42000b, %esi         # imm = 0x42000B
movl $0x1, %edx
callq 0x68c0
cmpl $0x0, %eax
je 0x1861d
movq -0x10(%rbp), %rdi
movl $0x42005301, %esi       # imm = 0x42005301
callq 0x60b0
movq -0x38(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
movq 0x868(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x890(%rcx), %rdi
movl $0x1, %esi
movl $0x10, %edx
callq *%rax
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x18(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x185d3
movq -0x10(%rbp), %rdi
movl $0x10, %esi
leaq 0xceed(%rip), %rdx      # 0x2549a
callq 0x6cd0
movq -0x10(%rbp), %rdi
leaq 0xce7e(%rip), %rsi      # 0x2543b
movl $0x22f8, %edx           # imm = 0x22F8
callq 0x6f20
movl $0xfffffff4, -0x4(%rbp) # imm = 0xFFFFFFF4
jmp 0x190af
jmp 0x185d5
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x6f00
movl %eax, -0x1c(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x38(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rdi
movl $0x42000b01, %esi       # imm = 0x42000B01
callq 0x60b0
movq -0x30(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x8(%rax)
jmp 0x18624
movl $0xfffffffc, -0x1c(%rbp) # imm = 0xFFFFFFFC
jmp 0x18626
cmpl $0x0, -0x1c(%rbp)
je 0x1864c
movq -0x10(%rbp), %rdi
leaq 0xce04(%rip), %rsi      # 0x2543b
movl $0x2306, %edx           # imm = 0x2306
callq 0x6f20
movl -0x1c(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x190af
jmp 0x1864e
jmp 0x19081
movq -0x10(%rbp), %rdi
movl $0x42000b, %esi         # imm = 0x42000B
movl $0x1, %edx
callq 0x68c0
cmpl $0x0, %eax
je 0x1874e
movq -0x10(%rbp), %rdi
movl $0x42002b01, %esi       # imm = 0x42002B01
callq 0x60b0
movq -0x38(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
movq 0x868(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x890(%rcx), %rdi
movl $0x1, %esi
movl $0x50, %edx
callq *%rax
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x18(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x186f7
movq -0x10(%rbp), %rdi
movl $0x50, %esi
leaq 0xcdd8(%rip), %rdx      # 0x254a9
callq 0x6cd0
movq -0x10(%rbp), %rdi
leaq 0xcd5a(%rip), %rsi      # 0x2543b
movl $0x2317, %edx           # imm = 0x2317
callq 0x6f20
movl $0xfffffff4, -0x4(%rbp) # imm = 0xFFFFFFF4
jmp 0x190af
jmp 0x186f9
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x6740
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x6e00
movl %eax, -0x1c(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x38(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rdi
movl $0x42000b01, %esi       # imm = 0x42000B01
callq 0x60b0
movq -0x30(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x8(%rax)
jmp 0x18755
movl $0xfffffffc, -0x1c(%rbp) # imm = 0xFFFFFFFC
jmp 0x18757
cmpl $0x0, -0x1c(%rbp)
je 0x1877d
movq -0x10(%rbp), %rdi
leaq 0xccd3(%rip), %rsi      # 0x2543b
movl $0x2326, %edx           # imm = 0x2326
callq 0x6f20
movl -0x1c(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x190af
jmp 0x1877f
jmp 0x19081
movq -0x10(%rbp), %rax
movq 0x868(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x890(%rcx), %rdi
movl $0x1, %esi
movl $0x4, %edx
callq *%rax
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x18(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x187f2
movq -0x10(%rbp), %rdi
movl $0x4, %esi
leaq 0xccff(%rip), %rdx      # 0x254cb
callq 0x6cd0
movq -0x10(%rbp), %rdi
leaq 0xcc5f(%rip), %rsi      # 0x2543b
movl $0x232b, %edx           # imm = 0x232B
callq 0x6f20
movl $0xfffffff4, -0x4(%rbp) # imm = 0xFFFFFFF4
jmp 0x190af
jmp 0x187f4
movq -0x10(%rbp), %rdi
movl -0x3c(%rbp), %esi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rdx
callq 0x6c00
movl %eax, -0x1c(%rbp)
cmpl $0x0, -0x1c(%rbp)
je 0x18831
movq -0x10(%rbp), %rdi
leaq 0xcc1f(%rip), %rsi      # 0x2543b
movl $0x232d, %edx           # imm = 0x232D
callq 0x6f20
movl -0x1c(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x190af
jmp 0x18833
jmp 0x18835
movq -0x10(%rbp), %rax
movl 0x18(%rax), %edi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movl (%rax), %edx
movl $0x420057, %esi         # imm = 0x420057
callq 0x63a0
movl %eax, -0x40(%rbp)
cmpl $0x0, -0x40(%rbp)
je 0x18894
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movl (%rax), %edx
movl -0x40(%rbp), %ecx
movl $0x420057, %esi         # imm = 0x420057
callq 0x6140
movq -0x10(%rbp), %rdi
leaq 0xcbbc(%rip), %rsi      # 0x2543b
movl $0x232e, %edx           # imm = 0x232E
callq 0x6f20
movl -0x40(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x190af
jmp 0x18896
jmp 0x19081
movq -0x10(%rbp), %rax
movq 0x868(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x890(%rcx), %rdi
movl $0x1, %esi
movl $0x4, %edx
callq *%rax
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x18(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x18909
movq -0x10(%rbp), %rdi
movl $0x4, %esi
leaq 0xcbff(%rip), %rdx      # 0x254e2
callq 0x6cd0
movq -0x10(%rbp), %rdi
leaq 0xcb48(%rip), %rsi      # 0x2543b
movl $0x2333, %edx           # imm = 0x2333
callq 0x6f20
movl $0xfffffff4, -0x4(%rbp) # imm = 0xFFFFFFF4
jmp 0x190af
jmp 0x1890b
movq -0x10(%rbp), %rdi
movl -0x3c(%rbp), %esi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rdx
callq 0x6c00
movl %eax, -0x1c(%rbp)
cmpl $0x0, -0x1c(%rbp)
je 0x18948
movq -0x10(%rbp), %rdi
leaq 0xcb08(%rip), %rsi      # 0x2543b
movl $0x2335, %edx           # imm = 0x2335
callq 0x6f20
movl -0x1c(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x190af
jmp 0x1894a
jmp 0x1894c
movq -0x10(%rbp), %rax
movl 0x18(%rax), %edi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movl (%rax), %edx
movl $0x420028, %esi         # imm = 0x420028
callq 0x63a0
movl %eax, -0x44(%rbp)
cmpl $0x0, -0x44(%rbp)
je 0x189ab
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movl (%rax), %edx
movl -0x44(%rbp), %ecx
movl $0x420028, %esi         # imm = 0x420028
callq 0x6140
movq -0x10(%rbp), %rdi
leaq 0xcaa5(%rip), %rsi      # 0x2543b
movl $0x2336, %edx           # imm = 0x2336
callq 0x6f20
movl -0x44(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x190af
jmp 0x189ad
jmp 0x19081
movq -0x10(%rbp), %rax
movq 0x868(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x890(%rcx), %rdi
movl $0x1, %esi
movl $0x4, %edx
callq *%rax
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x18(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x18a20
movq -0x10(%rbp), %rdi
movl $0x4, %esi
leaq 0xcb0b(%rip), %rdx      # 0x25505
callq 0x6cd0
movq -0x10(%rbp), %rdi
leaq 0xca31(%rip), %rsi      # 0x2543b
movl $0x233b, %edx           # imm = 0x233B
callq 0x6f20
movl $0xfffffff4, -0x4(%rbp) # imm = 0xFFFFFFF4
jmp 0x190af
jmp 0x18a22
movq -0x10(%rbp), %rdi
movl -0x3c(%rbp), %esi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rdx
callq 0x60e0
movl %eax, -0x1c(%rbp)
cmpl $0x0, -0x1c(%rbp)
je 0x18a5f
movq -0x10(%rbp), %rdi
leaq 0xc9f1(%rip), %rsi      # 0x2543b
movl $0x233d, %edx           # imm = 0x233D
callq 0x6f20
movl -0x1c(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x190af
jmp 0x18a61
jmp 0x19081
movq -0x10(%rbp), %rax
movq 0x868(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x890(%rcx), %rdi
movl $0x1, %esi
movl $0x10, %edx
callq *%rax
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x18(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x18ad4
movq -0x10(%rbp), %rdi
movl $0x10, %esi
leaq 0xca73(%rip), %rdx      # 0x25521
callq 0x6cd0
movq -0x10(%rbp), %rdi
leaq 0xc97d(%rip), %rsi      # 0x2543b
movl $0x2342, %edx           # imm = 0x2342
callq 0x6f20
movl $0xfffffff4, -0x4(%rbp) # imm = 0xFFFFFFF4
jmp 0x190af
jmp 0x18ad6
movq -0x10(%rbp), %rdi
movl -0x3c(%rbp), %esi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rdx
callq 0x65b0
movl %eax, -0x1c(%rbp)
cmpl $0x0, -0x1c(%rbp)
je 0x18b13
movq -0x10(%rbp), %rdi
leaq 0xc93d(%rip), %rsi      # 0x2543b
movl $0x2344, %edx           # imm = 0x2344
callq 0x6f20
movl -0x1c(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x190af
jmp 0x18b15
jmp 0x19081
movq -0x10(%rbp), %rax
movq 0x868(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x890(%rcx), %rdi
movl $0x1, %esi
movl $0x4, %edx
callq *%rax
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x18(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x18b88
movq -0x10(%rbp), %rdi
movl $0x4, %esi
leaq 0xc9df(%rip), %rdx      # 0x25541
callq 0x6cd0
movq -0x10(%rbp), %rdi
leaq 0xc8c9(%rip), %rsi      # 0x2543b
movl $0x2349, %edx           # imm = 0x2349
callq 0x6f20
movl $0xfffffff4, -0x4(%rbp) # imm = 0xFFFFFFF4
jmp 0x190af
jmp 0x18b8a
movq -0x10(%rbp), %rdi
movl -0x3c(%rbp), %esi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rdx
callq 0x60e0
movl %eax, -0x1c(%rbp)
cmpl $0x0, -0x1c(%rbp)
je 0x18bc7
movq -0x10(%rbp), %rdi
leaq 0xc889(%rip), %rsi      # 0x2543b
movl $0x234b, %edx           # imm = 0x234B
callq 0x6f20
movl -0x1c(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x190af
jmp 0x18bc9
jmp 0x19081
movq -0x10(%rbp), %rax
movq 0x868(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x890(%rcx), %rdi
movl $0x1, %esi
movl $0x4, %edx
callq *%rax
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x18(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x18c3c
movq -0x10(%rbp), %rdi
movl $0x4, %esi
leaq 0xc94a(%rip), %rdx      # 0x25560
callq 0x6cd0
movq -0x10(%rbp), %rdi
leaq 0xc815(%rip), %rsi      # 0x2543b
movl $0x2350, %edx           # imm = 0x2350
callq 0x6f20
movl $0xfffffff4, -0x4(%rbp) # imm = 0xFFFFFFF4
jmp 0x190af
jmp 0x18c3e
movq -0x10(%rbp), %rdi
movl -0x3c(%rbp), %esi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rdx
callq 0x6c00
movl %eax, -0x1c(%rbp)
cmpl $0x0, -0x1c(%rbp)
je 0x18c7b
movq -0x10(%rbp), %rdi
leaq 0xc7d5(%rip), %rsi      # 0x2543b
movl $0x2352, %edx           # imm = 0x2352
callq 0x6f20
movl -0x1c(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x190af
jmp 0x18c7d
jmp 0x18c7f
movq -0x10(%rbp), %rax
movl 0x18(%rax), %edi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movl (%rax), %edx
movl $0x42008d, %esi         # imm = 0x42008D
callq 0x63a0
movl %eax, -0x48(%rbp)
cmpl $0x0, -0x48(%rbp)
je 0x18cde
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movl (%rax), %edx
movl -0x48(%rbp), %ecx
movl $0x42008d, %esi         # imm = 0x42008D
callq 0x6140
movq -0x10(%rbp), %rdi
leaq 0xc772(%rip), %rsi      # 0x2543b
movl $0x2353, %edx           # imm = 0x2353
callq 0x6f20
movl -0x48(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x190af
jmp 0x18ce0
jmp 0x19081
movq -0x10(%rbp), %rax
movq 0x868(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x890(%rcx), %rdi
movl $0x1, %esi
movl $0x10, %edx
callq *%rax
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x18(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x18d53
movq -0x10(%rbp), %rdi
movl $0x10, %esi
leaq 0xc845(%rip), %rdx      # 0x25572
callq 0x6cd0
movq -0x10(%rbp), %rdi
leaq 0xc6fe(%rip), %rsi      # 0x2543b
movl $0x2359, %edx           # imm = 0x2359
callq 0x6f20
movl $0xfffffff4, -0x4(%rbp) # imm = 0xFFFFFFF4
jmp 0x190af
jmp 0x18d55
movq -0x10(%rbp), %rdi
movl -0x3c(%rbp), %esi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rdx
callq 0x65b0
movl %eax, -0x1c(%rbp)
cmpl $0x0, -0x1c(%rbp)
je 0x18d92
movq -0x10(%rbp), %rdi
leaq 0xc6be(%rip), %rsi      # 0x2543b
movl $0x235b, %edx           # imm = 0x235B
callq 0x6f20
movl -0x1c(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x190af
jmp 0x18d94
jmp 0x19081
movq -0x10(%rbp), %rax
movq 0x868(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x890(%rcx), %rdi
movl $0x1, %esi
movl $0x8, %edx
callq *%rax
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x18(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x18e07
movq -0x10(%rbp), %rdi
movl $0x8, %esi
leaq 0xc7a9(%rip), %rdx      # 0x2558a
callq 0x6cd0
movq -0x10(%rbp), %rdi
leaq 0xc64a(%rip), %rsi      # 0x2543b
movl $0x2362, %edx           # imm = 0x2362
callq 0x6f20
movl $0xfffffff4, -0x4(%rbp) # imm = 0xFFFFFFF4
jmp 0x190af
jmp 0x18e09
movq -0x10(%rbp), %rdi
movl -0x3c(%rbp), %esi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rdx
callq 0x6bc0
movl %eax, -0x1c(%rbp)
cmpl $0x0, -0x1c(%rbp)
je 0x18e46
movq -0x10(%rbp), %rdi
leaq 0xc60a(%rip), %rsi      # 0x2543b
movl $0x2365, %edx           # imm = 0x2365
callq 0x6f20
movl -0x1c(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x190af
jmp 0x18e48
jmp 0x19081
movq -0x10(%rbp), %rax
movq 0x868(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x890(%rcx), %rdi
movl $0x1, %esi
movl $0x8, %edx
callq *%rax
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x18(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x18ebb
movq -0x10(%rbp), %rdi
movl $0x8, %esi
leaq 0xc70e(%rip), %rdx      # 0x255a3
callq 0x6cd0
movq -0x10(%rbp), %rdi
leaq 0xc596(%rip), %rsi      # 0x2543b
movl $0x236b, %edx           # imm = 0x236B
callq 0x6f20
movl $0xfffffff4, -0x4(%rbp) # imm = 0xFFFFFFF4
jmp 0x190af
jmp 0x18ebd
movq -0x10(%rbp), %rdi
movl -0x3c(%rbp), %esi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rdx
callq 0x6bc0
movl %eax, -0x1c(%rbp)
cmpl $0x0, -0x1c(%rbp)
je 0x18efa
movq -0x10(%rbp), %rdi
leaq 0xc556(%rip), %rsi      # 0x2543b
movl $0x236e, %edx           # imm = 0x236E
callq 0x6f20
movl -0x1c(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x190af
jmp 0x18efc
jmp 0x19081
movq -0x10(%rbp), %rax
movq 0x868(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x890(%rcx), %rdi
movl $0x1, %esi
movl $0x8, %edx
callq *%rax
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x18(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x18f6f
movq -0x10(%rbp), %rdi
movl $0x8, %esi
leaq 0xc675(%rip), %rdx      # 0x255be
callq 0x6cd0
movq -0x10(%rbp), %rdi
leaq 0xc4e2(%rip), %rsi      # 0x2543b
movl $0x2374, %edx           # imm = 0x2374
callq 0x6f20
movl $0xfffffff4, -0x4(%rbp) # imm = 0xFFFFFFF4
jmp 0x190af
jmp 0x18f71
movq -0x10(%rbp), %rdi
movl -0x3c(%rbp), %esi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rdx
callq 0x6bc0
movl %eax, -0x1c(%rbp)
cmpl $0x0, -0x1c(%rbp)
je 0x18fae
movq -0x10(%rbp), %rdi
leaq 0xc4a2(%rip), %rsi      # 0x2543b
movl $0x2377, %edx           # imm = 0x2377
callq 0x6f20
movl -0x1c(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x190af
jmp 0x18fb0
jmp 0x19081
movq -0x10(%rbp), %rax
movq 0x868(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x890(%rcx), %rdi
movl $0x1, %esi
movl $0x8, %edx
callq *%rax
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x18(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x19023
movq -0x10(%rbp), %rdi
movl $0x8, %esi
leaq 0xc5dc(%rip), %rdx      # 0x255d9
callq 0x6cd0
movq -0x10(%rbp), %rdi
leaq 0xc42e(%rip), %rsi      # 0x2543b
movl $0x237d, %edx           # imm = 0x237D
callq 0x6f20
movl $0xfffffff4, -0x4(%rbp) # imm = 0xFFFFFFF4
jmp 0x190af
jmp 0x19025
movq -0x10(%rbp), %rdi
movl -0x3c(%rbp), %esi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rdx
callq 0x6bc0
movl %eax, -0x1c(%rbp)
cmpl $0x0, -0x1c(%rbp)
je 0x1905f
movq -0x10(%rbp), %rdi
leaq 0xc3ee(%rip), %rsi      # 0x2543b
movl $0x2380, %edx           # imm = 0x2380
callq 0x6f20
movl -0x1c(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x190af
jmp 0x19061
jmp 0x19081
movq -0x10(%rbp), %rdi
leaq 0xc3cd(%rip), %rsi      # 0x2543b
movl $0x2384, %edx           # imm = 0x2384
callq 0x6f20
movl $0xfffffffd, -0x4(%rbp) # imm = 0xFFFFFFFD
jmp 0x190af
jmp 0x19083
cmpl $0x0, -0x1c(%rbp)
je 0x190a6
movq -0x10(%rbp), %rdi
leaq 0xc3a7(%rip), %rsi      # 0x2543b
movl $0x2388, %edx           # imm = 0x2388
callq 0x6f20
movl -0x1c(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x190af
jmp 0x190a8
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax,%rax)