Function at 0x1401c9690
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rbx
mov rax, qword [rsp + 0x38]
mov r11, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x50]
mov esi, dword [rsp + 0x58]
mov r10, rcx
mov rcx, r9
mov r9, qword [rsp + 0x40]
cmp edx, 0x301
je 0x1401c62d0
ja 0x1401c6280
cmp edx, 0x100
je 0x1401c62a2
cmp edx, 0x300
jne 0x1401c6292
mov rdx, qword [rcx]
mov qword [rsp + 0x50], r10
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], r11
pop rbx
pop rsi
jmp 0x1401c9690
cmp edx, 0xfefd
je 0x1401c62a2
jbe 0x1401c6297
cmp edx, 0xfeff
je 0x1401c62a2
xor eax, eax
pop rbx
pop rsi
ret
sub edx, 0x302
cmp edx, 1
ja 0x1401c6292
mov rdx, qword [rcx]
add r8, rax
sub rdx, rax
mov qword [rcx], rdx
mov qword [rsp + 0x58], r10
mov dword [rsp + 0x50], esi
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], r11
pop rbx
pop rsi
jmp 0x1401c99c0
mov rdx, qword [rcx]
jmp 0x1401c62ae
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x108
xor eax, eax
mov rsi, qword [rsp + 0x180]
mov rbp, qword [rcx]
lea rbx, [rsi + 1]
mov r11, r9
mov r12, rdx
mov r13, r8
mov r9, qword [rsp + 0x178]
cmp rbp, rbx
jae 0x1401c96e0
add rsp, 0x108
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
movzx edi, byte [r8 + rbp - 1]
mov rdx, r9
mov r14, rbp
lea r8, [rbx + rdi]
add rdi, 1
sub rdx, rdi
mov rbx, rdi
xor rdx, rdi
xor rbx, r9
or rbx, rdx
xor rbx, r9
mov rdx, rbx
mov rbx, rbp
sub rbx, r8
xor rbx, r8
xor r8, rbp
or rbx, r8
xor rbx, rbp
or rbx, rdx
mov edx, 0x40
sar rbx, 0x3f
not rbx
and rdi, rbx
sub r14, rdi
cmp r12, 0x40
cmovbe rdx, r12
mov qword [rcx], r14
cmp rsi, rdx
ja 0x1401c9970
test rsi, rsi
je 0x1401c9980
mov rax, r14
sub rax, rsi
mov qword [rsp + 0x28], rax
mov qword [rcx], rax
cmp r9, 1
je 0x1401c9990
lea r15, [rsp + 0x40]
mov rcx, qword [rsp + 0x188]
xor r9d, r9d
mov r8, rsi
mov rdx, r15
mov qword [rsp + 0x168], r11
call fcn.14009bff0
test eax, eax
jle 0x1401c9970
mov r11, qword [rsp + 0x168]
test r11, r11
je 0x1401c9970
cmp qword [rsp + 0x170], 0
je 0x1401c9970
mov r8d, 0xf5
lea rdx, str.ssl_record_methods_tls_pad.c
mov rcx, rsi
call fcn.140095a80
mov r11, qword [rsp + 0x168]
test rax, rax
mov qword [rsp + 0x38], rax
mov qword [r11], rax
je 0x1401c9970
mov rax, qword [rsp + 0x170]
lea r9, [r12 - 0x100]
mov r8, rsi
sub r9, rsi
mov dword [rax], 1
lea rax, [rsp + 0x80]
mov rcx, rax
neg rcx
and ecx, 0x3f
add rcx, rax
lea rax, [rsi + 0x100]
cmp r12, rax
mov eax, 0
cmovbe r9, rax
xor edx, edx
mov qword [rsp + 0x30], r9
call sub.msvcrt.dll_memset
mov r9, qword [rsp + 0x30]
mov r10, qword [rsp + 0x38]
mov rcx, rax
cmp r12, r9
jbe 0x1401c99b6
mov qword [rsp + 0x30], rbx
mov rbx, qword [rsp + 0x28]
sub rdi, rbp
xor eax, eax
mov qword [rsp + 0x28], r10
mov rbp, rdi
xor edx, edx
xor edi, edi
nop
mov r8, rbx
mov r11, r14
xor r8, r9
xor r11, r9
mov r10, r8
sub r8, 1
not r10
and r10, r8
lea r8, [r9 + rbp]
xor r8, r14
sar r10, 0x3f
or r8, r11
or rdi, r10
and r10, rdx
xor r8, r9
or rax, r10
movzx r10d, byte [r13 + r9]
add r9, 1
sar r8, 0x3f
and rdi, r8
lea r8, [rdx + 1]
and r10d, edi
or byte [rcx + rdx], r10b
mov rdx, r8
mov r10, rsi
sub rdx, rsi
xor r10, r8
xor rdx, rsi
or rdx, r10
xor rdx, r8
sar rdx, 0x3f
and rdx, r8
cmp r12, r9
jne 0x1401c9860
mov rbx, qword [rsp + 0x30]
mov r10, qword [rsp + 0x28]
movzx ebx, bl
xor r8d, r8d
mov r9d, ebx
not r9d
nop word cs:[rax + rax]
mov r11d, eax
mov rdi, rax
movzx ebp, byte [r15 + r8]
add r8, 1
and r11d, 0x20
and rdi, 0xffffffffffffffdf
mov edx, r11d
sub r11d, 1
movzx edi, byte [rcx + rdi]
not edx
and edx, r11d
lea r11, [rax + 1]
or rax, 0x20
movzx eax, byte [rcx + rax]
sar edx, 0x1f
movzx edx, dl
mov r12d, edx
not edx
and edi, r12d
and edx, eax
movzx eax, bpl
or edx, edi
and eax, r9d
and edx, ebx
or edx, eax
mov rax, r11
mov byte [r10 + r8 - 1], dl
sub rax, rsi
mov rdx, rsi
xor rax, rsi
xor rdx, r11
or rax, rdx
xor rax, r11
sar rax, 0x3f
and rax, r11
cmp rsi, r8
jne 0x1401c98f0
mov eax, 1
jmp 0x1401c96ca
xor eax, eax
jmp 0x1401c96ca
xor eax, eax
test rbx, rbx
setne al
jmp 0x1401c96ca
test r11, r11
je 0x1401c999b
add r13, rax
mov qword [r11], r13
cmp qword [rsp + 0x170], 0
je 0x1401c9966
mov rax, qword [rsp + 0x170]
mov dword [rax], 0
jmp 0x1401c9966
xor eax, eax
jmp 0x1401c98da
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x108
xor eax, eax
mov rbp, qword [rsp + 0x180]
mov rdi, qword [rcx]
mov r12, rdx
mov rdx, qword [rsp + 0x178]
mov r13, r8
mov r11, r9
cmp rdx, 1
setne al
xor r8d, r8d
add rax, rbp
cmp rdi, rax
jb 0x1401c9d1f
cmp rdx, 1
je 0x1401c9d60
movzx ebx, byte [r13 + rdi - 1]
mov r8d, dword [rsp + 0x188]
lea rdx, [rdi - 1]
mov rsi, rbx
test r8d, r8d
jne 0x1401c9d10
add rax, rbx
mov rdx, rdi
sub rdx, rax
xor rdx, rax
xor rax, rdi
or rax, rdx
xor rax, rdi
sar rax, 0x3f
mov r10, rax
not r10
cmp rdi, 0xff
jbe 0x1401c9d40
mov r15d, 0x100
mov r14, rdi
mov r9, rbx
xor r8d, r8d
sub r14, rbx
add r14, r13
mov rdx, r8
mov rax, rbx
xor rdx, r9
xor rax, r8
add r8, 1
or rax, rdx
movzx edx, byte [r14 + r9 - 1]
sub r9, 1
xor rax, rbx
xor edx, esi
sar rax, 0x3f
movzx edx, dl
not rdx
or rax, rdx
and r10, rax
cmp r8, r15
jb 0x1401c9a70
mov rax, r10
not rax
movzx eax, al
or r10, 0xffffffffffffff00
add rbx, 1
mov r14, rdi
lea rsi, [rax - 1]
mov eax, 0x40
and r10, rsi
mov rsi, r10
sar rsi, 0x3f
and rbx, rsi
sub r14, rbx
cmp r12, 0x40
cmovbe rax, r12
mov qword [rcx], r14
cmp rbp, rax
ja 0x1401c9d58
test rbp, rbp
je 0x1401c9db0
mov rax, r14
lea r15, [rsp + 0x40]
xor r9d, r9d
mov r8, rbp
sub rax, rbp
mov rdx, r15
mov qword [rsp + 0x168], r11
mov qword [rcx], rax
mov rcx, qword [rsp + 0x190]
mov qword [rsp + 0x28], rax
call fcn.14009bff0
mov r11, qword [rsp + 0x168]
test eax, eax
jle 0x1401c9d58
test r11, r11
mov qword [rsp + 0x168], r11
je 0x1401c9d58
cmp qword [rsp + 0x170], 0
je 0x1401c9d58
mov r8d, 0xf5
lea rdx, str.ssl_record_methods_tls_pad.c
mov rcx, rbp
call fcn.140095a80
mov r11, qword [rsp + 0x168]
mov qword [rsp + 0x30], rax
mov qword [r11], rax
test rax, rax
je 0x1401c9d58
lea rdx, [rsp + 0x80]
mov rax, qword [rsp + 0x170]
lea r9, [r12 - 0x100]
mov r8, rbp
mov rcx, rdx
sub r9, rbp
neg rcx
mov dword [rax], 1
mov rax, rcx
and eax, 0x3f
lea rcx, [rdx + rax]
lea rax, [rbp + 0x100]
cmp r12, rax
mov eax, 0
cmovbe r9, rax
xor edx, edx
mov qword [rsp + 0x38], r9
call sub.msvcrt.dll_memset
mov r9, qword [rsp + 0x38]
mov rcx, rax
cmp r12, r9
jbe 0x1401c9dbf
mov qword [rsp + 0x38], rsi
sub rbx, rdi
mov rdi, qword [rsp + 0x28]
xor eax, eax
mov r10, rbx
xor edx, edx
xor ebx, ebx
nop dword [rax]
mov r8, rdi
mov rsi, r14
xor r8, r9
xor rsi, r9
mov r11, r8
sub r8, 1
not r11
and r11, r8
lea r8, [r9 + r10]
xor r8, r14
sar r11, 0x3f
or r8, rsi
or rbx, r11
and r11, rdx
xor r8, r9
or rax, r11
movzx r11d, byte [r13 + r9]
add r9, 1
sar r8, 0x3f
and rbx, r8
lea r8, [rdx + 1]
and r11d, ebx
or byte [rcx + rdx], r11b
mov rdx, r8
mov r11, rbp
sub rdx, rbp
xor r11, r8
xor rdx, rbp
or rdx, r11
xor rdx, r8
sar rdx, 0x3f
and rdx, r8
cmp r12, r9
jne 0x1401c9c00
mov rsi, qword [rsp + 0x38]
movzx esi, sil
mov r10, qword [rsp + 0x30]
xor r8d, r8d
mov r9d, esi
not r9d
nop word [rax + rax]
mov r11d, eax
mov rbx, rax
movzx edi, byte [r15 + r8]
add r8, 1
and r11d, 0x20
and rbx, 0xffffffffffffffdf
mov edx, r11d
sub r11d, 1
movzx ebx, byte [rcx + rbx]
not edx
and edx, r11d
lea r11, [rax + 1]
or rax, 0x20
movzx eax, byte [rcx + rax]
sar edx, 0x1f
movzx edx, dl
mov r12d, edx
not edx
and ebx, r12d
and edx, eax
movzx eax, dil
or edx, ebx
and eax, r9d
and edx, esi
or edx, eax
mov rax, r11
mov byte [r10 + r8 - 1], dl
sub rax, rbp
mov rdx, rbp
xor rax, rbp
xor rdx, r11
or rax, rdx
xor rax, r11
sar rax, 0x3f
and rax, r11
cmp rbp, r8
jne 0x1401c9c90
jmp 0x1401c9d19
sub rdx, rbp
sub rdx, rbx
mov qword [rcx], rdx
mov r8d, 1
mov eax, r8d
add rsp, 0x108
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r15, rdi
test rdi, rdi
jne 0x1401c9a61
jmp 0x1401c9aad
xor r8d, r8d
jmp 0x1401c9d1f
cmp r12, 0x40
mov eax, 0x40
cmova r12, rax
cmp rbp, r12
ja 0x1401c9d58
test rbp, rbp
je 0x1401c9d19
sub rdi, rbp
mov qword [rcx], rdi
test r9, r9
je 0x1401c9d88
add rdi, r13
mov qword [r11], rdi
cmp qword [rsp + 0x170], 0
je 0x1401c9d19
mov rax, qword [rsp + 0x170]
mov r8d, 1
mov dword [rax], 0
jmp 0x1401c9d1f
xor r8d, r8d
test rsi, rsi
setne r8b
jmp 0x1401c9d1f
xor eax, eax
jmp 0x1401c9c75