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

Disassembly:
push rbp
push rbx
sub rsp, 0x98
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x30], rcx
mov rax, qword [sym.imp.KERNEL32.dll_GetTickCount]
call rax
mov dword [rbp - 4], eax
mov ecx, 0
mov rax, qword [sym.imp.USER32.dll_GetSystemMetrics]
call rax
mov dword [rbp - 8], eax
mov ecx, 1
mov rax, qword [sym.imp.USER32.dll_GetSystemMetrics]
call rax
mov dword [rbp - 0xc], eax
mov eax, dword [rbp - 8]
imul eax, dword [rbp - 0xc]
mov edx, eax
mov eax, dword [rbp - 8]
add eax, edx
cdqe
shl rax, 2
mov r9d, 4
mov r8d, 0x3000
mov rdx, rax
mov ecx, 0
mov rax, qword [sym.imp.KERNEL32.dll_VirtualAlloc]
call rax
mov qword [rbp - 0x18], rax
mov dword [rbp + 0xc], 0
cmp dword [rbp + 0xc], 0
jne 0x401720
mov r9d, 0x85
mov r8d, 0
mov edx, 0
mov ecx, 0
mov rax, qword [sym.imp.USER32.dll_RedrawWindow]
call rax
mov ecx, 0
mov rax, qword [sym.imp.USER32.dll_GetDC]
call rax
mov qword [rbp - 0x20], rax
mov rax, qword [rbp - 0x20]
mov rcx, rax
mov rax, qword [sym.imp.GDI32.dll_CreateCompatibleDC]
call rax
mov qword [rbp - 0x28], rax
mov edx, dword [rbp - 0xc]
mov eax, dword [rbp - 8]
mov rcx, qword [rbp - 0x18]
mov qword [rsp + 0x20], rcx
mov r9d, 0x20
mov r8d, 1
mov ecx, eax
mov rax, qword [sym.imp.GDI32.dll_CreateBitmap]
call rax
mov qword [rbp - 0x30], rax
mov rdx, qword [rbp - 0x30]
mov rax, qword [rbp - 0x28]
mov rcx, rax
mov rax, qword [sym.imp.GDI32.dll_SelectObject]
call rax
mov ecx, dword [rbp - 8]
mov rax, qword [rbp - 0x28]
mov dword [rsp + 0x40], 0x330008
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x30], 0
mov rdx, qword [rbp - 0x20]
mov qword [rsp + 0x28], rdx
mov edx, dword [rbp - 0xc]
mov dword [rsp + 0x20], edx
mov r9d, ecx
mov r8d, 0
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.GDI32.dll_BitBlt]
call rax
mov eax, dword [rbp - 8]
imul eax, dword [rbp - 0xc]
lea edx, [rax*4]
mov rcx, qword [rbp - 0x18]
mov rax, qword [rbp - 0x30]
mov r8, rcx
mov rcx, rax
mov rax, qword [sym.imp.GDI32.dll_GetBitmapBits]
call rax
mov dword [rbp + 8], 0
mov byte [rbp + 7], 0
mov rax, qword [sym.imp.KERNEL32.dll_GetTickCount]
call rax
mov edx, dword [rbp - 4]
sub eax, edx
cmp eax, 0xea60
seta al
test al, al
je 0x401844
call sym.randy__
movsxd rdx, eax
imul rdx, rdx, 0xffffffff80808081
shr rdx, 0x20
add edx, eax
mov ecx, edx
sar ecx, 7
cdq
sub ecx, edx
mov edx, ecx
mov ecx, edx
shl ecx, 8
sub ecx, edx
sub eax, ecx
mov edx, eax
mov byte [rbp + 7], dl
mov dword [rbp], 0
mov eax, dword [rbp - 8]
imul eax, dword [rbp - 0xc]
cmp dword [rbp], eax
jge 0x401967
mov eax, dword [rbp]
cdq
idiv dword [rbp - 0xc]
mov eax, edx
test eax, eax
jne 0x401897
call sym.randy__
movsxd rdx, eax
imul rdx, rdx, 0x51eb851f
shr rdx, 0x20
mov ecx, edx
sar ecx, 5
cdq
sub ecx, edx
mov edx, ecx
imul edx, edx, 0x64
sub eax, edx
mov edx, eax
test edx, edx
jne 0x401897
mov eax, 1
jmp 0x40189c
mov eax, 0
test al, al
je 0x4018cb
call sym.randy__
movsxd rdx, eax
imul rdx, rdx, 0x51eb851f
shr rdx, 0x20
mov ecx, edx
sar ecx, 4
cdq
sub ecx, edx
mov edx, ecx
mov dword [rbp + 8], edx
mov edx, dword [rbp + 8]
imul edx, edx, 0x32
sub eax, edx
mov dword [rbp + 8], eax
mov eax, dword [rbp]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp - 0x18]
lea r8, [rdx + rax]
mov ecx, dword [rbp + 8]
movsxd rax, ecx
imul rax, rax, 0x55555556
shr rax, 0x20
mov rdx, rax
mov eax, ecx
sar eax, 0x1f
mov ebx, edx
sub ebx, eax
mov eax, ebx
mov edx, eax
add edx, edx
add edx, eax
mov eax, ecx
sub eax, edx
movsxd rdx, eax
add rdx, r8
movzx ecx, byte [rdx]
mov edx, dword [rbp]
movsxd r8, edx
mov edx, dword [rbp + 8]
movsxd rdx, edx
add rdx, r8
lea r8, [rdx*4]
mov rdx, qword [rbp - 0x18]
add r8, rdx
mov edx, dword [rbp + 8]
movsxd rdx, edx
add rdx, r8
movzx edx, byte [rdx]
xor dl, byte [rbp + 7]
mov r8d, dword [rbp]
movsxd r8, r8d
lea r9, [r8*4]
mov r8, qword [rbp - 0x18]
add r8, r9
cdqe
add rax, r8
add edx, ecx
mov byte [rax], dl
add dword [rbp], 1
jmp 0x40184b
mov eax, dword [rbp - 8]
imul eax, dword [rbp - 0xc]
shl eax, 2
mov ecx, eax
mov rdx, qword [rbp - 0x18]
mov rax, qword [rbp - 0x30]
mov r8, rdx
mov edx, ecx
mov rcx, rax
mov rax, qword [sym.imp.GDI32.dll_SetBitmapBits]
call rax
call sym.randy__
mov ecx, eax
movsxd rax, ecx
imul rax, rax, 0x55555556
shr rax, 0x20
mov rdx, rax
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
add eax, eax
add eax, edx
sub ecx, eax
mov edx, ecx
lea ebx, [rdx - 1]
call sym.randy__
mov ecx, eax
movsxd rax, ecx
imul rax, rax, 0x55555556
shr rax, 0x20
mov rdx, rax
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
add eax, eax
add eax, edx
sub ecx, eax
mov edx, ecx
sub edx, 1
mov r8d, dword [rbp - 8]
mov rax, qword [rbp - 0x20]
mov dword [rsp + 0x40], 0xcc0020
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x30], 0
mov rcx, qword [rbp - 0x28]
mov qword [rsp + 0x28], rcx
mov ecx, dword [rbp - 0xc]
mov dword [rsp + 0x20], ecx
mov r9d, r8d
mov r8d, ebx
mov rcx, rax
mov rax, qword [sym.imp.GDI32.dll_BitBlt]
call rax
mov rax, qword [rbp - 0x30]
mov rcx, rax
mov rax, qword [sym.imp.GDI32.dll_DeleteObject]
call rax
mov rax, qword [rbp - 0x28]
mov rcx, rax
mov rax, qword [sym.imp.GDI32.dll_DeleteObject]
call rax
mov rax, qword [rbp - 0x20]
mov rcx, rax
mov rax, qword [sym.imp.GDI32.dll_DeleteObject]
call rax
add dword [rbp + 0xc], 1
mov edx, dword [rbp + 0xc]
movsxd rax, edx
imul rax, rax, 0x55555556
shr rax, 0x20
mov rcx, rax
mov eax, edx
sar eax, 0x1f
sub ecx, eax
mov eax, ecx
add eax, eax
add eax, ecx
sub edx, eax
mov eax, edx
mov dword [rbp + 0xc], eax
jmp 0x4016fb