Function at 0x419220
Capabilities:
Check if file exists
Read .ini file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x42b6d9
mov eax, dword fs:[0]
push eax
sub esp, 0x818
mov eax, dword [0x4340a0]
xor eax, esp
mov dword [esp + 0x810], eax
push ebx
push esi
push edi
mov eax, dword [0x4340a0]
xor eax, esp
push eax
lea eax, [esp + 0x828]
mov dword fs:[0], eax
mov edi, 0x42ec10
lea esi, [esp + 0x14]
call fcn.00408650
mov dword [esp + 0x830], 0
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x4192cc
push eax
push str.360EntPublish
push 0x42ec24
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
mov dword [esp + 0x830], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4192c5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor al, al
jmp 0x419a84
mov ecx, dword [esp + 0x14]
mov edx, dword [0x436774]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push ecx
push edx
push str.debug_level
push str.server
call esi
mov ecx, dword [0x436778]
mov dword [0x436774], eax
mov eax, dword [esp + 0x14]
push eax
push ecx
push str.sock_bufsize
push str.server
call esi
mov edx, dword [esp + 0x14]
push edx
mov dword [0x436778], eax
mov eax, dword [0x43677c]
push eax
push str.log_http
push str.server
call esi
mov ecx, dword [esp + 0x14]
mov edx, dword [0x436780]
push ecx
push edx
push str.log_proxy
push str.server
mov dword [0x43677c], eax
call esi
mov ecx, dword [0x436784]
mov dword [0x436780], eax
mov eax, dword [esp + 0x14]
push eax
push ecx
push str.log_keep_day
push str.server
call esi
mov edx, dword [esp + 0x14]
push edx
mov dword [0x436784], eax
mov eax, dword [0x4367f4]
push eax
push str.proxy_retry_delay
push str.server
call esi
mov ecx, dword [esp + 0x14]
mov edx, dword [0x4367f8]
push ecx
push edx
push str.proxy_cache_expire
push str.server
mov dword [0x4367f4], eax
call esi
mov ecx, dword [0x4367fc]
mov dword [0x4367f8], eax
mov eax, dword [esp + 0x14]
push eax
push ecx
push str.proxy_cache_errors
push str.server
call esi
mov edx, dword [esp + 0x14]
push edx
mov dword [0x4367fc], eax
mov eax, dword [0x436800]
push eax
push str.proxy_fetch
push str.server
call esi
mov ecx, dword [esp + 0x14]
mov edx, dword [0x436804]
push ecx
push edx
push str.proxy_fetch_conn
push str.server
mov dword [0x436800], eax
call esi
mov dword [0x436804], eax
mov ebx, 1
cmp eax, ebx
jae 0x419402
mov dword [0x436804], ebx
jmp 0x419411
cmp eax, 0xa
jbe 0x419411
mov dword [0x436804], 0xa
mov eax, dword [esp + 0x14]
mov ecx, dword [0x436808]
push eax
push ecx
push str.proxy_fetch_try
push str.server
call esi
mov edx, dword [esp + 0x14]
push edx
mov dword [0x436808], eax
mov eax, dword [0x43680c]
push eax
push str.cache_xml_interval
push str.server
call esi
mov ecx, dword [esp + 0x14]
mov edx, dword [0x436790]
push ecx
push edx
push str.cache_free_mb
push str.server
mov dword [0x43680c], eax
call esi
push 0x7ff
mov dword [0x436790], eax
lea eax, [esp + 0x21]
push 0
push eax
mov byte [esp + 0x28], 0
call fcn.0041e500
mov ecx, dword [esp + 0x20]
add esp, 0xc
push ecx
push 0x7ff
lea edx, [esp + 0x24]
push edx
push str.html
push str.wwwroot
push str.server
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea edi, [esp + 0x1c]
lea esi, [esp + 0x10]
call fcn.00408650
mov byte [esp + 0x830], bl
mov ebx, 0x436788
call fcn.00403250
mov byte [esp + 0x830], 0
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4194ea
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
push ecx
push 0x7ff
lea edx, [esp + 0x24]
push edx
push str.temp
push str.cacheroot
push str.proxy
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea edi, [esp + 0x1c]
lea esi, [esp + 0x10]
call fcn.00408650
mov ebx, 0x43678c
mov byte [esp + 0x830], 2
call fcn.00403250
mov byte [esp + 0x830], 0
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x419555
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 1
push ecx
mov edi, str.logs
mov esi, esp
mov dword [esp + 0x18], esp
call fcn.00408650
call fcn.0040dd50
mov eax, dword [0x43678c]
add esp, 8
push 1
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x18], esp
mov esi, esp
call fcn.004031e0
add eax, 0x10
mov dword [esi], eax
call fcn.0040dd50
mov eax, dword [0x436788]
add esp, 8
push 1
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x18], esp
mov esi, esp
call fcn.004031e0
add eax, 0x10
mov dword [esi], eax
call fcn.0040dd50
mov ecx, dword [esp + 0x1c]
push str.proxy_hosts
push ecx
mov esi, 0x4367ac
call fcn.00418e60
mov edx, dword [0x4367bc]
sub edx, dword [0x4367b8]
add esp, 0x10
test edx, 0xfffffffc
jne 0x4196c6
lea eax, [esp + 0x10]
push eax
mov ecx, str..360safe.com
call fcn.00401cb0
lea ebx, [esp + 0x10]
mov edi, esi
mov byte [esp + 0x830], 3
call fcn.00403fa0
mov byte [esp + 0x830], 0
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41962c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x10]
push ecx
mov ecx, str..360.cn
call fcn.00401cb0
lea ebx, [esp + 0x10]
mov edi, 0x4367ac
mov byte [esp + 0x830], 4
call fcn.00403fa0
mov byte [esp + 0x830], 0
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x419679
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x10]
push ecx
mov ecx, str..dlservice.microsoft.com
call fcn.00401cb0
lea ebx, [esp + 0x10]
mov edi, 0x4367ac
mov byte [esp + 0x830], 5
call fcn.00403fa0
mov byte [esp + 0x830], 0
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4196c6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
push str.noexpire_urls
push ecx
mov esi, 0x4367c4
call fcn.00418e60
mov edx, dword [esp + 0x1c]
push str.nocache_urls
push edx
mov esi, 0x4367dc
call fcn.00418e60
mov eax, dword [esp + 0x24]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
add esp, 0x10
push eax
push 0x7ff
lea ecx, [esp + 0x24]
push ecx
push str.entlog.cab
push str.logclient
push str.server
call esi
lea eax, [esp + 0x1c]
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x419720
sub eax, edx
lea edx, [esp + 0x1c]
mov edi, eax
push edx
mov eax, 0x436794
call fcn.00401be0
mov eax, dword [esp + 0x14]
push eax
push 0x7ff
lea ecx, [esp + 0x24]
push ecx
push str.EntClient.cab
push str.logaccess
push str.server
call esi
lea eax, [esp + 0x1c]
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x419761
sub eax, ecx
lea edx, [esp + 0x1c]
mov edi, eax
push edx
mov eax, 0x436798
call fcn.00401be0
mov eax, dword [esp + 0x14]
push eax
push 0x7ff
lea ecx, [esp + 0x24]
push ecx
push str.index.html
push str.index
push str.server
call esi
lea eax, [esp + 0x1c]
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4197a2
sub eax, ecx
lea edx, [esp + 0x1c]
mov edi, eax
push edx
mov eax, 0x43679c
call fcn.00401be0
mov eax, dword [esp + 0x14]
push eax
push 0x7ff
lea ecx, [esp + 0x24]
push ecx
push str.admin
push str.admin
push str.server
call esi
mov edi, dword [0x436788]
lea ebx, [esp + 0x1c]
lea esi, [esp + 0x10]
call fcn.00415130
mov ebx, 0x4367a0
mov byte [esp + 0x830], 6
call fcn.00403250
mov byte [esp + 0x830], 0
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x419829
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
push ecx
push 0x7ff
lea edx, [esp + 0x24]
push edx
push str.install360EntInst
push str.rewrite_from
push str.installer
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov edi, dword [0x436788]
lea ebx, [esp + 0x1c]
lea esi, [esp + 0x10]
call fcn.00415130
mov ebx, 0x436810
mov byte [esp + 0x830], 7
call fcn.00403250
mov byte [esp + 0x830], 0
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41989a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
push ecx
push 0x7ff
lea edx, [esp + 0x24]
push edx
push str.install360EntInst.dat
push str.rewrite_to
push str.installer
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov edi, dword [0x436788]
lea ebx, [esp + 0x1c]
lea esi, [esp + 0x10]
call fcn.00415130
mov ebx, 0x436814
mov byte [esp + 0x830], 8
call fcn.00403250
mov byte [esp + 0x830], 0
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41990b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, str.360EntPublish.ini
lea esi, [esp + 0x18]
call fcn.00408650
mov byte [esp + 0x830], 9
mov ecx, dword [esp + 0x18]
mov edx, dword [0x436770]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push ecx
push edx
push str.port
push str.server
call esi
mov ecx, dword [0x4367a8]
mov dword [0x436770], eax
mov eax, dword [esp + 0x18]
push eax
push ecx
push str.authbasic
push str.server
call esi
mov edx, dword [esp + 0x18]
push edx
push 0x7ff
mov dword [0x4367a8], eax
lea eax, [esp + 0x24]
push eax
push 0x42df13
push str.authpasswd
push str.server
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [esp + 0x1c]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x419990
sub eax, edx
jne 0x4199b1
push 0x42df13
xor edi, edi
mov eax, 0x4367a4
call fcn.00401be0
jmp 0x419a2f
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push ecx
lea ecx, [esp + 0x24]
call fcn.00401cb0
lea edx, [esp + 0x14]
push edx
call fcn.00418ff0
add esp, 8
mov byte [esp + 0x830], 0xa
cmp dword [0x4367a8], 1
jne 0x4199f9
mov eax, dword [esp + 0x10]
push eax
push str.admin:_s
mov edi, 0x4367a4
call fcn.004049a0
add esp, 8
jmp 0x419a07
lea eax, [esp + 0x10]
mov ebx, 0x4367a4
call fcn.00403250
mov byte [esp + 0x830], 9
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x419a2f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x830], 0
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x419a57
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x830], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x419a82
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov al, 1
mov ecx, dword [esp + 0x828]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x810]
xor ecx, esp
call fcn.0041c257
mov esp, ebp
pop ebp
ret