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

Disassembly:
sub rsp, 0x28
mov eax, dword [reloc.WSOCK32.dll_inet_addr]
add eax, 2
movsxd rcx, eax
imul rcx, rcx, 0xc8
call fcn.1400c534c
mov qword [0x14012ab30], rax
mov rdx, rax
test rax, rax
jne 0x140046e40
add rsp, 0x28
ret
mov rax, qword [0x1401241d8]
lea rcx, [rdx + 0x80]
inc dword [0x14012ab58]
lea r9, [0x1400049b0]
mov qword [rsp + 0x30], rbx
mov r8d, 0x4ef6d80
mov qword [rsp + 0x38], rbp
xor ebp, ebp
movups xmm0, xmmword [rax]
mov qword [0x1401241d8], rdx
mov qword [rsp + 0x40], rsi
movups xmmword [rdx], xmm0
mov qword [rsp + 0x20], rdi
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rdx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rdx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rdx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rdx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rdx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rdx + 0x60], xmm0
movups xmm0, xmmword [rax + 0x70]
movups xmmword [rcx - 0x10], xmm0
movups xmm1, xmmword [rax + 0x80]
movups xmmword [rcx], xmm1
movups xmm0, xmmword [rax + 0x90]
movups xmmword [rcx + 0x10], xmm0
movups xmm1, xmmword [rax + 0xa0]
movups xmmword [rcx + 0x20], xmm1
movups xmm0, xmmword [rax + 0xb0]
movups xmmword [rcx + 0x30], xmm0
mov rax, qword [rax + 0xc0]
mov qword [rcx + 0x40], rax
mov rcx, qword [0x14012ab78]
mov qword [rdx + 0x80], rbp
lea edx, [rbp + 0xe]
call qword [sym.imp.USER32.dll_SetTimer]
cmp qword [0x14012c670], rbp
jne 0x140046f1a
lea esi, [rbp + 1]
jmp 0x140046fec
mov rax, qword [0x1401241d8]
mov byte [rax + 0x7f], bpl
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov rcx, qword [0x1401241d8]
mov dword [rcx + 0x74], eax
mov dword [rcx + 0x70], WSAAsyncSelect
mov byte [0x14012ce0d], 1
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov rcx, qword [0x140126aa8]
cmp rcx, qword [0x140126ab0]
mov dword [0x14012ce28], eax
jne 0x140046f6b
call fcn.140007a08
mov rcx, qword [0x140126aa8]
cmp rcx, qword [0x140126aa0]
jb 0x140046f85
mov rax, qword [0x14012cd28]
mov qword [rcx], rax
mov rcx, qword [0x140126aa8]
add rcx, 0x18
lea rax, [0x140102f38]
mov qword [0x140126aa8], rcx
xor r9d, r9d
xor r8d, r8d
mov qword [rcx], rbp
mov qword [rcx + 8], rax
lea edx, [r9 + 1]
mov dword [rcx + 0x10], ebp
mov rcx, qword [0x14012c670]
call fcn.14005e1e0
mov rcx, qword [0x140126aa8]
mov esi, eax
sub rcx, 0x18
cmp rcx, qword [0x140126aa0]
mov qword [0x140126aa8], rcx
jb 0x140046fe5
mov rcx, qword [rcx]
mov qword [0x140126ac8], rcx
mov qword [0x14012cd28], rcx
mov byte [0x14012ce0d], bpl
mov rbx, qword [0x1401241d8]
dec dword [0x14012ab58]
mov rdi, qword [rbx + 0x58]
test rdi, rdi
je 0x140047038
cmp dword [rdi + 0x10], 5
jne 0x140047011
mov rcx, qword [rdi]
mov rax, qword [rcx]
call qword [rax + reloc.WSOCK32.dll_recv]
mov rcx, qword [rdi + 0x20]
test rcx, rcx
je 0x14004701f
call fcn.1400c5338
mov rcx, qword [rbx + 0x58]
mov edx, reloc.WSOCK32.dll_getservbyport
call fcn.1400be50c
mov qword [rbx + 0x58], rbp
mov rbx, qword [0x1401241d8]
mov rdi, qword [rsp + 0x20]
mov eax, esi
mov rsi, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x38]
mov dword [rbx + 0x68], 0x80000000
mov rbx, qword [rsp + 0x30]
add rsp, 0x28
ret