Function at 0x100197e0
Capabilities:
Capture screenshot
Check os version
Extract resource via kernel32 functions
Hide graphical window

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100f7ce0
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x6b0
mov eax, dword [0x1013c014]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x6a4], ecx
cmp ecx, 2
jne 0x1001a36a
mov eax, dword [0x10158bbc]
test eax, eax
je 0x10019840
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov esi, dword [0x1014e914]
mov dword [0x10158bbc], 0
cmp dword [esi], 0
je 0x1001aa74
nop dword [eax]
cmp dword [esi + 4], 1
jne 0x10019879
push str.CustomTaskbar
push dword [esi]
call fcn.100dc721
add esp, 8
test eax, eax
je 0x10019886
add esi, 0x60
cmp dword [esi], 0
jne 0x10019860
jmp 0x1001aa74
mov edi, dword [sym.imp.KERNEL32.dll_AcquireSRWLockShared]
push 0x10158d3c
call edi
cmp word [esi + 0x38], 3
jne 0x100198a7
cmp dword [esi + 0x40], 1
mov byte [ebp - 0x686], 1
je 0x100198ae
mov byte [ebp - 0x686], 0
push 0x10158d3c
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockShared]
cmp byte [ebp - 0x686], 0
je 0x1001aa74
mov esi, dword [0x1014e914]
mov dword [0x10158bdc], 0
mov dword [0x10158bd4], 0
mov dword [0x10158bd8], 0
mov dword [0x10158bd0], 0
cmp dword [esi], 0
mov dword [0x10158bcc], 1
mov dword [0x10158bc8], 1
je 0x1001994c
nop dword [eax]
mov eax, dword [esi + 4]
cmp eax, 2
je 0x10019927
cmp eax, 3
je 0x10019927
cmp eax, 4
je 0x10019927
cmp eax, 5
jne 0x1001993e
push str.TaskbarLook
push dword [esi]
call fcn.100dc721
add esp, 8
test eax, eax
je 0x10019a4b
add esi, 0x60
cmp dword [esi], 0
jne 0x10019910
mov esi, dword [0x1014e914]
mov dword [ebp - 0x690], 0
cmp dword [esi], 0
je 0x1001999c
nop dword [eax + eax]
mov eax, dword [esi + 4]
cmp eax, 2
je 0x10019977
cmp eax, 3
je 0x10019977
cmp eax, 4
je 0x10019977
cmp eax, 5
jne 0x1001998e
push str.TaskbarOpacity
push dword [esi]
call fcn.100dc721
add esp, 8
test eax, eax
je 0x10019a71
add esi, 0x60
cmp dword [esi], 0
jne 0x10019960
mov esi, dword [0x1014e914]
mov byte [ebp - 0x685], 0
mov dword [ebp - 0x694], 0
cmp dword [ebp - 0x690], 0
jne 0x100199c7
mov dword [ebp - 0x694], 0x64
mov byte [ebp - 0x685], 1
cmp dword [esi], 0
je 0x10019a06
nop dword [eax]
mov eax, dword [esi + 4]
cmp eax, 2
je 0x100199e7
cmp eax, 3
je 0x100199e7
cmp eax, 4
je 0x100199e7
cmp eax, 5
jne 0x100199fe
push str.TaskbarColor
push dword [esi]
call fcn.100dc721
add esp, 8
test eax, eax
je 0x10019acf
add esi, 0x60
cmp dword [esi], 0
jne 0x100199d0
mov byte [ebp - 0x686], 0
xor edi, edi
mov edx, 0x1010b6c8
lea ecx, [ebp - 0x69c]
call fcn.100aa8e0
mov ecx, dword [eax]
mov esi, ecx
lea edx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x10019a26
sub esi, edx
sar esi, 1
cmp esi, 0x103
jle 0x10019b21
mov esi, 0x103
jmp 0x10019b25
push 0x10158d3c
call edi
mov eax, dword [esi + 0x40]
push 0x10158d3c
mov dword [ebp - 0x690], eax
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockShared]
mov esi, dword [0x1014e914]
jmp 0x10019956
push 0x10158d3c
call edi
mov eax, dword [esi + 0x30]
test eax, eax
je 0x10019a84
mov ecx, dword [eax + 0x20]
jmp 0x10019a87
mov ecx, dword [esi + 0x20]
shr ecx, 0xc
test cl, 1
je 0x10019aa9
test eax, eax
je 0x10019a98
mov eax, dword [eax + 0x20]
jmp 0x10019a9b
mov eax, dword [esi + 0x20]
shr eax, 0xd
mov byte [ebp - 0x685], 1
test al, 1
je 0x10019ab0
mov byte [ebp - 0x685], 0
mov eax, dword [esi + 0x40]
push 0x10158d3c
mov dword [ebp - 0x694], eax
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockShared]
mov esi, dword [0x1014e914]
jmp 0x100199ad
push 0x10158d3c
call edi
mov eax, dword [esi + 0x30]
test eax, eax
je 0x10019ae2
mov ecx, dword [eax + 0x20]
jmp 0x10019ae5
mov ecx, dword [esi + 0x20]
shr ecx, 0xc
test cl, 1
je 0x10019b07
test eax, eax
je 0x10019af6
mov eax, dword [eax + 0x20]
jmp 0x10019af9
mov eax, dword [esi + 0x20]
shr eax, 0xd
mov byte [ebp - 0x686], 1
test al, 1
je 0x10019b0e
mov byte [ebp - 0x686], 0
mov edi, dword [esi + 0x40]
push 0x10158d3c
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockShared]
jmp 0x10019a0f
test esi, esi
jle 0x10019b3e
movzx eax, word [ecx + esi*2]
mov edx, 0xdc00
cmp ax, dx
jb 0x10019b3e
mov edx, 0xdfff
cmp ax, dx
ja 0x10019b3e
dec esi
add esi, esi
lea eax, [ebp - 0x220]
push esi
push ecx
push eax
call fcn.100d7080
mov edx, dword [ebp - 0x69c]
xor eax, eax
add esp, 0xc
mov word [ebp + esi - 0x220], ax
add edx, 0xfffffff0
mov dword [ebp - 4], eax
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10019b7c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x104
lea eax, [ebp - 0x220]
mov dword [ebp - 4], 0xffffffff
push eax
call dword [sym.imp.SHELL32.dll_DoEnvironmentSubstW]
cmp word [ebp - 0x220], 0
je 0x10019e0e
sub esp, 8
lea edx, [ebp - 0x220]
call fcn.10014b20
mov esi, dword [0x1014e914]
add esp, 8
mov dword [0x10158bbc], eax
cmp dword [esi], 0
je 0x10019c00
mov eax, dword [esi + 4]
cmp eax, 2
je 0x10019bdb
cmp eax, 3
je 0x10019bdb
cmp eax, 4
je 0x10019bdb
cmp eax, 5
jne 0x10019bf2
push str.TaskbarTileH
push dword [esi]
call fcn.100dc721
add esp, 8
test eax, eax
je 0x10019d13
add esi, 0x60
cmp dword [esi], 0
jne 0x10019bc4
mov esi, dword [0x1014e914]
xor edi, edi
cmp dword [esi], 0
mov dword [0x10158bc8], edi
je 0x10019c46
nop dword [eax]
mov eax, dword [esi + 4]
cmp eax, 2
je 0x10019c27
cmp eax, 3
je 0x10019c27
cmp eax, 4
je 0x10019c27
cmp eax, 5
jne 0x10019c3e
push str.TaskbarTileV
push dword [esi]
call fcn.100dc721
add esp, 8
test eax, eax
je 0x10019d37
add esi, 0x60
cmp dword [esi], 0
jne 0x10019c10
xor esi, esi
cmp dword [0x10158bc8], 1
mov dword [0x10158bcc], esi
jne 0x10019d55
mov edx, str.TaskbarBordersH
lea ecx, [ebp - 0x68c]
call fcn.100aa8e0
mov eax, dword [ebp - 0x68c]
cmp dword [eax - 0xc], 0
je 0x10019ce3
push 0x1010b740
push 0x100
lea edx, [ebp - 0x420]
mov ecx, eax
call fcn.100a49c0
mov esi, eax
lea eax, [ebp - 0x420]
push eax
call fcn.100ddeea
add esp, 0xc
lea edx, [ebp - 0x420]
xor ecx, ecx
test eax, eax
cmovs eax, ecx
mov ecx, esi
push 0x1010b740
push 0x100
mov dword [0x10158bd0], eax
call fcn.100a49c0
lea eax, [ebp - 0x420]
push eax
call fcn.100ddeea
xor ecx, ecx
add esp, 0xc
test eax, eax
cmovs eax, ecx
mov dword [0x10158bd8], eax
mov eax, dword [ebp - 0x68c]
lea edx, [eax - 0x10]
or edi, 0xffffffff
mov dword [ebp - 4], 1
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10019d04
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov esi, dword [0x10158bcc]
jmp 0x10019d58
push 0x10158d3c
call dword [sym.imp.KERNEL32.dll_AcquireSRWLockShared]
mov edi, dword [esi + 0x40]
push 0x10158d3c
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockShared]
mov esi, dword [0x1014e914]
jmp 0x10019c02
push 0x10158d3c
call dword [sym.imp.KERNEL32.dll_AcquireSRWLockShared]
mov esi, dword [esi + 0x40]
push 0x10158d3c
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockShared]
jmp 0x10019c48
or edi, 0xffffffff
cmp esi, 1
jne 0x10019f0f
mov edx, str.TaskbarBordersV
lea ecx, [ebp - 0x698]
call fcn.100aa8e0
mov eax, dword [ebp - 0x698]
cmp dword [eax - 0xc], 0
je 0x10019de9
push 0x1010b740
push 0x100
lea edx, [ebp - 0x620]
mov ecx, eax
call fcn.100a49c0
mov esi, eax
lea eax, [ebp - 0x620]
push eax
call fcn.100ddeea
add esp, 0xc
lea edx, [ebp - 0x620]
xor ecx, ecx
test eax, eax
cmovs eax, ecx
mov ecx, esi
push 0x1010b740
push 0x100
mov dword [0x10158bd4], eax
call fcn.100a49c0
lea eax, [ebp - 0x620]
push eax
call fcn.100ddeea
xor ecx, ecx
add esp, 0xc
test eax, eax
cmovs eax, ecx
mov dword [0x10158bdc], eax
mov eax, dword [ebp - 0x698]
lea edx, [eax - 0x10]
mov dword [ebp - 4], 2
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x10019f0f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x10019f0f
call fcn.100b0560
mov ecx, 0xa00
cmp ax, cx
jae 0x10019f0f
cmp byte [ebp - 0x686], 0
je 0x10019e62
cmp byte [ebp - 0x685], 0
jne 0x10019f0f
call fcn.100b0560
mov ecx, 0x601
cmp ax, cx
jbe 0x10019e62
call fcn.1009dec0
mov ecx, eax
shr ecx, 0x10
movzx edi, cl
movzx ecx, al
and eax, 0xff00
shl ecx, 0x10
or edi, ecx
or edi, eax
xorps xmm0, xmm0
mov dword [ebp - 0x664], 0x28
movups xmmword [ebp - 0x660], xmm0
push 0
movups xmmword [ebp - 0x650], xmm0
mov dword [ebp - 0x65c], 0x20
movq qword [ebp - 0x640], xmm0
mov dword [ebp - 0x660], 0x20
mov dword [ebp - 0x658], 0x200001
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push 0
mov esi, eax
lea eax, [ebp - 0x6a0]
push 0
push eax
push 0
lea eax, [ebp - 0x664]
push eax
push esi
call dword [sym.imp.GDI32.dll_CreateDIBSection]
mov dword [0x10158bbc], eax
test eax, eax
je 0x10019f08
mov ecx, dword [ebp - 0x660]
mov eax, edi
imul ecx, dword [ebp - 0x65c]
shr eax, 0x10
movzx edx, al
mov eax, edi
or eax, 0xffffff00
and edi, 0xff00
shl eax, 0x10
or edx, eax
or edx, edi
test ecx, ecx
jle 0x10019f08
mov edi, dword [ebp - 0x6a0]
mov eax, edx
rep stosd dword es:[edi], eax
push esi
call dword [sym.imp.GDI32.dll_DeleteDC]
mov eax, dword [0x10158bbc]
test eax, eax
je 0x1001a2fe
lea ecx, [ebp - 0x638]
push ecx
push 0x18
push eax
call dword [sym.imp.GDI32.dll_GetObjectW]
cmp dword [ebp - 0x690], 0
mov esi, 0xff
mov dword [ebp - 0x69c], 0
je 0x10019f79
lea eax, [ebp - 0x69c]
push eax
call dword [sym.imp.dwmapi.dll_DwmIsCompositionEnabled]
test eax, eax
js 0x10019f79
cmp dword [ebp - 0x69c], 0
je 0x10019f79
imul ecx, dword [ebp - 0x694], 0xff
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov esi, edx
shr esi, 0x1f
add esi, edx
xor eax, eax
test esi, esi
cmovns eax, esi
mov dword [ebp - 0x698], eax
movd xmm0, eax
pshufd xmm6, xmm0, 0
cmp eax, 0xff
jge 0x1001a0fe
mov edi, dword [ebp - 0x62c]
xor ecx, ecx
imul edi, dword [ebp - 0x630]
mov esi, dword [ebp - 0x624]
test edi, edi
jle 0x1001a0fe
cmp edi, 8
jb 0x1001a0ce
cmp dword [0x1014ad70], 2
jl 0x1001a0ce
mov eax, edi
and eax, reloc.OLEAUT32.dll_VariantInit
jns 0x10019fdb
dec eax
or eax, 0xfffffff8
inc eax
movaps xmm3, xmmword [0x10123b10]
mov edx, edi
sub edx, eax
mov eax, 7
movd xmm4, eax
mov eax, 0x1f
movd xmm5, eax
nop dword [eax + eax]
movd xmm0, dword [esi]
add ecx, 8
pmovzxbd xmm1, xmm0
pmulld xmm1, xmm6
movaps xmm2, xmm1
movaps xmm0, xmm1
punpckhdq xmm0, xmm1
pmuldq xmm0, xmm3
punpckldq xmm2, xmm1
pmuldq xmm2, xmm3
shufps xmm2, xmm0, 0xdd
paddd xmm2, xmm1
psrad xmm2, xmm4
movaps xmm0, xmm2
psrld xmm0, xmm5
paddd xmm0, xmm2
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
pand xmm0, xmmword [0x10123ad0]
packuswb xmm0, xmm0
movd dword [esi], xmm0
movd xmm0, dword [esi + 4]
pmovzxbd xmm1, xmm0
pmulld xmm1, xmm6
movaps xmm2, xmm1
movaps xmm0, xmm1
punpckhdq xmm0, xmm1
pmuldq xmm0, xmm3
punpckldq xmm2, xmm1
pmuldq xmm2, xmm3
shufps xmm2, xmm0, 0xdd
paddd xmm2, xmm1
psrad xmm2, xmm4
movaps xmm0, xmm2
psrld xmm0, xmm5
paddd xmm0, xmm2
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
pand xmm0, xmmword [0x10123ad0]
packuswb xmm0, xmm0
movd dword [esi + 4], xmm0
add esi, 8
cmp ecx, edx
jl 0x1001a000
mov eax, dword [ebp - 0x698]
cmp ecx, edi
jge 0x1001a0fe
sub edi, ecx
movzx ecx, byte [esi]
lea esi, [esi + 1]
imul ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esi - 1], al
mov eax, dword [ebp - 0x698]
sub edi, 1
jne 0x1001a0d4
cmp dword [0x10158bc8], 0
mov ecx, dword [ebp - 0x634]
mov edi, dword [ebp - 0x630]
mov dword [0x10158bc0], ecx
mov dword [0x10158bc4], edi
jne 0x1001a132
lea eax, [ecx + 0xff]
cdq
idiv ecx
mov esi, eax
mov dword [ebp - 0x694], eax
jmp 0x1001a13d
mov esi, 1
mov dword [ebp - 0x694], esi
cmp dword [0x10158bcc], 0
jne 0x1001a159
lea eax, [edi + 0xff]
cdq
idiv edi
mov ecx, eax
mov dword [ebp - 0x68c], eax
jmp 0x1001a164
mov ecx, 1
mov dword [ebp - 0x68c], ecx
cmp esi, 1
jg 0x1001a172
cmp ecx, 1
jle 0x1001a2fe
mov eax, esi
imul ecx, edi
imul eax, dword [ebp - 0x634]
xorps xmm0, xmm0
movups xmmword [ebp - 0x660], xmm0
push 0
movups xmmword [ebp - 0x650], xmm0
mov dword [ebp - 0x664], 0x28
movq qword [ebp - 0x640], xmm0
mov dword [ebp - 0x660], eax
mov dword [ebp - 0x65c], ecx
mov dword [ebp - 0x658], 0x200001
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov edi, eax
push edi
mov dword [ebp - 0x698], edi
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push 0
push 0
mov dword [ebp - 0x690], eax
lea eax, [ebp - 0x6ac]
push eax
push 0
lea eax, [ebp - 0x664]
push eax
push edi
call dword [sym.imp.GDI32.dll_CreateDIBSection]
mov dword [ebp - 0x6a8], eax
test eax, eax
je 0x1001a2ed
push eax
push edi
mov edi, dword [sym.imp.GDI32.dll_SelectObject]
call edi
push dword [0x10158bbc]
mov dword [ebp - 0x6a4], eax
push dword [ebp - 0x690]
call edi
xor edi, edi
mov dword [ebp - 0x6a0], eax
cmp dword [ebp - 0x68c], edi
jle 0x1001a297
mov eax, dword [ebp - 0x694]
mov ecx, dword [ebp - 0x68c]
xor esi, esi
test eax, eax
jle 0x1001a286
nop dword [eax]
mov ecx, dword [ebp - 0x630]
mov eax, edi
mov edx, dword [ebp - 0x634]
push 0xcc0020
push 0
push 0
push dword [ebp - 0x690]
imul eax, ecx
push ecx
push edx
push eax
mov eax, esi
imul eax, edx
push eax
push dword [ebp - 0x698]
call dword [sym.imp.GDI32.dll_BitBlt]
mov eax, dword [ebp - 0x694]
inc esi
cmp esi, eax
jl 0x1001a240
mov ecx, dword [ebp - 0x68c]
inc edi
cmp edi, ecx
jl 0x1001a237
mov esi, dword [ebp - 0x694]
mov eax, dword [ebp - 0x6a0]
push eax
push dword [ebp - 0x690]
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [ebp - 0x6a4]
mov edi, dword [ebp - 0x698]
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [0x10158bbc]
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [ebp - 0x6a8]
imul esi, dword [0x10158bc0]
mov dword [0x10158bbc], eax
mov eax, dword [ebp - 0x68c]
imul eax, dword [0x10158bc4]
mov dword [0x10158bc0], esi
mov dword [0x10158bc4], eax
push dword [ebp - 0x690]
mov esi, dword [sym.imp.GDI32.dll_DeleteDC]
call esi
push edi
call esi
mov eax, dword [0x1014be48]
mov esi, dword [eax]
cmp esi, eax
je 0x1001aa74
mov edi, dword [sym.imp.USER32.dll_RedrawWindow]
push 0x81
push 0
push 0
push dword [esi + 0x18]
call edi
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
je 0x1001a347
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x1001a343
cmp esi, dword [eax + 8]
jne 0x1001a343
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x1001a333
mov esi, eax
jmp 0x1001a35d
mov esi, eax
mov ecx, dword [esi]
cmp byte [ecx + 0xd], 0
jne 0x1001a35d
mov eax, dword [ecx]
mov esi, ecx
mov ecx, eax
cmp byte [eax + 0xd], 0
je 0x1001a351
cmp esi, dword [0x1014be48]
jne 0x1001a313
jmp 0x1001aa74
xor al, al
mov byte [ebp - 0x685], 0
mov byte [ebp - 0x686], al
mov byte [ebp - 0x687], al
test ecx, ecx
jne 0x1001a3a2
mov eax, dword [0x10158bbc]
test eax, eax
je 0x1001a393
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov dword [0x10158bbc], 0
jmp 0x1001a454
mov esi, dword [0x1014e914]
mov edi, dword [sym.imp.KERNEL32.dll_AcquireSRWLockShared]
cmp dword [esi], 0
je 0x1001a3de
cmp dword [esi + 4], 1
jne 0x1001a3d0
push str.EnableStartButton
push dword [esi]
call fcn.100dc721
add esp, 8
test eax, eax
je 0x1001a4ae
add esi, 0x60
cmp dword [esi], 0
jne 0x1001a3b3
mov esi, dword [0x1014e914]
mov byte [ebp - 0x685], 0
cmp dword [esi], 0
je 0x1001a41b
nop word [eax + eax]
cmp dword [esi + 4], 1
jne 0x1001a40d
push str.CustomTaskbar
push dword [esi]
call fcn.100dc721
add esp, 8
test eax, eax
je 0x1001a4e6
add esi, 0x60
cmp dword [esi], 0
jne 0x1001a3f0
mov esi, dword [0x1014e914]
xor al, al
mov byte [ebp - 0x686], al
cmp dword [esi], 0
je 0x1001a44d
cmp dword [esi + 4], 1
jne 0x1001a445
push str.AllTaskbars
push dword [esi]
call fcn.100dc721
add esp, 8
test eax, eax
je 0x1001a521
add esi, 0x60
cmp dword [esi], 0
jne 0x1001a428
mov byte [ebp - 0x687], 0
movzx edx, byte [ebp - 0x685]
xor eax, eax
cmp byte [0x10158b9c], al
cmovne edx, eax
mov eax, dword [0x1014be48]
mov dword [ebp - 0x694], edx
mov esi, dword [eax]
mov dword [ebp - 0x68c], esi
cmp esi, eax
je 0x1001a9f4
mov edi, dword [sym.imp.USER32.dll_ShowWindow]
test dl, dl
je 0x1001a553
cmp byte [ebp - 0x687], 0
jne 0x1001a4a7
mov eax, dword [esi + 0x18]
cmp eax, dword [sym.ExplorerShellDLL32.dll_struct_HWND____g_TaskBar]
jne 0x1001a553
mov al, 1
jmp 0x1001a555
push 0x10158d3c
call edi
cmp word [esi + 0x38], 3
jne 0x1001a4c9
cmp dword [esi + 0x40], 1
mov byte [ebp - 0x685], 1
je 0x1001a4d0
mov byte [ebp - 0x685], 0
push 0x10158d3c
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockShared]
mov esi, dword [0x1014e914]
jmp 0x1001a3e5
push 0x10158d3c
call edi
cmp word [esi + 0x38], 3
jne 0x1001a503
cmp dword [esi + 0x40], 1
jne 0x1001a503
mov byte [ebp - 0x686], 1
jmp 0x1001a50b
xor al, al
mov byte [ebp - 0x686], al
push 0x10158d3c
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockShared]
mov esi, dword [0x1014e914]
jmp 0x1001a423
push 0x10158d3c
call edi
cmp word [esi + 0x38], 3
jne 0x1001a53c
cmp dword [esi + 0x40], 1
mov byte [ebp - 0x687], 1
je 0x1001a543
mov byte [ebp - 0x687], 0
push 0x10158d3c
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockShared]
jmp 0x1001a454
xor al, al
mov ecx, dword [esi + 0x20]
mov byte [ebp - 0x685], al
test ecx, ecx
je 0x1001a5f8
test dl, dl
je 0x1001a5e1
test al, al
jne 0x1001a5e1
lea eax, [ebp - 0x674]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [ebp - 0x66c]
sub eax, dword [ebp - 0x674]
mov dword [esi + 0x3c], eax
mov eax, dword [ebp - 0x668]
sub eax, dword [ebp - 0x670]
mov dword [esi + 0x40], eax
lea eax, [ebp - 0x684]
push eax
push dword [esi + 0x18]
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [ebp - 0x678]
sub eax, dword [ebp - 0x680]
movzx ecx, ax
mov eax, dword [ebp - 0x67c]
sub eax, dword [ebp - 0x684]
shl ecx, 0x10
movzx eax, ax
or ecx, eax
push ecx
push 0
push 5
push dword [esi + 0x18]
call dword [sym.imp.USER32.dll_PostMessageW]
mov edx, dword [ebp - 0x694]
cmp byte [esi + 0x4b], dl
je 0x1001a5f8
mov byte [esi + 0x4b], dl
test dl, dl
je 0x1001a5f1
push 0
jmp 0x1001a5f3
push 5
push dword [esi + 0x20]
call edi
mov al, byte [ebp - 0x685]
cmp byte [esi + 0x4a], al
je 0x1001a86f
mov byte [esi + 0x4a], al
test al, al
je 0x1001a740
mov ecx, dword [esi + 0x10]
call fcn.1001c480
mov eax, dword [0x10158af4]
test eax, eax
je 0x1001a884
push 0
push eax
call edi
push 0
push 0x434c5348
push 0x10016e10
push dword [0x10158af4]
call dword [sym.imp.COMCTL32.dll_SetWindowSubclass]
mov cx, word [0x10159320]
test cx, cx
jne 0x1001a66f
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov ecx, eax
movzx eax, al
shr ecx, 8
movzx ecx, cl
shl ax, 8
or cx, ax
mov word [0x10159320], cx
mov eax, 0x601
cmp cx, ax
jne 0x1001a72c
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov edi, eax
xor esi, esi
mov dword [ebp - 0x690], edi
nop
push 2
lea ecx, [esi + 0x1a91]
movzx ecx, cx
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_FindResourceW]
test eax, eax
je 0x1001a716
push eax
push edi
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x1001a716
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
test edi, edi
je 0x1001a710
mov eax, dword [edi + 4]
test eax, eax
je 0x1001a710
movzx ecx, word [edi + 8]
movzx eax, ax
shl ecx, 0x10
or ecx, eax
lea eax, [ebp - 0x69c]
push eax
push 4
push 0x28
push edi
mov dword [esi*4 + 0x10158b64], ecx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
lea eax, [ebp - 0x69c]
mov dword [edi + 4], 0
push eax
push dword [ebp - 0x69c]
mov dword [edi + 8], 0
push 0x28
push edi
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov edi, dword [ebp - 0x690]
inc esi
cmp esi, 0xc
jb 0x1001a690
mov esi, dword [ebp - 0x68c]
mov edi, dword [sym.imp.USER32.dll_ShowWindow]
push 0
push 0
push 0x1a
push dword [esi + 0x18]
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x1001a884
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x1001a75e
cmp eax, dword [0x10158af4]
je 0x1001a75e
push eax
call dword [sym.imp.ole32.dll_RevokeDragDrop]
mov ecx, dword [esi + 0x14]
call fcn.10011fb0
mov eax, dword [esi + 0x18]
xor ecx, ecx
cmp eax, dword [sym.ExplorerShellDLL32.dll_struct_HWND____g_TaskBar]
mov eax, dword [0x10158af4]
cmove ecx, eax
mov dword [esi + 0x38], 0
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x34], 0
test eax, eax
je 0x1001a884
cmp eax, ecx
jne 0x1001a884
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov esi, eax
xor edi, edi
nop
push 2
lea ecx, [edi + 0x1a91]
movzx ecx, cx
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceW]
test eax, eax
je 0x1001a822
push eax
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x1001a822
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov dword [ebp - 0x6a8], eax
test eax, eax
je 0x1001a822
cmp dword [edi*4 + 0x10158b64], 0
je 0x1001a822
lea ecx, [ebp - 0x698]
push ecx
push 4
push 0x28
push eax
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov ecx, dword [ebp - 0x6a8]
movzx eax, word [edi*4 + 0x10158b64]
mov dword [ecx + 4], eax
movzx eax, word [edi*4 + 0x10158b66]
mov dword [ecx + 8], eax
lea eax, [ebp - 0x698]
push eax
push dword [ebp - 0x698]
push 0x28
push ecx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
inc edi
cmp edi, 0xc
jb 0x1001a7a0
push 0x434c5348
push 0x10016e10
push dword [0x10158af4]
call dword [sym.imp.COMCTL32.dll_RemoveWindowSubclass]
push 0
push 0
push 0x31a
push dword [0x10158af4]
call dword [sym.imp.USER32.dll_SendMessageW]
mov edi, dword [sym.imp.USER32.dll_ShowWindow]
push 5
push dword [0x10158af4]
call edi
mov esi, dword [ebp - 0x68c]
jmp 0x1001a884
cmp dword [ebp - 0x6a4], 3
jne 0x1001a884
test al, al
je 0x1001a884
mov ecx, dword [esi + 0x10]
call fcn.1001c480
mov al, byte [ebp - 0x686]
cmp byte [esi + 0x49], al
je 0x1001a98b
mov byte [esi + 0x49], al
test al, al
jne 0x1001a98b
cmp word [0x10159320], 0
jne 0x1001a8c7
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov ecx, eax
movzx eax, al
shr ecx, 8
movzx ecx, cl
shl ax, 8
or cx, ax
mov word [0x10159320], cx
mov ax, word [0x10159320]
mov ecx, 0xa00
cmp ax, cx
jae 0x1001a98b
mov dword [ebp - 0x6bc], 1
test ax, ax
jne 0x1001a909
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov ecx, eax
movzx eax, al
shr ecx, 8
movzx ecx, cl
shl ax, 8
or cx, ax
mov word [0x10159320], cx
mov eax, 0x602
xorps xmm0, xmm0
cmp word [0x10159320], ax
movq qword [ebp - 0x6b4], xmm0
sbb eax, eax
neg eax
mov dword [ebp - 0x6b8], eax
lea eax, [ebp - 0x6bc]
push eax
push dword [esi + 0x18]
call dword [sym.imp.dwmapi.dll_DwmEnableBlurBehindWindow]
cmp word [0x10159320], 0
jne 0x1001a963
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov ecx, eax
movzx eax, al
shr ecx, 8
movzx ecx, cl
shl ax, 8
or cx, ax
mov word [0x10159320], cx
mov eax, 0x601
cmp word [0x10159320], ax
jne 0x1001a98b
lea eax, [ebp - 0x630]
xorps xmm0, xmm0
push eax
push dword [esi + 0x18]
movups xmmword [ebp - 0x630], xmm0
call dword [sym.imp.dwmapi.dll_DwmExtendFrameIntoClientArea]
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
je 0x1001a9ba
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x1001a9b0
nop dword [eax]
cmp esi, dword [eax + 8]
jne 0x1001a9b0
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x1001a9a0
mov esi, eax
mov dword [ebp - 0x68c], esi
jmp 0x1001a9e2
mov esi, eax
mov dword [ebp - 0x68c], esi
mov ecx, dword [esi]
cmp byte [ecx + 0xd], 0
jne 0x1001a9e2
nop word [eax + eax]
mov eax, dword [ecx]
mov esi, ecx
mov dword [ebp - 0x68c], esi
mov ecx, eax
cmp byte [eax + 0xd], 0
je 0x1001a9d0
mov edx, dword [ebp - 0x694]
cmp esi, dword [0x1014be48]
jne 0x1001a487
mov eax, dword [0x1014be48]
mov esi, dword [eax]
cmp esi, eax
je 0x1001aa74
mov edi, dword [sym.imp.USER32.dll_InvalidateRect]
push 0
push 0
push 0x1a
push dword [esi + 0x18]
call dword [sym.imp.USER32.dll_SendMessageW]
push 1
push 0
push dword [esi + 0x18]
call edi
push 0
push 0
push 0x31a
push dword [esi + 0x18]
call dword [sym.imp.USER32.dll_PostMessageW]
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
je 0x1001aa55
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x1001aa51
cmp esi, dword [eax + 8]
jne 0x1001aa51
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x1001aa41
mov esi, eax
jmp 0x1001aa6c
mov esi, eax
mov ecx, dword [esi]
cmp byte [ecx + 0xd], 0
jne 0x1001aa6c
nop
mov eax, dword [ecx]
mov esi, ecx
mov ecx, eax
cmp byte [eax + 0xd], 0
je 0x1001aa60
cmp esi, dword [0x1014be48]
jne 0x1001aa05
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.100d4906
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret