Function at 0x560ab0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xcc
mov esi, dword [esp + 0xf0]
mov edi, dword [esp + 0xe4]
test edi, edi
jle 0x560f50
mov ebx, dword [esp + 0xec]
test ebx, ebx
jle 0x560f50
cmp dword [esp + 0xec], esi
jg 0x560aed
cmp esi, 0x29
jg 0x560b60
xor ebx, ebx
xor ebp, ebp
mov dword [esp + 0x10], 0xcb
mov dword [esp + 0xc], str.rsa_oaep.c
mov dword [esp + 8], 0x79
mov dword [esp + 4], 0x7a
mov dword [esp], 4
call fcn.004b26a0
mov eax, 0xffffffff
test ebp, ebp
je 0x560b36
mov dword [esp], ebp
mov dword [esp + 0x2c], eax
call fcn.004b8a80
mov eax, dword [esp + 0x2c]
test ebx, ebx
je 0x560b4a
mov dword [esp], ebx
mov dword [esp + 0x2c], eax
call fcn.004b8a80
mov eax, dword [esp + 0x2c]
add esp, 0xcc
pop ebx
pop esi
pop edi
pop ebp
ret
lea edx, [esi - 0x15]
mov dword [esp + 0x34], edx
mov dword [esp + 8], 0x79
mov dword [esp + 4], str.rsa_oaep.c
mov dword [esp], edx
call fcn.004b8590
mov ebp, eax
mov dword [esp + 8], 0x7a
mov dword [esp + 4], str.rsa_oaep.c
mov dword [esp], esi
call fcn.004b8590
mov ebx, eax
test ebp, ebp
je 0x560e70
test eax, eax
je 0x560e70
mov edx, esi
mov edi, eax
cmp esi, 4
jae 0x560ed0
test dl, 2
je 0x560bc5
mov word [edi], 0
add edi, 2
and edx, 1
je 0x560bcd
mov byte [edi], 0
sub esi, dword [esp + 0xec]
mov eax, dword [esp + 0xec]
lea edi, [ebx + esi]
mov esi, dword [esp + 0xe8]
cmp eax, 4
jae 0x560eb0
xor edx, edx
test al, 2
je 0x560bff
mov dx, word [esi]
mov word [edi], dx
mov edx, 2
test al, 1
je 0x560c09
mov al, byte [esi + edx]
mov byte [edi + edx], al
mov dl, byte [ebx]
mov byte [esp + 0x38], dl
lea edi, [ebx + 0x15]
call fcn.004c8ab0
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x34]
mov dword [esp + 0xc], edx
mov dword [esp + 8], edi
mov dword [esp + 4], 0x14
lea esi, [esp + 0x40]
mov dword [esp], esi
call fcn.00560510
test eax, eax
jne 0x560e60
lea ecx, [ebx + 1]
lea eax, [ebx + 5]
cmp esi, eax
setae dl
lea eax, [esp + 0x44]
cmp ecx, eax
setae al
or dl, al
je 0x560ef0
and ecx, 3
jne 0x560ef0
mov eax, dword [ebx + 1]
xor dword [esp + 0x40], eax
mov eax, dword [ebx + 5]
xor dword [esp + 0x44], eax
mov eax, dword [ebx + 9]
xor dword [esp + 0x48], eax
mov eax, dword [ebx + 0xd]
xor dword [esp + 0x4c], eax
mov eax, dword [ebx + 0x11]
xor dword [esp + 0x50], eax
call fcn.004c8ab0
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0x14
mov dword [esp + 8], esi
mov edx, dword [esp + 0x34]
mov dword [esp + 4], edx
mov dword [esp], ebp
call fcn.00560510
test eax, eax
jne 0x560e60
mov eax, dword [esp + 0x34]
shr eax, 2
lea esi, [eax*4]
lea edx, [ebx + 0x19]
cmp ebp, edx
setae cl
lea edx, [ebp + 4]
cmp edi, edx
setae dl
or ecx, edx
or edi, ebp
and edi, 3
sete dl
test cl, dl
je 0x560fc7
test esi, esi
je 0x560fc7
xor edx, edx
lea esi, [esi]
lea edi, [edi]
mov ecx, dword [ebp + edx*4]
xor ecx, dword [ebx + edx*4 + 0x15]
mov dword [ebp + edx*4], ecx
inc edx
cmp eax, edx
ja 0x560d00
cmp esi, dword [esp + 0x34]
je 0x560d2d
mov eax, dword [esp + 0x34]
nop
lea esi, [esi]
mov dl, byte [ebx + esi + 0x15]
xor byte [ebp + esi], dl
inc esi
cmp eax, esi
jg 0x560d20
mov dl, byte [esp + 0x38]
and edx, 0xff
mov esi, edx
call fcn.004c8ab0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
lea edi, [esp + 0x80]
mov dword [esp + 8], edi
mov eax, dword [esp + 0xf8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xf4]
mov dword [esp], eax
call fcn.004d1fc0
mov dword [esp + 8], 0x14
mov dword [esp + 4], edi
mov dword [esp], ebp
call fcn.004d33c0
lea edx, [eax - 1]
not eax
and edx, eax
lea eax, [esi - 1]
not esi
and eax, esi
and eax, edx
cdq
mov dword [esp + 0x30], edx
xor edi, edi
xor esi, esi
mov eax, 0x14
mov dword [esp + 0x3c], ebx
lea esi, [esi]
mov dl, byte [ebp + eax]
mov cl, dl
xor ecx, 1
and ecx, 0xff
lea ebx, [ecx - 1]
not ecx
and ebx, ecx
sar ebx, 0x1f
mov dword [esp + 0x28], ebx
xor ecx, ecx
mov cl, dl
mov edx, edi
not edx
and edx, ebx
mov ebx, edx
not ebx
and esi, ebx
and edx, eax
or esi, edx
or edi, dword [esp + 0x28]
lea ebx, [ecx - 1]
not ecx
and ebx, ecx
sar ebx, 0x1f
or ebx, edi
and dword [esp + 0x30], ebx
inc eax
cmp dword [esp + 0x34], eax
jne 0x560db0
mov ebx, dword [esp + 0x3c]
test dword [esp + 0x30], edi
je 0x560af1
lea ecx, [esi + 1]
mov eax, dword [esp + 0x34]
sub eax, ecx
cmp dword [esp + 0xe4], eax
jge 0x560f5a
mov dword [esp + 0x10], 0xbf
mov dword [esp + 0xc], str.rsa_oaep.c
mov dword [esp + 8], 0x6d
mov dword [esp + 4], 0x7a
mov dword [esp], 4
call fcn.004b26a0
jmp 0x560af1
mov eax, 0xffffffff
jmp 0x560b26
mov dword [esp + 0x10], 0x7d
mov dword [esp + 0xc], str.rsa_oaep.c
mov dword [esp + 8], 0x41
mov dword [esp + 4], 0x7a
mov dword [esp], 4
call fcn.004b26a0
jmp 0x560b1d
test edi, 1
jne 0x560f3b
test edi, 2
jne 0x560f2a
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
jmp 0x560bee
test al, 1
jne 0x560f1f
test edi, 2
jne 0x560f12
mov ecx, edx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
jmp 0x560bb8
xor eax, eax
lea esi, [esi]
lea edi, [edi]
mov dl, byte [ebx + eax + 1]
xor byte [esi + eax], dl
inc eax
cmp eax, 0x14
jne 0x560f00
jmp 0x560c8b
mov word [edi], 0
add edi, 2
sub edx, 2
jmp 0x560edc
mov byte [eax], 0
lea edi, [eax + 1]
lea edx, [esi - 1]
jmp 0x560ed4
mov dx, word [esi]
mov word [edi], dx
add edi, 2
add esi, 2
sub eax, 2
jmp 0x560ec4
mov dl, byte [esi]
mov byte [edi], dl
inc edi
inc esi
dec eax
jmp 0x560ebc
mov eax, 0xffffffff
jmp 0x560b4a
mov edx, eax
mov edi, dword [esp + 0xe0]
lea esi, [ebp + ecx]
cmp eax, 4
jae 0x560f92
xor ecx, ecx
test dl, 2
je 0x560f7e
mov cx, word [esi]
mov word [edi], cx
mov ecx, 2
and edx, 1
je 0x560b26
mov dl, byte [esi + ecx]
mov byte [edi + ecx], dl
jmp 0x560b26
test edi, 1
jne 0x560fab
test edi, 2
jne 0x560fb6
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
jmp 0x560f6c
mov dl, byte [esi]
mov byte [edi], dl
inc edi
inc esi
lea edx, [eax - 1]
jmp 0x560f9a
mov cx, word [esi]
mov word [edi], cx
add edi, 2
add esi, 2
sub edx, 2
jmp 0x560fa2
xor esi, esi
mov eax, dword [esp + 0x34]
jmp 0x560d20