Function at 0x46f8d0
Capabilities:
Set socket configuration

Disassembly:
sub esp, 0x3b4
push ebx
push ebp
mov ebp, dword [esp + 0x3c0]
push esi
push edi
mov ebx, 1
push ebp
mov esi, ebx
mov dword [esp + 0x178], 0
call fcn.00772cb0
push 0x7fa81c
push eax
mov dword [esp + 0x20], eax
call fcn.0078e9a4
add esp, 0xc
lea edi, [esp + 0x178]
test eax, eax
je 0x46f93b
push eax
call fcn.005ed940
push 0x7fa81c
mov dword [edi], eax
push 0
inc esi
add edi, 4
call fcn.0078e9a4
add esp, 0xc
cmp esi, 0x13
jge 0x46f93b
cmp esi, 0x14
jl 0x46f912
cmp esi, ebx
jle 0x46fc1d
lea eax, [esp + 0x178]
dec esi
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], esi
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
push edx
call fcn.0078eb1b
mov esi, eax
push 0x7fb014
push esi
call fcn.0078d850
add esp, 0xc
test eax, eax
je 0x46f994
push 0x7fb014
push esi
call fcn.0078d850
add esp, 8
add eax, 3
push eax
call sub.WSOCK32.dll_inet_addr
mov dword [0x7fb018], eax
jmp 0x46fc03
push str.MULTI
push esi
call fcn.0078d850
add esp, 8
test eax, eax
je 0x46f9b4
push ebx
call fcn.0043cf80
add esp, 4
jmp 0x46fc03
push str.REGMOD
push esi
call fcn.0078d850
add esp, 8
test eax, eax
je 0x46fa03
push str.REGMOD
push esi
call fcn.0078d850
mov edi, eax
or ecx, 0xffffffff
add edi, 7
xor eax, eax
add esp, 8
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, 0x856094
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.00470150
jmp 0x46fc03
push str.SLAVE
push esi
call fcn.0078d850
add esp, 8
test eax, eax
je 0x46faec
mov edi, 0x856094
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x1c4]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push ebx
mov eax, ecx
mov esi, edi
mov edi, edx
push 0x81c668
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
mov edi, 0x81c668
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push str.SoftwareWestwoodRenegade
mov edx, ecx
mov esi, edi
mov edi, 0x856094
mov byte [0x82023c], 1
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov byte [0x85608c], 1
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.0043a1d0
add esp, 0xc
lea ecx, [esp + 0x28]
push eax
call fcn.005dbcb0
mov al, byte [esp + 0x28]
test al, al
je 0x46fab0
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push str.ProcessId
lea ecx, [esp + 0x2c]
call fcn.005dbdb0
lea edi, [esp + 0x1c4]
or ecx, 0xffffffff
xor eax, eax
mov byte [0x83dc04], 1
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, 0x856094
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x24]
call fcn.005dbd30
jmp 0x46fc03
push str.STARTSERVER
push esi
call fcn.0078d850
add esp, 8
test eax, eax
je 0x46fb0c
push esi
call fcn.0046ffd0
add esp, 4
jmp 0x46fc03
push str.GAMESPYSERVER
push esi
call fcn.0078d850
add esp, 8
test eax, eax
je 0x46fbea
push str.GAMESPYSERVER
push esi
call fcn.0078d850
mov edi, eax
or ecx, 0xffffffff
add edi, 0xe
xor eax, eax
add esp, 8
lea edx, [esp + 0x48]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x48]
push ecx
lea ecx, [esp + 0x30]
call fcn.005e71e0
push 0
lea ecx, [esp + 0x30]
call fcn.005e74d0
test al, al
je 0x46fbdf
lea edx, [esp + 0x48]
push edx
call fcn.00451b10
add esp, 4
push ebx
push str.WOLSettings
push 0
push str.SoftwareWestwoodRenegade
call fcn.0043a1d0
add esp, 0xc
lea ecx, [esp + 0x20]
push eax
call fcn.005dbcb0
mov al, byte [esp + 0x20]
test al, al
je 0x46fbc9
mov eax, dword [str.AutoRestartFlag]
push ebx
push eax
lea ecx, [esp + 0x24]
call fcn.005dbdb0
mov ecx, dword [str.AutoRestartType]
push 0
push ecx
lea ecx, [esp + 0x24]
call fcn.005dbdb0
lea ecx, [esp + 0x1c]
mov byte [0x82fd94], 1
mov dword [0x82fd54], ebx
call fcn.005dbd30
lea ecx, [esp + 0x2c]
call fcn.005e7290
jmp 0x46fc03
push str.NODX
push esi
call fcn.0078d850
add esp, 8
test eax, eax
je 0x46fc03
mov byte [0x81e33c], 1
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
add ecx, 4
dec eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], eax
jne 0x46f953
mov edx, dword [esp + 0x14]
push edx
call fcn.0078ec4f
push ebp
call fcn.00772cb0
push eax
call fcn.0078eb1b
mov ebx, eax
push 0x7fafc8
push ebx
mov dword [esp + 0x28], ebx
call fcn.0078d850
mov edx, eax
add esp, 0x14
test edx, edx
je 0x46fcff
mov al, byte [0x81c668]
mov ecx, 0x4a
mov byte [esp + 0x48], al
xor eax, eax
lea edi, [esp + 0x49]
mov ebp, 0x12f0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea ecx, [esp + 0x48]
stosb byte es:[edi], al
push ecx
mov edi, str.connect
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0x7f5210
add ecx, edx
push ecx
call fcn.0078c2ec
lea edx, [esp + 0x54]
push edx
call fcn.005ed940
lea eax, [esp + 0x58]
push 0x3a
push eax
call fcn.0078c230
mov esi, eax
add esp, 0x18
test esi, esi
je 0x46fcd8
mov byte [esi], 0
inc esi
push esi
call fcn.0078cee7
add esp, 4
test eax, eax
jne 0x46fccd
push esi
call fcn.0078cee7
add esp, 4
test eax, eax
jle 0x46fcd8
push esi
call fcn.0078cee7
add esp, 4
mov ebp, eax
lea ecx, [esp + 0x48]
push ecx
call sub.WSOCK32.dll_inet_addr
push eax
call fcn.004e42c0
push ebp
call fcn.004e42d0
mov ebp, dword [esp + 0x3d0]
add esp, 8
mov byte [0x82fd92], 1
push str.NETPLAYERNAME
push ebx
call fcn.0078d850
mov edx, eax
add esp, 8
test edx, edx
je 0x46fe01
mov edi, str.NetPlayerName
or ecx, 0xffffffff
xor eax, eax
sub ebp, ebx
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ebp, edx
add ecx, ebp
mov esi, ecx
mov bl, byte [ecx]
test bl, bl
je 0x46fd42
mov al, bl
cmp al, 0x20
jne 0x46fd42
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x46fd36
mov al, byte [esi]
test al, al
je 0x46fd58
cmp al, 0x22
je 0x46fd58
cmp al, 0x20
je 0x46fd58
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x46fd48
mov al, byte [esi]
test al, al
je 0x46fd7c
cmp al, 0x20
je 0x46fd7c
mov al, byte [esi + 1]
inc esi
test al, al
mov edx, esi
je 0x46fd7c
cmp al, 0x22
je 0x46fd78
mov al, byte [edx + 1]
inc edx
test al, al
jne 0x46fd6c
cmp esi, edx
jne 0x46fdaf
test bl, bl
mov esi, ecx
je 0x46fd90
mov al, bl
cmp al, 0x20
jne 0x46fd90
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x46fd84
push 0x20
push esi
call fcn.0078c230
mov edx, eax
add esp, 8
test edx, edx
jne 0x46fdaf
mov edi, esi
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edx, ecx
add edx, esi
mov al, byte [0x81c668]
mov ecx, 0x4a
mov byte [esp + 0x48], al
xor eax, eax
lea edi, [esp + 0x49]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, edx
lea ecx, [esp + 0x48]
sub edi, esi
push edi
push esi
push ecx
call fcn.0078cff0
add esp, 0xc
lea edx, [esp + 0x48]
mov ecx, 0x82d0b0
mov byte [esp + edi + 0x48], 0
push edx
call fcn.0041a3e0
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x3c8]
mov byte [0x82fd92], 1
push str.PASS
push ebx
call fcn.0078d850
mov esi, eax
add esp, 8
test esi, esi
je 0x46ffa3
push str.PASSWORD
push ebx
call fcn.0078d850
mov edx, eax
add esp, 8
test edx, edx
je 0x46fe46
mov edi, str.PASSWORD
or ecx, 0xffffffff
xor eax, eax
sub edx, ebx
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ebp, ecx
add edx, ebp
mov edi, edx
jmp 0x46fe5c
mov edi, str.PASS
or ecx, 0xffffffff
xor eax, eax
sub ebp, ebx
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ebp, esi
lea edi, [ecx + ebp]
mov cl, byte [edi]
mov esi, edi
test cl, cl
je 0x46fe72
mov al, cl
cmp al, 0x20
jne 0x46fe72
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x46fe66
mov al, byte [esi]
test al, al
je 0x46fe88
cmp al, 0x22
je 0x46fe88
cmp al, 0x20
je 0x46fe88
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x46fe78
mov al, byte [esi]
test al, al
je 0x46feac
cmp al, 0x20
je 0x46feac
mov al, byte [esi + 1]
inc esi
test al, al
mov edx, esi
je 0x46feac
cmp al, 0x22
je 0x46fea8
mov al, byte [edx + 1]
inc edx
test al, al
jne 0x46fe9c
cmp esi, edx
jne 0x46fedf
test cl, cl
mov esi, edi
je 0x46fec0
mov al, cl
cmp al, 0x20
jne 0x46fec0
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x46feb4
push 0x20
push esi
call fcn.0078c230
mov edx, eax
add esp, 8
test edx, edx
jne 0x46fedf
mov edi, esi
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edx, ecx
add edx, esi
mov al, byte [0x81c668]
mov ecx, 0x4a
mov byte [esp + 0x48], al
xor eax, eax
lea edi, [esp + 0x49]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, edx
lea ecx, [esp + 0x48]
sub edi, esi
push edi
push esi
push ecx
call fcn.0078cff0
mov edx, dword [0x809d3c]
add esp, 0xc
lea ecx, [esp + 0x10]
mov byte [esp + edi + 0x48], 0
push 0
push 0
mov dword [esp + 0x18], edx
call fcn.005dd7a0
mov eax, dword [esp + 0x10]
mov cx, word [0x83f43c]
lea edx, [esp + 0x48]
mov word [eax], cx
push edx
lea ecx, [esp + 0x14]
call fcn.005ddc50
mov eax, dword [esp + 0x10]
test eax, eax
mov esi, eax
je 0x46ff9a
push eax
call fcn.0078c685
mov edi, eax
add esp, 4
mov ecx, 0x82fd8c
lea ebp, [edi + 1]
push ebp
call fcn.005dd910
mov eax, dword [0x82fd8c]
mov ecx, dword [0x809d3c]
cmp eax, ecx
je 0x46ff82
mov ecx, 0x82fd8c
call fcn.0046ffc0
mov dword [eax + 4], edi
mov edi, dword [0x82fd8c]
lea ecx, [ebp + ebp]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x10]
call fcn.005dd990
push ebx
call fcn.0078ec4f
add esp, 4
mov al, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3b4
ret