Function at 0x403660
Capabilities:
Check for time delay via gettickcount
Get file attributes

Disassembly:
push ecx
mov eax, dword [0x406824]
push ebx
push ebp
xor ebp, ebp
push esi
push edi
test eax, 0x80000001
mov dword [esp + 0x10], ebp
je 0x403682
cmp eax, 0x80008090
jne 0x4037e3
sar eax, 4
and eax, 1
push 0x731d
push 0x72711110
mov esi, eax
call fcn.00403aa8
mov edi, dword [0x406850]
mov dword [0x40674c], eax
mov eax, dword [0x4062b8]
pop ecx
cmp eax, 0x2e
pop ecx
jge 0x4036c7
cmp edi, 1
jne 0x4036bb
cmp eax, ebp
jle 0x4036bb
mov edi, eax
lea eax, [edi + esi]
push eax
call fcn.004035f0
pop ecx
jmp 0x4036eb
cmp edi, ebp
je 0x4036e7
test byte [esp + 0x18], 4
mov eax, 0x4062cb
je 0x4036eb
or byte [0x40674d], 2
or dword [0x406824], 4
jmp 0x4036eb
mov eax, dword [esp + 0x18]
lea ecx, [edi + esi - 1]
mov ebx, 0x4062cc
shl esi, 0xa
cmp dword [0x406850], ebp
mov dword [0x406858], ecx
jne 0x40373d
mov ecx, dword [0x4062b8]
cmp ecx, ebp
jle 0x40373d
cmp ecx, 0x2e
jle 0x40372e
push ebp
push ebp
call fcn.00403063
push eax
push ebx
call fcn.00403b64
add esp, 0x10
or dword [0x40674c], 0x3e
jmp 0x403790
mov eax, dword [0x4062b4]
or al, 0x40
or dword [0x40674c], eax
jmp 0x4037b8
mov ecx, dword [0x406854]
cmp ecx, 0x8700
jb 0x403774
mov dword [esp + 0x10], eax
mov byte [eax], 0x5c
push esi
inc eax
push 0xe0
push eax
push dword [0x406854]
mov eax, dword [0x406850]
push dword [eax*4 + 0x406778]
call dword [sym.imp.USER32.dll_GetMenuStringA]
jmp 0x403790
cmp ecx, 0x8400
jb 0x403790
mov eax, dword [0x40680c]
push dword [eax + ecx*4 - 0x21000]
push ebx
call fcn.00403b64
pop ecx
pop ecx
cmp dword [0x406854], 0x8302
jne 0x4037b0
cmp dword [0x4062b8], ebp
jle 0x4037b8
mov dword [0x4062cc], 0x5c
jmp 0x4037b8
cmp dword [0x4062b4], ebp
jne 0x4037bf
or dword [0x4062b4], 2
test byte [0x40674c], 0x40
jne 0x4037f2
cmp byte [0x4062cc], 0x5c
je 0x4037f2
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
test eax, eax
jge 0x4037f2
and dword [0x4062b4], 0xfffffffd
push 0x30
call dword [sym.imp.USER32.dll_MessageBeep]
xor eax, eax
jmp 0x4038e5
mov eax, esi
or al, 8
push eax
mov eax, dword [0x406850]
push dword [0x406854]
push dword [eax*4 + 0x406778]
call dword [sym.imp.USER32.dll_CheckMenuItem]
mov edi, dword [sym.imp.USER32.dll_FindWindowExA]
push ebp
mov ebp, str.32768
push ebp
push 0
push 0
call edi
test eax, eax
je 0x40383d
test esi, esi
je 0x403832
push 0
push ebp
push eax
push 0
call edi
push 0
push 0
push eax
call dword [sym.imp.USER32.dll_InvalidateRgn]
cmp dword [0x4062b4], 1
jne 0x4038bb
mov eax, dword [0x406770]
test eax, eax
jne 0x403864
push 0x110
push eax
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
test eax, eax
je 0x4038ae
add eax, 0xc
je 0x4038ae
mov ecx, 0x406774
mov edx, dword [ecx - 8]
mov dword [ecx], edx
sub ecx, 4
cmp ecx, 0x40674c
jg 0x403869
push ebx
push eax
mov dword [0x406750], eax
call fcn.00403b64
pop ecx
pop ecx
push 0x20
call dword [sym.imp.USER32.dll_MessageBeep]
mov eax, dword [0x406818]
cmp eax, 5
jae 0x40389f
inc eax
mov dword [0x406818], eax
push 0
or al, 8
push 0xffffffffffffffff
push eax
call fcn.00403e34
add esp, 0xc
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4038d0
and byte [eax], 0
jmp 0x4038d0
mov eax, dword [0x406818]
push 0
add eax, 0x11
push 0xffffffffffffffff
push eax
call fcn.00403e34
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetTickCount]
or byte [0x406827], 0x80
mov dword [0x406820], eax
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret