Function at 0x560300
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov ebx, dword [esp + 0x70]
mov esi, dword [esp + 0x74]
dec esi
mov eax, dword [esp + 0x74]
sub eax, 0x29
cmp eax, dword [esp + 0x7c]
jle 0x5605d0
cmp esi, 0x28
jle 0x560550
mov byte [ebx], 0
lea edx, [ebx + 1]
mov dword [esp + 0x2c], edx
lea ebp, [ebx + 0x15]
call fcn.004c86b0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], ebp
mov eax, dword [esp + 0x84]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.004d1bc0
mov edx, esi
sub edx, dword [esp + 0x7c]
mov dword [esp + 0x28], edx
sub edx, 0x29
lea edi, [ebx + 0x29]
cmp edx, 4
jae 0x560630
test dl, 2
je 0x560394
mov word [edi], 0
add edi, 2
and edx, 1
je 0x56039c
mov byte [edi], 0
mov edx, dword [esp + 0x28]
mov byte [ebp + edx - 0x15], 1
sub esi, 0x14
sub esi, dword [esp + 0x7c]
mov eax, dword [esp + 0x7c]
lea edi, [ebp + esi]
mov esi, dword [esp + 0x78]
cmp eax, 4
jae 0x560610
xor edx, edx
test al, 2
je 0x5603d2
mov dx, word [esi]
mov word [edi], dx
mov edx, 2
test al, 1
je 0x5603dc
mov al, byte [esi + edx]
mov byte [edi + edx], al
mov dword [esp + 4], 0x14
mov edx, dword [esp + 0x2c]
mov dword [esp], edx
call fcn.004bf010
test eax, eax
jle 0x5605c0
mov edi, dword [esp + 0x74]
sub edi, 0x15
mov dword [esp + 8], 0x49
mov dword [esp + 4], str.rsa_oaep.c
mov dword [esp], edi
call fcn.004b8170
mov esi, eax
test eax, eax
je 0x560590
call fcn.004c86b0
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0x14
mov edx, dword [esp + 0x2c]
mov dword [esp + 8], edx
mov dword [esp + 4], edi
mov dword [esp], esi
call fcn.00560110
test eax, eax
js 0x5605c0
test edi, edi
jle 0x5604cc
mov edx, edi
shr edx, 2
lea eax, [edx*4]
mov dword [esp + 0x24], eax
lea eax, [esi + 4]
cmp ebp, eax
setae cl
lea eax, [ebx + 0x19]
cmp esi, eax
setae al
or ecx, eax
cmp edi, 6
seta al
and ecx, eax
mov eax, ebp
or eax, esi
test al, 3
sete al
test cl, al
mov eax, 0
je 0x5604c0
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x5604c0
lea esi, [esi]
lea edi, [edi]
mov ecx, dword [esi + eax*4]
xor dword [ebx + eax*4 + 0x15], ecx
inc eax
cmp edx, eax
ja 0x5604a0
mov eax, dword [esp + 0x24]
cmp edi, eax
je 0x5604cc
lea esi, [esi]
lea edi, [edi]
mov dl, byte [esi + eax]
xor byte [ebx + eax + 0x15], dl
inc eax
cmp edi, eax
jg 0x5604c0
call fcn.004c86b0
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edi
mov dword [esp + 8], ebp
mov dword [esp + 4], 0x14
lea edi, [esp + 0x3c]
mov dword [esp], edi
call fcn.00560110
test eax, eax
js 0x5605c0
test byte [esp + 0x2c], 3
jne 0x560650
mov eax, dword [ebx + 1]
xor eax, dword [esp + 0x3c]
mov dword [ebx + 1], eax
mov eax, dword [ebx + 5]
xor eax, dword [esp + 0x40]
mov dword [ebx + 5], eax
mov eax, dword [ebx + 9]
xor eax, dword [esp + 0x44]
mov dword [ebx + 9], eax
mov eax, dword [ebx + 0xd]
xor eax, dword [esp + 0x48]
mov dword [ebx + 0xd], eax
mov eax, dword [ebx + 0x11]
xor eax, dword [esp + 0x4c]
mov dword [ebx + 0x11], eax
mov dword [esp], esi
call fcn.004b8660
mov eax, 1
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x10], 0x34
mov dword [esp + 0xc], str.rsa_oaep.c
mov dword [esp + 8], 0x78
mov dword [esp + 4], 0x79
mov dword [esp], 4
call fcn.004b2280
xor eax, eax
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x10], 0x4c
mov dword [esp + 0xc], str.rsa_oaep.c
mov dword [esp + 8], 0x41
mov dword [esp + 4], 0x79
mov dword [esp], 4
call fcn.004b2280
lea esi, [esi]
xor eax, eax
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x10], 0x2e
mov dword [esp + 0xc], str.rsa_oaep.c
mov dword [esp + 8], 0x6e
mov dword [esp + 4], 0x79
mov dword [esp], 4
call fcn.004b2280
xor eax, eax
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
test edi, 1
jne 0x5606a0
test edi, 2
jne 0x56068f
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
jmp 0x5603c1
test edi, 1
jne 0x56067f
test edi, 2
jne 0x560672
mov ecx, edx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
jmp 0x560387
xor eax, eax
lea esi, [esi]
lea edi, [edi]
mov dl, byte [edi + eax]
xor byte [ebx + eax + 1], dl
inc eax
cmp eax, 0x14
jne 0x560660
jmp 0x560536
mov word [edi], 0
add edi, 2
sub edx, 2
jmp 0x560640
mov byte [ebx + 0x29], 0
lea edi, [ebx + 0x2a]
mov edx, dword [esp + 0x28]
sub edx, 0x2a
jmp 0x560638
mov dx, word [esi]
mov word [edi], dx
add edi, 2
add esi, 2
sub eax, 2
jmp 0x560624
mov dl, byte [esi]
mov byte [edi], dl
inc edi
inc esi
dec eax
jmp 0x56061c