Function at 0x1401809f0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
sub rsp, 0xb0
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x28], 0xfffffffffffffffe
mov rsi, rcx
mov dword [rsp + 0x20], 0x8d386e5d
mov rcx, rbp
mov r8d, 0x90cd76d9
mov r9d, 0x1d4d1230
call fcn.1400ffde0
mov eax, dword [0x14058f4c4]
add eax, dword [rbp + 0x18]
mov ecx, dword [0x14058f4cc]
mov edx, eax
xor edx, eax
not edx
and edx, ecx
xor edx, eax
and eax, ecx
add eax, eax
mov ecx, edx
xor ecx, eax
and eax, edx
lea edx, [rcx + rax*2]
add edx, dword [0x14058f4c0]
mov eax, 0x76a2eb08
add eax, dword [0x14052f5e8]
cmp edx, eax
je 0x140180a7a
cmp qword [rbp + 0x20], 0x10
jb 0x140180a71
mov rcx, qword [rbp + 8]
jmp 0x140180a75
lea rcx, [rbp + 8]
call fcn.1400854c0
mov rcx, rbp
lea rdx, [rbp - 0x28]
mov r8b, 1
call fcn.140252400
lea rdx, [rbp - 0x50]
mov rcx, rsi
mov r8b, 1
call fcn.140252400
mov eax, dword [0x14052f5e8]
mov ecx, eax
xor ecx, 0x95d14f7
and ecx, eax
xor eax, 0x76a2eb08
add ecx, ecx
add ecx, eax
nop word cs:[rax + rax]
mov al, 1
test al, al
je 0x140180ac0
mov r8, qword [rbp - 0x38]
movabs rdi, 0xcad23197b5cc4a6e
cmp r8, qword [rbp - 0x10]
jne 0x140180afa
mov rax, qword [0x14052f5f0]
add rax, rdi
cmp qword [rbp - 0x30], rax
jbe 0x140180afe
mov rcx, qword [rbp - 0x48]
cmp qword [rbp - 8], rax
ja 0x140180b08
lea rdx, [rbp - 0x20]
jmp 0x140180b0c
xor esi, esi
jmp 0x140180b2d
lea rcx, [rbp - 0x48]
cmp qword [rbp - 8], rax
jbe 0x140180af4
mov rdx, qword [rbp - 0x20]
mov dword [rsp + 0x28], 0x549f8e42
mov dword [rsp + 0x20], 0xdf659d28
mov r9d, 0x6b26425a
call fcn.1400ae220
test eax, eax
sete sil
mov eax, dword [0x14052f5e8]
mov ecx, eax
xor ecx, 0x76a2eb08
and eax, 0x76a2eb08
add eax, eax
add eax, ecx
mov rax, qword [rbp - 0x30]
cmp rax, 0x10
setae cl
movzx edx, byte [0x14058f0d0]
test dl, cl
jne 0x140180b5e
xor dl, cl
je 0x140180bdb
mov r8, qword [rbp - 0x48]
mov rcx, qword [0x14052f5f0]
movabs rdx, 0xcad23197b5cc4a60
xor rdx, rcx
movabs r9, 0x4ad23197b5cc4a60
and r9, rcx
lea r9, [rdx + r9*2]
add r9, rax
cmp r9, 0x1000
jb 0x140180bbf
mov rcx, qword [r8 - 8]
add r8, 0xfffffffffffffff8
sub r8, rcx
cmp r8, 0x20
jae 0x140180c93
add rax, qword [0x14052f5f0]
movabs r9, 0xcad23197b5cc4a87
add r9, rax
mov r8, rcx
mov dword [rsp + 0x28], 0xc2a99
mov dword [rsp + 0x20], 0x5e4221ee
mov ecx, 1
xor edx, edx
call fcn.1401934d0
mov rax, qword [rbp - 8]
add rdi, qword [0x14052f5f0]
cmp rax, rdi
jbe 0x140180c8b
mov r8, qword [rbp - 0x20]
mov rcx, qword [0x14052f5f0]
movabs rdx, 0xcad23197b5cc4a60
add rdx, rcx
mov r9, rax
xor r9, rdx
and rdx, rax
lea rdx, [r9 + rdx*2]
mov r9, qword [0x14058f410]
mov r10, rdx
xor r10, rdx
not r10
and r10, r9
xor r10, rdx
and r9, rdx
lea r9, [r10 + r9*2]
movabs rdx, 0xcad23197b5cc5a5e
xor rdx, rcx
movabs r10, 0x4ad23197b5cc5a5e
and r10, rcx
lea rcx, [rdx + r10*2]
cmp r9, rcx
jbe 0x140180c6f
mov rcx, qword [r8 - 8]
sub r8, rcx
add r8, 0xfffffffffffffff8
cmp r8, 0x20
jae 0x140180cb1
add rax, 0x28
mov r9, rax
mov r8, rcx
mov dword [rsp + 0x28], 0xc2a99
mov dword [rsp + 0x20], 0x5e4221ee
mov ecx, 1
xor edx, edx
call fcn.1401934d0
xor eax, eax
test al, al
jne 0x140180cd0
jmp 0x140180cb6
xor eax, eax
mov cl, 1
mov edx, dword [0x14058f4a4]
cmp edx, 0x2d
jg 0x140180ca6
test al, al
je 0x140180cac
test cl, cl
je 0x140180c97
jmp 0x140180ca2
call fcn.1403e571c
call fcn.1403e571c
mov rax, qword [0x14058f150]
add rax, qword [rbp + 0x20]
mov ecx, dword [0x14058f4a4]
cmp ecx, 0x23
jl 0x140180ce7
nop dword [rax]
mov eax, dword [0x14058f4a0]
mov ecx, 1
sub ecx, eax
imul ecx, eax
test cl, 1
jne 0x140180cd0
jmp 0x140180cb6
cmp rax, 0x10
jb 0x140180dcc
mov ecx, dword [0x14058f4a0]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
mov r8, qword [rbp + 8]
mov rcx, rax
xor rcx, 1
mov rdx, rax
not rdx
movabs r9, 0x7ffffffffffffffe
and r9, rdx
or r9, rcx
not r9
lea r9, [rcx + r9*2]
cmp r9, 0x1000
setae cl
or cl, byte [0x14058f0d0]
mov edx, dword [0x14058f4a0]
lea r10d, [rdx - 1]
imul r10d, edx
test r10b, 1
jne 0x140180d00
test cl, 1
je 0x140180d70
mov rcx, qword [r8 - 8]
add r8, 0xfffffffffffffff8
sub r8, rcx
cmp r8, 0x20
jae 0x140180df7
add rax, 0x28
mov r9, rax
mov r8, rcx
mov eax, dword [0x14052f5e8]
mov ecx, eax
xor ecx, 0x76a2eb09
mov edx, eax
and edx, 0x76a2eb09
add edx, edx
mov r10d, ecx
xor r10d, edx
and edx, ecx
lea ecx, [r10 + rdx*2]
lea edx, [rax + 0x76a2eb08]
mov r10d, eax
xor r10d, 0x1620af7d
mov r11d, eax
and r11d, 0x1620af7d
lea r10d, [r10 + r11*2]
add r10d, 0xbec45d79
add eax, 0x76af15a1
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r10d
call fcn.1401934d0
mov eax, dword [0x14058f4a0]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, dword [0x14052f5e8]
mov edx, eax
xor edx, 0x76a2eb08
and eax, 0x76a2eb08
lea eax, [rdx + rax*2]
cmp ecx, eax
jne 0x140180e30
jmp 0x140180dfc
call fcn.1403e571c
mov eax, 0x76a2eb09
add eax, dword [0x14052f5e8]
lea rcx, [fcn.1401809f0]
add ecx, ecx
add ecx, 0x2900
mov edx, ecx
xor edx, eax
or eax, ecx
not eax
or eax, edx
cmp eax, 0xffffffff
je 0x140180e3d
nop word cs:[rax + rax]
mov eax, dword [0x14058f4a4]
cmp eax, 0x5e
jge 0x140180e30
jmp 0x140180dfc
mov eax, esi
add rsp, 0xb0
pop rdi
pop rsi
pop rbp
ret