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

Disassembly:
mov edx, dword [esp + 4]
sub esp, 0xc
push edi
test edx, edx
je 0x10014dc8
mov edi, dword [esp + 0x1c]
test edi, edi
je 0x10014dc8
push ebp
mov ebp, dword [esp + 0x1c]
cmp ebp, 0x80
je 0x100148ec
cmp ebp, 0xc0
je 0x100148e4
cmp ebp, 0x100
je 0x100148e4
pop ebp
mov eax, 0xfffffffe
pop edi
add esp, 0xc
ret
cmp ebp, 0x80
jne 0x100148f8
mov dword [edi + 0xf0], 0xa
jmp 0x10014910
xor eax, eax
cmp ebp, 0xc0
setne al
lea eax, [eax*2 + 0xc]
mov dword [edi + 0xf0], eax
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
shl ecx, 8
xor ecx, eax
movzx eax, byte [edx + 2]
shl ecx, 8
xor ecx, eax
movzx eax, byte [edx + 3]
shl ecx, 8
xor ecx, eax
mov dword [edi], ecx
movzx eax, byte [edx + 5]
mov dword [esp + 0x18], ecx
movzx ecx, byte [edx + 4]
shl ecx, 8
xor ecx, eax
movzx eax, byte [edx + 6]
shl ecx, 8
xor ecx, eax
movzx eax, byte [edx + 7]
push ebx
shl ecx, 8
xor ecx, eax
mov dword [edi + 4], ecx
movzx eax, byte [edx + 9]
mov dword [esp + 0xc], ecx
movzx ecx, byte [edx + 8]
push esi
lea esi, [edi + 4]
shl ecx, 8
xor ecx, eax
movzx eax, byte [edx + 0xa]
shl ecx, 8
xor ecx, eax
movzx eax, byte [edx + 0xb]
shl ecx, 8
xor ecx, eax
mov dword [edi + 8], ecx
movzx ebx, byte [edx + 0xc]
movzx eax, byte [edx + 0xd]
shl ebx, 8
xor ebx, eax
mov dword [esp + 0x14], ecx
movzx eax, byte [edx + 0xe]
shl ebx, 8
xor ebx, eax
movzx eax, byte [edx + 0xf]
shl ebx, 8
xor ebx, eax
mov dword [esp + 0x18], ebx
mov dword [edi + 0xc], ebx
cmp ebp, 0x80
jne 0x10014aa9
mov eax, ebx
shr eax, 0x10
movzx eax, al
mov ecx, dword [eax*4 + str.ccccwwww]
mov eax, ebx
shr eax, 8
xor ecx, 0x1000000
movzx eax, al
and ecx, 0xff000000
mov eax, dword [eax*4 + str.ccccwwww]
and eax, 0xff0000
xor ecx, eax
mov eax, ebx
shr eax, 0x18
movzx eax, byte [eax*4 + str.ccccwwww]
xor ecx, eax
movzx eax, bl
mov eax, dword [eax*4 + str.ccccwwww]
and eax, 0xff00
xor ecx, eax
xor ecx, dword [esp + 0x20]
mov dword [edi + 0x10], ecx
xor ecx, dword [esp + 0x10]
mov dword [edi + 0x14], ecx
xor ecx, dword [esp + 0x14]
mov dword [edi + 0x18], ecx
xor ecx, ebx
mov dword [edi + 0x1c], ecx
mov edi, 0x1004ba54
mov edx, dword [esi + 0x18]
lea esi, [esi + 0x10]
mov eax, edx
shr eax, 8
movzx eax, al
mov ecx, dword [eax*4 + str.ccccwwww]
mov eax, edx
shr eax, 0x10
and ecx, 0xff0000
movzx eax, al
mov eax, dword [eax*4 + str.ccccwwww]
and eax, 0xff000000
xor ecx, eax
mov eax, edx
shr eax, 0x18
movzx eax, byte [eax*4 + str.ccccwwww]
xor ecx, eax
movzx eax, dl
mov eax, dword [eax*4 + str.ccccwwww]
and eax, 0xff00
xor ecx, eax
xor ecx, dword [esi - 4]
xor ecx, dword [edi]
add edi, 4
mov dword [esi + 0xc], ecx
mov eax, dword [esi]
xor eax, ecx
mov dword [esi + 0x10], eax
mov ecx, dword [esi + 4]
xor ecx, eax
xor edx, ecx
mov dword [esi + 0x14], ecx
mov dword [esi + 0x18], edx
cmp edi, 0x1004ba78
jne 0x10014a27
pop esi
pop ebx
pop ebp
xor eax, eax
pop edi
add esp, 0xc
ret
movzx ecx, byte [edx + 0x10]
movzx eax, byte [edx + 0x11]
shl ecx, 8
xor ecx, eax
movzx eax, byte [edx + 0x12]
shl ecx, 8
xor ecx, eax
movzx eax, byte [edx + 0x13]
shl ecx, 8
xor ecx, eax
mov dword [edi + 0x10], ecx
movzx ebx, byte [edx + 0x14]
movzx eax, byte [edx + 0x15]
shl ebx, 8
xor ebx, eax
movzx eax, byte [edx + 0x16]
shl ebx, 8
xor ebx, eax
movzx eax, byte [edx + 0x17]
shl ebx, 8
xor ebx, eax
mov dword [edi + 0x14], ebx
cmp ebp, 0xc0
jne 0x10014c0d
mov eax, ebx
shr eax, 0x10
movzx eax, al
mov ecx, dword [eax*4 + str.ccccwwww]
mov eax, ebx
shr eax, 8
xor ecx, 0x1000000
movzx eax, al
and ecx, 0xff000000
mov eax, dword [eax*4 + str.ccccwwww]
and eax, 0xff0000
xor ecx, eax
mov eax, ebx
shr eax, 0x18
movzx eax, byte [eax*4 + str.ccccwwww]
xor ecx, eax
movzx eax, bl
mov eax, dword [eax*4 + str.ccccwwww]
and eax, 0xff00
xor ecx, eax
lea eax, [edi + 0x28]
xor ecx, dword [esp + 0x20]
mov dword [edi + 0x18], ecx
xor ecx, dword [esp + 0x10]
mov dword [edi + 0x1c], ecx
xor ecx, dword [esp + 0x14]
mov dword [edi + 0x20], ecx
xor ecx, dword [esp + 0x18]
mov dword [edi + 0x24], ecx
mov edi, 0x1004ba54
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 + str.ccccwwww]
mov ecx, edx
shr ecx, 0x10
and esi, 0xff0000
movzx ecx, cl
mov ecx, dword [ecx*4 + str.ccccwwww]
and ecx, 0xff000000
xor esi, ecx
mov ecx, edx
shr ecx, 0x18
movzx ecx, byte [ecx*4 + str.ccccwwww]
xor esi, ecx
movzx ecx, dl
mov ecx, dword [ecx*4 + str.ccccwwww]
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, 0x1004ba70
jne 0x10014b70
pop esi
pop ebx
pop ebp
xor eax, eax
pop edi
add esp, 0xc
ret
movzx ecx, byte [edx + 0x18]
movzx eax, byte [edx + 0x19]
shl ecx, 8
xor ecx, eax
movzx eax, byte [edx + 0x1a]
shl ecx, 8
xor ecx, eax
movzx eax, byte [edx + 0x1b]
shl ecx, 8
xor ecx, eax
mov dword [edi + 0x18], ecx
movzx ebx, byte [edx + 0x1c]
movzx eax, byte [edx + 0x1d]
shl ebx, 8
xor ebx, eax
movzx eax, byte [edx + 0x1e]
shl ebx, 8
xor ebx, eax
movzx eax, byte [edx + 0x1f]
shl ebx, 8
xor ebx, eax
mov dword [edi + 0x1c], ebx
cmp ebp, 0x100
jne 0x10014dbe
mov eax, ebx
mov esi, 0x1004ba54
shr eax, 0x10
movzx eax, al
mov ecx, dword [eax*4 + str.ccccwwww]
mov eax, ebx
shr eax, 8
xor ecx, 0x1000000
movzx eax, al
and ecx, 0xff000000
mov eax, dword [eax*4 + str.ccccwwww]
and eax, 0xff0000
xor ecx, eax
mov eax, ebx
shr eax, 0x18
movzx eax, byte [eax*4 + str.ccccwwww]
xor ecx, eax
movzx eax, bl
mov eax, dword [eax*4 + str.ccccwwww]
and eax, 0xff00
xor ecx, eax
xor ecx, dword [esp + 0x20]
mov dword [edi + 0x20], ecx
xor ecx, dword [esp + 0x10]
mov dword [edi + 0x24], ecx
xor ecx, dword [esp + 0x14]
mov dword [edi + 0x28], ecx
xor ecx, dword [esp + 0x18]
mov dword [edi + 0x2c], ecx
add edi, 0x30
mov ecx, dword [edi - 4]
lea edi, [edi + 0x20]
mov eax, ecx
shr eax, 0x10
movzx eax, al
mov edx, dword [eax*4 + str.ccccwwww]
mov eax, ecx
shr eax, 8
and edx, 0xff0000
movzx eax, al
mov eax, dword [eax*4 + str.ccccwwww]
and eax, 0xff00
xor edx, eax
mov eax, ecx
shr eax, 0x18
mov eax, dword [eax*4 + str.ccccwwww]
and eax, 0xff000000
xor edx, eax
movzx eax, cl
mov ecx, dword [edi - 0x38]
movzx eax, byte [eax*4 + str.ccccwwww]
xor edx, eax
mov eax, dword [edi - 0x3c]
xor edx, dword [edi - 0x40]
xor eax, edx
mov dword [edi - 0x20], edx
mov dword [edi - 0x1c], eax
xor ecx, eax
mov eax, dword [edi - 0x34]
xor eax, ecx
mov dword [edi - 0x18], ecx
mov dword [edi - 0x14], eax
mov ecx, dword [edi - 0x14]
mov eax, ecx
shr eax, 8
movzx eax, al
mov edx, dword [eax*4 + str.ccccwwww]
mov eax, ecx
shr eax, 0x10
and edx, 0xff0000
movzx eax, al
mov eax, dword [eax*4 + str.ccccwwww]
and eax, 0xff000000
xor edx, eax
mov eax, ecx
shr eax, 0x18
movzx eax, byte [eax*4 + str.ccccwwww]
xor edx, eax
movzx eax, cl
mov eax, dword [eax*4 + str.ccccwwww]
and eax, 0xff00
xor edx, eax
xor edx, dword [edi - 0x30]
xor edx, dword [esi]
add esi, 4
mov dword [edi - 0x10], edx
mov eax, dword [edi - 0x2c]
xor eax, edx
mov dword [edi - 0xc], eax
mov ecx, dword [edi - 0x28]
xor ecx, eax
mov dword [edi - 8], ecx
mov eax, dword [edi - 0x24]
xor eax, ecx
mov dword [edi - 4], eax
cmp esi, 0x1004ba6c
jne 0x10014cd2
pop esi
pop ebx
pop ebp
xor eax, eax
pop edi
add esp, 0xc
ret
or eax, 0xffffffff
pop edi
add esp, 0xc
ret