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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x10011484]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
xor edx, edx
mov ecx, 0x10
mov dword [ebp - 0x1c], ebx
push esi
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], edx
cmp dword [ebp + 0x10], edx
jbe 0x10008763
push edi
cmp ecx, 0x10
jne 0x1000874d
movups xmm0, xmmword [ebx + 0xf0]
lea eax, [ebp - 0x14]
mov esi, ebx
sub esi, eax
mov ecx, eax
movups xmmword [ebp - 0x14], xmm0
mov edi, 4
mov edx, 4
nop dword [eax]
mov al, byte [esi + ecx]
xor byte [ecx], al
inc ecx
sub edx, 1
jne 0x10008580
sub edi, 1
jne 0x10008574
mov bl, 1
mov byte [ebp - 0x15], bl
lea esi, [ebp - 0x14]
mov edi, 4
nop dword [eax]
mov ecx, esi
mov edx, 4
nop word [eax + eax]
movzx eax, byte [ecx]
lea ecx, [ecx + 4]
mov al, byte [eax + str.cw]
mov byte [ecx - 4], al
sub edx, 1
jne 0x100085b0
inc esi
sub edi, 1
jne 0x100085a0
movzx eax, byte [ebp - 0xf]
lea edi, [edx + 4]
mov cl, byte [ebp - 0x13]
mov byte [ebp - 0x13], al
movzx eax, byte [ebp - 0xb]
mov byte [ebp - 0xf], al
movzx eax, byte [ebp - 7]
mov byte [ebp - 0xb], al
movzx eax, byte [ebp - 0xa]
mov byte [ebp - 7], cl
mov cl, byte [ebp - 0x12]
mov byte [ebp - 0x12], al
movzx eax, byte [ebp - 6]
mov byte [ebp - 0xa], cl
mov cl, byte [ebp - 0xe]
mov byte [ebp - 0xe], al
movzx eax, byte [ebp - 5]
mov byte [ebp - 6], cl
mov cl, byte [ebp - 0x11]
mov byte [ebp - 0x11], al
movzx eax, byte [ebp - 9]
mov byte [ebp - 5], al
movzx eax, byte [ebp - 0xd]
mov byte [ebp - 9], al
mov byte [ebp - 0xd], cl
cmp bl, 0xe
je 0x100086ec
lea esi, [ebp - 0x13]
nop dword [eax]
mov dh, byte [esi - 1]
lea esi, [esi + 4]
mov dl, byte [esi - 4]
mov cl, dh
mov al, byte [esi - 2]
xor cl, dl
mov ch, byte [esi - 3]
mov bl, al
mov byte [ebp - 0x16], al
xor bl, ch
mov al, cl
mov bh, bl
shr al, 7
add cl, cl
movzx eax, al
xor bh, dh
imul eax, eax, 0x1b
xor bh, dl
xor al, cl
mov cl, ch
xor al, dh
xor cl, dl
xor al, bh
mov byte [esi - 5], al
mov al, cl
shr al, 7
add cl, cl
movzx eax, al
imul eax, eax, 0x1b
xor al, cl
mov cl, byte [ebp - 0x16]
xor al, dl
xor cl, dh
xor al, bh
mov byte [esi - 4], al
mov al, bl
shr al, 7
add bl, bl
movzx eax, al
imul eax, eax, 0x1b
xor al, bl
xor al, ch
xor al, bh
mov byte [esi - 3], al
mov al, cl
shr al, 7
add cl, cl
movzx eax, al
imul eax, eax, 0x1b
xor al, cl
xor al, byte [ebp - 0x16]
xor al, bh
mov byte [esi - 2], al
sub edi, 1
jne 0x10008630
mov bl, byte [ebp - 0x15]
lea eax, [ebp - 0x14]
movzx edx, bl
mov edi, 4
shl edx, 4
add edx, dword [ebp - 0x1c]
nop
mov esi, 4
mov cl, byte [edx]
inc edx
xor byte [eax], cl
inc eax
sub esi, 1
jne 0x100086d5
sub edi, 1
jne 0x100086d0
inc bl
jmp 0x10008592
mov ebx, dword [ebp - 0x1c]
lea ecx, [ebp - 0x14]
lea edx, [ebx + 0xe0]
mov esi, 4
nop dword [eax]
mov al, byte [edx]
inc edx
xor byte [ecx], al
inc ecx
sub esi, 1
jne 0x10008700
sub edi, 1
jne 0x100086f8
mov eax, 0xf
nop word [eax + eax]
mov cl, byte [ebx + eax + 0xf0]
lea edx, [ebx + eax]
cmp cl, 0xff
jne 0x1000873d
sub eax, 1
mov byte [edx + 0xf0], 0
jns 0x10008720
jmp 0x10008745
inc cl
mov byte [edx + 0xf0], cl
mov edx, dword [ebp - 0x20]
xor ecx, ecx
mov esi, dword [ebp - 0x24]
mov al, byte [ebp + ecx - 0x14]
inc ecx
xor byte [esi + edx], al
inc edx
mov dword [ebp - 0x20], edx
cmp edx, dword [ebp + 0x10]
jb 0x10008552
pop edi
mov ecx, dword [ebp - 4]
pop esi
xor ecx, ebp
pop ebx
call fcn.10009b64
mov esp, ebp
pop ebp
ret