Function at 0x504ad0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x168
mov eax, dword [rcx]
mov rbp, rcx
mov dword [rsp], eax
mov eax, dword [rcx + 4]
mov dword [rsp + 4], eax
mov eax, dword [rcx + 8]
mov dword [rsp + 8], eax
mov eax, dword [rcx + 0xc]
mov dword [rsp + 0xc], eax
mov eax, dword [rcx + 0x10]
mov dword [rsp + 0x10], eax
mov eax, dword [rcx + 0x14]
mov dword [rsp + 0x14], eax
mov eax, dword [rcx + 0x18]
mov dword [rsp + 0x18], eax
mov eax, dword [rcx + 0x1c]
lea rcx, [rsp + 0x20]
lea r9, [rcx + 0x40]
mov dword [rsp + 0x1c], eax
mov rax, rcx
nop dword [rax + rax]
movzx r8d, byte [rdx]
add rdx, 4
add rax, 4
mov byte [rax - 1], r8b
movzx r8d, byte [rdx - 3]
mov byte [rax - 2], r8b
movzx r8d, byte [rdx - 2]
mov byte [rax - 3], r8b
movzx r8d, byte [rdx - 1]
mov byte [rax - 4], r8b
cmp rax, r9
jne 0x504b30
lea rdi, [rsp + 0x60]
xor eax, eax
nop word [rax + rax]
mov edx, dword [rcx + rax]
add rax, 4
mov dword [rax + rdi - 4], edx
cmp rax, 0x40
jne 0x504b70
lea rax, [rdi + 0x38]
lea r11, [rdi + 0xf8]
nop dword [rax]
mov r9d, dword [rax]
mov r8d, dword [rax - 0x38]
add rax, 4
add r8d, dword [rax - 0x18]
mov ecx, dword [rax - 0x38]
mov edx, r9d
mov r10d, r9d
shr r9d, 0xa
ror edx, 0x13
ror r10d, 0x11
xor edx, r10d
xor edx, r9d
mov r9d, ecx
add r8d, edx
mov edx, ecx
ror r9d, 7
ror edx, 0x12
shr ecx, 3
xor edx, r9d
xor edx, ecx
add edx, r8d
mov dword [rax + 4], edx
cmp rax, r11
jne 0x504b90
lea rax, [0x00775d40]
mov esi, dword [rsp + 0x1c]
mov ebx, dword [rsp + 0x18]
mov r11d, dword [rsp + 0x14]
mov r10d, dword [rsp + 0x10]
lea r12, [0x00775e40]
mov edx, dword [rsp + 0xc]
mov ecx, dword [rsp + 8]
mov r13, rbp
mov r8d, dword [rsp + 4]
mov r9d, dword [rsp]
mov rbp, rdi
mov rdi, rax
mov eax, r10d
mov r15d, r10d
mov r14d, dword [rbp]
ror r15d, 6
add r14d, dword [rdi]
ror eax, 0xb
xor eax, r15d
mov r15d, r10d
ror r15d, 0x19
xor eax, r15d
mov r15d, r9d
add r14d, eax
mov eax, ebx
ror r15d, 2
xor eax, r11d
and eax, r10d
xor eax, ebx
add ebx, dword [rdi + 4]
add eax, r14d
mov r14d, r8d
add ebx, dword [rbp + 4]
add esi, eax
or r14d, r9d
mov eax, r8d
and eax, r9d
and r14d, ecx
add edx, esi
or r14d, eax
mov eax, r9d
ror eax, 0xd
xor eax, r15d
mov r15d, r9d
ror r15d, 0x16
xor eax, r15d
add eax, r14d
mov r14d, edx
add esi, eax
mov eax, r11d
ror r14d, 6
xor eax, r10d
mov r15d, esi
and eax, edx
xor eax, r11d
add ebx, eax
mov eax, edx
ror eax, 0xb
xor eax, r14d
mov r14d, edx
ror r14d, 0x19
ror r15d, 2
add r11d, dword [rdi + 8]
xor eax, r14d
mov r14d, esi
add r11d, dword [rbp + 8]
add ebx, eax
or r14d, r9d
mov eax, esi
and eax, r9d
and r14d, r8d
add ecx, ebx
or r14d, eax
mov eax, esi
ror eax, 0xd
xor eax, r15d
mov r15d, esi
ror r15d, 0x16
xor eax, r15d
add eax, r14d
mov r14d, ecx
add ebx, eax
mov eax, edx
ror r14d, 6
xor eax, r10d
mov r15d, ebx
and eax, ecx
xor eax, r10d
add r11d, eax
mov eax, ecx
ror eax, 0xb
xor eax, r14d
mov r14d, ecx
ror r14d, 0x19
xor eax, r14d
mov r14d, ebx
add r11d, eax
or r14d, esi
mov eax, ebx
and eax, esi
and r14d, r9d
add r8d, r11d
or r14d, eax
mov eax, ebx
ror eax, 0xd
ror r15d, 2
add r10d, dword [rdi + 0xc]
xor eax, r15d
mov r15d, ebx
add r10d, dword [rbp + 0xc]
ror r15d, 0x16
xor eax, r15d
add eax, r14d
mov r14d, ecx
xor r14d, edx
add r11d, eax
mov eax, r8d
and r14d, r8d
ror eax, 6
mov r15d, r11d
xor r14d, edx
or r15d, ebx
add edx, dword [rbp + 0x10]
add r10d, r14d
mov r14d, r8d
and r15d, esi
ror r14d, 0xb
add edx, dword [rdi + 0x10]
xor r14d, eax
mov eax, r8d
ror eax, 0x19
xor r14d, eax
mov eax, r11d
and eax, ebx
add r10d, r14d
mov r14d, r11d
or r15d, eax
mov eax, r11d
ror r14d, 0xd
ror eax, 2
add r9d, r10d
xor r14d, eax
mov eax, r11d
ror eax, 0x16
xor r14d, eax
lea eax, [r15 + r14]
mov r14d, r9d
add eax, r10d
mov r10d, r8d
xor r10d, ecx
mov r15d, eax
and r10d, r9d
xor r10d, ecx
ror r14d, 6
ror r15d, 2
add edx, r10d
mov r10d, r9d
add ecx, dword [rbp + 0x14]
ror r10d, 0xb
add ecx, dword [rdi + 0x14]
xor r10d, r14d
mov r14d, r9d
ror r14d, 0x19
xor r10d, r14d
mov r14d, eax
add edx, r10d
or r14d, r11d
mov r10d, eax
and r10d, r11d
and r14d, ebx
add esi, edx
or r14d, r10d
mov r10d, eax
ror r10d, 0xd
xor r10d, r15d
mov r15d, eax
ror r15d, 0x16
xor r10d, r15d
add r10d, r14d
mov r14d, esi
add edx, r10d
mov r10d, r9d
ror r14d, 6
xor r10d, r8d
mov r15d, edx
and r10d, esi
xor r10d, r8d
add ecx, r10d
mov r10d, esi
ror r10d, 0xb
xor r10d, r14d
mov r14d, esi
ror r14d, 0x19
xor r10d, r14d
mov r14d, edx
add ecx, r10d
mov r10d, edx
add ebx, ecx
or r14d, eax
and r10d, eax
and r14d, r11d
ror r15d, 2
add r8d, dword [rbp + 0x18]
or r14d, r10d
mov r10d, edx
add r8d, dword [rdi + 0x18]
ror r10d, 0xd
xor r10d, r15d
mov r15d, edx
ror r15d, 0x16
xor r10d, r15d
add r10d, r14d
mov r14d, ebx
add ecx, r10d
mov r10d, esi
ror r14d, 6
xor r10d, r9d
mov r15d, ecx
and r10d, ebx
ror r15d, 2
xor r10d, r9d
add r8d, r10d
mov r10d, ebx
ror r10d, 0xb
xor r10d, r14d
mov r14d, ebx
ror r14d, 0x19
xor r10d, r14d
mov r14d, ecx
add r8d, r10d
or r14d, edx
mov r10d, ecx
and r14d, eax
and r10d, edx
add r11d, r8d
or r14d, r10d
mov r10d, ecx
ror r10d, 0xd
xor r10d, r15d
mov r15d, ecx
ror r15d, 0x16
xor r10d, r15d
add r10d, r14d
add r9d, dword [rbp + 0x1c]
mov r14d, r11d
add r8d, r10d
add r9d, dword [rdi + 0x1c]
mov r10d, ebx
xor r10d, esi
ror r14d, 6
mov r15d, r8d
and r10d, r11d
ror r15d, 2
add rdi, 0x20
xor r10d, esi
add rbp, 0x20
add r9d, r10d
mov r10d, r11d
ror r10d, 0xb
xor r10d, r14d
mov r14d, r11d
ror r14d, 0x19
xor r10d, r14d
mov r14d, r8d
add r9d, r10d
or r14d, ecx
lea r10d, [r9 + rax]
mov eax, r8d
and r14d, edx
and eax, ecx
or r14d, eax
mov eax, r8d
ror eax, 0xd
xor eax, r15d
mov r15d, r8d
ror r15d, 0x16
xor eax, r15d
add eax, r14d
add r9d, eax
cmp rdi, r12
jne 0x504c15
add r9d, dword [rsp]
add r8d, dword [rsp + 4]
add ecx, dword [rsp + 8]
add edx, dword [rsp + 0xc]
add r10d, dword [rsp + 0x10]
add r11d, dword [rsp + 0x14]
add ebx, dword [rsp + 0x18]
add esi, dword [rsp + 0x1c]
mov dword [r13], r9d
mov dword [r13 + 4], r8d
mov dword [r13 + 8], ecx
mov dword [r13 + 0xc], edx
mov dword [r13 + 0x10], r10d
mov dword [r13 + 0x14], r11d
mov dword [r13 + 0x18], ebx
mov dword [r13 + 0x1c], esi
add rsp, 0x168
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret