// File: sisong[P]ApkDiffPatch/HDiffPatch/libHDiffPatch/HDiff/diff.cpp
// Function: hdiff_streamDataIsEqual
hpatch_BOOL hdiff_streamDataIsEqual(const hpatch_TStreamInput* x,const hpatch_TStreamInput* y){
    const hpatch_StreamPos_t ssize=x->streamSize;
    if (ssize!=y->streamSize) return hpatch_FALSE;
    const size_t kACacheBufSize=hdiff_kFileIOBufBestSize;
    hdiff_private::TAutoMem _cache(kACacheBufSize*2);
    hpatch_byte* bufx=_cache.data();
    hpatch_byte* bufy=bufx+kACacheBufSize;
    for (hpatch_StreamPos_t i=0; i<ssize; ){
        const hpatch_StreamPos_t maxdSize=ssize-i;
        size_t dataSize=(size_t)(kACacheBufSize<=maxdSize?kACacheBufSize:maxdSize);
        check(x->read(x,i,bufx,bufx+dataSize));
        check(y->read(y,i,bufy,bufy+dataSize));
        if (0!=memcmp(bufx,bufy,dataSize))
            return hpatch_FALSE;
        i+=dataSize;
    }
    return hpatch_TRUE;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq -0x18(%rbp), %rcx
cmpq 0x8(%rcx), %rax
je 0x1db59
movl $0x0, -0x4(%rbp)
jmp 0x1dd81
movq $0x80000, -0x28(%rbp)   # imm = 0x80000
leaq -0x40(%rbp), %rdi
movq %rdi, -0x90(%rbp)
movl $0x100000, %esi         # imm = 0x100000
callq 0x29c00
movq -0x90(%rbp), %rdi
callq 0x29c40
movq %rax, -0x88(%rbp)
jmp 0x1db8b
movq -0x88(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
addq $0x80000, %rax          # imm = 0x80000
movq %rax, -0x60(%rbp)
movq $0x0, -0x68(%rbp)
movq -0x68(%rbp), %rax
cmpq -0x20(%rbp), %rax
jae 0x1dd5d
movq -0x20(%rbp), %rax
subq -0x68(%rbp), %rax
movq %rax, -0x70(%rbp)
movl $0x80000, %eax          # imm = 0x80000
cmpq -0x70(%rbp), %rax
ja 0x1dbdf
movl $0x80000, %eax          # imm = 0x80000
movq %rax, -0x98(%rbp)
jmp 0x1dbea
movq -0x70(%rbp), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x10(%rbp), %rdi
movq 0x10(%rdi), %rax
movq -0x68(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq -0x78(%rbp), %r8
movq %rdx, %rcx
addq %r8, %rcx
callq *%rax
movl %eax, -0x9c(%rbp)
jmp 0x1dc19
movl -0x9c(%rbp), %eax
cmpl $0x0, %eax
jne 0x1dc96
movl $0x10, %edi
callq 0x41e0
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xa8(%rbp)
leaq 0x91417(%rip), %rsi     # 0xaf059
callq 0x4140
jmp 0x1dc49
movq -0xa8(%rbp), %rdi
movq 0xc8399(%rip), %rsi     # 0xe5ff0
movq 0xc8362(%rip), %rdx     # 0xe5fc0
callq 0x4630
jmp 0x1dd96
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x1dd76
movq -0xa8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
callq 0x42e0
jmp 0x1dd76
movq -0x18(%rbp), %rdi
movq 0x10(%rdi), %rax
movq -0x68(%rbp), %rsi
movq -0x60(%rbp), %rdx
movq -0x78(%rbp), %r8
movq %rdx, %rcx
addq %r8, %rcx
callq *%rax
movl %eax, -0xac(%rbp)
jmp 0x1dcba
movl -0xac(%rbp), %eax
cmpl $0x0, %eax
jne 0x1dd23
movl $0x10, %edi
callq 0x41e0
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xb8(%rbp)
leaq 0x913a3(%rip), %rsi     # 0xaf086
callq 0x4140
jmp 0x1dcea
movq -0xb8(%rbp), %rdi
movq 0xc82f8(%rip), %rsi     # 0xe5ff0
movq 0xc82c1(%rip), %rdx     # 0xe5fc0
callq 0x4630
jmp 0x1dd96
movq -0xb8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
callq 0x42e0
jmp 0x1dd76
movq -0x48(%rbp), %rdi
movq -0x60(%rbp), %rsi
movq -0x78(%rbp), %rdx
callq 0x4190
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
je 0x1dd4c
movl $0x0, -0x4(%rbp)
movl $0x1, -0x7c(%rbp)
jmp 0x1dd6b
movq -0x78(%rbp), %rax
addq -0x68(%rbp), %rax
movq %rax, -0x68(%rbp)
jmp 0x1dbac
movl $0x1, -0x4(%rbp)
movl $0x1, -0x7c(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x29ca0
jmp 0x1dd81
leaq -0x40(%rbp), %rdi
callq 0x29ca0
jmp 0x1dd8d
movl -0x4(%rbp), %eax
addq $0xc0, %rsp
popq %rbp
retq
movq -0x50(%rbp), %rdi
callq 0x4680
nopw %cs:(%rax,%rax)