Function at 0x140011220
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 0x1400112f4
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 0x14001134e
test dl, 0x10
jne 0x14001135d
test dl, 0x40
jne 0x14001163f
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 0x140011314
inc r8
shr r10d, 0x10
mov byte [r8], r10b
jmp 0x14001162b
shr r10d, 0x10
and edx, 0xf
je 0x14001138f
cmp r11d, edx
jae 0x14001137d
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 0x1400113b3
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 0x14001141e
nop dword [rax + rax]
test dl, 0x40
jne 0x14001166c
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 0x1400113e0
and edx, 0xf
shr edi, 0x10
cmp r11d, edx
jae 0x140011452
movzx eax, byte [rsi + 1]
inc rsi
mov ecx, r11d
shl eax, cl
add r11d, 8
add ebx, eax
cmp r11d, edx
jae 0x140011452
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 0x1400115bc
mov ecx, edi
sub ecx, eax
cmp ecx, dword [rsp]
ja 0x14001168c
mov rdx, qword [rsp + 0x20]
lea r9, [rdx - 1]
test r12d, r12d
jne 0x1400114c4
mov eax, dword [rsp + 0x98]
sub eax, ecx
add r9, rax
cmp ecx, r10d
jae 0x14001154a
sub r10d, ecx
nop word [rax + rax]
movzx eax, byte [r9 + 1]
inc r9
inc r8
dec ecx
mov byte [r8], al
jne 0x1400114b0
jmp 0x140011542
mov eax, r12d
sub eax, ecx
cmp r12d, ecx
jae 0x140011524
add eax, dword [rsp + 0x98]
sub ecx, r12d
add r9, rax
cmp ecx, r10d
jae 0x14001154a
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 0x1400114f0
lea r9, [rdx - 1]
cmp r12d, r10d
jae 0x14001154a
mov ecx, r12d
sub r10d, r12d
nop
movzx eax, byte [r9 + 1]
inc r9
inc r8
dec ecx
mov byte [r8], al
jne 0x140011510
jmp 0x140011542
add r9, rax
cmp ecx, r10d
jae 0x14001154a
sub r10d, ecx
nop
movzx eax, byte [r9 + 1]
inc r9
inc r8
dec ecx
mov byte [r8], al
jne 0x140011530
mov eax, edi
mov r9, r8
sub r9, rax
cmp r10d, 2
jbe 0x14001158a
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 0x140011560
test r10d, r10d
je 0x14001161f
movzx eax, byte [r9 + 1]
mov edi, dword [rsp + 0x88]
inc r8
mov byte [r8], al
cmp r10d, ebp
jbe 0x1400115b5
movzx eax, byte [r9 + 2]
inc r8
mov byte [r8], al
mov r9, qword [rsp + 0x10]
jmp 0x14001162b
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 0x1400115d0
test r10d, r10d
je 0x140011624
movzx eax, byte [rcx + 1]
mov edi, dword [rsp + 0x88]
inc r8
mov byte [r8], al
cmp r10d, ebp
jbe 0x14001162b
movzx eax, byte [rcx + 2]
inc r8
mov byte [r8], al
jmp 0x14001162b
mov r9, qword [rsp + 0x10]
mov edi, dword [rsp + 0x88]
cmp rsi, r14
jae 0x140011695
cmp r8, r13
jae 0x140011695
mov rdx, qword [rsp + 0x28]
jmp 0x1400112d0
mov rdi, qword [rsp + 0x80]
test dl, 0x20
mov rdx, qword [rsp + 8]
je 0x140011659
mov dword [rdx], 0xb
jmp 0x1400116a2
lea rax, str.invalid_literal_length_code
mov qword [rdi + 0x20], rax
mov dword [rdx], 0x1b
jmp 0x1400116a2
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 0x1400116a2
lea rax, str.invalid_distance_too_far_back
jmp 0x140011673
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