Function at 0x404ce0
Capabilities:
Create tcp socket
Create udp socket
Get common file path
Send data
Send data on socket
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff628
push esi
push edi
mov dword [ebp - 0x60], edx
mov dword [ebp - 0x5c], eax
mov eax, 0x4bda74
call fcn.0049df88
mov esi, 0x4b4360
lea edi, [ebp - 0x17c]
mov ecx, 0x41
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x64], 0xffffffff
mov dword [ebp - 0x68], 0x10
push 0x11
push 2
push 2
call sub.WSOCK32.DLL_socket
mov dword [ebp - 0x6c], eax
mov word [ebp - 0x48], 8
lea eax, [ebp - 8]
push eax
call fcn.0049c8fc
pop ecx
inc dword [ebp - 0x3c]
mov word [ebp - 0x48], 0x14
mov esi, 0x4b4464
lea edi, [ebp - 0x290]
mov ecx, 0x41
rep movsd dword es:[edi], dword [esi]
mov esi, 0x4b4568
lea edi, [ebp - 0x394]
mov ecx, 0x41
rep movsd dword es:[edi], dword [esi]
mov esi, 0x4b466c
lea edi, [ebp - 0x498]
mov ecx, 0x41
rep movsd dword es:[edi], dword [esi]
mov byte [ebp - 0x6d], 1
push 0x103
lea eax, [ebp - 0x290]
push eax
call sub.KERNEL32.DLL_GetSystemDirectoryA
lea edx, [ebp - 0x290]
push edx
push str._sIgTermOpt.log
lea ecx, [ebp - 0x394]
push ecx
call fcn.004a16bc
add esp, 0xc
call sub.KERNEL32.DLL_GetTickCount
push eax
lea eax, [ebp - 0x290]
push eax
push str._sIgTermOpt__lu.log
lea edx, [ebp - 0x498]
push edx
call fcn.004a16bc
add esp, 0x10
mov ecx, dword [ebp - 0x5c]
add ecx, 0xd7d
push ecx
push dword [ebp - 0x60]
call fcn.0049dac8
add esp, 8
mov esi, 0x4b4770
lea edi, [ebp - 0x8d4]
mov ecx, 0x10f
rep movsd dword es:[edi], dword [esi]
push 0
push 0x4bc9dc
call fcn.0049daf8
pop ecx
push eax
push 0x4bc9c6
push 0x43c
lea eax, [ebp - 0x8d4]
push eax
push dword [ebp - 0x60]
call fcn.0046c708
add esp, 0x18
mov edx, dword [ebp - 0x6c]
test edx, edx
jle 0x405175
mov word [ebp - 0x18c], 2
push dword [ebp - 0x5c]
call fcn.00404bf4
pop ecx
push eax
call sub.WSOCK32.DLL_htons
mov word [ebp - 0x18a], ax
mov esi, 0x4b4bac
lea edi, [ebp - 0x9d8]
mov ecx, 0x41
rep movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x9d8]
push eax
push dword [ebp - 0x5c]
call fcn.00404c80
add esp, 8
lea edx, [ebp - 0x17c]
push edx
lea ecx, [ebp - 0x9d8]
push ecx
call fcn.0040d088
add esp, 8
lea eax, [ebp - 0x17c]
push eax
call sub.WSOCK32.DLL_inet_addr
mov dword [ebp - 0x188], eax
mov edx, dword [ebp - 0x60]
mov ecx, dword [edx + 0x24]
test ecx, ecx
je 0x404ed7
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + 0xd74]
mov cl, byte [edx + 0x31]
test cl, cl
je 0x404ed7
push 0x10
lea eax, [ebp - 0x18c]
push eax
push 0
push 0x43c
lea edx, [ebp - 0x8d4]
push edx
push dword [ebp - 0x6c]
call sub.WSOCK32.DLL_sendto
mov dword [ebp - 0x64], eax
mov ecx, dword [ebp - 0x64]
test ecx, ecx
jle 0x404ed7
mov byte [ebp - 0x6d], 0
mov eax, dword [ebp - 0x60]
mov edx, dword [eax + 0x24]
test edx, edx
jne 0x405175
mov word [ebp - 0x48], 0x20
lea edx, [ebp - 0x394]
lea eax, [ebp - 0xc]
call fcn.004ad754
inc dword [ebp - 0x3c]
push dword [eax]
lea ecx, [ebp - 8]
push ecx
call fcn.0049c958
add esp, 8
and eax, 0xff
cmp eax, 1
sbb edx, edx
neg edx
push edx
dec dword [ebp - 0x3c]
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.004ad880
pop ecx
test cl, cl
je 0x405175
mov word [ebp - 0x48], 0x2c
lea edx, [ebp - 0x394]
lea eax, [ebp - 0x10]
call fcn.004ad754
inc dword [ebp - 0x3c]
push dword [eax]
lea ecx, [ebp - 8]
push ecx
call fcn.0049ca6c
add esp, 8
test eax, eax
setg al
and eax, 1
push eax
dec dword [ebp - 0x3c]
lea eax, [ebp - 0x10]
mov edx, 2
call fcn.004ad880
pop ecx
test cl, cl
je 0x405175
mov word [ebp - 0x48], 0x38
lea edx, [ebp - 0x498]
lea eax, [ebp - 0x14]
call fcn.004ad754
inc dword [ebp - 0x3c]
push dword [eax]
lea edx, [ebp - 0x394]
lea eax, [ebp - 0x18]
call fcn.004ad754
inc dword [ebp - 0x3c]
push dword [eax]
lea ecx, [ebp - 8]
push ecx
call fcn.0049cb88
add esp, 0xc
dec dword [ebp - 0x3c]
lea eax, [ebp - 0x18]
mov edx, 2
call fcn.004ad880
dec dword [ebp - 0x3c]
lea eax, [ebp - 0x14]
mov edx, 2
call fcn.004ad880
mov word [ebp - 0x48], 0x50
lea edx, [ebp - 0x498]
lea eax, [ebp - 0x1c]
call fcn.004ad754
inc dword [ebp - 0x3c]
push dword [eax]
lea ecx, [ebp - 8]
push ecx
call fcn.0049ca6c
add esp, 8
mov dword [ebp - 0x74], eax
dec dword [ebp - 0x3c]
lea eax, [ebp - 0x1c]
mov edx, 2
call fcn.004ad880
mov word [ebp - 0x48], 0x44
xor ecx, ecx
mov dword [ebp - 0x78], ecx
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x74]
cmp eax, edx
jge 0x40513a
push 0x43c
push dword [ebp - 0x78]
mov word [ebp - 0x48], 0x5c
lea edx, [ebp - 0x498]
lea eax, [ebp - 0x20]
call fcn.004ad754
inc dword [ebp - 0x3c]
push dword [eax]
lea ecx, [ebp - 8]
push ecx
call fcn.0049caf0
add esp, 0xc
push eax
lea eax, [ebp - 0x8d4]
push eax
call fcn.0049d8d8
add esp, 0xc
dec dword [ebp - 0x3c]
lea eax, [ebp - 0x20]
mov edx, 2
call fcn.004ad880
push 0x10
lea ecx, [ebp - 0x18c]
push ecx
push 0
push 0x43c
lea eax, [ebp - 0x8d4]
push eax
push dword [ebp - 0x6c]
call sub.WSOCK32.DLL_sendto
mov dword [ebp - 0x64], eax
mov edx, dword [ebp - 0x64]
test edx, edx
jg 0x405122
mov ecx, dword [ebp - 0x60]
mov eax, dword [ecx + 0x24]
test eax, eax
je 0x405122
mov word [ebp - 0x48], 0x68
lea edx, [ebp - 0x394]
lea eax, [ebp - 0x24]
call fcn.004ad754
inc dword [ebp - 0x3c]
push dword [eax]
lea edx, [ebp - 8]
push edx
call fcn.0049c958
add esp, 8
dec dword [ebp - 0x3c]
lea eax, [ebp - 0x24]
mov edx, 2
call fcn.004ad880
lea eax, [ebp - 0x8d4]
mov ecx, 0x10e
push dword [eax + ecx*4]
dec ecx
jns 0x4050e4
mov word [ebp - 0x48], 0x74
lea edx, [ebp - 0x394]
lea eax, [ebp - 0x28]
call fcn.004ad754
inc dword [ebp - 0x3c]
push dword [eax]
lea edx, [ebp - 8]
push edx
call fcn.0049c9e4
add esp, 0x444
dec dword [ebp - 0x3c]
lea eax, [ebp - 0x28]
mov edx, 2
call fcn.004ad880
push 0xa
call sub.KERNEL32.DLL_Sleep
inc dword [ebp - 0x78]
mov ecx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x74]
cmp ecx, eax
jl 0x405020
mov word [ebp - 0x48], 0x80
lea edx, [ebp - 0x498]
lea eax, [ebp - 0x2c]
call fcn.004ad754
inc dword [ebp - 0x3c]
push dword [eax]
lea edx, [ebp - 8]
push edx
call fcn.0049cc38
add esp, 8
dec dword [ebp - 0x3c]
lea eax, [ebp - 0x2c]
mov edx, 2
call fcn.004ad880
mov word [ebp - 0x48], 0x14
mov cl, byte [ebp - 0x6d]
test cl, cl
je 0x405208
mov eax, dword [ebp - 0x60]
mov edx, dword [eax + 0x24]
test edx, edx
je 0x405208
mov word [ebp - 0x48], 0x8c
lea edx, [ebp - 0x394]
lea eax, [ebp - 0x30]
call fcn.004ad754
inc dword [ebp - 0x3c]
push dword [eax]
lea ecx, [ebp - 8]
push ecx
call fcn.0049c958
add esp, 8
dec dword [ebp - 0x3c]
lea eax, [ebp - 0x30]
mov edx, 2
call fcn.004ad880
lea eax, [ebp - 0x8d4]
mov ecx, 0x10e
push dword [eax + ecx*4]
dec ecx
jns 0x4051ca
mov word [ebp - 0x48], 0x98
lea edx, [ebp - 0x394]
lea eax, [ebp - 0x34]
call fcn.004ad754
inc dword [ebp - 0x3c]
push dword [eax]
lea edx, [ebp - 8]
push edx
call fcn.0049c9e4
add esp, 0x444
dec dword [ebp - 0x3c]
lea eax, [ebp - 0x34]
mov edx, 2
call fcn.004ad880
push dword [ebp - 0x6c]
call sub.WSOCK32.DLL_closesocket
mov eax, dword [ebp - 0x64]
push eax
dec dword [ebp - 0x3c]
push 2
lea edx, [ebp - 8]
push edx
call fcn.0049c93c
add esp, 8
pop eax
mov edx, dword [ebp - 0x58]
mov dword fs:[0], edx
pop edi
pop esi
mov esp, ebp
pop ebp
ret