// File: /workspace/github_c_makefile_star2_O1/hfiguiere[P]exifprobe/jp2000.c
// Function: process_jp2_res
unsigned long
process_jp2_res(FILE *inptr,struct jp2box *box,int indent)
{
    unsigned long boxoffset,max_offset,resboxoffset;
    unsigned long dataoffset,resdataoffset;
    unsigned long resboxlength = 0UL;
    unsigned long boxlength;
    unsigned long tbox;
    unsigned short vrcn = 0;
    unsigned short vrcd = 0;
    unsigned short hrcn = 0;
    unsigned short hrcd = 0;
    unsigned short vrce = 0;
    unsigned short hrce = 0;
    double vrc = 0.0;
    double hrc = 0.0;
    char *rtype;
    char id;
    int chpr = 0;

    if((LIST_MODE))
        chpr = list_jp2box(inptr,box,"JP2.jp2h.",indent,1);
    else
        print_jp2box(inptr,box,indent);

    /* Save the parent box params.                                    */
    boxoffset = box->boxoffset;
    dataoffset = boxoffset + box->dataoffset;
    boxlength = box->boxlength;
    tbox = box->tbox;
    max_offset = boxoffset + boxlength;

    /* There may be one or two sub-boxes, resc, and resd.             */
    boxlength -= box->dataoffset;

    indent += SUBINDENT;
    if(boxlength >= 14ULL)  /* sub-box must be this long              */
    {
        box = read_jp2box(inptr,dataoffset);

        if((PRINT_LONGNAMES))
            chpr = list_jp2box(inptr,box,"JP2.jp2h.res.",indent,1);
        else
            print_jp2box(inptr,box,indent + SUBINDENT);
        resboxoffset = box->boxoffset;
        resdataoffset = resboxoffset + box->dataoffset;
        resboxlength = box->boxlength;
        boxlength -= resboxlength;

        id = box->tbox & 0xff;
        vrcn = read_ushort(inptr,TIFF_MOTOROLA,resdataoffset);
        if(!(LIST_MODE))
        {
            print_tag_address(ENTRY,resdataoffset,indent + 8,"=");
            if((PRINT_TAGINFO))
                chpr += printf("vr%cn",id);
            if((PRINT_VALUE))
                chpr += printf(" = %u",vrcn);
        }
        chpr = newline(chpr);
        resdataoffset += 2;

        vrcd = read_ushort(inptr,TIFF_MOTOROLA,resdataoffset);
        if(!(LIST_MODE))
        {
            print_tag_address(ENTRY,resdataoffset,indent + 8,"=");
            if((PRINT_TAGINFO))
                chpr += printf("vr%cd",id);
            if((PRINT_VALUE))
                chpr += printf(" = %u",vrcd);
        }
        chpr = newline(chpr);
        resdataoffset += 2;

        hrcn = read_ushort(inptr,TIFF_MOTOROLA,resdataoffset);
        if(!(LIST_MODE))
        {
            print_tag_address(ENTRY,resdataoffset,indent + 8,"=");
            if((PRINT_TAGINFO))
                chpr += printf("hr%cn",id);
            if((PRINT_VALUE))
                chpr += printf(" = %u",hrcn);
        }
        chpr = newline(chpr);
        resdataoffset += 2;

        hrcd = read_ushort(inptr,TIFF_MOTOROLA,resdataoffset);
        if(!(LIST_MODE))
        {
            print_tag_address(ENTRY,resdataoffset,indent + 8,"=");
            if((PRINT_TAGINFO))
                chpr += printf("hr%cd",id);
            if((PRINT_VALUE))
                chpr += printf(" = %u",hrcd);
        }
        chpr = newline(chpr);
        resdataoffset += 2;

        vrce = read_ubyte(inptr,resdataoffset);
        if(!(LIST_MODE))
        {
            print_tag_address(ENTRY,resdataoffset,indent + 8,"=");
            if((PRINT_TAGINFO))
                chpr += printf("vr%ce",id);
            if((PRINT_VALUE))
                chpr += printf(" = %u",vrce);
        }
        resdataoffset ++;

        if(id == 'c')
            rtype = "Capture";
        else if(id == 'd')
            rtype = "Display";
        else
            rtype = "Illegitimate";

        vrc = (double)vrcn * pow(10.0,(double)vrce) / (double)vrcd ;
        if((LIST_MODE))
            print_tag_address(ENTRY,HERE,indent + 8,"*");
        if((PRINT_TAGINFO))
        {
            if((LIST_MODE))
            {
                if((PRINT_LONGNAMES))
                {
                    chpr += printf("JP2.jp2h.res.");
                    print_jp2type(box->tbox,0);
                    chpr += printf(".");
                }
                chpr += printf("Vertical%sResolution",rtype);
            }
            else
                chpr += printf(" ==> Vertical %s Resolution",rtype);
        }
        if((PRINT_VALUE))
            chpr += printf(" = %3.2f samples/meter",vrc);
        chpr = newline(chpr);

        hrce = read_ubyte(inptr,resdataoffset);
        if(!(LIST_MODE))
        {
            print_tag_address(ENTRY,resdataoffset,indent + 8,"=");
            if((PRINT_TAGINFO))
                chpr += printf("hr%ce",id);
            if((PRINT_VALUE))
                chpr += printf(" = %u",hrce);
        }
        resdataoffset ++;

        hrc = (double)hrcn * pow(10.0,(double)hrce) / (double)hrcd ;
        if((LIST_MODE))
            print_tag_address(ENTRY,HERE,indent + 8,"*");
        if((PRINT_TAGINFO))
        {
            if((LIST_MODE))
            {
                if((PRINT_LONGNAMES))
                {
                    chpr += printf("JP2.jp2h.res.");
                    print_jp2type(box->tbox,0);
                    chpr += printf(".");
                }
                chpr += printf("Horizontal%sResolution",rtype);
            }
            else
                chpr += printf(" ==> Horizontal %s resolution",rtype);
        }
        if((PRINT_VALUE))
            chpr += printf(" = %3.2f samples/meter",vrc);
        chpr = newline(chpr);
        if((PRINT_SECTION))
        {
            print_tag_address(SECTION,resdataoffset - 1,indent + SUBINDENT,"=");
            print_jp2type(box->tbox,1);
            chpr = newline(chpr);
        }
    }
    chpr = newline(chpr);
    dataoffset += resboxlength;

    /* Sometimes both sub-boxes are present; do it again.             */
    if(boxlength >= 14ULL)
    {
        box = read_jp2box(inptr,dataoffset);

        if((PRINT_LONGNAMES))
            chpr = list_jp2box(inptr,box,"JP2.jp2h.res.",indent,1);
        else
            print_jp2box(inptr,box,indent + SUBINDENT);
        resboxoffset = box->boxoffset;
        resdataoffset = resboxoffset + box->dataoffset;
        resboxlength = box->boxlength;
        boxlength -= resboxlength;

        id = box->tbox & 0xff;
        vrcn = read_ushort(inptr,TIFF_MOTOROLA,resdataoffset);
        if(!(LIST_MODE))
        {
            print_tag_address(ENTRY,resdataoffset,indent + 8,"=");
            if((PRINT_TAGINFO))
                chpr += printf("vr%cn",id);
            if((PRINT_VALUE))
                chpr += printf(" = %u",vrcn);
        }
        chpr = newline(chpr);
        resdataoffset += 2;

        vrcd = read_ushort(inptr,TIFF_MOTOROLA,resdataoffset);
        if(!(LIST_MODE))
        {
            print_tag_address(ENTRY,resdataoffset,indent + 8,"=");
            if((PRINT_TAGINFO))
                chpr += printf("vr%cd",id);
            if((PRINT_VALUE))
                chpr += printf(" = %u",vrcd);
        }
        chpr = newline(chpr);
        resdataoffset += 2;

        hrcn = read_ushort(inptr,TIFF_MOTOROLA,resdataoffset);
        if(!(LIST_MODE))
        {
            print_tag_address(ENTRY,resdataoffset,indent + 8,"=");
            if((PRINT_TAGINFO))
                chpr += printf("hr%cn",id);
            if((PRINT_VALUE))
                chpr += printf(" = %u",hrcn);
        }
        chpr = newline(chpr);
        resdataoffset += 2;

        hrcd = read_ushort(inptr,TIFF_MOTOROLA,resdataoffset);
        if(!(LIST_MODE))
        {
            print_tag_address(ENTRY,resdataoffset,indent + 8,"=");
            if((PRINT_TAGINFO))
                chpr += printf("hr%cd",id);
            if((PRINT_VALUE))
                chpr += printf(" = %u",hrcd);
        }
        chpr = newline(chpr);
        resdataoffset += 2;

        vrce = read_ubyte(inptr,resdataoffset);
        if(!(LIST_MODE))
        {
            print_tag_address(ENTRY,resdataoffset,indent + 8,"=");
            if((PRINT_TAGINFO))
                chpr += printf("vr%ce",id);
            if((PRINT_VALUE))
                chpr += printf(" = %u",vrce);
        }
        resdataoffset ++;

        if(id == 'c')
            rtype = "Capture";
        else if(id == 'd')
            rtype = "Display";
        else
            rtype = "Illegitimate";

        vrc = (double)vrcn * pow(10.0,(double)vrce) / (double)vrcd ;
        if((PRINT_TAGINFO))
        {
            if((LIST_MODE))
            {
                if((PRINT_LONGNAMES))
                {
                    chpr += printf("JP2.jp2h.res.");
                    print_jp2type(box->tbox,0);
                    chpr += printf(".");
                }
                chpr += printf("Vertical%sResolution",rtype);
            }
            else
                chpr += printf(" ==> Vertical %s Resolution",rtype);
        }
        if((PRINT_VALUE))
            chpr += printf(" = %3.2f samples/meter",vrc);
        chpr = newline(chpr);

        hrce = read_ubyte(inptr,resdataoffset);
        if(!(LIST_MODE))
        {
            print_tag_address(ENTRY,resdataoffset,indent + 8,"=");
            if((PRINT_TAGINFO))
                chpr += printf("hr%ce",id);
            if((PRINT_VALUE))
                chpr += printf(" = %u",hrce);
        }
        resdataoffset ++;

        hrc = (double)hrcn * pow(10.0,(double)hrce) / (double)hrcd ;
        if((PRINT_TAGINFO))
        {
            if((LIST_MODE))
            {
                if((PRINT_LONGNAMES))
                {
                    chpr += printf("JP2.jp2h.res.");
                    print_jp2type(box->tbox,0);
                    chpr += printf(".");
                }
                chpr += printf("Horizontal%sResolution",rtype);
            }
            else
                chpr += printf(" ==> Horizontal %s resolution",rtype);
        }
        if((PRINT_VALUE))
            chpr += printf(" = %3.2f samples/meter",vrc);
        chpr = newline(chpr);
        if((PRINT_SECTION))
        {
            print_tag_address(SECTION,resdataoffset - 1,indent + SUBINDENT,"@");
            print_jp2type(box->tbox,1);
            chpr = newline(chpr);
        }
    }
    indent -= SUBINDENT;

    if((PRINT_SECTION))
    {
        chpr = newline(chpr);
        print_tag_address(SECTION|ENTRY,max_offset - 1,indent,"=");
        print_jp2type(tbox,1);
    }
    chpr = newline(chpr);
    return(max_offset);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movl %edx, %r14d
movq %rsi, %rbx
movq %rdi, %r15
leaq 0x36304(%rip), %r12     # 0x58180
movzwl 0x2(%r12), %eax
testl $0x104, %eax            # imm = 0x104
je 0x21e9b
movq %r15, %rdi
movq %rbx, %rsi
movl %r14d, %edx
callq 0x2041a
xorl %ebp, %ebp
jmp 0x21eb8
leaq 0x26e33(%rip), %rdx     # 0x48cd5
movq %r15, %rdi
movq %rbx, %rsi
movl %r14d, %ecx
movl $0x1, %r8d
callq 0x204e6
movl %eax, %ebp
movq 0x18(%rbx), %rcx
movq 0x8(%rbx), %rax
movq %rax, 0x58(%rsp)
movq 0x10(%rbx), %rsi
movq 0x20(%rbx), %r13
movq %r13, 0x50(%rsp)
subq %rsi, %r13
movq %rcx, 0x60(%rsp)
addq %rcx, %rsi
leal 0x2(%r14), %eax
movl %eax, 0x28(%rsp)
cmpq $0xe, %r13
movq %r14, 0x8(%rsp)
movq %r15, 0x18(%rsp)
movq %rsi, 0x40(%rsp)
jb 0x21f25
movq %r13, 0x20(%rsp)
movq %r15, %rdi
callq 0x201f8
movq %rax, %rbx
testb $0x40, (%r12)
jne 0x21f2c
movq %r12, %r13
leal 0x4(%r14), %edx
movq %r15, %rdi
movq %rbx, %rsi
callq 0x2041a
jmp 0x21f4d
xorl %ebx, %ebx
jmp 0x224e3
movq %r12, %r13
leaq 0x26f0e(%rip), %rdx     # 0x48e44
movq %r15, %rdi
movq %rbx, %rsi
movl 0x28(%rsp), %ecx
movl $0x1, %r8d
callq 0x204e6
movl %eax, %ebp
movq 0x10(%rbx), %r14
addq 0x18(%rbx), %r14
movq 0x20(%rbx), %rax
movq %rax, 0x30(%rsp)
movb 0x8(%rbx), %r12b
movq %r15, %rdi
movl $0x4d4d, %esi           # imm = 0x4D4D
movq %r14, %rdx
callq 0x4574
movzwl 0x2(%r13), %ecx
movb %r12b, 0x38(%rsp)
movsbl %r12b, %edx
movl %edx, (%rsp)
movzwl %ax, %eax
movl %eax, 0x10(%rsp)
testl $0x104, %ecx            # imm = 0x104
movq %rbx, 0x48(%rsp)
je 0x21ff7
movq 0x8(%rsp), %rax
leal 0xa(%rax), %edx
leaq 0x229db(%rip), %rcx     # 0x44981
movl $0x4003333, %edi        # imm = 0x4003333
movq %r14, %rsi
callq 0x5605
movzwl (%r13), %eax
testl $0x3003, %eax           # imm = 0x3003
movq %r13, %r12
je 0x21fd5
leaq 0x26e89(%rip), %rdi     # 0x48e52
movl (%rsp), %esi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
movq 0x20(%rsp), %r13
testb $0x30, (%r12)
je 0x21fff
leaq 0x22f72(%rip), %rdi     # 0x44f5a
movl 0x10(%rsp), %esi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
jmp 0x21fff
movq %r13, %r12
movq 0x20(%rsp), %r13
movl %ebp, %edi
callq 0x16b56
movl %eax, %ebp
leaq 0x2(%r14), %rbx
movq %r15, %rdi
movl $0x4d4d, %esi           # imm = 0x4D4D
movq %rbx, %rdx
callq 0x4574
movzwl 0x2(%r12), %ecx
movzwl %ax, %eax
movl %eax, 0x20(%rsp)
testl $0x104, %ecx            # imm = 0x104
je 0x22087
movq 0x8(%rsp), %rax
leal 0xa(%rax), %edx
leaq 0x22941(%rip), %rcx     # 0x44981
movl $0x4003333, %edi        # imm = 0x4003333
movq %rbx, %rsi
callq 0x5605
movzwl (%r12), %eax
testl $0x3003, %eax           # imm = 0x3003
je 0x2206c
leaq 0x26df8(%rip), %rdi     # 0x48e58
movl (%rsp), %esi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
testb $0x30, (%r12)
je 0x22087
leaq 0x22ee0(%rip), %rdi     # 0x44f5a
movl 0x20(%rsp), %esi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
movl %ebp, %edi
callq 0x16b56
movl %eax, %ebp
leaq 0x4(%r14), %r15
movq 0x18(%rsp), %rdi
movl $0x4d4d, %esi           # imm = 0x4D4D
movq %r15, %rdx
callq 0x4574
movl %eax, %ebx
movzwl 0x2(%r12), %eax
testl $0x104, %eax            # imm = 0x104
je 0x2210a
movq 0x8(%rsp), %rax
leal 0xa(%rax), %edx
leaq 0x228bd(%rip), %rcx     # 0x44981
movl $0x4003333, %edi        # imm = 0x4003333
movq %r15, %rsi
callq 0x5605
movzwl (%r12), %eax
testl $0x3003, %eax           # imm = 0x3003
je 0x220f0
leaq 0x26d7a(%rip), %rdi     # 0x48e5e
movl (%rsp), %esi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
testb $0x30, (%r12)
je 0x2210a
movzwl %bx, %esi
leaq 0x22e59(%rip), %rdi     # 0x44f5a
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
movl %ebp, %edi
callq 0x16b56
movl %eax, %ebp
leaq 0x6(%r14), %r15
movq 0x18(%rsp), %rdi
movl $0x4d4d, %esi           # imm = 0x4D4D
movq %r15, %rdx
callq 0x4574
movl %eax, %ebx
movzwl 0x2(%r12), %eax
testl $0x104, %eax            # imm = 0x104
je 0x2218d
movq 0x8(%rsp), %rax
leal 0xa(%rax), %edx
leaq 0x2283a(%rip), %rcx     # 0x44981
movl $0x4003333, %edi        # imm = 0x4003333
movq %r15, %rsi
callq 0x5605
movzwl (%r12), %eax
testl $0x3003, %eax           # imm = 0x3003
je 0x22173
leaq 0x26cfd(%rip), %rdi     # 0x48e64
movl (%rsp), %esi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
testb $0x30, (%r12)
je 0x2218d
movzwl %bx, %esi
leaq 0x22dd6(%rip), %rdi     # 0x44f5a
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
movl %ebp, %edi
callq 0x16b56
movl %eax, %ebp
leaq 0x8(%r14), %r15
movq 0x18(%rsp), %rdi
movq %r15, %rsi
callq 0x4d44
movzwl 0x2(%r12), %ecx
movzwl %ax, %ebx
testl $0x104, %ecx            # imm = 0x104
je 0x2220c
movq 0x8(%rsp), %rax
leal 0xa(%rax), %edx
leaq 0x227ba(%rip), %rcx     # 0x44981
movl $0x4003333, %edi        # imm = 0x4003333
movq %r15, %rsi
callq 0x5605
movzwl (%r12), %eax
testl $0x3003, %eax           # imm = 0x3003
je 0x221f3
leaq 0x26c83(%rip), %rdi     # 0x48e6a
movl (%rsp), %esi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
testb $0x30, (%r12)
je 0x2220c
leaq 0x22d59(%rip), %rdi     # 0x44f5a
movl %ebx, %esi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
movb 0x38(%rsp), %dl
cmpb $0x64, %dl
leaq 0x2b5a5(%rip), %rax     # 0x4d7bf
leaq 0x26c57(%rip), %rcx     # 0x48e78
cmoveq %rax, %rcx
cmpb $0x63, %dl
leaq 0x26c41(%rip), %r15     # 0x48e70
cmovneq %rcx, %r15
cvtsi2sdl 0x10(%rsp), %xmm0
movsd %xmm0, 0x38(%rsp)
cvtsi2sd %ebx, %xmm1
movsd 0x2699d(%rip), %xmm0    # 0x48be8
callq 0x30e0
movzwl 0x2(%r12), %eax
testl $0x104, %eax            # imm = 0x104
jne 0x22287
movq 0x8(%rsp), %rax
leal 0xa(%rax), %edx
leaq 0x1f6ed(%rip), %rcx     # 0x41959
movl $0x4003333, %edi        # imm = 0x4003333
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
movsd %xmm0, 0x10(%rsp)
callq 0x5605
movsd 0x10(%rsp), %xmm0
mulsd 0x38(%rsp), %xmm0
xorps %xmm1, %xmm1
cvtsi2sdl 0x20(%rsp), %xmm1
movq (%r12), %rax
testl $0x3003, %eax           # imm = 0x3003
je 0x22319
testl $0x1040000, %eax        # imm = 0x1040000
movsd %xmm0, 0x10(%rsp)
movsd %xmm1, 0x20(%rsp)
je 0x222bd
leaq 0x26bdf(%rip), %rbx     # 0x48e9a
jmp 0x222fe
leaq 0x26bc1(%rip), %rbx     # 0x48e85
testb $0x40, %al
je 0x222fe
leaq 0x26b75(%rip), %rdi     # 0x48e44
xorl %eax, %eax
callq 0x3120
movl %eax, 0x38(%rsp)
movq 0x48(%rsp), %rax
movq 0x8(%rax), %rdi
xorl %esi, %esi
callq 0x2033b
leaq 0x1f6a6(%rip), %rdi     # 0x41997
xorl %eax, %eax
callq 0x3120
addl 0x38(%rsp), %eax
addl %eax, %ebp
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
movsd 0x10(%rsp), %xmm0
movsd 0x20(%rsp), %xmm1
addq $0x9, %r14
divsd %xmm1, %xmm0
testb $0x30, (%r12)
movsd %xmm0, 0x10(%rsp)
je 0x2233e
leaq 0x26b81(%rip), %rdi     # 0x48eb6
movb $0x1, %al
callq 0x3120
addl %eax, %ebp
movl %ebp, %edi
callq 0x16b56
movl %eax, %ebp
movq 0x18(%rsp), %rdi
movq %r14, %rsi
callq 0x4d44
movzwl 0x2(%r12), %ecx
movzwl %ax, %ebx
testl $0x104, %ecx            # imm = 0x104
je 0x223b9
movq 0x8(%rsp), %rax
leal 0xa(%rax), %edx
leaq 0x2260d(%rip), %rcx     # 0x44981
movl $0x4003333, %edi        # imm = 0x4003333
movq %r14, %rsi
callq 0x5605
movzwl (%r12), %eax
testl $0x3003, %eax           # imm = 0x3003
je 0x223a0
leaq 0x26b39(%rip), %rdi     # 0x48ecd
movl (%rsp), %esi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
testb $0x30, (%r12)
je 0x223b9
leaq 0x22bac(%rip), %rdi     # 0x44f5a
movl %ebx, %esi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
xorps %xmm1, %xmm1
cvtsi2sd %ebx, %xmm1
movsd 0x26820(%rip), %xmm0    # 0x48be8
callq 0x30e0
movzwl 0x2(%r12), %eax
testl $0x104, %eax            # imm = 0x104
jne 0x223f8
movq 0x8(%rsp), %rax
leal 0xa(%rax), %edx
leaq 0x1f570(%rip), %rcx     # 0x41959
movl $0x4003333, %edi        # imm = 0x4003333
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x5605
movq (%r12), %rax
testl $0x3003, %eax           # imm = 0x3003
movq 0x30(%rsp), %rbx
je 0x2246b
testl $0x1040000, %eax        # imm = 0x1040000
je 0x22418
leaq 0x26ad4(%rip), %rbx     # 0x48eea
jmp 0x22457
leaq 0x26ab4(%rip), %rbx     # 0x48ed3
testb $0x40, %al
je 0x22457
leaq 0x26a1a(%rip), %rdi     # 0x48e44
xorl %eax, %eax
callq 0x3120
movl %eax, (%rsp)
movq 0x48(%rsp), %rax
movq 0x8(%rax), %rdi
xorl %esi, %esi
callq 0x2033b
leaq 0x1f54c(%rip), %rdi     # 0x41997
xorl %eax, %eax
callq 0x3120
addl (%rsp), %eax
addl %eax, %ebp
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
movq 0x30(%rsp), %rbx
testb $0x30, (%r12)
movq 0x18(%rsp), %r15
movsd 0x10(%rsp), %xmm0
je 0x2248d
leaq 0x26a32(%rip), %rdi     # 0x48eb6
movb $0x1, %al
callq 0x3120
addl %eax, %ebp
subq %rbx, %r13
movl %ebp, %edi
callq 0x16b56
movl %eax, %ebp
testb $0x4, 0x2(%r12)
jne 0x224a8
movq 0x8(%rsp), %r14
jmp 0x224e3
movq 0x8(%rsp), %rax
leal 0x4(%rax), %edx
leaq 0x224ca(%rip), %rcx     # 0x44981
movl $0x40000, %edi          # imm = 0x40000
movq %r14, %rsi
movq %rax, %r14
callq 0x5605
movq 0x48(%rsp), %rax
movq 0x8(%rax), %rdi
movl $0x1, %esi
callq 0x2033b
movl %ebp, %edi
callq 0x16b56
movl %eax, %ebp
movl %ebp, %edi
callq 0x16b56
movl %eax, %ebp
cmpq $0xe, %r13
jb 0x22a57
addq 0x40(%rsp), %rbx
movq %r15, %rdi
movq %rbx, %rsi
callq 0x201f8
movq %rax, %r13
testb $0x40, (%r12)
jne 0x22521
leal 0x4(%r14), %edx
movq %r15, %rdi
movq %r13, %rsi
callq 0x2041a
jmp 0x2253f
leaq 0x2691c(%rip), %rdx     # 0x48e44
movq %r15, %rdi
movq %r13, %rsi
movl 0x28(%rsp), %ecx
movl $0x1, %r8d
callq 0x204e6
movl %eax, %ebp
movq %r15, %rdi
movq 0x10(%r13), %r15
addq 0x18(%r13), %r15
movb 0x8(%r13), %bl
movl $0x4d4d, %esi           # imm = 0x4D4D
movq %r15, %rdx
callq 0x4574
movzwl 0x2(%r12), %ecx
movb %bl, (%rsp)
movsbl %bl, %edx
movl %edx, 0x10(%rsp)
movzwl %ax, %ebx
testl $0x104, %ecx            # imm = 0x104
movl %ebx, 0x40(%rsp)
je 0x225cb
leal 0xa(%r14), %edx
leaq 0x223fc(%rip), %rcx     # 0x44981
movl $0x4003333, %edi        # imm = 0x4003333
movq %r15, %rsi
callq 0x5605
movzwl (%r12), %eax
testl $0x3003, %eax           # imm = 0x3003
je 0x225b2
leaq 0x268ad(%rip), %rdi     # 0x48e52
movl 0x10(%rsp), %esi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
testb $0x30, (%r12)
je 0x225cb
leaq 0x2299a(%rip), %rdi     # 0x44f5a
movl %ebx, %esi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
movl %ebp, %edi
callq 0x16b56
movl %eax, %ebp
leaq 0x2(%r15), %rbx
movq 0x18(%rsp), %rdi
movl $0x4d4d, %esi           # imm = 0x4D4D
movq %rbx, %rdx
callq 0x4574
movzwl 0x2(%r12), %ecx
movzwl %ax, %eax
movl %eax, 0x28(%rsp)
testl $0x104, %ecx            # imm = 0x104
je 0x22652
leal 0xa(%r14), %edx
leaq 0x22377(%rip), %rcx     # 0x44981
movl $0x4003333, %edi        # imm = 0x4003333
movq %rbx, %rsi
callq 0x5605
movzwl (%r12), %eax
testl $0x3003, %eax           # imm = 0x3003
je 0x22637
leaq 0x2682e(%rip), %rdi     # 0x48e58
movl 0x10(%rsp), %esi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
testb $0x30, (%r12)
je 0x22652
leaq 0x22915(%rip), %rdi     # 0x44f5a
movl 0x28(%rsp), %esi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
movl %ebp, %edi
callq 0x16b56
movl %eax, %ebp
leaq 0x4(%r15), %r14
movq 0x18(%rsp), %rdi
movl $0x4d4d, %esi           # imm = 0x4D4D
movq %r14, %rdx
callq 0x4574
movl %eax, %ebx
movzwl 0x2(%r12), %eax
testl $0x104, %eax            # imm = 0x104
je 0x226d6
movq 0x8(%rsp), %rax
leal 0xa(%rax), %edx
leaq 0x222f2(%rip), %rcx     # 0x44981
movl $0x4003333, %edi        # imm = 0x4003333
movq %r14, %rsi
callq 0x5605
movzwl (%r12), %eax
testl $0x3003, %eax           # imm = 0x3003
je 0x226bc
leaq 0x267af(%rip), %rdi     # 0x48e5e
movl 0x10(%rsp), %esi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
testb $0x30, (%r12)
je 0x226d6
movzwl %bx, %esi
leaq 0x2288d(%rip), %rdi     # 0x44f5a
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
movl %ebp, %edi
callq 0x16b56
movl %eax, %ebp
leaq 0x6(%r15), %r14
movq 0x18(%rsp), %rdi
movl $0x4d4d, %esi           # imm = 0x4D4D
movq %r14, %rdx
callq 0x4574
movl %eax, %ebx
movzwl 0x2(%r12), %eax
testl $0x104, %eax            # imm = 0x104
movq %r13, 0x30(%rsp)
je 0x2275f
movq 0x8(%rsp), %rax
leal 0xa(%rax), %edx
leaq 0x22269(%rip), %rcx     # 0x44981
movl $0x4003333, %edi        # imm = 0x4003333
movq %r14, %rsi
callq 0x5605
movzwl (%r12), %eax
testl $0x3003, %eax           # imm = 0x3003
je 0x22745
leaq 0x2672c(%rip), %rdi     # 0x48e64
movl 0x10(%rsp), %esi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
testb $0x30, (%r12)
je 0x2275f
movzwl %bx, %esi
leaq 0x22804(%rip), %rdi     # 0x44f5a
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
movl %ebp, %edi
callq 0x16b56
movl %eax, %r13d
leaq 0x8(%r15), %rbx
movq 0x18(%rsp), %rdi
movq %rbx, %rsi
callq 0x4d44
movzwl 0x2(%r12), %ecx
movzwl %ax, %r14d
testl $0x104, %ecx            # imm = 0x104
je 0x227ea
movq 0x8(%rsp), %rax
leal 0xa(%rax), %edx
leaq 0x221e6(%rip), %rcx     # 0x44981
movl $0x4003333, %edi        # imm = 0x4003333
movq %rbx, %rsi
callq 0x5605
movzwl (%r12), %eax
testl $0x3003, %eax           # imm = 0x3003
je 0x227c9
leaq 0x266af(%rip), %rdi     # 0x48e6a
movl 0x10(%rsp), %esi
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
testb $0x30, (%r12)
movl 0x40(%rsp), %ebx
je 0x227ee
leaq 0x2277f(%rip), %rdi     # 0x44f5a
movl %r14d, %esi
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
jmp 0x227ee
movl 0x40(%rsp), %ebx
movb (%rsp), %dl
cmpb $0x64, %dl
leaq 0x2afc4(%rip), %rax     # 0x4d7bf
leaq 0x26676(%rip), %rcx     # 0x48e78
cmoveq %rax, %rcx
cmpb $0x63, %dl
leaq 0x26660(%rip), %rbp     # 0x48e70
cmovneq %rcx, %rbp
cvtsi2sd %ebx, %xmm0
movsd %xmm0, (%rsp)
cvtsi2sd %r14d, %xmm1
movsd 0x263be(%rip), %xmm0    # 0x48be8
callq 0x30e0
mulsd (%rsp), %xmm0
xorps %xmm1, %xmm1
cvtsi2sdl 0x28(%rsp), %xmm1
movq (%r12), %rax
testl $0x3003, %eax           # imm = 0x3003
je 0x22868
testl $0x1040000, %eax        # imm = 0x1040000
movq 0x8(%rsp), %r14
movsd %xmm0, (%rsp)
movsd %xmm1, 0x28(%rsp)
je 0x2286f
leaq 0x26634(%rip), %rbx     # 0x48e9a
jmp 0x228b4
movq 0x8(%rsp), %r14
jmp 0x228cf
leaq 0x2660f(%rip), %rbx     # 0x48e85
testb $0x40, %al
je 0x228b4
leaq 0x265c3(%rip), %rdi     # 0x48e44
xorl %eax, %eax
callq 0x3120
movl %eax, %r14d
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rdi
xorl %esi, %esi
callq 0x2033b
leaq 0x1f0f5(%rip), %rdi     # 0x41997
xorl %eax, %eax
callq 0x3120
addl %r14d, %eax
movq 0x8(%rsp), %r14
addl %eax, %r13d
movq %rbx, %rdi
movq %rbp, %rsi
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
movsd (%rsp), %xmm0
movsd 0x28(%rsp), %xmm1
addq $0x9, %r15
divsd %xmm1, %xmm0
testb $0x30, (%r12)
movsd %xmm0, (%rsp)
je 0x228f4
leaq 0x265cc(%rip), %rdi     # 0x48eb6
movb $0x1, %al
callq 0x3120
addl %eax, %r13d
movl %r13d, %edi
callq 0x16b56
movl %eax, %r13d
movq 0x18(%rsp), %rdi
movq %r15, %rsi
callq 0x4d44
movzwl 0x2(%r12), %ecx
movzwl %ax, %ebx
testl $0x104, %ecx            # imm = 0x104
je 0x22970
leal 0xa(%r14), %edx
leaq 0x22059(%rip), %rcx     # 0x44981
movl $0x4003333, %edi        # imm = 0x4003333
movq %r15, %rsi
callq 0x5605
movzwl (%r12), %eax
testl $0x3003, %eax           # imm = 0x3003
je 0x22956
leaq 0x26585(%rip), %rdi     # 0x48ecd
movl 0x10(%rsp), %esi
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
testb $0x30, (%r12)
je 0x22970
leaq 0x225f6(%rip), %rdi     # 0x44f5a
movl %ebx, %esi
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
xorps %xmm1, %xmm1
cvtsi2sd %ebx, %xmm1
movsd 0x26269(%rip), %xmm0    # 0x48be8
callq 0x30e0
movq (%r12), %rax
testl $0x3003, %eax           # imm = 0x3003
je 0x229f4
testl $0x1040000, %eax        # imm = 0x1040000
je 0x2299f
leaq 0x2654d(%rip), %rbx     # 0x48eea
jmp 0x229e4
leaq 0x2652d(%rip), %rbx     # 0x48ed3
testb $0x40, %al
je 0x229e4
leaq 0x26493(%rip), %rdi     # 0x48e44
xorl %eax, %eax
callq 0x3120
movl %eax, %r14d
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rdi
xorl %esi, %esi
callq 0x2033b
leaq 0x1efc5(%rip), %rdi     # 0x41997
xorl %eax, %eax
callq 0x3120
addl %r14d, %eax
movq 0x8(%rsp), %r14
addl %eax, %r13d
movq %rbx, %rdi
movq %rbp, %rsi
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
movsd (%rsp), %xmm0
testb $0x30, (%r12)
je 0x22a11
leaq 0x264af(%rip), %rdi     # 0x48eb6
movb $0x1, %al
callq 0x3120
addl %eax, %r13d
movl %r13d, %edi
callq 0x16b56
movl %eax, %ebp
testb $0x4, 0x2(%r12)
je 0x22a57
leal 0x4(%r14), %edx
leaq 0x1e6ae(%rip), %rcx     # 0x410dc
movl $0x40000, %edi          # imm = 0x40000
movq %r15, %rsi
callq 0x5605
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rdi
movl $0x1, %esi
callq 0x2033b
movl %ebp, %edi
callq 0x16b56
movl %eax, %ebp
movq 0x50(%rsp), %rbx
addq 0x60(%rsp), %rbx
testb $0x4, 0x2(%r12)
je 0x22a99
movl %ebp, %edi
callq 0x16b56
movl %eax, %ebp
leaq -0x1(%rbx), %rsi
leaq 0x21f04(%rip), %rcx     # 0x44981
movl $0x4043333, %edi        # imm = 0x4043333
movl %r14d, %edx
callq 0x5605
movq 0x58(%rsp), %rdi
movl $0x1, %esi
callq 0x2033b
movl %ebp, %edi
callq 0x16b56
movq %rbx, %rax
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq