Function at 0x1401f25b0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xf8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x70], 0xfffffffffffffffe
mov rsi, rcx
mov qword [rbp + 0x60], 0
mov qword [rbp + 0x68], 0xf
mov byte [rbp + 0x50], 0
lea rax, [0x14052ecd8]
mov qword [rbp + 0x48], rax
mov qword [rbp + 0x38], 0xf
mov qword [rbp + 0x30], 1
mov word [rbp + 0x20], 0x2e
mov qword [rbp + 0x18], rax
lea rcx, [rbp - 0x58]
lea r8, [rbp + 0x18]
mov qword [rbp + 0x40], rdx
call fcn.1402f6020
mov rax, qword [rbp + 0x38]
movabs rdx, 0x88aafcb412171480
mov rcx, qword [0x14061eef8]
add rcx, rdx
cmp rax, rcx
jbe 0x1401f26cd
mov rcx, qword [rbp + 0x20]
mov r8, qword [0x14061eef8]
add r8, rax
movabs rdx, 0x88aafcb412171472
add rdx, r8
cmp rdx, 0x1000
jb 0x1401f26c8
mov r8, qword [rcx - 8]
sub rcx, r8
movabs rdx, 0xba789c6aa9582e6a
add rdx, rcx
movabs rcx, 0x4587639556a7d18e
mov r9, rdx
xor r9, rcx
and rdx, rcx
lea rcx, [r9 + rdx*2]
cmp rcx, 0x20
jae 0x1401f2ebd
movabs rcx, 0xb7cac194689117de
xor rcx, rax
movabs rdx, 0x37cac194689117de
and rdx, rax
lea rax, [rcx + rdx*2]
movabs rdx, 0x48353e6b976ee84a
add rdx, rax
mov rcx, r8
call fcn.1400a75d0
mov qword [rbp], rsi
lea rbx, [rbp + 0x50]
xor r12d, r12d
lea rdi, [rbp - 0x58]
lea r14, [rbp + 0x18]
lea r15, [rbp + 0x48]
jmp 0x1401f271f
mov rcx, rax
movabs rdx, 0x464cf9b3d18011c2
xor rcx, rdx
and rax, rdx
lea rdx, [rcx + rax*2]
movabs rax, 0xb9b3064c2e7fee66
add rdx, rax
mov rcx, r8
call fcn.1400a75d0
inc r12d
movsxd rsi, dword [0x1405353a8]
mov r13d, dword [0x1405353d4]
mov rcx, rdi
call fcn.1402f6f80
test al, al
jne 0x1401f279d
cmp qword [rbp + 0x68], 0x10
mov rax, rbx
jb 0x1401f2747
mov rax, qword [rbp + 0x50]
mov qword [rbp + 0x60], 0
mov byte [rax], 0
mov rcx, rdi
mov rdx, r14
call fcn.1402f6990
mov rcx, r15
mov rdx, r14
call fcn.1402f02e0
mov rax, qword [rbp + 0x38]
cmp rax, 0x10
jb 0x1401f271c
mov rcx, qword [rbp + 0x20]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x1401f2717
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jb 0x1401f26f0
call fcn.1404ca324
mov edx, dword [rbp + 0x60]
test edx, edx
je 0x1401f27b7
cmp qword [rbp + 0x68], 0x10
mov rcx, rbx
jb 0x1401f27b2
mov rcx, qword [rbp + 0x50]
call fcn.14015f560
mov r14, qword [rbp + 0x60]
cmp r14, 3
jne 0x1401f2a1c
mov rdi, qword [rbp + 0x50]
mov rax, qword [rbp + 0x68]
cmp rax, 0x10
setae cl
movzx edx, byte [0x1406941f1]
xor cl, dl
mov rcx, rbx
cmovne rcx, rdi
cmp rax, 0x10
cmovb rdi, rcx
test dl, dl
cmove rdi, rcx
mov ecx, 1
mov edx, 1
mov r8d, 0xd3a97a77
call fcn.1401fcfd0
mov dword [rsp + 0x20], 0x9dd1db82
mov rcx, rdi
mov rdx, rax
mov r8, r14
mov r9d, 0x7c32ac3b
call fcn.1400ab610
test eax, eax
je 0x1401f2ddd
cmp qword [rbp + 0x68], 0x10
mov r15, rbx
jb 0x1401f2839
mov r15, qword [rbp + 0x50]
mov dword [rsp + 0x20], 0x965f1fda
xor ecx, ecx
xor edx, edx
mov r8d, 0xf50ee134
mov r9d, 0x7344025f
call fcn.1401fefa0
mov ecx, dword [0x14061eef0]
mov edx, ecx
xor edx, 0x3aa1c353
mov r8d, ecx
not r8d
and r8d, 0x455e3cac
or r8d, edx
not r8d
lea r9d, [rdx + r8*2]
add ecx, 0x5c40f29a
mov dword [rsp + 0x20], ecx
mov rcx, r15
mov rdx, rax
mov r8, r14
call fcn.1400ab610
test eax, eax
je 0x1401f2ddd
cmp qword [rbp + 0x68], 0x10
mov r15, rbx
jb 0x1401f28a9
mov r15, qword [rbp + 0x50]
mov eax, dword [0x14061eef0]
mov ecx, eax
xor ecx, 0xbe6f1718
mov edx, eax
and edx, 0x3e6f1718
lea ecx, [rcx + rdx*2]
lea edx, [rax - 0x4190e8e7]
lea r8d, [rax - 0x180bd261]
mov r9d, eax
xor r9d, 0x8d8315d8
mov r10d, eax
and r10d, 0xd8315d8
lea r9d, [r9 + r10*2]
add eax, 0xd76c4d78
mov dword [rsp + 0x20], eax
call fcn.1401fe840
mov dword [rsp + 0x20], 0x9dd1db82
mov rcx, r15
mov rdx, rax
mov r8, r14
mov r9d, 0x7c32ac3b
call fcn.1400ab610
test eax, eax
je 0x1401f2ddd
cmp qword [rbp + 0x68], 0x10
mov r15, rbx
jb 0x1401f2927
mov r15, qword [rbp + 0x50]
mov eax, dword [0x14061eef0]
mov ecx, eax
neg ecx
mov edx, ecx
xor edx, 0x4190e8e7
and ecx, 0x4190e8e7
lea ecx, [rdx + rcx*2]
neg ecx
mov edx, eax
xor edx, 0xbe6f1718
mov r8d, eax
and r8d, 0x3e6f1718
lea edx, [rdx + r8*2]
mov r8d, eax
xor r8d, 0xe7f42d9f
mov r9d, eax
and r9d, 0x67f42d9f
lea r8d, [r8 + r9*2]
lea r9d, [rax - 0x727cea28]
mov r10d, eax
xor r10d, 0xd76c4d78
and eax, 0x576c4d78
lea eax, [r10 + rax*2]
mov dword [rsp + 0x20], eax
call fcn.1401fe840
mov dword [rsp + 0x20], 0x9dd1db82
mov rcx, r15
mov rdx, rax
mov r8, r14
mov r9d, 0x7c32ac3b
call fcn.1400ab610
test eax, eax
je 0x1401f2ddd
cmp qword [rbp + 0x68], 0x10
jb 0x1401f29c4
mov rbx, qword [rbp + 0x50]
mov r8d, dword [0x14061eef0]
lea ecx, [r8 - 0x4190e8e7]
mov eax, r8d
xor eax, 0xbe6f1718
mov edx, r8d
and edx, 0x3e6f1718
lea edx, [rax + rdx*2]
add r8d, 0x7d3367d5
call fcn.1401fd490
mov dword [rsp + 0x20], 0x9dd1db82
mov rcx, rbx
mov rdx, rax
mov r8, r14
mov r9d, 0x7c32ac3b
call fcn.1400ab610
test eax, eax
mov r14d, 0xfffffffe
je 0x1401f2de3
lea rax, [0x1405353a8]
add rsi, rax
mov rax, qword [rbp + 0x40]
lea r14, [rax + 8]
mov rdx, qword [rax + 0x18]
mov rcx, qword [rax + 0x20]
cmp rdx, 4
mov eax, 4
mov qword [rbp + 8], rdx
cmovb rax, rdx
mov qword [rbp - 8], rax
movabs r11, 0x88aafcb412171480
add r11, qword [0x14061eef8]
movzx r8d, byte [0x140693ed0]
mov r9d, 0xbe6f171a
nop word [rax + rax]
mov edx, dword [0x1406941e8]
lea eax, [rdx - 1]
imul eax, edx
mov r10d, dword [0x14061eef0]
add r10d, r9d
xor edx, edx
div r10d
test edx, edx
jne 0x1401f2a70
mov r15d, dword [0x14061de80]
mov eax, r15d
not eax
mov edx, eax
and edx, 1
mov r9d, r15d
and r9d, 0xfffffffe
or r9d, edx
mov edx, r15d
xor edx, 1
and eax, 0x7ffffffe
or eax, edx
not eax
lea eax, [r9 + rax*2]
mov dword [0x14061de80], eax
xor ebx, ebx
mov edi, 0
mov dword [rbp + 0x14], eax
test r15d, eax
jne 0x1401f2b0f
xor eax, eax
mov ebx, 0
mov edi, 0
test r13d, r13d
jle 0x1401f2b0f
xor ebx, ebx
xor edi, edi
nop word [rax + rax]
cdqe
xor rdi, qword [rsi + rax + 8]
xor rbx, qword [rsi + rax]
mov edx, dword [0x14061eef0]
neg edx
add eax, edx
add eax, 0x4190e8f8
cmp eax, r13d
jl 0x1401f2af0
cmp rcx, r11
seta al
xor al, r8b
mov rsi, r14
mov r14, qword [r14]
test al, 1
mov rax, rsi
cmovne rax, r14
cmp rcx, r11
cmovbe r14, rax
test r8b, 1
cmove r14, rax
mov r9d, dword [0x14061eef0]
mov eax, r9d
xor eax, 0xbe6f1718
mov ecx, r9d
xor ecx, 0x4190e8e7
and ecx, r9d
add ecx, ecx
mov edx, eax
xor edx, ecx
and ecx, eax
lea ecx, [rdx + rcx*2]
lea edx, [r9 - 0x4190e8e7]
mov eax, r9d
xor eax, 0x8b17efec
mov r8d, r9d
xor r8d, 0x74e81013
and r8d, r9d
add r8d, r8d
mov r10d, eax
xor r10d, r8d
and r8d, eax
lea r8d, [r10 + r8*2]
add r9d, 0xabe12a72
call fcn.1401fd8b0
mov dword [rsp + 0x20], 0x9dd1db82
mov rcx, r14
mov rdx, rax
mov r8, qword [rbp - 8]
mov r9d, 0x7c32ac3b
call fcn.1400ab610
mov r14d, 0xfffffffe
test eax, eax
jne 0x1401f2bc6
cmp qword [rbp + 8], 3
ja 0x1401f2de3
xor ecx, ecx
xor edx, edx
mov r8d, 0xd3a97a77
call fcn.1401fcfd0
mov r8d, 0x10
mov rcx, rsi
xor edx, edx
mov r9, rax
call fcn.1401f3110
test eax, eax
je 0x1401f2de3
mov dword [rsp + 0x20], 0xb130332e
xor ecx, ecx
mov edx, 1
mov r8d, 0x63331b1b
mov r9d, 0x53e88a30
call fcn.1401fec80
mov r8d, 0xc
mov rcx, rsi
xor edx, edx
mov r9, rax
call fcn.1401f3110
mov ecx, 0xbe6f1718
add ecx, dword [0x14061eef0]
xor edx, edx
test dword [rbp + 0x14], r15d
setne dl
mov r8, qword [0x140535400]
mov r9, qword [0x1405353f8]
xor r10d, r10d
add rdx, 0xffffffffffffffff
adc r10, 0xffffffffffffffff
sub r9, rbx
sbb r8, rdi
xor rdx, r9
xor r10, r8
not r10
not rdx
and rdx, r9
and r10, r8
or r10, rdx
setne dl
or dl, byte [0x140693ed0]
and dl, 1
mov byte [0x140693ed0], dl
cmp eax, ecx
je 0x1401f2de3
mov dword [rsp + 0x20], 0xb130332e
mov ecx, 1
xor edx, edx
mov r8d, 0x63331b1b
mov r9d, 0x53e88a30
call fcn.1401fec80
mov r8d, 8
mov rcx, rsi
xor edx, edx
mov r9, rax
call fcn.1401f3110
mov ecx, 0xbe6f1718
add ecx, dword [0x14061eef0]
cmp eax, ecx
je 0x1401f2de3
mov dword [rsp + 0x20], 0x51beb1b0
xor ecx, ecx
xor edx, edx
mov r8d, 0xc3099e49
mov r9d, 0xae851fdb
call fcn.1401fe0a0
mov r8d, 8
mov rcx, rsi
xor edx, edx
mov r9, rax
call fcn.1401f3110
mov ecx, dword [0x14061eef0]
mov edx, ecx
xor edx, 0x83b5004
and ecx, 0x83b5004
lea ecx, [rdx + rcx*2]
add ecx, 0xb633c714
cmp eax, ecx
je 0x1401f2de3
mov rsi, qword [rbp]
cmp qword [rsi + 0x80], 0
je 0x1401f2eb2
add rsi, 0x78
cmp r12d, 1
ja 0x1401f2d7d
xor ecx, ecx
xor edx, edx
mov r8d, 0x9dafe146
mov r9d, 0x3bb4019e
call fcn.1401fdc10
lea rcx, [rbp + 0x18]
mov rdx, rax
call fcn.1400ae850
lea rdx, [rbp + 0x18]
mov rdi, rsi
mov rcx, rsi
call fcn.1401f85e0
mov rbx, rax
lea rcx, [rbp + 0x18]
call fcn.140071b20
cmp rbx, qword [rdi]
jne 0x1401f2dd7
lea rdx, [rbp + 0x48]
mov rcx, rsi
call fcn.1401f85e0
mov rbx, rax
cmp rax, qword [rsi]
jne 0x1401f2dd7
mov dword [rsp + 0x20], 0x18fd3660
xor ecx, ecx
xor edx, edx
mov r8d, 0x29851687
mov r9d, 0xcf13fec0
call fcn.1401fe840
lea rcx, [rbp + 0x18]
mov rdx, rax
call fcn.1400ae850
lea rdx, [rbp + 0x18]
mov rcx, rsi
call fcn.1401f85e0
mov rbx, rax
lea rcx, [rbp + 0x18]
call fcn.140071b20
cmp rbx, qword [rsi]
je 0x1401f2de3
mov r14d, dword [rbx + 0x48]
jmp 0x1401f2de3
mov r14d, 0xfffffffe
lea rcx, [rbp - 0x58]
call fcn.1401fcfc0
mov rax, qword [0x140693d58]
add rax, qword [rbp + 0x68]
cmp rax, 0x10
mov rsi, qword [rbp + 0x40]
jb 0x1401f2e36
mov rcx, qword [rbp + 0x50]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x1401f2e31
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x1401f2ec2
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400a75d0
mov rax, qword [rsi + 0x20]
cmp rax, 0x10
jb 0x1401f2e87
mov rcx, qword [rsi + 8]
mov edx, eax
not edx
and edx, 1
mov r8, rax
and r8, 0xfffffffffffffffe
or r8, rdx
mov edx, eax
and edx, 1
lea rdx, [r8 + rdx*2]
cmp rdx, 0x1000
jb 0x1401f2e82
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x1401f2ec7
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400a75d0
mov qword [rsi + 0x18], 0
mov qword [rsi + 0x20], 0xf
mov byte [rsi + 8], 0
mov eax, r14d
add rsp, 0xf8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov r14d, 0xffffffff
jmp 0x1401f2de3
call fcn.1404ca324
call fcn.1404ca324
call fcn.1404ca324
int3