Function at 0x42a180
Capabilities:
Check internet connectivity via wininet
Create process on windows

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4e19a9
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x9b8
mov eax, dword [0x50c7c4]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
lea ecx, [ebp - 0x860]
call fcn.00424920
push str.debuglog.txt
mov edx, eax
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x848]
call fcn.00403c80
add esp, 4
mov byte [ebp - 4], 1
cmp dword [eax + 0x14], 0x10
jb 0x42a1f4
mov eax, dword [eax]
sub esp, 8
mov edx, str.In_update..._n
mov ecx, eax
call fcn.00424590
add esp, 8
cmp dword [ebp - 0x834], 0x10
jb 0x42a21d
push dword [ebp - 0x848]
call fcn.004a78e3
add esp, 4
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x84c], 0x10
mov dword [ebp - 0x834], 0xf
mov dword [ebp - 0x838], 0
mov byte [ebp - 0x848], 0
jb 0x42a256
push dword [ebp - 0x860]
call fcn.004a78e3
add esp, 4
xor esi, esi
lea eax, [ebp - 0x960]
push esi
push eax
call dword [sym.imp.WININET.dll_InternetGetConnectedState]
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
test eax, eax
jne 0x42a294
push 0x3e8
inc esi
call edi
cmp esi, 5
je 0x42a345
push 0
lea eax, [ebp - 0x960]
push eax
call dword [sym.imp.WININET.dll_InternetGetConnectedState]
test eax, eax
je 0x42a270
push 0x3b
push str.https:__mcn.lenovo.com_cic_config_nbhttps_gdcagent_version
lea ecx, [ebp - 0x878]
mov dword [ebp - 0x864], 0xf
mov dword [ebp - 0x868], 0
mov byte [ebp - 0x878], 0
call fcn.00403860
push 7
push 0x4ef67c
lea ecx, [ebp - 0x878]
mov dword [ebp - 4], 4
call fcn.00403130
push 0
push 0x4ef4d1
lea ecx, [ebp - 0x830]
mov dword [ebp - 0x81c], 0xf
mov dword [ebp - 0x820], 0
mov byte [ebp - 0x830], 0
call fcn.00403860
mov byte [ebp - 4], 5
lea edx, [ebp - 0x878]
cmp dword [ebp - 0x864], 0x10
cmovae edx, dword [ebp - 0x878]
sub esp, 0x18
mov esi, esp
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], 0
mov byte [esi], 0
cmp byte [edx], 0
jne 0x42a3f4
xor ecx, ecx
jmp 0x42a40d
lea ecx, [ebp - 0x860]
call fcn.00424920
push str.debuglog.txt
mov edx, eax
mov dword [ebp - 4], 2
lea ecx, [ebp - 0x848]
call fcn.00403c80
add esp, 4
mov byte [ebp - 4], 3
cmp dword [eax + 0x14], 0x10
jb 0x42a378
mov eax, dword [eax]
sub esp, 8
mov edx, str.Net_error..._n
mov ecx, eax
call fcn.00424590
add esp, 8
cmp dword [ebp - 0x834], 0x10
jb 0x42a3a1
push dword [ebp - 0x848]
call fcn.004a78e3
add esp, 4
cmp dword [ebp - 0x84c], 0x10
mov dword [ebp - 0x834], 0xf
mov dword [ebp - 0x838], 0
mov byte [ebp - 0x848], 0
jb 0x42a3d3
push dword [ebp - 0x860]
call fcn.004a78e3
add esp, 4
or eax, 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004a6d1e
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov ecx, edx
lea eax, [ecx + 1]
mov dword [ebp - 0x954], eax
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x42a400
sub ecx, dword [ebp - 0x954]
push ecx
push edx
mov ecx, esi
call fcn.00403860
mov edx, 0x1bb
lea ecx, [ebp - 0x830]
call fcn.00497440
add esp, 0x18
cmp eax, 0xffffffff
jne 0x42a478
cmp dword [ebp - 0x81c], 0x10
jb 0x42a445
push dword [ebp - 0x830]
call fcn.004a78e3
add esp, 4
cmp dword [ebp - 0x864], 0x10
mov dword [ebp - 0x81c], 0xf
mov dword [ebp - 0x820], 0
mov byte [ebp - 0x830], 0
jb 0x42a3d3
push dword [ebp - 0x878]
jmp 0x42a3cb
push 0x4ef4d1
lea ecx, [ebp - 0x830]
call fcn.0040f320
test eax, eax
jne 0x42a4dc
cmp dword [ebp - 0x81c], 0x10
jb 0x42a4a3
push dword [ebp - 0x830]
call fcn.004a78e3
add esp, 4
cmp dword [ebp - 0x864], 0x10
mov dword [ebp - 0x81c], 0xf
mov dword [ebp - 0x820], 0
mov byte [ebp - 0x830], 0
jb 0x42a4d5
push dword [ebp - 0x878]
call fcn.004a78e3
add esp, 4
xor eax, eax
jmp 0x42a3d6
mov eax, dword [ebp - 0x820]
lea ecx, [eax - 1]
mov edx, ecx
cmp eax, edx
jbe 0x42a597
nop
cmp dword [ebp - 0x81c], 0x10
lea eax, [ebp - 0x830]
cmovae eax, dword [ebp - 0x830]
cmp byte [eax + edx], 0xa
jne 0x42a5a1
push ecx
push 0
lea eax, [ebp - 0x860]
push eax
lea ecx, [ebp - 0x830]
call fcn.0040f290
mov esi, eax
lea eax, [ebp - 0x830]
cmp eax, esi
je 0x42a56d
cmp dword [ebp - 0x81c], 0x10
jb 0x42a546
push dword [ebp - 0x830]
call fcn.004a78e3
add esp, 4
push esi
lea ecx, [ebp - 0x830]
mov dword [ebp - 0x81c], 0xf
mov dword [ebp - 0x820], 0
mov byte [ebp - 0x830], 0
call fcn.00403310
cmp dword [ebp - 0x84c], 0x10
jb 0x42a584
push dword [ebp - 0x860]
call fcn.004a78e3
add esp, 4
mov eax, dword [ebp - 0x820]
lea ecx, [eax - 1]
mov edx, ecx
cmp eax, edx
ja 0x42a4f0
push str.invalid_string_position
call fcn.004a5dc9
lea eax, [ebp - 0x830]
mov edx, str.Download_url:
push eax
lea ecx, [ebp - 0x8a8]
call fcn.0040a6e0
add esp, 4
mov esi, eax
lea ecx, [ebp - 0x860]
mov byte [ebp - 4], 6
call fcn.00424920
push str.debuglog.txt
mov edx, eax
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x848]
call fcn.00403c80
add esp, 4
mov byte [ebp - 4], 8
cmp dword [eax + 0x14], 0x10
jb 0x42a5f1
mov eax, dword [eax]
push ecx
mov edx, esi
mov ecx, eax
call fcn.00424710
add esp, 4
cmp dword [ebp - 0x834], 0x10
jb 0x42a615
push dword [ebp - 0x848]
call fcn.004a78e3
add esp, 4
cmp dword [ebp - 0x84c], 0x10
mov dword [ebp - 0x834], 0xf
mov dword [ebp - 0x838], 0
mov byte [ebp - 0x848], 0
jb 0x42a647
push dword [ebp - 0x860]
call fcn.004a78e3
add esp, 4
mov byte [ebp - 4], 5
cmp dword [ebp - 0x894], 0x10
mov dword [ebp - 0x84c], 0xf
mov dword [ebp - 0x850], 0
mov byte [ebp - 0x860], 0
jb 0x42a67d
push dword [ebp - 0x8a8]
call fcn.004a78e3
add esp, 4
lea ecx, [ebp - 0x848]
xor esi, esi
call fcn.0042a090
push 0x4ef4f8
mov edx, eax
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x860]
call fcn.00403c80
add esp, 4
push str.runNow.exe
mov edx, eax
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x890]
call fcn.00403c80
add esp, 4
cmp dword [ebp - 0x84c], 0x10
jb 0x42a6d3
push dword [ebp - 0x860]
call fcn.004a78e3
add esp, 4
mov dword [ebp - 0x84c], 0xf
mov dword [ebp - 0x850], 0
mov byte [ebp - 0x860], 0
mov byte [ebp - 4], 0xd
cmp dword [ebp - 0x834], 0x10
jb 0x42a709
push dword [ebp - 0x848]
call fcn.004a78e3
add esp, 4
cmp dword [ebp - 0x81c], 0x10
lea edx, [ebp - 0x830]
lea ecx, [ebp - 0x890]
mov dword [ebp - 0x834], 0xf
cmovae edx, dword [ebp - 0x830]
cmp dword [ebp - 0x87c], 0x10
mov dword [ebp - 0x838], 0
cmovae ecx, dword [ebp - 0x890]
push ecx
mov byte [ebp - 0x848], 0
call fcn.00497af0
add esp, 4
mov dword [ebp - 0x954], eax
test eax, eax
jne 0x42a7ac
nop
push 0x3e8
inc esi
call edi
cmp esi, 5
je 0x42a932
cmp dword [ebp - 0x81c], 0x10
lea edx, [ebp - 0x830]
lea ecx, [ebp - 0x890]
cmovae edx, dword [ebp - 0x830]
cmp dword [ebp - 0x87c], 0x10
cmovae ecx, dword [ebp - 0x890]
push ecx
call fcn.00497af0
add esp, 4
mov dword [ebp - 0x954], eax
test eax, eax
je 0x42a760
lea ecx, [ebp - 0x8a8]
call fcn.00424920
push str.debuglog.txt
mov edx, eax
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x8d8]
call fcn.00403c80
add esp, 4
mov byte [ebp - 4], 0x11
cmp dword [eax + 0x14], 0x10
jb 0x42a7dc
mov eax, dword [eax]
sub esp, 8
mov edx, str.Download_complete..._n
mov ecx, eax
call fcn.00424590
add esp, 8
lea ecx, [ebp - 0x8d8]
call fcn.00403100
lea ecx, [ebp - 0x8a8]
mov byte [ebp - 4], 0xd
call fcn.00403100
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x890]
mov dword [ebp - 0x8ac], 0xf
push eax
lea ecx, [ebp - 0x8c0]
mov dword [ebp - 0x8b0], 0
mov byte [ebp - 0x8c0], 0
call fcn.00403430
lea edx, [ebp - 0x8c0]
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x908]
call fcn.00424170
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x908]
cmp dword [ebp - 0x8f4], 8
cmovae ecx, dword [ebp - 0x908]
call fcn.00498150
test eax, eax
je 0x42a9b5
lea eax, [ebp - 0x8c0]
mov edx, str.this_exe_is_not_lenovo_sign
push eax
lea ecx, [ebp - 0x860]
call fcn.0040a6e0
add esp, 4
mov esi, eax
lea ecx, [ebp - 0x8a8]
mov byte [ebp - 4], 0x14
call fcn.00424920
push str.debuglog.txt
mov edx, eax
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x8d8]
call fcn.00403c80
add esp, 4
mov byte [ebp - 4], 0x16
cmp dword [eax + 0x14], 0x10
jb 0x42a8c3
mov eax, dword [eax]
push ecx
mov edx, esi
mov ecx, eax
call fcn.00424710
add esp, 4
lea ecx, [ebp - 0x8d8]
call fcn.00403100
lea ecx, [ebp - 0x8a8]
call fcn.00403100
lea ecx, [ebp - 0x860]
call fcn.00403100
lea ecx, [ebp - 0x908]
call fcn.00403260
lea ecx, [ebp - 0x8c0]
call fcn.00403100
lea ecx, [ebp - 0x890]
call fcn.00403100
lea ecx, [ebp - 0x830]
call fcn.00403100
lea ecx, [ebp - 0x878]
call fcn.00403100
mov eax, 0xfffffffc
jmp 0x42a3d6
lea ecx, [ebp - 0x8d8]
call fcn.00424920
push str.debuglog.txt
mov edx, eax
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x8a8]
call fcn.00403c80
add esp, 4
mov byte [ebp - 4], 0xf
cmp dword [eax + 0x14], 0x10
jb 0x42a962
mov eax, dword [eax]
sub esp, 8
mov edx, str.Download_error..._n
mov ecx, eax
call fcn.00424590
add esp, 8
lea ecx, [ebp - 0x8a8]
call fcn.00403100
lea ecx, [ebp - 0x8d8]
call fcn.00403100
lea ecx, [ebp - 0x890]
call fcn.00403100
lea ecx, [ebp - 0x830]
call fcn.00403100
lea ecx, [ebp - 0x878]
call fcn.00403100
mov eax, 0xfffffffd
jmp 0x42a3d6
push str.__SP___VERYSILENT
lea ecx, [ebp - 0x920]
call fcn.00403030
mov byte [ebp - 4], 0x17
mov dword [ebp - 0x95c], 0
mov dword [ebp - 0x958], 0
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
lea ecx, [ebp - 0x95c]
push ecx
push 0xf01ff
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
lea eax, [ebp - 0x958]
push eax
push 1
push 1
push 0
push 0x2000000
push dword [ebp - 0x95c]
call dword [sym.imp.ADVAPI32.dll_DuplicateTokenEx]
call dword [sym.imp.KERNEL32.dll_WTSGetActiveConsoleSessionId]
push 4
mov dword [ebp - 0x964], eax
lea eax, [ebp - 0x964]
push eax
push 0xc
push dword [ebp - 0x958]
call dword [sym.imp.ADVAPI32.dll_SetTokenInformation]
push 0x44
lea eax, [ebp - 0x9c8]
push 0
push eax
call fcn.004af8a0
xorps xmm0, xmm0
mov dword [ebp - 0x9c8], 0x44
add esp, 0xc
movdqa xmmword [ebp - 0x980], xmm0
mov dword [ebp - 0x9c0], str.WinSta0Default
lea esp, [esp]
call fcn.00497fe0
push 0x7d0
mov esi, eax
call edi
test esi, esi
je 0x42aa70
lea eax, [ebp - 0x8c0]
push eax
lea ecx, [ebp - 0x8f0]
call fcn.00403000
mov byte [ebp - 4], 0x18
lea edx, [ebp - 0x8f0]
cmp dword [ebp - 0x8dc], 0x10
lea ecx, [ebp - 0x950]
push dword [ebp - 0x8e0]
cmovae edx, dword [ebp - 0x8f0]
call fcn.00424440
add esp, 4
mov byte [ebp - 4], 0x19
lea edx, [ebp - 0x920]
cmp dword [ebp - 0x90c], 0x10
lea ecx, [ebp - 0x938]
push dword [ebp - 0x910]
cmovae edx, dword [ebp - 0x920]
call fcn.00424440
add esp, 4
mov byte [ebp - 4], 0x1a
lea edi, [ebp - 0x950]
cmp dword [ebp - 0x93c], 8
lea ecx, [ebp - 0x938]
lea edx, [ebp - 0x818]
cmovae edi, dword [ebp - 0x950]
cmp dword [ebp - 0x924], 8
cmovae ecx, dword [ebp - 0x938]
mov edi, edi
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx], ax
lea edx, [edx + 2]
test ax, ax
jne 0x42ab20
cmp dword [ebp - 0x954], 1
jne 0x42ac42
lea eax, [ebp - 0x980]
push eax
lea eax, [ebp - 0x9c8]
push eax
push 0
push 0
push 0x20
push 0
push 0
push 0
lea eax, [ebp - 0x818]
push eax
push edi
push esi
call dword [sym.imp.ADVAPI32.dll_CreateProcessAsUserW]
lea ecx, [ebp - 0x8a8]
call fcn.00424920
push str.debuglog.txt
mov edx, eax
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x8d8]
call fcn.00403c80
add esp, 4
mov byte [ebp - 4], 0x1c
cmp dword [eax + 0x14], 0x10
jb 0x42ab97
mov eax, dword [eax]
sub esp, 8
mov edx, str.Complete_update..._n
mov ecx, eax
call fcn.00424590
add esp, 8
lea ecx, [ebp - 0x8d8]
call fcn.00403100
lea ecx, [ebp - 0x8a8]
call fcn.00403100
push dword [ebp - 0x980]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [ebp - 0x97c]
call esi
lea ecx, [ebp - 0x938]
call fcn.00403260
lea ecx, [ebp - 0x950]
call fcn.00403260
lea ecx, [ebp - 0x8f0]
call fcn.00403100
lea ecx, [ebp - 0x920]
call fcn.00403100
lea ecx, [ebp - 0x908]
call fcn.00403260
lea ecx, [ebp - 0x8c0]
call fcn.00403100
lea ecx, [ebp - 0x890]
call fcn.00403100
lea ecx, [ebp - 0x830]
call fcn.00403100
lea ecx, [ebp - 0x878]
call fcn.00403100
mov eax, 1
jmp 0x42a3d6
push dword [ebp - 0x980]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [ebp - 0x97c]
call esi
lea ecx, [ebp - 0x938]
call fcn.00403260
lea ecx, [ebp - 0x950]
call fcn.00403260
lea ecx, [ebp - 0x8f0]
call fcn.00403100
lea ecx, [ebp - 0x920]
call fcn.00403100
lea ecx, [ebp - 0x908]
call fcn.00403260
lea ecx, [ebp - 0x8c0]
jmp 0x42a985