Function at 0x140196d50
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x30
mov esi, r9d
test ecx, ecx
je 0x140196dc5
test edx, edx
je 0x140196e34
movzx eax, byte [0x140613b7d]
cmp al, 0xe7
je 0x140196fa1
mov edi, esi
xor edi, 0x783c968f
lea rbx, [rsp + 0x22]
nop word [rax + rax]
mov eax, dword [0x140613c14]
add eax, esi
add eax, 0x1e05
cdqe
add rax, qword [0x140613c48]
mov rcx, rbx
mov edx, edi
call qword [0x1405fc400]
test al, 1
jne 0x140196f16
cmp byte [rsp + 0x22], 0xe7
jne 0x140196d90
jmp 0x140196fa1
test edx, edx
je 0x140196e8e
mov edx, esi
xor edx, 0x790f58cd
mov eax, dword [0x140613c10]
add eax, esi
add eax, 0x1e05
cdqe
add rax, qword [0x140613c50]
lea rcx, [rsp + 0x21]
call qword [0x1405fc400]
cmp byte [rsp + 0x21], 0x95
je 0x14019700e
nop word cs:[rax + rax]
movzx ecx, byte [0x1406143d0]
lea eax, [rcx - 0x74]
add cl, 0x3c
lock cmpxchg byte [0x140613945], cl
je 0x140196fad
cmp al, 0x95
jne 0x140196e10
jmp 0x14019700e
movzx eax, byte [0x140613aef]
cmp al, 0xaa
je 0x140197064
mov bl, 0x57
mov edi, esi
xor edi, 0x1373a7b8
nop dword [rax]
mov al, 0x35
lock cmpxchg byte [0x140613aef], bl
je 0x14019701a
mov ecx, dword [0x140613c2c]
add ecx, esi
add ecx, 0x1e05
movsxd r8, ecx
add r8, qword [0x140613c68]
mov ecx, eax
mov edx, edi
mov rax, r8
call qword [0x1405fc400]
test al, 1
je 0x140196e50
jmp 0x140197064
movzx ecx, byte [0x1406139c0]
mov edx, esi
xor edx, 0x267dc60d
mov eax, dword [0x140613c28]
add eax, esi
add eax, 0x1e05
cdqe
add rax, qword [0x140613c58]
call qword [0x1405fc400]
test al, 1
jne 0x1401970bc
mov bl, 0xe5
mov edi, esi
xor edi, 0x9ff03761
nop dword [rax + rax]
mov al, 0x86
lock cmpxchg byte [0x1406139c0], bl
je 0x14019706d
mov ecx, dword [0x1406143d4]
mov edx, dword [0x140613c1c]
add edx, esi
add ecx, edx
add ecx, 0xa5c35120
movsxd r8, ecx
add r8, qword [0x140613c60]
mov ecx, eax
mov edx, edi
mov rax, r8
call qword [0x1405fc400]
test al, 1
je 0x140196ed0
jmp 0x1401970bc
xor edi, edi
mov ebx, esi
xor ebx, 0x5be8fae5
lea r14, [rsp + 0x23]
lea r15, [rsp + 0x28]
lea r12, [0x1405336f0]
lea r13, [0x140613b70]
nop dword [rax + rax]
mov eax, dword [0x140613c20]
add eax, esi
add eax, 0x1e05
cdqe
add rax, qword [0x140613c38]
mov ecx, edi
mov rdx, r14
mov r8, r15
mov r9d, ebx
call qword [0x1405fc400]
movzx eax, byte [rsp + 0x23]
mov rcx, qword [rsp + 0x28]
add al, byte [rcx + r12]
movsxd rdi, edi
mov byte [rdi + r13], al
mov eax, dword [0x1406143d4]
mov ecx, eax
xor ecx, 0xa5c3331c
and eax, 0x25c3331c
lea eax, [rcx + rax*2]
add edi, eax
cmp edi, 0xd
jl 0x140196f40
mov al, 0xe7
xchg byte [0x140613b7d], al
lea rax, [0x140613b70]
jmp 0x1401970c3
xor ecx, ecx
lea r14, [0x140613930]
lea r15, [0x1405334e0]
mov edi, esi
xor edi, 0x8e57bea4
lea rbx, [rsp + 0x24]
nop word [rax + rax]
movsxd rcx, ecx
movzx eax, byte [rcx + r15]
xor byte [rcx + r14], al
mov eax, dword [0x140613c24]
add eax, esi
add eax, 0x1e05
cdqe
add rax, qword [0x140613c40]
mov rdx, rbx
mov r8d, edi
call qword [0x1405fc400]
mov ecx, dword [rsp + 0x24]
test al, 1
je 0x140196fd0
mov al, 0x95
xchg byte [0x140613945], al
lea rax, [0x140613930]
jmp 0x1401970c3
xor eax, eax
lea rcx, [0x140613ae0]
lea rdx, [0x140533660]
nop word [rax + rax]
movzx r8d, byte [rax + rcx]
movzx r9d, byte [rax + rdx]
mov r10d, r8d
xor r10b, r9b
and r8b, r9b
add r8b, r8b
add r8b, r10b
mov byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xe
jg 0x14019705c
inc rax
jmp 0x140197030
mov al, 0xaa
xchg byte [0x140613aef], al
lea rax, [0x140613ae0]
jmp 0x1401970c3
xor eax, eax
lea rcx, [0x1406139b0]
lea rdx, [0x140533550]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xf
jg 0x140197098
inc rax
jmp 0x140197080
mov eax, dword [0x140613c18]
mov ecx, esi
xor ecx, 0xcba4827
add eax, esi
add eax, 0x1e05
cdqe
add rax, qword [0x140613c30]
call qword [0x1405fc400]
lea rax, [0x1406139b0]
add rsp, 0x30
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret