Function at 0x140196160
Capabilities:
Encode data using xor

Disassembly:
push rbx
test ecx, ecx
je 0x140196199
test edx, edx
je 0x140196277
movzx eax, byte [0x140613b8d]
cmp al, 0xa9
je 0x14019635a
mov cl, 0x2c
nop
mov al, 1
lock cmpxchg byte [0x140613b8d], cl
je 0x1401962f9
cmp al, 0xa9
jne 0x140196180
jmp 0x14019635a
mov eax, dword [0x140693ec8]
mov ecx, eax
not ecx
imul ecx, eax
test cl, 1
nop dword [rax]
xor eax, eax
test al, al
jne 0x1401961b0
test edx, edx
je 0x1401962cf
movzx eax, byte [0x140613b5d]
cmp al, 0x68
je 0x140196435
mov r8d, 0xa5c33329
mov r9b, 0xce
nop word cs:[rax + rax]
mov eax, dword [0x140693ecc]
mov ecx, dword [0x1406143d4]
add ecx, r8d
cmp eax, ecx
jge 0x14019623a
mov al, 0x25
lock cmpxchg byte [0x140613b5d], r9b
mov ecx, eax
sete r10b
mov edx, dword [0x140693ec8]
lea eax, [rdx - 1]
xor r11d, r11d
sub r11d, dword [0x1406143d4]
imul eax, edx
mov edx, r11d
xor edx, 0x5a3ccce3
and r11d, 0x5a3ccce3
lea r11d, [rdx + r11*2]
neg r11d
xor edx, edx
div r11d
test edx, edx
je 0x140196260
mov al, 0x25
lock cmpxchg byte [0x140613b5d], r9b
mov eax, dword [0x140693ecc]
cmp eax, 0x18
jge 0x1401961e0
jmp 0x1401961f3
test r10b, r10b
jne 0x140196363
cmp cl, 0x68
jne 0x1401961e0
jmp 0x140196435
movzx eax, byte [0x1406139a3]
movzx ecx, byte [0x1406143d0]
add cl, 0xe5
cmp al, cl
je 0x140196424
mov cl, 0xf4
nop word cs:[rax + rax]
mov al, 0x24
lock cmpxchg byte [0x1406139a3], cl
je 0x14019639c
movzx edx, byte [0x1406143d0]
mov r8d, edx
xor r8b, 0xe5
and dl, 0x65
add dl, dl
add dl, r8b
cmp al, dl
jne 0x1401962a0
jmp 0x140196424
movzx eax, byte [0x1406138eb]
cmp al, 0xb2
je 0x14019649f
mov cl, 0xd8
mov al, 0x87
lock cmpxchg byte [0x1406138eb], cl
je 0x14019643e
cmp al, 0xb2
jne 0x1401962e0
jmp 0x14019649f
xor edx, edx
lea rax, [0x140613b80]
lea rcx, [0x140533700]
nop dword [rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rax]
movzx r9d, byte [rdx + rcx]
mov r10d, r8d
not r10b
mov r11d, r9d
xor r11b, r10b
and r10b, r9b
not r11b
and r11b, r8b
or r11b, r10b
mov byte [rdx + rax], r11b
mov r8d, edx
xor r8d, 0x7ffffffe
and r8d, edx
xor edx, 1
lea edx, [rdx + r8*2]
cmp edx, 0xd
jl 0x140196310
mov al, 0xa9
xchg byte [0x140613b8d], al
lea rax, [0x140613b80]
pop rbx
ret
xor eax, eax
lea rcx, [0x140613b50]
lea rdx, [0x1405336d0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xc
jg 0x14019642d
inc rax
jmp 0x140196380
xor r8d, r8d
lea rax, [0x1406139a0]
lea rcx, [0x140533540]
mov edx, 0xa5c3331c
nop word cs:[rax + rax]
movsxd r8, r8d
movzx r9d, byte [r8 + rax]
movzx r10d, byte [r8 + rcx]
mov r11b, 0xb5
sub r11b, r9b
add r9b, 0x4a
xor r11b, r9b
and r11b, r10b
xor r11b, r9b
and r9b, r10b
add r9b, r9b
add r9b, r11b
add r9b, 0xb6
mov byte [r8 + rax], r9b
mov r9d, dword [0x1406143d4]
add r9d, edx
add r8d, 0x257623b0
mov r10d, r8d
xor r10d, r9d
and r8d, r9d
lea r8d, [r10 + r8*2]
add r8d, 0xda89dc50
cmp r8d, 3
jl 0x1401963c0
mov al, 0xa9
xchg byte [0x1406139a3], al
lea rax, [0x1406139a0]
pop rbx
ret
mov al, 0x68
xchg byte [0x140613b5d], al
lea rax, [0x140613b50]
pop rbx
ret
xor eax, eax
lea rcx, [0x1406138e0]
lea rdx, [0x140533490]
nop
movzx r8d, byte [rax + rcx]
movzx r9d, byte [rax + rdx]
mov r10d, r9d
not r10b
mov r11d, r8d
xor r11b, r10b
and r10b, r8b
not r8b
mov ebx, r8d
xor bl, r9b
and r8b, r9b
or r8b, r11b
not r8b
or r8b, bl
not r8b
or r10b, r8b
mov byte [rax + rcx], r10b
lea r8d, [rax + 1]
cmp r8d, 0xa
jg 0x140196497
inc rax
jmp 0x140196450
mov al, 0xb2
xchg byte [0x1406138eb], al
lea rax, [0x1406138e0]
pop rbx
ret