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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
cmp dword [0x100923f0], 0
push esi
mov esi, dword [0x100916b8]
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
jne 0x10009bfd
push 0x2e
mov dword [0x10091660], 0x10004ac0
call fcn.10004ac0
cwde
shr eax, 0x10
test eax, eax
je 0x10009bf6
cmp byte [0x100939b0], 0
je 0x10009be2
cmp dword [0x100939b4], 0
je 0x10009bfd
call edi
cmp dword [0x100939b4], eax
ja 0x10009bfd
xor eax, eax
mov byte [0x100939b0], 1
cmp dword [esi + 4], eax
sete al
mov dword [esi + 4], eax
jmp 0x10009bfd
mov byte [0x100939b0], 0
cmp dword [0x100923f0], 1
jne 0x10009ca5
push 0xa0
mov dword [0x10091660], 0x10004ac0
call fcn.10004ac0
cwde
shr eax, 0x10
test eax, eax
je 0x10009c9e
cmp byte [0x10093d40], 0
je 0x10009c42
cmp dword [0x10093d44], 0
je 0x10009ca5
call edi
cmp dword [0x10093d44], eax
ja 0x10009ca5
push 0xa4
mov byte [0x10093d40], 1
mov dword [0x10091660], 0x10004ac0
call fcn.10004ac0
cwde
shr eax, 0x10
test eax, eax
je 0x10009c95
cmp byte [0x10093d60], 0
je 0x10009c81
cmp dword [0x10093d64], 0
je 0x10009ca5
call edi
cmp dword [0x10093d64], eax
ja 0x10009ca5
xor eax, eax
mov byte [0x10093d60], 1
cmp dword [esi + 4], eax
sete al
mov dword [esi + 4], eax
jmp 0x10009ca5
mov byte [0x10093d60], 0
jmp 0x10009ca5
mov byte [0x10093d40], 0
cmp dword [0x100923f0], 2
jne 0x10009d9e
push 0xa0
mov dword [0x10091660], 0x10004ac0
call fcn.10004ac0
cwde
shr eax, 0x10
test eax, eax
je 0x10009d97
cmp byte [0x10093d40], 0
je 0x10009cf6
cmp dword [0x10093d44], 0
je 0x10009d9e
call edi
cmp dword [0x10093d44], eax
ja 0x10009d9e
push 0xa4
mov byte [0x10093d40], 1
mov dword [0x10091660], 0x10004ac0
call fcn.10004ac0
cwde
shr eax, 0x10
test eax, eax
je 0x10009d8e
cmp byte [0x10093d60], 0
je 0x10009d35
cmp dword [0x10093d64], 0
je 0x10009d9e
call edi
cmp dword [0x10093d64], eax
ja 0x10009d9e
push 0x41
mov byte [0x10093d60], 1
mov dword [0x10091660], 0x10004ac0
call fcn.10004ac0
cwde
shr eax, 0x10
test eax, eax
je 0x10009d85
cmp byte [0x10093a48], 0
je 0x10009d71
cmp dword [0x10093a4c], 0
je 0x10009d9e
call edi
cmp dword [0x10093a4c], eax
ja 0x10009d9e
xor eax, eax
mov byte [0x10093a48], 1
cmp dword [esi + 4], eax
sete al
mov dword [esi + 4], eax
jmp 0x10009d9e
mov byte [0x10093a48], 0
jmp 0x10009d9e
mov byte [0x10093d60], 0
jmp 0x10009d9e
mov byte [0x10093d40], 0
cmp dword [esi + 4], 0
je 0x10009f9c
push 0x26
mov dword [0x10091660], 0x10004ac0
call fcn.10004ac0
cwde
shr eax, 0x10
test eax, eax
je 0x10009e0c
cmp byte [0x10093970], 0
je 0x10009ddd
cmp dword [0x10093974], 0
je 0x10009e13
call edi
cmp dword [0x10093974], eax
ja 0x10009e13
mov byte [0x10093970], 1
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0xc]
nop word [eax + eax]
sub ecx, 1
mov dword [esi + 0xc], ecx
jns 0x10009dfe
mov ecx, dword [esi]
dec ecx
mov dword [esi + 0xc], ecx
mov eax, dword [edx + ecx*4]
cmp dword [eax], 2
je 0x10009df0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov byte [0x10093970], 0
push 0x28
mov dword [0x10091660], 0x10004ac0
call fcn.10004ac0
cwde
shr eax, 0x10
test eax, eax
je 0x10009e72
cmp byte [0x10093980], 0
je 0x10009e48
cmp dword [0x10093984], 0
je 0x10009e79
call edi
cmp dword [0x10093984], eax
ja 0x10009e79
mov byte [0x10093980], 1
mov edx, dword [esi]
mov edi, dword [esi + 8]
mov ecx, dword [esi + 0xc]
inc ecx
mov dword [esi + 0xc], ecx
cmp ecx, edx
jne 0x10009e64
xor ecx, ecx
mov dword [esi + 0xc], ecx
mov eax, dword [edi + ecx*4]
cmp dword [eax], 2
je 0x10009e57
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov byte [0x10093980], 0
mov ecx, dword [esi + 0xc]
lea eax, [esi + 8]
push ebx
lea ebx, [esi + 0xc]
mov dword [ebp - 4], eax
mov dword [ebp - 0x10], eax
mov eax, dword [eax]
mov eax, dword [eax + ecx*4]
cmp dword [eax + 0xc], 0
je 0x10009f9b
push 0x25
mov dword [ebp - 0xc], 0
mov dword [0x10091660], 0x10004ac0
call fcn.10004ac0
cwde
shr eax, 0x10
test eax, eax
je 0x10009efe
cmp byte [0x10093968], 0
je 0x10009ed4
cmp dword [0x1009396c], 0
je 0x10009f05
call edi
cmp dword [0x1009396c], eax
ja 0x10009f05
mov edx, dword [ebp - 0x10]
mov eax, ebx
mov byte [0x10093968], 1
mov dword [ebp - 4], edx
mov ecx, dword [eax]
mov eax, dword [edx]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0xc]
cmp dword [eax], 0
jle 0x10009f05
mov dword [ebp - 0xc], 0xffffffff
mov dword [ebp - 4], edx
jmp 0x10009f05
mov byte [0x10093968], 0
push 0x27
mov dword [0x10091660], 0x10004ac0
call fcn.10004ac0
cwde
shr eax, 0x10
test eax, eax
je 0x10009f5d
cmp byte [0x10093978], 0
je 0x10009f3a
cmp dword [0x1009397c], 0
je 0x10009f64
call edi
cmp dword [0x1009397c], eax
ja 0x10009f64
mov eax, dword [ebp - 4]
mov byte [0x10093978], 1
mov ecx, dword [ebx]
mov eax, dword [eax]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
dec ecx
cmp dword [eax], ecx
jge 0x10009f64
mov edx, 1
jmp 0x10009f6b
mov byte [0x10093978], 0
mov edx, dword [ebp - 0xc]
test edx, edx
je 0x10009f9b
mov ecx, dword [ebx]
mov eax, dword [esi + 8]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0xc]
add dword [eax], edx
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
lea ecx, [eax + ecx*4]
mov eax, dword [ecx]
cmp dword [eax], 1
jne 0x10009f8e
mov dword [esi], 0
mov eax, dword [ecx]
cmp dword [eax], 4
jne 0x10009f9b
mov dword [esi], 0
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret