Function at 0x476670
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
mov rax, r8
mov qword [rsp + 0xa0], rcx
shl rax, 5
mov qword [rsp + 0xa8], rdx
add qword [rcx + 0x30], rax
mov eax, dword [rcx + 0x10]
mov dword [rsp + 0x28], eax
mov eax, dword [rcx + 0x14]
mov dword [rsp + 0x24], eax
mov eax, dword [rcx + 0x18]
mov dword [rsp + 0x20], eax
mov eax, dword [rcx + 0x1c]
mov dword [rsp + 0x1c], eax
mov eax, dword [rcx + 0x20]
mov dword [rsp + 0x18], eax
mov eax, dword [rcx + 0x24]
mov dword [rsp + 0x14], eax
mov eax, dword [rcx + 0x28]
mov dword [rsp + 0x10], eax
mov eax, dword [rcx + 0x2c]
mov dword [rsp + 0xc], eax
test r8, r8
je 0x476f7b
lea rax, [rdx + r8*4]
mov qword [rsp + 0x48], rax
nop dword [rax]
mov rax, qword [rsp + 0xa8]
lea rbx, [0x00649f40]
mov r15, qword [rsp + 0xa8]
lea r14, [0x00647f40]
lea r9, [0x00645f40]
movzx ebp, byte [rax]
movzx edi, byte [rax + 1]
movzx r12d, byte [r15 + 3]
lea r15, [0x00643f40]
movzx esi, byte [rax + 2]
mov rcx, rbp
shl rbp, 5
mov rdx, rdi
shl rdi, 5
add rbp, rbx
mov r8, r12
shl r12, 5
add rdi, r14
mov rax, rsi
shl rsi, 5
add r12, r15
shl r8, 5
add rsi, r9
shl rcx, 5
mov r11d, dword [r12 + 0x10]
shl rdx, 5
shl rax, 5
mov r10d, dword [r15 + r8]
xor r11d, dword [rbp + 0x10]
xor r10d, dword [rbx + rcx]
xor r11d, dword [rdi + 0x10]
xor r10d, dword [r14 + rdx]
xor r11d, dword [rsi + 0x10]
xor r10d, dword [r9 + rax]
mov ebx, dword [r12 + 8]
mov r9d, dword [r12 + 4]
xor ebx, dword [rbp + 8]
xor r9d, dword [rbp + 4]
xor ebx, dword [rdi + 8]
xor r9d, dword [rdi + 4]
xor ebx, dword [rsi + 8]
xor r9d, dword [rsi + 4]
mov edx, dword [r12 + 0xc]
mov eax, dword [r12 + 0x14]
xor edx, dword [rbp + 0xc]
xor eax, dword [rbp + 0x14]
xor edx, dword [rdi + 0xc]
xor eax, dword [rdi + 0x14]
xor edx, dword [rsi + 0xc]
xor eax, dword [rsi + 0x14]
mov r8d, dword [r12 + 0x18]
xor r8d, dword [rbp + 0x18]
xor r8d, dword [rdi + 0x18]
mov ecx, dword [r12 + 0x1c]
xor r8d, dword [rsi + 0x18]
xor edx, 0xaaaaf0f0
xor r10d, 0xff00f0f0
xor r11d, 0xccccaaaa
xor ecx, dword [rbp + 0x1c]
mov dword [rsp + 0x38], edx
xor eax, 0xff00f0f0
xor r9d, 0xccccaaaa
xor ecx, dword [rdi + 0x1c]
xor ebx, 0xccccff00
xor ecx, dword [rsi + 0x1c]
mov esi, dword [rsp + 0x24]
xor r8d, 0xaaaaf0f0
mov r15d, dword [rsp + 0x20]
mov r13d, dword [rsp + 0x10]
mov r14d, dword [rsp + 0x1c]
xor ecx, 0xccccff00
xor esi, 0xff00aaaa
mov r12d, dword [rsp + 0xc]
mov dword [rsp + 0x34], esi
mov esi, r10d
xor r15d, 0xf0f0cccc
mov edi, dword [rsp + 0x28]
xor r13d, 0xaaaaff00
and esi, r11d
xor r11d, r15d
mov edx, dword [rsp + 0x18]
xor esi, r13d
or r13d, r10d
mov ebp, dword [rsp + 0x14]
xor r14d, 0xaaaaff00
xor r11d, esi
xor r15d, r13d
xor r12d, 0xf0f0cccc
xor r10d, r11d
mov r13d, r15d
xor edi, 0xf0f0cccc
or r13d, r10d
xor edx, 0xff00aaaa
xor r13d, esi
and esi, r15d
xor ebp, 0xf0f0cccc
xor esi, r10d
mov r10d, r9d
and r10d, eax
mov dword [rsp + 0x3c], esi
xor r10d, r12d
or r12d, r9d
xor eax, r14d
xor eax, r10d
xor r14d, r12d
xor r9d, eax
mov r12d, r14d
or r12d, r9d
xor r12d, r10d
and r10d, r14d
xor r10d, r9d
mov r9d, edi
mov dword [rsp + 0x2c], r12d
and r9d, edx
xor edx, ebx
mov dword [rsp + 0x40], r10d
mov r10d, dword [rsp + 0x38]
xor r9d, r8d
or r8d, edi
xor edx, r9d
xor ebx, r8d
xor edi, edx
mov r8d, ebx
or r8d, edi
mov esi, r8d
xor esi, r9d
and r9d, ebx
xor r9d, edi
mov edi, dword [rsp + 0x34]
mov dword [rsp + 0x30], r9d
mov r8d, edi
and r8d, ebp
xor ebp, r10d
xor r8d, ecx
or ecx, edi
xor ecx, r10d
xor ebp, r8d
mov r10d, dword [rsp + 0x2c]
xor edi, ebp
mov r12d, ecx
or r12d, edi
xor r12d, r8d
and r8d, ecx
xor r8d, edi
rol r11d, 0xd
xor ebx, dword [rsp + 0x30]
xor r10d, r11d
xor ecx, r8d
mov edi, r10d
rol eax, 0xd
xor ecx, r12d
lea r10d, [r11*8]
rol ecx, 3
xor ebx, esi
xor r10d, r8d
xor esi, eax
rol ebx, 3
xor esi, ecx
xor edi, ebx
xor r10d, ebx
rol esi, 1
rol edi, 1
not r10d
rol r10d, 7
xor r11d, edi
mov r9d, edi
xor r11d, r10d
shl r9d, 7
rol r11d, 5
xor r9d, r10d
mov dword [rsp + 0x34], r11d
mov r11d, dword [rsp + 0x3c]
xor ebx, r9d
ror ebx, 0xa
mov dword [rsp + 0x38], ebx
lea ebx, [rax*8]
xor eax, esi
mov r8d, eax
mov eax, dword [rsp + 0x40]
xor ebx, r11d
xor ebx, ecx
not ebx
rol ebx, 7
xor r8d, ebx
mov r9d, r8d
mov r8d, esi
shl r8d, 7
xor r8d, ebx
xor ecx, r8d
rol r9d, 5
mov r8d, r12d
rol edx, 0xd
xor r15d, r11d
ror ecx, 0xa
xor r8d, edx
xor r15d, r13d
mov dword [rsp + 0x3c], ecx
rol ebp, 0xd
rol r15d, 3
mov ecx, r8d
xor r14d, eax
xor r14d, dword [rsp + 0x2c]
xor ecx, r15d
lea r11d, [rdx*8]
rol ecx, 1
xor r11d, eax
mov r12d, ecx
xor edx, ecx
xor r11d, r15d
shl r12d, 7
mov r8d, edx
not r11d
rol r14d, 3
rol r11d, 7
xor r12d, r11d
xor r8d, r11d
xor r12d, r15d
mov r15d, ebp
mov ebp, r13d
lea edx, [r15*8]
xor edx, dword [rsp + 0x30]
xor ebp, r15d
rol r8d, 5
xor ebp, r14d
ror r12d, 0xa
rol ebp, 1
mov r13d, edi
mov eax, ebp
xor r15d, ebp
xor edx, r14d
shl eax, 7
not edx
rol edx, 7
xor r15d, edx
xor eax, edx
xor r12d, 0xccccaaaa
xor eax, r14d
mov r14d, dword [rsp + 0x34]
xor ebp, 0xf0f0cccc
xor ebx, 0xaaaaff00
rol r15d, 5
xor ecx, 0xaaaaf0f0
ror eax, 0xa
xor r15d, 0xff00aaaa
xor r9d, 0xccccaaab
xor eax, 0xff00f0f0
mov dword [rsp + 0x30], r15d
mov r15d, dword [rsp + 0x3c]
xor r13d, 0xaaaaff00
xor r11d, 0xf0f0cccc
mov dword [rsp + 0x34], ecx
mov ecx, dword [rsp + 0x38]
xor r14d, 0xff00f0f0
xor r8d, 0xf0f0cccc
mov edi, r14d
xor esi, 0xccccff00
xor edx, 0xaaaaf0f0
and edi, r12d
xor r12d, ebp
xor r10d, 0xccccff00
xor edi, ebx
or ebx, r14d
xor r15d, 0xf0f0cccc
xor r12d, edi
xor ebp, ebx
xor ecx, 0xff00aaaa
xor r14d, r12d
mov ebx, ebp
or ebx, r14d
xor ebx, edi
and edi, ebp
mov dword [rsp + 0x38], ebx
mov ebx, r9d
xor edi, r14d
and ebx, eax
mov dword [rsp + 0x3c], edi
xor ebx, r11d
xor eax, r13d
or r11d, r9d
xor eax, ebx
xor r11d, r13d
xor r9d, eax
mov r13d, r11d
or r13d, r9d
mov r14d, r13d
xor r14d, ebx
and ebx, r11d
xor ebx, r9d
mov r9d, r8d
and r9d, ecx
mov dword [rsp + 0x2c], ebx
xor ecx, esi
mov ebx, r9d
xor ebx, edx
or edx, r8d
xor esi, edx
xor ecx, ebx
xor r8d, ecx
mov r9d, esi
or r9d, r8d
mov edi, r9d
xor edi, ebx
and ebx, esi
mov r13d, ebx
mov ebx, dword [rsp + 0x30]
mov dword [rsp + 0x30], r14d
xor r13d, r8d
mov r8d, dword [rsp + 0x34]
mov dword [rsp + 0x34], r13d
mov edx, ebx
and edx, r15d
xor r15d, r8d
xor edx, r10d
or r10d, ebx
xor r15d, edx
xor r10d, r8d
xor ebx, r15d
mov r8d, r10d
or r8d, ebx
mov r9d, r8d
mov r8d, r14d
xor r9d, edx
and edx, r10d
xor ebx, edx
rol r12d, 0xd
xor esi, r13d
xor r8d, r12d
xor esi, edi
xor r10d, ebx
rol esi, 3
mov r14d, r8d
rol eax, 0xd
lea r8d, [r12*8]
xor r14d, esi
xor edi, eax
xor r8d, ebx
rol r14d, 1
xor r8d, esi
mov edx, r14d
xor r12d, r14d
not r8d
shl edx, 7
rol r8d, 7
xor edx, r8d
mov r13d, r8d
xor r12d, r8d
mov r8d, r10d
xor esi, edx
mov edx, dword [rsp + 0x3c]
rol r12d, 5
xor r8d, r9d
ror esi, 0xa
mov dword [rsp + 0x40], r12d
mov r12d, dword [rsp + 0x38]
rol r8d, 3
mov dword [rsp + 0x44], esi
lea esi, [rax*8]
xor edi, r8d
rol edi, 1
xor esi, edx
xor eax, edi
xor esi, r8d
mov r10d, eax
mov eax, edi
not esi
shl eax, 7
rol esi, 7
mov ebx, eax
xor r10d, esi
xor ebx, esi
xor ebx, r8d
rol r10d, 5
xor ebp, edx
xor r11d, dword [rsp + 0x2c]
rol ecx, 0xd
xor ebp, r12d
xor r11d, dword [rsp + 0x30]
xor r9d, ecx
rol ebp, 3
lea eax, [rcx*8]
xor eax, dword [rsp + 0x2c]
mov r8d, r9d
rol r15d, 0xd
xor r8d, ebp
xor r12d, r15d
rol r8d, 1
ror ebx, 0xa
xor ecx, r8d
xor eax, ebp
not eax
rol eax, 7
xor ecx, eax
mov r9d, ecx
mov ecx, r8d
shl ecx, 7
rol r9d, 5
mov edx, ecx
mov ecx, r11d
xor edx, eax
rol ecx, 3
xor ebp, edx
xor r12d, ecx
lea edx, [r15*8]
xor edx, dword [rsp + 0x34]
rol r12d, 1
xor r15d, r12d
ror ebp, 0xa
mov r11d, r15d
mov r15d, r12d
shl r15d, 7
xor edx, ecx
not edx
rol edx, 7
xor r11d, edx
xor r15d, edx
xor r8d, 0xaaaaf0f0
xor ecx, r15d
mov r15d, dword [rsp + 0x40]
mov dword [rsp + 0x34], r8d
xor ebp, 0xccccaaaa
mov r8d, r13d
xor r12d, 0xf0f0cccc
rol r11d, 5
xor esi, 0xaaaaff00
xor r11d, 0xff00aaaa
ror ecx, 0xa
mov dword [rsp + 0x30], r11d
mov r11d, dword [rsp + 0x44]
xor r10d, 0xccccaaa8
xor ecx, 0xff00f0f0
xor r15d, 0xff00f0f0
xor r14d, 0xaaaaff00
xor eax, 0xf0f0cccc
mov r13d, r15d
xor r9d, 0xf0f0cccc
xor edi, 0xccccff00
and r13d, ebp
xor ebp, r12d
xor ebx, 0xf0f0cccc
xor r13d, esi
or esi, r15d
xor r11d, 0xff00aaaa
xor ebp, r13d
xor r12d, esi
xor edx, 0xaaaaf0f0
xor r15d, ebp
mov esi, r12d
xor r8d, 0xccccff00
or esi, r15d
xor esi, r13d
and r13d, r12d
mov dword [rsp + 0x38], esi
mov esi, r10d
xor r15d, r13d
mov r13d, dword [rsp + 0x34]
and esi, ecx
xor esi, eax
or eax, r10d
xor ecx, r14d
xor ecx, esi
xor r14d, eax
xor r10d, ecx
mov eax, r14d
or eax, r10d
xor eax, esi
and esi, r14d
xor esi, r10d
mov r10d, r9d
mov dword [rsp + 0x2c], eax
and r10d, r11d
xor r11d, edi
mov dword [rsp + 0x3c], esi
mov eax, r10d
xor eax, edx
or edx, r9d
xor edi, edx
xor r11d, eax
xor r9d, r11d
mov r10d, edi
or r10d, r9d
xor r10d, eax
and eax, edi
xor r9d, eax
mov eax, dword [rsp + 0x30]
mov edx, eax
and edx, ebx
xor ebx, r13d
xor edx, r8d
or r8d, eax
xor ebx, edx
xor r8d, r13d
xor eax, ebx
mov esi, eax
mov eax, r8d
or eax, esi
xor eax, edx
and edx, r8d
xor edx, esi
mov esi, dword [rsp + 0x2c]
rol ebp, 0xd
xor edi, r9d
mov r13d, edx
xor edi, r10d
rol ecx, 0xd
lea edx, [rbp*8]
rol edi, 3
xor r8d, r13d
xor edx, r13d
xor r8d, eax
xor r10d, ecx
xor esi, ebp
xor edx, edi
rol r8d, 3
xor esi, edi
not edx
xor r10d, r8d
rol esi, 1
rol edx, 7
xor r12d, r15d
rol r10d, 1
xor ebp, esi
shl esi, 7
xor esi, edx
xor ebp, edx
rol r11d, 0xd
lea edx, [rcx*8]
xor ecx, r10d
shl r10d, 7
xor edx, r15d
mov r15d, dword [rsp + 0x3c]
xor edi, esi
xor edx, r8d
not edx
rol edx, 7
xor r10d, edx
xor ecx, edx
lea edx, [r11*8]
xor r10d, r8d
mov r8d, dword [rsp + 0x38]
xor r12d, r8d
xor eax, r11d
xor edx, r15d
rol r12d, 3
xor r14d, r15d
xor r14d, dword [rsp + 0x2c]
rol ebx, 0xd
xor eax, r12d
xor edx, r12d
rol eax, 1
not edx
xor r8d, ebx
rol edx, 7
xor r11d, eax
shl eax, 7
xor eax, edx
rol r14d, 3
mov esi, r8d
xor r12d, eax
xor esi, r14d
xor r11d, edx
lea eax, [rbx*8]
rol esi, 1
xor eax, r9d
xor ebx, esi
shl esi, 7
ror r10d, 0xa
xor eax, r14d
ror edi, 0xa
xor dword [rsp + 0xc], r10d
not eax
rol eax, 7
mov r10, qword [rsp + 0xa0]
xor esi, eax
xor ebx, eax
mov r9d, dword [rsp + 0xc]
xor dword [rsp + 0x10], edi
mov eax, esi
xor eax, r14d
mov r13d, dword [rsp + 0x10]
ror eax, 0xa
ror r12d, 0xa
xor dword [rsp + 0x14], eax
rol ebx, 5
rol r11d, 5
mov dword [r10 + 0x2c], r9d
mov eax, dword [rsp + 0x14]
rol ecx, 5
xor dword [rsp + 0x18], r12d
rol ebp, 5
mov edx, dword [rsp + 0x18]
mov dword [r10 + 0x28], r13d
xor dword [rsp + 0x1c], ebx
xor dword [rsp + 0x20], r11d
mov dword [r10 + 0x24], eax
mov r14d, dword [rsp + 0x1c]
mov r15d, dword [rsp + 0x20]
xor dword [rsp + 0x24], ecx
mov dword [r10 + 0x20], edx
mov esi, dword [rsp + 0x24]
xor dword [rsp + 0x28], ebp
mov edi, dword [rsp + 0x28]
mov dword [r10 + 0x1c], r14d
mov dword [r10 + 0x18], r15d
mov dword [r10 + 0x14], esi
mov dword [r10 + 0x10], edi
add qword [rsp + 0xa8], 4
mov rax, qword [rsp + 0x48]
cmp rax, qword [rsp + 0xa8]
jne 0x4766e8
mov rax, qword [rsp + 0xa0]
movd xmm1, dword [rsp + 0x20]
pinsrd xmm1, dword [rsp + 0x1c], 1
movd xmm0, dword [rsp + 0x28]
pinsrd xmm0, dword [rsp + 0x24], 1
punpcklqdq xmm0, xmm1
movd xmm1, dword [rsp + 0x10]
pinsrd xmm1, dword [rsp + 0xc], 1
movups xmmword [rax + 0x10], xmm0
movd xmm0, dword [rsp + 0x18]
pinsrd xmm0, dword [rsp + 0x14], 1
punpcklqdq xmm0, xmm1
movups xmmword [rax + 0x20], xmm0
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret