// File: /workspace/github_cpp_makefile_star2_O2/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, %r13
movq %rdi, %rbx
leaq 0x18(%rsp), %rdx
andq $0x0, (%rdx)
movq %rsi, %rdi
movq %r15, %rsi
callq 0x358ef
testb %al, %al
je 0x3637d
movq 0x18(%rsp), %rsi
movl $0xd1, %eax
leaq (%rsi,%rax), %rcx
movq 0x8(%r13), %rdx
movl %edx, %edi
subl %esi, %edi
cmpq %rdx, %rcx
movslq %edi, %rcx
cmovbeq %rax, %rcx
leaq (%rsp,%rcx), %r12
addq $0x40, %r12
leaq 0x40(%rsp), %r14
movq %r13, %rdi
movq %r14, %rdx
movq %r12, %rcx
callq *0x10(%r13)
testl %eax, %eax
je 0x363a5
movq %r14, 0x10(%rsp)
movq $0x400, 0xa8(%rbx) # imm = 0x400
movl $0x400, %eax            # imm = 0x400
xorl %ecx, %ecx
cmpq %r12, %r14
jae 0x35b10
cmpb (%r14), %cl
jno 0x35b10
shlq $0x2, %rax
movq %rax, 0xa8(%rbx)
incq %r14
movq %r14, 0x10(%rsp)
jmp 0x35af1
cmpq $0x1000, %rax           # imm = 0x1000
jne 0x35b29
andq $0x0, 0xa8(%rbx)
movb $0x0, 0xb0(%rbx)
jmp 0x35b43
cmpq $0x400, %rax            # imm = 0x400
sete 0xb0(%rbx)
jne 0x35b43
movq $0x1000, 0xa8(%rbx) # imm = 0x1000
leaq 0x8(%rsp), %rdx
andq $0x0, (%rdx)
leaq 0x10(%rsp), %rdi
movq %r12, %rsi
xorl %ecx, %ecx
callq 0x3a5a8
testl %eax, %eax
je 0x363cd
movq 0x8(%rsp), %rax
movq %rax, (%rbx)
cmpq $0x2, %rax
jae 0x363f5
leaq 0x8(%rsp), %rdx
andq $0x0, (%rdx)
leaq 0x10(%rsp), %rdi
movq %r12, %rsi
xorl %ecx, %ecx
callq 0x3a5a8
testl %eax, %eax
je 0x3641d
leaq 0x8(%rsp), %rdx
movq (%rdx), %rax
movq %rax, 0x8(%rbx)
andq $0x0, (%rdx)
leaq 0x10(%rsp), %rdi
movq %r12, %rsi
xorl %ecx, %ecx
callq 0x3a5a8
testl %eax, %eax
je 0x36445
leaq 0x8(%rsp), %rdx
movq (%rdx), %rax
movq %rax, 0x10(%rbx)
andq $0x0, (%rdx)
leaq 0x10(%rsp), %rdi
movq %r12, %rsi
xorl %ecx, %ecx
callq 0x3a5a8
testl %eax, %eax
je 0x3646d
leaq 0x8(%rsp), %rdx
movq (%rdx), %rax
movq %rax, 0x18(%rbx)
andq $0x0, (%rdx)
leaq 0x10(%rsp), %rdi
movq %r12, %rsi
xorl %ecx, %ecx
callq 0x3a5a8
testl %eax, %eax
je 0x36492
leaq 0x8(%rsp), %rdx
movq (%rdx), %rax
movq %rax, 0x20(%rbx)
andq $0x0, (%rdx)
leaq 0x10(%rsp), %rdi
movq %r12, %rsi
xorl %ecx, %ecx
callq 0x3a5a8
testl %eax, %eax
je 0x364b7
leaq 0x8(%rsp), %rdx
movq (%rdx), %rax
movq %rax, 0x28(%rbx)
andq $0x0, (%rdx)
leaq 0x10(%rsp), %rdi
movq %r12, %rsi
xorl %ecx, %ecx
callq 0x3a5a8
testl %eax, %eax
je 0x364dc
leaq 0x8(%rsp), %rdx
movq (%rdx), %rax
movq %rax, 0x30(%rbx)
andq $0x0, (%rdx)
leaq 0x10(%rsp), %rdi
movq %r12, %rsi
xorl %ecx, %ecx
callq 0x3a5a8
testl %eax, %eax
je 0x36505
leaq 0x8(%rsp), %rdx
movq (%rdx), %rax
movq %rax, 0x38(%rbx)
andq $0x0, (%rdx)
leaq 0x10(%rsp), %rdi
movq %r12, %rsi
xorl %ecx, %ecx
callq 0x3a5a8
testl %eax, %eax
je 0x36530
leaq 0x8(%rsp), %rdx
movq (%rdx), %rax
movq %rax, 0x40(%rbx)
andq $0x0, (%rdx)
leaq 0x10(%rsp), %rdi
movq %r12, %rsi
xorl %ecx, %ecx
callq 0x3a5a8
testl %eax, %eax
je 0x3655b
leaq 0x8(%rsp), %rdx
movq (%rdx), %rax
movq %rax, 0x50(%rbx)
andq $0x0, (%rdx)
leaq 0x10(%rsp), %rdi
movq %r12, %rsi
xorl %ecx, %ecx
callq 0x3a5a8
testl %eax, %eax
je 0x36586
leaq 0x8(%rsp), %rdx
movq (%rdx), %rax
movq %rax, 0x60(%rbx)
andq $0x0, (%rdx)
leaq 0x10(%rsp), %rdi
movq %r12, %rsi
xorl %ecx, %ecx
callq 0x3a5a8
testl %eax, %eax
je 0x365b1
leaq 0x8(%rsp), %rdx
movq (%rdx), %rax
movq %rax, 0x70(%rbx)
andq $0x0, (%rdx)
leaq 0x10(%rsp), %rdi
movq %r12, %rsi
xorl %ecx, %ecx
callq 0x3a5a8
testl %eax, %eax
je 0x365dc
leaq 0x8(%rsp), %rdx
movq (%rdx), %rax
movq %rax, 0x78(%rbx)
andq $0x0, (%rdx)
leaq 0x10(%rsp), %rdi
movq %r12, %rsi
xorl %ecx, %ecx
callq 0x3a5a8
testl %eax, %eax
je 0x36607
leaq 0x8(%rsp), %rdx
movq (%rdx), %rax
movq %rax, 0x80(%rbx)
andq $0x0, (%rdx)
leaq 0x10(%rsp), %rdi
movq %r12, %rsi
xorl %ecx, %ecx
callq 0x3a5a8
testl %eax, %eax
je 0x36632
leaq 0x8(%rsp), %rdx
movq (%rdx), %rax
movq %rax, 0x88(%rbx)
andq $0x0, (%rdx)
leaq 0x10(%rsp), %rdi
movq %r12, %rsi
xorl %ecx, %ecx
callq 0x3a5a8
testl %eax, %eax
je 0x3665d
leaq 0x8(%rsp), %rdx
movq (%rdx), %rax
movq %rax, 0x98(%rbx)
andq $0x0, (%rdx)
leaq 0x10(%rsp), %rdi
movq %r12, %rsi
xorl %ecx, %ecx
callq 0x3a5a8
testl %eax, %eax
je 0x36688
movq 0x8(%rsp), %rax
movq %rax, %rcx
shrq $0x20, %rcx
jne 0x36691
movl %eax, 0xa0(%rbx)
leaq 0x8(%rsp), %rdx
andq $0x0, (%rdx)
leaq 0x10(%rsp), %rdi
movq %r12, %rsi
xorl %ecx, %ecx
callq 0x3a5a8
testl %eax, %eax
je 0x366bc
leaq 0x8(%rsp), %rdx
movq (%rdx), %r14
andq $0x0, (%rdx)
leaq 0x10(%rsp), %rdi
movq %r12, %rsi
xorl %ecx, %ecx
callq 0x3a5a8
testl %eax, %eax
je 0x366e7
leaq 0x8(%rsp), %rdx
movq (%rdx), %rbp
andq $0x0, (%rdx)
leaq 0x10(%rsp), %rdi
movq %r12, %rsi
xorl %ecx, %ecx
callq 0x3a5a8
testl %eax, %eax
je 0x36712
movq 0x10(%rsp), %rcx
leaq 0x40(%rsp), %rax
subq %rax, %rcx
addq 0x18(%rsp), %rcx
movq 0x8(%r13), %rax
movq %rcx, 0x28(%rsp)
subq %rcx, %rax
subq %rbp, %rax
jb 0x3673d
movq %r13, 0x20(%rsp)
movq 0x8(%rsp), %r12
cmpq %rax, %r12
ja 0x36768
movq 0x50(%rbx), %rax
addq %rax, %rax
addq 0x60(%rbx), %rax
addq 0x70(%rbx), %rax
addq 0x98(%rbx), %rax
shlq $0x2, %rax
leaq 0x3(%rbp), %r13
andq $-0x4, %r13
cmpq %rax, %rbp
cmovbeq %rax, %r13
cmpq $0x0, 0xc8(%rbx)
jne 0x36793
leaq (%r14,%r13), %rdi
callq 0x4430
movq %rax, 0xc8(%rbx)
testq %rax, %rax
je 0x367b2
movq %rax, %rcx
addq %rbp, %rcx
movq 0x20(%rsp), %rdi
movq 0x28(%rsp), %rsi
movq %rax, %rdx
callq *0x10(%rdi)
testl %eax, %eax
je 0x367dd
movq %r12, 0x38(%rsp)
testq %r14, %r14
je 0x35f3a
movq 0xc8(%rbx), %rsi
leaq (%rsi,%rbp), %rdx
leaq (%rsi,%r13), %rcx
leaq (%rcx,%r14), %r8
movq %r15, %rdi
callq 0x3a6b0
testl %eax, %eax
je 0x368df
movq 0xc8(%rbx), %rcx
movq %rcx, 0x48(%rbx)
movq 0x50(%rbx), %rax
movq 0x60(%rbx), %rdx
leaq (%rcx,%rax,8), %rsi
movq %rsi, 0x58(%rbx)
leaq (%rsi,%rdx,4), %rdx
movq %rdx, 0x68(%rbx)
movq 0x70(%rbx), %rsi
leaq (%rdx,%rsi,4), %rdx
movq %rdx, 0x90(%rbx)
addq %rcx, %r13
leaq 0x40(%rsp), %rcx
movq %r13, (%rcx)
addq %r14, %r13
pushq $-0x1
popq %r12
pushq $-0x1
popq %r14
xorl %r15d, %r15d
movq %rbp, 0x30(%rsp)
cmpq %rax, %r15
jae 0x36045
andq $0x0, 0x18(%rsp)
leaq 0x40(%rsp), %rdi
movq %r13, %rsi
leaq 0x18(%rsp), %rdx
xorl %ecx, %ecx
callq 0x3a5a8
testl %eax, %eax
je 0x3628b
movq 0x18(%rsp), %rax
movq %rax, %rcx
shrq $0x20, %rcx
jne 0x3622c
addl %eax, %r14d
incl %r14d
movq 0x48(%rbx), %rax
movl %r14d, (%rax,%r15,8)
movq 0x40(%rsp), %rax
cmpq %r13, %rax
jae 0x36260
movb (%rax), %bpl
andq $0x0, 0x18(%rsp)
leaq 0x40(%rsp), %rdi
movq %r13, %rsi
leaq 0x18(%rsp), %rdx
pushq $0x1
popq %rcx
callq 0x3a5a8
testl %eax, %eax
je 0x362b6
testb %bpl, %bpl
js 0x3601b
movq 0x18(%rsp), %rax
addq %rax, %r12
incq %r12
jmp 0x36023
subq 0x18(%rsp), %r12
incq %r12
movq %r12, %rax
shrq $0x20, %rax
jne 0x36235
movq 0x48(%rbx), %rax
movl %r12d, 0x4(%rax,%r15,8)
incq %r15
movq 0x50(%rbx), %rax
jmp 0x35f8a
pushq $-0x1
popq %r12
xorl %ebp, %ebp
leaq 0x40(%rsp), %r14
leaq 0x18(%rsp), %r15
cmpq 0x60(%rbx), %rbp
jae 0x3609e
andq $0x0, 0x18(%rsp)
movq %r14, %rdi
movq %r13, %rsi
movq %r15, %rdx
xorl %ecx, %ecx
callq 0x3a5a8
testl %eax, %eax
je 0x362e1
movq 0x18(%rsp), %rax
movq %rax, %rcx
shrq $0x20, %rcx
jne 0x362ea
addl %eax, %r12d
incl %r12d
movq 0x58(%rbx), %rax
movl %r12d, (%rax,%rbp,4)
incq %rbp
jmp 0x36055
xorl %r12d, %r12d
leaq 0x40(%rsp), %r14
leaq 0x18(%rsp), %r15
cmpq 0x70(%rbx), %r12
jae 0x360ee
andq $0x0, 0x18(%rsp)
movq %r14, %rdi
movq %r13, %rsi
movq %r15, %rdx
xorl %ecx, %ecx
callq 0x3a5a8
testl %eax, %eax
je 0x36315
movq 0x18(%rsp), %rax
movq %rax, %rcx
shrq $0x20, %rcx
jne 0x3631e
movq 0x68(%rbx), %rcx
movl %eax, (%rcx,%r12,4)
incq %r12
jmp 0x360ab
pushq $-0x1
popq %r12
xorl %ebp, %ebp
leaq 0x40(%rsp), %r14
leaq 0x18(%rsp), %r15
cmpq 0x98(%rbx), %rbp
jae 0x3614d
andq $0x0, 0x18(%rsp)
movq %r14, %rdi
movq %r13, %rsi
movq %r15, %rdx
xorl %ecx, %ecx
callq 0x3a5a8
testl %eax, %eax
je 0x36349
movq 0x18(%rsp), %rax
movq %rax, %rcx
shrq $0x20, %rcx
jne 0x36352
addl %eax, %r12d
incl %r12d
movq 0x90(%rbx), %rax
movl %r12d, (%rax,%rbp,4)
incq %rbp
jmp 0x360fe
cmpq %r13, 0x40(%rsp)
jne 0x36808
movq 0x28(%rsp), %rdx
addq 0x30(%rsp), %rdx
leaq 0xd0(%rbx), %r14
movq 0x38(%rsp), %r12
leaq (%rdx,%r12), %rcx
movq %r14, %rdi
movq 0x20(%rsp), %r15
movq %r15, %rsi
callq 0x3ac32
movq %r14, 0xb8(%rbx)
movq 0x8(%r15), %rsi
cmpq $0xf, %rsi
jbe 0x36833
addq $-0x10, %rsi
leaq 0x50(%rsp), %rcx
leaq 0x40(%rsp), %rdx
movq %r15, %rdi
callq *0x10(%r15)
testl %eax, %eax
je 0x3685e
leaq 0x44(%rsp), %rsi
leaq 0x19291(%rip), %rdi     # 0x4f451
pushq $0xc
popq %rdx
callq 0x4350
testl %eax, %eax
jne 0x36889
addq 0xf8(%rbx), %r12
movl 0x40(%rsp), %eax
leaq (%rax,%r12), %rdx
addq $0x10, %rdx
movq 0x8(%r15), %rcx
cmpq %rcx, %rdx
ja 0x368b4
negq %rax
leaq (%rcx,%rax), %rdx
addq $-0x10, %rdx
leaq 0x100(%rbx), %r14
addq $-0x10, %rcx
movq %r14, %rdi
movq %r15, %rsi
callq 0x3ac32
movq %r14, 0xc0(%rbx)
movb $0x1, %al
addq $0x118, %rsp            # imm = 0x118
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x1f097(%rip), %rdi     # 0x552ca
jmp 0x36292
leaq 0x1f0f7(%rip), %rdi     # 0x55333
callq 0x4510
leaq 0x18e08(%rip), %rdi     # 0x4f050
leaq 0x1eb64(%rip), %rsi     # 0x54db3
leaq 0x1eb77(%rip), %rcx     # 0x54dcd
movl $0xba, %edx
callq 0x4230
leaq 0x1f079(%rip), %rdi     # 0x552e0
callq 0x4510
leaq 0x18ddd(%rip), %rdi     # 0x4f050
leaq 0x1eb39(%rip), %rsi     # 0x54db3
leaq 0x1eb4c(%rip), %rcx     # 0x54dcd
movl $0xb2, %edx
callq 0x4230
leaq 0x1f00c(%rip), %rdi     # 0x5529e
callq 0x4510
leaq 0x18db2(%rip), %rdi     # 0x4f050
leaq 0x1eb0e(%rip), %rsi     # 0x54db3
leaq 0x1eb21(%rip), %rcx     # 0x54dcd
movl $0xae, %edx
callq 0x4230
leaq 0x1f038(%rip), %rdi     # 0x552f5
callq 0x4510
leaq 0x18d87(%rip), %rdi     # 0x4f050
leaq 0x1eae3(%rip), %rsi     # 0x54db3
leaq 0x1eaf6(%rip), %rcx     # 0x54dcd
movl $0xb5, %edx
callq 0x4230
leaq 0x1efb6(%rip), %rdi     # 0x5529e
jmp 0x362f1
leaq 0x1efd9(%rip), %rdi     # 0x552ca
callq 0x4510
leaq 0x18d53(%rip), %rdi     # 0x4f050
leaq 0x1eaaf(%rip), %rsi     # 0x54db3
leaq 0x1eac2(%rip), %rcx     # 0x54dcd
movl $0xbd, %edx
callq 0x4230
leaq 0x1ef82(%rip), %rdi     # 0x5529e
jmp 0x36325
leaq 0x1efa5(%rip), %rdi     # 0x552ca
callq 0x4510
leaq 0x18d1f(%rip), %rdi     # 0x4f050
leaq 0x1ea7b(%rip), %rsi     # 0x54db3
leaq 0x1ea8e(%rip), %rcx     # 0x54dcd
movl $0xbf, %edx
callq 0x4230
leaq 0x1ef4e(%rip), %rdi     # 0x5529e
jmp 0x36359
leaq 0x1ef71(%rip), %rdi     # 0x552ca
callq 0x4510
leaq 0x18ceb(%rip), %rdi     # 0x4f050
leaq 0x1ea47(%rip), %rsi     # 0x54db3
leaq 0x1ea5a(%rip), %rcx     # 0x54dcd
movl $0xc1, %edx
callq 0x4230
leaq 0x1eb9f(%rip), %rdi     # 0x54f23
callq 0x4510
leaq 0x18cc0(%rip), %rdi     # 0x4f050
leaq 0x1ea1c(%rip), %rsi     # 0x54db3
leaq 0x1ea2f(%rip), %rcx     # 0x54dcd
pushq $0x66
jmp 0x364ff
leaq 0x1ebb6(%rip), %rdi     # 0x54f62
callq 0x4510
leaq 0x18c98(%rip), %rdi     # 0x4f050
leaq 0x1e9f4(%rip), %rsi     # 0x54db3
leaq 0x1ea07(%rip), %rcx     # 0x54dcd
pushq $0x6c
jmp 0x364ff
leaq 0x1ebe4(%rip), %rdi     # 0x54fb8
callq 0x4510
leaq 0x18c70(%rip), %rdi     # 0x4f050
leaq 0x1e9cc(%rip), %rsi     # 0x54db3
leaq 0x1e9df(%rip), %rcx     # 0x54dcd
pushq $0x78
jmp 0x364ff
leaq 0x1eba1(%rip), %rdi     # 0x54f9d
callq 0x4510
leaq 0x18c48(%rip), %rdi     # 0x4f050
leaq 0x1e9a4(%rip), %rsi     # 0x54db3
leaq 0x1e9b7(%rip), %rcx     # 0x54dcd
pushq $0x79
jmp 0x364ff
leaq 0x1eb94(%rip), %rdi     # 0x54fb8
callq 0x4510
leaq 0x18c20(%rip), %rdi     # 0x4f050
leaq 0x1e97c(%rip), %rsi     # 0x54db3
leaq 0x1e98f(%rip), %rcx     # 0x54dcd
pushq $0x7a
jmp 0x364ff
leaq 0x1eb6c(%rip), %rdi     # 0x54fb8
callq 0x4510
leaq 0x18bf8(%rip), %rdi     # 0x4f050
leaq 0x1e954(%rip), %rsi     # 0x54db3
leaq 0x1e967(%rip), %rcx     # 0x54dcd
pushq $0x7b
jmp 0x364ff
leaq 0x1eb44(%rip), %rdi     # 0x54fb8
callq 0x4510
leaq 0x18bd0(%rip), %rdi     # 0x4f050
leaq 0x1e92c(%rip), %rsi     # 0x54db3
leaq 0x1e93f(%rip), %rcx     # 0x54dcd
pushq $0x7c
jmp 0x364ff
leaq 0x1eb1f(%rip), %rdi     # 0x54fb8
callq 0x4510
leaq 0x18bab(%rip), %rdi     # 0x4f050
leaq 0x1e907(%rip), %rsi     # 0x54db3
leaq 0x1e91a(%rip), %rcx     # 0x54dcd
pushq $0x7d
jmp 0x364ff
leaq 0x1eafa(%rip), %rdi     # 0x54fb8
callq 0x4510
leaq 0x18b86(%rip), %rdi     # 0x4f050
leaq 0x1e8e2(%rip), %rsi     # 0x54db3
leaq 0x1e8f5(%rip), %rcx     # 0x54dcd
pushq $0x7e
jmp 0x364ff
leaq 0x1ead5(%rip), %rdi     # 0x54fb8
callq 0x4510
leaq 0x18b61(%rip), %rdi     # 0x4f050
leaq 0x1e8bd(%rip), %rsi     # 0x54db3
leaq 0x1e8d0(%rip), %rcx     # 0x54dcd
pushq $0x7f
popq %rdx
callq 0x4230
leaq 0x1eaac(%rip), %rdi     # 0x54fb8
callq 0x4510
leaq 0x18b38(%rip), %rdi     # 0x4f050
leaq 0x1e894(%rip), %rsi     # 0x54db3
leaq 0x1e8a7(%rip), %rcx     # 0x54dcd
movl $0x80, %edx
callq 0x4230
leaq 0x1ea81(%rip), %rdi     # 0x54fb8
callq 0x4510
leaq 0x18b0d(%rip), %rdi     # 0x4f050
leaq 0x1e869(%rip), %rsi     # 0x54db3
leaq 0x1e87c(%rip), %rcx     # 0x54dcd
movl $0x81, %edx
callq 0x4230
leaq 0x1ea56(%rip), %rdi     # 0x54fb8
callq 0x4510
leaq 0x18ae2(%rip), %rdi     # 0x4f050
leaq 0x1e83e(%rip), %rsi     # 0x54db3
leaq 0x1e851(%rip), %rcx     # 0x54dcd
movl $0x82, %edx
callq 0x4230
leaq 0x1ea2b(%rip), %rdi     # 0x54fb8
callq 0x4510
leaq 0x18ab7(%rip), %rdi     # 0x4f050
leaq 0x1e813(%rip), %rsi     # 0x54db3
leaq 0x1e826(%rip), %rcx     # 0x54dcd
movl $0x83, %edx
callq 0x4230
leaq 0x1ea00(%rip), %rdi     # 0x54fb8
callq 0x4510
leaq 0x18a8c(%rip), %rdi     # 0x4f050
leaq 0x1e7e8(%rip), %rsi     # 0x54db3
leaq 0x1e7fb(%rip), %rcx     # 0x54dcd
movl $0x84, %edx
callq 0x4230
leaq 0x1e9d5(%rip), %rdi     # 0x54fb8
callq 0x4510
leaq 0x18a61(%rip), %rdi     # 0x4f050
leaq 0x1e7bd(%rip), %rsi     # 0x54db3
leaq 0x1e7d0(%rip), %rcx     # 0x54dcd
movl $0x85, %edx
callq 0x4230
leaq 0x1e9aa(%rip), %rdi     # 0x54fb8
callq 0x4510
leaq 0x18a36(%rip), %rdi     # 0x4f050
leaq 0x1e792(%rip), %rsi     # 0x54db3
leaq 0x1e7a5(%rip), %rcx     # 0x54dcd
movl $0x86, %edx
callq 0x4230
leaq 0x1e97f(%rip), %rdi     # 0x54fb8
callq 0x4510
leaq 0x18a0b(%rip), %rdi     # 0x4f050
leaq 0x1e767(%rip), %rsi     # 0x54db3
leaq 0x1e77a(%rip), %rcx     # 0x54dcd
movl $0x87, %edx
callq 0x4230
leaq 0x1e954(%rip), %rdi     # 0x54fb8
callq 0x4510
leaq 0x189e0(%rip), %rdi     # 0x4f050
leaq 0x1e73c(%rip), %rsi     # 0x54db3
leaq 0x1e74f(%rip), %rcx     # 0x54dcd
movl $0x88, %edx
callq 0x4230
leaq 0x1e929(%rip), %rdi     # 0x54fb8
jmp 0x36698
leaq 0x1ec32(%rip), %rdi     # 0x552ca
callq 0x4510
leaq 0x189ac(%rip), %rdi     # 0x4f050
leaq 0x1e708(%rip), %rsi     # 0x54db3
leaq 0x1e71b(%rip), %rcx     # 0x54dcd
movl $0x89, %edx
callq 0x4230
leaq 0x1e8f5(%rip), %rdi     # 0x54fb8
callq 0x4510
leaq 0x18981(%rip), %rdi     # 0x4f050
leaq 0x1e6dd(%rip), %rsi     # 0x54db3
leaq 0x1e6f0(%rip), %rcx     # 0x54dcd
movl $0x8a, %edx
callq 0x4230
leaq 0x1e8ca(%rip), %rdi     # 0x54fb8
callq 0x4510
leaq 0x18956(%rip), %rdi     # 0x4f050
leaq 0x1e6b2(%rip), %rsi     # 0x54db3
leaq 0x1e6c5(%rip), %rcx     # 0x54dcd
movl $0x8b, %edx
callq 0x4230
leaq 0x1e89f(%rip), %rdi     # 0x54fb8
callq 0x4510
leaq 0x1892b(%rip), %rdi     # 0x4f050
leaq 0x1e687(%rip), %rsi     # 0x54db3
leaq 0x1e69a(%rip), %rcx     # 0x54dcd
movl $0x8c, %edx
callq 0x4230
leaq 0x1e8a5(%rip), %rdi     # 0x54fe9
callq 0x4510
leaq 0x18900(%rip), %rdi     # 0x4f050
leaq 0x1e65c(%rip), %rsi     # 0x54db3
leaq 0x1e66f(%rip), %rcx     # 0x54dcd
movl $0x8f, %edx
callq 0x4230
leaq 0x1e8bc(%rip), %rdi     # 0x5502b
callq 0x4510
leaq 0x188d5(%rip), %rdi     # 0x4f050
leaq 0x1e631(%rip), %rsi     # 0x54db3
leaq 0x1e644(%rip), %rcx     # 0x54dcd
movl $0x90, %edx
callq 0x4230
leaq 0x1e356(%rip), %rdi     # 0x54af0
leaq 0x1e612(%rip), %rsi     # 0x54db3
leaq 0x1e625(%rip), %rcx     # 0x54dcd
movl $0x99, %edx
callq 0x4230
leaq 0x1e512(%rip), %rdi     # 0x54ccb
callq 0x4510
leaq 0x1888b(%rip), %rdi     # 0x4f050
leaq 0x1e5e7(%rip), %rsi     # 0x54db3
leaq 0x1e5fa(%rip), %rcx     # 0x54dcd
movl $0x9b, %edx
callq 0x4230
leaq 0x1e894(%rip), %rdi     # 0x55078
callq 0x4510
leaq 0x18860(%rip), %rdi     # 0x4f050
leaq 0x1e5bc(%rip), %rsi     # 0x54db3
leaq 0x1e5cf(%rip), %rcx     # 0x54dcd
movl $0x9d, %edx
callq 0x4230
leaq 0x1e953(%rip), %rdi     # 0x55162
callq 0x4510
leaq 0x18835(%rip), %rdi     # 0x4f050
leaq 0x1e591(%rip), %rsi     # 0x54db3
leaq 0x1e5a4(%rip), %rcx     # 0x54dcd
movl $0xc2, %edx
callq 0x4230
leaq 0x1e93e(%rip), %rdi     # 0x55178
callq 0x4510
leaq 0x1880a(%rip), %rdi     # 0x4f050
leaq 0x1e566(%rip), %rsi     # 0x54db3
leaq 0x1e579(%rip), %rcx     # 0x54dcd
movl $0xcb, %edx
callq 0x4230
leaq 0x1e940(%rip), %rdi     # 0x551a5
callq 0x4510
leaq 0x187df(%rip), %rdi     # 0x4f050
leaq 0x1e53b(%rip), %rsi     # 0x54db3
leaq 0x1e54e(%rip), %rcx     # 0x54dcd
movl $0xcd, %edx
callq 0x4230
leaq 0x1e976(%rip), %rdi     # 0x55206
callq 0x4510
leaq 0x187b4(%rip), %rdi     # 0x4f050
leaq 0x1e510(%rip), %rsi     # 0x54db3
leaq 0x1e523(%rip), %rcx     # 0x54dcd
movl $0xce, %edx
callq 0x4230
leaq 0x1e97e(%rip), %rdi     # 0x55239
callq 0x4510
leaq 0x18789(%rip), %rdi     # 0x4f050
leaq 0x1e4e5(%rip), %rsi     # 0x54db3
leaq 0x1e4f8(%rip), %rcx     # 0x54dcd
movl $0xd1, %edx
callq 0x4230
leaq 0x1e7eb(%rip), %rdi     # 0x550d1
callq 0x4510
leaq 0x1875e(%rip), %rdi     # 0x4f050
leaq 0x1e4ba(%rip), %rsi     # 0x54db3
leaq 0x1e4cd(%rip), %rcx     # 0x54dcd
movl $0xa0, %edx
callq 0x4230
nop