Function at 0x4fed90
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x124
call fcn.0057a200
mov eax, dword [0x5faea4]
xor eax, esp
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0x12c]
push ebx
mov ebx, dword [esp + 0x13c]
push ebp
push esi
mov dword [esp + 0x20], eax
or esi, 0xffffffff
mov eax, dword [esp + 0x14c]
push edi
mov edi, dword [esp + 0x138]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], 0
cmp dword [esp + 0x14c], ebx
jne 0x4ff0b1
mov ebp, dword [esp + 0x140]
test ebp, ebp
jle 0x4ff0b1
test ebx, ebx
jle 0x4ff0b1
push 0x1aa
push str.crypto_rsa_rsa_pk1.c
push ebx
call fcn.0045fc10
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x2c], ecx
test ecx, ecx
jne 0x4fee45
call fcn.00464f60
push str.ossl_rsa_padding_check_PKCS1_type_2
push 0x1ac
push str.crypto_rsa_rsa_pk1.c
call fcn.00464fb0
push 0
push 0xc0100
jmp 0x4ff0d1
lea eax, [ebx*8]
push eax
push dword [esp + 0x14]
push 7
push str.message
push ebx
push ecx
push edi
call fcn.004ff320
add esp, 0x1c
test eax, eax
js 0x4ff06d
push 0x800
push dword [esp + 0x14]
lea eax, [esp + 0x38]
push 6
push str.length
push 0x100
push eax
push edi
call fcn.004ff320
add esp, 0x1c
test eax, eax
js 0x4ff06d
lea eax, [ebx - 0xa]
mov dword [esp + 0x10], 0
movzx ecx, ax
mov ax, cx
mov ebx, ecx
shr ax, 1
or ax, cx
movzx eax, ax
mov si, ax
mov dword [esp + 0x18], eax
shr ax, 2
or si, ax
mov ax, si
shr ax, 4
or si, ax
mov ax, si
shr ax, 8
or si, ax
xor edi, edi
nop word [eax + eax]
movzx ecx, byte [esp + edi + 0x30]
movzx eax, byte [esp + edi + 0x31]
add edi, 2
shl cx, 8
or cx, ax
and cx, si
movzx edx, cx
mov eax, edx
sub eax, ebx
xor eax, edx
xor eax, ebx
shr eax, 0x1f
neg eax
mov dword [esp + 0x18], eax
not eax
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
and ecx, edx
and eax, dword [esp + 0x10]
or eax, ecx
mov dword [esp + 0x10], eax
cmp edi, 0x100
jl 0x4feee0
mov edi, dword [esp + 0x144]
mov esi, 2
mov ebx, dword [esp + 0x14]
mov ecx, ebx
sub ecx, eax
mov dword [esp + 0x28], ecx
movzx eax, byte [edi + 1]
movzx ecx, byte [edi]
xor eax, 2
lea edx, [eax - 1]
not eax
shr eax, 0x1f
shr edx, 0x1f
and edx, eax
lea eax, [ecx - 1]
not ecx
shr eax, 0x1f
shr ecx, 0x1f
neg edx
and eax, ecx
xor ecx, ecx
neg eax
mov dword [esp + 0x18], ecx
and edx, eax
mov dword [esp + 0x10], edx
cmp ebx, esi
jle 0x4fefc6
nop dword [eax]
movzx eax, byte [esi + edi]
not ecx
lea edx, [eax - 1]
not eax
shr eax, 0x1f
shr edx, 0x1f
and edx, eax
neg edx
and ecx, edx
mov dword [esp + 0x14], ecx
not ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
and ecx, esi
and eax, dword [esp + 0x20]
inc esi
or eax, ecx
mov ecx, dword [esp + 0x18]
or ecx, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], ecx
cmp esi, ebx
jl 0x4fef80
jmp 0x4fefc8
xor eax, eax
mov esi, dword [esp + 0x14c]
lea edx, [eax + 1]
sub esi, edx
add eax, 0xfffffff6
or eax, dword [esp + 0x20]
mov ecx, ebp
xor eax, dword [esp + 0x20]
sub ecx, esi
xor ecx, esi
shr eax, 0x1f
xor esi, ebp
dec eax
or ecx, esi
xor esi, esi
xor ecx, ebp
shr ecx, 0x1f
dec ecx
and ecx, eax
and dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
mov eax, ecx
not eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
and eax, edx
mov edx, dword [esp + 0x1c]
and edx, dword [esp + 0x28]
or edx, eax
cmp edx, ebx
jge 0x4ff069
mov ebp, dword [esp + 0x2c]
add edi, edx
sub ebp, dword [esp + 0x144]
sub dword [esp + 0x24], edx
cmp esi, dword [esp + 0x140]
jge 0x4ff069
movzx eax, cl
inc esi
mov dword [esp + 0x14], eax
not eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov cl, byte [edi + ebp]
and cl, al
mov eax, dword [esp + 0x14]
and al, byte [edi]
inc edi
or al, cl
mov ecx, dword [esp + 0x24]
mov byte [ecx + edx], al
inc edx
mov ecx, dword [esp + 0x10]
cmp edx, ebx
jl 0x4ff030
test esi, esi
jns 0x4ff097
call fcn.00464f60
push str.ossl_rsa_padding_check_PKCS1_type_2
push 0x209
push str.crypto_rsa_rsa_pk1.c
call fcn.00464fb0
push 0
push 0xc0103
push 4
call fcn.00464fe0
add esp, 0x18
push 0x20a
push str.crypto_rsa_rsa_pk1.c
push dword [esp + 0x34]
call fcn.0045fc90
add esp, 0xc
mov eax, esi
jmp 0x4ff0de
call fcn.00464f60
push str.ossl_rsa_padding_check_PKCS1_type_2
push 0x1a5
push str.crypto_rsa_rsa_pk1.c
call fcn.00464fb0
push 0
push 0xc0103
push 4
call fcn.00464fe0
add esp, 0x18
or eax, 0xffffffff
mov ecx, dword [esp + 0x130]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00579e58
add esp, 0x124
ret