Function at 0x4479c0
Capabilities:
Lock the desktop
Shutdown system

Disassembly:
push 0xffffffffffffffff
push 0x5c1d43
mov eax, dword fs:[0]
push eax
sub esp, 0x34
push ebx
push ebp
push esi
push edi
mov eax, dword [0x615370]
xor eax, esp
push eax
lea eax, [esp + 0x48]
mov dword fs:[0], eax
lea eax, [esp + 0x20]
push eax
call fcn.00427c80
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.XNBShutDown
mov dword [esp + 0x54], 0
call fcn.00406c20
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x18]
push eax
mov byte [esp + 0x58], 1
call fcn.00407d70
call fcn.00428be0
test eax, eax
mov byte [esp + 0x50], 0
mov eax, dword [esp + 0x14]
sete bl
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x447a4b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
jne 0x447dd6
push 0x1d8
call fcn.005851c0
add esp, 4
mov dword [esp + 0x14], eax
mov byte [esp + 0x50], 2
test eax, eax
je 0x447a7c
mov ecx, eax
call fcn.0042ac00
mov ebx, eax
mov dword [esp + 0x14], eax
jmp 0x447a82
xor ebx, ebx
mov dword [esp + 0x14], ebx
mov byte [esp + 0x50], 0
mov dword [esp + 0x18], ebx
test ebx, ebx
je 0x447a97
mov ecx, dword [ebx]
mov edx, dword [ecx + 4]
push ebx
call edx
mov byte [esp + 0x50], 3
mov eax, dword [esp + 0x20]
mov esi, eax
cmp dword [ebx + 0x134], eax
je 0x447ace
test eax, eax
je 0x447ab6
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
mov eax, dword [ebx + 0x134]
test eax, eax
je 0x447ac8
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [ebx + 0x134], esi
mov eax, dword [esp + 0x28]
mov esi, eax
cmp dword [ebx + 0x12c], eax
je 0x447b00
test eax, eax
je 0x447ae8
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
mov eax, dword [ebx + 0x12c]
test eax, eax
je 0x447afa
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [ebx + 0x12c], esi
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x40]
cmp edi, eax
jbe 0x447b15
call fcn.00588c45
mov eax, dword [esp + 0x40]
mov ebp, dword [esp + 0x30]
lea esp, [esp]
mov esi, eax
cmp dword [esp + 0x3c], eax
jbe 0x447b2d
call fcn.00588c45
test ebp, ebp
je 0x447b37
cmp ebp, dword [esp + 0x30]
je 0x447b3c
call fcn.00588c45
cmp edi, esi
je 0x447d05
test ebp, ebp
jne 0x447bbb
call fcn.00588c45
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x447b59
call fcn.00588c45
cmp dword [edi], 0x272f
jne 0x447bec
test byte [0x624864], 1
jne 0x447b82
or dword [0x624864], 1
push 0x5c5720
call fcn.00588d7c
add esp, 4
cmp dword [0x625080], 0
mov esi, 0x5d013c
jne 0x447b95
mov esi, 0x5d0150
test ebp, ebp
jne 0x447bc0
call fcn.00588c45
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x447baa
call fcn.00588c45
test esi, esi
jne 0x447bc5
xor ebx, ebx
push esi
lea eax, [edi + 4]
call fcn.00406b40
jmp 0x447c22
mov eax, dword [ebp]
jmp 0x447b4f
mov eax, dword [ebp]
jmp 0x447ba0
mov eax, esi
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x447bd0
sub eax, edx
sar eax, 1
mov ebx, eax
push esi
lea eax, [edi + 4]
call fcn.00406b40
jmp 0x447c22
test ebp, ebp
jne 0x447cdb
call fcn.00588c45
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x447c05
call fcn.00588c45
cmp dword [edi], 0x2733
jne 0x447c22
call fcn.00516560
cmp dword [0x6230c0], 0x400
jl 0x447cba
push 0
push 0
push 1
push 1
test ebp, ebp
jne 0x447ce3
call fcn.00588c45
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x447c43
call fcn.00588c45
mov eax, dword [edi + 0x18]
push eax
test ebp, ebp
jne 0x447ceb
call fcn.00588c45
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x447c60
call fcn.00588c45
mov eax, dword [edi + 0xc]
push eax
test ebp, ebp
jne 0x447cf3
call fcn.00588c45
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x447c7d
call fcn.00588c45
mov eax, dword [edi + 4]
push ecx
sub eax, 0x10
mov dword [esp + 0x38], esp
mov esi, esp
call fcn.00406580
add eax, 0x10
mov dword [esi], eax
test ebp, ebp
jne 0x447cfb
call fcn.00588c45
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x447ca9
call fcn.00588c45
mov ecx, dword [edi]
mov edx, dword [esp + 0x30]
push ecx
push edx
call fcn.0042b4a0
mov ebx, dword [esp + 0x14]
test ebp, ebp
jne 0x447d00
call fcn.00588c45
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x447ccf
call fcn.00588c45
mov eax, dword [esp + 0x40]
add edi, 0x20
jmp 0x447b20
mov eax, dword [ebp]
jmp 0x447bfb
mov eax, dword [ebp]
jmp 0x447c39
mov eax, dword [ebp]
jmp 0x447c56
mov eax, dword [ebp]
jmp 0x447c73
mov eax, dword [ebp]
jmp 0x447c9f
mov eax, dword [ebp]
jmp 0x447cc5
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
push eax
mov eax, dword [esp + 0x60]
push ecx
push ebx
call fcn.0042b720
add eax, 0xffffd8d1
cmp eax, 5
ja case.default.0x447d27
jmp dword [eax*4 + 0x447df8]
mov edi, dword [esp + 0x5c]
mov esi, dword [esp + 0x58]
call fcn.00447e10
mov ebx, dword [esp + 0x14]
jmp case.default.0x447d27
mov esi, dword [sym.imp.USER32.dll_ExitWindowsEx]
push 0
push 0x10
call esi
test eax, eax
jne case.default.0x447d27
call fcn.004867c0
test eax, eax
je case.default.0x447d27
push 0
push 0x10
call esi
jmp case.default.0x447d27
mov esi, dword [sym.imp.USER32.dll_LockWorkStation]
call esi
test eax, eax
jne case.default.0x447d27
call fcn.004867c0
test eax, eax
je case.default.0x447d27
call esi
jmp case.default.0x447d27
mov esi, dword [sym.imp.USER32.dll_ExitWindowsEx]
push 0
push 0x12
call esi
test eax, eax
jne case.default.0x447d27
call fcn.004867c0
test eax, eax
je case.default.0x447d27
push 0
push 0x12
call esi
jmp case.default.0x447d27
call fcn.00484c80
jmp case.default.0x447d27
push 1
push 1
call sub.KERNEL32.dll_SetSystemPowerState
test eax, eax
jne case.default.0x447d27
call fcn.004867c0
test eax, eax
je case.default.0x447d27
push 1
push 1
call sub.KERNEL32.dll_SetSystemPowerState
mov byte [esp + 0x50], 0
test ebx, ebx
je 0x447dd6
mov edx, dword [ebx]
mov eax, dword [edx + 8]
push ebx
call eax
lea eax, [esp + 0x20]
call fcn.00427f90
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0x10