Function at 0x101ad240
Capabilities:
Encode data using xor

Disassembly:
mov eax, 4
call fcn.100bab40
cmp dword [esp + 0xc], 0
push edi
mov edi, dword [esp + 0x24]
je 0x101ad434
mov eax, dword [esp + 0x18]
push ebp
mov ebp, dword [esp + 0x18]
inc eax
push esi
mov esi, dword [esp + 0x30]
push esi
push edi
push dword [esp + 0x30]
shr eax, 1
push dword [esp + 0x30]
mov dword [esp + 0x1c], eax
push eax
push ebp
push dword [esp + 0x2c]
call fcn.101ad070
add esp, 0x1c
test eax, eax
je 0x101ad42d
push ebx
push 0x1bb
push str.providersimplementationskdfs_tls1_prf.c
push esi
call fcn.101034e0
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x101ad2da
call fcn.1010b5b0
push str.tls1_prf_alg
push 0x1bc
push str.providersimplementationskdfs_tls1_prf.c
call fcn.1010b6b0
push ebx
push 0xc0100
push 0x39
call fcn.1010b760
add esp, 0x18
xor eax, eax
pop ebx
pop esi
pop ebp
pop edi
pop ecx
ret
mov eax, dword [esp + 0x10]
sub ebp, eax
add ebp, dword [esp + 0x24]
push esi
push ebx
push dword [esp + 0x34]
push dword [esp + 0x34]
push eax
push ebp
push dword [esp + 0x34]
call fcn.101ad070
add esp, 0x1c
test eax, eax
jne 0x101ad31c
push 0x1c2
push str.providersimplementationskdfs_tls1_prf.c
push esi
push ebx
call fcn.101035d0
add esp, 0x10
xor eax, eax
pop ebx
pop esi
pop ebp
pop edi
pop ecx
ret
xor edx, edx
test esi, esi
je 0x101ad40e
cmp esi, 8
jb 0x101ad3f1
lea eax, [esi - 1]
lea ecx, [edi - 1]
add eax, ebx
add ecx, esi
cmp edi, eax
ja 0x101ad345
cmp ecx, ebx
jae 0x101ad3f1
cmp esi, 0x40
jb 0x101ad3be
mov eax, esi
lea ebp, [ebx + 0x30]
and eax, 0x3f
mov ecx, esi
sub ecx, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], ecx
lea eax, [edi + 0x10]
mov ecx, ebx
sub ecx, edi
movups xmm0, xmmword [eax - 0x10]
add edx, 0x40
lea ebp, [ebp + 0x40]
lea eax, [eax + 0x40]
movups xmm1, xmmword [ebp - 0x70]
pxor xmm1, xmm0
movups xmmword [eax - 0x50], xmm1
movups xmm0, xmmword [eax - 0x40]
movups xmm1, xmmword [ecx + eax - 0x40]
pxor xmm1, xmm0
movups xmmword [eax - 0x40], xmm1
movups xmm0, xmmword [eax - 0x30]
movups xmm1, xmmword [ebp - 0x50]
pxor xmm1, xmm0
movups xmm0, xmmword [ebp - 0x40]
movups xmmword [eax - 0x30], xmm1
movups xmm1, xmmword [eax - 0x20]
pxor xmm1, xmm0
movups xmmword [eax - 0x20], xmm1
cmp edx, dword [esp + 0x1c]
jb 0x101ad365
cmp dword [esp + 0x10], 8
jb 0x101ad3ed
jmp 0x101ad3c2
mov ecx, ebx
sub ecx, edi
mov ebp, esi
lea eax, [edx + edi]
and ebp, 0xfffffff8
nop word [eax + eax]
movq xmm0, qword [eax]
lea eax, [eax + 8]
movq xmm1, qword [ecx + eax - 8]
add edx, 8
pxor xmm1, xmm0
movq qword [eax - 8], xmm1
cmp edx, ebp
jb 0x101ad3d0
cmp edx, esi
jae 0x101ad40e
mov ebp, ebx
lea ecx, [edx + edi]
sub ebp, edi
mov edi, esi
sub edi, edx
nop dword [eax]
mov al, byte [ecx + ebp]
lea ecx, [ecx + 1]
xor byte [ecx - 1], al
sub edi, 1
jne 0x101ad400
push 0x1c7
push str.providersimplementationskdfs_tls1_prf.c
push esi
push ebx
call fcn.101035d0
add esp, 0x10
mov eax, 1
pop ebx
pop esi
pop ebp
pop edi
pop ecx
ret
pop esi
pop ebp
xor eax, eax
pop edi
pop ecx
ret
push dword [esp + 0x28]
push edi
push dword [esp + 0x28]
push dword [esp + 0x28]
push dword [esp + 0x28]
push dword [esp + 0x28]
push dword [esp + 0x24]
call fcn.101ad070
add esp, 0x1c
neg eax
sbb eax, eax
neg eax
pop edi
pop ecx
ret