Function at 0x408460
Capabilities:
Shutdown system

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x258
mov eax, dword [ebp + 0xc]
cmp eax, 0x117
je 0x4084b0
cmp eax, 0x126
je 0x408530
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov dword [esp], eax
call dword [sym.imp.user32.dll_DefWindowProcW]
sub esp, 0x10
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [ebp - 0x20c], 0x1c
lea eax, [ebp - 0x20c]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x208], 8
mov dword [esp], eax
call dword [sym.imp.user32.dll_GetMenuInfo]
mov ebx, dword [ebp - 0x1f4]
sub esp, 8
test ebx, ebx
je 0x408520
mov ecx, dword [ebx + 0x20]
test ecx, ecx
jne 0x408520
mov eax, ebx
call sym._add_folder_contents
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x408510
mov edx, dword [eax + 0x20]
test edx, edx
jne 0x408510
call sym._fill_menu.part.0
lea esi, cs:[esi]
mov dword [ebx + 0x20], 1
lea esi, cs:[esi]
nop
xor eax, eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [ebp - 0x23c]
mov dword [esp + 8], 1
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x23c], 0x30
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x238], 0x22
mov dword [esp], eax
call dword [sym.imp.user32.dll_GetMenuItemInfoW]
mov ebx, dword [ebp - 0x21c]
sub esp, 0x10
test ebx, ebx
jne 0x4085a0
mov eax, dword [ebp - 0x22c]
cmp eax, 1
je 0x408740
cmp eax, 2
je 0x4087c8
call sym._destroy_menus
xor eax, eax
jmp 0x408522
mov esi, dword [ebx + 0xc]
mov eax, dword [esi + 0x10]
test eax, eax
je 0x4086b0
mov edi, dword [esi + 0xc]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x240], edi
test ecx, ecx
je 0x4087b0
mov edx, dword [edi + 0xc]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x244], edx
test eax, eax
je 0x408840
mov edi, dword [edx + 0xc]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x248], edi
test ecx, ecx
je 0x408855
mov edi, dword [edi + 0xc]
mov edx, dword [edi + 0x10]
test edx, edx
je 0x40886a
mov eax, dword [edi + 0xc]
mov ecx, 2
cmp dword [eax + 0x10], 0
je 0x408612
xor edx, edx
call sym._copy_pidls
mov edx, dword [edi + 0x10]
mov ecx, eax
mov dword [ebp - 0x24c], ecx
mov edi, dword [0x41d5ec]
mov dword [esp], edx
call edi
mov ecx, dword [ebp - 0x24c]
sub esp, 4
lea eax, [ecx + eax - 2]
mov dword [ebp - 0x24c], eax
mov eax, dword [ebp - 0x248]
mov ecx, dword [eax + 0x10]
mov dword [esp], ecx
call edi
mov ecx, dword [ebp - 0x24c]
sub esp, 4
lea eax, [ecx + eax - 2]
mov dword [ebp - 0x248], eax
mov eax, dword [ebp - 0x244]
mov eax, dword [eax + 0x10]
mov dword [esp], eax
call edi
mov ecx, dword [ebp - 0x248]
sub esp, 4
lea eax, [ecx + eax - 2]
mov dword [ebp - 0x244], eax
mov eax, dword [ebp - 0x240]
mov ecx, dword [eax + 0x10]
mov dword [esp], ecx
call edi
mov ecx, dword [ebp - 0x244]
sub esp, 4
lea eax, [ecx + eax - 2]
mov dword [ebp - 0x240], eax
mov eax, dword [esi + 0x10]
mov dword [esp], eax
call edi
mov esi, dword [ebp - 0x240]
sub esp, 4
lea esi, [esi + eax - 2]
jmp 0x4086bb
mov edi, dword [0x41d5ec]
mov esi, 2
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call edi
lea eax, [esi + eax - 2]
sub esp, 4
mov dword [esp], eax
call dword [0x41d59c]
sub esp, 4
mov esi, eax
mov edx, eax
mov eax, ebx
call sym._copy_pidls
lea edx, [ebp - 0x204]
xor eax, eax
mov ecx, 0xd
mov edi, edx
lea ebx, [ebp - 0x20c]
rep stosd dword es:[edi], eax
mov dword [ebp - 0x1e8], esi
mov dword [ebp - 0x20c], 0x3c
mov dword [ebp - 0x208], 4
mov dword [ebp - 0x1f0], 1
mov dword [esp], ebx
call dword [0x41d620]
sub esp, 4
mov dword [esp], esi
call dword [0x41d5a0]
sub esp, 4
jmp 0x40858e
mov dword [esp], str.shell32
call dword [sym.imp.kernel32.dll_LoadLibraryW]
sub esp, 4
mov ebx, eax
mov dword [esp + 4], 0x3d
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetProcAddress]
sub esp, 8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call eax
sub esp, 0x18
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_FreeLibrary]
sub esp, 4
jmp 0x40858e
mov dword [ebp - 0x240], 2
mov edi, dword [0x41d5ec]
jmp 0x40869c
lea ebx, [ebp - 0x20c]
mov dword [esp + 0xc], 0x100
mov dword [esp + 8], ebx
mov dword [esp + 4], 6
mov dword [esp], 0
call dword [sym.imp.user32.dll_LoadStringW]
mov eax, dword [ebp + 8]
sub esp, 0x10
mov dword [esp + 0xc], 0x1024
mov dword [esp + 8], 0x414644
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [sym.imp.user32.dll_MessageBoxW]
sub esp, 0x10
cmp eax, 6
jne 0x40858e
mov dword [esp + 4], 0xffffffff
mov dword [esp], 0
call dword [sym.imp.user32.dll_ExitWindowsEx]
sub esp, 8
jmp 0x40858e
mov dword [ebp - 0x244], 2
mov edi, dword [0x41d5ec]
jmp 0x408681
mov dword [ebp - 0x248], 2
mov edi, dword [0x41d5ec]
jmp 0x408660
mov dword [ebp - 0x24c], 2
mov edi, dword [0x41d5ec]
jmp 0x40863f