Function at 0x4017f0
Capabilities:
Check for unmoving mouse cursor
Extract resource via kernel32 functions
Hide graphical window

Disassembly:
sub esp, 0x44
push ebx
push ebp
push esi
xor eax, eax
push edi
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
push eax
lea eax, [esp + 0x48]
push eax
mov ebx, ecx
push 0x41c470
mov dword [esp + 0x50], 1
call sub.gdiplus.dll_GdiplusStartup
mov esi, dword [sym.imp.USER32.dll_GetCursorPos]
lea ecx, [esp + 0x2c]
push ecx
call esi
mov eax, dword [esp + 0x2c]
mov ebp, dword [ebx + 0xd4]
mov edi, dword [ebx + 0xd0]
mov ecx, eax
add eax, ebp
sub ecx, ebp
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x34], ecx
mov ecx, eax
lea edx, [esp + 0x1c]
sub ecx, edi
add eax, edi
push edx
mov dword [esp + 0x18], edi
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x44], eax
call esi
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x28], ecx
mov ecx, ebx
mov dword [esp + 0x24], eax
call fcn.00402680
mov eax, dword [ebx + 0xbc]
test eax, eax
jne 0x401acd
lea esi, [ebx + 0x104]
mov ecx, esi
call fcn.004029e0
mov eax, dword [esi + 8]
test eax, eax
je 0x4018b8
push eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov edx, dword [esi + 8]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov dword [esi + 8], 0
push 0x419108
push 0x68
push 0
call dword [sym.imp.KERNEL32.dll_FindResourceA]
test eax, eax
mov dword [esp + 0x18], eax
je 0x4019e4
push eax
push 0
call dword [sym.imp.KERNEL32.dll_SizeofResource]
test eax, eax
mov dword [esp + 0x10], eax
je 0x4019e4
mov eax, dword [esp + 0x18]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_LoadResource]
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
test eax, eax
mov dword [esp + 0x18], eax
je 0x4019e4
mov ecx, dword [esp + 0x10]
push ecx
push 2
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
test eax, eax
mov dword [esi + 8], eax
je 0x4019e4
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
test eax, eax
je 0x4019c7
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov edx, ecx
mov edi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x10]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebx + 0x10c]
xor esi, esi
push esi
push ecx
mov dword [esp + 0x1c], esi
call dword [sym.imp.ole32.dll_CreateStreamOnHGlobal]
test eax, eax
jne 0x4019b6
mov edx, dword [esp + 0x10]
push esi
push edx
call fcn.00402960
add esp, 8
mov dword [ebx + 0x108], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov eax, dword [esp + 0x10]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebx + 0x108]
cmp eax, esi
je 0x4019b6
mov ecx, dword [eax + 8]
mov dword [eax + 8], esi
cmp ecx, esi
je 0x4019e0
mov ecx, dword [ebx + 0x108]
test ecx, ecx
je 0x4019ac
mov edx, dword [ecx]
push 1
call dword [edx]
mov dword [ebx + 0x108], 0
mov eax, dword [ebx + 0x10c]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov edi, dword [esp + 0x14]
mov ecx, dword [ebx + 0x10c]
push ecx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov dword [ebx + 0x10c], 0
jmp 0x4019e4
mov edi, dword [esp + 0x14]
mov edx, dword [0x41c418]
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
push 0
push edx
push 0
sub eax, esi
push 0
push eax
mov eax, dword [esp + 0x50]
sub eax, ecx
mov ecx, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x38]
sub eax, edi
sub ecx, ebp
push eax
push ecx
push 0x80000000
push 0x41c3a8
push str.DICT_TRANS
push 0x80088
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov esi, eax
test esi, esi
je 0x401c8f
push ebx
push 0xffffffffffffffeb
push esi
mov dword [ebx + 0xbc], esi
call dword [sym.imp.USER32.dll_SetWindowLongA]
push 0xffffffffffffffeb
push esi
call dword [sym.imp.USER32.dll_GetWindowLongA]
fild dword [ebx + 0xe0]
fild dword [ebx + 0xdc]
fstp dword [esp + 0x14]
fld st(0)
fadd dword [ebx + 0xd8]
call fcn.00403740
fld dword [esp + 0x14]
fadd dword [ebx + 0xd8]
push eax
call fcn.00403740
fsub dword [ebx + 0xd8]
push eax
call fcn.00403740
fld dword [esp + 0x1c]
fsub dword [ebx + 0xd8]
push eax
call fcn.00403740
push eax
call dword [sym.imp.GDI32.dll_CreateEllipticRgn]
mov edx, dword [ebx + 0xbc]
push 5
push edx
mov dword [ebx + 0xf8], eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [ebx + 0xbc]
push 0
push 0x32
push 0x3e8
push eax
call dword [sym.imp.USER32.dll_SetTimer]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
push 1
push ecx
push edx
mov ecx, ebx
call fcn.00401dc0
xor esi, esi
push esi
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, dword [ebx + 0x114]
mov ebp, eax
sub ebp, 0x59
cmp ecx, esi
je 0x401afe
mov eax, dword [ecx]
push 1
call dword [eax]
mov eax, dword [ebx + 0x118]
mov dword [ebx + 0x114], esi
cmp eax, esi
je 0x401b28
push eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov ecx, dword [ebx + 0x118]
push ecx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov dword [ebx + 0x118], esi
push 0x419108
push 0x69
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov esi, eax
test esi, esi
je 0x401c38
push esi
push 0
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov edi, eax
test edi, edi
je 0x401c38
push esi
push 0
call dword [sym.imp.KERNEL32.dll_LoadResource]
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov esi, eax
test esi, esi
je 0x401c38
push edi
push 2
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
test eax, eax
mov dword [ebx + 0x118], eax
je 0x401c38
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
test eax, eax
je 0x401c21
mov ecx, edi
mov edi, eax
mov edx, ecx
lea eax, [esp + 0x10]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebx + 0x118]
xor esi, esi
push esi
push ecx
mov dword [esp + 0x1c], esi
call dword [sym.imp.ole32.dll_CreateStreamOnHGlobal]
test eax, eax
jne 0x401c14
mov edx, dword [esp + 0x10]
push esi
push edx
call fcn.00402960
add esp, 8
mov dword [ebx + 0x114], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov eax, dword [esp + 0x10]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebx + 0x114]
cmp eax, esi
je 0x401c14
mov ecx, dword [eax + 8]
mov dword [eax + 8], esi
cmp ecx, esi
je 0x401c38
mov ecx, dword [ebx + 0x114]
test ecx, ecx
je 0x401c0a
mov edx, dword [ecx]
push 1
call dword [edx]
mov dword [ebx + 0x114], 0
mov eax, dword [ebx + 0x118]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov ecx, dword [ebx + 0x118]
push ecx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov dword [ebx + 0x118], 0
mov edx, dword [0x41c418]
push 0
push edx
push 0
push 0
push 0x45
push 0x55
push 0x1f
push ebp
push 0x80000000
push 0x41c3a8
push str.DICT_TRANS_SMALL
push 0x80088
call dword [sym.imp.USER32.dll_CreateWindowExA]
push ebx
push 0xffffffffffffffeb
push eax
mov dword [ebx + 0xc0], eax
call dword [sym.imp.USER32.dll_SetWindowLongA]
mov eax, dword [ebx + 0xc0]
push 0
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 0x1f
push ebp
mov ecx, ebx
call fcn.00402440
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret