// File: /workspace/github_cpp_makefile_star2_O3/sisong[P]ApkDiffPatch/src/patch/ZipDiffData.cpp
// Function: ZipDiffData_openRead
bool ZipDiffData_openRead(ZipDiffData* self,const hpatch_TStreamInput* diffData,
                          hpatch_TDecompress* decompressPlugin){
    size_t  headDataSize=0;
    size_t  headDataCompressedSize=0;
    size_t  headDataPos=0;
    size_t  hdiffzSize=0;
    {
        size_t  headInoPos=0;
        check(_openZipDiffData(diffData,decompressPlugin,&headInoPos));
        //read head info
        TByte buf[hpatch_kMaxPackedUIntBytes*(16+3)];
        int readLen=sizeof(buf);
        if (headInoPos+readLen>diffData->streamSize)
            readLen=(int)(diffData->streamSize-headInoPos);
        check(diffData->read(diffData,headInoPos,buf,buf+readLen));
        //unpack head info
        const TByte* curBuf=buf;
        #define kSoSmallPageAlignSize (1024*4)
        self->normalizeSoPageAlign=kSoSmallPageAlignSize/4;
        while ((curBuf<buf+readLen)&&(kPackedEmptyPrefix==(*curBuf))){//test have normalizeSoPageAlign tag? starting with v1.8.0
            self->normalizeSoPageAlign*=4;
            ++curBuf;
        }// else old version diffData, not saved normalizeSoPageAlign tag
        if (self->normalizeSoPageAlign==kSoSmallPageAlignSize) self->normalizeSoPageAlign=0;
        self->pageAlignCompatible=(self->normalizeSoPageAlign==(kSoSmallPageAlignSize/4));
        if (self->pageAlignCompatible) self->normalizeSoPageAlign=kSoSmallPageAlignSize;
        checkUnpackSize(&curBuf,buf+readLen,&self->PatchModel,size_t);
        check(self->PatchModel<=1);//now must 0 or 1
        checkUnpackSize(&curBuf,buf+readLen,&self->newZipFileCount,size_t);
        checkUnpackSize(&curBuf,buf+readLen,&self->newZipIsDataNormalized,size_t);
        checkUnpackSize(&curBuf,buf+readLen,&self->newZipAlignSize,size_t);
        checkUnpackSize(&curBuf,buf+readLen,&self->newCompressLevel,size_t);
        checkUnpackSize(&curBuf,buf+readLen,&self->newCompressMemLevel,size_t);
        checkUnpackSize(&curBuf,buf+readLen,&self->newOtherCompressLevel,size_t);
        checkUnpackSize(&curBuf,buf+readLen,&self->newOtherCompressMemLevel,size_t);
        checkUnpackSize(&curBuf,buf+readLen,&self->newZipCESize,size_t);
        checkUnpackSize(&curBuf,buf+readLen,&self->samePairCount,size_t);
        checkUnpackSize(&curBuf,buf+readLen,&self->newRefOtherCompressedCount,size_t);
        checkUnpackSize(&curBuf,buf+readLen,&self->newRefCompressedSizeCount,size_t);
        checkUnpackSize(&curBuf,buf+readLen,&self->oldZipIsDataNormalized,size_t);
        checkUnpackSize(&curBuf,buf+readLen,&self->oldIsFileDataOffsetMatch,size_t);
        checkUnpackSize(&curBuf,buf+readLen,&self->oldZipCESize,size_t);
        checkUnpackSize(&curBuf,buf+readLen,&self->oldRefCount,size_t);
        checkUnpackSize(&curBuf,buf+readLen,&self->oldCrc,uint32_t);
        checkUnpackSize(&curBuf,buf+readLen,&headDataSize,size_t);
        checkUnpackSize(&curBuf,buf+readLen,&headDataCompressedSize,size_t);
        checkUnpackSize(&curBuf,buf+readLen,&hdiffzSize,size_t);
        headDataPos=(curBuf-buf)+headInoPos;
        
        check(headDataCompressedSize <= diffData->streamSize-headDataPos);
        check(hdiffzSize <= diffData->streamSize-headDataPos-headDataCompressedSize);
    }
    {//head data
        //  memBuf used as:
        //  [     compressed headData   ]     [ uncompressed headData(packed list) ]
        //  [           unpacked_list        ]
        size_t memLeft=(self->samePairCount*2+self->newRefOtherCompressedCount
                        +self->newRefCompressedSizeCount+self->oldRefCount)*sizeof(uint32_t);
        if (headDataCompressedSize>memLeft) memLeft=_hpatch_align_upper(headDataCompressedSize,sizeof(uint32_t));
        assert(self->_buf==0);
        self->_buf=(TByte*)malloc(memLeft+headDataSize);
        check(self->_buf!=0);
        
        check(diffData->read(diffData,headDataPos,self->_buf,self->_buf+headDataCompressedSize));
        if (headDataSize>0){
            check(hpatch_deccompress_mem(decompressPlugin,self->_buf,self->_buf+headDataCompressedSize,
                                         self->_buf+memLeft,self->_buf+memLeft+headDataSize));
        }
        
        self->samePairList=(uint32_t*)self->_buf;
        self->newRefOtherCompressedList=self->samePairList+self->samePairCount*2;
        self->newRefCompressedSizeList=self->newRefOtherCompressedList+self->newRefOtherCompressedCount;
        self->oldRefList=self->newRefCompressedSizeList+self->newRefCompressedSizeCount;
        const TByte* curBuf=self->_buf+memLeft;
        const TByte* const bufEnd=self->_buf+memLeft+headDataSize;
        
        uint32_t backPairNew=~(uint32_t)0;
        hpatch_StreamPos_t backPairOld=~(hpatch_StreamPos_t)0;
        for (size_t i=0; i<self->samePairCount; ++i) {
            uint32_t curPairNew=0;
            checkUnpackSize(&curBuf,bufEnd,&curPairNew,uint32_t);
            backPairNew+=1+curPairNew;
            self->samePairList[i*2+0]=backPairNew;
            
            check(curBuf<bufEnd);
            TByte sign=(*curBuf)>>(8-1);
            hpatch_StreamPos_t incPairOld=0;
            check(hpatch_unpackUIntWithTag(&curBuf,bufEnd,&incPairOld,1));
            if (!sign)
                backPairOld+=1+incPairOld;
            else
                backPairOld=backPairOld+1-incPairOld;
            check(backPairOld==(uint32_t)backPairOld);
            self->samePairList[i*2+1]=(uint32_t)backPairOld;
        }
        _unpackIncList(self->newRefOtherCompressedList,self->newRefOtherCompressedCount);
        for (size_t i=0; i<self->newRefCompressedSizeCount; ++i) {
            checkUnpackSize(&curBuf,bufEnd,&self->newRefCompressedSizeList[i],uint32_t);
        }
        _unpackIncList(self->oldRefList,self->oldRefCount);
        check(curBuf==bufEnd);
    }
    {//HDiffZ stream
        size_t hdiffzPos=headDataPos+headDataCompressedSize;
        TStreamInputClip_init(&self->_hdiffzData,diffData,hdiffzPos,hdiffzPos+hdiffzSize);
        self->hdiffzData=&self->_hdiffzData.base;
    }
    {//ExtraEdit stream
        //read size+tag
        check(diffData->streamSize>=4+kExtraEditLen);
        unsigned char buf4s[4+kExtraEditLen];
        check(diffData->read(diffData,diffData->streamSize-4-kExtraEditLen,buf4s,buf4s+4+kExtraEditLen));
        check(0==memcmp(kExtraEdit,buf4s+4,kExtraEditLen));//check tag
        uint32_t extraEditSize=readUInt32(buf4s);

        check(4+kExtraEditLen+self->_hdiffzData.clipBeginPos+hdiffzSize+extraEditSize<=diffData->streamSize);
        hpatch_StreamPos_t extraEditPos=diffData->streamSize-extraEditSize-4-kExtraEditLen;
        TStreamInputClip_init(&self->_extraEdit,diffData,extraEditPos,extraEditPos+extraEditSize);
        self->extraEdit=&self->_extraEdit.base;
    }
    return true;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x118, %rsp            # imm = 0x118
movq %rdx, %r15
movq %rsi, %r12
movq %rdi, %rbx
leaq 0x10(%rsp), %rdx
movq $0x0, (%rdx)
movq %rsi, %rdi
movq %r15, %rsi
callq 0x3e1a6
testb %al, %al
je 0x3ecb1
movq 0x10(%rsp), %rsi
movl $0xd1, %eax
leaq (%rsi,%rax), %rcx
movq 0x8(%r12), %rdx
movl %edx, %edi
subl %esi, %edi
cmpq %rdx, %rcx
movslq %edi, %r14
cmovbeq %rax, %r14
movq %r12, %rdi
leaq (%rsp,%r14), %r13
addq $0x40, %r13
leaq 0x40(%rsp), %r12
movq %r12, %rdx
movq %r13, %rcx
movq %rdi, 0x28(%rsp)
callq *0x10(%rdi)
testl %eax, %eax
je 0x3ecdc
movq %r12, 0x8(%rsp)
movq $0x400, 0xa8(%rbx) # imm = 0x400
testq %r14, %r14
jle 0x3e403
movl $0x400, %eax            # imm = 0x400
xorl %ecx, %ecx
movq %r12, %rdx
cmpb (%rdx), %cl
jno 0x3e3e7
shlq $0x2, %rax
movq %rax, 0xa8(%rbx)
incq %rdx
movq %rdx, 0x8(%rsp)
cmpq %r13, %rdx
jb 0x3e3cb
cmpq $0x1000, %rax           # imm = 0x1000
jne 0x3e40c
movq $0x0, 0xa8(%rbx)
movb $0x0, 0xb0(%rbx)
jmp 0x3e426
movb $0x1, 0xb0(%rbx)
jmp 0x3e41b
cmpq $0x400, %rax            # imm = 0x400
sete 0xb0(%rbx)
jne 0x3e426
movq $0x1000, 0xa8(%rbx) # imm = 0x1000
movq %rsp, %rdx
movq $0x0, (%rdx)
leaq 0x8(%rsp), %rdi
movq %r13, %rsi
xorl %ecx, %ecx
callq 0x43342
testl %eax, %eax
je 0x3ed07
movq (%rsp), %rax
movq %rax, (%rbx)
cmpq $0x2, %rax
jae 0x3ed32
movq %rsp, %rdx
movq $0x0, (%rdx)
leaq 0x8(%rsp), %rdi
movq %r13, %rsi
xorl %ecx, %ecx
callq 0x43342
testl %eax, %eax
je 0x3ed5d
movq %rsp, %rdx
movq (%rdx), %rax
movq %rax, 0x8(%rbx)
movq $0x0, (%rdx)
leaq 0x8(%rsp), %rdi
movq %r13, %rsi
xorl %ecx, %ecx
callq 0x43342
testl %eax, %eax
je 0x3ed88
movq %rsp, %rdx
movq (%rdx), %rax
movq %rax, 0x10(%rbx)
movq $0x0, (%rdx)
leaq 0x8(%rsp), %rdi
movq %r13, %rsi
xorl %ecx, %ecx
callq 0x43342
testl %eax, %eax
je 0x3edb3
movq %rsp, %rdx
movq (%rdx), %rax
movq %rax, 0x18(%rbx)
movq $0x0, (%rdx)
leaq 0x8(%rsp), %rdi
movq %r13, %rsi
xorl %ecx, %ecx
callq 0x43342
testl %eax, %eax
je 0x3edde
movq %rsp, %rdx
movq (%rdx), %rax
movq %rax, 0x20(%rbx)
movq $0x0, (%rdx)
leaq 0x8(%rsp), %rdi
movq %r13, %rsi
xorl %ecx, %ecx
callq 0x43342
testl %eax, %eax
je 0x3ee09
movq %rsp, %rdx
movq (%rdx), %rax
movq %rax, 0x28(%rbx)
movq $0x0, (%rdx)
leaq 0x8(%rsp), %rdi
movq %r13, %rsi
xorl %ecx, %ecx
callq 0x43342
testl %eax, %eax
je 0x3ee34
movq %rsp, %rdx
movq (%rdx), %rax
movq %rax, 0x30(%rbx)
movq $0x0, (%rdx)
leaq 0x8(%rsp), %rdi
movq %r13, %rsi
xorl %ecx, %ecx
callq 0x43342
testl %eax, %eax
je 0x3ee5f
movq %rsp, %rdx
movq (%rdx), %rax
movq %rax, 0x38(%rbx)
movq $0x0, (%rdx)
leaq 0x8(%rsp), %rdi
movq %r13, %rsi
xorl %ecx, %ecx
callq 0x43342
testl %eax, %eax
je 0x3ee8a
movq %rsp, %rdx
movq (%rdx), %rax
movq %rax, 0x40(%rbx)
movq $0x0, (%rdx)
leaq 0x8(%rsp), %rdi
movq %r13, %rsi
xorl %ecx, %ecx
callq 0x43342
testl %eax, %eax
je 0x3eeb5
movq %rsp, %rdx
movq (%rdx), %rax
movq %rax, 0x50(%rbx)
movq $0x0, (%rdx)
leaq 0x8(%rsp), %rdi
movq %r13, %rsi
xorl %ecx, %ecx
callq 0x43342
testl %eax, %eax
je 0x3eee0
movq %rsp, %rdx
movq (%rdx), %rax
movq %rax, 0x60(%rbx)
movq $0x0, (%rdx)
leaq 0x8(%rsp), %rdi
movq %r13, %rsi
xorl %ecx, %ecx
callq 0x43342
testl %eax, %eax
je 0x3ef0b
movq %rsp, %rdx
movq (%rdx), %rax
movq %rax, 0x70(%rbx)
movq $0x0, (%rdx)
leaq 0x8(%rsp), %rdi
movq %r13, %rsi
xorl %ecx, %ecx
callq 0x43342
testl %eax, %eax
je 0x3ef36
movq %rsp, %rdx
movq (%rdx), %rax
movq %rax, 0x78(%rbx)
movq $0x0, (%rdx)
leaq 0x8(%rsp), %rdi
movq %r13, %rsi
xorl %ecx, %ecx
callq 0x43342
testl %eax, %eax
je 0x3ef61
movq %rsp, %rdx
movq (%rdx), %rax
movq %rax, 0x80(%rbx)
movq $0x0, (%rdx)
leaq 0x8(%rsp), %rdi
movq %r13, %rsi
xorl %ecx, %ecx
callq 0x43342
testl %eax, %eax
je 0x3ef8c
movq %rsp, %rdx
movq (%rdx), %rax
movq %rax, 0x88(%rbx)
movq $0x0, (%rdx)
leaq 0x8(%rsp), %rdi
movq %r13, %rsi
xorl %ecx, %ecx
callq 0x43342
testl %eax, %eax
je 0x3efb7
movq %rsp, %rdx
movq (%rdx), %rax
movq %rax, 0x98(%rbx)
movq $0x0, (%rdx)
leaq 0x8(%rsp), %rdi
movq %r13, %rsi
xorl %ecx, %ecx
callq 0x43342
testl %eax, %eax
je 0x3efe2
movq (%rsp), %rax
movq %rax, %rcx
shrq $0x20, %rcx
jne 0x3efeb
movq %r15, 0x30(%rsp)
movl %eax, 0xa0(%rbx)
movq %rsp, %rdx
movq $0x0, (%rdx)
leaq 0x8(%rsp), %rdi
movq %r13, %rsi
xorl %ecx, %ecx
callq 0x43342
testl %eax, %eax
je 0x3f016
movq %rsp, %rdx
movq (%rdx), %rbp
movq $0x0, (%rdx)
leaq 0x8(%rsp), %rdi
movq %r13, %rsi
xorl %ecx, %ecx
callq 0x43342
testl %eax, %eax
je 0x3f041
movq %rsp, %rdx
movq (%rdx), %r15
movq $0x0, (%rdx)
leaq 0x8(%rsp), %rdi
movq %r13, %rsi
xorl %ecx, %ecx
callq 0x43342
testl %eax, %eax
je 0x3f06c
movq 0x8(%rsp), %rcx
subq %r12, %rcx
addq 0x10(%rsp), %rcx
movq 0x28(%rsp), %r14
movq 0x8(%r14), %rax
movq %rcx, 0x20(%rsp)
subq %rcx, %rax
subq %r15, %rax
jb 0x3f097
movq (%rsp), %r13
cmpq %rax, %r13
ja 0x3f0c2
movq 0x50(%rbx), %rax
addq %rax, %rax
addq 0x60(%rbx), %rax
addq 0x70(%rbx), %rax
addq 0x98(%rbx), %rax
shlq $0x2, %rax
leaq 0x3(%r15), %r12
andq $-0x4, %r12
movq %r15, 0x18(%rsp)
cmpq %rax, %r15
cmovbeq %rax, %r12
cmpq $0x0, 0xc8(%rbx)
jne 0x3f0ed
leaq (%r12,%rbp), %rdi
callq 0x4400
movq %rax, 0xc8(%rbx)
testq %rax, %rax
je 0x3f10c
movq %rax, %rcx
addq 0x18(%rsp), %rcx
movq %r14, %rdi
movq 0x20(%rsp), %rsi
movq %rax, %rdx
callq *0x10(%r14)
testl %eax, %eax
je 0x3f137
movq %r13, 0x38(%rsp)
testq %rbp, %rbp
je 0x3e83b
movq 0xc8(%rbx), %rsi
movq 0x18(%rsp), %rax
leaq (%rsi,%rax), %rdx
leaq (%rsi,%r12), %rcx
leaq (%rcx,%rbp), %r8
movq 0x30(%rsp), %rdi
callq 0x43453
testl %eax, %eax
je 0x3f239
movq 0xc8(%rbx), %rcx
movq %rcx, 0x48(%rbx)
movq 0x50(%rbx), %rdx
movq 0x60(%rbx), %rax
leaq (%rcx,%rdx,8), %rsi
movq %rsi, 0x58(%rbx)
leaq (%rsi,%rax,4), %rsi
movq %rsi, 0x68(%rbx)
movq 0x70(%rbx), %rdi
leaq (%rsi,%rdi,4), %rsi
movq %rsi, 0x90(%rbx)
addq %rcx, %r12
movq %r12, 0x40(%rsp)
addq %rbp, %r12
testq %rdx, %rdx
je 0x3e950
movl $0xffffffff, %r14d      # imm = 0xFFFFFFFF
movq $-0x1, %r13
xorl %r15d, %r15d
movq $0x0, 0x10(%rsp)
leaq 0x40(%rsp), %rdi
movq %r12, %rsi
leaq 0x10(%rsp), %rdx
xorl %ecx, %ecx
callq 0x43342
testl %eax, %eax
je 0x3eb5d
movq 0x10(%rsp), %rax
movq %rax, %rcx
shrq $0x20, %rcx
jne 0x3ebea
addl %eax, %r14d
incl %r14d
movq 0x48(%rbx), %rax
movl %r14d, (%rax,%r15,8)
movq 0x40(%rsp), %rax
cmpq %r12, %rax
jae 0x3ebbf
movb (%rax), %bpl
movq $0x0, 0x10(%rsp)
leaq 0x40(%rsp), %rdi
movq %r12, %rsi
leaq 0x10(%rsp), %rdx
movl $0x1, %ecx
callq 0x43342
testl %eax, %eax
je 0x3eb69
testb %bpl, %bpl
js 0x3e921
movq 0x10(%rsp), %rax
addq %rax, %r13
incq %r13
jmp 0x3e929
subq 0x10(%rsp), %r13
incq %r13
movq %r13, %rax
shrq $0x20, %rax
jne 0x3eb94
movq 0x48(%rbx), %rax
movl %r13d, 0x4(%rax,%r15,8)
incq %r15
cmpq 0x50(%rbx), %r15
jb 0x3e891
movq 0x60(%rbx), %rax
testq %rax, %rax
je 0x3e9b2
movl $0xffffffff, %r14d      # imm = 0xFFFFFFFF
xorl %r13d, %r13d
leaq 0x40(%rsp), %r15
leaq 0x10(%rsp), %rbp
movq $0x0, 0x10(%rsp)
movq %r15, %rdi
movq %r12, %rsi
movq %rbp, %rdx
xorl %ecx, %ecx
callq 0x43342
testl %eax, %eax
je 0x3ec15
movq 0x10(%rsp), %rax
movq %rax, %rcx
shrq $0x20, %rcx
jne 0x3ec1e
addl %eax, %r14d
incl %r14d
movq 0x58(%rbx), %rax
movl %r14d, (%rax,%r13,4)
incq %r13
cmpq 0x60(%rbx), %r13
jb 0x3e968
cmpq $0x0, 0x70(%rbx)
je 0x3ea0a
xorl %r14d, %r14d
leaq 0x40(%rsp), %r15
leaq 0x10(%rsp), %rbp
movq $0x0, 0x10(%rsp)
movq %r15, %rdi
movq %r12, %rsi
movq %rbp, %rdx
xorl %ecx, %ecx
callq 0x43342
testl %eax, %eax
je 0x3ec49
movq 0x10(%rsp), %rax
movq %rax, %rcx
shrq $0x20, %rcx
jne 0x3ec52
movq 0x68(%rbx), %rcx
movl %eax, (%rcx,%r14,4)
incq %r14
cmpq 0x70(%rbx), %r14
jb 0x3e9c6
cmpq $0x0, 0x98(%rbx)
je 0x3ea77
movl $0xffffffff, %r14d      # imm = 0xFFFFFFFF
xorl %r13d, %r13d
leaq 0x40(%rsp), %r15
leaq 0x10(%rsp), %rbp
movq $0x0, 0x10(%rsp)
movq %r15, %rdi
movq %r12, %rsi
movq %rbp, %rdx
xorl %ecx, %ecx
callq 0x43342
testl %eax, %eax
je 0x3ec7d
movq 0x10(%rsp), %rax
movq %rax, %rcx
shrq $0x20, %rcx
jne 0x3ec86
addl %eax, %r14d
incl %r14d
movq 0x90(%rbx), %rax
movl %r14d, (%rax,%r13,4)
incq %r13
cmpq 0x98(%rbx), %r13
jb 0x3ea27
cmpq %r12, 0x40(%rsp)
jne 0x3f162
movq 0x20(%rsp), %rdx
addq 0x18(%rsp), %rdx
leaq 0xd0(%rbx), %r15
movq 0x38(%rsp), %r12
leaq (%rdx,%r12), %rcx
movq %r15, %rdi
movq 0x28(%rsp), %r14
movq %r14, %rsi
callq 0x43bc0
movq %r15, 0xb8(%rbx)
movq 0x8(%r14), %rsi
cmpq $0xf, %rsi
jbe 0x3f18d
addq $-0x10, %rsi
leaq 0x50(%rsp), %rcx
leaq 0x40(%rsp), %rdx
movq %r14, %rdi
callq *0x10(%r14)
testl %eax, %eax
je 0x3f1b8
movabsq $0x452631746150695a, %rax # imm = 0x452631746150695A
xorq 0x44(%rsp), %rax
movl 0x4c(%rsp), %ecx
xorq $0x61727478, %rcx       # imm = 0x61727478
orq %rax, %rcx
jne 0x3f1e3
addq 0xf8(%rbx), %r12
movl 0x40(%rsp), %eax
leaq (%rax,%r12), %rdx
addq $0x10, %rdx
movq 0x8(%r14), %rcx
cmpq %rcx, %rdx
ja 0x3f20e
negq %rax
leaq (%rcx,%rax), %rdx
addq $-0x10, %rdx
leaq 0x100(%rbx), %r15
addq $-0x10, %rcx
movq %r15, %rdi
movq %r14, %rsi
callq 0x43bc0
movq %r15, 0xc0(%rbx)
movb $0x1, %al
addq $0x118, %rsp            # imm = 0x118
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x2169a(%rip), %rdi     # 0x601fe
jmp 0x3ebf1
leaq 0x216e5(%rip), %rdi     # 0x60255
callq 0x44e0
leaq 0x1b4d4(%rip), %rdi     # 0x5a050
leaq 0x21190(%rip), %rsi     # 0x5fd13
leaq 0x211a3(%rip), %rcx     # 0x5fd2d
movl $0xb5, %edx
callq 0x4200
leaq 0x216f8(%rip), %rdi     # 0x60293
callq 0x44e0
leaq 0x1b4a9(%rip), %rdi     # 0x5a050
leaq 0x21165(%rip), %rsi     # 0x5fd13
leaq 0x21178(%rip), %rcx     # 0x5fd2d
movl $0xba, %edx
callq 0x4200
leaq 0x2167a(%rip), %rdi     # 0x60240
callq 0x44e0
leaq 0x1b47e(%rip), %rdi     # 0x5a050
leaq 0x2113a(%rip), %rsi     # 0x5fd13
leaq 0x2114d(%rip), %rcx     # 0x5fd2d
movl $0xb2, %edx
callq 0x4200
leaq 0x21639(%rip), %rdi     # 0x6022a
callq 0x44e0
leaq 0x1b453(%rip), %rdi     # 0x5a050
leaq 0x2110f(%rip), %rsi     # 0x5fd13
leaq 0x21122(%rip), %rcx     # 0x5fd2d
movl $0xae, %edx
callq 0x4200
leaq 0x215e2(%rip), %rdi     # 0x601fe
jmp 0x3ec25
leaq 0x21605(%rip), %rdi     # 0x6022a
callq 0x44e0
leaq 0x1b41f(%rip), %rdi     # 0x5a050
leaq 0x210db(%rip), %rsi     # 0x5fd13
leaq 0x210ee(%rip), %rcx     # 0x5fd2d
movl $0xbd, %edx
callq 0x4200
leaq 0x215ae(%rip), %rdi     # 0x601fe
jmp 0x3ec59
leaq 0x215d1(%rip), %rdi     # 0x6022a
callq 0x44e0
leaq 0x1b3eb(%rip), %rdi     # 0x5a050
leaq 0x210a7(%rip), %rsi     # 0x5fd13
leaq 0x210ba(%rip), %rcx     # 0x5fd2d
movl $0xbf, %edx
callq 0x4200
leaq 0x2157a(%rip), %rdi     # 0x601fe
jmp 0x3ec8d
leaq 0x2159d(%rip), %rdi     # 0x6022a
callq 0x44e0
leaq 0x1b3b7(%rip), %rdi     # 0x5a050
leaq 0x21073(%rip), %rsi     # 0x5fd13
leaq 0x21086(%rip), %rcx     # 0x5fd2d
movl $0xc1, %edx
callq 0x4200
leaq 0x211cb(%rip), %rdi     # 0x5fe83
callq 0x44e0
leaq 0x1b38c(%rip), %rdi     # 0x5a050
leaq 0x21048(%rip), %rsi     # 0x5fd13
leaq 0x2105b(%rip), %rcx     # 0x5fd2d
movl $0x66, %edx
callq 0x4200
leaq 0x211df(%rip), %rdi     # 0x5fec2
callq 0x44e0
leaq 0x1b361(%rip), %rdi     # 0x5a050
leaq 0x2101d(%rip), %rsi     # 0x5fd13
leaq 0x21030(%rip), %rcx     # 0x5fd2d
movl $0x6c, %edx
callq 0x4200
leaq 0x2120a(%rip), %rdi     # 0x5ff18
callq 0x44e0
leaq 0x1b336(%rip), %rdi     # 0x5a050
leaq 0x20ff2(%rip), %rsi     # 0x5fd13
leaq 0x21005(%rip), %rcx     # 0x5fd2d
movl $0x78, %edx
callq 0x4200
leaq 0x211c4(%rip), %rdi     # 0x5fefd
callq 0x44e0
leaq 0x1b30b(%rip), %rdi     # 0x5a050
leaq 0x20fc7(%rip), %rsi     # 0x5fd13
leaq 0x20fda(%rip), %rcx     # 0x5fd2d
movl $0x79, %edx
callq 0x4200
leaq 0x211b4(%rip), %rdi     # 0x5ff18
callq 0x44e0
leaq 0x1b2e0(%rip), %rdi     # 0x5a050
leaq 0x20f9c(%rip), %rsi     # 0x5fd13
leaq 0x20faf(%rip), %rcx     # 0x5fd2d
movl $0x7a, %edx
callq 0x4200
leaq 0x21189(%rip), %rdi     # 0x5ff18
callq 0x44e0
leaq 0x1b2b5(%rip), %rdi     # 0x5a050
leaq 0x20f71(%rip), %rsi     # 0x5fd13
leaq 0x20f84(%rip), %rcx     # 0x5fd2d
movl $0x7b, %edx
callq 0x4200
leaq 0x2115e(%rip), %rdi     # 0x5ff18
callq 0x44e0
leaq 0x1b28a(%rip), %rdi     # 0x5a050
leaq 0x20f46(%rip), %rsi     # 0x5fd13
leaq 0x20f59(%rip), %rcx     # 0x5fd2d
movl $0x7c, %edx
callq 0x4200
leaq 0x21133(%rip), %rdi     # 0x5ff18
callq 0x44e0
leaq 0x1b25f(%rip), %rdi     # 0x5a050
leaq 0x20f1b(%rip), %rsi     # 0x5fd13
leaq 0x20f2e(%rip), %rcx     # 0x5fd2d
movl $0x7d, %edx
callq 0x4200
leaq 0x21108(%rip), %rdi     # 0x5ff18
callq 0x44e0
leaq 0x1b234(%rip), %rdi     # 0x5a050
leaq 0x20ef0(%rip), %rsi     # 0x5fd13
leaq 0x20f03(%rip), %rcx     # 0x5fd2d
movl $0x7e, %edx
callq 0x4200
leaq 0x210dd(%rip), %rdi     # 0x5ff18
callq 0x44e0
leaq 0x1b209(%rip), %rdi     # 0x5a050
leaq 0x20ec5(%rip), %rsi     # 0x5fd13
leaq 0x20ed8(%rip), %rcx     # 0x5fd2d
movl $0x7f, %edx
callq 0x4200
leaq 0x210b2(%rip), %rdi     # 0x5ff18
callq 0x44e0
leaq 0x1b1de(%rip), %rdi     # 0x5a050
leaq 0x20e9a(%rip), %rsi     # 0x5fd13
leaq 0x20ead(%rip), %rcx     # 0x5fd2d
movl $0x80, %edx
callq 0x4200
leaq 0x21087(%rip), %rdi     # 0x5ff18
callq 0x44e0
leaq 0x1b1b3(%rip), %rdi     # 0x5a050
leaq 0x20e6f(%rip), %rsi     # 0x5fd13
leaq 0x20e82(%rip), %rcx     # 0x5fd2d
movl $0x81, %edx
callq 0x4200
leaq 0x2105c(%rip), %rdi     # 0x5ff18
callq 0x44e0
leaq 0x1b188(%rip), %rdi     # 0x5a050
leaq 0x20e44(%rip), %rsi     # 0x5fd13
leaq 0x20e57(%rip), %rcx     # 0x5fd2d
movl $0x82, %edx
callq 0x4200
leaq 0x21031(%rip), %rdi     # 0x5ff18
callq 0x44e0
leaq 0x1b15d(%rip), %rdi     # 0x5a050
leaq 0x20e19(%rip), %rsi     # 0x5fd13
leaq 0x20e2c(%rip), %rcx     # 0x5fd2d
movl $0x83, %edx
callq 0x4200
leaq 0x21006(%rip), %rdi     # 0x5ff18
callq 0x44e0
leaq 0x1b132(%rip), %rdi     # 0x5a050
leaq 0x20dee(%rip), %rsi     # 0x5fd13
leaq 0x20e01(%rip), %rcx     # 0x5fd2d
movl $0x84, %edx
callq 0x4200
leaq 0x20fdb(%rip), %rdi     # 0x5ff18
callq 0x44e0
leaq 0x1b107(%rip), %rdi     # 0x5a050
leaq 0x20dc3(%rip), %rsi     # 0x5fd13
leaq 0x20dd6(%rip), %rcx     # 0x5fd2d
movl $0x85, %edx
callq 0x4200
leaq 0x20fb0(%rip), %rdi     # 0x5ff18
callq 0x44e0
leaq 0x1b0dc(%rip), %rdi     # 0x5a050
leaq 0x20d98(%rip), %rsi     # 0x5fd13
leaq 0x20dab(%rip), %rcx     # 0x5fd2d
movl $0x86, %edx
callq 0x4200
leaq 0x20f85(%rip), %rdi     # 0x5ff18
callq 0x44e0
leaq 0x1b0b1(%rip), %rdi     # 0x5a050
leaq 0x20d6d(%rip), %rsi     # 0x5fd13
leaq 0x20d80(%rip), %rcx     # 0x5fd2d
movl $0x87, %edx
callq 0x4200
leaq 0x20f5a(%rip), %rdi     # 0x5ff18
callq 0x44e0
leaq 0x1b086(%rip), %rdi     # 0x5a050
leaq 0x20d42(%rip), %rsi     # 0x5fd13
leaq 0x20d55(%rip), %rcx     # 0x5fd2d
movl $0x88, %edx
callq 0x4200
leaq 0x20f2f(%rip), %rdi     # 0x5ff18
jmp 0x3eff2
leaq 0x21238(%rip), %rdi     # 0x6022a
callq 0x44e0
leaq 0x1b052(%rip), %rdi     # 0x5a050
leaq 0x20d0e(%rip), %rsi     # 0x5fd13
leaq 0x20d21(%rip), %rcx     # 0x5fd2d
movl $0x89, %edx
callq 0x4200
leaq 0x20efb(%rip), %rdi     # 0x5ff18
callq 0x44e0
leaq 0x1b027(%rip), %rdi     # 0x5a050
leaq 0x20ce3(%rip), %rsi     # 0x5fd13
leaq 0x20cf6(%rip), %rcx     # 0x5fd2d
movl $0x8a, %edx
callq 0x4200
leaq 0x20ed0(%rip), %rdi     # 0x5ff18
callq 0x44e0
leaq 0x1affc(%rip), %rdi     # 0x5a050
leaq 0x20cb8(%rip), %rsi     # 0x5fd13
leaq 0x20ccb(%rip), %rcx     # 0x5fd2d
movl $0x8b, %edx
callq 0x4200
leaq 0x20ea5(%rip), %rdi     # 0x5ff18
callq 0x44e0
leaq 0x1afd1(%rip), %rdi     # 0x5a050
leaq 0x20c8d(%rip), %rsi     # 0x5fd13
leaq 0x20ca0(%rip), %rcx     # 0x5fd2d
movl $0x8c, %edx
callq 0x4200
leaq 0x20eab(%rip), %rdi     # 0x5ff49
callq 0x44e0
leaq 0x1afa6(%rip), %rdi     # 0x5a050
leaq 0x20c62(%rip), %rsi     # 0x5fd13
leaq 0x20c75(%rip), %rcx     # 0x5fd2d
movl $0x8f, %edx
callq 0x4200
leaq 0x20ec2(%rip), %rdi     # 0x5ff8b
callq 0x44e0
leaq 0x1af7b(%rip), %rdi     # 0x5a050
leaq 0x20c37(%rip), %rsi     # 0x5fd13
leaq 0x20c4a(%rip), %rcx     # 0x5fd2d
movl $0x90, %edx
callq 0x4200
leaq 0x2095c(%rip), %rdi     # 0x5fa50
leaq 0x20c18(%rip), %rsi     # 0x5fd13
leaq 0x20c2b(%rip), %rcx     # 0x5fd2d
movl $0x99, %edx
callq 0x4200
leaq 0x20b18(%rip), %rdi     # 0x5fc2b
callq 0x44e0
leaq 0x1af31(%rip), %rdi     # 0x5a050
leaq 0x20bed(%rip), %rsi     # 0x5fd13
leaq 0x20c00(%rip), %rcx     # 0x5fd2d
movl $0x9b, %edx
callq 0x4200
leaq 0x20e9a(%rip), %rdi     # 0x5ffd8
callq 0x44e0
leaq 0x1af06(%rip), %rdi     # 0x5a050
leaq 0x20bc2(%rip), %rsi     # 0x5fd13
leaq 0x20bd5(%rip), %rcx     # 0x5fd2d
movl $0x9d, %edx
callq 0x4200
leaq 0x20f59(%rip), %rdi     # 0x600c2
callq 0x44e0
leaq 0x1aedb(%rip), %rdi     # 0x5a050
leaq 0x20b97(%rip), %rsi     # 0x5fd13
leaq 0x20baa(%rip), %rcx     # 0x5fd2d
movl $0xc2, %edx
callq 0x4200
leaq 0x20f44(%rip), %rdi     # 0x600d8
callq 0x44e0
leaq 0x1aeb0(%rip), %rdi     # 0x5a050
leaq 0x20b6c(%rip), %rsi     # 0x5fd13
leaq 0x20b7f(%rip), %rcx     # 0x5fd2d
movl $0xcb, %edx
callq 0x4200
leaq 0x20f46(%rip), %rdi     # 0x60105
callq 0x44e0
leaq 0x1ae85(%rip), %rdi     # 0x5a050
leaq 0x20b41(%rip), %rsi     # 0x5fd13
leaq 0x20b54(%rip), %rcx     # 0x5fd2d
movl $0xcd, %edx
callq 0x4200
leaq 0x20f7c(%rip), %rdi     # 0x60166
callq 0x44e0
leaq 0x1ae5a(%rip), %rdi     # 0x5a050
leaq 0x20b16(%rip), %rsi     # 0x5fd13
leaq 0x20b29(%rip), %rcx     # 0x5fd2d
movl $0xce, %edx
callq 0x4200
leaq 0x20f84(%rip), %rdi     # 0x60199
callq 0x44e0
leaq 0x1ae2f(%rip), %rdi     # 0x5a050
leaq 0x20aeb(%rip), %rsi     # 0x5fd13
leaq 0x20afe(%rip), %rcx     # 0x5fd2d
movl $0xd1, %edx
callq 0x4200
leaq 0x20df1(%rip), %rdi     # 0x60031
callq 0x44e0
leaq 0x1ae04(%rip), %rdi     # 0x5a050
leaq 0x20ac0(%rip), %rsi     # 0x5fd13
leaq 0x20ad3(%rip), %rcx     # 0x5fd2d
movl $0xa0, %edx
callq 0x4200