Function at 0x1403bca40
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov edi, r9d
mov esi, dword [rsp + 0x90]
test ecx, ecx
je 0x1403bcab6
test edx, edx
je 0x1403bcb39
movzx eax, byte [0x14057b9ed]
cmp al, 0xb4
je 0x1403bcc94
mov r14b, 0x6b
mov ebx, edi
xor ebx, 0xf1d606ae
mov ebp, esi
xor ebp, 0x184c1180
nop dword [rax + rax]
mov al, 0x25
lock cmpxchg byte [0x14057b9ed], r14b
je 0x1403bcc24
mov ecx, eax
mov edx, ebx
mov r8d, ebp
call fcn.1403bca30
test al, 1
je 0x1403bca90
jmp 0x1403bcc94
mov eax, edi
xor eax, 0xb0672c14
mov ebp, esi
not ebp
mov r8d, esi
xor r8d, 0x9ac13e10
mov ecx, ebp
and ecx, 0x653ec1ef
or r8d, ecx
not r8d
or r8d, ecx
mov ecx, edx
mov edx, eax
call fcn.1400712d0
test al, 1
je 0x1403bcbc6
movzx ecx, byte [0x14057b9dc]
mov edx, edi
xor edx, 0xf5f0b499
mov r8d, esi
xor r8d, 0xec2343af
call fcn.1403bc6b0
test al, 1
jne 0x1403bcd94
mov cl, 0x12
nop word cs:[rax + rax]
mov al, 0x30
lock cmpxchg byte [0x14057b9dc], cl
je 0x1403bcca0
cmp al, 0xb5
jne 0x1403bcb20
jmp 0x1403bcd94
movzx eax, byte [0x14057b7aa]
cmp al, 6
je 0x1403bcbba
movzx ecx, byte [0x14057bd24]
lea eax, [rcx + rsi]
mov edx, esi
xor dl, 0xac
add dl, cl
lock cmpxchg byte [0x14057b7aa], dl
jne 0x1403bcb40
xor ebx, ebx
lea r14, [0x14057b7a0]
lea r15, [0x140472070]
xor edi, 0xa076a0d3
xor esi, 0x604ff450
nop dword [rax + rax]
movsxd rax, ebx
movzx ecx, byte [rax + r15]
add byte [rax + r14], cl
add eax, 0xb21495de
mov ecx, eax
xor ecx, 1
and eax, 1
lea ebx, [rcx + rax*2]
add ebx, 0x4deb6a22
mov ecx, ebx
mov edx, edi
mov r8d, esi
call fcn.1403bd0a0
test al, 1
je 0x1403bcb80
mov al, 6
xchg byte [0x14057b7aa], al
lea rax, [0x14057b7a0]
jmp 0x1403bcdb6
mov eax, edi
not eax
mov edx, edi
xor edx, 0xa71bf917
and eax, 0x58e406e8
or edx, eax
not edx
or edx, eax
mov r8d, esi
xor r8d, 0x3aa23787
lea rcx, [rsp + 0x20]
call fcn.1403bcdd0
cmp byte [rsp + 0x20], 0x21
je 0x1403bcdaf
mov cl, 0x68
nop
mov al, 0xc9
lock cmpxchg byte [0x14057b7b9], cl
je 0x1403bcd10
mov edx, esi
xor dl, 0xea
add dl, byte [0x14057bd24]
cmp al, dl
jne 0x1403bcc00
jmp 0x1403bcdaf
xor ebx, ebx
xor edi, 0xed34297e
mov ebp, esi
xor ebp, 0xe75df47e
lea r14, [rsp + 0x20]
lea r15, [0x14057b9e0]
lea r12, [0x1404722a0]
xor esi, 0x61465715
nop dword [rax]
mov ecx, ebx
mov rdx, r14
mov r8d, edi
mov r9d, ebp
call fcn.1401404a0
mov rax, qword [rsp + 0x20]
movsxd rbx, ebx
movzx ecx, byte [rbx + r12]
mov edx, ecx
xor dl, cl
not dl
and dl, byte [rax + r15]
xor dl, cl
mov byte [rbx + r15], dl
mov eax, dword [0x14057bd20]
add eax, esi
add ebx, eax
cmp ebx, 0xd
jl 0x1403bcc50
mov al, 0xb4
xchg byte [0x14057b9ed], al
lea rax, [0x14057b9e0]
jmp 0x1403bcdb6
mov ebx, 1
lea r14, [0x14057b9d0]
lea r15, [0x140472290]
xor edi, 0x98f3f5db
mov r12d, esi
xor r12d, 0x32e1154e
and ebp, 0xcd1eeab1
or r12d, ebp
not r12d
or r12d, ebp
nop word cs:[rax + rax]
lea eax, [rbx - 1]
cdqe
movzx ecx, byte [rax + r15]
xor byte [rax + r14], cl
mov r8d, dword [0x14057bd20]
add r8d, r12d
xor r8d, esi
mov ecx, ebx
mov edx, edi
call fcn.1403bce50
test al, 1
jne 0x1403bcd8c
inc ebx
jmp 0x1403bcce0
xor ebx, ebx
mov r15d, esi
xor r15d, 0x722a943a
mov ebp, esi
xor ebp, 0xe87e3f9f
lea r14, [rsp + 0x20]
lea r12, [0x14057b7b0]
lea r13, [0x140472080]
nop word [rax + rax]
mov eax, dword [0x14057bd20]
add eax, r15d
mov r8d, eax
xor r8d, eax
not r8d
and r8d, edi
xor r8d, eax
mov ecx, ebx
mov rdx, r14
mov r9d, ebp
call fcn.1401404a0
mov rax, qword [rsp + 0x20]
movzx ecx, byte [rbx + r13]
mov edx, ecx
xor dl, cl
not dl
and dl, byte [rax + r12]
xor dl, cl
mov byte [rbx + r12], dl
lea eax, [rbx + 1]
cmp eax, 8
jg 0x1403bcd9d
inc rbx
jmp 0x1403bcd40
mov al, 0xb5
xchg byte [0x14057b9dc], al
lea rax, [0x14057b9d0]
jmp 0x1403bcdb6
xor sil, 0xea
add sil, byte [0x14057bd24]
xchg byte [0x14057b7b9], sil
lea rax, [0x14057b7b0]
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret