Function at 0x140016a50
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 0x140016a72
mov eax, dword [rsp + 0x40]
inc eax
mov dword [rsp + 0x40], eax
cmp dword [rsp + 0x40], 0x10
jge 0x140016ac7
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 0x140016a68
mov dword [rsp + 0x40], 0
jmp 0x140016adb
mov eax, dword [rsp + 0x40]
inc eax
mov dword [rsp + 0x40], eax
cmp dword [rsp + 0x40], 0xa
jge 0x1400170af
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 0x140016ae6
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 0x140016b9a
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 0x140016c54
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 0x140016d0e
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 0x140016dc8
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 0x140016e7c
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 0x140016f36
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 0x140016ff0
jmp 0x140016ad1
mov dword [rsp + 0x40], 0
jmp 0x1400170c3
mov eax, dword [rsp + 0x40]
inc eax
mov dword [rsp + 0x40], eax
cmp dword [rsp + 0x40], 0x10
jge 0x14001711b
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 0x1400170b9
add rsp, 0x68
ret