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

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x38
mov r10, qword [rcx + 0x28]
mov r14d, dword [rcx + 8]
mov rsi, qword [rcx]
mov r8, qword [rcx + 0x10]
mov ecx, dword [rcx + 0x18]
mov r9, qword [r10 + 0x58]
mov r12d, dword [r10 + 0x28]
mov ebx, dword [r10 + 0x38]
mov r11d, dword [r10 + 0x3c]
mov r15, qword [r10 + 0x50]
sub edx, ecx
dec r8
mov eax, edx
lea r13d, [rcx - 0x101]
mov ecx, dword [r10 + 0x60]
mov ebp, 1
dec rsi
add r14d, 0xfffffffb
mov rdx, r8
mov edi, ebp
add r13, r8
sub rdx, rax
mov eax, dword [r10 + 0x20]
add r14, rsi
mov qword [rsp + 0x18], rdx
mov edx, ebp
mov dword [rsp + 0x98], eax
mov eax, dword [r10 + 0x24]
shl edx, cl
mov ecx, dword [r10 + 0x64]
shl edi, cl
mov dword [rsp], eax
mov rax, qword [r10 + 0x30]
dec edi
dec edx
mov qword [rsp + 8], r10
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x10], r9
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x88], edi
nop dword [rax + rax]
cmp r11d, 0xf
jae 0x140011394
movzx eax, byte [rsi + 1]
mov ecx, r11d
add rsi, 2
shl eax, cl
lea ecx, [r11 + 8]
add ebx, eax
movzx eax, byte [rsi]
shl eax, cl
add ebx, eax
add r11d, 0x10
mov eax, ebx
and rax, rdx
mov r10d, dword [r15 + rax*4]
mov eax, r10d
movzx edx, r10b
shr eax, 8
movzx ecx, al
shr ebx, cl
sub r11d, ecx
test r10b, r10b
je 0x1400113ee
test dl, 0x10
jne 0x1400113fd
test dl, 0x40
jne 0x1400116df
mov ecx, edx
shr r10d, 0x10
mov eax, ebp
shl eax, cl
dec eax
and eax, ebx
add eax, r10d
mov r10d, dword [r15 + rax*4]
mov eax, r10d
movzx edx, r10b
shr eax, 8
movzx ecx, al
shr ebx, cl
sub r11d, ecx
test r10b, r10b
jne 0x1400113b4
inc r8
shr r10d, 0x10
mov byte [r8], r10b
jmp 0x1400116cb
shr r10d, 0x10
and edx, 0xf
je 0x14001142f
cmp r11d, edx
jae 0x14001141d
movzx eax, byte [rsi + 1]
inc rsi
mov ecx, r11d
shl eax, cl
add ebx, eax
add r11d, 8
mov ecx, edx
mov eax, ebp
shl eax, cl
dec eax
and eax, ebx
shr ebx, cl
add r10d, eax
sub r11d, edx
cmp r11d, 0xf
jae 0x140011453
movzx eax, byte [rsi + 1]
mov ecx, r11d
add rsi, 2
shl eax, cl
lea ecx, [r11 + 8]
add ebx, eax
movzx eax, byte [rsi]
shl eax, cl
add ebx, eax
add r11d, 0x10
mov eax, ebx
mov ecx, edi
and rcx, rax
mov edi, dword [r9 + rcx*4]
mov eax, edi
movzx edx, dil
mov dword [rsp + 0x90], edi
shr eax, 8
movzx ecx, al
shr ebx, cl
sub r11d, ecx
test dl, 0x10
jne 0x1400114be
nop dword [rax + rax]
test dl, 0x40
jne 0x14001170c
movzx eax, word [rsp + 0x92]
mov ecx, edx
mov edx, ebp
shl edx, cl
dec edx
and edx, ebx
add edx, eax
mov edi, dword [r9 + rdx*4]
mov eax, edi
movzx edx, dil
mov dword [rsp + 0x90], edi
shr eax, 8
movzx ecx, al
shr ebx, cl
sub r11d, ecx
test dl, 0x10
je 0x140011480
and edx, 0xf
shr edi, 0x10
cmp r11d, edx
jae 0x1400114f2
movzx eax, byte [rsi + 1]
inc rsi
mov ecx, r11d
shl eax, cl
add r11d, 8
add ebx, eax
cmp r11d, edx
jae 0x1400114f2
movzx eax, byte [rsi + 1]
inc rsi
mov ecx, r11d
shl eax, cl
add ebx, eax
add r11d, 8
mov ecx, edx
mov eax, ebp
sub r11d, edx
shl eax, cl
dec eax
and eax, ebx
shr ebx, cl
add edi, eax
mov eax, r8d
sub eax, dword [rsp + 0x18]
cmp edi, eax
jbe 0x14001165c
mov ecx, edi
sub ecx, eax
cmp ecx, dword [rsp]
ja 0x14001172c
mov rdx, qword [rsp + 0x20]
lea r9, [rdx - 1]
test r12d, r12d
jne 0x140011564
mov eax, dword [rsp + 0x98]
sub eax, ecx
add r9, rax
cmp ecx, r10d
jae 0x1400115ea
sub r10d, ecx
nop word [rax + rax]
movzx eax, byte [r9 + 1]
inc r9
inc r8
dec ecx
mov byte [r8], al
jne 0x140011550
jmp 0x1400115e2
mov eax, r12d
sub eax, ecx
cmp r12d, ecx
jae 0x1400115c4
add eax, dword [rsp + 0x98]
sub ecx, r12d
add r9, rax
cmp ecx, r10d
jae 0x1400115ea
sub r10d, ecx
sub r9, r8
nop word [rax + rax]
movzx eax, byte [r9 + r8 + 1]
inc r8
dec ecx
mov byte [r8], al
jne 0x140011590
lea r9, [rdx - 1]
cmp r12d, r10d
jae 0x1400115ea
mov ecx, r12d
sub r10d, r12d
nop
movzx eax, byte [r9 + 1]
inc r9
inc r8
dec ecx
mov byte [r8], al
jne 0x1400115b0
jmp 0x1400115e2
add r9, rax
cmp ecx, r10d
jae 0x1400115ea
sub r10d, ecx
nop
movzx eax, byte [r9 + 1]
inc r9
inc r8
dec ecx
mov byte [r8], al
jne 0x1400115d0
mov eax, edi
mov r9, r8
sub r9, rax
cmp r10d, 2
jbe 0x14001162a
lea ecx, [r10 - 3]
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
lea ecx, [rdx + 1]
movzx eax, byte [r9 + 1]
add r9, 3
add r8, 3
mov byte [r8 - 2], al
movzx eax, byte [r9 - 1]
add r10d, 0xfffffffd
dec rcx
mov byte [r8 - 1], al
movzx eax, byte [r9]
mov byte [r8], al
jne 0x140011600
test r10d, r10d
je 0x1400116bf
movzx eax, byte [r9 + 1]
mov edi, dword [rsp + 0x88]
inc r8
mov byte [r8], al
cmp r10d, ebp
jbe 0x140011655
movzx eax, byte [r9 + 2]
inc r8
mov byte [r8], al
mov r9, qword [rsp + 0x10]
jmp 0x1400116cb
mov eax, edi
mov rcx, r8
sub rcx, rax
nop word [rax + rax]
movzx eax, byte [rcx + 1]
add rcx, 3
add r8, 3
mov byte [r8 - 2], al
movzx eax, byte [rcx - 1]
add r10d, 0xfffffffd
mov byte [r8 - 1], al
movzx eax, byte [rcx]
mov byte [r8], al
cmp r10d, 2
ja 0x140011670
test r10d, r10d
je 0x1400116c4
movzx eax, byte [rcx + 1]
mov edi, dword [rsp + 0x88]
inc r8
mov byte [r8], al
cmp r10d, ebp
jbe 0x1400116cb
movzx eax, byte [rcx + 2]
inc r8
mov byte [r8], al
jmp 0x1400116cb
mov r9, qword [rsp + 0x10]
mov edi, dword [rsp + 0x88]
cmp rsi, r14
jae 0x140011735
cmp r8, r13
jae 0x140011735
mov rdx, qword [rsp + 0x28]
jmp 0x140011370
mov rdi, qword [rsp + 0x80]
test dl, 0x20
mov rdx, qword [rsp + 8]
je 0x1400116f9
mov dword [rdx], 0xb
jmp 0x140011742
lea rax, str.invalid_literal_length_code
mov qword [rdi + 0x20], rax
mov dword [rdx], 0x1b
jmp 0x140011742
lea rax, str.invalid_distance_code
mov rdi, qword [rsp + 0x80]
mov rdx, qword [rsp + 8]
mov qword [rdi + 0x20], rax
mov dword [rdx], 0x1b
jmp 0x140011742
lea rax, str.invalid_distance_too_far_back
jmp 0x140011713
mov rdx, qword [rsp + 8]
mov rdi, qword [rsp + 0x80]
mov ecx, r11d
shr ecx, 3
mov eax, ecx
sub rsi, rax
lea eax, [rcx*8]
sub r11d, eax
lea rax, [rsi + 1]
sub r14, rsi
mov qword [rdi], rax
lea rax, [r8 + 1]
mov ecx, r11d
mov qword [rdi + 0x10], rax
shl ebp, cl
lea rax, [r14 + 5]
mov dword [rdi + 8], eax
dec ebp
and ebx, ebp
sub r13, r8
lea rax, [r13 + 0x101]
mov dword [rdi + 0x18], eax
mov dword [rdx + 0x38], ebx
mov dword [rdx + 0x3c], r11d
add rsp, 0x38
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret