Function at 0x4c0c50
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa8
mov ecx, dword [ebp + 0x24]
push ebx
push esi
xor ebx, ebx
mov dword [ebp - 0x18], 0xffffffff
xor esi, esi
mov dword [ebp - 0x14], ebx
mov dword [ebp - 8], ebx
push edi
test ecx, ecx
jne 0x4c0c7e
call fcn.00489820
mov ecx, eax
mov dword [ebp + 0x24], ecx
mov eax, dword [ebp + 0x28]
test eax, eax
push ecx
cmove eax, ecx
mov dword [ebp + 0x28], eax
call fcn.0048f950
add esp, 4
mov edi, eax
mov dword [ebp - 0xc], edi
cmp dword [ebp + 0xc], ebx
jle 0x4c1023
mov eax, dword [ebp + 0x14]
test eax, eax
jle 0x4c1023
mov ecx, dword [ebp + 0x18]
cmp ecx, eax
jl 0x4c0fa2
lea eax, [edi*2 + 2]
cmp ecx, eax
jl 0x4c0fa2
mov ebx, ecx
push 0x9d
sub ebx, edi
dec ebx
push str.........prog3rdPartyLibsopenssl_1.1crypto_rsa_rsa_oaep.c
push ebx
mov dword [ebp - 0x28], ebx
call fcn.00460080
mov ecx, dword [ebp + 0x18]
mov esi, eax
push 0x9e
push str.........prog3rdPartyLibsopenssl_1.1crypto_rsa_rsa_oaep.c
push ecx
mov dword [ebp - 4], esi
call fcn.00460080
add esp, 0x18
mov dword [ebp - 8], eax
test esi, esi
je 0x4c1009
test eax, eax
je 0x4c1009
push dword [ebp + 0x18]
push 0
push eax
call fcn.00584f50
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp - 8]
push ecx
push dword [ebp + 0x10]
sub eax, ecx
add eax, dword [ebp + 0x18]
push eax
call fcn.005849d0
mov edx, dword [ebp - 8]
push dword [ebp + 0x28]
push ebx
movzx eax, byte [edx]
lea ecx, [eax - 1]
not eax
shr eax, 0x1f
shr ecx, 0x1f
and ecx, eax
lea eax, [edx + 1]
add eax, edi
neg ecx
push eax
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x68]
push edi
push eax
mov dword [ebp - 0x10], ecx
call fcn.004c07e0
add esp, 0x2c
test eax, eax
jne 0x4c0fc4
xor edx, edx
test edi, edi
jle 0x4c0e05
cmp edi, 0x20
jb 0x4c0de6
mov ecx, dword [ebp - 8]
inc ecx
lea eax, [ecx - 1]
add eax, edi
lea edi, [ebp - 0x68]
cmp edi, eax
mov edi, dword [ebp - 0xc]
ja 0x4c0d8f
lea eax, [ebp + edi - 0x69]
cmp eax, ecx
jae 0x4c0de6
mov eax, edi
and eax, 0x8000001f
jns 0x4c0d9d
dec eax
or eax, 0xffffffe0
inc eax
mov edi, dword [ebp - 0xc]
mov esi, ecx
sub edi, eax
lea eax, [ebp - 0x68]
sub esi, eax
nop dword [eax]
movups xmm0, xmmword [ebp + edx - 0x68]
lea eax, [esi + edx]
movups xmm1, xmmword [ebp + eax - 0x68]
pxor xmm1, xmm0
movups xmmword [ebp + edx - 0x68], xmm1
movups xmm1, xmmword [ecx + edx + 0x10]
movups xmm0, xmmword [ebp + edx - 0x58]
pxor xmm1, xmm0
movups xmmword [ebp + edx - 0x58], xmm1
add edx, 0x20
cmp edx, edi
jl 0x4c0db0
mov edi, dword [ebp - 0xc]
mov esi, dword [ebp - 4]
cmp edx, edi
jge 0x4c0e05
mov esi, dword [ebp - 8]
lea ecx, [ebp - 0x68]
inc esi
sub esi, ecx
lea ecx, [ebp - 0x68]
add ecx, edx
inc edx
mov al, byte [esi + ecx]
xor byte [ecx], al
cmp edx, edi
jl 0x4c0df3
mov esi, dword [ebp - 4]
push dword [ebp + 0x28]
lea eax, [ebp - 0x68]
push edi
push eax
push ebx
push esi
call fcn.004c07e0
add esp, 0x14
test eax, eax
jne 0x4c0fc4
xor edx, edx
test ebx, ebx
jle 0x4c0ec6
cmp ebx, 0x20
jb 0x4c0ea2
mov ecx, dword [ebp - 0x20]
lea eax, [ecx - 1]
add eax, ebx
cmp esi, eax
ja 0x4c0e43
lea eax, [esi - 1]
add eax, ebx
cmp eax, ecx
jae 0x4c0ea2
mov eax, ebx
and eax, 0x8000001f
jns 0x4c0e51
dec eax
or eax, 0xffffffe0
inc eax
mov edi, ecx
mov dword [ebp + 0x28], ebx
sub dword [ebp + 0x28], eax
sub edi, esi
add ecx, 0x10
mov dword [ebp - 0x1c], edi
mov edi, dword [ebp - 0xc]
mov eax, esi
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp + 0x28]
mov ebx, dword [ebp - 0x24]
movups xmm0, xmmword [eax]
lea eax, [eax + 0x20]
movups xmm1, xmmword [esi + eax - 0x20]
pxor xmm1, xmm0
movups xmmword [eax - 0x20], xmm1
movups xmm1, xmmword [ebx + edx]
add edx, 0x20
movups xmm0, xmmword [eax - 0x10]
pxor xmm1, xmm0
movups xmmword [eax - 0x10], xmm1
cmp edx, ecx
jl 0x4c0e72
mov ebx, dword [ebp - 0x28]
mov esi, dword [ebp - 4]
cmp edx, ebx
jge 0x4c0ec6
mov edi, dword [ebp - 0x20]
lea ecx, [edx + esi]
sub edi, esi
mov esi, ebx
sub esi, edx
mov al, byte [edi + ecx]
lea ecx, [ecx + 1]
xor byte [ecx - 1], al
sub esi, 1
jne 0x4c0eb2
mov edi, dword [ebp - 0xc]
mov esi, dword [ebp - 4]
push 0
push dword [ebp + 0x24]
lea eax, [ebp - 0xa8]
push 0
push eax
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
call fcn.00488fb0
add esp, 0x18
test eax, eax
je 0x4c0fc4
push edi
lea eax, [ebp - 0xa8]
push eax
push esi
call fcn.004013d0
mov edx, dword [ebp - 0x10]
add esp, 0xc
lea ecx, [eax - 1]
not eax
shr ecx, 0x1f
shr eax, 0x1f
and ecx, eax
neg ecx
and edx, ecx
xor ecx, ecx
mov dword [ebp - 0x10], edx
mov dword [ebp + 0x28], ecx
cmp edi, ebx
jge 0x4c0f73
nop dword [eax + eax]
movzx esi, byte [edi + esi]
not ecx
mov eax, esi
xor eax, 1
lea edx, [eax - 1]
not eax
shr eax, 0x1f
shr edx, 0x1f
and edx, eax
neg edx
and ecx, edx
mov eax, ecx
and ecx, edi
not eax
inc edi
and eax, dword [ebp - 0x14]
or eax, ecx
mov ecx, dword [ebp + 0x28]
mov dword [ebp - 0x14], eax
or ecx, edx
mov edx, dword [ebp - 0x10]
lea eax, [esi - 1]
shr eax, 0x1f
not esi
shr esi, 0x1f
and eax, esi
mov dword [ebp + 0x28], ecx
mov esi, dword [ebp - 4]
neg eax
or eax, ecx
and edx, eax
mov dword [ebp - 0x10], edx
cmp edi, ebx
jl 0x4c0f20
test edx, ecx
je 0x4c0fa2
mov ecx, dword [ebp - 0x14]
mov eax, ebx
inc ecx
sub eax, ecx
mov dword [ebp - 0x18], eax
cmp dword [ebp + 0xc], eax
jge 0x4c0ff7
push 0xe3
push str.........prog3rdPartyLibsopenssl_1.1crypto_rsa_rsa_oaep.c
push 0x6d
push 0x99
push 4
call fcn.00473d60
add esp, 0x14
push 0xf0
push str.........prog3rdPartyLibsopenssl_1.1crypto_rsa_rsa_oaep.c
push 0x79
push 0x99
push 4
call fcn.00473d60
mov dword [ebp - 0x18], 0xffffffff
add esp, 0x14
push 0xf2
push str.........prog3rdPartyLibsopenssl_1.1crypto_rsa_rsa_oaep.c
push ebx
push esi
call fcn.0045fec0
push 0xf3
push str.........prog3rdPartyLibsopenssl_1.1crypto_rsa_rsa_oaep.c
push dword [ebp + 0x18]
push dword [ebp - 8]
call fcn.0045fec0
mov eax, dword [ebp - 0x18]
add esp, 0x20
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push eax
lea eax, [ecx + esi]
push eax
push dword [ebp + 8]
call fcn.005849d0
add esp, 0xc
jmp 0x4c0fc4
push 0xa0
push str.........prog3rdPartyLibsopenssl_1.1crypto_rsa_rsa_oaep.c
push 0x41
push 0x99
push 4
call fcn.00473d60
jmp 0x4c0fc1
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret