Function at 0x10213020
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x19c
cmp dword [eax + 0xc8], 4
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x34], ecx
ja 0x10213d90
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0xc4]
cmp eax, 4
ja 0x10213d60
mov ebp, dword [esp + 0x20]
mov ebx, 1
mov esi, dword [ebp + 0x5c]
mov edx, dword [ebp + 4]
mov ecx, dword [ebp + 0xb8]
mov dword [esp + 0x70], esi
mov esi, dword [ebp + 0x28]
mov dword [esp + 0x28], edx
mov dword [esp + 0x74], esi
mov esi, dword [ebp + 0x24]
mov dword [esp + 0x30], esi
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x2c], esi
add esi, edx
mov dword [esp + 0x78], esi
mov esi, dword [esp + 0x18]
sub esi, edx
mov edx, ebx
shl edx, cl
mov edi, esi
mov dword [esp + 0x1c], esi
mov ecx, edx
mov edx, dword [ebp + 0x10]
sub esi, ecx
sub edi, edx
cmp ecx, edi
mov ecx, dword [ebp + 0x18]
mov edi, esi
cmovae edi, edx
test ecx, ecx
cmove edx, edi
mov edi, dword [ebp + 0x50]
mov dword [esp + 0x24], edx
mov edx, 4
cmp eax, edx
mov dword [esp + 0x84], edi
mov edi, dword [ebp + 0xb4]
cmovbe edx, eax
mov dword [esp + 0x7c], edi
mov esi, dword [edi + 0x28]
mov ecx, edx
shl ebx, cl
mov dword [esp + 0x60], ebx
mov ebx, dword [edi + 0x5c]
mov edi, dword [edi + 0x24]
mov dword [esp + 0x38], edi
add edi, 8
cmp edi, 0x20
ja 0x10213de0
mov eax, dword [esp + 0x18]
mov ebp, dword [eax]
imul edx, ebp, 0x9e3779b1
mov ecx, 0x20
sub ecx, edi
shr edx, cl
mov eax, edx
movzx edi, dl
shr eax, 8
mov dword [esp + 0x80], edi
mov ecx, eax
shl eax, 6
shl ecx, 4
add eax, ebx
and ebx, 0x3f
lea edi, [esi + ecx]
mov dword [esp + 0x38], eax
mov dword [esp + 0x54], edi
jne 0x10213db8
test byte [esp + 0x54], 0xf
jne 0x10213d38
mov eax, dword [esp + 0x30]
add eax, 8
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x20]
mov esi, dword [eax + 0xdc]
test esi, esi
jne 0x10213350
lea edi, [eax + 0x2c]
mov esi, dword [eax + 4]
mov dword [esp + 0x58], edi
mov edi, dword [eax + 0x1c]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x30], esi
sub eax, esi
mov dword [esp + 0x50], eax
sub eax, edi
cmp eax, 0x180
ja 0x10213eee
cmp dword [esp + 0x50], edi
jb 0x10214112
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x5c]
mov dword [esp + 0x30], ecx
mov ecx, dword [eax + 0x28]
mov dword [esp + 0x3c], ecx
mov ecx, dword [eax + 0x24]
mov eax, dword [eax + 4]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x50]
cmp edi, eax
jae 0x102132d3
add ecx, 8
mov eax, 0x20
sub eax, ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], eax
mov eax, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x44], 0x20
mov esi, dword [eax + 0x50]
ja 0x10213570
mov eax, dword [esp + 0x40]
mov ebx, dword [eax + edi + 8]
imul ebx, ebx, 0x9e3779b1
movzx ecx, byte [esp + 0x48]
mov eax, dword [esp + 0x3c]
xor ebx, esi
shr ebx, cl
mov esi, ebx
shr esi, 8
shl esi, 4
add esi, eax
test byte [esp + 0x30], 0x3f
jne 0x10213648
and esi, 0xf
jne 0x10213620
mov edx, dword [esp + 0x58]
mov eax, edi
mov esi, dword [esp + 0x3c]
and eax, 7
lea edx, [edx + eax*4]
mov eax, dword [edx]
mov dword [edx], ebx
mov edx, eax
shr edx, 8
shl edx, 4
lea ebp, [esi + edx]
mov dword [esp + 0x4c], edx
mov edx, 0xf
movzx ebx, byte [ebp]
sub ebx, 1
and ebx, 0xf
cmove ebx, edx
mov edx, dword [esp + 0x20]
cmp dword [esp + 0x44], 0x20
mov byte [ebp], bl
mov edx, dword [edx + 0x50]
ja 0x102135c0
mov esi, dword [esp + 0x40]
mov esi, dword [esi + edi]
imul esi, esi, 0x9e3779b1
movzx ecx, byte [esp + 0x48]
xor esi, edx
shr esi, cl
cmp eax, esi
je 0x10213540
mov dword [esp + 0x5c], eax
mov dword [esp + 8], 0x375
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], str.hash__ZSTD_hashPtrSalted_base__updateStartIdx__hashLog__ZSTD_ROW_HASH_TAG_BITS__mls__ms__hashSalt_
call dword [sym.imp.msvcrt.dll__assert]
mov eax, dword [esp + 0x5c]
mov byte [ebp + ebx], al
mov eax, dword [esp + 0x4c]
add eax, ebx
mov ebx, eax
mov eax, dword [esp + 0x30]
mov dword [eax + ebx*4], edi
add edi, 1
cmp dword [esp + 0x50], edi
jne 0x102131db
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x50]
cmp dword [esp + 0x64], 0x20
mov dword [eax + 0x1c], edi
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x1c]
lea ebx, [eax + edi + 8]
ja 0x1021417c
mov ebx, dword [ebx]
imul ebx, ebx, 0x9e3779b1
mov eax, dword [esp + 0x84]
mov ecx, 0x20
xor ebx, eax
mov eax, dword [esp + 0x64]
sub ecx, eax
mov eax, dword [esp + 0x74]
shr ebx, cl
mov esi, ebx
shr esi, 8
shl esi, 4
add esi, eax
test byte [esp + 0x70], 0x3f
jne 0x10214134
and esi, 0xf
jne 0x1021415a
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x58]
and eax, 7
lea edx, [edi + eax*4]
mov eax, dword [edx]
mov dword [edx], ebx
jmp 0x10213388
cmp dword [esp + 0x64], 0x20
ja 0x10213e9e
mov eax, dword [esp + 0x18]
mov ebx, dword [eax]
imul eax, ebx, 0x9e3779b1
mov edi, dword [esp + 0x84]
mov ecx, 0x20
xor eax, edi
mov edi, dword [esp + 0x64]
sub ecx, edi
mov edi, dword [esp + 0x20]
shr eax, cl
mov ecx, dword [esp + 0x1c]
mov dword [edi + 0x1c], ecx
mov edi, dword [esp + 0x20]
mov ecx, eax
mov byte [esp + 0x48], al
shr ecx, 8
add dword [edi + 0x58], eax
mov edi, dword [esp + 0x70]
mov edx, ecx
shl ecx, 6
shl edx, 4
movzx eax, al
add edi, ecx
imul eax, eax, 0x1010101
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x74]
add edi, edx
mov edx, dword [edi + 0xc]
movzx ecx, byte [edi]
mov dword [esp + 0x3c], edi
mov ebx, dword [edi + 8]
mov edi, dword [esp + 0x3c]
xor edx, eax
mov byte [esp + 0x40], cl
mov ebp, ecx
mov esi, edx
xor ebx, eax
and ebp, 0xf
or esi, 0x80808080
mov ecx, esi
sub ecx, 0x1010101
or ecx, edx
mov edx, ebx
and ecx, 0x80808080
or edx, 0x80808080
imul ecx, ecx, 0x204081
sub edx, 0x1010101
or edx, ebx
and edx, 0x80808080
shr ecx, 0x1c
mov esi, ecx
shl esi, 4
mov ecx, esi
imul esi, edx, 0x204081
mov edx, dword [esp + 0x3c]
mov ebx, dword [edx + 4]
shr esi, 0x1c
xor ebx, eax
or esi, ecx
mov edx, ebx
shl esi, 4
or edx, 0x80808080
sub edx, 0x1010101
or edx, ebx
and edx, 0x80808080
imul ecx, edx, 0x204081
shr ecx, 0x1c
or ecx, esi
xor eax, dword [edi]
xor edi, edi
mov edx, eax
or eax, 0x80808080
sub eax, 0x1010101
or eax, edx
mov edx, ecx
movzx ecx, byte [esp + 0x40]
and eax, 0x80808080
shl edx, 4
imul eax, eax, 0x204081
shr eax, 0x1c
or eax, edx
not eax
ror ax, cl
movzx eax, ax
mov esi, eax
test eax, eax
je 0x102141e6
mov ecx, ebp
xor ebx, ebx
mov ebp, dword [esp + 0x60]
jmp 0x102134d6
mov eax, dword [esp + 0x24]
cmp edx, eax
jb 0x10213524
mov dword [esp + ebx*4 + 0x90], edx
sub ebp, 1
add ebx, 1
mov eax, esi
mov edx, edi
add eax, 0xffffffff
adc edx, 0xffffffff
and esi, eax
and edi, edx
test ebp, ebp
mov edx, esi
setne al
or edx, edi
je 0x10213670
test al, al
je 0x10213670
xor eax, eax
mov edx, dword [esp + 0x30]
tzcnt eax, esi
add eax, ecx
and eax, 0xf
mov edx, dword [edx + eax*4]
je 0x102134b1
cmp ebx, 0xf
jbe 0x10213498
mov dword [esp + 0x44], ecx
mov dword [esp + 0x40], edx
mov dword [esp + 8], 0x4bb
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], str.numMatches___rowEntries
call dword [sym.imp.msvcrt.dll__assert]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x44]
cmp edx, eax
jae 0x102134a4
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x60], ebp
mov ecx, ebx
mov byte [esp + 0x44], 1
movzx eax, byte [eax]
mov byte [esp + 0x40], al
jmp 0x10213685
mov byte [ebp + ebx], al
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x30]
add eax, ebx
mov dword [edx + eax*4], edi
add edi, 1
cmp dword [esp + 0x50], edi
je 0x102132d3
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x44], 0x20
mov esi, dword [eax + 0x50]
jbe 0x102131ed
mov dword [esp + 8], 0x353
mov dword [esp + 4], 0x1044cfac
mov dword [esp], 0x1044d091
call dword [sym.imp.msvcrt.dll__assert]
mov eax, dword [esp + 0x40]
mov ebx, dword [eax + edi + 8]
mov dword [esp + 8], 0x324
mov dword [esp + 4], 0x1044cfac
mov dword [esp], 0x1044d0a5
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x102131f5
mov ecx, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x68], eax
mov dword [esp + 0x5c], ecx
mov dword [esp + 8], 0x353
mov dword [esp + 4], 0x1044cfac
mov dword [esp], 0x1044d091
call ecx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x5c]
mov esi, dword [eax + edi]
mov dword [esp + 8], 0x324
mov dword [esp + 4], 0x1044cfac
mov dword [esp], 0x1044d0a5
call ecx
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
jmp 0x10213277
mov dword [esp + 8], 0x32f
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], str.ZSTD_isAligned_tagTable__relRow___size_t_1____rowLog_
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10213226
mov dword [esp + 8], 0x32e
mov eax, dword [esp + 0x88]
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], str.ZSTD_isAligned_hashTable__relRow__64_
call eax
jmp 0x1021321d
mov byte [esp + 0x44], al
mov eax, dword [esp + 0x3c]
mov ecx, ebx
mov dword [esp + 0x60], ebp
movzx eax, byte [eax]
mov byte [esp + 0x40], al
add eax, 0xf
mov edx, 0xf
mov edi, dword [esp + 0x3c]
and eax, 0xf
cmove eax, edx
movzx edx, byte [esp + 0x48]
mov byte [edi], al
mov byte [edi + eax], dl
mov edi, dword [esp + 0x20]
mov edx, dword [edi + 0x1c]
lea ebx, [edx + 1]
mov dword [edi + 0x1c], ebx
mov edi, dword [esp + 0x30]
mov dword [edi + eax*4], edx
test ecx, ecx
je 0x102141d9
mov eax, dword [esp + 0x34]
mov dword [esp + 0x30], ecx
mov ebp, 3
xor esi, esi
sub eax, 3
mov dword [esp + 0x40], eax
lea eax, [esp + 0x90]
mov dword [esp + 0x20], eax
mov eax, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 0x3c], eax
jmp 0x1021372c
mov eax, dword [esp + 0x24]
cmp ebx, eax
jb 0x10213760
mov eax, dword [esp + 0x28]
lea edi, [eax + ebx]
mov eax, dword [esp + 0x2c]
cmp ebx, eax
jb 0x10213790
mov eax, dword [esp + 0x18]
mov eax, dword [eax + ebp - 3]
cmp dword [edi + ebp - 3], eax
je 0x102137bf
mov eax, dword [esp + 0x30]
add esi, 1
cmp esi, eax
je 0x10213830
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + esi*4]
mov eax, dword [esp + 0x1c]
cmp ebx, eax
jb 0x102136f0
mov dword [esp + 8], 0x4d3
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], 0x1044d106
call dword [sym.imp.msvcrt.dll__assert]
mov eax, dword [esp + 0x24]
cmp ebx, eax
jae 0x102136f8
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], 0x4d4
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], str.matchIndex___lowLimit
call eax
mov eax, dword [esp + 0x28]
lea edi, [eax + ebx]
mov eax, dword [esp + 0x2c]
cmp ebx, eax
jae 0x1021370b
mov dword [esp + 8], 0x4d8
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], str.matchIndex___dictLimit
call dword [sym.imp.msvcrt.dll__assert]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + ebp - 3]
cmp dword [edi + ebp - 3], eax
jne 0x1021371d
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x40]
cmp edx, eax
jae 0x10213b30
mov eax, dword [edi]
mov edx, dword [edx]
cmp eax, edx
je 0x10213c40
xor eax, edx
xor edi, edi
tzcnt edi, eax
shr edi, 3
cmp ebp, edi
jae 0x1021371d
cmp dword [esp + 0x1c], ebx
je 0x10213e30
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x1b0]
add eax, 3
sub eax, ebx
mov dword [edx], eax
mov eax, dword [esp + 0x18]
add eax, edi
cmp dword [esp + 0x34], eax
je 0x102141d0
mov eax, dword [esp + 0x30]
add esi, 1
mov ebp, edi
cmp esi, eax
jne 0x1021372c
lea esi, [esi]
nop
mov dword [esp + 0x3c], ebp
mov eax, dword [esp + 0x7c]
mov ebx, dword [esp + 0x54]
imul esi, dword [esp + 0x80], 0x1010101
mov edi, dword [eax + 0xc]
mov edx, dword [ebx + 0xc]
movzx ebp, byte [ebx]
mov dword [esp + 0x24], edi
mov edi, dword [eax + 4]
xor edx, esi
mov eax, dword [eax]
mov dword [esp + 0x30], edi
mov dword [esp + 0x28], eax
sub eax, edi
mov edi, dword [esp + 0x2c]
sub edi, eax
mov eax, edx
or eax, 0x80808080
mov dword [esp + 0x48], edi
mov edi, ebp
sub eax, 0x1010101
and edi, 0xf
or eax, edx
mov edx, dword [ebx + 8]
mov ebx, dword [esp + 0x54]
and eax, 0x80808080
xor edx, esi
imul eax, eax, 0x204081
mov ecx, edx
or ecx, 0x80808080
sub ecx, 0x1010101
shr eax, 0x1c
or ecx, edx
shl eax, 4
and ecx, 0x80808080
imul ecx, ecx, 0x204081
shr ecx, 0x1c
or ecx, eax
mov eax, dword [esp + 0x54]
shl ecx, 4
mov edx, dword [eax + 4]
xor edx, esi
xor esi, dword [ebx]
mov eax, edx
or eax, 0x80808080
sub eax, 0x1010101
or eax, edx
and eax, 0x80808080
imul eax, eax, 0x204081
shr eax, 0x1c
or eax, ecx
mov ecx, esi
or ecx, 0x80808080
sub ecx, 0x1010101
or esi, ecx
shl eax, 4
xor edx, edx
and esi, 0x80808080
mov ecx, eax
imul eax, esi, 0x204081
shr eax, 0x1c
or eax, ecx
mov ecx, ebp
not eax
ror ax, cl
movzx ecx, ax
mov eax, ecx
test ecx, ecx
je 0x10213b06
cmp byte [esp + 0x44], 0
je 0x10213b06
mov esi, dword [esp + 0x60]
xor ebp, ebp
jmp 0x10213965
mov dword [esp + ebp*4 + 0x90], ebx
sub esi, 1
add ebp, 1
mov ecx, eax
mov ebx, edx
add ecx, 0xffffffff
adc ebx, 0xffffffff
and eax, ecx
and edx, ebx
mov ecx, eax
or ecx, edx
je 0x10213981
test esi, esi
je 0x10213981
xor ecx, ecx
mov ebx, dword [esp + 0x38]
tzcnt ecx, eax
add ecx, edi
and ecx, 0xf
mov ebx, dword [ebx + ecx*4]
je 0x1021394d
mov ecx, dword [esp + 0x24]
cmp ebx, ecx
jae 0x10213940
mov dword [esp + 0x2c], ebp
test ebp, ebp
je 0x10213b06
lea eax, [esp + 0x90]
xor ebp, ebp
mov dword [esp + 0x20], eax
mov eax, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 0x40], eax
jmp 0x102139dd
mov eax, dword [esp + 0x1c]
cmp ebx, eax
jae 0x10213a11
mov eax, dword [esp + 0x30]
lea esi, [eax + ebx]
lea edi, [esi + 4]
cmp dword [esp + 0x28], edi
jb 0x10213a3e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
cmp dword [esi], eax
je 0x10213a69
mov eax, dword [esp + 0x2c]
add ebp, 1
cmp ebp, eax
je 0x10213b06
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + ebp*4]
mov eax, dword [esp + 0x24]
cmp ebx, eax
jae 0x102139a8
mov dword [esp + 8], 0x50d
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], str.matchIndex___dmsLowestIndex
call dword [sym.imp.msvcrt.dll__assert]
mov eax, dword [esp + 0x1c]
cmp ebx, eax
jb 0x102139b0
mov eax, dword [esp + 0x40]
mov dword [esp + 8], 0x50e
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], 0x1044d106
call eax
mov eax, dword [esp + 0x30]
lea esi, [eax + ebx]
lea edi, [esi + 4]
cmp dword [esp + 0x28], edi
jae 0x102139c0
mov dword [esp + 8], 0x511
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], str.match4___dmsEnd
call dword [sym.imp.msvcrt.dll__assert]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
cmp dword [esi], eax
jne 0x102139ce
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x34]
lea edx, [eax + 4]
mov eax, dword [esp + 0x28]
sub eax, edi
add eax, edx
cmp ecx, eax
cmovbe eax, ecx
mov dword [esp + 0x38], eax
sub eax, 3
cmp edx, eax
jae 0x10213b78
mov ecx, dword [esi + 4]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 4]
cmp dword [esp + 0x44], ecx
je 0x10213bf8
mov eax, dword [esp + 0x44]
xor eax, ecx
tzcnt eax, eax
shr eax, 3
add edi, eax
cmp dword [esp + 0x28], edi
je 0x10213bbd
lea esi, [eax + 4]
cmp dword [esp + 0x3c], esi
jae 0x102139ce
mov eax, dword [esp + 0x48]
add ebx, eax
mov eax, dword [esp + 0x1c]
cmp ebx, eax
jae 0x10213c80
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x1b0]
mov dword [esp + 0x3c], esi
add eax, 3
sub eax, ebx
mov dword [edi], eax
mov eax, dword [esp + 0x18]
add eax, esi
cmp dword [esp + 0x34], eax
jne 0x102139ce
mov eax, dword [esp + 0x3c]
add esp, 0x19c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x40]
add edx, 4
add edi, 4
cmp edx, eax
jb 0x10213c56
lea esi, [esi]
mov eax, dword [esp + 0x34]
sub eax, 1
cmp edx, eax
jae 0x10213b50
movzx eax, word [edx]
cmp word [edi], ax
jne 0x10213b50
add edx, 2
add edi, 2
lea esi, [esi]
mov eax, dword [esp + 0x34]
cmp edx, eax
jae 0x10213b65
movzx eax, byte [edx]
cmp byte [edi], al
sete al
movzx eax, al
add edx, eax
mov eax, dword [esp + 0x18]
mov edi, edx
sub edi, eax
jmp 0x102137e6
mov esi, edi
mov ecx, edx
mov eax, dword [esp + 0x38]
sub eax, 1
cmp ecx, eax
jae 0x10213b98
movzx eax, word [ecx]
cmp word [esi], ax
jne 0x10213b98
add ecx, 2
add esi, 2
lea esi, [esi]
mov eax, dword [esp + 0x38]
cmp ecx, eax
jae 0x10213bad
movzx eax, byte [ecx]
cmp byte [esi], al
sete al
movzx eax, al
add ecx, eax
mov eax, ecx
sub eax, edx
add edi, eax
cmp dword [esp + 0x28], edi
jne 0x10213ac1
mov edi, dword [esp + 0x34]
lea esi, [edx + eax]
lea ecx, [edi - 3]
mov edi, dword [esp + 0x78]
cmp esi, ecx
jae 0x10213cd0
mov edx, dword [edi]
mov edi, dword [esi]
cmp edx, edi
je 0x10213e58
xor edx, edi
xor edi, edi
tzcnt edi, edx
shr edi, 3
add eax, edi
jmp 0x10213ac1
mov ecx, dword [esp + 0x18]
add esi, 8
add ecx, 8
cmp ecx, eax
jae 0x10213b7c
mov dword [esp + 0x4c], eax
mov eax, ebx
mov ebx, dword [esi]
mov dword [esp + 0x44], ebx
mov ebx, dword [ecx]
cmp dword [esp + 0x44], ebx
je 0x10213d18
mov esi, ebx
mov ebx, eax
mov eax, dword [esp + 0x44]
xor eax, esi
tzcnt eax, eax
shr eax, 3
add eax, ecx
sub eax, edx
jmp 0x10213ab5
mov eax, dword [esp + 0x18]
add edi, 4
lea edx, [eax + 4]
mov eax, dword [esp + 0x40]
cmp edx, eax
jae 0x10213b30
mov eax, dword [edi]
mov ecx, dword [edx]
cmp eax, ecx
je 0x10213b18
xor eax, ecx
tzcnt eax, eax
shr eax, 3
lea edi, [edx + eax]
mov eax, dword [esp + 0x18]
sub edi, eax
jmp 0x102137e6
mov dword [esp + 8], 0x518
mov edi, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], str.curr___matchIndex__dmsIndexDelta
call edi
cmp dword [esp + 0x1c], ebx
jne 0x10213ae0
mov dword [esp + 8], 0x519
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], str._curr____matchIndex__dmsIndexDelta___0
call edi
jmp 0x10213ae0
mov dword [esp + 0x38], edi
mov edi, esi
mov ecx, dword [esp + 0x34]
lea edx, [ecx - 1]
cmp edi, edx
jae 0x10213cf1
mov edx, dword [esp + 0x38]
movzx ecx, word [edi]
cmp word [edx], cx
je 0x10213ee1
mov ecx, dword [esp + 0x34]
cmp edi, ecx
jae 0x10213d0a
mov ecx, dword [esp + 0x38]
movzx edx, byte [edi]
cmp byte [ecx], dl
sete dl
movzx edx, dl
add edi, edx
sub edi, esi
add eax, edi
jmp 0x10213ac1
mov ebx, dword [esp + 0x4c]
add ecx, 4
add esi, 4
cmp ecx, ebx
jb 0x10213c10
mov ebx, eax
jmp 0x10213b7c
mov dword [esp + 8], 0x32f
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], str.ZSTD_isAligned_tagTable__relRow___size_t_1____rowLog_
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10213146
mov dword [esp + 8], 0x574
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], str.MAX_4__MIN_6__ms__cParams.searchLog____4
call dword [sym.imp.msvcrt.dll__assert]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0xc4]
jmp 0x10213056
mov dword [esp + 8], 0x574
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], str.MAX_4__MIN_6__ms__cParams.minMatch____4
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10213043
mov dword [esp + 8], 0x32e
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], str.ZSTD_isAligned_hashTable__relRow__64_
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x1021313b
mov edx, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 8], 0x342
mov dword [esp + 4], 0x1044cfac
mov dword [esp + 0x38], edx
mov dword [esp], 0x1044d091
call edx
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x38]
mov ebp, dword [eax]
mov dword [esp + 8], 0x324
mov dword [esp + 4], 0x1044cfac
mov dword [esp], 0x1044d0a5
call edx
jmp 0x102130ff
mov dword [esp + 8], 0x4e6
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], 0x1044d0ad
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x102137f8
mov edx, dword [esp + 0x78]
lea edi, [esi + 4]
add edx, 4
mov dword [esp + 0x38], edx
cmp edi, ecx
jae 0x10213cd6
mov edx, dword [esp + 0x38]
mov edx, dword [edx]
mov dword [esp + 0x44], edx
mov edx, dword [edi]
cmp dword [esp + 0x44], edx
je 0x102141bb
mov ecx, dword [esp + 0x44]
xor ecx, edx
xor edx, edx
tzcnt edx, ecx
shr edx, 3
add edi, edx
sub edi, esi
add eax, edi
jmp 0x10213ac1
mov dword [esp + 8], 0x353
mov esi, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 4], 0x1044cfac
mov dword [esp], 0x1044d091
call esi
mov eax, dword [esp + 0x18]
mov ebx, dword [eax]
mov dword [esp + 8], 0x324
mov dword [esp + 4], 0x1044cfac
mov dword [esp], 0x1044d0a5
call esi
jmp 0x10213361
add dword [esp + 0x38], 2
add edi, 2
jmp 0x10213cf1
mov eax, dword [esp + 0x20]
lea ebx, [edi + 0x60]
mov dword [esp + 0x5c], ebx
mov esi, dword [eax + 0x5c]
mov ecx, dword [eax + 0x24]
mov dword [esp + 0x40], esi
mov esi, dword [eax + 0x28]
mov dword [esp + 0x3c], esi
cmp edi, ebx
jae 0x1021403d
lea ebx, [ecx + 8]
mov eax, 0x20
sub eax, ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], eax
mov eax, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x44], 0x20
mov esi, dword [eax + 0x50]
ja 0x10214250
mov eax, dword [esp + 0x30]
mov ebx, dword [eax + edi + 8]
imul ebx, ebx, 0x9e3779b1
movzx ecx, byte [esp + 0x48]
mov eax, dword [esp + 0x3c]
xor ebx, esi
shr ebx, cl
mov esi, ebx
shr esi, 8
shl esi, 4
add esi, eax
test byte [esp + 0x40], 0x3f
jne 0x1021431b
and esi, 0xf
jne 0x102142f9
mov ecx, dword [esp + 0x58]
mov eax, edi
mov esi, dword [esp + 0x20]
and eax, 7
lea edx, [ecx + eax*4]
mov eax, dword [edx]
mov dword [edx], ebx
mov ebx, dword [esp + 0x3c]
mov edx, eax
shr edx, 8
shl edx, 4
lea ebp, [ebx + edx]
mov dword [esp + 0x4c], edx
mov edx, 0xf
movzx ebx, byte [ebp]
sub ebx, 1
and ebx, 0xf
cmove ebx, edx
cmp dword [esp + 0x44], 0x20
mov byte [ebp], bl
mov edx, dword [esi + 0x50]
ja 0x10214297
mov esi, dword [esp + 0x30]
mov esi, dword [esi + edi]
imul esi, esi, 0x9e3779b1
movzx ecx, byte [esp + 0x48]
xor esi, edx
shr esi, cl
cmp eax, esi
je 0x10214220
mov dword [esp + 0x68], eax
mov dword [esp + 8], 0x375
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], str.hash__ZSTD_hashPtrSalted_base__updateStartIdx__hashLog__ZSTD_ROW_HASH_TAG_BITS__mls__ms__hashSalt_
call dword [sym.imp.msvcrt.dll__assert]
mov eax, dword [esp + 0x68]
mov byte [ebp + ebx], al
mov eax, dword [esp + 0x4c]
add eax, ebx
mov ebx, eax
mov eax, dword [esp + 0x40]
mov dword [eax + ebx*4], edi
add edi, 1
cmp dword [esp + 0x5c], edi
jne 0x10213f30
mov eax, dword [esp + 0x20]
mov edi, dword [eax + 0x5c]
mov ecx, dword [eax + 0x24]
mov dword [esp + 0x40], edi
mov edi, dword [eax + 0x28]
mov dword [esp + 0x3c], edi
mov ebx, dword [esp + 0x50]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x30]
lea edi, [ebx - 0x20]
add eax, 1
lea edx, [esi + edi]
cmp eax, edx
jb 0x102141f7
sub eax, edx
mov edx, 8
add eax, 1
cmp eax, edx
cmova eax, edx
add eax, edi
mov dword [esp + 0x48], eax
cmp edi, eax
jae 0x1021318b
add ecx, 8
mov eax, 0x20
mov ebp, edi
sub eax, ecx
mov dword [esp + 0x44], eax
mov eax, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 0x4c], eax
cmp ecx, 0x20
ja 0x10214369
mov ebp, edi
jmp 0x102140c5
and esi, 0xf
jne 0x10214340
mov eax, dword [esp + 0x20]
mov edx, edi
add edi, 1
and edx, 7
mov dword [eax + edx*4 + 0x2c], ebx
mov eax, dword [esp + 0x48]
cmp edi, eax
jae 0x10214362
mov eax, dword [esp + 0x30]
movzx ecx, byte [esp + 0x44]
imul ebx, dword [eax + edi], 0x9e3779b1
mov eax, dword [esp + 0x20]
xor ebx, dword [eax + 0x50]
mov eax, dword [esp + 0x3c]
shr ebx, cl
mov esi, ebx
shr esi, 8
shl esi, 4
add esi, eax
test byte [esp + 0x40], 0x3f
je 0x102140a0
mov dword [esp + 8], 0x32e
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], str.ZSTD_isAligned_hashTable__relRow__64_
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x102140a0
mov dword [esp + 8], 0x397
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], str.target___idx
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10213195
mov dword [esp + 8], 0x32e
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], str.ZSTD_isAligned_hashTable__relRow__64_
call dword [sym.imp.msvcrt.dll__assert]
and esi, 0xf
je 0x10213335
mov dword [esp + 8], 0x32f
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], str.ZSTD_isAligned_tagTable__relRow___size_t_1____rowLog_
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10213335
mov dword [esp + 8], 0x353
mov esi, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 4], 0x1044cfac
mov dword [esp], 0x1044d091
call esi
mov ebx, dword [ebx]
mov dword [esp + 8], 0x324
mov dword [esp + 4], 0x1044cfac
mov dword [esp], 0x1044d0a5
call esi
jmp 0x102132f7
add edi, 4
add dword [esp + 0x38], 4
cmp edi, ecx
jb 0x10213e6e
jmp 0x10213cd6
mov dword [esp + 0x3c], edi
jmp 0x10213834
mov dword [esp + 0x3c], 3
jmp 0x10213834
mov byte [esp + 0x44], 1
movzx eax, byte [esp + 0x40]
xor ecx, ecx
jmp 0x10213685
cmp ebx, edi
jb 0x10214112
mov eax, dword [esp + 0x40]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 4]
mov dword [esp + 0x40], eax
jmp 0x102131bd
mov byte [ebp + ebx], al
mov eax, dword [esp + 0x4c]
add eax, ebx
mov ebx, dword [esp + 0x40]
mov dword [ebx + eax*4], edi
add edi, 1
cmp dword [esp + 0x5c], edi
je 0x10214028
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x44], 0x20
mov esi, dword [eax + 0x50]
jbe 0x10213f42
mov dword [esp + 8], 0x353
mov dword [esp + 4], 0x1044cfac
mov dword [esp], 0x1044d091
call dword [sym.imp.msvcrt.dll__assert]
mov eax, dword [esp + 0x30]
mov ebx, dword [eax + edi + 8]
mov dword [esp + 8], 0x324
mov dword [esp + 4], 0x1044cfac
mov dword [esp], 0x1044d0a5
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10213f4a
mov ecx, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 0x88], edx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x68], ecx
mov dword [esp + 8], 0x353
mov dword [esp + 4], 0x1044cfac
mov dword [esp], 0x1044d091
call ecx
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x68]
mov esi, dword [eax + edi]
mov dword [esp + 8], 0x324
mov dword [esp + 4], 0x1044cfac
mov dword [esp], 0x1044d0a5
call ecx
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x88]
jmp 0x10213fcc
mov dword [esp + 8], 0x32f
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], str.ZSTD_isAligned_tagTable__relRow___size_t_1____rowLog_
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10213f7b
mov dword [esp + 8], 0x32e
mov eax, dword [esp + 0x8c]
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], str.ZSTD_isAligned_hashTable__relRow__64_
call eax
jmp 0x10213f72
mov dword [esp + 8], 0x32f
mov eax, dword [esp + 0x4c]
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], str.ZSTD_isAligned_tagTable__relRow___size_t_1____rowLog_
call eax
jmp 0x102140a9
mov edi, ebp
jmp 0x1021318b
mov dword [esp + 0x4c], edi
mov esi, eax
jmp 0x10214396
and edi, 0xf
jne 0x1021441c
mov eax, dword [esp + 0x20]
mov edx, ebp
add ebp, 1
and edx, 7
mov dword [eax + edx*4 + 0x2c], ebx
mov eax, dword [esp + 0x48]
cmp ebp, eax
jae 0x1021443a
mov eax, dword [esp + 0x20]
mov edi, dword [eax + 0x50]
mov dword [esp + 8], 0x353
mov dword [esp + 4], 0x1044cfac
mov dword [esp], 0x1044d091
call esi
mov eax, dword [esp + 0x30]
mov ebx, dword [eax + ebp]
mov dword [esp + 8], 0x324
mov dword [esp + 4], 0x1044cfac
imul ebx, ebx, 0x9e3779b1
mov dword [esp], 0x1044d0a5
call esi
movzx ecx, byte [esp + 0x44]
mov eax, dword [esp + 0x3c]
xor ebx, edi
shr ebx, cl
mov edi, ebx
shr edi, 8
shl edi, 4
add edi, eax
test byte [esp + 0x40], 0x3f
je 0x10214371
mov dword [esp + 8], 0x32e
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], str.ZSTD_isAligned_hashTable__relRow__64_
call esi
jmp 0x10214371
mov dword [esp + 8], 0x32f
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], str.ZSTD_isAligned_tagTable__relRow___size_t_1____rowLog_
call esi
jmp 0x1021437a
mov edi, dword [esp + 0x4c]
jmp 0x1021318b