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

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffff8
mov ebx, edx
mov esi, eax
mov eax, dword [0x53f0cc]
mov eax, dword [eax]
mov dword [eax + 4], ebx
mov eax, dword [0x53e490]
cmp byte [eax + 0x67], 6
mov eax, dword [ebx + 0xc]
push eax
mov eax, dword [0x53e6d8]
mov eax, dword [eax]
mov edx, dword [eax + 0xc]
mov eax, dword [0x53e6d8]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov ecx, dword [ebx + 8]
call fcn.005388ac
mov ebp, eax
and ebp, 0xff
mov edx, ebp
mov eax, esi
call fcn.004a6cf4
mov edi, eax
cmp edi, 0xbcb
jne 0x4a76aa
mov eax, dword [0x53ef18]
cmp byte [eax + 0x69], 0
je 0x4a76aa
cmp byte [ebx + 0x30], 0
jne 0x4a763a
push 3
mov ecx, ebx
mov edx, ebp
mov eax, esi
call fcn.004a6284
test al, al
jne 0x4a763a
lea eax, [esp + 4]
push eax
lea ecx, [esp + 4]
mov edx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
call fcn.004a714c
test al, al
je 0x4a763a
mov eax, dword [0x53e6d8]
mov eax, dword [eax]
mov eax, dword [eax + 8]
sub eax, dword [esp]
cdq
xor eax, edx
sub eax, edx
dec eax
jg 0x4a7618
mov eax, dword [0x53e6d8]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
sub eax, dword [esp + 4]
cdq
xor eax, edx
sub eax, edx
dec eax
jg 0x4a7618
mov eax, dword [0x53ed98]
mov byte [eax], 0
jmp 0x4a7620
mov eax, dword [0x53ed98]
mov byte [eax], 1
mov eax, dword [0x53e824]
mov edx, dword [esp]
mov dword [eax], edx
mov eax, dword [0x53e6cc]
mov edx, dword [esp + 4]
mov dword [eax], edx
jmp 0x4a791e
cmp byte [ebx + 0x30], 0
jne 0x4a76aa
mov eax, esi
call fcn.004ae26c
test al, al
je 0x4a76aa
mov eax, esi
call fcn.004ae240
test al, al
je 0x4a76aa
mov eax, esi
call fcn.004ae2a8
test al, al
je 0x4a76aa
mov edx, ebp
mov eax, esi
call fcn.004a6a00
mov edi, eax
mov eax, dword [0x53e6d8]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
push eax
push ebp
push 0
push 0
push 0
push 0
mov eax, dword [0x53e6d8]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [0x53e6d8]
mov eax, dword [eax]
mov edx, edi
call fcn.0051ee08
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x53ed8c]
mov dword [edx], eax
jmp 0x4a791e
cmp edi, 0xbcb
jne 0x4a7756
mov eax, dword [0x53ef18]
cmp byte [eax + 0x68], 0
je 0x4a7756
cmp byte [ebx + 0x30], 0
jne 0x4a7756
push 2
mov ecx, ebx
mov edx, ebp
mov eax, esi
call fcn.004a6284
test al, al
je 0x4a7756
mov eax, esi
call fcn.004ae26c
test al, al
je 0x4a791e
mov eax, esi
call fcn.004ae240
test al, al
je 0x4a791e
mov eax, esi
call fcn.004ae2a8
test al, al
je 0x4a791e
mov edx, ebp
mov eax, esi
call fcn.004a6a00
mov edi, eax
mov eax, dword [0x53e6d8]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
push eax
push ebp
push 0
push 0
push 0
push 0
mov eax, dword [0x53e6d8]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [0x53e6d8]
mov eax, dword [eax]
mov edx, edi
call fcn.0051ee08
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x53ed8c]
mov dword [edx], eax
jmp 0x4a791e
mov eax, edi
call fcn.004a7130
test al, al
je 0x4a77eb
mov edx, 4
mov eax, ebx
call fcn.004a706c
test al, al
je 0x4a77eb
mov eax, esi
call fcn.004ae26c
test al, al
je 0x4a791e
mov eax, esi
call fcn.004ae240
test al, al
je 0x4a791e
mov eax, esi
call fcn.004ae2a8
test al, al
je 0x4a791e
mov edx, ebp
mov eax, esi
call fcn.004a6a00
mov edi, eax
mov eax, dword [0x53e6d8]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
push eax
push ebp
push 0
push 0
push 0
push 0
mov eax, dword [0x53e6d8]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [0x53e6d8]
mov eax, dword [eax]
mov edx, edi
call fcn.0051ee08
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x53ed8c]
mov dword [edx], eax
jmp 0x4a791e
cmp byte [ebx + 0x30], 0
jne 0x4a78b0
push 1
mov ecx, ebx
mov edx, ebp
mov eax, esi
call fcn.004a6284
test al, al
je 0x4a78b0
mov eax, esi
call fcn.004ae26c
test al, al
je 0x4a791e
mov eax, esi
call fcn.004ae240
test al, al
je 0x4a791e
mov eax, esi
call fcn.004ae2a8
test al, al
je 0x4a791e
mov edx, ebp
mov eax, esi
call fcn.004a6a00
mov edi, eax
mov eax, dword [0x53ea84]
cmp byte [eax], 0
je 0x4a786c
cmp edi, 0xce5
jne 0x4a786c
push 0
push 0x65
mov eax, dword [ebx + 4]
push eax
mov ecx, ebp
mov edx, 0xbc9
mov eax, esi
call fcn.004abd48
jmp 0x4a7898
mov eax, dword [0x53e6d8]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
push eax
push ebp
push 0
push 0
push 0
push 0
mov eax, dword [0x53e6d8]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [0x53e6d8]
mov eax, dword [eax]
mov edx, edi
call fcn.0051ee08
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x53ed8c]
mov dword [edx], eax
mov eax, dword [0x53e6bc]
xor edx, edx
mov dword [eax], edx
jmp 0x4a791e
mov eax, dword [0x53e6d8]
mov eax, dword [eax]
mov eax, dword [eax + 8]
sub eax, dword [ebx + 8]
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jg 0x4a78ee
mov eax, dword [0x53e6d8]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
sub eax, dword [ebx + 0xc]
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jg 0x4a78ee
cmp byte [ebx + 0x30], 0
jne 0x4a78ee
mov eax, dword [0x53ed98]
mov byte [eax], 0
jmp 0x4a78f6
mov eax, dword [0x53ed98]
mov byte [eax], 1
push esp
lea eax, [esp + 8]
push eax
mov ecx, ebp
mov edx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
call fcn.00538a0c
mov eax, dword [0x53e824]
mov edx, dword [esp]
mov dword [eax], edx
mov eax, dword [0x53e6cc]
mov edx, dword [esp + 4]
mov dword [eax], edx
pop ecx
pop edx
pop ebp
pop edi
pop esi
pop ebx
ret