Function at 0x44a850
Capabilities:
Access peb ldr_data
Check for peb ntglobalflag flag
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5106e8
mov eax, dword fs:[0]
push eax
sub esp, 0x70
mov eax, dword [0x573be0]
xor eax, esp
mov dword [esp + 0x68], eax
push ebx
push esi
push edi
mov eax, dword [0x573be0]
xor eax, esp
push eax
lea eax, [esp + 0x80]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x28], ebx
mov eax, dword [0x574ba4]
mov ecx, 0x574ba4
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x20], eax
mov dword [esp + 0x88], 0
mov eax, dword [ebx + 0x7c]
mov esi, dword [ebx + 4]
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 0x80]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x30]
push eax
push esi
mov dword [esp + 0x2c], esi
call dword [sym.imp.USER32.dll_GetWindowRect]
push esi
call dword [sym.imp.USER32.dll_GetDC]
push 0xffffffffffffffec
push dword [ebx + 4]
mov edi, eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
test eax, 0x80000
jne 0x44a8ff
or eax, 0x80000
push eax
push 0xffffffffffffffec
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_SetWindowLongW]
cmp dword [ebx + 0x48], 0
jne 0x44aa06
mov eax, dword [ebx + 0x4c]
test eax, eax
je 0x44a917
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [ebx + 0x50]
test eax, eax
je 0x44a925
push eax
call dword [sym.imp.GDI32.dll_DeleteDC]
mov eax, dword [ebx + 0x54]
test eax, eax
je 0x44a933
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esp + 0x38]
sub eax, dword [esp + 0x30]
xorps xmm0, xmm0
movq qword [esp + 0x54], xmm0
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x3c]
movq qword [esp + 0x5c], xmm0
push 0
movq qword [esp + 0x68], xmm0
movq qword [esp + 0x70], xmm0
mov dword [esp + 0x78], 0
mov dword [esp + 0x54], 0x28
mov dword [esp + 0x60], 0x200001
mov dword [esp + 0x64], 0
mov dword [esp + 0x5c], eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push 0
push 0
lea ecx, [ebx + 0x58]
push ecx
push 0
lea ecx, [esp + 0x60]
push ecx
push eax
mov dword [ebx + 0x48], eax
call dword [sym.imp.GDI32.dll_CreateDIBSection]
push eax
push dword [ebx + 0x48]
mov dword [ebx + 0x4c], eax
call dword [sym.imp.GDI32.dll_SelectObject]
cmp byte [ebx + 0x9c], 0
je 0x44a9ea
push edi
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push 0
push 0
mov dword [ebx + 0x50], eax
lea eax, [ebx + 0x5c]
push eax
push 0
lea eax, [esp + 0x60]
push eax
push edi
call dword [sym.imp.GDI32.dll_CreateDIBSection]
push eax
push dword [ebx + 0x50]
mov dword [ebx + 0x54], eax
call dword [sym.imp.GDI32.dll_SelectObject]
push edi
push esi
call dword [sym.imp.USER32.dll_ReleaseDC]
cmp dword [ebx + 0x60], 0
jne 0x44aa06
push 0xc
push dword [ebx + 0x48]
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
mov dword [ebx + 0x60], eax
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
sub edi, dword [esp + 0x30]
sub esi, dword [esp + 0x34]
cmp dword [esp + 0x1c], 0
mov dword [esp + 0x2c], edi
mov dword [esp + 0x18], esi
je 0x44acaf
cmp dword [esp + 0x14], 0
je 0x44acaf
lea eax, [esp + 0x40]
push eax
push dword [esp + 0x28]
call dword [sym.imp.USER32.dll_GetClientRect]
cmp dword [ebx + 0x60], 0x20
jne 0x44ad37
imul esi, edi
shl esi, 2
cmp byte [ebx + 0x9c], 0
push esi
push 0
push dword [ebx + 0x58]
jne 0x44aaf1
call fcn.004eee10
add esp, 0xc
lea eax, [esp + 0x40]
push eax
push dword [ebx + 0x48]
push 0x20
push dword [esp + 0x20]
call dword [sym.imp.ole32.dll_OleDraw]
test eax, eax
jns 0x44acaf
push eax
lea eax, [esp + 0x24]
push str.setWindowShape_OleDraw_A__x
push eax
call fcn.00421610
add esp, 0xc
lea ecx, [esp + 0x14]
push str.setWindowShape
call fcn.004204a0
mov byte [esp + 0x88], 1
mov eax, dword [0x574ba4]
mov ecx, 0x574ba4
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x18], eax
lea eax, [esp + 0x20]
push eax
lea edx, [esp + 0x1c]
lea ecx, [esp + 0x20]
mov byte [esp + 0x8c], 2
call fcn.00421890
add esp, 4
mov byte [esp + 0x88], 3
jmp 0x44ac00
call fcn.004eee10
add esp, 0xc
push esi
push 0xff
push dword [ebx + 0x5c]
call fcn.004eee10
mov esi, dword [esp + 0x20]
mov edi, dword [sym.imp.ole32.dll_OleDraw]
add esp, 0xc
lea eax, [esp + 0x40]
push eax
push dword [ebx + 0x48]
push 0x20
push esi
call edi
test eax, eax
jns 0x44ab89
push eax
lea eax, [esp + 0x24]
push str.setWindowShape_OleDraw_B__x
push eax
call fcn.00421610
add esp, 0xc
lea ecx, [esp + 0x14]
push str.setWindowShape
call fcn.004204a0
mov byte [esp + 0x88], 4
mov eax, dword [0x574ba4]
mov ecx, 0x574ba4
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x18], eax
lea eax, [esp + 0x20]
push eax
lea edx, [esp + 0x1c]
lea ecx, [esp + 0x20]
mov byte [esp + 0x8c], 5
call fcn.00421890
add esp, 4
mov byte [esp + 0x88], 6
jmp 0x44ac00
lea eax, [esp + 0x40]
push eax
push dword [ebx + 0x50]
push 0x20
push esi
call edi
test eax, eax
jns 0x44ac37
push eax
lea eax, [esp + 0x24]
push str.setWindowShape_OleDraw_C__x
push eax
call fcn.00421610
add esp, 0xc
lea ecx, [esp + 0x14]
push str.setWindowShape
call fcn.004204a0
mov byte [esp + 0x88], 7
mov eax, dword [0x574ba4]
mov ecx, 0x574ba4
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x18], eax
lea eax, [esp + 0x20]
push eax
lea edx, [esp + 0x1c]
lea ecx, [esp + 0x20]
mov byte [esp + 0x8c], 8
call fcn.00421890
add esp, 4
mov byte [esp + 0x88], 9
cmp dword [ebx + 0x34], 0
je 0x44ac17
push 2
push eax
lea eax, [esp + 0x1c]
push eax
lea eax, [ebx + 0x30]
push eax
call fcn.004219a0
lea ecx, [esp + 0x1c]
call fcn.004205e0
lea ecx, [esp + 0x18]
call fcn.004205e0
lea ecx, [esp + 0x14]
call fcn.004205e0
jmp 0x44aced
mov eax, dword [esp + 0x18]
mov esi, dword [ebx + 0x58]
mov edi, dword [ebx + 0x5c]
test eax, eax
jle 0x44acaf
mov ecx, dword [esp + 0x2c]
lea esp, [esp]
test ecx, ecx
jle 0x44aca4
mov dword [esp + 0x14], ecx
mov ah, byte [esi + 2]
mov al, byte [edi + 2]
mov cl, byte [esi]
mov dl, byte [esi + 1]
mov dh, byte [edi]
mov bl, byte [edi + 1]
sub dh, cl
sub al, ah
movzx ecx, al
sub bl, dl
movzx eax, bl
add ecx, eax
movzx eax, dh
add ecx, eax
mov eax, 0x55555556
imul ecx
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
or al, 0xff
add esi, 4
sub al, cl
add edi, 4
dec dword [esp + 0x14]
mov byte [esi - 1], al
jne 0x44ac58
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
dec eax
mov dword [esp + 0x18], eax
jne 0x44ac50
mov ebx, dword [esp + 0x28]
mov eax, dword [ebx + 0x44]
test eax, eax
je 0x44acc4
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov dword [ebx + 0x44], 0
push dword [ebx + 0x4c]
call fcn.0044c0f0
push 1
push eax
push dword [ebx + 4]
mov dword [ebx + 0x44], eax
call dword [sym.imp.USER32.dll_SetWindowRgn]
push 2
push 0xff
push 0
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_SetLayeredWindowAttributes]
mov dword [esp + 0x88], 0xffffffff
mov edx, dword [esp + 0x20]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44ad16
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esp + 0x80]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004e8f3a
mov esp, ebp
pop ebp
ret
push dword [esp + 0x24]
call dword [sym.imp.USER32.dll_GetParent]
mov edi, eax
push edi
call dword [sym.imp.USER32.dll_GetWindowDC]
push 0xcc0020
push 0
push 0
mov esi, eax
push esi
push dword [esp + 0x5c]
push dword [esp + 0x5c]
push 0
push 0
push dword [ebx + 0x48]
call dword [sym.imp.GDI32.dll_BitBlt]
push esi
push edi
call dword [sym.imp.USER32.dll_ReleaseDC]
lea eax, [esp + 0x40]
push eax
push dword [ebx + 0x48]
push 0x20
push dword [esp + 0x20]
call dword [sym.imp.ole32.dll_OleDraw]
test eax, eax
jns 0x44acaf
push eax
lea eax, [esp + 0x24]
push str.setWindowShape_OleDraw_D__x
push eax
call fcn.00421610
add esp, 0xc
lea ecx, [esp + 0x24]
push str.setWindowShape
call fcn.004204a0
mov byte [esp + 0x88], 0xa
mov eax, dword [0x574ba4]
mov ecx, 0x574ba4
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [esp + 0x28], esi
lea eax, [esp + 0x20]
push eax
lea edx, [esp + 0x2c]
lea ecx, [esp + 0x20]
mov byte [esp + 0x8c], 0xb
call fcn.00421890
add esp, 4
mov byte [esp + 0x88], 0xc
cmp dword [ebx + 0x34], 0
je 0x44ae08
push 2
push eax
lea eax, [esp + 0x2c]
push eax
lea eax, [ebx + 0x30]
push eax
call fcn.004219a0
mov byte [esp + 0x88], 0xb
mov edx, dword [esp + 0x1c]
add edx, 0xfffffff0
or ebx, 0xffffffff
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44ae30
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea edx, [esi - 0x10]
mov byte [esp + 0x88], 0xa
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44ae51
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x88], 0
mov edx, dword [esp + 0x24]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44aced
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x44aced