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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xbc
mov esi, dword [eax + 0xc0]
mov edi, dword [eax + 0x5c]
mov dword [esp + 0x98], eax
mov ebx, dword [esp + 0xd4]
mov dword [esp + 0x68], edx
mov dword [esp + 0x74], ecx
cmp esi, 0x20
ja 0x101fcf63
mov eax, edx
cmp ebx, 5
je 0x101fcc10
cmp ebx, 6
jne 0x101fd033
mov edx, dword [edx]
mov ebx, dword [eax + 4]
imul eax, edx, 0xcf1bbcdc
imul ecx, ebx, 0xbf9b0000
add ecx, eax
mov eax, 0xbf9b0000
mul edx
add edx, ecx
mov ecx, 0x40
sub ecx, esi
shrd eax, edx, cl
shr edx, cl
and ecx, 0x20
cmovne eax, edx
lea eax, [edi + eax*4]
mov edi, dword [esp + 0x98]
mov ebp, dword [esp + 0x68]
mov dword [esp + 0x9c], eax
mov esi, dword [eax]
mov eax, 1
mov ecx, dword [edi + 4]
mov edx, eax
sub ebp, ecx
mov dword [esp + 0x8c], ecx
mov ecx, dword [edi + 0xb8]
mov ebx, ebp
mov dword [esp + 0x94], ebp
shl edx, cl
mov ecx, edx
mov edx, dword [edi + 0x10]
mov edi, ebp
sub ebx, ecx
sub edi, edx
cmp ecx, edi
mov ecx, dword [esp + 0x98]
cmovae ebx, edx
mov edi, dword [ecx + 0x18]
test edi, edi
mov edi, edx
mov edx, dword [ecx + 0x64]
mov ecx, dword [ecx + 0xbc]
cmove edi, ebx
mov dword [esp + 0x1c], ecx
sub ecx, 1
shl eax, cl
mov dword [esp + 0x7c], edi
sub eax, 1
mov dword [esp + 0x6c], edx
mov dword [esp + 0x64], eax
cmp eax, ebp
jae 0x101fcedf
sub ebp, eax
mov ecx, edx
cmp ebp, edi
mov dword [esp + 0x90], ebp
cmovae edi, ebp
mov dword [esp + 0x48], edi
mov edx, dword [esp + 0x64]
and edx, esi
shl edx, 3
lea eax, [ecx + edx]
lea ebx, [ecx + edx + 4]
mov ecx, dword [esp + 0x98]
mov edx, 1
mov ecx, dword [ecx + 0xc4]
shl edx, cl
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x78], edx
lea edx, [ecx - 8]
mov ecx, dword [esp + 0x68]
cmp edx, ecx
jb 0x101fcef5
mov edi, dword [esp + 0x78]
mov ecx, dword [esp + 0x6c]
xor ebp, ebp
cmp dword [esp + 0x48], esi
jb 0x101fc7aa
jmp 0x101fca31
cmp edi, 1
je 0x101fcfcc
mov dword [ebx], ebp
mov ebx, dword [esp + 0x64]
sub edi, 1
mov ebp, esi
mov edx, dword [eax]
and ebx, edx
shl ebx, 3
lea eax, [ecx + ebx]
lea ebx, [ecx + ebx + 4]
cmp dword [esp + 0x48], edx
jae 0x101fc7b7
mov esi, edx
cmp dword [ebx], 1
je 0x101fc780
test ebp, ebp
je 0x101fca31
mov ebx, dword [esp + 0x98]
mov esi, edi
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x34], ebp
mov edi, ebp
mov edx, dword [ebx + 4]
and eax, ebp
mov ebp, dword [ecx + eax*8 + 4]
mov eax, dword [ebx + 0x64]
mov dword [esp + 0x58], edx
mov dword [esp + 0x40], eax
mov eax, dword [ebx + 0xbc]
lea ecx, [eax - 1]
mov eax, 1
shl eax, cl
mov ecx, dword [ebx + 0xc]
sub eax, 1
mov dword [esp + 0x44], eax
mov eax, dword [ebx + 8]
mov dword [esp + 0x3c], ecx
cmp edi, ecx
jb 0x101fcda0
lea eax, [edx + edi]
mov edx, edi
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov edi, dword [ebx + 0x10]
and eax, edx
lea eax, [ecx + eax*8]
lea ecx, [eax + 4]
mov dword [esp + 0x4c], eax
mov eax, dword [eax]
mov dword [esp + 0x50], ecx
mov ecx, dword [ebx + 0xb8]
mov dword [esp + 0x20], eax
mov eax, 1
shl eax, cl
mov ecx, edx
sub ecx, edi
sub edx, eax
cmp eax, ecx
mov ecx, edx
mov eax, dword [esp + 0x48]
cmovae ecx, edi
mov dword [esp + 0x54], ecx
cmp dword [esp + 0x34], eax
jb 0x101fce28
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x24], ecx
jae 0x101fce00
test esi, esi
je 0x101fca12
mov edi, dword [esp + 0x20]
cmp dword [esp + 0x54], edi
jae 0x101fca12
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x5c], esi
cmp dword [esp + 0x34], ecx
mov dword [esp + 0x2c], 0
setb byte [esp + 0x63]
sub eax, 3
mov dword [esp + 0x38], eax
mov eax, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 0x30], 0
mov dword [esp + 0x70], eax
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], ebp
mov dword [esp + 0x88], ebx
jmp 0x101fc94b
mov eax, dword [ecx]
mov esi, dword [esi]
cmp eax, esi
je 0x101fcc80
xor eax, esi
tzcnt eax, eax
shr eax, 3
add ebx, eax
mov eax, dword [esp + 0x24]
add eax, ebx
cmp dword [esp + 0x1c], eax
je 0x101fc9fd
movzx eax, byte [eax]
cmp byte [ebp + ebx], al
jae 0x101fcc30
mov eax, dword [esp + 0x4c]
mov dword [eax], edi
cmp dword [esp + 0x48], edi
jae 0x101fce70
mov eax, dword [esp + 0x28]
mov dword [esp + 0x30], ebx
lea ecx, [eax + 4]
mov edi, dword [eax + 4]
mov dword [esp + 0x4c], ecx
sub dword [esp + 0x5c], 1
je 0x101fc9fd
cmp dword [esp + 0x54], edi
jae 0x101fc9fd
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x30]
and eax, edi
lea eax, [edx + eax*8]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x2c]
cmp eax, ebx
cmovbe ebx, eax
mov eax, dword [esp + 0x34]
cmp edi, eax
jae 0x101fcc58
mov edx, dword [esp + 0x3c]
lea eax, [ebx + edi]
cmp eax, edx
jae 0x101fc98b
cmp byte [esp + 0x63], 0
je 0x101fccc0
mov eax, dword [esp + 0x58]
lea ebp, [eax + edi]
mov eax, dword [esp + 0x24]
lea ecx, [ebp + ebx]
lea esi, [eax + ebx]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x20], esi
cmp esi, eax
jb 0x101fc8e0
mov eax, esi
mov esi, dword [esp + 0x1c]
sub esi, 1
cmp eax, esi
jae 0x101fc9d0
movzx esi, word [eax]
cmp word [ecx], si
jne 0x101fc9d0
add eax, 2
add ecx, 2
lea esi, [esi]
nop
mov edx, dword [esp + 0x1c]
cmp eax, edx
jae 0x101fc9e5
movzx edx, byte [eax]
cmp byte [ecx], dl
sete cl
movzx ecx, cl
add eax, ecx
mov ecx, dword [esp + 0x20]
sub eax, ecx
add ebx, eax
mov eax, dword [esp + 0x24]
add eax, ebx
cmp dword [esp + 0x1c], eax
jne 0x101fc907
mov esi, dword [esp + 0x80]
mov ebp, dword [esp + 0x84]
mov ebx, dword [esp + 0x88]
mov eax, dword [esp + 0x50]
add esi, 1
mov dword [eax], 0
mov eax, dword [esp + 0x4c]
mov dword [eax], 0
test ebp, ebp
jne 0x101fc7c0
mov esi, dword [esp + 0x94]
mov ecx, dword [esp + 0x64]
mov eax, esi
and eax, ecx
mov ecx, dword [esp + 0x6c]
shl eax, 3
lea edi, [ecx + eax]
lea eax, [ecx + eax + 4]
mov dword [esp + 0x3c], eax
lea eax, [esi + 9]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x38], edi
mov edi, dword [eax]
mov dword [eax], esi
cmp dword [esp + 0x7c], edi
jae 0x101fd06a
mov eax, dword [esp + 0x74]
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
lea esi, [eax - 3]
sub eax, 1
mov dword [esp + 0x28], 0
mov dword [esp + 0x34], esi
mov dword [esp + 0x44], eax
jmp 0x101fcb8f
mov eax, dword [ebx]
mov esi, dword [ecx]
cmp eax, esi
je 0x101fcdc0
xor eax, esi
tzcnt eax, eax
shr eax, 3
lea ebx, [edx + eax]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x68]
lea esi, [eax + ebx]
cmp ecx, ebx
jae 0x101fcb48
mov edx, dword [esp + 0x24]
lea eax, [ebx + edi]
sub edx, edi
cmp edx, ebx
cmovae eax, dword [esp + 0x24]
mov edx, dword [esp + 0xd0]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x94]
sub eax, edi
mov dword [esp + 0x40], eax
lea eax, [eax + 1]
bsr eax, eax
xor eax, 0x1f
bsr edx, dword [edx]
xor edx, 0x1f
mov dword [esp + 0x1c], edx
mov edx, ebx
sub edx, ecx
mov ecx, edx
mov edx, dword [esp + 0x1c]
shl ecx, 2
sub edx, eax
cmp ecx, edx
jle 0x101fcb3e
cmp dword [esp + 0x94], edi
je 0x101fcebd
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0xd0]
mov dword [esp + 0x30], ebx
add eax, 3
mov dword [ecx], eax
cmp dword [esp + 0x74], esi
je 0x101fcd2c
movzx eax, byte [esi]
cmp byte [ebp + ebx], al
jae 0x101fcd00
mov eax, dword [esp + 0x38]
mov dword [eax], edi
cmp dword [esp + 0x90], edi
jae 0x101fcff7
sub dword [esp + 0x78], 1
mov eax, dword [esp + 0x20]
mov dword [esp + 0x28], ebx
lea esi, [eax + 4]
mov edi, dword [eax + 4]
mov dword [esp + 0x38], esi
je 0x101fcd2c
cmp dword [esp + 0x7c], edi
jae 0x101fcd2c
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x2c]
and eax, edi
lea eax, [ecx + eax*8]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x28]
cmp eax, edx
cmovbe edx, eax
mov eax, dword [esp + 0x8c]
lea ebp, [eax + edi]
mov eax, dword [esp + 0x68]
lea ebx, [ebp + edx]
lea ecx, [eax + edx]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x1c], ecx
cmp ecx, eax
jb 0x101fcaa8
mov eax, ecx
mov esi, dword [esp + 0x44]
cmp eax, esi
jae 0x101fcbf0
movzx esi, word [eax]
cmp word [ebx], si
jne 0x101fcbf0
add eax, 2
add ebx, 2
lea esi, [esi]
mov esi, dword [esp + 0x74]
cmp eax, esi
jae 0x101fcc05
movzx ecx, byte [eax]
cmp byte [ebx], cl
sete bl
movzx ebx, bl
add eax, ebx
mov ecx, dword [esp + 0x1c]
sub eax, ecx
jmp 0x101fcabd
mov edx, dword [edx]
mov ebx, dword [eax + 4]
imul eax, edx, 0xcf1bbcdc
imul ecx, ebx, 0xbb000000
add ecx, eax
mov eax, 0xbb000000
jmp 0x101fc67e
mov eax, dword [esp + 0x50]
mov dword [eax], edi
cmp dword [esp + 0x48], edi
jae 0x101fce98
mov eax, dword [esp + 0x28]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x50], eax
mov edi, dword [eax]
jmp 0x101fc936
mov dword [esp + 8], 0x66
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], 0x1044d106
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x101fc975
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x38]
add ecx, 4
lea eax, [edx + 4]
cmp eax, esi
jae 0x101fc9af
mov esi, dword [ecx]
mov dword [esp + 0x20], esi
mov esi, dword [eax]
cmp dword [esp + 0x20], esi
je 0x101fcce8
mov ecx, edx
mov edx, dword [esp + 0x20]
xor edx, esi
xor esi, esi
tzcnt esi, edx
shr esi, 3
add eax, esi
sub eax, ecx
jmp 0x101fc8f5
mov dword [esp + 8], 0x71
mov eax, dword [esp + 0x70]
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], str._matchIndexmatchLength___dictLimit____curr___dictLimit_
call eax
jmp 0x101fc98b
mov esi, dword [esp + 0x38]
add eax, 4
add ecx, 4
cmp eax, esi
jb 0x101fcc96
mov dword [esp + 0x20], edx
jmp 0x101fc9af
mov eax, dword [esp + 0x3c]
mov dword [eax], edi
cmp dword [esp + 0x90], edi
jae 0x101fcfe7
sub dword [esp + 0x78], 1
mov eax, dword [esp + 0x20]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x3c], eax
mov edi, dword [eax]
jne 0x101fcb85
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0x78], 0x20000000
mov dword [eax], 0
mov eax, dword [esp + 0x38]
mov dword [eax], 0
ja 0x101fcf41
mov eax, dword [esp + 0x94]
mov esi, dword [esp + 0x24]
add eax, 8
cmp eax, esi
jae 0x101fcf1f
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x98]
sub eax, 8
cmp dword [esp + 0x30], 2
mov dword [esi + 0x1c], eax
jbe 0x101fcd8c
mov eax, dword [esp + 0xd0]
cmp dword [eax], 3
jbe 0x101fd007
mov eax, dword [esp + 0x30]
add esp, 0xbc
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, edi
mov edx, edi
add ecx, eax
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x3c]
add eax, ecx
mov dword [esp + 0x1c], eax
jmp 0x101fc81c
mov esi, dword [esp + 0x34]
lea eax, [ecx + 4]
add ebx, 4
cmp eax, esi
jae 0x101fcbd4
mov esi, dword [ebx]
mov dword [esp + 0x1c], esi
mov esi, dword [eax]
cmp dword [esp + 0x1c], esi
je 0x101fce50
mov ebx, ecx
mov ecx, dword [esp + 0x1c]
xor ecx, esi
xor esi, esi
tzcnt esi, ecx
shr esi, 3
add eax, esi
sub eax, ebx
jmp 0x101fcabd
mov dword [esp + 8], 0x61
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], str.ip___iend
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x101fc877
mov dword [esp + 8], 0x60
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], str.curr___btLow
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x101fc869
mov esi, dword [esp + 0x34]
add eax, 4
add ebx, 4
cmp eax, esi
jb 0x101fcdd2
mov dword [esp + 0x1c], ecx
jmp 0x101fcbd4
lea eax, [esp + 0xac]
mov esi, dword [esp + 0x80]
mov ebp, dword [esp + 0x84]
mov dword [esp + 0x4c], eax
mov ebx, dword [esp + 0x88]
jmp 0x101fca12
lea eax, [esp + 0xac]
mov esi, dword [esp + 0x80]
mov ebp, dword [esp + 0x84]
mov dword [esp + 0x50], eax
mov ebx, dword [esp + 0x88]
jmp 0x101fca12
mov dword [esp + 8], 0x14e
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], 0x1044d0ad
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x101fcb2a
mov dword [esp + 0x48], edi
mov ecx, edx
mov dword [esp + 0x90], 0
jmp 0x101fc72d
mov dword [esp + 0x1c], eax
mov dword [esp + 8], 0x107
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], 0x1044d0e1
call dword [sym.imp.msvcrt.dll__assert]
mov eax, dword [esp + 0x1c]
jmp 0x101fc768
mov dword [esp + 8], 0x173
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], 0x1044d17d
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x101fcd64
mov dword [esp + 8], 0x16b
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], 0x1044d154
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x101fcd4e
mov dword [esp + 8], 0x342
mov ebp, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 4], 0x1044cfac
mov dword [esp], 0x1044d091
call ebp
cmp ebx, 5
je 0x101fd077
cmp ebx, 6
jne 0x101fd049
mov eax, dword [esp + 0x68]
mov edx, dword [eax]
mov ebx, dword [eax + 4]
cmp esi, 0x40
jbe 0x101fc66b
mov dword [esp + 0x1c], edx
mov dword [esp + 8], 0x32e
mov dword [esp + 4], 0x1044cfac
mov dword [esp], 0x1044d09d
call ebp
mov edx, dword [esp + 0x1c]
jmp 0x101fc66b
cmp dword [esp + 0x48], esi
jae 0x101fc7af
mov dword [ebx], 0
mov dword [eax], 0
jmp 0x101fc7af
lea eax, [esp + 0xac]
mov dword [esp + 0x3c], eax
jmp 0x101fcd2c
lea eax, [esp + 0xac]
mov dword [esp + 0x38], eax
jmp 0x101fcd2c
mov dword [esp + 8], 0x176
mov dword [esp + 4], str.zstd_lib_compress_zstd_lazy.c
mov dword [esp], str.OFFBASE_IS_OFFSET_offBasePtr_
call dword [sym.imp.msvcrt.dll__assert]
mov eax, dword [esp + 0x30]
add esp, 0xbc
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, dword [eax]
imul eax, ebx, 0x9e3779b1
mov ecx, 0x20
sub ecx, esi
shr eax, cl
jmp 0x101fc694
mov eax, dword [esp + 0x68]
mov ebx, dword [eax]
mov dword [esp + 8], 0x324
mov dword [esp + 4], 0x1044cfac
mov dword [esp], 0x1044d0a5
call ebp
jmp 0x101fd035
mov dword [esp + 0x30], 0
jmp 0x101fcd2c
mov eax, dword [esp + 0x68]
mov edx, dword [eax]
mov ebx, dword [eax + 4]
cmp esi, 0x40
jbe 0x101fcc15
mov dword [esp + 0x1c], edx
mov dword [esp + 8], 0x329
mov dword [esp + 4], 0x1044cfac
mov dword [esp], 0x1044d09d
call ebp
mov edx, dword [esp + 0x1c]
jmp 0x101fcc15