Function at 0x18002a4e0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
push r14
push r15
test rdx, rdx
je 0x18002a504
mov rax, qword [rdx]
jmp 0x18002a506
xor eax, eax
mov r10, rax
mov r9d, eax
mov r12d, 4
shr r10, 0x20
shr r9d, 0x10
mov edx, r10d
mov r8d, r10d
and edx, 0xffff0000
shl r8d, 0x10
or r9d, edx
movzx edx, ax
or r8d, edx
mov edx, dword [rcx + 0x20]
xor edx, eax
mov dword [rcx + 0x64], edx
mov edx, dword [rcx + 0x24]
xor edx, r9d
mov dword [rcx + 0x68], edx
mov edx, dword [rcx + 0x28]
xor edx, r10d
mov dword [rcx + 0x6c], edx
mov edx, dword [rcx + 0x2c]
xor edx, r8d
mov dword [rcx + 0x70], edx
mov edx, dword [rcx + 0x30]
xor edx, eax
mov eax, dword [rcx + 0x34]
mov dword [rcx + 0x74], edx
xor eax, r9d
mov dword [rcx + 0x78], eax
mov eax, dword [rcx + 0x38]
xor eax, r10d
mov dword [rcx + 0x7c], eax
mov eax, dword [rcx + 0x3c]
xor eax, r8d
mov dword [rcx + 0x80], eax
mov eax, dword [rcx]
mov dword [rcx + 0x44], eax
mov eax, dword [rcx + 4]
mov dword [rcx + 0x48], eax
mov eax, dword [rcx + 8]
mov dword [rcx + 0x4c], eax
mov eax, dword [rcx + 0xc]
mov dword [rcx + 0x50], eax
mov eax, dword [rcx + 0x10]
mov dword [rcx + 0x54], eax
mov eax, dword [rcx + 0x14]
mov dword [rcx + 0x58], eax
mov eax, dword [rcx + 0x18]
mov dword [rcx + 0x5c], eax
mov eax, dword [rcx + 0x1c]
mov dword [rcx + 0x60], eax
mov eax, dword [rcx + 0x40]
mov dword [rcx + 0x84], eax
nop dword [rax]
nop dword [rax + rax]
mov r8d, dword [rcx + 0x64]
mov r9d, dword [rcx + 0x68]
mov ebp, dword [rcx + 0x80]
mov r10d, dword [rcx + 0x6c]
mov r11d, dword [rcx + 0x70]
mov ebx, dword [rcx + 0x74]
mov edi, dword [rcx + 0x78]
mov esi, dword [rcx + 0x7c]
xor eax, eax
lea edx, [r8 + 0x4d34d34d]
add edx, dword [rcx + 0x84]
mov dword [rcx + 0x64], edx
cmp edx, r8d
setb al
sub eax, 0x2cb2cb2d
add dword [rcx + 0x68], eax
cmp dword [rcx + 0x68], r9d
adc dword [rcx + 0x6c], 0x34d34d34
cmp dword [rcx + 0x6c], r10d
adc dword [rcx + 0x70], 0x4d34d34d
xor eax, eax
cmp dword [rcx + 0x70], r11d
setb al
sub eax, 0x2cb2cb2d
add dword [rcx + 0x74], eax
cmp dword [rcx + 0x74], ebx
adc dword [rcx + 0x78], 0x34d34d34
cmp dword [rcx + 0x78], edi
adc dword [rcx + 0x7c], 0x4d34d34d
xor eax, eax
cmp dword [rcx + 0x7c], esi
setb al
sub eax, 0x2cb2cb2d
add dword [rcx + 0x80], eax
xor eax, eax
cmp dword [rcx + 0x80], ebp
setb al
mov dword [rcx + 0x84], eax
mov r9d, dword [rcx + 0x64]
add r9d, dword [rcx + 0x44]
movzx edx, r9w
mov r8d, r9d
shr r8d, 0x10
mov r15d, edx
mov eax, r8d
imul r9d, r9d
imul r15d, edx
shr r15d, 0x11
imul eax, edx
imul r8d, r8d
add r15d, eax
shr r15d, 0xf
add r15d, r8d
xor r15d, r9d
mov r9d, dword [rcx + 0x48]
add r9d, dword [rcx + 0x68]
movzx edx, r9w
mov r8d, r9d
shr r8d, 0x10
mov ebp, edx
mov eax, r8d
imul r9d, r9d
imul ebp, edx
shr ebp, 0x11
imul eax, edx
imul r8d, r8d
add ebp, eax
shr ebp, 0xf
add ebp, r8d
xor ebp, r9d
mov r9d, dword [rcx + 0x4c]
add r9d, dword [rcx + 0x6c]
movzx edx, r9w
mov r8d, r9d
shr r8d, 0x10
mov r14d, edx
mov eax, r8d
imul r14d, edx
shr r14d, 0x11
imul eax, edx
add r14d, eax
imul r8d, r8d
imul r9d, r9d
shr r14d, 0xf
add r14d, r8d
xor r14d, r9d
mov r9d, dword [rcx + 0x70]
add r9d, dword [rcx + 0x50]
movzx edx, r9w
mov r8d, r9d
shr r8d, 0x10
mov esi, edx
mov eax, r8d
imul r9d, r9d
imul esi, edx
shr esi, 0x11
imul eax, edx
imul r8d, r8d
add esi, eax
shr esi, 0xf
add esi, r8d
xor esi, r9d
mov r9d, dword [rcx + 0x74]
add r9d, dword [rcx + 0x54]
movzx edx, r9w
mov r8d, r9d
shr r8d, 0x10
mov edi, edx
mov eax, r8d
imul r9d, r9d
imul edi, edx
shr edi, 0x11
imul eax, edx
imul r8d, r8d
add edi, eax
shr edi, 0xf
add edi, r8d
xor edi, r9d
mov r9d, dword [rcx + 0x58]
add r9d, dword [rcx + 0x78]
movzx edx, r9w
mov r8d, r9d
shr r8d, 0x10
mov ebx, edx
mov eax, r8d
imul r9d, r9d
imul ebx, edx
shr ebx, 0x11
imul eax, edx
imul r8d, r8d
add ebx, eax
shr ebx, 0xf
add ebx, r8d
xor ebx, r9d
mov r9d, dword [rcx + 0x7c]
add r9d, dword [rcx + 0x5c]
movzx edx, r9w
mov r8d, r9d
shr r8d, 0x10
mov r11d, edx
mov eax, r8d
imul r9d, r9d
imul r11d, edx
shr r11d, 0x11
imul eax, edx
imul r8d, r8d
add r11d, eax
shr r11d, 0xf
add r11d, r8d
xor r11d, r9d
mov r9d, dword [rcx + 0x60]
add r9d, dword [rcx + 0x80]
movzx edx, r9w
mov r8d, r9d
shr r8d, 0x10
mov r10d, edx
mov eax, r8d
imul r10d, edx
shr r10d, 0x11
imul eax, edx
add r10d, eax
shr r10d, 0xf
mov eax, r11d
imul r8d, r8d
imul r9d, r9d
rol eax, 0x10
add eax, r15d
add r10d, r8d
xor r10d, r9d
mov edx, r10d
rol edx, 0x10
add edx, eax
mov eax, r15d
rol r15d, 0x10
mov dword [rcx + 0x44], edx
rol eax, 8
add eax, ebp
add eax, r10d
mov dword [rcx + 0x48], eax
mov eax, ebp
rol eax, 0x10
add eax, r14d
add r15d, eax
mov eax, r14d
mov dword [rcx + 0x4c], r15d
rol eax, 8
add eax, esi
add eax, ebp
rol r14d, 0x10
mov dword [rcx + 0x50], eax
mov eax, esi
rol eax, 0x10
add eax, edi
add r14d, eax
mov eax, edi
mov dword [rcx + 0x54], r14d
rol eax, 8
add eax, ebx
add eax, esi
rol edi, 0x10
mov dword [rcx + 0x58], eax
mov eax, ebx
rol eax, 0x10
add eax, r11d
add edi, eax
rol r11d, 8
add r11d, ebx
mov dword [rcx + 0x5c], edi
add r11d, r10d
mov dword [rcx + 0x60], r11d
dec r12
jne 0x18002a5c0
mov rbx, qword [rsp + 0x20]
mov rbp, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
pop r15
pop r14
pop r12
ret