Function at 0x14019e230
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
mov dword [rsp + 0x20], r8d
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov r12, qword [rsp + 0xb8]
xor eax, eax
cmp dword [rcx], eax
mov r14d, 0xd
mov dword [rsp + 0x2c], r9d
mov r15, rcx
mov r9d, dword [rsp + 0xc0]
sete al
mov dword [rsp + 0x28], eax
mov r8d, r14d
mov dword [rsp + 0x90], 0
lea eax, [r9 - 1]
movsxd rdx, eax
mov r13, rdx
test eax, eax
js 0x14019e2b8
nop dword [rax]
nop word [rax + rax]
movzx ecx, byte [r12 + rdx]
lea eax, [r8*8]
xor ecx, eax
xor r8d, ecx
sub rdx, 1
jns 0x14019e2a0
movzx ecx, byte [rsp + 0xb0]
lea eax, [r8*8]
mov edi, dword [r15 + 0x14]
xor eax, ecx
xor eax, r8d
mov dword [rsp + 0x20], ecx
xor edx, edx
div edi
mov rax, qword [r15 + 0x20]
lea rsi, [rdx*8]
mov ebp, edx
mov qword [rsp + 0x30], rax
mov rbx, qword [rax + rsi]
test rbx, rbx
je 0x14019e332
cmp byte [rbx + 0x30], cl
jne 0x14019e32a
lea eax, [r9 + 1]
cmp dword [rbx + 0x1c], eax
jne 0x14019e32a
movsxd r8, r9d
lea rcx, [rbx + 0x31]
mov rdx, r12
call fcn.140067fa0
test eax, eax
je 0x14019e48a
mov r9d, dword [rsp + 0xc0]
movzx ecx, byte [rsp + 0xb0]
mov rbx, qword [rbx]
test rbx, rbx
jne 0x14019e2f5
lea eax, [r9 + 1]
mov dword [rsp + 0x24], eax
movsxd rax, r9d
mov qword [rsp + 0x40], rax
inc rax
mov qword [rsp + 0x48], rax
lea rsi, [rax + 0x71]
mov eax, 0x80
cmp rsi, rax
cmovl rsi, rax
mov eax, dword [r15 + 0x10]
add eax, eax
mov qword [rsp + 0x38], rsi
cmp eax, edi
jl 0x14019e542
lea ebp, [rdi + rdi]
movsxd rbx, ebp
call fcn.1401e45d0
test eax, eax
jne 0x14019e837
lea rbx, [rbx*8]
mov rcx, rbx
call fcn.1401aeec0
mov rsi, rax
test rax, rax
je 0x14019e837
mov r8, rbx
xor edx, edx
mov rcx, rax
call fcn.140067b50
xor edi, edi
cmp dword [r15 + 0x14], edi
jle 0x14019e422
mov rbx, qword [rsp + 0x30]
mov r11, qword [rbx]
test r11, r11
je 0x14019e416
nop
mov rax, qword [r11]
mov r10d, r14d
mov qword [rbx], rax
mov eax, dword [r11 + 0x1c]
sub eax, 1
movsxd rcx, eax
js 0x14019e3fc
lea r9, [rcx + 0x30]
add r9, r11
nop dword [rax]
movzx edx, byte [r9]
lea r8d, [r10*8]
xor r8d, edx
lea r9, [r9 - 1]
xor r10d, r8d
sub rcx, 1
jns 0x14019e3e0
xor edx, edx
mov eax, r10d
div ebp
mov rax, qword [rsi + rdx*8]
mov qword [r11], rax
mov qword [rsi + rdx*8], r11
mov r11, qword [rbx]
test r11, r11
jne 0x14019e3c0
inc edi
add rbx, 8
cmp edi, dword [r15 + 0x14]
jl 0x14019e3b6
mov rbx, qword [rsp + 0x30]
test rbx, rbx
je 0x14019e4ff
cmp dword [0x1402cd290], 0
je 0x14019e4f6
mov rcx, qword [0x1402d3ab0]
test rcx, rcx
je 0x14019e44f
call qword [0x1402cd310]
mov rcx, rbx
call qword [0x1402cd2c8]
dec qword [0x1402d3a38]
mov rcx, rbx
movsxd rdx, eax
sub qword [0x1402d39f0], rdx
call qword [0x1402cd2b8]
mov rcx, qword [0x1402d3ab0]
test rcx, rcx
je 0x14019e4ff
call qword [0x1402cd320]
jmp 0x14019e4ff
mov ecx, dword [rbx + 0x10]
mov eax, ecx
sub eax, dword [rbx + 0x18]
cmp eax, 0x16
jge 0x14019e4e4
lea edi, [rcx + rcx]
call fcn.1401e45d0
test eax, eax
jne 0x14019e837
movsxd rdx, edi
mov rcx, rbx
call fcn.1401b9eb0
mov r8, rax
test rax, rax
je 0x14019e837
mov dword [rax + 0x10], edi
mov rdx, qword [r15 + 0x20]
add rdx, rsi
mov rcx, qword [rdx]
cmp rcx, rbx
je 0x14019e4de
mov rax, qword [rcx]
mov rdx, rcx
mov rcx, rax
cmp rax, rbx
jne 0x14019e4d0
mov qword [rdx], r8
mov rbx, r8
mov ebp, dword [rbx + 0x18]
mov rsi, qword [rsp + 0x98]
neg ebp
jmp 0x14019e64a
mov rcx, rbx
call qword [0x1402cd2b8]
mov dword [r15 + 0x14], ebp
mov qword [r15 + 0x20], rsi
test r13, r13
js 0x14019e528
nop dword [rax]
movzx ecx, byte [r12 + r13]
lea eax, [r14*8]
xor ecx, eax
xor r14d, ecx
sub r13, 1
jns 0x14019e510
mov rsi, qword [rsp + 0x38]
lea eax, [r14*8]
xor eax, dword [rsp + 0x20]
xor edx, edx
xor eax, r14d
div ebp
mov ebp, edx
call fcn.1401e45d0
test eax, eax
jne 0x14019e837
mov rcx, rsi
call fcn.1401aeec0
mov rbx, rax
test rax, rax
je 0x14019e837
mov r8, qword [rsp + 0x40]
lea rcx, [rbx + 0x31]
xorps xmm0, xmm0
mov rdx, r12
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax + 0x20], xmm0
mov dword [rax + 0x10], esi
movzx eax, byte [rsp + 0xb0]
mov byte [rbx + 0x30], al
call fcn.140067c10
mov eax, dword [rsp + 0x24]
mov rsi, qword [rsp + 0x98]
mov dword [rbx + 0x1c], eax
mov rax, qword [rsp + 0x48]
mov byte [rax + rbx + 0x30], 0
mov eax, dword [rsp + 0xc0]
add eax, 0x31
mov dword [rbx + 0x18], eax
mov eax, ebp
lea rdx, [rax*8]
mov rax, qword [r15 + 0x20]
mov rcx, qword [rdx + rax]
mov qword [rbx], rcx
mov rax, qword [r15 + 0x20]
mov qword [rdx + rax], rbx
inc dword [r15 + 0x10]
movsxd rcx, dword [rbx + 0x18]
add rcx, rbx
cmp rsi, 0x7f
ja 0x14019e5f3
movzx eax, sil
and al, 0x7f
mov byte [rcx], al
mov eax, 1
jmp 0x14019e61f
cmp rsi, 0x3fff
ja 0x14019e617
mov rax, rsi
shr rax, 7
or al, 0x80
mov byte [rcx], al
movzx eax, sil
and al, 0x7f
mov byte [rcx + 1], al
mov eax, 2
jmp 0x14019e61f
mov rdx, rsi
call fcn.14013f210
add eax, dword [rbx + 0x18]
mov ebp, dword [rsp + 0x90]
mov dword [rbx + 0x18], eax
mov dword [rbx + 0x14], eax
mov qword [rbx + 0x28], rsi
cmp dword [r15], 1
je 0x14019e64a
inc eax
mov dword [rbx + 0x18], eax
mov eax, dword [r15]
neg eax
sbb cx, cx
mov word [rbx + 0x22], cx
mov rax, qword [rbx + 0x28]
cmp rsi, rax
je 0x14019e6e2
mov rdi, rsi
xor r8d, r8d
mov rdx, rbx
mov rcx, r15
sub rdi, rax
call fcn.1401337e0
movsxd rcx, dword [rbx + 0x18]
add rcx, rbx
cmp rdi, 0x7f
ja 0x14019e686
and dil, 0x7f
mov eax, 1
mov byte [rcx], dil
jmp 0x14019e6b1
cmp rdi, 0x3fff
ja 0x14019e6a9
mov rax, rdi
shr rax, 7
or al, 0x80
and dil, 0x7f
mov byte [rcx], al
mov byte [rcx + 1], dil
mov eax, 2
jmp 0x14019e6b1
mov rdx, rdi
call fcn.14013f210
add eax, dword [rbx + 0x18]
mov edi, 1
mov dword [rbx + 0x18], eax
mov dword [rbx + 0x14], eax
mov qword [rbx + 0x28], rsi
cmp dword [r15], edi
je 0x14019e6e6
inc eax
mov dword [rbx + 0x18], eax
mov eax, dword [r15]
neg eax
mov dword [rbx + 0x24], 0
sbb cx, cx
mov word [rbx + 0x22], cx
jmp 0x14019e6e6
mov edi, dword [rsp + 0x28]
movsxd r11, dword [rsp + 0xa8]
test r11d, r11d
js 0x14019e824
mov ecx, dword [r15]
cmp ecx, 1
jne 0x14019e714
mov eax, dword [rbx + 0x18]
mov byte [rbx + 0x21], cl
add eax, ebp
mov rcx, qword [r15 + 8]
add dword [rcx], eax
xor eax, eax
jmp 0x14019e83c
movsx eax, word [rbx + 0x22]
cmp r11d, eax
je 0x14019e787
test ecx, ecx
jne 0x14019e7cd
movsxd rax, dword [rbx + 0x18]
mov rdx, r11
mov byte [rax + rbx], 1
movsxd rcx, dword [rbx + 0x18]
lea eax, [rcx + 1]
inc rcx
add rcx, rbx
mov dword [rbx + 0x18], eax
cmp r11, 0x7f
ja 0x14019e752
and dl, 0x7f
mov eax, 1
mov byte [rcx], dl
jmp 0x14019e778
cmp rdx, 0x3fff
ja 0x14019e773
mov rax, rdx
shr rax, 7
or al, 0x80
and dl, 0x7f
mov byte [rcx], al
mov byte [rcx + 1], dl
mov eax, 2
jmp 0x14019e778
call fcn.14013f210
add dword [rbx + 0x18], eax
mov word [rbx + 0x22], r11w
mov dword [rbx + 0x24], 0
mov r11d, dword [rsp + 0x2c]
test edi, edi
je 0x14019e828
movsxd rcx, dword [rbx + 0x18]
mov eax, r11d
sub eax, dword [rbx + 0x24]
add rcx, rbx
add eax, 2
movsxd rdx, eax
cmp rdx, 0x7f
ja 0x14019e7d4
and dl, 0x7f
mov eax, 1
mov byte [rcx], dl
add dword [rbx + 0x18], eax
mov eax, dword [rbx + 0x18]
mov dword [rbx + 0x24], r11d
add eax, ebp
mov rcx, qword [r15 + 8]
add dword [rcx], eax
xor eax, eax
jmp 0x14019e83c
mov word [rbx + 0x22], r11w
jmp 0x14019e794
cmp rdx, 0x3fff
ja 0x14019e809
mov rax, rdx
and dl, 0x7f
shr rax, 7
or al, 0x80
mov byte [rcx + 1], dl
mov byte [rcx], al
mov eax, 2
add dword [rbx + 0x18], eax
mov eax, dword [rbx + 0x18]
mov dword [rbx + 0x24], r11d
add eax, ebp
mov rcx, qword [r15 + 8]
add dword [rcx], eax
xor eax, eax
jmp 0x14019e83c
call fcn.14013f210
add dword [rbx + 0x18], eax
mov eax, dword [rbx + 0x18]
mov dword [rbx + 0x24], r11d
add eax, ebp
mov rcx, qword [r15 + 8]
add dword [rcx], eax
xor eax, eax
jmp 0x14019e83c
mov byte [rbx + 0x20], 1
mov eax, dword [rbx + 0x18]
mov rcx, qword [r15 + 8]
add eax, ebp
add dword [rcx], eax
xor eax, eax
jmp 0x14019e83c
mov eax, 7
mov rbx, qword [rsp + 0xa0]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret