Function at 0x140181af0
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
test ecx, ecx
je 0x140181b72
test edx, edx
je 0x140181bb9
movzx eax, byte [0x14051bed7]
cmp al, 0x97
je 0x140181cde
mov cl, 0xed
xor edx, edx
nop word cs:[rax + rax]
mov eax, dword [0x140575c30]
lea r8d, [rax - 1]
imul r8d, eax
test r8b, 1
jne 0x140181b52
nop word cs:[rax + rax]
mov al, 0x77
lock cmpxchg byte [0x14051bed7], cl
sete r8b
test dl, dl
je 0x140181b60
mov al, 0x77
lock cmpxchg byte [0x14051bed7], cl
jmp 0x140181b40
test r8b, r8b
jne 0x140181c6a
cmp al, 0x97
jne 0x140181b20
jmp 0x140181cde
mov eax, dword [0x140575c34]
cmp eax, 0x18
nop dword [rax + rax]
xor eax, eax
test al, al
jne 0x140181b80
test edx, edx
je 0x140181be9
movzx eax, byte [0x14051c02e]
cmp al, 0xa7
je 0x140181e0f
mov cl, 0x1f
nop dword [rax + rax]
mov al, 0x8f
lock cmpxchg byte [0x14051c02e], cl
je 0x140181cea
cmp al, 0xa7
jne 0x140181ba0
jmp 0x140181e0f
movzx eax, byte [0x14051bf80]
cmp al, 0x43
je 0x140181e49
mov cl, 0x5d
nop word [rax + rax]
mov al, 0x28
lock cmpxchg byte [0x14051bf80], cl
je 0x140181d37
cmp al, 0x43
jne 0x140181bd0
jmp 0x140181e49
movzx eax, byte [0x14051bfde]
cmp al, 0xaa
je 0x140181ea5
mov cl, 0x97
mov dl, 1
jmp 0x140181c08
cmp al, 0xaa
je 0x140181ea5
mov al, 0x29
lock cmpxchg byte [0x14051bfde], cl
je 0x140181e52
nop dword [rax + rax]
mov r8d, dword [0x140575c30]
mov r9d, dword [0x14051cc90]
mov r10d, r8d
sub r10d, r9d
add r10d, 0x4402f4c4
imul r10d, r8d
and r10d, 1
add r9d, 0xbbfd0b3b
cmp r10d, r9d
jne 0x140181c64
mov r8d, dword [0x140575c30]
lea r9d, [r8 + 1]
imul r9d, r8d
test r9b, 1
je 0x140181c00
test dl, dl
je 0x140181c20
jmp 0x140181c4f
mov eax, dword [0x140575c34]
mov eax, 0xbbfd0b3b
nop word cs:[rax + rax]
mov ecx, dword [0x140575c30]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
mov ecx, dword [0x14051cc90]
add ecx, eax
cmp edx, ecx
jne 0x140181c80
xor edx, edx
lea rax, [0x14051bed0]
lea rcx, [0x14043d1d0]
nop dword [rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
add byte [rdx + rax], r8b
mov r8d, edx
xor r8d, 1
and edx, 1
lea edx, [r8 + rdx*2]
cmp edx, 7
jl 0x140181cb0
movzx eax, byte [0x14051cc94]
add al, 0x53
xchg byte [0x14051bed7], al
lea rax, [0x14051bed0]
jmp 0x140181eac
xor eax, eax
lea rcx, [0x14051c020]
lea rdx, [0x14043d310]
nop word [rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
lea r8d, [rax + 1]
mov r9d, dword [0x14051cc90]
mov r10d, r9d
xor r10d, 0xbbfd0b49
and r9d, 0x3bfd0b49
lea r9d, [r10 + r9*2]
cmp r8d, r9d
jge 0x140181e07
inc rax
jmp 0x140181d00
xor r9d, r9d
lea r10, [0x14051bf70]
lea r11, [0x14043d270]
mov esi, 0xbbfd0b6b
jmp 0x140181d5d
inc r9d
cmp r9d, 0x10
jge 0x140181e1b
mov eax, dword [0x140575c30]
lea ecx, [rax + 1]
imul ecx, eax
movsxd rdi, r9d
test cl, 1
jne 0x140181db0
nop word cs:[rax + rax]
movzx eax, byte [rdi + r11]
add byte [rdi + r10], al
mov eax, dword [0x140575c34]
mov ecx, dword [0x14051cc90]
mov edx, ecx
xor edx, 0xbbfd0b90
and ecx, 0x3bfd0b90
lea ecx, [rdx + rcx*2]
cmp eax, ecx
jl 0x140181d50
nop word [rax + rax]
movzx edx, byte [rdi + r10]
movzx ecx, byte [rdi + r11]
shl dl, cl
mov r8d, edx
shl r8b, cl
mov ecx, r8d
shl dl, cl
mov eax, edx
sub al, r8b
mul r8b
mov r8d, edx
mov ecx, eax
shl r8b, cl
mov ecx, r8d
shl dl, cl
sub dl, r8b
mov eax, edx
mul r8b
mov ecx, r8d
sub cl, al
add cl, r8b
mov byte [rdi + r10], cl
mov eax, dword [0x140575c34]
mov ecx, dword [0x14051cc90]
add ecx, esi
cmp eax, ecx
jge 0x140181db0
jmp 0x140181d80
mov al, 0xa7
xchg byte [0x14051c02e], al
lea rax, [0x14051c020]
jmp 0x140181eac
mov eax, dword [0x140575c30]
nop word cs:[rax + rax]
mov eax, dword [0x140575c30]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x140181e30
mov al, 0x43
xchg byte [0x14051bf80], al
lea rax, [0x14051bf70]
jmp 0x140181eac
xor eax, eax
lea rcx, [0x14051bfd0]
lea rdx, [0x14043d2c0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
mov r9d, r8d
xor r9b, r8b
not r9b
and r9b, byte [rax + rcx]
xor r9b, r8b
mov byte [rax + rcx], r9b
lea r8d, [rax + 1]
cmp r8d, 0xd
jg 0x140181e98
inc rax
jmp 0x140181e70
mov eax, dword [0x140575c34]
cmp eax, 0xa
jl 0x140181eaf
jmp 0x140181ecf
lea rax, [0x14051bfd0]
pop rdi
pop rsi
ret
movzx eax, byte [0x14051cc94]
add al, 0x66
xchg byte [0x14051bfde], al
mov eax, dword [0x140575c30]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x140181ea5
mov al, 1
nop word cs:[rax + rax]
mov cl, 0xaa
xchg byte [0x14051bfde], cl
test al, al
je 0x140181ee0
jmp 0x140181eaf