Function at 0x1403a61b0
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 eax, ecx
mov r14d, dword [rsp + 0xa0]
mov r8, qword [0x14055bea8]
movabs r10, 0x3b84c04f357385fe
mov ecx, r14d
and ecx, 0x357385ff
xor ecx, r10d
add ecx, dword [0x140549cb0]
mov r15, r8
shr r15, cl
mov esi, r9d
or r15d, r8d
mov ecx, r14d
xor ecx, 0x70fa60e7
add ecx, dword [0x140549cb8]
cmp eax, ecx
jne 0x1403a62b9
test edx, edx
je 0x1403a63f7
movzx eax, byte [0x1405496c0]
cmp al, 0x50
je 0x1403a65c8
mov edi, esi
xor edi, 0xdd746179
lea rbx, [rsp + 0x30]
lea r14, [rsp + 0x2f]
mov ebp, esi
xor ebp, 0x7f0fa160
nop word cs:[rax + rax]
mov eax, dword [0x140549888]
add eax, r15d
add eax, esi
add eax, 0xf14
cdqe
add rax, qword [0x140549898]
mov rcx, rbx
mov rdx, r14
mov r8d, edi
call qword [case.0x140303ece.0]
cmp byte [rsp + 0x31], 0
jne 0x1403a6459
movzx ecx, byte [rsp + 0x2f]
mov eax, r15d
xor eax, eax
not eax
and eax, dword [0x14054986c]
xor eax, r15d
add eax, esi
add eax, 0xf14
cdqe
add rax, qword [0x1405498b8]
mov edx, ebp
call qword [case.0x140303ece.0]
test al, 1
je 0x1403a6250
jmp 0x1403a65c8
test edx, edx
je 0x1403a6429
mov eax, esi
xor eax, 0x81a3bc90
mov ecx, esi
not ecx
and ecx, esi
xor ecx, eax
mov eax, dword [0x140549880]
mov edx, eax
xor edx, 0x5ec60cf1
and eax, 0x5ec60cf1
lea eax, [rdx + rax*2]
mov edx, esi
sub edx, r15d
add eax, edx
add eax, 0xa13a0223
cdqe
add rax, qword [0x140549890]
call qword [case.0x140303ece.0]
test al, 1
jne 0x1403a65b4
mov edi, esi
xor edi, 0x2b2765c1
mov r13d, r14d
xor r13d, 0x70fa7193
mov ebp, esi
xor ebp, 0x6fd571a7
mov eax, r14d
not eax
mov ecx, eax
and ecx, 0x70fa7193
mov ebx, r14d
and ebx, 0x8f058e6c
or ebx, ecx
and eax, 0x70fa60e7
mov r12d, r14d
and r12d, 0x8f059f18
or r12d, eax
neg r12d
mov eax, dword [0x140549868]
add eax, r15d
mov ecx, dword [0x140549cb8]
add ecx, r13d
mov edx, ecx
xor edx, 0xec1f2b85
and ecx, 0x6c1f2b85
lea ecx, [rdx + rcx*2]
mov edx, esi
sub edx, ecx
add eax, edx
add eax, 0xec1f2b85
cdqe
add rax, qword [0x1405498a8]
lea rcx, [rsp + 0x30]
lea rdx, [rsp + 0x2f]
mov r8d, edi
call qword [case.0x140303ece.0]
cmp byte [rsp + 0x31], 0
jne 0x1403a64fc
movzx ecx, byte [rsp + 0x2f]
mov eax, dword [0x140549864]
sub eax, r15d
mov edx, dword [0x140549cb8]
lea r8d, [rbx + rdx]
neg edx
mov r9d, r12d
xor r9d, edx
and edx, r12d
lea edx, [r9 + rdx*2]
mov r9d, esi
sub r9d, r8d
add r9d, eax
sub r9d, edx
movsxd rax, r9d
add rax, qword [0x1405498c0]
mov edx, ebp
call qword [case.0x140303ece.0]
test al, 1
je 0x1403a6350
jmp 0x1403a65b4
movzx eax, byte [0x14054984d]
cmp al, 0xf4
je 0x1403a66b1
mov cl, 0x54
nop dword [rax + rax]
mov al, 0xf9
lock cmpxchg byte [0x14054984d], cl
je 0x1403a65d4
cmp al, 0xf4
jne 0x1403a6410
jmp 0x1403a66b1
movzx eax, byte [0x1405497bc]
cmp al, 0xb8
je 0x1403a66c2
mov cl, 0x16
nop word [rax + rax]
mov al, 0x99
lock cmpxchg byte [0x1405497bc], cl
je 0x1403a6640
cmp al, 0xb8
jne 0x1403a6440
jmp 0x1403a66c2
xor edi, edi
lea r12, [0x1405496b0]
mov ebx, esi
xor ebx, 0x35bffeac
lea r14, [rsp + 0x30]
mov ebp, esi
xor ebp, 0x6bc21734
nop word [rax + rax]
movzx edx, byte [rdi + r12]
lea rax, [0x140450270]
lea rcx, [rax + rdi]
mov eax, dword [0x140549878]
or eax, r15d
add eax, esi
add eax, 0xf14
cdqe
add rax, qword [0x1405498a0]
mov r8, r14
mov r9d, ebx
call qword [case.0x140303ece.0]
movzx r13d, byte [rsp + 0x30]
mov eax, dword [0x140549870]
xor eax, r15d
add eax, esi
add eax, 0xf14
cdqe
add rax, qword [0x1405498d8]
mov ecx, edi
mov rdx, r14
mov r8d, ebp
call qword [case.0x140303ece.0]
mov rax, qword [rsp + 0x30]
mov byte [rax + r12], r13b
lea eax, [rdi + 1]
cmp eax, 0xf
jg 0x1403a65c0
inc rdi
jmp 0x1403a6480
xor eax, eax
lea rbx, [0x140549650]
lea r12, [0x140450210]
xor r14d, 0xa18e98b7
lea rdi, [rsp + 0x30]
nop dword [rax + rax]
movsxd r8, eax
movzx edx, byte [r8 + rbx]
lea rcx, [r12 + r8]
mov r9d, dword [0x140549cb8]
add r9d, r14d
xor r9d, esi
mov eax, dword [0x14054987c]
xor eax, r15d
add eax, esi
add eax, 0xf14
cdqe
add rax, qword [0x1405498b0]
mov dword [rsp + 0x20], r9d
mov r9, rdi
call qword [case.0x140303ece.0]
mov eax, dword [rsp + 0x30]
cmp eax, 0x3b
jl 0x1403a6520
mov ecx, esi
xor ecx, 0x84195794
mov eax, dword [0x140549884]
mov edx, eax
not edx
not r15d
mov r8d, edx
xor r8d, r15d
and r8d, edx
and r15d, eax
or r15d, r8d
mov eax, dword [0x140549cb8]
mov edx, r13d
xor edx, eax
and r13d, eax
lea eax, [rdx + r13*2]
sub esi, eax
add esi, r15d
movsxd rax, esi
add rax, qword [0x1405498c8]
call qword [case.0x140303ece.0]
lea rax, [0x140549650]
jmp 0x1403a66c9
mov al, 0x50
xchg byte [0x1405496c0], al
lea rax, [0x1405496b0]
jmp 0x1403a66c9
xor edi, edi
lea r12, [0x140549840]
not r15d
mov ebx, esi
xor ebx, 0x92b8ab15
lea r14, [rsp + 0x30]
nop dword [rax]
movzx ebp, byte [rdi + r12]
mov eax, dword [0x140549860]
mov ecx, eax
not ecx
mov edx, ecx
xor edx, r15d
and edx, ecx
and eax, r15d
or eax, edx
add eax, esi
add eax, 0xf14
cdqe
add rax, qword [0x1405498e0]
mov rcx, rdi
mov rdx, r14
mov r8d, ebx
call qword [case.0x140303ece.0]
add bpl, byte [rsp + 0x30]
mov byte [rdi + r12], bpl
lea eax, [rdi + 1]
cmp eax, 0xc
jg 0x1403a66a9
inc rdi
jmp 0x1403a65f0
xor edi, edi
mov ebx, esi
xor ebx, 0xdfafc55a
lea r14, [rsp + 0x30]
lea r12, [0x140450360]
lea r13, [0x1405497b0]
nop dword [rax]
mov eax, r15d
xor eax, eax
not eax
and eax, dword [0x140549874]
xor eax, r15d
add eax, esi
add eax, 0xf14
cdqe
add rax, qword [0x1405498d0]
mov rcx, rdi
mov rdx, r14
mov r8d, ebx
call qword [case.0x140303ece.0]
movzx eax, byte [rsp + 0x30]
add al, byte [rdi + r12]
mov byte [rdi + r13], al
lea eax, [rdi + 1]
cmp eax, 0xb
jg 0x1403a66ba
inc rdi
jmp 0x1403a6660
mov al, 0xf4
xchg byte [0x14054984d], al
lea rax, [0x140549840]
jmp 0x1403a66c9
mov al, 0xb8
xchg byte [0x1405497bc], al
lea rax, [0x1405497b0]
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret