Function at 0x641a50
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x1b8
movabs rax, 0x800000000000808a
mov edi, 0x80000001
mov qword [rsp + 0x200], rcx
mov qword [rsp + 0x100], rax
movabs rcx, 0x8000000000008009
add rax, 0x7fffff76
mov qword [rsp + 0x108], rax
mov qword [rsp + 0x128], rcx
add rax, 0x81
mov ecx, 0x80008009
mov qword [rsp + 0x120], rax
mov qword [rsp + 0x140], rcx
mov qword [rsp + 0x190], rax
sub rcx, 0x7fff
movabs rax, 0x8000000000008080
mov qword [rsp + 0x148], rcx
mov qword [rsp + 0x198], rax
add rcx, 0x8081
add rax, 0x7fffff88
mov qword [rsp + 0x150], rcx
mov qword [rsp + 0x1a8], rax
movabs rcx, 0x800000000000008b
mov rax, qword [rsp + 0x200]
mov qword [rsp + 0x158], rcx
add rcx, 0x7ffe
mov r15, qword [rax + 0x28]
mov qword [rsp + 0x160], rcx
mov rbx, qword [rax]
mov r12, qword [rax + 0x50]
sub rcx, 0x86
mov rax, qword [rax + 0x78]
mov qword [rsp + 0x168], rcx
dec rcx
mov qword [rsp + 0x170], rcx
mov qword [rsp + 0x60], rax
sub rcx, 0x7f82
mov rax, qword [rsp + 0x200]
mov qword [rsp + 0x178], rcx
add rcx, 0x7fffff8a
mov qword [rsp + 0x118], rdi
mov qword [rsp + 0x188], rcx
mov qword [rsp + 0x1a0], rdi
mov qword [rsp + 0xf0], 1
mov qword [rsp + 0xf8], 0x8082
mov qword [rsp + 0x110], 0x808b
mov qword [rsp + 0x130], 0x8a
mov qword [rsp + 0x138], 0x88
mov qword [rsp + 0x180], 0x800a
mov rax, qword [rax + 0xa0]
mov rdi, qword [rsp + 0x200]
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x200]
mov rdi, qword [rdi + 0x60]
mov rax, qword [rax + 8]
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x10], rax
mov rax, qword [rsp + 0x200]
mov rdi, qword [rsp + 0x200]
mov rax, qword [rax + 0x30]
mov rcx, qword [rdi + 0x88]
mov qword [rsp + 0x28], rax
mov rdi, qword [rdi + 0xb0]
mov rax, qword [rsp + 0x200]
mov qword [rsp + 0x70], rdi
mov rax, qword [rax + 0x58]
mov rdi, qword [rsp + 0x200]
mov qword [rsp + 0x40], rax
mov rsi, qword [rdi + 0x18]
mov rax, qword [rsp + 0x200]
mov rdi, qword [rdi + 0x40]
mov rbp, qword [rax + 0x80]
mov r14, qword [rax + 0xa8]
mov qword [rsp + 0x30], rdi
mov rax, qword [rax + 0x10]
mov rdi, qword [rsp + 0x200]
mov qword [rsp + 0x18], rax
mov rdi, qword [rdi + 0x68]
mov rax, qword [rsp + 0x200]
mov qword [rsp + 0x50], rdi
mov rax, qword [rax + 0x38]
mov rdi, qword [rsp + 0x200]
mov rdx, qword [rsp + 0x200]
mov r13, qword [rdi + 0x90]
mov rdi, qword [rdi + 0xb8]
mov rdx, qword [rdx + 0xc0]
mov qword [rsp + 0x78], rdi
mov rdi, qword [rsp + 0x200]
mov qword [rsp + 0x80], rdx
mov rdi, qword [rdi + 0x20]
lea rdx, [rsp + 0xf0]
mov qword [rsp + 0x20], rdi
mov rdi, qword [rsp + 0x200]
mov qword [rsp + 0xa8], rdx
mov rdi, qword [rdi + 0x48]
lea rdx, [rsp + 0x1b0]
mov qword [rsp + 0x38], rdi
mov rdi, qword [rsp + 0x200]
mov qword [rsp + 0xe8], rdx
mov rdi, qword [rdi + 0x70]
mov qword [rsp + 0x88], r15
mov qword [rsp + 0x58], rdi
mov rdi, qword [rsp + 0x200]
mov qword [rsp + 0x90], rbp
mov rdi, qword [rdi + 0x98]
mov qword [rsp + 0x98], r14
mov r15, rsi
mov r14, r13
mov rbp, rcx
mov r13, rax
nop dword [rax]
mov r9, qword [rsp + 0x10]
mov rax, qword [rsp + 0x18]
mov rdx, qword [rsp + 0x30]
xor r9, qword [rsp + 0x28]
xor rax, r13
xor rdx, r15
mov r11, qword [rsp + 0x20]
xor r9, qword [rsp + 0x40]
xor rax, qword [rsp + 0x48]
xor rdx, qword [rsp + 0x50]
mov r10, qword [rsp + 0x88]
xor r9, qword [rsp + 0x90]
xor rax, rbp
xor rdx, r14
xor r11, qword [rsp + 0x38]
xor rax, qword [rsp + 0x70]
xor r9, qword [rsp + 0x98]
xor rdx, qword [rsp + 0x78]
xor r10, rbx
xor r11, qword [rsp + 0x58]
xor r10, r12
mov rsi, rax
xor r11, rdi
rorx r8, r9, 0x3f
rorx rcx, rax, 0x3f
rorx rax, rdx, 0x3f
xor r9, rax
xor r11, qword [rsp + 0x80]
xor r13, r9
xor r10, qword [rsp + 0x60]
xor r8, r11
xor r10, qword [rsp + 0x68]
rorx rax, r11, 0x3f
rorx r11, r13, 0x3a
mov qword [rsp + 0xb8], r11
mov r11, qword [rsp + 0x40]
xor rcx, r10
xor r11, rcx
xor rax, rsi
xor rbp, r9
rorx r13, r11, 0x36
mov rsi, qword [rsp + 0x10]
mov qword [rsp + 0xc0], r13
rorx r10, r10, 0x3f
mov r13, qword [rsp + 0x88]
xor rdx, r10
mov r10, qword [rsp + 0x30]
rorx rbp, rbp, 0x31
mov qword [rsp + 0xc8], rbp
mov rbp, r15
xor rbx, r8
xor r12, r8
xor rsi, rcx
xor r14, rax
xor rbp, rax
xor r13, r8
xor r10, rax
rorx r15, r13, 0x1c
mov qword [rsp + 0xd0], r15
rorx r15, r10, 9
mov r10, qword [rsp + 0x98]
rorx r11, rbp, 0x24
xor r10, rcx
mov qword [rsp + 8], rbx
mov qword [rsp + 0xd8], r15
rorx rbx, r12, 0x3d
mov rbp, qword [rsp + 0x90]
mov qword [rsp + 0xb0], rbx
rorx r10, r10, 0x3e
mov qword [rsp + 0xe0], r10
mov r13, qword [rsp + 0x80]
mov rbx, qword [rsp + 0x60]
rorx r14, r14, 0x2b
xor rbx, r8
rorx r15, rbx, 0x17
mov rbx, qword [rsp + 0x78]
mov qword [rsp + 0x80], r15
xor rbx, rax
rorx rbx, rbx, 8
mov qword [rsp + 0x78], rbx
mov rbx, qword [rsp + 0x48]
mov r15, qword [rsp + 0x18]
xor rbx, r9
rorx rbx, rbx, 0x15
mov r12, rbx
mov qword [rsp + 0xa0], r12
xor r15, r9
xor rbp, rcx
rorx r15, r15, 2
xor rcx, qword [rsp + 0x28]
mov qword [rsp + 0x98], r15
andn r15, r12, r14
mov r12, qword [rsp + 0xa0]
rorx rcx, rcx, 0x14
xor r13, rdx
xor r15, rcx
rorx r13, r13, 0x32
mov qword [rsp + 0x10], r15
andn r15, r14, r13
xor r12, r15
mov qword [rsp + 0x18], r12
mov r12, qword [rsp + 8]
mov r10, qword [rsp + 0x20]
andn r15, r13, r12
mov rbx, qword [rsp + 0x58]
xor r15, r14
andn r14, r12, rcx
xor r14, r13
mov qword [rsp + 0x20], r14
mov r14, qword [rsp + 0xb0]
xor r10, rdx
xor rdi, rdx
xor rbx, rdx
xor rdx, qword [rsp + 0x38]
rorx rdx, rdx, 0x2c
andn r13, rdx, r14
mov r12, r13
xor r12, r11
rorx rbp, rbp, 0x13
mov qword [rsp + 0x88], r12
andn r13, r14, rbp
mov r12, r13
xor r9, qword [rsp + 0x70]
xor r12, rdx
xor rax, qword [rsp + 0x50]
rorx r9, r9, 3
xor r8, qword [rsp + 0x68]
andn r13, rbp, r9
mov qword [rsp + 0x28], r12
xor r13, r14
andn r12, r9, r11
xor r12, rbp
andn rdx, r11, rdx
mov qword [rsp + 0x30], r12
mov r11, qword [rsp + 0xb8]
mov r12, rdx
xor r12, r9
rorx rdi, rdi, 0x38
rorx rax, rax, 0x27
andn rdx, rax, rdi
mov r9, rdx
xor r9, r11
rorx r8, r8, 0x2e
mov qword [rsp + 0x40], r9
andn rdx, rdi, r8
mov r9, rdx
xor r9, rax
rorx rsi, rsi, 0x3f
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x48], r9
andn r12, r11, rax
andn rax, r8, rsi
mov r9, rax
xor r9, rdi
mov qword [rsp + 0x50], r9
xor r12, rsi
andn rsi, rsi, r11
mov r9, rsi
xor r9, r8
mov rsi, qword [rsp + 0xd0]
mov qword [rsp + 0x58], r9
mov rdi, qword [rsp + 0xc0]
mov r8, qword [rsp + 0x78]
andn rax, rsi, rdi
mov r9, rax
mov rax, rdi
mov rdi, qword [rsp + 0xc8]
mov r11, qword [rsp + 0x98]
andn rbp, rax, rdi
xor rbp, rsi
mov qword [rsp + 0x90], rbp
andn rbp, rdi, r8
xor rbp, rax
mov rax, qword [rsp + 0xd8]
mov rdx, qword [rsp + 0x80]
rorx r10, r10, 0x25
rorx rbx, rbx, 0x19
andn r14, r8, r10
xor r14, rdi
andn rdi, r10, rsi
mov rsi, qword [rsp + 0xe0]
xor rdi, r8
andn r8, rax, rbx
xor r8, r11
xor r9, r10
mov qword [rsp + 0x68], r8
andn r10, rbx, rdx
mov r8, r10
xor r8, rax
mov qword [rsp + 0x60], r9
andn r9, rdx, rsi
xor r9, rbx
andn rbx, rsi, r11
xor rbx, rdx
andn rax, r11, rax
xor rax, rsi
mov qword [rsp + 0x78], rbx
mov qword [rsp + 0x80], rax
andn rbx, rcx, qword [rsp + 0xa0]
mov rax, qword [rsp + 0xa8]
mov rcx, qword [rsp + 8]
add rax, 8
xor rcx, qword [rax - 8]
mov qword [rsp + 0x98], r8
mov qword [rsp + 0x70], r9
mov qword [rsp + 0xa8], rax
xor rbx, rcx
cmp rax, qword [rsp + 0xe8]
jne 0x641d50
mov rax, qword [rsp + 0x200]
mov rcx, qword [rsp + 0x60]
mov r8, r15
mov qword [rax + 0x78], rcx
mov rcx, qword [rsp + 0x68]
mov r15, qword [rsp + 0x88]
mov qword [rax + 0xa0], rcx
mov rcx, qword [rsp + 0x10]
mov rsi, r13
mov qword [rax + 8], rcx
mov rcx, qword [rsp + 0x28]
mov rdx, rbp
mov qword [rax + 0x30], rcx
mov rcx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x90]
mov qword [rax + 0x58], rcx
mov rcx, qword [rsp + 0x18]
mov r13, r14
mov qword [rax + 0x10], rcx
mov rcx, qword [rsp + 0x48]
mov r14, qword [rsp + 0x98]
mov qword [rax + 0x60], rcx
mov rcx, qword [rsp + 0x30]
mov qword [rax], rbx
mov qword [rax + 0x40], rcx
mov rcx, qword [rsp + 0x50]
mov qword [rax + 0x28], r15
mov qword [rax + 0x50], r12
mov qword [rax + 0x80], rbp
mov qword [rax + 0xa8], r14
mov qword [rax + 0x38], rsi
mov qword [rax + 0x88], rdx
mov qword [rax + 0xb0], r9
mov qword [rax + 0x18], r8
mov qword [rax + 0x68], rcx
mov qword [rax + 0x90], r13
mov rcx, qword [rsp + 0x78]
mov qword [rax + 0x98], rdi
mov qword [rax + 0xb8], rcx
mov rcx, qword [rsp + 0x20]
mov rdi, qword [rsp + 0x80]
mov qword [rax + 0x20], rcx
mov rcx, qword [rsp + 0x38]
mov qword [rax + 0xc0], rdi
mov qword [rax + 0x48], rcx
mov rcx, qword [rsp + 0x58]
mov qword [rax + 0x70], rcx
add rsp, 0x1b8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret