Function at 0x544ee0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x50
push ebx
push ebp
push esi
mov esi, ecx
mov eax, dword [esi + 0x58]
push edi
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x5452c7
mov ecx, dword [esi + 0x58]
push ecx
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x5452c7
cmp dword [esi + 0x78], 0
je 0x5452c7
push esi
call fcn.00540e00
push 0
call dword [sym.imp.USER32.dll_GetDC]
mov ebx, eax
mov eax, dword [esi + 0x58]
lea edx, [esp + 0x50]
push edx
push eax
mov dword [esp + 0x4c], ebx
call dword [sym.imp.USER32.dll_GetWindowRect]
push ebx
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
sub edx, dword [esp + 0x54]
sub ecx, dword [esp + 0x50]
mov edi, eax
mov dword [esp + 0x18], edi
call fcn.0053b4f0
mov ebp, eax
push ebx
mov dword [esp + 0x20], ebp
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
sub edx, dword [esp + 0x54]
sub ecx, dword [esp + 0x50]
mov ebx, eax
mov dword [esp + 0x40], ebx
call fcn.0053b4f0
mov dword [esp + 0x20], eax
test edi, edi
je 0x545282
test ebp, ebp
je 0x545282
test ebx, ebx
je 0x545282
test eax, eax
je 0x54528d
push ebp
mov ebp, dword [sym.imp.GDI32.dll_SelectObject]
push edi
call ebp
mov ecx, dword [esp + 0x20]
push ecx
push ebx
mov dword [esp + 0x54], eax
call ebp
mov edx, dword [esi]
mov dword [esp + 0x48], eax
mov eax, dword [edx + 0x50]
push ebx
mov ecx, esi
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0x40]
push edi
mov ecx, esi
call eax
mov edi, dword [esi + 0x78]
mov edx, dword [edi]
mov ebp, dword [esp + 0x58]
mov ebx, dword [esp + 0x5c]
mov edx, dword [edx + 0x84]
sub ebp, dword [esp + 0x50]
sub ebx, dword [esp + 0x54]
lea eax, [esp + 0x30]
push eax
mov ecx, edi
call edx
xor edx, edx
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov dword [ecx + 4], edx
mov edx, dword [eax]
mov dword [ecx + 8], ebp
mov dword [ecx + 0xc], ebx
sub esp, 0x10
mov ecx, esp
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
mov ecx, dword [esp + 0x38]
push ecx
mov ecx, edi
call fcn.0053ad30
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x80]
sub eax, dword [esp + 0x78]
sub ecx, dword [esp + 0x74]
add esp, 0x24
imul eax, ecx
add eax, eax
add eax, eax
push 0x6211f4
push eax
call fcn.0058a19e
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x5452c7
mov edx, dword [esp + 0x5c]
sub edx, dword [esp + 0x54]
mov eax, dword [esp + 0x58]
sub eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x20]
mov edi, dword [sym.imp.GDI32.dll_GetBitmapBits]
imul edx, eax
add edx, edx
push ebp
add edx, edx
push edx
push ecx
call edi
mov eax, dword [esp + 0x58]
sub eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x5c]
sub ecx, dword [esp + 0x54]
push 0x6211f4
imul eax, ecx
add eax, eax
add eax, eax
push eax
call fcn.0058a19e
mov ebx, eax
add esp, 8
mov dword [esp + 0x24], ebx
test ebx, ebx
je 0x5452c7
mov edx, dword [esp + 0x5c]
sub edx, dword [esp + 0x54]
mov eax, dword [esp + 0x58]
sub eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x1c]
imul edx, eax
add edx, edx
push ebx
add edx, edx
push edx
push ecx
call edi
mov edx, dword [esi]
mov eax, dword [edx + 0x54]
mov ecx, esi
mov dword [esp + 0x14], 0
call eax
mov edi, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
sub edx, dword [esp + 0x50]
mov ecx, edi
sub ecx, dword [esp + 0x54]
mov dword [esp + 0x30], eax
imul ecx, edx
add ecx, ecx
add ecx, ecx
test ecx, ecx
jle 0x5451bd
mov eax, 0xfffffffd
sub eax, ebx
lea ecx, [ebx + 3]
mov dword [esp + 0x28], eax
jmp 0x545134
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x30], 0
je 0x545144
mov byte [ecx], 0xff
mov edi, dword [esp + 0x5c]
jmp 0x545190
mov dl, byte [ecx]
add eax, ecx
mov bl, byte [eax + ebp + 3]
cmp dl, bl
jae 0x545167
test dl, dl
jne 0x545159
mov byte [ecx], 0xff
jmp 0x54515b
mov byte [ecx], bl
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x14], 1
mov al, byte [ecx]
movzx edx, al
cmp edx, dword [esi + 0x11c]
jge 0x54518c
test al, al
jbe 0x54518c
mov al, byte [esi + 0x11c]
mov byte [ecx], al
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x14], 1
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x58]
sub eax, dword [esp + 0x50]
mov edx, edi
sub edx, dword [esp + 0x54]
add ecx, 4
imul edx, eax
mov eax, dword [esp + 0x28]
add edx, edx
add edx, edx
add eax, ecx
cmp eax, edx
jl 0x545130
cmp dword [esp + 0x14], 0
jne 0x5451c4
cmp dword [esp + 0x30], 0
je 0x5451e4
sub edi, dword [esp + 0x54]
mov eax, dword [esp + 0x58]
sub eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x1c]
imul edi, eax
add edi, edi
push ebx
add edi, edi
push edi
push ecx
call dword [sym.imp.GDI32.dll_SetBitmapBits]
push ebx
call fcn.00588add
add esp, 4
push ebp
call fcn.00588add
mov dl, byte [esi + 0x109]
mov ecx, dword [esp + 0x5c]
sub ecx, dword [esp + 0x54]
mov edi, dword [esp + 0x1c]
add esp, 4
push 2
mov byte [esp + 0x16], dl
mov edx, dword [esp + 0x60]
sub edx, dword [esp + 0x58]
xor eax, eax
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x14]
push ecx
push eax
mov dword [esp + 0x38], edx
lea edx, [esp + 0x3c]
push edx
mov edx, dword [esp + 0x54]
push edi
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
lea eax, [esp + 0x3c]
push eax
mov eax, dword [esi + 0x58]
lea ecx, [esp + 0x68]
push ecx
push edx
push eax
mov byte [esp + 0x34], 0
mov byte [esp + 0x35], 0
mov byte [esp + 0x37], 1
call dword [sym.imp.USER32.dll_UpdateLayeredWindow]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x40]
mov esi, dword [sym.imp.GDI32.dll_SelectObject]
push ecx
push edx
call esi
mov eax, dword [esp + 0x4c]
push eax
push edi
call esi
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x40]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x54528d
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov esi, dword [sym.imp.GDI32.dll_DeleteDC]
test ebx, ebx
je 0x54529a
push ebx
call esi
test ebp, ebp
je 0x5452a5
push ebp
call dword [sym.imp.GDI32.dll_DeleteObject]
test edi, edi
je 0x5452ac
push edi
call esi
mov eax, dword [esp + 0x44]
test eax, eax
je 0x5452bd
push eax
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
mov eax, 0x80004005
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret