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

Disassembly:
push ebp
mov ebp, esp
push edi
mov edi, dword [ebp + 8]
test edi, edi
je 0x1015dd2b
mov edx, dword [ebp + 0x10]
test edx, edx
je 0x1015dd2b
push ebx
mov ebx, dword [ebp + 0xc]
cmp ebx, 0x80
je 0x1015d837
cmp ebx, 0xc0
je 0x1015d82f
cmp ebx, 0x100
je 0x1015d82f
pop ebx
mov eax, 0xfffffffe
pop edi
pop ebp
ret
cmp ebx, 0x80
jne 0x1015d843
mov dword [edx + 0xf0], 0xa
jmp 0x1015d85b
xor eax, eax
cmp ebx, 0xc0
setne al
lea eax, [eax*2 + 0xc]
mov dword [edx + 0xf0], eax
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
shl ecx, 8
xor ecx, eax
movzx eax, byte [edi + 2]
shl ecx, 8
xor ecx, eax
movzx eax, byte [edi + 3]
shl ecx, 8
xor ecx, eax
mov dword [edx], ecx
movzx ecx, byte [edi + 4]
movzx eax, byte [edi + 5]
shl ecx, 8
xor ecx, eax
movzx eax, byte [edi + 6]
shl ecx, 8
xor ecx, eax
movzx eax, byte [edi + 7]
shl ecx, 8
xor ecx, eax
mov dword [edx + 4], ecx
movzx ecx, byte [edi + 8]
movzx eax, byte [edi + 9]
shl ecx, 8
xor ecx, eax
movzx eax, byte [edi + 0xa]
push esi
shl ecx, 8
lea esi, [edx + 4]
xor ecx, eax
movzx eax, byte [edi + 0xb]
shl ecx, 8
xor ecx, eax
mov dword [edx + 8], ecx
movzx ecx, byte [edi + 0xc]
movzx eax, byte [edi + 0xd]
shl ecx, 8
xor ecx, eax
movzx eax, byte [edi + 0xe]
shl ecx, 8
xor ecx, eax
movzx eax, byte [edi + 0xf]
shl ecx, 8
xor ecx, eax
mov dword [ebp + 8], ecx
mov dword [edx + 0xc], ecx
cmp ebx, 0x80
jne 0x1015d9f6
mov ebx, dword [ebp + 8]
mov eax, ecx
shr eax, 0x10
mov edi, 0x102ea37c
and eax, 0xff
mov ecx, dword [eax*4 + 0x102e8a78]
mov eax, ebx
shr eax, 8
xor ecx, 0x1000000
and eax, 0xff
and ecx, 0xff000000
mov eax, dword [eax*4 + 0x102e8e78]
and eax, 0xff0000
xor ecx, eax
mov eax, ebx
shr eax, 0x18
movzx eax, byte [eax*4 + 0x102e8678]
xor ecx, eax
movzx eax, bl
mov eax, dword [eax*4 + 0x102e8278]
and eax, 0xff00
xor ecx, eax
mov eax, dword [esi]
xor ecx, dword [edx]
xor eax, ecx
mov dword [edx + 0x10], ecx
mov ecx, dword [edx + 8]
xor ecx, eax
mov dword [edx + 0x14], eax
mov eax, dword [edx + 0xc]
xor eax, ecx
mov dword [edx + 0x18], ecx
mov dword [edx + 0x1c], eax
lea ecx, [ecx]
mov ecx, dword [esi + 0x18]
lea esi, [esi + 0x10]
mov eax, ecx
shr eax, 8
and eax, 0xff
mov edx, dword [eax*4 + 0x102e8e78]
mov eax, ecx
shr eax, 0x10
and edx, 0xff0000
and eax, 0xff
mov eax, dword [eax*4 + 0x102e8a78]
and eax, 0xff000000
xor edx, eax
mov eax, ecx
shr eax, 0x18
movzx eax, byte [eax*4 + 0x102e8678]
xor edx, eax
movzx eax, cl
mov eax, dword [eax*4 + 0x102e8278]
and eax, 0xff00
xor edx, eax
xor edx, dword [esi - 4]
xor edx, dword [edi]
add edi, 4
mov dword [esi + 0xc], edx
mov eax, dword [esi]
xor eax, edx
mov dword [esi + 0x10], eax
mov ecx, dword [esi + 4]
xor ecx, eax
mov dword [esi + 0x14], ecx
mov eax, dword [esi + 8]
xor eax, ecx
mov dword [esi + 0x18], eax
cmp edi, 0x102ea3a0
jne 0x1015d970
pop esi
pop ebx
xor eax, eax
pop edi
pop ebp
ret
movzx ecx, byte [edi + 0x10]
movzx eax, byte [edi + 0x11]
shl ecx, 8
xor ecx, eax
movzx eax, byte [edi + 0x12]
shl ecx, 8
xor ecx, eax
movzx eax, byte [edi + 0x13]
shl ecx, 8
xor ecx, eax
mov dword [edx + 0x10], ecx
movzx ebx, byte [edi + 0x14]
movzx eax, byte [edi + 0x15]
shl ebx, 8
xor ebx, eax
movzx eax, byte [edi + 0x16]
shl ebx, 8
xor ebx, eax
movzx eax, byte [edi + 0x17]
shl ebx, 8
xor ebx, eax
cmp dword [ebp + 0xc], 0xc0
mov dword [edx + 0x14], ebx
jne 0x1015db60
mov eax, ebx
mov edi, 0x102ea37c
shr eax, 0x10
and eax, 0xff
mov ecx, dword [eax*4 + 0x102e8a78]
mov eax, ebx
shr eax, 8
xor ecx, 0x1000000
and eax, 0xff
and ecx, 0xff000000
mov eax, dword [eax*4 + 0x102e8e78]
and eax, 0xff0000
xor ecx, eax
mov eax, ebx
shr eax, 0x18
movzx eax, byte [eax*4 + 0x102e8678]
xor ecx, eax
movzx eax, bl
mov eax, dword [eax*4 + 0x102e8278]
and eax, 0xff00
xor ecx, eax
mov eax, dword [esi]
xor ecx, dword [edx]
xor eax, ecx
mov dword [edx + 0x18], ecx
mov ecx, dword [edx + 8]
xor ecx, eax
mov dword [edx + 0x1c], eax
mov eax, dword [edx + 0xc]
xor eax, ecx
mov dword [edx + 0x20], ecx
mov dword [edx + 0x24], eax
lea eax, [edx + 0x28]
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
and ecx, 0xff
mov esi, dword [ecx*4 + 0x102e8e78]
mov ecx, edx
shr ecx, 0x10
and esi, 0xff0000
and ecx, 0xff
mov ecx, dword [ecx*4 + 0x102e8a78]
and ecx, 0xff000000
xor esi, ecx
mov ecx, edx
shr ecx, 0x18
movzx ecx, byte [ecx*4 + 0x102e8678]
xor esi, ecx
movzx ecx, dl
mov ecx, dword [ecx*4 + 0x102e8278]
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, 0x102ea398
jne 0x1015dac0
pop esi
pop ebx
xor eax, eax
pop edi
pop ebp
ret
movzx ecx, byte [edi + 0x18]
movzx eax, byte [edi + 0x19]
shl ecx, 8
xor ecx, eax
movzx eax, byte [edi + 0x1a]
shl ecx, 8
xor ecx, eax
movzx eax, byte [edi + 0x1b]
shl ecx, 8
xor ecx, eax
mov dword [edx + 0x18], ecx
movzx ebx, byte [edi + 0x1c]
movzx eax, byte [edi + 0x1d]
shl ebx, 8
xor ebx, eax
movzx eax, byte [edi + 0x1e]
shl ebx, 8
xor ebx, eax
movzx eax, byte [edi + 0x1f]
shl ebx, 8
xor ebx, eax
cmp dword [ebp + 0xc], 0x100
mov dword [edx + 0x1c], ebx
jne 0x1015d9ef
mov eax, ebx
mov edi, 0x102ea37c
shr eax, 0x10
and eax, 0xff
mov ecx, dword [eax*4 + 0x102e8a78]
mov eax, ebx
shr eax, 8
xor ecx, 0x1000000
and eax, 0xff
and ecx, 0xff000000
mov eax, dword [eax*4 + 0x102e8e78]
and eax, 0xff0000
xor ecx, eax
mov eax, ebx
shr eax, 0x18
movzx eax, byte [eax*4 + 0x102e8678]
xor ecx, eax
movzx eax, bl
mov eax, dword [eax*4 + 0x102e8278]
and eax, 0xff00
xor ecx, eax
mov eax, dword [esi]
xor ecx, dword [edx]
lea esi, [edx + 0x30]
xor eax, ecx
mov dword [edx + 0x20], ecx
mov ecx, dword [edx + 8]
xor ecx, eax
mov dword [edx + 0x24], eax
mov eax, dword [edx + 0xc]
xor eax, ecx
mov dword [edx + 0x28], ecx
mov dword [edx + 0x2c], eax
lea ebx, [ebx]
mov ecx, dword [esi - 4]
lea esi, [esi + 0x20]
mov eax, ecx
shr eax, 0x10
and eax, 0xff
mov edx, dword [eax*4 + 0x102e8e78]
mov eax, ecx
shr eax, 8
and edx, 0xff0000
and eax, 0xff
mov eax, dword [eax*4 + 0x102e8278]
and eax, 0xff00
xor edx, eax
mov eax, ecx
shr eax, 0x18
mov eax, dword [eax*4 + 0x102e8a78]
and eax, 0xff000000
xor edx, eax
movzx eax, cl
mov ecx, dword [esi - 0x38]
movzx eax, byte [eax*4 + 0x102e8678]
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
and eax, 0xff
mov edx, dword [eax*4 + 0x102e8e78]
mov eax, ecx
shr eax, 0x10
and edx, 0xff0000
and eax, 0xff
mov eax, dword [eax*4 + 0x102e8a78]
and eax, 0xff000000
xor edx, eax
mov eax, ecx
shr eax, 0x18
movzx eax, byte [eax*4 + 0x102e8678]
xor edx, eax
movzx eax, cl
mov eax, dword [eax*4 + 0x102e8278]
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, 0x102ea394
jne 0x1015dc30
pop esi
pop ebx
xor eax, eax
pop edi
pop ebp
ret
or eax, 0xffffffff
pop edi
pop ebp
ret