// File: sisong[P]ApkDiffPatch/HDiffPatch/libHDiffPatch/HDiff/match_block.cpp
// Function: hdiff_private::TCoversOptim::_insert_cover(ICoverLinesListener*, IDiffInsertCover*, void*, unsigned long, bool, unsigned long long*, unsigned long long*)
void TCoversOptim::_insert_cover(ICoverLinesListener* listener,IDiffInsertCover* diffi,void* pcovers,size_t coverCount,bool isCover32,
                                    hpatch_StreamPos_t* newSize,hpatch_StreamPos_t* oldSize){
    TCoversOptim* self=(TCoversOptim*)listener;
    if (self->matchBlock!=0){
        _check((hpatch_StreamPos_t)(self->matchBlock->newData_end_cur-self->matchBlock->newData)==*newSize,"unpackData error!");
        _check((hpatch_StreamPos_t)(self->matchBlock->oldData_end_cur-self->matchBlock->oldData)==*oldSize,"unpackData error!");
        self->matchBlock->unpackData(diffi,pcovers,coverCount,isCover32);
        *newSize=self->matchBlock->newData_end_cur-self->matchBlock->newData;
        *oldSize=self->matchBlock->oldData_end_cur-self->matchBlock->oldData;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movb %r8b, %al
movq 0x10(%rbp), %r8
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
andb $0x1, %al
movb %al, -0x21(%rbp)
movq %r9, -0x30(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
cmpq $0x0, 0x40(%rax)
je 0x3169e
movq -0x38(%rbp), %rax
movq 0x40(%rax), %rax
movq 0x10(%rax), %rax
movq -0x38(%rbp), %rcx
movq 0x40(%rcx), %rcx
movq (%rcx), %rcx
subq %rcx, %rax
movq -0x30(%rbp), %rcx
cmpq (%rcx), %rax
je 0x315c5
movl $0x10, %edi
callq 0x41e0
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x50(%rbp)
leaq 0x7e607(%rip), %rsi     # 0xafb94
callq 0x4140
jmp 0x31594
movq -0x50(%rbp), %rdi
movq 0xb4a51(%rip), %rsi     # 0xe5ff0
movq 0xb4a1a(%rip), %rdx     # 0xe5fc0
callq 0x4630
movq -0x50(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
callq 0x42e0
jmp 0x316a4
movq -0x38(%rbp), %rax
movq 0x40(%rax), %rax
movq 0x28(%rax), %rax
movq -0x38(%rbp), %rcx
movq 0x40(%rcx), %rcx
movq 0x18(%rcx), %rcx
subq %rcx, %rax
movq 0x10(%rbp), %rcx
cmpq (%rcx), %rax
je 0x31639
movl $0x10, %edi
callq 0x41e0
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x58(%rbp)
leaq 0x7e590(%rip), %rsi     # 0xafb94
callq 0x4140
jmp 0x3160b
movq -0x58(%rbp), %rdi
movq 0xb49da(%rip), %rsi     # 0xe5ff0
movq 0xb49a3(%rip), %rdx     # 0xe5fc0
callq 0x4630
movq -0x58(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
callq 0x42e0
jmp 0x316a4
movq -0x38(%rbp), %rax
movq 0x40(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
movb -0x21(%rbp), %al
andb $0x1, %al
movzbl %al, %r8d
callq 0x30fc0
movq -0x38(%rbp), %rax
movq 0x40(%rax), %rax
movq 0x10(%rax), %rcx
movq -0x38(%rbp), %rax
movq 0x40(%rax), %rax
movq (%rax), %rax
subq %rax, %rcx
movq -0x30(%rbp), %rax
movq %rcx, (%rax)
movq -0x38(%rbp), %rax
movq 0x40(%rax), %rax
movq 0x28(%rax), %rcx
movq -0x38(%rbp), %rax
movq 0x40(%rax), %rax
movq 0x18(%rax), %rax
subq %rax, %rcx
movq 0x10(%rbp), %rax
movq %rcx, (%rax)
addq $0x60, %rsp
popq %rbp
retq
movq -0x40(%rbp), %rdi
callq 0x4680
nopl (%rax)