Function at 0x140040f10
Capabilities:
Encode data using xor

Disassembly:
mov r11, rsp
mov qword [r11 + 0x10], rbx
mov qword [r11 + 0x20], rsi
mov qword [r11 + 0x18], r8
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
mov rax, qword [rcx + 0xa0]
xor r15d, r15d
xor r12d, r12d
mov dword [rsp + 0x20], 1
shl rax, 6
xor r14d, r14d
xor ebx, ebx
mov qword [r11 - 0x60], r15
mov qword [r11 - 0x58], r12
mov rdi, r9
mov rsi, rdx
mov r13, rcx
test rax, rax
je 0x140041456
mov rax, qword [rcx + 0xa8]
test byte [rax], 1
je 0x140041456
mov rcx, qword [rdx + 8]
mov rax, rcx
mov qword [r11 + 8], rbp
shl rax, 6
test rax, rax
je 0x140040f91
mov rax, qword [rdx + 0x10]
mov eax, dword [rax]
and eax, 1
mov rdx, qword [rsp + 0xb8]
xor al, 1
movaps xmmword [rsp + 0x50], xmm6
mov byte [rdx], al
lea rax, [rsp + 0x38]
cmp rax, rsi
je 0x140041041
test rcx, rcx
je 0x140041041
sub rcx, 1
je 0x140040fd6
mov rax, qword [rsi + 0x10]
lea rdx, [rax + rcx*8]
cmp qword [rdx], rbx
jne 0x140040fd6
sub rdx, 8
sub rcx, 1
jne 0x140040fc7
lea rbp, [rcx + 1]
test rbp, rbp
je 0x14004101c
cmp rbp, 0x2710
jbe 0x140040ff2
mov ebp, 0xfffffff0
jmp 0x1400413ef
mov edx, 8
mov rcx, rbp
call fcn.1400727c8
test rax, rax
jne 0x14004100c
lea ebp, [rax - 0x10]
jmp 0x1400413ef
mov r14, rbp
lea r15, [rbp*8]
mov rbx, rax
jmp 0x140041032
imul r8, rbp, 0xfffffffffffffff8
lea r15, [rbp*8]
xor edx, edx
mov rcx, r15
call fcn.14006c5b0
mov rdx, qword [rsi + 0x10]
mov r8, r15
mov rcx, rbx
call fcn.14006bf10
mov eax, dword [rsi]
imul eax, dword [r13 + 0x98]
test eax, eax
jle 0x140041095
mov rdx, rsi
lea rcx, [r13 + 0x98]
call fcn.140031450
lea rcx, [rsp + 0x20]
test eax, eax
js 0x14004107e
mov r8, rsi
lea rdx, [r13 + 0x98]
call fcn.140031820
mov ebp, eax
test eax, eax
jne 0x1400410ab
jmp 0x1400410b3
lea r8, [r13 + 0x98]
mov rdx, rsi
call fcn.140031820
mov ebp, eax
test eax, eax
jne 0x1400410ab
jmp 0x1400410b3
mov r8, rsi
lea rdx, [r13 + 0x98]
lea rcx, [rsp + 0x20]
call fcn.1400316d0
mov ebp, eax
test ebp, ebp
jne 0x1400413e5
mov rax, qword [rsp + 0xb8]
mov r15, qword [rsp + 0x28]
movzx r12d, byte [rax]
mov esi, r12d
neg rsi
shr rsi, 0x3f
neg rsi
movq xmm6, rsi
punpcklqdq xmm6, xmm6
cmp r15, 0x2710
jbe 0x1400410ed
mov ebp, 0xfffffff0
jmp 0x1400413ea
cmp r14, r15
jae 0x140041153
mov edx, 8
mov rcx, r15
call fcn.1400727c8
mov rbp, rax
test rax, rax
jne 0x14004110f
lea ebp, [rax - 0x10]
jmp 0x1400413ea
test rbx, rbx
je 0x14004114d
lea r14, [r14*8]
mov rdx, rbx
mov r8, r14
mov rcx, rbp
call fcn.14006bf10
test r14, r14
je 0x140041145
mov rax, qword [fcn.14006c5b0]
mov r8, r14
xor edx, edx
mov rcx, rbx
call rax
mov r15, qword [rsp + 0x28]
mov rcx, rbx
call fcn.14006dc24
mov r14, r15
mov rbx, rbp
movdqa xmm5, xmmword [0x1400ab590]
mov eax, r12d
mov r12, qword [rsp + 0x30]
neg eax
movsxd r11, eax
xor ebp, ebp
xor ecx, ecx
movq xmm3, r11
punpcklqdq xmm3, xmm3
test r15, r15
je 0x14004126f
cmp r15, 8
jb 0x140041234
lea rax, [r12 - 8]
lea rax, [rax + r15*8]
lea rdx, [r15 - 1]
lea rdx, [rbx + rdx*8]
cmp rbx, rax
ja 0x1400411a7
cmp rdx, r12
jae 0x140041234
mov r8, r15
and r8, 0xfffffffffffffff8
movdqa xmm4, xmm3
lea rdx, [rbx + 0x10]
mov rax, r12
andnps xmm4, xmm5
sub rax, rbx
nop
movdqu xmm0, xmmword [rdx - 0x10]
add rcx, 8
movdqu xmm1, xmmword [rax + rdx - 0x10]
movdqu xmm2, xmmword [rax + rdx]
lea rdx, [rdx + 0x40]
andps xmm1, xmm3
andps xmm0, xmm4
orps xmm1, xmm0
andps xmm2, xmm3
movdqu xmmword [rdx - 0x50], xmm1
movdqa xmm1, xmm4
movdqu xmm0, xmmword [rdx - 0x40]
andps xmm0, xmm4
orps xmm2, xmm0
movdqu xmmword [rdx - 0x40], xmm2
movdqu xmm0, xmmword [rdx - 0x30]
movdqu xmm2, xmmword [rax + rdx - 0x30]
andps xmm1, xmm0
andps xmm2, xmm3
orps xmm2, xmm1
movdqu xmm1, xmmword [rax + rdx - 0x20]
movdqu xmmword [rdx - 0x30], xmm2
andps xmm1, xmm3
movdqu xmm0, xmmword [rdx - 0x20]
andps xmm0, xmm4
orps xmm1, xmm0
movdqu xmmword [rdx - 0x20], xmm1
cmp rcx, r8
jb 0x1400411c0
cmp rcx, r15
jae 0x14004126f
mov r10, r12
lea rdx, [rbx + rcx*8]
sub r10, rbx
mov r9, r11
mov r8, r15
not r9
sub r8, rcx
nop
mov rcx, qword [rdx + r10]
lea rdx, [rdx + 8]
and rcx, r11
mov rax, r9
and rax, qword [rdx - 8]
or rcx, rax
mov qword [rdx - 8], rcx
sub r8, 1
jne 0x140041250
mov rcx, r14
mov rax, r15
sub rcx, r15
cmp r15, r14
jae 0x1400412fd
cmp rcx, 8
jb 0x1400412e9
and ecx, 7
mov rdx, r14
sub rdx, rcx
andnps xmm6, xmm5
lea rcx, [r15 + 4]
lea rcx, [rbx + rcx*8]
nop dword [rax + rax]
movdqu xmm0, xmmword [rcx - 0x20]
lea rcx, [rcx + 0x40]
add rax, 8
movdqa xmm1, xmm6
andps xmm0, xmm6
movdqu xmmword [rcx - 0x60], xmm0
movdqu xmm0, xmmword [rcx - 0x50]
andps xmm1, xmm0
movdqu xmmword [rcx - 0x50], xmm1
movdqa xmm1, xmm6
movdqu xmm0, xmmword [rcx - 0x40]
andps xmm0, xmm6
movdqu xmmword [rcx - 0x40], xmm0
movdqu xmm0, xmmword [rcx - 0x30]
andps xmm1, xmm0
movdqu xmmword [rcx - 0x30], xmm1
cmp rax, rdx
jb 0x1400412a0
cmp rax, r14
jae 0x1400412fd
not rsi
and qword [rbx + rax*8], rsi
inc rax
cmp rax, r14
jb 0x1400412f1
mov r13, qword [rsp + 0xa0]
lea r8, [rdi + 1]
mov rcx, r13
xor edx, edx
call fcn.14006c5b0
xor r11d, r11d
test rdi, rdi
je 0x14004137e
movzx esi, byte [rsp + 0xb0]
xor r8d, r8d
test rsi, rsi
je 0x140041376
movzx r9d, byte [r11 + r13]
mov r10, r14
shl r10, 6
mov rdx, r11
nop word [rax + rax]
cmp r10, rdx
ja 0x140041349
xor al, al
jmp 0x14004135f
mov rax, rdx
movzx ecx, dl
shr rax, 6
and cl, 0x3f
mov rax, qword [rbx + rax*8]
shr rax, cl
and al, 1
mov rcx, r8
add rdx, rdi
shl al, cl
inc r8
or r9b, al
cmp r8, rsi
jb 0x140041340
mov byte [r11 + r13], r9b
inc r11
cmp r11, rdi
jb 0x140041323
xor sil, sil
cmp rdi, 1
jb 0x1400413ef
lea r11, [r13 + 1]
nop dword [rax + rax]
movzx r8d, byte [r11]
mov r10d, 1
movzx edx, byte [r11 - 1]
lea r11, [r11 + 1]
movzx r9d, r8b
mov ecx, edx
xor r9b, sil
and r8b, sil
movzx eax, r9b
and al, 1
sub r10b, al
movzx eax, r10b
imul ecx, eax
shl r10b, 7
or r10b, dl
mov byte [r11 - 2], r10b
movzx eax, cl
xor cl, r9b
and al, r9b
mov byte [r11 - 1], cl
movzx esi, al
or sil, r8b
sub rdi, 1
jne 0x140041390
jmp 0x1400413ef
mov r15, qword [rsp + 0x28]
mov r12, qword [rsp + 0x30]
movaps xmm6, xmmword [rsp + 0x50]
test r12, r12
je 0x140041421
lea r8, [r15*8]
test r8, r8
je 0x140041419
mov rax, qword [fcn.14006c5b0]
xor edx, edx
mov rcx, r12
call rax
mov r12, qword [rsp + 0x30]
mov rcx, r12
call fcn.14006dc24
test rbx, rbx
je 0x14004144a
lea r8, [r14*8]
test r8, r8
je 0x140041442
mov r9, qword [fcn.14006c5b0]
xor edx, edx
mov rcx, rbx
call r9
mov rcx, rbx
call fcn.14006dc24
mov eax, ebp
mov rbp, qword [rsp + 0x90]
jmp 0x14004145b
mov eax, 0xffffb080
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret