Function at 0x43a880
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 0x4b0ab0
push eax
mov eax, 0x186e4
mov dword fs:[0], esp
call fcn.00491330
push ebx
push ebp
push esi
mov ebp, ecx
push edi
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x4d1a10
mov dword [esp + 0x34], ebp
call fcn.004a6b87
mov dword [esp + 0x18700], 0xffffffff
call fcn.0044f8c0
mov ecx, eax
call fcn.0044f910
lea ebx, [ebp + 0x44]
mov dword [esp + 0x24], eax
mov eax, dword [ebx]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x43a9b8
call fcn.00445ba0
mov ecx, eax
call fcn.00445f20
test eax, eax
je 0x43a9b8
push str.189.43.25.110NetLogConfigData
mov ecx, ebx
call fcn.004a1728
cmp eax, 0xffffffff
je 0x43a9b8
mov ecx, dword [ebp + 0x28]
mov eax, dword [ebp + 0x2c]
lea esi, [ebp + 0x24]
push ecx
push eax
push eax
call fcn.0043bea0
mov ecx, dword [esi + 8]
add esp, 0xc
mov edi, eax
push ecx
push edi
mov ecx, esi
call fcn.0043bb80
mov dword [esi + 8], edi
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
lea edi, [ebp + 4]
push ecx
push eax
push eax
call fcn.0043bee0
mov edx, dword [edi + 8]
add esp, 0xc
mov ecx, edi
mov dword [esp + 0x20], eax
push edx
push eax
call fcn.0043bbb0
mov eax, dword [esp + 0x20]
push ebx
mov dword [edi + 8], eax
mov ecx, dword [esi + 8]
push 1
push ecx
mov ecx, esi
call fcn.00435340
mov eax, dword [ebx]
push eax
call dword [sym.imp.WS2_32.dll_inet_addr]
lea edx, [esp + 0x20]
mov dword [esp + 0x20], eax
mov eax, dword [edi + 8]
push edx
push 1
push eax
mov ecx, edi
call fcn.0043bbc0
mov ecx, dword [ebx]
mov edx, dword [esp + 0x24]
push ecx
xor eax, eax
push str.ForcedLogin_:__s
push edx
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x58], eax
call fcn.0044f8c0
push eax
call fcn.0044fb50
add esp, 0x10
mov eax, 1
jmp 0x43b91e
mov eax, dword [str.serverConfig.dat]
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push eax
call fcn.004a6b87
lea ecx, [esp + 0x24]
push ecx
call fcn.00411130
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 + 0x20]
call fcn.004a6b19
mov eax, dword [0x4d8cb8]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x186fc], 1
mov dword [esp + 0x38], eax
mov byte [esp + 0x186fc], 2
call fcn.00445ba0
mov ecx, eax
call fcn.004460b0
push eax
call fcn.00443bd0
add esp, 4
lea edx, [esp + 0x38]
mov esi, eax
push str.8080
push edx
mov dword [esp + 0x38], esi
call fcn.004a1aae
mov eax, dword [ebp + 0x48]
add esp, 8
mov ecx, dword [eax - 8]
test ecx, ecx
jne 0x43aa59
mov ecx, dword [esp + 0x38]
push ecx
push esi
jmp 0x43aa62
mov eax, dword [esp + 0x38]
mov ecx, dword [ebp + 0x48]
push eax
push ecx
lea edx, [esp + 0x44]
push str.http:___s:_s_update.dll_0
push edx
call fcn.004a1aae
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x34]
add esp, 0x10
push eax
push str.Config_data_URL_:__s
push ecx
call fcn.0044f8c0
push eax
call fcn.0044fb50
mov edx, dword [str.serverConfig.dat]
add esp, 0xc
mov ecx, esp
mov dword [esp + 0x1c], esp
push edx
call fcn.004a6b87
lea eax, [esp + 0x50]
push eax
call fcn.00411130
add esp, 8
mov ecx, eax
mov byte [esp + 0x186fc], 3
call fcn.00414f10
lea ecx, [esp + 0x3c]
mov dword [esp + 0x10], eax
call fcn.00414f10
push 0
push 0
push 0
push 0
push str.HTTP
mov dword [esp + 0x34], eax
call dword [sym.imp.WININET.dll_InternetOpenA]
mov edi, dword [sym.imp.WININET.dll_InternetSetOptionA]
mov ebx, dword [sym.imp.WININET.dll_InternetCloseHandle]
mov esi, eax
test esi, esi
jne 0x43aafc
xor esi, esi
jmp 0x43ac82
lea ecx, [esp + 0x14]
push 4
push ecx
push 2
push esi
mov dword [esp + 0x24], 0x1388
call edi
lea edx, [esp + 0x14]
push 4
push edx
push 5
push esi
call edi
lea eax, [esp + 0x14]
push 4
push eax
push 6
push esi
call edi
lea ecx, [esp + 0x14]
push 4
push ecx
push 7
push esi
call edi
lea edx, [esp + 0x14]
push 4
push edx
push 8
push esi
call edi
mov eax, dword [esp + 0x20]
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 0x43ab8c
push 0x7d0
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [esp + 0x20]
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 0x43ab8c
push esi
call ebx
xor esi, esi
jmp 0x43ac7e
mov edx, dword [esp + 0x10]
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 + 0x10], eax
jne 0x43abbf
push ebp
call ebx
push esi
call ebx
xor esi, esi
jmp 0x43ac7e
push 0
lea eax, [esp + 0x20]
push 0
push eax
push ebp
call dword [sym.imp.WININET.dll_InternetQueryDataAvailable]
test eax, eax
je 0x43ac29
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x34]
push ecx
lea eax, [esp + 0x58]
push edx
push eax
push ebp
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x43ac3e
mov edx, dword [esp + 0x34]
lea ecx, [esp + 0x18]
push 0
push ecx
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x5c]
push edx
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x43ac53
mov eax, dword [esp + 0x34]
test eax, eax
je 0x43ac68
push 0
lea edx, [esp + 0x20]
push 0
push edx
push ebp
call dword [sym.imp.WININET.dll_InternetQueryDataAvailable]
test eax, eax
jne 0x43abd3
push ebp
call ebx
push esi
call ebx
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor esi, esi
jmp 0x43ac7e
push ebp
call ebx
push esi
call ebx
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor esi, esi
jmp 0x43ac7e
push ebp
call ebx
push esi
call ebx
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor esi, esi
jmp 0x43ac7e
push ebp
call ebx
push esi
call ebx
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, 1
mov ebp, dword [esp + 0x2c]
test esi, esi
lea ecx, [esp + 0x4c]
mov byte [esp + 0x186fc], 2
sete byte [esp + 0x43]
call fcn.004a6b19
mov al, byte [esp + 0x43]
test al, al
je 0x43acbc
mov ecx, dword [esp + 0x24]
push str.Config_data_Download_Faile
push ecx
call fcn.0044f8c0
push eax
call fcn.0044fb50
add esp, 0xc
jmp 0x43acdb
mov edx, dword [str.serverConfig.dat]
mov eax, dword [esp + 0x24]
push edx
push str.Success_download_file_:__s
push eax
call fcn.0044f8c0
push eax
call fcn.0044fb50
add esp, 0x10
mov ecx, dword [ebp + 0x44]
mov eax, dword [ecx - 8]
test eax, eax
je 0x43adc9
call fcn.00445ba0
mov ecx, eax
call fcn.00445f20
test eax, eax
je 0x43adc9
mov ecx, dword [ebp + 0x28]
mov eax, dword [ebp + 0x2c]
lea esi, [ebp + 0x24]
push ecx
push eax
push eax
call fcn.0043bea0
add esp, 0xc
mov edi, eax
mov eax, dword [esi + 8]
mov ecx, esi
push eax
push edi
call fcn.0043bb80
mov dword [esi + 8], edi
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
lea edi, [ebp + 4]
push ecx
push eax
push eax
call fcn.0043bee0
add esp, 0xc
mov ebx, eax
mov eax, dword [edi + 8]
mov ecx, edi
push eax
push ebx
call fcn.0043bbb0
mov dword [edi + 8], ebx
mov eax, dword [esi + 8]
lea ebx, [ebp + 0x44]
mov ecx, esi
push ebx
push 1
push eax
call fcn.00435340
mov eax, dword [ebx]
push eax
call dword [sym.imp.WS2_32.dll_inet_addr]
lea edx, [esp + 0x4c]
mov dword [esp + 0x4c], eax
mov eax, dword [edi + 8]
push edx
push 1
push eax
mov ecx, edi
call fcn.0043bbc0
mov ecx, dword [esp + 0x24]
xor eax, eax
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x58], eax
mov eax, dword [ebx]
push eax
push str.ForcedLogin_:__s
push ecx
call fcn.0044f8c0
push eax
call fcn.0044fb50
add esp, 0x10
lea ecx, [esp + 0x38]
mov byte [esp + 0x186fc], 1
call fcn.004a6b19
lea ecx, [esp + 0x3c]
mov dword [esp + 0x186fc], 0xffffffff
call fcn.004a6b19
mov eax, 1
jmp 0x43b91e
test esi, esi
je 0x43b8f7
mov edx, dword [str.serverConfig.dat]
push str.NULL
push str.UpdateFile1
push str.Update
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
call fcn.004a6b87
lea eax, [esp + 0x5c]
push eax
call fcn.00411130
add esp, 8
mov ecx, eax
mov byte [esp + 0x18708], 4
call fcn.00414f10
lea ecx, [esp + 0x54]
push eax
push ecx
call fcn.0041f5a0
add esp, 0x14
lea ecx, [esp + 0x4c]
mov byte [esp + 0x186fc], 6
call fcn.004a6b19
mov edx, dword [esp + 0x48]
mov esi, dword [esp + 0x24]
push edx
push str.Config_data_file_name_:__s
push esi
call fcn.0044f8c0
push eax
call fcn.0044fb50
mov eax, dword [0x4d8cb8]
add esp, 0x10
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x30]
push ecx
push edx
push eax
lea ecx, [esp + 0x50]
push str.http:___s:_s__s
push ecx
mov byte [esp + 0x18710], 7
call fcn.004a1aae
mov edx, dword [esp + 0x58]
add esp, 0x14
push edx
push str._Not_Use_updatecfg.dat_Config_data_file_URL_:__s
push esi
call fcn.0044f8c0
push eax
call fcn.0044fb50
mov eax, dword [str.serverConfig.dat]
add esp, 0xc
mov ecx, esp
mov dword [esp + 0x1c], esp
push eax
call fcn.004a6b87
lea ecx, [esp + 0x34]
push ecx
call fcn.00411130
mov eax, dword [eax]
add esp, 8
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea ecx, [esp + 0x30]
call fcn.004a6b19
mov edx, dword [str.serverConfig.dat]
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push edx
call fcn.004a6b87
lea eax, [esp + 0x2c]
push eax
call fcn.00411130
add esp, 8
mov ecx, eax
mov byte [esp + 0x186fc], 8
call fcn.00414f10
lea ecx, [esp + 0x44]
mov dword [esp + 0x30], eax
call fcn.00414f10
push 0
push 0
push 0
push 0
push str.HTTP
mov dword [esp + 0x34], eax
call dword [sym.imp.WININET.dll_InternetOpenA]
mov esi, eax
test esi, esi
je 0x43b0a5
lea ecx, [esp + 0x10]
push 4
push ecx
push 2
push esi
mov dword [esp + 0x20], 0x1388
call edi
lea edx, [esp + 0x10]
push 4
push edx
push 5
push esi
call edi
lea eax, [esp + 0x10]
push 4
push eax
push 6
push esi
call edi
lea ecx, [esp + 0x10]
push 4
push ecx
push 7
push esi
call edi
lea edx, [esp + 0x10]
push 4
push edx
push 8
push esi
call edi
mov eax, dword [esp + 0x20]
push 0
push 0x84000000
push 0
push 0
push eax
push esi
call dword [sym.imp.WININET.dll_InternetOpenUrlA]
mov edi, eax
test edi, edi
jne 0x43afb3
push 0x7d0
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [esp + 0x20]
push edi
push 0x84000000
push edi
push edi
push ecx
push esi
call dword [sym.imp.WININET.dll_InternetOpenUrlA]
mov edi, eax
test edi, edi
jne 0x43afb3
push esi
call ebx
xor eax, eax
jmp 0x43b0a5
mov edx, dword [esp + 0x30]
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 0x43afe6
push edi
call ebx
push esi
call ebx
xor eax, eax
jmp 0x43b0a5
push 0
lea eax, [esp + 0x20]
push 0
push eax
push edi
call dword [sym.imp.WININET.dll_InternetQueryDataAvailable]
test eax, eax
je 0x43b050
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x34]
push ecx
lea eax, [esp + 0x58]
push edx
push eax
push edi
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x43b065
mov edx, dword [esp + 0x34]
lea ecx, [esp + 0x18]
push 0
push ecx
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x5c]
push edx
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x43b07a
mov eax, dword [esp + 0x34]
test eax, eax
je 0x43b08f
push 0
lea edx, [esp + 0x20]
push 0
push edx
push edi
call dword [sym.imp.WININET.dll_InternetQueryDataAvailable]
test eax, eax
jne 0x43affa
push edi
call ebx
push esi
call ebx
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x43b0a5
push edi
call ebx
push esi
call ebx
mov ecx, dword [esp + 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x43b0a5
push edi
call ebx
push esi
call ebx
mov edx, dword [esp + 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x43b0a5
push edi
call ebx
push esi
call ebx
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
test eax, eax
lea ecx, [esp + 0x28]
mov byte [esp + 0x186fc], 7
sete bl
call fcn.004a6b19
test bl, bl
je 0x43b0e3
mov ecx, dword [str.serverConfig.dat]
mov edx, dword [esp + 0x24]
push ecx
push str.Faile_download_file_:__s
push edx
call fcn.0044f8c0
push eax
call fcn.0044fb50
add esp, 0x10
jmp 0x43b8d5
mov eax, dword [str.serverConfig.dat]
mov esi, dword [esp + 0x24]
push eax
push str.Success_download_file_:__s
push esi
call fcn.0044f8c0
push eax
call fcn.0044fb50
mov edx, dword [str.serverConfig.dat]
add esp, 0xc
mov ecx, esp
mov dword [esp + 0x1c], esp
push edx
call fcn.004a6b87
lea eax, [esp + 0x2c]
push eax
call fcn.00411130
add esp, 8
mov ecx, eax
mov byte [esp + 0x186fc], 9
call fcn.00414f10
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push eax
push 0
push str.ServerNumber
push str.LoginServer
call edi
lea ecx, [esp + 0x28]
mov dword [ebp + 0x60], eax
mov byte [esp + 0x186fc], 7
call fcn.004a6b19
mov ecx, dword [ebp + 0x60]
push ecx
push str.Number_of_login_server:__d
push esi
call fcn.0044f8c0
push eax
call fcn.0044fb50
mov edx, dword [str.serverConfig.dat]
add esp, 0xc
mov ecx, esp
mov dword [esp + 0x1c], esp
push edx
call fcn.004a6b87
lea eax, [esp + 0x2c]
push eax
call fcn.00411130
add esp, 8
mov ecx, eax
mov byte [esp + 0x186fc], 0xa
call fcn.00414f10
push eax
push 0
push str.ServerNumber
push str.PatchServer
call edi
lea ecx, [esp + 0x28]
mov dword [ebp + 0x54], eax
mov byte [esp + 0x186fc], 7
call fcn.004a6b19
mov ecx, dword [ebp + 0x54]
push ecx
push str.Number_of_patch_server:__d
push esi
call fcn.0044f8c0
push eax
call fcn.0044fb50
mov eax, dword [ebp + 0x60]
add esp, 0x10
test eax, eax
je 0x43b890
mov ecx, dword [ebp + 0x54]
test ecx, ecx
je 0x43b890
xor esi, esi
test eax, eax
jbe 0x43b30b
mov ebp, dword [esp + 0x2c]
mov bl, 0xb
lea edi, [ebp + 0x24]
add ebp, 4
mov edx, dword [0x4d8cb8]
mov dword [esp + 0x1c], edx
push esi
lea eax, [esp + 0x20]
push str.Server_d
push eax
mov byte [esp + 0x18708], bl
call fcn.004a1aae
add esp, 0xc
lea ecx, [esp + 0x1c]
push str.NULL
call fcn.00414f10
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.004a6b87
lea eax, [esp + 0x38]
push eax
call fcn.00411130
add esp, 8
mov ecx, eax
mov byte [esp + 0x18708], 0xc
call fcn.00414f10
lea ecx, [esp + 0x1c]
push eax
push ecx
call fcn.0041f5a0
add esp, 0x14
lea ecx, [esp + 0x28]
mov byte [esp + 0x186fc], 0xe
call fcn.004a6b19
mov eax, dword [edi + 8]
lea edx, [esp + 0x10]
push edx
push 1
push eax
mov ecx, edi
call fcn.00435340
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.WS2_32.dll_inet_addr]
lea ecx, [esp + 0x30]
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 8]
push ecx
push 1
push eax
mov ecx, ebp
call fcn.0043bbc0
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
push edx
push esi
push str.__d__Save_login_server_IP:__s
push eax
call fcn.0044f8c0
push eax
call fcn.0044fb50
add esp, 0x14
lea ecx, [esp + 0x10]
mov byte [esp + 0x186fc], bl
call fcn.004a6b19
lea ecx, [esp + 0x1c]
mov byte [esp + 0x186fc], 7
call fcn.004a6b19
mov ecx, dword [esp + 0x2c]
inc esi
cmp esi, dword [ecx + 0x60]
jb 0x43b205
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
call fcn.00491079
add esp, 4
call fcn.00491086
mov edi, dword [esp + 0x2c]
cdq
idiv dword [edi + 0x60]
mov dword [edi + 0x5c], edx
mov dword [edi + 0x58], edx
push edx
mov edx, dword [esp + 0x28]
push str.Select_Login_Server__:__d
push edx
call fcn.0044f8c0
push eax
call fcn.0044fb50
mov eax, dword [edi + 0x44]
add esp, 0x10
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x43b421
mov ebx, dword [edi + 0x2c]
mov esi, dword [edi + 0x28]
lea ebp, [edi + 0x24]
cmp ebx, ebx
mov dword [esp + 0x1c], ebx
je 0x43b383
mov ecx, dword [esp + 0x1c]
push ecx
mov ecx, esi
call fcn.004a6c52
mov eax, dword [esp + 0x1c]
add esi, 4
add eax, 4
cmp eax, ebx
mov dword [esp + 0x1c], eax
jne 0x43b365
mov eax, dword [ebp + 8]
mov ebx, esi
cmp esi, eax
mov dword [esp + 0x28], eax
je 0x43b3a4
push 0
mov ecx, ebx
call fcn.0043bfa0
mov eax, dword [esp + 0x28]
add ebx, 4
cmp ebx, eax
jne 0x43b390
mov dword [ebp + 8], esi
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 8]
lea esi, [edi + 4]
cmp eax, eax
mov edx, eax
je 0x43b3c4
mov ebx, dword [edx]
add edx, 4
mov dword [ecx], ebx
add ecx, 4
cmp edx, eax
jne 0x43b3b6
mov edx, dword [esi + 8]
lea ebx, [edi + 0x44]
mov dword [esi + 8], ecx
mov eax, dword [ebp + 8]
push ebx
push 1
push eax
mov ecx, ebp
mov dword [esp + 0x24], edx
call fcn.00435340
mov eax, dword [ebx]
push eax
call dword [sym.imp.WS2_32.dll_inet_addr]
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], eax
mov eax, dword [esi + 8]
push ecx
push 1
push eax
mov ecx, esi
call fcn.0043bbc0
mov edx, dword [ebx]
xor eax, eax
mov dword [edi + 0x5c], eax
mov dword [edi + 0x58], eax
mov eax, dword [esp + 0x24]
push edx
push str.ForcedLogin_:__s
push eax
call fcn.0044f8c0
push eax
call fcn.0044fb50
add esp, 0x10
mov eax, dword [edi + 0x54]
mov dword [esp + 0x20], 0
test eax, eax
jbe 0x43b7f0
mov ebx, dword [esp + 0x2c]
lea esi, [ebx + 0x34]
add ebx, 0x14
mov ecx, dword [0x4d8cb8]
mov dword [esp + 0x34], ecx
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x34]
push edx
push str.Server_d
push eax
mov byte [esp + 0x18708], 0xf
call fcn.004a1aae
add esp, 0xc
lea ecx, [esp + 0x34]
push str.NULL
call fcn.00414f10
mov edx, dword [str.serverConfig.dat]
push eax
push str.PatchServer
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
call fcn.004a6b87
lea eax, [esp + 0x38]
push eax
call fcn.00411130
add esp, 8
mov ecx, eax
mov byte [esp + 0x18708], 0x10
call fcn.00414f10
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.0041f5a0
add esp, 0x14
lea ecx, [esp + 0x28]
mov byte [esp + 0x186fc], 0x12
call fcn.004a6b19
mov edi, dword [esi + 8]
mov edx, dword [esi + 0xc]
sub edx, edi
sar edx, 2
cmp edx, 1
jae 0x43b58d
mov ecx, esi
call fcn.0043bb30
cmp eax, 1
jbe 0x43b4f4
mov ecx, esi
call fcn.0043bb30
mov ebp, eax
jmp 0x43b4f9
mov ebp, 1
mov ecx, esi
call fcn.0043bb30
add eax, ebp
mov dword [esp + 0x10], eax
jns 0x43b50a
xor eax, eax
shl eax, 2
push eax
call fcn.004a685a
mov ecx, dword [esi + 4]
add esp, 4
mov ebp, eax
push ebp
push edi
push ecx
mov ecx, esi
call fcn.0043bdd0
lea edx, [esp + 0x14]
mov ecx, esi
push edx
push 1
push eax
mov dword [esp + 0x3c], eax
call fcn.0043be10
mov eax, dword [esp + 0x30]
mov ecx, dword [esi + 8]
add eax, 4
push eax
push ecx
push edi
mov ecx, esi
call fcn.0043bdd0
mov edx, dword [esi + 8]
mov eax, dword [esi + 4]
push edx
push eax
mov ecx, esi
call fcn.0043bb80
mov eax, dword [esi + 4]
push eax
call fcn.004a6883
mov ecx, dword [esp + 0x14]
add esp, 4
lea edx, [ebp + ecx*4]
mov ecx, esi
mov dword [esi + 0xc], edx
call fcn.0043bb30
lea eax, [ebp + eax*4 + 4]
mov dword [esi + 4], ebp
mov dword [esi + 8], eax
mov ebp, 4
jmp 0x43b613
mov ecx, edi
sub ecx, edi
sar ecx, 2
cmp ecx, 1
jae 0x43b5d9
lea edx, [edi + 4]
mov ecx, esi
push edx
push edi
push edi
call fcn.0043bdd0
mov eax, dword [esi + 8]
lea ecx, [esp + 0x14]
mov edx, eax
push ecx
sub edx, edi
mov ecx, 1
sar edx, 2
sub ecx, edx
push ecx
push eax
mov ecx, esi
call fcn.0043be10
mov eax, dword [esi + 8]
lea edx, [esp + 0x14]
push edx
push eax
push edi
call fcn.0043bf10
add esp, 0xc
jmp 0x43b606
push edi
lea ecx, [edi - 4]
push edi
push ecx
mov ecx, esi
call fcn.0043bdd0
mov eax, dword [esi + 8]
push eax
add eax, 0xfffffffc
push eax
push edi
call fcn.0043bf40
lea edx, [esp + 0x20]
lea eax, [edi + 4]
push edx
push eax
push edi
call fcn.0043bf10
add esp, 0x18
mov eax, dword [esi + 8]
mov ebp, 4
add eax, ebp
mov dword [esi + 8], eax
mov ecx, dword [esp + 0x14]
push ecx
call dword [sym.imp.WS2_32.dll_inet_addr]
mov edx, dword [ebx + 0xc]
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 8]
sub edx, eax
mov edi, eax
sar edx, 2
cmp edx, 1
jae 0x43b710
mov edx, dword [ebx + 4]
test edx, edx
je 0x43b64b
mov ecx, eax
sub ecx, edx
sar ecx, 2
cmp ecx, 1
ja 0x43b650
mov ecx, 1
test edx, edx
jne 0x43b658
xor eax, eax
jmp 0x43b65d
sub eax, edx
sar eax, 2
add eax, ecx
test eax, eax
mov dword [esp + 0x18], eax
jge 0x43b669
xor eax, eax
shl eax, 2
push eax
call fcn.004a685a
mov ebp, dword [ebx + 4]
add esp, 4
cmp ebp, edi
mov dword [esp + 0x50], eax
mov dword [esp + 0x10], eax
je 0x43b6a4
mov ecx, dword [esp + 0x10]
push ebp
push ecx
call fcn.0043bf80
mov edx, dword [esp + 0x18]
add ebp, 4
add esp, 8
add edx, 4
cmp ebp, edi
mov dword [esp + 0x10], edx
jne 0x43b684
mov ebp, dword [esp + 0x10]
lea edx, [esp + 0x1c]
push edx
push ebp
call fcn.0043bf80
mov eax, dword [ebx + 8]
add esp, 8
cmp edi, eax
mov dword [esp + 0x30], eax
je 0x43b6dc
add ebp, 4
push edi
push ebp
call fcn.0043bf80
mov eax, dword [esp + 0x38]
add edi, 4
add esp, 8
add ebp, 4
cmp edi, eax
jne 0x43b6c4
mov eax, dword [ebx + 4]
push eax
mov dword [esp + 0x34], eax
call fcn.004a6883
mov edi, dword [esp + 0x54]
mov eax, dword [esp + 0x1c]
add esp, 4
lea ecx, [edi + eax*4]
mov dword [ebx + 0xc], ecx
mov ecx, ebx
call fcn.0043bb30
lea edx, [edi + eax*4 + 4]
mov dword [ebx + 4], edi
mov dword [ebx + 8], edx
jmp 0x43b79a
mov ecx, eax
sub ecx, edi
sar ecx, 2
cmp ecx, 1
jae 0x43b75d
lea ecx, [edi + 4]
push ecx
push eax
push edi
mov ecx, ebx
call fcn.0043be40
mov eax, dword [ebx + 8]
lea edx, [esp + 0x1c]
mov ecx, eax
push edx
sub ecx, edi
mov edx, 1
sar ecx, 2
sub edx, ecx
mov ecx, ebx
push edx
push eax
call fcn.0043be70
mov eax, dword [ebx + 8]
cmp edi, eax
je 0x43b797
mov ecx, dword [esp + 0x1c]
mov dword [edi], ecx
add edi, ebp
cmp edi, eax
jne 0x43b74f
jmp 0x43b797
lea ecx, [eax - 4]
push eax
push eax
mov dword [esp + 0x20], ecx
push ecx
mov ecx, ebx
call fcn.0043be40
mov ecx, dword [ebx + 8]
lea eax, [ecx - 4]
cmp edi, eax
je 0x43b784
sub eax, ebp
sub ecx, ebp
cmp eax, edi
mov edx, dword [eax]
mov dword [ecx], edx
jne 0x43b778
lea eax, [edi + 4]
cmp edi, eax
je 0x43b797
mov ecx, dword [esp + 0x1c]
mov dword [edi], ecx
add edi, ebp
cmp edi, eax
jne 0x43b78b
add dword [ebx + 8], ebp
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
push edx
push edi
push str.__d__Save_patch_server_IP:__s
push eax
call fcn.0044f8c0
push eax
call fcn.0044fb50
add esp, 0x14
lea ecx, [esp + 0x14]
mov byte [esp + 0x186fc], 0xf
call fcn.004a6b19
lea ecx, [esp + 0x34]
mov byte [esp + 0x186fc], 7
call fcn.004a6b19
mov ecx, dword [esp + 0x2c]
inc edi
mov dword [esp + 0x20], edi
cmp edi, dword [ecx + 0x54]
jb 0x43b43e
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
call fcn.00491079
add esp, 4
call fcn.00491086
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x24]
cdq
idiv dword [ecx + 0x54]
push edx
push str.Select_Patch_Server__:__d
push esi
mov dword [ecx + 0x50], edx
mov dword [ecx + 0x4c], edx
call fcn.0044f8c0
push eax
call fcn.0044fb50
add esp, 0x10
push str.ConfigData_Ok
push esi
call fcn.0044f8c0
push eax
call fcn.0044fb50
add esp, 0xc
lea ecx, [esp + 0x44]
mov byte [esp + 0x186fc], 6
call fcn.004a6b19
lea ecx, [esp + 0x48]
mov byte [esp + 0x186fc], 2
call fcn.004a6b19
lea ecx, [esp + 0x38]
mov byte [esp + 0x186fc], 1
call fcn.004a6b19
lea ecx, [esp + 0x3c]
mov dword [esp + 0x186fc], 0xffffffff
call fcn.004a6b19
mov eax, 1
jmp 0x43b91e
push str.ConfigDataServer_is_Err_Ini_File._ServerNum_0_
push esi
call fcn.0044f8c0
push eax
call fcn.0044fb50
mov edx, dword [str.serverConfig.dat]
add esp, 8
mov ecx, esp
mov dword [esp + 0x1c], esp
push edx
call fcn.004a6b87
lea eax, [esp + 0x1c]
push eax
call fcn.00411130
mov eax, dword [eax]
add esp, 8
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea ecx, [esp + 0x18]
call fcn.004a6b19
lea ecx, [esp + 0x44]
mov byte [esp + 0x186fc], 6
call fcn.004a6b19
lea ecx, [esp + 0x48]
mov byte [esp + 0x186fc], 2
call fcn.004a6b19
lea ecx, [esp + 0x38]
mov byte [esp + 0x186fc], 1
call fcn.004a6b19
lea ecx, [esp + 0x3c]
mov dword [esp + 0x186fc], 0xffffffff
call fcn.004a6b19
xor eax, eax
mov ecx, dword [esp + 0x186f4]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x186f0
ret