// File: /workspace/github_c_makefile_star2_O3/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, %ebp
movq %rsi, %rbx
movq %rdi, %r13
leaq 0x35d2e(%rip), %rax     # 0x58180
movzwl 0x2(%rax), %eax
testl $0x104, %eax            # imm = 0x104
je 0x2246f
movq %r13, %rdi
movq %rbx, %rsi
movl %ebp, %edx
callq 0x209e0
xorl %r14d, %r14d
jmp 0x2248c
leaq 0x2689f(%rip), %rdx     # 0x48d15
movq %r13, %rdi
movq %rbx, %rsi
movl %ebp, %ecx
movl $0x1, %r8d
callq 0x20aa9
movl %eax, %r14d
movq 0x18(%rbx), %r12
movq 0x8(%rbx), %rax
movq %rax, 0x60(%rsp)
movq 0x10(%rbx), %rsi
movq 0x20(%rbx), %rbx
movq %rbx, %rax
subq %rsi, %rax
cmpq $0xe, %rax
jb 0x230ab
movl %r14d, (%rsp)
movq %rax, 0x20(%rsp)
addq %r12, %rsi
movq %r12, %r14
leal 0x2(%rbp), %r12d
movq %r13, %rdi
movq %rsi, 0x58(%rsp)
callq 0x207bc
movq %rax, %r15
leaq 0x35ca5(%rip), %rax     # 0x58180
testb $0x40, (%rax)
movq %r14, 0x40(%rsp)
movl %r12d, 0x54(%rsp)
jne 0x224fa
leal 0x4(%rbp), %edx
movq %r13, %rdi
movq %r15, %rsi
callq 0x209e0
jmp 0x22518
leaq 0x26983(%rip), %rdx     # 0x48e84
movq %r13, %rdi
movq %r15, %rsi
movl %r12d, %ecx
movl $0x1, %r8d
callq 0x20aa9
movl %eax, (%rsp)
movq %r13, %rdi
movq 0x10(%r15), %r13
addq 0x18(%r15), %r13
movq 0x20(%r15), %rax
movq %rax, 0x28(%rsp)
movq %r15, 0x38(%rsp)
movb 0x8(%r15), %r14b
movq %rdi, 0x18(%rsp)
movl $0x4d4d, %esi           # imm = 0x4D4D
movq %r13, %rdx
callq 0x45af
leaq 0x35c32(%rip), %r12     # 0x58180
movzwl 0x2(%r12), %ecx
movb %r14b, 0x10(%rsp)
movsbl %r14b, %edx
movl %edx, 0x8(%rsp)
movzwl %ax, %r14d
testl $0x104, %ecx            # imm = 0x104
movq %rbx, 0x48(%rsp)
movl %r14d, 0x30(%rsp)
je 0x225ce
leal 0xa(%rbp), %edx
leaq 0x22444(%rip), %rcx     # 0x449c5
movl $0x4003333, %edi        # imm = 0x4003333
movq %r13, %rsi
callq 0x55eb
movq (%r12), %rax
testl $0x3003, %eax           # imm = 0x3003
je 0x225b2
leaq 0x268f2(%rip), %rdi     # 0x48e92
movl 0x8(%rsp), %esi
xorl %eax, %eax
callq 0x3120
addl %eax, (%rsp)
movq (%r12), %rax
testb $0x30, %al
je 0x225ce
leaq 0x229e1(%rip), %rdi     # 0x44f9e
movl %r14d, %esi
xorl %eax, %eax
callq 0x3120
movl (%rsp), %edi
addl %eax, %edi
jmp 0x225d1
movl (%rsp), %edi
callq 0x1707a
movl %eax, %ebx
leaq 0x2(%r13), %r14
movq 0x18(%rsp), %rdi
movl $0x4d4d, %esi           # imm = 0x4D4D
movq %r14, %rdx
callq 0x45af
leaq 0x35b8b(%rip), %r12     # 0x58180
movzwl 0x2(%r12), %ecx
movzwl %ax, %r15d
testl $0x104, %ecx            # imm = 0x104
movq %rbp, (%rsp)
je 0x2265c
leal 0xa(%rbp), %edx
leaq 0x223b0(%rip), %rcx     # 0x449c5
movl $0x4003333, %edi        # imm = 0x4003333
movq %r14, %rsi
callq 0x55eb
movq (%r12), %rax
testl $0x3003, %eax           # imm = 0x3003
je 0x22645
leaq 0x26864(%rip), %rdi     # 0x48e98
movl 0x8(%rsp), %esi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
movq (%r12), %rax
testb $0x30, %al
je 0x2265c
leaq 0x2294e(%rip), %rdi     # 0x44f9e
movl %r15d, %esi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
movl %ebx, %edi
callq 0x1707a
movl %eax, %ebx
leaq 0x4(%r13), %r14
movq 0x18(%rsp), %rdi
movl $0x4d4d, %esi           # imm = 0x4D4D
movq %r14, %rdx
callq 0x45af
movl %eax, %ebp
leaq 0x35afc(%rip), %r12     # 0x58180
movzwl 0x2(%r12), %eax
testl $0x104, %eax            # imm = 0x104
je 0x226e6
movq (%rsp), %rax
leal 0xa(%rax), %edx
leaq 0x22326(%rip), %rcx     # 0x449c5
movl $0x4003333, %edi        # imm = 0x4003333
movq %r14, %rsi
callq 0x55eb
movq (%r12), %rax
testl $0x3003, %eax           # imm = 0x3003
je 0x226cf
leaq 0x267e0(%rip), %rdi     # 0x48e9e
movl 0x8(%rsp), %esi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
movq (%r12), %rax
testb $0x30, %al
je 0x226e6
movzwl %bp, %esi
leaq 0x228c1(%rip), %rdi     # 0x44f9e
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
movl %ebx, %edi
callq 0x1707a
movl %eax, %ebx
leaq 0x6(%r13), %r14
movq 0x18(%rsp), %rdi
movl $0x4d4d, %esi           # imm = 0x4D4D
movq %r14, %rdx
callq 0x45af
movl %eax, %ebp
leaq 0x35a72(%rip), %r12     # 0x58180
movzwl 0x2(%r12), %eax
testl $0x104, %eax            # imm = 0x104
je 0x22770
movq (%rsp), %rax
leal 0xa(%rax), %edx
leaq 0x2229c(%rip), %rcx     # 0x449c5
movl $0x4003333, %edi        # imm = 0x4003333
movq %r14, %rsi
callq 0x55eb
movq (%r12), %rax
testl $0x3003, %eax           # imm = 0x3003
je 0x22759
leaq 0x2675c(%rip), %rdi     # 0x48ea4
movl 0x8(%rsp), %esi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
movq (%r12), %rax
testb $0x30, %al
je 0x22770
movzwl %bp, %esi
leaq 0x22837(%rip), %rdi     # 0x44f9e
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
movl %ebx, %edi
callq 0x1707a
movl %eax, %ebx
leaq 0x8(%r13), %r14
movq 0x18(%rsp), %rdi
movq %r14, %rsi
callq 0x4d48
leaq 0x359ef(%rip), %r12     # 0x58180
movzwl 0x2(%r12), %ecx
movzwl %ax, %ebp
testl $0x104, %ecx            # imm = 0x104
je 0x227f6
movq (%rsp), %rax
leal 0xa(%rax), %edx
leaq 0x22215(%rip), %rcx     # 0x449c5
movl $0x4003333, %edi        # imm = 0x4003333
movq %r14, %rsi
callq 0x55eb
movq (%r12), %rax
testl $0x3003, %eax           # imm = 0x3003
je 0x227e0
leaq 0x266db(%rip), %rdi     # 0x48eaa
movl 0x8(%rsp), %esi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
movq (%r12), %rax
testb $0x30, %al
je 0x227f6
leaq 0x227b3(%rip), %rdi     # 0x44f9e
movl %ebp, %esi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
movb 0x10(%rsp), %cl
cmpb $0x64, %cl
leaq 0x2affb(%rip), %rax     # 0x4d7ff
leaq 0x266ad(%rip), %r14     # 0x48eb8
cmoveq %rax, %r14
cmpb $0x63, %cl
leaq 0x26697(%rip), %rax     # 0x48eb0
cmoveq %rax, %r14
cvtsi2sdl 0x30(%rsp), %xmm0
movsd %xmm0, 0x30(%rsp)
cvtsi2sd %ebp, %xmm1
movsd 0x263f3(%rip), %xmm0    # 0x48c28
callq 0x30e0
leaq 0x3593f(%rip), %rax     # 0x58180
movq (%rax), %rax
testl $0x1040000, %eax        # imm = 0x1040000
movq (%rsp), %rcx
jne 0x2287e
leal 0xa(%rcx), %edx
leaq 0x1f100(%rip), %rcx     # 0x41959
movl $0x4003333, %edi        # imm = 0x4003333
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
movsd %xmm0, 0x10(%rsp)
callq 0x55eb
movsd 0x10(%rsp), %xmm0
leaq 0x35905(%rip), %rax     # 0x58180
movq (%rax), %rax
mulsd 0x30(%rsp), %xmm0
xorps %xmm1, %xmm1
cvtsi2sd %r15d, %xmm1
testl $0x3003, %eax           # imm = 0x3003
je 0x22909
testl $0x1040000, %eax        # imm = 0x1040000
movsd %xmm0, 0x10(%rsp)
movsd %xmm1, 0x30(%rsp)
je 0x228af
leaq 0x2662d(%rip), %rbp     # 0x48eda
jmp 0x228ee
leaq 0x2660f(%rip), %rbp     # 0x48ec5
testb $0x40, %al
je 0x228ee
leaq 0x265c3(%rip), %rdi     # 0x48e84
xorl %eax, %eax
callq 0x3120
movl %eax, %r15d
movq 0x38(%rsp), %rax
movq 0x8(%rax), %rdi
xorl %esi, %esi
callq 0x208ff
leaq 0x1f0b5(%rip), %rdi     # 0x41997
xorl %eax, %eax
callq 0x3120
addl %r15d, %eax
addl %eax, %ebx
movq %rbp, %rdi
movq %r14, %rsi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
movsd 0x10(%rsp), %xmm0
movsd 0x30(%rsp), %xmm1
addq $0x9, %r13
divsd %xmm1, %xmm0
leaq 0x35868(%rip), %rax     # 0x58180
testb $0x30, (%rax)
movsd %xmm0, 0x10(%rsp)
je 0x22933
leaq 0x265cc(%rip), %rdi     # 0x48ef6
movb $0x1, %al
callq 0x3120
addl %eax, %ebx
movl %ebx, %edi
callq 0x1707a
movl %eax, %ebx
movq 0x18(%rsp), %rdi
movq %r13, %rsi
callq 0x4d48
leaq 0x35830(%rip), %r12     # 0x58180
movzwl 0x2(%r12), %ecx
movzwl %ax, %ebp
testl $0x104, %ecx            # imm = 0x104
je 0x229bc
movq (%rsp), %rax
leal 0xa(%rax), %edx
leaq 0x22056(%rip), %rcx     # 0x449c5
movl $0x4003333, %edi        # imm = 0x4003333
movq %r13, %rsi
callq 0x55eb
movq (%r12), %rax
testl $0x3003, %eax           # imm = 0x3003
je 0x2299f
leaq 0x2657f(%rip), %rdi     # 0x48f0d
movl 0x8(%rsp), %esi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
movq (%r12), %rax
testb $0x30, %al
movq 0x28(%rsp), %r12
je 0x229c1
leaq 0x225ef(%rip), %rdi     # 0x44f9e
movl %ebp, %esi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
jmp 0x229c1
movq 0x28(%rsp), %r12
xorps %xmm1, %xmm1
cvtsi2sd %ebp, %xmm1
movsd 0x26258(%rip), %xmm0    # 0x48c28
callq 0x30e0
leaq 0x357a4(%rip), %rax     # 0x58180
movq (%rax), %rax
testl $0x1040000, %eax        # imm = 0x1040000
movq (%rsp), %r15
jne 0x22a0e
leal 0xa(%r15), %edx
leaq 0x1ef64(%rip), %rcx     # 0x41959
movl $0x4003333, %edi        # imm = 0x4003333
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x55eb
leaq 0x35775(%rip), %rax     # 0x58180
movq (%rax), %rax
testl $0x3003, %eax           # imm = 0x3003
movq 0x20(%rsp), %rbp
je 0x22a81
testl $0x1040000, %eax        # imm = 0x1040000
je 0x22a2a
leaq 0x26502(%rip), %rbp     # 0x48f2a
jmp 0x22a69
leaq 0x264e2(%rip), %rbp     # 0x48f13
testb $0x40, %al
je 0x22a69
leaq 0x26448(%rip), %rdi     # 0x48e84
xorl %eax, %eax
callq 0x3120
movl %eax, %r15d
movq 0x38(%rsp), %rax
movq 0x8(%rax), %rdi
xorl %esi, %esi
callq 0x208ff
leaq 0x1ef3a(%rip), %rdi     # 0x41997
xorl %eax, %eax
callq 0x3120
addl %r15d, %eax
addl %eax, %ebx
movq %rbp, %rdi
movq %r14, %rsi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
movq (%rsp), %r15
movq 0x20(%rsp), %rbp
leaq 0x356f8(%rip), %r14     # 0x58180
testb $0x30, (%r14)
movsd 0x10(%rsp), %xmm0
je 0x22aa4
leaq 0x2645b(%rip), %rdi     # 0x48ef6
movb $0x1, %al
callq 0x3120
addl %eax, %ebx
subq %r12, %rbp
movl %ebx, %edi
callq 0x1707a
movl %eax, %ebx
testb $0x4, 0x2(%r14)
je 0x22aeb
leal 0x4(%r15), %edx
leaq 0x21f03(%rip), %rcx     # 0x449c5
movl $0x40000, %edi          # imm = 0x40000
movq %r13, %rsi
callq 0x55eb
movq 0x38(%rsp), %rax
movq 0x8(%rax), %rdi
movl $0x1, %esi
callq 0x208ff
movl %ebx, %edi
callq 0x1707a
movl %eax, %ebx
movq 0x18(%rsp), %r13
movl %ebx, %edi
callq 0x1707a
movl %eax, %r14d
cmpq $0xe, %rbp
jb 0x22b35
addq 0x58(%rsp), %r12
movq %r13, %rdi
movq %r12, %rsi
callq 0x207bc
movq %rax, %rbx
leaq 0x35666(%rip), %rax     # 0x58180
testb $0x40, (%rax)
movq %r15, %rbp
jne 0x22b47
movl %r14d, %r12d
leal 0x4(%rbp), %edx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x209e0
jmp 0x22b66
movq 0x48(%rsp), %rbx
movq 0x40(%rsp), %r12
movq %r15, %rbp
jmp 0x230b6
leaq 0x26336(%rip), %rdx     # 0x48e84
movq %r13, %rdi
movq %rbx, %rsi
movl 0x54(%rsp), %ecx
movl $0x1, %r8d
callq 0x20aa9
movl %eax, %r12d
movq %r13, %rdi
movq 0x10(%rbx), %r13
addq 0x18(%rbx), %r13
movq %rbx, 0x28(%rsp)
movb 0x8(%rbx), %r15b
movl $0x4d4d, %esi           # imm = 0x4D4D
movq %r13, %rdx
callq 0x45af
leaq 0x355f2(%rip), %rbx     # 0x58180
movzwl 0x2(%rbx), %ecx
movsbl %r15b, %edx
movl %edx, 0x10(%rsp)
movzwl %ax, %r14d
testl $0x104, %ecx            # imm = 0x104
movl %r14d, 0x8(%rsp)
je 0x22bfc
leal 0xa(%rbp), %edx
leaq 0x21e10(%rip), %rcx     # 0x449c5
movl $0x4003333, %edi        # imm = 0x4003333
movq %r13, %rsi
callq 0x55eb
movq (%rbx), %rax
testl $0x3003, %eax           # imm = 0x3003
je 0x22be4
leaq 0x262bf(%rip), %rdi     # 0x48e92
movl 0x10(%rsp), %esi
xorl %eax, %eax
callq 0x3120
addl %eax, %r12d
movq (%rbx), %rax
testb $0x30, %al
je 0x22bfc
leaq 0x223af(%rip), %rdi     # 0x44f9e
movl %r14d, %esi
xorl %eax, %eax
callq 0x3120
addl %eax, %r12d
movl %r12d, %edi
callq 0x1707a
movl %eax, %ebx
leaq 0x2(%r13), %r14
movq 0x18(%rsp), %rdi
movl $0x4d4d, %esi           # imm = 0x4D4D
movq %r14, %rdx
callq 0x45af
leaq 0x3555d(%rip), %r12     # 0x58180
movzwl 0x2(%r12), %ecx
movzwl %ax, %eax
movl %eax, 0x20(%rsp)
testl $0x104, %ecx            # imm = 0x104
je 0x22c8a
leal 0xa(%rbp), %edx
leaq 0x21d83(%rip), %rcx     # 0x449c5
movl $0x4003333, %edi        # imm = 0x4003333
movq %r14, %rsi
callq 0x55eb
movq (%r12), %rax
testl $0x3003, %eax           # imm = 0x3003
je 0x22c72
leaq 0x26237(%rip), %rdi     # 0x48e98
movl 0x10(%rsp), %esi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
movq (%r12), %rax
testb $0x30, %al
je 0x22c8a
leaq 0x22321(%rip), %rdi     # 0x44f9e
movl 0x20(%rsp), %esi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
movl %ebx, %edi
callq 0x1707a
movl %eax, %ebx
leaq 0x4(%r13), %rbp
movq 0x18(%rsp), %rdi
movl $0x4d4d, %esi           # imm = 0x4D4D
movq %rbp, %rdx
callq 0x45af
movl %eax, %r14d
leaq 0x354cd(%rip), %r12     # 0x58180
movzwl 0x2(%r12), %eax
testl $0x104, %eax            # imm = 0x104
je 0x22d16
movq (%rsp), %rax
leal 0xa(%rax), %edx
leaq 0x21cf7(%rip), %rcx     # 0x449c5
movl $0x4003333, %edi        # imm = 0x4003333
movq %rbp, %rsi
callq 0x55eb
movq (%r12), %rax
testl $0x3003, %eax           # imm = 0x3003
je 0x22cfe
leaq 0x261b1(%rip), %rdi     # 0x48e9e
movl 0x10(%rsp), %esi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
movq (%r12), %rax
testb $0x30, %al
je 0x22d16
movzwl %r14w, %esi
leaq 0x22291(%rip), %rdi     # 0x44f9e
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
movl %ebx, %edi
callq 0x1707a
movl %eax, %ebx
leaq 0x6(%r13), %rbp
movq 0x18(%rsp), %rdi
movl $0x4d4d, %esi           # imm = 0x4D4D
movq %rbp, %rdx
callq 0x45af
movl %eax, %r14d
leaq 0x35441(%rip), %r12     # 0x58180
movzwl 0x2(%r12), %eax
testl $0x104, %eax            # imm = 0x104
je 0x22da2
movq (%rsp), %rax
leal 0xa(%rax), %edx
leaq 0x21c6b(%rip), %rcx     # 0x449c5
movl $0x4003333, %edi        # imm = 0x4003333
movq %rbp, %rsi
callq 0x55eb
movq (%r12), %rax
testl $0x3003, %eax           # imm = 0x3003
je 0x22d8a
leaq 0x2612b(%rip), %rdi     # 0x48ea4
movl 0x10(%rsp), %esi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
movq (%r12), %rax
testb $0x30, %al
je 0x22da2
movzwl %r14w, %esi
leaq 0x22205(%rip), %rdi     # 0x44f9e
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
movl %ebx, %edi
callq 0x1707a
movl %eax, %ebx
leaq 0x8(%r13), %rbp
movq 0x18(%rsp), %rdi
movq %rbp, %rsi
callq 0x4d48
leaq 0x353bd(%rip), %r12     # 0x58180
movzwl 0x2(%r12), %ecx
movzwl %ax, %r14d
testl $0x104, %ecx            # imm = 0x104
je 0x22e31
movq (%rsp), %rax
leal 0xa(%rax), %edx
leaq 0x21be2(%rip), %rcx     # 0x449c5
movl $0x4003333, %edi        # imm = 0x4003333
movq %rbp, %rsi
callq 0x55eb
movq (%r12), %rax
testl $0x3003, %eax           # imm = 0x3003
je 0x22e13
leaq 0x260a8(%rip), %rdi     # 0x48eaa
movl 0x10(%rsp), %esi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
movq (%r12), %rax
testb $0x30, %al
movq 0x40(%rsp), %r12
je 0x22e36
leaq 0x2217b(%rip), %rdi     # 0x44f9e
movl %r14d, %esi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
jmp 0x22e36
movq 0x40(%rsp), %r12
cmpb $0x64, %r15b
leaq 0x26077(%rip), %rax     # 0x48eb8
leaq 0x2a9b7(%rip), %rcx     # 0x4d7ff
cmoveq %rcx, %rax
cmpb $0x63, %r15b
movq %rax, %r15
leaq 0x26056(%rip), %rax     # 0x48eb0
cmoveq %rax, %r15
cvtsi2sdl 0x8(%rsp), %xmm0
movsd %xmm0, 0x8(%rsp)
cvtsi2sd %r14d, %xmm1
movsd 0x25db1(%rip), %xmm0    # 0x48c28
callq 0x30e0
mulsd 0x8(%rsp), %xmm0
xorps %xmm1, %xmm1
cvtsi2sdl 0x20(%rsp), %xmm1
leaq 0x352ee(%rip), %r14     # 0x58180
movq (%r14), %rax
testl $0x3003, %eax           # imm = 0x3003
je 0x22f17
testl $0x1040000, %eax        # imm = 0x1040000
movsd %xmm0, 0x8(%rsp)
movsd %xmm1, 0x20(%rsp)
je 0x22eb8
leaq 0x26024(%rip), %r14     # 0x48eda
jmp 0x22ef5
leaq 0x26006(%rip), %r14     # 0x48ec5
testb $0x40, %al
je 0x22ef5
leaq 0x25fba(%rip), %rdi     # 0x48e84
xorl %eax, %eax
callq 0x3120
movl %eax, %ebp
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rdi
xorl %esi, %esi
callq 0x208ff
leaq 0x1eaad(%rip), %rdi     # 0x41997
xorl %eax, %eax
callq 0x3120
addl %ebp, %eax
addl %eax, %ebx
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
leaq 0x35275(%rip), %r14     # 0x58180
movsd 0x8(%rsp), %xmm0
movsd 0x20(%rsp), %xmm1
addq $0x9, %r13
divsd %xmm1, %xmm0
testb $0x30, (%r14)
movsd %xmm0, 0x8(%rsp)
je 0x22f3b
leaq 0x25fc4(%rip), %rdi     # 0x48ef6
movb $0x1, %al
callq 0x3120
addl %eax, %ebx
movl %ebx, %edi
callq 0x1707a
movl %eax, %ebx
movq 0x18(%rsp), %rdi
movq %r13, %rsi
callq 0x4d48
movzwl 0x2(%r14), %ecx
movzwl %ax, %ebp
testl $0x104, %ecx            # imm = 0x104
je 0x22fb3
movq (%rsp), %rax
leal 0xa(%rax), %edx
leaq 0x21a56(%rip), %rcx     # 0x449c5
movl $0x4003333, %edi        # imm = 0x4003333
movq %r13, %rsi
callq 0x55eb
movq (%r14), %rax
testl $0x3003, %eax           # imm = 0x3003
je 0x22f9d
leaq 0x25f80(%rip), %rdi     # 0x48f0d
movl 0x10(%rsp), %esi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
movq (%r14), %rax
testb $0x30, %al
je 0x22fb3
leaq 0x21ff6(%rip), %rdi     # 0x44f9e
movl %ebp, %esi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
xorps %xmm1, %xmm1
cvtsi2sd %ebp, %xmm1
movsd 0x25c66(%rip), %xmm0    # 0x48c28
callq 0x30e0
movq (%r14), %rax
testl $0x3003, %eax           # imm = 0x3003
je 0x22fe5
testl $0x1040000, %eax        # imm = 0x1040000
movq (%rsp), %rbp
je 0x22feb
leaq 0x25f47(%rip), %r14     # 0x48f2a
jmp 0x2302c
movq (%rsp), %rbp
jmp 0x23042
leaq 0x25f21(%rip), %r14     # 0x48f13
testb $0x40, %al
je 0x2302c
leaq 0x25e87(%rip), %rdi     # 0x48e84
xorl %eax, %eax
callq 0x3120
movl %eax, %ebp
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rdi
xorl %esi, %esi
callq 0x208ff
leaq 0x1e97a(%rip), %rdi     # 0x41997
xorl %eax, %eax
callq 0x3120
addl %ebp, %eax
movq (%rsp), %rbp
addl %eax, %ebx
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
leaq 0x3513e(%rip), %r14     # 0x58180
movsd 0x8(%rsp), %xmm0
testb $0x30, (%r14)
je 0x2305e
leaq 0x25ea1(%rip), %rdi     # 0x48ef6
movb $0x1, %al
callq 0x3120
addl %eax, %ebx
movl %ebx, %edi
callq 0x1707a
movl %eax, %r14d
leaq 0x35111(%rip), %rax     # 0x58180
testb $0x4, 0x2(%rax)
jne 0x2307c
movq 0x48(%rsp), %rbx
jmp 0x230b6
leal 0x4(%rbp), %edx
leaq 0x1e056(%rip), %rcx     # 0x410dc
movl $0x40000, %edi          # imm = 0x40000
movq %r13, %rsi
callq 0x55eb
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rdi
movl $0x1, %esi
callq 0x208ff
movq 0x48(%rsp), %rbx
movl %r14d, %edi
callq 0x1707a
movl %eax, %r14d
addq %r12, %rbx
leaq 0x350c0(%rip), %rax     # 0x58180
testb $0x4, 0x2(%rax)
je 0x230f7
movl %r14d, %edi
callq 0x1707a
movl %eax, %r14d
leaq -0x1(%rbx), %rsi
leaq 0x218e9(%rip), %rcx     # 0x449c5
movl $0x4043333, %edi        # imm = 0x4043333
movl %ebp, %edx
callq 0x55eb
movq 0x60(%rsp), %rdi
movl $0x1, %esi
callq 0x208ff
movl %r14d, %edi
callq 0x1707a
movq %rbx, %rax
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq