Function at 0x57e6f0
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0xe0
call fcn.00581890
mov eax, dword [0x634f14]
xor eax, esp
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0xe4]
mov edx, dword [esp + 0x104]
mov ecx, dword [esp + 0xf0]
push ebx
mov ebx, dword [esp + 0xf8]
push ebp
mov ebp, dword [esp + 0xf0]
push esi
mov esi, dword [esp + 0x108]
mov dword [esp + 0xc], eax
mov eax, dword [eax]
mov dword [esp + 0x14], edx
mov edx, eax
push edi
sub edx, esi
mov dword [esp + 0x14], ecx
xor edi, edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
cmp ebp, esi
jb 0x57e99d
cmp esi, 0x40
ja 0x57e99d
test esi, esi
jne 0x57e778
xor eax, eax
cmp dword [esp + 0x110], eax
setne al
jmp 0x57e99f
mov edx, eax
mov eax, dword [esp + 0x10]
sub edx, esi
cmp dword [esp + 0x108], 1
mov dword [eax], edx
jne 0x57e7ab
test ecx, ecx
je 0x57e79b
mov eax, dword [esp + 0xfc]
add eax, edx
mov dword [ecx], eax
test ebx, ebx
je 0x57e7a1
mov dword [ebx], edi
mov eax, 1
jmp 0x57e99f
push 0
push esi
lea eax, [esp + 0x34]
push eax
push dword [esp + 0x24]
call fcn.0045e210
add esp, 0x10
test eax, eax
jle 0x57e99d
cmp dword [esp + 0x14], edi
je 0x57e99d
test ebx, ebx
je 0x57e99d
push 0xf5
push str.ssl_recordmethods_tls_pad.c
push esi
call fcn.00465c60
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov dword [esp + 0x24], eax
mov dword [ecx], eax
test eax, eax
je 0x57e99d
lea eax, [esp + 0x6c]
mov dword [ebx], 1
neg eax
lea ecx, [esp + 0x6c]
and eax, 0x3f
add ecx, eax
lea eax, [esi + 0x100]
mov dword [esp + 0x14], ecx
cmp ebp, eax
jbe 0x57e82b
mov edi, ebp
sub edi, esi
sub edi, 0x100
push esi
xor ebp, ebp
mov dword [esp + 0x1c], 0
push ebp
push ecx
call fcn.005840f0
add esp, 0xc
xor ebx, ebx
cmp edi, dword [esp + 0xf8]
jae 0x57e8d6
mov ecx, edi
sub ecx, dword [esp + 0x1c]
mov dword [esp + 0x10], ecx
nop dword [eax]
xor ecx, dword [esp + 0x1c]
mov eax, edi
xor eax, dword [esp + 0x20]
lea edx, [eax - 1]
not eax
shr eax, 0x1f
shr edx, 0x1f
and edx, eax
mov eax, edi
xor eax, dword [esp + 0x1c]
neg edx
or ecx, eax
mov eax, edx
or eax, dword [esp + 0x18]
xor ecx, edi
shr ecx, 0x1f
and edx, ebx
neg ecx
or ebp, edx
mov edx, dword [esp + 0x14]
and ecx, eax
mov eax, dword [esp + 0xfc]
mov dword [esp + 0x18], ecx
mov al, byte [edi + eax]
inc edi
and al, cl
or byte [ebx + edx], al
inc ebx
mov ecx, ebx
mov eax, esi
sub ecx, esi
xor eax, ebx
xor ecx, esi
or ecx, eax
xor ecx, ebx
shr ecx, 0x1f
neg ecx
and ebx, ecx
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp edi, dword [esp + 0xf8]
jb 0x57e860
jmp 0x57e8da
mov edx, dword [esp + 0x14]
test esi, esi
je 0x57e7a1
movzx eax, byte [esp + 0x110]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x18], eax
not eax
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x2c]
sub eax, edi
mov dword [esp + 0x10], esi
mov dword [esp + 0x28], eax
mov eax, ebp
lea edi, [edi + 1]
and eax, 0xffffffdf
mov ecx, ebp
and ecx, 0x20
mov bl, byte [eax + edx]
mov eax, ebp
or eax, 0x20
inc ebp
mov dl, byte [eax + edx]
lea eax, [ecx - 1]
shr eax, 0x1f
not ecx
shr ecx, 0x1f
and al, cl
mov ecx, dword [esp + 0x28]
neg al
movzx eax, al
mov dword [esp + 0x20], eax
not eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
and al, dl
mov edx, dword [esp + 0x20]
and dl, bl
or dl, al
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
mov cl, byte [ecx + edi - 1]
and cl, al
mov eax, dword [esp + 0x20]
and al, dl
mov edx, dword [esp + 0x14]
or al, cl
mov ecx, ebp
sub ecx, esi
mov byte [edi - 1], al
xor ecx, esi
mov eax, esi
xor eax, ebp
or ecx, eax
xor ecx, ebp
shr ecx, 0x1f
neg ecx
and ebp, ecx
sub dword [esp + 0x10], 1
jne 0x57e906
mov eax, 1
jmp 0x57e99f
xor eax, eax
mov ecx, dword [esp + 0xec]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00581041
add esp, 0xe0
ret