Function at 0x140164680
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rbx
test ecx, ecx
je 0x1401646c5
mov eax, 0x1314ed20
add eax, dword [0x14050c640]
cmp edx, eax
jne 0x1401646e3
movzx eax, byte [0x14050c19d]
cmp al, 0x73
je 0x1401647a4
mov cl, 0x3b
nop word cs:[rax + rax]
mov al, 0x1e
lock cmpxchg byte [0x14050c19d], cl
je 0x140164701
cmp al, 0x73
jne 0x1401646b0
jmp 0x1401647a4
mov eax, dword [0x140564414]
mov ecx, 0x1314ed2b
add ecx, dword [0x14050c640]
cmp eax, ecx
jge 0x1401647d0
jmp 0x1401647b0
mov eax, dword [0x140564414]
mov ecx, 0x1314ed80
add ecx, dword [0x14050c640]
cmp eax, ecx
jge 0x140164980
jmp 0x14016496a
xor r8d, r8d
lea r9, [0x14050c190]
lea r10, [0x14042bf70]
xor r11d, r11d
jmp 0x14016473a
mov eax, dword [0x14050c640]
add r11d, eax
add r11d, 0x1314ed21
add eax, 0x1314ed2d
cmp r11d, eax
jge 0x14016479c
movsxd rsi, r11d
test r8b, r8b
jne 0x14016476a
nop word cs:[rax + rax]
movzx eax, byte [rsi + r10]
mov ecx, eax
xor cl, al
not cl
and cl, byte [rsi + r9]
xor cl, al
mov byte [rsi + r9], cl
test r8b, r8b
je 0x140164720
movzx ebx, byte [rsi + r9]
movzx ecx, byte [rsi + r10]
mov edx, ebx
shl dl, cl
mov ecx, edx
shl bl, cl
mov eax, edx
sub al, bl
shl al, cl
mov ebx, eax
shl bl, cl
sub al, bl
mul bl
mov edx, eax
sub al, bl
mul bl
mov ecx, eax
shl dl, cl
xor dl, al
mov byte [rsi + r9], dl
jmp 0x140164750
mov al, 0x73
xchg byte [0x14050c19d], al
lea rax, [0x14050c190]
jmp 0x140164967
mov eax, 0x1314ed20
add eax, dword [0x14050c640]
mov ecx, dword [0x140564414]
cmp ecx, 0x20
jl 0x1401647dd
nop word cs:[rax + rax]
mov eax, dword [0x140564414]
cmp eax, 0x35
jge 0x1401647d0
jmp 0x1401647b0
cmp edx, eax
jne 0x140164878
movzx eax, byte [0x14050c2bd]
movzx ecx, byte [0x14050c644]
add cl, 0x51
cmp al, cl
je 0x1401648f4
nop
movzx ecx, byte [0x14050c644]
lea eax, [rcx + 0x2d]
add cl, 0xda
lock cmpxchg byte [0x14050c2bd], cl
je 0x140164820
cmp al, 0x59
jne 0x140164800
jmp 0x1401648f4
cmp dword [0x14050c640], 0xeceb12e0
je 0x14016483b
nop dword [rax]
mov eax, dword [0x140564414]
cmp eax, 0x51
jge 0x140164820
mov eax, dword [0x140564414]
cmp eax, 0x33
jg 0x140164830
xor eax, eax
lea rcx, [0x14050c2b0]
lea rdx, [0x14042c090]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xc
jg 0x1401648ec
inc rax
jmp 0x140164860
movzx eax, byte [0x14050c1f3]
cmp al, 0xd6
je 0x140164960
mov cl, 0x23
nop dword [rax]
mov eax, dword [0x140564410]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
jne 0x1401648e0
nop word cs:[rax + rax]
mov al, 0x8b
lock cmpxchg byte [0x14050c1f3], cl
sete dl
mov r8d, dword [0x140564414]
cmp r8d, 0x4a
jg 0x1401648e0
test dl, dl
jne 0x14016492b
cmp al, 0xd6
jne 0x140164890
jmp 0x140164960
mov al, 0x8b
lock cmpxchg byte [0x14050c1f3], cl
jmp 0x1401648b0
mov al, 0x59
xchg byte [0x14050c2bd], al
mov al, 1
nop word cs:[rax + rax]
mov ecx, dword [0x140564414]
cmp ecx, 0x20
jg 0x14016491c
mov ecx, dword [0x140564410]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
je 0x140164922
test al, al
je 0x140164900
jmp 0x14016490b
lea rax, [0x14050c2b0]
jmp 0x140164967
xor eax, eax
lea rcx, [0x14050c1e0]
lea rdx, [0x14042bfc0]
nop dword [rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0x12
jg 0x140164958
inc rax
jmp 0x140164940
mov al, 0xd6
xchg byte [0x14050c1f3], al
lea rax, [0x14050c1e0]
pop rbx
pop rsi
ret
movzx eax, byte [0x14050c0e1]
mov ecx, dword [0x140564414]
cmp ecx, 0x1e
jl 0x140164994
nop dword [rax]
movzx eax, byte [0x14050c0e1]
mov eax, dword [0x140564414]
cmp eax, 0x3d
jge 0x140164980
jmp 0x14016496a
cmp al, 0xaa
je 0x140164a1f
mov cl, 0x69
nop
mov al, 0xe2
lock cmpxchg byte [0x14050c0e1], cl
je 0x1401649bc
movzx edx, byte [0x14050c644]
add dl, 0xa2
cmp al, dl
jne 0x1401649a0
jmp 0x140164a1f
xor eax, eax
lea rcx, [0x14050c0d0]
lea rdx, [0x14042beb0]
nop dword [rax]
cdqe
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
mov r8d, dword [0x14050c640]
mov r9d, r8d
xor r9d, 0x1314ed21
mov r10d, r8d
and r10d, 0x1314ed21
lea r9d, [r9 + r10*2]
add eax, r9d
mov r9d, r8d
xor r9d, 0x1314ed31
and r8d, 0x1314ed31
lea r8d, [r9 + r8*2]
cmp eax, r8d
jl 0x1401649d0
mov al, 0xaa
xchg byte [0x14050c0e1], al
lea rax, [0x14050c0d0]
jmp 0x140164967