Function at 0x140312a50
Capabilities:
Encode data using xor

Disassembly:
push rbx
test ecx, ecx
je 0x140312b71
lea rax, [fcn.140312a50]
add eax, eax
add eax, 0x3a20
mov ecx, eax
not ecx
nop dword [rax + rax]
mov r8d, dword [0x140566b98]
lea r9d, [r8 + 1]
imul r9d, r8d
test r9b, 1
jne 0x140312aa3
mov r8d, dword [0x140566b98]
mov r9d, dword [0x140540528]
add r9d, r8d
inc r9d
imul r9d, r8d
test r9b, 1
je 0x140312aa9
test ecx, eax
jne 0x140312a70
jmp 0x140312a85
test edx, edx
je 0x140312c49
movzx eax, byte [0x14053ff96]
movzx ecx, byte [0x140540538]
add cl, 0xc9
cmp al, cl
je 0x140312c7d
mov cl, 0xad
nop dword [rax]
mov al, 0xca
lock cmpxchg byte [0x14053ff96], cl
je 0x140312af0
movzx edx, byte [0x140540538]
add dl, 0xc9
cmp al, dl
jne 0x140312ad0
jmp 0x140312c7d
mov eax, dword [0x140566b9c]
cmp eax, 0x5d
jle 0x140312b06
mov eax, dword [0x140566b9c]
cmp eax, 0x4e
jge 0x140312af0
mov eax, dword [0x140566b98]
lea ecx, [rax + 1]
imul ecx, eax
test cl, 1
jne 0x140312afb
xor eax, eax
lea rcx, [0x14053ff80]
lea rdx, [0x140449d30]
mov r8d, 0x50108438
nop dword [rax]
movzx r9d, byte [rax + rcx]
movzx r10d, byte [rax + rdx]
mov r11d, r10d
not r11b
mov ebx, r9d
xor bl, r11b
not bl
and bl, r10b
and r11b, r9b
or r11b, bl
mov byte [rax + rcx], r11b
lea r9d, [rax + 1]
mov r10d, dword [0x140540528]
add r10d, r8d
cmp r9d, r10d
jge 0x140312c75
inc rax
jmp 0x140312b30
mov eax, 0x50108422
nop word cs:[rax + rax]
mov ecx, dword [0x140566b9c]
cmp ecx, 0x1b
jg 0x140312b96
mov ecx, dword [0x140566b9c]
cmp ecx, 0x42
jle 0x140312bb7
mov ecx, dword [0x140566b98]
lea r8d, [rcx - 1]
imul r8d, ecx
and r8d, 1
mov ecx, dword [0x140540528]
add ecx, eax
cmp r8d, ecx
jne 0x140312b80
jmp 0x140312b8b
test edx, edx
je 0x140312c02
movzx eax, byte [0x140540013]
cmp al, 0x47
je 0x140312cd1
mov cl, 0x69
nop dword [rax]
mov al, 0x66
lock cmpxchg byte [0x140540013], cl
je 0x140312c86
cmp al, 0x47
jne 0x140312bd0
jmp 0x140312cd1
movzx eax, byte [0x14053fed6]
mov eax, dword [0x140566b9c]
cmp eax, 0x34
jl 0x140312c0d
mov eax, dword [0x140566b9c]
cmp eax, 0x46
jg 0x140312bf0
movzx eax, byte [0x14053fed6]
mov ecx, dword [0x140566b98]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
jne 0x140312bf0
cmp al, 0xe2
je 0x140312d9b
mov cl, 0x1d
nop
mov al, 0xf0
lock cmpxchg byte [0x14053fed6], cl
je 0x140312d36
cmp al, 0xe2
jne 0x140312c30
jmp 0x140312d9b
movzx eax, byte [0x1405400d3]
cmp al, 0xcf
je 0x140312d2d
mov cl, 0x3d
nop word [rax + rax]
mov al, 0xa6
lock cmpxchg byte [0x1405400d3], cl
je 0x140312cda
cmp al, 0xcf
jne 0x140312c60
jmp 0x140312d2d
mov al, 0x7f
xchg byte [0x14053ff96], al
lea rax, [0x14053ff80]
pop rbx
ret
xor r8d, r8d
lea rax, [0x140540010]
lea rcx, [0x140449db0]
mov edx, 0x50108423
nop dword [rax]
movsxd r8, r8d
movzx r9d, byte [r8 + rcx]
add byte [r8 + rax], r9b
mov r9d, dword [0x140540528]
add r9d, edx
mov r10d, r8d
xor r10d, r9d
and r9d, r8d
lea r8d, [r10 + r9*2]
cmp r8d, 3
jl 0x140312ca0
mov al, 0x47
xchg byte [0x140540013], al
lea rax, [0x140540010]
pop rbx
ret
xor eax, eax
lea rcx, [0x1405400b0]
lea rdx, [0x140449e40]
nop word [rax + rax]
movzx r8d, byte [rax + rcx]
movzx r9d, byte [rax + rdx]
mov r10d, r8d
not r10b
mov r11d, r9d
xor r11b, r10b
and r10b, r9b
not r11b
and r11b, r8b
or r11b, r10b
mov byte [rax + rcx], r11b
lea r8d, [rax + 1]
cmp r8d, 0x22
jg 0x140312d25
inc rax
jmp 0x140312cf0
mov al, 0xcf
xchg byte [0x1405400d3], al
lea rax, [0x1405400b0]
pop rbx
ret
xor edx, edx
lea rax, [0x14053fec0]
lea rcx, [0x140449c80]
nop word cs:[rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rax]
add r8b, byte [rdx + rcx]
add r8b, 0x2d
mov r9d, r8d
xor r9b, 0xd3
and r8b, 0x53
add r8b, r8b
add r8b, r9b
mov byte [rdx + rax], r8b
mov r8d, edx
xor r8d, 1
add edx, edx
and edx, 2
mov r9d, r8d
xor r9d, edx
and edx, r8d
lea edx, [r9 + rdx*2]
cmp edx, 0x16
jl 0x140312d50
mov al, 0xe2
xchg byte [0x14053fed6], al
lea rax, [0x14053fec0]
pop rbx
ret