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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x188
mov rbx, rcx
mov qword [rsp + 0x1d8], rdx
lea rcx, str.MAX_4__MIN_6__ms__cParams.minMatch____4
lea rdx, str.zstd_lib_compress_zstd_lazy.c
cmp dword [rbx + 0x110], 4
mov qword [rsp + 0x1e0], r8
mov r8d, 0x574
mov qword [rsp + 0x1e8], r9
ja 0x1401aa968
cmp dword [rbx + 0x10c], 5
ja 0x1401aa96e
mov r8d, 0x574
lea rdx, str.zstd_lib_compress_zstd_lazy.c
lea rcx, str.MAX_4__MIN_6__ms__cParams.searchLog____6
call qword [sym.imp.msvcrt.dll__assert]
mov rax, qword [rbx + 0x38]
mov rdi, qword [rsp + 0x1d8]
mov ecx, dword [rbx + 0x100]
mov edx, dword [rbx + 0x1c]
mov qword [rsp + 0x28], rax
mov eax, dword [rbx + 0x34]
mov dword [rsp + 0x3c], edx
mov r13, qword [rbx + 0x70]
mov dword [rsp + 0x48], eax
mov rax, qword [rbx + 8]
mov qword [rsp + 0x30], rax
mov eax, dword [rbx + 0x18]
mov dword [rsp + 0x78], eax
mov rax, qword [rsp + 0x30]
sub rdi, rax
mov eax, 1
shl eax, cl
mov ecx, edi
mov dword [rsp + 0x4c], edi
sub ecx, edx
cmp eax, ecx
jae 0x1401aa9ca
mov esi, edi
sub esi, eax
mov dword [rsp + 0x3c], esi
cmp dword [rbx + 0x28], 0
mov rax, qword [rbx + 0x60]
cmove edx, dword [rsp + 0x3c]
cmp dword [rbx + 0x12c], 0
mov qword [rsp + 0x60], rax
mov dword [rsp + 0x3c], edx
jne 0x1401aade3
lea rax, [rbx + 0x40]
mov esi, dword [rbx + 0x2c]
mov qword [rsp + 0x40], rax
mov eax, edi
sub eax, esi
cmp eax, 0x180
jbe 0x1401aac35
lea eax, [rsi + 0x60]
mov dword [rsp + 0x58], eax
mov rax, qword [rsp + 0x30]
lea r12, [rax + rsi]
mov eax, dword [rsp + 0x48]
add eax, 8
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x58]
mov r14d, esi
cmp esi, eax
jae 0x1401aab6d
cmp dword [rsp + 0x50], 0x20
mov r8, qword [rbx + 0x60]
lea rcx, [r12 + 8]
jbe 0x1401aaa5b
mov r8d, 0x353
lea rdx, [0x14035f6a0]
lea rcx, [0x14035f7d9]
jmp 0x1401aa968
mov edx, dword [rsp + 0x50]
call fcn.1401dd2c0
mov r11, qword [rsp + 0x28]
mov rdx, rax
shr eax, 8
shl eax, 6
lea rcx, [rax*4]
prefetcht0 byte [r11 + rax + 0x20]
lea r8, [r13 + rcx]
prefetcht0 byte [r13 + rcx + 0x40]
mov rcx, qword [rsp + 0x28]
prefetcht0 byte [r8]
add rcx, rax
and r8d, 0x3f
prefetcht0 byte [rcx]
je 0x1401aaab9
mov r8d, 0x32e
lea rdx, str.zstd_lib_compress_zstd_lazy.c
lea rcx, str.ZSTD_isAligned_hashTable__relRow__64_
jmp 0x1401aa968
and cl, 0x3f
je 0x1401aaad7
mov r8d, 0x32f
lea rdx, str.zstd_lib_compress_zstd_lazy.c
lea rcx, str.ZSTD_isAligned_tagTable__relRow___size_t_1____rowLog_
jmp 0x1401aa968
mov rcx, qword [rsp + 0x40]
mov eax, r14d
and eax, 7
lea rax, [rcx + rax*4]
mov rcx, r12
mov r10d, dword [rax]
mov dword [rax], edx
mov rax, qword [rsp + 0x28]
mov edx, dword [rsp + 0x50]
mov r15d, r10d
mov dword [rsp + 0x70], r10d
shr r15d, 8
shl r15d, 6
lea r9, [rax + r15]
movzx ebp, byte [r9]
mov qword [rsp + 0x68], r9
dec ebp
and ebp, 0x3f
cmp ebp, 1
sbb eax, eax
inc r12
inc rsi
and eax, 0x3f
add ebp, eax
mov byte [r9], bpl
mov r8d, dword [rbx + 0x60]
call fcn.1401dd2c0
mov edx, dword [rsp + 0x70]
mov r9, qword [rsp + 0x68]
cmp rdx, rax
je 0x1401aab5c
mov r8d, 0x375
lea rdx, str.zstd_lib_compress_zstd_lazy.c
lea rcx, str.hash__ZSTD_hashPtrSalted_base__updateStartIdx__hashLog__ZSTD_ROW_HASH_TAG_BITS__mls__ms__hashSalt_
jmp 0x1401aa968
add r15, rbp
mov byte [r9 + rbp], dl
mov dword [r13 + r15*4], r14d
jmp 0x1401aaa23
mov rcx, qword [rsp + 0x30]
lea ebp, [rdi - 0x20]
mov r15, qword [rbx + 0x70]
xor r12d, r12d
mov rax, qword [rsp + 0x1d8]
mov rsi, rbp
mov r9, qword [rbx + 0x38]
add rbp, rcx
lea rdx, [rax + 1]
mov eax, dword [rbx + 0x34]
cmp rdx, rbp
jb 0x1401aaba1
sub rdx, rbp
lea r12d, [rdx + 1]
mov edx, 8
mov r14d, esi
cmp r12d, edx
cmova r12d, edx
add eax, 8
mov dword [rsp + 0x50], eax
add r12d, esi
cmp r14d, r12d
jae 0x1401aac35
cmp dword [rsp + 0x50], 0x20
mov r8, qword [rbx + 0x60]
mov qword [rsp + 0x58], r9
ja 0x1401aaa42
mov edx, dword [rsp + 0x50]
mov rcx, rbp
call fcn.1401dd2c0
mov r9, qword [rsp + 0x58]
mov rdx, rax
shr eax, 8
shl eax, 6
lea rcx, [rax*4]
prefetcht0 byte [r9 + rax + 0x20]
lea r8, [r15 + rcx]
prefetcht0 byte [r15 + rcx + 0x40]
lea rcx, [r9 + rax]
prefetcht0 byte [r8]
and r8d, 0x3f
prefetcht0 byte [rcx]
jne 0x1401aaaa0
inc rbp
and cl, 0x3f
jne 0x1401aaabe
mov eax, r14d
inc r14d
and eax, 7
mov dword [rbx + rax*4 + 0x40], edx
jmp 0x1401aabba
mov r8d, 0x397
lea rdx, str.zstd_lib_compress_zstd_lazy.c
lea rcx, str.target___idx
cmp edi, esi
jb 0x1401aa968
mov rax, qword [rbx + 8]
mov r14, qword [rbx + 0x70]
mov r15, qword [rbx + 0x38]
add rax, rsi
mov qword [rsp + 0x50], rax
mov eax, dword [rbx + 0x34]
add eax, 8
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x4c]
mov dword [rsp + 0x68], esi
cmp esi, eax
jae 0x1401aad63
mov rax, qword [rsp + 0x50]
cmp dword [rsp + 0x58], 0x20
mov r8, qword [rbx + 0x60]
lea rcx, [rax + 8]
ja 0x1401aaa42
mov edx, dword [rsp + 0x58]
call fcn.1401dd2c0
mov rdx, rax
shr eax, 8
shl eax, 6
lea rcx, [rax*4]
prefetcht0 byte [r15 + rax + 0x20]
lea r8, [r14 + rcx]
prefetcht0 byte [r14 + rcx + 0x40]
lea rcx, [r15 + rax]
prefetcht0 byte [r8]
and r8d, 0x3f
prefetcht0 byte [rcx]
jne 0x1401aaaa0
and cl, 0x3f
jne 0x1401aaabe
mov eax, dword [rsp + 0x68]
mov rcx, qword [rsp + 0x40]
and eax, 7
lea rax, [rcx + rax*4]
mov rcx, qword [rsp + 0x50]
mov r11d, dword [rax]
mov dword [rax], edx
mov edx, dword [rsp + 0x58]
mov r12d, r11d
mov dword [rsp + 0x7c], r11d
shr r12d, 8
shl r12d, 6
lea r10, [r15 + r12]
movzx ebp, byte [r10]
mov qword [rsp + 0x70], r10
dec ebp
and ebp, 0x3f
cmp ebp, 1
sbb eax, eax
inc rsi
and eax, 0x3f
add ebp, eax
mov byte [r10], bpl
mov r8d, dword [rbx + 0x60]
call fcn.1401dd2c0
mov edx, dword [rsp + 0x7c]
inc qword [rsp + 0x50]
cmp rdx, rax
jne 0x1401aab43
mov r10, qword [rsp + 0x70]
mov eax, dword [rsp + 0x68]
add r12, rbp
mov byte [r10 + rbp], dl
mov dword [r14 + r12*4], eax
jmp 0x1401aac6f
mov edx, dword [rsp + 0x48]
mov rsi, qword [rsp + 0x30]
mov eax, edi
mov dword [rbx + 0x2c], edi
add edx, 8
lea rcx, [rsi + rax + 8]
cmp edx, 0x20
ja 0x1401aaa42
mov r8d, dword [rsp + 0x60]
call fcn.1401dd2c0
mov rsi, qword [rsp + 0x28]
mov rdx, rax
shr eax, 8
shl eax, 6
lea rcx, [rax*4]
prefetcht0 byte [rsi + rax + 0x20]
lea r8, [r13 + rcx]
prefetcht0 byte [r13 + rcx + 0x40]
lea rcx, [rsi + rax]
prefetcht0 byte [r8]
and r8d, 0x3f
prefetcht0 byte [rcx]
jne 0x1401aaaa0
and cl, 0x3f
jne 0x1401aaabe
mov rax, qword [rsp + 0x40]
and edi, 7
lea rax, [rax + rdi*4]
mov r9d, dword [rax]
mov dword [rax], edx
jmp 0x1401aae0b
mov edx, dword [rsp + 0x48]
add edx, 8
cmp edx, 0x20
ja 0x1401aaa42
mov r8d, dword [rsp + 0x60]
mov rcx, qword [rsp + 0x1d8]
call fcn.1401dd2c0
mov dword [rbx + 0x2c], edi
mov r9d, eax
mov r8d, r9d
mov rax, qword [rsp + 0x28]
add dword [rbx + 0x68], r9d
movd xmm0, r9d
shr r8d, 8
punpcklbw xmm0, xmm0
shl r8d, 6
punpcklwd xmm0, xmm0
add rax, r8
lea r10, [r13 + r8*4]
pshufd xmm0, xmm0, 0
mov bpl, byte [rax]
mov r8, rax
xor eax, eax
mov qword [rsp + 0x80], rax
mov edx, ebp
mov r11d, ebp
mov qword [rsp + 0x88], rax
xor eax, eax
and edx, 0x3f
and r11d, 0x3f
mov rcx, rax
shl rcx, 4
movups xmm1, xmmword [r8 + rcx]
pcmpeqb xmm1, xmm0
pmovmskb ecx, xmm1
mov dword [rsp + rax*4 + 0x80], ecx
inc rax
cmp rax, 4
jne 0x1401aae5f
movsxd rcx, dword [rsp + 0x8c]
movsxd rax, dword [rsp + 0x88]
xor edi, edi
mov esi, 0x40
shl rcx, 0x30
shl rax, 0x20
or rax, rcx
movsxd rcx, dword [rsp + 0x80]
or rax, rcx
movsxd rcx, dword [rsp + 0x84]
shl rcx, 0x10
or rax, rcx
mov ecx, edx
ror rax, cl
mov rcx, rax
test rcx, rcx
jne 0x1401aaf01
lea eax, [rbp + 0x3f]
mov ebp, 3
and eax, 0x3f
cmp eax, 1
sbb edx, edx
xor r13d, r13d
and edx, 0x3f
add eax, edx
mov byte [r8], al
mov byte [r8 + rax], r9b
mov edx, dword [rbx + 0x2c]
lea ecx, [rdx + 1]
mov dword [rbx + 0x2c], ecx
mov dword [r10 + rax*4], edx
mov eax, dword [rsp + 0x4c]
lea ebx, [rax + 3]
jmp 0x1401aaf7c
test esi, esi
je 0x1401aaecc
call fcn.1401d9c00
add eax, r11d
and eax, 0x3f
mov edx, eax
mov edx, dword [r10 + rdx*4]
je 0x1401aaf57
cmp rdi, 0x3f
jbe 0x1401aaf37
mov r8d, 0x4bb
lea rdx, str.zstd_lib_compress_zstd_lazy.c
lea rcx, str.numMatches___rowEntries
jmp 0x1401aa968
mov eax, dword [rsp + 0x3c]
cmp edx, eax
jb 0x1401aaecc
mov r14, qword [rsp + 0x30]
mov eax, edx
dec esi
prefetcht0 byte [r14 + rax]
mov dword [rsp + rdi*4 + 0x80], edx
inc rdi
lea rax, [rcx - 1]
and rcx, rax
jmp 0x1401aaec7
mov rax, qword [rsp + 0x1d8]
mov eax, dword [rax + rbp - 3]
cmp dword [rdx + rbp - 3], eax
je 0x1401ab002
inc r13
cmp rdi, r13
je 0x1401ab048
mov r12d, dword [rsp + r13*4 + 0x80]
mov eax, dword [rsp + 0x4c]
cmp r12d, eax
jb 0x1401aafaf
mov r8d, 0x4d3
lea rdx, str.zstd_lib_compress_zstd_lazy.c
lea rcx, [0x14035f8d0]
jmp 0x1401aa968
mov eax, dword [rsp + 0x3c]
cmp r12d, eax
jae 0x1401aafd1
mov r8d, 0x4d4
lea rdx, str.zstd_lib_compress_zstd_lazy.c
lea rcx, str.matchIndex___lowLimit
jmp 0x1401aa968
mov rax, qword [rsp + 0x30]
mov edx, r12d
add rdx, rax
mov eax, dword [rsp + 0x78]
cmp r12d, eax
jae 0x1401aaf63
mov r8d, 0x4d8
lea rdx, str.zstd_lib_compress_zstd_lazy.c
lea rcx, str.matchIndex___dictLimit
jmp 0x1401aa968
mov r8, qword [rsp + 0x1e0]
mov rcx, qword [rsp + 0x1d8]
call fcn.1401d9970
cmp rbp, rax
jae 0x1401aaf79
mov rcx, qword [rsp + 0x1e8]
mov edx, ebx
sub edx, r12d
mov qword [rcx], rdx
mov rdx, qword [rsp + 0x1d8]
add rdx, rax
cmp r8, rdx
je 0x1401ab04b
mov rbp, rax
jmp 0x1401aaf79
mov rax, rbp
mov r8d, 0x4ec
lea rdx, str.zstd_lib_compress_zstd_lazy.c
lea rcx, str.nbAttempts____1U____ZSTD_SEARCHLOG_MAX_
cmp esi, 0x40000000
ja 0x1401aa968
add rsp, 0x188
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret