Function at 0x180012aa4
Capabilities:
Check for time delay via gettickcount

Disassembly:
mov dword [rsp + 0x18], r8d
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x68
mov qword [rsp + 0x50], 0xfffffffffffffffe
mov dword [rsp + 0xb8], r8d
mov rbp, rdx
xor edi, edi
xor r12d, r12d
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rsp + 0xc8], eax
xor r13d, r13d
xor r14d, r14d
mov rax, rbp
lea ecx, [rdi + 1]
test rbp, rbp
je 0x180012b28
add r12d, ecx
cmp r12d, 0x40
ja 0x180012b09
mov rax, qword [rax + 0x28]
test rax, rax
jne 0x180012af5
jmp 0x180012b28
or r15d, 0xffffffff
mov edi, r15d
mov r8d, 0xc3e3
mov edx, r15d
mov ecx, 7
call fcn.18000c5ec
jmp 0x180012fd0
mov esi, r12d
mov qword [rsp + 0x48], rsi
mov ebx, 0x30
mov eax, ebx
mul rsi
lea r15, [rbx - 0x31]
cmovo rax, r15
add rax, 8
cmovb rax, r15
mov rcx, rax
call fcn.180014580
mov qword [rsp + 0x40], rax
lea rcx, [fcn.180011ca0]
test rax, rax
je 0x180012b8f
mov qword [rax], rsi
add rax, 8
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x20], rcx
lea r9, [0x180011c80]
mov r8d, esi
mov edx, ebx
mov rcx, rax
call fcn.180014828
mov rbx, qword [rsp + 0x30]
jmp 0x180012b96
xor ebx, ebx
mov qword [rsp + 0x30], rbx
test rbx, rbx
jne 0x180012bab
lea edx, [rbx + 0xe]
mov edi, edx
mov r8d, 0xc3b4
jmp 0x180012b19
mov eax, 8
mul rsi
cmovo rax, r15
mov rcx, rax
call fcn.180014580
mov qword [rsp + 0x40], rax
test rax, rax
jne 0x180012be3
mov edx, ntohs
mov edi, edx
lea ecx, [rdx - 7]
mov r8d, 0xc3b4
call fcn.18000c5ec
jmp 0x180012f7a
mov eax, 8
mul rsi
cmovo rax, r15
mov rcx, rax
call fcn.180014580
mov r14, rax
mov qword [rsp + 0x38], rax
test rax, rax
je 0x180012bc9
xor r14d, r14d
or r15d, 0xffffffff
test r12d, r12d
je 0x180012e8d
add rbx, 0x24
mov r8d, dword [rbp + 0xc]
mov edx, dword [rbp + 8]
mov ecx, dword [rbp + 4]
call qword [sym.imp.WS2_32.dll_socket]
mov qword [rbx - 0xc], rax
cmp rax, 0xffffffffffffffff
jne 0x180012c43
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [rbx], eax
mov dword [rbx + 4], 5
jmp 0x180012c72
mov edx, 1
mov r8d, 0xfffffffe
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetHandleInformation]
test eax, eax
jne 0x180012c6c
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rbx], eax
mov dword [rbx + 4], 3
jmp 0x180012c72
mov qword [rbx - 0x1c], rbp
xor eax, eax
test eax, eax
jne 0x180012cca
lea rcx, [r14 + r14*2]
shl rcx, 4
mov rax, qword [rsp + 0x30]
add rax, rcx
mov qword [rsp + 0x48], rax
mov rcx, rax
call fcn.180011ef0
test eax, eax
jne 0x180012cca
mov rcx, qword [rsp + 0x48]
call fcn.180011d50
test eax, eax
je 0x180012cdf
cmp eax, 0x3e5
jne 0x180012cca
mov rax, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x40]
mov qword [rdx + r13*8], rax
mov rax, qword [rbx - 0x14]
mov rdx, qword [rsp + 0x38]
mov qword [rdx + r13*8], rax
inc r13d
mov rbp, qword [rbp + 0x28]
inc r14d
add rbx, 0x30
cmp r14d, r12d
jae 0x180012d06
jmp 0x180012c18
lea rcx, [r14 + r14*2]
shl rcx, 4
add rcx, qword [rsp + 0x30]
mov rax, qword [rcx + 0x18]
or qword [rcx + 0x18], 0xffffffffffffffff
mov rcx, qword [rsp + 0xb0]
mov qword [rcx + 0x30], rax
jmp 0x180012ec2
test r13d, r13d
je 0x180012e88
mov ebp, 0x5dc
mov ecx, dword [rsp + 0xb8]
mov r14, qword [rsp + 0x38]
mov r9d, ecx
xor r8d, r8d
mov rdx, r14
mov ecx, r13d
call qword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
mov ebx, eax
cmp eax, r13d
jae 0x180012e15
mov r10, qword [rsp + 0x40]
mov rdi, qword [r10 + rbx*8]
lea eax, [rbx + 1]
jmp 0x180012d6b
mov r9d, ebx
lea r8d, [rbx + 1]
mov ecx, ebx
mov rax, qword [r10 + r8*8]
mov qword [r10 + rcx*8], rax
mov rax, qword [r14 + r8*8]
mov qword [r14 + rcx*8], rax
mov ebx, r8d
lea eax, [r9 + 2]
cmp eax, r13d
jb 0x180012d4b
add r13d, r15d
mov byte [rdi + 0x20], 0
mov rcx, rdi
call fcn.180011e5c
test eax, eax
je 0x180012df9
mov ebx, dword [rsp + 0xc0]
cmp ebx, r15d
je 0x180012db8
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [rsp + 0xc8]
sub eax, ecx
cmp ebx, eax
jb 0x180012dcd
mov ecx, ebx
sub ecx, eax
cmp ecx, ebp
cmovb ecx, ebp
mov dword [rsp + 0xb8], ecx
test ecx, ecx
je 0x180012dcd
jmp 0x180012dbf
mov ecx, dword [rsp + 0xb8]
test r13d, r13d
je 0x180012e88
jmp 0x180012d20
mov edi, 0x102
mov edx, 1
mov ecx, edx
mov rax, qword [rsp + 0x30]
add rax, 0x28
cmp dword [rax], ecx
jle 0x180012deb
mov edi, dword [rax - 4]
mov ecx, dword [rax]
add rax, 0x30
sub rsi, rdx
jne 0x180012de2
jmp 0x180012eb0
mov rax, qword [rdi + 0x18]
or qword [rdi + 0x18], 0xffffffffffffffff
mov rcx, qword [rsp + 0xb0]
mov qword [rcx + 0x30], rax
xor edi, edi
jmp 0x180012ec2
cmp ebx, r15d
jne 0x180012e47
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov eax, 4
mov rcx, qword [rsp + 0x30]
add rcx, 0x28
lea edx, [rax - 3]
cmp dword [rcx], eax
jle 0x180012e3c
mov edi, dword [rcx - 4]
mov eax, dword [rcx]
add rcx, 0x30
sub rsi, rdx
jne 0x180012e33
jmp 0x180012eb0
mov eax, 4
mov edi, 0x102
cmp ebx, edi
lea edx, [rax - 3]
cmove eax, edx
mov rcx, qword [rsp + 0x30]
add rcx, 0x28
cmp dword [rcx], eax
jle 0x180012e6b
mov ebx, dword [rcx - 4]
mov eax, dword [rcx]
add rcx, 0x30
sub rsi, rdx
jne 0x180012e62
mov r8d, 0xc3b4
mov edx, ebx
lea ecx, [rsi + 7]
call fcn.18000c5ec
mov edi, ebx
jmp 0x180012ec2
mov rbx, qword [rsp + 0x30]
mov edi, r15d
xor ecx, ecx
test r12d, r12d
je 0x180012eb0
lea rax, [rbx + 0x28]
lea ebx, [rcx + 1]
cmp dword [rax], ecx
jle 0x180012ea7
mov edi, dword [rax - 4]
mov ecx, dword [rax]
add rax, 0x30
sub rsi, rbx
jne 0x180012e9e
mov r8d, 0xc3b4
mov edx, edi
mov ecx, 7
call fcn.18000c5ec
mov r14, qword [rsp + 0x38]
test r13d, r13d
je 0x180012f7a
mov rbx, qword [rsp + 0x40]
sub r14, rbx
mov ebp, r13d
mov r12d, r13d
mov r15d, 1
mov rsi, qword [rbx]
mov rcx, qword [rsi + 0x18]
cmp rcx, 0xffffffffffffffff
je 0x180012f1f
mov edx, r15d
call qword [sym.imp.WS2_32.dll_shutdown]
cmp eax, 0xffffffff
jne 0x180012f05
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov rcx, qword [rsi + 0x18]
call qword [sym.imp.WS2_32.dll_closesocket]
cmp eax, 0xffffffff
jne 0x180012f1a
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
or qword [rsi + 0x18], 0xffffffffffffffff
mov rax, qword [rbx]
mov rcx, qword [rax + 0x10]
mov qword [r14 + rbx], rcx
add rbx, 8
sub r12, r15
jne 0x180012ee4
or r15d, 0xffffffff
mov r9d, r15d
lea ebx, [r12 + 1]
mov r8d, ebx
mov r14, qword [rsp + 0x38]
mov rdx, r14
mov ecx, r13d
call qword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
cmp eax, r13d
jae 0x180012f6f
mov rcx, qword [rsp + 0x40]
mov rax, qword [rcx]
mov byte [rax + 0x20], 0
lea rcx, [rcx + 8]
sub rbp, rbx
jne 0x180012f5d
jmp 0x180012f7a
cmp eax, r15d
jne 0x180012f7a
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rax, qword [rsp + 0x30]
lea rbx, [rax - 8]
lea r9, [fcn.180011ca0]
mov r8, qword [rbx]
mov edx, 0x30
mov rcx, rax
call fcn.1800144a8
mov rax, qword [rbx]
lea rdx, [rax + rax*2]
shl rdx, 4
add rdx, 8
mov rcx, rbx
call fcn.180014464
mov rax, qword [rsp + 0x40]
test rax, rax
je 0x180012fc3
mov rcx, rax
call fcn.180014578
test r14, r14
je 0x180012fd0
mov rcx, r14
call fcn.180014578
mov eax, edi
add rsp, 0x68
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret