Function at 0x1401e9350
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x50
mov esi, r9d
test ecx, ecx
je 0x1401e9420
mov eax, esi
xor eax, 0x66bebaf7
mov ecx, edx
mov edx, eax
mov r8d, 0x49ceac20
call fcn.1400712d0
test al, 1
je 0x1401e9478
movzx eax, byte [0x140557207]
nop
cmp al, 0xee
je 0x1401e9414
movzx ecx, byte [0x140557390]
mov edx, ecx
xor dl, 0xc2
mov eax, ecx
and al, 0x42
add al, al
add al, dl
add cl, 0x88
lock cmpxchg byte [0x140557207], cl
jne 0x1401e9390
xor edx, edx
lea rax, [0x1405571e0]
lea rcx, [0x140472020]
nop dword [rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
xor byte [rdx + rax], r8b
mov r8d, edx
not r8d
mov r9d, r8d
and r9d, 1
mov r10d, edx
and r10d, 0xfffffffe
or r10d, r9d
xor edx, 1
and r8d, 0x7ffffffe
or r8d, edx
not r8d
lea edx, [r10 + r8*2]
cmp edx, 0x27
jl 0x1401e93d0
mov al, 0xee
xchg byte [0x140557207], al
lea rax, [0x1405571e0]
jmp 0x1401e96ae
test edx, edx
je 0x1401e94da
movzx eax, byte [0x1405572a3]
cmp al, 0xdd
je 0x1401e9638
mov edi, esi
xor edi, 0x97252a02
mov ebp, 0x75dffce7
lea rbx, [rsp + 0x3c]
nop dword [rax]
mov r8d, dword [0x140557394]
add r8d, ebp
mov rcx, rbx
mov edx, edi
call fcn.1401e9990
test al, 1
jne 0x1401e9595
cmp byte [rsp + 0x3c], 0xdd
jne 0x1401e9450
jmp 0x1401e9638
movzx eax, byte [0x140557292]
cmp al, 0x6b
je 0x1401e9589
mov edi, esi
xor edi, 0xce423dc3
lea rbx, [rsp + 0x40]
lea r14, [rsp + 0x3f]
xor esi, 0xd305a6d6
nop
mov rcx, rbx
mov rdx, r14
mov r8d, edi
mov r9d, 0x17ca5124
call fcn.1401e9970
cmp byte [rsp + 0x41], 0
jne 0x1401e953c
movzx ecx, byte [rsp + 0x3f]
mov edx, esi
mov r8d, 0x6ca9ba64
call fcn.1401e99d0
test al, 1
je 0x1401e94a0
jmp 0x1401e9589
movzx eax, byte [0x140557250]
cmp al, 0x51
je 0x1401e96a7
mov bl, 0x85
mov eax, esi
not eax
and eax, 0xfd614c55
mov edi, esi
xor edi, 0x29eb3aa
or edi, eax
not edi
or edi, eax
mov ebp, 0x6ac525be
nop word [rax + rax]
mov al, 3
lock cmpxchg byte [0x140557250], bl
je 0x1401e9641
mov r8d, dword [0x140557394]
add r8d, ebp
mov ecx, eax
mov edx, edi
call fcn.1401e9940
test al, 1
je 0x1401e9510
jmp 0x1401e96a7
xor edx, edx
lea rax, [0x140557280]
lea rcx, [0x1404720b0]
nop dword [rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
mov r9d, r8d
xor r9b, r8b
not r9b
and r9b, byte [rdx + rax]
xor r9b, r8b
mov byte [rdx + rax], r9b
mov r8d, dword [0x140557394]
add edx, r8d
add edx, 0x1440fe9c
cmp edx, 0x12
jl 0x1401e9550
mov al, 0x6b
xchg byte [0x140557292], al
lea rax, [0x140557280]
jmp 0x1401e96ae
xor edi, edi
lea r12, [0x1405572a0]
mov eax, esi
not eax
mov ecx, esi
and ecx, 0xf584967e
mov ebp, eax
and ebp, 0xa7b6981
or ebp, ecx
lea rbx, [rsp + 0x3d]
lea r14, [rsp + 0x48]
xor esi, 0xbd000de6
and eax, 0x42fff219
or esi, eax
not esi
or esi, eax
lea r15, [rsp + 0x3e]
nop word cs:[rax + rax]
lea rcx, [r12 + rdi]
mov dword [rsp + 0x20], ebp
mov dword [rsp + 0x28], 0xc46a9c15
mov edx, edi
mov r8, rbx
mov r9, r14
call fcn.1401e99f0
movzx edx, byte [rsp + 0x3d]
mov rcx, qword [rsp + 0x48]
mov dword [rsp + 0x20], 0xef1be8da
mov r8, r15
mov r9d, esi
call fcn.1401e9960
movzx eax, byte [rsp + 0x3e]
mov byte [rdi + r12], al
lea eax, [rdi + 1]
cmp eax, 2
jg 0x1401e9630
inc rdi
jmp 0x1401e95e0
mov al, 0xdd
xchg byte [0x1405572a3], al
lea rax, [0x1405572a0]
jmp 0x1401e96ae
xor eax, eax
lea rdi, [0x140557240]
lea rbx, [0x140472080]
xor esi, 0x60b1ed6d
nop word [rax + rax]
movsxd r14, eax
lea rdx, [rdi + r14]
movzx ecx, byte [r14 + rdi]
movzx eax, byte [r14 + rbx]
mov r8d, ecx
xor r8b, al
and cl, al
add cl, cl
add cl, r8b
mov r8d, esi
mov r9d, 0x4703834b
call fcn.140142410
mov eax, r14d
xor eax, 1
and r14d, 1
lea eax, [rax + r14*2]
cmp eax, 0x10
jl 0x1401e9660
mov al, 0x51
xchg byte [0x140557250], al
lea rax, [0x140557240]
add rsp, 0x50
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret