Function at 0x4ff620
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x124
call fcn.0057aae0
mov eax, dword [0x5fbea4]
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 0x4ff941
mov ebp, dword [esp + 0x140]
test ebp, ebp
jle 0x4ff941
test ebx, ebx
jle 0x4ff941
push 0x1aa
push str.crypto_rsa_rsa_pk1.c
push ebx
call fcn.00460490
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x2c], ecx
test ecx, ecx
jne 0x4ff6d5
call fcn.004657e0
push str.ossl_rsa_padding_check_PKCS1_type_2
push 0x1ac
push str.crypto_rsa_rsa_pk1.c
call fcn.00465830
push 0
push 0xc0100
jmp 0x4ff961
lea eax, [ebx*8]
push eax
push dword [esp + 0x14]
push 7
push str.message
push ebx
push ecx
push edi
call fcn.004ffbb0
add esp, 0x1c
test eax, eax
js 0x4ff8fd
push 0x800
push dword [esp + 0x14]
lea eax, [esp + 0x38]
push 6
push str.length
push 0x100
push eax
push edi
call fcn.004ffbb0
add esp, 0x1c
test eax, eax
js 0x4ff8fd
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 0x4ff770
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 0x4ff856
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 0x4ff810
jmp 0x4ff858
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 0x4ff8f9
mov ebp, dword [esp + 0x2c]
add edi, edx
sub ebp, dword [esp + 0x144]
sub dword [esp + 0x24], edx
cmp esi, dword [esp + 0x140]
jge 0x4ff8f9
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 0x4ff8c0
test esi, esi
jns 0x4ff927
call fcn.004657e0
push str.ossl_rsa_padding_check_PKCS1_type_2
push 0x209
push str.crypto_rsa_rsa_pk1.c
call fcn.00465830
push 0
push 0xc0103
push 4
call fcn.00465860
add esp, 0x18
push 0x20a
push str.crypto_rsa_rsa_pk1.c
push dword [esp + 0x34]
call fcn.00460510
add esp, 0xc
mov eax, esi
jmp 0x4ff96e
call fcn.004657e0
push str.ossl_rsa_padding_check_PKCS1_type_2
push 0x1a5
push str.crypto_rsa_rsa_pk1.c
call fcn.00465830
push 0
push 0xc0103
push 4
call fcn.00465860
add esp, 0x18
or eax, 0xffffffff
mov ecx, dword [esp + 0x130]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0057a738
add esp, 0x124
ret