Function at 0x406e10
Capabilities:
Check if file exists
Create directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4310d0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xf7c
push ebx
push esi
push edi
lea ecx, [ebp - 0x98c]
call fcn.0041cb90
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x990]
call sub.MFC42.DLL_CString::CString_1
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x994]
call sub.MFC42.DLL_CString::CString_1
mov byte [ebp - 4], 2
mov dword [ebp - 0x9a4], 0
push str._newverddtmzq.exe
push 0x43f5a8
lea eax, [ebp - 0x9a8]
push eax
call sub.MFC42.DLL_operator
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x998]
push ecx
lea edx, [ebp - 0x994]
push edx
lea eax, [ebp - 0x990]
push eax
lea ecx, [ebp - 0x99c]
push ecx
push str._soft_update_ddtmzq.dat
push 0x601434
push str.http:__
lea edx, [ebp - 0xefc]
push edx
call sub.MFC42.DLL_operator_1
mov dword [ebp - 0xf24], eax
mov eax, dword [ebp - 0xf24]
mov dword [ebp - 0xf28], eax
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0xf28]
push ecx
lea edx, [ebp - 0xf00]
push edx
call sub.MFC42.DLL_operator
mov dword [ebp - 0xf2c], eax
mov eax, dword [ebp - 0xf2c]
mov dword [ebp - 0xf30], eax
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0xf30]
call fcn.00408e10
push eax
call sub.MFC42.DLL_AfxParseURL
mov byte [ebp - 4], 4
lea ecx, [ebp - 0xf00]
call sub.MFC42.DLL_CString::CString
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xefc]
call sub.MFC42.DLL_CString::CString
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x9a0]
push ecx
lea ecx, [ebp - 0x994]
call fcn.00408e10
push eax
lea ecx, [ebp - 0x990]
call fcn.00408e10
push eax
lea ecx, [ebp - 0x98c]
call fcn.0041ce10
mov dword [ebp - 0x9a4], eax
lea ecx, [ebp - 0x98c]
call fcn.0041cd40
push 0x50
lea ecx, [ebp - 0x990]
call fcn.00408e10
push eax
lea ecx, [ebp - 0x98c]
call fcn.0041cd80
push 0
push 0x2710
lea ecx, [ebp - 0x98c]
call fcn.0041d2b0
push 0
push 0
lea ecx, [ebp - 0x98c]
call fcn.0041d140
test eax, eax
jne 0x407001
mov dword [ebp - 0xf04], 0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x9a8]
call sub.MFC42.DLL_CString::CString
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x994]
call sub.MFC42.DLL_CString::CString
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x990]
call sub.MFC42.DLL_CString::CString
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x98c]
call fcn.0041cce0
mov eax, dword [ebp - 0xf04]
jmp 0x4073ee
mov dword [ebp - 0x9ac], 0
cmp dword [ebp - 0x9ac], 0xffffffff
je 0x407033
push pe_nt_image_headers32
lea edx, [ebp - 0xaac]
push edx
lea ecx, [ebp - 0x98c]
call fcn.0041d3e0
mov dword [ebp - 0x9ac], eax
jmp 0x40700b
push 0x1e
lea eax, [ebp - 0xacc]
push eax
push str.Content_Length
lea ecx, [ebp - 0x98c]
call fcn.0041d490
lea ecx, [ebp - 0x98c]
call fcn.0041d5e0
mov dword [ebp - 0xad0], eax
lea ecx, [ebp - 0xacc]
push ecx
call dword [sym.imp.MSVCRT.dll_atoi]
add esp, 4
mov dword [ebp - 0xad4], eax
cmp dword [ebp - 0xad4], 0
jg 0x407088
mov edx, dword [0x43f5a4]
mov dword [ebp - 0xad4], edx
mov dword [ebp - 0xad8], 0
lea ecx, [ebp - 0xae8]
call fcn.00430110
mov byte [ebp - 4], 6
mov dword [ebp - 0xeec], 0
mov dword [ebp - 0xef0], 0
lea ecx, [ebp - 0xef4]
call sub.MFC42.DLL_CString::CString_1
mov byte [ebp - 4], 7
push str._newver
push 0x43f5a8
lea eax, [ebp - 0xf0c]
push eax
call sub.MFC42.DLL_operator
mov dword [ebp - 0xf34], eax
mov ecx, dword [ebp - 0xf34]
mov dword [ebp - 0xf38], ecx
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0xf38]
call fcn.00408e10
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
neg eax
sbb eax, eax
inc eax
mov byte [ebp - 0xf08], al
mov byte [ebp - 4], 7
lea ecx, [ebp - 0xf0c]
call sub.MFC42.DLL_CString::CString
mov edx, dword [ebp - 0xf08]
and edx, 0xff
test edx, edx
je 0x40717b
push 0
push str._newver
push 0x43f5a8
lea eax, [ebp - 0xf10]
push eax
call sub.MFC42.DLL_operator
mov dword [ebp - 0xf3c], eax
mov ecx, dword [ebp - 0xf3c]
mov dword [ebp - 0xf40], ecx
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0xf40]
call fcn.00408e10
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov byte [ebp - 4], 7
lea ecx, [ebp - 0xf10]
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x9a8]
call fcn.00408e10
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
push 0
push 0x1001
lea ecx, [ebp - 0x9a8]
call fcn.00408e10
push eax
lea ecx, [ebp - 0xae8]
call sub.MFC42.DLL_CFile::Open
mov edx, dword [ebp - 0xad8]
cmp edx, dword [ebp - 0xad4]
jge 0x40728e
push 0x400
lea eax, [ebp - 0xee8]
push eax
lea ecx, [ebp - 0x98c]
call fcn.0041d1c0
mov dword [ebp - 0xeec], eax
cmp dword [ebp - 0xeec], 0
je 0x4071ec
cmp dword [ebp - 0xeec], 0xffffffff
jne 0x40725e
mov dword [ebp - 0xf14], 0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xef4]
call sub.MFC42.DLL_CString::CString
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xae8]
call sub.MFC42.DLL_CFile::CFile
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x9a8]
call sub.MFC42.DLL_CString::CString
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x994]
call sub.MFC42.DLL_CString::CString
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x990]
call sub.MFC42.DLL_CString::CString
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x98c]
call fcn.0041cce0
mov eax, dword [ebp - 0xf14]
jmp 0x4073ee
mov ecx, dword [ebp - 0xeec]
push ecx
lea edx, [ebp - 0xee8]
push edx
lea ecx, [ebp - 0xae8]
call sub.MFC42.DLL_CFile::Write
mov eax, dword [ebp - 0xad8]
add eax, dword [ebp - 0xeec]
mov dword [ebp - 0xad8], eax
jmp 0x4071ab
lea ecx, [ebp - 0xae8]
call sub.MFC42.DLL_CFile::Close
push 0
push 0x1001
push str._newverupdate.txt
push 0x43f5a8
lea ecx, [ebp - 0xf1c]
push ecx
call sub.MFC42.DLL_operator
mov dword [ebp - 0xf44], eax
mov edx, dword [ebp - 0xf44]
mov dword [ebp - 0xf48], edx
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0xf48]
call fcn.00408e10
push eax
lea ecx, [ebp - 0xae8]
call sub.MFC42.DLL_CFile::Open
neg eax
sbb eax, eax
neg eax
mov byte [ebp - 0xf18], al
mov byte [ebp - 4], 7
lea ecx, [ebp - 0xf1c]
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp - 0xf18]
and eax, 0xff
test eax, eax
je 0x407381
lea ecx, [ebp - 0xef8]
call sub.MFC42.DLL_CString::CString_1
mov byte [ebp - 4], 0xb
mov ecx, dword [0x43f5b8]
push ecx
mov edx, dword [0x43f59c]
push edx
mov eax, dword [0x43f5a4]
push eax
push str._r_nsize_d_r_ncrc_s_r_nupdate_d_r_n
lea ecx, [ebp - 0xef8]
push ecx
call sub.MFC42.DLL_CString::Format
add esp, 0x14
lea ecx, [ebp - 0xef8]
call fcn.00408dd0
push eax
lea ecx, [ebp - 0xef8]
call fcn.00408e10
push eax
lea ecx, [ebp - 0xae8]
call sub.MFC42.DLL_CFile::Write
lea ecx, [ebp - 0xae8]
call sub.MFC42.DLL_CFile::Close
mov byte [ebp - 4], 7
lea ecx, [ebp - 0xef8]
call sub.MFC42.DLL_CString::CString
mov dword [ebp - 0xf20], 1
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xef4]
call sub.MFC42.DLL_CString::CString
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xae8]
call sub.MFC42.DLL_CFile::CFile
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x9a8]
call sub.MFC42.DLL_CString::CString
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x994]
call sub.MFC42.DLL_CString::CString
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x990]
call sub.MFC42.DLL_CString::CString
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x98c]
call fcn.0041cce0
mov eax, dword [ebp - 0xf20]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret