Function at 0x470586
Capabilities:
Check for unmoving mouse cursor
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x12c
mov eax, dword [0x5005d0]
xor eax, esp
mov dword [esp + 0x128], eax
push ebx
push esi
push edi
xor ebx, ebx
xor eax, eax
lea edi, [esp + 0x14]
push 0x103
mov dword [esp + 0x14], ebx
stosd dword es:[edi], eax
lea eax, [esp + 0x2d]
push ebx
push eax
mov byte [esp + 0x34], bl
call fcn.004a7110
xor eax, eax
mov word [esp + 0x24], bx
lea edi, [esp + 0x26]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
add esp, 0xc
stosw word es:[edi], ax
call fcn.0040ee5d
test eax, eax
jne 0x4705e7
xor eax, eax
jmp 0x4707e8
push ebx
push ebx
call fcn.00459ede
push eax
push str._sLastTimeTG.dat
lea eax, [esp + 0x38]
push 0x104
push eax
call fcn.00476e0a
add esp, 0x18
cmp dword [0x50e5f8], 0xffffffff
mov esi, 0x608bb8
jne 0x470673
push 0x177f
push str..ServerPAULA.c
mov edx, 0x4c520c
lea ecx, [esp + 0x30]
mov dword [0x50e5f8], ebx
call fcn.0041a89d
mov edi, eax
cmp edi, ebx
pop ecx
pop ecx
je 0x470653
push edi
push 1
lea eax, [esp + 0x20]
push 0x10
push eax
call fcn.004a7455
add esp, 0x10
mov ecx, edi
call fcn.0041acca
movzx eax, word [esp + 0x1e]
cmp eax, ebx
mov dword [0x50e5f8], eax
jge 0x470667
mov dword [0x50e5f8], ebx
push 8
push ebx
push esi
call fcn.004a7110
add esp, 0xc
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
cmp dword [0x608bc0], ebx
je 0x4706a9
push 8
push ebx
push esi
call fcn.004a7110
movzx eax, word [esp + 0x2a]
add esp, 0xc
cmp dword [0x50e5f8], eax
je 0x4705e0
mov dword [0x608bc0], ebx
movzx eax, word [esp + 0x1e]
cmp eax, dword [0x50e5f8]
jne 0x4706d1
push 8
push ebx
push esi
mov dword [0x608bc0], 1
call fcn.004a7110
add esp, 0xc
jmp 0x4705e0
cmp dword [0x608bb8], ebx
jne 0x4706e1
cmp dword [0x608bbc], ebx
je 0x4706f3
call fcn.00498efc
sub eax, dword [0x608bc4]
cmp eax, 0x927c0
jbe 0x470709
call fcn.00498efc
push esi
mov dword [0x608bc4], eax
call dword [sym.imp.USER32.dll_GetCursorPos]
jmp 0x4705e0
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
mov eax, dword [esp + 0x10]
sub eax, dword [0x608bb8]
push eax
call fcn.004a863d
cmp eax, 0x64
pop ecx
jg 0x470744
mov eax, dword [esp + 0x14]
sub eax, dword [0x608bbc]
push eax
call fcn.004a863d
cmp eax, 0x64
pop ecx
jle 0x4705e0
movzx eax, word [esp + 0x1e]
push 8
xor edi, edi
push ebx
inc edi
push esi
mov dword [0x608bc0], edi
mov dword [0x50e5f8], eax
call fcn.004a7110
push 0x17a9
push str..ServerPAULA.c
mov edx, 0x4c5348
lea ecx, [esp + 0x3c]
call fcn.0041a89d
mov esi, eax
add esp, 0x14
cmp esi, ebx
je 0x470799
push esi
push edi
lea eax, [esp + 0x20]
push 0x10
push eax
call fcn.004a612e
add esp, 0x10
mov ecx, esi
call fcn.0041acca
push 0xd
mov eax, edi
call fcn.0043a94b
cmp eax, 7
pop ecx
jne 0x4707c0
push ebx
push ebx
call fcn.00459cf0
push eax
push str._sSoundsPraiseBigPraise.wav
push ebx
call fcn.00476e51
add esp, 0x14
jmp 0x4707d9
push eax
push ebx
push ebx
call fcn.00459cf0
pop ecx
pop ecx
push eax
push str._sSoundsIntroToddStart_d.wav
push ebx
call fcn.00476e51
add esp, 0x10
push 0x20001
push ebx
push eax
call dword [sym.imp.WINMM.dll_PlaySoundA]
mov eax, edi
mov ecx, dword [esp + 0x134]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004a69f5
mov esp, ebp
pop ebp
ret