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

Disassembly:
sub esp, 0x10
push ebx
push ebp
mov ebp, ecx
xor ebx, ebx
cmp dword [ebp + 0x160], ebx
push esi
push edi
je 0x100d0c30
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
mov ecx, dword [ebp + 0x160]
dec ecx
je 0x100d0b75
dec ecx
je 0x100d09d9
dec ecx
jne 0x100d0c30
mov edx, dword [ebp + 0x170]
lea ecx, [ebp + 0x174]
add edx, dword [ecx]
cmp eax, edx
jle 0x100d0c30
and byte [ebp + 0x168], bl
mov dword [ecx], ebx
mov ecx, ebp
mov dword [ebp + 0x164], ebx
mov dword [ebp + 0x178], ebx
call fcn.100ce887
jmp 0x100d0c2a
mov ecx, dword [ebp + 0x170]
lea edi, [ebp + 0x174]
add ecx, dword [edi]
cmp eax, ecx
jle 0x100d0c30
mov ecx, dword [0x109be2c0]
xor eax, eax
mov al, byte [ebp + 0x168]
push eax
push dword [ebp + 0x164]
push 2
call fcn.100b5440
mov ecx, ebp
call fcn.100ce887
fldz
push ebx
push dword [ebp + 0x164]
mov dword [ebp + 0x23d4], 0x17
push ecx
fstp dword [esp]
push 1
push 1
mov ecx, ebp
call fcn.100cf7c5
movzx eax, byte [ebp + 0x168]
mov ecx, dword [0x109b242c]
push eax
push ebx
push dword [ebp + 0x2428]
lea eax, [esp + 0x1c]
push 2
push dword [ebp + 0x164]
push eax
call fcn.1001cd4d
mov eax, dword [ebp + 0x178]
cmp eax, 0x1b
je 0x100d0a6b
cmp eax, 0x1c
jne 0x100d0a8f
push dword [ebp + 0x2420]
mov ecx, dword [0x109be1d8]
push dword [ebp + 0x2428]
push ebx
push dword [ebp + 0x164]
push dword [ebp + 0x188]
call fcn.100da98f
mov ecx, dword [0x109be1e0]
xor eax, eax
mov al, byte [ebp + 0x168]
push edi
push eax
push dword [ebp + 0x164]
call fcn.100052c5
test al, al
jne 0x100d0ab0
mov dword [edi], ebx
call esi
mov dword [ebp + 0x170], eax
mov eax, dword [ebp + 0x164]
cmp eax, 0xbd4
je 0x100d0b03
cmp eax, 0xbd5
je 0x100d0b03
cmp eax, 0xbe3
je 0x100d0b03
cmp eax, 0xbf5
je 0x100d0b03
cmp eax, 0xd21
je 0x100d0b03
cmp eax, 0xbc9
je 0x100d0b03
cmp eax, 0xcbf
je 0x100d0b03
cmp dword [ebp + 0x178], 0x1b
je 0x100d0b03
mov ecx, ebp
xor bl, bl
call fcn.100cf121
jmp 0x100d0b0c
mov ecx, ebp
mov bl, 1
call fcn.100cf1af
mov eax, dword [ebp + 0x178]
cmp eax, 0x18
je 0x100d0b66
cmp eax, 0x16
je 0x100d0b3c
cmp eax, 0x19
je 0x100d0b3c
cmp eax, 0x1a
je 0x100d0b3c
cmp eax, 0x1b
je 0x100d0b3c
cmp bl, 1
je 0x100d0b3c
movzx eax, byte [ebp + 0x168]
push eax
push 1
jmp 0x100d0b46
movzx eax, byte [ebp + 0x168]
push eax
push 0
push dword [ebp + 0x2428]
mov ecx, dword [0x109b242c]
push 5
push dword [ebp + 0x164]
lea eax, [ebp + 0x16c]
push eax
call fcn.1001cd4d
mov dword [ebp + 0x160], 3
jmp 0x100d0c30
push ebx
fldz
push dword [ebp + 0x164]
mov dword [ebp + 0x23d4], 0x15
push ecx
fstp dword [esp]
push 1
push 1
mov ecx, ebp
call fcn.100cf7c5
mov ecx, ebp
call fcn.100ce887
movzx eax, byte [ebp + 0x168]
mov ecx, dword [0x109b242c]
push eax
push 1
push dword [ebp + 0x2428]
lea eax, [ebp + 0x16c]
push ebx
push dword [ebp + 0x164]
push eax
call fcn.1001cd4d
call esi
mov dword [ebp + 0x170], eax
mov ecx, dword [0x109be1e0]
xor eax, eax
mov al, byte [ebp + 0x168]
lea esi, [ebp + 0x174]
push esi
push eax
push dword [ebp + 0x164]
call fcn.100052fa
test al, al
jne 0x100d0bf6
mov dword [esi], ebx
mov ecx, dword [ebp + 0x2418]
add dword [esi], 0x64
lea eax, [esp + 0x14]
push eax
call fcn.100d4a90
push 2
pop ebx
push ebx
sub esp, 0xc
mov edi, esp
push dword [ebp + 0x2420]
mov esi, eax
push dword [ebp + 0x164]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ecx, ebp
movsd dword es:[edi], dword [esi]
call fcn.100ceff2
mov dword [ebp + 0x160], ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret