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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
push ebx
push esi
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
mov dword [ebp - 0x1c], eax
call fcn.00406d50
movsx ebx, al
call fcn.00406d60
movsx ecx, al
imul ebx, ecx
mov dword [ebp - 4], ebx
call fcn.00406d90
movsx esi, al
lea eax, [ebx*8]
sub eax, ebx
mov dword [ebp - 8], esi
add eax, esi
mov dword [ebp - 0xc], eax
call edi
sub eax, dword [ebp - 0x1c]
cmp eax, 0x927c0
jae 0x410c28
mov ecx, 1
xor edx, edx
jmp 0x410c36
xorps xmm0, xmm0
movlpd qword [ebp - 0x28], xmm0
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
call fcn.0043b5f0
movsd qword [ebp - 0x28], xmm0
xor eax, eax
je 0x410c45
add byte [edi], cl
mov esi, 0x44eae205
add byte [ebx], dh
shl byte [esi + 0xf], cl
outsb dx, byte [esi]
ror byte [edi], 1
mov esi, 0x44eae405
add bl, dh
invalid
movsx eax, byte [0x44eae2]
xor edx, edx
movd xmm2, eax
movsx eax, byte [0x44eae4]
cvtdq2pd xmm2, xmm2
movd xmm1, eax
cvtdq2pd xmm1, xmm1
addsd xmm1, xmm1
subsd xmm2, xmm1
mulsd xmm2, qword [ebp - 0x28]
movsd qword [ebp - 0x28], xmm2
movsx eax, byte [0x44eae1]
add eax, dword [ebp - 0xc]
movsx ecx, byte [0x44eae0]
div ecx
movsx ecx, byte [0x44eae3]
sub eax, ecx
je 0x410cda
call fcn.00406d70
movsx ecx, al
movsx eax, byte [0x45037c]
imul ecx, eax
add ecx, ecx
call fcn.00406da0
movsx eax, al
sub ecx, eax
call fcn.00406d80
movsx eax, al
add eax, ecx
movsx ecx, byte [0x44eae4]
add ecx, eax
je 0x410cda
mov ebx, dword [ebp - 4]
mov esi, dword [ebp - 8]
mov dword [ebp - 0x14], 1
lea edi, [ebx + ebx*8]
jmp 0x410d4b
mov ebx, dword [ebp - 4]
xor edx, edx
movsx eax, byte [0x44eae1]
mov esi, dword [ebp - 8]
add eax, esi
movsx ecx, byte [0x44eae0]
lea edi, [ebx + ebx*8]
add eax, edi
div ecx
movsx ecx, byte [0x44eae3]
sub eax, ecx
je 0x410d4b
movsx ecx, byte [0x44eae1]
lea eax, [ebx + esi]
lea eax, [eax + ebx*2]
xor edx, edx
add eax, ecx
movsx ecx, byte [0x44eae0]
div ecx
movsx ecx, byte [0x44eae3]
movsd xmm0, qword [ebp - 0x28]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x44a340]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [ebp - 0x14], eax
movsx eax, byte [0x44eae1]
lea ecx, [esi + edi]
add eax, ecx
mov dword [ebp - 0x10], ecx
movsx ecx, byte [0x44eae0]
xor edx, edx
div ecx
movsx ecx, byte [0x44eae3]
sub eax, ecx
imul eax, dword [ebp - 0x14]
test eax, eax
je 0x411065
push 0
push str.Shell_TrayWnd
call dword [sym.imp.USER32.dll_FindWindowW]
mov dword [ebp - 0x24], eax
lea ecx, [ebx + esi]
movsx eax, byte [0x44eae1]
lea ecx, [ecx + ebx*4]
xor edx, edx
lea eax, [eax + ecx]
movsx ecx, byte [0x44eae0]
div ecx
movsx ecx, byte [0x44eae3]
sub eax, ecx
je 0x411046
xor eax, eax
je 0x410db9
add byte [edi], cl
mov esi, 0x44eae205
add byte [ebx], dh
ror byte [ebx + 0xf66f47d], cl
outsb dx, byte [esi]
enter 0xffffffffffffbe0f, 5
in al, 0xea
inc esp
add bl, dh
invalid
movsx eax, byte [0x44eae2]
xor edx, edx
mov edi, dword [ebp - 0xc]
movd xmm1, eax
movsx eax, byte [0x44eae4]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
movd xmm0, dword [ebp - 0x24]
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm0
movsd qword [ebp - 0x28], xmm1
movsx eax, byte [0x44eae1]
movsx ecx, byte [0x44eae0]
add eax, edi
div ecx
movsx ecx, byte [0x44eae3]
sub eax, ecx
je 0x410fc9
call fcn.00406d70
movsx ecx, al
movsx eax, byte [0x45037c]
imul ecx, eax
add ecx, ecx
call fcn.00406da0
movsx eax, al
sub ecx, eax
call fcn.00406d80
movsx eax, al
add eax, ecx
movsx ecx, byte [0x44eae4]
add ecx, eax
je 0x410fc9
mov dword [ebp - 0x18], 1
mov esi, dword [ebp - 8]
mov ebx, dword [ebp - 4]
movsx eax, byte [0x44eae1]
lea ecx, [ebx + ebx*2]
add eax, esi
xor edx, edx
lea eax, [eax + ecx*2]
movsx ecx, byte [0x44eae0]
div ecx
movsx ecx, byte [0x44eae3]
sub eax, ecx
imul eax, dword [ebp - 0x18]
test eax, eax
je 0x411046
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
movsx eax, byte [0x44eae1]
xor edx, edx
movsx ecx, byte [0x44eae0]
add eax, edi
div ecx
movsx ecx, byte [0x44eae3]
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x44a340]
movsd qword [ebp - 0x28], xmm0
xor eax, eax
je 0x410ed0
add byte [edi], cl
mov esi, 0x44eae205
add byte [ebx], dh
shl byte [esi + 0xf], cl
outsb dx, byte [esi]
enter 0xffffffffffffbe0f, 5
in al, 0xea
inc esp
add bl, dh
invalid
movsx eax, byte [0x44eae2]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x44eae4]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, qword [ebp - 0x28]
movsd qword [ebp - 0x28], xmm1
movsx eax, byte [0x44eae1]
add eax, dword [ebp - 0xc]
movsx ecx, byte [0x44eae0]
div ecx
movsx ecx, byte [0x44eae3]
sub eax, ecx
je 0x410f57
call fcn.00406d70
movsx ecx, al
movsx eax, byte [0x45037c]
imul ecx, eax
add ecx, ecx
call fcn.00406da0
movsx eax, al
sub ecx, eax
call fcn.00406d80
movsx eax, al
add eax, ecx
movsx ecx, byte [0x44eae4]
add ecx, eax
jne 0x41105c
movsx eax, byte [0x44eae1]
xor edx, edx
add eax, dword [ebp - 0x10]
movsx ecx, byte [0x44eae0]
div ecx
movsx ecx, byte [0x44eae3]
sub eax, ecx
je 0x41103f
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 8]
movsx ecx, byte [0x44eae1]
add eax, edx
lea eax, [eax + edx*2]
xor edx, edx
add eax, ecx
movsx ecx, byte [0x44eae0]
div ecx
movsx ecx, byte [0x44eae3]
movsd xmm0, qword [ebp - 0x28]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x44a340]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [ebp - 0x2c], eax
jmp 0x411042
movsx eax, byte [0x44eae1]
xor edx, edx
add eax, dword [ebp - 0x10]
movsx ecx, byte [0x44eae0]
div ecx
movsx ecx, byte [0x44eae3]
sub eax, ecx
je 0x410e55
mov ebx, dword [ebp - 4]
xor edx, edx
mov esi, dword [ebp - 8]
movsx ecx, byte [0x44eae1]
lea eax, [ebx + esi]
lea eax, [eax + ebx*2]
add eax, ecx
movsx ecx, byte [0x44eae0]
div ecx
movsx ecx, byte [0x44eae3]
movsd xmm0, qword [ebp - 0x28]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x44a340]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [ebp - 0x18], eax
jmp 0x410e5b
mov eax, dword [ebp - 0x2c]
test eax, eax
jg 0x41105c
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
jmp 0x410c13
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movsx eax, byte [0x44eae1]
xor edx, edx
add eax, dword [ebp - 0xc]
movsx ecx, byte [0x44eae0]
div ecx
movsx ecx, byte [0x44eae3]
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x44a340]
movsd qword [ebp - 0x30], xmm0
xor eax, eax
je 0x4110a1
add byte [edi], cl
mov esi, 0x44eae205
add byte [ebx], dh
shl byte [esi + 0xf], cl
outsb dx, byte [esi]
enter 0xffffffffffffbe0f, 5
in al, 0xea
inc esp
add bl, dh
invalid
movsx eax, byte [0x44eae2]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x44eae4]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, qword [ebp - 0x30]
movsd qword [ebp - 0x30], xmm1
movsx eax, byte [0x44eae1]
add eax, dword [ebp - 0xc]
movsx ecx, byte [0x44eae0]
div ecx
movsx ecx, byte [0x44eae3]
sub eax, ecx
je 0x411124
call fcn.00406d70
movsx ecx, al
movsx eax, byte [0x45037c]
imul ecx, eax
add ecx, ecx
call fcn.00406da0
movsx eax, al
sub ecx, eax
call fcn.00406d80
movsx eax, al
add eax, ecx
movsx ecx, byte [0x44eae4]
add ecx, eax
jne 0x411196
movsx eax, byte [0x44eae1]
xor edx, edx
add eax, dword [ebp - 0x10]
movsx ecx, byte [0x44eae0]
div ecx
movsx ecx, byte [0x44eae3]
sub eax, ecx
je 0x41118f
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 8]
movsx ecx, byte [0x44eae1]
add eax, edx
lea eax, [eax + edx*2]
xor edx, edx
add eax, ecx
movsx ecx, byte [0x44eae0]
div ecx
movsx ecx, byte [0x44eae3]
movsd xmm0, qword [ebp - 0x30]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x44a340]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
jmp 0x411192
mov eax, dword [ebp - 0x2c]
test eax, eax
jle 0x411198
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret