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

Disassembly:
push ebp
mov ebp, eax
push edi
push esi
push ebx
sub esp, 0x18c
cmp dword [eax + 0xc8], 4
mov dword [esp + 0x18], edx
mov dword [esp + 0x4c], ecx
ja 0x10221fb8
mov eax, dword [ebp + 0xc4]
cmp eax, 5
je 0x102215ef
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____5
call dword [sym.imp.msvcrt.dll__assert]
mov eax, dword [ebp + 0xc4]
mov edi, dword [ebp + 0x5c]
mov ecx, dword [ebp + 4]
mov ebx, dword [ebp + 8]
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x68], edi
mov dword [esp + 0x28], edi
mov edi, dword [ebp + 0x28]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x6c], edi
mov dword [esp + 0x24], edi
mov edi, dword [ebp + 0x24]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x3c], edi
mov edi, dword [ebp + 0xc]
lea esi, [ecx + edi]
add ebx, edi
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x18]
mov dword [esp + 0x78], esi
mov esi, 1
sub edi, ecx
mov ecx, dword [ebp + 0xb8]
mov dword [esp + 0x2c], ebx
mov ebx, esi
shl ebx, cl
mov ecx, ebx
mov ebx, edi
sub edi, edx
mov dword [esp + 0x14], ebx
sub ebx, ecx
cmp ecx, edi
mov edi, dword [ebp + 0x18]
mov ecx, ebx
mov ebx, dword [ebp + 0x50]
cmovae ecx, edx
test edi, edi
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x7c], ebx
cmove edx, ecx
mov dword [esp + 0x1c], edx
mov edx, 5
cmp eax, edx
mov ecx, edx
cmovbe ecx, eax
add edi, 8
mov eax, 0x20
sub eax, edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], eax
mov eax, dword [ebp + 0xdc]
shl esi, cl
mov dword [esp + 0x70], esi
test eax, eax
jne 0x10221870
lea edi, [ebp + 0x2c]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x50], edi
mov edi, dword [ebp + 0x1c]
sub eax, edi
cmp eax, 0x180
ja 0x10222094
cmp dword [esp + 0x14], edi
jb 0x10222383
mov eax, dword [ebp + 0x5c]
mov ebx, dword [ebp + 4]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0x28]
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0x24]
cmp edi, ebx
jae 0x10221806
lea ecx, [eax + 8]
mov eax, 0x20
mov dword [esp + 0x24], ebp
sub eax, ecx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], eax
mov eax, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x40], 0x20
mov esi, dword [eax + 0x50]
ja 0x10221ca0
mov eax, dword [esp + 0x3c]
mov ebx, dword [eax + edi + 8]
imul ebx, ebx, 0x9e3779b1
movzx ecx, byte [esp + 0x44]
mov eax, dword [esp + 0x38]
xor ebx, esi
shr ebx, cl
mov esi, ebx
shr esi, 8
shl esi, 5
add esi, eax
test byte [esp + 0x28], 0x3f
jne 0x10221d78
and esi, 0x1f
jne 0x10221d50
mov ecx, dword [esp + 0x50]
mov eax, edi
and eax, 7
lea edx, [ecx + eax*4]
mov ecx, dword [esp + 0x38]
mov eax, dword [edx]
mov dword [edx], ebx
mov edx, eax
shr edx, 8
shl edx, 5
lea ebp, [ecx + edx]
mov dword [esp + 0x48], edx
mov edx, 0x1f
mov ecx, dword [esp + 0x24]
movzx ebx, byte [ebp]
sub ebx, 1
and ebx, 0x1f
cmove ebx, edx
cmp dword [esp + 0x40], 0x20
mov byte [ebp], bl
mov edx, dword [ecx + 0x50]
ja 0x10221cf0
mov ecx, dword [esp + 0x3c]
mov esi, dword [ecx + edi]
imul esi, esi, 0x9e3779b1
movzx ecx, byte [esp + 0x44]
xor esi, edx
shr esi, cl
cmp eax, esi
je 0x10221c70
mov dword [esp + 0x54], 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 + 0x54]
mov byte [ebp + ebx], al
mov eax, dword [esp + 0x48]
add eax, ebx
mov ebx, eax
mov eax, dword [esp + 0x28]
mov dword [eax + ebx*4], edi
add edi, 1
cmp dword [esp + 0x14], edi
jne 0x1022170a
mov ebp, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x30]
cmp dword [esp + 0x58], 0x20
mov dword [ebp + 0x1c], eax
lea ebx, [edi + eax + 8]
ja 0x10222344
mov ebx, dword [ebx]
imul ebx, ebx, 0x9e3779b1
mov eax, dword [esp + 0x7c]
movzx ecx, byte [esp + 0x5c]
xor ebx, eax
mov eax, dword [esp + 0x6c]
shr ebx, cl
mov esi, ebx
shr esi, 8
shl esi, 5
add esi, eax
test byte [esp + 0x68], 0x3f
jne 0x10222322
and esi, 0x1f
jne 0x10222300
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x50]
and eax, 7
lea edx, [edi + eax*4]
mov eax, dword [edx]
mov dword [edx], ebx
jmp 0x10221897
cmp dword [esp + 0x58], 0x20
ja 0x10222041
mov eax, dword [esp + 0x18]
mov esi, dword [eax]
imul eax, esi, 0x9e3779b1
mov edi, dword [esp + 0x14]
movzx ecx, byte [esp + 0x5c]
mov dword [ebp + 0x1c], edi
xor eax, ebx
shr eax, cl
mov ecx, eax
mov edi, dword [esp + 0x68]
add dword [ebp + 0x58], eax
shr ecx, 8
mov byte [esp + 0x40], al
movzx eax, al
mov edx, ecx
shl ecx, 7
imul eax, eax, 0x1010101
add edi, ecx
shl edx, 5
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x6c]
add edi, edx
movzx ecx, byte [edi]
mov edx, dword [edi + 0x1c]
mov dword [esp + 0x28], edi
mov ebx, ecx
xor edx, eax
mov byte [esp + 0x38], cl
and ebx, 0x1f
mov dword [esp + 0x3c], ebx
mov ebx, edx
or ebx, 0x80808080
mov ecx, ebx
mov ebx, dword [edi + 0x18]
mov edi, dword [esp + 0x28]
sub ecx, 0x1010101
xor ebx, eax
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
imul esi, edx, 0x204081
mov ebx, ecx
shl ebx, 4
shr esi, 0x1c
or esi, ebx
mov ebx, dword [esp + 0x28]
shl esi, 4
mov edx, dword [ebx + 0x14]
xor edx, eax
mov ecx, edx
or edx, 0x80808080
sub edx, 0x1010101
or edx, ecx
and edx, 0x80808080
imul ecx, edx, 0x204081
shr ecx, 0x1c
or ecx, esi
mov esi, dword [edi + 0x10]
mov edi, dword [esp + 0x28]
xor esi, eax
mov edx, esi
or edx, 0x80808080
sub edx, 0x1010101
or edx, esi
mov esi, ecx
and edx, 0x80808080
shl esi, 4
imul ecx, edx, 0x204081
shr ecx, 0x1c
or ecx, esi
mov esi, dword [edi + 0xc]
mov edi, dword [esp + 0x28]
xor esi, eax
mov edx, esi
or edx, 0x80808080
sub edx, 0x1010101
or edx, esi
mov esi, ecx
and edx, 0x80808080
shl esi, 4
imul ecx, edx, 0x204081
shr ecx, 0x1c
or ecx, esi
mov esi, dword [edi + 8]
mov edi, dword [esp + 0x28]
xor esi, eax
mov edx, esi
or edx, 0x80808080
sub edx, 0x1010101
or edx, esi
mov esi, ecx
and edx, 0x80808080
shl esi, 4
imul ecx, edx, 0x204081
shr ecx, 0x1c
or ecx, esi
mov esi, dword [edi + 4]
mov edi, dword [esp + 0x28]
xor esi, eax
mov edx, esi
or edx, 0x80808080
sub edx, 0x1010101
or edx, esi
mov esi, ecx
shl esi, 4
xor eax, dword [edi]
and edx, 0x80808080
xor edi, edi
imul ecx, edx, 0x204081
mov edx, eax
or eax, 0x80808080
sub eax, 0x1010101
or eax, edx
and eax, 0x80808080
shr ecx, 0x1c
imul eax, eax, 0x204081
or ecx, esi
mov edx, ecx
movzx ecx, byte [esp + 0x38]
shl edx, 4
shr eax, 0x1c
or eax, edx
not eax
ror eax, cl
xor ecx, ecx
mov esi, eax
test eax, eax
je 0x102223a5
mov dword [esp + 0x44], ebp
mov ebx, ecx
mov ebp, dword [esp + 0x70]
mov ecx, dword [esp + 0x3c]
jmp 0x10221a95
mov eax, dword [esp + 0x1c]
cmp edx, eax
jb 0x10221ae8
mov dword [esp + ebx*4 + 0x80], 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
mov eax, esi
or eax, edi
je 0x10221ae8
test ebp, ebp
je 0x10221ae8
xor eax, eax
mov edx, dword [esp + 0x24]
tzcnt eax, esi
add eax, ecx
and eax, 0x1f
mov edx, dword [edx + eax*4]
je 0x10221a7d
cmp ebx, 0x1f
jbe 0x10221a68
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], 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 + 0x38]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x3c]
cmp edx, eax
jae 0x10221a70
lea esi, [esi]
nop
mov eax, dword [esp + 0x28]
mov ebp, dword [esp + 0x44]
mov ecx, ebx
movzx eax, byte [eax]
mov byte [esp + 0x38], al
add eax, 0x1f
mov edx, 0x1f
mov edi, dword [esp + 0x28]
and eax, 0x1f
cmove eax, edx
movzx edx, byte [esp + 0x40]
mov byte [edi], al
mov byte [edi + eax], dl
mov edx, dword [ebp + 0x1c]
mov edi, dword [esp + 0x24]
lea ebx, [edx + 1]
mov dword [ebp + 0x1c], ebx
mov dword [edi + eax*4], edx
test ecx, ecx
je 0x102223af
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x28], 3
xor ebp, ebp
mov dword [esp + 0x24], ecx
sub eax, 3
mov dword [esp + 0x3c], eax
mov eax, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 0x38], eax
jmp 0x10221b84
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x18]
lea edx, [eax + ebx]
mov eax, dword [esp + 0x28]
mov edi, dword [edi + eax - 3]
cmp dword [edx + eax - 3], edi
je 0x10221e18
mov eax, dword [esp + 0x24]
add ebp, 1
cmp ebp, eax
je 0x10221c5e
mov ebx, dword [esp + ebp*4 + 0x80]
mov eax, dword [esp + 0x14]
cmp ebx, eax
jae 0x10221dc8
mov eax, dword [esp + 0x1c]
cmp ebx, eax
jb 0x10221da0
mov eax, dword [esp + 0x20]
cmp ebx, eax
jae 0x10221b58
mov eax, dword [esp + 0x34]
lea esi, [eax + ebx]
lea edi, [esi + 4]
cmp dword [esp + 0x2c], edi
jb 0x10221df0
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
cmp dword [esi], eax
jne 0x10221b75
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x4c]
lea edx, [eax + 4]
mov eax, dword [esp + 0x2c]
sub eax, edi
add eax, edx
cmp ecx, eax
cmovbe eax, ecx
mov dword [esp + 0x40], eax
sub eax, 3
cmp edx, eax
jae 0x10221e48
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 0x10221f70
mov eax, dword [esp + 0x44]
xor eax, ecx
tzcnt eax, eax
shr eax, 3
add edi, eax
cmp dword [esp + 0x2c], edi
je 0x10221e8d
lea esi, [eax + 4]
cmp dword [esp + 0x28], esi
jae 0x10221b75
cmp dword [esp + 0x14], ebx
je 0x10221fe0
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x1a0]
mov dword [esp + 0x28], esi
add eax, 3
sub eax, ebx
mov dword [edi], eax
mov eax, dword [esp + 0x18]
add eax, esi
cmp dword [esp + 0x4c], eax
jne 0x10221b75
mov eax, dword [esp + 0x28]
add esp, 0x18c
pop ebx
pop esi
pop edi
pop ebp
ret
mov byte [ebp + ebx], al
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x28]
add eax, ebx
mov dword [ecx + eax*4], edi
add edi, 1
cmp dword [esp + 0x14], edi
je 0x10221802
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x40], 0x20
mov esi, dword [eax + 0x50]
jbe 0x1022171c
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 + 0x3c]
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 0x10221724
mov ecx, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 0x64], edx
mov dword [esp + 0x60], eax
mov dword [esp + 0x54], ecx
mov dword [esp + 8], 0x353
mov dword [esp + 4], 0x1044cfac
mov dword [esp], 0x1044d091
call ecx
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x54]
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 + 0x60]
mov edx, dword [esp + 0x64]
jmp 0x102217a6
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 0x10221755
mov dword [esp + 8], 0x32e
mov eax, dword [esp + 0x74]
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], str.ZSTD_isAligned_hashTable__relRow__64_
call eax
jmp 0x1022174c
mov dword [esp + 8], 0x4d4
mov eax, dword [esp + 0x38]
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], str.matchIndex___lowLimit
call eax
jmp 0x10221ba3
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]
jmp 0x10221b97
mov dword [esp + 8], 0x4de
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], str.match4___dictEnd
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10221bbf
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x3c]
cmp edi, eax
jae 0x10221ef0
mov eax, dword [edx]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10221f38
xor eax, ecx
tzcnt eax, eax
shr eax, 3
mov esi, eax
jmp 0x10221c24
mov esi, edi
mov ecx, edx
mov eax, dword [esp + 0x40]
sub eax, 1
cmp ecx, eax
jae 0x10221e68
movzx eax, word [ecx]
cmp word [esi], ax
jne 0x10221e68
add ecx, 2
add esi, 2
lea esi, [esi]
mov eax, dword [esp + 0x40]
cmp ecx, eax
jae 0x10221e7d
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 + 0x2c], edi
jne 0x10221c21
mov ecx, dword [esp + 0x3c]
lea edi, [edx + eax]
cmp edi, ecx
mov ecx, dword [esp + 0x78]
jae 0x10222008
mov edx, dword [ecx]
mov ecx, dword [edi]
cmp edx, ecx
jne 0x10222084
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x3c]
lea esi, [edi + 4]
add ecx, 4
cmp esi, edx
jae 0x1022200a
mov edx, dword [ecx]
mov dword [esp + 0x40], edx
mov edx, dword [esi]
cmp dword [esp + 0x40], edx
je 0x102223bc
mov ecx, dword [esp + 0x40]
xor ecx, edx
xor edx, edx
tzcnt edx, ecx
shr edx, 3
add edx, esi
sub edx, edi
add eax, edx
jmp 0x10221c21
mov ecx, edi
mov eax, dword [esp + 0x4c]
sub eax, 1
cmp ecx, eax
jae 0x10221f10
movzx eax, word [ecx]
cmp word [edx], ax
jne 0x10221f10
add ecx, 2
add edx, 2
lea esi, [esi]
nop
mov eax, dword [esp + 0x4c]
cmp ecx, eax
jae 0x10221f25
movzx eax, byte [ecx]
cmp byte [edx], al
sete al
movzx eax, al
add ecx, eax
mov eax, dword [esp + 0x18]
sub ecx, eax
mov esi, ecx
jmp 0x10221c24
mov eax, dword [esp + 0x3c]
lea ecx, [edi + 4]
add edx, 4
cmp ecx, eax
jae 0x10221ef2
mov eax, dword [edx]
mov esi, dword [ecx]
cmp eax, esi
je 0x102222e8
xor eax, esi
mov edi, dword [esp + 0x18]
tzcnt eax, eax
shr eax, 3
add eax, ecx
sub eax, edi
mov esi, eax
jmp 0x10221c24
mov ecx, dword [esp + 0x18]
add esi, 8
add ecx, 8
cmp ecx, eax
jae 0x10221e4c
mov dword [esp + 0x48], eax
mov eax, ebx
mov ebx, dword [esi]
mov dword [esp + 0x44], ebx
mov ebx, dword [ecx]
cmp dword [esp + 0x44], ebx
je 0x102222c8
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 0x10221c15
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 0x102215c1
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 0x10221c38
mov esi, edi
mov edx, dword [esp + 0x4c]
sub edx, 1
cmp esi, edx
jae 0x10222021
movzx edx, word [esi]
cmp word [ecx], dx
je 0x102223d8
mov edx, dword [esp + 0x4c]
cmp esi, edx
jae 0x10222036
movzx edx, byte [esi]
cmp byte [ecx], dl
sete dl
movzx edx, dl
add esi, edx
sub esi, edi
mov edx, esi
add eax, edx
jmp 0x10221c21
mov dword [esp + 8], 0x353
mov edi, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 4], 0x1044cfac
mov dword [esp], 0x1044d091
call edi
mov eax, dword [esp + 0x18]
mov esi, dword [eax]
mov dword [esp + 8], 0x324
mov dword [esp + 4], 0x1044cfac
mov dword [esp], 0x1044d0a5
call edi
jmp 0x10221881
xor edx, ecx
tzcnt edx, edx
shr edx, 3
add eax, edx
jmp 0x10221c21
lea eax, [edi + 0x60]
mov dword [esp + 0x40], eax
cmp edi, eax
jae 0x102221e7
mov eax, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 0x38], ebp
mov esi, ebx
mov dword [esp + 0x60], eax
jmp 0x10222104
mov dword [esp + 0x44], 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 + 0x44]
mov byte [ebp + ebx], al
mov eax, dword [esp + 0x3c]
add eax, ebx
mov ebx, eax
mov eax, dword [esp + 0x28]
mov dword [eax + ebx*4], edi
add edi, 1
cmp dword [esp + 0x40], edi
je 0x102221ce
mov eax, dword [esp + 0x38]
mov esi, dword [eax + 0x50]
cmp dword [esp + 0x58], 0x20
ja 0x1022247d
mov eax, dword [esp + 0x30]
mov ebx, dword [eax + edi + 8]
imul ebx, ebx, 0x9e3779b1
movzx ecx, byte [esp + 0x5c]
mov eax, dword [esp + 0x24]
xor ebx, esi
shr ebx, cl
mov esi, ebx
shr esi, 8
shl esi, 5
add esi, eax
test byte [esp + 0x28], 0x3f
jne 0x102224c4
and esi, 0x1f
jne 0x1022245b
mov ecx, dword [esp + 0x50]
mov eax, edi
and eax, 7
lea edx, [ecx + eax*4]
mov ecx, dword [esp + 0x38]
mov eax, dword [edx]
mov dword [edx], ebx
mov ebx, dword [esp + 0x24]
mov edx, eax
shr edx, 8
shl edx, 5
lea ebp, [ebx + edx]
mov dword [esp + 0x3c], edx
mov edx, 0x1f
movzx ebx, byte [ebp]
sub ebx, 1
and ebx, 0x1f
cmove ebx, edx
cmp dword [esp + 0x58], 0x20
mov byte [ebp], bl
mov edx, dword [ecx + 0x50]
ja 0x102223ff
mov ecx, dword [esp + 0x30]
mov esi, dword [ecx + edi]
imul esi, esi, 0x9e3779b1
movzx ecx, byte [esp + 0x5c]
xor esi, edx
shr esi, cl
cmp eax, esi
jne 0x102220b8
mov byte [ebp + ebx], al
mov eax, dword [esp + 0x3c]
add eax, ebx
mov ebx, dword [esp + 0x28]
mov dword [ebx + eax*4], edi
add edi, 1
cmp dword [esp + 0x40], edi
jne 0x102220fd
mov ebp, dword [esp + 0x38]
mov eax, dword [ebp + 0x5c]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0x28]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x24]
mov dword [esp + 0x3c], eax
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
lea edi, [ebx - 0x20]
add eax, 1
lea edx, [ecx + edi]
cmp eax, edx
jb 0x102223e3
sub eax, edx
mov edx, 8
add eax, 1
cmp eax, edx
cmova eax, edx
add eax, edi
mov dword [esp + 0x40], eax
cmp edi, eax
jae 0x102216bd
mov ecx, dword [esp + 0x3c]
mov eax, 0x20
mov edx, edi
add ecx, 8
sub eax, ecx
mov dword [esp + 0x38], eax
mov eax, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 0x3c], eax
cmp ecx, 0x20
ja 0x10222513
mov dword [esp + 0x44], edi
mov edi, ebp
mov ebp, edx
jmp 0x10222279
and esi, 0x1f
jne 0x102224e6
mov edx, ebp
mov eax, dword [esp + 0x40]
add ebp, 1
and edx, 7
mov dword [edi + edx*4 + 0x2c], ebx
cmp ebp, eax
jae 0x10222508
mov eax, dword [esp + 0x30]
movzx ecx, byte [esp + 0x38]
imul ebx, dword [eax + ebp], 0x9e3779b1
xor ebx, dword [edi + 0x50]
shr ebx, cl
mov eax, dword [esp + 0x24]
mov esi, ebx
shr esi, 8
shl esi, 5
add esi, eax
test byte [esp + 0x28], 0x3f
je 0x10222258
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 0x10222258
mov ebx, dword [esp + 0x48]
add ecx, 4
add esi, 4
cmp ecx, ebx
jb 0x10221f88
mov ebx, eax
jmp 0x10221e4c
mov eax, dword [esp + 0x3c]
add ecx, 4
add edx, 4
cmp ecx, eax
jb 0x10221f46
jmp 0x10221ef2
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 0x10221857
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 0x1022184e
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 0x10221822
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 0x102216c7
movzx eax, byte [esp + 0x38]
jmp 0x10221af9
mov dword [esp + 0x28], 3
jmp 0x10221c5e
mov edx, dword [esp + 0x3c]
add esi, 4
add ecx, 4
cmp esi, edx
jb 0x10221ec2
jmp 0x1022200a
add esi, 2
add ecx, 2
jmp 0x10222021
cmp ebx, edi
jb 0x10222383
mov eax, dword [esp + 0x24]
mov ebx, dword [ebp + 4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x3c], ebx
jmp 0x102216eb
mov ecx, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 0x54], edx
mov dword [esp + 0x48], eax
mov dword [esp + 0x44], 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 + 0x44]
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 + 0x48]
mov edx, dword [esp + 0x54]
jmp 0x10222199
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 0x10222148
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 0x10222117
mov dword [esp + 8], 0x32e
mov eax, dword [esp + 0x60]
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], str.ZSTD_isAligned_hashTable__relRow__64_
call eax
jmp 0x1022213f
mov dword [esp + 8], 0x32f
mov eax, dword [esp + 0x3c]
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 0x10222261
mov ebp, edi
mov edi, dword [esp + 0x44]
jmp 0x102216bd
mov dword [esp + 0x44], edi
mov esi, edi
jmp 0x10222538
and edi, 0x1f
jne 0x102225c6
mov edx, esi
mov eax, dword [esp + 0x40]
add esi, 1
and edx, 7
mov dword [ebp + edx*4 + 0x2c], ebx
cmp esi, eax
jae 0x1022250a
mov edi, dword [ebp + 0x50]
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], 0x353
mov dword [esp + 4], 0x1044cfac
mov dword [esp], 0x1044d091
call eax
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x3c]
mov ebx, dword [ebx + esi]
mov dword [esp + 8], 0x324
mov dword [esp + 4], 0x1044cfac
imul ebx, ebx, 0x9e3779b1
mov dword [esp], 0x1044d0a5
call eax
movzx ecx, byte [esp + 0x38]
mov eax, dword [esp + 0x24]
xor ebx, edi
shr ebx, cl
mov edi, ebx
shr edi, 8
shl edi, 5
add edi, eax
test byte [esp + 0x28], 0x3f
je 0x1022251b
mov dword [esp + 8], 0x32e
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], str.ZSTD_isAligned_hashTable__relRow__64_
call eax
jmp 0x1022251b
mov dword [esp + 8], 0x32f
mov eax, dword [esp + 0x3c]
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 0x10222524