Function at 0x513b10
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0xbc
call fcn.0042c540
mov eax, dword [0x5e2008]
xor eax, esp
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xc0]
push ebx
mov ebx, dword [esp + 0xd4]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xcc]
push ebp
mov dword [esp + 0x18], eax
xor ebp, ebp
mov eax, dword [esp + 0xdc]
push esi
mov esi, dword [esp + 0xd8]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], 0xffffffff
mov dword [esp + 0x24], 0
mov dword [esp + 0x18], ebp
push edi
mov edi, dword [esp + 0xf0]
test eax, eax
jne 0x513b94
call fcn.004c5630
mov dword [esp + 0x24], eax
test edi, edi
push eax
cmove edi, eax
mov dword [esp + 0x14], edi
call fcn.004d7b50
mov edi, eax
add esp, 4
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x44], edi
test eax, eax
jle 0x514020
test esi, esi
jle 0x514020
cmp ebx, esi
jl 0x514005
lea eax, [edi*2 + 2]
cmp ebx, eax
jl 0x514005
push 0x9e
sub ebx, edi
dec ebx
push str..crypto_rsa_rsa_oaep.c
push ebx
mov dword [esp + 0x20], ebx
call fcn.004be4b0
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
jne 0x513c1c
push 0xa0
push str..crypto_rsa_rsa_oaep.c
push 0x41
push 0xa1
push 4
call fcn.004cbeb0
add esp, 0x14
jmp 0x513fc5
push 0xa4
push str..crypto_rsa_rsa_oaep.c
push dword [esp + 0x34]
call fcn.004be4b0
add esp, 0xc
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x513c41
push 0xa7
jmp 0x513c01
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
add edx, esi
add ebp, eax
mov dword [esp + 0x1c], ebp
test eax, eax
jle 0x513c8e
mov ebx, eax
nop dword [eax + eax]
mov eax, esi
lea ecx, [esi - 1]
not eax
shr ecx, 0x1f
shr eax, 0x1f
dec ebp
and ecx, eax
dec ecx
mov eax, ecx
and eax, 1
sub edx, eax
sub esi, eax
mov al, byte [edx]
and al, cl
mov byte [ebp], al
sub ebx, 1
jne 0x513c60
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x1c], ebp
movzx eax, byte [ebp]
push dword [esp + 0x10]
push ebx
lea ebp, [eax - 1]
not eax
shr eax, 0x1f
shr ebp, 0x1f
and ebp, eax
mov eax, dword [esp + 0x24]
neg ebp
lea esi, [eax + 1]
inc eax
add eax, edi
push eax
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x54]
push edi
push eax
call fcn.005135c0
add esp, 0x14
test eax, eax
jne 0x513fc5
xor edx, edx
test edi, edi
jle 0x513d60
cmp edi, 0x20
jb 0x513d44
lea eax, [esi - 1]
lea ebx, [esp + 0x48]
add eax, edi
cmp ebx, eax
lea ecx, [esp + edi + 0x47]
mov ebx, dword [esp + 0x14]
ja 0x513cf3
cmp ecx, esi
jae 0x513d44
mov eax, edi
and eax, 0x8000001f
jns 0x513d01
dec eax
or eax, 0xffffffe0
inc eax
mov ecx, edi
mov ebx, esi
sub ecx, eax
lea eax, [esp + 0x48]
sub ebx, eax
nop dword [eax]
movups xmm0, xmmword [esp + edx + 0x48]
lea eax, [ebx + edx]
movups xmm1, xmmword [esp + eax + 0x48]
pxor xmm1, xmm0
movups xmmword [esp + edx + 0x48], xmm1
movups xmm1, xmmword [esi + edx + 0x10]
movups xmm0, xmmword [esp + edx + 0x58]
pxor xmm1, xmm0
movups xmmword [esp + edx + 0x58], xmm1
add edx, 0x20
cmp edx, ecx
jl 0x513d10
mov ebx, dword [esp + 0x14]
cmp edx, edi
jge 0x513d60
lea eax, [esp + 0x48]
sub esi, eax
nop
lea ecx, [esp + 0x48]
add ecx, edx
inc edx
mov al, byte [ecx + esi]
xor byte [ecx], al
cmp edx, edi
jl 0x513d50
push dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
lea eax, [esp + 0x4c]
push edi
push eax
push ebx
push esi
call fcn.005135c0
add esp, 0x14
test eax, eax
jne 0x513fc5
xor edx, edx
test ebx, ebx
jle 0x513e3b
cmp ebx, 0x20
jb 0x513e12
mov ecx, dword [esp + 0x20]
lea eax, [ecx - 1]
add eax, ebx
cmp esi, eax
ja 0x513da9
lea eax, [esi - 1]
add eax, ebx
cmp eax, ecx
jae 0x513e12
mov eax, ebx
and eax, 0x8000001f
jns 0x513db7
dec eax
or eax, 0xffffffe0
inc eax
mov dword [esp + 0x10], ebx
mov ebx, ecx
sub dword [esp + 0x10], eax
sub ebx, esi
add ecx, 0x10
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x14]
mov eax, esi
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x40]
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 [edi + edx]
add edx, 0x20
movups xmm0, xmmword [eax - 0x10]
pxor xmm1, xmm0
movups xmmword [eax - 0x10], xmm1
cmp edx, ecx
jl 0x513de0
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0x18]
cmp edx, ebx
jge 0x513e3b
sub dword [esp + 0x20], esi
lea ecx, [edx + esi]
mov esi, ebx
mov ebx, dword [esp + 0x20]
sub esi, edx
mov al, byte [ecx + ebx]
lea ecx, [ecx + 1]
xor byte [ecx - 1], al
sub esi, 1
jne 0x513e25
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
push 0
push dword [esp + 0x28]
lea eax, [esp + 0x90]
push 0
push eax
push dword [esp + 0xf8]
push dword [esp + 0x48]
call fcn.004c4f50
add esp, 0x18
test eax, eax
je 0x513fc5
push edi
lea eax, [esp + 0x8c]
push eax
push esi
call fcn.004d37b0
add esp, 0xc
lea ecx, [eax - 1]
not eax
shr ecx, 0x1f
shr eax, 0x1f
and ecx, eax
neg ecx
and ebp, ecx
xor ecx, ecx
mov dword [esp + 0x10], ecx
cmp edi, ebx
jge 0x513ee5
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 [esp + 0x28]
or eax, ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x28], eax
or ecx, edx
lea eax, [esi - 1]
mov dword [esp + 0x10], ecx
shr eax, 0x1f
not esi
shr esi, 0x1f
and eax, esi
mov esi, dword [esp + 0x18]
neg eax
or eax, ecx
and ebp, eax
cmp edi, ebx
jl 0x513e93
mov edi, dword [esp + 0xd4]
mov eax, ebx
mov edx, dword [esp + 0x28]
mov ecx, edi
inc edx
sub eax, edx
sub ecx, eax
xor ecx, eax
xor eax, edi
or ecx, eax
mov eax, ebx
xor ecx, edi
xor eax, edi
shr ecx, 0x1f
dec ecx
and ecx, dword [esp + 0x10]
and ebp, ecx
mov ecx, ebx
sub ecx, edi
mov dword [esp + 0x34], ebp
xor ecx, edi
mov dword [esp + 0x24], ebp
or ecx, eax
and edx, ebp
xor ecx, ebx
mov eax, ebp
shr ecx, 0x1f
not eax
neg ecx
mov edi, ecx
and ecx, ebx
not edi
and edi, dword [esp + 0xd4]
or edi, ecx
mov ecx, ebx
sub ecx, edi
and ecx, eax
mov eax, ebx
or ecx, edx
xor edx, edx
sub eax, ecx
add esi, ecx
mov dword [esp + 0x30], eax
test edi, edi
jle 0x513f9f
mov ebp, eax
mov eax, edx
xor eax, ebp
lea ecx, [eax - 1]
not eax
shr eax, 0x1f
shr ecx, 0x1f
and ecx, eax
neg ecx
mov eax, ecx
and eax, ebx
mov ebx, dword [esp + 0x38]
sub esi, eax
mov eax, dword [esp + 0x24]
xor ecx, eax
and eax, ecx
movzx ecx, al
mov dword [esp + 0x24], eax
mov al, byte [esi + edx]
and al, cl
not cl
and cl, byte [ebx + edx]
or al, cl
mov ecx, ebx
mov ebx, dword [esp + 0x14]
mov byte [ecx + edx], al
inc edx
cmp edx, edi
jl 0x513f55
mov ebp, dword [esp + 0x34]
push 0x108
push str..crypto_rsa_rsa_oaep.c
push 0x79
push 0xa1
push 4
call fcn.004cbeb0
mov eax, ebp
and eax, 1
push eax
call fcn.004cc270
add esp, 0x18
lea eax, [esp + 0x48]
push 0x40
push eax
call fcn.00401360
mov esi, dword [esp + 0x20]
push ebx
push esi
call fcn.00401360
push esi
call fcn.004be3e0
push dword [esp + 0x40]
mov esi, dword [esp + 0x34]
push esi
call fcn.00401360
push esi
call fcn.004be3e0
mov eax, ebp
add esp, 0x20
and eax, dword [esp + 0x30]
not ebp
or eax, ebp
jmp 0x514023
push 0x99
push str..crypto_rsa_rsa_oaep.c
push 0x79
push 0xa1
push 4
call fcn.004cbeb0
add esp, 0x14
or eax, 0xffffffff
mov ecx, dword [esp + 0xc8]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0042c42d
add esp, 0xbc
ret