Function at 0x446c10
Capabilities:
Check if file exists
Connect to http server
Create http request
Download and write a file
Read data from internet
Receive and write data from server to client
Receive data
Send data
Send http request
Timestomp file
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x48a53b
mov eax, dword fs:[0]
push eax
sub esp, 0x880
mov eax, dword [0x4af6f0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov edi, dword [ebp + 0x18]
mov esi, dword [ebp + 0x1c]
mov dword [ebp - 0x84c], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x850], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x848], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x860], eax
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x218], ax
lea eax, [ebp - 0x216]
push eax
mov dword [ebp - 0x854], edi
call fcn.0046f6e0
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x420], ax
lea eax, [ebp - 0x41e]
push eax
call fcn.0046f6e0
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x830], ax
lea eax, [ebp - 0x82e]
push eax
call fcn.0046f6e0
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x628], ax
lea eax, [ebp - 0x626]
push eax
call fcn.0046f6e0
mov ebx, dword [ebp + 0x28]
lea eax, [ebp - 0x830]
push edi
push 0x104
push eax
call fcn.0046fd12
add esp, 0x3c
lea eax, [ebp - 0x830]
push eax
call dword [sym.imp.SHLWAPI.dll_PathStripPathW]
push 0x5c
lea eax, [ebp - 0x628]
push eax
lea eax, [ebp - 0x420]
push eax
push esi
call fcn.0043dae0
add esp, 0x10
lea eax, [ebp - 0x830]
cmp word [ebp - 0x628], 0
je 0x446d2e
lea eax, [ebp - 0x628]
push eax
lea eax, [ebp - 0x420]
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
mov edi, dword [ebp + 0x14]
mov eax, dword [ebp + 0x24]
test edi, edi
jne 0x446d5c
test eax, eax
mov edi, 0x50
mov ecx, 0x1bb
cmovne edi, ecx
push ebx
push eax
push dword [ebp - 0x854]
push dword [ebp - 0x848]
push dword [ebp - 0x850]
push dword [ebp - 0x84c]
push str.DownloadHTMLFile____ServerName_s_Login_s_Pwd_s_SourceFile_s_Secure_d_Resume_d
call fcn.00469290
lea eax, [ebp - 0x218]
push eax
push str.DownloadHTMLFile____TargetFile_s
call fcn.00469290
mov esi, dword [sym.imp.WININET.dll_InternetSetOptionW]
lea eax, [ebp - 0x884]
add esp, 0x24
mov dword [ebp - 0x884], 0x3a98
mov dword [ebp - 0x888], 0x7530
push 4
push eax
push 5
push 0
call esi
push 4
lea eax, [ebp - 0x888]
push eax
push 6
push 0
call esi
cmp dword [0x4b552c], 0
mov dword [ebp - 0x844], 0
jne 0x447543
push 0
push 0
push 0
push 0
push str.DownloadHTMLFile
call dword [sym.imp.WININET.dll_InternetOpenW]
mov esi, eax
mov dword [ebp - 0x864], esi
test esi, esi
je 0x447516
cmp dword [0x4b552c], 0
jne 0x447516
push 0
push dword [ebp - 0x860]
push 3
push dword [ebp - 0x848]
push dword [ebp - 0x850]
push edi
push dword [ebp - 0x84c]
push esi
call dword [sym.imp.WININET.dll_InternetConnectW]
mov dword [ebp - 0x860], eax
test eax, eax
je 0x4474f4
cmp dword [0x4b552c], 0
jne 0x4474f4
cmp dword [ebp + 0x24], 0
mov esi, 0x80400100
mov ecx, 0x803000
cmovne esi, ecx
test ebx, ebx
jne 0x446e6d
or esi, 0x4000000
lea ecx, [ebp - 0x870]
mov dword [ebp - 0x850], 0
push ecx
lea ecx, [ebp - 0x850]
mov dword [ebp - 0x878], 0
push ecx
push dword [ebp - 0x854]
mov dword [ebp - 0x874], 0
push esi
push eax
mov dword [ebp - 0x870], 0
mov dword [ebp - 0x86c], 0
call fcn.00447600
mov edi, eax
add esp, 0x14
mov dword [ebp - 0x858], edi
test edi, edi
je 0x446f04
push 0
push 0
push 0
mov edi, 0x2efc
push str.GetHttpInfo
push edi
call fcn.0043fb20
add esp, 0x14
mov ebx, dword [sym.imp.WININET.dll_InternetCloseHandle]
mov esi, dword [ebp - 0x864]
mov eax, dword [ebp - 0x860]
test eax, eax
je 0x447533
push eax
call ebx
jmp 0x447533
mov eax, dword [ebp - 0x870]
mov dword [ebp - 0x878], eax
mov eax, dword [ebp - 0x86c]
mov dword [ebp - 0x874], eax
test ebx, ebx
je 0x44700a
push 0
push 0x80
push 4
push 0
push 0
push 0x40000000
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x844], eax
cmp eax, 0xffffffff
je 0x446ff3
lea ecx, [ebp - 0x880]
push ecx
push 0
push 0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileTime]
lea eax, [ebp - 0x840]
push eax
lea eax, [ebp - 0x880]
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
movzx eax, word [ebp - 0x832]
push eax
movzx eax, word [ebp - 0x834]
push eax
movzx eax, word [ebp - 0x836]
push eax
movzx eax, word [ebp - 0x838]
push eax
movzx eax, word [ebp - 0x840]
push eax
movzx eax, word [ebp - 0x83e]
push eax
movzx eax, word [ebp - 0x83a]
push eax
push str.DownloadHTMLFile____stLastWriteTime_d__d__d____d:_d:_d__dms
call fcn.00469290
add esp, 0x20
lea eax, [ebp - 0x870]
push eax
lea eax, [ebp - 0x880]
push eax
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
test eax, eax
je 0x446fe4
push str.DownloadHTMLFile____Files_are_not_on_the_same_date_
call fcn.00469290
add esp, 4
jmp 0x447008
push str.DownloadHTMLFile____Files_have_the_same_date_
call fcn.00469290
add esp, 4
jmp 0x44700a
push 0
push 0
push 0
push str.CreateFile
push 0
call fcn.0043fb20
add esp, 0x14
xor ebx, ebx
push 0
push esi
push 0
push 0
push 0
push dword [ebp - 0x854]
push 0x49532c
push dword [ebp - 0x860]
call dword [sym.imp.WININET.dll_HttpOpenRequestW]
mov dword [ebp - 0x84c], eax
test eax, eax
je 0x4474b0
cmp dword [0x4b552c], 0
jne 0x4474b0
xor eax, eax
mov dword [ebp - 0x854], eax
test ebx, ebx
je 0x447066
lea eax, [ebp - 0x218]
push eax
call fcn.00466f00
add esp, 4
mov dword [ebp - 0x854], eax
mov esi, dword [ebp - 0x850]
push eax
sub esi, eax
push str.DownloadHTMLFile____BytesDownloaded:__d
mov dword [ebp - 0x88c], esi
call fcn.00469290
push esi
push str.DownloadHTMLFile____BytesToDownload:__d
call fcn.00469290
mov eax, dword [0x4af065]
add esp, 0x10
or eax, dword [0x4af069]
jne 0x4470ab
push eax
push dword [ebp - 0x850]
mov ecx, 0x4af010
call fcn.00428f60
test esi, esi
jne 0x4470c3
push 0x3e8
mov ecx, 0x4af010
call fcn.00429240
jmp 0x4474c7
mov esi, dword [ebp - 0x854]
cmp esi, dword [ebp - 0x850]
jbe 0x447139
xor ebx, ebx
mov esi, dword [ebp - 0x84c]
push 0
push 0
push 0
push 0
push esi
call dword [sym.imp.WININET.dll_HttpSendRequestW]
push eax
push str.DownloadHTMLFile____HttpSendRequest____d
call fcn.00469290
lea eax, [ebp - 0x858]
push eax
push esi
call fcn.00447850
mov edi, dword [ebp - 0x858]
add esp, 0x10
mov dword [ebp - 0x87c], edi
test edi, edi
jne 0x4474c7
cmp eax, 0x12c
jb 0x4471a5
cmp eax, 0x194
mov edi, 5
mov ecx, 2
cmove edi, ecx
jmp 0x4474c7
test ebx, ebx
je 0x4470d3
lea ecx, [ebp - 0x848]
call fcn.00443620
push esi
lea eax, [ebp - 0x848]
mov dword [ebp - 4], 0
push str.Range:_bytes_d_
push eax
call fcn.00443bb0
mov eax, dword [ebp - 0x848]
add esp, 0xc
mov esi, dword [ebp - 0x84c]
push 0x10000000
push dword [eax - 0xc]
push eax
push esi
call dword [sym.imp.WININET.dll_HttpAddRequestHeadersW]
push eax
push str.DownloadHTMLFile____HttpAddRequestHeaders___d
call fcn.00469290
add esp, 8
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x848]
call fcn.00443680
jmp 0x4470d9
lea eax, [ebp - 0x420]
mov dword [ebp - 0x868], 0
push eax
mov esi, 1
mov dword [ebp - 0x85c], 0
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
jne 0x4471de
lea eax, [ebp - 0x420]
push eax
call fcn.0043b250
add esp, 4
test ebx, ebx
je 0x447210
mov eax, dword [ebp - 0x844]
push 2
push 0
push 0
push 0
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
jne 0x44729a
push eax
push eax
push eax
push 0x495cdc
push eax
call fcn.0043fb20
add esp, 0x14
push str.DownloadHTMLFile____Mode_resume_disabled_
call fcn.00469290
mov eax, dword [ebp - 0x844]
add esp, 4
mov ebx, dword [ebp - 0x850]
mov dword [ebp - 0x854], 0
test eax, eax
je 0x44723e
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0
push 0x80
push 2
push 0
push 0
push 0x40000000
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x844], eax
push 0
push 0
push 0
cmp eax, 0xffffffff
jne 0x44728a
push str.CreateFile
push 0
call fcn.0043fb20
mov edi, eax
add esp, 0x14
mov eax, dword [ebp - 0x844]
jmp 0x4474d1
push 0
push dword [ebp - 0x84c]
call dword [sym.imp.WININET.dll_InternetSetFilePointer]
jmp 0x4472a0
mov ebx, dword [ebp - 0x88c]
push dword [ebp - 0x844]
push str.DownloadHTMLFile____CreateFile_d
call fcn.00469290
mov ecx, dword [0x4af081]
add esp, 8
add ecx, dword [ebp - 0x854]
mov eax, dword [0x4af085]
adc eax, 0
mov dword [0x4af081], ecx
push eax
push ecx
mov ecx, 0x4af010
mov dword [0x4af085], eax
call fcn.004293d0
mov eax, 0x100000
mov dword [ebp - 0x858], eax
test ebx, ebx
je 0x4472f8
cmp ebx, eax
cmovb eax, ebx
mov dword [ebp - 0x858], eax
mov ebx, dword [ebp - 0x858]
xor ecx, ecx
mov eax, ebx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0046a04a
mov ecx, eax
add esp, 4
mov eax, dword [ebp - 0x844]
mov dword [ebp - 0x848], ecx
mov dword [ecx], 0
cmp eax, 0xffffffff
je 0x447491
cmp dword [0x4b552c], 0
jne 0x447478
mov edi, eax
jmp 0x447356
mov ecx, dword [ebp - 0x848]
test esi, esi
je 0x44737a
lea eax, [ebp - 0x85c]
push eax
push ebx
push ecx
push dword [ebp - 0x84c]
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x44737a
mov esi, 1
jmp 0x44737c
xor esi, esi
push esi
push dword [ebp - 0x85c]
push ebx
push str.DownloadHTMLFile____InternetReadFile_BUFLEN_d_BytesRead_d__d
call fcn.00469290
mov eax, dword [ebp - 0x85c]
add esp, 0x10
test eax, eax
je 0x447423
test esi, esi
je 0x447423
cmp dword [0x4b552c], 0
jne 0x447423
push 0
lea ecx, [ebp - 0x868]
push ecx
push eax
push dword [ebp - 0x848]
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
neg eax
sbb esi, esi
neg esi
push esi
push dword [ebp - 0x868]
push str.DownloadHTMLFile____WriteFile_BytesWritten_d__d
call fcn.00469290
mov eax, dword [ebp - 0x868]
add esp, 0xc
cmp eax, dword [ebp - 0x85c]
jne 0x4473fa
test esi, esi
je 0x4473fa
mov esi, 1
jmp 0x4473fc
xor esi, esi
mov ecx, dword [0x4af081]
add ecx, eax
mov eax, dword [0x4af085]
mov dword [0x4af081], ecx
adc eax, 0
push eax
push ecx
mov ecx, 0x4af010
mov dword [0x4af085], eax
call fcn.004293d0
cmp dword [ebp - 0x85c], 0
je 0x44743d
test esi, esi
je 0x44743d
cmp dword [0x4b552c], 0
je 0x447350
push dword [ebp - 0x848]
call fcn.00470bd4
mov edi, dword [ebp - 0x87c]
add esp, 4
test esi, esi
jne 0x44745c
mov edi, 0x17
jmp 0x4474c7
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x447472
lea edi, [eax + 2]
jmp 0x4474c7
mov eax, dword [ebp - 0x844]
lea ecx, [ebp - 0x870]
push ecx
push 0
lea ecx, [ebp - 0x878]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_SetFileTime]
jmp 0x4474c7
push 0
push 0
push 0
push str.CreateFile
push 0
call fcn.0043fb20
mov edi, eax
add esp, 0x14
mov eax, dword [ebp - 0x844]
jmp 0x4474d1
push 0
push 0
push 0
push str.HttpOpenRequest
push 0
call fcn.0043fb20
add esp, 0x14
mov edi, eax
mov eax, dword [ebp - 0x844]
test eax, eax
je 0x4474d8
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x84c]
test eax, eax
je 0x446ee2
mov ebx, dword [sym.imp.WININET.dll_InternetCloseHandle]
push eax
call ebx
jmp 0x446ee8
push 0
push 0
push 0
push str.InternetConnect
push 0
call fcn.0043fb20
mov ebx, dword [sym.imp.WININET.dll_InternetCloseHandle]
add esp, 0x14
mov edi, eax
jmp 0x446eee
push 0
push 0
push 0
push str.InternetOpen
push 0
call fcn.0043fb20
mov ebx, dword [sym.imp.WININET.dll_InternetCloseHandle]
add esp, 0x14
mov edi, eax
test esi, esi
je 0x44753a
push esi
call ebx
cmp dword [0x4b552c], 0
je 0x447548
mov edi, 0x4c7
push edi
push str.DownloadHTMLFile____End__d_
call fcn.00469290
add esp, 8
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0046ebfa
mov esp, ebp
pop ebp
ret