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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x42b6a9
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 0x41929c
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 0x419295
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor al, al
jmp 0x419a54
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 0x4193d2
mov dword [0x436804], ebx
jmp 0x4193e1
cmp eax, 0xa
jbe 0x4193e1
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.0041e4d0
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 0x4194ba
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 0x419525
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.0040dd70
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.0040dd70
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.0040dd70
mov ecx, dword [esp + 0x1c]
push str.proxy_hosts
push ecx
mov esi, 0x4367ac
call fcn.00418e30
mov edx, dword [0x4367bc]
sub edx, dword [0x4367b8]
add esp, 0x10
test edx, 0xfffffffc
jne 0x419696
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 0x4195fc
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 0x419649
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 0x419696
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.00418e30
mov edx, dword [esp + 0x1c]
push str.nocache_urls
push edx
mov esi, 0x4367dc
call fcn.00418e30
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 0x4196f0
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 0x419731
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 0x419772
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.00415120
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 0x4197f9
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.00415120
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 0x41986a
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.00415120
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 0x4198db
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 0x419960
sub eax, edx
jne 0x419981
push 0x42df13
xor edi, edi
mov eax, 0x4367a4
call fcn.00401be0
jmp 0x4199ff
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.00418fc0
add esp, 8
mov byte [esp + 0x830], 0xa
cmp dword [0x4367a8], 1
jne 0x4199c9
mov eax, dword [esp + 0x10]
push eax
push str.admin:_s
mov edi, 0x4367a4
call fcn.004049a0
add esp, 8
jmp 0x4199d7
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 0x4199ff
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 0x419a27
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 0x419a52
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.0041c227
mov esp, ebp
pop ebp
ret