Function at 0x140277200
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x98
vmovups xmmword [rsp + 0x80], xmm8
vmovq xmm18, qword [rdx]
vmovq xmm29, qword [rdx + 8]
lea rsi, [0x140377940]
lea r12, [0x14037b1a0]
vmovq xmm28, qword [rdx + 0x10]
vmovq xmm1, qword [rdx + 0x18]
vmovq xmm20, rsi
lea rsi, [0x14037a9a0]
vmovq xmm0, qword [rdx + 0x20]
mov rbx, qword [rdx + 0x28]
vmovq xmm17, rsi
lea rsi, [0x14037a1a0]
mov r11, qword [rdx + 0x30]
mov r8, qword [rdx + 0x38]
vmovq xmm26, rsi
lea rsi, [0x1403789a0]
vmovq xmm3, rdx
mov rdx, qword [rcx + 0x30]
vmovq xmm5, rsi
lea rsi, [0x1403781a0]
vmovq xmm2, rcx
lea r13, [0x1403779a0]
lea r14, [0x1403799a0]
lea r15, [0x1403791a0]
vmovq xmm22, rsi
vmovq xmm23, rbx
mov qword [rsp + 8], rbx
vmovq xmm24, r11
vmovq xmm25, r8
mov qword [rsp + 0x28], r11
mov qword [rsp + 0x60], r8
vmovq rax, xmm18
xor rdx, r11
vmovq qword [rsp + 0x70], xmm29
xor rax, qword [rcx]
vmovq qword [rsp + 0x50], xmm1
vmovq qword [rsp + 0x80], xmm28
mov qword [rsp + 0x78], rdx
vmovq qword [rsp + 0x58], xmm0
vmovq xmm30, rax
vmovq rax, xmm29
xor rax, qword [rcx + 8]
vmovdqu64 xmm16, xmm30
mov qword [rsp + 0x68], rax
vmovq rax, xmm28
xor rax, qword [rcx + 0x10]
mov qword [rsp + 0x48], rax
vmovq rax, xmm1
xor rax, qword [rcx + 0x18]
mov qword [rsp + 0x30], rax
vmovq rax, xmm0
xor rax, qword [rcx + 0x20]
mov qword [rsp + 0x18], rax
mov rax, qword [rcx + 0x28]
xor rax, rbx
mov qword [rsp + 0x70], rax
mov rax, qword [rcx + 0x38]
xor rax, r8
mov qword [rsp + 0x20], rax
nop dword [rax]
mov rbx, qword [rsp + 0x60]
vmovq rsi, xmm17
vmovq rdx, xmm18
vmovq r11, xmm20
mov r10, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x58]
vmovq rbp, xmm5
movzx ecx, bh
mov r9, qword [rsi + rcx*8]
mov rcx, qword [rsp + 0x38]
mov rax, r10
vmovq rsi, xmm26
shr rax, 0x10
movzx eax, al
xor r9, qword [rsi + rax*8]
movzx eax, dl
mov rsi, qword [rsp + 8]
shr rcx, 0x38
mov rax, qword [r12 + rax*8]
xor rax, qword [r13 + rcx*8]
mov r8d, esi
shr r8d, 0x18
xor r9, rax
mov rax, rdi
shr rax, 0x20
movzx ecx, al
mov rax, qword [r14 + r8*8]
xor rax, qword [r15 + rcx*8]
xor rax, qword [r11]
mov r11, qword [rsp + 0x50]
xor r9, rax
mov rax, r11
shr rax, 0x28
movzx r8d, al
mov rax, qword [rsp + 0x40]
shr rax, 0x30
movzx ecx, al
mov rax, qword [rbp + r8*8]
vmovq r8, xmm22
mov rbp, r11
xor rax, qword [r8 + rcx*8]
mov rcx, rdi
shr rcx, 0x28
movzx r8d, cl
mov rcx, r11
mov r11, r10
shr r10d, 0x18
shr rcx, 0x30
movzx ecx, cl
xor r9, rax
mov rax, qword [rsp + 0x38]
vmovq xmm18, r9
vmovq r9, xmm5
mov r8, qword [r9 + r8*8]
vmovq r9, xmm22
xor r8, qword [r9 + rcx*8]
mov rcx, rsi
mov rsi, rbx
shr rcx, 0x20
movzx r9d, cl
mov rcx, qword [r14 + r10*8]
xor rcx, qword [r15 + r9*8]
xor r8, rcx
movzx ecx, dh
mov r10, rcx
mov rcx, rbx
vmovq rbx, xmm17
shr rcx, 0x10
movzx r9d, cl
mov rcx, qword [rbx + r10*8]
vmovq rbx, xmm26
xor rcx, qword [rbx + r9*8]
mov rbx, qword [rsp + 0x40]
movzx r9d, al
mov r9, qword [r12 + r9*8]
mov r10, rbx
mov qword [rsp + 0x10], rbx
mov rbx, rdi
shr r10, 0x38
shr rbx, 0x30
xor r9, qword [r13 + r10*8]
xor rcx, r9
mov r9, qword [rsp + 8]
xor r8, rcx
movzx ecx, ah
mov qword [rsp + 0x38], r8
vmovq r8, xmm5
shr r9, 0x28
movzx r10d, r9b
movzx r9d, bl
mov ebx, esi
mov r10, qword [r8 + r10*8]
vmovq r8, xmm22
shr ebx, 0x18
xor r10, qword [r8 + r9*8]
mov r9, r11
mov r8d, ebx
mov rbx, r11
shr r9, 0x20
mov r8, qword [r14 + r8*8]
vmovq r11, xmm17
movzx r9d, r9b
xor r8, qword [r15 + r9*8]
mov r9, rdx
shr r9, 0x10
movzx r9d, r9b
xor r10, r8
mov r8, qword [r11 + rcx*8]
vmovq rcx, xmm26
mov r11, rbp
xor r8, qword [rcx + r9*8]
movzx r9d, byte [rsp + 0x10]
shr r11, 0x38
mov rcx, rsi
shr rcx, 0x20
mov r9, qword [r12 + r9*8]
xor r9, qword [r13 + r11*8]
xor r8, r9
mov r9, rbp
xor r10, r8
vmovq r8, xmm5
mov qword [rsp + 0x40], r10
mov r10, rbx
mov ebx, edx
shr r10, 0x28
shr ebx, 0x18
movzx r11d, r10b
mov r10, qword [rsp + 8]
mov r11, qword [r8 + r11*8]
vmovq r8, xmm22
shr r10, 0x30
movzx r10d, r10b
xor r11, qword [r8 + r10*8]
mov r8d, ebx
mov rbx, qword [rsp + 0x10]
movzx r10d, cl
mov r8, qword [r14 + r8*8]
xor r8, qword [r15 + r10*8]
movzx ecx, bh
mov rbx, rax
shr rbx, 0x10
movzx r10d, bl
vmovq rbx, xmm17
xor r11, r8
mov r8, qword [rbx + rcx*8]
vmovq rbx, xmm26
xor r8, qword [rbx + r10*8]
mov rbx, rdi
movzx r10d, bpl
mov rbp, rsi
shr rbx, 0x38
mov r10, qword [r12 + r10*8]
xor r10, qword [r13 + rbx*8]
mov rbx, rdx
shr rbx, 0x20
movzx ebx, bl
xor r8, r10
mov r10, rdi
vmovq rdi, xmm5
xor r11, r8
mov r8, rsi
vmovq rsi, xmm26
shr r8, 0x28
mov qword [rsp + 0x50], r11
movzx r11d, r8b
mov r8, qword [rsp + 0x28]
mov r11, qword [rdi + r11*8]
vmovq rdi, xmm22
shr r8, 0x30
movzx r8d, r8b
xor r11, qword [rdi + r8*8]
mov edi, eax
shr edi, 0x18
mov r8d, edi
mov rdi, qword [rsp + 0x10]
mov r8, qword [r14 + r8*8]
xor r8, qword [r15 + rbx*8]
mov rbx, r9
movzx ecx, bh
shr rdi, 0x10
movzx ebx, dil
vmovq rdi, xmm17
xor r11, r8
mov r8, qword [rdi + rcx*8]
mov rcx, qword [rsp + 8]
xor r8, qword [rsi + rbx*8]
movzx ebx, r10b
vmovq rsi, xmm5
mov rbx, qword [r12 + rbx*8]
mov rdi, rcx
shr rdi, 0x38
xor rbx, qword [r13 + rdi*8]
mov rdi, r11
xor r8, rbx
mov rbx, rcx
mov rcx, r10
xor rdi, r8
mov r8, rbp
movzx ecx, ch
mov qword [rsp + 0x58], rdi
mov rdi, rdx
shr r8, 0x30
shr rdi, 0x28
movzx r8d, r8b
movzx r11d, dil
mov r11, qword [rsi + r11*8]
vmovq rsi, xmm22
xor r11, qword [rsi + r8*8]
mov edi, dword [rsp + 0x10]
vmovq rsi, xmm26
shr edi, 0x18
mov r8d, edi
mov rdi, rax
shr rdi, 0x20
mov r8, qword [r14 + r8*8]
movzx edi, dil
xor r8, qword [r15 + rdi*8]
mov rdi, r9
shr rdi, 0x10
movzx edi, dil
vmovq xmm4, rdi
vmovq rdi, xmm17
xor r11, r8
mov r8, qword [rdi + rcx*8]
vmovq rdi, xmm4
mov rcx, qword [rsp + 0x28]
xor r8, qword [rsi + rdi*8]
movzx edi, bl
vmovq xmm4, qword [r12 + rdi*8]
mov rsi, rcx
shr rsi, 0x38
vmovq rdi, xmm4
xor rdi, qword [r13 + rsi*8]
vmovq rsi, xmm5
xor r8, rdi
mov rdi, r11
xor rdi, r8
mov r8, rcx
mov rcx, rax
shr rax, 0x30
shr rcx, 0x28
mov qword [rsp + 8], rdi
movzx eax, al
movzx ecx, cl
vmovq xmm4, rcx
mov rcx, rdx
shr rcx, 0x30
movzx r11d, cl
vmovq rcx, xmm4
vmovq xmm4, qword [rsi + rcx*8]
vmovq rsi, xmm22
vmovq rcx, xmm4
xor rcx, qword [rsi + r11*8]
vmovq xmm4, rcx
mov ecx, r9d
shr ecx, 0x18
mov r11d, ecx
mov rcx, qword [rsp + 0x10]
mov r11, qword [r14 + r11*8]
shr rcx, 0x20
movzx ecx, cl
xor r11, qword [r15 + rcx*8]
vmovq rcx, xmm4
xor rcx, r11
vmovq xmm4, rcx
movzx ecx, bh
vmovq xmm19, rcx
mov rcx, r10
shr r10d, 0x18
shr rcx, 0x10
vmovq rsi, xmm19
movzx ecx, cl
vmovq xmm8, rcx
vmovq rcx, xmm17
mov r11, qword [rcx + rsi*8]
vmovq rcx, xmm8
vmovq rsi, xmm26
xor r11, qword [rsi + rcx*8]
movzx ecx, r8b
vmovq xmm8, rcx
mov rcx, rbp
shr rcx, 0x38
vmovq xmm19, rcx
vmovq rcx, xmm8
vmovq xmm8, qword [r12 + rcx*8]
vmovq rdi, xmm19
vmovq rcx, xmm8
xor rcx, qword [r13 + rdi*8]
vmovq rdi, xmm5
xor r11, rcx
vmovq rcx, xmm4
xor rcx, r11
mov qword [rsp + 0x28], rcx
mov rcx, qword [rsp + 0x10]
shr rcx, 0x28
movzx ecx, cl
mov rcx, qword [rdi + rcx*8]
vmovq rdi, xmm22
xor rcx, qword [rdi + rax*8]
shr r9, 0x20
mov rax, qword [r14 + r10*8]
shr rdx, 0x38
movzx r9d, r9b
vmovq r10, xmm17
xor rax, qword [r15 + r9*8]
vmovq r9, xmm18
xor rcx, rax
mov rax, r8
movzx eax, ah
mov r8, rax
mov rax, rbx
shr rax, 0x10
movzx ebx, al
vmovq rax, xmm17
mov rax, qword [rax + r8*8]
movzx r8d, bpl
xor rax, qword [rsi + rbx*8]
mov rsi, rcx
mov r8, qword [r12 + r8*8]
xor r8, qword [r13 + rdx*8]
vmovq rcx, xmm16
mov rbx, qword [rsp + 0x20]
xor rax, r8
movzx edx, bh
xor rsi, rax
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x60], rsi
shr rax, 0x30
movzx eax, al
xor r9, qword [rdi + rax*8]
mov rsi, qword [rsp + 0x78]
mov rbp, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x70]
mov r10, qword [r10 + rdx*8]
vmovq rdx, xmm26
mov r11, qword [rsp + 0x30]
mov rax, rsi
shr rax, 0x10
mov qword [rsp + 0x10], rbp
movzx eax, al
xor r10, qword [rdx + rax*8]
mov rdx, rbp
movzx eax, cl
mov rbp, qword [rsp + 0x48]
shr rdx, 0x38
mov rax, qword [r12 + rax*8]
xor rax, qword [r13 + rdx*8]
mov edx, edi
shr edx, 0x18
mov r8d, edx
mov rdx, qword [rsp + 0x18]
xor r10, rax
mov rax, qword [r14 + r8*8]
mov r8, r11
shr rdx, 0x20
shr r8, 0x28
movzx edx, dl
xor rax, qword [r15 + rdx*8]
mov rdx, rax
movzx eax, r8b
vmovq r8, xmm5
xor rdx, qword [r8 + rax*8]
mov r8, qword [rsp + 0x38]
mov rax, rdx
vmovq rdx, xmm22
xor rax, r10
xor rax, r9
mov r9, r11
shr r9, 0x30
vmovq xmm16, rax
movzx eax, r9b
xor r8, qword [rdx + rax*8]
movzx eax, ch
mov rdx, rbx
vmovq rbx, xmm5
mov r9, rax
shr rdx, 0x10
vmovq rax, xmm17
mov r11, r8
movzx r8d, dl
mov rdx, qword [rax + r9*8]
vmovq rax, xmm26
xor rdx, qword [rax + r8*8]
movzx r8d, byte [rsp + 0x10]
mov r9, rbp
mov eax, esi
shr r9, 0x38
shr eax, 0x18
mov r10d, eax
mov rax, rdi
shr rax, 0x20
mov r8, qword [r12 + r8*8]
xor r8, qword [r13 + r9*8]
movzx r9d, al
mov rax, qword [r14 + r10*8]
xor r8, rdx
xor rax, qword [r15 + r9*8]
mov r9, rax
mov rax, qword [rsp + 0x18]
mov r10, rax
shr r10, 0x28
movzx edx, r10b
mov r10, qword [rsp + 0x40]
xor r9, qword [rbx + rdx*8]
vmovq rbx, xmm22
mov rdx, r9
mov r9, rax
mov rax, qword [rsp + 0x10]
xor rdx, r8
shr r9, 0x30
mov r8, rdx
movzx edx, r9b
xor r10, qword [rbx + rdx*8]
xor r8, r11
mov rdx, rbp
movzx eax, ah
mov qword [rsp + 0x68], r8
mov rbx, r10
mov r10, rcx
shr r10, 0x10
movzx r9d, r10b
vmovq r10, xmm17
mov r8, qword [r10 + rax*8]
vmovq rax, xmm26
mov r10, qword [rsp + 0x30]
xor r8, qword [rax + r9*8]
movzx r9d, bpl
mov rax, rsi
mov r9, qword [r12 + r9*8]
mov rbp, qword [rsp + 0x20]
shr rax, 0x20
shr r10, 0x38
xor r9, qword [r13 + r10*8]
mov r10d, ebp
shr r10d, 0x18
mov r11d, r10d
movzx r10d, al
mov rax, qword [r14 + r11*8]
xor rax, qword [r15 + r10*8]
vmovq r11, xmm5
xor r8, r9
mov r9, rdi
shr r9, 0x28
movzx r9d, r9b
mov r10, rax
xor r10, qword [r11 + r9*8]
mov r9, rdi
mov r11, qword [rsp + 0x50]
shr r9, 0x30
movzx eax, dh
movzx r9d, r9b
xor r8, r10
mov r10, qword [rsp + 0x10]
xor r8, rbx
vmovq rbx, xmm22
xor r11, qword [rbx + r9*8]
mov qword [rsp + 0x48], r8
mov r9, qword [rsp + 0x30]
shr r10, 0x10
movzx r10d, r10b
vmovq xmm4, r11
vmovq r11, xmm17
mov r8, qword [r11 + rax*8]
mov r11, qword [rsp + 0x18]
vmovq rax, xmm26
xor r8, qword [rax + r10*8]
movzx r10d, r9b
mov eax, ecx
mov r10, qword [r12 + r10*8]
shr eax, 0x18
mov ebx, eax
shr r11, 0x38
mov rax, qword [r14 + rbx*8]
vmovq rbx, xmm5
xor r10, qword [r13 + r11*8]
xor r8, r10
mov r10, rbp
shr r10, 0x20
movzx r11d, r10b
xor rax, qword [r15 + r11*8]
mov r11, rax
mov rax, rsi
shr rax, 0x28
movzx r10d, al
vmovq rax, xmm4
xor r11, qword [rbx + r10*8]
mov rbx, qword [rsp + 0x58]
xor r8, r11
vmovq r11, xmm22
xor rax, r8
mov r8, rdx
mov qword [rsp + 0x30], rax
mov rax, rsi
shr r8, 0x10
shr rax, 0x30
movzx r10d, al
vmovq rax, xmm26
xor rbx, qword [r11 + r10*8]
mov r10, qword [rsp + 0x18]
movzx r11d, r8b
vmovq r8, xmm17
vmovq xmm8, rbx
mov rbx, r9
movzx ebx, bh
mov r8, qword [r8 + rbx*8]
mov rbx, rdi
xor r8, qword [rax + r11*8]
movzx r11d, r10b
shr rbx, 0x38
mov r11, qword [r12 + r11*8]
mov rax, rbp
xor r11, qword [r13 + rbx*8]
mov rbx, rcx
shr rbx, 0x20
movzx ebx, bl
xor r11, r8
mov r8d, dword [rsp + 0x10]
shr r8d, 0x18
mov r8, qword [r14 + r8*8]
xor r8, qword [r15 + rbx*8]
mov rbx, r8
mov r8, rbp
vmovq rbp, xmm5
shr r8, 0x28
movzx r8d, r8b
xor rbx, qword [rbp + r8*8]
mov r8, rbx
vmovq rbx, xmm8
xor r8, r11
vmovq r11, xmm22
xor rbx, r8
mov r8, rax
mov rax, r10
shr r8, 0x30
mov qword [rsp + 0x18], rbx
mov rbx, qword [rsp + 8]
movzx eax, ah
movzx r8d, r8b
xor rbx, qword [r11 + r8*8]
mov r8, r9
shr r8, 0x10
movzx r11d, r8b
vmovq r8, xmm17
mov r8, qword [r8 + rax*8]
vmovq rax, xmm26
xor r8, qword [rax + r11*8]
mov rax, rsi
movzx r11d, dil
shr rax, 0x38
mov r11, qword [r12 + r11*8]
vmovq xmm19, rbx
mov rbx, rdi
xor r11, qword [r13 + rax*8]
mov rax, qword [rsp + 0x10]
mov rdi, qword [rsp + 0x28]
shr rax, 0x20
xor r11, r8
mov r8d, edx
movzx eax, al
shr r8d, 0x18
mov r8, qword [r14 + r8*8]
xor r8, qword [r15 + rax*8]
vmovq xmm4, r8
mov r8, rcx
shr r8, 0x28
vmovq rax, xmm4
movzx r8d, r8b
xor rax, qword [rbp + r8*8]
mov r8, rax
vmovq rax, xmm19
xor r8, r11
vmovq r11, xmm22
xor rax, r8
mov r8, rcx
shr r8, 0x30
mov qword [rsp + 0x70], rax
movzx eax, bh
movzx r8d, r8b
xor rdi, qword [r11 + r8*8]
mov r8, rsi
vmovq xmm21, rdi
mov rdi, r10
shr rdi, 0x10
movzx edi, dil
vmovq xmm4, rdi
vmovq rdi, xmm17
mov r11, qword [rdi + rax*8]
vmovq rdi, xmm4
vmovq rax, xmm26
xor r11, qword [rax + rdi*8]
movzx edi, sil
mov rsi, qword [rsp + 0x20]
shr rcx, 0x38
vmovq xmm4, qword [r12 + rdi*8]
shr r10d, 0x18
mov rax, rsi
shr rax, 0x38
mov rdi, rax
vmovq rax, xmm4
xor rax, qword [r13 + rdi*8]
mov rdi, qword [rsp + 0x10]
xor rax, r11
vmovq xmm4, rax
mov eax, r9d
shr r9, 0x20
shr eax, 0x18
movzx r9d, r9b
mov r11d, eax
mov rax, rdx
shr rdx, 0x28
shr rax, 0x20
mov r11, qword [r14 + r11*8]
movzx edx, dl
movzx eax, al
mov rax, qword [r15 + rax*8]
xor rax, r11
vmovq xmm8, rax
mov rax, rdi
shr rax, 0x28
movzx r11d, al
vmovq rax, xmm8
xor rax, qword [rbp + r11*8]
mov r11, rax
vmovq rax, xmm4
xor r11, rax
vmovq rax, xmm21
xor rax, r11
mov r11, qword [rsp + 0x60]
mov qword [rsp + 0x78], rax
mov rax, rdi
vmovq rdi, xmm22
shr rax, 0x30
movzx eax, al
xor r11, qword [rdi + rax*8]
mov rax, r8
vmovq rdi, xmm26
movzx eax, ah
mov r8, rax
mov rax, rbx
shr rax, 0x10
movzx ebx, al
vmovq rax, xmm17
mov rax, qword [rax + r8*8]
movzx r8d, sil
xor rax, qword [rdi + rbx*8]
mov r8, qword [r12 + r8*8]
xor r8, qword [r13 + rcx*8]
mov rcx, qword [r14 + r10*8]
xor rcx, qword [r15 + r9*8]
xor rcx, qword [rbp + rdx*8]
xor rax, r8
xor rax, rcx
xor rax, r11
mov qword [rsp + 0x20], rax
vmovq rax, xmm20
add rax, 8
vmovq xmm20, rax
lea rax, [0x140377990]
vmovq rsi, xmm20
cmp rax, rsi
jne 0x140277360
vmovq rsi, xmm16
vmovq rcx, xmm30
vmovq rbx, xmm23
mov rdx, qword [rsp + 0x78]
xor rcx, rsi
vmovq rsi, xmm3
vmovq r11, xmm24
mov rax, qword [rsp + 0x20]
mov qword [rsi], rcx
vmovq rsi, xmm2
vmovq rcx, xmm29
vmovq r8, xmm25
xor rcx, qword [rsi + 8]
mov rsi, qword [rsp + 0x68]
xor rcx, rsi
vmovq rsi, xmm3
mov qword [rsi + 8], rcx
vmovq rsi, xmm2
vmovq rcx, xmm28
xor rcx, qword [rsi + 0x10]
mov rsi, qword [rsp + 0x48]
xor rcx, rsi
vmovq rsi, xmm3
mov qword [rsi + 0x10], rcx
vmovq rsi, xmm2
vmovq rcx, xmm1
xor rcx, qword [rsi + 0x18]
mov rsi, qword [rsp + 0x30]
xor rcx, rsi
vmovq rsi, xmm3
mov qword [rsi + 0x18], rcx
vmovq rsi, xmm2
vmovq rcx, xmm0
xor rcx, qword [rsi + 0x20]
mov rsi, qword [rsp + 0x18]
xor rcx, rsi
vmovq rsi, xmm3
mov qword [rsi + 0x20], rcx
vmovq rsi, xmm2
xor rbx, qword [rsi + 0x28]
mov rsi, qword [rsp + 0x70]
mov rcx, rbx
xor rcx, rsi
vmovq rsi, xmm3
mov qword [rsi + 0x28], rcx
vmovq rsi, xmm2
mov rcx, qword [rsi + 0x30]
vmovq rsi, xmm3
xor rcx, r11
xor rdx, rcx
mov qword [rsi + 0x30], rdx
vmovq rsi, xmm2
mov rdx, qword [rsi + 0x38]
vmovq rsi, xmm3
xor rdx, r8
xor rax, rdx
mov qword [rsi + 0x38], rax
vmovups xmm8, xmmword [rsp + 0x80]
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret