Function at 0x1403b1ae0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov esi, dword [rsp + 0xb0]
test ecx, ecx
je 0x1403b1b49
test edx, edx
je 0x1403b1b9d
mov r8d, esi
xor r8d, 0xa3267054
lea rcx, [rsp + 0x40]
mov edx, 0x9354128
call fcn.1403b2a90
cmp byte [rsp + 0x40], 9
je 0x1403b1ca2
mov cl, 0x86
nop dword [rax]
mov al, 0xb7
lock cmpxchg byte [0x14055fe40], cl
je 0x1403b1c19
cmp al, 9
jne 0x1403b1b30
jmp 0x1403b1ca2
test edx, edx
je 0x1403b1be4
movzx eax, byte [0x14055f76b]
cmp al, 0x74
je 0x1403b1e0a
mov edi, esi
xor edi, 0x50009c1c
lea rbx, [rsp + 0x40]
nop dword [rax]
mov rcx, rbx
mov edx, 0xa58298fb
mov r8d, edi
call fcn.1403b1a50
test al, 1
jne 0x1403b1cae
mov eax, esi
xor al, 0xb3
add al, byte [0x140561998]
cmp byte [rsp + 0x40], al
jne 0x1403b1b70
jmp 0x1403b1e0a
movzx eax, byte [0x14055f6b6]
mov ecx, esi
xor cl, 0xbc
add cl, byte [0x140561998]
cmp al, cl
je 0x1403b1df6
mov cl, 0xc1
nop dword [rax]
mov al, 0xdc
lock cmpxchg byte [0x14055f6b6], cl
je 0x1403b1d57
mov edx, esi
xor dl, 0xbc
add dl, byte [0x140561998]
cmp al, dl
jne 0x1403b1bc0
jmp 0x1403b1df6
movzx eax, byte [0x14055f734]
mov ecx, esi
xor cl, 0xbb
add cl, byte [0x140561998]
cmp al, cl
je 0x1403b1eef
xor ecx, ecx
mov al, 0xf1
lock cmpxchg byte [0x14055f734], cl
je 0x1403b1e16
cmp al, 0x7c
jne 0x1403b1c00
jmp 0x1403b1eef
xor eax, eax
lea r15, [0x14055fe30]
mov edi, esi
xor edi, 0xd5fb6480
lea rbx, [rsp + 0x40]
lea r12, [0x1404603c0]
mov ecx, esi
not ecx
and ecx, 0xc83b5718
xor esi, 0x37c4a8e7
or esi, ecx
not esi
or esi, ecx
nop dword [rax]
movsxd r14, eax
movzx ebp, byte [r14 + r15]
mov ecx, r14d
mov rdx, rbx
mov r8d, 0x16cae025
mov r9d, edi
call fcn.1403b19f0
mov rax, qword [rsp + 0x40]
add bpl, byte [rax + r12]
mov byte [r14 + r15], bpl
mov eax, r14d
xor eax, 1
mov ecx, r14d
xor ecx, 0x7ffffffe
and ecx, r14d
lea eax, [rax + rcx*2]
mov ecx, dword [0x140561988]
add ecx, esi
cmp eax, ecx
jl 0x1403b1c50
mov al, 9
xchg byte [0x14055fe40], al
lea rax, [0x14055fe30]
jmp 0x1403b1ef6
xor edi, edi
mov ebp, esi
xor ebp, 0xbb785e9c
mov r14d, esi
not r14d
lea rbx, [rsp + 0x40]
lea r15, [0x14055f760]
lea r12, [0x14045fd40]
mov eax, r14d
and eax, 0xc83b5715
mov r13d, esi
and r13d, 0x37c4a8ea
or r13d, eax
nop word cs:[rax + rax]
mov eax, dword [0x140561988]
mov ecx, esi
xor ecx, ebp
xor ecx, 0x4487a163
and ecx, eax
xor ecx, ebp
and eax, ebp
lea eax, [rcx + rax*2]
mov r9d, r14d
xor r9d, eax
not eax
and eax, esi
or r9d, eax
not r9d
or r9d, eax
mov ecx, edi
mov rdx, rbx
mov r8d, 0xd928fa46
call fcn.1400aa120
mov rax, qword [rsp + 0x40]
movzx eax, byte [rax + r15]
add al, byte [rdi + r12]
mov byte [rdi + r15], al
lea eax, [rdi + 1]
mov ecx, dword [0x140561988]
add ecx, r13d
cmp eax, ecx
jge 0x1403b1e02
inc rdi
jmp 0x1403b1cf0
xor ebp, ebp
mov edi, esi
xor edi, 0x102876a8
lea rbx, [rsp + 0x40]
lea r14, [0x14045fc90]
lea r15, [0x14055f6b0]
nop word cs:[rax + rax]
mov ecx, ebp
mov rdx, rbx
mov r8d, 0x46904181
mov r9d, edi
call fcn.1403b34c0
mov rax, qword [rsp + 0x40]
movzx eax, byte [rax]
movsxd rcx, ebp
movzx edx, byte [rcx + r14]
not al
not dl
mov r8d, eax
xor r8b, dl
or dl, al
and dl, r8b
mov byte [rcx + r15], dl
mov eax, ecx
xor eax, 1
and ecx, 1
lea ebp, [rax + rcx*2]
cmp ebp, 6
jl 0x1403b1d80
mov eax, esi
not eax
mov ecx, eax
and ecx, 0xb585d32
mov edx, esi
and edx, 0xf4a7a2cd
or edx, ecx
and eax, 0x633d72ac
and esi, 0x9cc28d53
or esi, eax
add esi, dword [0x140561988]
mov ecx, esi
call fcn.1403b3170
lea rax, [0x14055f6b0]
jmp 0x1403b1ef6
mov al, 0x74
xchg byte [0x14055f76b], al
lea rax, [0x14055f760]
jmp 0x1403b1ef6
xor r15d, r15d
mov eax, esi
not eax
mov ecx, eax
and ecx, 0xfe7bfbae
mov r13d, esi
and r13d, 0x1840451
or r13d, ecx
lea rbx, [rsp + 0x40]
lea r12, [0x14045fd10]
and eax, 0xaf07a4a0
mov edi, esi
and edi, 0x50f85b5f
or edi, eax
mov ebp, esi
xor ebp, 0xacc95a1a
mov r14d, esi
xor r14d, 0xd62950f2
nop
movsxd r15, r15d
lea rax, [0x14055f730]
lea rcx, [rax + r15]
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x20], 0x7f0bcd74
mov edx, r15d
lea r8, [rsp + 0x3f]
mov r9, rbx
call fcn.1402223d0
movzx ecx, byte [rsp + 0x3f]
mov rax, qword [rsp + 0x40]
movzx edx, byte [rax + r12]
mov eax, dword [0x140561988]
add eax, edi
xor eax, esi
mov dword [rsp + 0x20], eax
mov r8d, r15d
mov r9d, 0xdd729fcf
call fcn.1403b2960
mov ecx, r15d
mov rdx, rbx
mov r8d, 0x8236617e
mov r9d, ebp
call fcn.14014e6e0
mov r15d, dword [rsp + 0x40]
mov ecx, r15d
mov edx, 0x97270e13
mov r8d, r14d
call fcn.1403b2a20
test al, 1
je 0x1403b1e60
mov al, 0x7c
xchg byte [0x14055f734], al
lea rax, [0x14055f730]
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret