Function at 0x451b60
Capabilities:
Set socket configuration

Disassembly:
sub esp, 0xa88
mov al, byte [0x81f5ec]
push ebx
push ebp
push esi
test al, al
push edi
mov ebp, 1
mov byte [esp + 0x13], 1
mov byte [0x81f56c], 0
je 0x452b88
mov bl, byte [esp + 0xa9c]
test bl, bl
je 0x451ba5
push str.Applying_server_settings_n
push 0x81e228
call fcn.00435b00
add esp, 8
push 0x81f368
lea ecx, [esp + 0x54]
call fcn.005e71e0
push 0
lea ecx, [esp + 0x54]
call fcn.005e74d0
test al, al
jne 0x451bf9
push 0x81f368
push str.Error___server_startup_file__s_not_found___aborting_n
push 0x81e228
call fcn.00435b00
add esp, 0xc
mov ecx, 0x81e228
call fcn.00436ad0
lea ecx, [esp + 0x50]
call fcn.005e7290
xor al, al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa88
ret
lea eax, [esp + 0x50]
lea ecx, [esp + 0x1c]
push eax
call fcn.005dec30
mov edx, dword [str.Config]
mov eax, dword [str.Server]
lea ecx, [esp + 0x10c]
push 0x104
push ecx
push 0x81c668
push edx
push eax
lea ecx, [esp + 0x30]
call fcn.005e1de0
lea edi, [esp + 0x10c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
jne 0x451c58
test bl, bl
je 0x451c58
push str.No_master_server_settings_specified___using_defaults_n
push 0x81e228
call fcn.00435b00
add esp, 8
mov edx, dword [str.Server]
lea ecx, [esp + 0x6c]
push 0x20
push ecx
push 0x7f5320
push str.GameType
push edx
lea ecx, [esp + 0x30]
call fcn.005e1de0
mov al, byte [0x82fd94]
test al, al
je 0x451ca8
mov edi, str.GameSpy
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x6c]
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 + 0x6c]
push 0x7f5320
push ecx
call fcn.0078d660
add esp, 8
test eax, eax
jne 0x451cca
mov dword [0x81f5f0], 2
jmp 0x451d21
lea edx, [esp + 0x6c]
push 0x7f5324
push edx
call fcn.0078d660
add esp, 8
test eax, eax
jne 0x451cec
mov byte [esp + 0x13], al
mov dword [0x81f5f0], ebp
jmp 0x451d21
lea eax, [esp + 0x6c]
push str.GameSpy
push eax
call fcn.0078d660
add esp, 8
test eax, eax
jne 0x452bcc
mov byte [esp + 0x13], al
mov byte [0x82fd94], 1
mov dword [0x82fd54], ebp
mov dword [0x81f5f0], 3
mov edx, dword [str.master.gamespy.com:27900__master.udpsoft.com:27900]
mov eax, dword [str.Server]
lea ecx, [esp + 0x898]
push 0x1ff
push ecx
push edx
push str.HeartBeatServers
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0xaab], 0
call fcn.005e1de0
lea ecx, [esp + 0x898]
push ecx
mov ecx, 0x82fd40
call fcn.004e3ab0
test eax, eax
jne 0x451d78
mov edx, dword [str.master.gamespy.com:27900__master.udpsoft.com:27900]
mov ecx, 0x82fd40
push edx
call fcn.004e3ab0
lea eax, [esp + 0x10c]
lea ecx, [esp + 0x614]
push eax
push str.data_s
push ecx
call fcn.0078cdc6
add esp, 0xc
lea edx, [esp + 0x614]
lea ecx, [esp + 0x50]
push edx
call fcn.005e7370
push 0
lea ecx, [esp + 0x54]
call fcn.005e74d0
test al, al
jne 0x451dde
lea eax, [esp + 0x614]
push eax
push str.Error___server_settings_file__s_not_found___aborting_n
push 0x81e228
call fcn.00435b00
add esp, 0xc
mov ecx, 0x81e228
call fcn.00436ad0
jmp 0x452b19
push 2
call fcn.00475710
mov esi, eax
add esp, 4
test esi, esi
je 0x451ea1
mov ecx, dword [0x809d38]
lea edx, [esp + 0x10c]
test edx, edx
mov dword [esp + 0x18], ecx
je 0x451e28
lea edi, [esp + 0x10c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
test ecx, ecx
jle 0x451e28
inc ecx
push eax
push ecx
lea ecx, [esp + 0x20]
call fcn.005dcfa0
lea eax, [esp + 0x10c]
lea ecx, [esp + 0x18]
push eax
call fcn.00409020
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esi + 0x214]
call fcn.0041f5a0
lea ecx, [esp + 0x18]
call fcn.005dd410
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x2c]
mov eax, dword [0x809d3c]
push 0
push 0
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1c], eax
call fcn.005dd7a0
mov edx, dword [esp + 0x14]
mov cx, word [0x83f43c]
push ebp
mov word [edx], cx
mov eax, dword [esi]
lea ecx, [esp + 0x18]
push ecx
mov ecx, esi
call dword [eax + 0x6c]
mov edx, dword [esi]
push ebp
mov ecx, esi
mov bl, al
call dword [edx + 8]
lea ecx, [esp + 0x14]
call fcn.005dd990
test bl, bl
jne 0x451eb3
lea eax, [esp + 0x10c]
push eax
push str.Error___server_settings_file__s_contains_errors___aborting_n
jmp 0x451dc2
mov al, byte [esp + 0xa9c]
test al, al
je 0x451fbf
call fcn.00477ca0
test eax, eax
je 0x451fbf
mov ecx, dword [0x809d38]
lea edx, [esp + 0x10c]
test edx, edx
mov dword [esp + 0x14], ecx
je 0x451f50
lea edi, [esp + 0x10c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
test ecx, ecx
jle 0x451f05
inc ecx
push eax
push ecx
lea ecx, [esp + 0x1c]
call fcn.005dcfa0
lea edi, [esp + 0x10c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov esi, ecx
lea ecx, [esp + 0x14]
lea ebp, [esi + 1]
push ebp
call fcn.005dd330
mov edi, dword [esp + 0x14]
mov eax, dword [0x809d38]
cmp edi, eax
je 0x451f39
mov dword [edi - 4], esi
mov edi, dword [esp + 0x14]
mov ecx, ebp
lea esi, [esp + 0x10c]
mov eax, ecx
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.00477ca0
mov edx, dword [esp + 0x14]
mov ebp, eax
mov eax, dword [0x809d38]
add ebp, 0x214
xor esi, esi
cmp edx, eax
je 0x451f84
mov esi, dword [edx - 4]
test esi, esi
jne 0x451f84
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov esi, ecx
mov dword [edx - 4], esi
lea edi, [esi + 1]
mov ecx, ebp
push edi
call fcn.005dd330
mov eax, dword [ebp]
mov ecx, dword [0x809d38]
cmp eax, ecx
je 0x451f9f
mov dword [eax - 4], esi
mov esi, dword [esp + 0x14]
mov ecx, edi
mov edi, dword [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 + 0x14]
call fcn.005dd410
push 1
push str.WOLSettings
push 0
push str.SoftwareWestwoodRenegade
call fcn.0043a1d0
add esp, 0xc
lea ecx, [esp + 0x30]
push eax
call fcn.005dbcb0
mov al, byte [esp + 0x30]
test al, al
je 0x452025
mov eax, dword [str.AutoRestartFlag]
push 1
push eax
lea ecx, [esp + 0x34]
call fcn.005dbdb0
mov eax, dword [0x81f5f0]
dec eax
je 0x452013
dec eax
je 0x452008
dec eax
je 0x452013
jmp 0x452025
mov ecx, dword [str.AutoRestartType]
push 1
push ecx
jmp 0x45201c
mov edx, dword [str.AutoRestartType]
push 0
push edx
lea ecx, [esp + 0x34]
call fcn.005dbdb0
mov ecx, dword [str.Server]
lea eax, [esp + 0x210]
push 0x80
push eax
push 0x81c668
push str.Nickname
push ecx
lea ecx, [esp + 0x30]
call fcn.005e1de0
mov eax, dword [str.Server]
lea edx, [esp + 0x718]
push 0x80
push edx
push 0x81c668
push str.Password
push eax
lea ecx, [esp + 0x30]
call fcn.005e1de0
mov edx, dword [str.Server]
lea ecx, [esp + 0x8c]
push 0x80
push ecx
push 0x81c668
push str.Serial
push edx
lea ecx, [esp + 0x30]
call fcn.005e1de0
mov eax, dword [str.Server]
push 0xffffffffffffffff
push str.Port
push eax
lea ecx, [esp + 0x28]
call fcn.005e10b0
mov cl, byte [esp + 0x13]
mov dword [esp + 0x44], eax
test cl, cl
je 0x4520ed
cmp eax, 0xffffffff
je 0x4520ed
test eax, eax
jl 0x4520cb
cmp eax, 0xffff
jle 0x4520ed
push eax
push str.Error___Invalid_port_number__d_specified_for_master_server___aborting_n
push 0x81e228
call fcn.00435b00
add esp, 0xc
mov ecx, 0x81e228
call fcn.00436ad0
jmp 0x452b10
mov eax, dword [0x82db50]
mov ecx, dword [str.Server]
push eax
push str.GameSpyQueryPort
push ecx
lea ecx, [esp + 0x28]
call fcn.005e10b0
mov esi, eax
test esi, esi
jne 0x452116
mov esi, dword [0x82db50]
test esi, esi
jl 0x452bc1
cmp esi, 0xffff
jg 0x452bc1
push esi
mov ecx, 0x82db50
call fcn.0041a110
mov eax, dword [0x82e138]
mov edx, dword [str.Server]
push eax
push str.GameSpyGamePort
push edx
lea ecx, [esp + 0x28]
call fcn.005e10b0
test eax, eax
jne 0x452159
mov eax, dword [0x82e138]
test eax, eax
jl 0x452bb6
cmp eax, 0xffff
jg 0x452bb6
cmp eax, esi
je 0x452bb6
push eax
mov ecx, 0x82e138
call fcn.0041a110
mov eax, dword [str.Server]
push 0xffffffffffffffff
push str.BandwidthUp
push eax
lea ecx, [esp + 0x28]
call fcn.005e10b0
test eax, eax
mov dword [esp + 0x48], eax
je 0x4521c8
cmp eax, 0xffffffff
je 0x4521c8
cmp eax, 0x8340
jge 0x4521c8
push str.Error___Insufficient_bandwidth_specified_for_master_server___aborting_n
push 0x81e228
call fcn.00435b00
add esp, 8
mov ecx, 0x81e228
call fcn.00436ad0
jmp 0x452b10
mov ecx, dword [str.Server]
push 7
push str.DiskLogSize
push ecx
lea ecx, [esp + 0x28]
mov dword [0x81f5f4], eax
call fcn.005e10b0
cmp eax, 0x16d
mov dword [0x7f9344], eax
jle 0x452211
push str.Error___Disk_log_size_too_large___aborting_n
push 0x81e228
call fcn.00435b00
add esp, 8
mov ecx, 0x81e228
call fcn.00436ad0
jmp 0x452b10
mov edx, dword [str.Server]
push 0x100
push 0x81f46c
push 0x81c668
push str.LoginServer
push edx
lea ecx, [esp + 0x30]
call fcn.005e1de0
mov eax, dword [str.Server]
push 8
push str.NetUpdateRate
push eax
lea ecx, [esp + 0x28]
call fcn.005e10b0
cmp eax, 5
jl 0x452b95
cmp eax, 0x1e
jg 0x452b95
push eax
mov ecx, 0x82d370
call fcn.0041a110
mov ecx, dword [str.Server]
push 0
push str.AllowRemoteAdmin
push ecx
lea ecx, [esp + 0x28]
call fcn.005e27a0
push 1
push str.NetworkingServerControl
push 0
push str.SoftwareWestwoodRenegade
mov bl, al
call fcn.0043a1d0
add esp, 0xc
lea ecx, [esp + 0x40]
push eax
call fcn.005dbcb0
test bl, bl
je 0x4523e5
mov eax, dword [str.Server]
lea edx, [esp + 0x594]
push 0x80
push edx
push 0x81c668
push str.RemoteAdminPassword
push eax
lea ecx, [esp + 0x30]
call fcn.005e1de0
lea edi, [esp + 0x594]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
jne 0x4522f9
push str.Error___Remote_admin_password_must_be_specified___aborting_n
push 0x81e228
call fcn.00435b00
add esp, 8
jmp 0x452afd
cmp ecx, 0x1f
jle 0x452315
push str.Error___Remote_admin_password_too_long___aborting_n
push 0x81e228
call fcn.00435b00
add esp, 8
jmp 0x452afd
mov ecx, dword [str.Server]
push 0
push str.RemoteAdminPort
push ecx
lea ecx, [esp + 0x28]
call fcn.005e10b0
test eax, eax
je 0x452355
cmp eax, 0x400
jl 0x45233e
cmp eax, 0xfff7
jle 0x452355
push str.Error___Remote_admin_port_number_out_of_range___aborting_n
push 0x81e228
call fcn.00435b00
add esp, 8
jmp 0x452afd
test eax, eax
mov byte [0x86a5a3], 1
jne 0x452365
mov eax, 0xf9ff
push eax
push str.ControlPort
lea ecx, [esp + 0x44]
call fcn.005dbdb0
lea edx, [esp + 0x594]
lea ecx, [esp + 0x3c]
push edx
push str.ControlPassword
call fcn.005dc0e0
push 0
push str.ControlLoopbackOnly
lea ecx, [esp + 0x44]
call fcn.005dbdb0
mov ecx, dword [str.Server]
lea eax, [esp + 0x818]
push 0x80
push eax
push str.0.0.0.0
push str.RemoteAdminIP
push ecx
lea ecx, [esp + 0x30]
call fcn.005e1de0
lea edx, [esp + 0x818]
push edx
call sub.WSOCK32.dll_inet_addr
push eax
call sub.WSOCK32.dll_ntohl
push eax
push str.ControlIP
lea ecx, [esp + 0x44]
call fcn.005dbdb0
jmp 0x4523fc
push 1
push str.ControlLoopbackOnly
lea ecx, [esp + 0x44]
call fcn.005dbdb0
mov byte [0x86a5a3], 0
mov bl, byte [esp + 0x13]
test bl, bl
je 0x452621
lea edi, [esp + 0x8c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x452541
mov eax, dword [0x809d38]
lea ecx, [esp + 0x8c]
test ecx, ecx
mov dword [esp + 0x14], eax
je 0x452446
lea edi, [esp + 0x8c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
jmp 0x452448
xor ecx, ecx
inc ecx
push 1
push ecx
lea ecx, [esp + 0x1c]
call fcn.005dcfa0
lea edx, [esp + 0x8c]
test edx, edx
je 0x4524ab
lea edi, [esp + 0x8c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov esi, ecx
lea ecx, [esp + 0x14]
lea ebp, [esi + 1]
push ebp
call fcn.005dd330
mov edi, dword [esp + 0x14]
mov eax, dword [0x809d38]
cmp edi, eax
je 0x452494
mov dword [edi - 4], esi
mov edi, dword [esp + 0x14]
mov ecx, ebp
lea esi, [esp + 0x8c]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [0x809d38]
push 0
mov dword [esp + 0x1c], ecx
push 0
lea ecx, [esp + 0x20]
call fcn.005dcfa0
mov edx, dword [esp + 0x18]
mov al, byte [0x83ec0c]
lea ecx, [esp + 0x18]
push 1
push ecx
push ecx
mov byte [edx], al
mov ecx, esp
lea edx, [esp + 0x20]
push 0
push edx
call fcn.004025d0
call fcn.00452bf0
add esp, 0xc
push 1
push 0x81c668
push 0
push str.SoftwareWestwoodRenegade
call fcn.0043a1d0
add esp, 0xc
lea ecx, [esp + 0x38]
push eax
call fcn.005dbcb0
mov al, byte [esp + 0x38]
test al, al
je 0x452526
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x34]
push eax
push str.Serial
call fcn.005dc0e0
lea ecx, [esp + 0x34]
call fcn.005dbd30
lea ecx, [esp + 0x18]
call fcn.005dd410
lea ecx, [esp + 0x14]
call fcn.005dd410
lea edi, [esp + 0x210]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x4525d0
push 1
push str.WOLSettings
push eax
push str.SoftwareWestwoodRenegade
call fcn.0043a1d0
add esp, 0xc
lea ecx, [esp + 0x38]
push eax
call fcn.005dbcb0
mov al, byte [esp + 0x38]
test al, al
je 0x4525c7
lea ecx, [esp + 0x210]
push ecx
push str.AutoLogin
lea ecx, [esp + 0x3c]
call fcn.005dc0e0
lea edx, [esp + 0x210]
lea ecx, [esp + 0x34]
push edx
push str.LastLogin
call fcn.005dc0e0
push 0
push str.AutoLoginPrompt
lea ecx, [esp + 0x3c]
call fcn.005dbdb0
lea eax, [esp + 0x210]
push eax
call fcn.00440420
add esp, 4
lea ecx, [esp + 0x34]
call fcn.005dbd30
lea ecx, [esp + 0x718]
push ecx
call fcn.004404e0
mov esi, dword [esp + 0x48]
add esp, 4
cmp esi, 0xffffffff
je 0x452621
push 1
push str.NetworkingFirewall
push 0
push str.SoftwareWestwoodRenegade
call fcn.0043a1d0
add esp, 0xc
lea ecx, [esp + 0x38]
push eax
call fcn.005dbcb0
push esi
push str.ForcePort
lea ecx, [esp + 0x3c]
call fcn.005dbdb0
lea ecx, [esp + 0x34]
call fcn.005dbd30
mov esi, dword [esp + 0x48]
cmp esi, 0xffffffff
je 0x4526fb
push 1
push str.NetworkingOptions
push 0
push str.SoftwareWestwoodRenegade
call fcn.0043a1d0
add esp, 0xc
lea ecx, [esp + 0x4c]
push eax
call fcn.005dbcb0
mov al, byte [esp + 0x4c]
test al, al
je 0x4526f2
call fcn.004e42e0
test al, al
je 0x452674
test esi, esi
jne 0x45266c
mov esi, 0xf4240
push esi
call fcn.00470120
jmp 0x4526ef
test bl, bl
je 0x4526e8
push 0x6a
push str.BandwidthType
lea ecx, [esp + 0x50]
call fcn.005dbdb0
test esi, esi
jne 0x452697
mov al, byte [esp + 0xa9c]
test al, al
jne 0x4526f2
push 1
push str.Bandtest
push 0
push str.SoftwareWestwoodRenegade
call fcn.0043a1d0
add esp, 0xc
lea ecx, [esp + 0x38]
push eax
call fcn.005dbcb0
mov al, byte [esp + 0x38]
test al, al
je 0x4526dd
push esi
push 0x7f8c44
lea ecx, [esp + 0x3c]
call fcn.005dbdb0
push esi
push str.Down
lea ecx, [esp + 0x3c]
call fcn.005dbdb0
lea ecx, [esp + 0x34]
call fcn.005dbd30
jmp 0x4526f2
push 0x69
call fcn.004700a0
add esp, 4
lea ecx, [esp + 0x48]
call fcn.005dbd30
mov al, byte [esp + 0xa9c]
test al, al
je 0x452710
mov ecx, 0x81f5f8
call fcn.00453da0
xor ebp, ebp
mov dword [esp + 0x44], ebp
mov edx, dword [str.Slave]
lea ebx, [ebp + 1]
push ebx
push edx
lea eax, [esp + 0x41c]
push str._s_d
push eax
mov byte [esp + 0x2a0], 0
mov byte [esp + 0x3a4], 0
mov byte [esp + 0x524], 0
xor edi, edi
or esi, 0xffffffff
mov dword [esp + 0x58], ebx
call fcn.0078cdc6
add esp, 0x10
lea ecx, [esp + 0x414]
push edi
push str.Enable
push ecx
lea ecx, [esp + 0x28]
call fcn.005e27a0
test al, al
mov byte [esp + 0x34], al
je 0x452a69
mov eax, dword [str.Config]
lea edx, [esp + 0x290]
push 0x104
push edx
push 0x81c668
lea ecx, [esp + 0x420]
push eax
push ecx
lea ecx, [esp + 0x30]
call fcn.005e1de0
lea edi, [esp + 0x290]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x452956
lea edx, [esp + 0x290]
lea eax, [esp + 0x614]
push edx
push str.data_s
push eax
call fcn.0078cdc6
add esp, 0xc
lea ecx, [esp + 0x614]
push ecx
lea ecx, [esp + 0x54]
call fcn.005e7370
push 0
lea ecx, [esp + 0x54]
call fcn.005e74d0
test al, al
je 0x452ab9
push 2
call fcn.00475710
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x452ac8
mov edx, dword [0x809d38]
lea eax, [esp + 0x290]
test eax, eax
mov dword [esp + 0x14], edx
je 0x452894
lea edi, [esp + 0x290]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
test ecx, ecx
jle 0x452845
inc ecx
push eax
push ecx
lea ecx, [esp + 0x1c]
call fcn.005dcfa0
lea edi, [esp + 0x290]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
lea ecx, [esp + 0x14]
lea esi, [ebx + 1]
push esi
call fcn.005dd330
mov edi, dword [esp + 0x14]
mov eax, dword [0x809d38]
cmp edi, eax
je 0x452879
mov dword [edi - 4], ebx
mov edi, dword [esp + 0x14]
mov ecx, esi
lea esi, [esp + 0x290]
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]
mov edx, dword [esp + 0x14]
mov eax, dword [0x809d38]
xor esi, esi
cmp edx, eax
lea ebx, [ebp + 0x214]
je 0x4528bd
mov esi, dword [edx - 4]
test esi, esi
jne 0x4528bd
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov esi, ecx
mov dword [edx - 4], esi
lea edi, [esi + 1]
mov ecx, ebx
push edi
call fcn.005dd330
mov eax, dword [ebx]
mov ecx, dword [0x809d38]
cmp eax, ecx
je 0x4528d7
mov dword [eax - 4], esi
mov esi, dword [esp + 0x14]
mov ecx, edi
mov edi, dword [ebx]
mov eax, ecx
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 + 0x14]
call fcn.005dd410
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x2c]
mov eax, dword [0x809d3c]
push 0
push 0
lea ecx, [esp + 0x20]
mov dword [esp + 0x20], eax
call fcn.005dd7a0
mov edx, dword [esp + 0x18]
mov cx, word [0x83f43c]
push 1
mov word [edx], cx
mov eax, dword [ebp]
lea ecx, [esp + 0x1c]
push ecx
mov ecx, ebp
call dword [eax + 0x6c]
mov edx, dword [ebp]
push 1
mov ecx, ebp
mov bl, al
call dword [edx + 8]
lea ecx, [esp + 0x18]
call fcn.005dd990
test bl, bl
je 0x452ac8
mov ebx, dword [esp + 0x48]
mov ebp, dword [esp + 0x44]
lea eax, [esp + 0x394]
push 0x80
push eax
push 0x81c668
lea ecx, [esp + 0x420]
push str.Nickname
push ecx
lea ecx, [esp + 0x30]
call fcn.005e1de0
mov al, byte [esp + 0x13]
test al, al
je 0x45299d
lea edi, [esp + 0x394]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x452ad7
lea edx, [esp + 0x514]
push 0x80
push edx
push 0x81c668
lea eax, [esp + 0x420]
push str.Serial
push eax
lea ecx, [esp + 0x30]
call fcn.005e1de0
mov al, byte [esp + 0x13]
test al, al
je 0x4529e4
lea edi, [esp + 0x514]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x452ae0
lea ecx, [esp + 0x798]
push 0x80
push ecx
push 0x81c668
lea edx, [esp + 0x420]
push str.Password
push edx
lea ecx, [esp + 0x30]
call fcn.005e1de0
push 0
lea eax, [esp + 0x418]
push str.Port
push eax
lea ecx, [esp + 0x28]
call fcn.005e10b0
mov edi, eax
test edi, edi
jl 0x452b38
cmp edi, 0xffff
jg 0x452b38
push 0xffffffffffffffff
lea ecx, [esp + 0x418]
push str.BandwidthUp
push ecx
lea ecx, [esp + 0x28]
call fcn.005e10b0
mov esi, eax
test esi, esi
je 0x452a69
cmp esi, 0xffffffff
je 0x452a69
cmp esi, 0x8340
jl 0x452ae9
mov al, byte [esp + 0xa9c]
test al, al
je 0x452aa5
lea edx, [esp + 0x798]
lea eax, [esp + 0x290]
push edx
push esi
push eax
mov eax, dword [esp + 0x40]
lea ecx, [esp + 0x520]
push edi
lea edx, [esp + 0x3a4]
push ecx
push edx
push eax
mov ecx, 0x81f5f8
call fcn.00453e40
mov ebp, ebx
cmp ebp, 7
mov dword [esp + 0x44], ebp
jge 0x452b4f
jmp 0x452716
lea ecx, [esp + 0x614]
push ecx
push str.Error___Slave_server_settings_file__s_not_found___aborting_n
jmp 0x452af0
lea edx, [esp + 0x290]
push edx
push str.Error___server_settings_file__s_contains_errors___aborting_n
jmp 0x452af0
inc ebp
push ebp
push str.Error___No_login_nickname_specified_for_slave__d___aborting_n
jmp 0x452af0
inc ebp
push ebp
push str.Error___No_serial_number_specified_for_slave__d___aborting_n
jmp 0x452af0
inc ebp
push ebp
push str.Error___Insufficient_bandwidth_specified_for_slave__d___aborting_n
push 0x81e228
call fcn.00435b00
add esp, 0xc
mov ecx, 0x81e228
call fcn.00436ad0
lea ecx, [esp + 0x3c]
call fcn.005dbd30
lea ecx, [esp + 0x2c]
call fcn.005dbd30
lea ecx, [esp + 0x1c]
call fcn.005deea0
lea ecx, [esp + 0x50]
call fcn.005e7290
xor al, al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa88
ret
inc ebp
push ebp
push edi
push str.Error___Invalid_port_number__d_specified_for_slave__d___aborting_n
push 0x81e228
call fcn.00435b00
add esp, 0x10
jmp 0x452afd
mov al, byte [esp + 0xa9c]
test al, al
je 0x452b64
mov ecx, 0x81f5f8
call fcn.004536f0
lea ecx, [esp + 0x3c]
call fcn.005dbd30
lea ecx, [esp + 0x2c]
call fcn.005dbd30
lea ecx, [esp + 0x1c]
call fcn.005deea0
lea ecx, [esp + 0x50]
call fcn.005e7290
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0xa88
ret
push str.Error___NetUpdateRate_must_be_between_5_and_30___aborting_n
push 0x81e228
call fcn.00435b00
add esp, 8
mov ecx, 0x81e228
call fcn.00436ad0
jmp 0x452b10
push eax
push str.Error___Invalid_port_number__d_specified_for_GameSpy_Game_Port___aborting_n
jmp 0x4520d1
push esi
push str.Error___Invalid_port_number__d_specified_for_GameSpy_Query_Port___aborting_n
jmp 0x4520d1
push str.Error___Unknown_game_type_in_server_settings._Use_LAN__WOL__or_GameSpy___aborting_n
push 0x81e228
call fcn.00435b00
add esp, 8
mov ecx, 0x81e228
call fcn.00436ad0
jmp 0x452b19