Function at 0x40b4c0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov rax, rcx
mov qword [rsp + 0x80], rcx
mov rdx, rcx
add rax, 0xa0
mov r8, rax
mov qword [rsp + 0x28], rax
xor eax, eax
nop
mov rcx, qword [r8 + rax*8]
xor qword [rdx + rax*8 + 0x20], rcx
add rax, 1
cmp rax, 8
jne 0x40b4f0
lea rax, [0x00465600]
mov qword [rsp + 8], rax
mov rax, qword [rsp + 0x80]
add rax, 0x30
mov qword [rsp + 0x18], rax
mov rax, qword [rsp + 0x80]
add rax, 0xb0
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x80]
sub rax, 0xffffffffffffff80
mov qword [rsp + 0x10], rax
mov rax, qword [rsp + 0x80]
lea r9, [rax + 0x90]
nop word cs:[rax + rax]
mov rsi, qword [rsp + 0x10]
mov r15, qword [rsp + 8]
mov r8, rsi
nop dword [rax]
mov rax, qword [rsi - 0x20]
mov rbx, qword [rsi]
mov r14, qword [rsi + 0x10]
mov rdi, qword [rsi - 0x10]
mov rcx, qword [rsi - 0x40]
not rbx
mov r10, rax
not r14
mov qword [rsi], rbx
not r10
mov qword [rsi + 0x10], r14
and r10, qword [r15]
mov r13, rdi
xor r10, qword [rsi - 0x60]
not r13
mov rdx, rbx
and rdx, rax
mov qword [rsi - 0x60], r10
and r13, qword [r15 + 0x10]
mov r11, r10
xor r13, qword [rsi - 0x50]
and r11, rcx
xor r10, rdx
mov rdx, r14
and rdx, rdi
mov qword [rsi - 0x50], r13
xor r11, qword [r15]
mov rbp, r13
xor r13, rdx
mov rdx, rcx
not rdx
and rdx, rax
mov r12, r11
mov r11, qword [rsi - 0x30]
xor rdx, rbx
mov rbx, r11
and rbp, r11
xor rbp, qword [r15 + 0x10]
not rbx
and rbx, rdi
xor rbx, r14
mov r14, r10
and r14, rax
xor rcx, r14
mov r14, r13
and r14, rdi
xor r14, r11
mov r11, rdx
not r11
and r11, r10
xor r11, rax
mov rax, rbx
not rax
and rax, r13
xor rax, rdi
mov rdi, rcx
or rdi, rdx
xor r10, rdi
mov rdi, r14
or rdi, rbx
xor r13, rdi
mov rdi, r11
xor r11, r12
and rdi, rcx
xor rdx, rdi
mov rdi, r10
and rdi, r12
xor rcx, rdi
mov rdi, r11
mov r12, rcx
xor r12, r13
and r13, rbp
xor rbp, rax
xor rbp, r10
xor rdi, r14
and rax, r14
xor rbp, rdx
xor rdx, r12
xor rdi, r13
xor rcx, rbp
mov qword [rsi], rdx
movabs rdx, 0x5555555555555555
mov qword [rsi - 0x40], rcx
movabs rcx, 0xaaaaaaaaaaaaaaaa
and rdx, r12
and rcx, r12
add rdx, rdx
xor rax, rbx
shr rcx, 1
xor rax, r10
xor r10, rdi
or rcx, rdx
movabs rdx, 0x5555555555555555
xor r11, rax
mov qword [rsi - 0x50], rcx
movabs rcx, 0xaaaaaaaaaaaaaaaa
and rdx, rdi
and rcx, rdi
add rdx, rdx
xor r11, r12
shr rcx, 1
mov qword [rsi - 0x60], r10
mov qword [rsi - 0x20], r11
or rcx, rdx
movabs rdx, 0x5555555555555555
mov qword [rsi - 0x30], rcx
movabs rcx, 0xaaaaaaaaaaaaaaaa
and rdx, rbp
and rcx, rbp
add rdx, rdx
shr rcx, 1
or rcx, rdx
movabs rdx, 0x5555555555555555
mov qword [rsi - 0x10], rcx
movabs rcx, 0xaaaaaaaaaaaaaaaa
and rdx, rax
and rcx, rax
shr rcx, 1
add rdx, rdx
add rsi, 8
mov rax, rcx
add r15, 8
or rax, rdx
mov qword [rsi + 8], rax
cmp rsi, r9
jne 0x40b570
mov rax, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
lea r15, [rax + 0x20]
nop dword [rax + rax]
mov rax, qword [rsi - 0x20]
mov rbx, qword [rsi]
mov r14, qword [rsi + 0x10]
mov rdi, qword [rsi - 0x10]
mov rcx, qword [rsi - 0x40]
not rbx
mov r10, rax
not r14
mov qword [rsi], rbx
not r10
mov qword [rsi + 0x10], r14
and r10, qword [r15]
mov r13, rdi
xor r10, qword [rsi - 0x60]
not r13
mov rdx, rbx
and rdx, rax
mov qword [rsi - 0x60], r10
and r13, qword [r15 + 0x10]
mov r11, r10
xor r13, qword [rsi - 0x50]
and r11, rcx
xor r10, rdx
mov rdx, r14
and rdx, rdi
mov qword [rsi - 0x50], r13
xor r11, qword [r15]
mov rbp, r13
xor r13, rdx
mov rdx, rcx
not rdx
and rdx, rax
mov r12, r11
mov r11, qword [rsi - 0x30]
xor rdx, rbx
mov rbx, r11
and rbp, r11
xor rbp, qword [r15 + 0x10]
not rbx
and rbx, rdi
xor rbx, r14
mov r14, r10
and r14, rax
xor rcx, r14
mov r14, r13
and r14, rdi
xor r14, r11
mov r11, rdx
not r11
and r11, r10
xor r11, rax
mov rax, rbx
not rax
and rax, r13
xor rax, rdi
mov rdi, rcx
or rdi, rdx
xor r10, rdi
mov rdi, r14
or rdi, rbx
xor r13, rdi
mov rdi, r11
xor r11, r12
and rdi, rcx
xor rdx, rdi
mov rdi, r10
and rdi, r12
xor rcx, rdi
mov rdi, r11
mov r12, rcx
xor r12, r13
and r13, rbp
xor rbp, rax
xor rbp, r10
xor rdi, r14
and rax, r14
xor rbp, rdx
xor rdx, r12
xor rdi, r13
xor rcx, rbp
mov qword [rsi], rdx
movabs rdx, 0x3333333333333333
mov qword [rsi - 0x40], rcx
movabs rcx, 0xcccccccccccccccc
and rdx, r12
and rcx, r12
shl rdx, 2
xor rax, rbx
shr rcx, 2
xor rax, r10
xor r10, rdi
or rcx, rdx
movabs rdx, 0x3333333333333333
xor r11, rax
mov qword [rsi - 0x50], rcx
movabs rcx, 0xcccccccccccccccc
and rdx, rdi
and rcx, rdi
shl rdx, 2
xor r11, r12
shr rcx, 2
mov qword [rsi - 0x60], r10
mov qword [rsi - 0x20], r11
or rcx, rdx
movabs rdx, 0x3333333333333333
mov qword [rsi - 0x30], rcx
movabs rcx, 0xcccccccccccccccc
and rdx, rbp
and rcx, rbp
shl rdx, 2
shr rcx, 2
or rcx, rdx
movabs rdx, 0x3333333333333333
mov qword [rsi - 0x10], rcx
movabs rcx, 0xcccccccccccccccc
and rdx, rax
and rcx, rax
shr rcx, 2
shl rdx, 2
add rsi, 8
mov rax, rcx
add r15, 8
or rax, rdx
mov qword [rsi + 8], rax
cmp rsi, r9
jne 0x40b750
mov rax, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
lea r15, [rax + 0x40]
mov rax, qword [rsi - 0x20]
mov rbx, qword [rsi]
mov r14, qword [rsi + 0x10]
mov rdi, qword [rsi - 0x10]
mov rcx, qword [rsi - 0x40]
not rbx
mov r10, rax
not r14
mov qword [rsi], rbx
not r10
mov qword [rsi + 0x10], r14
and r10, qword [r15]
mov r13, rdi
xor r10, qword [rsi - 0x60]
not r13
mov rdx, rbx
and rdx, rax
mov qword [rsi - 0x60], r10
and r13, qword [r15 + 0x10]
mov r11, r10
xor r13, qword [rsi - 0x50]
and r11, rcx
xor r10, rdx
mov rdx, r14
and rdx, rdi
mov qword [rsi - 0x50], r13
xor r11, qword [r15]
mov rbp, r13
xor r13, rdx
mov rdx, rcx
not rdx
and rdx, rax
mov r12, r11
mov r11, qword [rsi - 0x30]
xor rdx, rbx
mov rbx, r11
and rbp, r11
xor rbp, qword [r15 + 0x10]
not rbx
and rbx, rdi
xor rbx, r14
mov r14, r10
and r14, rax
xor rcx, r14
mov r14, r13
and r14, rdi
xor r14, r11
mov r11, rdx
not r11
and r11, r10
xor r11, rax
mov rax, rbx
not rax
and rax, r13
xor rax, rdi
mov rdi, rcx
or rdi, rdx
xor r10, rdi
mov rdi, r14
or rdi, rbx
xor r13, rdi
mov rdi, r11
xor r11, r12
and rdi, rcx
xor rdx, rdi
mov rdi, r10
and rdi, r12
xor rcx, rdi
mov rdi, r11
mov r12, rcx
xor r12, r13
and r13, rbp
xor rbp, rax
and rax, r14
xor rbp, r10
xor rdi, r14
xor rax, rbx
xor rbp, rdx
xor rdx, r12
xor rax, r10
movabs rbx, 0xf0f0f0f0f0f0f0f
mov qword [rsi], rdx
xor r11, rax
movabs rdx, 0xf0f0f0f0f0f0f0f0
xor rdi, r13
xor r11, r12
and rdx, r12
and r12, rbx
shr rdx, 4
shl r12, 4
xor r10, rdi
or r12, rdx
movabs rdx, 0xf0f0f0f0f0f0f0f0
xor rcx, rbp
and rdx, rdi
and rdi, rbx
mov qword [rsi - 0x60], r10
shr rdx, 4
shl rdi, 4
mov qword [rsi - 0x40], rcx
or rdi, rdx
movabs rdx, 0xf0f0f0f0f0f0f0f0
mov qword [rsi - 0x20], r11
and rdx, rbp
and rbp, rbx
mov qword [rsi - 0x50], r12
shr rdx, 4
shl rbp, 4
mov qword [rsi - 0x30], rdi
or rbp, rdx
movabs rdx, 0xf0f0f0f0f0f0f0f0
and rdx, rax
and rax, rbx
mov qword [rsi - 0x10], rbp
shr rdx, 4
shl rax, 4
add rsi, 8
or rax, rdx
add r15, 8
mov qword [rsi + 8], rax
cmp rsi, r9
jne 0x40b930
mov rax, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
lea r15, [rax + 0x60]
nop
mov rax, qword [rsi - 0x20]
mov rbx, qword [rsi]
mov r14, qword [rsi + 0x10]
mov rdi, qword [rsi - 0x10]
mov rcx, qword [rsi - 0x40]
not rbx
mov r10, rax
not r14
mov qword [rsi], rbx
not r10
mov qword [rsi + 0x10], r14
and r10, qword [r15]
mov r13, rdi
xor r10, qword [rsi - 0x60]
not r13
mov rdx, rbx
and rdx, rax
mov qword [rsi - 0x60], r10
and r13, qword [r15 + 0x10]
mov r11, r10
xor r13, qword [rsi - 0x50]
and r11, rcx
xor r10, rdx
mov rdx, r14
and rdx, rdi
mov qword [rsi - 0x50], r13
xor r11, qword [r15]
mov rbp, r13
xor r13, rdx
mov rdx, rcx
not rdx
and rdx, rax
mov r12, r11
mov r11, qword [rsi - 0x30]
xor rdx, rbx
mov rbx, r11
and rbp, r11
xor rbp, qword [r15 + 0x10]
not rbx
and rbx, rdi
xor rbx, r14
mov r14, r10
and r14, rax
xor rcx, r14
mov r14, r13
and r14, rdi
xor r14, r11
mov r11, rdx
not r11
and r11, r10
xor r11, rax
mov rax, rbx
not rax
and rax, r13
xor rax, rdi
mov rdi, rcx
or rdi, rdx
xor r10, rdi
mov rdi, r14
or rdi, rbx
xor r13, rdi
mov rdi, r11
xor r11, r12
and rdi, rcx
xor rdx, rdi
mov rdi, r10
and rdi, r12
xor rcx, rdi
mov rdi, r11
mov r12, rcx
xor r12, r13
and r13, rbp
xor rbp, rax
and rax, r14
xor rbp, r10
xor rdi, r14
xor rax, rbx
xor rbp, rdx
xor rdx, r12
xor rax, r10
movabs rbx, 0xff00ff00ff00ff
mov qword [rsi], rdx
xor r11, rax
movabs rdx, 0xff00ff00ff00ff00
xor rdi, r13
xor r11, r12
and rdx, r12
and r12, rbx
shr rdx, 8
shl r12, 8
xor r10, rdi
or r12, rdx
movabs rdx, 0xff00ff00ff00ff00
xor rcx, rbp
and rdx, rdi
and rdi, rbx
mov qword [rsi - 0x60], r10
shr rdx, 8
shl rdi, 8
mov qword [rsi - 0x40], rcx
or rdi, rdx
movabs rdx, 0xff00ff00ff00ff00
mov qword [rsi - 0x20], r11
and rdx, rbp
and rbp, rbx
mov qword [rsi - 0x50], r12
shr rdx, 8
shl rbp, 8
mov qword [rsi - 0x30], rdi
or rbp, rdx
movabs rdx, 0xff00ff00ff00ff00
and rdx, rax
and rax, rbx
mov qword [rsi - 0x10], rbp
shr rdx, 8
shl rax, 8
add rsi, 8
or rax, rdx
add r15, 8
mov qword [rsi + 8], rax
cmp rsi, r9
jne 0x40baf0
mov rax, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
lea r15, [rax + 0x80]
nop word cs:[rax + rax]
mov rax, qword [rsi - 0x20]
mov rbx, qword [rsi]
mov r14, qword [rsi + 0x10]
mov rdi, qword [rsi - 0x10]
mov rcx, qword [rsi - 0x40]
not rbx
mov r10, rax
not r14
mov qword [rsi], rbx
not r10
mov qword [rsi + 0x10], r14
and r10, qword [r15]
mov r13, rdi
xor r10, qword [rsi - 0x60]
not r13
mov rdx, rbx
and rdx, rax
mov qword [rsi - 0x60], r10
and r13, qword [r15 + 0x10]
mov r11, r10
xor r13, qword [rsi - 0x50]
and r11, rcx
xor r10, rdx
mov rdx, r14
and rdx, rdi
mov qword [rsi - 0x50], r13
xor r11, qword [r15]
mov rbp, r13
xor r13, rdx
mov rdx, rcx
not rdx
and rdx, rax
mov r12, r11
mov r11, qword [rsi - 0x30]
xor rdx, rbx
mov rbx, r11
and rbp, r11
xor rbp, qword [r15 + 0x10]
not rbx
and rbx, rdi
xor rbx, r14
mov r14, r10
and r14, rax
xor rcx, r14
mov r14, r13
and r14, rdi
xor r14, r11
mov r11, rdx
not r11
and r11, r10
xor r11, rax
mov rax, rbx
not rax
and rax, r13
xor rax, rdi
mov rdi, rcx
or rdi, rdx
xor r10, rdi
mov rdi, r14
or rdi, rbx
xor r13, rdi
mov rdi, r11
xor r11, r12
and rdi, rcx
xor rdx, rdi
mov rdi, r10
and rdi, r12
xor rcx, rdi
mov rdi, r11
mov r12, rcx
xor r12, r13
and r13, rbp
xor rbp, rax
and rax, r14
xor rbp, r10
xor rdi, r14
xor rax, rbx
xor rbp, rdx
xor rdx, r12
xor rax, r10
movabs rbx, 0xffff0000ffff
mov qword [rsi], rdx
xor r11, rax
movabs rdx, 0xffff0000ffff0000
xor rdi, r13
xor r11, r12
and rdx, r12
and r12, rbx
shr rdx, 0x10
shl r12, 0x10
xor r10, rdi
or r12, rdx
movabs rdx, 0xffff0000ffff0000
xor rcx, rbp
and rdx, rdi
and rdi, rbx
mov qword [rsi - 0x60], r10
shr rdx, 0x10
shl rdi, 0x10
mov qword [rsi - 0x40], rcx
or rdi, rdx
movabs rdx, 0xffff0000ffff0000
mov qword [rsi - 0x20], r11
and rdx, rbp
and rbp, rbx
mov qword [rsi - 0x50], r12
shr rdx, 0x10
shl rbp, 0x10
mov qword [rsi - 0x30], rdi
or rbp, rdx
movabs rdx, 0xffff0000ffff0000
and rdx, rax
and rax, rbx
mov qword [rsi - 0x10], rbp
shr rdx, 0x10
shl rax, 0x10
add rsi, 8
or rax, rdx
add r15, 8
mov qword [rsi + 8], rax
cmp rsi, r9
jne 0x40bcc0
mov rax, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
lea r14, [rax + 0xa0]
nop word cs:[rax + rax]
mov rcx, qword [rsi - 0x20]
mov rax, qword [rsi]
mov rbp, qword [rsi + 0x10]
mov r13, qword [rsi - 0x10]
mov r11, qword [rsi - 0x40]
not rax
mov rbx, rcx
not rbp
mov qword [rsi], rax
not rbx
mov qword [rsi + 0x10], rbp
and rbx, qword [r14]
mov r15, r13
xor rbx, qword [rsi - 0x60]
not r15
mov r10, rax
and r10, rcx
mov qword [rsi - 0x60], rbx
and r15, qword [r14 + 0x10]
mov rdi, rbx
xor r15, qword [rsi - 0x50]
and rdi, r11
xor rbx, r10
mov r10, rbp
and r10, r13
mov qword [rsi - 0x50], r15
xor rdi, qword [r14]
mov rdx, r15
xor r15, r10
mov r10, r11
not r10
and r10, rcx
mov r12, rdi
mov rdi, qword [rsi - 0x30]
xor r10, rax
mov rax, rdi
and rdx, rdi
xor rdx, qword [r14 + 0x10]
not rax
and rax, r13
xor rax, rbp
mov rbp, rbx
and rbp, rcx
xor r11, rbp
mov rbp, r15
and rbp, r13
xor rbp, rdi
mov rdi, r10
not rdi
and rdi, rbx
xor rdi, rcx
mov rcx, rax
not rcx
and rcx, r15
xor r13, rcx
mov rcx, r11
or rcx, r10
xor rbx, rcx
mov rcx, rbp
or rcx, rax
xor r15, rcx
mov rcx, rdi
xor rdi, r12
and rcx, r11
xor r10, rcx
mov rcx, rbx
and rcx, r12
xor r11, rcx
mov rcx, rdi
mov r12, r11
xor r12, r15
xor rcx, rbp
and rbp, r13
and r15, rdx
xor rax, rbp
xor rdx, r13
xor rax, rbx
xor rdx, rbx
xor rcx, r15
xor rdx, r10
xor rdi, rax
xor rbx, rcx
xor r11, rdx
xor rdi, r12
xor r10, r12
rol rcx, 0x20
rol r12, 0x20
rol rdx, 0x20
rol rax, 0x20
mov qword [rsi - 0x60], rbx
mov qword [rsi - 0x40], r11
mov qword [rsi - 0x20], rdi
mov qword [rsi], r10
add rsi, 8
mov qword [rsi - 0x58], r12
mov qword [rsi - 0x38], rcx
add r14, 8
mov qword [rsi - 0x18], rdx
mov qword [rsi + 8], rax
cmp rsi, r9
jne 0x40be90
mov rax, qword [rsp + 8]
lea r14, [rax + 0xc0]
nop word [rax + rax]
mov rax, qword [r8 - 0x20]
mov rbp, qword [r8]
mov r11, qword [r8 + 0x10]
mov r12, qword [r8 - 0x10]
mov rbx, qword [r8 - 0x40]
not rbp
mov rsi, rax
not r11
mov qword [r8], rbp
not rsi
mov qword [r8 + 0x10], r11
and rsi, qword [r14]
mov r15, r12
xor rsi, qword [r8 - 0x60]
not r15
mov rdx, rbp
and rdx, rax
mov r10, rbx
not r10
and r10, rax
mov qword [r8 - 0x60], rsi
and r15, qword [r14 + 0x10]
mov rdi, rsi
xor r15, qword [r8 - 0x50]
and rdi, rbx
xor rsi, rdx
mov rdx, r11
xor r10, rbp
and rdx, r12
mov qword [r8 - 0x50], r15
xor rdi, qword [r14]
mov rcx, r15
xor r15, rdx
mov rbp, r15
and rbp, r12
mov r13, rdi
mov rdi, qword [r8 - 0x30]
mov rdx, rdi
xor rbp, rdi
and rcx, rdi
not rdx
mov rdi, r10
xor rcx, qword [r14 + 0x10]
and rdx, r12
not rdi
xor r11, rdx
and rdi, rsi
mov rdx, rsi
and rdx, rax
xor rdi, rax
mov rax, r11
not rax
xor rbx, rdx
mov rdx, rbp
and rax, r15
or rdx, r11
xor r12, rax
mov rax, rbx
xor rdx, r15
or rax, r10
xor rsi, rax
mov rax, rdi
xor rdi, r13
and rax, rbx
xor r10, rax
mov rax, rsi
and rax, r13
xor rbx, rax
mov rax, rdi
mov r13, rbx
xor r13, rdx
and rdx, rcx
xor rax, rbp
xor rcx, r12
and rbp, r12
xor rax, rdx
xor r11, rbp
mov rdx, rcx
mov qword [r8 - 0x30], rax
xor r11, rsi
xor rdx, rsi
xor rax, rsi
xor rdx, r10
mov qword [r8 + 0x10], r11
xor r11, rdi
mov qword [r8 - 0x10], rdx
xor r11, r13
xor rdx, rbx
xor r10, r13
mov qword [r8 - 0x50], r13
mov qword [r8 - 0x60], rax
mov qword [r8 - 0x40], rdx
mov qword [r8 - 0x20], r11
add r8, 8
mov qword [r8 - 8], r10
add r14, 8
cmp r8, r9
jne 0x40bff0
mov rax, qword [rsp + 0x18]
mov r8, qword [rsp + 0x20]
nop dword [rax]
mov rdx, qword [rax]
mov rcx, qword [rax + 8]
add rax, 0x20
mov qword [rax - 0x20], rcx
mov qword [rax - 0x18], rdx
cmp rax, r8
jne 0x40c140
add qword [rsp + 8], 0xe0
lea rbx, [0x00465b40]
mov rax, qword [rsp + 8]
cmp rax, rbx
jne 0x40b560
mov r9, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x80]
xor ecx, ecx
nop word cs:[rax + rax]
lea rax, [rcx + 8]
mov r8, rcx
and r8d, 1
and rax, 0xfffffffffffffffe
add rax, r8
mov r8, qword [r9 + rcx*8]
add rcx, 1
xor qword [rdx + rax*8 + 0x20], r8
cmp rcx, 8
jne 0x40c190
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret