Function at 0x476580
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
add qword [rcx + 0x30], rax
mov eax, dword [rcx + 0x10]
mov qword [rsp + 0xa8], rdx
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 0x476ea4
lea rax, [rdx + r8*4]
mov qword [rsp + 0x48], rax
nop dword [rax]
mov rax, qword [rsp + 0xa8]
mov r14, qword [rsp + 0xa8]
lea rdi, [0x0061a4e0]
lea rbx, [0x006184e0]
lea r15, [0x006164e0]
movzx r12d, byte [rax]
movzx ebp, byte [rax + 1]
movzx r13d, byte [r14 + 3]
movzx esi, byte [rax + 2]
lea r14, [0x006144e0]
mov rcx, r12
mov rdx, rbp
shl r12, 5
shl rbp, 5
mov rax, rsi
mov r8, r13
shl rsi, 5
shl r13, 5
add r12, rdi
add rbp, rbx
add rsi, r15
shl r8, 5
add r13, r14
shl rcx, 5
shl rdx, 5
shl rax, 5
mov r10d, dword [r14 + r8]
mov r9d, dword [r13 + 4]
xor r10d, dword [rdi + rcx]
xor r9d, dword [r12 + 4]
xor r10d, dword [rbx + rdx]
xor r9d, dword [rbp + 4]
xor r10d, dword [r15 + rax]
xor r9d, dword [rsi + 4]
mov ebx, dword [r13 + 8]
mov edx, dword [r13 + 0xc]
xor ebx, dword [r12 + 8]
xor edx, dword [r12 + 0xc]
xor ebx, dword [rbp + 8]
xor edx, dword [rbp + 0xc]
xor ebx, dword [rsi + 8]
xor edx, dword [rsi + 0xc]
mov r11d, dword [r13 + 0x10]
mov eax, dword [r13 + 0x14]
xor r11d, dword [r12 + 0x10]
xor eax, dword [r12 + 0x14]
xor r11d, dword [rbp + 0x10]
xor eax, dword [rbp + 0x14]
xor r11d, dword [rsi + 0x10]
xor eax, dword [rsi + 0x14]
mov r8d, dword [r13 + 0x18]
xor r8d, dword [r12 + 0x18]
xor r8d, dword [rbp + 0x18]
mov ecx, dword [r13 + 0x1c]
xor r8d, dword [rsi + 0x18]
xor ecx, dword [r12 + 0x1c]
xor r10d, 0xff00f0f0
xor r11d, 0xccccaaaa
xor ecx, dword [rbp + 0x1c]
xor ecx, dword [rsi + 0x1c]
xor r9d, 0xccccaaaa
xor edx, 0xaaaaf0f0
mov esi, dword [rsp + 0x14]
mov r15d, dword [rsp + 0x20]
mov dword [rsp + 0x30], edx
xor eax, 0xff00f0f0
mov r13d, dword [rsp + 0x10]
mov r14d, dword [rsp + 0x1c]
xor ebx, 0xccccff00
xor r8d, 0xaaaaf0f0
xor esi, 0xf0f0cccc
xor r15d, 0xf0f0cccc
mov ebp, dword [rsp + 0x28]
mov edi, dword [rsp + 0x24]
mov dword [rsp + 0x34], esi
mov esi, r10d
xor r13d, 0xaaaaff00
mov r12d, dword [rsp + 0xc]
and esi, r11d
xor r11d, r15d
mov edx, dword [rsp + 0x18]
xor r14d, 0xaaaaff00
xor esi, r13d
or r13d, r10d
xor r12d, 0xf0f0cccc
xor ebp, 0xf0f0cccc
xor r11d, esi
xor r15d, r13d
xor edi, 0xff00aaaa
xor edx, 0xff00aaaa
xor r10d, r11d
mov r13d, r15d
xor ecx, 0xccccff00
or r13d, r10d
xor r13d, esi
and esi, r15d
xor esi, r10d
mov r10d, r9d
mov dword [rsp + 0x38], r13d
and r10d, eax
mov r13d, esi
xor r10d, r12d
xor eax, r14d
or r12d, r9d
xor r12d, r14d
xor eax, r10d
mov r14d, dword [rsp + 0x34]
xor r9d, eax
mov esi, r12d
or esi, r9d
xor esi, r10d
and r10d, r12d
xor r10d, r9d
mov r9d, ebp
mov dword [rsp + 0x2c], esi
and r9d, edx
xor edx, ebx
mov dword [rsp + 0x3c], r10d
xor r9d, r8d
or r8d, ebp
xor ebx, r8d
xor edx, r9d
mov r8d, dword [rsp + 0x30]
xor ebp, edx
mov r10d, ebx
or r10d, ebp
mov esi, r10d
mov r10d, r14d
xor esi, r9d
and r9d, ebx
xor r10d, r8d
xor r9d, ebp
mov ebp, r9d
mov r9d, r14d
and r9d, edi
mov dword [rsp + 0x30], ebp
xor r9d, ecx
or ecx, edi
xor r10d, r9d
xor ecx, r8d
xor edi, r10d
mov r8d, ecx
or r8d, edi
xor r8d, r9d
and r9d, ecx
xor edi, r9d
mov r9d, dword [rsp + 0x2c]
rol r11d, 0xd
xor ebx, ebp
rol eax, 0xd
xor ebx, esi
lea r14d, [r11*8]
xor ecx, edi
xor r9d, r11d
xor esi, eax
rol ebx, 3
xor r14d, edi
xor ecx, r8d
mov ebp, r9d
mov edi, esi
xor r14d, ebx
lea esi, [rax*8]
rol ecx, 3
xor ebp, ebx
not r14d
rol ebp, 1
xor esi, r13d
xor edi, ecx
rol r14d, 7
xor esi, ecx
rol edi, 1
mov r9d, ebp
xor r11d, ebp
not esi
xor eax, edi
shl r9d, 7
xor r11d, r14d
rol esi, 7
xor r9d, r14d
rol r11d, 5
xor eax, esi
xor ebx, r9d
mov dword [rsp + 0x34], r11d
mov r9d, eax
mov eax, edi
ror ebx, 0xa
shl eax, 7
mov dword [rsp + 0x40], ebx
xor eax, esi
xor ecx, eax
mov eax, dword [rsp + 0x38]
rol r9d, 5
xor r15d, r13d
rol edx, 0xd
ror ecx, 0xa
xor r8d, edx
xor r15d, eax
mov dword [rsp + 0x44], ecx
mov ecx, dword [rsp + 0x3c]
rol r15d, 3
mov r11d, r8d
rol r10d, 0xd
lea ebx, [rdx*8]
xor r11d, r15d
xor r12d, ecx
xor r12d, dword [rsp + 0x2c]
xor eax, r10d
rol r11d, 1
xor ebx, ecx
rol r12d, 3
mov ecx, r12d
xor edx, r11d
xor ebx, r15d
mov r12d, eax
xor r12d, ecx
mov r8d, edx
mov r13d, r11d
not ebx
lea edx, [r10*8]
rol ebx, 7
xor edx, dword [rsp + 0x30]
rol r12d, 1
xor edx, ecx
shl r13d, 7
mov eax, r12d
xor r8d, ebx
xor r13d, ebx
not edx
xor r10d, r12d
shl eax, 7
rol edx, 7
xor r13d, r15d
rol r8d, 5
xor r10d, edx
ror r13d, 0xa
xor eax, edx
xor r11d, 0xaaaaf0f0
xor eax, ecx
mov ecx, dword [rsp + 0x34]
mov dword [rsp + 0x2c], r11d
xor r13d, 0xccccaaaa
xor r12d, 0xf0f0cccc
xor esi, 0xaaaaff00
xor r9d, 0xccccaaab
ror eax, 0xa
xor ecx, 0xff00f0f0
xor eax, 0xff00f0f0
xor ebp, 0xaaaaff00
rol r10d, 5
mov r15d, ecx
mov ecx, dword [rsp + 0x40]
mov r11d, dword [rsp + 0x44]
xor ebx, 0xf0f0cccc
xor r8d, 0xf0f0cccc
xor r10d, 0xff00aaaa
xor edi, 0xccccff00
xor edx, 0xaaaaf0f0
xor r11d, 0xf0f0cccc
xor ecx, 0xff00aaaa
mov dword [rsp + 0x30], r11d
mov r11d, r14d
mov r14d, r15d
and r14d, r13d
xor r13d, r12d
xor r11d, 0xccccff00
xor r14d, esi
or esi, r15d
xor r13d, r14d
xor r12d, esi
xor r15d, r13d
mov esi, r12d
or esi, r15d
xor esi, r14d
and r14d, r12d
mov dword [rsp + 0x34], esi
mov esi, r14d
xor esi, r15d
mov r15d, r8d
mov dword [rsp + 0x38], esi
mov esi, r9d
and esi, eax
xor esi, ebx
xor eax, ebp
or ebx, r9d
and r15d, ecx
xor eax, esi
xor ebx, ebp
xor ecx, edi
xor r9d, eax
mov ebp, ebx
or ebp, r9d
xor ebp, esi
and esi, ebx
xor esi, r9d
mov dword [rsp + 0x3c], esi
mov esi, r15d
xor esi, edx
or edx, r8d
xor edi, edx
xor ecx, esi
mov edx, dword [rsp + 0x30]
xor r8d, ecx
mov r9d, edi
or r9d, r8d
xor r9d, esi
and esi, edi
mov r15d, esi
mov esi, edx
xor r15d, r8d
mov r8d, dword [rsp + 0x2c]
and esi, r10d
mov dword [rsp + 0x2c], ebp
xor esi, r11d
mov r14d, r15d
or r11d, r10d
xor edx, r8d
xor r11d, r8d
mov dword [rsp + 0x30], r14d
mov r15d, edx
mov r8d, r11d
xor r15d, esi
xor r10d, r15d
or r8d, r10d
mov edx, r8d
mov r8d, ebp
xor edx, esi
and esi, r11d
xor esi, r10d
rol r13d, 0xd
xor edi, r14d
xor r8d, r13d
xor edi, r9d
rol eax, 0xd
xor r11d, esi
mov r14d, r8d
rol edi, 3
xor r9d, eax
xor r11d, edx
lea r8d, [r13*8]
xor r14d, edi
rol r11d, 3
xor r8d, esi
rol r14d, 1
lea esi, [rax*8]
xor r8d, edi
xor r13d, r14d
not r8d
rol r8d, 7
mov ebp, r8d
xor r13d, r8d
mov r8d, r14d
shl r8d, 7
mov r10d, r13d
mov r13d, dword [rsp + 0x34]
xor r8d, ebp
rol r10d, 5
xor edi, r8d
mov dword [rsp + 0x40], r10d
ror edi, 0xa
mov dword [rsp + 0x44], edi
mov edi, r9d
mov r9d, dword [rsp + 0x38]
xor edi, r11d
xor esi, r9d
rol edi, 1
xor esi, r11d
xor eax, edi
not esi
rol esi, 7
xor eax, esi
mov r10d, eax
mov eax, edi
shl eax, 7
xor eax, esi
xor r11d, eax
rol r10d, 5
mov eax, edx
xor r12d, r9d
rol ecx, 0xd
ror r11d, 0xa
xor r12d, r13d
mov dword [rsp + 0x38], r11d
xor eax, ecx
mov r11d, dword [rsp + 0x3c]
rol r12d, 3
mov r8d, eax
lea eax, [rcx*8]
rol r15d, 0xd
xor eax, r11d
xor r8d, r12d
xor ebx, r11d
xor ebx, dword [rsp + 0x2c]
rol r8d, 1
xor eax, r12d
rol ebx, 3
xor r13d, r15d
not eax
xor ecx, r8d
xor r13d, ebx
rol eax, 7
rol r13d, 1
xor ecx, eax
mov r9d, ecx
mov ecx, r8d
shl ecx, 7
rol r9d, 5
mov edx, ecx
mov ecx, r15d
xor edx, eax
xor ecx, r13d
xor r12d, edx
lea edx, [r15*8]
xor edx, dword [rsp + 0x30]
mov r11d, ecx
xor edx, ebx
mov ecx, r13d
ror r12d, 0xa
not edx
shl ecx, 7
rol edx, 7
xor r11d, edx
xor ecx, edx
xor esi, 0xaaaaff00
xor eax, 0xf0f0cccc
xor ecx, ebx
mov ebx, dword [rsp + 0x40]
xor r8d, 0xaaaaf0f0
xor r12d, 0xccccaaaa
mov dword [rsp + 0x30], r8d
mov r8d, dword [rsp + 0x38]
ror ecx, 0xa
rol r11d, 5
xor ebx, 0xff00f0f0
xor r13d, 0xf0f0cccc
xor r10d, 0xccccaaa8
xor ecx, 0xff00f0f0
mov r15d, ebx
xor r8d, 0xf0f0cccc
mov ebx, dword [rsp + 0x44]
xor r14d, 0xaaaaff00
mov dword [rsp + 0x34], r8d
mov r8d, ebp
mov ebp, r15d
xor r9d, 0xf0f0cccc
and ebp, r12d
xor r12d, r13d
xor r11d, 0xff00aaaa
xor edi, 0xccccff00
xor ebp, esi
or esi, r15d
xor ebx, 0xff00aaaa
xor edx, 0xaaaaf0f0
xor r12d, ebp
xor r13d, esi
xor r8d, 0xccccff00
xor r15d, r12d
mov esi, r13d
or esi, r15d
xor esi, ebp
and ebp, r13d
mov dword [rsp + 0x38], esi
mov esi, r10d
xor r15d, ebp
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
mov ebp, esi
mov dword [rsp + 0x2c], eax
mov esi, dword [rsp + 0x30]
xor ebp, r10d
mov r10d, r9d
and r10d, ebx
xor ebx, edi
mov dword [rsp + 0x3c], ebp
mov eax, r10d
xor eax, edx
or edx, r9d
xor edi, edx
xor ebx, eax
xor r9d, ebx
mov r10d, edi
or r10d, r9d
xor r10d, eax
and eax, edi
xor r9d, eax
mov eax, dword [rsp + 0x34]
mov edx, eax
xor eax, esi
and edx, r11d
mov ebp, eax
xor edx, r8d
or r8d, r11d
xor r8d, esi
xor ebp, edx
mov esi, dword [rsp + 0x2c]
xor r11d, ebp
mov eax, r8d
or eax, r11d
xor eax, edx
and edx, r8d
xor r11d, edx
rol r12d, 0xd
xor edi, r9d
xor r13d, r15d
xor edi, r10d
xor esi, r12d
rol ecx, 0xd
xor r8d, r11d
rol edi, 3
xor r8d, eax
xor r10d, ecx
rol ebx, 0xd
lea edx, [r12*8]
xor esi, edi
rol r8d, 3
xor edx, r11d
rol esi, 1
xor r10d, r8d
mov r11d, dword [rsp + 0x3c]
xor edx, edi
xor r12d, esi
shl esi, 7
not edx
rol r10d, 1
rol edx, 7
xor esi, edx
xor r12d, edx
lea edx, [rcx*8]
xor ecx, r10d
xor edx, r15d
shl r10d, 7
xor edi, esi
xor edx, r8d
not edx
rol edx, 7
xor r10d, edx
xor ecx, edx
lea edx, [rbx*8]
xor r10d, r8d
mov r8d, dword [rsp + 0x38]
xor r13d, r8d
xor eax, ebx
xor edx, r11d
rol ebp, 0xd
rol r13d, 3
xor r14d, r11d
xor r8d, ebp
xor r14d, dword [rsp + 0x2c]
xor eax, r13d
xor edx, r13d
rol r14d, 3
mov esi, r8d
rol eax, 1
not edx
xor esi, r14d
ror r10d, 0xa
rol edx, 7
xor ebx, eax
shl eax, 7
xor dword [rsp + 0xc], r10d
xor eax, edx
rol esi, 1
mov r10, qword [rsp + 0xa0]
xor ebx, edx
xor r13d, eax
lea eax, [rbp*8]
xor ebp, esi
shl esi, 7
xor eax, r9d
ror edi, 0xa
xor dword [rsp + 0x10], edi
mov r11d, dword [rsp + 0xc]
xor eax, r14d
mov r9d, dword [rsp + 0x10]
not eax
mov dword [r10 + 0x2c], r11d
rol eax, 7
mov dword [r10 + 0x28], r9d
xor esi, eax
xor ebp, eax
mov eax, esi
xor eax, r14d
ror eax, 0xa
xor dword [rsp + 0x14], eax
mov r14d, dword [rsp + 0x14]
rol ebp, 5
ror r13d, 0xa
xor dword [rsp + 0x1c], ebp
rol ebx, 5
rol ecx, 5
xor dword [rsp + 0x18], r13d
rol r12d, 5
mov edx, dword [rsp + 0x18]
xor dword [rsp + 0x20], ebx
mov r15d, dword [rsp + 0x20]
xor dword [rsp + 0x24], ecx
mov edi, dword [rsp + 0x24]
xor dword [rsp + 0x28], r12d
mov ebp, dword [rsp + 0x28]
mov dword [r10 + 0x24], r14d
mov r14d, dword [rsp + 0x1c]
mov dword [r10 + 0x20], edx
mov dword [r10 + 0x1c], r14d
mov dword [r10 + 0x18], r15d
mov dword [r10 + 0x14], edi
mov dword [r10 + 0x10], ebp
add qword [rsp + 0xa8], 4
mov rax, qword [rsp + 0x48]
cmp rax, qword [rsp + 0xa8]
jne 0x4765f8
movd xmm1, dword [rsp + 0x20]
movd xmm2, dword [rsp + 0x1c]
movd xmm0, dword [rsp + 0x28]
movd xmm3, dword [rsp + 0x24]
punpckldq xmm1, xmm2
mov rax, qword [rsp + 0xa0]
movd xmm4, dword [rsp + 0xc]
punpckldq xmm0, xmm3
movd xmm5, dword [rsp + 0x14]
punpcklqdq xmm0, xmm1
movd xmm1, dword [rsp + 0x10]
movups xmmword [rax + 0x10], xmm0
movd xmm0, dword [rsp + 0x18]
punpckldq xmm1, xmm4
punpckldq xmm0, xmm5
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