Function at 0x5875a0
Capabilities:
Encode data using xor

Disassembly:
mov eax, 4
call fcn.0059eec0
cmp dword [esp + 0xc], 0
je 0x587794
mov eax, dword [esp + 0x14]
push ebp
mov ebp, dword [esp + 0x14]
inc eax
push esi
mov esi, dword [esp + 0x2c]
push edi
mov edi, dword [esp + 0x2c]
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.00587360
add esp, 0x1c
test eax, eax
je 0x58778d
push ebx
push 0x179
push str.providersimplementationskdfs_tls1_prf.c
push esi
call fcn.004964c0
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x587637
call fcn.00499720
push str.tls1_prf_alg
push 0x17a
push str.providersimplementationskdfs_tls1_prf.c
call fcn.004997d0
push ebx
push 0x41
push 0x39
call fcn.00499810
add esp, 0x18
xor eax, eax
pop ebx
pop edi
pop esi
pop ebp
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.00587360
add esp, 0x1c
test eax, eax
jne 0x587679
push 0x180
push str.providersimplementationskdfs_tls1_prf.c
push esi
push ebx
call fcn.004965c0
add esp, 0x10
xor eax, eax
pop ebx
pop edi
pop esi
pop ebp
pop ecx
ret
xor edx, edx
test esi, esi
je 0x58776e
cmp esi, 8
jb 0x587751
lea eax, [esi - 1]
lea ecx, [edi - 1]
add eax, ebx
add ecx, esi
cmp edi, eax
ja 0x5876a2
cmp ecx, ebx
jae 0x587751
cmp esi, 0x40
jb 0x587725
mov ebp, esi
lea ecx, [ebx + 0x30]
mov eax, esi
and ebp, 0x3f
sub eax, ebp
mov esi, ebx
sub esi, edi
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], esi
lea eax, [edi + 0x10]
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x1c]
nop word [eax + eax]
movups xmm0, xmmword [eax - 0x10]
add edx, 0x40
lea ecx, [ecx + 0x40]
lea eax, [eax + 0x40]
movups xmm1, xmmword [ecx - 0x70]
xorps xmm1, xmm0
movups xmmword [eax - 0x50], xmm1
movups xmm0, xmmword [eax - 0x40]
movups xmm1, xmmword [edi + eax - 0x40]
xorps xmm1, xmm0
movups xmmword [eax - 0x40], xmm1
movups xmm0, xmmword [eax - 0x30]
movups xmm1, xmmword [ecx - 0x50]
xorps xmm1, xmm0
movups xmmword [eax - 0x30], xmm1
movups xmm1, xmmword [eax - 0x20]
movups xmm0, xmmword [ecx - 0x40]
xorps xmm1, xmm0
movups xmmword [eax - 0x20], xmm1
cmp edx, dword [esp + 0x10]
jb 0x5876d0
mov edi, dword [esp + 0x30]
cmp ebp, 8
jb 0x58774d
mov ecx, esi
lea eax, [edx + edi]
mov ebp, ebx
and ecx, 0xfffffff8
sub ebp, edi
movq xmm1, qword [eax + ebp]
lea eax, [eax + 8]
movq xmm0, qword [eax - 8]
add edx, 8
xorps xmm1, xmm0
movq qword [eax - 8], xmm1
cmp edx, ecx
jb 0x587731
cmp edx, esi
jae 0x58776e
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 0x587760
push 0x185
push str.providersimplementationskdfs_tls1_prf.c
push esi
push ebx
call fcn.004965c0
add esp, 0x10
mov eax, 1
pop ebx
pop edi
pop esi
pop ebp
pop ecx
ret
pop edi
pop esi
xor eax, eax
pop ebp
pop ecx
ret
push dword [esp + 0x24]
push dword [esp + 0x24]
push dword [esp + 0x24]
push dword [esp + 0x24]
push dword [esp + 0x24]
push dword [esp + 0x24]
push dword [esp + 0x20]
call fcn.00587360
add esp, 0x1c
neg eax
sbb eax, eax
neg eax
pop ecx
ret