Function at 0x464c00
Capabilities:
Print debug messages

Disassembly:
mov eax, dword fs:[0]
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x464ee3
push eax
mov dword fs:[0], esp
sub esp, 4
push ebx
push esi
mov dword [ecx], vtable.Game.0
push edi
mov ebx, ecx
xor edi, edi
call fcn.00401630
push 0x7e0
mov dword [ebx + 4], edi
mov dword [ebx + 8], edi
mov dword [ebx + 0xc], edi
mov dword [ebx + 0x5f4], edi
call fcn.004bd170
mov dword [ebp - 0x10], eax
add esp, 4
mov esi, eax
mov dword [ebp - 4], edi
mov eax, 0
test esi, esi
je 0x464c61
mov ecx, esi
call fcn.004537f0
mov dword [ebp - 4], 0xffffffff
mov dword [ebx + 0x2e0], 8
mov dword [ebx + 0x458], 0x40000000
xor ecx, ecx
mov dword [ebx + 0x10], eax
mov eax, 1
mov dword [ebx + 0x2f4], ecx
mov dword [ebx + 0x14], eax
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x45c], 0x3d888a48
mov dword [ebx + 0x2f8], 0x280
mov dword [ebx + 0x2fc], 0x1e0
mov dword [ebx + 0xbc], eax
mov dword [ebx + 0x2e4], ecx
lea eax, [ebx + 0xc0]
mov dword [ebx + 0x2ec], ecx
mov dword [ebx + 0x300], 0x10
mov dword [ebx + 0x304], 0x140
mov dword [ebx + 0x308], 0xf0
mov byte [eax], 0
add eax, 0x80
inc ecx
cmp ecx, 4
jl 0x464ce6
mov esi, 1
xor edi, edi
mov edx, 0x4d73b0
mov dword [ebx + 0x2f0], esi
lea ecx, [ebx + 0x31c]
mov dword [ebx + 0x30c], edi
mov dword [ebx + 0x310], edi
mov dword [ebx + 0x318], edi
mov dword [0x4e78d4], edi
mov dword [ebx + 0x314], esi
mov eax, dword [edx]
mov dword [ecx], eax
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
mov eax, dword [edx + 8]
mov dword [ecx + 8], eax
mov edx, dword [edx + 0xc]
mov dword [ecx + 0xc], edx
mov dword [ebx + 0x42c], esi
push 0x30
mov dword [ebx + 0x434], edi
mov dword [ebx + 0x444], edi
mov dword [ebx + 0x448], edi
mov dword [ebx + 0x460], 3
call fcn.0045b6b0
add esp, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 4], esi
test eax, eax
je 0x464d80
push esi
mov ecx, eax
call fcn.00420040
jmp 0x464d82
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [ebx + 0x430], eax
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp eax, 0x80000000
jae 0x464dc4
mov dword [ebx + 0x44c], 1
push 1
call dword [sym.imp.WINMM.dll_timeBeginPeriod]
test eax, eax
je 0x464db7
cmp eax, 0x61
jne 0x464dce
push str.Timer_resolution_cannot_be_to_set_to_1_ms._n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x464dce
mov dword [ebx + 0x44c], 0
xor edx, edx
mov edi, str.Rainbow_Studios
mov ecx, 0xffffffff
sub eax, eax
mov dword [ebx + 0x468], edx
mov dword [ebx + 0x464], edx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
shr ecx, 2
mov esi, edi
lea edi, [ebx + 0x32c]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str.Rainbow_Demo
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
shr ecx, 2
mov esi, edi
lea edi, [ebx + 0x3ac]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str.SOFTWARERAINBOWDEMO
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
shr ecx, 2
mov esi, edi
lea edi, [ebx + 0x574]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, 1
mov dword [ebx + 0x450], edx
mov dword [ebx + 0x438], eax
mov dword [ebx + 0x43c], eax
mov dword [ebx + 0x440], eax
mov dword [ebx + 0x454], edx
mov dword [ebx + 0x46c], edx
mov edi, 0x4df418
mov ecx, 0xffffffff
sub eax, eax
mov dword [ebx + 0x470], edx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
shr ecx, 2
mov esi, edi
lea edi, [ebx + 0x474]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x5191b8
xor eax, eax
mov ecx, 6
rep stosd dword es:[edi], eax
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
mov dword [0x5191b8], 0x18
pop ebp
ret