Function at 0x403a60
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42f518
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x85c
push ebx
push esi
mov esi, ecx
push edi
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x14], esi
call fcn.00409e96
mov ecx, dword [esi + 0x6fc8]
xor eax, eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
mov edx, dword [ecx]
push 0x400
lea eax, [ebp - 0x868]
xor ebx, ebx
mov dword [ebp - 4], ebx
push eax
mov byte [ebp - 4], 1
call dword [edx + 0x5c]
xor ecx, ecx
cmp eax, ebx
setne cl
mov dword [ebp - 4], ebx
mov eax, ecx
cmp eax, ebx
je 0x403f44
lea edx, [ebp - 0x164]
push edx
lea eax, [ebp - 0x54]
push eax
lea ecx, [ebp - 0x50]
push ecx
lea edx, [ebp - 0x28]
push edx
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x868]
push str._d__d__d__d__s
push ecx
call fcn.00413182
mov ecx, dword [ebp - 0x50]
add esp, 0x1c
lea edx, [ebp - 0x24]
push edx
mov eax, ecx
shr eax, 0x10
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_DosDateTimeToFileTime]
lea eax, [ebp - 0x24]
push eax
mov ecx, eax
push ecx
call dword [sym.imp.KERNEL32.dll_LocalFileTimeToFileTime]
lea edx, [ebp - 0x164]
push edx
lea eax, [esi + 0x70cb]
push eax
lea ecx, [ebp - 0x468]
push ecx
call fcn.004134fd
add esp, 0xc
push ebx
lea edx, [ebp - 0x164]
push edx
lea ecx, [ebp - 0x48]
call fcn.00409f51
test eax, eax
je 0x403dbb
lea ecx, [ebp - 0x48]
call fcn.00409c60
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0x48]
call fcn.00409c18
lea ecx, [ebp - 0x48]
call fcn.00409c9a
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x18], edx
push ecx
lea edx, [ebp - 0x24]
push edx
mov dword [ebp - 0x1c], eax
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
test eax, eax
je 0x403c20
mov eax, dword [0x431f20]
mov cx, word [0x431f24]
lea edx, [ebp - 0x60]
push edx
mov dword [ebp - 0x364], eax
lea eax, [ebp - 0x264]
push eax
push ebx
mov word [ebp - 0x360], cx
lea ecx, [ebp - 0x164]
push ebx
push ecx
call fcn.00412f51
lea eax, [ebp - 0x60]
add esp, 0x14
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x403bc0
lea edi, [ebp - 0x264]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x403bd0
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
lea eax, [ebp - 0x264]
rep movsb byte es:[edi], byte [esi]
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x403bf0
lea edi, [ebp - 0x364]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x403c02
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [ebp - 0x14]
mov ebx, 1
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x1c]
xor ecx, ecx
cmp eax, edx
jne 0x403c31
cmp ecx, dword [ebp - 0x18]
je 0x403c36
mov ebx, 1
push str.patch.exx
lea edx, [ebp - 0x164]
push edx
call fcn.0041f0fe
add esp, 8
test eax, eax
jne 0x403c67
test ebx, ebx
je 0x403cea
mov dword [esi + 0x67b0], 5
mov byte [esi + 0x6fbc], 1
test ebx, ebx
je 0x403cea
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esi + 0x67a8]
lea edx, [ebp - 0x164]
push edx
add ecx, 0xcc
call fcn.00425b98
mov eax, dword [ebp - 0x54]
mov edx, dword [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x24]
push ecx
push edx
lea eax, [ebp - 0x164]
push eax
lea ecx, [ebp - 0x468]
push ecx
mov ecx, esi
call fcn.00403560
test eax, eax
jne 0x403cea
cmp dword [0x447db0], 7
je 0x403cea
call edi
mov esi, eax
jmp 0x403cc0
call edi
sub eax, esi
cmp eax, 0x1388
jb 0x403cc0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0x71e0]
cmp eax, 0x28
jge 0x403f04
inc eax
test ebx, ebx
mov dword [ecx + 0x71e0], eax
mov esi, ecx
jne 0x403c71
mov edx, dword [esi + 0x71d4]
inc edx
mov eax, edx
test eax, eax
mov dword [esi + 0x71d4], edx
fild dword [esi + 0x71d4]
jge 0x403d09
fadd qword [0x431f18]
mov edx, dword [esi + 0x71d0]
fild dword [esi + 0x71d0]
test edx, edx
jge 0x403d1f
fadd qword [0x431f18]
fdivp st(1)
mov ecx, dword [esi + 0x67a8]
mov eax, dword [ecx]
fstp qword [ebp - 0x1c]
call dword [eax + 0x80]
test eax, eax
je 0x403d96
mov eax, dword [esi + 0x67a8]
fld qword [ebp - 0x1c]
push 0x105
fstp qword [esi + 0x71f0]
mov ecx, dword [eax + 0x138]
push 0
add eax, 0x11c
push 0
push ecx
call dword [sym.imp.USER32.dll_RedrawWindow]
mov esi, dword [esi + 0x67a8]
mov eax, dword [esi + 0x74]
fild dword [esi + 0x74]
test eax, eax
mov edx, dword [esi + 0x78]
push 0x42
push edx
jge 0x403d7c
fadd qword [0x431f18]
fmul qword [ebp - 0x1c]
call fcn.004135e8
push eax
push 0
push 0
push 0
lea ecx, [esi + 0x11c]
call fcn.00425d5e
lea ecx, [ebp - 0x48]
mov dword [ebp - 4], 0xffffffff
call fcn.00409eba
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x164]
push str.patch.exx
push eax
call fcn.0041f0fe
add esp, 8
test eax, eax
jne 0x403e37
push ebx
push str.patch.exe
lea ecx, [ebp - 0x48]
call fcn.00409f51
lea ecx, [ebp - 0x48]
call fcn.00409c60
lea ecx, [ebp - 0x30]
push ecx
lea ecx, [ebp - 0x48]
call fcn.00409c18
lea ecx, [ebp - 0x48]
call fcn.00409c9a
mov ecx, dword [ebp - 0x28]
xor edi, edi
cmp ecx, eax
jne 0x403e0a
cmp edi, edx
je 0x403e0f
mov ebx, 1
lea edx, [ebp - 0x30]
push edx
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
test eax, eax
je 0x403e26
mov ebx, 1
push str.patch.exx
lea ecx, [ebp - 0x164]
push ecx
jmp 0x403c42
mov edx, dword [0x431f20]
mov ax, word [0x431f24]
lea ecx, [ebp - 0x60]
push ecx
mov dword [ebp - 0x264], edx
lea edx, [ebp - 0x364]
push edx
push ebx
mov word [ebp - 0x260], ax
lea eax, [ebp - 0x164]
push ebx
push eax
call fcn.00412f51
lea eax, [ebp - 0x60]
add esp, 0x14
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x403e71
lea edi, [ebp - 0x364]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x403e81
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
lea eax, [ebp - 0x364]
rep movsb byte es:[edi], byte [esi]
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x403ea1
lea edi, [ebp - 0x264]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x403eb3
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x164]
push str.patch.exx
push ecx
mov ebx, 1
call fcn.0041f0fe
mov esi, dword [ebp - 0x14]
add esp, 8
test eax, eax
jne 0x403c6b
mov eax, esi
mov dword [eax + 0x67b0], 5
mov byte [eax + 0x6fbc], bl
jmp 0x403c6b
mov dword [ecx + 0x67b0], 8
mov dword [ecx + 0x71e0], 0
mov dword [ecx + 0x71dc], 2
lea ecx, [ebp - 0x48]
mov dword [ebp - 4], 0xffffffff
call fcn.00409eba
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
xor eax, eax
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret
mov byte [esi + 0x6fbc], 1
jmp 0x403f22