Function at 0x40dbe0
Capabilities:
Find taskbar

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x100
push ebx
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebx]
mov edx, dword [ebx + 8]
push esi
push edi
mov esi, ecx
mov ecx, dword [ebx + 4]
push 0
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x10], eax
mov eax, dword [ebx + 0xc]
lea ecx, [ebp - 0xa0]
push 0
push ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
call fcn.00425070
mov edi, dword [ebp + 0x14]
add esp, 0xc
mov dword [ebp + 0x10], edi
cmp edi, 8
ja case.0x40dc31.1
movzx edx, byte [edi + 0x40e1e0]
jmp dword [edx*4 + 0x40e1d0]
push 0
push 3
lea eax, [ebp - 0xa0]
push eax
mov ecx, esi
call fcn.0040d990
mov edx, dword [eax + 4]
mov ecx, dword [eax]
mov dword [ebp - 0x1c], edx
mov edx, dword [eax + 8]
mov dword [ebp - 0x18], edx
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 8]
sub eax, dword [ebp - 0x18]
mov dword [ebp + 0x10], 1
sub eax, ecx
mov ecx, dword [ebp - 4]
sub eax, dword [ebp - 0x10]
sub ecx, edx
sub ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], 0
sub ecx, dword [ebp - 0xc]
xor edx, edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], eax
mov dword [ebp - 4], ecx
jmp 0x40de31
mov eax, dword [ebp + 0xc]
cmp eax, 4
ja case.0x40dc9b.3
jmp dword [eax*4 + 0x40e1ec]
mov eax, dword [ebp + 0x1c]
push 0
or eax, 0x53
push eax
lea ecx, [ebp - 0x100]
push ecx
jmp 0x40dcd0
mov edx, dword [ebp + 0x1c]
push 0
push edx
lea eax, [ebp - 0xf0]
push eax
jmp 0x40dcd0
mov ecx, dword [ebp + 0x1c]
push 0
push ecx
lea edx, [ebp - 0xe0]
push edx
mov ecx, esi
call fcn.0040d990
mov ecx, dword [eax + 8]
mov edx, dword [eax]
mov esi, dword [eax + 4]
mov eax, dword [eax + 0xc]
test ecx, ecx
jne 0x40dcea
test edx, edx
je 0x40dcef
add ecx, edx
add dword [ebp - 8], ecx
test eax, eax
jne 0x40dcf7
test esi, esi
je case.0x40dc9b.3
add eax, esi
add dword [ebp - 4], eax
jmp case.0x40dc9b.3
mov eax, dword [ebp + 0x1c]
push 0
or eax, 0x50
push eax
lea ecx, [ebp - 0xb0]
push ecx
mov ecx, esi
call fcn.0040d990
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x20], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
add dword [ebp - 0xc], ecx
add dword [ebp - 4], ecx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
mov dword [eax], ecx
mov ecx, dword [ebp - 8]
mov dword [eax + 4], edx
mov edx, dword [ebp - 4]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov ecx, dword [0x52fe34]
call fcn.0045c5c0
mov ecx, dword [ebx + 0xc]
sub ecx, dword [ebx + 4]
imul eax, ecx
mov ecx, dword [0x52fe34]
push eax
call fcn.0045c5a0
mov edx, dword [ebx + 8]
sub edx, dword [ebx]
imul eax, edx
push eax
lea eax, [ebp - 0xc0]
push eax
call fcn.00425070
mov ecx, dword [eax]
mov dword [ebp - 0x10], ecx
mov edx, dword [eax + 4]
add esp, 0xc
mov dword [ebp - 0xc], edx
mov ecx, dword [eax + 8]
mov dword [ebp - 8], ecx
mov edx, dword [eax + 0xc]
push 0
push 0xa0
lea eax, [ebp - 0x20]
push eax
mov ecx, esi
mov dword [ebp - 4], edx
call fcn.0040d990
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x20]
test eax, eax
jne 0x40ddc1
test ecx, ecx
je 0x40ddc6
add eax, ecx
add dword [ebp - 8], eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
test eax, eax
jne 0x40ddd4
test ecx, ecx
je 0x40ddd9
add eax, ecx
add dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
cmp eax, 6
je 0x40de1b
push 0x10
push 0
push 6
lea ecx, [ebp - 0x10]
push ecx
push eax
lea edx, [ebp - 0xd0]
push edx
mov ecx, esi
call fcn.0040dbe0
mov ecx, dword [eax]
mov dword [ebp - 0x10], ecx
mov edx, dword [eax + 4]
mov dword [ebp - 0xc], edx
mov ecx, dword [eax + 8]
mov edx, dword [ebp - 0x10]
mov dword [ebp - 8], ecx
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp + 8]
mov dword [eax], edx
mov edx, dword [ebp - 0xc]
jmp 0x40de89
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 4]
mov dword [eax], edx
mov edx, dword [ebp - 0xc]
jmp 0x40de89
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp + 0xc]
add eax, 0xfffffffe
cmp eax, 0xb
ja case.default.0x40de43
movzx eax, byte [eax + 0x40e210]
jmp dword [eax*4 + 0x40e200]
mov ecx, dword [0x52fe30]
cmp byte [ecx + 0x1133e], 1
jne 0x40de9e
cmp byte [ecx + 0x112a0], 0
je 0x40de6b
call fcn.0044e0a0
mov edi, eax
jmp 0x40de6d
xor edi, edi
mov ecx, dword [esi + 0x40a0]
call fcn.004a5d10
mov ecx, dword [ebp - 4]
mov edx, ecx
sub edx, edi
sub edx, eax
mov eax, dword [ebp + 8]
mov esi, dword [ebp - 0x10]
mov dword [eax], esi
mov dword [eax + 4], edx
mov edx, dword [ebp - 8]
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov ecx, dword [esi + 0x40a0]
call fcn.004a5d10
mov edx, dword [ebp - 0xc]
mov ecx, eax
add ecx, edx
jmp case.default.0x40de43
mov ecx, dword [ebp + 0x1c]
push 0
or ecx, 0x50
push ecx
lea edx, [ebp - 0xd0]
push edx
mov ecx, esi
call fcn.0040d990
mov ecx, dword [eax]
mov esi, dword [eax + 4]
mov edi, dword [eax + 8]
mov eax, dword [eax + 0xc]
test ecx, ecx
je 0x40dedb
add dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0xc]
test esi, esi
je 0x40dee4
add edx, esi
test edi, edi
je 0x40deeb
sub dword [ebp - 8], edi
mov ecx, dword [ebp - 4]
test eax, eax
je case.default.0x40de43
sub ecx, eax
jmp case.default.0x40de43
mov eax, dword [ebp + 0x1c]
mov esi, dword [ebp - 0x10]
push eax
mov eax, dword [ebp + 0x18]
push eax
mov eax, dword [ebp + 0x10]
push eax
sub esp, 0x10
mov eax, esp
mov dword [eax], esi
mov dword [eax + 4], edx
mov edx, dword [ebp - 8]
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 0xc0]
push ecx
call fcn.004b87d0
mov ecx, dword [ebp + 8]
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
add esp, 0x24
mov eax, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
xor eax, eax
neg edi
sbb edi, edi
not edi
and edi, ebx
push edi
lea ecx, [ebp - 0x48]
push ecx
mov ecx, esi
mov dword [ebp - 0x48], 0x28
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
call fcn.00416c60
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff6
cmp eax, 3
ja case.default.0x40e107
jmp dword [eax*4 + 0x40e21c]
mov esi, dword [ebp - 0x34]
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x28]
jmp 0x40e08c
mov esi, dword [ebp - 0x44]
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
jmp 0x40e08c
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x2c]
push 0
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], edx
mov edx, dword [ebp - 0x28]
push 1
lea eax, [ebp - 0x20]
mov dword [ebp - 8], ecx
push eax
mov ecx, esi
mov dword [ebp - 4], edx
call fcn.0040d990
mov eax, dword [ebp - 0x1c]
sub dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x20]
sub dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
mov esi, dword [sym.imp.USER32.dll_FindWindowExW]
add dword [ebp - 8], edx
add dword [ebp - 4], ecx
xor eax, eax
push eax
push str.Shell_TrayWnd
push eax
mov ebx, 0x24
push eax
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], eax
call esi
mov dword [ebp - 0x68], eax
test eax, eax
je case.default.0x40e107
mov edi, dword [sym.imp.USER32.dll_GetWindowRect]
lea ecx, [ecx]
lea edx, [ebp - 0xa0]
push edx
push eax
call edi
test eax, eax
je 0x40e06a
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0xa0]
push ecx
lea edx, [ebp - 0xb0]
push edx
call dword [sym.imp.USER32.dll_IntersectRect]
test eax, eax
jne 0x40e0a5
mov eax, dword [ebp - 0x68]
push 0
push str.Shell_TrayWnd
push eax
push 0
call esi
mov dword [ebp - 0x68], eax
test eax, eax
jne 0x40e040
mov esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
mov edi, dword [ebp + 8]
mov dword [edi], esi
mov dword [edi + 4], eax
mov dword [edi + 8], ecx
mov dword [edi + 0xc], edx
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
cmp dword [ebp - 0x68], 0
je case.default.0x40e107
mov esi, dword [sym.imp.SHELL32.dll_SHAppBarMessage]
lea ecx, [ebp - 0x6c]
push ecx
push 4
call esi
test al, 1
je case.default.0x40e107
mov edx, dword [ebp - 0x68]
xor eax, eax
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], eax
lea eax, [ebp - 0x90]
push eax
push 5
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0x8c], edx
call esi
test eax, eax
je case.default.0x40e107
mov eax, dword [ebp - 0x84]
cmp eax, 3
ja case.default.0x40e107
jmp dword [eax*4 + 0x40e22c]
mov esi, dword [ebp - 0x10]
inc esi
jmp 0x40e083
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
dec ecx
jmp 0x40e086
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
inc eax
jmp 0x40e089
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
mov esi, dword [ebp - 0x10]
dec edx
jmp 0x40e08c
mov edi, dword [0x52fe2c]
xor eax, eax
xor esi, esi
mov dword [ebp - 0x20], esi
mov ecx, eax
mov edx, eax
test edi, edi
je 0x40e174
mov esi, dword [edi + 0x5550]
mov eax, dword [edi + 0x5554]
mov ecx, dword [edi + 0x5558]
mov edx, dword [edi + 0x555c]
mov dword [ebp - 0x20], esi
mov edi, ecx
sub edi, esi
mov ebx, edx
sub ebx, eax
mov dword [ebp + 0x1c], edi
mov dword [ebp + 0xc], ebx
test edi, edi
jle case.0x40df96.13
test ebx, ebx
jle case.0x40df96.13
mov edi, dword [ebp - 0x34]
lea ebx, [ecx + 0x1e]
cmp ebx, edi
jle 0x40e1a7
mov ebx, dword [ebp - 0x20]
add ebx, 0x1e
cmp ebx, dword [ebp - 0x2c]
jl 0x40e1ae
mov ecx, dword [ebp + 0x1c]
mov esi, edi
add ecx, edi
mov edi, dword [ebp - 0x30]
lea ebx, [edx + 0x1e]
cmp ebx, edi
jle 0x40e1c4
lea ebx, [eax + 0x1e]
cmp ebx, dword [ebp - 0x28]
jl 0x40e08c
mov edx, dword [ebp + 0xc]
mov eax, edi
add edx, edi
jmp 0x40e08c