Function at 0x407b60
Capabilities:
Check internet connectivity via wininet
Move file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x45670c
mov eax, dword fs:[0]
push eax
sub esp, 0x150
mov eax, dword [0x46c5a0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov edi, dword [ebp + 8]
mov ebx, edx
mov esi, ecx
push ebx
mov dword [ebp - 0x13c], esi
mov dword [ebp - 0x124], 0
call dword [sym.imp.SHLWAPI.dll_PathIsURLA]
test eax, eax
jne 0x407bd2
push ebx
push 3
push str.CDownloadFile::DownLoadFile__PathIsURL:__s_n
lea esi, [eax + 0x29]
mov edi, str...commonDownloadFile.cpp
call fcn.0040ecf0
add esp, 0xc
xor eax, eax
jmp 0x407f6d
lea ecx, [esi + 0x20]
test edi, edi
jne 0x407bdd
xor eax, eax
jmp 0x407bf5
mov eax, edi
lea edx, [eax + 1]
mov dword [ebp - 0x130], edx
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x407be8
sub eax, dword [ebp - 0x130]
push eax
push edi
call fcn.00409360
test ebx, ebx
jne 0x407c04
xor eax, eax
jmp 0x407c19
mov eax, ebx
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x407c10
sub eax, edx
push eax
push ebx
lea ecx, [esi + 0x1c]
call fcn.00409360
lea ebx, [esi + 0x18]
test edi, edi
jne 0x407c2e
xor eax, eax
jmp 0x407c3c
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x407c33
sub eax, edx
push eax
push edi
mov ecx, ebx
call fcn.00409360
push 4
push str..df_
mov ecx, ebx
call fcn.00408a10
call fcn.0041c66d
xor ecx, ecx
xor ebx, ebx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x407c6f
push 0x80004005
call fcn.004094f0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x134], eax
mov dword [ebp - 4], ebx
call fcn.0041c66d
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x407c9e
push 0x80004005
call fcn.004094f0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x138], eax
push str.Update_Download
lea ecx, [ebp - 0x12c]
mov byte [ebp - 4], 1
call fcn.00409030
push edi
mov byte [ebp - 4], 2
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameA]
cmp eax, ebx
jne 0x407cd7
xor ecx, ecx
jmp 0x407ce9
mov ecx, eax
lea edi, [ecx + 1]
lea esp, [esp]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x407ce0
sub ecx, edi
push ecx
push eax
lea ecx, [ebp - 0x12c]
call fcn.00408a10
push ebx
lea ecx, [ebp - 0x128]
push ecx
mov dword [ebp - 0x128], ebx
call dword [sym.imp.WININET.dll_InternetGetConnectedState]
mov edx, dword [ebp - 0x128]
mov ecx, dword [ebp - 0x12c]
and dl, 4
sub dl, 4
push ebx
movzx eax, dl
push ebx
neg eax
push ebx
sbb eax, eax
and eax, 4
push eax
push 1
push ecx
lea ecx, [ebp - 0x158]
call fcn.0041ba57
lea edx, [ebp - 0x140]
push edx
lea ecx, [ebp - 0x138]
push ecx
lea edx, [ebp - 0x134]
push edx
lea ecx, [ebp - 0x128]
mov byte [ebp - 4], 3
mov eax, dword [esi + 0x1c]
push ecx
push eax
call fcn.0041bf91
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x407d85
push ebx
push 4
lea edx, [ebp - 0x130]
push edx
push 8
lea ecx, [ebp - 0x158]
mov dword [ebp - 0x130], eax
call fcn.0041b2cc
cmp word [esi + 8], bx
jne 0x407da3
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
call fcn.0043006d
add esp, 4
call fcn.0043007f
mov word [esi + 8], ax
mov eax, dword [esi + 0x14]
movzx edi, word [esi + 8]
cmp eax, ebx
je 0x407dbc
mov ecx, dword [esi + 0x10]
push edi
push 1
push ecx
push eax
call dword [sym.imp.USER32.dll_PostMessageA]
mov eax, dword [esi + 0xc]
cmp eax, ebx
je 0x407dd1
mov edx, dword [esi + 0x10]
push edi
push 1
push edx
push eax
call dword [sym.imp.USER32.dll_PostThreadMessageA]
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x128]
cmp eax, 3
jne 0x407e74
lea edx, [ebp - 0x158]
mov ecx, esi
call fcn.00407f90
mov dword [ebp - 0x124], eax
jmp 0x407e96
cmp eax, 1
je 0x407e90
cmp eax, 0x1001
jne 0x407e96
mov eax, dword [esi + 0x1c]
push 3
push eax
call dword [sym.imp.SHLWAPI.dll_UrlIsA]
test eax, eax
je 0x407e96
mov dword [ebp - 0x124], ebx
mov dword [ebp - 4], 3
lea ecx, [ebp - 0x158]
call fcn.0041c021
xor ecx, ecx
mov word [esi + 8], cx
cmp dword [ebp - 0x124], ebx
je 0x407ee3
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x18]
mov edi, dword [sym.imp.KERNEL32.dll_MoveFileExA]
push 1
push eax
push ecx
call edi
test eax, eax
jne 0x407ee3
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [esi + 0x20]
mov esi, dword [esi + 0x18]
push 1
push eax
push esi
call edi
lea ecx, [ebp - 0x158]
mov byte [ebp - 4], 2
call fcn.0041c18d
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x12c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x407f18
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x138]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407f3e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x134]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407f67
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x124]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0042d034
mov esp, ebp
pop ebp
ret 4