Function at 0x140218950
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x98
mov qword [rsp + 0x38], rdx
mov ebx, ecx
call fcn.140217970
mov esi, eax
test eax, eax
jne 0x140218d12
mov ecx, 5
call fcn.1401f1170
mov rcx, rax
mov qword [rsp + 0x40], rax
call fcn.1402184a0
test ebx, ebx
jle 0x14021899c
cmp qword [rsp + 0x38], 0
jne 0x1402189a9
xor edx, edx
mov dword [0x140233640], edx
jmp 0x140218a74
cmp dword [0x140233640], 0
jne 0x140218a44
movabs rdi, 0x3320646e61707865
xor ecx, ecx
movabs rbp, 0x6b20657479622d32
call fcn.14021c970
mov qword [0x140233640], rdi
mov qword [0x140233648], rbp
test rax, rax
jne 0x1402189f9
lea rdx, [0x140233650]
mov ecx, 0xb
mov eax, esi
mov rdi, rdx
rep stosd dword [rdi], eax
jmp 0x140218a29
mov edx, dword [0x1402335d0]
lea r8, [0x140233650]
test edx, edx
je 0x140218a1e
mov ecx, 0xb
mov rdi, r8
mov eax, esi
rep stosd dword [rdi], eax
mov dword [0x140233650], edx
jmp 0x140218a29
mov edx, 0x2c
mov rcx, rax
call qword [rax + 0x68]
mov eax, dword [0x140233670]
mov byte [0x1402336c0], 0
mov dword [0x14023367c], eax
xor eax, eax
mov dword [0x140233670], eax
movzx esi, byte [0x1402336c0]
mov rcx, rsi
cmp esi, ebx
jl 0x140218a91
sub esi, ebx
lea rax, [0x140233640]
mov rdi, qword [rsp + 0x38]
movsxd rcx, ebx
add esi, 0x40
movsxd rsi, esi
add rsi, rax
rep movsb byte [rdi], byte [rsi]
sub byte [0x1402336c0], bl
mov rcx, qword [rsp + 0x40]
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.1402184c0
test sil, sil
je 0x140218ab2
mov rdi, qword [rsp + 0x38]
lea rsi, [0x140233680]
rep movsb byte [rdi], byte [rsi]
movzx edx, byte [0x1402336c0]
add qword [rsp + 0x38], rdx
sub ebx, edx
mov eax, dword [0x140233670]
lea rdi, [rsp + 0x50]
mov ecx, 0x10
lea rsi, [0x140233640]
mov dword [rsp + 0x4c], 0xa
inc eax
mov dword [0x140233670], eax
rep movsd dword [rdi], dword [rsi]
mov edx, dword [rsp + 0x8c]
mov edi, dword [rsp + 0x60]
mov r13d, dword [rsp + 0x50]
mov r15d, dword [rsp + 0x70]
mov ebp, dword [rsp + 0x54]
mov r11d, dword [rsp + 0x64]
mov dword [rsp + 0x30], edx
mov edx, dword [rsp + 0x7c]
mov r14d, dword [rsp + 0x74]
mov dword [rsp + 0x2c], edi
mov r9d, dword [rsp + 0x84]
mov edi, dword [rsp + 0x58]
mov r10d, dword [rsp + 0x68]
mov ecx, dword [rsp + 0x88]
mov dword [rsp + 0x34], edx
mov r12d, dword [rsp + 0x78]
mov esi, dword [rsp + 0x5c]
mov r8d, dword [rsp + 0x6c]
mov edx, dword [rsp + 0x2c]
add ebp, r11d
add edi, r10d
xor r9d, ebp
xor ecx, edi
rol r9d, 0x10
add r13d, edx
rol ecx, 0x10
xor eax, r13d
add r14d, r9d
add r12d, ecx
rol eax, 0x10
xor r11d, r14d
xor r10d, r12d
rol r11d, 0xc
add r15d, eax
rol r10d, 0xc
xor edx, r15d
add ebp, r11d
add edi, r10d
rol edx, 0xc
xor r9d, ebp
xor ecx, edi
add r13d, edx
rol r9d, 8
xor eax, r13d
add r14d, r9d
rol eax, 8
xor r11d, r14d
add r15d, eax
rol r11d, 7
xor edx, r15d
rol edx, 7
rol ecx, 8
add esi, r8d
add r13d, r11d
add r12d, ecx
mov dword [rsp + 0x48], ecx
mov ecx, dword [rsp + 0x30]
mov dword [rsp + 0x2c], edx
mov edx, dword [rsp + 0x34]
xor r10d, r12d
xor ecx, esi
rol r10d, 7
rol ecx, 0x10
add ebp, r10d
add edx, ecx
xor eax, ebp
xor r8d, edx
rol eax, 0x10
rol r8d, 0xc
add esi, r8d
xor ecx, esi
rol ecx, 8
add edx, ecx
xor ecx, r13d
rol ecx, 0x10
xor r8d, edx
add edx, eax
add r12d, ecx
rol r8d, 7
xor r11d, r12d
rol r11d, 0xc
add r13d, r11d
xor ecx, r13d
rol ecx, 8
add r12d, ecx
mov dword [rsp + 0x30], ecx
mov ecx, dword [rsp + 0x48]
xor r11d, r12d
rol r11d, 7
xor r10d, edx
add edi, r8d
rol r10d, 0xc
xor r9d, edi
add ebp, r10d
rol r9d, 0x10
xor eax, ebp
add r15d, r9d
rol eax, 8
xor r8d, r15d
add edx, eax
rol r8d, 0xc
xor r10d, edx
mov dword [rsp + 0x34], edx
mov edx, dword [rsp + 0x2c]
add edi, r8d
xor r9d, edi
rol r10d, 7
add esi, edx
rol r9d, 8
xor ecx, esi
add r15d, r9d
rol ecx, 0x10
xor r8d, r15d
add r14d, ecx
rol r8d, 7
xor edx, r14d
rol edx, 0xc
add esi, edx
xor ecx, esi
rol ecx, 8
add r14d, ecx
xor edx, r14d
rol edx, 7
dec dword [rsp + 0x4c]
mov dword [rsp + 0x2c], edx
jne 0x140218b34
mov dword [rsp + 0x80], eax
mov edx, dword [rsp + 0x30]
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x50], r13d
mov dword [rsp + 0x8c], edx
mov dword [rsp + 0x7c], eax
mov eax, dword [rsp + 0x2c]
mov dword [rsp + 0x78], r12d
mov dword [rsp + 0x64], r11d
mov dword [rsp + 0x54], ebp
mov dword [rsp + 0x68], r10d
mov dword [rsp + 0x58], edi
mov dword [rsp + 0x84], r9d
mov dword [rsp + 0x70], r15d
mov dword [rsp + 0x6c], r8d
mov dword [rsp + 0x5c], esi
mov dword [rsp + 0x88], ecx
mov dword [rsp + 0x74], r14d
mov dword [rsp + 0x60], eax
xor eax, eax
lea rdi, [0x140233640]
mov edx, dword [rdi + rax]
add edx, dword [rsp + rax + 0x50]
add rax, 4
mov dword [rax + rdi + 0x3c], edx
cmp rax, 0x40
jne 0x140218cea
mov byte [0x1402336c0], 0x40
jmp 0x140218a44
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret