Function at 0x4c0930
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x50
push ebx
mov ebx, dword [ebp + 0x20]
push esi
push edi
mov edi, dword [ebp + 0xc]
dec edi
test ebx, ebx
jne 0x4c094b
call fcn.00489820
mov ebx, eax
mov eax, dword [ebp + 0x24]
test eax, eax
push ebx
cmove eax, ebx
mov dword [ebp + 0x24], eax
call fcn.0048f950
mov esi, eax
mov ecx, edi
add esp, 4
mov dword [ebp - 8], esi
lea eax, [esi + esi]
sub ecx, eax
mov dword [ebp - 4], ecx
dec ecx
cmp dword [ebp + 0x14], ecx
jle 0x4c0995
push 0x3c
push str.........prog3rdPartyLibsopenssl_1.1crypto_rsa_rsa_oaep.c
push 0x6e
push 0x9a
push 4
call fcn.00473d60
add esp, 0x14
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
inc eax
cmp edi, eax
jge 0x4c09bb
push 0x42
push str.........prog3rdPartyLibsopenssl_1.1crypto_rsa_rsa_oaep.c
push 0x78
push 0x9a
push 4
call fcn.00473d60
add esp, 0x14
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 8]
push 0
push ebx
push 0
lea ecx, [eax + 1]
mov byte [eax], 0
inc eax
mov dword [ebp + 0x20], ecx
add eax, esi
push eax
push dword [ebp + 0x1c]
mov dword [ebp + 0xc], eax
push dword [ebp + 0x18]
call fcn.00488fb0
add esp, 0x18
test eax, eax
je 0x4c0c0d
mov eax, dword [ebp - 4]
sub eax, dword [ebp + 0x14]
mov ebx, dword [ebp + 0xc]
dec eax
push eax
push 0
lea eax, [ebx + esi]
push eax
call fcn.00584f50
mov ecx, dword [ebp + 0x14]
mov eax, ebx
sub eax, esi
sub eax, ecx
push ecx
push dword [ebp + 0x10]
add eax, edi
push eax
mov byte [eax - 1], 1
call fcn.005849d0
push esi
push dword [ebp + 0x20]
call fcn.00471700
add esp, 0x20
test eax, eax
jle 0x4c0c0d
push 0x57
sub edi, esi
push str.........prog3rdPartyLibsopenssl_1.1crypto_rsa_rsa_oaep.c
push edi
call fcn.00460080
mov ebx, eax
add esp, 0xc
mov dword [ebp - 4], ebx
test ebx, ebx
jne 0x4c0a68
push 0x59
push str.........prog3rdPartyLibsopenssl_1.1crypto_rsa_rsa_oaep.c
push 0x41
push 0x9a
push 4
call fcn.00473d60
add esp, 0x14
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [ebp + 0x24]
push esi
push dword [ebp + 0x20]
push edi
push ebx
call fcn.004c07e0
add esp, 0x14
test eax, eax
js 0x4c0bfd
xor edx, edx
test edi, edi
jle 0x4c0b25
mov ecx, dword [ebp + 0xc]
cmp edi, 0x20
jb 0x4c0b02
lea eax, [ebx - 1]
add eax, edi
cmp ecx, eax
ja 0x4c0aa5
lea eax, [ecx - 1]
add eax, edi
cmp eax, ebx
jae 0x4c0b02
mov eax, edi
and eax, 0x8000001f
jns 0x4c0ab3
dec eax
or eax, 0xffffffe0
inc eax
mov dword [ebp + 0x14], edi
mov esi, ebx
sub dword [ebp + 0x14], eax
sub esi, ecx
mov dword [ebp - 0xc], esi
mov eax, ecx
lea esi, [ebx + 0x10]
mov ebx, dword [ebp - 0xc]
mov dword [ebp - 0x10], esi
mov esi, dword [ebp - 8]
mov ecx, dword [ebp - 0x10]
movups xmm0, xmmword [eax]
lea eax, [eax + 0x20]
movups xmm1, xmmword [ebx + eax - 0x20]
pxor xmm1, xmm0
movups xmmword [eax - 0x20], xmm1
movups xmm1, xmmword [ecx + edx]
add edx, 0x20
movups xmm0, xmmword [eax - 0x10]
pxor xmm1, xmm0
movups xmmword [eax - 0x10], xmm1
cmp edx, dword [ebp + 0x14]
jl 0x4c0ad1
mov ebx, dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
cmp edx, edi
jge 0x4c0b25
mov esi, ebx
add ecx, edx
sub esi, dword [ebp + 0xc]
mov ebx, edi
sub ebx, edx
mov al, byte [ecx + esi]
lea ecx, [ecx + 1]
xor byte [ecx - 1], al
sub ebx, 1
jne 0x4c0b11
mov esi, dword [ebp - 8]
mov ebx, dword [ebp - 4]
push dword [ebp + 0x24]
lea eax, [ebp - 0x50]
push edi
push dword [ebp + 0xc]
push esi
push eax
call fcn.004c07e0
add esp, 0x14
test eax, eax
js 0x4c0bfd
xor edx, edx
test esi, esi
jle 0x4c0be1
mov ecx, dword [ebp + 0x20]
cmp esi, 0x20
jb 0x4c0bc5
lea edi, [ecx - 1]
lea eax, [ebp + esi - 0x51]
add edi, esi
cmp ecx, eax
ja 0x4c0b67
lea eax, [ebp - 0x50]
cmp edi, eax
jae 0x4c0bc5
mov eax, esi
and eax, 0x8000001f
jns 0x4c0b75
dec eax
or eax, 0xffffffe0
inc eax
lea ebx, [ebp - 0x50]
mov edi, esi
sub ebx, ecx
sub edi, eax
mov dword [ebp + 0x24], ebx
mov eax, ecx
mov esi, dword [ebp + 0x24]
lea ebx, [ebp - 0x40]
sub ebx, ecx
mov dword [ebp + 0x14], ebx
mov ebx, dword [ebp - 4]
mov ecx, dword [ebp + 0x14]
movups xmm0, xmmword [eax]
add edx, 0x20
lea eax, [eax + 0x20]
movups xmm1, xmmword [esi + eax - 0x20]
pxor xmm1, xmm0
movups xmmword [eax - 0x20], xmm1
movups xmm0, xmmword [eax - 0x10]
movups xmm1, xmmword [ecx + eax - 0x20]
pxor xmm1, xmm0
movups xmmword [eax - 0x10], xmm1
cmp edx, edi
jl 0x4c0b94
mov esi, dword [ebp - 8]
mov ecx, dword [ebp + 0x20]
cmp edx, esi
jge 0x4c0be1
lea edi, [ebp - 0x50]
add ecx, edx
sub edi, dword [ebp + 0x20]
sub esi, edx
mov al, byte [ecx + edi]
lea ecx, [ecx + 1]
xor byte [ecx - 1], al
sub esi, 1
jne 0x4c0bd3
push 0x67
push str.........prog3rdPartyLibsopenssl_1.1crypto_rsa_rsa_oaep.c
push ebx
call fcn.00460020
add esp, 0xc
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x6b
push str.........prog3rdPartyLibsopenssl_1.1crypto_rsa_rsa_oaep.c
push ebx
call fcn.00460020
add esp, 0xc
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret