Function at 0x436690
Capabilities:
Check for time delay via gettickcount
Create http request
Delete file
Download and write a file
Get file attributes
Query remote server for available data
Read .ini file
Read data from internet
Receive and write data from server to client
Receive data
Set file attributes
Write file on windows

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x4a7910
push eax
mov eax, 0x186e0
mov dword fs:[0], esp
call fcn.00488a40
push ebx
push ebp
push esi
push edi
mov edi, ecx
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x4c6218
call fcn.0049da84
mov dword [esp + 0x186fc], 0xffffffff
call fcn.0044a930
mov ecx, eax
call fcn.0044a980
lea esi, [edi + 0x44]
mov ebx, eax
mov dword [esp + 0x40], ebx
mov eax, dword [esi]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x4367c9
call fcn.00440fd0
mov ecx, eax
call fcn.00441340
test eax, eax
je 0x4367c9
push 0x4c620c
mov ecx, esi
call fcn.00498628
cmp eax, 0xffffffff
je 0x4367c9
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x2c]
lea esi, [edi + 0x24]
push ecx
push eax
push eax
call fcn.00437bc0
mov ecx, dword [esi + 8]
add esp, 0xc
mov ebp, eax
push ecx
push ebp
mov ecx, esi
call fcn.00437910
mov dword [esi + 8], ebp
mov ecx, dword [edi + 8]
mov eax, dword [edi + 0xc]
lea ebp, [edi + 4]
push ecx
push eax
push eax
call fcn.00437c00
mov edx, dword [ebp + 8]
add esp, 0xc
mov ecx, ebp
mov dword [esp + 0x40], eax
push edx
push eax
call fcn.00437940
mov eax, dword [esp + 0x40]
mov dword [ebp + 8], eax
mov ecx, dword [esi + 8]
lea eax, [edi + 0x44]
push eax
push 1
push ecx
mov ecx, esi
call fcn.00431520
mov eax, dword [edi + 0x44]
lea esi, [edi + 0x44]
push eax
call dword [sym.imp.WS2_32.dll_inet_addr]
lea edx, [esp + 0x40]
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 8]
push edx
push 1
push eax
mov ecx, ebp
call fcn.00437950
mov ecx, dword [esi]
xor eax, eax
push ecx
push str.ForcedLogin_:__s
push ebx
mov dword [edi + 0x5c], eax
mov dword [edi + 0x58], eax
call fcn.0044a930
push eax
call fcn.0044abc0
add esp, 0x10
mov eax, 1
jmp 0x4376cc
mov edx, dword [str.serverConfig.dat]
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push edx
call fcn.0049da84
lea eax, [esp + 0x2c]
push eax
call fcn.004105d0
mov esi, dword [eax]
add esp, 8
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
and al, 0xfe
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea ecx, [esp + 0x28]
call fcn.0049da16
mov eax, dword [0x4cd448]
mov dword [esp + 0x34], eax
mov dword [esp + 0x186f8], 1
mov dword [esp + 0x30], eax
mov byte [esp + 0x186f8], 2
call fcn.00440fd0
mov ecx, eax
call fcn.00441700
push eax
call fcn.0043f1f0
add esp, 4
lea ecx, [esp + 0x30]
mov esi, eax
push 0x4c61f0
push ecx
mov dword [esp + 0x24], esi
call fcn.004989ae
mov edx, dword [edi + 0x48]
add esp, 8
mov eax, dword [edx - 8]
test eax, eax
jne 0x43686b
mov eax, dword [esp + 0x30]
push eax
push esi
jmp 0x436874
mov edx, dword [esp + 0x30]
mov eax, dword [edi + 0x48]
push edx
push eax
lea ecx, [esp + 0x3c]
push str.http:___s:_s_update.dat_0
push ecx
call fcn.004989ae
mov edx, dword [esp + 0x44]
add esp, 0x10
push edx
push str.Config_data_URL_:__s
push ebx
call fcn.0044a930
push eax
call fcn.0044abc0
mov eax, dword [str.serverConfig.dat]
add esp, 0xc
mov ecx, esp
mov dword [esp + 0x1c], esp
push eax
call fcn.0049da84
lea ecx, [esp + 0x30]
push ecx
call fcn.004105d0
add esp, 8
mov ecx, eax
mov byte [esp + 0x186f8], 3
call fcn.004125b0
lea ecx, [esp + 0x34]
mov dword [esp + 0x10], eax
call fcn.004125b0
push 0
push 0
push 0
push 1
push str.HTTP
mov dword [esp + 0x50], eax
call dword [sym.imp.WININET.dll_InternetOpenA]
mov ebp, dword [sym.imp.WININET.dll_InternetSetOptionA]
mov esi, eax
test esi, esi
jne 0x436903
xor eax, eax
jmp 0x436ad8
lea edx, [esp + 0x14]
push 4
push edx
push 2
push esi
mov dword [esp + 0x24], 0xbb8
call ebp
lea eax, [esp + 0x14]
push 4
push eax
push 5
push esi
call ebp
lea ecx, [esp + 0x14]
push 4
push ecx
push 6
push esi
call ebp
lea edx, [esp + 0x14]
push 4
push edx
push 7
push esi
call ebp
lea eax, [esp + 0x14]
push 4
push eax
push 8
push esi
call ebp
mov ecx, dword [esp + 0x3c]
push 0
push 0x84000000
push 0
push 0
push ecx
push esi
call dword [sym.imp.WININET.dll_InternetOpenUrlA]
test eax, eax
mov dword [esp + 0x20], eax
jne 0x43699e
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edx, dword [esp + 0x3c]
push 0
push 0x84000000
push 0
push 0
push edx
push esi
call dword [sym.imp.WININET.dll_InternetOpenUrlA]
test eax, eax
mov dword [esp + 0x20], eax
jne 0x43699e
push esi
call dword [sym.imp.WININET.dll_InternetCloseHandle]
xor eax, eax
jmp 0x436ad8
mov eax, dword [esp + 0x10]
push 0
push 0x80
push 2
push 0
push 0
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
mov dword [esp + 0x10], eax
jne 0x4369dd
mov ecx, dword [esp + 0x20]
push ecx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
push esi
call dword [sym.imp.WININET.dll_InternetCloseHandle]
xor eax, eax
jmp 0x436ad8
mov eax, dword [esp + 0x20]
push 0
lea edx, [esp + 0x2c]
push 0
push edx
push eax
call dword [sym.imp.WININET.dll_InternetQueryDataAvailable]
test eax, eax
je 0x436a53
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x54]
push edx
push eax
push ecx
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x436a74
mov eax, dword [esp + 0x38]
lea edx, [esp + 0x18]
push 0
push edx
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x58]
push eax
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x436a95
mov eax, dword [esp + 0x38]
test eax, eax
je 0x436ab6
mov ecx, dword [esp + 0x20]
push 0
lea eax, [esp + 0x2c]
push 0
push eax
push ecx
call dword [sym.imp.WININET.dll_InternetQueryDataAvailable]
test eax, eax
jne 0x4369f5
mov edx, dword [esp + 0x20]
push edx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
push esi
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x436ad8
mov ecx, dword [esp + 0x20]
push ecx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
push esi
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x436ad8
mov eax, dword [esp + 0x20]
push eax
call dword [sym.imp.WININET.dll_InternetCloseHandle]
push esi
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x436ad8
mov edx, dword [esp + 0x20]
push edx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
push esi
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
test eax, eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x186f8], 2
sete byte [esp + 0x27]
call fcn.0049da16
mov al, byte [esp + 0x27]
test al, al
je 0x436bb0
push str.Config_data_Download_Faile
push ebx
call fcn.0044a930
push eax
call fcn.0044abc0
mov ecx, dword [edi + 0x44]
add esp, 0xc
mov eax, dword [ecx - 8]
test eax, eax
je 0x4376a5
call fcn.00440fd0
mov ecx, eax
call fcn.00441340
test eax, eax
je 0x4376a5
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x2c]
lea esi, [edi + 0x24]
push ecx
push eax
push eax
call fcn.00437bc0
add esp, 0xc
mov ebp, eax
mov eax, dword [esi + 8]
mov ecx, esi
push eax
push ebp
call fcn.00437910
mov dword [esi + 8], ebp
mov ecx, dword [edi + 8]
mov eax, dword [edi + 0xc]
lea ebp, [edi + 4]
push ecx
push eax
push eax
call fcn.00437c00
mov ecx, dword [ebp + 8]
add esp, 0xc
mov dword [esp + 0x2c], eax
push ecx
push eax
mov ecx, ebp
call fcn.00437940
mov edx, dword [esp + 0x2c]
lea ecx, [edi + 0x44]
mov dword [ebp + 8], edx
mov eax, dword [esi + 8]
push ecx
push 1
push eax
mov ecx, esi
call fcn.00431520
mov eax, dword [edi + 0x44]
lea esi, [edi + 0x44]
push eax
call dword [sym.imp.WS2_32.dll_inet_addr]
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 8]
lea ecx, [esp + 0x2c]
jmp 0x436c65
mov eax, dword [str.serverConfig.dat]
push eax
push str.Success_download_file_:__s
push ebx
call fcn.0044a930
push eax
call fcn.0044abc0
mov ecx, dword [edi + 0x44]
add esp, 0x10
mov eax, dword [ecx - 8]
test eax, eax
je 0x436cbe
call fcn.00440fd0
mov ecx, eax
call fcn.00441340
test eax, eax
je 0x436cbe
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x2c]
lea esi, [edi + 0x24]
push ecx
push eax
push eax
call fcn.00437bc0
add esp, 0xc
mov ebp, eax
mov eax, dword [esi + 8]
mov ecx, esi
push eax
push ebp
call fcn.00437910
mov dword [esi + 8], ebp
mov ecx, dword [edi + 8]
mov eax, dword [edi + 0xc]
lea ebp, [edi + 4]
push ecx
push eax
push eax
call fcn.00437c00
mov ecx, dword [ebp + 8]
add esp, 0xc
mov dword [esp + 0x2c], eax
push ecx
push eax
mov ecx, ebp
call fcn.00437940
mov edx, dword [esp + 0x2c]
lea ecx, [edi + 0x44]
mov dword [ebp + 8], edx
mov eax, dword [esi + 8]
push ecx
push 1
push eax
mov ecx, esi
call fcn.00431520
mov eax, dword [edi + 0x44]
lea esi, [edi + 0x44]
push eax
call dword [sym.imp.WS2_32.dll_inet_addr]
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 8]
lea ecx, [esp + 0x2c]
push ecx
push 1
push eax
mov ecx, ebp
call fcn.00437950
mov edx, dword [esi]
xor eax, eax
push edx
push str.ForcedLogin_:__s
push ebx
mov dword [edi + 0x5c], eax
mov dword [edi + 0x58], eax
call fcn.0044a930
push eax
call fcn.0044abc0
add esp, 0x10
lea ecx, [esp + 0x30]
mov byte [esp + 0x186f8], 1
call fcn.0049da16
lea ecx, [esp + 0x34]
mov dword [esp + 0x186f8], 0xffffffff
call fcn.0049da16
mov eax, 1
jmp 0x4376cc
mov eax, dword [str.serverConfig.dat]
push str.NULL
push str.UpdateFile1
push str.Update
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push eax
call fcn.0049da84
lea ecx, [esp + 0x3c]
push ecx
call fcn.004105d0
add esp, 8
mov ecx, eax
mov byte [esp + 0x18704], 4
call fcn.004125b0
lea edx, [esp + 0x54]
push eax
push edx
call fcn.0041c3b0
add esp, 0x14
lea ecx, [esp + 0x2c]
mov byte [esp + 0x186f8], 6
call fcn.0049da16
mov eax, dword [esp + 0x48]
push eax
push str.Config_data_file_name_:__s
push ebx
call fcn.0044a930
push eax
call fcn.0044abc0
mov ecx, dword [0x4cd448]
add esp, 0x10
mov dword [esp + 0x44], ecx
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x1c]
push edx
push eax
push ecx
lea edx, [esp + 0x50]
push str.http:___s:_s__s
push edx
mov byte [esp + 0x1870c], 7
call fcn.004989ae
mov eax, dword [esp + 0x58]
add esp, 0x14
push eax
push str._Not_Use_updatecfg.dat_Config_data_file_URL_:__s
push ebx
call fcn.0044a930
push eax
call fcn.0044abc0
mov edx, dword [str.serverConfig.dat]
add esp, 0xc
mov ecx, esp
mov dword [esp + 0x1c], esp
push edx
call fcn.0049da84
lea eax, [esp + 0x20]
push eax
call fcn.004105d0
mov eax, dword [eax]
add esp, 8
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea ecx, [esp + 0x1c]
call fcn.0049da16
mov edx, dword [str.serverConfig.dat]
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push edx
call fcn.0049da84
lea eax, [esp + 0x24]
push eax
call fcn.004105d0
add esp, 8
mov ecx, eax
mov byte [esp + 0x186f8], 8
call fcn.004125b0
lea ecx, [esp + 0x44]
mov dword [esp + 0x1c], eax
call fcn.004125b0
push 0
push 0
push 0
push 1
push str.HTTP
mov dword [esp + 0x3c], eax
call dword [sym.imp.WININET.dll_InternetOpenA]
mov esi, eax
test esi, esi
je 0x436fb1
lea ecx, [esp + 0x10]
push 4
push ecx
push 2
push esi
mov dword [esp + 0x20], 0xbb8
call ebp
lea edx, [esp + 0x10]
push 4
push edx
push 5
push esi
call ebp
lea eax, [esp + 0x10]
push 4
push eax
push 6
push esi
call ebp
lea ecx, [esp + 0x10]
push 4
push ecx
push 7
push esi
call ebp
lea edx, [esp + 0x10]
push 4
push edx
push 8
push esi
call ebp
mov eax, dword [esp + 0x28]
push 0
push 0x84000000
push 0
push 0
push eax
push esi
call dword [sym.imp.WININET.dll_InternetOpenUrlA]
mov ebp, eax
test ebp, ebp
jne 0x436ea1
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [esp + 0x28]
push ebp
push 0x84000000
push ebp
push ebp
push ecx
push esi
call dword [sym.imp.WININET.dll_InternetOpenUrlA]
mov ebp, eax
test ebp, ebp
jne 0x436ea1
push esi
call dword [sym.imp.WININET.dll_InternetCloseHandle]
xor eax, eax
jmp 0x436fb1
mov edx, dword [esp + 0x1c]
push 0
push 0x80
push 2
push 0
push 0
push 0x40000000
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
mov dword [esp + 0x14], eax
jne 0x436eda
push ebp
mov ebp, dword [sym.imp.WININET.dll_InternetCloseHandle]
call ebp
push esi
call ebp
xor eax, eax
jmp 0x436fb1
push 0
lea eax, [esp + 0x3c]
push 0
push eax
push ebp
call dword [sym.imp.WININET.dll_InternetQueryDataAvailable]
test eax, eax
je 0x436f44
mov edx, dword [esp + 0x38]
lea ecx, [esp + 0x3c]
push ecx
lea eax, [esp + 0x54]
push edx
push eax
push ebp
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x436f5f
mov edx, dword [esp + 0x3c]
lea ecx, [esp + 0x18]
push 0
push ecx
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x58]
push edx
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x436f7a
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x436f95
push 0
lea edx, [esp + 0x3c]
push 0
push edx
push ebp
call dword [sym.imp.WININET.dll_InternetQueryDataAvailable]
test eax, eax
jne 0x436eee
push ebp
mov ebp, dword [sym.imp.WININET.dll_InternetCloseHandle]
call ebp
push esi
call ebp
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x436fb1
push ebp
mov ebp, dword [sym.imp.WININET.dll_InternetCloseHandle]
call ebp
push esi
call ebp
mov ecx, dword [esp + 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x436fb1
push ebp
mov ebp, dword [sym.imp.WININET.dll_InternetCloseHandle]
call ebp
push esi
call ebp
mov edx, dword [esp + 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x436fb1
push ebp
mov ebp, dword [sym.imp.WININET.dll_InternetCloseHandle]
call ebp
push esi
call ebp
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
test eax, eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x186f8], 7
sete byte [esp + 0x27]
call fcn.0049da16
mov al, byte [esp + 0x27]
test al, al
je 0x436ff1
mov ecx, dword [str.serverConfig.dat]
push ecx
push str.Faile_download_file_:__s
push ebx
call fcn.0044a930
push eax
call fcn.0044abc0
add esp, 0x10
jmp 0x437683
mov edx, dword [str.serverConfig.dat]
push edx
push str.Success_download_file_:__s
push ebx
call fcn.0044a930
push eax
call fcn.0044abc0
mov eax, dword [str.serverConfig.dat]
add esp, 0xc
mov ecx, esp
mov dword [esp + 0x1c], esp
push eax
call fcn.0049da84
lea ecx, [esp + 0x20]
push ecx
call fcn.004105d0
add esp, 8
mov ecx, eax
mov byte [esp + 0x186f8], 9
call fcn.004125b0
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push eax
push 0
push str.ServerNumber
push str.LoginServer
call esi
lea ecx, [esp + 0x1c]
mov dword [edi + 0x60], eax
mov byte [esp + 0x186f8], 7
call fcn.0049da16
mov edx, dword [edi + 0x60]
push edx
push str.Number_of_login_server:__d
push ebx
call fcn.0044a930
push eax
call fcn.0044abc0
mov eax, dword [str.serverConfig.dat]
add esp, 0xc
mov ecx, esp
mov dword [esp + 0x1c], esp
push eax
call fcn.0049da84
lea ecx, [esp + 0x20]
push ecx
call fcn.004105d0
add esp, 8
mov ecx, eax
mov byte [esp + 0x186f8], 0xa
call fcn.004125b0
push eax
push 0
push str.ServerNumber
push str.PatchServer
call esi
lea ecx, [esp + 0x1c]
mov dword [edi + 0x54], eax
mov byte [esp + 0x186f8], 7
call fcn.0049da16
mov edx, dword [edi + 0x54]
push edx
push str.Number_of_patch_server:__d
push ebx
call fcn.0044a930
push eax
call fcn.0044abc0
mov eax, dword [edi + 0x60]
add esp, 0x10
test eax, eax
je 0x43766f
mov ecx, dword [edi + 0x54]
test ecx, ecx
je 0x43766f
xor esi, esi
test eax, eax
jbe 0x437207
lea ebp, [edi + 0x24]
mov eax, dword [0x4cd448]
mov dword [esp + 0x14], eax
push esi
lea ecx, [esp + 0x18]
push str.Server_d
push ecx
mov byte [esp + 0x18704], 0xb
call fcn.004989ae
add esp, 0xc
lea ecx, [esp + 0x14]
push str.NULL
call fcn.004125b0
mov edx, dword [str.serverConfig.dat]
push eax
push str.LoginServer
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
call fcn.0049da84
lea eax, [esp + 0x2c]
push eax
call fcn.004105d0
add esp, 8
mov ecx, eax
mov byte [esp + 0x18704], 0xc
call fcn.004125b0
lea ecx, [esp + 0x1c]
push eax
push ecx
call fcn.0041c3b0
add esp, 0x14
lea ecx, [esp + 0x1c]
mov byte [esp + 0x186f8], 0xe
call fcn.0049da16
mov eax, dword [ebp + 8]
lea edx, [esp + 0x10]
push edx
push 1
push eax
mov ecx, ebp
call fcn.00431520
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.WS2_32.dll_inet_addr]
lea ecx, [edi + 4]
lea edx, [esp + 0x28]
mov dword [esp + 0x28], eax
push edx
mov eax, dword [ecx + 8]
push 1
push eax
call fcn.00437950
mov eax, dword [esp + 0x10]
push eax
push esi
push str.__d__Save_login_server_IP:__s
push ebx
call fcn.0044a930
push eax
call fcn.0044abc0
add esp, 0x14
lea ecx, [esp + 0x10]
mov byte [esp + 0x186f8], 0xb
call fcn.0049da16
lea ecx, [esp + 0x14]
mov byte [esp + 0x186f8], 7
call fcn.0049da16
mov eax, dword [edi + 0x60]
inc esi
cmp esi, eax
jb 0x437105
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
call fcn.00488783
add esp, 4
call fcn.00488790
cdq
idiv dword [edi + 0x60]
push edx
push str.Select_Login_Server__:__d
push ebx
mov dword [edi + 0x5c], edx
mov dword [edi + 0x58], edx
call fcn.0044a930
push eax
call fcn.0044abc0
mov ecx, dword [edi + 0x44]
add esp, 0x10
mov eax, dword [ecx - 8]
test eax, eax
je 0x437311
mov ebp, dword [edi + 0x2c]
mov esi, dword [edi + 0x28]
cmp ebp, ebp
mov dword [esp + 0x10], ebp
je 0x437274
mov edx, dword [esp + 0x10]
mov ecx, esi
push edx
call fcn.0049db4f
mov eax, dword [esp + 0x10]
add esi, 4
add eax, 4
cmp eax, ebp
mov dword [esp + 0x10], eax
jne 0x437256
mov eax, dword [edi + 0x2c]
mov ebp, esi
cmp esi, eax
mov dword [esp + 0x1c], eax
je 0x437295
push 0
mov ecx, ebp
call fcn.00437c30
mov eax, dword [esp + 0x1c]
add ebp, 4
cmp ebp, eax
jne 0x437281
mov dword [edi + 0x2c], esi
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 8]
lea esi, [edi + 4]
cmp eax, eax
mov edx, eax
je 0x4372b5
mov ebp, dword [edx]
add edx, 4
mov dword [ecx], ebp
add ecx, 4
cmp edx, eax
jne 0x4372a7
mov eax, dword [esi + 8]
mov dword [esi + 8], ecx
lea ecx, [edi + 0x24]
lea ebp, [edi + 0x44]
mov dword [esp + 0x18], eax
push ebp
mov eax, dword [ecx + 8]
push 1
push eax
call fcn.00431520
mov eax, dword [ebp]
push eax
call dword [sym.imp.WS2_32.dll_inet_addr]
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 8]
push ecx
push 1
push eax
mov ecx, esi
call fcn.00437950
mov edx, dword [ebp]
xor eax, eax
push edx
push str.ForcedLogin_:__s
push ebx
mov dword [edi + 0x5c], eax
mov dword [edi + 0x58], eax
call fcn.0044a930
push eax
call fcn.0044abc0
add esp, 0x10
mov eax, dword [edi + 0x54]
mov dword [esp + 0x3c], 0
test eax, eax
jbe 0x4375da
lea ebx, [edi + 0x14]
mov eax, dword [0x4cd448]
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x3c]
lea edx, [esp + 0x38]
push ecx
push str.Server_d
push edx
mov byte [esp + 0x18704], 0xf
call fcn.004989ae
add esp, 0xc
lea ecx, [esp + 0x38]
push str.NULL
call fcn.004125b0
push eax
mov eax, dword [str.serverConfig.dat]
push str.PatchServer
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push eax
call fcn.0049da84
lea ecx, [esp + 0x2c]
push ecx
call fcn.004105d0
add esp, 8
mov ecx, eax
mov byte [esp + 0x18704], 0x10
call fcn.004125b0
lea edx, [esp + 0x2c]
push eax
push edx
call fcn.0041c3b0
add esp, 0x14
lea ecx, [esp + 0x1c]
mov byte [esp + 0x186f8], 0x12
call fcn.0049da16
mov eax, dword [edi + 0x3c]
lea ecx, [edi + 0x34]
lea edx, [esp + 0x20]
push edx
push 1
push eax
call fcn.00431520
mov eax, dword [esp + 0x20]
push eax
call dword [sym.imp.WS2_32.dll_inet_addr]
mov esi, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub ecx, esi
mov dword [esp + 0x14], eax
sar ecx, 2
cmp ecx, 1
mov ebp, esi
jae 0x4374dd
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x4373fb
mov eax, esi
sub eax, ecx
sar eax, 2
cmp eax, 1
ja 0x437400
mov eax, 1
test ecx, ecx
jne 0x437408
xor esi, esi
jmp 0x43740d
sub esi, ecx
sar esi, 2
add eax, esi
test eax, eax
mov dword [esp + 0x18], eax
jge 0x437419
xor eax, eax
lea edx, [eax*4]
push edx
call fcn.0049d757
mov esi, dword [ebx + 4]
add esp, 4
cmp esi, ebp
mov dword [esp + 0x4c], eax
mov dword [esp + 0x10], eax
je 0x437458
mov eax, dword [esp + 0x10]
push esi
push eax
call fcn.00434330
mov edx, dword [esp + 0x18]
add esi, 4
add esp, 8
add edx, 4
cmp esi, ebp
mov dword [esp + 0x10], edx
jne 0x437438
mov esi, dword [esp + 0x10]
lea ecx, [esp + 0x14]
push ecx
push esi
call fcn.00434330
mov eax, dword [ebx + 8]
add esp, 8
cmp ebp, eax
mov dword [esp + 0x28], eax
je 0x437490
add esi, 4
push ebp
push esi
call fcn.00434330
mov eax, dword [esp + 0x30]
add ebp, 4
add esp, 8
add esi, 4
cmp ebp, eax
jne 0x437478
mov eax, dword [ebx + 4]
push eax
mov dword [esp + 0x2c], eax
call fcn.0049d780
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x1c]
add esp, 4
lea ecx, [edx + eax*4]
mov dword [ebx + 0xc], ecx
mov ecx, dword [ebx + 4]
test ecx, ecx
jne 0x4374c6
xor eax, eax
mov dword [ebx + 4], edx
lea eax, [edx + eax*4 + 4]
mov dword [ebx + 8], eax
jmp 0x437582
mov eax, dword [ebx + 8]
mov dword [ebx + 4], edx
sub eax, ecx
sar eax, 2
lea eax, [edx + eax*4 + 4]
mov dword [ebx + 8], eax
jmp 0x437582
mov eax, esi
sub eax, ebp
sar eax, 2
cmp eax, 1
jae 0x43753f
cmp ebp, esi
mov eax, ebp
je 0x437508
lea ecx, [eax + 4]
push eax
push ecx
mov dword [esp + 0x20], ecx
call fcn.00434330
mov eax, dword [esp + 0x20]
add esp, 8
cmp eax, esi
jne 0x4374ef
mov eax, dword [ebx + 8]
lea ecx, [esp + 0x14]
mov edx, eax
push ecx
sub edx, ebp
mov ecx, 1
sar edx, 2
sub ecx, edx
push ecx
push eax
mov ecx, ebx
call fcn.00437b90
mov ecx, dword [ebx + 8]
mov eax, ebp
cmp ebp, ecx
je 0x43757e
mov edx, dword [esp + 0x14]
mov dword [eax], edx
add eax, 4
cmp eax, ecx
jne 0x437530
jmp 0x43757e
lea eax, [esi - 4]
push esi
push esi
push eax
mov ecx, ebx
mov dword [esp + 0x24], eax
call fcn.00437b60
mov ecx, dword [ebx + 8]
lea eax, [ecx - 4]
cmp ebp, eax
je 0x437569
mov edx, dword [eax - 4]
sub eax, 4
sub ecx, 4
cmp eax, ebp
mov dword [ecx], edx
jne 0x43755a
lea eax, [ebp + 4]
cmp ebp, eax
je 0x43757e
mov ecx, dword [esp + 0x14]
mov dword [ebp], ecx
add ebp, 4
cmp ebp, eax
jne 0x437570
add dword [ebx + 8], 4
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0x40]
push edx
push esi
push str.__d__Save_patch_server_IP:__s
push eax
call fcn.0044a930
push eax
call fcn.0044abc0
add esp, 0x14
lea ecx, [esp + 0x20]
mov byte [esp + 0x186f8], 0xf
call fcn.0049da16
lea ecx, [esp + 0x38]
mov byte [esp + 0x186f8], 7
call fcn.0049da16
mov eax, dword [edi + 0x54]
inc esi
cmp esi, eax
mov dword [esp + 0x3c], esi
jb 0x437327
mov ebx, dword [esp + 0x40]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
call fcn.00488783
add esp, 4
call fcn.00488790
cdq
idiv dword [edi + 0x54]
push edx
push str.Select_Patch_Server__:__d
push ebx
mov dword [edi + 0x50], edx
mov dword [edi + 0x4c], edx
call fcn.0044a930
push eax
call fcn.0044abc0
add esp, 0x10
push str.ConfigData_Ok
push ebx
call fcn.0044a930
push eax
call fcn.0044abc0
add esp, 0xc
lea ecx, [esp + 0x44]
mov byte [esp + 0x186f8], 6
call fcn.0049da16
lea ecx, [esp + 0x48]
mov byte [esp + 0x186f8], 2
call fcn.0049da16
lea ecx, [esp + 0x30]
mov byte [esp + 0x186f8], 1
call fcn.0049da16
lea ecx, [esp + 0x34]
mov dword [esp + 0x186f8], 0xffffffff
call fcn.0049da16
mov eax, 1
jmp 0x4376cc
push str.ConfigDataServer_is_Err_Ini_File._ServerNum_0_
push ebx
call fcn.0044a930
push eax
call fcn.0044abc0
add esp, 0xc
lea ecx, [esp + 0x44]
mov byte [esp + 0x186f8], 6
call fcn.0049da16
lea ecx, [esp + 0x48]
mov byte [esp + 0x186f8], 2
call fcn.0049da16
lea ecx, [esp + 0x30]
mov byte [esp + 0x186f8], 1
call fcn.0049da16
lea ecx, [esp + 0x34]
mov dword [esp + 0x186f8], 0xffffffff
call fcn.0049da16
xor eax, eax
mov ecx, dword [esp + 0x186f0]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x186ec
ret