Function at 0x140185e30
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.140105150
mov eax, dword [0x14055f620]
add eax, dword [rbp + 0x18]
mov ecx, dword [0x14055f628]
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 [0x14055f61c]
mov eax, 0x76a2eb08
add eax, dword [0x1405054f8]
cmp edx, eax
je 0x140185eba
cmp qword [rbp + 0x20], 0x10
jb 0x140185eb1
mov rcx, qword [rbp + 8]
jmp 0x140185eb5
lea rcx, [rbp + 8]
call fcn.140087770
mov rcx, rbp
lea rdx, [rbp - 0x28]
mov r8b, 1
call fcn.140239220
lea rdx, [rbp - 0x50]
mov rcx, rsi
mov r8b, 1
call fcn.140239220
mov eax, dword [0x1405054f8]
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 0x140185f00
mov r8, qword [rbp - 0x38]
movabs rdi, 0xcad23197b5cc4a6e
cmp r8, qword [rbp - 0x10]
jne 0x140185f3a
mov rax, qword [0x140505500]
add rax, rdi
cmp qword [rbp - 0x30], rax
jbe 0x140185f3e
mov rcx, qword [rbp - 0x48]
cmp qword [rbp - 8], rax
ja 0x140185f48
lea rdx, [rbp - 0x20]
jmp 0x140185f4c
xor esi, esi
jmp 0x140185f6d
lea rcx, [rbp - 0x48]
cmp qword [rbp - 8], rax
jbe 0x140185f34
mov rdx, qword [rbp - 0x20]
mov dword [rsp + 0x28], 0x549f8e42
mov dword [rsp + 0x20], 0xdf659d28
mov r9d, 0x6b26425a
call fcn.1400aff90
test eax, eax
sete sil
mov eax, dword [0x1405054f8]
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 [0x14055f238]
test dl, cl
jne 0x140185f9e
xor dl, cl
je 0x14018601b
mov r8, qword [rbp - 0x48]
mov rcx, qword [0x140505500]
movabs rdx, 0xcad23197b5cc4a60
xor rdx, rcx
movabs r9, 0x4ad23197b5cc4a60
and r9, rcx
lea r9, [rdx + r9*2]
add r9, rax
cmp r9, 0x1000
jb 0x140185fff
mov rcx, qword [r8 - 8]
add r8, 0xfffffffffffffff8
sub r8, rcx
cmp r8, 0x20
jae 0x1401860d3
add rax, qword [0x140505500]
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.140198910
mov rax, qword [rbp - 8]
add rdi, qword [0x140505500]
cmp rax, rdi
jbe 0x1401860cb
mov r8, qword [rbp - 0x20]
mov rcx, qword [0x140505500]
movabs rdx, 0xcad23197b5cc4a60
add rdx, rcx
mov r9, rax
xor r9, rdx
and rdx, rax
lea rdx, [r9 + rdx*2]
mov r9, qword [0x14055f578]
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 0x1401860af
mov rcx, qword [r8 - 8]
sub r8, rcx
add r8, 0xfffffffffffffff8
cmp r8, 0x20
jae 0x1401860f1
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.140198910
xor eax, eax
test al, al
jne 0x140186110
jmp 0x1401860f6
xor eax, eax
mov cl, 1
mov edx, dword [0x14055f60c]
cmp edx, 0x2d
jg 0x1401860e6
test al, al
je 0x1401860ec
test cl, cl
je 0x1401860d7
jmp 0x1401860e2
call fcn.1403bcb3c
call fcn.1403bcb3c
mov rax, qword [0x14055f2b8]
add rax, qword [rbp + 0x20]
mov ecx, dword [0x14055f60c]
cmp ecx, 0x23
jl 0x140186127
nop dword [rax]
mov eax, dword [0x14055f608]
mov ecx, 1
sub ecx, eax
imul ecx, eax
test cl, 1
jne 0x140186110
jmp 0x1401860f6
cmp rax, 0x10
jb 0x14018620c
mov ecx, dword [0x14055f608]
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 [0x14055f238]
mov edx, dword [0x14055f608]
lea r10d, [rdx - 1]
imul r10d, edx
test r10b, 1
jne 0x140186140
test cl, 1
je 0x1401861b0
mov rcx, qword [r8 - 8]
add r8, 0xfffffffffffffff8
sub r8, rcx
cmp r8, 0x20
jae 0x140186237
add rax, 0x28
mov r9, rax
mov r8, rcx
mov eax, dword [0x1405054f8]
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.140198910
mov eax, dword [0x14055f608]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, dword [0x1405054f8]
mov edx, eax
xor edx, 0x76a2eb08
and eax, 0x76a2eb08
lea eax, [rdx + rax*2]
cmp ecx, eax
jne 0x140186270
jmp 0x14018623c
call fcn.1403bcb3c
mov eax, 0x76a2eb09
add eax, dword [0x1405054f8]
lea rcx, [fcn.140185e30]
add ecx, ecx
add ecx, 0x2900
mov edx, ecx
xor edx, eax
or eax, ecx
not eax
or eax, edx
cmp eax, 0xffffffff
je 0x14018627d
nop word cs:[rax + rax]
mov eax, dword [0x14055f60c]
cmp eax, 0x5e
jge 0x140186270
jmp 0x14018623c
mov eax, esi
add rsp, 0xb0
pop rdi
pop rsi
pop rbp
ret