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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff8
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x497657
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
push ebp
push 0x49761c
push dword fs:[edx]
mov dword fs:[edx], esp
mov esi, dword [0x49d4dc]
mov esi, dword [esi]
add esi, ecx
mov edi, dword [0x49d6a4]
mov edi, dword [edi]
cmp esi, 0x14
jl 0x4975c0
mov ebx, edi
cmp dword [ebx], 0xaa55aa55
jne 0x4975b5
mov ecx, dword [ebx + 0x10]
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
add eax, 0x14
cmp esi, eax
jl 0x4975c0
mov eax, edi
add eax, 0x14
movzx edx, word [ebx + 0xa]
add edx, 0xfffffffd
cmp edx, 5
ja case.0x4973b8.4
jmp dword [edx*4 + 0x4973bf]
mov eax, dword [0x49d61c]
mov byte [eax], 0
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x49d410]
mov dword [edx], eax
jmp case.0x4973b8.4
mov ax, word [ebx + 8]
cmp ax, 0x3e8
jae case.0x4973b8.4
movzx edx, ax
imul edx, edx, 0x13
mov ecx, dword [0x49d730]
mov edx, dword [ecx + edx*4 + 0x38]
cmp edx, dword [ebx + 4]
jne case.0x4973b8.4
movzx eax, ax
imul eax, eax, 0x13
mov edx, dword [0x49d730]
mov ecx, dword [ebx + 0xc]
mov dword [edx + eax*4 + 0xc], ecx
jmp case.0x4973b8.4
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x49d478]
sub eax, dword [edx]
mov edx, dword [0x49d600]
mov dword [edx], eax
mov eax, dword [0x49d600]
mov eax, dword [eax]
mov edx, dword [0x49d5d0]
cmp eax, dword [edx]
jbe 0x497465
mov eax, dword [0x49d600]
mov eax, dword [eax]
mov edx, dword [0x49d5d0]
mov dword [edx], eax
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x49d478]
mov dword [edx], eax
push 0
push 0
push 0
push 0
xor ecx, ecx
mov edx, 7
mov eax, dword [ebp - 4]
call fcn.00493e8c
jmp case.0x4973b8.4
push eax
push ecx
mov edx, dword [ebx + 4]
movzx ecx, word [ebx + 8]
mov eax, dword [ebp - 4]
call fcn.004976ac
jmp case.0x4973b8.4
cmp word [ebx + 8], 0x3e8
jae case.0x4973b8.4
movzx eax, word [ebx + 8]
imul eax, eax, 0x13
mov edx, dword [0x49d730]
mov eax, dword [edx + eax*4 + 0x38]
cmp eax, dword [ebx + 4]
jne case.0x4973b8.4
movzx eax, word [ebx + 8]
imul eax, eax, 0x13
mov edx, dword [0x49d730]
mov ecx, dword [edx + eax*4 + 0x3c]
lea eax, [ebp - 8]
mov edx, 0x497670
call fcn.004043f0
mov eax, dword [ebp - 8]
mov edx, 1
call fcn.004854b4
mov eax, dword [0x49d768]
mov al, byte [eax]
sub al, 1
jb 0x49750b
je 0x49752c
dec al
je 0x497560
jmp case.0x4973b8.4
movzx eax, word [ebx + 8]
imul eax, eax, 0x13
mov edx, dword [0x49d730]
mov eax, dword [edx + eax*4]
test eax, eax
je case.0x4973b8.4
mov edx, dword [0x49d730]
call fcn.0047b004
jmp case.0x4973b8.4
movzx eax, word [ebx + 8]
imul eax, eax, 0x13
mov edx, dword [0x49d730]
mov edx, dword [edx + eax*4 + 0x3c]
mov eax, dword [ebp - 4]
call fcn.00497d4c
movzx eax, word [ebx + 8]
imul eax, eax, 0x13
mov edx, dword [0x49d730]
mov edx, dword [edx + eax*4 + 0x3c]
mov eax, dword [ebp - 4]
call fcn.00498550
jmp case.0x4973b8.4
movzx eax, word [ebx + 8]
imul eax, eax, 0x13
mov edx, dword [0x49d730]
mov edx, dword [edx + eax*4 + 0x3c]
mov eax, dword [ebp - 4]
call fcn.00497c4c
movzx eax, word [ebx + 8]
imul eax, eax, 0x13
mov edx, dword [0x49d730]
mov edx, dword [edx + eax*4 + 0x3c]
mov eax, dword [ebp - 4]
call fcn.00498550
mov eax, dword [ebx + 0x10]
cdq
xor eax, edx
sub eax, edx
mov ecx, eax
mov eax, ecx
add eax, 0x14
lea eax, [edi + eax]
mov edi, eax
mov eax, dword [ebx + 0x10]
cdq
xor eax, edx
sub eax, edx
add ecx, 0x14
sub esi, ecx
jmp 0x4975b7
inc edi
dec esi
cmp esi, 0x14
jge 0x497380
test esi, esi
jle 0x4975f4
mov eax, esi
call fcn.00402704
mov ebx, eax
mov edx, ebx
mov eax, edi
mov ecx, esi
call fcn.00402900
mov eax, dword [0x49d6a4]
mov eax, dword [eax]
call fcn.00402724
mov eax, dword [0x49d6a4]
mov dword [eax], ebx
mov eax, dword [0x49d4dc]
mov dword [eax], esi
jmp 0x497612
mov eax, dword [0x49d6a4]
mov eax, dword [eax]
call fcn.00402724
mov eax, dword [0x49d6a4]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x49d4dc]
xor edx, edx
mov dword [eax], edx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x497641
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x49765e
lea eax, [ebp - 8]
call fcn.004040e4
ret