Function at 0x405b30
Capabilities:
Enumerate process modules
Find taskbar

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1228
call fcn.0042ed90
mov eax, dword [0x46e018]
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 0x405b8a
push str.could_not_find_MSTaskListWClass_n
call fcn.0040c560
add esp, 4
xor al, al
pop edi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0042dc42
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.0040c560
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 0x405c14
mov eax, dword [edi]
mov dword [ebp - 0x1214], eax
test eax, eax
je 0x405c10
cmp eax, 0xffffffff
je 0x405c10
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 0x405c24
test esi, esi
je 0x405c24
cmp esi, 0xffffffff
je 0x405c24
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [edi]
test esi, esi
je 0x405dd1
cmp esi, 0xffffffff
je 0x405dd1
push 0x1000
lea eax, [ebp - 0x120c]
mov dword [ebp - 0x1214], 0
push 0
push eax
call fcn.0042ff40
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 0x405dc2
xor esi, esi
test dword [ebp - 0x121c], 0xfffffffc
jbe 0x405d08
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 0x405ceb
push dword [ebp + esi*4 - 0x120c]
lea eax, [ebp - 0x20c]
push eax
push str._t_s__0x_p__n
call fcn.0040c590
add esp, 0xc
mov eax, ebx
cmp dword [ebx + 0x14], 8
jb 0x405cd7
mov eax, dword [ebx]
push eax
lea eax, [ebp - 0x20c]
push eax
call fcn.0043a9c1
add esp, 8
test eax, eax
je 0x405cfb
mov eax, dword [ebp - 0x121c]
inc esi
shr eax, 2
cmp esi, eax
jb 0x405c93
jmp 0x405d08
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.0040c560
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 0x405d7a
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
push eax
push str.WriteProcessMemory_failed__err:_d_n
jmp 0x405dde
movzx eax, byte [ebp - 0x120d]
push eax
push dword [ebx + 0x28]
push str.write__p__x_n
call fcn.0040c560
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 0x405d6b
pop esi
pop edi
mov al, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0042dc42
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 0x405dde
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
push eax
push str.open_process_failed__err:_d_n
call fcn.0040c560
mov ecx, dword [ebp - 4]
add esp, 8
xor ecx, ebp
xor al, al
pop esi
pop edi
pop ebx
call fcn.0042dc42
mov esp, ebp
pop ebp
ret 0xc