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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff7c
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4b0440
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 8]
sub eax, 0x34
jae 0x4b0418
cmp byte [0x535fe0], 0
je 0x4b002c
call fcn.00406bb0
sub eax, dword [0x536024]
cmp eax, 0x1388
jbe 0x4b002c
mov byte [0x535fe0], 0
cmp byte [0x535fe0], 0
jne 0x4b0418
mov eax, dword [ebp - 8]
mov edx, eax
shl eax, 4
add eax, edx
cmp byte [eax*4 + 0x53470c], 0
je 0x4b0418
mov eax, dword [ebp - 8]
mov edx, eax
shl eax, 4
add eax, edx
cmp byte [eax*4 + 0x53471b], 3
ja 0x4b0418
mov eax, dword [ebp - 8]
mov edx, eax
shl eax, 4
add eax, edx
lea esi, [eax*4 + 0x53470c]
mov edi, 0x535fe0
mov ecx, 0x11
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 8]
mov edx, eax
shl eax, 4
add eax, edx
mov byte [eax*4 + 0x53470c], 0
call fcn.00406bb0
mov dword [0x536024], eax
lea eax, [ebp - 0x18]
mov edx, dword [ebp - 8]
mov ecx, edx
shl edx, 4
add edx, ecx
lea edx, [edx*4 + 0x53470c]
call fcn.004048e8
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 8]
mov edx, eax
shl eax, 4
add eax, edx
mov edx, dword [eax*4 + 0x534748]
mov eax, dword [ebp - 4]
call fcn.004b3e30
mov eax, dword [ebp - 8]
mov edx, eax
shl eax, 4
add eax, edx
movzx eax, byte [eax*4 + 0x53471b]
call fcn.004ff734
xor eax, eax
mov dword [ebp - 0x14], eax
cmp byte [0x54d83e], 1
jne 0x4b0178
cmp byte [0x53a01c], 0
jne 0x4b0178
mov dword [ebp - 0xc], 6
mov eax, 0x535fe0
mov edx, dword [ebp - 0xc]
mov ecx, edx
shl edx, 4
add edx, ecx
lea edx, [edx*4 + 0x53470c]
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00403108
jne 0x4b016b
mov eax, dword [ebp - 0xc]
mov edx, eax
shl eax, 4
add eax, edx
mov edx, dword [ebp - 8]
mov ecx, edx
shl edx, 4
add edx, ecx
lea esi, [eax*4 + 0x53470c]
lea edi, [edx*4 + 0x53470c]
mov ecx, 0x11
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0xc]
mov edx, eax
shl eax, 4
add eax, edx
mov byte [eax*4 + 0x53470c], 0
jmp 0x4b0174
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0x34
jne 0x4b010c
cmp dword [ebp - 0xc], 0x34
xor eax, eax
mov dword [ebp - 0x10], eax
xor eax, eax
mov dword [ebp - 0xc], eax
mov eax, 0x535fe0
mov edx, dword [ebp - 0xc]
mov ecx, edx
shl edx, 4
add edx, ecx
lea edx, [edx*4 + 0x53470c]
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00403108
jne 0x4b01a7
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0xc]
mov edx, eax
shl eax, 4
add eax, edx
cmp byte [eax*4 + 0x53470c], 0
jne 0x4b01be
inc dword [ebp - 0x10]
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0x34
jne 0x4b0182
cmp dword [ebp - 0x14], 0
jle 0x4b0248
push 0xffffff
mov edx, 0x4b0450
lea eax, [ebp - 0x34]
call fcn.0040305c
mov edx, 0x535fe0
lea eax, [ebp - 0x34]
mov cl, 0x12
call fcn.0040302c
lea edx, [ebp - 0x34]
lea eax, [ebp - 0x50]
call fcn.0040305c
mov edx, 0x4b0458
lea eax, [ebp - 0x50]
mov cl, 0x18
call fcn.0040302c
lea edx, [ebp - 0x50]
lea eax, [ebp - 0x20]
call fcn.004048e8
push dword [ebp - 0x20]
lea edx, [ebp - 0x54]
mov eax, dword [ebp - 0x14]
call fcn.00408d74
push dword [ebp - 0x54]
push 0x4b0468
lea eax, [ebp - 0x1c]
mov edx, 3
call fcn.00404a04
mov edx, dword [ebp - 0x1c]
mov ecx, 0x8000
mov eax, dword [0x5342d8]
call fcn.004cde58
cmp byte [0x535fef], 0
jne 0x4b0418
cmp dword [ebp - 0x10], 5
jl 0x4b0418
cmp byte [0x54d83f], 1
jne 0x4b0418
cmp byte [0x53a01d], 0
jne 0x4b0418
cmp dword [ebp - 0x14], 0
jne 0x4b0418
cmp dword [0x535ffc], 0
jle 0x4b0327
mov dword [ebp - 0xc], 6
mov eax, dword [ebp - 0xc]
mov edx, eax
shl eax, 4
add eax, edx
cmp byte [eax*4 + 0x53471b], 0x1f
jne 0x4b031a
mov eax, dword [ebp - 0xc]
mov edx, eax
shl eax, 4
add eax, edx
lea edx, [eax*4 + 0x53470c]
mov eax, 0x4b046c
call fcn.00402b5c
test eax, eax
jle 0x4b031a
lea eax, [ebp - 0x58]
mov edx, dword [ebp - 0xc]
mov ecx, edx
shl edx, 4
add edx, ecx
lea edx, [edx*4 + 0x53470c]
call fcn.004048e8
mov ecx, dword [ebp - 0x58]
mov eax, dword [ebp - 0xc]
mov edx, eax
shl eax, 4
add eax, edx
mov edx, dword [eax*4 + 0x534748]
mov eax, dword [ebp - 4]
call fcn.004b3e30
mov eax, dword [ebp - 0xc]
mov edx, eax
shl eax, 4
add eax, edx
mov byte [eax*4 + 0x53470c], 0
mov dword [ebp - 0x14], 5
jmp 0x4b0327
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0x34
jne 0x4b0297
cmp dword [0x536000], 0
jle 0x4b03cb
mov dword [ebp - 0xc], 6
mov eax, dword [ebp - 0xc]
mov edx, eax
shl eax, 4
add eax, edx
cmp byte [eax*4 + 0x53471b], 0x1f
jne 0x4b03be
mov eax, dword [ebp - 0xc]
mov edx, eax
shl eax, 4
add eax, edx
lea edx, [eax*4 + 0x53470c]
mov eax, 0x4b0474
call fcn.00402b5c
test eax, eax
jle 0x4b03be
lea eax, [ebp - 0x5c]
mov edx, dword [ebp - 0xc]
mov ecx, edx
shl edx, 4
add edx, ecx
lea edx, [edx*4 + 0x53470c]
call fcn.004048e8
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0xc]
mov edx, eax
shl eax, 4
add eax, edx
mov edx, dword [eax*4 + 0x534748]
mov eax, dword [ebp - 4]
call fcn.004b3e30
mov eax, dword [ebp - 0xc]
mov edx, eax
shl eax, 4
add eax, edx
mov byte [eax*4 + 0x53470c], 0
mov dword [ebp - 0x14], 5
jmp 0x4b03cb
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0x34
jne 0x4b033b
cmp dword [ebp - 0x14], 0
jne 0x4b0418
push 0xffffff
mov edx, 0x535fe0
lea eax, [ebp - 0x84]
call fcn.0040305c
mov edx, 0x4b047c
lea eax, [ebp - 0x84]
mov cl, 0x23
call fcn.0040302c
lea edx, [ebp - 0x84]
lea eax, [ebp - 0x60]
call fcn.004048e8
mov edx, dword [ebp - 0x60]
mov ecx, 0xff
mov eax, dword [0x5342d8]
call fcn.004cde58
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4b0447
lea eax, [ebp - 0x60]
mov edx, 4
call fcn.004046a8
lea eax, [ebp - 0x20]
mov edx, 3
call fcn.004046a8
ret