Function at 0x4ab5c0
Capabilities:
Hide graphical window

Disassembly:
mov eax, dword [esp + 8]
sub esp, 0x4c
dec eax
cmp eax, 3
ja case.default.0x4ab5d3
push esi
push edi
jmp dword [eax*4 + 0x4ab960]
mov esi, dword [esp + 0x58]
mov edx, dword [esi + 4]
xor eax, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
lea ecx, [esp + 0x2c]
push ecx
mov dword [esp + 0x4c], eax
push str.SF.OriginIcon
mov dword [esp + 0x54], eax
push edx
mov dword [esp + 0x5c], eax
call dword [sym.imp.USER32.dll_GetClassInfoW]
test eax, eax
jne 0x4ab65d
mov eax, dword [esi + 4]
push 5
mov dword [esp + 0x34], 0x4aa840
mov dword [esp + 0x40], eax
call dword [sym.imp.GDI32.dll_GetStockObject]
push 0x7f00
push 0
mov dword [esp + 0x50], eax
call sym.vidcap60.exe__SfLoadCursor_8
lea ecx, [esp + 0x2c]
push ecx
mov dword [esp + 0x48], eax
mov dword [esp + 0x54], str.SF.OriginIcon
call fcn.00405220
mov edx, dword [esi + 8]
mov eax, dword [esi + 0xc]
push ebx
push ebp
lea ecx, [esp + 0x10]
mov dword [esp + 0x10], edx
mov edx, dword [esi]
push ecx
push edx
mov dword [esp + 0x1c], eax
call dword [sym.imp.USER32.dll_ClientToScreen]
mov eax, dword [esi + 4]
mov ecx, dword [esi]
mov edx, dword [esp + 0x14]
xor ebx, ebx
push ebx
push eax
mov eax, dword [esp + 0x18]
push ebx
push ecx
push 0x20
push 0x20
add edx, 0xfffffff0
push edx
add eax, 0xfffffff0
push eax
push SysReAllocString
push ebx
push str.SF.OriginIcon
push 0x18c
call fcn.00405460
push esi
push 0xffffffffffffffeb
push eax
mov dword [esi + 0x58], eax
call dword [sym.imp.USER32.dll_SetWindowLongW]
mov ecx, dword [esi + 0x10]
or eax, 0xffffffff
cmp ecx, ebx
je 0x4ab6dd
cmp dword [esi + 0x14], ebx
je 0x4ab6d2
mov eax, 0x34
jmp 0x4ab6e7
cmp ecx, ebx
je 0x4ab6dd
mov eax, 0x33
jmp 0x4ab6e7
cmp dword [esi + 0x14], ebx
je 0x4ab6e7
mov eax, 0x32
movzx ecx, ax
push ecx
push ebx
call sym.vidcap60.exe__SfLoadCursor_8
mov edx, dword [esi]
push edx
mov dword [esi + 0x54], eax
call dword [sym.imp.USER32.dll_GetDC]
push 0x20
push 0x20
push eax
mov dword [esi + 0x48], eax
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov dword [esi + 0x44], eax
mov eax, dword [esi + 0x48]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov ecx, dword [esi + 0x44]
mov edi, dword [sym.imp.GDI32.dll_SelectObject]
push ecx
push eax
mov dword [esi + 0x4c], eax
call edi
lea edx, [esp + 0x18]
push edx
mov dword [esi + 0x50], eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], 0xff00ff
mov dword [esp + 0x24], ebx
call dword [sym.imp.GDI32.dll_CreateBrushIndirect]
mov ebx, eax
mov eax, dword [esi + 0x4c]
push ebx
push eax
call edi
mov ecx, dword [esi + 0x4c]
push 0xf00021
push 0x20
push 0x20
push 0
push 0
push ecx
mov ebp, eax
call dword [sym.imp.GDI32.dll_PatBlt]
mov edx, dword [esi + 0x4c]
push ebp
push edx
call edi
push ebx
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esi + 0x54]
mov ecx, dword [esi + 0x4c]
mov ebp, dword [sym.imp.USER32.dll_DrawIconEx]
push 3
push 0
push 0
push 0x20
push 0x20
push eax
push 0
push 0
push ecx
call ebp
mov edx, dword [esi + 0x50]
mov eax, dword [esi + 0x4c]
push edx
push eax
call edi
mov ecx, dword [esi + 0x44]
push 0
push 0x20
push 0x20
push ecx
call dword [sym.imp.GDI32.dll_SetBitmapDimensionEx]
mov edx, dword [esi + 0x44]
push 0xff00ff
push edx
call fcn.004a9c50
mov ebx, eax
mov eax, dword [esi + 0x44]
push eax
mov ecx, dword [esi + 0x4c]
push ecx
call edi
test ebx, ebx
mov dword [esi + 0x50], eax
je 0x4ab7db
mov edx, dword [esi + 0x58]
push 0
push ebx
push edx
jmp 0x4ab86e
mov eax, dword [esi + 0x4c]
push 0xff0062
push 0x20
push 0x20
push 0
push 0
push eax
call dword [sym.imp.GDI32.dll_PatBlt]
push 7
call dword [sym.imp.GDI32.dll_GetStockObject]
mov ecx, dword [esi + 0x4c]
push eax
push ecx
call edi
mov edx, dword [esi + 0x4c]
push 0x1f
push 0x1f
push 0
push 0
push edx
mov ebx, eax
call dword [sym.imp.GDI32.dll_Ellipse]
mov eax, dword [esi + 0x4c]
push ebx
push eax
call edi
mov ecx, dword [esi + 0x54]
mov edx, dword [esi + 0x4c]
push 3
push 0
push 0
push 0x20
push 0x20
push ecx
push 0
push 0
push edx
call ebp
mov ecx, dword [esi + 0x58]
lea eax, [esp + 0x24]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
mov ebp, dword [esp + 0x24]
sub edx, ecx
push edx
sub eax, ebp
push eax
push 0
push 0
call dword [sym.imp.GDI32.dll_CreateEllipticRgn]
test eax, eax
je 0x4ab874
mov ecx, dword [esi + 0x58]
push 0
push eax
push ecx
call dword [sym.imp.USER32.dll_SetWindowRgn]
mov edx, dword [esi + 0x58]
push 8
push edx
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [esi + 0x58]
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
mov eax, dword [esi + 0x18]
test eax, eax
pop ebp
pop ebx
je 0x4ab958
call dword [sym.imp.USER32.dll_GetFocus]
mov ecx, dword [esi + 0x58]
push ecx
mov dword [esi + 0x5c], eax
call dword [sym.imp.USER32.dll_SetFocus]
pop edi
pop esi
add esp, 0x4c
ret 8
mov esi, dword [esp + 0x58]
mov eax, dword [esi + 0x18]
xor edi, edi
cmp eax, edi
je 0x4ab8c9
mov edx, dword [esi + 0x5c]
push edx
call dword [sym.imp.USER32.dll_SetFocus]
mov eax, dword [esi + 0x58]
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
mov ecx, dword [esi + 0x50]
mov edx, dword [esi + 0x48]
push ecx
push edx
mov dword [esi + 0x58], edi
mov dword [esi + 0x54], edi
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [esi + 0x44]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov ecx, dword [esi + 0x4c]
push ecx
call dword [sym.imp.GDI32.dll_DeleteDC]
mov edx, dword [esi + 0x48]
mov eax, dword [esi]
push edx
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
mov dword [esi + 0x54], edi
mov dword [esi + 0x4c], edi
mov dword [esi + 0x48], edi
mov dword [esi + 0x44], edi
pop edi
pop esi
add esp, 0x4c
ret 8
mov esi, dword [esp + 0x58]
mov ecx, dword [esi + 0x58]
push 0
push ecx
call dword [sym.imp.USER32.dll_ShowWindow]
mov edx, dword [esi + 0x58]
push edx
call dword [sym.imp.USER32.dll_UpdateWindow]
pop edi
pop esi
add esp, 0x4c
ret 8
mov esi, dword [esp + 0x58]
mov eax, dword [esi + 0x58]
push 8
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov ecx, dword [esi + 0x58]
push ecx
call dword [sym.imp.USER32.dll_UpdateWindow]
pop edi
pop esi
add esp, 0x4c
ret 8