Function at 0x140010a60
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 0x140010b34
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 0x140010b8e
test dl, 0x10
jne 0x140010b9d
test dl, 0x40
jne 0x140010e7f
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 0x140010b54
inc r8
shr r10d, 0x10
mov byte [r8], r10b
jmp 0x140010e6b
shr r10d, 0x10
and edx, 0xf
je 0x140010bcf
cmp r11d, edx
jae 0x140010bbd
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 0x140010bf3
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 0x140010c5e
nop dword [rax + rax]
test dl, 0x40
jne 0x140010eac
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 0x140010c20
and edx, 0xf
shr edi, 0x10
cmp r11d, edx
jae 0x140010c92
movzx eax, byte [rsi + 1]
inc rsi
mov ecx, r11d
shl eax, cl
add r11d, 8
add ebx, eax
cmp r11d, edx
jae 0x140010c92
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 0x140010dfc
mov ecx, edi
sub ecx, eax
cmp ecx, dword [rsp]
ja 0x140010ecc
mov rdx, qword [rsp + 0x20]
lea r9, [rdx - 1]
test r12d, r12d
jne 0x140010d04
mov eax, dword [rsp + 0x98]
sub eax, ecx
add r9, rax
cmp ecx, r10d
jae 0x140010d8a
sub r10d, ecx
nop word [rax + rax]
movzx eax, byte [r9 + 1]
inc r9
inc r8
dec ecx
mov byte [r8], al
jne 0x140010cf0
jmp 0x140010d82
mov eax, r12d
sub eax, ecx
cmp r12d, ecx
jae 0x140010d64
add eax, dword [rsp + 0x98]
sub ecx, r12d
add r9, rax
cmp ecx, r10d
jae 0x140010d8a
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 0x140010d30
lea r9, [rdx - 1]
cmp r12d, r10d
jae 0x140010d8a
mov ecx, r12d
sub r10d, r12d
nop
movzx eax, byte [r9 + 1]
inc r9
inc r8
dec ecx
mov byte [r8], al
jne 0x140010d50
jmp 0x140010d82
add r9, rax
cmp ecx, r10d
jae 0x140010d8a
sub r10d, ecx
nop
movzx eax, byte [r9 + 1]
inc r9
inc r8
dec ecx
mov byte [r8], al
jne 0x140010d70
mov eax, edi
mov r9, r8
sub r9, rax
cmp r10d, 2
jbe 0x140010dca
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 0x140010da0
test r10d, r10d
je 0x140010e5f
movzx eax, byte [r9 + 1]
mov edi, dword [rsp + 0x88]
inc r8
mov byte [r8], al
cmp r10d, ebp
jbe 0x140010df5
movzx eax, byte [r9 + 2]
inc r8
mov byte [r8], al
mov r9, qword [rsp + 0x10]
jmp 0x140010e6b
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 0x140010e10
test r10d, r10d
je 0x140010e64
movzx eax, byte [rcx + 1]
mov edi, dword [rsp + 0x88]
inc r8
mov byte [r8], al
cmp r10d, ebp
jbe 0x140010e6b
movzx eax, byte [rcx + 2]
inc r8
mov byte [r8], al
jmp 0x140010e6b
mov r9, qword [rsp + 0x10]
mov edi, dword [rsp + 0x88]
cmp rsi, r14
jae 0x140010ed5
cmp r8, r13
jae 0x140010ed5
mov rdx, qword [rsp + 0x28]
jmp 0x140010b10
mov rdi, qword [rsp + 0x80]
test dl, 0x20
mov rdx, qword [rsp + 8]
je 0x140010e99
mov dword [rdx], 0xb
jmp 0x140010ee2
lea rax, str.invalid_literal_length_code
mov qword [rdi + 0x20], rax
mov dword [rdx], 0x1b
jmp 0x140010ee2
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 0x140010ee2
lea rax, str.invalid_distance_too_far_back
jmp 0x140010eb3
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