Function at 0x405ad0
Capabilities:
Enumerate process modules
Find taskbar

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1228
call fcn.0042de50
mov eax, dword [0x46c018]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
push edi
push 0
push str.Shell_TrayWnd
push 0
mov edi, ecx
push 0
mov dword [ebp - 0x1228], edi
call dword [sym.imp.USER32.dll_FindWindowExW]
test eax, eax
jne 0x405b2a
push str.could_not_find_MSTaskListWClass_n
call fcn.0040c500
add esp, 4
xor al, al
pop edi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0042cd02
mov esp, ebp
pop ebp
ret 0xc
push esi
lea ecx, [ebp - 0x1218]
mov dword [ebp - 0x1218], 0
push ecx
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
push dword [ebp - 0x1218]
push str.explorer.exe_process_id:_d_n
call fcn.0040c500
add esp, 8
push dword [ebp - 0x1218]
push 0
push 0x438
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov esi, eax
add edi, 0x20
lea eax, [ebp - 0x1214]
mov dword [ebp - 0x1224], edi
cmp edi, eax
je 0x405bb4
mov eax, dword [edi]
mov dword [ebp - 0x1214], eax
test eax, eax
je 0x405bb0
cmp eax, 0xffffffff
je 0x405bb0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push dword [ebp - 0x1214]
mov edi, eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov edi, dword [ebp - 0x1224]
mov dword [edi], esi
jmp 0x405bc4
test esi, esi
je 0x405bc4
cmp esi, 0xffffffff
je 0x405bc4
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [edi]
test esi, esi
je 0x405d71
cmp esi, 0xffffffff
je 0x405d71
push 0x1000
lea eax, [ebp - 0x120c]
mov dword [ebp - 0x1214], 0
push 0
push eax
call fcn.0042f000
add esp, 0xc
mov dword [ebp - 0x121c], 0
lea eax, [ebp - 0x121c]
push 3
push eax
push 0x1000
lea eax, [ebp - 0x120c]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_K32EnumProcessModulesEx]
test eax, eax
je 0x405d62
xor esi, esi
test dword [ebp - 0x121c], 0xfffffffc
jbe 0x405ca8
push 0x104
lea eax, [ebp - 0x20c]
push eax
push dword [ebp + esi*4 - 0x120c]
push dword [edi]
call dword [sym.imp.KERNEL32.dll_K32GetModuleFileNameExW]
test eax, eax
je 0x405c8b
push dword [ebp + esi*4 - 0x120c]
lea eax, [ebp - 0x20c]
push eax
push str._t_s__0x_p__n
call fcn.0040c530
add esp, 0xc
mov eax, ebx
cmp dword [ebx + 0x14], 8
jb 0x405c77
mov eax, dword [ebx]
push eax
lea eax, [ebp - 0x20c]
push eax
call fcn.00439a84
add esp, 8
test eax, eax
je 0x405c9b
mov eax, dword [ebp - 0x121c]
inc esi
shr eax, 2
cmp esi, eax
jb 0x405c33
jmp 0x405ca8
mov eax, dword [ebp + esi*4 - 0x120c]
mov dword [ebp - 0x1214], eax
mov ecx, dword [ebp + 0x10]
add ecx, dword [ebp - 0x1214]
mov ebx, dword [ebp - 0x1228]
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0x1214]
push 0xeb
push ecx
push str.write__p__x_n
mov dword [ebx + 0x24], ecx
mov dword [ebx + 0x28], eax
mov byte [ebp - 0x120d], 0xeb
mov dword [ebp - 0x1220], 0
call fcn.0040c500
mov esi, dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
lea eax, [ebp - 0x1220]
add esp, 0xc
push eax
push 1
lea eax, [ebp - 0x120d]
push eax
push dword [ebx + 0x24]
push dword [edi]
call esi
test eax, eax
jne 0x405d1a
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
push eax
push str.WriteProcessMemory_failed__err:_d_n
jmp 0x405d7e
movzx eax, byte [ebp - 0x120d]
push eax
push dword [ebx + 0x28]
push str.write__p__x_n
call fcn.0040c500
add esp, 0xc
lea eax, [ebp - 0x1220]
push eax
push 1
lea eax, [ebp - 0x120d]
push eax
push dword [ebx + 0x28]
push dword [edi]
call esi
test eax, eax
je 0x405d0b
pop esi
pop edi
mov al, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0042cd02
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
push eax
push str.EnumProcessModules_failed__err:_d_n
jmp 0x405d7e
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
push eax
push str.open_process_failed__err:_d_n
call fcn.0040c500
mov ecx, dword [ebp - 4]
add esp, 8
xor ecx, ebp
xor al, al
pop esi
pop edi
pop ebx
call fcn.0042cd02
mov esp, ebp
pop ebp
ret 0xc