// File: /workspace/github_c_makefile_star2_O1/hfiguiere[P]exifprobe/maker_canon.c
// Function: canon_customfunctions20D
unsigned long
canon_customfunctions20D(FILE *inptr,unsigned short byteorder,char *tagprefix,
                        unsigned long offset,unsigned long dirlength,int indent)
{
    unsigned long count;
    unsigned long end_offset;
    unsigned short length,value;
    int i,cfn,cfv;
    int chpr = 0;

    end_offset = offset + dirlength;
    length = read_ushort(inptr,byteorder,offset);
    if(PRINT_SECTION)
    {
        chpr += printf(" length %lu",dirlength);
        if(length != dirlength)
        {
            chpr = newline(chpr);
            PUSHCOLOR(RED);
            print_tag_address(SECTION,offset,indent,"@");
            chpr += printf("# WARNING: length %u from segment does not match length %lu from directory",
                        length,dirlength);
            POPCOLOR();
        }
    }
    chpr = newline(chpr);

    if((PRINT_ENTRY))
    {
        offset += 2;
        count = (dirlength / sizeof(unsigned short)) - 1;

        for(i = 0; i < count; ++i)
        {
            value = read_ushort(inptr,byteorder,offset);
            print_tag_address(ENTRY,offset,indent,"@");
            if((PRINT_TAGINFO))
                chpr += printf("%s",tagprefix);
            offset += 2;
            cfn = (value & 0xff00) >> 8;
            cfv = value & 0xff;
            switch(cfn)
            {
                case 0:
                    if((PRINT_TAGINFO))
                        chpr += printf("20D.%02d_%-30.30s",cfn,"SetButtonFunctionWhenShooting");
                    if((PRINT_VALUE))
                    {
                        chpr += printf(" = %u",cfv);
                        print_startvalue();
                        switch(cfv)
                        {
                            case 0: chpr += printf("(no function)"); break;
                            case 1: chpr += printf("change quality"); break;
                            case 2: chpr += printf("change parameters"); break;
                            case 3: chpr += printf("menu display"); break;
                            case 4: chpr += printf("image replay"); break;
                            default: printred("undefined"); break;
                        }
                    }
                    print_endvalue();
                    break;
                case 1:
                    if((PRINT_TAGINFO))
                        chpr += printf("20D.%02d_%-30.30s",cfn,"LongExposureNoiseReduction");
                    if((PRINT_VALUE))
                    {
                        chpr += printf(" = %u",cfv);
                        print_startvalue();
                        switch(cfv)
                        {
                            case 0: chpr += printf("Off"); break;
                            case 1: chpr += printf("On"); break;
                            default: printred("undefined"); break;
                        }
                        print_endvalue();
                    }
                    break;
                case 2:
                    if((PRINT_TAGINFO))
                        chpr += printf("20D.%02d_%-30.30s",cfn,"FlashSyncSpeedAv");
                    if((PRINT_VALUE))
                    {
                        chpr += printf(" = %u",cfv);
                        print_startvalue();
                        switch(cfv)
                        {
                            case 0: chpr += printf("Auto"); break;
                            case 1: chpr += printf("1/200 (fixed)"); break;
                            default: printred("undefined"); break;
                        }
                        print_endvalue();
                    }
                    break;
                case 3:
                    if((PRINT_TAGINFO))
                        chpr += printf("20D.%02d_%-30.30s",cfn,"ShutterAElockButtons");
                    if((PRINT_VALUE))
                    {
                        chpr += printf(" = %u",cfv);
                        print_startvalue();
                        switch(cfv)
                        {
                            case 0: chpr += printf("AF/AE lock"); break;
                            case 1: chpr += printf("AE lock/AF"); break;
                            case 2: chpr += printf("AF/AF lock"); break;
                            case 3: chpr += printf("AE+release/AE+AF"); break;
                            default: printred("undefined"); break;
                        }
                        print_endvalue();
                    }
                    break;
                case 4:
                    if((PRINT_TAGINFO))
                        chpr += printf("20D.%02d_%-30.30s",cfn,"AFAssistLight");
                    if((PRINT_VALUE))
                    {
                        chpr += printf(" = %u",cfv);
                        print_startvalue();
                        switch(cfv)
                        {
                            case 0: chpr += printf("Emits"); break;
                            case 1: chpr += printf("Does not emit"); break;
                            case 2: chpr += printf("Only ext flash emits"); break;
                            default: printred("undefined"); break;
                        }
                        print_endvalue();
                    }
                    break;
                case 5:
                    if((PRINT_TAGINFO))
                        chpr += printf("20D.%02d_%-30.30s",cfn,"ExposureLevelIncrements");
                    if((PRINT_VALUE))
                    {
                        chpr += printf(" = %u",cfv);
                        print_startvalue();
                        switch(cfv)
                        {
                            case 0: chpr += printf("1/2 stop"); break;
                            case 1: chpr += printf("1/3 stop"); break;
                            default: printred("undefined"); break;
                        }
                        print_endvalue();
                    }
                    break;
                case 6:
                    if((PRINT_TAGINFO))
                        chpr += printf("20D.%02d_%-30.30s",cfn,"FlashFiring");
                    if((PRINT_VALUE))
                    {
                        chpr += printf(" = %u",cfv);
                        print_startvalue();
                        switch(cfv)
                        {
                            case 0: chpr += printf("Fires"); break;
                            case 1: chpr += printf("Does not fire"); break;
                            default: printred("undefined"); break;
                        }
                        print_endvalue();
                    }
                    break;
                case 7:
                    if((PRINT_TAGINFO))
                        chpr += printf("20D.%02d_%-30.30s",cfn,"ISOSpeedExpansion");
                    if((PRINT_VALUE))
                    {
                        chpr += printf(" = %u",cfv);
                        print_startvalue();
                        switch(cfv)
                        {
                            case 0: chpr += printf("Off"); break;
                            case 1: chpr += printf("On"); break;
                            default: printred("undefined"); break;
                        }
                        print_endvalue();
                    }
                    break;
                case 8:
                    if((PRINT_TAGINFO))
                        chpr += printf("20D.%02d_%-30.30s",cfn,"AEBSequence");
                    if((PRINT_VALUE))
                    {
                        chpr += printf(" = %u",cfv);
                        print_startvalue();
                        switch(cfv)
                        {
                            case 0: chpr += printf("0,-,+/Enabled"); break;
                            case 1: chpr += printf("0,-,+/Disabled"); break;
                            case 2: chpr += printf("-,0,+/Enabled"); break;
                            case 3: chpr += printf("-,0,+/Disabled"); break;
                            default: printred("undefined"); break;
                        }
                        print_endvalue();
                    }
                    break;
                case 9:
                    if((PRINT_TAGINFO))
                        chpr += printf("20D.%02d_%-30.30s",cfn,"SuperimposedDisplay");
                    if((PRINT_VALUE))
                    {
                        chpr += printf(" = %u",cfv);
                        print_startvalue();
                        switch(cfv)
                        {
                            case 0: chpr += printf("On"); break;
                            case 1: chpr += printf("Off"); break;
                            default: printred("undefined"); break;
                        }
                        print_endvalue();
                    }
                    break;
                case 10:
                    if((PRINT_TAGINFO))
                        chpr += printf("20D.%02d_%-30.30s",cfn,"MenuButtonDisplayPosition");
                    if((PRINT_VALUE))
                    {
                        chpr += printf(" = %u",cfv);
                        print_startvalue();
                        switch(cfv)
                        {
                            case 0: chpr += printf("Top"); break;
                            case 1: chpr += printf("Previous (volatile)"); break;
                            case 2: chpr += printf("Previous"); break;
                            default: printred("undefined"); break;
                        }
                        print_endvalue();
                    }
                    break;
                case 11:
                    if((PRINT_TAGINFO))
                        chpr += printf("20D.%02d_%-30.30s",cfn,"MirrorLockup");
                    if((PRINT_VALUE))
                    {
                        chpr += printf(" = %u",cfv);
                        print_startvalue();
                        switch(cfv)
                        {
                            case 0: chpr += printf("Disabled"); break;
                            case 1: chpr += printf("Enabled"); break;
                            default: printred("undefined"); break;
                        }
                        print_endvalue();
                    }
                    break;
                case 12:
                    if((PRINT_TAGINFO))
                        chpr += printf("20D.%02d_%-30.30s",cfn,"AFPointSelectionMethod");
                    if((PRINT_VALUE))
                    {
                        chpr += printf(" = %u",cfv);
                        print_startvalue();
                        switch(cfv)
                        {
                            case 0: chpr += printf("Normal"); break;
                            case 1: chpr += printf("Multi-controller direct"); break;
                            case 2: chpr += printf("Quick control dial direct"); break;
                            default: printred("undefined"); break;
                        }
                        print_endvalue();
                    }
                    break;
                case 13:
                    if((PRINT_TAGINFO))
                        chpr += printf("20D.%02d_%-30.30s",cfn,"ETTLII");
                    if((PRINT_VALUE))
                    {
                        chpr += printf(" = %u",cfv);
                        print_startvalue();
                        switch(cfv)
                        {
                            case 0: chpr += printf("Evaluative"); break;
                            case 1: chpr += printf("Average"); break;
                            default: printred("undefined"); break;
                        }
                        print_endvalue();
                    }
                    break;
                case 14:
                    if((PRINT_TAGINFO))
                        chpr += printf("20D.%02d_%-30.30s",cfn,"ShutterCurtainSync");
                    if((PRINT_VALUE))
                    {
                        chpr += printf(" = %u",cfv);
                        print_startvalue();
                        switch(cfv)
                        {
                            case 0: chpr += printf("1st-curtain sync"); break;
                            case 1: chpr += printf("2nd-curtain sync"); break;
                            default: printred("undefined"); break;
                        }
                        print_endvalue();
                    }
                    break;
                case 15:
                    if((PRINT_TAGINFO))
                        chpr += printf("20D.%02d_%-30.30s",cfn,"SafetyShiftInAvOrTv");
                    if((PRINT_VALUE))
                    {
                        chpr += printf(" = %u",cfv);
                        print_startvalue();
                        switch(cfv)
                        {
                            case 0: chpr += printf("Disable"); break;
                            case 1: chpr += printf("Enable"); break;
                            default: printred("undefined"); break;
                        }
                        print_endvalue();
                    }
                    break;
                case 16:
                    if((PRINT_TAGINFO))
                        chpr += printf("20D.%02d_%-30.30s",cfn,"LensAFStopButton");
                    if((PRINT_VALUE))
                    {
                        chpr += printf(" = %u",cfv);
                        print_startvalue();
                        switch(cfv)
                        {
                            case 0: chpr += printf("AF Stop"); break;
                            case 1: chpr += printf("Operate AF"); break;
                            case 2: chpr += printf("Lock AE and start timer"); break;
                            default: printred("undefined"); break;
                        }
                        print_endvalue();
                    }
                    break;
                case 17:
                    if((PRINT_TAGINFO))
                        chpr += printf("20D.%02d_%-30.30s",cfn,"AddOriginalDecisionData");
                    if((PRINT_VALUE))
                    {
                        chpr += printf(" = %u",cfv);
                        print_startvalue();
                        switch(cfv)
                        {
                            case 0: chpr += printf("Off"); break;
                            case 1: chpr += printf("On"); break;
                            default: printred("undefined"); break;
                        }
                        print_endvalue();
                    }
                    break;
                default:
                    if((PRINT_TAGINFO))
                        chpr += printf("20D.%02d_%-30.30s",cfn,"undefined");
                    if((PRINT_VALUE))
                        chpr += printf(" = %#x/%u",cfv,cfv);
                    break;
            }
            chpr = newline(chpr);
        }
    }
    setcharsprinted(chpr);
    return(end_offset);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movl %r9d, (%rsp)
movq %r8, %r12
movq %rcx, %r13
movq %rdx, 0x18(%rsp)
movl %esi, %r14d
movq %rdi, 0x20(%rsp)
movq %rcx, %rdx
callq 0x4574
movl %eax, %ebx
leaq 0x1e98e(%rip), %rax     # 0x58180
xorl %edi, %edi
testb $0x4, 0x2(%rax)
je 0x3984c
leaq 0xef19(%rip), %rdi      # 0x4871a
movq %r12, %rsi
xorl %eax, %eax
callq 0x3120
movl %eax, %edi
movzwl %bx, %ebx
cmpq %r12, %rbx
je 0x3984c
callq 0x16b56
movl %eax, %r15d
leaq 0x78b8(%rip), %rcx      # 0x410dc
movl $0x40000, %edi          # imm = 0x40000
movq %r13, %rsi
movl (%rsp), %edx
callq 0x5605
leaq 0x135b2(%rip), %rdi     # 0x4cded
movl %ebx, %esi
movq %r12, %rdx
xorl %eax, %eax
callq 0x3120
movl %eax, %edi
addl %r15d, %edi
callq 0x16b56
movl %eax, %ebx
leaq 0x1e926(%rip), %rax     # 0x58180
testl $0x4003333, (%rax)      # imm = 0x4003333
movq %r12, 0x10(%rsp)
movq %r13, 0x8(%rsp)
je 0x3a234
shrq %r12
decq %r12
je 0x3a234
addq $0x2, %r13
movzwl %r14w, %eax
movl %eax, 0x4(%rsp)
movq 0x20(%rsp), %rdi
movl 0x4(%rsp), %esi
movq %r13, %rdx
callq 0x4574
movl %eax, %r15d
movl $0x4003333, %edi        # imm = 0x4003333
movq %r13, %rsi
movl (%rsp), %edx
leaq 0x782e(%rip), %rcx      # 0x410dc
callq 0x5605
leaq 0x1e8c6(%rip), %rax     # 0x58180
movzwl (%rax), %eax
testl $0x3003, %eax           # imm = 0x3003
je 0x398d9
leaq 0x77cc(%rip), %rdi      # 0x41097
movq 0x18(%rsp), %rsi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
movzwl %r15w, %ebp
movl %ebp, %esi
shrl $0x8, %esi
movzbl %bpl, %r14d
leaq 0x1e893(%rip), %rax     # 0x58180
movq (%rax), %rax
cmpl $0x11, %esi
ja 0x39fac
leaq 0x1319c(%rip), %rdx     # 0x4ca9c
movslq (%rdx,%rsi,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
testl $0x3003, %eax           # imm = 0x3003
je 0x39929
leaq 0x13f8a(%rip), %rdi     # 0x4d8a1
xorl %esi, %esi
leaq 0x13f93(%rip), %rdx     # 0x4d8b3
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
leaq 0x1e850(%rip), %rax     # 0x58180
testb $0x30, (%rax)
je 0x3a105
leaq 0xb61a(%rip), %rdi      # 0x44f5a
movl %r14d, %esi
xorl %eax, %eax
callq 0x3120
movl %eax, %r14d
addl %ebx, %r14d
xorl %eax, %eax
callq 0x95d2
cmpb $0x4, %r15b
ja 0x3a0e8
movzbl %bpl, %eax
leaq 0x13198(%rip), %rcx     # 0x4cb04
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x13f55(%rip), %rdi     # 0x4d8d1
jmp 0x3a20a
testl $0x3003, %eax           # imm = 0x3003
je 0x399a4
leaq 0x13f12(%rip), %rdi     # 0x4d8a1
movl $0x10, %esi
leaq 0x13ef5(%rip), %rdx     # 0x4d890
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
leaq 0x1e7d5(%rip), %rax     # 0x58180
testb $0x30, (%rax)
je 0x3a21e
leaq 0xb59f(%rip), %rdi      # 0x44f5a
movl %r14d, %esi
xorl %eax, %eax
callq 0x3120
movl %eax, %r14d
addl %ebx, %r14d
xorl %eax, %eax
callq 0x95d2
cmpb $0x2, %r15b
je 0x3a16d
movzbl %r15b, %eax
cmpl $0x1, %eax
je 0x3a161
testl %eax, %eax
jne 0x3a0e8
leaq 0x13b06(%rip), %rdi     # 0x4d4fe
jmp 0x3a20a
testl $0x3003, %eax           # imm = 0x3003
je 0x39a20
leaq 0x13e96(%rip), %rdi     # 0x4d8a1
movl $0xe, %esi
leaq 0x13a99(%rip), %rdx     # 0x4d4b0
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
leaq 0x1e759(%rip), %rax     # 0x58180
testb $0x30, (%rax)
je 0x3a21e
leaq 0xb523(%rip), %rdi      # 0x44f5a
movl %r14d, %esi
xorl %eax, %eax
callq 0x3120
movl %eax, %r14d
addl %ebx, %r14d
xorl %eax, %eax
callq 0x95d2
cmpb $0x1, %r15b
je 0x3a10d
movzbl %r15b, %eax
testl %eax, %eax
jne 0x3a0e8
leaq 0x13df1(%rip), %rdi     # 0x4d85c
jmp 0x3a20a
testl $0x3003, %eax           # imm = 0x3003
je 0x39a93
leaq 0x13e23(%rip), %rdi     # 0x4d8a1
movl $0xb, %esi
leaq 0x13963(%rip), %rdx     # 0x4d3ed
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
leaq 0x1e6e6(%rip), %rax     # 0x58180
testb $0x30, (%rax)
je 0x3a21e
leaq 0xb4b0(%rip), %rdi      # 0x44f5a
movl %r14d, %esi
xorl %eax, %eax
callq 0x3120
movl %eax, %r14d
addl %ebx, %r14d
xorl %eax, %eax
callq 0x95d2
cmpb $0x1, %r15b
je 0x3a119
movzbl %r15b, %eax
testl %eax, %eax
jne 0x3a0e8
leaq 0x139ac(%rip), %rdi     # 0x4d48a
jmp 0x3a20a
testl $0x3003, %eax           # imm = 0x3003
je 0x39b06
leaq 0x13db0(%rip), %rdi     # 0x4d8a1
movl $0x4, %esi
leaq 0x13924(%rip), %rdx     # 0x4d421
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
leaq 0x1e673(%rip), %rax     # 0x58180
testb $0x30, (%rax)
je 0x3a21e
leaq 0xb43d(%rip), %rdi      # 0x44f5a
movl %r14d, %esi
xorl %eax, %eax
callq 0x3120
movl %eax, %r14d
addl %ebx, %r14d
xorl %eax, %eax
callq 0x95d2
cmpb $0x2, %r15b
je 0x3a18e
movzbl %r15b, %eax
cmpl $0x1, %eax
je 0x3a179
testl %eax, %eax
jne 0x3a0e8
leaq 0x13dc0(%rip), %rdi     # 0x4d91a
jmp 0x3a20a
testl $0x3003, %eax           # imm = 0x3003
je 0x39b82
leaq 0x13d34(%rip), %rdi     # 0x4d8a1
movl $0xc, %esi
leaq 0x13de8(%rip), %rdx     # 0x4d961
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
leaq 0x1e5f7(%rip), %rax     # 0x58180
testb $0x30, (%rax)
je 0x3a21e
leaq 0xb3c1(%rip), %rdi      # 0x44f5a
movl %r14d, %esi
xorl %eax, %eax
callq 0x3120
movl %eax, %r14d
addl %ebx, %r14d
xorl %eax, %eax
callq 0x95d2
cmpb $0x2, %r15b
je 0x3a197
movzbl %r15b, %eax
cmpl $0x1, %eax
je 0x3a185
testl %eax, %eax
jne 0x3a0e8
leaq 0x117e3(%rip), %rdi     # 0x4b3b9
jmp 0x3a20a
testl $0x3003, %eax           # imm = 0x3003
je 0x39bfe
leaq 0x13cb8(%rip), %rdi     # 0x4d8a1
movl $0x9, %esi
leaq 0x13bbe(%rip), %rdx     # 0x4d7b3
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
leaq 0x1e57b(%rip), %rax     # 0x58180
testb $0x30, (%rax)
je 0x3a21e
leaq 0xb345(%rip), %rdi      # 0x44f5a
movl %r14d, %esi
xorl %eax, %eax
callq 0x3120
movl %eax, %r14d
addl %ebx, %r14d
xorl %eax, %eax
callq 0x95d2
cmpb $0x1, %r15b
je 0x39e47
movzbl %r15b, %eax
testl %eax, %eax
je 0x3a0f9
jmp 0x3a0e8
testl $0x3003, %eax           # imm = 0x3003
je 0x39c6a
leaq 0x13c4c(%rip), %rdi     # 0x4d8a1
movl $0x2, %esi
leaq 0x137d8(%rip), %rdx     # 0x4d439
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
leaq 0x1e50f(%rip), %rax     # 0x58180
testb $0x30, (%rax)
je 0x3a21e
leaq 0xb2d9(%rip), %rdi      # 0x44f5a
movl %r14d, %esi
xorl %eax, %eax
callq 0x3120
movl %eax, %r14d
addl %ebx, %r14d
xorl %eax, %eax
callq 0x95d2
cmpb $0x1, %r15b
je 0x3a125
movzbl %r15b, %eax
testl %eax, %eax
jne 0x3a0e8
leaq 0x11b05(%rip), %rdi     # 0x4b7ba
jmp 0x3a20a
testl $0x3003, %eax           # imm = 0x3003
je 0x39cdd
leaq 0x13bd9(%rip), %rdi     # 0x4d8a1
movl $0xf, %esi
leaq 0x13b99(%rip), %rdx     # 0x4d86d
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
leaq 0x1e49c(%rip), %rax     # 0x58180
testb $0x30, (%rax)
je 0x3a21e
leaq 0xb266(%rip), %rdi      # 0x44f5a
movl %r14d, %esi
xorl %eax, %eax
callq 0x3120
movl %eax, %r14d
addl %ebx, %r14d
xorl %eax, %eax
callq 0x95d2
cmpb $0x1, %r15b
je 0x3a131
movzbl %r15b, %eax
testl %eax, %eax
jne 0x3a0e8
leaq 0x13b59(%rip), %rdi     # 0x4d881
jmp 0x3a20a
testl $0x3003, %eax           # imm = 0x3003
je 0x39d50
leaq 0x13b66(%rip), %rdi     # 0x4d8a1
movl $0x3, %esi
leaq 0x1365f(%rip), %rdx     # 0x4d3a6
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
leaq 0x1e429(%rip), %rax     # 0x58180
testb $0x30, (%rax)
je 0x3a21e
leaq 0xb1f3(%rip), %rdi      # 0x44f5a
movl %r14d, %esi
xorl %eax, %eax
callq 0x3120
movl %eax, %r14d
addl %ebx, %r14d
xorl %eax, %eax
callq 0x95d2
cmpb $0x3, %r15b
ja 0x3a0e8
movzbl %bpl, %eax
leaq 0x12d61(%rip), %rcx     # 0x4caf4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x13618(%rip), %rdi     # 0x4d3bb
jmp 0x3a20a
testl $0x3003, %eax           # imm = 0x3003
je 0x39e03
leaq 0x13aeb(%rip), %rdi     # 0x4d8a1
movl $0x7, %esi
leaq 0x13b8d(%rip), %rdx     # 0x4d94f
jmp 0x39dfa
testl $0x3003, %eax           # imm = 0x3003
je 0x39e03
leaq 0x13acf(%rip), %rdi     # 0x4d8a1
movl $0x1, %esi
leaq 0x1359b(%rip), %rdx     # 0x4d379
jmp 0x39dfa
testl $0x3003, %eax           # imm = 0x3003
je 0x39e03
leaq 0x13ab3(%rip), %rdi     # 0x4d8a1
movl $0x11, %esi
leaq 0x13bb7(%rip), %rdx     # 0x4d9b1
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
leaq 0x1e376(%rip), %rax     # 0x58180
testb $0x30, (%rax)
je 0x3a21e
leaq 0xb140(%rip), %rdi      # 0x44f5a
movl %r14d, %esi
xorl %eax, %eax
callq 0x3120
movl %eax, %r14d
addl %ebx, %r14d
xorl %eax, %eax
callq 0x95d2
cmpb $0x1, %r15b
je 0x3a0f9
movzbl %r15b, %eax
testl %eax, %eax
jne 0x3a0e8
leaq 0x1120c(%rip), %rdi     # 0x4b05a
jmp 0x3a20a
testl $0x3003, %eax           # imm = 0x3003
je 0x39e76
leaq 0x13a40(%rip), %rdi     # 0x4d8a1
movl $0x5, %esi
leaq 0x13873(%rip), %rdx     # 0x4d6e0
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
leaq 0x1e303(%rip), %rax     # 0x58180
testb $0x30, (%rax)
je 0x3a21e
leaq 0xb0cd(%rip), %rdi      # 0x44f5a
movl %r14d, %esi
xorl %eax, %eax
callq 0x3120
movl %eax, %r14d
addl %ebx, %r14d
xorl %eax, %eax
callq 0x95d2
cmpb $0x1, %r15b
je 0x3a13d
movzbl %r15b, %eax
testl %eax, %eax
jne 0x3a0e8
leaq 0x1354e(%rip), %rdi     # 0x4d40f
jmp 0x3a20a
testl $0x3003, %eax           # imm = 0x3003
je 0x39ee9
leaq 0x139cd(%rip), %rdi     # 0x4d8a1
movl $0xd, %esi
leaq 0x13aca(%rip), %rdx     # 0x4d9aa
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
leaq 0x1e290(%rip), %rax     # 0x58180
testb $0x30, (%rax)
je 0x3a21e
leaq 0xb05a(%rip), %rdi      # 0x44f5a
movl %r14d, %esi
xorl %eax, %eax
callq 0x3120
movl %eax, %r14d
addl %ebx, %r14d
xorl %eax, %eax
callq 0x95d2
cmpb $0x1, %r15b
je 0x3a149
movzbl %r15b, %eax
testl %eax, %eax
jne 0x3a0e8
leaq 0x1307c(%rip), %rdi     # 0x4cfb0
jmp 0x3a20a
testl $0x3003, %eax           # imm = 0x3003
je 0x39f5c
leaq 0x1395a(%rip), %rdi     # 0x4d8a1
movl $0x6, %esi
leaq 0x139f0(%rip), %rdx     # 0x4d943
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
leaq 0x1e21d(%rip), %rax     # 0x58180
testb $0x30, (%rax)
je 0x3a21e
leaq 0xafe7(%rip), %rdi      # 0x44f5a
movl %r14d, %esi
xorl %eax, %eax
callq 0x3120
movl %eax, %r14d
addl %ebx, %r14d
xorl %eax, %eax
callq 0x95d2
cmpb $0x1, %r15b
je 0x3a155
movzbl %r15b, %eax
testl %eax, %eax
jne 0x3a0e8
leaq 0x136f0(%rip), %rdi     # 0x4d697
jmp 0x3a20a
testl $0x3003, %eax           # imm = 0x3003
je 0x39fca
leaq 0x138e7(%rip), %rdi     # 0x4d8a1
leaq 0xee68(%rip), %rdx      # 0x48e29
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
leaq 0x1e1af(%rip), %rax     # 0x58180
testb $0x30, (%rax)
je 0x3a21e
leaq 0x1336a(%rip), %rdi     # 0x4d34b
movl %r14d, %esi
movl %r14d, %edx
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
jmp 0x3a21e
testl $0x3003, %eax           # imm = 0x3003
je 0x3a018
leaq 0x1389e(%rip), %rdi     # 0x4d8a1
movl $0xa, %esi
leaq 0x137b8(%rip), %rdx     # 0x4d7c7
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
leaq 0x1e161(%rip), %rax     # 0x58180
testb $0x30, (%rax)
je 0x3a21e
leaq 0xaf2b(%rip), %rdi      # 0x44f5a
movl %r14d, %esi
xorl %eax, %eax
callq 0x3120
movl %eax, %r14d
addl %ebx, %r14d
xorl %eax, %eax
callq 0x95d2
cmpb $0x2, %r15b
je 0x3a1a9
movzbl %r15b, %eax
cmpl $0x1, %eax
je 0x3a1a0
testl %eax, %eax
jne 0x3a0e8
leaq 0x10640(%rip), %rdi     # 0x4a6ac
jmp 0x3a20a
testl $0x3003, %eax           # imm = 0x3003
je 0x3a094
leaq 0x13822(%rip), %rdi     # 0x4d8a1
movl $0x8, %esi
leaq 0x1371c(%rip), %rdx     # 0x4d7a7
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
leaq 0x1e0e5(%rip), %rax     # 0x58180
testb $0x30, (%rax)
je 0x3a21e
leaq 0xaeaf(%rip), %rdi      # 0x44f5a
movl %r14d, %esi
xorl %eax, %eax
callq 0x3120
movl %eax, %r14d
addl %ebx, %r14d
xorl %eax, %eax
callq 0x95d2
cmpb $0x3, %r15b
ja 0x3a0e8
movzbl %bpl, %eax
leaq 0x12a11(%rip), %rcx     # 0x4cae4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x13393(%rip), %rdi     # 0x4d476
jmp 0x3a20a
leaq 0xed3a(%rip), %rdi      # 0x48e29
callq 0x5c33
jmp 0x3a214
leaq 0x10f61(%rip), %rdi     # 0x4b061
jmp 0x3a20a
movl %ebx, %r14d
jmp 0x3a214
leaq 0x133c0(%rip), %rdi     # 0x4d4d4
jmp 0x3a20a
leaq 0x1335c(%rip), %rdi     # 0x4d47c
jmp 0x3a20a
leaq 0x13551(%rip), %rdi     # 0x4d67d
jmp 0x3a20a
leaq 0x13751(%rip), %rdi     # 0x4d889
jmp 0x3a20a
leaq 0x132d4(%rip), %rdi     # 0x4d418
jmp 0x3a20a
leaq 0xc1e2(%rip), %rdi      # 0x46332
jmp 0x3a20a
leaq 0x13576(%rip), %rdi     # 0x4d6d2
jmp 0x3a20a
leaq 0x1339e(%rip), %rdi     # 0x4d506
jmp 0x3a20a
leaq 0x1339d(%rip), %rdi     # 0x4d511
jmp 0x3a20a
leaq 0x137a0(%rip), %rdi     # 0x4d920
jmp 0x3a20a
leaq 0x137ec(%rip), %rdi     # 0x4d978
jmp 0x3a20a
leaq 0x13799(%rip), %rdi     # 0x4d92e
jmp 0x3a20a
leaq 0x137f2(%rip), %rdi     # 0x4d990
jmp 0x3a20a
leaq 0x133b4(%rip), %rdi     # 0x4d55b
jmp 0x3a20a
leaq 0x133bf(%rip), %rdi     # 0x4d56f
jmp 0x3a20a
leaq 0x13218(%rip), %rdi     # 0x4d3d1
jmp 0x3a20a
leaq 0x1321a(%rip), %rdi     # 0x4d3dc
jmp 0x3a20a
leaq 0x131fb(%rip), %rdi     # 0x4d3c6
jmp 0x3a20a
leaq 0x132bf(%rip), %rdi     # 0x4d493
jmp 0x3a20a
leaq 0x132c4(%rip), %rdi     # 0x4d4a1
jmp 0x3a20a
leaq 0x1329e(%rip), %rdi     # 0x4d484
jmp 0x3a20a
leaq 0x1371e(%rip), %rdi     # 0x4d90d
jmp 0x3a20a
leaq 0x136f6(%rip), %rdi     # 0x4d8ee
jmp 0x3a20a
leaq 0x136ff(%rip), %rdi     # 0x4d900
jmp 0x3a20a
leaq 0x136d5(%rip), %rdi     # 0x4d8df
xorl %eax, %eax
callq 0x3120
addl %eax, %r14d
xorl %eax, %eax
callq 0x95f3
movl %r14d, %ebx
movl %ebx, %edi
callq 0x16b56
movl %eax, %ebx
addq $0x2, %r13
decq %r12
jne 0x39888
movq 0x10(%rsp), %r14
addq 0x8(%rsp), %r14
movl %ebx, %edi
callq 0x17530
movq %r14, %rax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq