Function at 0x1400f2ef0
Capabilities:
Check for software breakpoints
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
mov r15, r9
mov r12, r8
mov qword [rsp + 0x38], rdx
mov ebp, ecx
mov rsi, qword [rsp + 0xe8]
mov rdi, qword [rsp + 0xe0]
mov rbx, qword [rsp + 0xd8]
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x60], rax
mov eax, ecx
and eax, 0xf
cmp eax, 6
jae 0x1400f2fa8
cmp eax, 3
jae 0x1400f3002
test eax, eax
je 0x1400f313b
cmp eax, 2
jne 0x1400f32e1
nop
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x48], rax
mov rdx, rsi
sub rdx, rax
jae 0x1400f31bf
test r15, r15
je 0x1400f3a94
cmp r15, 1
mov rax, r15
adc rax, 0
xor ecx, ecx
cmp r15, 8
jb 0x1400f34cb
cmp rdx, 0x20
jb 0x1400f34cb
cmp r15, 0x20
jae 0x1400f3455
xor ecx, ecx
jmp 0x1400f349b
cmp eax, 8
jae 0x1400f304e
cmp eax, 6
jne 0x1400f30a9
call fcn.1400ef410
test r15d, r15d
je 0x1400f3195
test bpl, 0x40
jne 0x1400f332c
nop
mov rcx, qword [0x140715700]
mov edx, dword [0x1407156f0]
add eax, edx
add eax, 0xffff1ce5
cdqe
add rax, rcx
mov r15, qword [rsp + 0xd0]
mov rcx, r15
call qword [0x140704440]
jmp 0x1400f3ad4
je 0x1400f315b
cmp eax, 5
jne 0x1400f3175
nop
mov rax, qword [rsp + 0xf0]
mov qword [rax], rdi
mov qword [rbx], rsi
cmp r15, rsi
je 0x1400f385f
nop
test byte [0x1407901d2], 1
jne 0x1400f385f
nop
mov rcx, qword [rax]
cmp rcx, r12
je 0x1400f385f
mov qword [rsp + 0x38], r12
jmp 0x1400f3541
cmp eax, 0xa
jbe 0x1400f30cf
cmp eax, 0xd
jae 0x1400f317d
cmp eax, 0xb
jne 0x1400f329d
call fcn.1400ef3f0
test esi, esi
je 0x1400f3ac2
nop
movzx ecx, byte [0x1407901d0]
mov rdx, qword [0x140715720]
xor ecx, dword [0x140715710]
add eax, ecx
add eax, 0xda97
cdqe
add rax, rdx
mov r15, qword [rsp + 0xd0]
mov rcx, r15
call qword [0x140704440]
jmp 0x1400f3ad4
mov rdx, rbx
mov r9d, 0x3104a5b0
call fcn.1400ef440
test edi, edi
je 0x1400f31b7
mov rcx, rbx
call fcn.1400954d0
mov r15, rbx
jmp 0x1400f3ad4
cmp eax, 8
je 0x1400f31cf
cmp eax, 0xa
jne 0x1400f324f
nop
mov rax, qword [rsp + 0x38]
mov qword [rsi], rax
mov rax, qword [rsp + 0xd0]
mov qword [r15], rax
cmp rax, qword [rsp + 0xf0]
je 0x1400f3a53
nop
test byte [0x1407901d0], 1
jne 0x1400f3a53
nop
mov rax, qword [rsi]
cmp rax, rbx
je 0x1400f3a53
mov dword [rsp + 0x44], 0xa
mov r9, qword [rsp + 0xf0]
mov r14, qword [rsp + 0xd0]
jmp 0x1400f39a2
nop
mov qword [rsp + 0x48], rbx
mov rax, qword [rsp + 0xf0]
mov qword [rsp + 0x50], rax
xor eax, eax
nop
mov rdx, qword [rsp + 0x38]
jmp 0x1400f3ab5
call fcn.1400ef3f0
mov rcx, qword [rsp + 0xd0]
test ecx, ecx
jne 0x1400f325c
jmp 0x1400f3ad4
xor r15d, r15d
jmp 0x1400f3ad4
jne 0x1400f32d9
xor eax, eax
cmp dword [r15 + 0x14], 1
sete al
mov r15, rax
jmp 0x1400f3ad4
test bpl, 0x10
je 0x1400f3ac2
lea rcx, [rsp + 0x50]
mov r8b, 1
lea r10, [rsp + 0x48]
mov r11d, eax
mov r9d, eax
jmp 0x1400f3699
mov r15, rbx
jmp 0x1400f3ad4
mov dword [rsp + 0x44], 2
mov r9, r15
jmp 0x1400f389a
call fcn.1400ef430
mov r14, qword [0x1407156e8]
mov r12d, dword [0x1407156d0]
mov r13d, 0xffff7045
sub r13d, eax
mov eax, r12d
sub eax, r13d
cdqe
add rax, r14
mov rcx, qword [rsp + 0xd0]
call qword [0x140704440]
mov rax, qword [rsp + 0xf0]
test eax, eax
je 0x1400f3ac2
test bpl, 0x10
jne 0x1400f334f
mov ecx, r12d
shr ecx, 0x12
or cl, 0xf0
mov r13d, 3
lea rax, [rsp + 0x48]
mov dword [rsp + 0x44], 8
xor r10d, r10d
mov r9, qword [rsp + 0x38]
xor edx, edx
mov r11d, 3
jmp 0x1400f3a41
mov eax, 9
test edi, edi
je 0x1400f3acc
test bpl, 0x40
jne 0x1400f328a
nop
mov rcx, qword [0x140715740]
mov edx, dword [0x140715730]
add eax, edx
add eax, 0xffffae5c
cdqe
add rax, rcx
mov rcx, r15
call qword [0x140704440]
jmp 0x1400f3ad4
nop
mov rcx, qword [rsp + 0xf0]
call fcn.1400954d0
jmp 0x1400f3a99
nop
mov rcx, qword [r12 + 8]
movzx eax, byte [0x140714072]
cmp al, 0xcd
je 0x1400f3442
mov dl, 0x9f
nop word cs:[rax + rax]
mov al, 0xea
lock cmpxchg byte [0x140714072], dl
je 0x1400f3378
cmp al, 0xcd
jne 0x1400f32c0
jmp 0x1400f3442
mov r15d, edi
mov ebp, 0x151efe41
nop
movzx eax, byte [0x140713f23]
lea rcx, [0x140713f20]
cmp al, 0xcb
jne 0x1400f32fc
mov r15, rcx
jmp 0x1400f3ad4
test bpl, 0x10
jne 0x1400f3ad4
mov dl, 0x29
nop dword [rax + rax]
mov al, 0xd1
lock cmpxchg byte [0x140713f23], dl
je 0x1400f332c
test bpl, 0x20
jne 0x1400f3acc
cmp al, 0xcb
jne 0x1400f3310
jmp 0x1400f32f4
nop
xor byte [0x140713f20], 0x78
lea r15, [0x140713f20]
xor byte [0x140713f22], 0x2a
mov al, 0xcb
xchg byte [0x140713f23], al
jmp 0x1400f3ad4
nop
mov rcx, qword [0x1407156e0]
mov eax, dword [0x1407156d4]
sub eax, r13d
cdqe
add rax, rcx
mov rcx, qword [rsp + 0xd0]
call qword [0x140704440]
jmp 0x1400f3aaf
mov eax, 0x5e599f30
mov edx, 0xa1a660e2
mov r8d, 1
mov r9d, 0x5e599f31
mov r10d, 0xa1a660e1
mov r11d, 0xaf286bcb
lea rsi, [0x140714060]
lea rdi, [0x1405eabf0]
nop dword [rax + rax]
mov ebx, edx
imul rbx, r11
shr rbx, 0x20
mov r14d, edx
sub r14d, ebx
shr r14d, 1
add r14d, ebx
shr r14d, 4
lea ebx, [r14 + r14*8]
lea ebx, [r14 + rbx*2]
add ebx, eax
mov r14d, r10d
imul r14, r11
shr r14, 0x20
mov r15d, r10d
sub r15d, r14d
shr r15d, 1
add r15d, r14d
shr r15d, 4
lea r14d, [r15 + r15*8]
lea r14d, [r15 + r14*2]
add r14d, r9d
movzx ebp, byte [r8 + rsi - 1]
movzx r15d, byte [r8 + rsi]
xor bpl, byte [r14 + rdi]
xor bpl, 0xd5
mov byte [r8 + rsi - 1], bpl
xor r15b, byte [rbx + rdi]
xor r15b, 0xd5
mov byte [r8 + rsi], r15b
add eax, 0xfffffffe
add edx, 2
add r8, 2
add r9d, 0xfffffffe
add r10d, 2
cmp r8, 0x13
jne 0x1400f33b0
mov al, 0xcd
xchg byte [0x140714072], al
test rcx, rcx
lea r15, [0x140714060]
cmovne r15, rcx
jmp 0x1400f3ad4
mov rcx, rax
and rcx, 0xffffffffffffffe0
xor edx, edx
mov r8, qword [rsp + 0x38]
nop word cs:[rax + rax]
nop
movups xmm0, xmmword [r8 + rdx]
movups xmm1, xmmword [r8 + rdx + 0x10]
movups xmmword [rsi + rdx], xmm0
movups xmmword [rsi + rdx + 0x10], xmm1
add rdx, 0x20
cmp rcx, rdx
jne 0x1400f3470
cmp rax, rcx
je 0x1400f3a94
test al, 0x18
je 0x1400f34cb
mov rdx, rcx
mov rcx, rax
and rcx, 0xfffffffffffffff8
mov r9, qword [rsp + 0x38]
nop word [rax + rax]
nop
mov r8, qword [r9 + rdx]
mov qword [rsi + rdx], r8
add rdx, 8
cmp rcx, rdx
jne 0x1400f34b0
cmp rax, rcx
je 0x1400f3a94
mov r8, rax
mov rdx, rcx
and r8, 3
mov r10, qword [rsp + 0x38]
je 0x1400f34f2
mov rdx, rcx
nop
nop
movzx r9d, byte [r10 + rdx]
mov byte [rsi + rdx], r9b
inc rdx
dec r8
jne 0x1400f34e0
sub rcx, rax
cmp rcx, 0xfffffffffffffffc
ja 0x1400f3a94
mov rcx, qword [rsp + 0x38]
nop word cs:[rax + rax]
nop
movzx eax, byte [rcx + rdx]
mov byte [rsi + rdx], al
movzx eax, byte [rcx + rdx + 1]
mov byte [rsi + rdx + 1], al
movzx eax, byte [rcx + rdx + 2]
mov byte [rsi + rdx + 2], al
movzx eax, byte [rcx + rdx + 3]
mov byte [rsi + rdx + 3], al
add rdx, 4
cmp r15, rdx
jne 0x1400f3510
jmp 0x1400f3a94
nop
movzx eax, byte [rcx]
movzx edx, al
mov r8, qword [rsp + 0xd0]
cmp word [r8], 2
jb 0x1400f358f
cmp al, 0xbf
jg 0x1400f3850
inc rcx
mov rax, qword [rsp + 0xf0]
mov qword [rax], rcx
movzx eax, dx
and eax, 0x3f
or ax, word [r8]
mov rcx, qword [rbx]
lea rdx, [rcx + 2]
mov qword [rbx], rdx
mov word [rcx], ax
mov word [r8], 1
jmp 0x1400f3833
test al, al
js 0x1400f35a7
lea rax, [rcx + 1]
mov r8, qword [rsp + 0xf0]
mov qword [r8], rax
jmp 0x1400f380d
cmp al, 0xbf
jbe 0x1400f3884
cmp al, 0xdf
ja 0x1400f35be
and edx, 0x1f
mov r9d, 1
jmp 0x1400f35eb
cmp al, 0xef
ja 0x1400f35cd
and edx, 0xf
mov r9d, 2
jmp 0x1400f35eb
cmp al, 0xf7
ja 0x1400f35dc
and edx, 7
mov r9d, 3
jmp 0x1400f35eb
and edx, 3
cmp al, 0xfc
mov r9d, 5
sbb r9d, 0
xor r11d, r11d
cmp r9d, 3
setae r8b
mov r11b, r8b
mov rax, qword [rsp + 0x38]
sub rax, rcx
mov r10d, r9d
sub r10d, r11d
inc r10d
cmp rax, r10
jl 0x1400f385c
lea rax, [rcx + 1]
mov r10, qword [rsp + 0xf0]
mov qword [r10], rax
cmp r9d, r11d
jbe 0x1400f3775
nop
movzx eax, byte [rax]
mov r10d, 2
cmp al, 0xbf
jg 0x1400f387c
mov esi, edx
shl esi, 6
and eax, 0x3f
mov edx, eax
or edx, esi
lea esi, [r9 - 1]
lea rax, [rcx + 2]
mov rdi, qword [rsp + 0xf0]
mov qword [rdi], rax
cmp esi, r11d
jle 0x1400f3775
nop
movzx eax, byte [rax]
cmp al, 0xbf
jg 0x1400f387c
shl edx, 6
and eax, 0x3f
or eax, edx
mov edx, r9d
add edx, 0xfffffffe
lea r10, [rcx + 3]
mov rsi, qword [rsp + 0xf0]
mov qword [rsi], r10
cmp edx, r11d
mov edx, eax
jbe 0x1400f3775
nop
movzx edx, byte [r10]
mov r10d, 2
cmp dl, 0xbf
nop
mov rdi, qword [rsp + 0xf0]
jg 0x1400f387c
shl eax, 6
and edx, 0x3f
or edx, eax
lea esi, [r9 - 3]
lea rax, [rcx + 4]
mov qword [rdi], rax
cmp esi, r11d
jle 0x1400f3775
nop
movzx eax, byte [rax]
cmp al, 0xbf
jg 0x1400f387c
mov esi, edx
shl esi, 6
and eax, 0x3f
mov edx, eax
or edx, esi
lea esi, [r9 - 4]
lea rax, [rcx + 5]
mov qword [rdi], rax
cmp esi, r11d
jle 0x1400f3775
nop
movzx eax, byte [rax]
cmp al, 0xbf
jg 0x1400f387c
mov esi, edx
shl esi, 6
and eax, 0x3f
mov edx, eax
or edx, esi
lea esi, [r9 - 5]
lea rax, [rcx + 6]
mov qword [rdi], rax
cmp esi, r11d
jle 0x1400f3775
nop
movzx eax, byte [rax]
cmp al, 0xbf
jg 0x1400f387c
mov esi, edx
shl esi, 6
and eax, 0x3f
mov edx, eax
or edx, esi
add r9d, 0xfffffffa
lea rax, [rcx + 7]
mov rsi, qword [rsp + 0xf0]
mov qword [rsi], rax
cmp r9d, r11d
jle 0x1400f3775
nop
movzx eax, byte [rax]
cmp al, 0xbf
jg 0x1400f387c
shl edx, 6
and eax, 0x3f
or edx, eax
lea rax, [rcx + 8]
mov r9, qword [rsp + 0xf0]
mov qword [r9], rax
mov eax, edx
shl eax, 6
test r8b, r8b
mov r9d, edx
cmovne r9d, eax
mov r10d, 2
cmp r9d, 0x10ffff
ja 0x1400f387c
cmp r9d, 0x10000
jb 0x1400f37dc
mov eax, r9d
shr eax, 0xa
add eax, 0x3fc0
or eax, 0xd800
mov rdx, qword [rbx]
lea r8, [rdx + 2]
mov qword [rbx], r8
mov word [rdx], ax
and r9d, 0x3ff
or r9d, 0xdc00
mov rax, qword [rsp + 0xd0]
mov word [rax], r9w
mov rdi, rcx
jmp 0x1400f3833
test r8b, r8b
je 0x1400f380d
nop
mov r9, qword [rsp + 0xf0]
mov rdx, qword [r9]
cmp rdx, r12
je 0x1400f3858
lea r8, [rdx + 1]
mov qword [r9], r8
movzx edx, byte [rdx]
cmp dl, 0xbf
jg 0x1400f387c
and edx, 0x3f
or eax, edx
mov rdi, rcx
mov edx, eax
jmp 0x1400f3810
mov rdi, rcx
nop
mov rax, qword [rsp + 0xd0]
cmp word [rax], 0
jne 0x1400f3825
nop
mov word [rax], 1
nop
mov rax, qword [rbx]
lea rcx, [rax + 2]
mov qword [rbx], rcx
mov word [rax], dx
nop
mov rax, qword [rsp + 0xf0]
mov rcx, qword [rax]
cmp rcx, r12
je 0x1400f385f
nop
cmp qword [rbx], r15
jne 0x1400f3541
jmp 0x1400f385f
mov r10d, 2
jmp 0x1400f387c
nop
mov qword [r9], rcx
mov rdi, rcx
nop
mov rax, qword [rsp + 0xf0]
cmp rdi, qword [rax]
sete al
or al, byte [0x1407901d0]
movzx r10d, al
and r10d, 1
mov r15, r10
jmp 0x1400f3ad4
inc rcx
mov rax, qword [rsp + 0xf0]
mov qword [rax], rcx
mov r10d, 2
jmp 0x1400f387c
test r9, r9
je 0x1400f3a94
nop
mov rax, qword [rsp + 0x48]
lea rcx, [r9 - 1]
mov qword [rsp + 0x58], rcx
movzx ecx, byte [rax + r9 - 1]
mov byte [rsi + r9 - 1], cl
lea rax, [rsp + 0x50]
mov dl, 1
nop
mov r8, qword [rsp + 0x60]
mov r11d, r8d
mov r13d, esi
mov r8d, dword [rsp + 0x44]
mov r12d, r8d
mov r10b, 1
test bpl, 0x20
jne 0x1400f38e8
mov r9, qword [rsp + 0x58]
jmp 0x1400f389a
add rax, 2
mov qword [rsi], rax
or dl, r10b
test dl, 1
je 0x1400f3909
nop
mov rax, qword [r15]
lea rdx, [rax + 1]
mov qword [r15], rdx
mov byte [rax], cl
dec r11d
je 0x1400f3970
add r13d, r13d
lea eax, [r13 + r13*2]
lea ecx, [rax - 6]
mov edx, r12d
shr edx, cl
and dl, 0x3f
or dl, 0x80
mov rcx, qword [r15]
lea r8, [rcx + 1]
mov qword [r15], r8
mov byte [rcx], dl
cmp r11d, 2
jb 0x1400f3970
lea ecx, [rax - 0xc]
mov edx, r12d
shr edx, cl
and dl, 0x3f
or dl, 0x80
mov rcx, qword [r15]
lea r8, [rcx + 1]
mov qword [r15], r8
mov byte [rcx], dl
add r11d, 0xfffffffd
cmp r11d, 0xfffffffd
ja 0x1400f3970
add al, 0xee
mov edx, r12d
mov ecx, eax
shr edx, cl
and dl, 0x3f
or dl, 0x80
mov rax, qword [r15]
lea rcx, [rax + 1]
mov qword [r15], rcx
mov byte [rax], dl
shr r12d, 0xa
test r10b, 1
mov eax, 1
cmovne eax, r12d
mov word [rdi], ax
mov rax, qword [rsi]
cmp rax, rbx
je 0x1400f3a53
nop
mov r14, qword [r15]
cmp r14, qword [rsp + 0xf0]
je 0x1400f3a53
nop
movzx edx, word [rax]
movzx r12d, dx
movzx ecx, word [rdi]
cmp ecx, 2
jb 0x1400f39d9
add edx, 0x2000
movzx edx, dx
cmp edx, 0xfc00
jb 0x1400f3a88
shl ecx, 0xa
add r12d, ecx
add r12d, 0xffff2400
xor r10d, r10d
jmp 0x1400f39fb
mov ecx, r12d
and ecx, 0xfc00
xor r10d, r10d
cmp ecx, 0xd800
jne 0x1400f39fb
shl r12d, 0xa
add r12d, 0xfca10000
mov r10b, 1
cmp r12d, 0x7f
ja 0x1400f3a09
xor r13d, r13d
mov ecx, r12d
jmp 0x1400f3a3b
cmp r12d, 0x7ff
ja 0x1400f3a23
mov ecx, r12d
shr ecx, 6
or cl, 0xc0
mov r13d, 1
jmp 0x1400f3a3b
cmp r12d, 0xffff
ja 0x1400f3a64
mov ecx, r12d
shr ecx, 0xc
or cl, 0xe0
mov r13d, 2
lea r11d, [r13 + 1]
mov dl, 1
mov r8, r9
sub r8, r14
mov r14d, r11d
cmp r8, r14
jge 0x1400f38db
xor r15d, r15d
mov rax, qword [rsp + 0x38]
cmp qword [rsi], rax
sete r15b
jmp 0x1400f3ad4
mov ecx, r12d
shr ecx, 0x12
or cl, 0xf0
mov edx, r10d
xor dl, 1
movzx edx, dl
lea r11d, [rdx*2 + 1]
mov r13d, 3
xor edx, edx
jmp 0x1400f3a41
mov r15d, 2
test bpl, 0x40
je 0x1400f3ad4
mov r15, rsi
jmp 0x1400f3ad4
test bpl, 0x10
jne 0x1400f3acc
nop
mov rcx, qword [rsp + 0x50]
movzx ecx, byte [rcx + rax]
mov byte [rbx + rax], cl
inc rax
test bpl, 0x20
jne 0x1400f3ac2
cmp rax, rdx
jb 0x1400f3a99
nop
mov r15, qword [rsp + 0x48]
jmp 0x1400f3ad4
mov r15, qword [rsp + 0xd0]
jmp 0x1400f3ad4
mov r15, qword [rsp + 0xf0]
mov rax, r15
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret