Function at 0x102205f0
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 0x10220f60
mov eax, dword [ebp + 0xc4]
cmp eax, 4
ja 0x10220f30
mov edi, dword [ebp + 0x5c]
mov ecx, dword [ebp + 4]
mov esi, 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], esi
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 ebx, [ecx + edi]
add esi, edi
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x18]
mov dword [esp + 0x2c], esi
mov esi, 1
sub edi, ecx
mov ecx, dword [ebp + 0xb8]
mov dword [esp + 0x78], 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, 4
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 0x102208a0
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 0x1022103c
cmp dword [esp + 0x14], edi
jb 0x10221333
mov eax, dword [ebp + 0x5c]
mov ecx, dword [ebp + 4]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0x28]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0x24]
cmp edi, ecx
jae 0x10220837
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 0x10220c18
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, 4
add esi, eax
test byte [esp + 0x28], 0x3f
jne 0x10220ce8
and esi, 0xf
jne 0x10220cc0
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, 4
lea ebp, [ecx + edx]
mov dword [esp + 0x48], edx
mov edx, 0xf
mov ecx, dword [esp + 0x24]
movzx ebx, byte [ebp]
sub ebx, 1
and ebx, 0xf
cmove ebx, edx
cmp dword [esp + 0x40], 0x20
mov byte [ebp], bl
mov edx, dword [ecx + 0x50]
ja 0x10220c60
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 0x10220be8
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 0x1022073b
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 0x102212f4
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, 4
add esi, eax
test byte [esp + 0x68], 0x3f
jne 0x102212d2
and esi, 0xf
jne 0x102212b0
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 0x102208c7
cmp dword [esp + 0x58], 0x20
ja 0x10220fe9
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, 6
imul eax, eax, 0x1010101
add edi, ecx
shl edx, 4
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x6c]
add edi, edx
mov edx, dword [edi + 0xc]
movzx ecx, byte [edi]
mov dword [esp + 0x28], edi
xor edx, eax
mov byte [esp + 0x38], cl
mov esi, ecx
mov ebx, edx
and esi, 0xf
or ebx, 0x80808080
mov dword [esp + 0x3c], esi
mov ecx, ebx
mov ebx, dword [edi + 8]
mov edi, dword [esp + 0x28]
sub ecx, 0x1010101
or ecx, edx
xor ebx, eax
and ecx, 0x80808080
mov edx, ebx
imul ecx, ecx, 0x204081
or edx, 0x80808080
sub edx, 0x1010101
or edx, ebx
mov ebx, dword [esp + 0x28]
shr ecx, 0x1c
and edx, 0x80808080
mov esi, ecx
shl esi, 4
mov ecx, esi
imul esi, edx, 0x204081
mov edx, dword [ebx + 4]
xor edx, eax
shr esi, 0x1c
or esi, ecx
mov ecx, edx
or edx, 0x80808080
sub edx, 0x1010101
shl esi, 4
or edx, ecx
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 + 0x38]
and eax, 0x80808080
shl edx, 4
imul eax, eax, 0x204081
shr eax, 0x1c
or eax, edx
not eax
ror ax, cl
xor ecx, ecx
movzx eax, ax
mov esi, eax
test eax, eax
je 0x10221355
mov dword [esp + 0x44], ebp
mov ebx, ecx
mov ebp, dword [esp + 0x70]
mov ecx, dword [esp + 0x3c]
jmp 0x10220a0d
mov eax, dword [esp + 0x1c]
cmp edx, eax
jb 0x10220a60
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 0x10220a60
test ebp, ebp
je 0x10220a60
xor eax, eax
mov edx, dword [esp + 0x24]
tzcnt eax, esi
add eax, ecx
and eax, 0xf
mov edx, dword [edx + eax*4]
je 0x102209f5
cmp ebx, 0xf
jbe 0x102209e0
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 0x102209e8
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, 0xf
mov edx, 0xf
mov edi, dword [esp + 0x28]
and eax, 0xf
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 0x1022135f
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 0x10220afc
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 0x10220d88
mov eax, dword [esp + 0x24]
add ebp, 1
cmp ebp, eax
je 0x10220bd6
mov ebx, dword [esp + ebp*4 + 0x80]
mov eax, dword [esp + 0x14]
cmp ebx, eax
jae 0x10220d38
mov eax, dword [esp + 0x1c]
cmp ebx, eax
jb 0x10220d10
mov eax, dword [esp + 0x20]
cmp ebx, eax
jae 0x10220ad0
mov eax, dword [esp + 0x34]
lea esi, [eax + ebx]
lea edi, [esi + 4]
cmp dword [esp + 0x2c], edi
jb 0x10220d60
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
cmp dword [esi], eax
jne 0x10220aed
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 0x10220db8
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 0x10220ea8
mov eax, dword [esp + 0x44]
xor eax, ecx
tzcnt eax, eax
shr eax, 3
add edi, eax
cmp dword [esp + 0x2c], edi
je 0x10220dfd
lea esi, [eax + 4]
cmp dword [esp + 0x28], esi
jae 0x10220aed
cmp dword [esp + 0x14], ebx
je 0x10220f88
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 0x10220aed
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 0x10220833
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x40], 0x20
mov esi, dword [eax + 0x50]
jbe 0x1022074d
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 0x10220755
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 0x102207d7
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 0x10220786
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 0x1022077d
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 0x10220b1b
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 0x10220b0f
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 0x10220b37
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x3c]
cmp edi, eax
jae 0x10220e60
mov eax, dword [edx]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10220ef0
xor eax, ecx
tzcnt eax, eax
shr eax, 3
mov esi, eax
jmp 0x10220b9c
mov esi, edi
mov ecx, edx
mov eax, dword [esp + 0x40]
sub eax, 1
cmp ecx, eax
jae 0x10220dd8
movzx eax, word [ecx]
cmp word [esi], ax
jne 0x10220dd8
add ecx, 2
add esi, 2
lea esi, [esi]
mov eax, dword [esp + 0x40]
cmp ecx, eax
jae 0x10220ded
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 0x10220b99
mov ecx, dword [esp + 0x3c]
lea edi, [edx + eax]
cmp edi, ecx
mov ecx, dword [esp + 0x78]
jae 0x10220fb0
mov edx, dword [ecx]
mov ecx, dword [edi]
cmp edx, ecx
jne 0x1022102c
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x3c]
lea esi, [edi + 4]
add ecx, 4
cmp esi, edx
jae 0x10220fb2
mov edx, dword [ecx]
mov dword [esp + 0x40], edx
mov edx, dword [esi]
cmp dword [esp + 0x40], edx
je 0x1022136c
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 0x10220b99
mov ecx, edi
mov eax, dword [esp + 0x4c]
sub eax, 1
cmp ecx, eax
jae 0x10220e80
movzx eax, word [ecx]
cmp word [edx], ax
jne 0x10220e80
add ecx, 2
add edx, 2
lea esi, [esi]
nop
mov eax, dword [esp + 0x4c]
cmp ecx, eax
jae 0x10220e95
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 0x10220b9c
mov ecx, dword [esp + 0x18]
add esi, 8
add ecx, 8
cmp ecx, eax
jae 0x10220dbc
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 0x10221290
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 0x10220b8d
mov eax, dword [esp + 0x3c]
lea ecx, [edi + 4]
add edx, 4
cmp ecx, eax
jae 0x10220e62
mov eax, dword [edx]
mov esi, dword [ecx]
cmp eax, esi
je 0x10221270
xor eax, esi
mov edi, dword [esp + 0x18]
tzcnt eax, eax
shr eax, 3
add eax, ecx
sub eax, edi
mov esi, eax
jmp 0x10220b9c
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 [ebp + 0xc4]
jmp 0x10220620
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 0x10220611
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 0x10220bb0
mov esi, edi
mov edx, dword [esp + 0x4c]
sub edx, 1
cmp esi, edx
jae 0x10220fc9
movzx edx, word [esi]
cmp word [ecx], dx
je 0x10221388
mov edx, dword [esp + 0x4c]
cmp esi, edx
jae 0x10220fde
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 0x10220b99
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 0x102208b1
xor edx, ecx
tzcnt edx, edx
shr edx, 3
add eax, edx
jmp 0x10220b99
lea eax, [edi + 0x60]
mov dword [esp + 0x40], eax
cmp edi, eax
jae 0x1022118f
mov eax, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 0x38], ebp
mov esi, ebx
mov dword [esp + 0x60], eax
jmp 0x102210ac
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 0x10221176
mov eax, dword [esp + 0x38]
mov esi, dword [eax + 0x50]
cmp dword [esp + 0x58], 0x20
ja 0x1022142d
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, 4
add esi, eax
test byte [esp + 0x28], 0x3f
jne 0x10221474
and esi, 0xf
jne 0x1022140b
mov ecx, dword [esp + 0x50]
mov eax, edi
and eax, 7
lea edx, [ecx + eax*4]
mov ecx, dword [esp + 0x24]
mov eax, dword [edx]
mov dword [edx], ebx
mov edx, eax
shr edx, 8
shl edx, 4
lea ebp, [ecx + edx]
mov dword [esp + 0x3c], edx
mov edx, 0xf
mov ecx, dword [esp + 0x38]
movzx ebx, byte [ebp]
sub ebx, 1
and ebx, 0xf
cmove ebx, edx
cmp dword [esp + 0x58], 0x20
mov byte [ebp], bl
mov edx, dword [ecx + 0x50]
ja 0x102213af
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 0x10221060
mov byte [ebp + ebx], al
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x28]
add eax, ebx
mov dword [ecx + eax*4], edi
add edi, 1
cmp dword [esp + 0x40], edi
jne 0x102210a5
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 ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x30]
lea edi, [ecx - 0x20]
add eax, 1
lea edx, [ebx + edi]
cmp eax, edx
jb 0x10221393
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 0x102206ee
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 0x102214c3
mov dword [esp + 0x44], edi
mov edi, ebp
mov ebp, edx
jmp 0x10221221
and esi, 0xf
jne 0x10221496
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 0x102214b8
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, 4
add esi, eax
test byte [esp + 0x28], 0x3f
je 0x10221200
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 0x10221200
mov eax, dword [esp + 0x3c]
add ecx, 4
add edx, 4
cmp ecx, eax
jb 0x10220f02
jmp 0x10220e62
mov ebx, dword [esp + 0x48]
add ecx, 4
add esi, 4
cmp ecx, ebx
jb 0x10220ec0
mov ebx, eax
jmp 0x10220dbc
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 0x10220888
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 0x1022087f
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 0x10220853
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 0x102206f8
movzx eax, byte [esp + 0x38]
jmp 0x10220a71
mov dword [esp + 0x28], 3
jmp 0x10220bd6
mov edx, dword [esp + 0x3c]
add esi, 4
add ecx, 4
cmp esi, edx
jb 0x10220e32
jmp 0x10220fb2
add esi, 2
add ecx, 2
jmp 0x10220fc9
cmp ecx, edi
jb 0x10221333
mov eax, dword [esp + 0x24]
mov ecx, dword [ebp + 4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x3c], ecx
jmp 0x1022071c
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 0x10221141
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 0x102210f0
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 0x102210bf
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 0x102210e7
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 0x10221209
mov ebp, edi
mov edi, dword [esp + 0x44]
jmp 0x102206ee
mov dword [esp + 0x44], edi
mov esi, edi
jmp 0x102214e8
and edi, 0xf
jne 0x10221576
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 0x102214ba
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 ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x3c]
mov ebx, dword [ecx + 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, 4
add edi, eax
test byte [esp + 0x28], 0x3f
je 0x102214cb
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 0x102214cb
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 0x102214d4