Function at 0x503f90
Capabilities:
Create udp socket
Get hostname
Initialize winsock library
Resolve dns
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push ebx
mov ebx, ecx
mov ecx, 4
mov dword [0x67d050], ecx
mov eax, dword [ebx + 0xb8]
add eax, 0x2c
mov eax, dword [eax + 4]
test eax, eax
push esi
push edi
jne 0x503dbb
mov eax, 0x6264b0
mov edx, eax
call fcn.00545ea0
test al, al
je 0x503f15
xor edx, edx
xor ecx, ecx
call fcn.00547170
test al, al
je 0x503f15
mov ecx, dword [0x681d68]
mov eax, dword [ecx]
push 1
lea edx, [ebp - 0x28]
push edx
call dword [eax + 0x9c]
mov eax, dword [ebp - 4]
add eax, 0x64
mov dword [ebx + 0x64], eax
cmp dword [0x67d050], 2
jne 0x503e08
mov dword [ebx + 0x64], 0x3e8
mov esi, dword [ebx + 0x5c]
mov eax, dword [esi + 0x10]
xor edi, edi
test eax, eax
jbe 0x503e2d
mov edx, dword [esi]
push edi
mov ecx, esi
call dword [edx + 8]
push eax
call fcn.005f8040
mov eax, dword [esi + 0x10]
add esp, 4
inc edi
cmp edi, eax
jb 0x503e14
mov eax, dword [esi + 8]
test eax, eax
je 0x503e3d
push eax
call fcn.005f8040
add esp, 4
mov edi, dword [sym.imp.user32.dll_ShowCursor]
xor eax, eax
push 1
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
call edi
xor esi, esi
mov edx, dword [ebx + 0x64]
mov ecx, dword [0x681d68]
mov eax, dword [ecx]
push 0x42
push edx
mov edx, dword [ebx + 0x5c]
push edx
call dword [eax + 0x68]
mov ecx, dword [0x681d68]
mov edx, dword [ecx + 0x40]
neg al
sbb al, al
inc al
cmp edx, 0x88770118
je 0x503ec0
test al, al
jne 0x503ec0
test esi, esi
jne 0x503e9f
mov ecx, dword [0x67d8ac]
push 0x258
push 0x320
push esi
push esi
call fcn.005f0150
mov ecx, dword [ebx + 0x5c]
mov edx, dword [ecx]
call dword [edx + 0x18]
test eax, eax
ja 0x503ec0
test esi, esi
jne 0x503eba
push 0x1f4
call dword [sym.imp.kernel32.dll_Sleep]
inc esi
cmp esi, 2
jl 0x503e54
mov ecx, dword [ebx + 0x5c]
mov eax, dword [ecx]
call dword [eax + 0x18]
test eax, eax
push 0
jne 0x503f4b
call edi
mov ecx, dword [0x68ba40]
mov eax, dword [ecx + 0x20]
mov ecx, dword [eax + 0x724]
push 0
push 0xffffffffffffffff
push 0
push 0xffffffffffffffff
push 0
push 0xffffffffffffffff
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
mov edx, 1
call fcn.004ea100
call fcn.00545f20
pop edi
pop esi
mov dword [0x67d050], 4
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x68ba40]
mov eax, dword [ecx + 0x20]
mov ecx, dword [eax + 0x708]
push 0
push 0xffffffffffffffff
push 0
push 0xffffffffffffffff
push 0
push 0xffffffffffffffff
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
mov edx, 1
call fcn.004ea100
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret
call edi
mov ecx, dword [ebx + 0x5c]
mov edx, dword [ecx]
push 0
call dword [edx + 8]
mov ecx, dword [0x681d68]
mov edx, dword [ecx]
push 0
add eax, 4
push eax
call dword [edx + 0x10]
test al, al
je 0x503fc8
mov ecx, dword [0x681d68]
mov eax, dword [ecx]
push 0
push 0
push 0
push 0x67cbef
call dword [eax + 0x1c]
or ecx, 0xffffffff
mov dword [0x681b78], eax
xor eax, eax
mov edi, 0x67cbef
repne scasb al, byte es:[edi]
mov eax, dword [0x681d68]
not ecx
sub edi, ecx
mov edx, ecx
shr ecx, 2
mov esi, edi
mov edi, 0x681b7c
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [eax + 0x40]
test ecx, ecx
jne 0x503fc8
pop edi
pop esi
mov dword [ebx + 0x60], 0
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x68ba40]
mov eax, dword [ecx + 0x20]
mov ecx, dword [eax + 0x720]
push 0
push 0xffffffffffffffff
push 0
push 0xffffffffffffffff
push 0
push 0xffffffffffffffff
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
mov edx, 1
call fcn.004ea100
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret