Function at 0x5acdd0
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, 0x118
mov esi, dword [rcx + 0x108]
mov rdi, qword [rcx + 0x70]
mov rbx, rcx
mov r14, rdx
mov qword [rsp + 0x170], r8
mov qword [rsp + 0x178], r9
cmp esi, 0x20
jbe 0x5ace21
lea rdx, [0x0079d3c0]
lea rcx, [0x0079d4f9]
mov r8d, 0x342
call fcn.0059d7c0
cmp dword [rsp + 0x180], 5
mov edx, esi
mov rcx, r14
je 0x5ace41
cmp dword [rsp + 0x180], 6
je 0x5ace48
call fcn.005ff210
jmp 0x5ace4d
call fcn.005ff380
jmp 0x5ace4d
call fcn.005ff510
lea rax, [rdi + rax*4]
mov ecx, dword [rbx + 0x1c]
mov edx, dword [rbx + 0x28]
mov r9d, dword [rbx + 0x100]
mov qword [rsp + 0xa0], rax
mov esi, dword [rax]
mov rax, qword [rbx + 8]
mov qword [rsp + 0x80], rax
mov rax, r14
sub rax, qword [rsp + 0x80]
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x50]
mov r8d, eax
mov dword [rsp + 0xd0], eax
call fcn.005ff040
mov dword [rsp + 0xa8], eax
mov rax, qword [rbx + 0x80]
mov dword [rsp + 0x64], 0
mov qword [rsp + 0x40], rax
mov eax, dword [rbx + 0x104]
lea ecx, [rax - 1]
mov eax, 1
shl eax, cl
dec eax
cmp dword [rsp + 0x50], eax
mov dword [rsp + 0x60], eax
jbe 0x5aceda
mov eax, dword [rsp + 0x50]
sub eax, dword [rsp + 0x60]
mov dword [rsp + 0x64], eax
mov edi, dword [rsp + 0xa8]
cmp dword [rsp + 0x64], edi
mov ecx, dword [rbx + 0x10c]
mov eax, edi
cmovae eax, dword [rsp + 0x64]
mov rdi, qword [rsp + 0x40]
mov dword [rsp + 0x88], eax
mov eax, dword [rsp + 0x60]
and eax, esi
add eax, eax
shl rax, 2
lea r12, [rdi + rax]
lea rbp, [rdi + rax + 4]
mov eax, 1
shl eax, cl
mov dword [rsp + 0x3c], eax
mov rax, qword [rsp + 0x170]
sub rax, 8
cmp r14, rax
jbe 0x5acf48
lea rdx, str.zstd_lib_compress_zstd_lazy.c
lea rcx, [0x0079d828]
mov r8d, 0x107
call fcn.0059d7c0
mov eax, dword [rsp + 0x3c]
xor edi, edi
mov dword [rsp + 0x78], eax
cmp esi, dword [rsp + 0x88]
jbe 0x5acfa2
cmp dword [rbp], 1
jne 0x5acfa2
cmp dword [rsp + 0x78], 1
jbe 0x5acf93
mov dword [rbp], edi
mov eax, dword [rsp + 0x60]
mov edx, dword [r12]
mov rdi, qword [rsp + 0x40]
dec dword [rsp + 0x78]
and eax, edx
add eax, eax
shl rax, 2
lea r12, [rdi + rax]
lea rbp, [rdi + rax + 4]
mov edi, esi
mov esi, edx
jmp 0x5acf52
mov dword [rbp], 0
mov dword [r12], 0
lea rax, [rsp + 0x10c]
mov qword [rsp + 0xd8], rax
mov rax, qword [rbx + 0x10]
mov qword [rsp + 0x70], rax
mov eax, dword [rbx + 0x18]
mov qword [rsp + 0x48], rax
mov dword [rsp + 0xbc], eax
mov rax, qword [rsp + 0x70]
add rax, qword [rsp + 0x48]
test edi, edi
mov qword [rsp + 0xc0], rax
je 0x5ad359
mov eax, dword [rsp + 0x60]
mov rcx, qword [rsp + 0x40]
and eax, edi
add eax, eax
mov eax, dword [rcx + rax*4 + 4]
mov dword [rsp + 0xe4], eax
mov rax, qword [rbx + 0x80]
mov qword [rsp + 0xc8], rax
mov eax, dword [rbx + 0x104]
lea ecx, [rax - 1]
mov eax, 1
shl eax, cl
dec eax
cmp edi, dword [rsp + 0xbc]
mov dword [rsp + 0xd4], eax
mov rax, qword [rbx + 8]
mov qword [rsp + 0x58], rax
mov eax, edi
jb 0x5ad04f
add rax, qword [rsp + 0x58]
mov qword [rsp + 0x98], rax
mov rax, qword [rsp + 0x170]
jmp 0x5ad064
add rax, qword [rsp + 0x70]
mov qword [rsp + 0x98], rax
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x58]
mov edx, edi
add rax, qword [rsp + 0x48]
mov rsi, qword [rsp + 0xc8]
mov ecx, dword [rbx + 0x100]
mov qword [rsp + 0xe8], rax
mov eax, dword [rsp + 0xd4]
and eax, edi
add eax, eax
lea r12, [rsi + rax*4]
mov eax, dword [rbx + 0x1c]
lea r13, [r12 + 4]
mov ebp, dword [r12]
mov dword [rsp + 0xb8], eax
sub edx, dword [rsp + 0xb8]
mov eax, 1
shl eax, cl
cmp eax, edx
jae 0x5ad0ca
mov esi, edi
sub esi, eax
mov dword [rsp + 0xb8], esi
cmp edi, dword [rsp + 0x88]
jae 0x5ad0ec
lea rdx, str.zstd_lib_compress_zstd_lazy.c
lea rcx, str.curr___btLow
mov r8d, 0x60
call fcn.0059d7c0
mov rsi, qword [rsp + 0x98]
cmp qword [rsp + 0x68], rsi
ja 0x5ad114
lea rdx, str.zstd_lib_compress_zstd_lazy.c
lea rcx, str.ip___iend
mov r8d, 0x61
call fcn.0059d7c0
mov eax, dword [rsp + 0x78]
mov qword [rsp + 0xb0], 0
mov qword [rsp + 0x90], 0
mov dword [rsp + 0xe0], eax
cmp dword [rsp + 0xe0], 0
je 0x5ad339
cmp ebp, dword [rsp + 0xb8]
jbe 0x5ad339
mov eax, dword [rsp + 0xd4]
mov rcx, qword [rsp + 0xc8]
mov rsi, qword [rsp + 0xb0]
and eax, ebp
add eax, eax
cmp qword [rsp + 0x90], rsi
cmovbe rsi, qword [rsp + 0x90]
cmp edi, ebp
lea r15, [rcx + rax*4]
ja 0x5ad19f
lea rdx, str.zstd_lib_compress_zstd_lazy.c
lea rcx, [0x0079d5f0]
mov r8d, 0x66
call fcn.0059d7c0
cmp edi, dword [rsp + 0xbc]
mov r11d, ebp
lea rcx, [rsi + r11]
setb dl
cmp rcx, qword [rsp + 0x48]
setae al
or edx, eax
mov rax, qword [rsp + 0x98]
add rax, rsi
cmp dword [rsp + 0x188], 1
jne 0x5ad1e9
test dl, dl
je 0x5ad259
cmp rcx, qword [rsp + 0x48]
mov r10, qword [rsp + 0x70]
cmovae r10, qword [rsp + 0x58]
jmp 0x5ad230
test dl, dl
mov r10, qword [rsp + 0x58]
jne 0x5ad230
lea rdx, str.zstd_lib_compress_zstd_lazy.c
lea rcx, str._matchIndexmatchLength___dictLimit____curr___dictLimit_
mov r8d, 0x72
mov qword [rsp + 0xf8], rax
mov qword [rsp + 0xf0], r11
call fcn.0059d7c0
mov r10, qword [rsp + 0x58]
mov rax, qword [rsp + 0xf8]
mov r11, qword [rsp + 0xf0]
add r10, r11
mov r8, qword [rsp + 0x68]
mov rcx, rax
lea rdx, [r10 + rsi]
mov qword [rsp + 0xf0], r10
call fcn.005fb670
mov r10, qword [rsp + 0xf0]
add rsi, rax
jmp 0x5ad2bf
mov rdx, qword [rsp + 0x70]
mov rcx, qword [rsp + 0xe8]
mov r9, qword [rsp + 0xc0]
mov r8, qword [rsp + 0x68]
mov qword [rsp + 0xf8], r11
lea r10, [rdx + r11]
mov qword [rsp + 0x20], rcx
mov rcx, rax
lea rdx, [r10 + rsi]
mov qword [rsp + 0xf0], r10
call fcn.005fb9e0
mov r11, qword [rsp + 0xf8]
add rsi, rax
mov r10, qword [rsp + 0xf0]
lea rax, [rsi + r11]
cmp rax, qword [rsp + 0x48]
jb 0x5ad2bf
mov rax, qword [rsp + 0x58]
lea r10, [rax + r11]
mov rax, qword [rsp + 0x98]
add rax, rsi
cmp qword [rsp + 0x68], rax
je 0x5ad339
mov al, byte [rax]
cmp byte [r10 + rsi], al
jae 0x5ad2f0
cmp dword [rsp + 0x88], ebp
mov dword [r12], ebp
jae 0x5ad327
lea r12, [r15 + 4]
mov ebp, dword [r15 + 4]
jmp 0x5ad313
cmp dword [rsp + 0x88], ebp
mov dword [r13], ebp
jae 0x5ad331
mov qword [rsp + 0xb0], rsi
mov ebp, dword [r15]
mov r13, r15
mov rsi, qword [rsp + 0x90]
dec dword [rsp + 0xe0]
mov qword [rsp + 0x90], rsi
jmp 0x5ad137
mov r12, qword [rsp + 0xd8]
jmp 0x5ad339
mov r13, qword [rsp + 0xd8]
mov dword [r13], 0
inc dword [rsp + 0x78]
mov dword [r12], 0
mov edi, dword [rsp + 0xe4]
jmp 0x5acfb2
mov rax, qword [rsp + 0x80]
add rax, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x40]
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x58], 0
mov qword [rsp + 0x88], rax
mov eax, dword [rsp + 0x60]
and eax, dword [rsp + 0x50]
add eax, eax
shl rax, 2
lea r12, [rdi + rax]
lea r13, [rdi + rax + 4]
mov eax, dword [rsp + 0x50]
mov edi, dword [rsp + 0x50]
add eax, 9
mov dword [rsp + 0x68], eax
mov rax, qword [rsp + 0xa0]
mov esi, dword [rax]
mov dword [rax], edi
xor edi, edi
cmp dword [rsp + 0x3c], 0
je 0x5ad5ce
cmp esi, dword [rsp + 0xa8]
jbe 0x5ad5ce
mov eax, dword [rsp + 0x60]
mov rcx, qword [rsp + 0x78]
mov r11d, esi
mov rdx, qword [rsp + 0x40]
and eax, esi
mov r10, rcx
add eax, eax
cmp qword [rsp + 0x58], rcx
cmovbe r10, qword [rsp + 0x58]
cmp dword [rsp + 0x188], 1
lea r15, [rdx + rax*4]
lea rcx, [r14 + r10]
jne 0x5ad411
lea rax, [r10 + r11]
cmp rax, qword [rsp + 0x48]
jb 0x5ad444
mov rax, qword [rsp + 0x80]
mov r8, qword [rsp + 0x170]
mov qword [rsp + 0x90], r10
lea rbp, [rax + r11]
lea rdx, [rbp + r10]
call fcn.005fb670
mov r10, qword [rsp + 0x90]
add r10, rax
jmp 0x5ad4ae
mov rax, qword [rsp + 0x70]
mov r9, qword [rsp + 0xc0]
mov r8, qword [rsp + 0x170]
mov qword [rsp + 0x98], r11
mov qword [rsp + 0x90], r10
lea rbp, [rax + r11]
mov rax, qword [rsp + 0x88]
lea rdx, [rbp + r10]
mov qword [rsp + 0x20], rax
call fcn.005fb9e0
mov r10, qword [rsp + 0x90]
mov r11, qword [rsp + 0x98]
add r10, rax
lea rax, [r10 + r11]
cmp rax, qword [rsp + 0x48]
jb 0x5ad4ae
mov rax, qword [rsp + 0x80]
lea rbp, [rax + r11]
cmp rdi, r10
jae 0x5ad575
mov eax, dword [rsp + 0x68]
mov edx, r10d
sub eax, esi
cmp rax, r10
jae 0x5ad4cd
lea eax, [rsi + r10]
mov dword [rsp + 0x68], eax
mov r9d, dword [rsp + 0xd0]
mov rax, qword [rsp + 0x178]
sub edx, edi
shl edx, 2
sub r9d, esi
bsr eax, dword [rax]
lea ecx, [r9 + 1]
bsr ecx, ecx
xor ecx, 0x1f
xor eax, 0x1f
sub eax, ecx
cmp edx, eax
jle 0x5ad54f
cmp esi, dword [rsp + 0xd0]
jne 0x5ad53d
lea rdx, str.zstd_lib_compress_zstd_lazy.c
lea rcx, [0x0079d631]
mov r8d, 0x14e
mov qword [rsp + 0x98], r10
mov dword [rsp + 0x90], r9d
call fcn.0059d7c0
mov r10, qword [rsp + 0x98]
mov r9d, dword [rsp + 0x90]
mov rax, qword [rsp + 0x178]
lea edi, [r9 + 3]
mov qword [rax], rdi
mov rdi, r10
lea rax, [r14 + r10]
cmp qword [rsp + 0x170], rax
jne 0x5ad575
cmp dword [rsp + 0x188], 2
mov eax, 0
cmovne eax, dword [rsp + 0x3c]
mov dword [rsp + 0x3c], eax
jmp 0x5ad5ce
mov al, byte [r14 + r10]
cmp byte [rbp + r10], al
jae 0x5ad594
cmp esi, dword [rsp + 0x64]
mov dword [r12], esi
jbe 0x5ad5bc
lea r12, [r15 + 4]
mov esi, dword [r15 + 4]
jmp 0x5ad5ae
cmp esi, dword [rsp + 0x64]
mov dword [r13], esi
jbe 0x5ad5c6
mov qword [rsp + 0x78], r10
mov esi, dword [r15]
mov r13, r15
mov r10, qword [rsp + 0x58]
dec dword [rsp + 0x3c]
mov qword [rsp + 0x58], r10
jmp 0x5ad3b9
lea r12, [rsp + 0x10c]
jmp 0x5ad5ce
lea r13, [rsp + 0x10c]
cmp dword [rsp + 0x3c], 0x40000000
mov dword [r13], 0
mov dword [r12], 0
jbe 0x5ad601
lea rdx, str.zstd_lib_compress_zstd_lazy.c
lea rcx, [0x0079d889]
mov r8d, 0x16b
call fcn.0059d7c0
cmp dword [rsp + 0x188], 2
jne 0x5ad86d
cmp dword [rsp + 0x3c], 0
je 0x5ad86d
mov r12, qword [rbx + 0xf8]
mov ebp, dword [r12 + 0x108]
mov rsi, qword [r12 + 0x70]
cmp ebp, 0x20
jbe 0x5ad64c
lea rdx, [0x0079d3c0]
lea rcx, [0x0079d4f9]
mov r8d, 0x342
call fcn.0059d7c0
cmp dword [rsp + 0x180], 5
mov edx, ebp
mov rcx, r14
je 0x5ad66c
cmp dword [rsp + 0x180], 6
je 0x5ad673
call fcn.005ff210
jmp 0x5ad678
call fcn.005ff380
jmp 0x5ad678
call fcn.005ff510
mov esi, dword [rsi + rax*4]
mov rax, qword [rbx + 8]
mov ecx, dword [r12 + 0x104]
mov qword [rsp + 0x48], rax
mov eax, dword [rbx + 0x18]
add rax, qword [rsp + 0x48]
dec ecx
mov qword [rsp + 0x90], rax
mov eax, r14d
sub eax, dword [rsp + 0x48]
mov dword [rsp + 0x70], eax
mov rax, qword [r12 + 8]
mov qword [rsp + 0x78], rax
mov rax, qword [r12]
mov qword [rsp + 0x80], rax
sub rax, qword [rsp + 0x78]
mov qword [rsp + 0x40], rax
mov eax, dword [r12 + 0x1c]
mov dword [rsp + 0x60], eax
mov eax, dword [rbx + 0x1c]
sub eax, dword [rsp + 0x40]
mov dword [rsp + 0x88], eax
mov rax, qword [r12 + 0x80]
mov qword [rsp + 0x98], rax
mov eax, 1
shl eax, cl
mov ecx, dword [rsp + 0x60]
dec eax
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x40]
sub eax, dword [rsp + 0x60]
mov dword [rsp + 0x64], ecx
cmp dword [rsp + 0x58], eax
jae 0x5ad8d7
mov eax, dword [rsp + 0x40]
sub eax, dword [rsp + 0x58]
mov dword [rsp + 0x64], eax
jmp 0x5ad8d7
mov al, byte [r14 + r11]
cmp byte [rbp + r11], al
jae 0x5ad938
cmp esi, dword [rsp + 0x64]
jbe 0x5ad863
mov esi, dword [r15 + 4]
dec dword [rsp + 0x3c]
mov r12, r11
cmp dword [rsp + 0x3c], 0
je 0x5ad863
cmp dword [rsp + 0x60], esi
jae 0x5ad863
mov eax, dword [rsp + 0x58]
mov rdx, qword [rsp + 0x98]
mov r10d, esi
mov r11, r13
mov r9, qword [rsp + 0x80]
mov r8, qword [rsp + 0x170]
mov qword [rsp + 0xa8], r10
and eax, esi
add eax, eax
cmp r12, r13
lea r15, [rdx + rax*4]
mov rax, qword [rsp + 0x78]
cmovbe r11, r12
lea rcx, [r14 + r11]
mov qword [rsp + 0xa0], r11
lea rbp, [rax + r10]
mov rax, qword [rsp + 0x90]
lea rdx, [rbp + r11]
mov qword [rsp + 0x20], rax
call fcn.005fb9e0
mov r11, qword [rsp + 0xa0]
mov r10, qword [rsp + 0xa8]
add r11, rax
mov eax, dword [rsp + 0x40]
lea rdx, [r10 + r11]
cmp rdx, rax
jb 0x5ad7f5
mov ebp, dword [rsp + 0x88]
add rbp, r10
add rbp, qword [rsp + 0x48]
cmp r11, rdi
jbe 0x5ad728
mov eax, dword [rsp + 0x88]
mov r9d, dword [rsp + 0x70]
mov edx, r11d
sub edx, edi
shl edx, 2
lea ecx, [rax + rsi]
mov rax, qword [rsp + 0x178]
sub r9d, ecx
mov rax, qword [rax]
lea r8d, [r9 + 1]
bsr r8d, r8d
mov qword [rsp + 0xa0], rax
mov eax, dword [rsp + 0xa0]
xor r8d, 0x1f
inc eax
bsr eax, eax
xor eax, 0x1f
sub eax, r8d
cmp edx, eax
jg 0x5ad8e2
lea rax, [r14 + r11]
cmp qword [rsp + 0x170], rax
jne 0x5ad728
cmp rdi, 2
ja 0x5ad950
mov eax, dword [rsp + 0x50]
add eax, 8
cmp eax, dword [rsp + 0x68]
jb 0x5ad893
lea rdx, str.zstd_lib_compress_zstd_lazy.c
lea rcx, [0x0079d8d0]
mov r8d, 0x173
call fcn.0059d7c0
mov eax, dword [rsp + 0x68]
sub eax, 8
cmp rdi, 2
mov dword [rbx + 0x2c], eax
jbe 0x5ad980
mov rax, qword [rsp + 0x178]
cmp qword [rax], 3
ja 0x5ad980
lea rdx, str.zstd_lib_compress_zstd_lazy.c
lea rcx, str.OFFBASE_IS_OFFSET_offBasePtr_
mov r8d, 0x176
call fcn.0059d7c0
jmp 0x5ad980
xor r13d, r13d
xor r12d, r12d
jmp 0x5ad74c
cmp dword [rsp + 0x70], ecx
jne 0x5ad921
lea rdx, str.zstd_lib_compress_zstd_lazy.c
lea rcx, [0x0079d631]
mov r8d, 0xcc
mov dword [rsp + 0xa8], r9d
mov qword [rsp + 0xa0], r11
call fcn.0059d7c0
mov r9d, dword [rsp + 0xa8]
mov r11, qword [rsp + 0xa0]
mov rax, qword [rsp + 0x178]
lea edi, [r9 + 3]
mov qword [rax], rdi
mov rdi, r11
jmp 0x5ad851
cmp esi, dword [rsp + 0x64]
jbe 0x5ad863
mov r13, r11
mov esi, dword [r15]
mov r11, r12
jmp 0x5ad745
mov rax, qword [rsp + 0x178]
cmp qword [rax], 3
ja 0x5ad86d
lea rdx, str.zstd_lib_compress_zstd_lazy.c
lea rcx, str.OFFBASE_IS_OFFSET_offsetPtr_
mov r8d, 0xe0
call fcn.0059d7c0
jmp 0x5ad86d
mov rax, rdi
add rsp, 0x118
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret