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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
mov eax, dword [0x100e7c94]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
imul edx, eax, 0x20c
push ebx
push esi
mov esi, dword [ebp + 0x10]
push edi
mov dword [ebp - 0x34], eax
mov edi, 0x80004005
mov dword [ebp - 0x30], 0
cmp dword [edx + 0x14809b10], 0
je 0x10092471
movzx eax, byte [edx + 0x14809b18]
sub eax, 1
je 0x100921c8
sub eax, 2
jne 0x10092471
push esi
push dword [ebp + 0xc]
call fcn.10098c50
add esp, 8
xor edx, edx
mov ecx, edi
test al, al
cmovne ecx, edx
pop edi
pop esi
mov eax, ecx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1003acef
mov esp, ebp
pop ebp
ret
mov ecx, esi
mov dword [ebp - 0xa], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0x22], xmm0
movlpd qword [ebp - 0x1a], xmm0
movlpd qword [ebp - 0x12], xmm0
lea ebx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100921e6
sub ecx, ebx
sar ecx, 1
lea eax, [ecx*2 + 4]
mov dword [ebp - 0x38], eax
cmp eax, 0x1e
ja 0x10092471
mov eax, dword [edx + 0x14809b14]
test eax, eax
jne 0x1009245e
mov ebx, dword [ebp - 0x34]
lea eax, [ebp - 0x28]
push eax
push 1
push 5
push ebx
call fcn.10091e30
add esp, 0x10
test eax, eax
js 0x10092473
test byte [ebp - 0x28], 0x80
jne 0x10092471
lea eax, [ebp - 0x30]
push eax
push 1
push 0x80
call fcn.10091e00
or dword [ebp - 0x30], 0xffffff7f
lea eax, [ebp - 0x30]
push eax
push 1
push 0x80
call fcn.10091ec0
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x28], 0
push eax
push 4
lea eax, [ebp - 0x28]
mov dword [ebp - 0x2c], 0
push eax
push 2
push 0xa0
push ebx
call fcn.100914e0
add esp, 0x30
test eax, eax
js 0x10092473
mov edi, dword [ebp - 0x2c]
and edi, 0xff00
mov dword [ebp - 0x2c], 0
add edi, 0x54
lea eax, [edi + 0x12]
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x2c]
push eax
push 1
lea eax, [ebp - 0x28]
push eax
push 2
push 0xa0
push ebx
call fcn.100914e0
mov ecx, eax
add esp, 0x18
test ecx, ecx
js 0x10092473
mov eax, dword [ebp + 0xc]
sub eax, 0
je 0x100922f4
sub eax, 1
je 0x100922ef
sub eax, 1
jne 0x100922ea
mov eax, dword [ebp - 0x2c]
shr eax, 4
jmp 0x100922fa
mov eax, dword [ebp - 0x38]
jmp 0x100922fd
mov eax, dword [ebp - 0x2c]
jmp 0x100922fa
mov eax, dword [ebp - 0x2c]
shr eax, 2
and eax, 3
test eax, eax
jne 0x10092316
pop edi
mov dword [esi], eax
mov eax, ecx
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1003acef
mov esp, ebp
pop ebp
ret
add eax, 5
movzx edi, di
mov dword [ebp - 0x2c], 0
lea eax, [edi + eax*2]
movzx ebx, ax
lea eax, [ebp - 0x2c]
push eax
push 1
lea eax, [ebp - 0x28]
mov dword [ebp - 0x28], ebx
push eax
push 2
push 0xa0
push dword [ebp - 0x34]
call fcn.100914e0
add esp, 0x18
test eax, eax
js 0x10092473
mov eax, dword [ebp - 0x2c]
add eax, edi
movzx eax, ax
mov dword [ebp - 0x2c], eax
lea eax, [ebx + 1]
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x38]
push eax
push 1
lea eax, [ebp - 0x28]
push eax
push 2
push 0xa0
push dword [ebp - 0x34]
call fcn.10091840
mov edi, eax
add esp, 0x18
mov dword [ebp - 0x28], edi
test edi, edi
js 0x10092473
lea ecx, [ebp - 0x22]
sub ecx, esi
nop
movzx eax, word [esi]
lea esi, [esi + 2]
mov word [ecx + esi - 2], ax
test ax, ax
jne 0x10092390
mov eax, dword [ebp - 0x38]
xor ebx, ebx
mov byte [ebp - 0x24], al
mov byte [ebp - 0x23], 3
test eax, eax
je 0x1009241d
xor esi, esi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, eax
nop word [eax + eax]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp eax, edi
jae 0x100923ce
mov edi, eax
jmp 0x100923d2
mov esi, eax
sub esi, edi
cmp esi, 0xbb8
jae 0x1009244a
mov eax, dword [ebp - 0x2c]
movzx eax, ax
add eax, ebx
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x24]
add eax, ebx
push eax
push 1
lea eax, [ebp - 0x28]
push eax
push 2
push 0xa0
push dword [ebp - 0x34]
call fcn.10091840
add esp, 0x18
mov dword [ebp - 0x28], eax
push 5
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [ebp - 0x28], 0
jl 0x100923c0
inc ebx
cmp ebx, dword [ebp - 0x38]
jb 0x100923b0
mov edi, dword [ebp - 0x28]
or dword [ebp - 0x30], 0x80
lea eax, [ebp - 0x30]
push eax
push 1
push 0x80
call fcn.10091ec0
add esp, 0xc
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1003acef
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x28]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1003acef
mov esp, ebp
pop ebp
ret
cmp eax, 1
jne 0x10092471
push esi
push dword [ebp + 0xc]
call fcn.1008efd0
add esp, 8
mov edi, eax
mov eax, edi
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1003acef
mov esp, ebp
pop ebp
ret