Function at 0x509e80
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x68
call fcn.00544cc0
mov eax, dword [0x5ca120]
xor eax, esp
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
push ebx
mov ebx, dword [esp + 0x70]
push ebp
mov ebp, dword [esp + 0x78]
push esi
xor esi, esi
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x90]
push edi
mov edi, dword [esp + 0x98]
dec ebp
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x30], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], edi
mov dword [esp + 0x24], esi
mov dword [esp + 0x2c], esi
cmp eax, esi
jne 0x509ee7
call fcn.00450040
mov dword [esp + 0x20], eax
cmp edi, esi
jne 0x509eef
mov dword [esp + 0x14], eax
push eax
call fcn.00461800
mov esi, eax
lea eax, [esi + esi]
mov edi, ebp
sub edi, eax
lea ecx, [edi - 1]
add esp, 4
cmp dword [esp + 0x1c], ecx
jle 0x509f37
push 0x3e
push str.crypto_rsa_rsa_oaep.c
push 0x6e
push 0x9a
push 4
call fcn.00446d70
add esp, 0x14
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x64]
xor ecx, esp
call fcn.005448c8
add esp, 0x68
ret
inc eax
cmp ebp, eax
jge 0x509f47
push 0x44
push str.crypto_rsa_rsa_oaep.c
push 0x78
jmp 0x509f13
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x90]
push 0
push eax
lea edx, [ebx + 1]
mov byte [ebx], 0
push 0
lea ebx, [ebx + esi + 1]
push ebx
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x40]
push ecx
push edx
call fcn.004726f0
add esp, 0x18
test eax, eax
je 0x50a067
sub edi, dword [esp + 0x1c]
lea eax, [ebx + esi]
dec edi
push edi
push 0
push eax
call sub.MSVCR100.dll_memset
mov ecx, dword [esp + 0x28]
mov eax, ebx
sub eax, ecx
push ecx
mov ecx, dword [esp + 0x38]
sub eax, esi
add eax, ebp
push ecx
push eax
mov byte [eax - 1], 1
call sub.MSVCR100.dll_memcpy
mov edx, dword [esp + 0x30]
push esi
push edx
call fcn.00460660
add esp, 0x20
test eax, eax
jle 0x50a067
push 0x55
sub ebp, esi
mov edi, ebp
push str.crypto_rsa_rsa_oaep.c
push edi
call fcn.0044cbe0
mov ebp, eax
add esp, 0xc
mov dword [esp + 0x10], ebp
test ebp, ebp
jne 0x509ff7
push 0x57
push str.crypto_rsa_rsa_oaep.c
push 0x41
push 0x9a
push 4
call fcn.00446d70
add esp, 0x14
jmp 0x50a06d
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
push eax
push esi
push ecx
push edi
push ebp
call fcn.00509d10
add esp, 0x14
test eax, eax
js 0x50a06d
test edi, edi
jle 0x50a02d
mov eax, ebx
sub ebp, ebx
mov ecx, edi
lea ebx, [ebx]
mov dl, byte [eax + ebp]
xor byte [eax], dl
inc eax
dec ecx
jne 0x50a020
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
push eax
push edi
push ebx
lea ecx, [esp + 0x40]
push esi
push ecx
call fcn.00509d10
add esp, 0x14
test eax, eax
js 0x50a06d
test esi, esi
jle 0x50a05d
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x34]
sub ecx, eax
mov dl, byte [ecx + eax]
xor byte [eax], dl
inc eax
dec esi
jne 0x50a054
mov dword [esp + 0x24], 1
jmp 0x50a06d
mov edi, dword [esp + 0x2c]
mov ebp, edi
lea eax, [esp + 0x34]
push 0x40
push eax
call fcn.00484bb0
push 0x68
push str.crypto_rsa_rsa_oaep.c
push edi
push ebp
call fcn.0044ccb0
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x3c]
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.005448c8
add esp, 0x68
ret