Function at 0x54f5a0
Capabilities:
Check mutex on windows
Create process on windows
Read .ini file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x794
mov eax, dword [0x6bc858]
xor eax, esp
mov dword [esp + 0x790], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov edi, dword [ebp + 0x10]
xor esi, esi
push 8
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], edi
mov dword [esp + 0x94], esi
call fcn.005f0fe0
add esp, 4
cmp eax, esi
je 0x54fa48
mov dword [esp + 0x90], eax
xor ecx, ecx
mov dword [eax], ecx
xor edx, edx
mov dword [eax + 4], edx
mov edx, dword [esp + 0x90]
lea ecx, [esp + 0x90]
mov dword [edx], ecx
mov dword [esp + 0xa4], esi
mov esi, ecx
mov dword [esp + 0xa8], 0xf
mov byte [esp + 0x94], 0
call fcn.004c4b60
push 3
push 0x675fe8
mov ecx, esi
call fcn.00412ae0
mov ecx, dword [esp + 0x94]
mov ebx, 0x10
cmp dword [esp + 0xa8], ebx
jae 0x54f651
lea ecx, [esp + 0x94]
call fcn.004c3dc0
test eax, eax
je 0x54f693
push 0
push 0x67afb0
push 0x698508
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [esp + 0x90]
call fcn.00412410
mov ecx, dword [esp + 0x79c]
pop edi
pop esi
pop ebx
xor ecx, esp
xor eax, eax
call fcn.005f0da0
mov esp, ebp
pop ebp
ret 0x10
push str._Install
push edi
call fcn.005f4850
add esp, 8
test eax, eax
je 0x54f6af
mov dword [0x6c5334], 1
mov esi, dword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
push 0x54f100
call esi
push 0x54f100
call esi
push 0x6745b6
lea ecx, [esp + 0xb4]
call fcn.00412330
lea esi, [esp + 0xb0]
call fcn.004c4b60
push 0x16
push str.Tempupdateupdate.ini
mov ecx, esi
call fcn.00412ae0
mov eax, dword [esp + 0xb4]
cmp dword [esp + 0xc8], ebx
jae 0x54f705
lea eax, [esp + 0xb4]
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push eax
push 0
push str.download_finish
push str.update
call edi
mov esi, eax
mov eax, dword [esp + 0xb4]
cmp dword [esp + 0xc8], ebx
jae 0x54f733
lea eax, [esp + 0xb4]
push eax
push 0
push str.install_finish
push str.update
call edi
test esi, esi
je 0x54f910
test eax, eax
jne 0x54f910
call fcn.00461c80
lea ecx, [esp + 0x70]
call fcn.00412290
lea esi, [esp + 0x70]
call fcn.004c4b60
push str.tempupdatewifidayinstall.exe
mov ecx, esi
call fcn.004124f0
mov eax, dword [esp + 0x74]
cmp dword [esp + 0x88], ebx
jae 0x54f786
lea eax, [esp + 0x74]
test eax, eax
jne 0x54f791
call fcn.004c35a0
jmp 0x54f79c
push 0
push eax
call fcn.005fc7e0
add esp, 8
lea ecx, [esp + 0x70]
test eax, eax
jne 0x54f90b
push str.__Sp___VERYSILENT__SUPPRESSMSGBOXES__NORESTART
call fcn.004124f0
mov edi, 0x44
push edi
lea eax, [esp + 0x2c]
push 0
push eax
call fcn.005ff630
xor eax, eax
add esp, 0xc
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x28], edi
cmp dword [esp + 0x88], ebx
jae 0x54f7ee
lea eax, [esp + 0x74]
mov esi, dword [sym.imp.KERNEL32.dll_CreateProcessA]
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x2c]
push edx
push 0
push 0
push 0
push 0
push 0
push 0
push eax
push 0
call esi
test eax, eax
je 0x54f8f1
mov eax, dword [esp + 0x10]
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ecx, dword [esp + 0x10]
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
push ecx
call ebx
mov edx, dword [esp + 0x14]
push edx
call ebx
cmp dword [esp + 0xc8], 0x10
mov eax, dword [esp + 0xb4]
jae 0x54f850
lea eax, [esp + 0xb4]
push eax
push 0x675d18
push str.install_finish
push str.update
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push 0x103
lea eax, [esp + 0x695]
push 0
push eax
mov byte [esp + 0x69c], 0
call fcn.005ff630
mov edx, dword [esp + 0x30]
add esp, 0xc
push 0x104
lea ecx, [esp + 0x694]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push edi
lea eax, [esp + 0x2c]
push 0
push eax
call fcn.005ff630
add esp, 0xc
xor eax, eax
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x2c]
push edx
push eax
push eax
push eax
push eax
push eax
push eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x6b0]
push eax
push 0
mov dword [esp + 0x50], edi
call esi
test eax, eax
je 0x54f8f1
mov ecx, dword [esp + 0x10]
push ecx
call ebx
mov edx, dword [esp + 0x14]
push edx
call ebx
lea ecx, [esp + 0x70]
call fcn.00412410
lea ecx, [esp + 0xb0]
call fcn.00412410
jmp 0x54f66e
call fcn.00412410
push str.A647D352_10E4_4814_8372_8C541FE173A3_WIFINONO
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [0x6c4f38], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x54f9a7
push 0x6745b6
lea ecx, [esp + 0x74]
call fcn.00412330
lea esi, [esp + 0x70]
call fcn.004c4b60
push 0xd
push str.config_ad.ini
mov ecx, esi
call fcn.00412ae0
mov eax, dword [esp + 0x74]
cmp dword [esp + 0x88], ebx
jae 0x54f967
lea eax, [esp + 0x74]
push eax
push 0
push str.NowWinodw
push str.System
call edi
mov esi, eax
test esi, esi
je 0x54f8f1
push esi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x54f8f1
push 0x43
push 0
push 0
push 0
push 0
push 0xfffffffffffffffe
push esi
call dword [sym.imp.USER32.dll_SetWindowPos]
jmp 0x54f8f1
mov esi, dword [esp + 0x20]
push str.AutoStart
push esi
call fcn.005f4850
add esp, 8
test eax, eax
je 0x54f9c8
push 0xea60
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0
call fcn.005aadd0
lea eax, [esp + 0xd0]
push eax
call fcn.004b0b30
lea ecx, [esp + 0xd0]
push str.AutoStart
push esi
mov dword [0x6c5338], ecx
call fcn.005f4850
add esp, 8
test eax, eax
je 0x54fa06
mov dword [esp + 0x44c], 1
lea edi, [esp + 0xd0]
call fcn.004b10f0
mov edx, dword [esp + 0x24]
push edx
mov ebx, edi
call fcn.004b1650
call fcn.005ab040
mov eax, dword [0x6c4f38]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, edi
push ecx
call fcn.004b0c50
lea ecx, [esp + 0xb0]
call fcn.00412410
jmp 0x54f66e
lea edx, [esp + 0x20]
push edx
lea ecx, [esp + 0x14]
mov dword [esp + 0x24], esi
call fcn.005f41f0
push 0x6a361c
lea eax, [esp + 0x14]
push eax
mov dword [esp + 0x18], vtable.std::bad_alloc.0
call fcn.006009e0
int3