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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [ebp + 8]
and dword [ebp - 0xc], 0
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
lea edi, [eax + 0x1e8]
mov eax, dword [eax + 4]
dec eax
mov edx, dword [esi + 4]
mov ebx, dword [esi + 8]
test eax, eax
jle 0x10076a63
mov eax, dword [esi + 0xc]
mov dword [ebp - 4], eax
mov eax, dword [edi]
xor dword [esi], eax
push 4
pop eax
add edi, eax
mov ecx, dword [edi]
add edi, eax
xor ecx, edx
mov dword [esi + 4], ecx
movzx ecx, cl
mov edx, dword [edi]
add edi, eax
xor edx, ebx
mov dword [esi + 8], edx
mov ebx, dword [edi]
add edi, eax
xor ebx, dword [ebp - 4]
mov dword [esi + 0xc], ebx
movzx eax, byte [esi + 0xe]
mov eax, dword [eax*4 + 0x10184ec0]
xor eax, dword [ecx*4 + 0x101856c0]
mov dword [ebp - 8], eax
movzx eax, byte [esi + 9]
mov ecx, dword [ebp - 8]
xor ecx, dword [eax*4 + 0x101852c0]
movzx eax, byte [esi + 3]
xor ecx, dword [eax*4 + 0x10184ac0]
movzx eax, byte [esi + 2]
mov dword [ebp - 8], ecx
movzx ecx, byte [esi + 7]
mov eax, dword [eax*4 + 0x10184ec0]
xor eax, dword [ecx*4 + 0x10184ac0]
movzx ecx, byte [esi + 6]
mov dword [ebp - 4], eax
movzx eax, dl
mov edx, dword [ebp - 4]
xor edx, dword [eax*4 + 0x101856c0]
movzx eax, byte [esi + 0xd]
xor edx, dword [eax*4 + 0x101852c0]
movzx eax, byte [esi + 1]
mov eax, dword [eax*4 + 0x101852c0]
xor eax, dword [ecx*4 + 0x10184ec0]
mov dword [ebp - 4], eax
movzx eax, byte [esi + 0xb]
mov ecx, dword [ebp - 4]
xor ecx, dword [eax*4 + 0x10184ac0]
movzx eax, bl
mov ebx, ecx
mov ecx, dword [esi]
movzx ecx, cl
xor ebx, dword [eax*4 + 0x101856c0]
movzx eax, byte [esi + 0xf]
mov eax, dword [eax*4 + 0x10184ac0]
xor eax, dword [ecx*4 + 0x101856c0]
mov dword [ebp - 4], eax
movzx eax, byte [esi + 0xa]
mov ecx, dword [ebp - 4]
mov dword [esi + 8], ebx
xor ecx, dword [eax*4 + 0x10184ec0]
movzx eax, byte [esi + 5]
mov dword [esi + 4], edx
xor ecx, dword [eax*4 + 0x101852c0]
mov eax, dword [ebp - 8]
mov dword [esi], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0xc], ecx
mov dword [ebp - 4], ecx
mov ecx, dword [ebp - 0xc]
mov eax, dword [eax + 4]
inc ecx
dec eax
mov dword [ebp - 0xc], ecx
cmp ecx, eax
jl 0x1007694a
jmp 0x10076a6e
mov eax, dword [esi]
mov dword [ebp - 8], eax
mov eax, dword [esi + 0xc]
mov dword [ebp - 4], eax
mov eax, dword [edi]
xor eax, dword [ebp - 8]
mov dword [esi], eax
mov dword [ebp - 0xc], eax
push 4
pop eax
add edi, eax
mov ecx, dword [edi]
add edi, eax
xor ecx, edx
mov dword [esi + 4], ecx
mov edx, dword [edi]
add edi, eax
xor edx, ebx
mov dword [esi + 8], edx
mov ebx, dword [edi]
add edi, eax
movzx eax, byte [esi + 3]
xor ebx, dword [ebp - 4]
mov dword [esi + 0xc], ebx
mov dword [ebp + 8], edi
movzx edi, byte [eax + 0x101839c0]
movzx eax, byte [esi + 0xe]
shl edi, 8
movzx eax, byte [eax + 0x101839c0]
or edi, eax
movzx eax, byte [esi + 9]
shl edi, 8
movzx eax, byte [eax + 0x101839c0]
or edi, eax
movzx eax, cl
mov ecx, dword [ebp + 0xc]
shl edi, 8
movzx eax, byte [eax + 0x101839c0]
or edi, eax
movzx eax, byte [esi + 7]
movzx esi, byte [eax + 0x101839c0]
movzx eax, byte [ecx + 2]
shl esi, 8
movzx eax, byte [eax + 0x101839c0]
or esi, eax
movzx eax, byte [ecx + 0xd]
shl esi, 8
movzx eax, byte [eax + 0x101839c0]
or esi, eax
movzx eax, dl
shl esi, 8
movzx eax, byte [eax + 0x101839c0]
or esi, eax
movzx eax, byte [ecx + 0xb]
movzx edx, byte [eax + 0x101839c0]
movzx eax, byte [ecx + 6]
shl edx, 8
movzx eax, byte [eax + 0x101839c0]
or edx, eax
movzx eax, byte [ecx + 1]
shl edx, 8
movzx eax, byte [eax + 0x101839c0]
or edx, eax
movzx eax, bl
mov ebx, ecx
shl edx, 8
movzx eax, byte [eax + 0x101839c0]
or edx, eax
mov dword [ebx], edi
movzx eax, byte [ebx + 0xf]
movzx ecx, byte [eax + 0x101839c0]
movzx eax, byte [ebx + 0xa]
shl ecx, 8
movzx eax, byte [eax + 0x101839c0]
or ecx, eax
movzx eax, byte [ebx + 5]
shl ecx, 8
mov dword [ebx + 4], esi
movzx eax, byte [eax + 0x101839c0]
or ecx, eax
mov eax, dword [ebp - 0xc]
movzx eax, al
shl ecx, 8
movzx eax, byte [eax + 0x101839c0]
or ecx, eax
mov eax, dword [ebp + 8]
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], ecx
mov eax, dword [eax]
xor eax, edi
mov edi, dword [ebp + 8]
mov dword [ebx], eax
mov eax, dword [edi + 4]
xor eax, esi
mov dword [ebx + 4], eax
mov eax, dword [edi + 8]
xor eax, edx
mov dword [ebx + 8], eax
mov eax, dword [edi + 0xc]
pop edi
xor eax, ecx
pop esi
mov dword [ebx + 0xc], eax
pop ebx
leave
ret