Function at 0x46b000
Capabilities:
Check os version
Packed with generic packer

Disassembly:
pushal
push 0x4c0
push 0x4011b8
call dword [sym.imp.kernel32.dll_RtlZeroMemory]
call dword [sym.imp.kernel32.dll_GetProcessHeap]
mov dword [0x401204], eax
push 0x1000
push 8
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [0x401228], eax
push 0xfffffffffffffff6
call dword [sym.imp.kernel32.dll_GetStdHandle]
mov dword [0x4011f8], eax
push 0xfffffffffffffff5
call dword [sym.imp.kernel32.dll_GetStdHandle]
mov dword [0x4011fc], eax
push 0xfffffffffffffff4
call dword [sym.imp.kernel32.dll_GetStdHandle]
mov dword [0x401200], eax
push 0x40158c
push dword [0x4011fc]
call dword [sym.imp.kernel32.dll_GetConsoleScreenBufferInfo]
mov dword [0x401478], 0x114
push 0x401478
call dword [sym.imp.ntdll.dll_RtlGetVersion]
cmp eax, 0
je 0x46b081
push dword [0x4011fc]
call dword [sym.imp.kernel32.dll_GetLargestConsoleWindowSize]
mov dword [0x401474], eax
movzx eax, word [0x40159a]
movzx ecx, word [0x401596]
sub eax, ecx
add eax, 1
mov dword [0x4011d4], eax
movzx eax, word [0x40159c]
movzx ecx, word [0x401598]
sub eax, ecx
add eax, 1
mov dword [0x4011dc], eax
mov eax, dword [0x4011d4]
mov ecx, dword [0x4011dc]
imul eax, ecx
lea eax, [eax*4]
push 0x401656
push dword [0x4011fc]
call dword [sym.imp.kernel32.dll_GetConsoleCursorInfo]
push 0x401214
push dword [0x4011f8]
call dword [sym.imp.kernel32.dll_GetConsoleMode]
call dword [sym.imp.kernel32.dll_GetConsoleCP]
mov dword [0x401220], eax
call dword [sym.imp.kernel32.dll_GetConsoleOutputCP]
mov dword [0x401224], eax
call dword [sym.imp.kernel32.dll_GetConsoleWindow]
mov dword [0x401208], eax
push 0x9f
push dword [0x4011f8]
call dword [sym.imp.kernel32.dll_SetConsoleMode]
push 0x40121c
push dword [0x4011f8]
call dword [sym.imp.kernel32.dll_GetConsoleMode]
push 0xfde9
call dword [sym.imp.kernel32.dll_SetConsoleCP]
push 0x2e1
call dword [sym.imp.kernel32.dll_SetConsoleOutputCP]
push dword [0x4011f8]
call dword [sym.imp.kernel32.dll_FlushConsoleInputBuffer]
push 0x40145c
push dword [0x401208]
call dword [sym.imp.user32.dll_GetWindowRect]
push 0xfffffffffffffff0
push dword [0x401208]
call dword [sym.imp.user32.dll_GetWindowLongW]
mov dword [0x401218], eax
push str.kernel32.dll
call dword [sym.imp.kernel32.dll_LoadLibraryA]
cmp eax, 0
je 0x46b24d
mov edi, eax
push str.SetCurrentConsoleFontEx
push edi
call dword [sym.imp.kernel32.dll_GetProcAddress]
test eax, eax
je 0x46b24d
mov dword [0x401450], eax
push str.GetCurrentConsoleFontEx
push edi
call dword [sym.imp.kernel32.dll_GetProcAddress]
test eax, eax
je 0x46b24d
mov dword [0x40144c], eax
cmp dword [0x40147c], 5
jle 0x46b1f0
mov dword [0x401602], 0x54
push 0x401602
push 0
push dword [0x4011fc]
call dword [0x40144c]
push str.SetConsoleScreenBufferInfoEx
push edi
call dword [sym.imp.kernel32.dll_GetProcAddress]
test eax, eax
je 0x46b24d
mov dword [0x401458], eax
push str.GetConsoleScreenBufferInfoEx
push edi
call dword [sym.imp.kernel32.dll_GetProcAddress]
test eax, eax
je 0x46b24d
mov dword [0x401454], eax
cmp dword [0x40147c], 5
jle 0x46b24d
mov dword [0x4015a2], 0x60
push 0x4015a2
push dword [0x4011fc]
call dword [0x401454]
mov dword [0x401448], 1
call fcn.0046c298
push 0
push 1
push 0
call dword [sym.imp.kernel32.dll_CreateWaitableTimerW]
mov dword [0x40123c], eax
popal
ret