Function at 0x4042e6
Capabilities:
Create directory
Download url
Get common file path
Read .ini file
Receive data

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2d7c
call fcn.00405e50
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov edi, dword [ebp + 0xc]
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x4c8], ax
lea eax, [ebp - 0x4c6]
push eax
mov dword [ebp - 0x2d7c], edi
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [ebp - 0x4c8]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatW]
push str.download_
lea eax, [ebp - 0x4c8]
push eax
call esi
push 0
lea eax, [ebp - 0x4c8]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push str.update_s_list.txt
lea eax, [ebp - 0x4c8]
push eax
call esi
and dword [edi], 0
xor eax, eax
push 0x1046
push eax
mov word [ebp - 0x2d78], ax
lea eax, [ebp - 0x2d76]
push eax
call sub.msvcrt.dll_memset
mov esi, dword [0x40867c]
mov edi, dword [sym.imp.KERNEL32.dll_lstrcpyW]
add esp, 0xc
push str.http:__config.woyoo.com:8800_woyoo_1.1.14.6240_soft_list.txt
push dword [esi + 0x18]
call edi
mov esi, dword [esi + 0x18]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
push esi
lea eax, [ebp - 0x2d78]
push str._s_tmp_d
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
xor esi, esi
push esi
push esi
lea eax, [ebp - 0x4c8]
push eax
lea eax, [ebp - 0x2d78]
push eax
push esi
call dword [sym.imp.urlmon.dll_URLDownloadToFileW]
test eax, eax
jne 0x404738
push 0xc6
mov word [ebp - 0xcc], ax
lea eax, [ebp - 0xca]
push esi
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [ebp - 0xcc]
push str.config
push eax
call edi
lea eax, [ebp - 0x4c8]
push eax
push esi
push str.count
lea eax, [ebp - 0xcc]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov esi, eax
push 0x18
pop eax
cmp esi, eax
mov ecx, esi
cmovg ecx, eax
mov eax, dword [ebp - 0x2d7c]
mov dword [eax], ecx
test esi, esi
jle 0x404745
xor eax, eax
push 0x62
push eax
mov word [ebp - 0x194], ax
lea eax, [ebp - 0x192]
push eax
call sub.msvcrt.dll_memset
xor eax, eax
push 0x62
push eax
mov word [ebp - 0x25c], ax
lea eax, [ebp - 0x25a]
push eax
call sub.msvcrt.dll_memset
xor eax, eax
push 0x62
push eax
mov word [ebp - 0x130], ax
lea eax, [ebp - 0x12e]
push eax
call sub.msvcrt.dll_memset
xor eax, eax
push 0x62
push eax
mov word [ebp - 0x1f8], ax
lea eax, [ebp - 0x1f6]
push eax
call sub.msvcrt.dll_memset
xor eax, eax
push 0x62
push eax
mov word [ebp - 0x2c0], ax
lea eax, [ebp - 0x2be]
push eax
call sub.msvcrt.dll_memset
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x8d8], ax
lea eax, [ebp - 0x8d6]
push eax
call sub.msvcrt.dll_memset
add esp, 0x48
xor eax, eax
push 0x1046
push eax
mov word [ebp - 0x1d30], ax
lea eax, [ebp - 0x1d2e]
push eax
call sub.msvcrt.dll_memset
xor eax, eax
push 0x206
push eax
mov word [ebp - 0xce8], ax
lea eax, [ebp - 0xce6]
push eax
call sub.msvcrt.dll_memset
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x6d0], ax
lea eax, [ebp - 0x6ce]
push eax
call sub.msvcrt.dll_memset
xor eax, eax
push 0x206
push eax
mov word [ebp - 0xae0], ax
lea eax, [ebp - 0xade]
push eax
call sub.msvcrt.dll_memset
xor eax, eax
add esp, 0x30
mov dword [ebp - 0x2d7c], eax
test esi, esi
jle 0x404745
cmp esi, 0x18
jge 0x404745
push eax
lea eax, [ebp - 0x194]
push str.title_d
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
push dword [ebp - 0x2d7c]
lea eax, [ebp - 0x25c]
push str.url_d
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
push dword [ebp - 0x2d7c]
lea eax, [ebp - 0x130]
push str.filename_d
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
push dword [ebp - 0x2d7c]
lea eax, [ebp - 0x1f8]
push str.param_d
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
push dword [ebp - 0x2d7c]
lea eax, [ebp - 0x2c0]
push str.checkkey_d
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x3c
lea eax, [ebp - 0x4c8]
push eax
push 0x104
lea eax, [ebp - 0x8d8]
push eax
push 0x406394
lea eax, [ebp - 0x194]
push eax
lea eax, [ebp - 0xcc]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x4c8]
push eax
push 0x824
lea eax, [ebp - 0x1d30]
push eax
push 0x406394
lea eax, [ebp - 0x25c]
push eax
lea eax, [ebp - 0xcc]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x4c8]
push eax
push 0x104
lea eax, [ebp - 0xce8]
push eax
push 0x406394
lea eax, [ebp - 0x130]
push eax
lea eax, [ebp - 0xcc]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x4c8]
push eax
push 0x104
lea eax, [ebp - 0x6d0]
push eax
push 0x406394
lea eax, [ebp - 0x1f8]
push eax
lea eax, [ebp - 0xcc]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x4c8]
push eax
push 0x104
lea eax, [ebp - 0xae0]
push eax
push 0x406394
lea eax, [ebp - 0x2c0]
push eax
lea eax, [ebp - 0xcc]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push 0x186c
call dword [sym.imp.msvcrt.dll_malloc]
pop ecx
mov dword [ebx], eax
test eax, eax
je 0x404721
lea ecx, [ebp - 0x8d8]
push ecx
push eax
call edi
lea eax, [ebp - 0x1d30]
push eax
mov eax, dword [ebx]
add eax, 0x208
push eax
call edi
lea eax, [ebp - 0xce8]
push eax
mov eax, dword [ebx]
add eax, 0x1250
push eax
call edi
lea eax, [ebp - 0x6d0]
push eax
mov eax, dword [ebx]
add eax, 0x1458
push eax
call edi
lea eax, [ebp - 0xae0]
push eax
mov eax, dword [ebx]
add eax, 0x1660
push eax
call edi
mov eax, dword [ebx]
and dword [eax + 0x1868], 0
add ebx, 4
mov eax, dword [ebp - 0x2d7c]
inc eax
mov dword [ebp - 0x2d7c], eax
cmp eax, esi
jl 0x40455a
jmp 0x404745
mov eax, dword [ebp - 0x2d7c]
push eax
push ebx
call fcn.00404756
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004052f0
leave
ret 8