Function at 0x40aff0
Capabilities:
Check for time delay via gettickcount
Check if file exists

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x453f13
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x908
mov eax, dword [0x464738]
push ebx
xor eax, ebp
push esi
mov esi, dword [ebp + 8]
push edi
mov dword [esp + 0x90c], eax
mov dword [esp + 0x14], ecx
xor ebx, ebx
mov word [esp + 0x108], bx
xor eax, eax
mov ecx, 0x1ff
lea edi, [esp + 0x10a]
rep stosd dword es:[edi], eax
push 0x2e
push esi
stosw word es:[edi], ax
call dword [sym.imp.MSVCR71.dll_wcsrchr]
mov edi, eax
add esp, 8
cmp edi, ebx
je 0x40b0c9
mov ecx, dword [esp + 0x14]
push 0x800
lea eax, [esp + 0x10c]
push eax
push edi
call fcn.004091c0
test eax, eax
jne 0x40b0c9
push 0x400
call sub.MFC71U.DLL_SerializeElements
add esp, 4
push edi
push str.G_STR37
mov ecx, 0x464880
mov esi, eax
call fcn.00402060
mov ecx, eax
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
push eax
push esi
call dword [sym.imp.MSVCR71.dll_swprintf]
mov ecx, dword [0x4649e0]
mov edx, dword [ecx + 0x20]
add esp, 0xc
push esi
push ebx
push 0x1402
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
push esi
call sub.MFC71U.DLL_operator_new
add esp, 4
jmp 0x40b428
lea ecx, [esp + 0xc]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_3]
push esi
lea eax, [esp + 0x14]
push 0x467d34
push eax
mov dword [esp + 0x928], ebx
call fcn.00402f50
add esp, 0xc
push eax
lea ecx, [esp + 0x10]
mov byte [esp + 0x920], 1
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::operator]
lea ecx, [esp + 0x10]
mov byte [esp + 0x91c], bl
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea ecx, [esp + 0xc]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x40b175
push 0x400
call sub.MFC71U.DLL_SerializeElements
add esp, 4
push esi
push str.G_STR25
mov ecx, 0x464880
mov edi, eax
call fcn.00402060
mov ecx, eax
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
push eax
push edi
call dword [sym.imp.MSVCR71.dll_swprintf]
mov ecx, dword [0x4649e0]
mov edx, dword [ecx + 0x20]
add esp, 0xc
push edi
push ebx
push 0x1402
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
push edi
jmp 0x40b416
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x1c]
push esi
mov dword [esp + 0x1c], ebx
call fcn.00409600
test eax, eax
je 0x40b41e
cmp dword [esp + 0x10], ebx
je 0x40b1ea
push 0x400
call sub.MFC71U.DLL_SerializeElements
add esp, 4
push esi
push str.G_STR36
mov ecx, 0x464880
mov edi, eax
call fcn.00402060
mov ecx, eax
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
push eax
push edi
call dword [sym.imp.MSVCR71.dll_swprintf]
mov edx, dword [0x4649e0]
mov eax, dword [edx + 0x20]
add esp, 0xc
push edi
push ebx
push 0x1402
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
push edi
jmp 0x40b416
test byte [esp + 0x94], 1
je 0x40b273
lea ecx, [esp + 0xc]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
push eax
lea ecx, [esp + 0x9c]
push ecx
call fcn.00412900
add esp, 8
test eax, eax
je 0x40b41e
push 0x467cec
mov dword [esp + 0x14], 0x467cec
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x38]
lea eax, [esp + 0x18]
mov dword [esp + 0x20], ecx
push eax
mov ecx, 0x467cd8
mov byte [esp + 0x920], 2
mov dword [esp + 0x28], edx
call fcn.00409b20
push 0x467cec
mov byte [esp + 0x920], bl
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 1
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
push eax
lea ecx, [esp + 0x30]
push ecx
call fcn.00407d30
mov edi, eax
add esp, 0xc
cmp edi, ebx
je 0x40b41e
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x467d18]
cmp eax, 0xfa0
ja 0x40b2b6
cmp dword [0x467d24], ebx
jne 0x40b3ce
mov dword [0x467d24], 1
mov dword [0x467d1c], edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
lea edx, [esp + 0xc]
push edx
mov ecx, 0x467d04
mov dword [0x467d18], eax
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::operator]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov dword [0x467d08], eax
mov eax, dword [esp + 0x38]
mov dword [0x467d0c], ecx
push 0x2e
lea ecx, [esp + 0x10]
mov dword [0x467d10], edx
mov dword [0x467d14], eax
mov dword [0x467d2c], ebx
mov dword [0x467d28], 1
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::GetBuffer]
push eax
call dword [sym.imp.MSVCR71.dll_wcsrchr]
add esp, 8
push 0xffffffffffffffff
lea ecx, [esp + 0x10]
mov edi, eax
call dword [sym.imp.MFC71U.DLL_CDC::ReleaseAttribDC]
cmp edi, ebx
je 0x40b41e
push edi
push 0x456e9c
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
test eax, eax
lea ecx, [esp + 0xc]
je 0x40b35a
push ebx
jmp 0x40b35c
push 1
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
mov ecx, dword [esp + 0x18]
push eax
call fcn.0040a6f0
cmp eax, ebx
je 0x40b41e
mov eax, dword [esi + 0x210]
cmp eax, 0xffffffff
je 0x40b39d
mov edx, dword [esi + 0x214]
inc edx
mov ecx, edx
cmp eax, ecx
mov dword [esi + 0x214], edx
jae 0x40b398
mov dword [esi + 0x214], eax
cmp eax, 0xffffffff
jne 0x40b3a6
cmp dword [esi + 0x208], 0xffffffff
je 0x40b41e
mov ecx, dword [ebp + 0xc]
push ecx
mov ecx, dword [esp + 0x18]
push esi
call fcn.0040a210
lea ecx, [esp + 0xc]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
push eax
lea edx, [esp + 0x2c]
push edx
call fcn.00405c00
add esp, 8
jmp 0x40b41e
push 0x400
call sub.MFC71U.DLL_SerializeElements
add esp, 4
push str.G_STR3
mov ecx, 0x464880
mov esi, eax
call fcn.00402060
mov ecx, eax
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
push eax
push esi
call dword [sym.imp.MSVCR71.dll_swprintf]
mov eax, dword [0x4649e0]
mov ecx, dword [eax + 0x20]
add esp, 8
push esi
push ebx
push 0x1402
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
push esi
call sub.MFC71U.DLL_operator_new
add esp, 4
lea ecx, [esp + 0xc]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
mov ecx, dword [esp + 0x914]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x90c]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00415ae8
mov esp, ebp
pop ebp
ret 8