Function at 0x140274740
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov esi, r9d
test ecx, ecx
je 0x140274789
test edx, edx
je 0x140274829
movzx eax, byte [0x14051fda8]
cmp al, 0x97
je 0x14027498d
mov cl, 0x3d
mov al, 0xd0
lock cmpxchg byte [0x14051fda8], cl
je 0x140274923
cmp al, 0x97
jne 0x140274770
jmp 0x14027498d
mov r8d, esi
xor r8d, 0x7eb4783c
mov eax, dword [0x140520000]
mov ecx, dword [0x14051fef0]
add ecx, esi
add eax, ecx
add eax, 0xda242c24
cdqe
add rax, qword [0x14051ff30]
mov ecx, edx
mov edx, r8d
call qword [case.0x140303ece.0]
test al, 1
je 0x1402748ac
mov ecx, esi
xor ecx, 0xa84b2762
mov eax, dword [0x140520000]
mov edx, eax
xor edx, 0xd3f41d55
and eax, 0x53f41d55
lea eax, [rdx + rax*2]
add esi, dword [0x14051fef8]
add eax, esi
add eax, 0x6300ecf
cdqe
add rax, qword [0x14051ff38]
call qword [case.0x140303ece.0]
test al, 1
jne 0x140274b52
mov cl, 0x70
nop dword [rax + rax]
mov al, 0x78
lock cmpxchg byte [0x14051fd85], cl
je 0x140274a81
cmp al, 0x22
jne 0x140274810
jmp 0x140274b52
mov ecx, esi
xor ecx, 0xe7ca9317
mov eax, dword [0x14051fee8]
add eax, esi
add eax, 0xffffda69
cdqe
add rax, qword [0x14051ff48]
call qword [case.0x140303ece.0]
test al, 1
jne 0x140274a75
mov edi, esi
xor edi, 0xaf3fb3bd
lea rbx, [rsp + 0x30]
lea r14, [rsp + 0x2f]
nop word [rax + rax]
mov eax, dword [0x14051ff00]
add eax, esi
add eax, 0xffffda69
cdqe
add rax, qword [0x14051ff20]
mov rcx, rbx
mov rdx, r14
mov r8d, edi
call qword [case.0x140303ece.0]
cmp byte [rsp + 0x31], 0
jne 0x140274999
cmp byte [rsp + 0x2f], 0xe4
jne 0x140274870
jmp 0x140274a75
movzx eax, byte [0x14051fdd5]
cmp al, 0x76
je 0x140274b6a
mov bpl, 0xec
mov eax, esi
not eax
mov edi, esi
xor edi, 0x617ca005
and eax, 0x9e835ffa
or edi, eax
not edi
or edi, eax
nop word cs:[rax + rax]
mov al, 0xc7
lock cmpxchg byte [0x14051fdd5], bpl
mov ebx, eax
sete dl
mov eax, dword [0x14051fee0]
add eax, esi
add eax, 0xffffda69
cdqe
add rax, qword [0x14051ff28]
mov ecx, ebx
mov r8d, edi
call qword [case.0x140303ece.0]
test al, 1
jne 0x140274abc
cmp bl, 0x76
jne 0x1402748e0
jmp 0x140274b6a
xor edx, edx
lea rax, [0x14051fd90]
lea rcx, [0x140435000]
nop word cs:[rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rax]
movzx r9d, byte [rdx + rcx]
mov r10d, r8d
not r10b
mov r11d, r10d
xor r11b, r9b
not r9b
and r8b, r9b
or r8b, r11b
not r8b
xor r10b, r9b
and r10b, r9b
or r10b, r8b
mov byte [rdx + rax], r10b
mov r8d, edx
xor r8d, 1
and edx, 1
lea edx, [r8 + rdx*2]
cmp edx, 0x18
jl 0x140274940
mov al, 0x97
xchg byte [0x14051fda8], al
lea rax, [0x14051fd90]
jmp 0x140274b71
xor ecx, ecx
lea r15, [0x14051fe60]
mov r12d, esi
not r12d
lea rdi, [rsp + 0x30]
mov eax, r12d
and eax, 0x12a726e1
mov r13d, esi
and r13d, 0xed58d91e
or r13d, eax
nop word cs:[rax + rax]
movsxd rbx, ecx
lea r14, [r15 + rbx]
movzx ebp, byte [rbx + r15]
lea rax, [0x1404350d0]
lea rcx, [rax + rbx]
mov r8d, dword [0x140520000]
mov eax, 0xcb576cfd
add r8d, eax
mov eax, r8d
not eax
mov edx, esi
xor edx, eax
xor eax, r12d
and eax, r8d
and r8d, r12d
or r8d, edx
not r8d
or r8d, eax
mov eax, dword [0x14051fee4]
add eax, esi
add eax, 0xffffda69
cdqe
add rax, qword [0x14051ff10]
mov rdx, rdi
call qword [case.0x140303ece.0]
add bpl, byte [rsp + 0x30]
mov eax, dword [0x14051fef4]
add eax, esi
add eax, 0xffffda69
cdqe
add rax, qword [0x14051ff40]
mov dword [rsp + 0x20], r13d
mov ecx, ebp
mov rdx, r14
mov r8d, ebx
mov r9, rdi
call qword [case.0x140303ece.0]
mov ecx, dword [rsp + 0x30]
test al, 1
je 0x1402749d0
mov al, 0xe4
xchg byte [0x14051fe63], al
lea rax, [0x14051fe60]
jmp 0x140274b71
xor eax, eax
lea rcx, [0x14051fd80]
lea rdx, [0x140434ff0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 4
jg 0x140274b4a
inc rax
jmp 0x140274aa0
xor edi, edi
mov ebx, esi
xor ebx, 0x3413929a
lea ebp, [rsi - 0x2597]
lea r14, [rsp + 0x30]
lea r15, [0x140435030]
xor esi, 0x7c110e47
nop
mov eax, dword [0x14051feec]
add eax, ebp
cdqe
add rax, qword [0x14051ff50]
mov ecx, edi
mov rdx, r14
mov r8d, ebx
call qword [case.0x140303ece.0]
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax]
movzx ecx, byte [rdi + r15]
mov edx, ecx
not dl
mov r8d, eax
xor r8b, dl
not r8b
and r8b, cl
and dl, al
or dl, r8b
mov eax, dword [0x14051fefc]
add eax, ebp
cdqe
add rax, qword [0x14051ff18]
mov ecx, edi
mov r8d, esi
call qword [case.0x140303ece.0]
lea eax, [rdi + 1]
cmp eax, 0x14
jg 0x140274b5b
inc rdi
jmp 0x140274ae0
mov al, 0x22
xchg byte [0x14051fd85], al
lea rax, [0x14051fd80]
jmp 0x140274b71
movzx eax, byte [0x140520010]
add al, 0x3e
xchg byte [0x14051fdd5], al
lea rax, [0x14051fdc0]
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret