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

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x90
mov qword [rbp + 0x10], rcx
mov rax, qword [sym.imp.KERNEL32.dll_GetTickCount]
call rax
mov dword [rbp - 0x10], eax
mov ecx, 0
mov rax, qword [sym.imp.USER32.dll_GetSystemMetrics]
call rax
mov dword [rbp - 0x14], eax
mov ecx, 1
mov rax, qword [sym.imp.USER32.dll_GetSystemMetrics]
call rax
mov dword [rbp - 0x18], eax
mov eax, dword [rbp - 0x14]
imul eax, dword [rbp - 0x18]
mov edx, eax
mov eax, dword [rbp - 0x14]
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 - 0x20], rax
mov dword [rbp - 4], 0
mov ecx, 0
mov rax, qword [sym.imp.USER32.dll_GetDC]
call rax
mov qword [rbp - 0x28], rax
mov rax, qword [rbp - 0x28]
mov rcx, rax
mov rax, qword [sym.imp.GDI32.dll_CreateCompatibleDC]
call rax
mov qword [rbp - 0x30], rax
mov edx, dword [rbp - 0x18]
mov eax, dword [rbp - 0x14]
mov rcx, qword [rbp - 0x20]
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 - 0x38], rax
mov rdx, qword [rbp - 0x38]
mov rax, qword [rbp - 0x30]
mov rcx, rax
mov rax, qword [sym.imp.GDI32.dll_SelectObject]
call rax
mov ecx, dword [rbp - 0x14]
mov rax, qword [rbp - 0x30]
mov dword [rsp + 0x40], 0xcc0020
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x30], 0
mov rdx, qword [rbp - 0x28]
mov qword [rsp + 0x28], rdx
mov edx, dword [rbp - 0x18]
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 - 0x14]
imul eax, dword [rbp - 0x18]
lea edx, [rax*4]
mov rcx, qword [rbp - 0x20]
mov rax, qword [rbp - 0x38]
mov r8, rcx
mov rcx, rax
mov rax, qword [sym.imp.GDI32.dll_GetBitmapBits]
call rax
mov dword [rbp - 0x3c], 0
mov byte [rbp - 5], 0
mov rax, qword [sym.imp.KERNEL32.dll_GetTickCount]
call rax
mov edx, dword [rbp - 0x10]
sub eax, edx
cmp eax, 0xea60
seta al
test al, al
je 0x140003a5d
call sym.rand
mov byte [rbp - 5], al
mov dword [rbp - 0xc], 0
mov eax, dword [rbp - 0x14]
imul eax, dword [rbp - 0x18]
cmp dword [rbp - 0xc], eax
jge 0x140003b6e
mov eax, dword [rbp - 0xc]
cdq
idiv dword [rbp - 0x18]
mov eax, edx
test eax, eax
jne 0x140003ab0
call sym.rand
movsxd rdx, eax
imul rdx, rdx, 0x51eb851f
shr rdx, 0x20
sar edx, 5
mov ecx, eax
sar ecx, 0x1f
sub edx, ecx
imul ecx, edx, 0x64
sub eax, ecx
mov edx, eax
test edx, edx
jne 0x140003ab0
mov eax, 1
jmp 0x140003ab5
mov eax, 0
test al, al
je 0x140003ae4
call sym.rand
movsxd rdx, eax
imul rdx, rdx, 0x51eb851f
shr rdx, 0x20
sar edx, 4
mov ecx, eax
sar ecx, 0x1f
sub edx, ecx
mov dword [rbp - 0x3c], edx
mov edx, dword [rbp - 0x3c]
imul edx, edx, 0x32
sub eax, edx
mov dword [rbp - 0x3c], eax
mov eax, dword [rbp - 0xc]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp - 0x20]
add rax, rdx
add rax, 0xfc
movzx r8d, byte [rax]
mov eax, dword [rbp - 0xc]
cdqe
lea rdx, [rax*4]
mov rax, qword [rbp - 0x20]
lea r9, [rdx + rax]
mov edx, dword [rbp - 0xc]
movsxd rax, edx
imul rax, rax, 0x55555556
shr rax, 0x20
mov ecx, edx
sar ecx, 0x1f
sub eax, ecx
mov ecx, eax
add ecx, ecx
add ecx, eax
mov eax, edx
sub eax, ecx
cdqe
add rax, r9
movzx eax, byte [rax]
xor al, byte [rbp - 5]
mov edx, eax
mov eax, dword [rbp - 0xc]
cdqe
lea rcx, [rax*4]
mov rax, qword [rbp - 0x20]
add rax, rcx
add rax, 0xfc
add edx, r8d
mov byte [rax], dl
add dword [rbp - 0xc], 1
jmp 0x140003a64
mov eax, dword [rbp - 0x14]
imul eax, dword [rbp - 0x18]
shl eax, 2
mov ecx, eax
mov rdx, qword [rbp - 0x20]
mov rax, qword [rbp - 0x38]
mov r8, rdx
mov edx, ecx
mov rcx, rax
mov rax, qword [sym.imp.GDI32.dll_SetBitmapBits]
call rax
mov ecx, dword [rbp - 0x14]
mov rax, qword [rbp - 0x28]
mov dword [rsp + 0x40], 0xcc0020
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x30], 0
mov rdx, qword [rbp - 0x30]
mov qword [rsp + 0x28], rdx
mov edx, dword [rbp - 0x18]
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 rax, qword [rbp - 0x38]
mov rcx, rax
mov rax, qword [sym.imp.GDI32.dll_DeleteObject]
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
add dword [rbp - 4], 1
mov eax, dword [rbp - 4]
movsxd rdx, eax
imul rdx, rdx, 0x55555556
shr rdx, 0x20
mov r8d, eax
sar r8d, 0x1f
mov ecx, edx
sub ecx, r8d
mov edx, ecx
add edx, edx
add edx, ecx
sub eax, edx
mov dword [rbp - 4], eax
jmp 0x14000395e