Function at 0x20242960
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov rax, r8
mov r8, rcx
mov ecx, dword [rdx]
mov r11d, ecx
xor r11d, r11d
not r11d
and r11d, dword [r8 + 0x60]
mov r9, qword [r8 + 0x48]
mov qword [rsp], r9
mov ebp, dword [r8 + 0x64]
xor ebp, dword [rdx + 4]
xor r11d, ecx
mov r13d, dword [r8 + 0x68]
xor r13d, dword [rdx + 8]
mov ebx, dword [r8 + 0x6c]
xor ebx, dword [rdx + 0xc]
mov edx, dword [0x20474b60]
mov ecx, edx
xor ecx, 0x23e21119
mov r9d, edx
and r9d, 0x23e21119
lea r9d, [rcx + r9*2]
mov ecx, r11d
not ecx
mov r10d, r11d
xor r10d, r9d
xor r9d, ecx
and r9d, ecx
or r9d, r10d
not r9d
lea r15, [0x20386110]
mov r10d, ebp
shr r10d, 8
mov esi, r10d
xor esi, 0xffffff00
lea ecx, [rdx + 0x2a]
mov edi, r13d
shr edi, cl
and esi, r10d
lea r10, [0x20386510]
add dl, 0x32
mov r14d, ebx
mov ecx, edx
shr r14d, cl
movzx ecx, dil
mov rdi, r15
lea r15, [0x20386910]
mov r12d, dword [rdi + r9*4]
mov edx, dword [r10 + rsi*4]
not r12d
mov r9d, r12d
or r9d, edx
not r9d
and r12d, edx
or r12d, r9d
xor r12d, dword [r15 + rcx*4]
lea rcx, [0x20386d10]
xor r12d, dword [rcx + r14*4]
mov r9, rcx
mov dword [rax], r12d
mov ecx, ebp
not ecx
mov edx, ebp
xor edx, 0xff
and ecx, 0xffffff00
or ecx, edx
not ecx
mov edx, r13d
shr edx, 8
mov esi, edx
not esi
xor edx, 0xff
and esi, 0xffffff00
or esi, edx
not esi
mov ecx, dword [rdi + rcx*4]
mov edx, dword [r10 + rsi*4]
mov esi, edx
not esi
mov r14d, ecx
xor r14d, esi
and esi, ecx
not r14d
and r14d, edx
movzx ecx, byte [0x20474b60]
add cl, 0x2a
mov edx, ebx
shr edx, cl
movzx ecx, dl
or r14d, esi
mov ecx, dword [r15 + rcx*4]
mov edx, ecx
xor edx, edx
not edx
and edx, r14d
mov esi, r11d
shr esi, 0x16
and esi, 0xfffffffc
xor edx, ecx
xor edx, dword [rsi + r9]
mov r10, r9
mov dword [rax + 4], edx
mov r9d, 0x23e21119
mov ecx, dword [0x20474b60]
add ecx, r9d
lea r9, [0x20386510]
and ecx, r13d
mov ecx, dword [rdi + rcx*4]
movzx esi, bh
mov esi, dword [r9 + rsi*4]
not esi
mov r14d, esi
and r14d, ecx
not ecx
xor esi, ecx
and esi, ecx
or esi, r14d
mov ecx, r11d
shr ecx, 0x10
movzx ecx, cl
mov ecx, dword [r15 + rcx*4]
mov r15d, ecx
xor r15d, r15d
not r15d
and r15d, esi
xor r15d, ecx
mov ecx, ebp
shr ecx, 0x18
xor r15d, dword [r10 + rcx*4]
mov r14d, ebx
not r14d
xor ebx, 0xff
and r14d, 0xffffff00
or r14d, ebx
mov dword [rax + 8], r15d
mov ecx, dword [0x20474b60]
mov esi, ecx
xor esi, 0x23e21119
mov ebx, ecx
and ebx, 0x23e21119
lea esi, [rsi + rbx*2]
shr r11d, 8
xor r11d, esi
not r11d
and r11d, esi
not r14d
mov esi, dword [rdi + r14*4]
mov ebx, esi
xor ebx, esi
not ebx
and ebx, dword [r9 + r11*4]
add cl, 0x2a
shr ebp, cl
xor ebx, esi
movzx ecx, bpl
mov rbp, rax
mov rax, r8
shr r13d, 0x18
lea r8, [0x20386910]
xor ebx, dword [r8 + rcx*4]
xor ebx, dword [r10 + r13*4]
movabs rcx, 0xe2d789bb65875f16
mov r8, rcx
not r8
add r8, rcx
lea rcx, [rax + 0x60]
mov qword [rsp + 0x10], rcx
mov dword [rbp + 0xc], ebx
add r8, qword [rsp]
mov qword [rsp + 8], r8
cmp r8, 2
jb 0x20242df3
mov rsi, r10
mov rcx, qword [rsp]
add rcx, 0xfffffffffffffffe
add rax, 0x7c
nop dword [rax + rax]
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rax
mov r8, rbp
mov ebp, r12d
xor ebp, r12d
not ebp
and ebp, dword [rax - 0xc]
xor ebp, r12d
xor edx, dword [rax - 8]
xor r15d, dword [rax - 4]
xor ebx, dword [rax]
mov ecx, dword [0x20474b60]
lea r11d, [rcx + 0x23e21119]
and r11d, ebp
mov r13, rsi
movzx esi, dh
mov r14d, r15d
shr r14d, 0x10
mov r10d, r14d
xor r10d, 0xff00
add cl, 0x32
mov rax, r9
mov r9, rdi
mov edi, ebx
shr edi, cl
and r10d, r14d
mov r12d, dword [rax + rsi*4]
xor r12d, dword [r9 + r11*4]
lea rcx, [0x20386910]
xor r12d, dword [rcx + r10*4]
xor r12d, dword [r13 + rdi*4]
mov dword [r8], r12d
movzx r14d, dl
mov r10d, r15d
shr r10d, 8
mov r11d, r10d
not r11d
xor r10d, 0xff
and r11d, 0xffffff00
movzx ecx, byte [0x20474b60]
add cl, 0x2a
mov esi, ebx
shr esi, cl
or r11d, r10d
not r11d
mov ecx, esi
not ecx
xor esi, 0xff
and ecx, 0xffffff00
or ecx, esi
not ecx
mov r10d, ebp
mov r11d, dword [rax + r11*4]
xor r11d, dword [r9 + r14*4]
shr r10d, 0x18
lea rsi, [0x20386910]
mov ecx, dword [rsi + rcx*4]
not r11d
mov esi, r11d
and esi, ecx
or r11d, ecx
not r11d
or r11d, esi
xor r11d, dword [r13 + r10*4]
mov dword [r8 + 4], r11d
mov ecx, dword [0x20474b60]
mov r10d, ecx
xor r10d, 0x23e21119
mov esi, ecx
and esi, 0x23e21119
lea r14d, [r10 + rsi*2]
mov r10d, r15d
not r10d
mov esi, r15d
xor esi, r14d
not r14d
and r14d, r10d
or r14d, esi
not r14d
mov r10d, ebp
shr r10d, 0x10
mov esi, r10d
not esi
xor r10d, 0xff
and esi, 0xffffff00
or esi, r10d
movzx edi, bh
not esi
add cl, 0x32
mov r10d, dword [rax + rdi*4]
mov rdi, r9
xor r10d, dword [r9 + r14*4]
lea r9, [0x20386910]
mov esi, dword [r9 + rsi*4]
mov r14d, esi
xor r14d, esi
not r14d
and r14d, r10d
mov r10d, edx
shr r10d, cl
xor r14d, esi
xor r14d, dword [r13 + r10*4]
mov dword [r8 + 8], r14d
mov ecx, ebx
not ecx
xor ebx, 0xff
and ecx, 0xffffff00
or ecx, ebx
shr ebp, 8
mov r10d, ebp
not r10d
xor ebp, 0xff
and r10d, 0xffffff00
or r10d, ebp
mov rbp, r8
lea r8, [0x20386910]
shr edx, 0x10
mov esi, dword [0x20474b60]
mov r9d, 0x23e21119
add esi, r9d
mov r9, rax
mov rax, qword [rsp + 0x20]
xor edx, esi
not edx
and edx, esi
mov rsi, r13
not ecx
not r10d
mov r10d, dword [r9 + r10*4]
xor r10d, dword [rdi + rcx*4]
xor r10d, dword [r8 + rdx*4]
shr r15d, 0x18
mov ecx, dword [rsi + r15*4]
mov ebx, ecx
xor ebx, ecx
not ebx
and ebx, r10d
xor ebx, ecx
mov rcx, qword [rsp + 0x18]
mov dword [rbp + 0xc], ebx
add rax, 0x10
mov r15d, r14d
mov edx, r11d
dec rcx
jne 0x20242be0
mov rcx, qword [rsp + 8]
shl rcx, 4
mov r15, qword [rsp + 0x10]
mov ebx, dword [r15 + rcx]
mov edx, dword [r15 + rcx + 4]
xor ebx, dword [rbp]
xor edx, dword [rbp + 4]
mov eax, dword [r15 + rcx + 8]
xor eax, dword [rbp + 8]
mov r9d, dword [r15 + rcx + 0xc]
xor r9d, dword [rbp + 0xc]
movzx ecx, bl
add rcx, qword [0x204a2188]
movzx ecx, byte [rdi + rcx*4 + 1]
mov byte [rbp], cl
mov ecx, edx
shr ecx, 8
mov r10d, dword [0x20474b60]
mov r14d, 0x23e21119
add r10d, r14d
and r10d, ecx
movzx ecx, byte [rdi + r10*4 + 1]
mov byte [rbp + 1], cl
mov ecx, eax
shr ecx, 0x10
mov r10d, ecx
not r10d
mov r11d, ecx
xor r11d, 0xff
xor ecx, 0xffffff00
and ecx, r10d
or ecx, r11d
not ecx
movzx ecx, byte [rdi + rcx*4 + 1]
mov byte [rbp + 2], cl
movzx ecx, byte [0x20474b60]
add cl, 0x32
mov r10d, r9d
shr r10d, cl
movzx ecx, byte [rdi + r10*4 + 1]
mov byte [rbp + 3], cl
mov ecx, edx
not ecx
mov r10d, edx
xor r10d, 0xff
mov r11d, edx
xor r11d, 0xffffff00
and r11d, ecx
or r11d, r10d
not r11d
movzx ecx, byte [rdi + r11*4 + 1]
mov byte [rbp + 4], cl
movzx ecx, byte [0x20474b60]
add cl, 0x22
mov r11d, eax
shr r11d, cl
mov ecx, r9d
mov esi, r9d
movzx r10d, r11b
movzx r10d, byte [rdi + r10*4 + 1]
mov byte [rbp + 5], r10b
shr ecx, 0x10
add r14d, dword [0x20474b60]
mov r10d, ecx
not r10d
xor ecx, r14d
not r14d
and r14d, r10d
or r14d, ecx
not r14d
movzx ecx, byte [rdi + r14*4 + 1]
mov byte [rbp + 6], cl
mov ecx, dword [0x20474b60]
mov r10d, ecx
xor r10d, 0x32
and ecx, 0x32
lea ecx, [r10 + rcx*2]
mov r11d, ebx
mov r10d, ebx
shr r10d, cl
movzx r9d, r9b
movzx ecx, bh
movzx r10d, byte [rdi + r10*4 + 1]
mov byte [rbp + 7], r10b
mov r10d, eax
not r10d
mov r14, rdi
movzx edi, r10b
mov ebx, eax
and ebx, 0xffffff00
or ebx, edi
and r10d, 0xffffff00
or r10d, ebx
not r10d
movzx r10d, byte [r14 + r10*4 + 1]
mov byte [rbp + 8], r10b
shr esi, 8
mov r10d, dword [0x20474b60]
mov edi, 0xdc1deee6
sub edi, r10d
add r10d, 0x23e21119
xor edi, esi
mov ebx, esi
xor ebx, r10d
and r10d, esi
not edi
or r10d, edi
not r10d
or r10d, ebx
not r10d
movzx r10d, byte [r14 + r10*4 + 1]
mov byte [rbp + 9], r10b
shr r11d, 0x10
movzx r10d, r11b
movzx r10d, byte [r14 + r10*4 + 1]
mov byte [rbp + 0xa], r10b
mov r10d, edx
shr r10d, 0x18
movzx r10d, byte [r14 + r10*4 + 1]
mov byte [rbp + 0xb], r10b
movzx r9d, byte [r14 + r9*4 + 1]
mov byte [rbp + 0xc], r9b
movzx ecx, byte [r14 + rcx*4 + 1]
mov byte [rbp + 0xd], cl
shr edx, 0x10
mov ecx, dword [0x20474b60]
mov r9d, ecx
xor r9d, 0x23e21119
and ecx, 0x23e21119
lea ecx, [r9 + rcx*2]
mov r9d, edx
not r9d
xor edx, ecx
not ecx
and ecx, r9d
or ecx, edx
not ecx
movzx ecx, byte [r14 + rcx*4 + 1]
mov byte [rbp + 0xe], cl
movzx ecx, byte [0x20474b60]
add cl, 0x32
shr eax, cl
movzx eax, byte [r14 + rax*4 + 1]
mov byte [rbp + 0xf], al
mov r9, qword [rsp]
shl r9, 4
mov eax, dword [r15 + r9]
xor dword [rbp], eax
mov eax, dword [rbp + 4]
mov ecx, dword [r15 + r9 + 4]
not ecx
mov edx, ecx
and edx, eax
or ecx, eax
not ecx
or ecx, edx
mov dword [rbp + 4], ecx
mov eax, dword [r15 + r9 + 8]
xor dword [rbp + 8], eax
mov eax, dword [r15 + r9 + 0xc]
xor dword [rbp + 0xc], eax
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret