// File: /workspace/github_cpp_makefile_star2_O3/sisong[P]ApkDiffPatch/src/apk_normalized.cpp
// Function: normalized_cmd_line(int, char const**)
int normalized_cmd_line(int argc, const char * argv[]){
    hpatch_BOOL isNotCompressEmptyFile=_kNULL_VALUE;
    size_t      pageAlignSoFile=_kNULL_SIZE;
    hpatch_BOOL pageAlignSoFileCompatible=_kNULL_VALUE;
    hpatch_BOOL isOutputVersion=_kNULL_VALUE;
    size_t      compressLevel = _kNULL_SIZE;
    size_t      alignSize     = _kNULL_SIZE;
    #define kMax_arg_values_size 2
    const char * arg_values[kMax_arg_values_size]={0};
    int          arg_values_size=0;
    int         i;
    for (i=1; i<argc; ++i) {
        const char* op=argv[i];
        _options_check((op!=0)&&(strlen(op)>0),"?");
        if (op[0]!='-'){
            _options_check(arg_values_size<kMax_arg_values_size,"count");
            arg_values[arg_values_size]=op;
            ++arg_values_size;
            continue;
        }
        _options_check((op!=0)&&(op[0]=='-'),"?");
        switch (op[1]) {
            case 'v':{
                _options_check((isOutputVersion==_kNULL_VALUE)&&(op[2]=='\0'),"-v");
                isOutputVersion=hpatch_TRUE;
            } break;
            case 'q':{
                _options_check((op[2]=='\0'),"-q");
                g_isPrintNormalizingFileName=false;
            } break;
            case 'n':{
                if ((op[2]=='c')&&(op[3]=='e')&&(op[4]=='-')&&((op[5]=='0')||(op[5]=='1'))){
                    _options_check(isNotCompressEmptyFile==_kNULL_VALUE,"-nce-?");
                    isNotCompressEmptyFile=(hpatch_BOOL)(op[5]=='1');
                }else{
                    _options_check(hpatch_FALSE,"-nce?");
                }
            } break;
            case 'c':{
                if ((op[2]=='l')&&(op[3]=='-')){
                    _options_check(compressLevel==_kNULL_SIZE,"-cl-?")
                    const char* pnum=op+4;
                    _options_check(kmg_to_size(pnum,strlen(pnum),&compressLevel),"-cl-?");
                    _options_check((0<=compressLevel)&&(compressLevel<=9),"-cl-?");
                }else{
                    _options_check(hpatch_FALSE,"-cl?");
                }
            } break;
            case 'a':{
                if ((op[2]=='p')&&(op[3]=='-')){
                    _options_check(pageAlignSoFile==_kNULL_SIZE,"-ap-?");
                    const char* pnum=op+4;
                    pageAlignSoFileCompatible=(pnum[0]=='c')||(pnum[0]=='C');
                    if (pageAlignSoFileCompatible) ++pnum;
                    _options_check(kmg_to_size(pnum,strlen(pnum),&pageAlignSoFile),"-ap-?");
                    #define _kMaxPageAlignSize      (64*1024)
                    #define _kDefaultPageAlignSize  (4*1024)
                    if (pageAlignSoFile==1) pageAlignSoFile=_kDefaultPageAlignSize;
                    _options_check((pageAlignSoFile==0)||(pageAlignSoFile==16*1024)
                                 ||(pageAlignSoFile==_kDefaultPageAlignSize)||(pageAlignSoFile==_kMaxPageAlignSize),"-ap-?");
                }else if ((op[2]=='s')&&(op[3]=='-')){
                    _options_check(alignSize==_kNULL_SIZE,"-as-?")
                    const char* pnum=op+4;
                    _options_check(kmg_to_size(pnum,strlen(pnum),&alignSize),"-as-?");
                    _options_check((1<=alignSize)&&(alignSize<=_kMaxPageAlignSize),"-as-?");
                }else{
                    _options_check(hpatch_FALSE,"-a?");
                }
            } break;
            default: {
                _options_check(hpatch_FALSE,"-?");
            } break;
        }//swich
    }
    if (isNotCompressEmptyFile==_kNULL_VALUE)
        isNotCompressEmptyFile=hpatch_TRUE;
    if (pageAlignSoFile==_kNULL_SIZE)
        pageAlignSoFile=_kDefaultPageAlignSize;
    if (pageAlignSoFile==_kDefaultPageAlignSize)
        pageAlignSoFileCompatible=hpatch_TRUE;
    if (compressLevel==_kNULL_SIZE)
        compressLevel=kDefaultZlibCompressLevel;
    if (alignSize==_kNULL_SIZE)
        alignSize=kDefaultZipAlignSize;
    if (isOutputVersion==_kNULL_VALUE)
        isOutputVersion=hpatch_FALSE;
    if (isOutputVersion){
        printf("ApkDiffPatch::ApkNormalized v" APKDIFFPATCH_VERSION_STRING "\n\n");
        if (arg_values_size==0)
            return _kResult_OK;
    }

    if (compressLevel>6)
        printf("WARNING: not recommended 7,8,9, compress ratio is slightly higher, but compress speed is very slow when patching.\n");
        
    _options_check(arg_values_size==2,"count");
    const char* srcApk=arg_values[0];
    const char* dstApk=arg_values[1];
    hpatch_printPath_utf8((std::string("src: \"")+srcApk+"\"\n").c_str());
    hpatch_printPath_utf8((std::string("out: \"")+dstApk+"\"\n").c_str());
    double time0=clock_s();
    int apkFilesRemoved=0;
    if (!ZipNormalized(srcApk,dstApk,(int)alignSize,(int)compressLevel,
                       (bool)isNotCompressEmptyFile,pageAlignSoFile,pageAlignSoFileCompatible,&apkFilesRemoved)){
        printf("\nrun ApkNormalized ERROR!\n");
        return _kResult_NORMALIZED_ERROR;
    }
    printf("run ApkNormalized ok!\n");
    
    TCompressedFilesInfos cInfos;
    if (!getCompressedFilesInfos(dstApk,&cInfos)){
        printf("\nApkNormalized result file open ERROR!\n");
        return _kResult_OPEN_NORMALIZED_ERROR;
    }
    printf("  NOTE: recompressed files count %d, data size %" PRIu64 " compress to %" PRIu64 "\n",
            cInfos.compressedCount,cInfos.sumCompressedUncompressedSize,cInfos.sumCompressedSize);
    
    //check
    if (!getZipIsSame(srcApk,dstApk,apkFilesRemoved)){
        printf("\nApkNormalized result file check ERROR!\n");
        return _kResult_CHECK_NORMALIZED_DATA_ERROR;
    }
    printf("  check ApkNormalized result ok!\n");

    double time1=clock_s();
    printf("\nApkNormalized time: %.3f s\n",(time1-time0));
    return _kResult_OK;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xa8, %rsp
xorpd %xmm0, %xmm0
movapd %xmm0, 0x90(%rsp)
cmpl $0x2, %edi
jl 0x3fbf
movl %edi, %edi
movq $-0x1, %rbx
xorl %ebp, %ebp
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movl $0x1, %r15d
movabsq $0x1999999999999999, %r10 # imm = 0x1999999999999999
movabsq $0x100000001, %r11      # imm = 0x100000001
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
movl $0xffffffff, %r9d       # imm = 0xFFFFFFFF
movq $-0x1, %r14
movq $-0x1, %r13
movq (%rsi,%r15,8), %r12
testq %r12, %r12
je 0x3e97
movzbl (%r12), %eax
cmpl $0x2d, %eax
je 0x392d
testl %eax, %eax
je 0x3e97
cmpl $0x2, %ebp
jge 0x3ee6
movl %ebp, %eax
movq %r12, 0x90(%rsp,%rax,8)
incl %ebp
incq %r15
cmpq %rdi, %r15
jne 0x38ec
jmp 0x3ebb
movzbl 0x1(%r12), %eax
cmpl $0x6d, %eax
jle 0x3970
cmpl $0x6e, %eax
je 0x3b52
cmpl $0x71, %eax
je 0x3a55
cmpl $0x76, %eax
jne 0x4312
cmpl $-0x1, %r9d
jne 0x3ff2
movl $0x1, %r9d
cmpb $0x0, 0x2(%r12)
je 0x3920
jmp 0x3ff2
cmpl $0x61, %eax
movl %edx, 0x4(%rsp)
movq %rdi, 0x20(%rsp)
movq %rbp, 0x28(%rsp)
je 0x3a70
cmpl $0x63, %eax
jne 0x4312
cmpb $0x6c, 0x2(%r12)
jne 0x3ffb
cmpb $0x2d, 0x3(%r12)
jne 0x3ffb
cmpq $-0x1, %r14
jne 0x432a
movl %r8d, 0x8(%rsp)
addq $0x4, %r12
movq %r12, %rdi
movq %rsi, %r14
movq %rbx, 0x18(%rsp)
movq %r13, 0x10(%rsp)
movl %r9d, %ebp
movq %r10, %rbx
movq %r11, %r13
callq 0x3140
movq %r13, %r11
movq %rbx, %r10
movl %ebp, %r9d
movq 0x28(%rsp), %rbp
movq 0x10(%rsp), %r13
movq 0x18(%rsp), %rbx
testq %rax, %rax
je 0x3e8b
movq %r14, %rsi
movzbl -0x1(%r12,%rax), %edx
addl $-0x47, %edx
cmpl $0x26, %edx
ja 0x3e76
btq %rdx, %r11
jb 0x3c4b
movl $0xa, %ecx
movabsq $0x1000000010, %rdi     # imm = 0x1000000010
btq %rdx, %rdi
jb 0x3c50
movabsq $0x4000000040, %rcx     # imm = 0x4000000040
btq %rdx, %rcx
movl $0x0, %ecx
jae 0x3c59
movl $0x14, %ecx
jmp 0x3c50
cmpb $0x0, 0x2(%r12)
jne 0x431e
leaq 0x2d858(%rip), %rax     # 0x312c0
movb $0x0, (%rax)
jmp 0x3920
movzbl 0x2(%r12), %eax
cmpl $0x73, %eax
je 0x3b9e
cmpl $0x70, %eax
jne 0x4008
cmpb $0x2d, 0x3(%r12)
jne 0x4008
cmpq $-0x1, %rbx
jne 0x4356
movq %r13, 0x10(%rsp)
leaq 0x4(%r12), %rax
movb 0x4(%r12), %cl
andb $-0x21, %cl
addq $0x5, %r12
movl $0x0, 0x8(%rsp)
cmpb $0x43, %cl
sete 0x18(%rsp)
cmovneq %rax, %r12
movq %r12, %rdi
movq %rsi, %rbx
movl %r9d, %ebp
movq %r10, %r13
callq 0x3140
movabsq $0x100000001, %r11      # imm = 0x100000001
movl %ebp, %r9d
movq 0x28(%rsp), %rbp
testq %rax, %rax
je 0x3eaf
movq %r13, %r10
movq %rbx, %rsi
movzbl -0x1(%r12,%rax), %edx
addl $-0x47, %edx
cmpl $0x26, %edx
ja 0x3e84
btq %rdx, %r11
jb 0x3d7e
movl $0xa, %ecx
movabsq $0x1000000010, %rdi     # imm = 0x1000000010
btq %rdx, %rdi
jb 0x3d83
movabsq $0x4000000040, %rcx     # imm = 0x4000000040
btq %rdx, %rcx
movl $0x0, %ecx
jae 0x3d8c
movl $0x14, %ecx
jmp 0x3d83
cmpb $0x63, 0x2(%r12)
jne 0x3eeb
cmpb $0x65, 0x3(%r12)
jne 0x3eeb
cmpb $0x2d, 0x4(%r12)
jne 0x3eeb
movb 0x5(%r12), %al
movl %eax, %ecx
andb $-0x2, %cl
cmpb $0x30, %cl
jne 0x3eeb
cmpl $-0x1, %edx
jne 0x432f
xorl %edx, %edx
cmpb $0x31, %al
sete %dl
jmp 0x3920
cmpb $0x2d, 0x3(%r12)
jne 0x4008
cmpq $-0x1, %r13
jne 0x4351
movl %r8d, 0x8(%rsp)
addq $0x4, %r12
movq %r12, %rdi
movq %rsi, 0x10(%rsp)
movl %r9d, %ebp
movq %r10, %r13
callq 0x3140
movabsq $0x100000001, %r11      # imm = 0x100000001
movl %ebp, %r9d
movq 0x28(%rsp), %rbp
movq 0x10(%rsp), %rsi
testq %rax, %rax
je 0x3ea3
movq %r13, %r10
movzbl -0x1(%r12,%rax), %edx
addl $-0x47, %edx
cmpl $0x26, %edx
ja 0x3e7d
btq %rdx, %r11
jb 0x3cde
movl $0xa, %ecx
movabsq $0x1000000010, %rdi     # imm = 0x1000000010
btq %rdx, %rdi
jb 0x3ce3
movabsq $0x4000000040, %rcx     # imm = 0x4000000040
btq %rdx, %rcx
movl $0x0, %ecx
jae 0x3cec
movl $0x14, %ecx
jmp 0x3ce3
movl $0x1e, %ecx
decq %rax
je 0x3e8b
cmpq $0x1, %rax
je 0x3c6a
cmpb $0x30, (%r12)
je 0x3e8b
xorl %edx, %edx
xorl %r14d, %r14d
movzbl (%r12,%rdx), %r8d
leal -0x30(%r8), %edi
cmpb $0x9, %dil
ja 0x3e8b
addq $-0x30, %r8
cmpq %r10, %r14
jb 0x3c9b
jne 0x3e8b
cmpq $0x5, %r8
ja 0x3e8b
leaq (%r14,%r14,4), %rdi
leaq (%r8,%rdi,2), %r14
incq %rdx
cmpq %rdx, %rax
jne 0x3c6f
movq $-0x1, %rax
shrq %cl, %rax
cmpq %rax, %r14
ja 0x3e8b
shlq %cl, %r14
cmpq $0xa, %r14
movl 0x4(%rsp), %edx
movl 0x8(%rsp), %r8d
movq 0x20(%rsp), %rdi
jb 0x3920
jmp 0x4371
movl $0x1e, %ecx
decq %rax
je 0x3ea3
cmpq $0x1, %rax
je 0x3cfd
cmpb $0x30, (%r12)
je 0x3ea3
xorl %edx, %edx
xorl %r13d, %r13d
movzbl (%r12,%rdx), %r8d
leal -0x30(%r8), %edi
cmpb $0x9, %dil
ja 0x3ea3
addq $-0x30, %r8
cmpq %r10, %r13
jb 0x3d2e
jne 0x3ea3
cmpq $0x5, %r8
ja 0x3ea3
leaq (,%r13,4), %rdi
addq %r13, %rdi
leaq (%r8,%rdi,2), %r13
incq %rdx
cmpq %rdx, %rax
jne 0x3d02
movq $-0x1, %rax
shrq %cl, %rax
cmpq %rax, %r13
ja 0x3ea3
shlq %cl, %r13
leaq -0x1(%r13), %rax
cmpq $0x10000, %rax          # imm = 0x10000
movl 0x4(%rsp), %edx
movl 0x8(%rsp), %r8d
movq 0x20(%rsp), %rdi
jb 0x3920
jmp 0x4376
movl $0x1e, %ecx
decq %rax
je 0x3eaf
cmpq $0x1, %rax
je 0x3d9d
cmpb $0x30, (%r12)
je 0x3eaf
movl 0x8(%rsp), %edx
movb 0x18(%rsp), %dil
movb %dil, %dl
movl %edx, 0x8(%rsp)
xorl %edx, %edx
xorl %ebx, %ebx
movzbl (%r12,%rdx), %r8d
leal -0x30(%r8), %edi
cmpb $0x9, %dil
ja 0x3eaf
addq $-0x30, %r8
cmpq %r10, %rbx
jb 0x3ddd
jne 0x3eaf
cmpq $0x5, %r8
ja 0x3eaf
leaq (%rbx,%rbx,4), %rdi
leaq (%r8,%rdi,2), %rbx
incq %rdx
cmpq %rdx, %rax
jne 0x3db1
movq $-0x1, %rax
shrq %cl, %rax
cmpq %rax, %rbx
ja 0x3eaf
shlq %cl, %rbx
cmpq $0xfff, %rbx            # imm = 0xFFF
movq 0x10(%rsp), %r13
jle 0x3e4b
cmpq $0x1000, %rbx           # imm = 0x1000
movl 0x4(%rsp), %edx
movl 0x8(%rsp), %r8d
movq 0x20(%rsp), %rdi
je 0x3920
cmpq $0x4000, %rbx           # imm = 0x4000
je 0x3920
cmpq $0x10000, %rbx          # imm = 0x10000
je 0x3920
jmp 0x437b
testq %rbx, %rbx
movl 0x4(%rsp), %edx
movl 0x8(%rsp), %r8d
movq 0x20(%rsp), %rdi
je 0x3920
cmpq $0x1, %rbx
movl $0x1000, %ebx           # imm = 0x1000
je 0x3920
jmp 0x437b
xorl %ecx, %ecx
jmp 0x3c59
xorl %ecx, %ecx
jmp 0x3cec
xorl %ecx, %ecx
jmp 0x3d8c
leaq 0x1ceeb(%rip), %rdi     # 0x20d7d
jmp 0x3fc6
leaq 0x1ce7d(%rip), %rdi     # 0x20d1b
jmp 0x3fc6
leaq 0x1ce95(%rip), %rdi     # 0x20d3f
jmp 0x3fc6
leaq 0x1ce9e(%rip), %rdi     # 0x20d54
jmp 0x3fc6
incl %r9d
movl $0x1000, %eax           # imm = 0x1000
cmpq %rax, %rbx
sete 0x20(%rsp)
cmpq $-0x1, %rbx
sete 0x28(%rsp)
cmoveq %rax, %rbx
cmpq $-0x1, %r14
je 0x3ef7
cmpl $0x2, %r9d
jae 0x3f03
jmp 0x3f23
jmp 0x3fbf
leaq 0x1cea0(%rip), %rdi     # 0x20d92
jmp 0x3fc6
movl $0x6, %r14d
cmpl $0x2, %r9d
jb 0x3f41
leaq 0x1ccdb(%rip), %rdi     # 0x20be5
movl %edx, %r15d
movl %r8d, %r12d
callq 0x3410
movl %r12d, %r8d
movl %r15d, %edx
testl %ebp, %ebp
je 0x4004
cmpq $0x7, %r14
jb 0x3f41
leaq 0x1ccd9(%rip), %rdi     # 0x20c09
movl %edx, %r15d
movl %r8d, %r12d
callq 0x3410
movl %r12d, %r8d
movl %r15d, %edx
cmpl $0x2, %ebp
jne 0x3fbf
movl %r8d, 0x8(%rsp)
movl %edx, 0x4(%rsp)
movq 0x90(%rsp), %r12
movq 0x98(%rsp), %rax
movq %rax, 0x10(%rsp)
leaq 0x60(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x1c09c(%rip), %rsi     # 0x20010
leaq 0x1c09b(%rip), %rdx     # 0x20016
leaq 0x50(%rsp), %rdi
callq 0x4448
leaq 0x50(%rsp), %rdi
movq %r12, %rsi
callq 0x3520
leaq 0x80(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x4011
movq %rdx, 0x70(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x80(%rsp)
jmp 0x401a
leaq 0x1ce2d(%rip), %rdi     # 0x20df3
callq 0x3410
leaq 0x1c0b2(%rip), %rdi     # 0x20084
xorl %eax, %eax
callq 0x3050
movl $0x1, %ebx
movl %ebx, %eax
addq $0xa8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x1cdd6(%rip), %rdi     # 0x20dcf
jmp 0x3fc6
leaq 0x1cd67(%rip), %rdi     # 0x20d69
jmp 0x3fc6
xorl %ebx, %ebx
jmp 0x3fde
leaq 0x1cd1d(%rip), %rdi     # 0x20d2c
jmp 0x3fc6
movupd (%rcx), %xmm0
movupd %xmm0, (%r15)
movq %r12, 0x18(%rsp)
movq 0x8(%rax), %rdx
leaq 0x70(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x1bfd5(%rip), %rsi     # 0x20017
callq 0x3520
leaq 0x40(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x406e
movq %rdx, 0x30(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x40(%rsp)
jmp 0x4077
movupd (%rcx), %xmm0
movupd %xmm0, (%rbp)
movq 0x8(%rax), %rdx
movq %rdx, 0x38(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x30(%rsp), %rdi
callq 0x141a8
movq 0x30(%rsp), %rdi
cmpq %rbp, %rdi
je 0x40b0
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x32b0
movq 0x70(%rsp), %rdi
cmpq %r15, %rdi
je 0x40ca
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x32b0
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0x40e6
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x32b0
leaq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
movq %rax, (%rdi)
leaq 0x1bf20(%rip), %rsi     # 0x2001a
leaq 0x1bf1f(%rip), %rdx     # 0x20020
callq 0x4448
leaq 0x50(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x3520
movq %r15, 0x70(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x413b
movq %rdx, 0x70(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x80(%rsp)
jmp 0x4144
movupd (%rcx), %xmm0
movupd %xmm0, (%r15)
movq 0x8(%rax), %rdx
leaq 0x70(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x1beb0(%rip), %rsi     # 0x20017
movq %rdi, %r12
callq 0x3520
movq %rbp, 0x30(%rsp)
movq (%rax), %rdi
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdi
je 0x4192
movq %rdi, 0x30(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x40(%rsp)
jmp 0x419e
movupd (%rcx), %xmm0
movupd %xmm0, (%rbp)
movq %rbp, %rdi
movq 0x8(%rax), %rdx
movq %rdx, 0x38(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
callq 0x141a8
movq 0x30(%rsp), %rdi
cmpq %rbp, %rdi
je 0x41d2
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x32b0
movq 0x70(%rsp), %rdi
cmpq %r15, %rdi
je 0x41ec
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x32b0
movb 0x20(%rsp), %al
orb %al, 0x28(%rsp)
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0x4210
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x32b0
cmpl $0x0, 0x8(%rsp)
setne %r15b
xorl %ebp, %ebp
cmpl $0x0, 0x4(%rsp)
setne %bpl
callq 0x43ef
movsd %xmm0, 0x8(%rsp)
cmpq $-0x1, %r13
movl $0x0, 0x70(%rsp)
movl $0x8, %edx
cmovnel %r13d, %edx
movb 0x28(%rsp), %al
orb %r15b, %al
movzbl %al, %eax
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %r15
movq %r15, %rsi
movl %r14d, %ecx
movl %ebp, %r8d
movq %rbx, %r9
pushq %r12
pushq %rax
callq 0x44e0
addq $0x10, %rsp
testb %al, %al
je 0x42fc
leaq 0x1ca16(%rip), %rdi     # 0x20c95
callq 0x3410
leaq 0x30(%rsp), %rsi
movq %r15, %rdi
callq 0x7662
testb %al, %al
je 0x433b
movl 0x34(%rsp), %esi
movq 0x48(%rsp), %rdx
movq 0x40(%rsp), %rcx
leaq 0x1bd73(%rip), %rdi     # 0x20021
xorl %ebx, %ebx
xorl %eax, %eax
callq 0x3050
movl 0x70(%rsp), %edx
movq 0x18(%rsp), %rdi
movq %r15, %rsi
xorl %ecx, %ecx
callq 0x738f
testb %al, %al
je 0x435b
leaq 0x1ca21(%rip), %rdi     # 0x20cfa
callq 0x3410
callq 0x43ef
subsd 0x8(%rsp), %xmm0
leaq 0x1bd77(%rip), %rdi     # 0x20067
movb $0x1, %al
callq 0x3050
jmp 0x3fde
leaq 0x1c978(%rip), %rdi     # 0x20c7b
callq 0x3410
movl $0x2, %ebx
jmp 0x3fde
leaq 0x1cac8(%rip), %rdi     # 0x20de1
jmp 0x3fc6
leaq 0x1ca98(%rip), %rdi     # 0x20dbd
jmp 0x3fc6
jmp 0x3e8b
leaq 0x1ca71(%rip), %rdi     # 0x20da7
jmp 0x3fc6
leaq 0x1c969(%rip), %rdi     # 0x20cab
callq 0x3410
movl $0x3, %ebx
jmp 0x3fde
jmp 0x3ea3
jmp 0x3eaf
leaq 0x1c970(%rip), %rdi     # 0x20cd2
callq 0x3410
movl $0x4, %ebx
jmp 0x3fde
jmp 0x3e8b
jmp 0x3ea3
jmp 0x3eaf
jmp 0x4388
jmp 0x43a4
jmp 0x43c3
jmp 0x43e4
movq %rax, %rbx
movq 0x30(%rsp), %rdi
cmpq %rbp, %rdi
je 0x43a7
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x32b0
jmp 0x43a7
movq %rax, %rbx
movq 0x70(%rsp), %rdi
cmpq %r15, %rdi
je 0x43c6
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x32b0
jmp 0x43c6
movq %rax, %rbx
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0x43e7
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x32b0
jmp 0x43e7
movq %rax, %rbx
movq %rbx, %rdi
callq 0x34d0