Function at 0x1404097c0
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 esi, r9d
mov eax, 0xb70b5091
add eax, dword [0x1405bf354]
cmp ecx, eax
jne 0x140409858
mov eax, 0x6ca8d1c2
add eax, dword [0x1405bf354]
xor eax, esi
mov ecx, edx
mov edx, eax
mov r8d, 0xdd95258b
call fcn.140409b60
test al, 1
je 0x1404098af
movzx eax, byte [0x1405bf263]
movzx ecx, byte [0x1405bf350]
add cl, 0x20
cmp al, cl
je 0x140409ab1
mov bl, 0x78
xor esi, 0x2a13c00
nop word [rax + rax]
mov al, 0x39
lock cmpxchg byte [0x1405bf263], bl
je 0x1404099ac
mov ecx, eax
mov edx, esi
mov r8d, 0x3bd0800d
call fcn.140409b30
test al, 1
je 0x140409830
jmp 0x140409ab1
test edx, edx
je 0x1404098f8
mov ecx, esi
xor ecx, 0x1c62cd70
mov edx, 0x5f480937
call fcn.140409b40
test al, 1
jne 0x1404099a0
mov cl, 0x9a
nop dword [rax]
mov al, 0x64
lock cmpxchg byte [0x1405bf293], cl
je 0x140409944
movzx edx, byte [0x1405bf350]
mov r8d, edx
xor r8b, 0x2b
and dl, 0x2b
add dl, dl
add dl, r8b
cmp al, dl
jne 0x140409880
jmp 0x1404099a0
movzx eax, byte [0x1405bf23b]
cmp al, 0xac
je 0x140409a99
mov bl, 0x80
mov edi, esi
xor edi, 0x4a3edf4a
nop dword [rax + rax]
mov al, 0xc7
lock cmpxchg byte [0x1405bf23b], bl
je 0x1404099dc
mov ecx, eax
mov edx, edi
mov r8d, 0xfb39302d
call fcn.140381260
test al, 1
je 0x1404098d0
jmp 0x140409a99
movzx eax, byte [0x1405bf2af]
cmp al, 0x43
je 0x140409b0c
mov edi, esi
xor edi, 0x2525aa8a
lea rbx, [rsp + 0x20]
nop word cs:[rax + rax]
mov rcx, rbx
mov edx, edi
mov r8d, 0xbfce45a1
call fcn.140409bf0
test al, 1
jne 0x140409aba
cmp byte [rsp + 0x20], 0x43
jne 0x140409920
jmp 0x140409b0c
xor edi, edi
xor esi, 0xbeff13fc
lea rbx, [rsp + 0x20]
lea r14, [0x1404b2210]
lea r15, [0x1405bf270]
nop
mov rcx, rdi
mov rdx, rbx
mov r8d, esi
mov r9d, 0x80243683
call fcn.140409b80
mov rax, qword [rsp + 0x20]
movzx eax, byte [rax]
add al, byte [rdi + r14]
mov byte [rdi + r15], al
lea eax, [rdi + 1]
cmp eax, 0x22
jg 0x140409991
inc rdi
jmp 0x140409960
movzx eax, byte [0x1405bf350]
add al, 0x2b
xchg byte [0x1405bf293], al
lea rax, [0x1405bf270]
jmp 0x140409b13
xor eax, eax
lea rcx, [0x1405bf260]
lea rdx, [0x1404b2200]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 2
jg 0x140409aa2
inc rax
jmp 0x1404099c0
xor eax, eax
lea r12, [0x1405bf220]
mov edi, esi
xor edi, 0x646e15d8
lea rbx, [rsp + 0x20]
mov ebp, esi
xor ebp, 0xd87ea716
mov r14d, esi
xor r14d, 0x9b26531f
nop word cs:[rax + rax]
movsxd r15, eax
lea rcx, [r12 + r15]
mov rdx, rbx
mov r8d, edi
mov r9d, 0xdbebddcc
call fcn.140409b90
movzx r13d, byte [rsp + 0x20]
mov ecx, r15d
mov rdx, rbx
mov r8d, ebp
mov r9d, 0xf636156f
call fcn.140152500
mov rax, qword [rsp + 0x20]
lea rcx, [0x1404b21c0]
movzx eax, byte [rax + rcx]
mov ecx, eax
xor cl, al
not cl
and cl, r13b
xor cl, al
mov byte [r15 + r12], cl
mov ecx, r15d
mov rdx, rbx
mov r8d, r14d
mov r9d, 0xb55dbca6
call fcn.1401472f0
mov eax, dword [rsp + 0x20]
cmp eax, 0x1b
jl 0x140409a10
mov edx, dword [0x1405bf354]
lea eax, [rdx - 0x4c9a838f]
xor esi, eax
add edx, 0x639c6c7d
mov ecx, esi
call fcn.140409c20
lea rax, [0x1405bf220]
jmp 0x140409b13
movzx eax, byte [0x1405bf350]
add al, 0x20
xchg byte [0x1405bf263], al
lea rax, [0x1405bf260]
jmp 0x140409b13
mov edi, 1
lea rbx, [0x1405bf2a0]
lea r14, [0x1404b2240]
xor esi, 0x22d792
nop word cs:[rax + rax]
lea eax, [rdi - 1]
cdqe
movzx ecx, byte [rax + r14]
xor byte [rax + rbx], cl
mov ecx, edi
mov edx, esi
mov r8d, 0xd0dfa4a
call fcn.140409be0
test al, 1
jne 0x140409b04
inc edi
jmp 0x140409ae0
mov al, 0x43
xchg byte [0x1405bf2af], al
lea rax, [0x1405bf2a0]
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret