Function at 0x41f480
Capabilities:
Hide graphical window
Shutdown system

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5166d8
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
mov eax, dword [0x56f790]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
cmp dword [edi + 0x58], 2
je 0x41f688
push 0
push dword [edi + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
cmp dword [edi + 0x58], 3
mov ebx, dword [ebp + 8]
jne 0x41f5c2
test ebx, ebx
je 0x41f4e6
call fcn.00472210
push eax
mov ecx, dword [eax]
call dword [ecx + 0x4c]
test eax, eax
jne 0x41f5c2
call fcn.00472210
push eax
mov ecx, dword [eax]
call dword [ecx + 0x24]
call fcn.0040ed70
mov ecx, eax
call fcn.0040cee0
mov esi, dword [eax]
lea eax, [ebp - 0x24]
push eax
call fcn.0040ed70
mov ecx, eax
call fcn.0040b420
mov dword [ebp - 4], 0
test esi, esi
je 0x41f559
call fcn.0040ed70
mov ecx, eax
call fcn.0040ca70
test eax, eax
jne 0x41f5a0
call fcn.0040ed70
mov ecx, eax
call fcn.0040cb60
test eax, eax
jne 0x41f58d
call fcn.0040ed70
mov ecx, eax
call fcn.0040cbb0
test eax, eax
jne 0x41f58d
call fcn.00472210
push dword [ebp - 0x24]
push str.LDSGameCenter.exe
jmp 0x41f59a
cmp ebx, 1
jne 0x41f5a0
call fcn.0040ed70
mov ecx, eax
call fcn.0040cb60
test eax, eax
jne 0x41f58d
call fcn.0040ed70
mov ecx, eax
call fcn.0040cbb0
test eax, eax
jne 0x41f58d
call fcn.00472210
push dword [ebp - 0x24]
push str.LDSGameCenter.exe
jmp 0x41f59a
call fcn.00472210
push dword [ebp - 0x24]
push str.pgstation.exe
mov ecx, dword [eax]
push eax
call dword [ecx + 0x3c]
mov edx, dword [ebp - 0x24]
or eax, 0xffffffff
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41f5c2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.0040ed70
mov ecx, eax
call fcn.0040ce70
mov esi, dword [eax]
call fcn.00472210
xor ecx, ecx
test esi, esi
setne cl
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x34]
test ebx, ebx
je 0x41f656
call fcn.00472210
push eax
mov ecx, dword [eax]
call dword [ecx + 0x4c]
test eax, eax
je 0x41f656
lea eax, [ebp - 0x28]
push eax
push 0x28
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x41f688
lea eax, [ebp - 0x1c]
push eax
push 0x52efe4
push 0
call dword [sym.imp.ADVAPI32.dll_LookupPrivilegeValueW]
push 0
push 0
push 0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 1
push eax
push 0
push dword [ebp - 0x28]
mov dword [ebp - 0x14], 2
call dword [sym.imp.ADVAPI32.dll_AdjustTokenPrivileges]
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x41f688
push eax
push 2
call dword [sym.imp.USER32.dll_ExitWindowsEx]
jmp 0x41f688
mov ecx, 0x573640
call fcn.0042d150
mov ecx, edi
call fcn.00420100
test eax, eax
je 0x41f677
lea ecx, [edi + 0x60]
call fcn.00411e60
test eax, eax
jne 0x41f688
push dword [edi + 4]
call dword [sym.imp.USER32.dll_DestroyWindow]
push 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004ac4b8
mov esp, ebp
pop ebp
ret 4