Function at 0x14040d93e
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xf8
lea r11, [0x140738220]
lea r10, [0x140737a20]
lea r9, [0x140737220]
lea r8, [0x140736a20]
mov rdi, qword [rdx]
mov rbx, qword [rdx + 0x10]
mov rsi, qword [rdx + 0x18]
mov qword [rsp + 0x88], rdi
mov rdi, qword [rdx + 8]
mov rax, rdx
mov qword [rsp + 0xa8], rbx
mov rbx, qword [rdx + 0x28]
mov qword [rsp + 0xa0], rdi
mov rdi, qword [rdx + 0x20]
mov qword [rsp + 0xb0], rsi
mov rsi, qword [rdx + 0x30]
mov qword [rsp + 0xb8], rdi
mov rdi, qword [rdx + 0x38]
mov qword [rsp + 0xc0], rbx
mov rbx, qword [rsp + 0x88]
mov qword [rsp + 0xc8], rsi
xor rbx, qword [rcx]
mov rsi, qword [rsp + 0xa0]
xor rsi, qword [rcx + 8]
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0xe8], rbx
mov rdi, qword [rsp + 0xa8]
mov qword [rsp + 0x98], rsi
xor rdi, qword [rcx + 0x10]
mov rbx, qword [rsp + 0xb0]
xor rbx, qword [rcx + 0x18]
mov qword [rsp + 0x78], rdi
mov rsi, qword [rsp + 0xb8]
xor rsi, qword [rcx + 0x20]
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x48], rsi
mov rdi, qword [rsp + 0xc0]
xor rdi, qword [rcx + 0x28]
mov rsi, qword [rsp + 0xd0]
xor rsi, qword [rcx + 0x38]
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x10], rsi
mov rdi, qword [rsp + 0xc8]
mov rsi, qword [rsp + 0xd0]
mov rbx, qword [rsp + 0xc8]
xor rbx, qword [rcx + 0x30]
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], rbx
lea rbx, [0x1407359c0]
mov rdi, qword [rsp + 0xb0]
mov qword [rsp + 0xe0], rbx
mov rbx, qword [rsp + 0xc0]
mov qword [rsp + 8], rsi
mov rsi, qword [rsp + 0xb8]
mov qword [rsp + 0x28], rbx
mov rbx, qword [rsp + 0xa8]
mov qword [rsp + 0x40], rsi
mov rsi, qword [rsp + 0xa0]
mov qword [rsp + 0x58], rdi
mov rdi, qword [rsp + 0xe8]
mov qword [rsp + 0x70], rbx
lea rbx, [0x140738a20]
mov qword [rsp + 0x90], rsi
lea rsi, [0x140735a20]
mov qword [rsp + 0xd8], rdi
lea rdi, [0x140739220]
mov rdx, qword [rsp + 0x88]
mov r12, qword [rsp + 0x90]
lea r15, [0x140736220]
mov qword [rsp + 0x38], rdx
movzx ebp, byte [rsp + 0x38]
shr r12, 0x38
mov rdx, qword [rsp + 0xe0]
mov rbp, qword [rdi + rbp*8]
xor rbp, qword [rsi + r12*8]
mov r12, qword [rsp + 0x18]
xor rbp, qword [rdx]
mov rdx, qword [rsp + 8]
shr r12, 0x10
movzx edx, dh
movzx r12d, r12b
xor rbp, qword [rbx + rdx*8]
xor rbp, qword [r11 + r12*8]
mov r12d, dword [rsp + 0x28]
mov rdx, qword [rsp + 0x90]
shr r12d, 0x18
mov qword [rsp + 0x50], rdx
mov rdx, qword [rsp + 0x38]
xor rbp, qword [r10 + r12*8]
mov r12, qword [rsp + 0x40]
movzx edx, dh
shr r12, 0x20
movzx r12d, r12b
xor rbp, qword [r9 + r12*8]
mov r12, qword [rsp + 0x58]
shr r12, 0x28
movzx r12d, r12b
xor rbp, qword [r8 + r12*8]
mov r12, qword [rsp + 0x70]
shr r12, 0x30
movzx r12d, r12b
xor rbp, qword [r15 + r12*8]
mov r12, qword [rsp + 0x70]
mov qword [rsp + 0x88], rbp
movzx ebp, byte [rsp + 0x50]
shr r12, 0x38
mov rbp, qword [rdi + rbp*8]
xor rbp, qword [rsi + r12*8]
mov r12, qword [rsp + 8]
xor rbp, qword [rbx + rdx*8]
shr r12, 0x10
movzx r12d, r12b
xor rbp, qword [r11 + r12*8]
mov r12d, dword [rsp + 0x18]
shr r12d, 0x18
xor rbp, qword [r10 + r12*8]
mov r12, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x70]
shr r12, 0x20
movzx r12d, r12b
mov qword [rsp + 0x68], rdx
mov rdx, qword [rsp + 0x50]
xor rbp, qword [r9 + r12*8]
mov r12, qword [rsp + 0x40]
movzx edx, dh
shr r12, 0x28
movzx r12d, r12b
xor rbp, qword [r8 + r12*8]
mov r12, qword [rsp + 0x58]
shr r12, 0x30
movzx r12d, r12b
xor rbp, qword [r15 + r12*8]
mov r12, qword [rsp + 0x58]
mov qword [rsp + 0x90], rbp
movzx ebp, byte [rsp + 0x68]
shr r12, 0x38
mov rbp, qword [rdi + rbp*8]
xor rbp, qword [rsi + r12*8]
mov r12, qword [rsp + 0x38]
xor rbp, qword [rbx + rdx*8]
mov rdx, qword [rsp + 0x58]
shr r12, 0x10
movzx r12d, r12b
mov qword [rsp + 0x80], rdx
xor rbp, qword [r11 + r12*8]
mov r12d, dword [rsp + 8]
shr r12d, 0x18
xor rbp, qword [r10 + r12*8]
mov r12, qword [rsp + 0x18]
shr r12, 0x20
movzx r12d, r12b
xor rbp, qword [r9 + r12*8]
mov r12, qword [rsp + 0x28]
shr r12, 0x28
movzx r12d, r12b
xor rbp, qword [r8 + r12*8]
mov r12, qword [rsp + 0x40]
shr r12, 0x30
movzx r12d, r12b
xor rbp, qword [r15 + r12*8]
mov r12, qword [rsp + 0x40]
mov qword [rsp + 0x70], rbp
movzx ebp, byte [rsp + 0x80]
shr r12, 0x38
mov rbp, qword [rdi + rbp*8]
xor rbp, qword [rsi + r12*8]
mov r12, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x68]
mov r13, qword [rsp + 0x28]
shr r12, 0x10
movzx edx, dh
movzx r12d, r12b
xor rbp, qword [rbx + rdx*8]
shr r13, 0x38
mov rdx, qword [rsp + 0x80]
xor rbp, qword [r11 + r12*8]
mov r12d, dword [rsp + 0x38]
movzx edx, dh
shr r12d, 0x18
xor rbp, qword [r10 + r12*8]
mov r12, qword [rsp + 8]
shr r12, 0x20
movzx r12d, r12b
xor rbp, qword [r9 + r12*8]
mov r12, qword [rsp + 0x18]
shr r12, 0x28
movzx r12d, r12b
xor rbp, qword [r8 + r12*8]
mov r12, qword [rsp + 0x28]
shr r12, 0x30
movzx r12d, r12b
xor rbp, qword [r15 + r12*8]
mov r12, qword [rsp + 0x40]
mov qword [rsp + 0x58], rbp
movzx ebp, r12b
mov rbp, qword [rdi + rbp*8]
xor rbp, qword [rsi + r13*8]
mov r13, qword [rsp + 0x68]
xor rbp, qword [rbx + rdx*8]
mov rdx, r12
movzx edx, dh
shr r13, 0x10
movzx r13d, r13b
xor rbp, qword [r11 + r13*8]
mov r13d, dword [rsp + 0x50]
shr r13d, 0x18
xor rbp, qword [r10 + r13*8]
mov r13, qword [rsp + 0x38]
shr r13, 0x20
movzx r13d, r13b
xor rbp, qword [r9 + r13*8]
mov r13, qword [rsp + 8]
shr r13, 0x28
movzx r13d, r13b
xor rbp, qword [r8 + r13*8]
mov r13, qword [rsp + 0x18]
shr r13, 0x30
movzx r13d, r13b
xor rbp, qword [r15 + r13*8]
mov r13, qword [rsp + 0x28]
mov qword [rsp + 0x40], rbp
mov r14, qword [rsp + 0x18]
movzx ebp, r13b
shr r14, 0x38
mov rbp, qword [rdi + rbp*8]
xor rbp, qword [rsi + r14*8]
mov r14, qword [rsp + 0x80]
xor rbp, qword [rbx + rdx*8]
mov rdx, r13
shr r13, 0x10
shr r14, 0x10
movzx edx, dh
movzx r13d, r13b
movzx r14d, r14b
xor rbp, qword [r11 + r14*8]
mov r14d, dword [rsp + 0x68]
shr r14d, 0x18
xor rbp, qword [r10 + r14*8]
mov r14, qword [rsp + 0x50]
shr r14, 0x20
movzx r14d, r14b
xor rbp, qword [r9 + r14*8]
mov r14, qword [rsp + 0x38]
shr r14, 0x28
movzx r14d, r14b
xor rbp, qword [r8 + r14*8]
mov r14, qword [rsp + 8]
shr r14, 0x30
movzx r14d, r14b
xor rbp, qword [r15 + r14*8]
mov r14, qword [rsp + 0x18]
mov r15, qword [rsp + 8]
mov qword [rsp + 0x28], rbp
movzx ebp, r14b
shr r15, 0x38
mov rbp, qword [rdi + rbp*8]
xor rbp, qword [rsi + r15*8]
mov r15, r12
xor rbp, qword [rbx + rdx*8]
shr r15, 0x10
lea rdx, [0x140736220]
movzx r15d, r15b
xor rbp, qword [r11 + r15*8]
mov r15d, dword [rsp + 0x80]
shr r15d, 0x18
xor rbp, qword [r10 + r15*8]
mov r15, qword [rsp + 0x68]
shr r15, 0x20
movzx r15d, r15b
xor rbp, qword [r9 + r15*8]
mov r15, qword [rsp + 0x50]
shr r15, 0x28
movzx r15d, r15b
xor rbp, qword [r8 + r15*8]
mov r15, qword [rsp + 0x38]
shr r15, 0x30
movzx r15d, r15b
xor rbp, qword [rdx + r15*8]
mov r15, qword [rsp + 0x38]
mov rdx, r14
lea r14, [0x140736220]
mov qword [rsp + 0x18], rbp
movzx ebp, byte [rsp + 8]
movzx edx, dh
shr r15, 0x38
mov rbp, qword [rdi + rbp*8]
xor rbp, qword [rsi + r15*8]
mov r15, r14
xor rbp, qword [rbx + rdx*8]
xor rbp, qword [r11 + r13*8]
shr r12d, 0x18
xor rbp, qword [r10 + r12*8]
mov r12, qword [rsp + 0x80]
mov rdx, qword [rsp + 0xd8]
shr r12, 0x20
movzx r12d, r12b
mov qword [rsp + 0x38], rdx
mov rdx, qword [rsp + 0x10]
xor rbp, qword [r9 + r12*8]
mov r12, qword [rsp + 0x68]
movzx edx, dh
shr r12, 0x28
movzx r12d, r12b
xor rbp, qword [r8 + r12*8]
mov r12, qword [rsp + 0x50]
shr r12, 0x30
movzx r12d, r12b
xor rbp, qword [r14 + r12*8]
mov r12, qword [rsp + 0x98]
mov qword [rsp + 8], rbp
movzx ebp, byte [rsp + 0x38]
shr r12, 0x38
mov rbp, qword [rdi + rbp*8]
xor rbp, qword [rsi + r12*8]
mov r12, qword [rsp + 0x20]
xor rbp, qword [rbx + rdx*8]
shr r12, 0x10
movzx r12d, r12b
xor rbp, qword [r11 + r12*8]
mov r12d, dword [rsp + 0x30]
shr r12d, 0x18
xor rbp, qword [r10 + r12*8]
mov r12, qword [rsp + 0x48]
shr r12, 0x20
movzx r12d, r12b
xor rbp, qword [r9 + r12*8]
mov r12, qword [rsp + 0x60]
shr r12, 0x28
movzx r12d, r12b
xor rbp, qword [r8 + r12*8]
mov r12, qword [rsp + 0x78]
shr r12, 0x30
movzx r12d, r12b
xor rbp, qword [r14 + r12*8]
xor rbp, qword [rsp + 0x88]
mov qword [rsp + 0xd8], rbp
mov rdx, qword [rsp + 0x98]
mov r12, qword [rsp + 0x78]
mov qword [rsp + 0x50], rdx
movzx ebp, byte [rsp + 0x50]
shr r12, 0x38
mov rdx, qword [rsp + 0x38]
mov rbp, qword [rdi + rbp*8]
xor rbp, qword [rsi + r12*8]
mov r12, qword [rsp + 0x10]
movzx edx, dh
xor rbp, qword [rbx + rdx*8]
mov rdx, qword [rsp + 0x78]
shr r12, 0x10
movzx r12d, r12b
mov qword [rsp + 0x68], rdx
mov rdx, qword [rsp + 0x50]
xor rbp, qword [r11 + r12*8]
mov r12d, dword [rsp + 0x20]
movzx edx, dh
shr r12d, 0x18
xor rbp, qword [r10 + r12*8]
mov r12, qword [rsp + 0x30]
shr r12, 0x20
movzx r12d, r12b
xor rbp, qword [r9 + r12*8]
mov r12, qword [rsp + 0x48]
shr r12, 0x28
movzx r12d, r12b
xor rbp, qword [r8 + r12*8]
mov r12, qword [rsp + 0x60]
shr r12, 0x30
movzx r12d, r12b
xor rbp, qword [r14 + r12*8]
mov r12, qword [rsp + 0x60]
xor rbp, qword [rsp + 0x90]
mov qword [rsp + 0x98], rbp
movzx ebp, byte [rsp + 0x68]
shr r12, 0x38
mov rbp, qword [rdi + rbp*8]
xor rbp, qword [rsi + r12*8]
mov r12, qword [rsp + 0x38]
xor rbp, qword [rbx + rdx*8]
shr r12, 0x10
movzx r12d, r12b
xor rbp, qword [r11 + r12*8]
mov r12d, dword [rsp + 0x10]
shr r12d, 0x18
xor rbp, qword [r10 + r12*8]
mov r12, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x60]
mov r13, qword [rsp + 0x30]
shr r12, 0x20
movzx r12d, r12b
mov qword [rsp + 0x80], rdx
mov rdx, qword [rsp + 0x68]
xor rbp, qword [r9 + r12*8]
mov r12, qword [rsp + 0x30]
movzx edx, dh
shr r12, 0x28
movzx r12d, r12b
xor rbp, qword [r8 + r12*8]
mov r12, qword [rsp + 0x48]
shr r12, 0x30
movzx r12d, r12b
xor rbp, qword [r14 + r12*8]
mov r12, qword [rsp + 0x48]
xor rbp, qword [rsp + 0x70]
mov qword [rsp + 0x78], rbp
movzx ebp, byte [rsp + 0x80]
shr r12, 0x38
mov rbp, qword [rdi + rbp*8]
xor rbp, qword [rsi + r12*8]
mov r12, qword [rsp + 0x50]
xor rbp, qword [rbx + rdx*8]
shr r12, 0x10
movzx r12d, r12b
xor rbp, qword [r11 + r12*8]
mov r12d, dword [rsp + 0x38]
shr r12d, 0x18
xor rbp, qword [r10 + r12*8]
mov r12, qword [rsp + 0x10]
shr r12, 0x20
movzx r12d, r12b
xor rbp, qword [r9 + r12*8]
mov r12, qword [rsp + 0x20]
shr r12, 0x28
movzx r12d, r12b
xor rbp, qword [r8 + r12*8]
mov r12, qword [rsp + 0x30]
shr r12, 0x30
movzx r12d, r12b
xor rbp, qword [r14 + r12*8]
mov r12, qword [rsp + 0x48]
xor rbp, qword [rsp + 0x58]
shr r13, 0x38
mov qword [rsp + 0x60], rbp
movzx ebp, r12b
mov rbp, qword [rdi + rbp*8]
xor rbp, qword [rsi + r13*8]
mov rdx, qword [rsp + 0x80]
mov r13, qword [rsp + 0x68]
shr r13, 0x10
movzx edx, dh
movzx r13d, r13b
xor rbp, qword [rbx + rdx*8]
mov rdx, r12
xor rbp, qword [r11 + r13*8]
mov r13d, dword [rsp + 0x50]
movzx edx, dh
shr r13d, 0x18
xor rbp, qword [r10 + r13*8]
mov r13, qword [rsp + 0x38]
shr r13, 0x20
movzx r13d, r13b
xor rbp, qword [r9 + r13*8]
mov r13, qword [rsp + 0x10]
shr r13, 0x28
movzx r13d, r13b
xor rbp, qword [r8 + r13*8]
mov r13, qword [rsp + 0x20]
shr r13, 0x30
movzx r13d, r13b
xor rbp, qword [r14 + r13*8]
mov r13, qword [rsp + 0x30]
mov r14, qword [rsp + 0x20]
xor rbp, qword [rsp + 0x40]
mov qword [rsp + 0x48], rbp
movzx ebp, r13b
shr r14, 0x38
mov rbp, qword [rdi + rbp*8]
xor rbp, qword [rsi + r14*8]
mov r14, qword [rsp + 0x80]
xor rbp, qword [rbx + rdx*8]
mov rdx, r13
shr r14, 0x10
movzx edx, dh
movzx r14d, r14b
xor rbp, qword [r11 + r14*8]
mov r14d, dword [rsp + 0x68]
shr r14d, 0x18
xor rbp, qword [r10 + r14*8]
mov r14, qword [rsp + 0x50]
shr r14, 0x20
movzx r14d, r14b
xor rbp, qword [r9 + r14*8]
mov r14, qword [rsp + 0x38]
shr r14, 0x28
movzx r14d, r14b
xor rbp, qword [r8 + r14*8]
mov r14, qword [rsp + 0x10]
shr r14, 0x30
movzx r14d, r14b
xor rbp, qword [r15 + r14*8]
xor rbp, qword [rsp + 0x28]
mov r14, qword [rsp + 0x20]
mov qword [rsp + 0x30], rbp
mov r15, qword [rsp + 0x10]
movzx ebp, r14b
shr r15, 0x38
mov rbp, qword [rdi + rbp*8]
xor rbp, qword [rsi + r15*8]
mov r15, r12
xor rbp, qword [rbx + rdx*8]
shr r15, 0x10
lea rdx, [0x140736220]
shr r13, 0x10
add qword [rsp + 0xe0], 8
movzx r15d, r15b
shr r12d, 0x18
movzx r13d, r13b
xor rbp, qword [r11 + r15*8]
mov r15d, dword [rsp + 0x80]
shr r15d, 0x18
xor rbp, qword [r10 + r15*8]
mov r15, qword [rsp + 0x68]
shr r15, 0x20
movzx r15d, r15b
xor rbp, qword [r9 + r15*8]
mov r15, qword [rsp + 0x50]
shr r15, 0x28
movzx r15d, r15b
xor rbp, qword [r8 + r15*8]
mov r15, qword [rsp + 0x38]
shr r15, 0x30
movzx r15d, r15b
xor rbp, qword [rdx + r15*8]
mov r15, qword [rsp + 0x38]
mov rdx, r14
xor rbp, qword [rsp + 0x18]
movzx edx, dh
mov qword [rsp + 0x20], rbp
movzx ebp, byte [rsp + 0x10]
shr r15, 0x38
mov rbp, qword [rdi + rbp*8]
xor rbp, qword [rsi + r15*8]
lea r15, [0x140736220]
xor rbp, qword [rbx + rdx*8]
xor rbp, qword [r11 + r13*8]
lea rdx, [0x140735a10]
xor rbp, qword [r10 + r12*8]
mov r12, qword [rsp + 0x80]
shr r12, 0x20
movzx r12d, r12b
xor rbp, qword [r9 + r12*8]
mov r12, qword [rsp + 0x68]
shr r12, 0x28
movzx r12d, r12b
xor rbp, qword [r8 + r12*8]
mov r12, qword [rsp + 0x50]
shr r12, 0x30
movzx r12d, r12b
xor rbp, qword [r15 + r12*8]
xor rbp, qword [rsp + 8]
mov qword [rsp + 0x10], rbp
cmp rdx, qword [rsp + 0xe0]
jne 0x14040daee
mov rdx, qword [rsp + 0xe8]
xor rdx, qword [rsp + 0xd8]
mov qword [rax], rdx
mov rdx, qword [rsp + 0xa0]
xor rdx, qword [rcx + 8]
xor rdx, qword [rsp + 0x98]
mov qword [rax + 8], rdx
mov rdx, qword [rsp + 0xa8]
xor rdx, qword [rcx + 0x10]
xor rdx, qword [rsp + 0x78]
mov qword [rax + 0x10], rdx
mov rdx, qword [rsp + 0xb0]
xor rdx, qword [rcx + 0x18]
xor rdx, qword [rsp + 0x60]
mov qword [rax + 0x18], rdx
mov rdx, qword [rsp + 0xb8]
xor rdx, qword [rcx + 0x20]
xor rdx, qword [rsp + 0x48]
mov qword [rax + 0x20], rdx
mov rdx, qword [rsp + 0xc0]
xor rdx, qword [rcx + 0x28]
xor rdx, qword [rsp + 0x30]
mov qword [rax + 0x28], rdx
mov rdx, qword [rsp + 0xc8]
xor rdx, qword [rcx + 0x30]
xor rdx, qword [rsp + 0x20]
mov qword [rax + 0x30], rdx
mov rdx, qword [rsp + 0xd0]
xor rdx, qword [rcx + 0x38]
xor rdx, rbp
mov qword [rax + 0x38], rdx
add rsp, 0xf8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret