Function at 0x14010bc50
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0x130
lea rbp, [rsp + 0x80]
mov qword [rbp + 8], rdx
mov qword [rbp + 0x10], rcx
mov eax, 0x10
mov qword [rbp + 0x20], rax
call fcn.1401d7280
sub rsp, rax
mov rax, qword [rbp + 0x20]
mov rcx, rsp
mov qword [rbp + 0x18], rcx
call fcn.1401d7280
sub rsp, rax
mov rax, qword [rbp + 0x20]
mov rcx, rsp
mov qword [rbp + 0x28], rcx
call fcn.1401d7280
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x30], rax
sub rsp, 0x20
call fcn.1401054fb
add rsp, 0x20
mov qword [rbp + 0x38], rax
mov cx, 0xdd14
xor cx, 0x511b
mov dx, 0x678b
xor dx, 0xfa5c
sub rsp, 0x20
call fcn.140066590
add rsp, 0x20
mov cx, ax
mov rax, qword [rbp + 0x38]
mov word [rbp + 0x46], cx
mov al, byte [rax]
mov cl, 0xc9
xor cl, 0xc9
cmp al, cl
jne 0x14010c4ad
mov eax, dword [0x1401df378]
imul eax, dword [0x1401df37c]
mov ecx, 0x93d23b00
xor ecx, 0xe421d857
xor edx, edx
div ecx
and eax, 0xdd82386d
xor eax, 0x6bfaa8f
cmp eax, 0xb1d4f111
ja 0x14010c4b6
mov rcx, qword [rbp + 8]
mov ax, word [rbp + 0x46]
mov edx, dword [0x1401df380]
mov r8d, dword [0x1401df384]
xor r8d, 0x6afd6f72
imul edx, r8d
add edx, 0x88f01df2
and edx, 0x861e83f9
imul edx, edx, 0xe7d1eb38
mov dword [rbp], edx
mov edx, 0x3531ffa7
mov dword [rbp - 4], edx
mov dl, al
sub rsp, 0x20
call fcn.140108337
mov r8, qword [rbp + 0x10]
mov rdx, qword [rbp + 0x38]
mov ecx, dword [rbp - 4]
mov eax, dword [rbp]
add rsp, 0x20
mov r8, qword [r8]
test r8, r8
sete r8b
mov dl, byte [rdx]
test dl, dl
setne dl
mov byte [rbp + 6], dl
or dl, r8b
mov byte [rbp + 7], dl
cmp eax, ecx
jbe 0x14010bd21
mov al, byte [rbp + 7]
test al, 1
jne 0x14010c08a
jmp 0x14010bdad
mov ecx, 0xe314
mov edx, 0xf28d
sub rsp, 0x20
call fcn.140066590
mov rcx, qword [rbp + 0x38]
add rsp, 0x20
mov cl, byte [rcx]
cmp cl, 0
sete dl
mov byte [rbp - 6], dl
cmp cl, 0
mov byte [rbp - 5], al
je 0x14010bddf
mov al, byte [rbp - 6]
mov cl, byte [rbp - 5]
mov byte [rbp - 7], cl
test al, 1
jne 0x14010bdf5
jmp 0x14010c064
mov rcx, qword [rbp + 0x18]
movabs rax, 0x224015c3e30660b1
movabs rdx, 0x224015c3e30660b1
xor rax, rdx
mov qword [rbp + 0xa0], rax
lea rax, [rbp + 0xa0]
add rax, 8
mov qword [rbp - 0x18], rax
mov qword [rbp + 0xa8], 0
mov word [rcx], 0x3e3
sub rsp, 0x20
call fcn.140062fb0
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x38]
mov qword [rbp - 0x10], rcx
cmp byte [rax], 0
jne 0x14010c064
mov rax, qword [rbp - 0x10]
mov rdx, qword [rax]
movabs rax, 0xbfc321cd6db3e8e6
movabs rcx, 0xe6b799bd5d23a4a
xor rax, rcx
sub rdx, rax
movabs rax, 0xc7c3f32b31199682
movabs rcx, 0xc7c3f32b31199683
xor rax, rcx
add rdx, rax
movabs rax, 0xb1a85856b861d2ac
add rdx, rax
lea rcx, [rbp + 0xa0]
sub rsp, 0x20
call fcn.140018c10
mov rax, qword [rbp - 0x10]
add rsp, 0x20
mov rcx, qword [rax]
mov qword [rbp + 0x90], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0x98], rax
lea rcx, [rbp + 0xa0]
lea rdx, [rbp + 0x90]
sub rsp, 0x20
call fcn.140105520
mov dl, byte [rbp - 7]
add rsp, 0x20
lea rcx, [rbp + 0xa0]
sub rsp, 0x20
call fcn.140109670
mov rax, qword [rbp - 0x18]
mov rcx, qword [rbp + 8]
add rsp, 0x20
mov rdx, qword [rbp + 0xa0]
mov qword [rbp - 0x30], rdx
mov rax, qword [rax]
mov qword [rbp - 0x28], rax
sub rsp, 0x20
call fcn.140019490
mov r8, qword [rbp - 0x30]
mov rdx, qword [rbp + 0x28]
mov rcx, qword [rbp + 8]
mov rax, qword [rbp - 0x28]
add rsp, 0x20
mov qword [rdx], r8
mov qword [rdx + 8], rax
sub rsp, 0x20
call fcn.140105520
mov rax, qword [rbp + 0x10]
mov rdx, qword [rbp + 8]
add rsp, 0x20
mov rcx, qword [rax]
mov qword [rbp + 0x80], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0x88], rax
lea rcx, [rbp + 0x80]
sub rsp, 0x20
call fcn.14010a1d0
mov rax, qword [rbp + 0x38]
mov rcx, qword [rbp - 0x28]
add rsp, 0x20
mov al, byte [rax]
mov byte [rbp - 0x1b], al
mov dl, 0x15
xor dl, 0x15
cmp al, dl
sete dl
mov byte [rbp - 0x1a], dl
cmp rcx, 0
mov byte [rbp - 0x19], al
je 0x14010c069
mov al, byte [rbp - 0x1b]
mov rcx, qword [rbp - 0x28]
mov rdx, qword [rcx]
mov rcx, rdx
xor rcx, 0xffffffffffffffff
movabs r8, 0x181828012bdf9294
movabs r9, 0xe7e7d7fed4206d6b
xor r8, r9
xor rdx, r8
and rcx, rdx
mov rdx, 0xffffffffffffffff
movabs r8, 0x4000000000000000
xor rdx, r8
movabs r8, 0x342834a1489d7210
movabs r9, 0x742834a1489d7210
xor r8, r9
movabs r9, 0x305894a05809a3f9
movabs r10, 0xcfa76b5fa7f65c06
xor r9, r10
xor r8, r9
and rdx, r8
xor rcx, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
and rcx, rdx
movabs rdx, 0x6c8310225f5d425d
movabs r8, 0x6c8310225f5d425d
xor rdx, r8
cmp rcx, rdx
mov byte [rbp - 0x19], al
jne 0x14010c069
mov rcx, qword [rbp - 0x28]
sub rsp, 0x20
call fcn.14000de03
mov rax, qword [rbp + 0x38]
add rsp, 0x20
mov al, byte [rax]
mov byte [rbp - 0x19], al
jmp 0x14010c069
jmp 0x14010c4ad
mov al, byte [rbp - 0x1a]
mov cl, byte [rbp - 0x19]
and al, 1
movzx eax, al
mov dl, 0x55
xor dl, 0x55
cmp cl, dl
mov qword [rbp - 0x38], rax
je 0x14010c09c
jmp 0x14010c4ad
mov cl, byte [rbp + 6]
xor eax, eax
test cl, 1
mov qword [rbp - 0x38], rax
jne 0x14010c4ad
mov rax, qword [rbp + 0x38]
mov rcx, qword [rbp + 0x10]
mov rdx, qword [rbp - 0x38]
mov qword [rbp - 0x50], rdx
mov rdx, rcx
add rdx, 0x10
mov qword [rbp - 0x48], rdx
mov rcx, qword [rcx + 0x10]
test rcx, rcx
sete cl
mov al, byte [rax]
test al, al
setne al
mov byte [rbp - 0x39], al
or al, cl
test al, 1
jne 0x14010c3dc
mov rax, qword [rbp - 0x50]
cmp rax, 0
je 0x14010c125
mov ecx, 0xfe14
mov edx, 0xef9b
sub rsp, 0x20
call fcn.140066590
add rsp, 0x20
mov cx, ax
mov rax, qword [rbp + 0x38]
mov word [rbp - 0x52], cx
cmp byte [rax], 0
jne 0x14010c3c4
mov rcx, qword [rbp + 8]
mov ax, word [rbp - 0x52]
mov dl, al
sub rsp, 0x20
call fcn.140108337
add rsp, 0x20
mov cx, 0xf926
xor cx, 0x1a32
mov dx, 0x79c1
xor dx, 0x8b4c
sub rsp, 0x20
call fcn.140066590
mov rcx, qword [rbp + 0x38]
add rsp, 0x20
mov cl, byte [rcx]
mov dl, 0x7f
xor dl, 0x7f
cmp cl, dl
sete r8b
mov byte [rbp - 0x54], r8b
cmp cl, dl
mov byte [rbp - 0x53], al
je 0x14010c164
mov al, byte [rbp - 0x54]
mov cl, byte [rbp - 0x53]
mov byte [rbp - 0x55], cl
test al, 1
jne 0x14010c17a
jmp 0x14010c3c4
mov rax, qword [rbp + 0x30]
mov qword [rax], 0
mov rcx, rax
add rcx, 8
mov qword [rbp - 0x68], rcx
mov qword [rax + 8], 0
mov word [rbp + 0x7e], 0x9f
lea rcx, [rbp + 0x7e]
sub rsp, 0x20
call fcn.140062fb0
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x38]
mov qword [rbp - 0x60], rcx
mov al, byte [rax]
mov cl, 0xff
xor cl, 0xff
cmp al, cl
jne 0x14010c3c4
mov rcx, qword [rbp + 0x30]
mov rax, qword [rbp - 0x60]
mov rdx, qword [rax]
movabs rax, 0x1276ea5d3897dd2d
movabs r8, 0x1276ea5d3897dd2d
xor rax, r8
movabs r8, 0x6a65f938b0407c4f
movabs r9, 0x6a65f938b0407c4e
xor r8, r9
sub rax, r8
sub rdx, rax
sub rsp, 0x20
call fcn.140018c10
mov rax, qword [rbp - 0x60]
mov rcx, qword [rbp + 0x30]
add rsp, 0x20
mov rdx, qword [rax]
mov qword [rbp + 0x68], rdx
mov rax, qword [rax + 8]
mov qword [rbp + 0x70], rax
lea rdx, [rbp + 0x68]
sub rsp, 0x20
call fcn.140105520
mov dl, byte [rbp - 0x55]
mov rcx, qword [rbp + 0x30]
call fcn.140109670
mov rdx, qword [rbp + 0x30]
mov rax, qword [rbp - 0x68]
mov rcx, qword [rbp + 8]
add rsp, 0x20
mov rdx, qword [rdx]
mov qword [rbp - 0x78], rdx
mov rax, qword [rax]
mov qword [rbp - 0x70], rax
sub rsp, 0x20
call fcn.140019490
mov rdx, qword [rbp - 0x78]
mov rcx, qword [rbp + 8]
mov rax, qword [rbp - 0x70]
add rsp, 0x20
mov qword [rbp + 0x58], rdx
mov qword [rbp + 0x60], rax
lea rdx, [rbp + 0x58]
sub rsp, 0x20
call fcn.140105520
mov rax, qword [rbp - 0x48]
mov rdx, qword [rbp + 8]
add rsp, 0x20
mov rcx, qword [rax]
mov qword [rbp + 0x48], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0x50], rax
lea rcx, [rbp + 0x48]
sub rsp, 0x20
call fcn.14010b610
mov rax, qword [rbp - 0x70]
add rsp, 0x20
cmp rax, 0
je 0x14010c3c9
mov ecx, dword [0x1401df388]
xor ecx, 0xf65fc914
mov edx, dword [0x1401df38c]
xor edx, 0xffffffff
mov eax, ecx
xor eax, edx
and eax, ecx
sub eax, 0x44e86759
mov ecx, 0x2ca5179c
xor edx, edx
div ecx
mov ecx, 0xffffffff
xor ecx, 0x83c6c026
add eax, ecx
mov ecx, 0x163ec63c
xor ecx, 0x163ec63d
add eax, ecx
cmp eax, 0xfe8a23ed
jae 0x14010c4bf
mov rcx, qword [rbp - 0x70]
mov eax, dword [0x1401df390]
xor edx, edx
div dword [0x1401df394]
xor eax, 0xe11dd56c
mov r8d, 0x6f2f7db6
xor edx, edx
div r8d
xor edx, edx
sub edx, eax
xor eax, eax
sub eax, 0xacb75ca
add edx, eax
xor eax, eax
sub eax, edx
mov rcx, qword [rcx]
movabs r8, 0x4000000000000000
mov rdx, rcx
xor rdx, r8
xor rdx, 0xffffffffffffffff
movabs r8, 0x4000000000000000
or rcx, r8
and rcx, rdx
movabs rdx, 0xa26710ba29585afa
movabs r8, 0xa26710ba29585afa
xor rdx, r8
cmp rcx, rdx
sete cl
mov byte [rbp - 0x79], cl
cmp eax, 0x9067f4f6
ja 0x14010c4bf
mov al, byte [rbp - 0x79]
test al, 1
jne 0x14010c3ae
jmp 0x14010c3c9
mov rcx, qword [rbp - 0x70]
sub rsp, 0x20
call fcn.14000de03
add rsp, 0x20
jmp 0x14010c3c9
jmp 0x14010c4ad
mov rax, qword [rbp + 0x38]
mov al, byte [rax]
cmp al, 0
je 0x14010c3e7
jmp 0x14010c4ad
mov al, byte [rbp - 0x39]
test al, 1
jne 0x14010c4ad
mov cx, 0xa581
xor cx, 0xe2a
mov dx, 0x5525
xor dx, 0xef50
sub rsp, 0x20
call fcn.140066590
add rsp, 0x20
mov cx, ax
mov rax, qword [rbp + 0x38]
mov word [rbp - 0x7c], cx
cmp byte [rax], 0
jne 0x14010c4ad
mov eax, dword [0x1401df398]
mov edx, dword [0x1401df39c]
xor ecx, ecx
sub ecx, edx
add eax, ecx
mov ecx, 0x7db813c4
xor ecx, 0xdc550734
xor edx, edx
div ecx
imul eax, eax, 0xb9bb6ad3
or eax, 0x5e53df00
cmp eax, 0x9e6cbebc
jae 0x14010c4c8
mov rcx, qword [rbp + 8]
mov ax, word [rbp - 0x7c]
mov edx, dword [0x1401df3a0]
xor edx, 0x8da443ad
sub edx, dword [0x1401df3a4]
add edx, 0xbb420d99
mov r8d, 0xd060cf1e
xor r8d, 0x2bd8b688
imul edx, r8d
xor edx, 0x5f8889c4
mov dword [rbp - 0x80], edx
mov dl, al
sub rsp, 0x20
call fcn.140108337
mov eax, dword [rbp - 0x80]
add rsp, 0x20
cmp eax, 0xf494b37
jb 0x14010c4c8
jmp 0x14010c4ad
lea rsp, [rbp + 0xb0]
pop rbp
ret
imul ebp, dword [rcx], 0x62e97f5f
clc
invalid
xchg byte [rbx - 0x16], bl
invalid
pop rbp
insd dword [rdi], dx
mov ah, 0xf
jmp 0x14010c451