Function at 0x14036e110
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____6
lea rdx, str.zstd_lib_compress_zstd_lazy.c
cmp dword [rbx + 0x110], 5
mov qword [rsp + 0x1e0], r8
mov r8d, 0x574
mov qword [rsp + 0x1e8], r9
jbe 0x14036e178
cmp dword [rbx + 0x10c], 5
ja 0x14036e17e
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 0x14036e1da
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 0x14036e5f2
lea rax, [rbx + 0x40]
mov esi, dword [rbx + 0x2c]
mov qword [rsp + 0x40], rax
mov eax, edi
sub eax, esi
cmp eax, 0x180
jbe 0x14036e445
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 0x14036e37d
cmp dword [rsp + 0x50], 0x20
mov r8, qword [rbx + 0x60]
lea rcx, [r12 + 8]
jbe 0x14036e26b
mov r8d, 0x353
lea rdx, [0x140623ba0]
lea rcx, [0x140623cd9]
jmp 0x14036e178
mov edx, dword [rsp + 0x50]
call fcn.1403adef0
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 r8b, 0x3f
prefetcht0 byte [rcx]
je 0x14036e2c9
mov r8d, 0x32e
lea rdx, str.zstd_lib_compress_zstd_lazy.c
lea rcx, str.ZSTD_isAligned_hashTable__relRow__64_
jmp 0x14036e178
and cl, 0x3f
je 0x14036e2e7
mov r8d, 0x32f
lea rdx, str.zstd_lib_compress_zstd_lazy.c
lea rcx, str.ZSTD_isAligned_tagTable__relRow___size_t_1____rowLog_
jmp 0x14036e178
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 r8, qword [rbx + 0x60]
call fcn.1403adef0
mov edx, dword [rsp + 0x70]
mov r9, qword [rsp + 0x68]
cmp rdx, rax
je 0x14036e36c
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 0x14036e178
add r15, rbp
mov byte [r9 + rbp], dl
mov dword [r13 + r15*4], r14d
jmp 0x14036e233
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 0x14036e3b1
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 0x14036e445
cmp dword [rsp + 0x50], 0x20
mov r8, qword [rbx + 0x60]
mov qword [rsp + 0x58], r9
ja 0x14036e252
mov edx, dword [rsp + 0x50]
mov rcx, rbp
call fcn.1403adef0
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 r8b, 0x3f
prefetcht0 byte [rcx]
jne 0x14036e2b0
inc rbp
and cl, 0x3f
jne 0x14036e2ce
mov eax, r14d
inc r14d
and eax, 7
mov dword [rbx + rax*4 + 0x40], edx
jmp 0x14036e3ca
mov r8d, 0x397
lea rdx, str.zstd_lib_compress_zstd_lazy.c
lea rcx, str.target___idx
cmp edi, esi
jb 0x14036e178
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 0x14036e573
mov rax, qword [rsp + 0x50]
cmp dword [rsp + 0x58], 0x20
mov r8, qword [rbx + 0x60]
lea rcx, [rax + 8]
ja 0x14036e252
mov edx, dword [rsp + 0x58]
call fcn.1403adef0
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 r8b, 0x3f
prefetcht0 byte [rcx]
jne 0x14036e2b0
and cl, 0x3f
jne 0x14036e2ce
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 r8, qword [rbx + 0x60]
call fcn.1403adef0
mov edx, dword [rsp + 0x7c]
inc qword [rsp + 0x50]
cmp rdx, rax
jne 0x14036e353
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 0x14036e47f
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 0x14036e252
mov r8, qword [rsp + 0x60]
call fcn.1403adef0
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 r8b, 0x3f
prefetcht0 byte [rcx]
jne 0x14036e2b0
and cl, 0x3f
jne 0x14036e2ce
mov rax, qword [rsp + 0x40]
and edi, 7
lea rcx, [rax + rdi*4]
mov eax, dword [rcx]
mov dword [rcx], edx
jmp 0x14036e617
mov edx, dword [rsp + 0x48]
add edx, 8
cmp edx, 0x20
ja 0x14036e252
mov r8, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x1d8]
call fcn.1403adef0
mov dword [rbx + 0x2c], edi
mov r8d, eax
mov rdi, qword [rsp + 0x28]
add dword [rbx + 0x68], eax
movd xmm0, eax
shr r8d, 8
punpcklbw xmm0, xmm0
mov ebp, eax
xor eax, eax
shl r8d, 6
punpcklwd xmm0, xmm0
mov qword [rsp + 0x80], rax
add rdi, r8
lea r11, [r13 + r8*4]
pshufd xmm0, xmm0, 0
mov qword [rsp + 0x88], rax
mov r9b, byte [rdi]
mov r8, rdi
xor eax, eax
mov ecx, r9d
mov edi, r9d
and ecx, 0x3f
and edi, 0x3f
mov rdx, rax
shl rdx, 4
movups xmm1, xmmword [r8 + rdx]
pcmpeqb xmm1, xmm0
pmovmskb edx, xmm1
mov dword [rsp + rax*4 + 0x80], edx
inc rax
cmp rax, 4
jne 0x14036e66b
movsxd rdx, dword [rsp + 0x8c]
movsxd rax, dword [rsp + 0x88]
xor esi, esi
mov r10d, 0x40
shl rdx, 0x30
shl rax, 0x20
or rax, rdx
movsxd rdx, dword [rsp + 0x80]
or rax, rdx
movsxd rdx, dword [rsp + 0x84]
shl rdx, 0x10
or rax, rdx
ror rax, cl
mov rcx, rax
test rcx, rcx
jne 0x14036e70d
lea eax, [r9 + 0x3f]
mov edi, 3
and eax, 0x3f
cmp eax, 1
sbb edx, edx
xor r12d, r12d
and edx, 0x3f
add eax, edx
mov byte [r8], al
mov byte [r8 + rax], bpl
mov edx, dword [rbx + 0x2c]
lea ecx, [rdx + 1]
mov dword [rbx + 0x2c], ecx
mov dword [r11 + rax*4], edx
mov eax, dword [rsp + 0x4c]
lea ebx, [rax + 3]
jmp 0x14036e789
test r10d, r10d
je 0x14036e6d7
call fcn.14039b980
add eax, edi
and eax, 0x3f
mov edx, eax
mov edx, dword [r11 + rdx*4]
je 0x14036e764
cmp rsi, 0x3f
jbe 0x14036e743
mov r8d, 0x4bb
lea rdx, str.zstd_lib_compress_zstd_lazy.c
lea rcx, str.numMatches___rowEntries
jmp 0x14036e178
mov eax, dword [rsp + 0x3c]
cmp edx, eax
jb 0x14036e6d7
mov r14, qword [rsp + 0x30]
mov eax, edx
dec r10d
prefetcht0 byte [r14 + rax]
mov dword [rsp + rsi*4 + 0x80], edx
inc rsi
lea rax, [rcx - 1]
and rcx, rax
jmp 0x14036e6d2
mov rax, qword [rsp + 0x1d8]
mov eax, dword [rax + rdi - 3]
cmp dword [rdx + rdi - 3], eax
je 0x14036e807
inc r12
cmp rsi, r12
je 0x14036e84e
mov ebp, dword [rsp + r12*4 + 0x80]
mov eax, dword [rsp + 0x4c]
cmp ebp, eax
jb 0x14036e7bb
mov r8d, 0x4d3
lea rdx, str.zstd_lib_compress_zstd_lazy.c
lea rcx, [0x140623dd0]
jmp 0x14036e178
mov eax, dword [rsp + 0x3c]
cmp ebp, eax
jae 0x14036e7dc
mov r8d, 0x4d4
lea rdx, str.zstd_lib_compress_zstd_lazy.c
lea rcx, str.matchIndex___lowLimit
jmp 0x14036e178
mov rax, qword [rsp + 0x30]
mov edx, ebp
add rdx, rax
mov eax, dword [rsp + 0x78]
cmp ebp, eax
jae 0x14036e770
mov r8d, 0x4d8
lea rdx, str.zstd_lib_compress_zstd_lazy.c
lea rcx, str.matchIndex___dictLimit
jmp 0x14036e178
mov r8, qword [rsp + 0x1e0]
mov rcx, qword [rsp + 0x1d8]
call fcn.14039b6f0
cmp rdi, rax
jae 0x14036e786
mov edx, ebx
mov rdi, qword [rsp + 0x1e8]
sub edx, ebp
mov ecx, edx
mov rdx, qword [rsp + 0x1d8]
mov qword [rdi], rcx
add rdx, rax
cmp r8, rdx
je 0x14036e851
mov rdi, rax
jmp 0x14036e786
mov rax, rdi
add rsp, 0x188
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret