Lo all just wondering if someone could just confirm what this code does. I have my ideas just would like it confirmed.

Code:
			int flags = 0x3 | m_AdditionalFlags;

			if ( Core.SE )
				flags |= 0x0040;

			if ( Core.AOS )
				flags |= 0x801C;

			if ( acct != null && acct.Limit >= 6 )
			{
				flags |= 0x8020;
				flags &= ~0x004;
			}
Does it translate in pseudo as...
Code:
         Flags = 0x03 or m_AdditionalFlags
         if core.se is true then flags = 0x0040
         if core.aos is true then flags = 0x801c
         if acct is not null and acct.limit is greater or equal to 6 then 
         {
                    flags = 0x8020
                    flags  = flags + 0x004
         }
am i right in what ive wrote or is it like...

if core.se is true then flags = flags + 0x0040
if core.aos is true then flags = flags + 0x801c

Hope someone can help...