Function at 0x140012270
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x40
mov r15, rcx
cmp dword [rsp + 0xc8], 0
je 0x14000f765
mov rcx, r15
add rsp, 0x40
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp 0x140012270
mov r11, qword [rsp + 0xb8]
mov r12d, dword [rsp + 0xb0]
mov r10d, 1
mov ecx, r12d
shl r10d, cl
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0x10], rax
mov edi, 1
lea ebp, [r10 - 1]
mov eax, r8d
inc eax
jne 0x14000f7be
mov dword [r15], 1
mov dword [r15 + 4], r12d
mov eax, r10d
shr eax, 1
mov ecx, r10d
shr ecx, 3
add ecx, eax
add ecx, 3
jmp 0x14000fb13
mov qword [rsp + 8], r12
lea ecx, [r12 - 1]
mov r13d, 0x10000
shl r13d, cl
sar r13d, 0x10
mov eax, eax
xor r12d, r12d
test r8d, r8d
mov qword [rsp], rax
je 0x14000f890
mov r8d, eax
and r8d, 0xfffffffe
mov edi, 1
xor ecx, ecx
mov ebx, ebp
jmp 0x14000f820
mov eax, ebx
add ebx, 0xffffffff
lea esi, [rcx + 1]
mov dword [r15 + rax*8 + 0xc], esi
mov ax, 1
mov word [r11 + rcx*2 + 2], ax
add rcx, 2
cmp r8, rcx
je 0x14000f883
movsx eax, word [rdx + rcx*2]
cmp eax, 0xffffffff
je 0x14000f850
cmp r13d, eax
cmovle edi, r12d
mov word [r11 + rcx*2], ax
movsx eax, word [rdx + rcx*2 + 2]
cmp eax, 0xffffffff
jne 0x14000f86d
jmp 0x14000f800
mov eax, ebx
add ebx, 0xffffffff
mov dword [r15 + rax*8 + 0xc], ecx
mov ax, 1
mov word [r11 + rcx*2], ax
movsx eax, word [rdx + rcx*2 + 2]
cmp eax, 0xffffffff
je 0x14000f800
cmp r13d, eax
cmovle edi, r12d
mov word [r11 + rcx*2 + 2], ax
add rcx, 2
cmp r8, rcx
jne 0x14000f820
test byte [rsp], 1
mov r12, qword [rsp + 8]
jne 0x14000f89f
jmp 0x14000f8c5
xor ecx, ecx
mov ebx, ebp
test byte [rsp], 1
mov r12, qword [rsp + 8]
je 0x14000f8c5
movsx eax, word [rdx + rcx*2]
cmp eax, 0xffffffff
je 0x14000f8b2
xor esi, esi
cmp r13d, eax
cmovle edi, esi
jmp 0x14000f8c0
mov eax, ebx
add ebx, 0xffffffff
mov dword [r15 + rax*8 + 0xc], ecx
mov ax, 1
mov word [r11 + rcx*2], ax
mov dword [r15], edi
mov dword [r15 + 4], r12d
mov ecx, r10d
shr ecx, 3
cmp ebx, ebp
mov qword [rsp + 0x18], r10
jne 0x14000fa62
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x28], r9
lea r9, [r11 + 0x6a]
lea rax, [r11 + 0xe2]
mov qword [rsp + 0x30], rax
xor edi, edi
xor ecx, ecx
xor r8d, r8d
mov rbx, qword [rsp]
mov qword [rsp + 0x38], r9
jmp 0x14000f931
movsx rax, si
add rcx, rax
add rdi, 1
movabs rax, 0x101010101010101
add r8, rax
cmp rdi, rbx
je 0x14000fafa
movzx esi, word [rdx + rdi*2]
mov qword [r9 + rcx], r8
cmp si, 9
jl 0x14000f910
cmp rsi, 0x11
mov r13d, 0x10
cmovae r13, rsi
lea r12, [r9 + rcx]
add r13, 0xfffffffffffffff7
mov eax, 8
cmp r13, 0x18
jb 0x14000fa3d
shr r13, 3
add r13, 1
mov r14, r13
and r14, 0xfffffffffffffffc
movq xmm0, r8
pshufd xmm0, xmm0, 0x44
lea rbx, [r14 - 4]
mov rax, rbx
shr rax, 2
add rax, 1
mov r10d, eax
and r10d, 3
cmp rbx, 0xc
jae 0x14000f99e
xor r9d, r9d
jmp 0x14000f9f1
and rax, 0xfffffffffffffffc
mov rbx, qword [rsp + 0x30]
add rbx, rcx
xor r9d, r9d
nop dword [rax]
movdqu xmmword [rbx + r9*8 - 0x70], xmm0
movdqu xmmword [rbx + r9*8 - 0x60], xmm0
movdqu xmmword [rbx + r9*8 - 0x50], xmm0
movdqu xmmword [rbx + r9*8 - 0x40], xmm0
movdqu xmmword [rbx + r9*8 - 0x30], xmm0
movdqu xmmword [rbx + r9*8 - 0x20], xmm0
movdqu xmmword [rbx + r9*8 - 0x10], xmm0
movdqu xmmword [rbx + r9*8], xmm0
add r9, 0x10
add rax, 0xfffffffffffffffc
jne 0x14000f9b0
test r10, r10
je 0x14000fa1e
shl r9, 3
nop word [rax + rax]
mov rax, r9
or rax, 8
movdqu xmmword [r12 + rax], xmm0
movdqu xmmword [r12 + rax + 0x10], xmm0
add r9, 0x20
add r10, 0xffffffffffffffff
jne 0x14000fa00
cmp r13, r14
mov r10, qword [rsp + 0x18]
mov rbx, qword [rsp]
mov r9, qword [rsp + 0x38]
je 0x14000f910
lea rax, [r14*8 + 8]
mov rbx, qword [rsp]
nop word cs:[rax + rax]
nop dword [rax + rax]
mov qword [r12 + rax], r8
add rax, 8
cmp rax, rsi
jb 0x14000fa50
jmp 0x14000f910
mov eax, r10d
shr eax, 1
add ecx, eax
add ecx, 3
xor r10d, r10d
xor esi, esi
mov r13, qword [rsp]
jmp 0x14000fa8d
add r10, 1
cmp r10, r13
je 0x14000fb5f
movsx r8d, word [rdx + r10*2]
test r8d, r8d
jle 0x14000fa80
cmp r8w, 1
je 0x14000fae0
mov r14d, r8d
and r14d, 0xfffffffe
xor eax, eax
nop word [rax + rax]
mov edi, esi
mov dword [r15 + rdi*8 + 0xc], r10d
nop word [rax + rax]
add esi, ecx
and esi, ebp
cmp esi, ebx
ja 0x14000fac0
mov edi, esi
mov dword [r15 + rdi*8 + 0xc], r10d
nop
add esi, ecx
and esi, ebp
cmp esi, ebx
ja 0x14000fad0
add eax, 2
cmp eax, r14d
jne 0x14000fab0
test r8b, 1
je 0x14000fa80
mov eax, esi
mov dword [r15 + rax*8 + 0xc], r10d
nop dword [rax]
add esi, ecx
and esi, ebp
cmp esi, ebx
ja 0x14000faf0
jmp 0x14000fa80
mov eax, r10d
shr eax, 1
mov rcx, qword [rsp + 0x20]
add ecx, eax
add ecx, 3
mov r9, qword [rsp + 0x28]
mov r12, qword [rsp + 8]
mov eax, ebp
mov r8d, ecx
mov edx, r10d
lea rbp, [r8 + r8]
xor ebx, ebx
xor edi, edi
nop word cs:[rax + rax]
nop dword [rax]
mov esi, edi
and esi, eax
movzx ecx, byte [r11 + rbx + 0x6a]
mov dword [r15 + rsi*8 + 0xc], ecx
lea ecx, [r8 + rdi]
and ecx, eax
movzx esi, byte [r11 + rbx + 0x6b]
mov dword [r15 + rcx*8 + 0xc], esi
add edi, ebp
and edi, eax
add rbx, 2
cmp rbx, rdx
jb 0x14000fb30
jmp 0x14000fb67
mov r10, qword [rsp + 0x18]
mov edx, r10d
mov rdi, qword [rsp + 0x10]
add r12d, 0xffffffe1
xor eax, eax
nop word cs:[rax + rax]
nop dword [rax]
mov ebp, dword [r15 + rax*8 + 0xc]
movzx ebx, word [r11 + rbp*2]
lea ecx, [rbx + 1]
mov word [r11 + rbp*2], cx
bsr ecx, ebx
xor ecx, 0x1f
add ecx, r12d
mov byte [r15 + rax*8 + 0xb], cl
shl ebx, cl
sub ebx, r10d
mov word [r15 + rax*8 + 8], bx
movzx ecx, byte [rdi + rbp*4]
mov byte [r15 + rax*8 + 0xa], cl
mov ecx, dword [r9 + rbp*4]
mov dword [r15 + rax*8 + 0xc], ecx
add rax, 1
cmp rdx, rax
jne 0x14000fb80
add rsp, 0x40
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov r15, qword [rsp + 0xb0]
mov r14d, dword [rsp + 0xa8]
mov r10d, 1
shlx r13d, r10d, r14d
lea ebx, [r13 - 1]
mov eax, r8d
inc eax
jne 0x1400122c6
mov dword [rcx], 1
mov dword [rcx + 4], r14d
mov eax, r13d
shr eax, 1
mov edx, r13d
shr edx, 3
lea ebp, [rdx + rax]
add ebp, 3
jmp 0x140012645
mov qword [rsp + 8], r13
mov qword [rsp], r9
lea edi, [r14 - 1]
mov esi, 0x10000
shlx r14d, esi, edi
sar r14d, 0x10
mov r11d, eax
xor r13d, r13d
test r8d, r8d
je 0x14001238f
mov r8d, r11d
and r8d, 0xfffffffe
mov r10d, 1
xor edi, edi
mov esi, ebx
jmp 0x14001232f
mov eax, esi
add esi, 0xffffffff
lea ebp, [rdi + 1]
mov dword [rcx + rax*8 + 0xc], ebp
mov ax, 1
mov word [r15 + rdi*2 + 2], ax
add rdi, 2
cmp r8, rdi
je 0x140012382
movsx eax, word [rdx + rdi*2]
cmp eax, 0xffffffff
je 0x140012350
cmp r14d, eax
cmovle r10d, r13d
mov word [r15 + rdi*2], ax
movsx eax, word [rdx + rdi*2 + 2]
cmp eax, 0xffffffff
jne 0x14001236c
jmp 0x140012310
mov eax, esi
add esi, 0xffffffff
mov dword [rcx + rax*8 + 0xc], edi
mov ax, 1
mov word [r15 + rdi*2], ax
movsx eax, word [rdx + rdi*2 + 2]
cmp eax, 0xffffffff
je 0x140012310
cmp r14d, eax
cmovle r10d, r13d
mov word [r15 + rdi*2 + 2], ax
add rdi, 2
cmp r8, rdi
jne 0x14001232f
test r11b, 1
mov r13, qword [rsp + 8]
jne 0x14001239e
jmp 0x1400123c4
xor edi, edi
mov esi, ebx
test r11b, 1
mov r13, qword [rsp + 8]
je 0x1400123c4
movsx eax, word [rdx + rdi*2]
cmp eax, 0xffffffff
je 0x1400123b2
xor ebp, ebp
cmp r14d, eax
cmovle r10d, ebp
jmp 0x1400123bf
mov eax, esi
add esi, 0xffffffff
mov dword [rcx + rax*8 + 0xc], edi
mov ax, 1
mov word [r15 + rdi*2], ax
mov dword [rcx], r10d
mov r14d, dword [rsp + 0xa8]
mov dword [rcx + 4], r14d
mov ebp, r13d
shr ebp, 3
cmp esi, ebx
mov qword [rsp + 0x18], r11
jne 0x140012582
lea r9, [r15 + 0x6a]
add ebp, 3
mov qword [rsp + 0x20], rbp
lea rax, [r15 + 0xe2]
mov qword [rsp + 0x28], rax
xor ebp, ebp
movabs r10, 0x101010101010101
xor edi, edi
xor esi, esi
mov qword [rsp + 0x10], rdx
mov qword [rsp + 0x30], r9
jmp 0x140012437
movsx rax, r14w
add rdi, rax
add rbp, 1
add rsi, r10
cmp rbp, r11
je 0x14001262d
movzx r14d, word [rdx + rbp*2]
mov qword [r9 + rdi], rsi
cmp r14w, 9
jl 0x140012420
cmp r14, 0x11
mov r12d, 0x10
cmovae r12, r14
lea r8, [r9 + rdi]
add r12, 0xfffffffffffffff7
mov eax, 8
cmp r12, 0x18
jb 0x140012560
shr r12, 3
add r12, 1
mov rdx, r12
and rdx, 0xfffffffffffffffc
movq xmm0, rsi
pshufd xmm0, xmm0, 0x44
lea rax, [rdx - 4]
mov r10, rax
shr r10, 2
add r10, 1
mov r11d, r10d
and r11d, 3
cmp rax, 0xc
jae 0x1400124a6
xor r9d, r9d
jmp 0x140012502
and r10, 0xfffffffffffffffc
mov rax, qword [rsp + 0x28]
lea r13, [rax + rdi]
xor r9d, r9d
nop word cs:[rax + rax]
movdqu xmmword [r13 + r9*8 - 0x70], xmm0
movdqu xmmword [r13 + r9*8 - 0x60], xmm0
movdqu xmmword [r13 + r9*8 - 0x50], xmm0
movdqu xmmword [r13 + r9*8 - 0x40], xmm0
movdqu xmmword [r13 + r9*8 - 0x30], xmm0
movdqu xmmword [r13 + r9*8 - 0x20], xmm0
movdqu xmmword [r13 + r9*8 - 0x10], xmm0
movdqu xmmword [r13 + r9*8], xmm0
add r9, 0x10
add r10, 0xfffffffffffffffc
jne 0x1400124c0
test r11, r11
je 0x14001252e
shl r9, 3
nop dword [rax + rax]
mov rax, r9
or rax, 8
movdqu xmmword [r8 + rax], xmm0
movdqu xmmword [r8 + rax + 0x10], xmm0
add r9, 0x20
add r11, 0xffffffffffffffff
jne 0x140012510
cmp r12, rdx
mov r13, qword [rsp + 8]
mov rax, rdx
mov rdx, qword [rsp + 0x10]
mov r11, qword [rsp + 0x18]
mov r9, qword [rsp + 0x30]
movabs r10, 0x101010101010101
je 0x140012420
lea rax, [rax*8 + 8]
mov rdx, qword [rsp + 0x10]
nop word cs:[rax + rax]
nop
mov qword [r8 + rax], rsi
add rax, 8
cmp rax, r14
jb 0x140012570
jmp 0x140012420
mov eax, r13d
shr eax, 1
add ebp, eax
add ebp, 3
xor r10d, r10d
xor eax, eax
mov r9, qword [rsp]
jmp 0x1400125ad
add r10, 1
cmp r10, r11
je 0x14001268e
movsx r8d, word [rdx + r10*2]
test r8d, r8d
jle 0x1400125a0
cmp r8w, 1
je 0x140012601
mov r11d, r8d
and r11d, 0xfffffffe
xor r12d, r12d
nop dword [rax + rax]
mov edi, eax
mov dword [rcx + rdi*8 + 0xc], r10d
nop word [rax + rax]
add eax, ebp
and eax, ebx
cmp eax, esi
ja 0x1400125e0
mov edi, eax
mov dword [rcx + rdi*8 + 0xc], r10d
nop
add eax, ebp
and eax, ebx
cmp eax, esi
ja 0x1400125f0
add r12d, 2
cmp r12d, r11d
jne 0x1400125d0
test r8b, 1
mov r11, qword [rsp + 0x18]
je 0x1400125a0
mov edi, eax
mov dword [rcx + rdi*8 + 0xc], r10d
nop word cs:[rax + rax]
nop dword [rax]
add eax, ebp
and eax, ebx
cmp eax, esi
ja 0x140012620
jmp 0x1400125a0
mov eax, r13d
shr eax, 1
mov rbp, qword [rsp + 0x20]
add ebp, eax
mov r9, qword [rsp]
mov r14d, dword [rsp + 0xa8]
mov edx, ebx
mov r8d, ebp
mov eax, r13d
lea r10, [r8 + r8]
xor edi, edi
xor esi, esi
nop word cs:[rax + rax]
nop
mov ebp, esi
and ebp, edx
movzx ebx, byte [r15 + rdi + 0x6a]
mov dword [rcx + rbp*8 + 0xc], ebx
lea ebp, [r8 + rsi]
and ebp, edx
movzx ebx, byte [r15 + rdi + 0x6b]
mov dword [rcx + rbp*8 + 0xc], ebx
add esi, r10d
and esi, edx
add rdi, 2
cmp rdi, rax
jb 0x140012660
jmp 0x140012691
mov eax, r13d
mov r8, qword [rsp + 0xa0]
add r14d, 0xffffffe1
xor ebp, ebp
nop
mov ebx, dword [rcx + rbp*8 + 0xc]
movzx edi, word [r15 + rbx*2]
lea esi, [rdi + 1]
mov word [r15 + rbx*2], si
bsr esi, edi
xor esi, 0x1f
add esi, r14d
mov byte [rcx + rbp*8 + 0xb], sil
shlx edi, edi, esi
sub edi, r13d
mov word [rcx + rbp*8 + 8], di
movzx edx, byte [r8 + rbx*4]
mov byte [rcx + rbp*8 + 0xa], dl
mov edx, dword [r9 + rbx*4]
mov dword [rcx + rbp*8 + 0xc], edx
add rbp, 1
cmp rax, rbp
jne 0x1400126a0
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret