Function at 0x14009aa60
Capabilities:
Check for time delay via queryperformancecounter
Connect socket
Resolve function by parsing pe exports
Set socket configuration

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x928
movaps xmmword [rsp + 0x910], xmm6
mov r14, rdx
mov r15, rcx
mov qword [rsp + 0xa8], r8
mov qword [rsp + 0xb0], r9
mov rax, qword [rdx + 0x98]
mov edi, dword [rax + 0x80]
cmp edi, 0x3b9aca00
mov qword [rsp + 0x50], rax
jne 0x14009aac6
mov rcx, qword [r14 + 0x88]
mov qword [rsp + 0x88], rcx
mov edi, dword [r14 + 0x90]
jmp 0x14009abe1
mov rax, qword [rax + 0x78]
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x128], 0
lea rcx, [rsp + 0x128]
call sub.kernel32.dll_QueryPerformanceCounter
test eax, eax
je 0x14009c5cb
mov rsi, qword [rsp + 0x128]
mov rcx, qword [0x1402280e8]
test rcx, rcx
jne 0x14009ab40
mov qword [rsp + 0x128], 0
lea rcx, [rsp + 0x128]
call sub.kernel32.dll_QueryPerformanceFrequency
test eax, eax
je 0x14009c5cb
mov rcx, qword [rsp + 0x128]
mov qword [0x1402280e8], rcx
test rcx, rcx
je 0x14009c58b
mov rax, rsi
or rax, rcx
shr rax, 0x20
je 0x14009ab56
mov rax, rsi
xor edx, edx
div rcx
jmp 0x14009ab5c
mov eax, esi
xor edx, edx
div ecx
imul r8, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
mov rdx, rax
or rdx, rcx
shr rdx, 0x20
je 0x14009ab80
xor edx, edx
div rcx
mov rcx, rax
jmp 0x14009ab86
xor edx, edx
div ecx
mov ecx, eax
add rcx, r8
mov rax, rcx
shr rax, 9
movabs rdx, 0x44b82fa09b5a53
mul rdx
shr rdx, 0xb
add qword [rsp + 0x88], rdx
jae 0x14009abb2
mov edi, 0x3b9aca00
jmp 0x14009abdc
imul rax, rdx, 0x3b9aca00
sub rcx, rax
add edi, ecx
cmp edi, 0x3b9aca00
jb 0x14009abdc
add edi, 0xc4653600
inc qword [rsp + 0x88]
mov eax, 0x3b9aca00
cmove edi, eax
mov rax, qword [rsp + 0x50]
mov dword [rsp + 0xbc], edi
movabs r12, 0x8000000000000000
cmp qword [rax + 0x28], r12
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x70], r14
jne 0x14009acc9
mov qword [rsp + 0xd8], r12
lea rax, [rsp + 0xa8]
mov qword [rsp + 0x458], rax
lea rax, [0x140085130]
mov qword [rsp + 0x460], rax
lea rax, [rsp + 0x990]
mov qword [rsp + 0x468], rax
lea rax, [0x1400174c0]
mov qword [rsp + 0x470], rax
lea rax, str.corrupt_deflate_stream
mov qword [rsp + 0x128], rax
mov qword [rsp + 0x130], 2
mov qword [rsp + 0x148], 0
lea rax, [rsp + 0x458]
mov qword [rsp + 0x138], rax
mov qword [rsp + 0x140], 2
lea rcx, [rsp + 0x350]
lea rdx, [rsp + 0x128]
call fcn.1400048a0
movups xmm0, xmmword [rsp + 0x350]
movaps xmmword [rsp + 0xc0], xmm0
mov rax, qword [rsp + 0x360]
mov qword [rsp + 0xd0], rax
jmp 0x14009af54
mov rbx, qword [rax + 0x30]
mov rsi, qword [rax + 0x38]
test rsi, rsi
je 0x14009ad1e
js 0x14009c58b
movzx eax, byte [0x140228121]
mov rcx, qword [0x140228110]
test rcx, rcx
jne 0x14009ad07
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x14009c58b
mov rcx, rax
mov qword [0x140228110], rax
xor edx, edx
mov r8, rsi
call sub.kernel32.dll_HeapAlloc
mov rdi, rax
test rax, rax
jne 0x14009ad23
jmp 0x14009c58b
mov edi, 1
mov rcx, rdi
mov rdx, rbx
mov r8, rsi
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x50]
mov ebp, dword [rax + 0x70]
cmp qword [rax + 0x40], r12
jne 0x14009ad50
mov rbx, r12
cmp qword [rax + 0x58], r12
jne 0x14009adc4
mov r15, r12
jmp 0x14009ae3a
mov r15, qword [rax + 0x48]
mov rbx, qword [rax + 0x50]
test rbx, rbx
je 0x14009ada5
js 0x14009c58b
movzx eax, byte [0x140228121]
mov rcx, qword [0x140228110]
test rcx, rcx
jne 0x14009ad8e
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x14009c58b
mov rcx, rax
mov qword [0x140228110], rax
xor edx, edx
mov r8, rbx
call sub.kernel32.dll_HeapAlloc
mov r14, rax
test rax, rax
jne 0x14009adab
jmp 0x14009c58b
mov r14d, 1
mov rcx, r14
mov rdx, r15
mov r8, rbx
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x50]
cmp qword [rax + 0x58], r12
je 0x14009ad48
mov dword [rsp + 0x38], ebp
mov rbp, qword [rax + 0x60]
mov r15, qword [rax + 0x68]
test r15, r15
je 0x14009ae1d
js 0x14009c58b
movzx eax, byte [0x140228121]
mov rcx, qword [0x140228110]
test rcx, rcx
jne 0x14009ae06
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x14009c58b
mov rcx, rax
mov qword [0x140228110], rax
xor edx, edx
mov r8, r15
call sub.kernel32.dll_HeapAlloc
mov r13, rax
test rax, rax
jne 0x14009ae23
jmp 0x14009c58b
mov r13d, 1
mov rcx, r13
mov rdx, rbp
mov r8, r15
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x50]
mov ebp, dword [rsp + 0x38]
movzx eax, byte [rax + 0x74]
mov qword [rsp + 0xd8], rsi
mov qword [rsp + 0xe0], rdi
mov qword [rsp + 0xe8], rsi
mov qword [rsp + 0xf8], r14
mov qword [rsp + 0x100], rbx
mov qword [rsp + 0x110], r13
mov qword [rsp + 0x118], r15
mov qword [rsp + 0xf0], rbx
mov qword [rsp + 0x108], r15
lea rcx, [rsp + 0x120]
mov dword [rsp + 0x120], ebp
mov byte [rsp + 0x124], al
lea rax, [rsp + 0xd8]
mov qword [rsp + 0x458], rax
lea rax, [0x140001560]
mov qword [rsp + 0x460], rax
mov qword [rsp + 0x468], rcx
lea rax, [0x140017700]
mov qword [rsp + 0x470], rax
lea rax, str.corrupt_deflate_stream
mov qword [rsp + 0x128], rax
mov qword [rsp + 0x130], 2
mov qword [rsp + 0x148], 0
lea rax, [rsp + 0x458]
mov qword [rsp + 0x138], rax
mov qword [rsp + 0x140], 2
lea rcx, [rsp + 0x350]
lea rdx, [rsp + 0x128]
call fcn.1400048a0
movups xmm0, xmmword [rsp + 0x350]
movaps xmmword [rsp + 0xc0], xmm0
mov rax, qword [rsp + 0x360]
mov qword [rsp + 0xd0], rax
mov r15, qword [rsp + 0x40]
mov r14, qword [rsp + 0x70]
mov rax, qword [r14 + 0xa0]
mov rdi, qword [rax + 0x28]
mov rsi, qword [rax + 0x30]
lock inc qword [rdi]
jle 0x14009c58b
mov rax, qword [rsi + 0x10]
dec rax
and rax, 0xfffffffffffffff0
lea rdx, [rax + rdi]
add rdx, 0x10
mov r8, qword [rsp + 0xc8]
mov r9, qword [rsp + 0xd0]
lea rcx, [rsp + 0x660]
call qword [rsi + 0x18]
cmp qword [rsp + 0x660], r12
jne 0x14009b0c3
mov rbx, qword [rsp + 0x668]
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x90], rax
lea rax, [0x140001560]
mov qword [rsp + 0x98], rax
lea rax, [0x1401d28a8]
mov qword [rsp + 0x350], rax
mov qword [rsp + 0x358], 2
mov qword [rsp + 0x370], 0
lea rax, [rsp + 0x90]
mov qword [rsp + 0x360], rax
mov qword [rsp + 0x368], 1
lea rcx, [rsp + 0x130]
lea rdx, [rsp + 0x350]
call fcn.1400048a0
mov qword [rsp + 0x148], r12
mov qword [rsp + 0x1a0], 0
mov byte [rsp + 0x1b0], 2
mov qword [rsp + 0x128], r12
lea rcx, [rsp + 0x458]
lea rdx, [rsp + 0x128]
mov r8, rbx
call fcn.1400a65f0
mov rbx, qword [rsp + 0x458]
lea rax, [r12 + 1]
cmp rbx, rax
je 0x14009b0e3
movups xmm6, xmmword [rsp + 0x460]
mov r14, qword [rsp + 0x470]
lea rdx, [rsp + 0x478]
lea rcx, [r15 + 0x20]
mov r8d, 0xf0
call sub.msvcrt.dll_memcpy
movups xmmword [r15 + 8], xmm6
mov qword [r15 + 0x18], r14
mov qword [r15], rbx
lock dec qword [rdi]
jne 0x14009bced
mov rcx, rdi
mov rdx, rsi
call fcn.1400a7cd0
jmp 0x14009bced
mov rax, qword [rsp + 0x670]
mov qword [rsp + 0x470], rax
movups xmm0, xmmword [rsp + 0x660]
movups xmmword [rsp + 0x460], xmm0
mov rax, qword [rsp + 0x460]
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0x468]
mov qword [rsp + 0x78], rax
mov rbx, qword [rsp + 0x470]
lock dec qword [rdi]
jne 0x14009b119
mov rcx, rdi
mov rdx, rsi
call fcn.1400a7cd0
test rbx, rbx
je 0x14009bb5a
mov rax, qword [rsp + 0xd8]
mov dword [rsp + 0x6c], 4
mov qword [rsp + 0x340], rax
cmp rax, r12
je 0x14009b14a
mov eax, dword [rsp + 0x124]
mov dword [rsp + 0x6c], eax
shl rbx, 5
mov r14, qword [rsp + 0x78]
add rbx, r14
mov qword [rsp + 0x348], rbx
lea rsi, [rsp + 0x128]
xor ebx, ebx
jmp 0x14009b1b2
lea rax, [rsp + 0xa8]
mov qword [rsp + 0x458], rax
lea rax, [0x140085130]
mov qword [rsp + 0x460], rax
lea rax, str.No_ip_address_for
mov qword [rsp + 0x128], rax
mov qword [rsp + 0x130], 1
mov qword [rsp + 0x148], 0
lea rax, [rsp + 0x458]
mov qword [rsp + 0x138], rax
mov qword [rsp + 0x140], 1
lea rcx, [r15 + 8]
lea rdx, [rsp + 0x128]
call fcn.1400048a0
mov qword [r15], r12
mov qword [r15 + 0x20], r12
mov qword [r15 + 0x78], 0
mov byte [r15 + 0x88], 2
cmp qword [rsp + 0x80], 0
je 0x14009bced
mov rcx, qword [0x140228110]
xor edx, edx
mov r8, qword [rsp + 0x78]
call sub.kernel32.dll_HeapFree
jmp 0x14009bced