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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x94
mov eax, dword [0x100d9f50]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
push edi
push 0x1388
mov ebx, ecx
call esi
mov eax, dword [0x100de54c]
mov ecx, dword [0x100de548]
push 0
push 0x8088405
push eax
push ecx
call fcn.1004f910
push 0
add eax, 1
push 0xffffffffffffffff
adc edx, 0
push edx
push eax
call fcn.100b0c30
fnstcw word [ebp - 0x7e]
mov dword [0x100de548], eax
mov dword [0x100de54c], edx
fild qword [0x100de548]
movzx eax, word [ebp - 0x7e]
mov edx, dword [ebx]
fdiv qword [0x100cbfe0]
or eax, 0xc00
mov dword [ebp - 0x84], eax
mov edx, dword [edx + 0x14]
push 0xbe
mov ecx, ebx
fmul qword [0x100cc018]
fldcw word [ebp - 0x84]
fistp qword [ebp - 0x88]
mov eax, dword [ebp - 0x88]
fldcw word [ebp - 0x7e]
imul eax, eax, 0x8c
add eax, 0xa3
push eax
call edx
push 0x64
call esi
push 1
call dword [0x100dfb88]
push 0x64
call esi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x84], eax
cmp dword [ebx + 0x58c], 0
je 0x10028848
push 0x3e8
call esi
mov eax, dword [ebx]
mov edx, dword [eax + 0xa0]
mov ecx, ebx
call edx
lea ecx, [ebx + 0x318]
call fcn.10010ef0
test eax, eax
jne 0x100287a7
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp - 0x84]
cmp eax, 0x88b8
ja 0x100287bd
lea eax, [ebp - 0x8c]
push eax
push 0x100ca8a0
lea ecx, [ebp - 0x90]
mov edx, ebx
call fcn.10028170
test al, al
jne 0x100287da
mov esi, dword [ebx + 0x2d0]
lea edi, [ebx + 0x2c0]
mov eax, esi
mov dword [ebp - 0x80], esi
cmp eax, esi
jae 0x100286bc
mov dword [ebp - 0x80], eax
mov edx, esi
cmp esi, 3
jb 0x100286c8
mov edx, 3
cmp dword [edi + 0x14], 0x10
jb 0x100286d0
mov edi, dword [edi]
mov ecx, 0x100ca7fc
cmp edx, 4
jb 0x100286f4
lea ebx, [ebx]
mov eax, dword [edi]
cmp eax, dword [ecx]
jne 0x100286f8
sub edx, 4
add ecx, 4
add edi, 4
cmp edx, 4
jae 0x100286e0
test edx, edx
je 0x10028741
movzx eax, byte [edi]
movzx esi, byte [ecx]
sub eax, esi
jne 0x10028733
cmp edx, 1
jbe 0x1002873e
movzx eax, byte [edi + 1]
movzx esi, byte [ecx + 1]
sub eax, esi
jne 0x10028733
cmp edx, 2
jbe 0x1002873e
movzx eax, byte [edi + 2]
movzx esi, byte [ecx + 2]
sub eax, esi
jne 0x10028733
cmp edx, 3
jbe 0x1002873e
movzx eax, byte [edi + 3]
movzx ecx, byte [ecx + 3]
sub eax, ecx
mov esi, dword [ebp - 0x80]
sar eax, 0x1f
or eax, 1
jmp 0x10028743
mov esi, dword [ebp - 0x80]
xor eax, eax
test eax, eax
jne 0x1002875a
cmp esi, 3
jb 0x1002875a
cmp esi, 3
setne al
test eax, eax
je 0x100289ca
lea edx, [ebp - 0x8c]
push edx
push 0x100ca8a8
lea ecx, [ebp - 0x90]
mov edx, ebx
call fcn.10028170
test al, al
jne 0x10028814
lea eax, [ebp - 0x8c]
push eax
push 0x100ca8b0
lea ecx, [ebp - 0x90]
mov edx, ebx
call fcn.10028170
test al, al
jne 0x10028831
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x10028639
mov eax, 5
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10047d85
mov esp, ebp
pop ebp
ret
mov dword [ebx + 0x784], 1
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10047d85
mov esp, ebp
pop ebp
ret
xor eax, eax
lea esp, [esp]
mov cl, byte [eax + 0x100ca8a0]
mov byte [ebp + eax - 0x48], cl
inc eax
test cl, cl
jne 0x100287e0
push 0x3e8
call esi
mov ecx, dword [ebx + 0x7b4]
push 0x3c
mov byte [ecx + 1], 0x80
call esi
mov edx, dword [ebx + 0x7b4]
push 0x1e
mov byte [edx + 1], 0
call esi
jmp 0x10028848
xor eax, eax
jmp 0x10028820
mov cl, byte [eax + 0x100ca8a8]
mov byte [ebp + eax - 0x48], cl
inc eax
test cl, cl
jne 0x10028820
jmp 0x10028842
xor eax, eax
mov cl, byte [eax + 0x100ca8b0]
mov byte [ebp + eax - 0x48], cl
inc eax
test cl, cl
jne 0x10028833
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
lea eax, [ebp - 0x48]
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10028850
sub eax, edx
push eax
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebx + 0x6e0]
call fcn.100048f0
cmp dword [ebx + 0x58c], 0
mov dword [ebx + 0x784], 0
je 0x100289ca
call fcn.10027430
cmp eax, 0xa
jl 0x100287bd
mov edx, dword [ebx]
mov eax, dword [edx + 0xac]
mov ecx, ebx
call eax
push 1
lea eax, [ebx + 0x358]
push 0x100ca8b8
call fcn.100100a0
mov edi, eax
test edi, edi
je 0x100289c3
cmp dword [edi + 0xec], 0x30
jg 0x100289c3
lea ecx, [ebp - 0x48]
push 0x100ca8a0
push ecx
call fcn.10048790
add esp, 8
test eax, eax
jne 0x100289c3
mov ecx, edi
call fcn.1002a910
test al, al
je 0x100289ca
mov edx, dword [ebx + 0x7b4]
push 0x3c
mov byte [edx + 0x17], 0x80
call esi
mov eax, dword [ebx + 0x7b4]
push 0x1e
mov byte [eax + 0x17], 0
call esi
push 0x3e8
call esi
mov dword [ebp - 0x14], 0xe6d1d2c1
mov dword [ebp - 0x10], 0xb5c5cbb1
mov dword [ebp - 0xc], 0xaed6ded0
mov word [ebp - 8], 0xe4bd
mov byte [ebp - 6], 0
mov dword [ebp - 0x80], 0
mov edi, dword [ebp - 0x80]
lea eax, [ebx + 0x358]
call fcn.10010180
mov edi, eax
test edi, edi
je 0x1002899b
push 0x100ca8b8
push edi
call fcn.10048790
add esp, 8
test eax, eax
je 0x1002899b
cmp dword [edi + 0xec], 0x37
jg 0x100289a7
lea ecx, [ebp - 0x14]
push ecx
push edi
call fcn.10048790
add esp, 8
test eax, eax
jne 0x1002899b
mov ecx, edi
call fcn.1002a910
test al, al
je 0x1002899b
lea edx, [ebp - 0x7c]
mov eax, edi
sub edx, edi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x10028986
lea edx, [ebp - 0x7c]
push edx
mov edi, ebx
call fcn.100289e0
mov eax, dword [ebp - 0x80]
inc eax
mov dword [ebp - 0x80], eax
cmp eax, 0x38
jl 0x10028934
mov eax, dword [ebx + 0x7b4]
push 0x3c
mov byte [eax + 1], 0x80
call esi
mov ecx, dword [ebx + 0x7b4]
mov byte [ecx + 1], 0
push 0x1e
jmp 0x100289c8
push 0x3e8
call esi
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.10047d85
mov esp, ebp
pop ebp
ret