Function at 0x521380
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, qword [rcx + 0x10]
mov r12, qword [rcx + 0x18]
mov rbp, qword [rcx + 0x20]
mov rbx, qword [rcx + 0x28]
mov r11, qword [rcx + 0x30]
mov rdi, qword [rcx + 0x38]
mov qword [rsp + 0x48], rax
add rax, r9
mov rsi, rdx
mov r14, rax
mov rax, r8
mov qword [rsp + 0xa0], rcx
shl rax, 5
mov qword [rsp + 0xb0], r8
add rax, rdx
mov qword [rsp + 0xb8], r9
mov qword [rsp + 0x40], rax
nop dword [rax]
mov r9, rbp
mov rdx, qword [rsi + 8]
mov rcx, qword [rsi + 0x10]
lea r13, [r12 + r11]
xor r9, rdi
mov r15, qword [rsi + 0x18]
lea r8, [r14 + rbx]
mov r10, r12
xor r9, rbx
mov qword [rsp], rcx
mov rcx, rdx
xor r10, r14
xor r9, r11
mov qword [rsp + 0x28], rdx
mov rdx, qword [rsp]
add rcx, r8
movabs rax, 0x1bd11bdaa9fc1a22
mov qword [rsp + 0x38], r8
lea r8, [r15 + rdi]
add rsi, 0x20
xor r9, rax
mov rax, qword [rsi - 0x20]
add rdx, r13
mov qword [rsp + 0x30], r15
add rdx, r8
rol r8, 0x10
lea r15, [r10 + rdi]
mov qword [rsp + 0x20], rax
add rax, rbp
xor r8, rdx
add rax, rcx
rol rcx, 0xe
mov qword [rsp + 8], r15
xor rcx, rax
add rax, r8
ror r8, 0xc
add rdx, rcx
ror rcx, 7
xor r8, rax
xor rcx, rdx
add rdx, r8
ror r8, 0x18
add rax, rcx
rol rcx, 0x17
xor r8, rdx
xor rcx, rax
add rax, r8
rol r8, 5
add rdx, rcx
ror rcx, 0x1b
xor r8, rax
xor rcx, rdx
add rax, rbx
lea r8, [r9 + r8 + 1]
add rdx, r15
add rcx, r13
add rdx, r8
ror r8, 0x1f
add rax, rcx
rol rcx, 0x19
xor r8, rdx
xor rcx, rax
add rax, r8
ror r8, 0x12
add rdx, rcx
rol rcx, 0xc
xor r8, rax
xor rcx, rdx
add rdx, r8
rol r8, 0x16
add rax, rcx
ror rcx, 6
xor r8, rdx
xor rcx, rax
add rax, r8
rol r8, 0x20
add rdx, rcx
rol rcx, 0x20
xor r8, rax
add rax, r11
xor rcx, rdx
lea r8, [rbp + r8 + 2]
add rcx, r15
lea r15, [r9 + r14]
add rdx, r15
add rax, rcx
rol rcx, 0xe
mov qword [rsp + 0x10], r15
xor rcx, rax
add rdx, r8
rol r8, 0x10
xor r8, rdx
add rdx, rcx
ror rcx, 7
add rax, r8
xor rcx, rdx
ror r8, 0xc
xor r8, rax
add rax, rcx
rol rcx, 0x17
xor rcx, rax
add rdx, r8
ror r8, 0x18
xor r8, rdx
add rdx, rcx
ror rcx, 0x1b
add rax, r8
xor rcx, rdx
rol r8, 5
add rcx, r15
xor r8, rax
lea r15, [r12 + rbp]
add rax, rdi
add rdx, r15
lea r8, [rbx + r8 + 3]
add rax, rcx
rol rcx, 0x19
add rdx, r8
ror r8, 0x1f
xor rcx, rax
mov qword [rsp + 0x18], r15
xor r8, rdx
add rax, r8
add rdx, rcx
rol rcx, 0xc
xor rcx, rdx
ror r8, 0x12
xor r8, rax
add rax, rcx
ror rcx, 6
xor rcx, rax
add rdx, r8
rol r8, 0x16
xor r8, rdx
add rdx, rcx
rol rcx, 0x20
add rax, r8
xor rcx, rdx
rol r8, 0x20
add rcx, r15
xor r8, rax
lea r15, [r10 + rbx]
add rax, r9
add rdx, r15
lea r8, [r11 + r8 + 4]
add rax, rcx
rol rcx, 0xe
add rdx, r8
rol r8, 0x10
xor rcx, rax
xor r8, rdx
add rdx, rcx
ror rcx, 7
add rax, r8
ror r8, 0xc
xor r8, rax
xor rcx, rdx
add rax, rcx
rol rcx, 0x17
add rdx, r8
xor rcx, rax
ror r8, 0x18
xor r8, rdx
add rdx, rcx
ror rcx, 0x1b
add rax, r8
xor rcx, rdx
rol r8, 5
add rcx, r15
xor r8, rax
lea r15, [r14 + r11]
add rax, rbp
add rax, rcx
add rdx, r15
lea r8, [rdi + r8 + 5]
rol rcx, 0x19
xor rcx, rax
add rdx, r8
ror r8, 0x1f
xor r8, rdx
add rdx, rcx
rol rcx, 0xc
add rax, r8
xor rcx, rdx
ror r8, 0x12
xor r8, rax
add rax, rcx
ror rcx, 6
xor rcx, rax
add rdx, r8
rol r8, 0x16
xor r8, rdx
add rdx, rcx
rol rcx, 0x20
add rax, r8
xor rcx, rdx
rol r8, 0x20
add rcx, r15
xor r8, rax
lea r15, [r12 + rdi]
add rax, rbx
add rdx, r15
lea r8, [r9 + r8 + 6]
add rax, rcx
rol rcx, 0xe
add rdx, r8
rol r8, 0x10
xor rcx, rax
xor r8, rdx
add rdx, rcx
ror rcx, 7
add rax, r8
ror r8, 0xc
xor rcx, rdx
xor r8, rax
add rax, rcx
rol rcx, 0x17
add rdx, r8
ror r8, 0x18
xor rcx, rax
xor r8, rdx
add rax, r8
rol r8, 5
xor r8, rax
add rdx, rcx
ror rcx, 0x1b
add rax, r11
xor rcx, rdx
lea r8, [rbp + r8 + 7]
add rcx, r15
lea r15, [r9 + r10]
add rax, rcx
add rdx, r15
rol rcx, 0x19
xor rcx, rax
add rdx, r8
ror r8, 0x1f
xor r8, rdx
add rdx, rcx
rol rcx, 0xc
add rax, r8
xor rcx, rdx
ror r8, 0x12
xor r8, rax
add rax, rcx
ror rcx, 6
xor rcx, rax
add rdx, r8
rol r8, 0x16
xor r8, rdx
add rdx, rcx
rol rcx, 0x20
add rax, r8
xor rcx, rdx
rol r8, 0x20
add rcx, r15
xor r8, rax
lea r15, [r14 + rbp]
add rax, rdi
lea r8, [rbx + r8 + 8]
add rdx, r15
add rax, rcx
rol rcx, 0xe
xor rcx, rax
add rdx, r8
rol r8, 0x10
xor r8, rdx
add rdx, rcx
ror rcx, 7
add rax, r8
xor rcx, rdx
ror r8, 0xc
xor r8, rax
add rax, rcx
rol rcx, 0x17
xor rcx, rax
add rdx, r8
ror r8, 0x18
xor r8, rdx
add rdx, rcx
ror rcx, 0x1b
add rax, r8
xor rcx, rdx
rol r8, 5
add rcx, r15
xor r8, rax
lea r15, [r12 + rbx]
add rax, r9
add rax, rcx
add rdx, r15
lea r8, [r11 + r8 + 9]
rol rcx, 0x19
xor rcx, rax
add rdx, r8
ror r8, 0x1f
xor r8, rdx
add rdx, rcx
rol rcx, 0xc
add rax, r8
xor rcx, rdx
ror r8, 0x12
xor r8, rax
add rax, rcx
ror rcx, 6
xor rcx, rax
add rdx, r8
rol r8, 0x16
xor r8, rdx
add rdx, rcx
rol rcx, 0x20
add rax, r8
xor rcx, rdx
rol r8, 0x20
add rcx, r15
xor r8, rax
lea r15, [r10 + r11]
add rax, rbp
add rdx, r15
lea r8, [rdi + r8 + 0xa]
add rax, rcx
rol rcx, 0xe
add rdx, r8
rol r8, 0x10
xor rcx, rax
xor r8, rdx
add rax, r8
ror r8, 0xc
xor r8, rax
add rdx, rcx
ror rcx, 7
xor rcx, rdx
add rdx, r8
ror r8, 0x18
add rax, rcx
rol rcx, 0x17
xor r8, rdx
xor rcx, rax
add rax, r8
rol r8, 5
add rdx, rcx
ror rcx, 0x1b
xor r8, rax
add rax, rbx
xor rcx, rdx
lea r8, [r9 + r8 + 0xb]
add rcx, r15
lea r15, [r14 + rdi]
add rax, rcx
add rdx, r15
rol rcx, 0x19
xor rcx, rax
add rdx, r8
ror r8, 0x1f
xor r8, rdx
add rdx, rcx
rol rcx, 0xc
add rax, r8
xor rcx, rdx
ror r8, 0x12
xor r8, rax
add rax, rcx
ror rcx, 6
xor rcx, rax
add rdx, r8
rol r8, 0x16
xor r8, rdx
add rdx, rcx
rol rcx, 0x20
add rax, r8
xor rcx, rdx
rol r8, 0x20
add rcx, r15
xor r8, rax
lea r15, [r9 + r12]
add rax, r11
add rdx, r15
lea r8, [rbp + r8 + 0xc]
add rax, rcx
rol rcx, 0xe
add rdx, r8
rol r8, 0x10
xor rcx, rax
xor r8, rdx
add rdx, rcx
ror rcx, 7
add rax, r8
ror r8, 0xc
xor rcx, rdx
xor r8, rax
add rax, rcx
rol rcx, 0x17
add rdx, r8
ror r8, 0x18
xor rcx, rax
xor r8, rdx
add rax, r8
rol r8, 5
add rdx, rcx
add r10, rbp
ror rcx, 0x1b
xor r8, rax
add rax, rdi
xor rcx, rdx
lea r8, [rbx + r8 + 0xd]
add rdx, r10
add rcx, r15
add rdx, r8
ror r8, 0x1f
mov r15, qword [rsp + 8]
add rax, rcx
rol rcx, 0x19
xor r8, rdx
xor rcx, rax
add rax, r8
ror r8, 0x12
add rdx, rcx
rol rcx, 0xc
xor r8, rax
xor rcx, rdx
add rdx, r8
rol r8, 0x16
add rax, rcx
ror rcx, 6
xor r8, rdx
xor rcx, rax
add rax, r8
rol r8, 0x20
add rdx, rcx
rol rcx, 0x20
xor r8, rax
xor rcx, rdx
lea r8, [r11 + r8 + 0xe]
add rax, r9
add r10, rcx
mov rcx, qword [rsp + 0x38]
add rax, r10
rol r10, 0xe
add rdx, rcx
xor r10, rax
add rdx, r8
rol r8, 0x10
xor r8, rdx
add rdx, r10
ror r10, 7
add rax, r8
ror r8, 0xc
xor r10, rdx
xor r8, rax
add rax, r10
rol r10, 0x17
add rdx, r8
ror r8, 0x18
xor r10, rax
xor r8, rdx
add rdx, r10
ror r10, 0x1b
add rax, r8
rol r8, 5
xor r10, rdx
add rdx, r13
xor r8, rax
add r10, rcx
add rax, rbp
lea rcx, [rdi + r8 + 0xf]
add rax, r10
rol r10, 0x19
add rdx, rcx
ror rcx, 0x1f
xor r10, rax
xor rcx, rdx
add rdx, r10
rol r10, 0xc
add rax, rcx
ror rcx, 0x12
xor r10, rdx
xor rcx, rax
add rax, r10
ror r10, 6
add rdx, rcx
rol rcx, 0x16
xor r10, rax
xor rcx, rdx
add rdx, r10
rol r10, 0x20
add rax, rcx
rol rcx, 0x20
xor r10, rdx
add rdx, r15
xor rcx, rax
add r10, r13
add rax, rbx
lea rcx, [r9 + rcx + 0x10]
add rax, r10
rol r10, 0xe
mov r9, qword [rsp + 0x10]
add rdx, rcx
rol rcx, 0x10
xor r10, rax
xor rcx, rdx
add rax, rcx
add rdx, r10
ror rcx, 0xc
ror r10, 7
xor rcx, rax
xor r10, rdx
add rdx, rcx
ror rcx, 0x18
add rax, r10
rol r10, 0x17
xor rcx, rdx
xor r10, rax
add rax, rcx
rol rcx, 5
add rdx, r10
ror r10, 0x1b
xor rcx, rax
add rax, r11
xor r10, rdx
lea rcx, [rbp + rcx + 0x11]
add rdx, r9
add r10, r15
add rdx, rcx
ror rcx, 0x1f
add rax, r10
rol r10, 0x19
xor rcx, rdx
xor r10, rax
add rax, rcx
ror rcx, 0x12
lea r11, [r10 + rdx]
rol r10, 0xc
xor rcx, rax
xor r10, r11
lea rbp, [rax + r10]
ror r10, 6
add r11, rcx
rol rcx, 0x16
xor rcx, r11
xor r10, rbp
movabs rax, 0xbfffffffffffffff
add r14, qword [rsp + 0xb8]
add rbp, rcx
rol rcx, 0x20
add r11, r10
and r12, rax
xor rcx, rbp
rol r10, 0x20
add rbp, rdi
mov rdi, qword [rsp + 0x30]
lea rcx, [rbx + rcx + 0x12]
mov rbx, qword [rsp + 0xa0]
xor r10, r11
xor rbp, qword [rsp + 0x20]
add r11, qword [rsp + 0x18]
xor rdi, rcx
xor r11, qword [rsp]
mov qword [rbx + 0x20], rbp
lea rbx, [r9 + r10]
mov r9, qword [rsp + 0xa0]
xor rbx, qword [rsp + 0x28]
mov qword [r9 + 0x28], rbx
mov qword [r9 + 0x30], r11
mov qword [r9 + 0x38], rdi
cmp rsi, qword [rsp + 0x40]
jne 0x5213e0
mov r8, qword [rsp + 0xb0]
mov qword [r9 + 0x18], r12
imul r8, qword [rsp + 0xb8]
add r8, qword [rsp + 0x48]
mov qword [r9 + 0x10], r8
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret