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

Disassembly:
push 0x464
mov eax, 0x4a2d4a
call fcn.00481da3
call fcn.0045db7e
push eax
lea ecx, [ebp - 0x428]
call fcn.0040161b
xor esi, esi
mov dword [ebp - 4], esi
call fcn.0045db7e
push eax
lea ecx, [ebp - 0x438]
call fcn.0040161b
push 0x206
lea eax, [ebp - 0x422]
push esi
mov byte [ebp - 4], 1
push eax
mov word [ebp - 0x424], si
call fcn.0047e7d0
add esp, 0xc
lea eax, [ebp - 0x42c]
push 0xe
push eax
call fcn.00402f7f
mov edi, str.uplive.svr
push edi
push eax
lea eax, [ebp - 0x430]
push eax
mov byte [ebp - 4], 2
call fcn.00402dca
add esp, 0x14
push eax
lea ecx, [ebp - 0x428]
mov byte [ebp - 4], 3
call fcn.004015ba
mov ecx, dword [ebp - 0x430]
add ecx, 0xfffffff0
call fcn.00401325
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x42c]
add ecx, 0xfffffff0
call fcn.00401325
push dword [ebp - 0x428]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x40d149
lea eax, [ebp - 0x42c]
push 2
push eax
call fcn.00402f7f
push edi
push eax
lea eax, [ebp - 0x430]
push eax
mov byte [ebp - 4], 4
call fcn.00402dca
add esp, 0x14
push eax
lea ecx, [ebp - 0x428]
mov byte [ebp - 4], 5
call fcn.004015ba
mov ecx, dword [ebp - 0x430]
add ecx, 0xfffffff0
call fcn.00401325
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x42c]
add ecx, 0xfffffff0
call fcn.00401325
mov eax, dword [0x4ee7f4]
mov ecx, dword [eax]
push 0x807f
lea edx, [ebp - 0x438]
push edx
push eax
call dword [ecx + 0xc]
lea edi, [ebp - 0x438]
call fcn.00406399
push dword [ebp - 0x428]
mov edi, 0x104
push edi
lea eax, [ebp - 0x424]
push eax
push str.Kingsoft_Antivirus_Update_Server
push str.name
mov ebx, str.update
push ebx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
cmp eax, esi
mov ecx, 0x4ef5f0
jne 0x40d1a4
push str.Kingsoft_Antivirus_Update_Server
jmp 0x40d1ab
lea eax, [ebp - 0x424]
push eax
call fcn.004014c5
push dword [ebp - 0x428]
push esi
push 0x4acf2c
push ebx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
cmp eax, esi
mov dword [ebp - 0x444], eax
mov dword [ebp - 0x434], esi
jle 0x40d3d4
push 0x206
lea eax, [ebp - 0x21a]
push esi
push eax
mov word [ebp - 0x21c], si
call fcn.0047e7d0
add esp, 0xc
call fcn.0045db7e
push eax
lea ecx, [ebp - 0x42c]
call fcn.0040161b
mov byte [ebp - 4], 6
call fcn.0045db7e
push eax
lea ecx, [ebp - 0x43c]
call fcn.0040161b
mov byte [ebp - 4], 7
call fcn.0045db7e
push eax
lea ecx, [ebp - 0x440]
call fcn.0040161b
lea eax, [ebp - 0x454]
push eax
mov byte [ebp - 4], 8
call fcn.0040ed7d
push dword [ebp - 0x434]
lea eax, [ebp - 0x42c]
push str.server_d
push eax
mov byte [ebp - 4], 9
call fcn.004063eb
add esp, 0xc
push dword [ebp - 0x434]
lea eax, [ebp - 0x43c]
push str.filetype_d
push eax
call fcn.004063eb
add esp, 0xc
push dword [ebp - 0x434]
lea eax, [ebp - 0x440]
push str.odds_d
push eax
call fcn.004063eb
add esp, 0xc
push dword [ebp - 0x428]
push esi
push dword [ebp - 0x43c]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
push ebx
call esi
push dword [ebp - 0x428]
mov dword [ebp - 0x430], eax
push edi
lea eax, [ebp - 0x21c]
push eax
push 0x4ac888
push dword [ebp - 0x42c]
push ebx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push dword [ebp - 0x428]
push 0x64
push dword [ebp - 0x440]
push ebx
call esi
mov esi, eax
lea eax, [ebp - 0x21c]
push edi
push eax
call fcn.0047edd5
mov eax, dword [ebp - 0x430]
pop ecx
pop ecx
mov dword [ebp - 0x44c], eax
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x448]
call fcn.004014c5
mov dword [ebp - 0x454], esi
mov esi, str.http:__
push esi
call fcn.0047ba0d
pop ecx
push eax
lea eax, [ebp - 0x21c]
push esi
push eax
call fcn.0047f8f5
add esp, 0xc
test eax, eax
jne 0x40d37e
mov eax, dword [ebp - 0x430]
mov dword [ebp - 0x468], eax
lea eax, [ebp - 0x454]
lea esi, [ebp - 0x464]
call fcn.0040e5bb
lea eax, [ebp - 0x468]
push eax
lea edi, [ebp - 0x470]
mov eax, 0x4ef5f4
mov byte [ebp - 4], 0xa
call fcn.0040e4fb
mov ecx, dword [ebp - 0x458]
add ecx, 0xfffffff0
call fcn.00401325
mov edi, 0x104
mov ecx, dword [ebp - 0x448]
add ecx, 0xfffffff0
call fcn.00401325
mov ecx, dword [ebp - 0x440]
add ecx, 0xfffffff0
call fcn.00401325
mov ecx, dword [ebp - 0x43c]
add ecx, 0xfffffff0
call fcn.00401325
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x42c]
add ecx, 0xfffffff0
call fcn.00401325
inc dword [ebp - 0x434]
mov eax, dword [ebp - 0x434]
xor esi, esi
cmp eax, dword [ebp - 0x444]
jl 0x40d1d7
lea eax, [ebp - 0x444]
mov ebx, 0x4ef5f4
push eax
mov edi, ebx
mov dword [ebp - 0x444], esi
call fcn.0040e555
test eax, eax
jne 0x40d464
lea eax, [ebp - 0x454]
push eax
call fcn.0040ed7d
lea eax, [ebp - 0x438]
mov byte [ebp - 4], 0xb
push eax
lea ecx, [ebp - 0x448]
mov dword [ebp - 0x44c], esi
call fcn.004015ba
mov dword [ebp - 0x468], esi
lea eax, [ebp - 0x454]
lea esi, [ebp - 0x464]
call fcn.0040e5bb
lea eax, [ebp - 0x468]
push eax
lea edi, [ebp - 0x470]
mov eax, ebx
mov byte [ebp - 4], 0xc
call fcn.0040e4fb
mov ecx, dword [ebp - 0x458]
add ecx, 0xfffffff0
call fcn.00401325
mov ecx, dword [ebp - 0x448]
add ecx, 0xfffffff0
call fcn.00401325
mov ecx, dword [ebp - 0x438]
add ecx, 0xfffffff0
call fcn.00401325
mov ecx, dword [ebp - 0x428]
add ecx, 0xfffffff0
call fcn.00401325
xor eax, eax
inc eax
call fcn.00481e26
ret