Function at 0x140362880
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
mov rax, qword [0x14054b938]
xor rax, rsp
mov qword [rsp + 0x80], rax
test rcx, rcx
je 0x1403629a5
mov rbp, rdx
mov rdi, rcx
xor r14d, r14d
lea rsi, [rsp + 0x78]
nop dword [rax]
mov ebx, r14d
mov eax, r14d
lea rcx, [rdi + rax*2]
mov rdx, rsi
mov r8d, 0x7a5ebb04
mov r9d, 0x4edd10ee
call fcn.140369cf0
movzx eax, byte [rsp + 0x78]
mov ecx, dword [0x14055bec8]
xor ecx, eax
mov edx, ecx
not edx
and edx, eax
lea r14d, [rcx + rdx*2]
add r14d, ebx
cmp word [rdi + r14*2], 0
jne 0x1403628c0
mov ecx, r14d
mov edx, 0x9c739ca
mov r8d, 0x34674ba7
call fcn.1400a9630
test al, 1
jne 0x1403629a0
mov esi, dword [0x14055d528]
lea rcx, [rsp + 0x78]
mov edx, 0xaa3ef5cc
mov r8d, 0x60c84362
call fcn.1403699d0
mov r15, qword [rsp + 0x78]
test r15, r15
je 0x1403629a0
mov r12, qword [r15 + 0x10]
mov rbx, qword [r15 + 0x18]
test r12, r12
setne dl
mov rcx, rbx
mov r8d, 0x62b6b77a
mov r9d, 0x9c739ca
call fcn.140369980
test al, 1
je 0x1403629a0
mov qword [rsp + 0x50], rbp
mov eax, 0xfffffffe
sub eax, r14d
inc r14d
xor eax, r14d
and eax, esi
xor eax, r14d
and r14d, esi
lea eax, [rax + r14*2]
mov dword [rsp + 0x44], eax
mov eax, eax
dec rax
mov qword [rsp + 0x68], rax
xor r14d, r14d
mov rbp, r12
xor esi, esi
jmp 0x140362a89
xor r14d, r14d
jmp 0x140362a00
mov dword [rsp + 0x38], 0xec70f22a
mov dword [rsp + 0x30], 0x43789bcf
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
xor r14d, r14d
xor ecx, ecx
mov edx, 1
xor r8d, r8d
xor r9d, r9d
call fcn.140369400
test rax, rax
je 0x140362a00
lea rdx, [rsp + 0x78]
mov rcx, rax
mov r8d, 0xc01257cb
mov r9d, 0xc29408bf
call fcn.1401e1f80
mov rax, qword [rsp + 0x78]
mov r14, qword [rax]
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.1403e4d80
mov rax, r14
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r14, qword [rsp + 0x48]
mov rax, qword [rbp]
test rax, rax
cmovne rbp, rax
movzx ecx, bl
mov eax, 1
cmove ecx, eax
lea rdx, [rsp + 0x78]
mov r8d, 0xc92d9714
mov r9d, 0x2517f6d7
call fcn.140369c40
movzx eax, byte [rsp + 0x78]
movzx esi, byte [0x14055c1c0]
mov ecx, esi
xor cl, al
and sil, al
add sil, sil
add sil, cl
mov rbx, qword [rsp + 0x60]
mov r12, qword [rsp + 0x58]
mov eax, esi
not al
or al, 0xfe
cmp al, 0xff
jne 0x140362a00
cmp r12, qword [r15 + 0x10]
je 0x140362ada
mov dword [rsp + 0x28], 0x43789bcf
mov dword [rsp + 0x20], 0x999ad481
mov ecx, 1
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call fcn.140369380
mov r15, rax
mov rcx, rax
mov edx, 0x2b014e4a
mov r8d, 0x9380d237
call fcn.1400abda0
test al, 1
jne 0x140362a00
mov r12, qword [r15 + 0x10]
mov rbx, qword [r15 + 0x18]
mov rbp, r12
mov eax, esi
not al
mov ecx, esi
xor cl, 1
and al, 0xfe
or al, cl
not al
add al, byte [0x14055c121]
add al, byte [0x14055c1c1]
jne 0x140362a7b
mov qword [rsp + 0x60], rbx
cmp rbp, rbx
movzx ebx, sil
mov eax, 1
cmove ebx, eax
movzx eax, word [0x14055f1d0]
add ax, word [rbp + 0x58]
movzx eax, ax
cmp dword [rsp + 0x44], eax
mov qword [rsp + 0x58], r12
ja 0x140362a2c
mov qword [rsp + 0x48], r14
mov rcx, rbp
lea rdx, [rsp + 0x78]
mov r8d, 0x1e6a4411
mov r9d, 0x67727bd2
call fcn.140369d20
mov rax, qword [rsp + 0x78]
mov r14, qword [rax]
test r14, r14
je 0x140362a27
cmp r14, 0xffff
je 0x140362a27
cmp dword [rsp + 0x44], 0
je 0x140362bdf
xor esi, esi
nop dword [rax]
lea r12, [rsp + 0x78]
mov qword [rsp + 0x20], r12
mov dword [rsp + 0x30], 0x3533b21e
mov dword [rsp + 0x28], 0x30b2cf33
mov rcx, rdi
mov rdx, rsi
lea r13, [rsp + 0x74]
mov r8, r13
lea r9, [rsp + 0x77]
call fcn.140369c50
cmp byte [rsp + 0x77], 0
cmovne r13, r12
movzx eax, word [r13]
test ax, ax
je 0x140362bd3
movzx ecx, word [r14 + rsi*2]
lea edx, [rcx - 0x61]
lea r8d, [rcx - 0x20]
cmp dx, 0x1a
cmovae r8d, ecx
cmp ax, r8w
jne 0x140362a27
cmp qword [rsp + 0x68], rsi
je 0x140362bdf
inc rsi
jmp 0x140362b70
mov r14, qword [rbp + 0x30]
mov bl, 1
mov rsi, qword [rsp + 0x50]
test rsi, rsi
je 0x140362a2c
mov rcx, rbp
lea rdx, [rsp + 0x78]
mov r8d, 0x7147e4a6
mov r9d, 0x6be611ce
call fcn.14011ac40
mov rax, qword [rsp + 0x78]
mov rcx, qword [0x14055d0d0]
mov rdx, rcx
not rdx
mov r8, rax
xor r8, rdx
xor rdx, rcx
and rdx, rax
xor rdx, rcx
and r8, rax
add r8, r8
mov rax, rdx
xor rax, r8
and r8, rdx
lea rax, [rax + r8*2]
mov qword [rsi], rax
jmp 0x140362a2c