Function at 0x140147780
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x40
mov edi, r9d
mov esi, dword [rsp + 0xa0]
test ecx, ecx
je 0x14014783c
mov eax, edi
xor eax, 0xd068e47e
mov r8d, esi
xor r8d, 0x5a0c261
mov ecx, edx
mov edx, eax
call fcn.1400aa7f0
test al, 1
je 0x140147879
mov ecx, edi
xor ecx, 0xabe4500a
mov edx, esi
xor edx, 0xd491c207
call fcn.140149ab0
test al, 1
jne 0x1401479bc
mov r15b, 0xed
mov ebx, edi
xor ebx, 0xb19cda24
mov ebp, esi
xor ebp, 0x864065a9
xor edi, 0x25803a2d
xor esi, 0xd46a4229
nop
mov al, 0x99
lock cmpxchg byte [0x1404c7fe9], r15b
mov r14d, eax
sete dl
mov ecx, eax
mov r8d, ebx
mov r9d, ebp
call fcn.1400fa530
test al, 1
jne 0x140147911
mov ecx, r14d
mov edx, edi
mov r8d, esi
call fcn.1401473d0
test al, 1
je 0x140147800
jmp 0x1401479bc
mov eax, esi
xor eax, 0x9da59ba5
add eax, dword [0x1404c8630]
cmp edx, eax
jne 0x1401478a9
movzx eax, byte [0x1404c7ebd]
cmp al, 0x23
je 0x140147a25
mov cl, 2
nop
mov al, 0x67
lock cmpxchg byte [0x1404c7ebd], cl
je 0x1401479dc
cmp al, 0x23
jne 0x140147860
jmp 0x140147a25
movzx eax, byte [0x1404c7eed]
cmp al, 0xc2
je 0x1401479d0
mov cl, 0xeb
nop word [rax + rax]
mov al, 0x25
lock cmpxchg byte [0x1404c7eed], cl
je 0x140147958
cmp al, 0xc2
jne 0x140147890
jmp 0x1401479d0
mov ecx, edi
xor ecx, 0x6d9543
mov edx, esi
xor edx, 0xe3cc4e33
add edx, dword [0x1404c8630]
xor edx, esi
call fcn.1401482b0
test al, 1
jne 0x140147a8a
mov ebx, edi
xor ebx, 0xab6f8146
mov ebp, esi
xor ebp, 0x1d7b561
lea r14, [rsp + 0x3c]
nop word cs:[rax + rax]
mov rcx, r14
mov edx, ebx
mov r8d, ebp
call fcn.140148b70
test al, 1
jne 0x140147a2e
cmp byte [rsp + 0x3c], 0xce
jne 0x1401478f0
jmp 0x140147a8a
xor eax, eax
lea rcx, [0x1404c7fe0]
lea rdx, [0x1403f0e10]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
mov r9d, r8d
xor r9b, r8b
not r9b
and r9b, byte [rax + rcx]
xor r9b, r8b
mov byte [rax + rcx], r9b
lea r8d, [rax + 1]
cmp r8d, 8
jg 0x1401479b4
inc rax
jmp 0x140147930
xor ebx, ebx
lea r15, [0x1404c7ee0]
xor edi, 0xccc7ac44
mov ebp, esi
xor ebp, 0x39e62742
lea r14, [rsp + 0x3f]
xor esi, 0x9da59bd6
nop word [rax + rax]
movzx edx, byte [rbx + r15]
mov dword [rsp + 0x20], ebp
mov rcx, rbx
mov r8, r14
mov r9d, edi
call fcn.1401485e0
movzx eax, byte [rsp + 0x3f]
mov byte [rbx + r15], al
lea eax, [rbx + 1]
mov ecx, dword [0x1404c8630]
add ecx, esi
cmp eax, ecx
jge 0x1401479c8
inc rbx
jmp 0x140147980
mov al, 0x3c
xchg byte [0x1404c7fe9], al
lea rax, [0x1404c7fe0]
jmp 0x140147a91
mov al, 0xc2
xchg byte [0x1404c7eed], al
lea rax, [0x1404c7ee0]
jmp 0x140147a91
xor eax, eax
lea rcx, [0x1404c7eb0]
lea rdx, [0x1403f0ce0]
xor esi, 0x9da59baa
nop word cs:[rax + rax]
cdqe
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
mov r8d, dword [0x1404c8630]
add r8d, esi
add eax, r8d
cmp eax, 0xd
jl 0x140147a00
mov al, 0x23
xchg byte [0x1404c7ebd], al
lea rax, [0x1404c7eb0]
jmp 0x140147a91
xor ebx, ebx
xor edi, 0x52cd2d68
xor esi, 0xeed21c53
lea r14, [rsp + 0x3d]
lea r15, [rsp + 0x3e]
lea r12, [0x1404c7dd0]
nop dword [rax]
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], edi
mov rcx, rbx
mov edx, ebx
mov r8, r14
mov r9, r15
call fcn.140149a70
movzx eax, byte [rsp + 0x3d]
add al, byte [rsp + 0x3e]
mov byte [rbx + r12], al
lea eax, [rbx + 1]
cmp eax, 0x14
jg 0x140147a82
inc rbx
jmp 0x140147a50
mov al, 0xce
xchg byte [0x1404c7de5], al
lea rax, [0x1404c7dd0]
add rsp, 0x40
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret