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

Disassembly:
pushal
push 0x4f0
push 0x401298
call dword [sym.imp.kernel32.dll_RtlZeroMemory]
call dword [sym.imp.kernel32.dll_GetProcessHeap]
mov dword [0x4012e4], eax
push 0x1000
push 8
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [0x401308], eax
push 0xfffffffffffffff6
call dword [sym.imp.kernel32.dll_GetStdHandle]
mov dword [0x4012d8], eax
push 0xfffffffffffffff5
call dword [sym.imp.kernel32.dll_GetStdHandle]
mov dword [0x4012dc], eax
push 0xfffffffffffffff4
call dword [sym.imp.kernel32.dll_GetStdHandle]
mov dword [0x4012e0], eax
push 0x40169c
push dword [0x4012dc]
call dword [sym.imp.kernel32.dll_GetConsoleScreenBufferInfo]
mov dword [0x401588], 0x114
push 0x401588
call dword [sym.imp.ntdll.dll_RtlGetVersion]
test eax, eax
je 0x46b080
push dword [0x4012dc]
call dword [sym.imp.kernel32.dll_GetLargestConsoleWindowSize]
mov dword [0x401584], eax
movzx eax, word [0x4016aa]
movzx ecx, word [0x4016a6]
sub eax, ecx
add eax, 1
mov dword [0x4012b4], eax
movzx eax, word [0x4016ac]
movzx ecx, word [0x4016a8]
sub eax, ecx
add eax, 1
mov dword [0x4012bc], eax
mov eax, dword [0x4012b4]
mov ecx, dword [0x4012bc]
imul eax, ecx
lea eax, [eax*4]
push 0x401766
push dword [0x4012dc]
call dword [sym.imp.kernel32.dll_GetConsoleCursorInfo]
push 0x4012f4
push dword [0x4012d8]
call dword [sym.imp.kernel32.dll_GetConsoleMode]
call dword [sym.imp.kernel32.dll_GetConsoleCP]
mov dword [0x401300], eax
call dword [sym.imp.kernel32.dll_GetConsoleOutputCP]
mov dword [0x401304], eax
call dword [sym.imp.kernel32.dll_GetConsoleWindow]
mov dword [0x4012e8], eax
push 0xfffffffffffffff0
push dword [0x4012e8]
call dword [sym.imp.user32.dll_GetWindowLongW]
mov dword [0x4012f8], eax
push pe_nt_image_headers32
push dword [0x4012d8]
call dword [sym.imp.kernel32.dll_SetConsoleMode]
push 0x1f
push dword [0x4012d8]
call dword [sym.imp.kernel32.dll_SetConsoleMode]
push 0x4012fc
push dword [0x4012d8]
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 [0x4012d8]
call dword [sym.imp.kernel32.dll_FlushConsoleInputBuffer]
push 0x40156c
push dword [0x4012e8]
call dword [sym.imp.user32.dll_GetWindowRect]
push str.kernel32.dll
call dword [sym.imp.kernel32.dll_LoadLibraryA]
cmp eax, 0
je 0x46b25a
mov edi, eax
push str.SetCurrentConsoleFontEx
push edi
call dword [sym.imp.kernel32.dll_GetProcAddress]
test eax, eax
je 0x46b25a
mov dword [0x401530], eax
push str.GetCurrentConsoleFontEx
push edi
call dword [sym.imp.kernel32.dll_GetProcAddress]
test eax, eax
je 0x46b25a
mov dword [0x40152c], eax
cmp dword [0x40158c], 5
jle 0x46b1fd
mov dword [0x401712], 0x54
push 0x401712
push 0
push dword [0x4012dc]
call dword [0x40152c]
push str.SetConsoleScreenBufferInfoEx
push edi
call dword [sym.imp.kernel32.dll_GetProcAddress]
test eax, eax
je 0x46b25a
mov dword [0x401538], eax
push str.GetConsoleScreenBufferInfoEx
push edi
call dword [sym.imp.kernel32.dll_GetProcAddress]
test eax, eax
je 0x46b25a
mov dword [0x401534], eax
cmp dword [0x40158c], 5
jle 0x46b250
mov dword [0x4016b2], 0x60
push 0x4016b2
push dword [0x4012dc]
call dword [0x401534]
call fcn.0046c2d2
mov dword [0x401528], 1
push 0
push 1
push 0
call dword [sym.imp.kernel32.dll_CreateWaitableTimerW]
mov dword [0x40131c], eax
call fcn.0046c327
cmp dword [0x40153c], 0
je 0x46b288
push 0
push 0xac44
push 0xffffffffffffffff
call dword [0x401544]
popal
ret