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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x52f8b0
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push esi
push edi
mov eax, dword [0x5852e0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov ebx, dword [ebp + 8]
xor esi, esi
mov dword [ebp - 0x10], 1
cmp ebx, 0x40a
ja 0x429b64
je 0x429ae7
lea eax, [ebx - 1]
cmp eax, 0xa2
ja case.0x42989b.4
movzx eax, byte [eax + 0x429cc4]
jmp dword [eax*4 + 0x429c8c]
mov eax, dword [edi]
lea ecx, [ebp - 0x10]
push ecx
push dword [ebp + 0x10]
mov ecx, edi
push dword [ebp + 0xc]
push ebx
call dword [eax + 0x78]
mov esi, eax
jmp 0x429bc2
mov eax, dword [edi]
lea ecx, [ebp - 0x10]
push ecx
push dword [ebp + 0x10]
mov ecx, edi
push dword [ebp + 0xc]
push ebx
call dword [eax + 0x48]
mov esi, eax
jmp 0x429bc2
mov eax, dword [edi]
lea ecx, [ebp - 0x10]
push ecx
push dword [ebp + 0x10]
mov ecx, edi
push dword [ebp + 0xc]
push ebx
call dword [eax + 0x4c]
mov esi, eax
jmp 0x429bc2
push dword [edi + 4]
call dword [sym.imp.USER32.dll_IsWindowVisible]
push eax
mov ecx, edi
call fcn.0042adb0
mov dword [ebp - 0x10], esi
xor esi, esi
jmp 0x429bc2
call fcn.00450730
push eax
call dword [sym.imp.USER32.dll_SetForegroundWindow]
xor eax, eax
mov ecx, edi
cmp dword [ebp + 0xc], 1
sete al
push eax
call fcn.0042adb0
mov dword [ebp - 0x10], esi
xor esi, esi
jmp 0x429bc2
mov dword [ebp - 0x10], esi
mov esi, dword [ebp + 0x10]
test esi, esi
je 0x429955
mov ecx, dword [edi + 0x37c]
test ecx, ecx
je 0x429955
add ecx, 0x280
call fcn.00450730
and dword [esi + 0x18], 0xfffffffb
mov dword [esi + 4], eax
xor esi, esi
jmp 0x429bc2
lea ecx, [edi + 0x30]
call fcn.00452e20
test eax, eax
je case.0x42989b.6
push dword [edi + 4]
call dword [sym.imp.USER32.dll_IsZoomed]
lea ecx, [edi + 0x30]
test eax, eax
je 0x429999
push str.restore
call fcn.00452720
test eax, eax
je 0x429992
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx + 0x10c]
push 0x541884
jmp 0x4299b8
push 0x541884
call fcn.00452720
test eax, eax
je 0x4299b3
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx + 0x10c]
push str.restore
lea ecx, [edi + 0x30]
call fcn.00452720
test eax, eax
je case.0x42989b.6
mov edx, dword [eax]
mov ecx, eax
push 0
call dword [edx + 0x10c]
mov dword [ebp - 0x10], esi
xor esi, esi
jmp 0x429bc2
mov dword [ebp - 0x10], esi
cmp dword [edi + 0x38c], esi
je 0x429a07
mov dword [edi + 0x38c], esi
cmp dword [edi + 0x388], esi
je 0x429a01
push 0
push 0
push 1
push 0x25
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
mov dword [edi + 0x388], esi
xor esi, esi
jmp 0x429bc2
mov ecx, dword [edi + 0x37c]
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x429a2d
add ecx, 0x280
call fcn.00450730
push eax
call dword [sym.imp.USER32.dll_SetFocus]
cmp dword [edi + 0x38c], esi
jne 0x429955
push 0
lea esi, [edi + 0x388]
mov dword [edi + 0x38c], 1
push esi
push 0
push 0x26
mov dword [esi], 0
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
cmp dword [esi], 0
je 0x429955
push 0
push 0
push 0
push 0x25
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
xor esi, esi
jmp 0x429bc2
call fcn.004207e0
mov ecx, eax
call fcn.004208d0
test eax, eax
je 0x429955
push dword [edi + 4]
call dword [sym.imp.USER32.dll_IsZoomed]
mov ecx, edi
test eax, eax
je 0x429aa9
call fcn.004290b0
xor esi, esi
jmp 0x429bc2
call fcn.00429060
xor esi, esi
jmp 0x429bc2
mov eax, dword [edi]
lea ecx, [ebp - 0x10]
push ecx
push dword [ebp + 0x10]
mov ecx, edi
push dword [ebp + 0xc]
push ebx
call dword [eax + 0x5c]
mov esi, eax
jmp 0x429bc2
mov eax, dword [edi]
lea ecx, [ebp - 0x10]
push ecx
push dword [ebp + 0x10]
mov ecx, edi
push dword [ebp + 0xc]
push ebx
call dword [eax + 0x6c]
mov esi, eax
jmp 0x429bc2
call fcn.00403610
mov ecx, eax
test ecx, ecx
je 0x429c7f
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
push str.play
lea ecx, [ebp + 8]
mov dword [ebp - 4], 0
call fcn.004032c0
test al, al
jne 0x429b28
push 4
push str.play
lea ecx, [ebp + 8]
call fcn.00403ba0
lea eax, [ebp + 8]
mov dword [ebp - 4], 1
push eax
mov ecx, edi
call fcn.0042b1a0
mov edx, dword [ebp + 8]
or eax, 0xffffffff
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x429955
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
xor esi, esi
jmp 0x429bc2
cmp ebx, 0x464
je 0x429bb7
cmp ebx, 0x591
je 0x429b79
mov dword [ebp - 0x10], esi
jmp 0x429bc2
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x429bc2
mov ecx, dword [eax + 0x24]
test ecx, ecx
je 0x429baa
mov eax, dword [ecx]
call dword [eax + 8]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x24]
test ecx, ecx
je 0x429baa
mov edx, dword [ecx]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
mov eax, dword [ebp + 0xc]
mov dword [eax + 0x24], esi
push 0x28
push eax
call fcn.00448aa0
add esp, 8
jmp 0x429bc2
push 1
push dword [edi + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [edi + 0x360]
test eax, eax
je 0x429c41
cmp ebx, eax
jne 0x429c41
mov eax, dword [ebp + 0x10]
add eax, 0xfffffdfe
cmp eax, 1
ja 0x429c3f
cmp dword [0x58b1d8], 0
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
je 0x429bfb
call esi
sub eax, dword [0x58b1d8]
cmp eax, 0x1f4
jb 0x429c38
call esi
cmp dword [edi + 0x37c], 0
mov dword [0x58b1d8], eax
je 0x429c2d
push dword [edi + 4]
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
jne 0x429c2d
mov ecx, dword [edi + 0x37c]
push 1
push 1
add ecx, 0x280
call fcn.00457050
push 1
push dword [edi + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
mov dword [ebp - 0x10], 1
xor esi, esi
cmp dword [ebp - 0x10], 0
je 0x429c5d
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push dword [ebp + 0x10]
mov ecx, edi
push dword [ebp + 0xc]
push ebx
call fcn.0045a960
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push 0x80004005
call fcn.004032a0
nop dword [eax]
mov byte [0xd4004298], al
cwde
inc edx
add ch, ch
cwde
inc edx
add dh, cl
lcall 0x42, 0x99d00042
mov ebx, 0x8004298
cdq
inc edx
add byte [edi], ch
cdq
inc edx
add byte [ecx + ebx*4 + 0x42], bl
add byte [ebp - 0x25ffbd66], dh
cdq
inc edx
add byte [esi], cl
lcall 0x42, 0x9a7a0042
je 0x429c5d
inc edx
add byte [eax], al
add dword [edx], eax
or eax, 218956803
or eax, 218959117
or eax, 218957069
or eax, 218959117
push es
or eax, 218959117
or eax, 218959117
or eax, 218959117
or eax, 218959117
or eax, 218959117
or eax, 218959117
or eax, 218959117
or eax, 218959117
or eax, 218959117
pop es
or byte [218959117], cl
or eax, 218959117
or eax, 218959117
or eax, 218959117
or eax, 218959117
or eax, 218959117
or eax, 218959117
or eax, 218959117
or eax, 218959117
or eax, 218959117
or eax, 218959117
or eax, 218959117
or dword [218959117], ecx
or eax, 218959117
or eax, 218959117
or eax, 218959117
or eax, 218959117
or eax, 218827277
or al, 204
int3