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

Disassembly:
push ebp
mov ebp, ecx
push edi
push esi
mov esi, edx
push ebx
sub esp, 0xac
mov dword [esp + 0x3c], eax
mov eax, dword [ecx]
mov edi, dword [esp + 0xc0]
mov dword [esp + 0x64], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x60], eax
mov eax, dword [ecx + 8]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0xd8]
test eax, eax
jne 0x1028e1c8
cmp dword [esp + 0xc8], 2
jbe 0x1028e018
mov eax, dword [esp + 0x3c]
mov edx, dword [esi + 4]
mov dword [esp + 0x48], 1
mov edi, dword [eax + 8]
mov ecx, dword [eax + 0x938]
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0xc8]
mov dword [esp + 0x68], ecx
sub edi, 3
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0xc4]
add edi, 3
mov dword [esp + 0x34], edi
mov edi, dword [eax + 0x854]
mov dword [esp + 0x40], edi
mov edi, dword [eax + 0x850]
mov eax, dword [eax + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esi]
sub edx, eax
mov dword [esp + 0x6c], eax
mov eax, dword [esi + 0x18]
mov dword [esp + 0x58], edx
mov dword [esp + 0x70], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x74], eax
mov eax, dword [esi + 0x14]
mov dword [esp + 0x78], eax
lea eax, [ecx + 0xd4]
mov ecx, dword [esi + 8]
mov dword [esp + 0x4c], eax
mov eax, dword [esi + 0xc]
sub eax, ecx
sar edx, 3
mov dword [esp + 0x54], eax
mov dword [esp + 0x44], edx
jne 0x1028e030
mov ebx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
mov eax, dword [ebx + 0xf8]
cmp eax, 1
je 0x1028e530
cmp eax, 2
je 0x1028e050
test eax, eax
je 0x1028dfe3
mov dword [esp + 0x7c], ecx
mov dword [esp + 8], 0x264
mov dword [esp + 4], 0x1044a408
mov dword [esp], 0x1044ad92
call dword [sym.imp.msvcrt.dll__assert]
mov edx, dword [ebx + 0xd4]
mov ecx, dword [esp + 0x7c]
xor eax, eax
cmp edx, 1
jne 0x1028e055
mov eax, dword [esp + 0x3c]
mov ebx, dword [eax + 0xd0]
xor eax, eax
test ebx, ebx
setne al
jmp 0x1028e055
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0xd0]
jae 0x1028e462
lea esi, [esi]
mov ebx, 0xffffffba
add esp, 0xac
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, edx
xor edx, edx
div ebx
cmp eax, 0x13
seta al
movzx eax, al
mov dword [esp + 0x48], eax
jmp 0x1028df94
mov eax, 1
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x40]
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x28], ebx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x18], edi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x14], 0x2204
mov dword [esp + 8], ecx
mov dword [esp], eax
call fcn.1028d6c0
mov ebx, eax
cmp eax, 0xffffff88
ja 0x1028e448
cmp dword [esp + 0x30], eax
jb 0x1028e640
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
sub edx, ebx
add eax, ebx
cmp edx, 3
jle 0x1028e000
cmp dword [esp + 0x58], 0x3f8
jbe 0x1028e518
cmp dword [esp + 0x58], 0x3f7f8
ja 0x1028e8f0
mov ebx, dword [esp + 0x44]
add eax, 2
mov edx, ebx
mov byte [eax - 1], bl
shr edx, 8
add edx, 0xffffff80
mov byte [eax - 2], dl
mov ebx, eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xc4]
add eax, dword [esp + 0xc8]
mov dword [esp + 0x58], eax
cmp eax, ebx
jb 0x1028e7d0
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
add eax, 0x408
mov dword [esp + 0x54], eax
lea eax, [edi + 0x408]
test edx, edx
je 0x1028e668
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x68]
mov dword [esp], eax
mov edx, esi
mov edi, dword [esp + 0x48]
mov dword [esp + 0x1c], 0x2204
lea eax, [esp + 0x88]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x58]
add edi, 1
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0xc], ebx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 8], edi
call fcn.1023f990
mov ebx, dword [esp + 0x94]
cmp ebx, 0xffffff88
jbe 0x1028e7f8
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0xd0]
jb 0x1028e01d
cmp ebx, 0xffffffba
je 0x1028e462
jmp 0x1028e01d
mov edx, dword [edx + 4]
mov eax, dword [esi]
mov ecx, edx
sub ecx, eax
sar ecx, 3
cmp dword [esi + 0x24], 1
mov dword [esp + 0x48], ecx
mov dword [esp + 0x40], ecx
jne 0x1028e1e9
mov ebx, dword [esi + 0x28]
mov dword [esp + 0x40], ebx
cmp edx, eax
je 0x1028deec
mov ebx, dword [sym.imp.msvcrt.dll__assert]
xor ecx, ecx
mov dword [esp + 0x4c], esi
mov esi, ecx
mov dword [esp + 0x54], ebx
jmp 0x1028e24f
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
add ebx, eax
cmp dword [esp + 0x38], 2
ja 0x1028e380
test ebx, ebx
je 0x1028e23a
mov eax, dword [edi]
lea edx, [eax - 1]
cmp ebx, 3
jne 0x1028e3a7
mov ecx, dword [edi + 4]
mov dword [edi + 8], ecx
mov dword [edi + 4], eax
mov dword [edi], edx
mov eax, dword [esp + 0x48]
add esi, 1
cmp esi, eax
jae 0x1028e305
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
lea ecx, [eax + esi*8]
cmp word [ecx + 4], 0
mov ebx, dword [ecx]
sete dl
cmp dword [esp + 0x40], esi
setne al
and edx, eax
movzx eax, dl
mov byte [esp + 0x44], al
mov dword [esp + 0x30], eax
test ebx, ebx
je 0x1028e310
lea eax, [ebx - 1]
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
cmp eax, 2
ja 0x1028e3f8
mov edx, dword [esp + 0x30]
add edx, eax
cmp edx, 3
je 0x1028e620
mov eax, dword [ebp + edx*4]
mov edx, dword [edi + edx*4]
mov dword [esp + 0x50], eax
cmp edx, eax
je 0x1028e410
test edx, edx
je 0x1028e5e8
add edx, 3
mov dword [ecx], edx
cmp edx, 3
jbe 0x1028e348
mov eax, dword [ebp + 4]
sub edx, 3
mov dword [ebp + 8], eax
mov eax, dword [ebp]
mov dword [ebp], edx
mov dword [ebp + 4], eax
lea eax, [ebx - 1]
mov dword [esp + 0x34], eax
cmp ebx, 3
jbe 0x1028e208
sub ebx, 3
mov eax, dword [edi + 4]
add esi, 1
mov dword [edi + 8], eax
mov eax, dword [edi]
mov dword [edi], ebx
mov dword [edi + 4], eax
mov eax, dword [esp + 0x48]
cmp esi, eax
jb 0x1028e249
mov esi, dword [esp + 0x4c]
jmp 0x1028deec
mov dword [esp + 0x34], ecx
mov dword [esp + 8], 0xf4f
mov dword [esp + 4], str.zstd_lib_compress_zstd_compress.c
mov dword [esp], str.offBase___0
call dword [sym.imp.msvcrt.dll__assert]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x38], 0xffffffff
mov edx, dword [ecx]
cmp edx, 3
ja 0x1028e2c4
mov eax, dword [esp + 0x30]
lea ecx, [edx - 1]
sub eax, 1
cmp ecx, 2
ja 0x1028e3c0
add edx, eax
je 0x1028e2d6
mov eax, dword [ebp]
lea ecx, [eax - 1]
cmp edx, 3
jne 0x1028e42f
mov edx, dword [ebp + 4]
mov dword [ebp + 8], edx
mov dword [ebp + 4], eax
mov dword [ebp], ecx
jmp 0x1028e2d6
mov dword [esp + 8], 0x2d5
mov dword [esp + 4], 0x1044a408
mov dword [esp], 0x1044a6e9
call dword [sym.imp.msvcrt.dll__assert]
test ebx, ebx
je 0x1028e23a
mov eax, dword [edi]
mov edx, dword [edi + ebx*4]
cmp ebx, 1
jne 0x1028e22f
mov ecx, dword [edi + 8]
jmp 0x1028e232
mov dword [esp + 8], 0x2d5
mov eax, dword [esp + 0x54]
mov dword [esp + 4], 0x1044a408
mov dword [esp], 0x1044a6e9
call eax
cmp byte [esp + 0x44], 0
jne 0x1028e2d6
mov ecx, dword [ebp - 4]
mov eax, dword [ebp]
jmp 0x1028e36e
mov eax, dword [ebp + 4]
sub ebx, 3
mov dword [ebp + 8], eax
mov eax, dword [ebp]
mov dword [ebp], ebx
mov dword [ebp + 4], eax
jmp 0x1028e2e9
mov eax, dword [esp + 0x30]
lea edx, [eax + ebx - 1]
test edx, edx
je 0x1028e208
mov eax, dword [ebp]
lea ecx, [eax - 1]
cmp edx, 3
je 0x1028e36e
mov ecx, dword [ebp + edx*4]
cmp edx, 1
jne 0x1028e36e
mov edx, dword [ebp + 8]
jmp 0x1028e371
cmp ebx, 0xffffffba
jne 0x1028e01d
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0xd0]
jb 0x1028e01d
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x2dc]
mov esi, dword [eax + 0x2cc]
test ecx, ecx
jne 0x1028e540
xor ebx, ebx
mov edx, dword [esp + 0xd0]
mov eax, dword [esp + 0xcc]
call fcn.1029eb70
test eax, eax
jne 0x1028e910
test esi, esi
jne 0x1028e748
test ebx, ebx
je 0x1028e548
cmp ebx, 1
jne 0x1028e78f
mov eax, dword [esp + 0xcc]
cmp dword [esp + 0xc8], 3
movzx ecx, byte [eax]
je 0x1028e018
mov eax, dword [esp + 0xd4]
mov esi, dword [esp + 0xd0]
mov ebx, 4
mov edi, dword [esp + 0xc4]
movzx edx, word [0x1044c434]
lea eax, [eax + esi*8 + 2]
mov word [edi], ax
shr eax, 0x10
mov dl, al
mov eax, dword [esp + 0x64]
mov dh, cl
mov word [edi + 2], dx
mov dword [ebp], eax
mov eax, dword [esp + 0x60]
mov dword [ebp + 4], eax
mov eax, dword [esp + 0x5c]
mov dword [ebp + 8], eax
jmp 0x1028e5bb
movzx ecx, byte [esp + 0x44]
lea ebx, [eax + 1]
mov dword [esp + 0x48], ebx
mov byte [eax], cl
jmp 0x1028e10a
xor eax, eax
jmp 0x1028e055
test esi, esi
jne 0x1028e748
mov eax, dword [esp + 0xd0]
lea ebx, [eax + 3]
cmp dword [esp + 0xc8], ebx
jb 0x1028e018
mov esi, eax
mov eax, dword [esp + 0xd4]
mov edi, dword [esp + 0xc4]
lea eax, [eax + esi*8]
mov word [edi], ax
shr eax, 0x10
mov byte [edi + 2], al
mov eax, dword [esp + 0xd0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
cmp ebx, 0xffffff88
ja 0x1028e01d
mov eax, dword [esp + 0x64]
mov dword [ebp], eax
mov eax, dword [esp + 0x60]
mov dword [ebp + 4], eax
mov eax, dword [esp + 0x5c]
mov dword [ebp + 8], eax
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x850]
cmp dword [eax + 0x11dc], 2
jne 0x1028e01d
mov dword [eax + 0x11dc], 1
jmp 0x1028e01d
mov dword [esp + 0x34], ecx
mov dword [esp + 8], 0xf58
mov dword [esp + 4], str.zstd_lib_compress_zstd_compress.c
mov dword [esp], str._cRawOffset__0
call dword [sym.imp.msvcrt.dll__assert]
mov ecx, dword [esp + 0x34]
mov edx, 3
mov dword [ecx], 3
jmp 0x1028e348
mov eax, dword [ebp]
sub eax, 1
mov dword [esp + 0x50], eax
mov eax, dword [edi]
lea edx, [eax - 1]
mov eax, dword [esp + 0x50]
jmp 0x1028e2a6
mov dword [esp + 8], 0xb40
mov dword [esp + 4], str.zstd_lib_compress_zstd_compress.c
mov dword [esp], str.cSize___dstCapacity
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x1028e0be
mov edx, dword [edi + 0x408]
mov edi, dword [esp + 0x40]
mov dword [edi + 0x408], edx
add edi, 0x40c
mov edx, dword [eax + 0xddc]
mov esi, dword [esp + 0x54]
and edi, 0xfffffffc
mov dword [esi + 0xddc], edx
sub esi, edi
mov ecx, esi
sub eax, esi
add ecx, 0xde0
mov esi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ebx, dword [esp + 0x48]
mov eax, dword [esp + 0x34]
sub ebx, eax
test ebx, ebx
je 0x1028e462
cmp ebx, 0xffffffba
jne 0x1028e6cc
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0xd0]
jae 0x1028e462
cmp ebx, 0xffffff88
ja 0x1028e01d
mov eax, dword [esp + 0x3c]
mov ecx, 7
mov edx, dword [eax + 0xd4]
mov eax, 0x6b
cmp edx, ecx
cmovae ecx, edx
lea esi, [ecx - 1]
call fcn.102404b0
test eax, eax
je 0x1028e940
mov eax, dword [esp + 0xd0]
mov edx, dword [esp + 0xd0]
mov ecx, esi
sub eax, 2
shr edx, cl
sub eax, edx
cmp ebx, eax
jae 0x1028e462
cmp ebx, 0x1ffff
ja 0x1028e962
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0x2dc]
mov esi, dword [eax + 0x2cc]
test edx, edx
je 0x1028e778
test esi, esi
je 0x1028e4a7
lea esi, [esi]
mov esi, dword [esp + 0x3c]
xor ebx, ebx
mov eax, esi
call fcn.102931b0
mov eax, dword [esi + 0x850]
mov edx, dword [esi + 0x854]
mov dword [esi + 0x854], eax
mov dword [esi + 0x850], edx
jmp 0x1028e01d
cmp ebx, 0x18
jbe 0x1028e47c
mov eax, dword [esp + 0x3c]
mov esi, dword [eax + 0x2cc]
test esi, esi
jne 0x1028e748
mov esi, dword [esp + 0x3c]
mov eax, dword [esi + 0x850]
mov edx, dword [esi + 0x854]
mov dword [esi + 0x854], eax
mov eax, dword [esp + 0xd4]
mov dword [esi + 0x850], edx
mov esi, dword [esp + 0xc4]
lea eax, [eax + ebx*8 + 4]
add ebx, 3
mov word [esi], ax
shr eax, 0x10
mov byte [esi + 2], al
jmp 0x1028e5bb
mov dword [esp + 8], 0xb52
mov dword [esp + 4], str.zstd_lib_compress_zstd_compress.c
mov dword [esp], str.op___oend
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x1028e124
movzx eax, byte [esp + 0x88]
movzx edx, byte [esp + 0x8c]
add edi, ebx
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x40]
shl edx, 4
shl eax, 6
add eax, edx
mov edx, dword [esp + 0x90]
lea eax, [eax + edx*4]
mov byte [esi], al
mov eax, dword [esp + 0x50]
mov dword [esp], edi
mov esi, dword [esp + 0x98]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x1c], eax
lea eax, [ecx + 0xcb8]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0xc], eax
lea eax, [ecx + 0x70c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x58]
sub eax, edi
mov dword [esp + 4], eax
call fcn.10297250
mov ebx, eax
cmp eax, 0xffffff88
ja 0x1028e448
add edi, eax
cmp dword [esp + 0x58], edi
jb 0x1028e91d
test esi, esi
je 0x1028e8e0
lea eax, [esi + ebx]
cmp eax, 3
ja 0x1028e8e0
je 0x1028e462
mov dword [esp + 8], 0xb7b
mov dword [esp + 4], str.zstd_lib_compress_zstd_compress.c
mov dword [esp], str.lastCountSize__bitstreamSize__3
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x1028e462
mov eax, dword [esp + 0x34]
sub edi, eax
mov ebx, edi
jmp 0x1028e6ae
movzx ebx, word [esp + 0x44]
mov byte [eax], 0xff
add eax, 3
lea edx, [ebx - 0x7f00]
mov word [eax - 2], dx
mov ebx, eax
mov dword [esp + 0x48], eax
jmp 0x1028e10a
test esi, esi
je 0x1028e4b0
jmp 0x1028e748
mov dword [esp + 8], 0xb70
mov dword [esp + 4], str.zstd_lib_compress_zstd_compress.c
mov dword [esp], str.op___oend
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x1028e8a9
mov dword [esp + 8], 0x258
mov dword [esp + 4], 0x1044a408
mov dword [esp], 0x1044ba48
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x1028e6fe
mov dword [esp + 8], 0xba7
mov dword [esp + 4], str.zstd_lib_compress_zstd_compress.c
mov dword [esp], str.cSize___ZSTD_BLOCKSIZE_MAX
call dword [sym.imp.msvcrt.dll__assert]
mov eax, dword [esp + 0x3c]
mov edi, dword [eax + 0x2dc]
test edi, edi
je 0x1028e781
mov eax, dword [eax + 0x2cc]
test eax, eax
je 0x1028e78f
jmp 0x1028e748