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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x2c
mov esi, dword [ebp + 0x14]
mov edi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
movzx ecx, word [esi]
test cx, cx
jne 0x1000b700
movzx edx, byte [esi + 8]
mov eax, edx
and eax, 1
and edx, 2
je 0x1000b7f8
test al, al
jne 0x1000b760
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x24]
mov ecx, dword [edx]
movzx eax, word [edx + 0xa]
mov ebx, dword [ecx + 0x28]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*4]
movzx ebx, word [eax + 0x10]
test bx, bx
je 0x1000b74e
mov eax, dword [ebp + 8]
mov byte [eax + 0x22], 2
call sub.kernel32.dll_GetTickCount
mov edi, dword [ebp + 8]
mov dword [edi + 0x1c], eax
mov eax, dword [edi + 0x24]
mov word [edi + 0x20], bx
or dword [eax + 0x24], 0x10
nop
mov eax, dword [ebp + 0x18]
mov byte [eax + 6], 1
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp cx, 0x12
ja 0x1000b6f0
mov eax, 1
shl eax, cl
test eax, 0x30180
jne 0x1000b866
test al, 0x5a
jne 0x1000b924
test eax, 0x40200
je 0x1000b6f0
mov eax, dword [ebp + 0x18]
movzx eax, word [eax + 4]
test ax, ax
je 0x1000b6f0
cmp ax, 0xff
je 0x1000b743
mov edi, dword [ebp + 0x18]
sub eax, 1
mov word [edi + 4], ax
mov edi, dword [ebp + 0x18]
movzx eax, word [esi + 0xe]
add dword [edi], eax
jmp 0x1000b6f7
mov ebx, dword [edx + 0x34]
test ebx, ebx
jne 0x1000b956
lea esi, [esi]
mov eax, dword [ebp + 8]
xor edi, edi
mov eax, dword [eax]
cmp byte [eax + 0xb], 0
je 0x1000b6f0
lea esi, [esi]
mov ebx, edi
mov edx, dword [ebp + 8]
movzx esi, bl
lea ebx, [esi + esi*4]
shl ebx, 4
imul esi, esi, 0x1c
add ebx, dword [edx + 4]
add esi, dword [eax + 0x10]
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x1000b79e
mov dword [esp + 4], 1
mov dword [esp], eax
call fcn.100088e0
mov eax, dword [ebx + 0x34]
test eax, eax
je 0x1000b7b4
mov dword [esp], eax
call fcn.10008860
mov dword [ebx + 0x34], 0
xor edx, edx
cmp byte [esi + 0x14], 0
je 0x1000b7e1
lea esi, [esi]
movzx eax, dl
mov ecx, dword [ebx]
add edx, 1
lea eax, [eax + eax*2]
shl eax, 2
mov word [ecx + eax + 4], 0
mov ecx, dword [ebx]
mov byte [ecx + eax + 6], 1
cmp dl, byte [esi + 0x14]
jb 0x1000b7c0
mov eax, dword [ebp + 8]
add edi, 1
mov ebx, edi
mov eax, dword [eax]
cmp bl, byte [eax + 0xb]
jb 0x1000b770
jmp 0x1000b6f0
mov ecx, dword [ebx + 0x20]
test ecx, ecx
je 0x1000b815
movzx eax, al
mov byte [ebp - 0x20], dl
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.100088e0
movzx edx, byte [ebp - 0x20]
mov eax, dword [ebx + 0x34]
test eax, eax
je 0x1000b832
mov byte [ebp - 0x20], dl
mov dword [esp], eax
call fcn.10008860
mov dword [ebx + 0x34], 0
movzx edx, byte [ebp - 0x20]
cmp byte [edi + 0x14], 0
je 0x1000b6f0
lea esi, [esi]
movzx eax, dl
mov ecx, dword [ebx]
xor esi, esi
add edx, 1
lea eax, [eax + eax*2]
shl eax, 2
mov word [ecx + eax + 4], si
mov ecx, dword [ebx]
mov byte [ecx + eax + 6], 1
cmp dl, byte [edi + 0x14]
jb 0x1000b840
jmp 0x1000b6f0
test byte [esi + 8], 1
je 0x1000b96b
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x1c], 0
mov ecx, dword [eax]
movzx eax, word [esi + 0x1c]
mov dword [ebp - 0x20], eax
fild dword [ebp - 0x20]
lea edx, [eax + ecx]
fld dword [esi + 0x10]
fld dword [esi + 0x14]
mov eax, dword [ebp + 0x1c]
cmp edx, dword [ebp + 0x1c]
setae dl
fmul st(2)
sub eax, ecx
fdiv dword [0x1002b468]
mov dword [ebp - 0x20], eax
fmul dword [0x1002b46c]
fadd st(1)
fsub st(1)
fild qword [ebp - 0x20]
fdivrp st(3)
fld1
fxch st(3)
fcomi st(3)
fstp st(3)
jbe 0x1000b9aa
fstp st(2)
fxch st(1)
faddp st(1)
mov eax, dword [ebp + 0x18]
fst dword [eax + 8]
movzx eax, word [esi]
cmp ax, 7
je 0x1000b99d
cmp ax, 0x10
je 0x1000b99d
fstp dword [ebx + 0x1c]
test dl, dl
jne 0x1000b6f7
mov eax, dword [ebp + 0x18]
movzx eax, word [eax + 4]
test ax, ax
je 0x1000b6f0
cmp ax, 0xff
je 0x1000b916
cmp ax, 0xffff
je 0x1000b916
mov edi, dword [ebp + 0x18]
sub eax, 1
mov word [edi + 4], ax
mov edi, dword [ebp + 0x18]
movzx eax, word [esi + 0xc]
add dword [edi], eax
jmp 0x1000b6f7
mov esi, dword [ebx + 0x38]
mov ecx, dword [ebx + 0x34]
mov dword [ebx + 0x34], 0
mov edx, dword [ebx + 0x44]
mov dword [ebx + 0x24], esi
mov esi, dword [ebx + 0x3c]
mov dword [ebx + 0x20], ecx
mov dword [ebx + 0x28], esi
mov esi, dword [ebx + 0x40]
mov dword [ebx + 0x30], edx
mov dword [ebx + 0x2c], esi
mov dword [esp], ecx
call fcn.10008880
jmp 0x1000b6f0
mov eax, dword [ebp + 8]
test bx, bx
je 0x1000b9f4
mov byte [eax + 0x22], 3
jmp 0x1000b6d9
movzx edx, byte [esi + 0x10]
test dl, 4
jne 0x1000b9a5
fldz
test dl, 8
jne 0x1000b9bd
and edx, 1
je 0x1000b8c8
movzx eax, word [esi]
cmp ax, 7
je 0x1000b9b3
cmp ax, 0x10
je 0x1000b9b3
fadd dword [ebx + 0x1c]
xor edx, edx
jmp 0x1000b8c8
fstp dword [ebx + 0x18]
jmp 0x1000b8e8
fld dword [esi + 0x14]
jmp 0x1000b97b
fmulp st(2)
fxch st(1)
jmp 0x1000b8c6
fadd dword [ebx + 0x18]
xor edx, edx
jmp 0x1000b8c8
fstp st(0)
fld dword [esi + 0x14]
fstp dword [ebp - 0x20]
call fcn.10009a90
fld dword [esi + 0x18]
fsub dword [esi + 0x14]
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x28], eax
fild qword [ebp - 0x28]
fmul dword [0x1002b444]
movzx edx, byte [esi + 0x10]
fstp dword [ebp - 0x28]
fld dword [ebp - 0x28]
fmulp st(1)
fadd dword [ebp - 0x20]
jmp 0x1000b97b
mov dword [esp], eax
call fcn.1000a350
jmp 0x1000b6f0