Function at 0x1400ac060
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x118
movaps xmmword [rsp + 0x100], xmm9
movdqa xmmword [rsp + 0xf0], xmm8
movaps xmmword [rsp + 0xe0], xmm7
movdqa xmmword [rsp + 0xd0], xmm6
mov rsi, rdx
mov r12, rcx
mov rax, qword [0x1403acd78]
xor rax, rsp
mov qword [rsp + 0xc8], rax
test rdx, rdx
je 0x1400ac0d7
mov ebx, r8d
test r8d, r8d
jle 0x1400ac688
test r12, r12
je 0x1400ac63f
mov qword [rsp + 0x40], rsi
xor eax, eax
mov qword [rsp + 0x30], rax
jmp 0x1400ac11d
call fcn.140032280
test rax, rax
je 0x1400ac5cf
mov edx, 0xc8
mov rdi, rax
mov rcx, rax
call fcn.140032390
test rax, rax
je 0x1400ac5fc
mov rax, qword [rdi + 8]
mov byte [rax], 0
mov ebx, 0xc8
test r12, r12
je 0x1400ac62e
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x40], rsi
mov rcx, qword [r12]
call fcn.14006cbf0
xor ebp, ebp
test rax, rax
je 0x1400ac5d8
mov dword [rsp + 0x4c], ebx
pxor xmm6, xmm6
movaps xmm7, xmmword [0x140308490]
pcmpeqd xmm8, xmm8
mov esi, 1
movaps xmm9, xmmword [0x1403084a0]
lea rbx, [0x1403084b0]
xor r14d, r14d
jmp 0x1400ac183
mov rbx, r14
mov r14, qword [rsp + 0x38]
mov byte [rax], 0
inc r14
mov rcx, qword [r12]
call fcn.14006cbf0
mov ebp, r13d
cmp r14, rax
jae 0x1400ac5db
mov rcx, qword [r12]
mov rdx, r14
call fcn.1400a6dc0
mov r15, rax
mov rcx, qword [rax]
call fcn.14009f340
test eax, eax
je 0x1400ac1aa
mov ecx, eax
call fcn.14009f770
test rax, rax
jne 0x1400ac1c2
mov r8, qword [r15]
lea rdi, [rsp + 0x60]
mov rcx, rdi
mov edx, 0x50
call fcn.140027a60
mov rax, rdi
mov qword [rsp + 0x58], rax
mov rcx, rax
call fcn.14028aa50
mov rcx, qword [r15 + 8]
mov edi, dword [rcx]
cmp edi, 0x100001
jge 0x1400ac653
mov r11, rax
mov rax, qword [rcx + 8]
cmp dword [rcx + 4], 0x1b
jne 0x1400ac353
mov ecx, edi
and ecx, 3
jne 0x1400ac353
movdqa xmmword [rsp + 0xb0], xmm6
test edi, edi
jle 0x1400ac470
cmp edi, 8
jb 0x1400ac309
lea rdx, [rdi - 5]
mov ecx, 0
cmp rdx, 0xfffffffffffffffc
jb 0x1400ac30b
mov qword [rsp + 0x38], r11
mov ecx, edi
and ecx, 0xfffffff8
mov r10d, dword [rsp + 0xb0]
mov r9d, dword [rsp + 0xb4]
mov r8d, dword [rsp + 0xb8]
mov edx, dword [rsp + 0xbc]
xor r11d, r11d
nop word cs:[rax + rax]
movd xmm0, dword [rax + r11]
movd xmm1, dword [rax + r11 + 4]
pcmpeqb xmm0, xmm6
pxor xmm0, xmm8
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
movmskps r13d, xmm0
pcmpeqb xmm1, xmm6
test r13b, 1
cmovne r10d, esi
pxor xmm1, xmm8
test r13b, 2
cmovne r9d, esi
punpcklbw xmm0, xmm1
test r13b, 4
cmovne r8d, esi
punpcklwd xmm0, xmm0
test r13b, 8
cmovne edx, esi
movmskps r13d, xmm0
test r13b, 1
cmovne r10d, esi
test r13b, 2
cmovne r9d, esi
test r13b, 4
cmovne r8d, esi
test r13b, 8
cmovne edx, esi
add r11, 8
cmp rcx, r11
jne 0x1400ac260
mov dword [rsp + 0xb0], r10d
mov dword [rsp + 0xb4], r9d
mov dword [rsp + 0xb8], r8d
mov dword [rsp + 0xbc], edx
cmp rcx, rdi
mov r11, qword [rsp + 0x38]
jne 0x1400ac30b
jmp 0x1400ac338
xor ecx, ecx
mov rdx, rcx
test dil, 1
je 0x1400ac32c
cmp byte [rax + rcx], 0
je 0x1400ac325
mov dword [rsp + 0xb0], 1
mov rdx, rcx
or rdx, 1
not rcx
add rcx, rdi
jne 0x1400ac3bd
mov ecx, dword [rsp + 0xb4]
or ecx, dword [rsp + 0xb0]
or ecx, dword [rsp + 0xb8]
je 0x1400ac470
movaps xmmword [rsp + 0xb0], xmm7
test edi, edi
jle 0x1400ac481
cmp edi, 1
jne 0x1400ac3f0
xor edx, edx
xor ecx, ecx
test dil, 1
je 0x1400ac483
mov r8d, edx
and r8d, 3
cmp dword [rsp + r8*4 + 0xb0], 0
je 0x1400ac483
movzx eax, byte [rax + rdx]
add al, 0x81
xor edx, edx
cmp al, 0xa1
setb dl
lea eax, [rdx + rdx*2]
add ecx, eax
inc ecx
jmp 0x1400ac483
add rdx, 2
cmp rdi, rdx
je 0x1400ac338
cmp byte [rax + rdx], 0
je 0x1400ac3d3
mov ecx, edx
and ecx, 3
mov dword [rsp + rcx*4 + 0xb0], 1
cmp byte [rax + rdx + 1], 0
je 0x1400ac3b0
lea rcx, [rdx + 1]
and ecx, 3
mov dword [rsp + rcx*4 + 0xb0], 1
jmp 0x1400ac3b0
mov r8d, edi
and r8d, 0xfffffffe
xor edx, edx
xor ecx, ecx
jmp 0x1400ac40d
add rdx, 2
cmp r8, rdx
je 0x1400ac370
mov r9d, edx
and r9d, 2
cmp dword [rsp + r9*4 + 0xb0], 0
je 0x1400ac43c
movzx r9d, byte [rax + rdx]
add r9b, 0x81
xor r10d, r10d
cmp r9b, 0xa1
setb r10b
lea r9d, [r10 + r10*2]
add ecx, r9d
inc ecx
lea r9d, [rdx + 1]
and r9d, 3
cmp dword [rsp + r9*4 + 0xb0], 0
je 0x1400ac400
movzx r9d, byte [rax + rdx + 1]
add r9b, 0x81
xor r10d, r10d
cmp r9b, 0xa1
setb r10b
lea r9d, [r10 + r10*2]
add ecx, r9d
inc ecx
jmp 0x1400ac400
movaps xmmword [rsp + 0xb0], xmm9
test edi, edi
jg 0x1400ac363
xor ecx, ecx
lea eax, [r11 + rbp]
lea r13d, [rcx + rax]
add r13d, 2
cmp r13d, 0x100001
jge 0x1400ac65d
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x38], r14
mov r14, rbx
mov rbx, r12
mov r12, qword [rsp + 0x30]
test r12, r12
je 0x1400ac4f0
mov r15, rbp
mov rbp, r11
lea eax, [r13 + 1]
movsxd rdx, eax
mov rcx, r12
call fcn.140032390
test rax, rax
je 0x1400ac601
mov rax, qword [r12 + 8]
mov r11, rbp
mov rbp, r15
jmp 0x1400ac500
mov rax, qword [rsp + 0x40]
cmp r13d, dword [rsp + 0x4c]
jge 0x1400ac6d3
movsxd rcx, ebp
lea rbp, [rax + rcx]
inc rbp
mov byte [rax + rcx], 0x2f
mov r8, r11
mov eax, 0xffffffff
and r8, rax
je 0x1400ac52e
mov rcx, rbp
mov rdx, qword [rsp + 0x58]
mov r12, r11
call fcn.14027bf80
mov r11, r12
movsxd rcx, r11d
lea rax, [rcx + rbp]
inc rax
mov byte [rbp + rcx], 0x3d
test edi, edi
mov r12, rbx
jle 0x1400ac160
mov rcx, qword [rsp + 0x50]
mov rcx, qword [rcx + 8]
mov rcx, qword [rcx + 8]
xor edx, edx
mov rbx, r14
mov r14, qword [rsp + 0x38]
jmp 0x1400ac582
mov byte [rax], r8b
inc rax
inc rdx
cmp rdi, rdx
je 0x1400ac168
mov r8d, edx
and r8d, 3
cmp dword [rsp + r8*4 + 0xb0], 0
je 0x1400ac576
movzx r8d, byte [rcx + rdx]
lea r9d, [r8 - 0x7f]
cmp r9b, 0xa0
ja 0x1400ac570
movzx r8d, r8b
mov word [rax], 0x785c
mov r9, r8
shr r9, 4
movzx r9d, byte [r9 + rbx]
mov byte [rax + 2], r9b
and r8d, 0xf
movzx r8d, byte [r8 + rbx]
mov byte [rax + 3], r8b
add rax, 4
jmp 0x1400ac576
xor eax, eax
mov qword [rsp + 0x30], rax
jmp 0x1400ac601
xor r14d, r14d
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x1400ac61f
mov rsi, qword [rcx + 8]
call fcn.14009ea90
test r14, r14
jne 0x1400ac68a
jmp 0x1400ac6e2
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x20], 0xc3
lea r9, str..._.._third_party_boringssl_src_crypto_x509_x509_obj.c
mov ecx, ntohs
xor edx, edx
mov r8d, 0x41
jmp 0x1400ac679
mov rsi, qword [rsp + 0x40]
test r14, r14
jne 0x1400ac68a
jmp 0x1400ac6e2
mov rsi, qword [rdi + 8]
mov rcx, rdi
call fcn.14009ea90
mov ebx, 0xc8
mov r8d, ebx
lea rdx, str.NO_X509_NAME
mov rcx, rsi
call fcn.14009f020
jmp 0x1400ac68a
mov dword [rsp + 0x20], 0x7b
jmp 0x1400ac665
mov dword [rsp + 0x20], 0x9a
lea r9, str..._.._third_party_boringssl_src_crypto_x509_x509_obj.c
mov ecx, ntohs
xor edx, edx
mov r8d, 0x87
call fcn.140049240
mov rcx, qword [rsp + 0x30]
call fcn.14002a0c0
xor esi, esi
mov rcx, qword [rsp + 0xc8]
xor rcx, rsp
call fcn.140279500
mov rax, rsi
movaps xmm6, xmmword [rsp + 0xd0]
movaps xmm7, xmmword [rsp + 0xe0]
movaps xmm8, xmmword [rsp + 0xf0]
movaps xmm9, xmmword [rsp + 0x100]
add rsp, 0x118
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rsi, qword [rsp + 0x40]
mov r14, qword [rsp + 0x38]
test r14, r14
jne 0x1400ac68a
mov byte [rsi], 0
jmp 0x1400ac68a