Function at 0x100ce080
Capabilities:
Encode data using xor
Encrypt data using aes
Reference aes constants

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov edi, ecx
mov esi, ebx
shr esi, 2
push ebx
push edx
push edi
lea eax, [esi + 6]
mov dword [ebp - 4], edi
mov dword [edi + 0xf4], ebx
mov dword [edi + 0xf0], eax
call fcn.101ec960
add esp, 0xc
xor edx, edx
test esi, esi
je 0x100ce0d4
mov eax, dword [edi + edx*4]
mov ecx, eax
ror ecx, 8
rol eax, 8
and ecx, 0xff00ff00
and eax, 0xff00ff
or ecx, eax
mov dword [edi + edx*4], ecx
inc edx
cmp edx, esi
jb 0x100ce0b4
cmp ebx, 0x10
je 0x100ce37e
cmp ebx, 0x18
je 0x100ce267
cmp ebx, 0x20
je 0x100ce0f7
pop edi
pop esi
mov eax, 0xffffff53
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x1c]
lea esi, [edi + 0x30]
mov eax, ecx
mov ebx, 4
shr eax, 0x10
movzx eax, al
mov edx, dword [eax*4 + 0x10255e48]
mov eax, ecx
shr eax, 8
xor edx, 0x1000000
movzx eax, al
and edx, 0xff000000
mov eax, dword [eax*4 + 0x10256248]
and eax, 0xff0000
xor edx, eax
mov eax, ecx
shr eax, 0x18
movzx eax, byte [eax*4 + 0x10255a48]
xor edx, eax
movzx eax, cl
lea ecx, [edi + 8]
mov dword [ebp + 8], ecx
mov ecx, dword [ecx]
mov eax, dword [eax*4 + 0x10255648]
and eax, 0xff00
xor edx, eax
mov eax, dword [edi + 4]
xor edx, dword [edi]
xor eax, edx
mov dword [edi + 0x20], edx
xor ecx, eax
mov dword [edi + 0x24], eax
mov eax, dword [edi + 0xc]
xor eax, ecx
mov dword [edi + 0x28], ecx
mov dword [edi + 0x2c], eax
mov ecx, dword [esi - 4]
lea esi, [esi + 0x20]
mov eax, ecx
shr eax, 0x10
movzx eax, al
mov edx, dword [eax*4 + 0x10256248]
mov eax, ecx
shr eax, 8
and edx, 0xff0000
movzx eax, al
mov eax, dword [eax*4 + 0x10255648]
and eax, 0xff00
xor edx, eax
mov eax, ecx
shr eax, 0x18
mov eax, dword [eax*4 + 0x10255e48]
and eax, 0xff000000
xor edx, eax
movzx eax, cl
mov ecx, dword [esi - 0x38]
movzx eax, byte [eax*4 + 0x10255a48]
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 + 0x10256248]
mov eax, ecx
shr eax, 0x10
and edx, 0xff0000
movzx eax, al
mov eax, dword [eax*4 + 0x10255e48]
and eax, 0xff000000
xor edx, eax
mov eax, ecx
shr eax, 0x18
movzx eax, byte [eax*4 + 0x10255a48]
xor edx, eax
movzx eax, cl
mov eax, dword [eax*4 + 0x10255648]
and eax, 0xff00
xor edx, eax
xor edx, dword [ebx + 0x10254620]
add ebx, 4
xor edx, dword [esi - 0x30]
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 ebx, 0x1c
jne 0x100ce175
jmp 0x100ce474
mov ecx, dword [edi + 0x14]
mov ebx, 4
mov eax, ecx
shr eax, 0x10
movzx eax, al
mov edx, dword [eax*4 + 0x10255e48]
mov eax, ecx
shr eax, 8
xor edx, 0x1000000
movzx eax, al
and edx, 0xff000000
mov eax, dword [eax*4 + 0x10256248]
and eax, 0xff0000
xor edx, eax
mov eax, ecx
shr eax, 0x18
movzx eax, byte [eax*4 + 0x10255a48]
xor edx, eax
movzx eax, cl
lea ecx, [edi + 8]
mov dword [ebp + 8], ecx
mov ecx, dword [ecx]
mov eax, dword [eax*4 + 0x10255648]
and eax, 0xff00
xor edx, eax
mov eax, dword [edi + 4]
xor edx, dword [edi]
xor eax, edx
mov dword [edi + 0x18], edx
xor ecx, eax
mov dword [edi + 0x1c], eax
mov eax, dword [edi + 0xc]
xor eax, ecx
mov dword [edi + 0x20], ecx
mov dword [edi + 0x24], eax
lea eax, [edi + 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
movzx ecx, cl
mov esi, dword [ecx*4 + 0x10256248]
mov ecx, edx
shr ecx, 0x10
and esi, 0xff0000
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x10255e48]
and ecx, 0xff000000
xor esi, ecx
mov ecx, edx
shr ecx, 0x18
movzx ecx, byte [ecx*4 + 0x10255a48]
xor esi, ecx
movzx ecx, dl
mov ecx, dword [ecx*4 + 0x10255648]
and ecx, 0xff00
xor esi, ecx
xor esi, dword [ebx + 0x10254620]
add ebx, 4
xor esi, dword [eax - 0x28]
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 ebx, 0x20
jne 0x100ce2e5
jmp 0x100ce474
mov edx, dword [edi + 0xc]
lea esi, [edi + 4]
mov eax, edx
mov ebx, 4
shr eax, 0x10
movzx eax, al
mov ecx, dword [eax*4 + 0x10255e48]
mov eax, edx
shr eax, 8
xor ecx, 0x1000000
movzx eax, al
and ecx, 0xff000000
mov eax, dword [eax*4 + 0x10256248]
and eax, 0xff0000
xor ecx, eax
mov eax, edx
shr eax, 0x18
movzx eax, byte [eax*4 + 0x10255a48]
xor ecx, eax
movzx eax, dl
mov eax, dword [eax*4 + 0x10255648]
and eax, 0xff00
xor ecx, eax
mov eax, dword [esi]
xor ecx, dword [edi]
xor eax, ecx
mov dword [edi + 0x10], ecx
lea ecx, [edi + 8]
mov dword [edi + 0x14], eax
mov dword [ebp + 8], ecx
mov ecx, dword [ecx]
xor ecx, eax
mov dword [edi + 0x18], ecx
xor ecx, edx
mov dword [edi + 0x1c], ecx
mov ecx, dword [esi + 0x18]
lea esi, [esi + 0x10]
mov eax, ecx
shr eax, 8
movzx eax, al
mov edx, dword [eax*4 + 0x10256248]
mov eax, ecx
shr eax, 0x10
and edx, 0xff0000
movzx eax, al
mov eax, dword [eax*4 + 0x10255e48]
and eax, 0xff000000
xor edx, eax
mov eax, ecx
shr eax, 0x18
movzx eax, byte [eax*4 + 0x10255a48]
xor edx, eax
movzx eax, cl
mov eax, dword [eax*4 + 0x10255648]
and eax, 0xff00
xor edx, eax
xor edx, dword [ebx + 0x10254620]
add ebx, 4
xor edx, dword [esi - 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 ebx, 0x28
jne 0x100ce3f8
cmp dword [ebp + 0x10], 1
jne 0x100ce676
mov eax, dword [edi + 0xf0]
lea ebx, [eax*4]
test ebx, ebx
je 0x100ce4e9
mov esi, dword [ebp + 8]
lea edx, [edi + 8]
lea edx, [edx + ebx*4]
xor edi, edi
nop word [eax + eax]
mov ecx, dword [esi - 8]
lea esi, [esi + 0x10]
mov eax, dword [edx - 8]
lea edx, [edx - 0x10]
mov dword [esi - 0x18], eax
add edi, 4
mov eax, dword [edx + 0xc]
sub ebx, 4
mov dword [edx + 8], ecx
mov ecx, dword [esi - 0x14]
mov dword [esi - 0x14], eax
mov eax, dword [edx + 0x10]
mov dword [edx + 0xc], ecx
mov ecx, dword [esi - 0x10]
mov dword [esi - 0x10], eax
mov eax, dword [edx + 0x14]
mov dword [edx + 0x10], ecx
mov ecx, dword [esi - 0xc]
mov dword [esi - 0xc], eax
mov dword [edx + 0x14], ecx
cmp edi, ebx
jb 0x100ce4a0
mov edi, dword [ebp - 4]
mov eax, dword [edi + 0xf0]
mov esi, 1
cmp eax, esi
jbe 0x100ce676
lea ebx, [edi + 8]
nop dword [eax]
mov edx, dword [ebx + 8]
lea ebx, [ebx + 0x10]
mov eax, edx
inc esi
shr eax, 8
movzx eax, al
movzx ecx, byte [eax*4 + 0x10255a48]
mov eax, edx
shr eax, 0x10
movzx eax, al
mov ecx, dword [ecx*4 + 0x10254e48]
movzx eax, byte [eax*4 + 0x10255a48]
xor ecx, dword [eax*4 + 0x10254a48]
mov eax, edx
shr eax, 0x18
movzx eax, byte [eax*4 + 0x10255a48]
xor ecx, dword [eax*4 + 0x10254648]
movzx eax, dl
mov edx, dword [ebx - 4]
movzx eax, byte [eax*4 + 0x10255a48]
xor ecx, dword [eax*4 + 0x10255248]
mov eax, edx
shr eax, 8
movzx eax, al
mov dword [ebx - 8], ecx
movzx ecx, byte [eax*4 + 0x10255a48]
mov eax, edx
shr eax, 0x10
movzx eax, al
mov ecx, dword [ecx*4 + 0x10254e48]
movzx eax, byte [eax*4 + 0x10255a48]
xor ecx, dword [eax*4 + 0x10254a48]
mov eax, edx
shr eax, 0x18
movzx eax, byte [eax*4 + 0x10255a48]
xor ecx, dword [eax*4 + 0x10254648]
movzx eax, dl
mov edx, dword [ebx]
movzx eax, byte [eax*4 + 0x10255a48]
xor ecx, dword [eax*4 + 0x10255248]
mov eax, edx
shr eax, 8
movzx eax, al
mov dword [ebx - 4], ecx
movzx ecx, byte [eax*4 + 0x10255a48]
mov eax, edx
shr eax, 0x10
movzx eax, al
mov ecx, dword [ecx*4 + 0x10254e48]
movzx eax, byte [eax*4 + 0x10255a48]
xor ecx, dword [eax*4 + 0x10254a48]
mov eax, edx
shr eax, 0x18
movzx eax, byte [eax*4 + 0x10255a48]
xor ecx, dword [eax*4 + 0x10254648]
movzx eax, dl
mov edx, dword [ebx + 4]
movzx eax, byte [eax*4 + 0x10255a48]
xor ecx, dword [eax*4 + 0x10255248]
mov eax, edx
shr eax, 8
movzx eax, al
mov dword [ebx], ecx
movzx ecx, byte [eax*4 + 0x10255a48]
mov eax, edx
shr eax, 0x10
movzx eax, al
mov ecx, dword [ecx*4 + 0x10254e48]
movzx eax, byte [eax*4 + 0x10255a48]
xor ecx, dword [eax*4 + 0x10254a48]
mov eax, edx
shr eax, 0x18
movzx eax, byte [eax*4 + 0x10255a48]
xor ecx, dword [eax*4 + 0x10254648]
movzx eax, dl
movzx eax, byte [eax*4 + 0x10255a48]
xor ecx, dword [eax*4 + 0x10255248]
mov dword [ebx + 4], ecx
cmp esi, dword [edi + 0xf0]
jb 0x100ce500
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x100ce690
movups xmm0, xmmword [eax]
xor eax, eax
movups xmmword [edi + 0xf8], xmm0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xorps xmm0, xmm0
xor eax, eax
movups xmmword [edi + 0xf8], xmm0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret