Function at 0x140010330
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
sub rsp, 0x98
mov rbx, rdx
cmp rdx, rcx
je 0x14001034d
call fcn.140003850
mov r10, qword [0x14003a450]
mov esi, dword [rbx]
mov r8, qword [rbx + 8]
mov ebp, dword [r10 + 0x188]
mov edi, dword [r10 + 0x184]
test ebp, ebp
jne 0x14001037f
lea ecx, [rbp + 0x1b]
add rsp, 0x98
pop rdi
pop rsi
pop rbp
pop rbx
jmp fcn.140005a70
mov ecx, dword [r10 + 0x18c]
mov qword [rsp + 0x78], r15
mov r15d, dword [r10 + 0x190]
mov dword [rsp + 0xd0], ecx
cmp edi, 0x4c7
jne 0x140010467
cmp ebp, 0xff
jne 0x140010558
lea eax, [rsi - 1]
movsxd r9, eax
cmp r9, 0x14
jl 0x140010411
lea rax, [r8 - 0x80]
lea rax, [rax + r9*8]
add r9, 0xffffffffffffffed
xor r11d, r11d
nop dword [rax]
mov rdx, qword [rax + 0x80]
mov qword [rax + 0x80], r11
lea rax, [rax - 8]
mov rcx, rdx
shr rcx, 8
xor qword [rax + 0x10], rcx
mov rcx, rdx
shl rcx, 0x38
xor qword [rax + 8], rcx
mov rcx, rdx
shr rcx, 7
xor qword [rax - 0x10], rcx
shl rdx, 0x39
xor qword [rax - 0x18], rdx
sub r9, 1
jne 0x1400103d0
mov rdx, qword [r8 + 0x98]
mov rcx, rdx
shr rcx, 7
xor qword [r8], rcx
shl rcx, 7
xor rdx, rcx
mov rax, rcx
shl rax, 0x38
xor qword [r8 + 0x18], rax
mov rax, rcx
shr rax, 8
xor qword [r8 + 0x20], rax
mov qword [r8 + 0x98], rdx
mov dword [rbx], 0x14
cmp qword [r8 + 0x98], 0
jne 0x1400109f1
mov rcx, rbx
call fcn.140005de0
jmp 0x1400109f1
cmp edi, 0x17b
jne 0x140010558
cmp ebp, 0xfd
jne 0x140010558
cmp ecx, 0xfb
jne 0x140010558
cmp r15d, 0x3b
jne 0x140010558
lea eax, [rsi - 1]
movsxd r9, eax
cmp r9, 6
jl 0x1400104fa
lea rdx, [r8 - 0x10]
lea rdx, [rdx + r9*8]
add r9, 0xfffffffffffffffb
xor r11d, r11d
mov rcx, qword [rdx + 0x10]
mov qword [rdx + 0x10], r11
lea rdx, [rdx - 8]
mov rax, rcx
shr rax, 0x3e
xor qword [rdx + 0x10], rax
lea rax, [rcx*4]
xor rax, qword [rdx + 8]
xor rax, rcx
mov qword [rdx + 8], rax
mov rax, rcx
shr rax, 0x3b
xor rax, qword [rdx - 0x10]
xor rax, rcx
shl rcx, 5
xor qword [rdx - 0x18], rcx
mov qword [rdx - 0x10], rax
sub r9, 1
jne 0x1400104b0
mov rdx, qword [r8 + 0x28]
mov rax, qword [r8]
mov rcx, rdx
shr rcx, 0x3b
xor rax, rcx
shl rcx, 0x3b
xor rax, rcx
xor rdx, rcx
mov qword [r8], rax
mov qword [r8 + 0x28], rdx
lea rax, [rcx*4]
xor rax, qword [r8 + 0x18]
xor rax, rcx
mov qword [r8 + 0x18], rax
mov rax, rcx
shr rax, 0x3e
xor qword [r8 + 0x20], rax
mov dword [rbx], 6
cmp qword [r8 + 0x28], 0
jne 0x1400109f1
mov rcx, rbx
call fcn.140005de0
jmp 0x1400109f1
xor r11d, r11d
mov qword [rsp + 0x90], r12
mov qword [rsp + 0x80], r14
mov eax, edi
cdq
mov dword [rsp + 0x28], r11d
and edx, 0x3f
mov dword [rsp + 0x24], r11d
add eax, edx
mov dword [rsp + 0x20], r11d
sar eax, 6
mov r14d, edi
mov dword [rsp + 0xc0], r11d
mov dword [rsp + 0xd8], r11d
mov dword [rsp + 0x2c], eax
and r14d, 0x8000003f
jge 0x1400105af
dec r14d
or r14d, 0xffffffc0
inc r14d
lea r12d, [rax + 1]
mov dword [rsp + 0x44], r12d
cmp esi, r12d
jg 0x14001060b
movabs rdx, 0x8000000000000000
test esi, esi
jne 0x1400105d0
mov r9d, r11d
jmp 0x140010602
lea eax, [rsi - 1]
mov r9d, esi
movsxd rcx, eax
shl r9d, 6
mov rax, qword [r8 + rcx*8]
test rax, rax
js 0x1400105fb
nop word [rax + rax]
dec r9d
shr rdx, 1
test rdx, rax
je 0x1400105f0
mov ecx, dword [rsp + 0xd0]
cmp r9d, edi
jle 0x1400109e1
mov eax, 0x40
sub eax, r14d
mov dword [rsp + 0x40], eax
mov eax, edi
sub eax, ebp
cmp eax, 0x40
jge 0x1400106a3
mov rcx, rbx
lea esi, [rdi + 1]
call fcn.14000fa40
cmp eax, esi
jl 0x1400109e1
not edi
nop dword [rax]
mov rdx, qword [r10 + 0x280]
mov rcx, qword [r10 + 0x158]
call fcn.140003850
mov rcx, rbx
call fcn.14000fa40
mov rcx, qword [0x14003a450]
lea edx, [rdi + rax]
mov rcx, qword [rcx + 0x280]
call fcn.140010a10
mov rdx, qword [0x14003a450]
mov r8, rbx
mov rcx, rbx
mov rdx, qword [rdx + 0x280]
call fcn.14000d920
mov rcx, rbx
call fcn.14000fa40
cmp eax, esi
jl 0x1400109e1
mov r10, qword [0x14003a450]
jmp 0x140010640
cdq
mov qword [rsp + 0x88], r13
and edx, 0x3f
add eax, edx
mov r9d, eax
and eax, 0x3f
sub eax, edx
sar r9d, 6
mov r13d, eax
lea eax, [r9 + 1]
mov dword [rsp + 0x48], eax
mov eax, 0x40
sub eax, r13d
mov dword [rsp + 0x30], eax
test ecx, ecx
je 0x140010738
mov eax, edi
sub edi, r15d
sub eax, ecx
mov ecx, 0x40
cdq
and edx, 0x3f
add eax, edx
mov r10d, eax
and eax, 0x3f
sub eax, edx
sar r10d, 6
sub ecx, eax
mov dword [rsp + 0x20], eax
mov dword [rsp + 0x24], ecx
inc r10d
mov eax, edi
mov dword [rsp + 0xd8], r10d
cdq
and edx, 0x3f
add eax, edx
mov ecx, eax
and eax, 0x3f
sub eax, edx
sar ecx, 6
mov r15d, eax
mov eax, 0x40
sub eax, r15d
mov dword [rsp + 0x28], eax
lea edx, [rcx + 1]
mov dword [rsp + 0xc0], edx
jmp 0x140010741
mov r15d, r11d
mov r10d, r11d
mov edx, r11d
lea eax, [rsi - 1]
movsxd rdi, eax
movsxd rax, dword [rsp + 0x2c]
lea rbp, [rax + 1]
cmp rdi, rbp
jl 0x1400108c8
mov ebx, dword [rsp + 0x20]
mov rax, rdi
mov r12d, dword [rsp + 0xd0]
movsxd rcx, r9d
sub rax, rcx
movsxd rsi, r10d
movsxd rdx, edx
mov qword [rsp + 0x38], rsi
lea r9, [r8 + rax*8]
mov rax, rcx
sub rax, rbp
lea rax, [rax*8]
mov qword [rsp + 0x50], rax
mov rax, rcx
sub rax, rsi
lea rax, [rax*8]
mov qword [rsp + 0x58], rax
mov rax, rcx
sub rax, rdx
lea rax, [rax*8]
mov qword [rsp + 0x60], rax
lea rax, [rcx*8]
mov qword [rsp + 0x68], rax
nop dword [rax]
nop word [rax + rax]
mov rdx, qword [rax + r9]
mov qword [rax + r9], r11
mov rax, rdi
sub rax, rbp
lea r10, [r8 + rax*8]
mov rax, rdx
test r14d, r14d
je 0x140010803
mov ecx, dword [rsp + 0x40]
shl rax, cl
mov rcx, qword [rsp + 0x50]
xor qword [rcx + r9], rax
mov rax, rdx
mov ecx, r14d
shr rax, cl
xor qword [r10 + 8], rax
mov rax, rdx
test r13d, r13d
je 0x140010823
mov ecx, dword [rsp + 0x30]
shl rax, cl
mov ecx, r13d
xor qword [r9 - 8], rax
mov rax, rdx
shr rax, cl
xor qword [r9], rax
test r12d, r12d
je 0x1400108a2
mov rax, rdi
sub rax, rsi
lea r10, [r8 + rax*8]
mov rax, rdx
test ebx, ebx
je 0x140010854
mov ecx, dword [rsp + 0x24]
shl rax, cl
mov rcx, qword [rsp + 0x58]
xor qword [rcx + r9], rax
mov rax, rdx
mov ecx, ebx
shr rax, cl
xor qword [r10 + 8], rax
mov rax, rdi
movsxd r10, dword [rsp + 0xc0]
sub rax, r10
mov r10, qword [r8 + rax*8 + 8]
lea rsi, [r8 + rax*8]
test r15d, r15d
jne 0x14001087d
xor r10, rdx
mov qword [rsi + 8], r10
jmp 0x14001089d
mov rax, rdx
mov ecx, r15d
shr rax, cl
mov ecx, dword [rsp + 0x28]
xor rax, r10
mov qword [rsi + 8], rax
mov rax, qword [rsp + 0x60]
shl rdx, cl
xor qword [rax + r9], rdx
mov rsi, qword [rsp + 0x38]
mov rax, qword [rsp + 0x68]
dec rdi
sub r9, 8
cmp rdi, rbp
jge 0x1400107d0
mov rbx, qword [rsp + 0xc8]
mov r12d, dword [rsp + 0x44]
mov eax, dword [rsp + 0x2c]
cdqe
mov ecx, r14d
mov rdx, qword [r8 + rax*8]
lea r10, [r8 + rax*8]
shr rdx, cl
test rdx, rdx
je 0x1400109c8
xor qword [r8], rdx
mov eax, r12d
mov edi, dword [rsp + 0x48]
sub eax, edi
movsxd r11, eax
shl rdx, cl
mov r9, qword [r8 + r11*8]
test r13d, r13d
jne 0x140010905
xor r9, rdx
mov qword [r8 + r11*8], r9
jmp 0x140010929
mov rax, rdx
mov ecx, r13d
shr rax, cl
xor rax, r9
mov qword [r8 + r11*8], rax
cmp r12d, edi
jle 0x140010929
mov ecx, dword [rsp + 0x30]
mov rax, rdx
shl rax, cl
xor qword [r8 + r11*8 - 8], rax
cmp dword [rsp + 0xd0], 0
je 0x1400109c5
mov r14d, dword [rsp + 0xd8]
mov eax, r12d
mov ecx, dword [rsp + 0x20]
sub eax, r14d
movsxd r11, eax
mov r9, qword [r8 + r11*8]
test ecx, ecx
jne 0x14001095d
xor r9, rdx
mov qword [r8 + r11*8], r9
jmp 0x14001097e
mov rax, rdx
shr rax, cl
xor rax, r9
mov qword [r8 + r11*8], rax
cmp r12d, r14d
jle 0x14001097e
mov ecx, dword [rsp + 0x24]
mov rax, rdx
shl rax, cl
xor qword [r8 + r11*8 - 8], rax
mov esi, dword [rsp + 0xc0]
mov eax, r12d
sub eax, esi
movsxd rdi, eax
mov r9, qword [r8 + rdi*8]
lea r11, [r8 + rdi*8]
test r15d, r15d
jne 0x1400109a2
xor r9, rdx
mov qword [r11], r9
jmp 0x1400109c5
mov rax, rdx
mov ecx, r15d
shr rax, cl
xor rax, r9
mov qword [r11], rax
cmp r12d, esi
jle 0x1400109c5
mov ecx, dword [rsp + 0x28]
mov rax, rdx
shl rax, cl
xor qword [r8 + rdi*8 - 8], rax
xor qword [r10], rdx
mov r13, qword [rsp + 0x88]
mov dword [rbx], r12d
cmp qword [r10], 0
jne 0x1400109e1
mov rcx, rbx
call fcn.140005de0
mov r14, qword [rsp + 0x80]
mov r12, qword [rsp + 0x90]
mov r15, qword [rsp + 0x78]
add rsp, 0x98
pop rdi
pop rsi
pop rbp
pop rbx
ret