Function at 0x10153000
Capabilities:
Encode data using xor
Encrypt data using aes

Disassembly:
mov eax, 0xc
call fcn.101ebae0
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
test ecx, ecx
je 0x101534e6
test edx, edx
je 0x101534e6
push edi
mov edi, dword [esp + 0x18]
cmp edi, 0x80
je 0x10153051
cmp edi, 0xc0
je 0x10153049
cmp edi, 0x100
je 0x10153049
mov eax, 0xfffffffe
pop edi
add esp, 0xc
ret
cmp edi, 0x80
jne 0x1015305d
mov dword [edx + 0xf0], 0xa
jmp 0x10153075
xor eax, eax
cmp edi, 0xc0
setne al
lea eax, [eax*2 + 0xc]
mov dword [edx + 0xf0], eax
push ebx
mov ebx, dword [ecx]
mov eax, ebx
rol ebx, 8
ror eax, 8
xor ebx, eax
and ebx, 0xff00ff
xor ebx, eax
mov dword [edx], ebx
mov dword [esp + 8], ebx
mov ebx, dword [ecx + 4]
mov eax, ebx
rol ebx, 8
ror eax, 8
xor ebx, eax
and ebx, 0xff00ff
xor ebx, eax
push ebp
mov dword [edx + 4], ebx
mov ebp, dword [ecx + 8]
mov eax, ebp
ror eax, 8
rol ebp, 8
xor ebp, eax
mov dword [esp + 0x10], ebx
and ebp, 0xff00ff
xor ebp, eax
mov dword [edx + 8], ebp
mov ebx, dword [ecx + 0xc]
mov eax, ebx
rol ebx, 8
ror eax, 8
xor ebx, eax
and ebx, 0xff00ff
xor ebx, eax
mov dword [esp + 0x14], ebx
mov dword [edx + 0xc], ebx
push esi
lea esi, [edx + 0x10]
cmp edi, 0x80
jne 0x101531e3
mov eax, ebx
mov edi, 0x1025ee0c
shr eax, 0x10
movzx eax, al
mov ecx, dword [eax*4 + 0x1025d508]
mov eax, ebx
shr eax, 8
xor ecx, 0x1000000
movzx eax, al
and ecx, 0xff000000
mov eax, dword [eax*4 + 0x1025d908]
and eax, 0xff0000
xor ecx, eax
mov eax, ebx
shr eax, 0x18
movzx eax, byte [eax*4 + 0x1025d108]
xor ecx, eax
movzx eax, bl
mov eax, dword [eax*4 + 0x1025cd08]
and eax, 0xff00
xor ecx, eax
xor ecx, dword [esp + 0x10]
mov dword [esi], ecx
xor ecx, dword [esp + 0x14]
xor ebp, ecx
mov dword [edx + 0x14], ecx
xor ebx, ebp
mov dword [edx + 0x18], ebp
mov dword [edx + 0x1c], ebx
nop
mov ebx, dword [esi + 0xc]
mov edx, esi
add esi, 0x10
mov eax, ebx
shr eax, 8
movzx eax, al
mov ecx, dword [eax*4 + 0x1025d908]
mov eax, ebx
shr eax, 0x10
and ecx, 0xff0000
movzx eax, al
mov eax, dword [eax*4 + 0x1025d508]
and eax, 0xff000000
xor ecx, eax
mov eax, ebx
shr eax, 0x18
movzx eax, byte [eax*4 + 0x1025d108]
xor ecx, eax
movzx eax, bl
mov eax, dword [eax*4 + 0x1025cd08]
and eax, 0xff00
xor ecx, eax
xor ecx, dword [edi]
add edi, 4
xor ecx, dword [edx]
mov dword [esi], ecx
mov eax, dword [esi - 0xc]
xor eax, ecx
mov dword [esi + 4], eax
mov ecx, dword [esi - 8]
xor ecx, eax
mov dword [esi + 8], ecx
xor ecx, ebx
mov dword [esi + 0xc], ecx
cmp edi, 0x1025ee30
jne 0x10153160
pop esi
pop ebp
pop ebx
xor eax, eax
pop edi
add esp, 0xc
ret
mov ecx, dword [ecx + 0x10]
mov eax, ecx
rol ecx, 8
ror eax, 8
xor ecx, eax
and ecx, 0xff00ff
xor ecx, eax
mov dword [esi], ecx
mov esi, dword [esp + 0x20]
mov ecx, dword [esi + 0x14]
mov eax, ecx
rol ecx, 8
ror eax, 8
xor ecx, eax
and ecx, 0xff00ff
xor ecx, eax
mov dword [esp + 0x20], ecx
mov dword [edx + 0x14], ecx
cmp edi, 0xc0
jne 0x1015333d
mov eax, ecx
mov edi, 0x1025ee0c
shr eax, 0x10
movzx eax, al
mov ecx, dword [eax*4 + 0x1025d508]
mov eax, dword [esp + 0x20]
xor ecx, 0x1000000
shr eax, 8
and ecx, 0xff000000
movzx eax, al
mov eax, dword [eax*4 + 0x1025d908]
and eax, 0xff0000
xor ecx, eax
mov eax, dword [esp + 0x20]
shr eax, 0x18
movzx eax, byte [eax*4 + 0x1025d108]
xor ecx, eax
mov eax, dword [esp + 0x20]
movzx eax, al
mov eax, dword [eax*4 + 0x1025cd08]
and eax, 0xff00
xor ecx, eax
lea eax, [edx + 0x28]
xor ecx, dword [esp + 0x10]
mov dword [edx + 0x18], ecx
xor ecx, dword [esp + 0x14]
xor ebp, ecx
mov dword [edx + 0x1c], ecx
xor ebx, ebp
mov dword [edx + 0x20], ebp
mov dword [edx + 0x24], ebx
nop
mov edx, dword [eax - 0x18]
lea eax, [eax + 0x18]
xor edx, dword [eax - 0x1c]
mov ecx, dword [eax - 0x2c]
xor ecx, edx
mov dword [eax - 0x18], edx
mov dword [eax - 0x14], ecx
mov edx, dword [eax - 0x14]
mov ecx, edx
shr ecx, 8
movzx ecx, cl
mov esi, dword [ecx*4 + 0x1025d908]
mov ecx, edx
shr ecx, 0x10
and esi, 0xff0000
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x1025d508]
and ecx, 0xff000000
xor esi, ecx
mov ecx, edx
shr ecx, 0x18
movzx ecx, byte [ecx*4 + 0x1025d108]
xor esi, ecx
movzx ecx, dl
mov ecx, dword [ecx*4 + 0x1025cd08]
and ecx, 0xff00
xor esi, ecx
xor esi, dword [eax - 0x28]
xor esi, dword [edi]
add edi, 4
mov dword [eax - 0x10], esi
mov ecx, dword [eax - 0x24]
xor ecx, esi
mov dword [eax - 0xc], ecx
mov edx, dword [eax - 0x20]
xor edx, ecx
mov dword [eax - 8], edx
mov ecx, dword [eax - 0x1c]
xor ecx, edx
mov dword [eax - 4], ecx
cmp edi, 0x1025ee28
jne 0x101532a0
pop esi
pop ebp
pop ebx
xor eax, eax
pop edi
add esp, 0xc
ret
mov ecx, dword [esi + 0x18]
mov eax, ecx
ror eax, 8
rol ecx, 8
xor ecx, eax
and ecx, 0xff00ff
xor ecx, eax
mov dword [edx + 0x18], ecx
mov ebx, dword [esi + 0x1c]
mov eax, ebx
rol ebx, 8
ror eax, 8
xor ebx, eax
and ebx, 0xff00ff
xor ebx, eax
mov dword [edx + 0x1c], ebx
cmp edi, 0x100
jne 0x101534dc
mov eax, ebx
lea esi, [edx + 0x30]
shr eax, 0x10
mov edi, 0x1025ee0c
movzx eax, al
mov ecx, dword [eax*4 + 0x1025d508]
mov eax, ebx
shr eax, 8
xor ecx, 0x1000000
movzx eax, al
and ecx, 0xff000000
mov eax, dword [eax*4 + 0x1025d908]
and eax, 0xff0000
xor ecx, eax
mov eax, ebx
shr eax, 0x18
movzx eax, byte [eax*4 + 0x1025d108]
xor ecx, eax
movzx eax, bl
mov eax, dword [eax*4 + 0x1025cd08]
and eax, 0xff00
xor ecx, eax
xor ecx, dword [esp + 0x10]
mov dword [edx + 0x20], ecx
xor ecx, dword [esp + 0x14]
mov dword [edx + 0x24], ecx
xor ecx, ebp
mov dword [edx + 0x28], ecx
xor ecx, dword [esp + 0x18]
mov dword [edx + 0x2c], ecx
nop dword [eax]
mov ecx, dword [esi - 4]
lea esi, [esi + 0x20]
mov eax, ecx
shr eax, 0x10
movzx eax, al
mov edx, dword [eax*4 + 0x1025d908]
mov eax, ecx
shr eax, 8
and edx, 0xff0000
movzx eax, al
mov eax, dword [eax*4 + 0x1025cd08]
and eax, 0xff00
xor edx, eax
mov eax, ecx
shr eax, 0x18
mov eax, dword [eax*4 + 0x1025d508]
and eax, 0xff000000
xor edx, eax
movzx eax, cl
mov ecx, dword [esi - 0x38]
movzx eax, byte [eax*4 + 0x1025d108]
xor edx, eax
mov eax, dword [esi - 0x3c]
xor edx, dword [esi - 0x40]
xor eax, edx
mov dword [esi - 0x20], edx
mov dword [esi - 0x1c], eax
xor ecx, eax
mov eax, dword [esi - 0x34]
xor eax, ecx
mov dword [esi - 0x18], ecx
mov dword [esi - 0x14], eax
mov ecx, dword [esi - 0x14]
mov eax, ecx
shr eax, 8
movzx eax, al
mov edx, dword [eax*4 + 0x1025d908]
mov eax, ecx
shr eax, 0x10
and edx, 0xff0000
movzx eax, al
mov eax, dword [eax*4 + 0x1025d508]
and eax, 0xff000000
xor edx, eax
mov eax, ecx
shr eax, 0x18
movzx eax, byte [eax*4 + 0x1025d108]
xor edx, eax
movzx eax, cl
mov eax, dword [eax*4 + 0x1025cd08]
and eax, 0xff00
xor edx, eax
xor edx, dword [esi - 0x30]
xor edx, dword [edi]
add edi, 4
mov dword [esi - 0x10], edx
mov eax, dword [esi - 0x2c]
xor eax, edx
mov dword [esi - 0xc], eax
mov ecx, dword [esi - 0x28]
xor ecx, eax
mov dword [esi - 8], ecx
mov eax, dword [esi - 0x24]
xor eax, ecx
mov dword [esi - 4], eax
cmp edi, 0x1025ee24
jne 0x101533f0
pop esi
pop ebp
pop ebx
xor eax, eax
pop edi
add esp, 0xc
ret
or eax, 0xffffffff
add esp, 0xc
ret