Function at 0x140298910
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov esi, dword [rsp + 0xb0]
test ecx, ecx
je 0x1402989a9
mov r8d, esi
xor r8d, 0xcd82aa4c
mov ecx, edx
mov edx, 0x373f0783
call fcn.1400aa7f0
test al, 1
je 0x140298a60
movzx eax, byte [0x1404f01af]
movzx ecx, byte [0x1404f02f0]
mov edx, esi
xor dl, 0x7b
mov r8d, esi
not r8b
and r8b, sil
xor r8b, dl
add r8b, 0x37
mov edx, r8d
xor dl, cl
and r8b, cl
add r8b, r8b
add r8b, dl
add r8b, 0xc9
cmp al, r8b
je 0x140298bc7
mov cl, 0x90
nop dword [rax]
mov al, 0x9b
lock cmpxchg byte [0x1404f01af], cl
je 0x140298b64
cmp al, 0xa2
jne 0x140298990
jmp 0x140298bc7
test edx, edx
je 0x140298b0e
movzx eax, byte [0x1404f01b9]
mov ecx, esi
xor cl, 0x52
add cl, byte [0x1404f02f0]
cmp al, cl
je 0x140298ca3
mov r14b, 0x9f
mov edi, esi
xor edi, 0x91a694bd
mov ebp, esi
not ebp
mov eax, ebp
and eax, 0x522b41de
mov r15d, esi
and r15d, 0xadd4be21
or r15d, eax
mov r12d, r15d
not r12d
nop word cs:[rax + rax]
mov al, 0x24
lock cmpxchg byte [0x1404f01b9], r14b
mov ebx, eax
sete dl
mov ecx, eax
mov r8d, 0xcefd744c
mov r9d, edi
call fcn.1400fa530
test al, 1
jne 0x140298bd3
mov eax, dword [0x1404f02e0]
mov ecx, r15d
xor ecx, eax
not eax
and eax, r12d
or eax, ecx
not eax
lea eax, [rcx + rax*2]
mov r8d, ebp
xor r8d, esi
and r8d, eax
xor r8d, esi
mov ecx, ebx
mov edx, 0x723548ca
call fcn.140277a70
test al, 1
je 0x140298a00
jmp 0x140298ca3
movzx eax, byte [0x1404f0187]
nop word [rax + rax]
cmp al, 1
je 0x140298bb3
movzx ecx, byte [0x1404f02f0]
mov eax, esi
xor al, 0x74
add al, cl
mov edx, esi
xor dl, 0xd4
mov r8d, edx
xor r8b, cl
and dl, cl
add dl, dl
add dl, r8b
lock cmpxchg byte [0x1404f0187], dl
jne 0x140298a70
mov r14d, 1
mov ebp, esi
xor ebp, 0x959cdb78
lea rdi, [rsp + 0x3f]
lea rbx, [rsp + 0x40]
lea r15, [0x1404f0180]
mov r12d, esi
xor r12d, 0x61bf3c89
nop word [rax + rax]
lea ecx, [r14 - 1]
mov dword [rsp + 0x20], ebp
mov rdx, rdi
mov r8, rbx
mov r9d, 0xee0b118
call fcn.1402988f0
movzx eax, byte [rsp + 0x3f]
mov rcx, qword [rsp + 0x40]
mov byte [rcx + r15], al
mov eax, dword [0x1404f02e0]
add eax, r12d
cmp r14d, eax
jge 0x140298ba1
inc r14d
jmp 0x140298ad0
movzx eax, byte [0x1404f0193]
cmp al, 0x31
je 0x140298d14
mov eax, esi
not eax
mov edi, esi
xor edi, 0xb3780a86
and eax, 0x4c87f579
or edi, eax
not edi
or edi, eax
lea rbx, [rsp + 0x40]
nop dword [rax]
mov rcx, rbx
mov edx, 0x20c7906d
mov r8d, edi
call fcn.140298d90
test al, 1
jne 0x140298cac
cmp byte [rsp + 0x40], 0x31
jne 0x140298b40
jmp 0x140298d14
xor eax, eax
lea rcx, [0x1404f01a0]
lea rdx, [0x1404010c0]
xor esi, 0x61bf3c81
nop word [rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
mov r9d, dword [0x1404f02e0]
add r9d, esi
cmp r8d, r9d
jge 0x140298bbf
inc rax
jmp 0x140298b80
xor esi, 0x89ec143d
mov ecx, 0x50faa105
mov edx, esi
call fcn.140298f10
lea rax, [0x1404f0180]
jmp 0x140298d1b
mov al, 0xa2
xchg byte [0x1404f01af], al
lea rax, [0x1404f01a0]
jmp 0x140298d1b
xor eax, eax
lea r15, [0x1404f01b0]
mov ecx, ebp
and ecx, 0xc4e5686a
mov r12d, esi
and r12d, 0x3b1a9795
or r12d, ecx
mov ecx, ebp
and ecx, 0x5eb78e3
mov r13d, esi
and r13d, 0xfa14871c
or r13d, ecx
lea rdi, [rsp + 0x3f]
lea rbx, [rsp + 0x40]
and ebp, 0x61bf3c8f
and esi, 0x9e40c370
or esi, ebp
nop
movsxd r14, eax
lea rcx, [r15 + r14]
mov eax, dword [0x1404f02e0]
add eax, r13d
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x20], eax
mov edx, r14d
mov r8, rdi
mov r9, rbx
call fcn.140298eb0
movzx eax, byte [rsp + 0x3f]
movzx ecx, byte [rsp + 0x40]
mov edx, ecx
not dl
mov r8d, eax
and r8b, dl
xor dl, al
not al
mov r9d, eax
xor r9b, cl
or r8b, r9b
not r8b
and al, cl
or al, dl
not al
or al, r8b
mov byte [r14 + r15], al
lea eax, [r14 + 0x9612ba8]
mov ecx, eax
xor ecx, 1
and eax, 1
lea eax, [rcx + rax*2]
add eax, 0xf69ed458
mov ecx, dword [0x1404f02e0]
add ecx, esi
cmp eax, ecx
jl 0x140298c20
mov al, 0xc9
xchg byte [0x1404f01b9], al
lea rax, [0x1404f01b0]
jmp 0x140298d1b
xor edi, edi
mov ebx, esi
xor ebx, 0xc5409a9b
lea r14, [rsp + 0x40]
lea r15, [0x1404f0190]
lea r12, [0x1404010b0]
nop dword [rax]
mov ecx, edi
mov rdx, r14
mov r8d, 0x8db73e60
mov r9d, ebx
call fcn.1400ab4e0
mov rax, qword [rsp + 0x40]
movzx eax, byte [rax + r15]
xor al, byte [rdi + r12]
mov byte [rdi + r15], al
lea eax, [rdi + 1]
cmp eax, 2
jg 0x140298d02
inc rdi
jmp 0x140298cd0
xor sil, 0xca
add sil, byte [0x1404f02f0]
xchg byte [0x1404f0193], sil
lea rax, [0x1404f0190]
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret