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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xbc
mov ebx, dword [eax + 0xc0]
mov esi, dword [eax + 0x5c]
mov dword [esp + 0x98], eax
mov dword [esp + 0x68], edx
mov dword [esp + 0x74], ecx
cmp ebx, 0x20
ja 0x101fb566
cmp dword [esp + 0xd4], 5
mov edi, dword [edx]
je 0x101fb1a0
cmp dword [esp + 0xd4], 6
jne 0x101fb60e
mov ebp, dword [edx + 4]
imul eax, edi, 0xcf1bbcdc
imul ecx, ebp, 0xbf9b0000
add ecx, eax
mov eax, 0xbf9b0000
mul edi
add edx, ecx
mov ecx, 0x40
sub ecx, ebx
shrd eax, edx, cl
shr edx, cl
and ecx, 0x20
cmovne eax, edx
mov edi, dword [esp + 0x98]
mov ebp, dword [esp + 0x68]
lea eax, [esi + eax*4]
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 0x101fb47f
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 0x101fb4b7
mov edi, dword [esp + 0x78]
mov ecx, dword [esp + 0x6c]
xor ebp, ebp
cmp dword [esp + 0x48], esi
jb 0x101fad3a
jmp 0x101fafc1
cmp edi, 1
je 0x101fb5d4
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 0x101fad47
mov esi, edx
cmp dword [ebx], 1
je 0x101fad10
test ebp, ebp
je 0x101fafc1
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 0x101fb340
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 0x101fb3a0
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x24], ecx
jae 0x101fb3cb
test esi, esi
je 0x101fafa2
mov edi, dword [esp + 0x20]
cmp dword [esp + 0x54], edi
jae 0x101fafa2
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x5c], esi
cmp dword [esp + 0x34], ecx
mov dword [esp + 0x30], 0
setb byte [esp + 0x63]
sub eax, 3
mov dword [esp + 0x38], eax
mov eax, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x70], eax
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], ebp
mov dword [esp + 0x88], ebx
jmp 0x101faedb
mov eax, dword [ecx]
mov esi, dword [esi]
cmp eax, esi
je 0x101fb210
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 0x101faf8d
movzx eax, byte [eax]
cmp byte [ebp + ebx], al
jae 0x101fb1c0
mov eax, dword [esp + 0x4c]
mov dword [eax], edi
cmp dword [esp + 0x48], edi
jae 0x101fb410
mov eax, dword [esp + 0x28]
mov dword [esp + 0x2c], ebx
lea ecx, [eax + 4]
mov edi, dword [eax + 4]
mov dword [esp + 0x4c], ecx
sub dword [esp + 0x5c], 1
je 0x101faf8d
cmp dword [esp + 0x54], edi
jae 0x101faf8d
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 0x101fb1e8
mov edx, dword [esp + 0x3c]
lea eax, [ebx + edi]
cmp eax, edx
jae 0x101faf1b
cmp byte [esp + 0x63], 0
je 0x101fb250
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 0x101fae70
mov eax, esi
mov esi, dword [esp + 0x1c]
sub esi, 1
cmp eax, esi
jae 0x101faf60
movzx esi, word [eax]
cmp word [ecx], si
jne 0x101faf60
add eax, 2
add ecx, 2
lea esi, [esi]
nop
mov edx, dword [esp + 0x1c]
cmp eax, edx
jae 0x101faf75
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 0x101fae97
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 0x101fad50
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 0x101fb4e1
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 0x101fb11f
mov eax, dword [ebx]
mov esi, dword [ecx]
cmp eax, esi
je 0x101fb360
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 0x101fb0d8
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 0x101fb0ce
cmp dword [esp + 0x94], edi
je 0x101fb45d
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 0x101fb622
movzx eax, byte [esi]
cmp byte [ebp + ebx], al
jae 0x101fb290
mov eax, dword [esp + 0x38]
mov dword [eax], edi
cmp dword [esp + 0x90], edi
jae 0x101fb64b
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 0x101fb2bc
cmp dword [esp + 0x7c], edi
jae 0x101fb2bc
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x28]
and eax, edi
lea eax, [ecx + eax*8]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x2c]
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 0x101fb038
mov eax, ecx
mov esi, dword [esp + 0x44]
cmp eax, esi
jae 0x101fb180
movzx esi, word [eax]
cmp word [ebx], si
jne 0x101fb180
add eax, 2
add ebx, 2
lea esi, [esi]
mov esi, dword [esp + 0x74]
cmp eax, esi
jae 0x101fb195
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 0x101fb04d
mov ebp, dword [edx + 4]
imul eax, edi, 0xcf1bbcdc
imul ecx, ebp, 0xbb000000
add ecx, eax
mov eax, 0xbb000000
jmp 0x101fac0f
mov eax, dword [esp + 0x50]
mov dword [eax], edi
cmp dword [esp + 0x48], edi
jae 0x101fb438
mov eax, dword [esp + 0x28]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x50], eax
mov edi, dword [eax]
jmp 0x101faec6
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 0x101faf05
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x38]
add ecx, 4
lea eax, [edx + 4]
cmp eax, esi
jae 0x101faf3f
mov esi, dword [ecx]
mov dword [esp + 0x20], esi
mov esi, dword [eax]
cmp dword [esp + 0x20], esi
je 0x101fb278
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 0x101fae85
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 0x101faf1b
mov esi, dword [esp + 0x38]
add eax, 4
add ecx, 4
cmp eax, esi
jb 0x101fb226
mov dword [esp + 0x20], edx
jmp 0x101faf3f
mov eax, dword [esp + 0x3c]
mov dword [eax], edi
cmp dword [esp + 0x90], edi
jae 0x101fb63b
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 0x101fb115
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0x78], 0x20000000
mov dword [eax], 0
mov eax, dword [esp + 0x38]
mov dword [eax], 0
ja 0x101fb507
mov eax, dword [esp + 0x78]
test eax, eax
jne 0x101fb524
mov eax, dword [esp + 0x94]
mov esi, dword [esp + 0x24]
add eax, 8
cmp eax, esi
jae 0x101fb495
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x98]
sub eax, 8
cmp dword [esp + 0x30], 2
mov dword [esi + 0x1c], eax
jbe 0x101fb328
mov eax, dword [esp + 0xd0]
cmp dword [eax], 3
jbe 0x101fb65b
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 0x101fadac
mov esi, dword [esp + 0x34]
lea eax, [ecx + 4]
add ebx, 4
cmp eax, esi
jae 0x101fb164
mov esi, dword [ebx]
mov dword [esp + 0x1c], esi
mov esi, dword [eax]
cmp dword [esp + 0x1c], esi
je 0x101fb3f0
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 0x101fb04d
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]
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x24], ecx
jb 0x101fae07
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 0x101fae07
mov esi, dword [esp + 0x34]
add eax, 4
add ebx, 4
cmp eax, esi
jb 0x101fb372
mov dword [esp + 0x1c], ecx
jmp 0x101fb164
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 0x101fafa2
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 0x101fafa2
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 0x101fb0ba
mov dword [esp + 0x48], edi
mov ecx, edx
mov dword [esp + 0x90], 0
jmp 0x101facbe
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 0x101fb300
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 0x101facf9
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0x78], 0x20000000
mov dword [esp + 0x30], 0
mov dword [eax], 0
mov eax, dword [esp + 0x38]
mov dword [eax], 0
jbe 0x101fb524
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]
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x68]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xd0]
mov dword [esp], eax
mov eax, dword [esp + 0x98]
call fcn.101fd0b0
mov dword [esp + 0x30], eax
jmp 0x101fb2ea
mov eax, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 8], 0x342
mov dword [esp + 4], 0x1044cfac
mov dword [esp + 0x1c], eax
mov dword [esp], 0x1044d091
call eax
cmp dword [esp + 0xd4], 5
mov eax, dword [esp + 0x1c]
je 0x101fb687
cmp dword [esp + 0xd4], 6
jne 0x101fb5ef
mov ecx, dword [esp + 0x68]
mov edi, dword [ecx]
mov ebp, dword [ecx + 4]
cmp ebx, 0x40
jbe 0x101fabfc
mov dword [esp + 8], 0x32e
mov dword [esp + 4], 0x1044cfac
mov dword [esp], 0x1044d09d
call eax
jmp 0x101fabfc
cmp dword [esp + 0x48], esi
jae 0x101fad3f
mov dword [ebx], 0
mov dword [eax], 0
jmp 0x101fad3f
mov ecx, dword [esp + 0x68]
mov edi, dword [ecx]
mov dword [esp + 8], 0x324
mov dword [esp + 4], 0x1044cfac
mov dword [esp], 0x1044d0a5
call eax
imul eax, edi, 0x9e3779b1
mov ecx, 0x20
sub ecx, ebx
shr eax, cl
jmp 0x101fac25
mov eax, dword [esp + 0x3c]
mov dword [eax], 0
mov eax, dword [esp + 0x38]
mov dword [eax], 0
jmp 0x101fb2ea
lea eax, [esp + 0xac]
mov dword [esp + 0x3c], eax
jmp 0x101fb2bc
lea eax, [esp + 0xac]
mov dword [esp + 0x38], eax
jmp 0x101fb2bc
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 ecx, dword [esp + 0x68]
mov edi, dword [ecx]
mov ebp, dword [ecx + 4]
cmp ebx, 0x40
jbe 0x101fb1a3
mov dword [esp + 8], 0x329
mov dword [esp + 4], 0x1044cfac
mov dword [esp], 0x1044d09d
call eax
jmp 0x101fb1a3