// File: /workspace/github_c_makefile_star2_O2/Matthias-Wandel[P]imgcomp/src/config.c
// Function: parse_parameter
static int parse_parameter (const char * tag, const char * value)
{
    if (keymatch(tag, "debug", 1) || keymatch(tag, "verbose", 1)) {
        // Enable debug printouts.  Specify more than once for more detail.
        Verbosity += 1;
        return 1;
    }
    if (!value){
        fprintf(stderr, "Parameter '%s' needs to be followed by a value\n",tag);
        return -1;
    }

    if (keymatch(tag, "spurious", 4)) {
        SpuriousReject = value[0]-'0';
        if ((SpuriousReject != 0 && SpuriousReject != 1) || value[1] != 0){
            fprintf(stderr, "Spurious value can only be 0 or 1\n");
        }
    }else if (keymatch(tag, "configfile", 10)) {
        // do nothing; this arg was already interpreted earlier.  Also this is meaningless
        // inside a config file.
    }else if (keymatch(tag, "postmotion", 10)) {
        if (sscanf(value, "%d", &PostMotionKeep) != 1) return -1;
    }else if (keymatch(tag, "premotion", 9)) {
        if (sscanf(value, "%d", &PreMotionKeep) != 1) return -1;
        if (PreMotionKeep != 0 && PreMotionKeep != 1){
            fprintf(stderr, "preMotion may only be 0 or 1\n");
            return -1;
        }
    }else if (keymatch(tag, "brmonitor", 4)) {
        // exposure monnitor works a lot like how brmonitor used to work.
        if (sscanf(value, "%d", &ExposureManagementOn) != 1) return -1;
    }else if (keymatch(tag, "exmanage", 5)) {
        if (sscanf(value, "%d", &ExposureManagementOn) != 1) return -1;
    }else if (keymatch(tag, "relaunch_timeout", 16)) {
        if (sscanf(value, "%d", &relaunch_timeout) != 1) return -1;        
    }else if (keymatch(tag, "give_up_timeout", 15)) {
        if (sscanf(value, "%d", &give_up_timeout) != 1) return -1;
    }else if (strcmp(tag, "fatigue") == 0 || keymatch(tag, "fatigue_tc", 10)) {
        if (sscanf(value, "%d", &MotionFatigueTc) != 1) return -1;
    }else if (keymatch(tag, "fatigue_percent", 11)) {
        if (sscanf(value, "%d", &FatigueGainPercent) != 1) return -1;
    }else if (keymatch(tag, "fatigue_skip", 10)) {
        if (sscanf(value, "%d", &FatigueSkipCount) != 1) return -1;
    } else if (keymatch(tag, "scale", 5)) {
        // Scale the output image by a fraction 1/N.
        if (sscanf(value, "%d", &ScaleDenom) != 1) return -1;
    } else if (keymatch(tag, "sensitivity", 5)) {
        // Sensitivity level (lower = more senstitive) 
        if (sscanf(value, "%d", &Sensitivity) != 1) return -1;
    } else if (keymatch(tag, "timelapse", 5)) {
        // Scale the output image by a fraction M/N.
        if (sscanf(value, "%d", (int *)&TimelapseInterval) != 1) return -1;
    } else if (keymatch(tag, "aquire_cmd", 4)) {
        // Set the command for raspistill command.
        strncpy(camera_prog_cmd, value, sizeof(camera_prog_cmd)-1);
    } else if (keymatch(tag, "iso", 3)) {
        int n = sscanf(value, "%d-%d", &ex.ISOmin, &ex.ISOmax);
        if (n != 1 && n != 2) return -1;
        if (n == 1) ex.ISOmax = ex.ISOmin;
        if (ex.ISOmin > ex.ISOmax || ex.ISOmax > 6400 || ex.ISOmin < 10){
            fprintf(stderr, "Bad ISO range.  Must be 10 - 6400\n");
            return -1;
        }
    } else if (keymatch(tag, "exposure", 3)) {
        int n = sscanf(value, "%f-%f", &ex.Tmin, &ex.Tmax);
        if (n != 1 && n != 2) return -1;
        if (n == 1) ex.Tmax = ex.Tmin;
        if (ex.Tmin > ex.Tmax || ex.Tmax > 0.25 || ex.Tmin < 0.00009){
            // Timelapses mode with more than 1/4 second exposure time tends to mess up
            // raspistill, some combinations hard locking up the whole Pi.
            fprintf(stderr, "Bad exposure time values.  Must be 0.0001 - 10 (seconds)\n");
            return -1;
        }
    } else if (keymatch(tag, "pixsat", 6)) {
        if (sscanf(value, "%d", &ex.SatVal) != 1) return -1;
        if (ex.SatVal < 50 || ex.SatVal > 255){
            fprintf(stderr, "Pixel saturation must be between in range of 50-255\n");
            return -1;
        }
    } else if (keymatch(tag, "isooverextime", 5)) {
        if (sscanf(value, "%d", &ex.ISOoverExTime) != 1) return -1;
        if (ex.ISOoverExTime < 1000 || ex.ISOoverExTime > 50000){
            fprintf(stderr, "ISO/Exposure is out of range (100-50000)\n");
            return -1;
        }
        
    } else if (keymatch(tag, "lighton_run", 11)) {
        strncpy(lighton_run, value, sizeof(lighton_run)-1);
    } else if (keymatch(tag, "lightoff_run", 12)) {
        strncpy(lightoff_run, value, sizeof(lightoff_run)-1);
    } else if (keymatch(tag, "lightoffdelay", 13)) {
        int n = sscanf(value, "%d-%d", &lightoff_min, &lightoff_max);
        if (n != 1 && n != 2) return -1;
        if (n == 1) lightoff_max = lightoff_min;
    } else if (keymatch(tag, "savedir", 4)) {
        // Set where output goes
        strncpy(SaveDir,value, sizeof(SaveDir)-1);
    } else if (keymatch(tag, "savenames", 5)) {
        // Set file / directory naming scheme.  Do not chagne from default
        // if you want the HTML browsing system to still work.
        strncpy(SaveNames,value, sizeof(SaveNames)-1);
        {
            int a,b;
            for (a=0;SaveNames[a];a++){
                if (SaveNames[a] == '%'){
                    for (b=0;b<10;b++) if (SaveNames[a+1] == "dHjmMSUwyY"[b]) break;
                    if (b >=10){
                        fprintf(stderr, "savenames '%%' may only be followed by one of d,H,j,m,M,S,U,w,y, or Y\n");
                        exit(-1);
                    }
                }
            }
        }
    } else if (keymatch(tag, "copyjpgcmd", 5)) {
        // Set the optional copyjpgcmd value, which can be used to process images to keep
        // to make them losselssly 5% smaller with jpegtran, provided your on raspberry pi2 or faster.
        strncpy(CopyJpgCmd, value, sizeof(CopyJpgCmd)-1);

    } else if (keymatch(tag, "logtofile", 8)) {
        // Log to a file instead of stdout.  Must log to /ramdisk/log.txt for realtime view to work.
        strncpy(LogToFile, value, sizeof(SaveDir)-1);
    } else if (keymatch(tag, "movelognames", 12)) {
        // Where to backup logs to.
        strncpy(MoveLogNames,value, sizeof(SaveDir)-1);
    } else if (keymatch(tag, "region", 3)) {
        if (!ParseRegion(&Regions.DetectReg, value)) goto bad_value;
    } else if (keymatch(tag, "exclude", 4)) {
        if (Regions.NumExcludeReg >= MAX_EXCLUDE_REGIONS){
            fprintf(stderr, "too many exclude regions");
            exit(-1);
        }else{
            Region_t NewEx;
            if (!ParseRegion(&NewEx, value)) goto bad_value;
            printf("Exclude region x:%d-%d, y:%d-%d\n",NewEx.x1, NewEx.x2, NewEx.y1, NewEx.y2);
            Regions.ExcludeReg[Regions.NumExcludeReg++] = NewEx;
        }
    } else if (keymatch(tag, "diffmap", 5)) {
        strncpy(DiffMapFileName,value, sizeof(DiffMapFileName)-1);

    } else if (keymatch(tag, "dodir", 5)) {
        // Scale the output image by a fraction M/N. */
        strncpy(DoDirName, value, sizeof(DoDirName)-1);
        FollowDir = 0;
    } else if (keymatch(tag, "followdir", 6)) {
        strncpy(DoDirName,value, sizeof(DoDirName)-1);
        FollowDir = 1;
    } else if (keymatch(tag, "tempdir", 6)) {
        strncpy(TempDirName,value, sizeof(DoDirName)-1);
    } else if (keymatch(tag, "vidmode", 7)) {
        if (sscanf(value, "%d", &VidMode) != 1) return -1;
    } else if (keymatch(tag, "viddecomposecmd", 15)) {
        strncpy(VidDecomposeCmd, value, sizeof(VidDecomposeCmd)-1);
    } else if (keymatch(tag, "sendudp", 7)) {
        strncpy(UdpDest,value, sizeof(UdpDest)-1);
    }else{
        fprintf(stderr,"argument '%s' not understood\n",tag);
        return -1;     // bogus switch
        bad_value:
        fprintf(stderr, "Value of %s=%s\n not understood\n",tag,value);
        return -1;
    }
    return 2;
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
subq $0x10, %rsp
movq %rsi, %rbx
movq %rdi, %r14
leaq 0x78fc(%rip), %rsi      # 0xc313
pushq $0x1
popq %rbp
movl %ebp, %edx
callq 0x54de
testl %eax, %eax
jne 0x4a3b
leaq 0x78ed(%rip), %rsi      # 0xc319
pushq $0x1
popq %rdx
movq %r14, %rdi
callq 0x54de
testl %eax, %eax
je 0x4a4c
incl 0xdf67(%rip)            # 0x129a8
movl %ebp, %eax
addq $0x10, %rsp
popq %rbx
popq %r14
popq %rbp
retq
testq %rbx, %rbx
je 0x4af0
leaq 0x78f5(%rip), %rsi      # 0xc351
pushq $0x4
popq %rdx
movq %r14, %rdi
callq 0x54de
testl %eax, %eax
je 0x4aa0
movsbl (%rbx), %eax
addl $-0x30, %eax
movl %eax, 0xdf1d(%rip)      # 0x12994
cmpl $0x1, %eax
ja 0x4a82
cmpb $0x0, 0x1(%rbx)
je 0x4ab6
movq 0xd56f(%rip), %rax      # 0x11ff8
movq (%rax), %rcx
leaq 0x78c7(%rip), %rdi      # 0xc35a
pushq $0x22
popq %rsi
pushq $0x1
popq %rdx
callq 0x34b0
jmp 0x4ab6
leaq 0x672d(%rip), %rsi      # 0xb1d4
pushq $0xa
popq %rdx
movq %r14, %rdi
callq 0x54de
testl %eax, %eax
je 0x4abb
pushq $0x2
popq %rbp
jmp 0x4a41
leaq 0x78bb(%rip), %rsi      # 0xc37d
pushq $0xa
popq %rdx
movq %r14, %rdi
callq 0x54de
testl %eax, %eax
je 0x4b0f
leaq 0x9bac(%rip), %rsi      # 0xe684
leaq 0xdeb9(%rip), %rdx      # 0x12998
movq %rbx, %rdi
xorl %eax, %eax
callq 0x3380
cmpl $0x1, %eax
je 0x4ab6
jmp 0x4b0b
movq 0xd501(%rip), %rax      # 0x11ff8
movq (%rax), %rdi
leaq 0x7820(%rip), %rsi      # 0xc321
movq %r14, %rdx
xorl %eax, %eax
callq 0x32a0
pushq $-0x1
jmp 0x4ab8
leaq 0x7872(%rip), %rsi      # 0xc388
pushq $0x9
popq %rdx
movq %r14, %rdi
callq 0x54de
testl %eax, %eax
je 0x4b77
leaq 0x9b58(%rip), %rsi      # 0xe684
leaq 0xde69(%rip), %rdx      # 0x1299c
movq %rbx, %rdi
xorl %eax, %eax
callq 0x3380
pushq $-0x1
popq %rbp
cmpl $0x1, %eax
jne 0x4a41
cmpl $0x2, 0xde4c(%rip)      # 0x1299c
jb 0x4ab6
movq 0xd49b(%rip), %rax      # 0x11ff8
movq (%rax), %rcx
leaq 0x782b(%rip), %rdi      # 0xc392
pushq $0x1d
popq %rsi
pushq $0x1
popq %rdx
callq 0x34b0
jmp 0x4a41
leaq 0x7832(%rip), %rsi      # 0xc3b0
pushq $0x4
popq %rdx
movq %r14, %rdi
callq 0x54de
testl %eax, %eax
jne 0x4ba3
leaq 0x7826(%rip), %rsi      # 0xc3ba
pushq $0x5
popq %rdx
movq %r14, %rdi
callq 0x54de
testl %eax, %eax
je 0x4bb6
leaq 0x9ada(%rip), %rsi      # 0xe684
leaq 0xddef(%rip), %rdx      # 0x129a0
jmp 0x4adf
leaq 0x7806(%rip), %rsi      # 0xc3c3
pushq $0x10
popq %rdx
movq %r14, %rdi
callq 0x54de
testl %eax, %eax
je 0x4bdf
leaq 0x9ab1(%rip), %rsi      # 0xe684
leaq 0xd6f2(%rip), %rdx      # 0x122cc
jmp 0x4adf
leaq 0x77ee(%rip), %rsi      # 0xc3d4
pushq $0xf
popq %rdx
movq %r14, %rdi
callq 0x54de
testl %eax, %eax
je 0x4c08
leaq 0x9a88(%rip), %rsi      # 0xe684
leaq 0xd6cd(%rip), %rdx      # 0x122d0
jmp 0x4adf
leaq 0x77d5(%rip), %rsi      # 0xc3e4
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x4c31
leaq 0x77ca(%rip), %rsi      # 0xc3ec
pushq $0xa
popq %rdx
movq %r14, %rdi
callq 0x54de
testl %eax, %eax
je 0x4c44
leaq 0x9a4c(%rip), %rsi      # 0xe684
leaq 0xd675(%rip), %rdx      # 0x122b4
jmp 0x4adf
leaq 0x77ac(%rip), %rsi      # 0xc3f7
pushq $0xb
popq %rdx
movq %r14, %rdi
callq 0x54de
testl %eax, %eax
je 0x4c6d
leaq 0x9a23(%rip), %rsi      # 0xe684
leaq 0xd650(%rip), %rdx      # 0x122b8
jmp 0x4adf
leaq 0x7793(%rip), %rsi      # 0xc407
pushq $0xa
popq %rdx
movq %r14, %rdi
callq 0x54de
testl %eax, %eax
je 0x4c96
leaq 0x99fa(%rip), %rsi      # 0xe684
leaq 0xdd13(%rip), %rdx      # 0x129a4
jmp 0x4adf
leaq 0x7777(%rip), %rsi      # 0xc414
pushq $0x5
popq %rdx
movq %r14, %rdi
callq 0x54de
testl %eax, %eax
je 0x4cbf
leaq 0x99d1(%rip), %rsi      # 0xe684
leaq 0xe03e(%rip), %rdx      # 0x12cf8
jmp 0x4adf
leaq 0x7754(%rip), %rsi      # 0xc41a
pushq $0x5
popq %rdx
movq %r14, %rdi
callq 0x54de
testl %eax, %eax
je 0x4ce8
leaq 0x99a8(%rip), %rsi      # 0xe684
leaq 0xe2ed(%rip), %rdx      # 0x12fd0
jmp 0x4adf
leaq 0x7737(%rip), %rsi      # 0xc426
pushq $0x5
popq %rdx
movq %r14, %rdi
callq 0x54de
testl %eax, %eax
je 0x4d11
leaq 0x997f(%rip), %rsi      # 0xe684
leaq 0xe2cc(%rip), %rdx      # 0x12fd8
jmp 0x4adf
leaq 0x7718(%rip), %rsi      # 0xc430
pushq $0x4
popq %rdx
movq %r14, %rdi
callq 0x54de
testl %eax, %eax
je 0x4d40
leaq 0xe2b2(%rip), %rdi      # 0x12fe0
movl $0xc7, %edx
movq %rbx, %rsi
callq 0x3090
jmp 0x4ab6
leaq 0x76f4(%rip), %rsi      # 0xc43b
pushq $0x3
popq %rdx
movq %r14, %rdi
callq 0x54de
testl %eax, %eax
je 0x4d94
leaq 0x10dc3(%rip), %r14     # 0x15b20
leaq 0x4(%r14), %rcx
leaq 0x76d7(%rip), %rsi      # 0xc43f
movq %rbx, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x3380
leal -0x3(%rax), %ecx
pushq $-0x1
popq %rbp
cmpl $-0x2, %ecx
jb 0x4a41
movl (%r14), %ecx
cmpl $0x1, %eax
jne 0x4df6
movl %ecx, 0x4(%r14)
movl %ecx, %eax
jmp 0x4dfa
leaq 0x76cd(%rip), %rsi      # 0xc468
pushq $0x3
popq %rdx
movq %r14, %rdi
callq 0x54de
testl %eax, %eax
je 0x4e26
leaq 0x10d6f(%rip), %r14     # 0x15b20
leaq 0x8(%r14), %rdx
leaq 0xc(%r14), %rcx
leaq 0x76b1(%rip), %rsi      # 0xc471
movq %rbx, %rdi
xorl %eax, %eax
callq 0x3380
leal -0x3(%rax), %ecx
pushq $-0x1
popq %rbp
cmpl $-0x2, %ecx
jb 0x4a41
movss 0x8(%r14), %xmm0
cmpl $0x1, %eax
jne 0x4e94
movss %xmm0, 0xc(%r14)
movaps %xmm0, %xmm1
jmp 0x4e9a
movl 0x4(%r14), %eax
cmpl $0xa, %ecx
jl 0x4e0e
cmpl %eax, %ecx
jg 0x4e0e
cmpl $0x1901, %eax           # imm = 0x1901
jl 0x4ab6
movq 0xd1e3(%rip), %rax      # 0x11ff8
movq (%rax), %rcx
leaq 0x7626(%rip), %rdi      # 0xc445
pushq $0x22
jmp 0x4b69
leaq 0x7684(%rip), %rsi      # 0xc4b1
pushq $0x6
popq %rdx
movq %r14, %rdi
callq 0x54de
testl %eax, %eax
je 0x4ed6
leaq 0x10cd9(%rip), %r14     # 0x15b20
leaq 0x10(%r14), %rdx
leaq 0x9832(%rip), %rsi      # 0xe684
movq %rbx, %rdi
xorl %eax, %eax
callq 0x3380
pushq $-0x1
popq %rbp
cmpl $0x1, %eax
jne 0x4a41
movl $0xffffff00, %eax       # imm = 0xFFFFFF00
addl 0x10(%r14), %eax
cmpl $0xffffff31, %eax       # imm = 0xFFFFFF31
ja 0x4ab6
movq 0xd175(%rip), %rax      # 0x11ff8
movq (%rax), %rcx
leaq 0x762b(%rip), %rdi      # 0xc4b8
pushq $0x34
jmp 0x4b69
movss 0xc(%r14), %xmm1
cvtss2sd %xmm0, %xmm2
movsd 0x6532(%rip), %xmm3     # 0xb3d8
ucomisd %xmm2, %xmm3
ja 0x4ebe
ucomiss %xmm1, %xmm0
ja 0x4ebe
ucomiss 0x6528(%rip), %xmm1     # 0xb3e0
jbe 0x4ab6
movq 0xd133(%rip), %rax      # 0x11ff8
movq (%rax), %rcx
leaq 0x75a8(%rip), %rdi      # 0xc477
pushq $0x39
jmp 0x4b69
leaq 0x7610(%rip), %rsi      # 0xc4ed
pushq $0x5
popq %rdx
movq %r14, %rdi
callq 0x54de
testl %eax, %eax
je 0x4f40
leaq 0x10c2d(%rip), %r14     # 0x15b20
leaq 0x14(%r14), %rdx
leaq 0x9786(%rip), %rsi      # 0xe684
movq %rbx, %rdi
xorl %eax, %eax
callq 0x3380
pushq $-0x1
popq %rbp
cmpl $0x1, %eax
jne 0x4a41
movl $0xffff3caf, %eax       # imm = 0xFFFF3CAF
addl 0x14(%r14), %eax
cmpl $0xffff4096, %eax       # imm = 0xFFFF4096
ja 0x4ab6
movq 0xd0c9(%rip), %rax      # 0x11ff8
movq (%rax), %rcx
leaq 0x75c2(%rip), %rdi      # 0xc4fb
pushq $0x29
jmp 0x4b69
leaq 0x75de(%rip), %rsi      # 0xc525
pushq $0xb
popq %rdx
movq %r14, %rdi
callq 0x54de
testl %eax, %eax
je 0x4f62
leaq 0xe153(%rip), %rdi      # 0x130b0
jmp 0x4d2e
leaq 0x75c8(%rip), %rsi      # 0xc531
pushq $0xc
popq %rdx
movq %r14, %rdi
callq 0x54de
testl %eax, %eax
je 0x4f84
leaq 0xe201(%rip), %rdi      # 0x13180
jmp 0x4d2e
leaq 0x75b3(%rip), %rsi      # 0xc53e
pushq $0xd
popq %rdx
movq %r14, %rdi
callq 0x54de
testl %eax, %eax
je 0x4fcf
leaq 0x749e(%rip), %rsi      # 0xc43f
leaq 0xd314(%rip), %rdx      # 0x122bc
leaq 0xd311(%rip), %rcx      # 0x122c0
movq %rbx, %rdi
xorl %eax, %eax
callq 0x3380
cmpl $0x1, %eax
jne 0x4ff1
movl 0xd2f8(%rip), %eax      # 0x122bc
movl %eax, 0xd2f6(%rip)      # 0x122c0
jmp 0x4ab6
leaq 0x7576(%rip), %rsi      # 0xc54c
pushq $0x4
popq %rdx
movq %r14, %rdi
callq 0x54de
testl %eax, %eax
je 0x5001
leaq 0xdaa4(%rip), %rdi      # 0x12a90
jmp 0x4d2e
decl %eax
cmpl $0x2, %eax
jb 0x4ab6
jmp 0x4b0b
leaq 0x754c(%rip), %rsi      # 0xc554
pushq $0x5
popq %rdx
movq %r14, %rdi
callq 0x54de
testl %eax, %eax
je 0x5070
leaq 0xdb42(%rip), %r14      # 0x12b60
movl $0xc7, %edx
movq %r14, %rdi
movq %rbx, %rsi
callq 0x3090
xorl %eax, %eax
leaq 0x7527(%rip), %rcx      # 0xc55e
movzbl (%rax,%r14), %edx
cmpl $0x25, %edx
je 0x504e
testl %edx, %edx
je 0x4ab6
incq %rax
jmp 0x5037
movb 0x1(%rax,%r14), %dl
incq %rax
xorl %esi, %esi
cmpq $0xa, %rsi
je 0x5200
leaq 0x1(%rsi), %rdi
cmpb (%rsi,%rcx), %dl
movq %rdi, %rsi
jne 0x5058
jmp 0x5037
leaq 0x7539(%rip), %rsi      # 0xc5b0
pushq $0x5
popq %rdx
movq %r14, %rdi
callq 0x54de
testl %eax, %eax
je 0x5092
leaq 0xdba3(%rip), %rdi      # 0x12c30
jmp 0x4d2e
leaq 0x7522(%rip), %rsi      # 0xc5bb
pushq $0x8
popq %rdx
movq %r14, %rdi
callq 0x54de
testl %eax, %eax
je 0x50b4
leaq 0xdd81(%rip), %rdi      # 0x12e30
jmp 0x4d2e
leaq 0x750a(%rip), %rsi      # 0xc5c5
pushq $0xc
popq %rdx
movq %r14, %rdi
callq 0x54de
testl %eax, %eax
je 0x50d6
leaq 0xde2f(%rip), %rdi      # 0x12f00
jmp 0x4d2e
leaq 0x74f5(%rip), %rsi      # 0xc5d2
pushq $0x3
popq %rdx
movq %r14, %rdi
callq 0x54de
testl %eax, %eax
je 0x5108
leaq 0xdcd5(%rip), %rdi      # 0x12dc8
movq %rbx, %rsi
callq 0x554e
testl %eax, %eax
jne 0x4ab6
jmp 0x51dd
leaq 0x74ca(%rip), %rsi      # 0xc5d9
pushq $0x4
popq %rdx
movq %r14, %rdi
callq 0x54de
testl %eax, %eax
je 0x5185
cmpl $0x5, 0xdd03(%rip)      # 0x12e28
jge 0x52c6
movq %rsp, %rdi
movq %rbx, %rsi
callq 0x554e
testl %eax, %eax
je 0x51dd
movl (%rsp), %esi
movl 0x4(%rsp), %edx
movl 0x8(%rsp), %ecx
movl 0xc(%rsp), %r8d
leaq 0x74a5(%rip), %rdi      # 0xc5fa
xorl %eax, %eax
callq 0x3170
movslq 0xdcc5(%rip), %rax      # 0x12e28
leaq 0xdc5e(%rip), %rcx      # 0x12dc8
leal 0x1(%rax), %edx
movl %edx, 0xdcb5(%rip)      # 0x12e28
shlq $0x4, %rax
movups (%rsp), %xmm0
movups %xmm0, 0x10(%rax,%rcx)
jmp 0x4ab6
leaq 0x748f(%rip), %rsi      # 0xc61b
pushq $0x5
popq %rdx
movq %r14, %rdi
callq 0x54de
testl %eax, %eax
je 0x51a7
leaq 0xdb5e(%rip), %rdi      # 0x12d00
jmp 0x4d2e
leaq 0x7475(%rip), %rsi      # 0xc623
pushq $0x5
popq %rdx
movq %r14, %rdi
callq 0x54de
testl %eax, %eax
je 0x5220
leaq 0xd7fc(%rip), %rdi      # 0x129c0
movl $0xc7, %edx
movq %rbx, %rsi
callq 0x3090
andl $0x0, 0xd7b8(%rip)      # 0x12990
jmp 0x4ab6
movq 0xce14(%rip), %rax      # 0x11ff8
movq (%rax), %rdi
leaq 0x748b(%rip), %rsi      # 0xc679
movq %r14, %rdx
movq %rbx, %rcx
xorl %eax, %eax
callq 0x32a0
jmp 0x4b0b
movq 0xcdf1(%rip), %rax      # 0x11ff8
movq (%rax), %rdi
leaq 0x7358(%rip), %rsi      # 0xc569
xorl %eax, %eax
callq 0x32a0
pushq $-0x1
popq %rdi
callq 0x34a0
leaq 0x7402(%rip), %rsi      # 0xc629
pushq $0x6
popq %rdx
movq %r14, %rdi
callq 0x54de
testl %eax, %eax
je 0x5259
leaq 0xd783(%rip), %rdi      # 0x129c0
movl $0xc7, %edx
movq %rbx, %rsi
callq 0x3090
movl $0x1, 0xd73c(%rip)      # 0x12990
jmp 0x4ab6
leaq 0x73d3(%rip), %rsi      # 0xc633
pushq $0x6
popq %rdx
movq %r14, %rdi
callq 0x54de
testl %eax, %eax
je 0x527b
leaq 0xe0da(%rip), %rdi      # 0x13350
jmp 0x4d2e
leaq 0x73b9(%rip), %rsi      # 0xc63b
pushq $0x7
popq %rdx
movq %r14, %rdi
callq 0x54de
testl %eax, %eax
je 0x52a4
leaq 0x93ec(%rip), %rsi      # 0xe684
leaq 0xdfd1(%rip), %rdx      # 0x13270
jmp 0x4adf
leaq 0x7398(%rip), %rsi      # 0xc643
pushq $0xf
popq %rdx
movq %r14, %rdi
callq 0x54de
testl %eax, %eax
je 0x52e7
leaq 0xdfbf(%rip), %rdi      # 0x13280
jmp 0x4d2e
movq 0xcd2b(%rip), %rax      # 0x11ff8
movq (%rax), %rcx
leaq 0x730a(%rip), %rdi      # 0xc5e1
pushq $0x18
popq %rsi
pushq $0x1
popq %rdx
callq 0x34b0
jmp 0x5218
leaq 0x7365(%rip), %rsi      # 0xc653
pushq $0x7
popq %rdx
movq %r14, %rdi
callq 0x54de
testl %eax, %eax
je 0x530c
leaq 0xdf4c(%rip), %rdi      # 0x13250
pushq $0x1d
popq %rdx
jmp 0x4d33
movq 0xcce5(%rip), %rax      # 0x11ff8
movq (%rax), %rdi
leaq 0x733e(%rip), %rsi      # 0xc65b
jmp 0x4b01