Function at 0x407fb0
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x44dc14
mov eax, dword fs:[0]
push eax
sub esp, 0x5c
mov eax, dword [0x46800c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
push dword [esi + 0x54]
call dword [sym.imp.USER32.dll_GetDC]
mov ecx, dword [esi]
push eax
mov dword [ebp - 0x44], eax
mov edx, dword [ecx + 0xc]
mov ecx, esi
call edx
push 0
push 2
mov dword [ebp - 0x3c], 0
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
lea ecx, [ebp - 0x3c]
push ecx
push 1
push eax
call dword [sym.imp.ole32.dll_CreateStreamOnHGlobal]
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x4081d2
push 0x45ab1c
push eax
push dword [esi + 0xac]
call sym.nsUninstall.exe_public:_static_class_CNsImage____cdecl_CNsImage::Instance_void_
mov ecx, eax
call sym.nsUninstall.exe_public:_bool___thiscall_CNsImage::BmToStream_struct_HBITMAP_____struct_IStream___wchar_t_const__
push 0xffffffffffffffec
push dword [esi + 0x54]
call dword [sym.imp.USER32.dll_GetWindowLongW]
or eax, 0x80000
push eax
push 0xffffffffffffffec
push dword [esi + 0x54]
call dword [sym.imp.USER32.dll_SetWindowLongW]
mov eax, dword [esi + 0x14]
xor ebx, ebx
cdq
sub eax, edx
mov edi, eax
mov eax, 0x66666667
imul dword [esi + 0x14]
sar edi, 1
sar edx, 2
mov ecx, edx
mov dword [ebp - 0x5c], edi
shr ecx, 0x1f
add ecx, edx
mov dword [ebp - 0x58], ecx
test edi, edi
js 0x408193
movsd xmm2, qword [0x45e308]
mov eax, edi
imul eax, edi
mov ecx, edi
neg ecx
add edi, edi
mov dword [ebp - 0x40], ecx
movd xmm0, eax
mov eax, dword fs:[0x2c]
cvtdq2pd xmm0, xmm0
mov eax, dword [eax]
mov dword [ebp - 0x48], eax
movsd qword [ebp - 0x68], xmm0
nop word [eax + eax]
mov eax, ecx
imul eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
divsd xmm1, xmm0
movsd xmm0, qword [0x45e300]
subsd xmm0, xmm1
mulsd xmm0, xmm2
mulsd xmm0, xmm2
call fcn.0044d700
movsd xmm1, qword [0x45e308]
mov ecx, 0x1e
push dword [esi + 0x54]
subsd xmm1, xmm0
push 1
push 0
cvttsd2si eax, xmm1
sub ecx, eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], ecx
mov ecx, dword [esi + 0x18]
add ecx, eax
lea eax, [esi + 0x9c]
push eax
push dword [ebp - 0x44]
mov dword [ebp - 0x4c], ecx
lea ecx, [ebp - 0x38]
call sym.nsUninstall.exe_public:_void___thiscall_CNsDC::constructor_struct_HDC_____struct_tagRECT___bool__bool__struct_HWND____
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 4], 0
mov eax, dword [sym.nsUninstall.exe_int__public:_static_class_CNsImage____cdecl_CNsImage::Instance_void_::_2::_TSS0]
cmp eax, dword [ecx + 4]
jg 0x4081ee
push dword [ebp - 0x4c]
mov ecx, sym.nsUninstall.exe_class_CNsImage__public:_static_class_CNsImage____cdecl_CNsImage::Instance_void_::_2::_obj
push ebx
push dword [ebp - 0x50]
push edi
push dword [ebp - 0x54]
push ebx
push dword [ebp - 0x3c]
push dword [ebp - 0x38]
call sym.nsUninstall.exe_public:_void___thiscall_CNsImage::DrawRotate3D_struct_HDC_____struct_IStream___int__int__int__int__int__int_
lea ecx, [ebp - 0x38]
call sym.nsUninstall.exe_public:_void___thiscall_CNsDC::Draw_void_
push 0x14
call dword [sym.imp.KERNEL32.dll_Sleep]
lea ecx, [ebp - 0x38]
mov dword [ebp - 4], 0xffffffff
call sym.nsUninstall.exe_public:_void___thiscall_CNsDC::destructor_void_
mov eax, dword [ebp - 0x58]
add ebx, eax
mov ecx, dword [ebp - 0x40]
sub edi, eax
movsd xmm2, qword [0x45e308]
add ecx, eax
movsd xmm0, qword [ebp - 0x68]
mov dword [ebp - 0x40], ecx
cmp ebx, dword [ebp - 0x5c]
jle 0x4080b0
mov eax, dword [ebp - 0x3c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
push dword [ebp - 0x44]
push dword [esi + 0x54]
call dword [sym.imp.USER32.dll_ReleaseDC]
cmp byte [esi + 0x64], 0
je 0x4081d2
push 0
push dword [esi + 0x54]
call dword [sym.imp.USER32.dll_ShowWindow]
push 0
push 0
push 0x200
push dword [esi + 0x54]
mov byte [esi + 0xc7], 1
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00416d81
mov esp, ebp
pop ebp
ret
push sym.nsUninstall.exe_int__public:_static_class_CNsImage____cdecl_CNsImage::Instance_void_::_2::_TSS0
call fcn.00416f4f
add esp, 4
cmp dword [sym.nsUninstall.exe_int__public:_static_class_CNsImage____cdecl_CNsImage::Instance_void_::_2::_TSS0], 0xffffffff
jne 0x408133
mov ecx, sym.nsUninstall.exe_class_CNsImage__public:_static_class_CNsImage____cdecl_CNsImage::Instance_void_::_2::_obj
mov byte [ebp - 4], 1
call sym.nsUninstall.exe_public:_void___thiscall_CNsImage::constructor_void_
push 0x44f5f0
call fcn.004172ae
push sym.nsUninstall.exe_int__public:_static_class_CNsImage____cdecl_CNsImage::Instance_void_::_2::_TSS0
mov byte [ebp - 4], 0
call fcn.00416f05
add esp, 8
jmp 0x408133