Function at 0x140018100
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x68
mov dword [rsp + 0x40], 0
jmp 0x140018122
mov eax, dword [rsp + 0x40]
inc eax
mov dword [rsp + 0x40], eax
cmp dword [rsp + 0x40], 0x10
jge 0x140018177
movsxd rax, dword [rsp + 0x40]
mov qword [rsp + 0x48], rax
mov eax, dword [rsp + 0x40]
cdq
and edx, 3
add eax, edx
sar eax, 2
cdqe
imul rax, rax, 0x10
lea rax, [rsp + rax]
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x40]
cdq
and edx, 3
add eax, edx
and eax, 3
sub eax, edx
cdqe
mov rcx, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x48]
mov ecx, dword [rcx + rdx*4]
mov rdx, qword [rsp + 0x50]
mov dword [rdx + rax*4], ecx
jmp 0x140018118
mov dword [rsp + 0x40], 0
jmp 0x14001818b
mov eax, dword [rsp + 0x40]
inc eax
mov dword [rsp + 0x40], eax
cmp dword [rsp + 0x40], 0xa
jge 0x14001875f
mov eax, dword [rsp]
mov ecx, dword [rsp + 0x30]
add ecx, eax
mov eax, ecx
shl eax, 7
mov ecx, dword [rsp]
mov edx, dword [rsp + 0x30]
add edx, ecx
mov ecx, edx
shr ecx, 0x19
or eax, ecx
mov ecx, dword [rsp + 0x10]
xor ecx, eax
mov eax, ecx
mov dword [rsp + 0x10], eax
mov eax, dword [rsp + 0x10]
mov ecx, dword [rsp]
add ecx, eax
mov eax, ecx
shl eax, 9
mov ecx, dword [rsp + 0x10]
mov edx, dword [rsp]
add edx, ecx
mov ecx, edx
shr ecx, 0x17
or eax, ecx
mov ecx, dword [rsp + 0x20]
xor ecx, eax
mov eax, ecx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
mov ecx, dword [rsp + 0x10]
add ecx, eax
mov eax, ecx
shl eax, 0xd
mov ecx, dword [rsp + 0x20]
mov edx, dword [rsp + 0x10]
add edx, ecx
mov ecx, edx
shr ecx, 0x13
or eax, ecx
mov ecx, dword [rsp + 0x30]
xor ecx, eax
mov eax, ecx
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x30]
mov ecx, dword [rsp + 0x20]
add ecx, eax
mov eax, ecx
shl eax, 0x12
mov ecx, dword [rsp + 0x30]
mov edx, dword [rsp + 0x20]
add edx, ecx
mov ecx, edx
shr ecx, 0xe
or eax, ecx
mov ecx, dword [rsp]
xor ecx, eax
mov eax, ecx
mov dword [rsp], eax
xor eax, eax
test eax, eax
jne 0x140018196
mov eax, dword [rsp + 0x14]
mov ecx, dword [rsp + 4]
add ecx, eax
mov eax, ecx
shl eax, 7
mov ecx, dword [rsp + 0x14]
mov edx, dword [rsp + 4]
add edx, ecx
mov ecx, edx
shr ecx, 0x19
or eax, ecx
mov ecx, dword [rsp + 0x24]
xor ecx, eax
mov eax, ecx
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x24]
mov ecx, dword [rsp + 0x14]
add ecx, eax
mov eax, ecx
shl eax, 9
mov ecx, dword [rsp + 0x24]
mov edx, dword [rsp + 0x14]
add edx, ecx
mov ecx, edx
shr ecx, 0x17
or eax, ecx
mov ecx, dword [rsp + 0x34]
xor ecx, eax
mov eax, ecx
mov dword [rsp + 0x34], eax
mov eax, dword [rsp + 0x34]
mov ecx, dword [rsp + 0x24]
add ecx, eax
mov eax, ecx
shl eax, 0xd
mov ecx, dword [rsp + 0x34]
mov edx, dword [rsp + 0x24]
add edx, ecx
mov ecx, edx
shr ecx, 0x13
or eax, ecx
mov ecx, dword [rsp + 4]
xor ecx, eax
mov eax, ecx
mov dword [rsp + 4], eax
mov eax, dword [rsp + 4]
mov ecx, dword [rsp + 0x34]
add ecx, eax
mov eax, ecx
shl eax, 0x12
mov ecx, dword [rsp + 4]
mov edx, dword [rsp + 0x34]
add edx, ecx
mov ecx, edx
shr ecx, 0xe
or eax, ecx
mov ecx, dword [rsp + 0x14]
xor ecx, eax
mov eax, ecx
mov dword [rsp + 0x14], eax
xor eax, eax
test eax, eax
jne 0x14001824a
mov eax, dword [rsp + 0x28]
mov ecx, dword [rsp + 0x18]
add ecx, eax
mov eax, ecx
shl eax, 7
mov ecx, dword [rsp + 0x28]
mov edx, dword [rsp + 0x18]
add edx, ecx
mov ecx, edx
shr ecx, 0x19
or eax, ecx
mov ecx, dword [rsp + 0x38]
xor ecx, eax
mov eax, ecx
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x38]
mov ecx, dword [rsp + 0x28]
add ecx, eax
mov eax, ecx
shl eax, 9
mov ecx, dword [rsp + 0x38]
mov edx, dword [rsp + 0x28]
add edx, ecx
mov ecx, edx
shr ecx, 0x17
or eax, ecx
mov ecx, dword [rsp + 8]
xor ecx, eax
mov eax, ecx
mov dword [rsp + 8], eax
mov eax, dword [rsp + 8]
mov ecx, dword [rsp + 0x38]
add ecx, eax
mov eax, ecx
shl eax, 0xd
mov ecx, dword [rsp + 8]
mov edx, dword [rsp + 0x38]
add edx, ecx
mov ecx, edx
shr ecx, 0x13
or eax, ecx
mov ecx, dword [rsp + 0x18]
xor ecx, eax
mov eax, ecx
mov dword [rsp + 0x18], eax
mov eax, dword [rsp + 0x18]
mov ecx, dword [rsp + 8]
add ecx, eax
mov eax, ecx
shl eax, 0x12
mov ecx, dword [rsp + 0x18]
mov edx, dword [rsp + 8]
add edx, ecx
mov ecx, edx
shr ecx, 0xe
or eax, ecx
mov ecx, dword [rsp + 0x28]
xor ecx, eax
mov eax, ecx
mov dword [rsp + 0x28], eax
xor eax, eax
test eax, eax
jne 0x140018304
mov eax, dword [rsp + 0x3c]
mov ecx, dword [rsp + 0x2c]
add ecx, eax
mov eax, ecx
shl eax, 7
mov ecx, dword [rsp + 0x3c]
mov edx, dword [rsp + 0x2c]
add edx, ecx
mov ecx, edx
shr ecx, 0x19
or eax, ecx
mov ecx, dword [rsp + 0xc]
xor ecx, eax
mov eax, ecx
mov dword [rsp + 0xc], eax
mov eax, dword [rsp + 0xc]
mov ecx, dword [rsp + 0x3c]
add ecx, eax
mov eax, ecx
shl eax, 9
mov ecx, dword [rsp + 0xc]
mov edx, dword [rsp + 0x3c]
add edx, ecx
mov ecx, edx
shr ecx, 0x17
or eax, ecx
mov ecx, dword [rsp + 0x1c]
xor ecx, eax
mov eax, ecx
mov dword [rsp + 0x1c], eax
mov eax, dword [rsp + 0x1c]
mov ecx, dword [rsp + 0xc]
add ecx, eax
mov eax, ecx
shl eax, 0xd
mov ecx, dword [rsp + 0x1c]
mov edx, dword [rsp + 0xc]
add edx, ecx
mov ecx, edx
shr ecx, 0x13
or eax, ecx
mov ecx, dword [rsp + 0x2c]
xor ecx, eax
mov eax, ecx
mov dword [rsp + 0x2c], eax
mov eax, dword [rsp + 0x2c]
mov ecx, dword [rsp + 0x1c]
add ecx, eax
mov eax, ecx
shl eax, 0x12
mov ecx, dword [rsp + 0x2c]
mov edx, dword [rsp + 0x1c]
add edx, ecx
mov ecx, edx
shr ecx, 0xe
or eax, ecx
mov ecx, dword [rsp + 0x3c]
xor ecx, eax
mov eax, ecx
mov dword [rsp + 0x3c], eax
xor eax, eax
test eax, eax
jne 0x1400183be
mov eax, dword [rsp]
mov ecx, dword [rsp + 0xc]
add ecx, eax
mov eax, ecx
shl eax, 7
mov ecx, dword [rsp]
mov edx, dword [rsp + 0xc]
add edx, ecx
mov ecx, edx
shr ecx, 0x19
or eax, ecx
mov ecx, dword [rsp + 4]
xor ecx, eax
mov eax, ecx
mov dword [rsp + 4], eax
mov eax, dword [rsp + 4]
mov ecx, dword [rsp]
add ecx, eax
mov eax, ecx
shl eax, 9
mov ecx, dword [rsp + 4]
mov edx, dword [rsp]
add edx, ecx
mov ecx, edx
shr ecx, 0x17
or eax, ecx
mov ecx, dword [rsp + 8]
xor ecx, eax
mov eax, ecx
mov dword [rsp + 8], eax
mov eax, dword [rsp + 8]
mov ecx, dword [rsp + 4]
add ecx, eax
mov eax, ecx
shl eax, 0xd
mov ecx, dword [rsp + 8]
mov edx, dword [rsp + 4]
add edx, ecx
mov ecx, edx
shr ecx, 0x13
or eax, ecx
mov ecx, dword [rsp + 0xc]
xor ecx, eax
mov eax, ecx
mov dword [rsp + 0xc], eax
mov eax, dword [rsp + 0xc]
mov ecx, dword [rsp + 8]
add ecx, eax
mov eax, ecx
shl eax, 0x12
mov ecx, dword [rsp + 0xc]
mov edx, dword [rsp + 8]
add edx, ecx
mov ecx, edx
shr ecx, 0xe
or eax, ecx
mov ecx, dword [rsp]
xor ecx, eax
mov eax, ecx
mov dword [rsp], eax
xor eax, eax
test eax, eax
jne 0x140018478
mov eax, dword [rsp + 0x14]
mov ecx, dword [rsp + 0x10]
add ecx, eax
mov eax, ecx
shl eax, 7
mov ecx, dword [rsp + 0x14]
mov edx, dword [rsp + 0x10]
add edx, ecx
mov ecx, edx
shr ecx, 0x19
or eax, ecx
mov ecx, dword [rsp + 0x18]
xor ecx, eax
mov eax, ecx
mov dword [rsp + 0x18], eax
mov eax, dword [rsp + 0x18]
mov ecx, dword [rsp + 0x14]
add ecx, eax
mov eax, ecx
shl eax, 9
mov ecx, dword [rsp + 0x18]
mov edx, dword [rsp + 0x14]
add edx, ecx
mov ecx, edx
shr ecx, 0x17
or eax, ecx
mov ecx, dword [rsp + 0x1c]
xor ecx, eax
mov eax, ecx
mov dword [rsp + 0x1c], eax
mov eax, dword [rsp + 0x1c]
mov ecx, dword [rsp + 0x18]
add ecx, eax
mov eax, ecx
shl eax, 0xd
mov ecx, dword [rsp + 0x1c]
mov edx, dword [rsp + 0x18]
add edx, ecx
mov ecx, edx
shr ecx, 0x13
or eax, ecx
mov ecx, dword [rsp + 0x10]
xor ecx, eax
mov eax, ecx
mov dword [rsp + 0x10], eax
mov eax, dword [rsp + 0x10]
mov ecx, dword [rsp + 0x1c]
add ecx, eax
mov eax, ecx
shl eax, 0x12
mov ecx, dword [rsp + 0x10]
mov edx, dword [rsp + 0x1c]
add edx, ecx
mov ecx, edx
shr ecx, 0xe
or eax, ecx
mov ecx, dword [rsp + 0x14]
xor ecx, eax
mov eax, ecx
mov dword [rsp + 0x14], eax
xor eax, eax
test eax, eax
jne 0x14001852c
mov eax, dword [rsp + 0x28]
mov ecx, dword [rsp + 0x24]
add ecx, eax
mov eax, ecx
shl eax, 7
mov ecx, dword [rsp + 0x28]
mov edx, dword [rsp + 0x24]
add edx, ecx
mov ecx, edx
shr ecx, 0x19
or eax, ecx
mov ecx, dword [rsp + 0x2c]
xor ecx, eax
mov eax, ecx
mov dword [rsp + 0x2c], eax
mov eax, dword [rsp + 0x2c]
mov ecx, dword [rsp + 0x28]
add ecx, eax
mov eax, ecx
shl eax, 9
mov ecx, dword [rsp + 0x2c]
mov edx, dword [rsp + 0x28]
add edx, ecx
mov ecx, edx
shr ecx, 0x17
or eax, ecx
mov ecx, dword [rsp + 0x20]
xor ecx, eax
mov eax, ecx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
mov ecx, dword [rsp + 0x2c]
add ecx, eax
mov eax, ecx
shl eax, 0xd
mov ecx, dword [rsp + 0x20]
mov edx, dword [rsp + 0x2c]
add edx, ecx
mov ecx, edx
shr ecx, 0x13
or eax, ecx
mov ecx, dword [rsp + 0x24]
xor ecx, eax
mov eax, ecx
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x24]
mov ecx, dword [rsp + 0x20]
add ecx, eax
mov eax, ecx
shl eax, 0x12
mov ecx, dword [rsp + 0x24]
mov edx, dword [rsp + 0x20]
add edx, ecx
mov ecx, edx
shr ecx, 0xe
or eax, ecx
mov ecx, dword [rsp + 0x28]
xor ecx, eax
mov eax, ecx
mov dword [rsp + 0x28], eax
xor eax, eax
test eax, eax
jne 0x1400185e6
mov eax, dword [rsp + 0x3c]
mov ecx, dword [rsp + 0x38]
add ecx, eax
mov eax, ecx
shl eax, 7
mov ecx, dword [rsp + 0x3c]
mov edx, dword [rsp + 0x38]
add edx, ecx
mov ecx, edx
shr ecx, 0x19
or eax, ecx
mov ecx, dword [rsp + 0x30]
xor ecx, eax
mov eax, ecx
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x30]
mov ecx, dword [rsp + 0x3c]
add ecx, eax
mov eax, ecx
shl eax, 9
mov ecx, dword [rsp + 0x30]
mov edx, dword [rsp + 0x3c]
add edx, ecx
mov ecx, edx
shr ecx, 0x17
or eax, ecx
mov ecx, dword [rsp + 0x34]
xor ecx, eax
mov eax, ecx
mov dword [rsp + 0x34], eax
mov eax, dword [rsp + 0x34]
mov ecx, dword [rsp + 0x30]
add ecx, eax
mov eax, ecx
shl eax, 0xd
mov ecx, dword [rsp + 0x34]
mov edx, dword [rsp + 0x30]
add edx, ecx
mov ecx, edx
shr ecx, 0x13
or eax, ecx
mov ecx, dword [rsp + 0x38]
xor ecx, eax
mov eax, ecx
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x38]
mov ecx, dword [rsp + 0x34]
add ecx, eax
mov eax, ecx
shl eax, 0x12
mov ecx, dword [rsp + 0x38]
mov edx, dword [rsp + 0x34]
add edx, ecx
mov ecx, edx
shr ecx, 0xe
or eax, ecx
mov ecx, dword [rsp + 0x3c]
xor ecx, eax
mov eax, ecx
mov dword [rsp + 0x3c], eax
xor eax, eax
test eax, eax
jne 0x1400186a0
jmp 0x140018181
mov dword [rsp + 0x40], 0
jmp 0x140018773
mov eax, dword [rsp + 0x40]
inc eax
mov dword [rsp + 0x40], eax
cmp dword [rsp + 0x40], 0x10
jge 0x1400187cb
mov eax, dword [rsp + 0x40]
cdq
and edx, 3
add eax, edx
sar eax, 2
cdqe
imul rax, rax, 0x10
lea rax, [rsp + rax]
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x40]
cdq
and edx, 3
add eax, edx
and eax, 3
sub eax, edx
cdqe
movsxd rcx, dword [rsp + 0x40]
mov rdx, qword [rsp + 0x58]
mov eax, dword [rdx + rax*4]
mov rdx, qword [rsp + 0x78]
add eax, dword [rdx + rcx*4]
movsxd rcx, dword [rsp + 0x40]
mov rdx, qword [rsp + 0x70]
mov dword [rdx + rcx*4], eax
jmp 0x140018769
add rsp, 0x68
ret