// File: /workspace/github_c_makefile_star2_O1/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
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x10(%rdi), %rax
subq 0x8(%rdi), %rax
addq (%rdi), %rax
cmpq $0x7, %rax
ja 0x120af
leaq 0xf56f(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x22a8, %edx           # imm = 0x22A8
callq 0x6de0
movl $0xfffffffe, %ebp       # imm = 0xFFFFFFFE
jmp 0x1218b
movq %rsi, %r14
testq %rsi, %rsi
je 0x120cc
movabsq $-0x100000000, %rax     # imm = 0xFFFFFFFF00000000
movq %rax, (%r14)
movq $0x0, 0x8(%r14)
xorl %eax, %eax
leaq 0x4(%rsp), %r15
movl %eax, (%r15)
movl %eax, (%rsp)
movq %rbx, %rdi
movq %r15, %rsi
callq 0x6a10
movl (%r15), %eax
movl %eax, %ecx
andl $0xffffff00, %ecx       # imm = 0xFFFFFF00
cmpl $0x42000800, %ecx       # imm = 0x42000800
jne 0x12130
cmpb $0x1, %al
jne 0x1214b
movq %rsp, %r15
movq %rbx, %rdi
movq %r15, %rsi
callq 0x64b0
movq 0x10(%rbx), %rax
subq 0x8(%rbx), %rax
addq (%rbx), %rax
movl (%r15), %ecx
cmpq %rcx, %rax
jae 0x12166
leaq 0xf4e4(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x22b4, %edx           # imm = 0x22B4
jmp 0x120a0
leaq 0xf4d0(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x22b1, %edx           # imm = 0x22B1
callq 0x6de0
movl $0xfffffffc, %ebp       # imm = 0xFFFFFFFC
jmp 0x1218b
leaq 0xf4b5(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x22b1, %edx           # imm = 0x22B1
callq 0x6de0
movl $0xfffffffb, %ebp       # imm = 0xFFFFFFFB
jmp 0x1218b
movq %rbx, %rdi
movq %r14, %rsi
callq 0x6bc0
testl %eax, %eax
je 0x12198
movl %eax, %ebp
leaq 0xf489(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x22b7, %edx           # imm = 0x22B7
callq 0x6de0
movl %ebp, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
testq %rbx, %rbx
je 0x121f5
movq 0x8(%rbx), %rax
movq 0x10(%rbx), %rcx
subq %rax, %rcx
addq (%rbx), %rcx
cmpq $0x3, %rcx
jb 0x121f5
movzbl (%rax), %ecx
shll $0x10, %ecx
movzbl 0x1(%rax), %edx
shll $0x8, %edx
orl %ecx, %edx
movzbl 0x2(%rax), %eax
orl %edx, %eax
cmpl $0x420009, %eax         # imm = 0x420009
jne 0x121f5
leaq 0x4(%r14), %rdx
movq %rbx, %rdi
movl $0x420009, %esi         # imm = 0x420009
callq 0x60d0
testl %eax, %eax
je 0x121f5
movl %eax, %ebp
leaq 0xf41c(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x22bc, %edx           # imm = 0x22BC
jmp 0x12186
movl (%r14), %eax
cmpq $0xe, %rax
ja 0x124a4
movq 0x8(%rbx), %r15
leaq 0xd1e3(%rip), %rcx      # 0x1f3f0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x890(%rbx), %rdi
movl $0x1, %esi
movl $0x10, %edx
callq *0x868(%rbx)
movq %rax, 0x8(%r14)
testq %rax, %rax
je 0x128db
movq %rbx, %rdi
movl $0x42000b, %esi         # imm = 0x42000B
movq %rax, %rdx
callq 0x6540
testl %eax, %eax
je 0x12a97
movl %eax, %ebp
leaq 0xf3ac(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x22e8, %edx           # imm = 0x22E8
jmp 0x12186
movq %rbx, %rdi
movl $0x42000b, %esi         # imm = 0x42000B
movl $0x1, %edx
callq 0x6810
testl %eax, %eax
je 0x127a2
movq %rbx, %rdi
movl $0x42002b01, %esi       # imm = 0x42002B01
callq 0x60a0
movq %r15, 0x8(%rbx)
movq 0x890(%rbx), %rdi
movl $0x1, %esi
movl $0x50, %edx
callq *0x868(%rbx)
movq %rax, 0x8(%r14)
testq %rax, %rax
je 0x129e5
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq $0x0, 0x10(%rax)
pcmpeqd %xmm1, %xmm1
movdqu %xmm1, 0x18(%rax)
movdqu %xmm1, 0x28(%rax)
movups %xmm0, 0x38(%rax)
movl $0xffffffff, 0x48(%rax) # imm = 0xFFFFFFFF
movq 0x8(%r14), %rsi
movq %rbx, %rdi
callq 0x6cd0
movl %eax, %ebp
movq 0x8(%rbx), %r14
movq %r15, 0x8(%rbx)
movq %rbx, %rdi
movl $0x42000b01, %esi       # imm = 0x42000B01
callq 0x60a0
movq %r14, 0x8(%rbx)
jmp 0x127a7
movq 0x890(%rbx), %rdi
movl $0x1, %esi
movl $0x8, %edx
callq *0x868(%rbx)
movq %rax, 0x8(%r14)
testq %rax, %rax
je 0x127c3
movq %rbx, %rdi
movl $0x42000b, %esi         # imm = 0x42000B
movq %rax, %rdx
callq 0x6aa0
testl %eax, %eax
je 0x12a97
movl %eax, %ebp
leaq 0xf2b8(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x236e, %edx           # imm = 0x236E
jmp 0x12186
movq 0x890(%rbx), %rdi
movl $0x1, %esi
movl $0x4, %edx
callq *0x868(%rbx)
movq %rax, 0x8(%r14)
testq %rax, %rax
je 0x127eb
movq %rbx, %rdi
movl $0x42000b, %esi         # imm = 0x42000B
movq %rax, %rdx
callq 0x60d0
testl %eax, %eax
je 0x12a97
movl %eax, %ebp
leaq 0xf266(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x233d, %edx           # imm = 0x233D
jmp 0x12186
movq 0x890(%rbx), %rdi
movl $0x1, %esi
movl $0x8, %edx
callq *0x868(%rbx)
movq %rax, 0x8(%r14)
testq %rax, %rax
je 0x12813
movq %rbx, %rdi
movl $0x42000b, %esi         # imm = 0x42000B
movq %rax, %rdx
callq 0x6aa0
testl %eax, %eax
je 0x12a97
movl %eax, %ebp
leaq 0xf214(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x2377, %edx           # imm = 0x2377
jmp 0x12186
movq 0x890(%rbx), %rdi
movl $0x1, %esi
movl $0x10, %edx
callq *0x868(%rbx)
movq %rax, 0x8(%r14)
testq %rax, %rax
je 0x1283b
movq %rbx, %rdi
movl $0x42000b, %esi         # imm = 0x42000B
movq %rax, %rdx
callq 0x6540
testl %eax, %eax
je 0x12a97
movl %eax, %ebp
leaq 0xf1c2(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x235b, %edx           # imm = 0x235B
jmp 0x12186
movq 0x890(%rbx), %rdi
movl $0x1, %esi
movl $0x4, %edx
callq *0x868(%rbx)
movq %rax, 0x8(%r14)
testq %rax, %rax
je 0x12863
movq %rbx, %rdi
movl $0x42000b, %esi         # imm = 0x42000B
movq %rax, %rdx
callq 0x6ae0
testl %eax, %eax
je 0x12a0d
movl %eax, %ebp
leaq 0xf170(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x232d, %edx           # imm = 0x232D
jmp 0x12186
leaq 0xf15c(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x2384, %edx           # imm = 0x2384
callq 0x6de0
movl $0xfffffffd, %ebp       # imm = 0xFFFFFFFD
jmp 0x1218b
movq 0x890(%rbx), %rdi
movl $0x1, %esi
movl $0x4, %edx
callq *0x868(%rbx)
movq %rax, 0x8(%r14)
testq %rax, %rax
je 0x1288b
movq %rbx, %rdi
movl $0x42000b, %esi         # imm = 0x42000B
movq %rax, %rdx
callq 0x6ae0
testl %eax, %eax
je 0x12a46
movl %eax, %ebp
leaq 0xf100(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x2335, %edx           # imm = 0x2335
jmp 0x12186
movq 0x890(%rbx), %rdi
movl $0x1, %esi
movl $0x4, %edx
callq *0x868(%rbx)
movq %rax, 0x8(%r14)
testq %rax, %rax
je 0x128b3
movq %rbx, %rdi
movl $0x42000b, %esi         # imm = 0x42000B
movq %rax, %rdx
callq 0x6ae0
testl %eax, %eax
je 0x12a89
movl %eax, %ebp
leaq 0xf0ae(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x2352, %edx           # imm = 0x2352
jmp 0x12186
movq %rbx, %rdi
movl $0x42000b, %esi         # imm = 0x42000B
movl $0x1, %edx
callq 0x6810
testl %eax, %eax
je 0x12903
movq %rbx, %rdi
movl $0x42005301, %esi       # imm = 0x42005301
callq 0x60a0
movq %r15, 0x8(%rbx)
movq 0x890(%rbx), %rdi
movl $0x1, %esi
movl $0x10, %edx
callq *0x868(%rbx)
movq %rax, 0x8(%r14)
testq %rax, %rax
je 0x12a9e
movq %rbx, %rdi
movq %rax, %rsi
callq 0x6dc0
movl %eax, %ebp
movq 0x8(%rbx), %r14
movq %r15, 0x8(%rbx)
movq %rbx, %rdi
movl $0x42000b01, %esi       # imm = 0x42000B01
callq 0x60a0
movq %r14, 0x8(%rbx)
jmp 0x12908
movq 0x890(%rbx), %rdi
movl $0x1, %esi
movl $0x10, %edx
callq *0x868(%rbx)
movq %rax, 0x8(%r14)
testq %rax, %rax
je 0x12924
movq %rbx, %rdi
movl $0x42000b, %esi         # imm = 0x42000B
movq %rax, %rdx
callq 0x6540
testl %eax, %eax
je 0x12a97
movl %eax, %ebp
leaq 0xefe2(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x2344, %edx           # imm = 0x2344
jmp 0x12186
movq 0x890(%rbx), %rdi
movl $0x1, %esi
movl $0x8, %edx
callq *0x868(%rbx)
movq %rax, 0x8(%r14)
testq %rax, %rax
je 0x1294c
movq %rbx, %rdi
movl $0x42000b, %esi         # imm = 0x42000B
movq %rax, %rdx
callq 0x6aa0
testl %eax, %eax
je 0x12a97
movl %eax, %ebp
leaq 0xef90(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x2380, %edx           # imm = 0x2380
jmp 0x12186
movq 0x890(%rbx), %rdi
movl $0x1, %esi
movl $0x4, %edx
callq *0x868(%rbx)
movq %rax, 0x8(%r14)
testq %rax, %rax
je 0x12974
movq %rbx, %rdi
movl $0x42000b, %esi         # imm = 0x42000B
movq %rax, %rdx
callq 0x60d0
testl %eax, %eax
je 0x12a97
movl %eax, %ebp
leaq 0xef3e(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x234b, %edx           # imm = 0x234B
jmp 0x12186
movq 0x890(%rbx), %rdi
movl $0x1, %esi
movl $0x8, %edx
callq *0x868(%rbx)
movq %rax, 0x8(%r14)
testq %rax, %rax
je 0x1299c
movq %rbx, %rdi
movl $0x42000b, %esi         # imm = 0x42000B
movq %rax, %rdx
callq 0x6aa0
testl %eax, %eax
je 0x12a97
movl %eax, %ebp
leaq 0xeeec(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x2365, %edx           # imm = 0x2365
jmp 0x12186
movq %rbx, %rdi
movl $0x42000b, %esi         # imm = 0x42000B
movl $0x1, %edx
callq 0x6810
testl %eax, %eax
je 0x129c4
movq %rbx, %rdi
movl $0x42000401, %esi       # imm = 0x42000401
callq 0x60a0
movq %r15, 0x8(%rbx)
movq 0x890(%rbx), %rdi
movl $0x1, %esi
movl $0x10, %edx
callq *0x868(%rbx)
movq %rax, 0x8(%r14)
testq %rax, %rax
je 0x12ac3
movq %rbx, %rdi
movq %rax, %rsi
callq 0x6710
movl %eax, %ebp
movq 0x8(%rbx), %r14
movq %r15, 0x8(%rbx)
movq %rbx, %rdi
movl $0x42000b01, %esi       # imm = 0x42000B01
callq 0x60a0
movq %r14, 0x8(%rbx)
jmp 0x129c9
movl $0xfffffffc, %ebp       # imm = 0xFFFFFFFC
testl %ebp, %ebp
je 0x12a97
leaq 0xee51(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x2326, %edx           # imm = 0x2326
jmp 0x12186
leaq 0xefa5(%rip), %rdx      # 0x2176f
movl $0x8, %esi
movq %rbx, %rdi
callq 0x6ba0
leaq 0xee29(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x236b, %edx           # imm = 0x236B
jmp 0x12ae6
leaq 0xeedf(%rip), %rdx      # 0x216d1
movl $0x4, %esi
movq %rbx, %rdi
callq 0x6ba0
leaq 0xee01(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x233b, %edx           # imm = 0x233B
jmp 0x12ae6
leaq 0xef70(%rip), %rdx      # 0x2178a
movl $0x8, %esi
movq %rbx, %rdi
callq 0x6ba0
leaq 0xedd9(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x2374, %edx           # imm = 0x2374
jmp 0x12ae6
leaq 0xeefc(%rip), %rdx      # 0x2173e
movl $0x10, %esi
movq %rbx, %rdi
callq 0x6ba0
leaq 0xedb1(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x2359, %edx           # imm = 0x2359
jmp 0x12ae6
leaq 0xee2d(%rip), %rdx      # 0x21697
movl $0x4, %esi
movq %rbx, %rdi
callq 0x6ba0
leaq 0xed89(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x232b, %edx           # imm = 0x232B
jmp 0x12ae6
leaq 0xee1c(%rip), %rdx      # 0x216ae
movl $0x4, %esi
movq %rbx, %rdi
callq 0x6ba0
leaq 0xed61(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x2333, %edx           # imm = 0x2333
jmp 0x12ae6
leaq 0xee72(%rip), %rdx      # 0x2172c
movl $0x4, %esi
movq %rbx, %rdi
callq 0x6ba0
leaq 0xed39(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x2350, %edx           # imm = 0x2350
jmp 0x12ae6
leaq 0xed67(%rip), %rdx      # 0x21649
movl $0x10, %esi
movq %rbx, %rdi
callq 0x6ba0
leaq 0xed11(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x22e6, %edx           # imm = 0x22E6
jmp 0x12ae6
movl $0xfffffffc, %ebp       # imm = 0xFFFFFFFC
testl %ebp, %ebp
je 0x12a97
leaq 0xecf0(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x2306, %edx           # imm = 0x2306
jmp 0x12186
leaq 0xedc2(%rip), %rdx      # 0x216ed
movl $0x10, %esi
movq %rbx, %rdi
callq 0x6ba0
leaq 0xecc8(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x2342, %edx           # imm = 0x2342
jmp 0x12ae6
leaq 0xee52(%rip), %rdx      # 0x217a5
movl $0x8, %esi
movq %rbx, %rdi
callq 0x6ba0
leaq 0xeca0(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x237d, %edx           # imm = 0x237D
jmp 0x12ae6
leaq 0xed92(%rip), %rdx      # 0x2170d
movl $0x4, %esi
movq %rbx, %rdi
callq 0x6ba0
leaq 0xec78(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x2349, %edx           # imm = 0x2349
jmp 0x12ae6
leaq 0xedb3(%rip), %rdx      # 0x21756
movl $0x8, %esi
movq %rbx, %rdi
callq 0x6ba0
leaq 0xec50(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x2362, %edx           # imm = 0x2362
jmp 0x12ae6
movl $0xfffffffc, %ebp       # imm = 0xFFFFFFFC
testl %ebp, %ebp
je 0x12a97
leaq 0xec2f(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x22e0, %edx           # imm = 0x22E0
jmp 0x12186
leaq 0xec89(%rip), %rdx      # 0x21675
movl $0x50, %esi
movq %rbx, %rdi
callq 0x6ba0
leaq 0xec07(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x2317, %edx           # imm = 0x2317
jmp 0x12ae6
movq 0x8(%r14), %rax
movl (%rax), %edx
xorl %ebp, %ebp
leal -0x1(%rdx), %eax
movl $0x0, %r14d
cmpl $0x8, %eax
jb 0x12b37
movl 0x18(%rbx), %eax
cmpl $0xa, %edx
je 0x12b20
cmpl $0x9, %edx
jne 0x12b31
xorl %ecx, %ecx
cmpl $0x2, %eax
jmp 0x12b25
movl 0x18(%rbx), %edi
movq 0x8(%r14), %rax
movl (%rax), %r14d
movl $0x420028, %esi         # imm = 0x420028
movl %r14d, %edx
callq 0x6350
testl %eax, %eax
je 0x12a97
movl %eax, %ebp
movq %rbx, %rdi
movl $0x420028, %esi         # imm = 0x420028
movl %r14d, %edx
movl %eax, %ecx
callq 0x6120
leaq 0xeb8b(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x2336, %edx           # imm = 0x2336
jmp 0x12186
movq 0x8(%r14), %rax
movl (%rax), %edx
leal -0x1(%rdx), %eax
cmpl $0x6, %eax
jae 0x12af5
xorl %ebp, %ebp
jmp 0x1218b
leaq 0xebc1(%rip), %rdx      # 0x21666
movl $0x10, %esi
movq %rbx, %rdi
callq 0x6ba0
leaq 0xeb4e(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x22f8, %edx           # imm = 0x22F8
jmp 0x12ae6
leaq 0xeb56(%rip), %rdx      # 0x21620
movl $0x10, %esi
movq %rbx, %rdi
callq 0x6ba0
leaq 0xeb29(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x22d2, %edx           # imm = 0x22D2
callq 0x6de0
movl $0xfffffff4, %ebp       # imm = 0xFFFFFFF4
jmp 0x1218b
movl $0xfffffff7, %ebp       # imm = 0xFFFFFFF7
movq %rbx, %rdi
movl $0x42008d, %esi         # imm = 0x42008D
movl $0xfffffff7, %ecx       # imm = 0xFFFFFFF7
callq 0x6120
leaq 0xeaf4(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x2353, %edx           # imm = 0x2353
jmp 0x12186
xorl %ecx, %ecx
cmpl $0x5, %eax
movl $0xfffffff5, %r14d      # imm = 0xFFFFFFF5
cmovael %ecx, %r14d
jmp 0x12b37
movl $0xfffffff7, %r14d      # imm = 0xFFFFFFF7
testl %r14d, %r14d
je 0x1218b
movq %rbx, %rdi
movl $0x420057, %esi         # imm = 0x420057
movl %r14d, %ecx
callq 0x6120
leaq 0xeab0(%rip), %rsi      # 0x21607
movq %rbx, %rdi
movl $0x232e, %edx           # imm = 0x232E
callq 0x6de0
movl %r14d, %ebp
jmp 0x1218b