Function at 0x4f0400
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff0
sub esp, 0x40
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x18]
mov edi, dword [ebp + 8]
mov esi, dword [ebp + 0x1c]
test ecx, ecx
cmove eax, dword [ebp + 0x14]
mov dword [ebp + 0x18], eax
mov eax, dword [ebp + 0x14]
mov dword [esp], eax
call fcn.004aa2f0
test eax, eax
js 0x4f057d
mov ebx, eax
cmp esi, 0xffffffff
je 0x4f0770
cmp esi, 0xfffffffe
je 0x4f05c8
cmp esi, 0xfffffffd
jl 0x4f0780
mov eax, dword [edi + 0x14]
mov dword [esp], eax
call fcn.0045a620
mov dword [esp], edi
sub eax, 1
and eax, 7
mov dword [esp + 0x34], eax
call fcn.00410340
mov edx, dword [esp + 0x34]
mov dword [esp + 0x38], eax
test edx, edx
jne 0x4f048f
mov edx, dword [ebp + 0xc]
sub eax, 1
mov dword [esp + 0x38], eax
mov eax, edx
mov byte [edx], 0
add eax, 1
mov dword [ebp + 0xc], eax
mov ecx, dword [esp + 0x38]
lea eax, [ebx + 1]
cmp eax, ecx
jge 0x4f0540
mov eax, ecx
sub eax, ebx
mov dword [esp + 0x30], eax
cmp esi, 0xfffffffd
je 0x4f0768
sub eax, 1
cmp eax, esi
jle 0x4f07c0
test esi, esi
jle 0x4f0758
mov dword [esp + 8], 0xcb
mov dword [esp + 4], str..._crypto_rsa_rsa_pss.c
mov dword [esp], esi
call fcn.004ce330
mov dword [esp + 0x3c], eax
test eax, eax
je 0x4f07e0
mov dword [esp + 0xc], 0
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov eax, dword [edi + 4]
mov dword [esp], eax
call fcn.0040e8c0
test eax, eax
jle 0x4f0748
call fcn.0049edd0
mov edi, eax
xor eax, eax
test edi, edi
je 0x4f0589
mov dword [esp + 8], 0
mov eax, dword [ebp + 0x14]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.0049ee80
test eax, eax
jne 0x4f05d8
xor eax, eax
jmp 0x4f0589
call fcn.0049b030
mov dword [esp + 8], str.RSA_padding_add_PKCS1_PSS_mgf1
mov dword [esp + 4], 0xc1
mov dword [esp], str..._crypto_rsa_rsa_pss.c
call fcn.0049b150
mov dword [esp + 8], 0
mov dword [esp + 4], 0x6e
mov dword [esp], 4
call fcn.0049b230
mov dword [esp + 0x3c], 0
xor edi, edi
xor eax, eax
mov dword [esp], edi
mov dword [esp + 0x38], eax
call fcn.0049ee00
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], esi
mov dword [esp + 0xc], 0xfc
mov dword [esp], eax
mov dword [esp + 8], str..._crypto_rsa_rsa_pss.c
call fcn.004ce740
mov eax, dword [esp + 0x38]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov esi, 0xfffffffd
jmp 0x4f0451
mov dword [esp + 8], 8
mov dword [esp + 4], 0x68c5b0
mov dword [esp], edi
call fcn.0049eea0
test eax, eax
je 0x4f0535
mov dword [esp + 8], ebx
mov eax, dword [ebp + 0x10]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.0049eea0
test eax, eax
je 0x4f0535
test esi, esi
je 0x4f0633
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], esi
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.0049eea0
test eax, eax
je 0x4f0589
mov edx, dword [esp + 0x30]
sub edx, 1
mov ecx, edx
add ecx, dword [ebp + 0xc]
mov dword [esp + 8], 0
mov dword [esp + 4], ecx
mov dword [esp], edi
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], ecx
call fcn.0049f180
test eax, eax
je 0x4f0535
mov eax, dword [ebp + 0x18]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0xc], ebx
mov ecx, dword [esp + 0x30]
mov dword [esp + 4], edx
mov dword [esp + 0x10], eax
mov dword [esp + 8], ecx
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.004ebbc0
mov edx, eax
test eax, eax
jne 0x4f0535
mov eax, dword [esp + 0x38]
mov ecx, dword [ebp + 0xc]
sub eax, esi
sub eax, ebx
lea eax, [ecx + eax - 2]
xor byte [eax], 1
mov dword [esp + 0x30], eax
test esi, esi
jle 0x4f0710
add eax, 1
mov dword [esp + 0x2c], eax
lea eax, [esi - 1]
mov dword [esp + 0x24], eax
cmp eax, 2
jbe 0x4f06e8
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
sub eax, ebx
mov ebx, dword [ebp + 0xc]
sub eax, esi
sub eax, 1
add ebx, eax
mov dword [esp + 0x28], eax
lea eax, [ecx + 1]
mov ecx, ebx
sub ecx, eax
cmp ecx, 0xe
ja 0x4f0826
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x3c]
lea edx, [ecx + esi + 1]
mov ecx, dword [esp + 0x2c]
lea esi, cs:[esi]
add ecx, 1
movzx ebx, byte [eax]
add eax, 1
xor byte [ecx - 1], bl
cmp ecx, edx
jne 0x4f0700
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4f072f
mov eax, dword [esp + 0x34]
mov ecx, 8
sub ecx, eax
mov eax, 0xff
sar eax, cl
mov ecx, dword [ebp + 0xc]
and byte [ecx], al
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x38]
mov byte [eax + ecx - 1], 0xbc
mov eax, 1
jmp 0x4f0589
xor edi, edi
xor eax, eax
jmp 0x4f0589
mov dword [esp + 0x3c], 0
jmp 0x4f0509
lea esi, [eax - 2]
jmp 0x4f04ba
mov esi, eax
jmp 0x4f0451
call fcn.0049b030
mov dword [esp + 8], str.RSA_padding_add_PKCS1_PSS_mgf1
mov dword [esp + 4], 0xb6
mov dword [esp], str..._crypto_rsa_rsa_pss.c
call fcn.0049b150
mov dword [esp + 8], 0
mov dword [esp + 4], 0x88
jmp 0x4f0571
call fcn.0049b030
mov dword [esp + 8], str.RSA_padding_add_PKCS1_PSS_mgf1
mov dword [esp + 4], 0xc7
jmp 0x4f0555
call fcn.0049b030
mov dword [esp + 8], str.RSA_padding_add_PKCS1_PSS_mgf1
xor edi, edi
mov dword [esp + 4], 0xcd
mov dword [esp], str..._crypto_rsa_rsa_pss.c
call fcn.0049b150
mov dword [esp + 8], 0
mov dword [esp + 4], 0xc0100
mov dword [esp], 4
call fcn.0049b230
xor eax, eax
jmp 0x4f0589
cmp dword [esp + 0x24], 0xe
jbe 0x4f0927
mov eax, ebx
mov ebx, esi
mov edx, dword [esp + 0x3c]
and ebx, 0xfffffff0
lea ecx, [eax + ebx]
nop
movdqu xmm0, xmmword [eax]
movdqu xmm1, xmmword [edx]
add eax, 0x10
add edx, 0x10
pxor xmm0, xmm1
movups xmmword [eax - 0x10], xmm0
cmp ecx, eax
jne 0x4f0840
add dword [esp + 0x2c], ebx
mov edx, ebx
cmp esi, ebx
je 0x4f0710
mov eax, esi
sub eax, ebx
mov dword [esp + 0x30], eax
sub eax, 1
cmp eax, 2
jbe 0x4f08ee
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x28]
shr ecx, 2
add eax, ebx
add eax, dword [ebp + 0xc]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x3c]
movd xmm2, dword [eax]
add ebx, ecx
mov ecx, dword [esp + 0x24]
movd xmm0, dword [ebx]
pxor xmm2, xmm0
movd dword [eax], xmm2
cmp ecx, 1
je 0x4f08d6
movd xmm0, dword [ebx + 4]
movd xmm3, dword [eax + 4]
pxor xmm3, xmm0
movd dword [eax + 4], xmm3
cmp ecx, 2
je 0x4f08d6
movd xmm0, dword [ebx + 8]
movd xmm4, dword [eax + 8]
pxor xmm4, xmm0
movd dword [eax + 8], xmm4
mov ecx, dword [esp + 0x30]
mov eax, ecx
and eax, 0xfffffffc
add dword [esp + 0x2c], eax
add edx, eax
and ecx, 3
je 0x4f0710
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x2c]
movzx eax, byte [ecx + edx]
xor byte [ebx], al
lea eax, [edx + 1]
cmp esi, eax
jle 0x4f0710
movzx eax, byte [ecx + edx + 1]
xor byte [ebx + 1], al
lea eax, [edx + 2]
cmp esi, eax
jle 0x4f0710
movzx eax, byte [ecx + edx + 2]
xor byte [ebx + 2], al
jmp 0x4f0710
mov dword [esp + 0x30], esi
xor ebx, ebx
jmp 0x4f0878