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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x64
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x10]
add ecx, 0x5c
call fcn.1002fb70
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x44], 0xffffffff
mov eax, dword [ebp - 0x34]
sub eax, 1
mov dword [ebp - 0x1c], eax
jmp 0x100220b2
mov ecx, dword [ebp - 0x1c]
sub ecx, 1
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 0x1c], 0
jl 0x100220e6
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov al, byte [edx + 0x28]
mov byte [ebp - 1], al
movzx ecx, byte [ebp - 1]
test ecx, ecx
je 0x100220e4
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x44], edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
add eax, 0x2bc
mov dword [0x10041604], eax
jmp 0x100220e6
jmp 0x100220a9
mov eax, dword [ebp - 0x34]
sub eax, 1
mov dword [ebp - 0xc], eax
jmp 0x100220fa
mov ecx, dword [ebp - 0xc]
sub ecx, 1
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 0xc], 0
jl 0x10022548
mov edx, dword [ebp - 0x10]
add edx, 0x5c
mov dword [ebp - 0x48], edx
mov eax, dword [ebp - 0xc]
push eax
mov ecx, dword [ebp - 0x48]
call fcn.1001faa0
mov ecx, dword [eax]
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x10]
add edx, 0x5c
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 0xc]
push eax
mov ecx, dword [ebp - 0x4c]
call fcn.1001faa0
mov ecx, dword [eax + 4]
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x10]
add edx, 0x5c
mov dword [ebp - 0x50], edx
mov eax, dword [ebp - 0xc]
push eax
mov ecx, dword [ebp - 0x50]
call fcn.1001faa0
mov ecx, dword [eax + 8]
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0xc]
mov al, byte [edx + 0x28]
mov byte [ebp - 2], al
mov ecx, dword [ebp - 0x10]
add ecx, 0x5c
mov dword [ebp - 0x54], ecx
mov edx, dword [ebp - 0xc]
push edx
mov ecx, dword [ebp - 0x54]
call fcn.1001faa0
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x10]
add ecx, 0x5c
mov dword [ebp - 0x58], ecx
mov edx, dword [ebp - 0xc]
push edx
mov ecx, dword [ebp - 0x58]
call fcn.1001faa0
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x10]
add ecx, 0x5c
mov dword [ebp - 0x5c], ecx
mov edx, dword [ebp - 0xc]
push edx
mov ecx, dword [ebp - 0x5c]
call fcn.1001faa0
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x28], eax
movzx ecx, byte [ebp - 2]
test ecx, ecx
je 0x100223e0
cvtsi2sd xmm0, dword [ebp - 0x18]
addsd xmm0, qword [0x1003a068]
cvttsd2si edx, xmm0
mov dword [ebp - 0x40], edx
mov dword [ebp - 8], 0
jmp 0x100221e3
mov eax, dword [ebp - 8]
add eax, 1
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebp - 0x20]
jge 0x100223db
push 0xf
push 0x3c
imul edx, dword [ebp - 8], 0xf
add edx, dword [ebp - 0x14]
push edx
mov eax, dword [ebp - 0x18]
push eax
mov ecx, 0x100430b8
call fcn.100300b0
movzx ecx, al
test ecx, ecx
je 0x100222aa
mov ecx, 0x10041608
call fcn.1002f060
movzx edx, al
test edx, edx
jne 0x10022231
push 2
mov ecx, 0x10041608
call fcn.10021550
mov eax, dword [ebp - 0x20]
sub eax, 1
cmp dword [ebp - 8], eax
jne 0x10022245
mov dword [ebp - 0x38], 1
jmp 0x1002224c
mov dword [ebp - 0x38], 0
mov ecx, 0xf
sub ecx, dword [ebp - 0x38]
imul edx, dword [ebp - 8], 0xf
mov eax, dword [ebp - 0x14]
lea edx, [eax + edx + 1]
mov eax, dword [ebp - 0x18]
add eax, 1
push 0xff
push 0x32
push 0x32
push 0x32
push ecx
push 0x3b
push edx
push eax
mov ecx, 0x1004320c
call fcn.100088d0
mov ecx, 0x100430b8
call fcn.10024d20
movzx ecx, al
test ecx, ecx
je 0x100222a8
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ecx + eax*4]
mov dword [edx], eax
mov ecx, dword [ebp - 0x10]
add ecx, dword [ebp - 0xc]
mov byte [ecx + 0x28], 0
jmp 0x10022313
mov edx, dword [ebp - 0x20]
sub edx, 1
cmp dword [ebp - 8], edx
jne 0x100222be
mov dword [ebp - 0x3c], 1
jmp 0x100222c5
mov dword [ebp - 0x3c], 0
mov eax, 0xf
sub eax, dword [ebp - 0x3c]
imul ecx, dword [ebp - 8], 0xf
mov edx, dword [ebp - 0x14]
lea ecx, [edx + ecx + 1]
mov edx, dword [ebp - 0x18]
add edx, 1
push 0xff
push 0x23
push 0x23
push 0x23
push eax
push 0x3b
push ecx
push edx
mov ecx, 0x1004320c
call fcn.100088d0
mov ecx, 0x100430b8
call fcn.10024d20
movzx eax, al
test eax, eax
je 0x10022313
mov ecx, dword [ebp - 0x10]
add ecx, dword [ebp - 0xc]
mov byte [ecx + 0x28], 0
mov edx, dword [ebp - 0x20]
sub edx, 1
cmp dword [ebp - 8], edx
jne 0x10022345
push 0xff
push 0
push 0
push 0
mov eax, dword [ebp - 8]
add eax, 1
imul ecx, eax, 0xf
push ecx
push 0x3c
mov edx, dword [ebp - 0x14]
push edx
mov eax, dword [ebp - 0x18]
push eax
call fcn.1002f430
add esp, 0x20
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x2c]
movss xmm0, dword [ecx]
ucomiss xmm0, dword [eax + edx*4]
lahf
test ah, 0x44
jp 0x10022397
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x30]
mov eax, dword [edx + ecx*4]
push eax
push 0xff
push 0
push 0
push 0x8c
imul ecx, dword [ebp - 8], 0xf
add ecx, dword [ebp - 0x14]
push ecx
mov edx, dword [ebp - 0x40]
push edx
push 1
mov eax, dword [0x10043218]
push eax
push 0x1004320c
call fcn.10008740
add esp, 0x28
jmp 0x100223d6
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x30]
mov eax, dword [edx + ecx*4]
push eax
push 0xff
push 0xff
push 0xff
push 0xff
imul ecx, dword [ebp - 8], 0xf
add ecx, dword [ebp - 0x14]
push ecx
mov edx, dword [ebp - 0x40]
push edx
push 1
mov eax, dword [0x10043218]
push eax
push 0x1004320c
call fcn.10008740
add esp, 0x28
jmp 0x100221da
jmp 0x10022543
push 0xf
push 0x3c
mov ecx, dword [ebp - 0x14]
push ecx
mov edx, dword [ebp - 0x18]
push edx
mov ecx, 0x100430b8
call fcn.100300b0
movzx eax, al
test eax, eax
je 0x10022472
mov ecx, 0x10041608
call fcn.1002f060
movzx ecx, al
test ecx, ecx
jne 0x1002241a
push 2
mov ecx, 0x10041608
call fcn.10021550
push 0xff
push 0x32
push 0x32
push 0x32
push 0xe
push 0x3b
mov edx, dword [ebp - 0x14]
add edx, 1
push edx
mov eax, dword [ebp - 0x18]
add eax, 1
push eax
mov ecx, 0x1004320c
call fcn.100088d0
mov ecx, 0x100430b8
call fcn.10024d20
movzx ecx, al
test ecx, ecx
je 0x10022470
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [0x10041604], eax
jb 0x10022466
cmp dword [ebp - 0x44], 0xffffffff
jne 0x10022470
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0xc]
mov byte [edx + 0x28], 1
jmp 0x10022499
push 0xff
push 0x23
push 0x23
push 0x23
push 0xe
push 0x3b
mov eax, dword [ebp - 0x14]
add eax, 1
push eax
mov ecx, dword [ebp - 0x18]
add ecx, 1
push ecx
mov ecx, 0x1004320c
call fcn.100088d0
push 0xff
push 0
push 0
push 0
push 0xf
push 0x3c
mov edx, dword [ebp - 0x14]
push edx
mov eax, dword [ebp - 0x18]
push eax
call fcn.1002f430
add esp, 0x20
cvtsi2sd xmm0, dword [ebp - 0x18]
addsd xmm0, qword [0x1003a068]
cvttsd2si ecx, xmm0
mov dword [ebp - 0x64], ecx
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x60], edx
mov dword [ebp - 0x24], 0
jmp 0x100224e4
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
cmp ecx, dword [ebp - 0x20]
jge 0x10022543
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x2c]
movss xmm0, dword [edx]
ucomiss xmm0, dword [ecx + eax*4]
lahf
test ah, 0x44
jp 0x10022541
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax + edx*4]
push ecx
push 0xff
push 0xff
push 0xff
push 0xff
mov edx, dword [ebp - 0x60]
push edx
mov eax, dword [ebp - 0x64]
push eax
push 1
mov ecx, dword [0x10043218]
push ecx
push 0x1004320c
call fcn.10008740
add esp, 0x28
jmp 0x10022543
jmp 0x100224db
jmp 0x100220f1
mov ecx, dword [ebp - 0x10]
call fcn.10021570
mov esp, ebp
pop ebp
ret