Function at 0x69c6e0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x148
mov rsi, r9
mov qword [rsp + 0x198], rdx
mov r15, rcx
shr rsi, 3
mov qword [rsp + 0x1a8], r9
mov qword [rsp + 0x40], rsi
cmp r9, r8
ja 0x69cc5e
mov rax, r9
mov rdx, r9
mov qword [rsp + 0x38], r8
shr rax, 4
and rdx, 0xfffffffffffffff0
add rax, rax
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x68], rax
lea rax, [rcx + rdx]
mov qword [rsp + 0x30], rax
lea rax, [rsi*8]
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
lea rax, [rcx + 0xf]
mov qword [rsp + 0x58], rax
lea rax, [rsi - 1]
mov qword [rsp + 0x60], rax
nop dword [rax]
cmp qword [rsp + 0x40], 0
je 0x69c806
mov rax, qword [rsp + 0x58]
sub rax, qword [rsp + 0x198]
cmp rax, 0x1e
mov eax, 0
jbe 0x69cc38
cmp qword [rsp + 0x60], 2
jbe 0x69cc38
mov rdx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x198]
nop dword [rax]
movdqu xmm0, xmmword [r15 + rax]
movdqu xmm1, xmmword [rcx + rax]
pxor xmm0, xmm1
movups xmmword [r15 + rax], xmm0
add rax, 0x10
cmp rdx, rax
jne 0x69c7b8
mov rax, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x68]
add rax, qword [rsp + 0x198]
cmp qword [rsp + 0x40], rdx
je 0x69c7f9
mov rsi, qword [rsp + 0x30]
mov rax, qword [rax]
xor qword [rsi], rax
mov rax, qword [rsp + 0x50]
add qword [rsp + 0x198], rax
xor r13d, r13d
nop dword [rax]
mov rcx, qword [rsp + 0x28]
mov r8, r13
mov rdx, r15
call sym.Round
mov rbp, qword [rsp + 0x78]
mov rax, qword [rsp + 0x70]
mov rbx, qword [rsp + 0xd0]
mov rdi, qword [rsp + 0x80]
xor rdi, qword [rsp + 0xa8]
mov r10, qword [rsp + 0xa0]
xor rdi, rbx
xor rdi, qword [rsp + 0xf8]
xor rdi, qword [rsp + 0x120]
mov r11, qword [rsp + 0x100]
mov rcx, qword [rsp + 0xb8]
mov r12, rdi
xor rbp, r10
mov rdx, qword [rsp + 0x90]
mov r9, qword [rsp + 0x130]
rol r12, 1
xor rax, qword [rsp + 0x98]
xor rbp, qword [rsp + 0xc8]
xor rax, qword [rsp + 0xc0]
xor rbp, qword [rsp + 0xf0]
xor rdx, rcx
xor rbp, qword [rsp + 0x118]
xor rax, qword [rsp + 0xe8]
mov rsi, qword [rsp + 0x88]
xor rax, qword [rsp + 0x110]
mov r8, rbp
xor rsi, qword [rsp + 0xb0]
xor rsi, qword [rsp + 0xd8]
xor r12, rax
rol rax, 1
xor rsi, r11
xor rdx, qword [rsp + 0xe0]
xor rsi, qword [rsp + 0x128]
rol r8, 1
xor rdx, qword [rsp + 0x108]
mov r14, rsi
xor rsi, rax
mov rax, qword [rsp + 0x70]
xor rdx, r9
rol r14, 1
xor r8, rdx
rol rdx, 1
xor rbp, r14
lea r14, [0x00980748]
xor rdx, rdi
xor rax, r8
xor r10, r12
xor rbx, rbp
ror r10, 0x14
ror rbx, 0x15
xor r11, rdx
xor r9, rsi
rol r11, 0x15
mov rdi, r10
rol r9, 0xe
xor rcx, rsi
not rdi
rol rcx, 0x14
and rdi, rbx
xor rdi, rax
xor rdi, qword [r14 + r13*8]
mov qword [r15], rdi
mov rdi, rbx
not rdi
and rdi, r11
xor rdi, r10
mov qword [r15 + 8], rdi
mov rdi, r11
not rdi
and rdi, r9
xor rbx, rdi
mov qword [r15 + 0x10], rbx
mov rbx, r9
not rbx
and rbx, rax
not rax
and rax, r10
xor r11, rbx
mov rbx, rcx
xor rax, r9
mov qword [r15 + 0x18], r11
not rbx
mov qword [r15 + 0x20], rax
mov rax, qword [rsp + 0x88]
mov r10, qword [rsp + 0xc0]
mov r11, qword [rsp + 0xf0]
xor rax, rdx
mov r9, qword [rsp + 0x120]
xor r10, r8
rol rax, 0x1c
xor r11, r12
rol r10, 3
ror r11, 0x13
xor r9, rbp
and rbx, r10
ror r9, 3
xor rbx, rax
mov qword [r15 + 0x28], rbx
mov rbx, r10
not rbx
and rbx, r11
xor rbx, rcx
mov qword [r15 + 0x30], rbx
mov rbx, r11
not rbx
and rbx, r9
xor r10, rbx
mov qword [r15 + 0x38], r10
mov r10, r9
not r10
and r10, rax
not rax
and rax, rcx
xor r11, r10
mov r10, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x110]
xor rax, r9
mov r9, qword [rsp + 0xa8]
mov qword [r15 + 0x40], r11
mov qword [r15 + 0x48], rax
mov rax, qword [rsp + 0x78]
xor r10, rdx
xor rcx, r8
xor r9, rbp
rol r10, 0x19
mov r11, qword [rsp + 0x108]
rol r9, 6
xor rax, r12
rol rcx, 0x12
mov rbx, r9
rol rax, 1
xor r11, rsi
not rbx
rol r11, 8
and rbx, r10
xor rbx, rax
mov qword [r15 + 0x50], rbx
mov rbx, r10
not rbx
and rbx, r11
xor rbx, r9
mov qword [r15 + 0x58], rbx
mov rbx, r11
not rbx
and rbx, rcx
xor r10, rbx
mov qword [r15 + 0x60], r10
mov r10, rcx
not r10
and r10, rax
not rax
and rax, r9
mov r9, qword [rsp + 0x98]
xor r11, r10
mov r10, qword [rsp + 0xc8]
xor rax, rcx
mov qword [r15 + 0x68], r11
mov r11, qword [rsp + 0xf8]
xor r9, r8
mov qword [r15 + 0x70], rax
mov rax, qword [rsp + 0x90]
xor r10, r12
ror r9, 0x1c
mov rcx, qword [rsp + 0x128]
xor rax, rsi
mov rbx, r9
rol rax, 0x1b
not rbx
rol r10, 0xa
xor r11, rbp
and rbx, r10
rol r11, 0xf
xor rcx, rdx
xor rdx, qword [rsp + 0xb0]
xor rbx, rax
ror rcx, 8
xor rsi, qword [rsp + 0xe0]
xor rbp, qword [rsp + 0x80]
mov qword [r15 + 0x78], rbx
ror rdx, 9
mov rbx, r10
ror rsi, 0x19
not rbx
ror rbp, 2
and rbx, r11
xor rbx, r9
mov qword [r15 + 0x80], rbx
mov rbx, r11
not rbx
and rbx, rcx
xor r10, rbx
mov qword [r15 + 0x88], r10
mov r10, rcx
not r10
and r10, rax
not rax
and rax, r9
xor r11, r10
xor rcx, rax
mov rax, rdx
mov qword [r15 + 0x90], r11
not rax
mov qword [r15 + 0x98], rcx
xor r8, qword [rsp + 0xe8]
and rax, rsi
ror r8, 0x17
xor r12, qword [rsp + 0x118]
xor rax, rbp
rol r12, 2
mov qword [r15 + 0xa0], rax
mov rax, rsi
not rax
and rax, r8
xor rax, rdx
mov qword [r15 + 0xa8], rax
mov rax, r8
not rax
and rax, r12
xor rsi, rax
mov rax, r12
not rax
mov qword [r15 + 0xb0], rsi
and rax, rbp
not rbp
xor r8, rax
and rbp, rdx
add r13, 2
xor rbp, r12
mov qword [r15 + 0xb8], r8
mov qword [r15 + 0xc0], rbp
cmp r13, 0x18
jne 0x69c810
mov rsi, qword [rsp + 0x1a8]
sub qword [rsp + 0x38], rsi
mov rax, qword [rsp + 0x38]
cmp rsi, rax
jbe 0x69c770
mov rax, qword [rsp + 0x38]
add rsp, 0x148
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, qword [rsp + 0x40]
mov r8, qword [rsp + 0x198]
nop dword [rax]
mov rdx, qword [r8 + rax*8]
xor qword [r15 + rax*8], rdx
add rax, 1
cmp rax, rcx
jne 0x69cc48
jmp 0x69c7f9
mov qword [rsp + 0x38], r8
jmp 0x69cc1c