Function at 0x4655f8
Capabilities:
Check for time delay via gettickcount
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffb58
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov byte [ebp - 0x14d], 0
mov byte [ebp - 0x14c], 1
mov byte [ebp - 0x14f], 0x52
mov byte [ebp - 0x14e], 0x36
mov byte [ebp - 0x14b], 0
mov byte [ebp - 0x14a], 0
mov byte [ebp - 0x34f], 0
mov byte [ebp - 0x34e], 6
mov byte [ebp - 0x34d], 0
mov byte [ebp - 0x34c], 0
mov byte [ebp - 0x34b], 0
mov byte [ebp - 0x34a], 6
lea edx, [ebp - 0x14f]
lea eax, [ebp - 0x349]
mov ecx, 6
call fcn.004074bc
cmp dword [0x4746c0], 0
je 0x4656ab
imul eax, dword [ebp - 4], 0x27
mov cx, word [eax*8 + 0x4720f4]
lea edx, [ebp - 0x34f]
imul eax, dword [ebp - 4], 0x27
mov al, byte [eax*8 + 0x471fc8]
call fcn.00466508
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x46585a
jmp 0x4656e6
push 0
lea eax, [ebp - 0x18]
push eax
imul eax, dword [ebp - 4], 0x27
mov eax, dword [eax*8 + 0x4720f4]
push eax
lea eax, [ebp - 0x34f]
push eax
imul eax, dword [ebp - 4], 0x27
mov eax, dword [eax*8 + 0x471fc4]
push eax
call sub.kernel32.dll_WriteFile_1
test eax, eax
jne 0x4656e6
call sub.kernel32.dll_GetLastError_1
mov dword [ebp - 0x10], eax
jmp 0x46585a
lea eax, [ebp - 0x34f]
mov edx, 0x200
call fcn.004074d0
call sub.kernel32.dll_GetTickCount
mov dword [ebp - 0x1c], eax
xor eax, eax
mov dword [ebp - 0xc], eax
cmp dword [0x4746c0], 0
je 0x465772
imul eax, dword [ebp - 4], 0x27
mov cx, word [eax*8 + 0x4720f4]
lea edx, [ebp - 0x34f]
imul eax, dword [ebp - 4], 0x27
mov al, byte [eax*8 + 0x471fc8]
call fcn.004663a0
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x4657d0
call sub.kernel32.dll_GetLastError_1
mov dword [ebp - 0x10], eax
call sub.kernel32.dll_GetTickCount
sub eax, dword [ebp - 0x1c]
mov dword [ebp - 0x4a8], eax
xor eax, eax
mov dword [ebp - 0x4a4], eax
fild qword [ebp - 0x4a8]
fdiv dword [0x465860]
fcomp dword [0x465864]
fnstsw ax
sahf
ja 0x4657d0
jmp 0x4657d0
push 0
lea eax, [ebp - 0x18]
push eax
imul eax, dword [ebp - 4], 0x27
mov eax, dword [eax*8 + 0x4720f4]
push eax
lea eax, [ebp - 0x34f]
push eax
imul eax, dword [ebp - 4], 0x27
mov eax, dword [eax*8 + 0x471fc4]
push eax
call sub.kernel32.dll_ReadFile_1
test eax, eax
jne 0x4657d0
call sub.kernel32.dll_GetLastError_1
mov dword [ebp - 0x10], eax
call sub.kernel32.dll_GetTickCount
sub eax, dword [ebp - 0x1c]
mov ecx, 0x3e8
xor edx, edx
div ecx
cmp eax, 0xf
ja 0x4657d0
jmp 0x4657d0
lea eax, [ebp - 0x349]
mov dword [ebp - 0x14], eax
add dword [ebp - 0x14], 8
mov ecx, 0x15
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 8]
call fcn.004074bc
xor eax, eax
mov dword [ebp - 0x14], eax
lea ecx, [ebp - 0x44f]
mov edx, 0xc0801800
mov eax, dword [ebp - 4]
call fcn.00460828
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x465817
mov byte [0x471fb8], 0x80
jmp 0x46583a
lea ecx, [ebp - 0x44f]
mov edx, 0xc0f01800
mov eax, dword [ebp - 4]
call fcn.00460828
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x46585a
mov byte [0x471fb8], 0xf0
lea eax, [ebp - 0x44f]
mov dword [ebp - 0x14], eax
add dword [ebp - 0x14], 6
imul eax, dword [ebp - 4], 0x27
lea eax, [eax*8 + 0x4720d0]
mov edx, dword [ebp - 0x14]
call fcn.00409024
mov esp, ebp
pop ebp
ret