Function at 0x4221ec
Capabilities:
Capture screenshot
Hide graphical window

Disassembly:
push ebx
add esp, 0xfffffff0
cmp byte [0x4d2bf0], 0
jne 0x4224a7
push 0
push 0
push 0
push 0x4224ac
call sub.gdi32.dll_CreateICA
mov ebx, eax
push 8
push ebx
call sub.gdi32.dll_GetDeviceCaps
mov word [0x4fd8b2], ax
push 0xa
push ebx
call sub.gdi32.dll_GetDeviceCaps
mov word [0x4fd8b4], ax
movsx eax, word [0x4fd8b2]
test eax, eax
jns 0x422239
add eax, 7
sar eax, 3
mov dword [0x4d2bc0], eax
movsx eax, word [0x4fd8b4]
mov ecx, 0xd
cdq
idiv ecx
mov dword [0x4d2bc4], eax
push ebx
call sub.gdi32.dll_DeleteDC
cmp byte [0x4d2bf4], 0
jne 0x42227b
push 0x4224b4
mov eax, dword [0x4dc7f4]
push eax
call sub.user32.dll_LoadMenuA
mov dword [0x4fd8ac], eax
jmp 0x422282
xor eax, eax
mov dword [0x4fd8ac], eax
mov eax, dword [0x4d8ba8]
cmp dword [eax], 0
jne 0x422300
mov eax, dword [0x4dc7f4]
mov dword [0x4d2c84], eax
push 0x4224bc
mov eax, dword [0x4dc7f4]
push eax
call sub.user32.dll_LoadIconA
mov dword [0x4d2c88], eax
push 0x7f00
mov eax, dword [0x4dc7f4]
push eax
call sub.user32.dll_LoadCursorA
mov dword [0x4d2c8c], eax
cmp byte [0x4d2bf8], 0
je 0x4222d7
push 5
call sub.gdi32.dll_GetStockObject
mov dword [0x4d2c90], eax
jmp 0x4222e3
push 0
call sub.gdi32.dll_GetStockObject
mov dword [0x4d2c90], eax
cmp byte [0x4d2c10], 0
je 0x4222f6
mov dword [0x4d2c78], 0x4244b8
push 0x4d2c74
call sub.user32.dll_RegisterClassA
mov eax, dword [0x4fd6c0]
or eax, 0x2000
push eax
push 0
push 0
movsx eax, word [0x4fd8b2]
push eax
movsx eax, word [0x4fd8b4]
push eax
call sub.user32.dll_GetDesktopWindow
push eax
mov eax, dword [0x4fd8ac]
push eax
mov eax, dword [0x4dc7f4]
push eax
push 0
mov ecx, 0x4fd6cc
mov edx, dword [0x4d2c98]
mov eax, dword [0x4fd6c4]
call fcn.0040855c
mov dword [0x4d2be4], eax
mov eax, dword [0x4d2be4]
mov dword [0x4d2bec], eax
push 4
mov eax, dword [0x4fd6b8]
push eax
mov eax, dword [0x4fd6b4]
push eax
mov eax, dword [0x4fd6b0]
push eax
mov eax, dword [0x4fd6ac]
push eax
push 0
mov eax, dword [0x4d2be4]
push eax
call sub.user32.dll_SetWindowPos
push esp
mov eax, dword [0x4d2be4]
push eax
call sub.user32.dll_GetClientRect
mov eax, dword [esp + 8]
test eax, eax
jns 0x422395
add eax, 7
sar eax, 3
mov dword [0x4d2bb8], eax
mov eax, dword [esp + 0xc]
mov ecx, 0xd
cdq
idiv ecx
mov dword [0x4d2bbc], eax
cmp byte [0x4d2c08], 0
jne 0x4223c6
push 1
mov eax, dword [0x4d2be4]
push eax
call sub.user32.dll_ShowWindow
jmp 0x4223d3
push 0
mov eax, dword [0x4d2be4]
push eax
call sub.user32.dll_ShowWindow
mov eax, dword [0x4d2be4]
push eax
call sub.user32.dll_GetDC
mov dword [0x4fd7f4], eax
mov eax, dword [0x4fd7f4]
mov dword [0x4fd7fc], eax
push 3
mov eax, dword [0x4fd7f4]
push eax
call sub.gdi32.dll_SetStretchBltMode
mov eax, dword [0x4fd7f4]
push eax
call sub.gdi32.dll_CreateCompatibleDC
mov dword [0x4fd7f8], eax
mov eax, dword [0x4fd7f8]
mov dword [0x4fd800], eax
push 3
mov eax, dword [0x4fd7f8]
push eax
call sub.gdi32.dll_SetStretchBltMode
movsx eax, word [0x4fd8b4]
push eax
movsx eax, word [0x4fd8b2]
push eax
mov eax, dword [0x4fd7f4]
push eax
call sub.gdi32.dll_CreateCompatibleBitmap
mov dword [0x4fd808], eax
mov eax, dword [0x4fd808]
push eax
mov eax, dword [0x4fd7f8]
push eax
call sub.gdi32.dll_SelectObject
mov dword [0x4fd804], eax
push 0xcc0020
push 0
push 0
mov eax, dword [0x4fd7f4]
push eax
movsx eax, word [0x4fd8b4]
push eax
movsx eax, word [0x4fd8b2]
push eax
push 0
push 0
mov eax, dword [0x4fd7f8]
push eax
call sub.gdi32.dll_BitBlt
push 0x7f00
push 0
call sub.user32.dll_LoadCursorA
mov ebx, eax
push ebx
call sub.user32.dll_SetCursor
push ebx
push 0xfffffffffffffff4
mov eax, dword [0x4d2be4]
push eax
call sub.user32.dll_SetClassLongA
add esp, 0x10
pop ebx
ret