Function at 0x14031e7b0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x10]
mov eax, 0x110
call fcn.1403cb200
sub rsp, rax
mov rax, qword [0x1404f2b48]
xor rax, rsp
mov qword [rbp], rax
mov rax, qword [rbp + 0x78]
xor ebx, ebx
mov r13d, dword [rbp + 0x70]
or r12d, 0xffffffff
mov rsi, qword [rbp + 0x90]
mov edi, ebx
mov qword [rsp + 0x68], rax
mov r15d, ebx
mov rax, qword [rbp + 0x88]
movsxd r14, r9d
mov qword [rsp + 0x60], r8
mov dword [rsp + 0x30], edx
mov qword [rsp + 0x70], rcx
mov dword [rsp + 0x4c], r13d
mov qword [rsp + 0x58], rax
mov dword [rsp + 0x40], ebx
test rax, rax
jne 0x14031e834
call fcn.1403304e0
mov qword [rsp + 0x58], rax
test rsi, rsi
mov rcx, rax
cmove rsi, rax
mov qword [rsp + 0x38], rsi
call fcn.140273470
mov dword [rsp + 0x44], eax
cmp dword [rsp + 0x30], ebx
jle 0x14031ece2
test r14d, r14d
jle 0x14031ece2
cmp r13d, r14d
jl 0x14031ecb9
lea ecx, [rax*2 + 2]
cmp r13d, ecx
jl 0x14031ecb9
mov ecx, r13d
lea rsi, [0x1404c05a8]
sub ecx, eax
xor r8d, r8d
mov rdx, rsi
lea eax, [rcx - 1]
mov dword [rsp + 0x48], eax
movsxd rax, ecx
dec rax
mov rcx, rax
mov qword [rsp + 0x50], rax
call fcn.14026ec50
mov r13, rax
test rax, rax
jne 0x14031e8d8
call fcn.140273ec0
lea r8, [0x1404635a0]
xor edx, edx
mov rcx, rsi
call fcn.140273fd0
xor r8d, r8d
mov edx, 0xc0100
lea ecx, [r8 + 4]
call fcn.1402740c0
jmp 0x14031ec6c
movsxd rcx, dword [rsp + 0x4c]
xor r8d, r8d
mov rdx, rsi
call fcn.14026ec50
mov r15, rax
test rax, rax
je 0x14031e8ac
movsxd rax, dword [rsp + 0x4c]
mov rdx, qword [rsp + 0x60]
add r15, rax
mov eax, dword [rsp + 0x4c]
add rdx, r14
test eax, eax
jle 0x14031e93c
mov r8d, eax
mov eax, r14d
lea ecx, [r14 - 1]
not eax
shr ecx, 0x1f
shr eax, 0x1f
dec r15
and ecx, eax
dec ecx
mov eax, ecx
and eax, 1
sub r14d, eax
mov eax, ecx
and eax, 1
sub rdx, rax
and cl, byte [rdx]
mov byte [r15], cl
sub r8, 1
jne 0x14031e90b
movsxd rcx, dword [rsp + 0x44]
movzx edi, byte [r15]
mov r14, rcx
mov rax, qword [rsp + 0x38]
dec edi
mov r9d, dword [rsp + 0x48]
mov edx, ecx
lea r8, [rcx + 1]
shr edi, 0x1f
add r8, r15
mov qword [rsp + 0x20], rax
lea rcx, [rbp - 0x80]
neg edi
call fcn.14031e580
test eax, eax
jne 0x14031ec6c
test r14, r14
jle 0x14031e9a6
lea rax, [rbp - 0x80]
mov rdx, rbx
lea rsi, [r15 + 1]
sub rsi, rax
lea rcx, [rbp - 0x80]
add rcx, rdx
inc rdx
mov al, byte [rcx + rsi]
xor byte [rcx], al
cmp rdx, r14
jl 0x14031e98b
lea rsi, [0x1404c05a8]
mov rax, qword [rsp + 0x38]
lea r8, [rbp - 0x80]
mov r9d, dword [rsp + 0x44]
mov rcx, r13
mov edx, dword [rsp + 0x48]
mov qword [rsp + 0x20], rax
call fcn.14031e580
test eax, eax
jne 0x14031ec6c
mov rax, qword [rsp + 0x50]
test rax, rax
jle 0x14031e9f5
lea rcx, [r14 + 1]
mov rdx, r13
add rcx, r15
mov r8, rax
sub rcx, r13
mov al, byte [rcx + rdx]
xor byte [rdx], al
inc rdx
sub r8, 1
jne 0x14031e9e7
mov rax, qword [rsp + 0x58]
lea r8, [rbp - 0x40]
movsxd rdx, dword [rbp + 0x80]
xor r9d, r9d
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rax
call fcn.1402c5260
test eax, eax
je 0x14031ec6c
mov r8, r14
lea rdx, [rbp - 0x40]
mov rcx, r13
call fcn.1400102b0
mov r10, qword [rsp + 0x50]
mov r12d, ebx
movsxd r9, dword [rsp + 0x44]
mov dword [rsp + 0x38], ebx
lea ecx, [rax - 1]
not eax
shr ecx, 0x1f
shr eax, 0x1f
and ecx, eax
neg ecx
and edi, ecx
cmp r14, r10
jge 0x14031eac3
mov r11, r14
mov esi, ebx
mov r14d, r9d
movzx r8d, byte [r11 + r13]
mov eax, r12d
not eax
mov edx, r8d
xor edx, 1
inc r11
dec edx
shr edx, 0x1f
neg edx
and eax, edx
or r12d, edx
mov dword [rsp + 0x38], eax
not eax
mov dword [rsp + 0x40], eax
mov ecx, dword [rsp + 0x38]
mov eax, dword [rsp + 0x40]
and ecx, r14d
and esi, eax
inc r14d
lea eax, [r8 - 1]
or esi, ecx
shr eax, 0x1f
neg eax
or eax, r12d
and edi, eax
cmp r11, r10
jl 0x14031ea62
mov dword [rsp + 0x40], esi
mov r14, r9
lea rsi, [0x1404c05a8]
mov dword [rsp + 0x38], r12d
mov r11d, dword [rsp + 0x30]
mov ecx, r11d
mov r10d, dword [rsp + 0x48]
mov eax, r11d
mov r12d, r10d
mov r8d, r10d
sub r12d, dword [rsp + 0x40]
sub r8d, r9d
dec r12d
sub ecx, r12d
xor eax, r12d
xor ecx, r12d
or ecx, eax
lea r9d, [r8 - 1]
xor ecx, r11d
mov dword [rsp + 0x40], r9d
shr ecx, 0x1f
mov eax, r11d
dec ecx
and ecx, dword [rsp + 0x38]
and edi, ecx
lea ecx, [r8 - 1]
xor eax, ecx
mov edx, ecx
sub edx, r11d
xor edx, r11d
or edx, eax
xor edx, ecx
shr edx, 0x1f
neg edx
mov dword [rsp + 0x38], edx
not edx
mov dword [rsp + 0x30], edx
mov edx, 1
mov eax, dword [rsp + 0x38]
mov ecx, dword [rsp + 0x30]
and eax, r9d
and ecx, r11d
or ecx, eax
mov dword [rsp + 0x44], ecx
cmp r9d, edx
jle 0x14031ebdd
sub r8d, r12d
lea r11, [r14 + 1]
lea ebx, [r8 - 1]
mov eax, ebx
and eax, edx
lea ecx, [rax - 1]
not eax
shr eax, 0x1f
shr ecx, 0x1f
and ecx, eax
mov eax, r10d
sub eax, edx
dec ecx
movsxd r8, eax
cmp r11, r8
jge 0x14031ebc9
movzx r10d, cl
lea r9, [r11 + r13]
mov dword [rsp + 0x38], r10d
sub r8, r11
mov r11d, dword [rsp + 0x38]
not r10d
movsxd rsi, edx
mov dword [rsp + 0x38], r11d
mov dword [rsp + 0x30], r10d
mov eax, dword [rsp + 0x38]
mov cl, byte [rsi + r9]
and cl, al
mov eax, dword [rsp + 0x30]
and al, byte [r9]
or al, cl
mov byte [r9], al
inc r9
sub r8, 1
jne 0x14031eb92
mov r9d, dword [rsp + 0x40]
lea r11, [r14 + 1]
mov r10d, dword [rsp + 0x48]
add edx, edx
cmp edx, r9d
jl 0x14031eb57
mov ecx, dword [rsp + 0x44]
lea rsi, [0x1404c05a8]
xor ebx, ebx
movsxd r10, ecx
test ecx, ecx
jle 0x14031ec3d
mov r11, qword [rsp + 0x70]
mov r9d, r12d
shr r9d, 0x1f
mov r8, rbx
mov eax, ebx
inc ebx
sub eax, r12d
shr eax, 0x1f
xor al, r9b
or al, r9b
neg al
movzx ecx, al
movzx eax, dil
and ecx, eax
lea rax, [r14 + r8]
mov dword [rsp + 0x38], ecx
not ecx
mov dword [rsp + 0x30], ecx
mov ecx, dword [rsp + 0x38]
mov dl, byte [rax + r13 + 1]
mov eax, dword [rsp + 0x30]
and dl, cl
and al, byte [r8 + r11]
or al, dl
mov byte [r8 + r11], al
inc r8
cmp r8, r10
jl 0x14031ebf3
call fcn.140273ec0
lea r8, [0x1404635a0]
xor edx, edx
mov rcx, rsi
call fcn.140273fd0
xor r8d, r8d
lea edx, [r8 + 0x79]
lea ecx, [rdx - 0x75]
call fcn.1402740c0
mov ecx, edi
and ecx, 1
call fcn.14027e960
mov edx, 0x40
lea rcx, [rbp - 0x80]
call fcn.140010240
mov rdx, qword [rsp + 0x50]
xor r9d, r9d
mov r8, rsi
mov rcx, r13
call fcn.14026ed40
movsxd rdx, dword [rsp + 0x4c]
xor r9d, r9d
mov r8, rsi
mov rcx, r15
call fcn.14026ed40
mov dword [rsp + 0x38], edi
not edi
mov dword [rsp + 0x30], edi
mov ecx, dword [rsp + 0x38]
mov eax, dword [rsp + 0x30]
and ecx, r12d
or eax, ecx
jmp 0x14031ece5
call fcn.140273ec0
lea r8, [0x1404635a0]
xor edx, edx
lea rcx, [0x1404c05a8]
call fcn.140273fd0
xor r8d, r8d
lea edx, [r8 + 0x79]
lea ecx, [rdx - 0x75]
call fcn.1402740c0
mov eax, r12d
mov rcx, qword [rbp]
xor rcx, rsp
call fcn.1403cb150
mov rbx, qword [rsp + 0x160]
add rsp, 0x110
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret