Function at 0x1401a6db0
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0x70
lea rbp, [rsp + 0x70]
mov qword [rbp - 0x30], rdx
mov qword [rbp - 0x48], rcx
mov qword [rbp - 0x40], rcx
mov eax, 0x10
call fcn.1401ffc50
sub rsp, rax
mov rax, rsp
mov qword [rbp - 0x38], rax
sub rsp, 0x20
call fcn.1401ae654
mov rdx, qword [rbp - 0x30]
add rsp, 0x20
mov qword [rbp - 0x20], rax
add rax, 0x50
mov qword [rbp - 0x28], rax
mov rax, qword [rdx]
mov qword [rbp - 0x10], rax
mov rax, qword [rdx + 8]
mov qword [rbp - 8], rax
lea rcx, [rbp - 0x10]
sub rsp, 0x20
call fcn.1401ae662
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp - 0x20]
mov qword [rbp - 0x18], rcx
cmp byte [rax + 0x50], 0
jne 0x1401a70ac
mov rcx, qword [rbp - 0x18]
sub rsp, 0x20
call fcn.1400a16c1
add rsp, 0x20
mov ecx, eax
mov rax, qword [rbp - 0x28]
mov dword [rbp - 0x4c], ecx
cmp byte [rax], 0
jne 0x1401a70ac
mov eax, dword [0x14020bcd8]
xor edx, edx
div dword [0x14020bcdc]
mov ecx, 0x2b4c877d
xor edx, edx
div ecx
mov ecx, 0xcb8f85d2
xor ecx, 0xbb0e2a1c
imul eax, ecx
or eax, eax
xor eax, 0xffffffff
mov ecx, 0x508276ce
xor ecx, 0x374da2a1
mov edx, 0xa6dd031e
xor edx, 0x5922fce1
xor ecx, edx
mov edx, 0x4557dc2f
xor edx, 0x22980840
mov r8d, 0x51431b81
xor r8d, 0xaebce47e
xor edx, r8d
and ecx, edx
or eax, ecx
mov ecx, 0xe168870b
xor ecx, 0x1e9778f4
xor eax, ecx
cmp eax, 0x643c4a69
ja 0x1401a71c1
mov ecx, dword [rbp - 0x4c]
mov eax, dword [0x14020bce0]
and eax, dword [0x14020bce4]
and eax, 0xe238f85a
mov r8d, 0xbc5198b2
xor edx, edx
div r8d
mov r8d, eax
xor r8d, 0xc4bccae6
xor r8d, 0xffffffff
and r8d, 0xc4bccae6
mov edx, 0xeeb260ca
xor edx, 0xeeb260c8
imul edx, r8d
sub edx, 0xc4bccae6
sub eax, edx
movsxd rdx, ecx
mov qword [rbp - 0x58], rdx
cmp ecx, 0
setl cl
mov byte [rbp - 0x4d], cl
cmp eax, 0x93d99c93
je 0x1401a6ec8
mov al, byte [rbp - 0x4d]
test al, 1
jne 0x1401a6f3e
jmp 0x1401a702f
mov eax, dword [0x14020bce8]
mov ecx, dword [0x14020bcec]
add eax, 0x1b961416
sub eax, ecx
sub eax, 0x1b961416
mov ecx, 0x92704333
xor ecx, 0xa9676950
sub eax, ecx
mov ecx, 0xa6e4ceaa
xor edx, edx
div ecx
mov ecx, 0xc9286ff4
xor ecx, 0xf56fc8fa
add eax, ecx
mov ecx, 0x78c9add
xor ecx, 0xbb3112e
cmp eax, ecx
jbe 0x1401a71ca
mov rcx, qword [rbp - 0x58]
mov eax, dword [0x14020bcf0]
mov edx, 0x5282ff21
xor edx, 0xeff54996
xor eax, edx
mov edx, dword [0x14020bcf4]
xor edx, 0x6ffebf4f
xor eax, edx
mov edx, eax
and edx, 0x664dfc41
shl edx, 1
mov r8d, 0xdd08a9e1
xor r8d, 0xbb4555a0
add eax, r8d
sub eax, edx
sub eax, 0x250b60b
mov r8d, 0x7b0dbb91
xor edx, edx
div r8d
mov dword [rbp - 0x5c], eax
movabs rdx, 0x2427e7bebac40460
movabs rax, 0x2427e7bebac40460
xor rdx, rax
movabs r8, 0x4baabaeaeadbd404
movabs rax, 0x3455451515242bfb
xor r8, rax
sub rsp, 0x20
call fcn.14000dc65
mov eax, dword [rbp - 0x5c]
add rsp, 0x20
cmp eax, 0xaff3d984
je 0x1401a6f8c
jmp 0x1401a70ac
mov rdx, qword [rbp - 0x58]
mov rcx, qword [rbp - 0x48]
sub rsp, 0x20
call fcn.1400a1210
mov rax, qword [rbp - 0x28]
add rsp, 0x20
cmp byte [rax], 0
jne 0x1401a70ac
mov rcx, qword [rbp - 0x38]
mov rax, qword [rbp - 0x30]
mov rdx, qword [rax]
mov qword [rcx], rdx
mov rax, qword [rax + 8]
mov qword [rcx + 8], rax
sub rsp, 0x20
call fcn.1401ae662
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp - 0x28]
mov qword [rbp - 0x68], rcx
cmp byte [rax], 0
jne 0x1401a70ac
mov rdx, qword [rbp - 0x68]
mov rcx, qword [rbp - 0x48]
movabs r8, 0x7fffffffffffffff
xor eax, eax
mov r9d, eax
sub rsp, 0x20
call fcn.1400a2d30
add rsp, 0x20
mov eax, dword [0x14020bcf8]
add eax, dword [0x14020bcfc]
mov edx, eax
xor edx, 0xffffffff
and edx, 0x5a942298
mov r8d, 0xffffffff
xor r8d, 0x5a942298
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov r8d, 0xf1a11221
xor r8d, 0xab3530b9
mov edx, eax
and edx, r8d
or eax, 0x5a942298
imul eax, edx
add eax, ecx
mov ecx, 0x70a533a9
xor ecx, 0x70a533a9
sub ecx, eax
xor eax, eax
sub eax, 0xc767ebf2
add ecx, eax
xor eax, eax
sub eax, ecx
mov ecx, 0x9c9a2446
xor edx, edx
div ecx
cmp eax, 0x306c8cdb
je 0x1401a71d3
mov ecx, dword [0x14020bd00]
xor ecx, 0xa4795b6e
mov edx, dword [0x14020bd04]
mov eax, ecx
and eax, edx
xor ecx, edx
or eax, ecx
mov ecx, 0x4005e420
xor ecx, 0xdf8fdf45
xor edx, edx
div ecx
mov ecx, eax
mov eax, ecx
and eax, eax
xor eax, 0xffffffff
xor eax, 0xffffffff
mov edx, 0xae56959f
xor edx, 0xeaa1d936
mov r8d, 0x963c4c8e
xor r8d, 0x69c3b371
xor edx, r8d
or eax, edx
mov edx, 0x44f74ca9
and edx, 0x44f74ca9
mov r8d, 0x23b559fe
xor r8d, 0xdc4aa601
xor edx, r8d
xor ecx, 0xffffffff
xor edx, 0xffffffff
or ecx, edx
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
imul eax, eax, 0x56c1cc4b
mov ecx, 0x48dd3769
xor ecx, 0x67309be6
cmp eax, ecx
jb 0x1401a71d3
mov rax, qword [rbp - 0x40]
mov rsp, rbp
pop rbp
ret
mov r12b, r8b
mov edi, 0xfffcfee9
jmp [rcx - 0x16ca7b78]
test eax, 0xe9358488
mov ecx, 0x79fffffd
invalid
jns 0x1401a71f3
clc
add ecx, ebp
invalid
add byte [rax - 0x75], cl
push rsp
and al, 0x40
mov qword [rsp + 0x48], rax
add rax, 0x50
mov rax, qword [rdx]
mov qword [rsp + 0x58], rax
mov rax, qword [rdx + 8]
mov qword [rsp + 0x60], rax
lea rcx, [rsp + 0x58]
call fcn.1401ae662
mov rcx, rax
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x50], rcx
cmp byte [rax + 0x50], 0
jne 0x1401a72d2
mov rax, qword [rsp + 0x40]
mov rax, qword [rax]
mov qword [rsp + 0x20], rax
mov ecx, 2
cqo
idiv rcx
mov rdx, rax
mov rax, qword [rsp + 0x20]
movabs r8, 0xbb4c8b7a2604217a
mov rcx, rdx
sub rcx, r8
movabs r8, 0x6e7bd6d038a19e4c
movabs r9, 0x9184292fc75e61b3
xor r8, r9
add rcx, r8
movabs r8, 0xbb4c8b7a2604217a
add rcx, r8
mov qword [rsp + 0x28], rcx
xor rcx, rdx
cmp rcx, 0
setl cl
cmp rax, 1
setg al
and al, cl
test al, 1
jne 0x1401a72cd
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x28]
xor r8d, r8d
test rax, rax
cmovg r8, rax
call fcn.1400a179e
jmp 0x1401a72d2
call fcn.140007f57
mov rax, qword [rsp + 0x38]
add rsp, 0x68
ret