Function at 0x140068630
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x2a8
mov rbx, r8
mov rsi, rdx
mov r13, rcx
mov r14, qword [rsp + 0x310]
movzx eax, byte [rsp + 0x318]
movdqu xmm0, xmmword [r14]
movdqu xmm1, xmmword [r14 + 0x10]
movdqu xmmword [rdx + 0x120], xmm1
movdqu xmmword [rdx + 0x110], xmm0
movabs rcx, 0x14452474e574f44
cmp qword [rdx + 0x128], rcx
sete bpl
and bpl, al
je 0x1400687a6
mov byte [rsp + 0x1e0], 1
mov byte [rsp + 0x1e2], 0xd
mov word [rsp + 0x288], 0x1f
mov word [rsp + 0x298], 4
cmp byte [rbx + 0x41], 2
sete r8b
lea rdx, [rsp + 0x1e0]
mov rcx, rbx
call fcn.140056740
mov byte [rbx + 0x331], 1
mov word [r13], 8
mov rax, qword [rsi + 0xb0]
lock dec qword [rax]
mov dil, 1
jne 0x1400686fb
lea rcx, [rsi + 0xb0]
call fcn.1400622d0
cmp byte [rsi + 0xa8], 2
setne al
test bpl, al
je 0x140068713
lea rcx, [rsi + 0x28]
call fcn.140061140
test dil, dil
je 0x140068b7d
cmp byte [rsi], 0
jne 0x14006873f
mov r8, qword [rsi + 8]
test r8, r8
je 0x14006873f
cmp qword [rsi + 0x10], 0
je 0x14006873f
mov rcx, qword [0x1401d2138]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov rdi, qword [rsi + 0xc8]
mov rbx, qword [rsi + 0xd0]
mov rcx, rdi
call qword [rbx]
cmp qword [rbx + 8], 0
je 0x140068775
cmp qword [rbx + 0x10], 0x11
jb 0x140068764
mov rdi, qword [rdi - 8]
mov rcx, qword [0x1401d2138]
xor edx, edx
mov r8, rdi
call sub.KERNEL32.dll_HeapFree
mov r8, qword [rsi + 0xd8]
test r8, r8
je 0x140068b7d
cmp qword [rsi + 0xe0], 0
je 0x140068b7d
mov rcx, qword [0x1401d2138]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
jmp 0x140068b7d
mov byte [rsp + 0x3f], bpl
mov rcx, qword [r14 + 0x58]
test rcx, rcx
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x40], r9
je 0x14006889a
mov rax, qword [r14 + 0x48]
shl rcx, 3
lea rcx, [rcx + rcx*4]
xor edx, edx
mov r8d, 0x1f7f
jmp 0x1400687e9
add rdx, 0x28
cmp rcx, rdx
je 0x140068807
movzx r10d, word [rax + rdx]
mov r15b, 1
bt r8, r10
jb 0x1400687e0
cmp r10, 0xd
jne 0x14006880a
cmp word [rax + rdx + 0x20], 0x13
jne 0x1400687e0
jmp 0x14006880a
xor r15d, r15d
mov byte [rsi + 0x130], r15b
xor edx, edx
jmp 0x140068829
add rdx, 0x28
cmp rcx, rdx
je 0x140068851
movzx r8d, word [rax + rdx]
lea r10, [r8 - 3]
cmp r10, 0xa
jb 0x140068820
cmp r8d, 2
jb 0x140068820
mov r12b, 1
cmp r8d, 0xd
jne 0x140068854
cmp word [rax + rdx + 0x20], 0x14
jne 0x140068820
jmp 0x140068854
xor r12d, r12d
xor edx, edx
mov r8d, 0x1eff
jmp 0x140068869
add rdx, 0x28
cmp rcx, rdx
je 0x1400688a7
movzx r9d, word [rax + rdx]
mov dil, 1
bt r8, r9
jb 0x140068860
cmp r9, 0xd
jne 0x140068885
cmp word [rax + rdx + 0x20], 5
jne 0x140068860
lea rbp, [rsi + 0xf0]
cmp byte [rsi + 0xa8], 2
jne 0x1400688bd
jmp 0x140068a32
mov byte [rsi + 0x130], 0
xor r15d, r15d
xor r12d, r12d
xor edi, edi
lea rbp, [rsi + 0xf0]
cmp byte [rsi + 0xa8], 2
je 0x140068a32
lea rdx, [rsi + 0x20]
lea rcx, [rsp + 0x150]
mov r8d, 0x90
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x1d0]
cmp rax, qword [r14 + 0x40]
jne 0x140068a25
lea r13, [r14 + 0x20]
test rax, rax
je 0x140068b91
lea rcx, [rax - 0x21]
cmp rcx, 0xffffffffffffffe0
jb 0x140069173
cmp rax, 8
jae 0x140068910
xor edx, edx
xor ecx, ecx
jmp 0x140068a00
cmp rax, 0x10
jae 0x140068984
xor edx, edx
xor ecx, ecx
mov r8, rcx
mov rcx, rax
and rcx, 0xfffffffffffffff8
movzx edx, dl
movd xmm0, edx
nop dword [rax + rax]
mov rdx, qword [r13 + r8]
xor rdx, qword [rsp + r8 + 0x1b0]
movq xmm1, rdx
por xmm0, xmm1
add r8, 8
cmp rcx, r8
jne 0x140068930
pshufd xmm1, xmm0, 0x55
por xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
por xmm0, xmm1
movdqa xmm1, xmm0
psrlw xmm1, 8
por xmm1, xmm0
movd edx, xmm1
cmp rax, rcx
jne 0x140068a00
jmp 0x140068a1d
mov rcx, rax
and rcx, 0xfffffffffffffff0
movdqu xmm1, xmmword [rsp + 0x1b0]
movdqu xmm0, xmmword [r14 + 0x20]
pxor xmm0, xmm1
pxor xmm1, xmm1
cmp rcx, 0x10
je 0x1400689bb
movdqu xmm2, xmmword [rsp + 0x1c0]
movdqu xmm1, xmmword [r14 + 0x30]
pxor xmm1, xmm2
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movdqa xmm1, xmm0
psrld xmm1, 0x10
por xmm1, xmm0
movdqa xmm0, xmm1
psrlw xmm0, 8
por xmm0, xmm1
movd edx, xmm0
cmp rax, rcx
je 0x140068a1d
test al, 8
jne 0x14006891a
nop dword [rax]
movzx r8d, byte [r13 + rcx]
xor r8b, byte [rsp + rcx + 0x1b0]
lea r9, [rcx + 1]
or dl, r8b
mov rcx, r9
cmp rax, r9
jne 0x140068a00
test dl, dl
je 0x140068b91
lea rcx, [rsp + 0x158]
call fcn.140061140
mov r13, qword [rsi + 0xb0]
movups xmm0, xmmword [rsi]
movups xmm1, xmmword [rsi + 0x10]
movaps xmmword [rsp + 0x1f0], xmm1
movaps xmmword [rsp + 0x1e0], xmm0
movzx eax, byte [0x1401d21e9]
mov rcx, qword [0x1401d2138]
test rcx, rcx
jne 0x140068a7b
call sub.KERNEL32.dll_GetProcessHeap
test rax, rax
je 0x14006918b
mov rcx, rax
mov qword [0x1401d2138], rax
mov r8d, 0x168
xor edx, edx
call sub.KERNEL32.dll_HeapAlloc
test rax, rax
je 0x14006918b
mov rbx, rax
lea rdx, [rsp + 0x1e0]
mov r8d, 0xa8
mov rcx, rax
call sub.msvcrt.dll_memcpy
mov byte [rbx + 0xa8], 2
mov qword [rbx + 0xb0], r13
movups xmm0, xmmword [rsi + 0xb8]
movups xmm1, xmmword [rsi + 0xc8]
movups xmm2, xmmword [rsi + 0xd8]
movups xmmword [rbx + 0xb8], xmm0
movups xmmword [rbx + 0xc8], xmm1
movups xmmword [rbx + 0xd8], xmm2
mov rax, qword [rsi + 0xe8]
mov qword [rbx + 0xe8], rax
mov rax, qword [rsp + 0x40]
mov qword [rbx + 0xf0], rax
movups xmm0, xmmword [r14 + 0x20]
movups xmm1, xmmword [r14 + 0x30]
movups xmmword [rbx + 0xf8], xmm0
movups xmmword [rbx + 0x108], xmm1
mov rax, qword [r14 + 0x40]
mov qword [rbx + 0x118], rax
movups xmm0, xmmword [rbp + 0x30]
movups xmmword [rbx + 0x150], xmm0
movdqu xmm0, xmmword [rbp]
movdqu xmm1, xmmword [rbp + 0x10]
movdqu xmm2, xmmword [rbp + 0x20]
movdqu xmmword [rbx + 0x120], xmm0
movdqu xmmword [rbx + 0x130], xmm1
movdqu xmmword [rbx + 0x140], xmm2
mov byte [rbx + 0x160], r15b
mov byte [rbx + 0x161], dil
mov byte [rbx + 0x162], r12b
mov rcx, qword [rsp + 0x48]
mov qword [rcx + 8], rbx
lea rax, fcn.14006c2d0
mov qword [rcx + 0x10], rax
mov byte [rcx], 0x14
add rsp, 0x2a8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, qword [rsp + 0x150]
movzx edx, word [rcx + 0x50]
mov al, 0x29
mov r8, qword [rsp + 0x40]
cmp dx, word [r8 + 0x50]
jne 0x140068bd5
movzx edx, dx
cmp edx, 0x178
jne 0x140068bc1
movzx ecx, word [rcx + 0x52]
cmp cx, word [r8 + 0x52]
jne 0x140068bd5
cmp byte [rsp + 0x1d8], 0
setne al
mov ecx, r15d
xor cl, al
mov al, 0x2a
je 0x140068c0b
mov rcx, qword [rsp + 0x48]
mov byte [rcx], 8
mov byte [rcx + 1], al
lea rcx, [rsp + 0x158]
call fcn.140061140
movzx ebp, byte [rsp + 0x3f]
mov rax, qword [rsi + 0xb0]
lock dec qword [rax]
mov dil, 1
je 0x1400686ef
jmp 0x1400686fb
mov rdx, qword [rsp + 0x180]
cmp rdx, 0x30
jne 0x14006919c
mov rax, qword [rsp + 0x170]
mov qword [rsp + 0xd8], r8
lea r9, [rsp + 0xe0]
movups xmm0, xmmword [rbp]
movups xmm1, xmmword [rbp + 0x10]
movups xmm2, xmmword [rbp + 0x20]
movups xmm3, xmmword [rbp + 0x30]
movups xmmword [rsp + 0x110], xmm3
movups xmmword [rsp + 0x100], xmm2
movups xmmword [rsp + 0xf0], xmm1
movups xmmword [rsp + 0xe0], xmm0
lea rdx, [rsp + 0x120]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmm2, xmmword [rax + 0x20]
movups xmmword [rsp + 0x120], xmm0
movups xmmword [rsp + 0x130], xmm1
movups xmmword [rsp + 0x140], xmm2
mov rdi, qword [rsi + 0xb0]
mov rax, qword [rdi + 0x78]
mov r10, qword [rdi + 0x80]
mov rcx, qword [r10 + 0x10]
dec rcx
and rcx, 0xfffffffffffffff0
add rcx, rax
add rcx, 0x10
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x30], 0x30
mov qword [rsp + 0x20], 0x20
lea rdx, [0x14015595d]
mov r8d, 0xd
call qword [r10 + 0x30]
lea rdx, [rsp + 0xd8]
mov rcx, rbx
call fcn.140069230
mov rdx, qword [rsp + 0x188]
mov r8, qword [rsp + 0x198]
lea rcx, [rsp + 0x1e0]
call fcn.140062100
lea rbp, [rbx + 0x2f0]
mov r14, qword [rbx + 0x2f0]
test r14, r14
je 0x140068d8c
mov qword [rsp + 0xd0], rbp
mov qword [rsp + 0x40], rdi
mov rdi, qword [rbx + 0x300]
test rdi, rdi
je 0x140068d64
lea rbp, [r14 + 8]
jmp 0x140068d44
add rbp, 0x18
dec rdi
je 0x140068d64
mov r8, qword [rbp - 8]
test r8, r8
je 0x140068d3b
cmp qword [rbp], 0
je 0x140068d3b
mov rcx, qword [0x1401d2138]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
jmp 0x140068d3b
cmp qword [rbx + 0x2f8], 0
mov rdi, qword [rsp + 0x40]
mov rbp, qword [rsp + 0xd0]
je 0x140068d8c
mov rcx, qword [0x1401d2138]
xor edx, edx
mov r8, r14
call sub.KERNEL32.dll_HeapFree
mov rax, qword [rsp + 0x1f0]
mov qword [rbp + 0x10], rax
movups xmm0, xmmword [rsp + 0x1e0]
movups xmmword [rbp], xmm0
test r12b, r12b
je 0x140068f7f
mov rax, qword [rsp + 0x148]
mov qword [rsp + 0xc0], rax
movups xmm0, xmmword [rsp + 0x138]
movaps xmmword [rsp + 0xb0], xmm0
movups xmm0, xmmword [rsp + 0x128]
movaps xmmword [rsp + 0xa0], xmm0
movups xmm0, xmmword [rsp + 0x118]
movaps xmmword [rsp + 0x90], xmm0
movups xmm0, xmmword [rsp + 0xd8]
movups xmm1, xmmword [rsp + 0xe8]
movups xmm2, xmmword [rsp + 0xf8]
movups xmm3, xmmword [rsp + 0x108]
movaps xmmword [rsp + 0x80], xmm3
movaps xmmword [rsp + 0x70], xmm2
movaps xmmword [rsp + 0x60], xmm1
movaps xmmword [rsp + 0x50], xmm0
lea rcx, [rsp + 0x200]
lea rdx, [rsp + 0x150]
mov r8d, 0x90
call sub.msvcrt.dll_memcpy
movups xmm0, xmmword [rsi]
movups xmm1, xmmword [rsi + 0x10]
movaps xmmword [rsp + 0x1e0], xmm0
movaps xmmword [rsp + 0x1f0], xmm1
movzx eax, byte [0x1401d21e9]
mov ecx, 0x198
mov edx, 8
call fcn.1400b5180
test rax, rax
je 0x1400691af
mov rbx, rax
lea rdx, [rsp + 0x1e0]
mov r8d, 0xb0
mov rcx, rax
call sub.msvcrt.dll_memcpy
mov qword [rbx + 0xb0], rdi
mov rax, qword [rsp + 0xc0]
mov qword [rbx + 0x128], rax
movaps xmm0, xmmword [rsp + 0xb0]
movups xmmword [rbx + 0x118], xmm0
movaps xmm0, xmmword [rsp + 0xa0]
movups xmmword [rbx + 0x108], xmm0
movaps xmm0, xmmword [rsp + 0x90]
movups xmmword [rbx + 0xf8], xmm0
movaps xmm0, xmmword [rsp + 0x50]
movaps xmm1, xmmword [rsp + 0x60]
movaps xmm2, xmmword [rsp + 0x70]
movaps xmm3, xmmword [rsp + 0x80]
movups xmmword [rbx + 0xe8], xmm3
movups xmmword [rbx + 0xd8], xmm2
movups xmmword [rbx + 0xc8], xmm1
movups xmmword [rbx + 0xb8], xmm0
mov rax, qword [rsi + 0xe8]
mov qword [rbx + 0x160], rax
movups xmm0, xmmword [rsi + 0xb8]
movups xmm1, xmmword [rsi + 0xc8]
movdqu xmm2, xmmword [rsi + 0xd8]
movdqu xmmword [rbx + 0x150], xmm2
movups xmmword [rbx + 0x140], xmm1
movups xmmword [rbx + 0x130], xmm0
movdqu xmm0, xmmword [r13]
movdqu xmm1, xmmword [r13 + 0x10]
movdqu xmmword [rbx + 0x168], xmm0
movdqu xmmword [rbx + 0x178], xmm1
mov rax, qword [r13 + 0x20]
mov qword [rbx + 0x188], rax
mov byte [rbx + 0x190], r15b
mov byte [rbx + 0x191], 1
lea rax, fcn.14006bca0
jmp 0x140069157
mov rax, qword [rsp + 0x148]
mov qword [rsp + 0xc0], rax
movups xmm0, xmmword [rsp + 0x138]
movaps xmmword [rsp + 0xb0], xmm0
movups xmm0, xmmword [rsp + 0x128]
movaps xmmword [rsp + 0xa0], xmm0
movups xmm0, xmmword [rsp + 0x118]
movaps xmmword [rsp + 0x90], xmm0
movups xmm0, xmmword [rsp + 0xd8]
movups xmm1, xmmword [rsp + 0xe8]
movups xmm2, xmmword [rsp + 0xf8]
movups xmm3, xmmword [rsp + 0x108]
movaps xmmword [rsp + 0x80], xmm3
movaps xmmword [rsp + 0x70], xmm2
movaps xmmword [rsp + 0x60], xmm1
movaps xmmword [rsp + 0x50], xmm0
lea rcx, [rsp + 0x200]
lea rdx, [rsp + 0x150]
mov r8d, 0x90
call sub.msvcrt.dll_memcpy
movups xmm0, xmmword [rsi]
movups xmm1, xmmword [rsi + 0x10]
movaps xmmword [rsp + 0x1e0], xmm0
movaps xmmword [rsp + 0x1f0], xmm1
movzx eax, byte [0x1401d21e9]
mov ecx, 0x1b8
mov edx, 8
call fcn.1400b5180
test rax, rax
je 0x1400691c0
mov rbx, rax
lea rdx, [rsp + 0x1e0]
mov r8d, 0xb0
mov rcx, rax
call sub.msvcrt.dll_memcpy
mov qword [rbx + 0xb0], rdi
mov rax, qword [rsp + 0xc0]
mov qword [rbx + 0x128], rax
movaps xmm0, xmmword [rsp + 0xb0]
movups xmmword [rbx + 0x118], xmm0
movaps xmm0, xmmword [rsp + 0xa0]
movups xmmword [rbx + 0x108], xmm0
movaps xmm0, xmmword [rsp + 0x90]
movups xmmword [rbx + 0xf8], xmm0
movaps xmm0, xmmword [rsp + 0x50]
movaps xmm1, xmmword [rsp + 0x60]
movaps xmm2, xmmword [rsp + 0x70]
movaps xmm3, xmmword [rsp + 0x80]
movups xmmword [rbx + 0xe8], xmm3
movups xmmword [rbx + 0xd8], xmm2
movups xmmword [rbx + 0xc8], xmm1
movups xmmword [rbx + 0xb8], xmm0
mov rax, qword [rsi + 0xe8]
mov qword [rbx + 0x160], rax
movups xmm0, xmmword [rsi + 0xb8]
movups xmm1, xmmword [rsi + 0xc8]
movdqu xmm2, xmmword [rsi + 0xd8]
movdqu xmmword [rbx + 0x150], xmm2
movups xmmword [rbx + 0x140], xmm1
movups xmmword [rbx + 0x130], xmm0
movdqu xmm0, xmmword [r13]
movdqu xmm1, xmmword [r13 + 0x10]
movdqu xmmword [rbx + 0x168], xmm0
movdqu xmmword [rbx + 0x178], xmm1
mov rax, qword [r13 + 0x20]
mov qword [rbx + 0x188], rax
mov qword [rbx + 0x190], 0
mov byte [rbx + 0x1b0], r15b
mov byte [rbx + 0x1b1], 1
lea rax, fcn.140069510
mov rcx, qword [rsp + 0x48]
mov qword [rcx + 8], rbx
mov qword [rcx + 0x10], rax
mov byte [rcx], 0x14
xor edi, edi
movzx ebp, byte [rsp + 0x3f]
jmp 0x1400686fb
lea r8, [0x140152690]
mov ecx, 0x20
mov edx, 0x20
call fcn.140005d60
ud2
mov ecx, 8
mov edx, 0x168
call fcn.1400034d0
ud2
lea r8, [0x140154de8]
mov ecx, 0x30
call fcn.14000bfd0
ud2
mov ecx, 8
mov edx, 0x198
call fcn.1400034d0
ud2
mov ecx, 8
mov edx, 0x1b8
call fcn.1400034d0
ud2