Function at 0x35318
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], r9
push rsi
push rdi
push r12
push r13
push r14
push r15
mov r12, qword [rcx + 8]
movzx eax, byte [r8 + 2]
movzx ebx, byte [r8 + 3]
movzx r13d, byte [r8 + 7]
movzx r14d, byte [r8 + 0xb]
shl ebx, 8
or ebx, eax
movzx eax, byte [r8 + 1]
shl r13d, 8
shl r14d, 8
shl ebx, 8
mov rbp, r9
or ebx, eax
movzx eax, byte [r8]
mov r9, rcx
movzx ecx, byte [r8 + 0xf]
shl ebx, 8
lea r15, [0x00010000]
or ebx, eax
movzx eax, byte [r8 + 6]
shl ecx, 8
xor ebx, dword [r12]
or r13d, eax
movzx eax, byte [r8 + 5]
shl r13d, 8
add r12, 0x10
or r13d, eax
movzx eax, byte [r8 + 4]
shl r13d, 8
or r13d, eax
movzx eax, byte [r8 + 0xa]
xor r13d, dword [r12 - 0xc]
or r14d, eax
movzx eax, byte [r8 + 9]
shl r14d, 8
or r14d, eax
movzx eax, byte [r8 + 8]
shl r14d, 8
or r14d, eax
movzx eax, byte [r8 + 0xe]
xor r14d, dword [r12 - 8]
or ecx, eax
movzx eax, byte [r8 + 0xd]
shl ecx, 8
or ecx, eax
movzx eax, byte [r8 + 0xc]
shl ecx, 8
or ecx, eax
mov eax, dword [r9]
xor ecx, dword [r12 - 4]
sar eax, 1
dec eax
test edx, edx
jne 0x358a5
test eax, eax
jle 0x35641
mov ebp, eax
mov edi, ebx
mov esi, ecx
mov eax, r14d
shr rax, 0x10
mov r10d, r13d
mov r11d, r14d
movzx edx, al
mov eax, ecx
shr r10, 0x10
mov ebx, dword [r15 + rdx*4 + 0x706c0]
shr rax, 8
shr r11, 8
movzx ecx, al
mov eax, r13d
xor ebx, dword [r15 + rcx*4 + 0x70af0]
shr rax, 0x18
xor ebx, dword [r15 + rax*4 + 0x702c0]
movzx eax, dil
xor ebx, dword [r15 + rax*4 + 0x70ef0]
mov rax, rdi
xor ebx, dword [r12]
shr rax, 8
movzx edx, al
mov rax, rsi
mov r9d, dword [r15 + rdx*4 + 0x70af0]
shr rax, 0x10
movzx ecx, al
mov eax, r14d
xor r9d, dword [r15 + rcx*4 + 0x706c0]
shr rax, 0x18
xor r9d, dword [r15 + rax*4 + 0x702c0]
movzx eax, r13b
xor r9d, dword [r15 + rax*4 + 0x70ef0]
mov eax, r13d
xor r9d, dword [r12 + 4]
shr rax, 8
movzx edx, al
mov rax, rdi
shr rdi, 0x18
mov r8d, dword [r15 + rdx*4 + 0x70af0]
shr rax, 0x10
movzx ecx, al
mov rax, rsi
xor r8d, dword [r15 + rcx*4 + 0x706c0]
shr rax, 0x18
movzx ecx, r10b
xor r8d, dword [r15 + rax*4 + 0x702c0]
mov edx, dword [r15 + rcx*4 + 0x706c0]
movzx eax, r14b
xor r8d, dword [r15 + rax*4 + 0x70ef0]
movzx eax, r11b
mov r11d, ebx
xor edx, dword [r15 + rax*4 + 0x70af0]
xor r8d, dword [r12 + 8]
movzx eax, sil
xor edx, dword [r15 + rdi*4 + 0x702c0]
mov r10d, r8d
mov r8d, r9d
xor edx, dword [r15 + rax*4 + 0x70ef0]
mov rax, r10
xor edx, dword [r12 + 0xc]
shr rax, 0x10
mov edi, edx
movzx edx, al
mov ebx, dword [r15 + rdx*4 + 0x706c0]
mov rax, rdi
shr rax, 8
movzx ecx, al
mov eax, r9d
xor ebx, dword [r15 + rcx*4 + 0x70af0]
shr rax, 0x18
xor ebx, dword [r15 + rax*4 + 0x702c0]
movzx eax, r11b
xor ebx, dword [r15 + rax*4 + 0x70ef0]
mov rax, r11
xor ebx, dword [r12 + 0x10]
shr rax, 8
movzx edx, al
mov rax, rdi
shr rax, 0x10
movzx ecx, al
mov r13d, dword [r15 + rdx*4 + 0x70af0]
mov rax, r10
shr r8, 0x10
xor r13d, dword [r15 + rcx*4 + 0x706c0]
shr rax, 0x18
dec ebp
xor r13d, dword [r15 + rax*4 + 0x702c0]
movzx eax, r9b
add r12, 0x20
xor r13d, dword [r15 + rax*4 + 0x70ef0]
mov eax, r9d
xor r13d, dword [r12 - 0xc]
shr rax, 8
movzx edx, al
mov rax, r11
shr r11, 0x18
mov r14d, dword [r15 + rdx*4 + 0x70af0]
shr rax, 0x10
movzx ecx, al
mov rax, rdi
xor r14d, dword [r15 + rcx*4 + 0x706c0]
shr rax, 0x18
movzx ecx, r8b
xor r14d, dword [r15 + rax*4 + 0x702c0]
mov ecx, dword [r15 + rcx*4 + 0x706c0]
movzx eax, r10b
xor r14d, dword [r15 + rax*4 + 0x70ef0]
shr r10, 8
xor r14d, dword [r12 - 8]
movzx eax, r10b
xor ecx, dword [r15 + rax*4 + 0x70af0]
movzx eax, dil
xor ecx, dword [r15 + r11*4 + 0x702c0]
xor ecx, dword [r15 + rax*4 + 0x70ef0]
xor ecx, dword [r12 - 4]
test ebp, ebp
jg 0x35409
mov rbp, qword [rsp + 0x50]
mov esi, ecx
mov eax, r14d
mov r10d, r13d
shr rax, 0x10
shr r10, 0x10
mov r11d, r14d
movzx edx, al
mov eax, ecx
shr r11, 8
mov edi, dword [r15 + rdx*4 + 0x706c0]
shr rax, 8
movzx ecx, al
mov eax, r13d
xor edi, dword [r15 + rcx*4 + 0x70af0]
shr rax, 0x18
xor edi, dword [r15 + rax*4 + 0x702c0]
movzx eax, bl
xor edi, dword [r15 + rax*4 + 0x70ef0]
mov rax, rbx
xor edi, dword [r12]
shr rax, 8
movzx edx, al
mov rax, rsi
mov r9d, dword [r15 + rdx*4 + 0x70af0]
shr rax, 0x10
movzx ecx, al
mov eax, r14d
xor r9d, dword [r15 + rcx*4 + 0x706c0]
shr rax, 0x18
xor r9d, dword [r15 + rax*4 + 0x702c0]
movzx eax, r13b
xor r9d, dword [r15 + rax*4 + 0x70ef0]
mov eax, r13d
xor r9d, dword [r12 + 4]
shr rax, 8
movzx edx, al
mov rax, rbx
shr rbx, 0x18
mov r8d, dword [r15 + rdx*4 + 0x70af0]
shr rax, 0x10
movzx ecx, al
mov rax, rsi
xor r8d, dword [r15 + rcx*4 + 0x706c0]
shr rax, 0x18
movzx ecx, r10b
xor r8d, dword [r15 + rax*4 + 0x702c0]
mov edx, dword [r15 + rcx*4 + 0x706c0]
movzx eax, r14b
xor r8d, dword [r15 + rax*4 + 0x70ef0]
movzx eax, r11b
xor edx, dword [r15 + rax*4 + 0x70af0]
xor r8d, dword [r12 + 8]
movzx eax, sil
xor edx, dword [r15 + rbx*4 + 0x702c0]
mov r10d, r8d
mov r8d, r9d
xor edx, dword [r15 + rax*4 + 0x70ef0]
mov rax, r8
xor edx, dword [r12 + 0xc]
shr rax, 0x18
movzx ebx, byte [rax + r15 + 0x722f0]
mov r9d, edx
mov rax, r10
shr rax, 0x10
shl ebx, 8
mov edx, edi
movzx ecx, al
movzx eax, byte [rcx + r15 + 0x722f0]
xor ebx, eax
mov rax, r9
shr rax, 8
shl ebx, 8
movzx ecx, al
movzx eax, byte [rcx + r15 + 0x722f0]
xor ebx, eax
movzx eax, dil
movzx eax, byte [rax + r15 + 0x722f0]
shl ebx, 8
xor ebx, eax
mov rax, r9
xor ebx, dword [r12 + 0x10]
shr rax, 0x10
movzx ecx, al
mov rax, r10
movzx edi, byte [rcx + r15 + 0x722f0]
shr rax, 0x18
movzx eax, byte [rax + r15 + 0x722f0]
shl eax, 8
xor edi, eax
mov rax, rdx
shr rax, 8
shl edi, 8
movzx ecx, al
movzx eax, byte [rcx + r15 + 0x722f0]
xor edi, eax
movzx eax, r8b
movzx eax, byte [rax + r15 + 0x722f0]
shl edi, 8
xor edi, eax
mov rax, rdx
shr rdx, 0x18
xor edi, dword [r12 + 0x14]
shr rax, 0x10
movzx ecx, al
mov rax, r9
movzx esi, byte [rcx + r15 + 0x722f0]
shr rax, 0x18
movzx eax, byte [rax + r15 + 0x722f0]
shl eax, 8
xor esi, eax
mov rax, r8
shr r8, 0x10
shr rax, 8
shl esi, 8
movzx ecx, al
movzx eax, byte [rcx + r15 + 0x722f0]
xor esi, eax
movzx eax, r10b
shr r10, 8
movzx eax, byte [rax + r15 + 0x722f0]
shl esi, 8
xor esi, eax
movzx eax, r8b
movzx ecx, byte [rax + r15 + 0x722f0]
movzx eax, byte [rdx + r15 + 0x722f0]
shl eax, 8
xor ecx, eax
movzx eax, r10b
movzx eax, byte [rax + r15 + 0x722f0]
shl ecx, 8
xor ecx, eax
movzx eax, r9b
movzx eax, byte [rax + r15 + 0x722f0]
jmp 0x35d48
test eax, eax
jle 0x35ae7
mov ebp, eax
mov r11d, ebx
mov edi, ecx
mov eax, r13d
shr rax, 8
mov r10d, r13d
mov esi, r14d
movzx edx, al
shr r10, 0x10
mov eax, r14d
mov ebx, dword [r15 + rdx*4 + 0x71af0]
shr rax, 0x10
shr rsi, 0x18
movzx ecx, al
mov rax, rdi
xor ebx, dword [r15 + rcx*4 + 0x716f0]
shr rax, 0x18
xor ebx, dword [r15 + rax*4 + 0x712f0]
movzx eax, r11b
xor ebx, dword [r15 + rax*4 + 0x71ef0]
mov eax, r14d
xor ebx, dword [r12]
shr rax, 8
movzx edx, al
mov rax, rdi
mov r9d, dword [r15 + rdx*4 + 0x71af0]
shr rax, 0x10
movzx ecx, al
mov rax, r11
xor r9d, dword [r15 + rcx*4 + 0x716f0]
shr rax, 0x18
xor r9d, dword [r15 + rax*4 + 0x712f0]
movzx eax, r13b
xor r9d, dword [r15 + rax*4 + 0x71ef0]
mov rax, r11
shr r11, 8
xor r9d, dword [r12 + 4]
shr rax, 0x10
movzx edx, al
mov rax, rdi
mov r8d, dword [r15 + rdx*4 + 0x716f0]
shr rax, 8
movzx ecx, al
mov eax, r13d
xor r8d, dword [r15 + rcx*4 + 0x71af0]
shr rax, 0x18
movzx ecx, r10b
xor r8d, dword [r15 + rax*4 + 0x712f0]
mov r10d, dword [r15 + rcx*4 + 0x716f0]
movzx eax, r14b
xor r8d, dword [r15 + rax*4 + 0x71ef0]
movzx eax, r11b
xor r10d, dword [r15 + rax*4 + 0x71af0]
xor r8d, dword [r12 + 8]
movzx eax, dil
xor r10d, dword [r15 + rsi*4 + 0x712f0]
mov r11d, r8d
mov r8d, r9d
xor r10d, dword [r15 + rax*4 + 0x71ef0]
mov r9d, ebx
mov rax, r8
xor r10d, dword [r12 + 0xc]
shr rax, 8
movzx edx, al
mov rax, r11
mov ebx, dword [r15 + rdx*4 + 0x71af0]
shr rax, 0x10
movzx ecx, al
mov rax, r10
xor ebx, dword [r15 + rcx*4 + 0x716f0]
shr rax, 0x18
xor ebx, dword [r15 + rax*4 + 0x712f0]
movzx eax, r9b
xor ebx, dword [r15 + rax*4 + 0x71ef0]
mov rax, r11
xor ebx, dword [r12 + 0x10]
shr rax, 8
movzx edx, al
mov rax, r10
mov r13d, dword [r15 + rdx*4 + 0x71af0]
shr rax, 0x10
movzx ecx, al
xor r13d, dword [r15 + rcx*4 + 0x716f0]
mov rax, r9
dec ebp
shr rax, 0x18
add r12, 0x20
xor r13d, dword [r15 + rax*4 + 0x712f0]
movzx eax, r8b
xor r13d, dword [r15 + rax*4 + 0x71ef0]
mov rax, r9
shr r9, 8
xor r13d, dword [r12 - 0xc]
shr rax, 0x10
movzx edx, al
mov rax, r10
mov r14d, dword [r15 + rdx*4 + 0x716f0]
shr rax, 8
movzx ecx, al
mov rax, r8
shr r8, 0x10
xor r14d, dword [r15 + rcx*4 + 0x71af0]
shr rax, 0x18
movzx ecx, r8b
xor r14d, dword [r15 + rax*4 + 0x712f0]
mov ecx, dword [r15 + rcx*4 + 0x716f0]
movzx eax, r11b
xor r14d, dword [r15 + rax*4 + 0x71ef0]
movzx eax, r9b
shr r11, 0x18
xor ecx, dword [r15 + rax*4 + 0x71af0]
xor r14d, dword [r12 - 8]
movzx eax, r10b
xor ecx, dword [r15 + r11*4 + 0x712f0]
xor ecx, dword [r15 + rax*4 + 0x71ef0]
xor ecx, dword [r12 - 4]
test ebp, ebp
jg 0x358af
mov rbp, qword [rsp + 0x50]
mov r11d, ebx
mov edi, ecx
mov eax, r13d
shr rax, 8
mov r10d, r13d
mov esi, r14d
movzx edx, al
mov eax, r14d
shr r10, 0x10
mov ebx, dword [r15 + rdx*4 + 0x71af0]
shr rax, 0x10
shr rsi, 0x18
movzx ecx, al
mov rax, rdi
xor ebx, dword [r15 + rcx*4 + 0x716f0]
shr rax, 0x18
xor ebx, dword [r15 + rax*4 + 0x712f0]
movzx eax, r11b
xor ebx, dword [r15 + rax*4 + 0x71ef0]
mov eax, r14d
xor ebx, dword [r12]
shr rax, 8
movzx edx, al
mov rax, rdi
mov r9d, dword [r15 + rdx*4 + 0x71af0]
shr rax, 0x10
movzx ecx, al
mov rax, r11
xor r9d, dword [r15 + rcx*4 + 0x716f0]
shr rax, 0x18
xor r9d, dword [r15 + rax*4 + 0x712f0]
movzx eax, r13b
xor r9d, dword [r15 + rax*4 + 0x71ef0]
mov rax, r11
shr r11, 8
xor r9d, dword [r12 + 4]
shr rax, 0x10
movzx edx, al
mov rax, rdi
mov r8d, dword [r15 + rdx*4 + 0x716f0]
shr rax, 8
mov edx, r9d
movzx ecx, al
mov eax, r13d
xor r8d, dword [r15 + rcx*4 + 0x71af0]
shr rax, 0x18
movzx ecx, r10b
xor r8d, dword [r15 + rax*4 + 0x712f0]
movzx eax, r14b
xor r8d, dword [r15 + rax*4 + 0x71ef0]
movzx eax, r11b
mov r11d, dword [r15 + rcx*4 + 0x716f0]
xor r11d, dword [r15 + rax*4 + 0x71af0]
xor r8d, dword [r12 + 8]
movzx eax, dil
xor r11d, dword [r15 + rsi*4 + 0x712f0]
mov r10d, r8d
mov r8d, ebx
xor r11d, dword [r15 + rax*4 + 0x71ef0]
mov rax, r10
xor r11d, dword [r12 + 0xc]
shr rax, 0x10
movzx ecx, al
mov rax, r11
movzx ebx, byte [rcx + r15 + 0x701c0]
shr rax, 0x18
movzx eax, byte [rax + r15 + 0x701c0]
shl eax, 8
xor ebx, eax
mov eax, r9d
shr rax, 8
shl ebx, 8
movzx ecx, al
movzx eax, byte [rcx + r15 + 0x701c0]
xor ebx, eax
movzx eax, r8b
movzx eax, byte [rax + r15 + 0x701c0]
shl ebx, 8
xor ebx, eax
mov rax, r8
xor ebx, dword [r12 + 0x10]
shr rax, 0x18
shr rdx, 0x10
movzx edi, byte [rax + r15 + 0x701c0]
mov rax, r11
shr rax, 0x10
shl edi, 8
movzx ecx, al
movzx eax, byte [rcx + r15 + 0x701c0]
xor edi, eax
mov rax, r10
shr rax, 8
shl edi, 8
movzx ecx, al
movzx eax, byte [rcx + r15 + 0x701c0]
xor edi, eax
movzx eax, r9b
movzx eax, byte [rax + r15 + 0x701c0]
shl edi, 8
xor edi, eax
mov rax, r8
shr r8, 8
xor edi, dword [r12 + 0x14]
shr rax, 0x10
movzx ecx, al
mov eax, r9d
movzx esi, byte [rcx + r15 + 0x701c0]
shr rax, 0x18
movzx eax, byte [rax + r15 + 0x701c0]
shl eax, 8
xor esi, eax
mov rax, r11
shr rax, 8
shl esi, 8
movzx ecx, al
movzx eax, byte [rcx + r15 + 0x701c0]
xor esi, eax
movzx eax, r10b
shr r10, 0x18
movzx eax, byte [rax + r15 + 0x701c0]
shl esi, 8
xor esi, eax
movzx eax, dl
movzx ecx, byte [rax + r15 + 0x701c0]
movzx eax, byte [r10 + r15 + 0x701c0]
shl eax, 8
xor ecx, eax
movzx eax, r8b
movzx eax, byte [rax + r15 + 0x701c0]
shl ecx, 8
xor ecx, eax
movzx eax, r11b
movzx eax, byte [rax + r15 + 0x701c0]
xor esi, dword [r12 + 0x18]
shl ecx, 8
xor ecx, eax
mov eax, ebx
xor ecx, dword [r12 + 0x1c]
shr eax, 8
mov byte [rbp], bl
mov byte [rbp + 1], al
mov eax, ebx
shr ebx, 0x18
shr eax, 0x10
mov byte [rbp + 4], dil
mov byte [rbp + 8], sil
mov byte [rbp + 2], al
mov eax, edi
mov byte [rbp + 0xc], cl
shr eax, 8
mov byte [rbp + 3], bl
mov rbx, qword [rsp + 0x38]
mov byte [rbp + 5], al
mov eax, edi
shr edi, 0x18
shr eax, 0x10
mov byte [rbp + 7], dil
mov byte [rbp + 6], al
mov eax, esi
shr eax, 8
mov byte [rbp + 9], al
mov eax, esi
shr esi, 0x18
shr eax, 0x10
mov byte [rbp + 0xb], sil
mov byte [rbp + 0xa], al
mov eax, ecx
shr eax, 8
mov byte [rbp + 0xd], al
mov eax, ecx
shr ecx, 0x18
shr eax, 0x10
mov byte [rbp + 0xf], cl
mov byte [rbp + 0xe], al
mov rbp, qword [rsp + 0x48]
xor eax, eax
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret