Function at 0x485be0
Capabilities:
Link many functions at runtime

Disassembly:
sub esp, 0x258
push ebx
push ebp
push esi
push edi
mov ebx, ecx
call fcn.00525f20
lea ecx, [ebx + 0x2b0]
call fcn.00462ea0
mov dword [ebx], vtable.SIGS.0
mov eax, dword [0x5a32b8]
mov dword [0x5a2480], ebx
mov ecx, dword [eax + 0x10]
call fcn.004cacd0
mov ecx, dword [0x5a32b8]
xor ebp, ebp
push ebp
push str.StressNetworkCode
mov ecx, dword [ecx + 0x1c]
call fcn.00485b40
mov ecx, ebx
mov dword [ebx + 0x304], eax
mov dword [ebx + 0x274], ebp
call fcn.004864a0
push str.SNWValid.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
cmp eax, ebp
mov dword [ebx + 0x2c8], eax
jne 0x485c96
mov edx, dword [0x575cec]
push 0x2000
push edx
push str.Internet_features_cant_be_found.__Re_run_Setup.
push ebp
call fcn.004f0710
mov eax, dword [ebx + 0x2c8]
mov esi, dword [sym.imp.KERNEL32.dll_FreeLibrary]
add esp, 0x10
cmp eax, ebp
je 0x485c80
push eax
call esi
mov eax, dword [ebx + 0x2c4]
cmp eax, ebp
je 0x486186
push eax
call esi
jmp 0x486186
push str.SNWValidate
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x5a2418], eax
mov edi, 0x5a3190
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x2c]
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x130]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x2c]
or ecx, 0xffffffff
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]
mov ecx, dword [esp + 0x270]
cmp byte [ecx], 0x20
je 0x485d32
mov edi, 0x56b390
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x130]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x270]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x130]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0x2c]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x5a3088
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [0x5a2484], 1
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [0x5a2418]
and ecx, 3
cmp eax, ebp
rep movsb byte es:[edi], byte [esi]
je 0x485dd6
mov ecx, dword [0x5a32b8]
mov edx, dword [ecx + 0x10]
mov ecx, dword [edx + 0x60]
lea edx, [esp + 0x130]
push ecx
lea ecx, [esp + 0x30]
push edx
push ecx
lea edx, [esp + 0x1c]
lea ecx, [esp + 0x20]
push edx
push ecx
mov ecx, dword [esp + 0x280]
lea edx, [esp + 0x2c]
push edx
push ecx
call eax
add esp, 0x1c
mov esi, eax
jmp 0x485dd9
or esi, 0xffffffff
mov edi, dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [0x5a2484], ebp
mov edx, dword [ebx + 0x2c8]
push edx
call edi
mov dword [ebx + 0x2c8], ebp
cmp esi, 0xfffffffe
mov dword [0x5a2418], ebp
je 0x486237
cmp esi, 0xffffffff
je 0x48616c
push str.SierraNW.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
cmp eax, ebp
mov dword [ebx + 0x2c4], eax
jne 0x485e72
call dword [sym.imp.KERNEL32.dll_GetLastError]
and eax, 0xffff
push 0x2000
cmp eax, 0x485
push str.Network_Error
je 0x485e44
push str.Unknown_error_loading_SierraNW.DLL.
jmp 0x485e49
push str.SierraNW.DLL_could_not_be_found.
push ebp
call fcn.004f0710
mov eax, dword [ebx + 0x2c8]
add esp, 0x10
cmp eax, ebp
je 0x485e5f
push eax
call edi
mov eax, dword [ebx + 0x2c4]
cmp eax, ebp
je 0x486186
jmp 0x486183
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.InitializeDLL
push eax
call esi
mov dword [0x5a241c], eax
mov eax, dword [ebx + 0x2c4]
push str.CloseDLL
push eax
call esi
mov dword [0x5a2420], eax
mov ecx, dword [ebx + 0x2c4]
push str.SendTCPMessage
push ecx
call esi
mov dword [0x5a2424], eax
mov edx, dword [ebx + 0x2c4]
push str.CheckForAnyTCPMessage
push edx
call esi
mov dword [0x5a2428], eax
mov eax, dword [ebx + 0x2c4]
push str.PeekForTCPMessage
push eax
call esi
mov dword [0x5a242c], eax
mov ecx, dword [ebx + 0x2c4]
push str.RecvTCPMessage
push ecx
call esi
mov dword [0x5a2430], eax
mov edx, dword [ebx + 0x2c4]
push str.GetNumberOfPlayers
push edx
call esi
mov dword [0x5a2434], eax
mov eax, dword [ebx + 0x2c4]
push str.GetMyPlayerNumber
push eax
call esi
mov dword [0x5a2438], eax
mov ecx, dword [ebx + 0x2c4]
push str.GetPlayerXName
push ecx
call esi
mov dword [0x5a243c], eax
mov edx, dword [ebx + 0x2c4]
push str.CheckGameConnectStatus
push edx
call esi
mov dword [0x5a2440], eax
mov eax, dword [ebx + 0x2c4]
push str.GameClose
push eax
call esi
mov dword [0x5a2444], eax
mov ecx, dword [ebx + 0x2c4]
push str.GetGameOption
push ecx
call esi
mov dword [0x5a2448], eax
mov edx, dword [ebx + 0x2c4]
push str.CheckPlayerConnectStatus
push edx
call esi
mov dword [0x5a244c], eax
mov eax, dword [ebx + 0x2c4]
push str.ActivateNewPlayerX
push eax
call esi
mov dword [0x5a2450], eax
mov ecx, dword [ebx + 0x2c4]
push str.GetNewPlayersIndex
push ecx
call esi
mov dword [0x5a2454], eax
mov edx, dword [ebx + 0x2c4]
push str.WasGameRunning
push edx
call esi
mov dword [0x5a2458], eax
push str.SetGameState
mov eax, dword [ebx + 0x2c4]
push eax
call esi
mov dword [0x5a245c], eax
mov ecx, dword [ebx + 0x2c4]
push str.TellMeChatMessReceived
push ecx
call esi
mov dword [0x5a2460], eax
mov edx, dword [ebx + 0x2c4]
push str.TellMeSpecialChatReceived
push edx
call esi
mov dword [0x5a2464], eax
mov eax, dword [ebx + 0x2c4]
push str.SetGameServerBufferData
push eax
call esi
mov dword [0x5a2468], eax
mov ecx, dword [ebx + 0x2c4]
push str.GetGameServerBufferData
push ecx
call esi
mov dword [0x5a246c], eax
mov edx, dword [ebx + 0x2c4]
push str.GetGatheringPlaceHwnd
push edx
call esi
mov dword [0x5a2470], eax
mov eax, dword [ebx + 0x2c4]
push str.SaveUserGameData
push eax
call esi
mov dword [0x5a2474], eax
mov ecx, dword [ebx + 0x2c4]
push str.GetUserGameData
push ecx
call esi
mov dword [0x5a2478], eax
mov edx, dword [ebx + 0x2c4]
push str.TellMeGameAttempted
push edx
call esi
mov ecx, dword [0x5a241c]
mov dword [0x5a247c], eax
cmp ecx, ebp
je 0x48616c
cmp dword [0x5a2420], ebp
je 0x48616c
cmp dword [0x5a2424], ebp
je 0x48616c
cmp dword [0x5a2428], ebp
je 0x48616c
cmp dword [0x5a242c], ebp
je 0x48616c
cmp dword [0x5a2430], ebp
je 0x48616c
cmp dword [0x5a2434], ebp
je 0x48616c
cmp dword [0x5a2438], ebp
je 0x48616c
cmp dword [0x5a243c], ebp
je 0x48616c
cmp dword [0x5a2440], ebp
je 0x48616c
cmp dword [0x5a2444], ebp
je 0x48616c
cmp dword [0x5a2448], ebp
je 0x48616c
cmp dword [0x5a244c], ebp
je 0x48616c
cmp dword [0x5a2450], ebp
je 0x48616c
cmp dword [0x5a2454], ebp
je 0x48616c
cmp dword [0x5a2458], ebp
je 0x48616c
cmp dword [0x5a245c], ebp
je 0x48616c
cmp dword [0x5a2460], ebp
je 0x48616c
cmp dword [0x5a2464], ebp
je 0x48616c
cmp dword [0x5a2474], ebp
je 0x48616c
cmp dword [0x5a2478], ebp
je 0x48616c
cmp eax, ebp
je 0x48616c
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
push eax
lea eax, [esp + 0x1c]
push edx
push eax
call ecx
add esp, 0xc
cmp eax, 1
jne 0x48616c
mov dword [ebx + 0x2a8], eax
or eax, 0xffffffff
mov dword [ebx + 0x2d4], eax
mov dword [ebx + 0x2d8], eax
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x258
ret 8
mov eax, dword [ebx + 0x2c8]
cmp eax, ebp
je 0x486179
push eax
call edi
mov eax, dword [ebx + 0x2c4]
cmp eax, ebp
je 0x486186
push eax
call edi
mov dword [0x5a2418], ebp
mov dword [0x5a241c], ebp
mov dword [0x5a2420], ebp
mov dword [0x5a2424], ebp
mov dword [0x5a2428], ebp
mov dword [0x5a242c], ebp
mov dword [0x5a2430], ebp
mov dword [0x5a2434], ebp
mov dword [0x5a2438], ebp
mov dword [0x5a243c], ebp
mov dword [0x5a2440], ebp
mov dword [0x5a2444], ebp
mov dword [0x5a2448], ebp
mov dword [0x5a244c], ebp
mov dword [0x5a2454], ebp
mov dword [0x5a2450], ebp
mov dword [0x5a2458], ebp
mov dword [0x5a245c], ebp
mov dword [0x5a2460], ebp
mov dword [0x5a2464], ebp
mov dword [0x5a2468], ebp
mov dword [0x5a246c], ebp
mov dword [0x5a2470], ebp
mov dword [0x5a2474], ebp
mov dword [0x5a2478], ebp
mov dword [0x5a247c], ebp
mov dword [ebx + 0x2a8], ebp
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x258
ret 8
mov eax, dword [ebx + 0x2c8]
cmp eax, ebp
je 0x486244
push eax
call edi
mov eax, dword [ebx + 0x2c4]
cmp eax, ebp
je 0x486251
push eax
call edi
mov dword [0x5a2418], ebp
mov dword [0x5a241c], ebp
mov dword [0x5a2420], ebp
mov dword [0x5a2424], ebp
mov dword [0x5a2428], ebp
mov dword [0x5a242c], ebp
mov dword [0x5a2430], ebp
mov dword [0x5a2434], ebp
mov dword [0x5a2438], ebp
mov dword [0x5a243c], ebp
mov dword [0x5a2440], ebp
mov dword [0x5a2444], ebp
mov dword [0x5a2448], ebp
mov dword [0x5a244c], ebp
mov dword [0x5a2454], ebp
mov dword [0x5a2450], ebp
mov dword [0x5a2458], ebp
mov dword [0x5a245c], ebp
mov dword [0x5a2460], ebp
mov dword [0x5a2464], ebp
mov dword [0x5a2468], ebp
mov dword [0x5a246c], ebp
mov dword [0x5a2470], ebp
mov dword [0x5a2474], ebp
mov dword [0x5a2478], ebp
mov dword [0x5a247c], ebp
mov dword [ebx + 0x2a8], ebp
mov ecx, dword [0x5a32bc]
push 1
call fcn.004b8700
pop edi
pop esi
mov eax, ebx
pop ebp
pop ebx
add esp, 0x258
ret 8