Function at 0x1400a1b40
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 [0x14039bf08]
xor rax, rsp
mov qword [rsp + 0xc8], rax
test rdx, rdx
je 0x1400a1bb7
mov ebx, r8d
test r8d, r8d
jle 0x1400a2147
test r12, r12
je 0x1400a20fb
mov qword [rsp + 0x38], rsi
xor eax, eax
mov qword [rsp + 0x40], rax
jmp 0x1400a1bfd
call fcn.1400301f0
test rax, rax
je 0x1400a20af
mov edx, 0xc8
mov rdi, rax
mov rcx, rax
call fcn.1400302c0
test rax, rax
je 0x1400a20d6
mov rax, qword [rdi + 8]
mov byte [rax], 0
mov ebx, 0xc8
test r12, r12
je 0x1400a20ea
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x38], rsi
mov rcx, qword [r12]
call fcn.140066880
xor ebp, ebp
test rax, rax
je 0x1400a20b6
mov dword [rsp + 0x4c], ebx
pxor xmm6, xmm6
movaps xmm7, xmmword [0x1402f2ae0]
pcmpeqd xmm8, xmm8
mov esi, 1
movaps xmm9, xmmword [0x1402f2af0]
lea rbx, [0x1402f2b00]
xor r14d, r14d
jmp 0x1400a1c63
mov rbx, r14
mov r14, qword [rsp + 0x30]
mov byte [rax], 0
inc r14
mov rcx, qword [r12]
call fcn.140066880
mov ebp, r13d
cmp r14, rax
jae 0x1400a20b9
mov rcx, qword [r12]
mov rdx, r14
call fcn.14009bb10
mov r15, rax
mov rcx, qword [rax]
call fcn.140094040
test eax, eax
je 0x1400a1c8a
mov ecx, eax
call fcn.140094470
test rax, rax
jne 0x1400a1ca2
mov r8, qword [r15]
lea rdi, [rsp + 0x60]
mov rcx, rdi
mov edx, 0x50
call fcn.140027b20
mov rax, rdi
mov qword [rsp + 0x58], rax
mov rcx, rax
call fcn.1402747f0
mov rcx, qword [r15 + 8]
mov edi, dword [rcx]
cmp edi, 0x100000
jg 0x1400a210f
mov r11, rax
mov rax, qword [rcx + 8]
cmp dword [rcx + 4], 0x1b
jne 0x1400a1e33
mov ecx, edi
and ecx, 3
jne 0x1400a1e33
movdqa xmmword [rsp + 0xb0], xmm6
test edi, edi
jle 0x1400a1f50
cmp edi, 8
jb 0x1400a1de9
lea rdx, [rdi - 5]
mov ecx, 0
cmp rdx, 0xfffffffffffffffc
jb 0x1400a1deb
mov qword [rsp + 0x30], 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 0x1400a1d40
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 + 0x30]
jne 0x1400a1deb
jmp 0x1400a1e18
xor ecx, ecx
mov rdx, rcx
test dil, 1
je 0x1400a1e0c
cmp byte [rax + rcx], 0
je 0x1400a1e05
mov dword [rsp + 0xb0], 1
mov rdx, rcx
or rdx, 1
not rcx
add rcx, rdi
jne 0x1400a1e9d
mov ecx, dword [rsp + 0xb4]
or ecx, dword [rsp + 0xb0]
or ecx, dword [rsp + 0xb8]
je 0x1400a1f50
movaps xmmword [rsp + 0xb0], xmm7
test edi, edi
jle 0x1400a1f61
cmp edi, 1
jne 0x1400a1ed0
xor edx, edx
xor ecx, ecx
test dil, 1
je 0x1400a1f63
mov r8d, edx
and r8d, 3
cmp dword [rsp + r8*4 + 0xb0], 0
je 0x1400a1f63
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 0x1400a1f63
add rdx, 2
cmp rdi, rdx
je 0x1400a1e18
cmp byte [rax + rdx], 0
je 0x1400a1eb3
mov ecx, edx
and ecx, 3
mov dword [rsp + rcx*4 + 0xb0], 1
cmp byte [rax + rdx + 1], 0
je 0x1400a1e90
lea rcx, [rdx + 1]
and ecx, 3
mov dword [rsp + rcx*4 + 0xb0], 1
jmp 0x1400a1e90
mov r8d, edi
and r8d, 0xfffffffe
xor edx, edx
xor ecx, ecx
jmp 0x1400a1eed
add rdx, 2
cmp r8, rdx
je 0x1400a1e50
mov r9d, edx
and r9d, 2
cmp dword [rsp + r9*4 + 0xb0], 0
je 0x1400a1f1c
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 0x1400a1ee0
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 0x1400a1ee0
movaps xmmword [rsp + 0xb0], xmm9
test edi, edi
jg 0x1400a1e43
xor ecx, ecx
lea eax, [r11 + rbp]
lea r13d, [rcx + rax]
add r13d, 2
cmp r13d, 0x100000
jg 0x1400a2116
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x30], r14
mov r14, rbx
mov rbx, r12
mov r12, qword [rsp + 0x40]
test r12, r12
je 0x1400a1fd0
mov r15, rbp
mov rbp, r11
lea eax, [r13 + 1]
movsxd rdx, eax
mov rcx, r12
call fcn.1400302c0
test rax, rax
je 0x1400a213f
mov rax, qword [r12 + 8]
mov r11, rbp
mov rbp, r15
jmp 0x1400a1fe0
mov rax, qword [rsp + 0x38]
cmp r13d, dword [rsp + 0x4c]
jge 0x1400a2192
movsxd rcx, ebp
lea rbp, [rax + rcx]
inc rbp
mov byte [rax + rcx], 0x2f
mov r8, r11
mov eax, 0xffffffff
and r8, rax
je 0x1400a200e
mov rcx, rbp
mov rdx, qword [rsp + 0x58]
mov r12, r11
call fcn.140265d10
mov r11, r12
movsxd rcx, r11d
lea rax, [rcx + rbp]
inc rax
mov byte [rbp + rcx], 0x3d
test edi, edi
mov r12, rbx
jle 0x1400a1c40
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 + 0x30]
jmp 0x1400a2062
mov byte [rax], r8b
inc rax
inc rdx
cmp rdi, rdx
je 0x1400a1c48
mov r8d, edx
and r8d, 3
cmp dword [rsp + r8*4 + 0xb0], 0
je 0x1400a2056
movzx r8d, byte [rcx + rdx]
lea r9d, [r8 - 0x7f]
cmp r9b, 0xa0
ja 0x1400a2050
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 0x1400a2056
xor ecx, ecx
jmp 0x1400a2142
xor r14d, r14d
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x1400a20db
mov rsi, qword [rcx + 8]
call fcn.140093660
test r14, r14
jne 0x1400a2149
jmp 0x1400a21a1
mov rcx, rdi
jmp 0x1400a2142
mov rsi, qword [rsp + 0x38]
test r14, r14
jne 0x1400a2149
jmp 0x1400a21a1
mov rsi, qword [rdi + 8]
mov rcx, rdi
call fcn.140093660
mov ebx, 0xc8
mov r8d, ebx
lea rdx, str.NO_X509_NAME
mov rcx, rsi
call fcn.140093d50
jmp 0x1400a2149
mov eax, 0x79
jmp 0x1400a211b
mov eax, 0x9d
mov dword [rsp + 0x20], eax
lea r9, str..._.._third_party_boringssl_src_crypto_x509_x509_obj.c
mov ecx, listen
xor edx, edx
mov r8d, 0x87
call fcn.14004a660
mov rcx, qword [rsp + 0x40]
jmp 0x1400a2142
mov rcx, r12
call fcn.140029630
xor esi, esi
mov rcx, qword [rsp + 0xc8]
xor rcx, rsp
call fcn.140263300
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 + 0x38]
mov r14, qword [rsp + 0x30]
test r14, r14
jne 0x1400a2149
mov byte [rsi], 0
jmp 0x1400a2149