Function at 0x1102fcb0
Capabilities:
Check os version
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x111da886
mov eax, dword fs:[0]
push eax
sub esp, 0x918
mov eax, dword [0x11279148]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
lea eax, [ebp - 0x428]
push eax
push edi
mov dword [ebp - 0x878], edi
mov dword [ebp - 0x868], ebx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [ebp - 0x420]
mov ecx, dword [ebp - 0x41c]
sub eax, dword [ebp - 0x428]
sub ecx, dword [ebp - 0x424]
mov dword [ebp - 0x86c], eax
mov dword [ebp - 0x870], ecx
test eax, eax
jle 0x11030336
test ecx, ecx
jle 0x11030336
push 0xffffffffffffffec
push edi
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov dword [ebp - 0x874], eax
test eax, 0x80000
jne 0x1102fd7b
cmp dword [ebx + 0x4c], 0
je 0x11030336
lea ecx, [ebp - 0x428]
push ecx
call dword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
push 4
mov esi, eax
mov eax, dword [ebx + 0x4c]
push esi
push eax
push eax
call dword [sym.imp.GDI32.dll_CombineRgn]
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
jmp 0x11030336
push 0x80
lea eax, [ebp - 0x110]
push eax
xor edx, edx
push edi
mov word [ebp - 0x110], dx
call dword [sym.imp.USER32.dll_GetClassNameW]
mov esi, dword [sym.imp.MSVCR100.dll__wcsicmp]
lea ecx, [ebp - 0x110]
push str.NSMBlankWnd
push ecx
call esi
add esp, 8
test eax, eax
je 0x11030336
lea edx, [ebp - 0x110]
push 0x111f93a8
push edx
call esi
add esp, 8
test eax, eax
je 0x11030336
push 0x80
lea ecx, [ebp - 0x418]
push ecx
xor eax, eax
push edi
mov word [ebp - 0x418], ax
call dword [sym.imp.USER32.dll_GetWindowTextW]
mov byte [ebp - 0x861], 0
mov ecx, str.tooltips_class32
lea eax, [ebp - 0x110]
lea ecx, [ecx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x1102fe26
test dx, dx
je 0x1102fe22
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x1102fe26
add eax, 4
add ecx, 4
test dx, dx
jne 0x1102fe00
xor eax, eax
jmp 0x1102fe2b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1102fe36
mov byte [ebp - 0x861], 1
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x1102fe5d
lea edx, [ebp - 0x428]
push edx
push eax
lea eax, [ebp - 0x438]
push eax
call dword [sym.imp.USER32.dll_IntersectRect]
test eax, eax
jne 0x1102fe5d
mov byte [ebp - 0x861], 1
lea edx, [ebp - 0x884]
xor ecx, ecx
push edx
push edi
mov word [ebp - 0x318], cx
lea esi, [ebp - 0x318]
mov dword [ebp - 0x884], ecx
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov eax, dword [ebp - 0x884]
test eax, eax
je 0x1102ffe6
cmp byte [ebp - 0x861], 0
jne 0x11030036
push eax
push 0
push 0x1000
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov ebx, eax
test ebx, ebx
je 0x1102fff1
lea eax, [ebp - 0x880]
push eax
mov ecx, esi
push ecx
push 0
push ebx
mov dword [ebp - 0x880], 0x104
call dword [sym.imp.KERNEL32.dll_QueryFullProcessImageNameW]
test eax, eax
je 0x1102ffd9
mov edx, esi
push 0x5c
push edx
call dword [sym.imp.MSVCR100.dll_wcsrchr]
add esp, 8
test eax, eax
je 0x1102feed
lea esi, [eax + 2]
push str.explorer.exe
push esi
call dword [sym.imp.MSVCR100.dll__wcsicmp]
mov edi, dword [sym.imp.KERNEL32.dll_GetVersion]
add esp, 8
test eax, eax
jne 0x1102ff4a
mov ecx, str.Button
lea eax, [ebp - 0x110]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x1102ff37
test dx, dx
je 0x1102ff33
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x1102ff37
add eax, 4
add ecx, 4
test dx, dx
jne 0x1102ff11
xor eax, eax
jmp 0x1102ff3c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1102ff4a
call edi
cmp al, 6
jae 0x1102ffcc
push str.explorer.exe
push esi
call dword [sym.imp.MSVCR100.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x1102ff9d
mov ecx, str.EdgeUiInputWndClass
lea eax, [ebp - 0x110]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x1102ff8e
test dx, dx
je 0x1102ff8a
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x1102ff8e
add eax, 4
add ecx, 4
test dx, dx
jne 0x1102ff68
xor eax, eax
jmp 0x1102ff93
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1102ff9d
call edi
cmp al, 6
jae 0x1102ffcc
push str.sidebar.exe
push esi
call dword [sym.imp.MSVCR100.dll__wcsicmp]
add esp, 8
test eax, eax
je 0x1102ffcc
mov ecx, dword [ebp - 0x868]
push esi
add ecx, 0x10
call fcn.1102f630
push eax
call fcn.11198bf0
add esp, 8
test eax, eax
je 0x1102ffd3
mov byte [ebp - 0x861], 1
mov edi, dword [ebp - 0x878]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ebx, dword [ebp - 0x868]
cmp byte [ebp - 0x861], 0
jne 0x11030036
jmp 0x1102fff7
mov ebx, dword [ebp - 0x868]
inc dword [ebx + 0xc]
cmp dword [ebx + 0x4c], 0
jne 0x11030012
lea eax, [ebp - 0x428]
push eax
call dword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
mov dword [ebx + 0x4c], eax
jmp 0x11030036
lea ecx, [ebp - 0x428]
push ecx
call dword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
push 2
mov esi, eax
mov eax, dword [ebx + 0x4c]
push esi
push eax
push eax
call dword [sym.imp.GDI32.dll_CombineRgn]
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
cmp dword [ebx + 8], 2
je 0x11030336
test byte [ebp - 0x874], 8
je 0x11030336
push edi
call dword [sym.imp.USER32.dll_GetDC]
lea edx, [ebp - 0x8a0]
mov edi, eax
xor eax, eax
push edx
push edi
mov dword [ebp - 0x8a0], eax
mov dword [ebp - 0x89c], eax
call dword [sym.imp.GDI32.dll_GetDCOrgEx]
mov bl, 0xff
lea ecx, [ebp - 0x924]
mov byte [ebp - 0x862], bl
call fcn.1102fb70
lea eax, [ebp - 0x88c]
push eax
mov eax, dword [ebp - 0x878]
lea ecx, [ebp - 0x862]
push ecx
lea edx, [ebp - 0x894]
push edx
push eax
lea ecx, [ebp - 0x924]
mov dword [ebp - 4], 0
call fcn.1102fbf0
test eax, eax
jne 0x110300c9
mov byte [ebp - 0x862], bl
mov dword [ebp - 0x88c], 2
jmp 0x110300d6
cmp byte [ebp - 0x862], 0
je 0x11030317
push edi
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov esi, eax
mov dword [ebp - 0x888], esi
test esi, esi
je 0x11030317
push 0xe
push edi
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
push 0xc
push edi
mov ebx, eax
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
imul ebx, eax
push 0x428
lea ecx, [ebp - 0x860]
push 0
push ecx
mov dword [ebp - 0x874], ebx
call sub.MSVCR100.dll_memset
mov eax, dword [ebp - 0x870]
mov edx, dword [ebp - 0x86c]
add esp, 0xc
mov dword [ebp - 0x858], eax
xor eax, eax
push eax
push eax
mov dword [ebp - 0x85c], edx
lea edx, [ebp - 0x890]
push edx
push eax
mov dword [ebp - 0x840], eax
mov dword [ebp - 0x850], eax
mov dword [ebp - 0x84c], eax
mov dword [ebp - 0x890], eax
lea eax, [ebp - 0x860]
push eax
mov ecx, 1
push esi
mov dword [ebp - 0x860], 0x28
mov word [ebp - 0x854], cx
mov word [ebp - 0x852], bx
call dword [sym.imp.GDI32.dll_CreateDIBSection]
mov dword [ebp - 0x880], eax
test eax, eax
je 0x11030310
mov dword [ebp - 0x87c], 0
jmp 0x110301a7
mov eax, dword [ebp - 0x880]
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov ecx, dword [ebp - 0x87c]
mov edx, dword [ebp - 0x870]
neg ecx
sbb ecx, ecx
and ecx, 0x40000000
add ecx, 0xcc0020
push ecx
push 0
push 0
push edi
push edx
mov dword [ebp - 0x898], eax
mov eax, dword [ebp - 0x86c]
push eax
push 0
push 0
push esi
call dword [sym.imp.GDI32.dll_BitBlt]
test eax, eax
je 0x110302df
call dword [sym.imp.GDI32.dll_GdiFlush]
mov eax, ebx
imul eax, dword [ebp - 0x86c]
add eax, 0x1f
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
add eax, eax
add eax, eax
cdq
and edx, 3
add eax, edx
sar eax, 2
imul eax, dword [ebp - 0x870]
xor ecx, ecx
test eax, eax
jle 0x110302df
mov edx, dword [ebp - 0x890]
cmp dword [edx + ecx*4], 0
jne 0x11030241
inc ecx
cmp ecx, eax
jl 0x11030231
jmp 0x110302df
xor ebx, ebx
test byte [ebp - 0x88c], 1
je 0x11030359
push str.msimg32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
mov dword [ebp - 0x8a4], esi
push str.TransparentBlt
push esi
mov byte [ebp - 4], 1
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x110302ac
mov ecx, dword [ebp - 0x894]
mov edx, dword [ebp - 0x86c]
push ecx
mov ecx, dword [ebp - 0x870]
push ecx
push edx
push ebx
push ebx
push edi
push ecx
mov ecx, dword [ebp - 0x428]
push edx
mov edx, dword [ebp - 0x424]
push edx
mov edx, dword [ebp - 0x868]
push ecx
mov ecx, dword [edx]
push ecx
call eax
mov ebx, eax
mov byte [ebp - 4], 0
test esi, esi
je 0x110302bb
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov esi, dword [ebp - 0x888]
test ebx, ebx
mov ebx, dword [ebp - 0x874]
je 0x110302df
mov edx, dword [ebp - 0x868]
mov byte [edx + 0x48], 1
mov dword [ebp - 0x87c], 2
mov eax, dword [ebp - 0x898]
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [ebp - 0x87c]
inc eax
mov dword [ebp - 0x87c], eax
cmp eax, 2
jl 0x110301a1
mov ecx, dword [ebp - 0x880]
push ecx
call dword [sym.imp.GDI32.dll_DeleteObject]
push esi
call dword [sym.imp.GDI32.dll_DeleteDC]
mov edx, dword [ebp - 0x878]
push edi
push edx
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [ebp - 0x924]
test eax, eax
je 0x11030336
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.111d9022
mov esp, ebp
pop ebp
ret 8
mov edx, dword [ebp - 0x870]
mov eax, dword [ebp - 0x86c]
mov ecx, dword [ebp - 0x424]
push 0xcc0020
push 0
push 0
push edi
push edx
mov edx, dword [ebp - 0x428]
push eax
mov eax, dword [ebp - 0x868]
push ecx
mov ecx, dword [eax]
push edx
push ecx
call dword [sym.imp.GDI32.dll_BitBlt]
mov ebx, eax
jmp 0x110302c1