Function at 0x40f4c2
Capabilities:
Check if file exists
Get file attributes
Print debug messages

Disassembly:
push 0x80
mov eax, 0x55599a
call fcn.00527be2
mov dword [ebp - 0x84], ecx
call fcn.0040f765
xor ebx, ebx
push ebx
call fcn.004033a7
pop ecx
lea ecx, [ebp - 0x48]
call fcn.0040e95d
sub esp, 0x1c
mov dword [ebp - 4], ebx
lea eax, [ebp - 0x48]
mov esi, esp
mov dword [ebp - 0x88], esp
push eax
call fcn.00408277
push ebx
mov byte [ebp - 4], 1
call fcn.00401edb
pop ecx
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], bl
call fcn.0040c5ec
mov ebx, eax
lea eax, [ebp - 0x48]
mov byte [ebp - 4], 2
call fcn.00409383
xor ebx, ebx
push 1
xor edi, edi
lea esi, [ebp - 0x64]
mov byte [ebp - 4], bl
call fcn.00409659
cmp dword [ebp - 0x34], 8
mov esi, dword [ebp - 0x48]
jae 0x40f545
lea esi, [ebp - 0x48]
push ebx
call fcn.00401edb
pop ecx
push esi
lea ecx, [ebp - 0x80]
call fcn.004021b9
push 0xffffffffffffffff
mov byte [ebp - 4], 3
push ebx
lea eax, [ebp - 0x80]
push eax
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x18], 0xf
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 0x2c], bl
call fcn.0040920d
push 0x5865a0
push 0x14
pop ebx
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 4
call fcn.00409aaf
mov esi, dword [ebp - 0x84]
mov eax, dword [esi + 0x14]
xor ebx, ebx
cmp eax, ebx
je 0x40f59c
call eax
jmp 0x40f59e
xor eax, eax
cmp eax, ebx
je 0x40f5f4
push 0x5865b8
push ebx
call fcn.004024ac
pop ecx
mov ecx, eax
call fcn.0040c651
mov eax, dword [esi + 0x10]
mov edi, str.lenovo_mobile_auto_run
cmp eax, ebx
je 0x40f5c5
push edi
call eax
pop ecx
cmp dword [ebp - 0x18], 0x10
mov eax, dword [ebp - 0x2c]
jae 0x40f5d1
lea eax, [ebp - 0x2c]
mov esi, dword [esi + 0xc]
cmp esi, ebx
je 0x40f5e0
push edi
push eax
call esi
pop ecx
pop ecx
jmp 0x40f5e2
xor eax, eax
cmp eax, ebx
je 0x40f5ed
push str.addAutoRunTask_return_true
jmp 0x40f5f9
push str.addAutoRunTask_return_error
jmp 0x40f5f9
push 0x586610
push ebx
call fcn.004024ac
pop ecx
mov ecx, eax
call fcn.0040c651
mov ebx, dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push str.before_start_helper
call ebx
cmp dword [ebp - 0x18], 0x10
mov eax, dword [ebp - 0x2c]
jae 0x40f620
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x40f6d9
push 0
push 0
sub esp, 0x1c
mov esi, esp
mov dword [ebp - 0x88], esp
push 0x585d54
call fcn.0040829d
lea eax, [ebp - 0x64]
push 0x5850ec
push eax
lea edi, [ebp - 0x48]
mov byte [ebp - 4], 5
call fcn.0040ae78
mov ecx, eax
sub esp, 0x14
mov byte [ebp - 4], 6
mov eax, esp
mov dword [ebp - 0x84], esp
push str.MagicPlus_helper.exe_
push ecx
call fcn.0040adbd
sub esp, 0x14
mov byte [ebp - 4], 7
mov eax, edi
mov esi, esp
mov dword [ebp - 0x8c], esp
push eax
call fcn.00408277
mov byte [ebp - 4], 8
cmp dword [0x5b967c], 0
jne 0x40f6c0
push 1
call fcn.00423341
pop ecx
mov ecx, eax
test ecx, ecx
je 0x40f6b9
xor eax, eax
mov edi, ecx
stosb byte es:[edi], al
mov dword [0x5b967c], ecx
jmp 0x40f6c0
and dword [0x5b967c], 0
mov byte [ebp - 4], 9
call fcn.0040cb9a
push 1
xor edi, edi
lea esi, [ebp - 0x64]
mov byte [ebp - 4], 4
call fcn.00409659
push str.after_start_helper
call ebx
push 0
push 1
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 3
call fcn.0040933f
push 0
push 1
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 0
call fcn.0040933f
or dword [ebp - 4], 0xffffffff
push 1
xor edi, edi
lea esi, [ebp - 0x48]
call fcn.00409659
call fcn.00527c65
ret