Function at 0x140041310
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 8], rcx
push rbx
push rbp
push r12
push r15
sub rsp, 0x48
mov rax, qword [rcx]
mov rbp, r9
mov rbx, r8
mov r15, rdx
mov r12, rcx
call qword [rax + 0x20]
test al, al
jne 0x140041342
mov rcx, r12
call fcn.14000dd30
lea rdx, [0x1400c0b00]
mov ecx, 0x100
call fcn.140086920
lea rdx, [0x1400c0c00]
mov ecx, 0x100
call fcn.140086920
test rbp, rbp
je 0x1400419cb
mov qword [rsp + 0x80], rsi
lea rax, [rbx + 8]
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r14
lea r14, [r15 + 8]
sub r15, rbx
mov qword [rsp + 0x20], r14
sub r15, 8
mov qword [rsp + 0x78], r15
nop dword [rax]
mov rcx, qword [r12 + 8]
lea rbp, [0x1400c0c00]
mov r11d, dword [r15 + rax]
mov r15d, 4
mov edi, dword [r14 - 4]
mov ebx, dword [r14]
mov esi, dword [r14 + 4]
lea r13, [rcx + 0x70]
lea r12, [rcx + 0x74]
bswap r11d
bswap edi
bswap ebx
bswap esi
lea r14, [0x1400c0b00]
nop dword [rax]
mov r8d, esi
xor r8d, dword [r12 + 8]
xor r8d, ebx
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + r14]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + rbp]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul edx, ecx, 0x1010101
movzx ecx, r8b
mov r8d, ebx
xor r8d, dword [r13 + 8]
movzx ecx, byte [rcx + r14]
and edx, 0xfc3fcff3
xor r9d, edx
imul edx, ecx, 0x1010101
and edx, 0x3fcff3fc
xor r9d, edx
add r8d, r9d
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + r14]
imul r10d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r10d, 0xf3fc3fcf
movzx ecx, byte [rcx + rbp]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r10d, edx
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + r14]
and edx, 0xfc3fcff3
xor r10d, edx
imul edx, ecx, 0x1010101
and edx, 0x3fcff3fc
xor r10d, edx
lea r8d, [r9 + r10]
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + r14]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + rbp]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + r14]
and edx, 0xfc3fcff3
xor r9d, edx
imul edx, ecx, 0x1010101
and edx, 0x3fcff3fc
xor r9d, edx
xor edi, r9d
lea ecx, [r9 + r10]
xor r11d, ecx
mov r8d, edi
xor r8d, r11d
xor r8d, dword [r12]
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + r14]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + rbp]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul edx, ecx, 0x1010101
movzx ecx, r8b
mov r8d, r11d
xor r8d, dword [r13]
movzx ecx, byte [rcx + r14]
and edx, 0xfc3fcff3
xor r9d, edx
imul edx, ecx, 0x1010101
and edx, 0x3fcff3fc
xor r9d, edx
add r8d, r9d
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + r14]
imul r10d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r10d, 0xf3fc3fcf
movzx ecx, byte [rcx + rbp]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r10d, edx
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + r14]
and edx, 0xfc3fcff3
xor r10d, edx
imul edx, ecx, 0x1010101
and edx, 0x3fcff3fc
xor r10d, edx
lea r8d, [r9 + r10]
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + r14]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + rbp]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + r14]
and edx, 0xfc3fcff3
xor r9d, edx
imul edx, ecx, 0x1010101
and edx, 0x3fcff3fc
xor r9d, edx
xor esi, r9d
lea ecx, [r9 + r10]
mov r8d, esi
xor r8d, dword [r12 - 8]
xor ebx, ecx
xor r8d, ebx
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + r14]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + rbp]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul edx, ecx, 0x1010101
movzx ecx, r8b
mov r8d, ebx
xor r8d, dword [r13 - 8]
movzx ecx, byte [rcx + r14]
and edx, 0xfc3fcff3
xor r9d, edx
imul edx, ecx, 0x1010101
and edx, 0x3fcff3fc
xor r9d, edx
add r8d, r9d
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + r14]
imul r10d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r10d, 0xf3fc3fcf
movzx ecx, byte [rcx + rbp]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r10d, edx
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + r14]
and edx, 0xfc3fcff3
xor r10d, edx
imul edx, ecx, 0x1010101
and edx, 0x3fcff3fc
xor r10d, edx
lea r8d, [r9 + r10]
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + r14]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + rbp]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + r14]
and edx, 0xfc3fcff3
xor r9d, edx
imul edx, ecx, 0x1010101
and edx, 0x3fcff3fc
xor r9d, edx
lea ecx, [r9 + r10]
xor edi, r9d
xor r11d, ecx
mov r8d, edi
xor r8d, dword [r12 - 0x10]
xor r8d, r11d
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + r14]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + rbp]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul edx, ecx, 0x1010101
movzx ecx, r8b
mov r8d, r11d
xor r8d, dword [r13 - 0x10]
movzx ecx, byte [rcx + r14]
and edx, 0xfc3fcff3
xor r9d, edx
imul edx, ecx, 0x1010101
and edx, 0x3fcff3fc
xor r9d, edx
add r8d, r9d
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + r14]
imul r10d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r10d, 0xf3fc3fcf
movzx ecx, byte [rcx + rbp]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r10d, edx
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + r14]
and edx, 0xfc3fcff3
xor r10d, edx
imul edx, ecx, 0x1010101
and edx, 0x3fcff3fc
xor r10d, edx
lea r8d, [r9 + r10]
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + r14]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + rbp]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + r14]
and edx, 0xfc3fcff3
xor r9d, edx
imul edx, ecx, 0x1010101
and edx, 0x3fcff3fc
xor r9d, edx
lea r12, [r12 - 0x20]
xor esi, r9d
lea r13, [r13 - 0x20]
lea ecx, [r9 + r10]
xor ebx, ecx
sub r15, 1
jne 0x1400413e0
mov r14, qword [rsp + 0x20]
mov r15, qword [rsp + 0x78]
add r14, 0x10
mov r12, qword [rsp + 0x70]
bswap ebx
mov dword [rax - 8], ebx
bswap esi
mov dword [rax - 4], esi
bswap r11d
mov dword [rax], r11d
bswap edi
mov dword [rax + 4], edi
add rax, 0x10
sub qword [rsp + 0x88], 1
mov qword [rsp + 0x20], r14
jne 0x1400413a0
mov r14, qword [rsp + 0x30]
mov r13, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x80]
add rsp, 0x48
pop r15
pop r12
pop rbp
pop rbx
ret