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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6c
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0x44]
movzx ecx, byte [eax + 0x56d]
test ecx, ecx
je 0x4ddff7
mov edx, dword [ebp - 0x44]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x44]
mov edx, dword [eax + 0xa8]
call edx
mov eax, dword [ebp - 0x44]
movzx ecx, byte [eax + 0x581]
test ecx, ecx
jne 0x4de070
mov edx, dword [ebp - 0x44]
movzx eax, byte [edx + 0x654]
test eax, eax
je 0x4de070
mov ecx, dword [ebp - 0x44]
movzx edx, byte [ecx + 0x4b9]
test edx, edx
jne 0x4de070
mov eax, dword [ebp - 0x44]
movzx ecx, byte [eax + 0x655]
test ecx, ecx
jne 0x4de070
mov edx, dword [ebp - 0x44]
movzx eax, byte [edx + 0x368]
test eax, eax
je 0x4de067
mov ecx, dword [ebp - 0x44]
movzx edx, byte [ecx + 0x368]
test edx, edx
je 0x4de070
mov eax, dword [ebp - 0x44]
movzx ecx, byte [eax + 0x664]
test ecx, ecx
je 0x4de070
mov edx, dword [ebp - 0x44]
movzx eax, byte [edx + 0x665]
test eax, eax
jne 0x4de070
mov dword [ebp - 0x48], 1
jmp 0x4de077
mov dword [ebp - 0x48], 0
mov cl, byte [ebp - 0x48]
mov byte [ebp - 0x11], cl
mov edx, dword [ebp - 0x44]
movzx eax, byte [edx + 0x654]
test eax, eax
je 0x4de0d0
mov ecx, dword [ebp - 0x44]
fild dword [ecx + 0x650]
fdivr qword [0x6069d8]
mov edx, dword [ebp - 0x44]
fdiv qword [edx + 0x4f0]
fstp qword [ebp - 8]
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x44]
mov edx, dword [eax + 0x4b4]
imul edx, dword [ecx + 0x650]
mov dword [ebp - 0x4c], edx
fild dword [ebp - 0x4c]
fdivr qword [0x6069d8]
fstp dword [ebp - 0x50]
fld dword [ebp - 0x50]
fstp qword [ebp - 0x10]
jmp 0x4de0ea
mov eax, dword [ebp - 0x44]
fild dword [eax + 0x4b4]
mov ecx, dword [ebp - 0x44]
fdiv qword [ecx + 0x4f0]
fstp qword [ebp - 8]
fld1
fstp qword [ebp - 0x10]
mov edx, dword [ebp - 0x44]
movzx eax, byte [edx + 0x581]
test eax, eax
je 0x4de333
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x44]
mov eax, dword [ecx + 0x4e4]
cmp eax, dword [edx + 0x4fc]
jl 0x4de122
mov ecx, dword [ebp - 0x44]
movzx edx, byte [ecx + 0x500]
test edx, edx
je 0x4de2f0
mov eax, dword [ebp - 0x44]
movzx ecx, byte [eax + 0x468]
test ecx, ecx
jne 0x4de15a
mov edx, dword [ebp - 0x44]
movzx eax, byte [edx + 0x501]
test eax, eax
jne 0x4de15a
mov ecx, dword [ebp - 0x44]
mov byte [ecx + 0x468], 1
push 1
mov edx, dword [ebp - 0x44]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x44]
mov edx, dword [eax + 0xf8]
call edx
mov eax, dword [0x6a15a4]
and eax, 1
jne 0x4de17e
mov ecx, dword [0x6a15a4]
or ecx, 1
mov dword [0x6a15a4], ecx
call dword [sym.imp.kernel32.dll_GetTickCount]
mov dword [0x6a15a0], eax
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x44]
mov ecx, dword [edx + 0x4e4]
cmp ecx, dword [eax + 0x4fc]
jl 0x4de1a4
mov edx, dword [ebp - 0x44]
movzx eax, byte [edx + 0x500]
test eax, eax
je 0x4de2f0
push 0
mov ecx, dword [ebp - 0x44]
call fcn.004cd360
mov ecx, dword [ebp - 0x44]
mov edx, dword [ecx + 0x4e4]
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x44]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x44]
mov eax, dword [edx + 0x24]
call eax
mov byte [ebp - 0x1d], al
movzx ecx, byte [ebp - 0x1d]
test ecx, ecx
je 0x4de283
mov edx, dword [ebp - 0x44]
fld qword [edx + 0x4c0]
fadd qword [ebp - 0x10]
mov eax, dword [ebp - 0x44]
fstp qword [eax + 0x4c0]
mov ecx, dword [ebp - 0x44]
fld qword [ecx + 0x4c0]
fsub qword [0x606808]
mov edx, dword [ebp - 0x44]
fstp qword [edx + 0x4c0]
mov ecx, dword [ebp - 0x44]
call fcn.004ddda0
mov eax, dword [ebp - 0x44]
fld1
fcomp qword [eax + 0x4c0]
fnstsw ax
test ah, 0x41
jp 0x4de261
mov ecx, dword [ebp - 0x44]
call fcn.004d9ca0
mov ecx, dword [ebp - 0x44]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x44]
mov eax, dword [edx + 0x24]
call eax
mov byte [ebp - 0x1e], al
movzx ecx, byte [ebp - 0x1e]
test ecx, ecx
jne 0x4de23f
jmp 0x4de261
mov ecx, dword [ebp - 0x44]
call fcn.004ddda0
mov edx, dword [ebp - 0x44]
fld qword [edx + 0x4c0]
fsub qword [0x606808]
mov eax, dword [ebp - 0x44]
fstp qword [eax + 0x4c0]
jmp 0x4de20b
fld qword [ebp - 0x10]
fstp dword [ebp - 0x54]
fld dword [ebp - 0x54]
push ecx
fstp dword [esp]
mov ecx, dword [ebp - 0x44]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x44]
mov eax, dword [edx + 0x28]
call eax
mov ecx, dword [ebp - 0x44]
call fcn.004ddda0
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ecx + 0x4e4]
jne 0x4de298
mov al, 1
jmp 0x4de7cb
call dword [sym.imp.kernel32.dll_GetTickCount]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
sub eax, dword [0x6a15a0]
cmp eax, 0x3e8
jae 0x4de2bf
mov ecx, dword [ebp - 0x44]
movzx edx, byte [ecx + 0x501]
test edx, edx
je 0x4de2eb
mov eax, dword [ebp - 0x44]
mov byte [eax + 0x501], 0
call dword [sym.imp.kernel32.dll_GetTickCount]
mov dword [0x6a15a0], eax
mov ecx, dword [ebp - 0x44]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x44]
mov eax, dword [edx + 0x16c]
call eax
mov al, 1
jmp 0x4de7cb
jmp 0x4de17e
mov ecx, dword [ebp - 0x44]
movzx edx, byte [ecx + 0x468]
test edx, edx
je 0x4de333
mov eax, dword [ebp - 0x44]
mov byte [eax + 0x468], 0
mov ecx, dword [ebp - 0x44]
mov edx, dword [ecx + 0x514]
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax + 0x514]
mov edx, dword [edx]
mov eax, dword [edx + 0x3c]
call eax
push 1
mov ecx, dword [ebp - 0x44]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x44]
mov eax, dword [edx + 0xfc]
call eax
mov ecx, dword [ebp - 0x44]
movzx edx, byte [ecx + 0x4f8]
test edx, edx
jne 0x4de7c1
mov eax, dword [ebp - 0x44]
fldz
fcomp qword [eax + 0x4f0]
fnstsw ax
test ah, 5
jp 0x4de7c1
call dword [sym.imp.WINMM.DLL_timeGetTime]
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x2c], 0
movzx edx, byte [ebp - 0x11]
test edx, edx
jne 0x4de381
mov ecx, dword [ebp - 0x44]
call fcn.004ddf10
mov byte [ebp - 0x1f], 0
mov eax, dword [ebp - 0x44]
cmp dword [eax + 0x4e8], 1
jne 0x4de561
mov ecx, dword [ebp - 0x44]
mov edx, dword [ecx + 0x4b0]
add edx, 1
mov eax, dword [ebp - 0x44]
mov dword [eax + 0x4b0], edx
mov ecx, dword [ebp - 0x44]
fld qword [0x6068f0]
fmul qword [ecx + 0x4f0]
sub esp, 8
fstp qword [esp]
call fcn.005ce110
add esp, 8
call fcn.005cb710
mov edx, dword [ebp - 0x44]
cmp dword [edx + 0x4b0], eax
jl 0x4de3e9
mov eax, dword [ebp - 0x44]
movzx ecx, byte [eax + 0x56b]
test ecx, ecx
jne 0x4de55c
mov byte [ebp - 0x2d], 0
movzx edx, byte [ebp - 0x11]
test edx, edx
je 0x4de43f
mov eax, dword [ebp - 0x44]
movzx ecx, byte [eax + 0x4ba]
test ecx, ecx
je 0x4de430
fld qword [ebp - 8]
fmul qword [0x613610]
call fcn.005cb710
mov dword [ebp - 0x58], eax
fild dword [ebp - 0x58]
mov edx, dword [ebp - 0x44]
fcomp qword [edx + 0x4c8]
fnstsw ax
test ah, 0x41
jnp 0x4de430
mov dword [ebp - 0x5c], 0
jmp 0x4de437
mov dword [ebp - 0x5c], 1
mov al, byte [ebp - 0x5c]
mov byte [ebp - 0x2d], al
jmp 0x4de456
mov ecx, dword [ebp - 0x44]
fld qword [ebp - 8]
fcomp qword [ecx + 0x4c8]
fnstsw ax
test ah, 0x41
jp 0x4de456
mov byte [ebp - 0x2d], 1
movzx edx, byte [ebp - 0x2d]
test edx, edx
je 0x4de55c
mov eax, dword [ebp - 0x44]
movzx ecx, byte [eax + 0x581]
test ecx, ecx
jne 0x4de529
mov edx, dword [ebp - 0x44]
fld1
fcomp qword [edx + 0x4f0]
fnstsw ax
test ah, 0x44
jp 0x4de529
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax + 0x660]
add ecx, 1
mov edx, dword [ebp - 0x44]
mov dword [edx + 0x660], ecx
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x4b4]
add eax, 0x3e7
mov ecx, dword [ebp - 0x44]
cdq
idiv dword [ecx + 0x4b4]
mov edx, dword [ebp - 0x44]
cmp dword [edx + 0x660], eax
jb 0x4de529
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x24]
sub ecx, dword [eax + 0x65c]
cmp ecx, 0x320
ja 0x4de503
mov edx, dword [ebp - 0x44]
mov eax, dword [edx + 0x658]
add eax, 1
mov ecx, dword [ebp - 0x44]
mov dword [ecx + 0x658], eax
mov edx, dword [ebp - 0x44]
cmp dword [edx + 0x658], 3
jl 0x4de501
mov eax, dword [ebp - 0x44]
mov byte [eax + 0x655], 1
jmp 0x4de510
mov ecx, dword [ebp - 0x44]
mov dword [ecx + 0x658], 0
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x24]
mov dword [edx + 0x65c], eax
mov ecx, dword [ebp - 0x44]
mov dword [ecx + 0x660], 0
mov edx, dword [ebp - 0x44]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x44]
mov edx, dword [eax + 0x24]
call edx
mov byte [ebp - 0x2e], al
movzx eax, byte [ebp - 0x2e]
test eax, eax
je 0x4de54e
mov ecx, dword [ebp - 0x44]
mov dword [ecx + 0x4e8], 2
mov edx, dword [ebp - 0x44]
mov byte [edx + 0x4ba], 1
mov byte [ebp - 0x1f], 1
jmp 0x4de6c1
mov eax, dword [ebp - 0x44]
cmp dword [eax + 0x4e8], 2
jne 0x4de6c1
mov ecx, dword [ebp - 0x44]
mov dword [ecx + 0x4e8], 3
mov edx, dword [ebp - 0x44]
fld qword [edx + 0x4c0]
fadd qword [ebp - 0x10]
mov eax, dword [ebp - 0x44]
fstp qword [eax + 0x4c0]
mov ecx, dword [ebp - 0x44]
fld qword [ecx + 0x4c0]
fsub qword [0x606808]
mov edx, dword [ebp - 0x44]
fstp qword [edx + 0x4c0]
mov ecx, dword [ebp - 0x44]
call fcn.004ddda0
mov eax, dword [ebp - 0x44]
fld1
fcomp qword [eax + 0x4c0]
fnstsw ax
test ah, 0x41
jp 0x4de61e
mov ecx, dword [ebp - 0x44]
call fcn.004d9ca0
mov ecx, dword [ebp - 0x44]
mov edx, dword [ecx + 0x4b0]
add edx, 1
mov eax, dword [ebp - 0x44]
mov dword [eax + 0x4b0], edx
mov ecx, dword [ebp - 0x44]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x44]
mov eax, dword [edx + 0x24]
call eax
mov byte [ebp - 0x2f], al
movzx ecx, byte [ebp - 0x2f]
test ecx, ecx
jne 0x4de5fc
jmp 0x4de61e
mov ecx, dword [ebp - 0x44]
call fcn.004ddda0
mov edx, dword [ebp - 0x44]
fld qword [edx + 0x4c0]
fsub qword [0x606808]
mov eax, dword [ebp - 0x44]
fstp qword [eax + 0x4c0]
jmp 0x4de5b3
fld qword [ebp - 0x10]
fstp dword [ebp - 0x60]
fld dword [ebp - 0x60]
push ecx
fstp dword [esp]
mov ecx, dword [ebp - 0x44]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x44]
mov eax, dword [edx + 0x28]
call eax
mov ecx, dword [ebp - 0x44]
call fcn.004ddda0
movzx ecx, byte [ebp - 0x11]
test ecx, ecx
je 0x4de691
mov edx, dword [ebp - 0x44]
fld qword [edx + 0x4c8]
fsub qword [ebp - 8]
fsub qword [0x613608]
fcomp qword [0x606880]
fnstsw ax
test ah, 0x41
jne 0x4de67e
mov eax, dword [ebp - 0x44]
fld qword [eax + 0x4c8]
fsub qword [ebp - 8]
fsub qword [0x613608]
fstp qword [ebp - 0x68]
jmp 0x4de683
fldz
fstp qword [ebp - 0x68]
mov ecx, dword [ebp - 0x44]
fld qword [ebp - 0x68]
fstp qword [ecx + 0x4c8]
jmp 0x4de6a6
mov edx, dword [ebp - 0x44]
fld qword [edx + 0x4c8]
fsub qword [ebp - 8]
mov eax, dword [ebp - 0x44]
fstp qword [eax + 0x4c8]
mov ecx, dword [ebp - 0x44]
cmp dword [ecx + 0xb4], 0
jle 0x4de6bd
mov edx, dword [ebp - 0x44]
fldz
fstp qword [edx + 0x4c8]
mov byte [ebp - 0x1f], 1
movzx eax, byte [ebp - 0x1f]
test eax, eax
jne 0x4de758
mov ecx, dword [ebp - 0x44]
mov dword [ecx + 0x4e8], 3
mov edx, dword [ebp - 0x44]
mov dword [edx + 0x4b0], 0
mov eax, dword [ebp - 0x44]
movzx ecx, byte [eax + 0x4ba]
test ecx, ecx
je 0x4de707
mov edx, dword [ebp - 0x44]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x44]
mov edx, dword [eax + 0x16c]
call edx
jmp 0x4de758
mov eax, dword [ebp - 0x44]
fld qword [ebp - 8]
fsub qword [eax + 0x4c8]
call fcn.005cb710
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jle 0x4de758
movzx ecx, byte [ebp + 8]
test ecx, ecx
jne 0x4de730
xor al, al
jmp 0x4de7cb
mov edx, dword [ebp - 0x44]
mov eax, dword [edx + 0x4dc]
add eax, 1
mov ecx, dword [ebp - 0x44]
mov dword [ecx + 0x4dc], eax
mov edx, dword [ebp - 0x34]
push edx
call dword [sym.imp.kernel32.dll_Sleep]
mov eax, dword [ebp - 0x2c]
add eax, dword [ebp - 0x34]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x44]
movzx edx, byte [ecx + 0x56c]
test edx, edx
je 0x4de7c1
call dword [sym.imp.WINMM.DLL_timeGetTime]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
sub eax, dword [ebp - 0x24]
sub eax, dword [ebp - 0x2c]
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp - 0x40]
shl ecx, 1
sub ecx, dword [ebp - 0x2c]
cmp ecx, 0xfa
jle 0x4de794
mov dword [ebp - 0x6c], 0xfa
jmp 0x4de79f
mov edx, dword [ebp - 0x40]
shl edx, 1
sub edx, dword [ebp - 0x2c]
mov dword [ebp - 0x6c], edx
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0
jl 0x4de7c1
movzx ecx, byte [ebp + 8]
test ecx, ecx
jne 0x4de7b7
xor al, al
jmp 0x4de7cb
mov edx, dword [ebp - 0x3c]
push edx
call dword [sym.imp.kernel32.dll_Sleep]
mov ecx, dword [ebp - 0x44]
call fcn.004ddda0
mov al, 1
mov esp, ebp
pop ebp
ret 4