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

Disassembly:
push ebp
push edi
push esi
push ebx
mov ebx, eax
sub esp, 0x9c
mov esi, dword [eax + 0xc0]
mov edi, dword [eax + 0x5c]
mov dword [esp + 0x18], edx
mov ebp, dword [esp + 0xb4]
mov dword [esp + 0x1c], ecx
cmp esi, 0x20
ja 0x1029e838
cmp ebp, 7
je 0x1029ea40
ja 0x1029e260
cmp ebp, 5
je 0x1029e9b0
cmp ebp, 6
jne 0x1029e280
mov ebp, dword [edx]
mov ecx, dword [edx + 4]
imul eax, ebp, 0xcf1bbcdc
imul ecx, ecx, 0xbf9b0000
add ecx, eax
mov eax, 0xbf9b0000
mul ebp
add edx, ecx
mov ecx, 0x40
sub ecx, esi
shrd eax, edx, cl
shr edx, cl
and ecx, 0x20
cmovne eax, edx
mov edx, eax
jmp 0x1029e295
cmp ebp, 8
jne 0x1029e280
mov ebp, dword [edx]
mov ecx, dword [edx + 4]
imul eax, ebp, 0xcf1bbcdc
imul ecx, ecx, 0xb7a56463
add ecx, eax
mov eax, 0xb7a56463
jmp 0x1029e23e
mov eax, edx
mov ebp, dword [eax]
imul eax, ebp, 0x9e3779b1
mov ecx, 0x20
sub ecx, esi
shr eax, cl
mov edx, eax
mov eax, dword [ebx + 0x64]
mov esi, dword [ebx + 0xbc]
mov ebp, dword [ebx + 8]
mov dword [esp + 0x40], eax
mov eax, 1
lea ecx, [esi - 1]
mov esi, eax
mov dword [esp + 0x74], ebp
shl esi, cl
mov ecx, dword [ebx + 0xc]
lea esi, [esi - 1]
mov dword [esp + 0x38], esi
lea esi, [edi + edx*4]
mov edi, dword [ebx + 4]
mov edx, ecx
add ebp, ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x54], edi
mov ecx, edi
mov edi, edx
mov edx, dword [esp + 0x38]
add edi, ecx
mov dword [esp + 0x68], ebp
mov ebp, 0
mov dword [esp + 0x78], edi
mov edi, dword [esp + 0x18]
mov dword [esp + 0x20], esi
mov esi, dword [esi]
sub edi, ecx
mov ecx, edi
mov dword [esp + 0x34], edi
sub ecx, edx
cmp edx, edi
mov edx, dword [esp + 0x38]
cmovb ebp, ecx
mov ecx, dword [esp + 0x40]
and edx, edi
mov edi, dword [ebx + 0x18]
lea ecx, [ecx + edx*8]
mov dword [esp + 0x58], ebp
mov ebp, eax
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x48], ecx
add ecx, 4
mov dword [esp + 0x4c], ecx
mov ecx, dword [ebx + 0xb8]
shl ebp, cl
mov ecx, ebp
mov ebp, dword [esp + 0xb0]
sub ebp, dword [ebx + 0x10]
sub edx, ecx
cmp ecx, ebp
cmovae edx, dword [ebx + 0x10]
test edi, edi
mov ecx, edx
mov edx, dword [esp + 0x34]
cmovne ecx, dword [ebx + 0x10]
lea edi, [edx + 9]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x3c], edi
mov ecx, dword [ebx + 0xc4]
shl eax, cl
mov dword [esp + 0x5c], eax
cmp dword [esp + 0xb0], edx
jb 0x1029e8f8
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
sub eax, 8
cmp eax, edi
jb 0x1029e810
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x44]
mov dword [edi], eax
test edx, edx
je 0x1029e7d8
mov edi, eax
mov eax, 0xfffffff8
sub eax, edi
mov ebx, eax
mov eax, dword [esp + 0x44]
cmp esi, eax
jb 0x1029ead5
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], 8
mov dword [esp + 0x2c], 0
sub eax, 3
mov dword [esp + 0x28], 0
mov dword [esp + 0x50], eax
mov dword [esp + 0x7c], ebx
lea esi, [esi]
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x40]
mov ebp, dword [esp + 0x28]
and eax, esi
lea eax, [edi + eax*8]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x2c]
cmp eax, ebp
cmovbe ebp, eax
mov eax, dword [esp + 0x34]
cmp esi, eax
jae 0x1029e600
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x30]
lea edx, [eax + ebp]
lea eax, [ebp + esi]
cmp eax, edi
jb 0x1029e588
mov eax, dword [esp + 0x54]
lea edi, [eax + esi]
mov eax, dword [esp + 0x50]
lea ecx, [edi + ebp]
cmp edx, eax
jae 0x1029e548
mov eax, dword [ecx]
mov ebx, dword [edx]
cmp eax, ebx
je 0x1029e628
xor eax, ebx
tzcnt eax, eax
shr eax, 3
add eax, ebp
cmp dword [esp + 0x24], eax
jae 0x1029e46c
mov ecx, dword [esp + 0x3c]
lea ebx, [eax + esi]
mov dword [esp + 0x24], eax
mov edx, ecx
sub edx, esi
cmp edx, eax
cmovb ecx, ebx
mov dword [esp + 0x3c], ecx
mov ebx, dword [esp + 0x18]
lea edx, [ebx + eax]
cmp dword [esp + 0x1c], edx
je 0x1029e4ba
movzx ebx, byte [edx]
cmp byte [edi + eax], bl
jae 0x1029e520
mov edx, dword [esp + 0x48]
mov dword [edx], esi
cmp dword [esp + 0x58], esi
jae 0x1029ea28
mov edi, dword [esp + 0x20]
mov dword [esp + 0x28], eax
lea esi, [edi + 4]
mov dword [esp + 0x48], esi
mov esi, dword [edi + 4]
sub dword [esp + 0x5c], 1
je 0x1029e4ba
mov eax, dword [esp + 0x44]
cmp esi, eax
jae 0x1029e3e0
mov ebx, dword [esp + 0x7c]
mov eax, dword [esp + 0x4c]
mov dword [eax], 0
mov eax, dword [esp + 0x48]
mov dword [eax], 0
mov eax, dword [esp + 0x3c]
add ebx, eax
mov eax, dword [esp + 0x24]
cmp eax, 0x180
jbe 0x1029e4fa
mov edx, eax
mov eax, 0xc0
sub edx, 0x180
cmp edx, eax
cmova edx, eax
cmp ebx, edx
cmovb ebx, edx
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x3c]
add edx, 8
cmp edx, eax
jae 0x1029e920
add esp, 0x9c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, dword [esp + 0x4c]
mov dword [ebx], esi
cmp dword [esp + 0x58], esi
jae 0x1029ea10
mov edi, dword [esp + 0x20]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x4c], edi
mov esi, dword [edi]
jmp 0x1029e4a7
mov eax, edx
mov ebx, dword [esp + 0x1c]
sub ebx, 1
cmp eax, ebx
jae 0x1029e568
movzx ebx, word [eax]
cmp word [ecx], bx
jne 0x1029e568
add eax, 2
add ecx, 2
lea esi, [esi]
nop
mov ebx, dword [esp + 0x1c]
cmp eax, ebx
jae 0x1029e57d
movzx ebx, byte [eax]
cmp byte [ecx], bl
sete cl
movzx ecx, cl
add eax, ecx
sub eax, edx
jmp 0x1029e44c
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x68]
lea edi, [eax + esi]
mov eax, dword [esp + 0x18]
sub ecx, edi
lea ebx, [edi + ebp]
add ecx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x64], ebx
cmp eax, ecx
cmovbe ecx, eax
mov eax, ecx
mov dword [esp + 0x60], ecx
sub eax, 3
mov dword [esp + 0x6c], eax
cmp edx, eax
jae 0x1029e668
mov eax, dword [ebx]
mov ebx, dword [edx]
cmp eax, ebx
je 0x1029e6f0
xor eax, ebx
tzcnt eax, eax
shr eax, 3
mov ecx, dword [esp + 0x64]
add ecx, eax
cmp dword [esp + 0x68], ecx
je 0x1029e6bd
add eax, ebp
mov edx, dword [esp + 0x54]
mov ebx, dword [esp + 0x30]
lea ecx, [eax + esi]
add edx, esi
cmp ecx, ebx
cmovae edi, edx
jmp 0x1029e44e
mov dword [esp + 8], 0x1e4
mov dword [esp + 4], str.zstd_lib_compress_zstd_opt.c
mov dword [esp], str.matchIndex___curr
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x1029e40a
mov ebx, dword [esp + 0x50]
lea eax, [edx + 4]
add ecx, 4
cmp eax, ebx
jae 0x1029e54a
mov ebx, dword [ecx]
mov dword [esp + 0x60], ebx
mov ebx, dword [eax]
cmp dword [esp + 0x60], ebx
je 0x1029e740
mov ecx, dword [esp + 0x60]
xor ecx, ebx
xor ebx, ebx
tzcnt ebx, ecx
shr ebx, 3
add eax, ebx
sub eax, edx
jmp 0x1029e44c
mov dword [esp + 0x70], ebx
mov ebx, edx
mov eax, dword [esp + 0x60]
sub eax, 1
cmp ebx, eax
jae 0x1029e690
mov ecx, dword [esp + 0x70]
movzx eax, word [ebx]
cmp word [ecx], ax
jne 0x1029e690
add dword [esp + 0x70], 2
add ebx, 2
lea esi, [esi]
mov eax, dword [esp + 0x60]
cmp ebx, eax
jae 0x1029e6a9
mov eax, dword [esp + 0x70]
movzx ecx, byte [ebx]
cmp byte [eax], cl
sete al
movzx eax, al
add ebx, eax
mov ecx, dword [esp + 0x64]
mov eax, ebx
sub eax, edx
add ecx, eax
cmp dword [esp + 0x68], ecx
jne 0x1029e5e5
lea ecx, [edx + eax]
mov edx, dword [esp + 0x50]
cmp ecx, edx
mov edx, dword [esp + 0x78]
jae 0x1029e760
mov edx, dword [edx]
mov ebx, dword [ecx]
cmp edx, ebx
je 0x1029e950
xor edx, ebx
xor ebx, ebx
tzcnt ebx, edx
shr ebx, 3
add eax, ebx
jmp 0x1029e5e5
mov eax, dword [esp + 0x64]
lea ebx, [edx + 4]
add eax, 4
mov dword [esp + 0x70], eax
mov ecx, eax
mov eax, dword [esp + 0x6c]
cmp ebx, eax
jae 0x1029e66e
mov eax, ecx
mov ecx, dword [eax]
mov dword [esp + 0x70], ecx
mov ecx, dword [ebx]
cmp dword [esp + 0x70], ecx
je 0x1029e7b8
mov eax, dword [esp + 0x70]
xor eax, ecx
tzcnt eax, eax
shr eax, 3
add eax, ebx
sub eax, edx
jmp 0x1029e5d5
mov ebx, dword [esp + 0x50]
add eax, 4
add ecx, 4
cmp eax, ebx
jb 0x1029e63a
jmp 0x1029e54a
mov dword [esp + 0x64], edx
mov ebx, ecx
mov dword [esp + 0x60], ecx
mov edx, dword [esp + 0x1c]
sub edx, 1
cmp ebx, edx
jae 0x1029e785
mov edx, dword [esp + 0x64]
movzx ebx, word [ebx]
cmp word [edx], bx
je 0x1029ea01
mov edx, dword [esp + 0x1c]
cmp dword [esp + 0x60], edx
jae 0x1029e7a6
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x64]
movzx edx, byte [edx]
cmp byte [ebx], dl
sete dl
movzx edx, dl
add dword [esp + 0x60], edx
mov ebx, dword [esp + 0x60]
sub ebx, ecx
add eax, ebx
jmp 0x1029e5e5
mov ecx, dword [esp + 0x6c]
add ebx, 4
add eax, 4
cmp ebx, ecx
jb 0x1029e70e
mov dword [esp + 0x70], eax
jmp 0x1029e66e
mov dword [esp + 8], 0x1e0
mov dword [esp + 4], str.zstd_lib_compress_zstd_opt.c
mov dword [esp], str.windowLow___0
call dword [sym.imp.msvcrt.dll__assert]
mov edi, dword [esp + 0x34]
mov eax, 0xfffffff8
sub eax, edi
mov ebx, eax
jmp 0x1029e3b5
mov dword [esp + 8], 0x1dd
mov dword [esp + 4], str.zstd_lib_compress_zstd_opt.c
mov dword [esp], str.ip___iend_8
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x1029e388
mov eax, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 8], 0x342
mov dword [esp + 4], str.zstd_lib_compress_zstd_compress_internal.h
mov dword [esp + 0x20], eax
mov dword [esp], str.hBits___32
call eax
cmp ebp, 7
mov eax, dword [esp + 0x20]
je 0x1029eaa1
ja 0x1029e8b3
cmp ebp, 5
je 0x1029e9d0
cmp ebp, 6
jne 0x1029ea7d
mov edx, dword [esp + 0x18]
mov ebp, dword [edx]
mov ecx, dword [edx + 4]
cmp esi, 0x40
jbe 0x1029e22b
mov dword [esp + 0x20], ecx
mov dword [esp + 8], 0x32e
mov dword [esp + 4], str.zstd_lib_compress_zstd_compress_internal.h
mov dword [esp], str.h___64
call eax
mov ecx, dword [esp + 0x20]
jmp 0x1029e22b
cmp ebp, 8
jne 0x1029ea7d
mov edx, dword [esp + 0x18]
mov ebp, dword [edx]
mov ecx, dword [edx + 4]
cmp esi, 0x40
jbe 0x1029e26a
mov dword [esp + 0x20], ecx
mov dword [esp + 8], 0x338
mov dword [esp + 4], str.zstd_lib_compress_zstd_compress_internal.h
mov dword [esp], str.h___64
call eax
mov ecx, dword [esp + 0x20]
jmp 0x1029e26a
mov dword [esp + 8], 0x1dc
mov dword [esp + 4], str.zstd_lib_compress_zstd_opt.c
mov dword [esp], str.curr___target
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x1029e375
mov dword [esp + 8], 0x223
mov dword [esp + 4], str.zstd_lib_compress_zstd_opt.c
mov dword [esp], str.matchEndIdx___curr__8
call dword [sym.imp.msvcrt.dll__assert]
add esp, 0x9c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [esp + 0x78]
lea ebx, [ecx + 4]
mov dword [esp + 0x60], ebx
add edx, 4
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x50]
cmp ebx, edx
jae 0x1029e76a
mov edx, dword [esp + 0x64]
mov edx, dword [edx]
mov dword [esp + 0x6c], edx
mov edx, dword [ebx]
cmp dword [esp + 0x6c], edx
je 0x1029ea60
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0x6c]
xor ebx, edx
xor edx, edx
tzcnt edx, ebx
mov ebx, dword [esp + 0x60]
shr edx, 3
add ebx, edx
sub ebx, ecx
add eax, ebx
jmp 0x1029e5e5
mov ebp, dword [edx]
mov ecx, dword [edx + 4]
imul eax, ebp, 0xcf1bbcdc
imul ecx, ecx, 0xbb000000
add ecx, eax
mov eax, 0xbb000000
jmp 0x1029e23e
mov edx, dword [esp + 0x18]
mov ebp, dword [edx]
mov ecx, dword [edx + 4]
cmp esi, 0x40
jbe 0x1029e9b5
mov dword [esp + 0x20], ecx
mov dword [esp + 8], 0x329
mov dword [esp + 4], str.zstd_lib_compress_zstd_compress_internal.h
mov dword [esp], str.h___64
call eax
mov ecx, dword [esp + 0x20]
jmp 0x1029e9b5
add dword [esp + 0x60], 2
add dword [esp + 0x64], 2
jmp 0x1029e785
lea eax, [esp + 0x8c]
mov ebx, dword [esp + 0x7c]
mov dword [esp + 0x4c], eax
jmp 0x1029e4be
lea eax, [esp + 0x8c]
mov ebx, dword [esp + 0x7c]
mov dword [esp + 0x48], eax
jmp 0x1029e4be
mov ebp, dword [edx]
mov ecx, dword [edx + 4]
imul eax, ebp, 0xcf1bbcdc
imul ecx, ecx, 0xbfa56300
add ecx, eax
mov eax, 0xbfa56300
jmp 0x1029e23e
mov edx, dword [esp + 0x50]
add ebx, 4
add dword [esp + 0x64], 4
cmp ebx, edx
jb 0x1029e96e
mov dword [esp + 0x60], ebx
jmp 0x1029e76a
mov edx, dword [esp + 0x18]
mov ebp, dword [edx]
mov dword [esp + 8], 0x324
mov dword [esp + 4], str.zstd_lib_compress_zstd_compress_internal.h
mov dword [esp], str.h___32
call eax
jmp 0x1029e284
mov edx, dword [esp + 0x18]
mov ebp, dword [edx]
mov ecx, dword [edx + 4]
cmp esi, 0x40
jbe 0x1029ea45
mov dword [esp + 0x20], ecx
mov dword [esp + 8], 0x333
mov dword [esp + 4], str.zstd_lib_compress_zstd_compress_internal.h
mov dword [esp], str.h___64
call eax
mov ecx, dword [esp + 0x20]
jmp 0x1029ea45
mov eax, dword [esp + 0x48]
mov ebx, 1
mov dword [eax + 4], 0
mov dword [eax], 0
jmp 0x1029e4fa