// File: sisong[P]ApkDiffPatch/src/diff/DiffData.cpp
// Function: zipFileData_isSame(UnZipper*, int, UnZipper*, int)
bool zipFileData_isSame(UnZipper* selfZip,int selfIndex,UnZipper* srcZip,int srcIndex){
    uint32_t selfFileSize=UnZipper_file_uncompressedSize(selfZip,selfIndex);
    if (selfFileSize!=UnZipper_file_uncompressedSize(srcZip,srcIndex)) return false;
    if (selfFileSize==0) return true;
    std::vector<TByte> buf(selfFileSize*2);
    hpatch_TStreamOutput stream;
    mem_as_hStreamOutput(&stream,buf.data(),buf.data()+selfFileSize);
    check(UnZipper_fileData_decompressTo(selfZip,selfIndex,&stream));
    mem_as_hStreamOutput(&stream,buf.data()+selfFileSize,buf.data()+selfFileSize*2);
    check(UnZipper_fileData_decompressTo(srcZip,srcIndex,&stream));
    return 0==memcmp(buf.data(),buf.data()+selfFileSize,selfFileSize);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xd0, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movq %rdx, -0x20(%rbp)
movl %ecx, -0x24(%rbp)
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %esi
callq 0x80480
movl %eax, -0x28(%rbp)
movl -0x28(%rbp), %eax
movl %eax, -0x7c(%rbp)
movq -0x20(%rbp), %rdi
movl -0x24(%rbp), %esi
callq 0x80480
movl %eax, %ecx
movl -0x7c(%rbp), %eax
cmpl %ecx, %eax
je 0x8a5c
movb $0x0, -0x1(%rbp)
jmp 0x8c59
cmpl $0x0, -0x28(%rbp)
jne 0x8a6b
movb $0x1, -0x1(%rbp)
jmp 0x8c59
movl -0x28(%rbp), %eax
addl %eax, %eax
movq %rax, -0x90(%rbp)
leaq -0x41(%rbp), %rdi
movq %rdi, -0x88(%rbp)
callq 0xbab0
movq -0x90(%rbp), %rsi
movq -0x88(%rbp), %rdx
leaq -0x40(%rbp), %rdi
callq 0xbad0
jmp 0x8aa0
leaq -0x41(%rbp), %rdi
callq 0xbb40
leaq -0x40(%rbp), %rdi
movq %rdi, -0xa0(%rbp)
callq 0xbb60
movq -0xa0(%rbp), %rdi
movq %rax, -0x98(%rbp)
callq 0xbb60
movq -0x98(%rbp), %rsi
movq %rax, %rdx
movl -0x28(%rbp), %eax
addq %rax, %rdx
leaq -0x78(%rbp), %rdi
callq 0x85c10
jmp 0x8ae7
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %esi
xorl %eax, %eax
movl %eax, %ecx
leaq -0x78(%rbp), %rdx
callq 0x80d50
movb %al, -0xa1(%rbp)
jmp 0x8b03
movb -0xa1(%rbp), %al
testb $0x1, %al
jne 0x8b72
jmp 0x8b0f
leaq 0xa4718(%rip), %rdi     # 0xad22e
xorl %eax, %eax
callq 0x4060
jmp 0x8b1f
leaq 0xa474a(%rip), %rdi     # 0xad270
leaq 0xa4749(%rip), %rsi     # 0xad276
movl $0x39, %edx
leaq 0xa4753(%rip), %rcx     # 0xad28c
callq 0x4270
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x41(%rbp), %rdi
callq 0xbb40
jmp 0x8c67
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x40(%rbp), %rdi
callq 0xbb80
jmp 0x8c67
leaq -0x40(%rbp), %rdi
movq %rdi, -0xb8(%rbp)
callq 0xbb60
movq -0xb8(%rbp), %rdi
movl -0x28(%rbp), %ecx
addq %rcx, %rax
movq %rax, -0xb0(%rbp)
callq 0xbb60
movq -0xb0(%rbp), %rsi
movq %rax, %rdx
movl -0x28(%rbp), %eax
addl %eax, %eax
addq %rax, %rdx
leaq -0x78(%rbp), %rdi
callq 0x85c10
jmp 0x8bb8
movq -0x20(%rbp), %rdi
movl -0x24(%rbp), %esi
xorl %eax, %eax
movl %eax, %ecx
leaq -0x78(%rbp), %rdx
callq 0x80d50
movb %al, -0xb9(%rbp)
jmp 0x8bd4
movb -0xb9(%rbp), %al
testb $0x1, %al
jne 0x8c0f
jmp 0x8be0
leaq 0xa46df(%rip), %rdi     # 0xad2c6
xorl %eax, %eax
callq 0x4060
jmp 0x8bf0
leaq 0xa4679(%rip), %rdi     # 0xad270
leaq 0xa4678(%rip), %rsi     # 0xad276
movl $0x3b, %edx
leaq 0xa4682(%rip), %rcx     # 0xad28c
callq 0x4270
leaq -0x40(%rbp), %rdi
callq 0xbb60
movq %rax, -0xc8(%rbp)
leaq -0x40(%rbp), %rdi
callq 0xbb60
movq -0xc8(%rbp), %rdi
movq %rax, %rsi
movl -0x28(%rbp), %eax
addq %rax, %rsi
movl -0x28(%rbp), %eax
movl %eax, %edx
callq 0x4190
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
sete %al
andb $0x1, %al
movb %al, -0x1(%rbp)
leaq -0x40(%rbp), %rdi
callq 0xbb80
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0xd0, %rsp
popq %rbp
retq
movq -0x50(%rbp), %rdi
callq 0x4680