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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x24
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x38]
mov al, byte [edi]
mov byte [esp + 0xa], al
mov byte [esp + 0x14], al
mov byte [esi], al
mov al, byte [edi + 1]
mov byte [esp + 8], al
mov byte [esp + 0x15], al
mov byte [esi + 1], al
mov al, byte [edi + 2]
mov byte [esp + 6], al
mov byte [esp + 0x16], al
mov byte [esi + 2], al
mov al, byte [edi + 3]
mov byte [esp + 4], al
mov byte [esp + 0x17], al
mov byte [esi + 3], al
mov al, byte [edi + 4]
mov byte [esp + 2], al
mov byte [esp + 0x18], al
mov byte [esi + 4], al
mov al, byte [edi + 5]
mov byte [esp + 0x11], al
mov byte [esp + 0x19], al
mov byte [esi + 5], al
mov ah, byte [edi + 6]
mov byte [esp + 0x1a], ah
mov byte [esi + 6], ah
mov al, byte [edi + 7]
mov byte [esp + 0x1b], al
mov byte [esi + 7], al
mov cl, byte [edi + 8]
mov byte [esp + 0xb], cl
mov byte [esp + 0x1c], cl
mov byte [esi + 8], cl
mov ch, byte [edi + 9]
mov byte [esp + 9], ch
mov byte [esp + 0x1d], ch
mov byte [esi + 9], ch
mov ch, byte [edi + 0xa]
mov byte [esp + 7], ch
mov byte [esp + 0x1e], ch
mov byte [esi + 0xa], ch
mov ch, byte [edi + 0xb]
mov byte [esp + 5], ch
mov byte [esp + 0x1f], ch
mov byte [esi + 0xb], ch
mov cl, byte [edi + 0xc]
mov byte [esp + 3], cl
mov byte [esp + 0x20], cl
mov byte [esi + 0xc], cl
mov cl, byte [edi + 0xd]
mov byte [esp + 0x21], cl
mov byte [esi + 0xd], cl
mov ch, byte [edi + 0xe]
mov byte [esp + 0x13], ch
mov byte [esp + 0x22], ch
mov byte [esi + 0xe], ch
mov ch, byte [edi + 0xf]
mov byte [esp + 0x12], ch
mov byte [esp + 0x23], ch
mov byte [esi + 0xf], ch
add esi, 0x10
mov dword [esp + 0xc], esi
mov esi, 1
nop dword [eax]
mov byte [esp], cl
mov byte [esp + 1], al
movzx ebp, cl
mov al, ah
mov dh, byte [esp + 0xa]
mov ch, byte [esi + 0x7ecb6f]
xor ch, byte [ebp + str.cw]
xor dh, ch
mov byte [esp + 0xa], dh
mov ch, dh
mov dh, byte [esp + 8]
mov bl, byte [esp + 6]
mov bh, byte [esp + 4]
mov ah, byte [esp + 2]
mov cl, byte [esp + 0x11]
movzx ebp, byte [esp + 0x13]
xor dh, byte [ebp + str.cw]
mov byte [esp + 8], dh
movzx ebp, byte [esp + 0x12]
xor bl, byte [ebp + str.cw]
mov byte [esp + 6], bl
mov dl, byte [esp + 3]
movzx ebp, dl
xor bh, byte [ebp + str.cw]
mov byte [esp + 4], bh
mov edi, esi
or edi, 2
mov ebp, esi
xor ebp, 2
add ebp, edi
mov byte [esp + 0x14], ch
mov byte [esp + 0x15], dh
mov byte [esp + 0x16], bl
mov byte [esp + 0x17], bh
xor ah, ch
mov byte [esp + 2], ah
mov byte [esp + 0x18], ah
xor cl, dh
mov byte [esp + 0x11], cl
mov byte [esp + 0x19], cl
mov cl, al
xor cl, bl
mov byte [esp + 0x1a], cl
mov al, byte [esp + 1]
xor al, bh
mov byte [esp + 0x1b], al
mov ch, byte [esp + 0xb]
xor ch, ah
mov byte [esp + 0xb], ch
mov byte [esp + 0x1c], ch
mov dh, byte [esp + 9]
xor dh, byte [esp + 0x11]
mov byte [esp + 9], dh
mov byte [esp + 0x1d], dh
mov bl, byte [esp + 7]
xor bl, cl
mov ah, cl
mov byte [esp + 7], bl
mov byte [esp + 0x1e], bl
mov bh, byte [esp + 5]
xor bh, al
mov byte [esp + 5], bh
mov byte [esp + 0x1f], bh
xor dl, ch
mov byte [esp + 3], dl
mov byte [esp + 0x20], dl
mov cl, byte [esp]
xor cl, dh
mov byte [esp + 0x21], cl
mov ch, byte [esp + 0x13]
xor ch, bl
mov byte [esp + 0x13], ch
mov byte [esp + 0x22], ch
mov ch, byte [esp + 0x12]
xor ch, bh
mov byte [esp + 0x12], ch
mov byte [esp + 0x23], ch
movsd xmm0, qword [esp + 0x14]
movsd xmm1, qword [esp + 0x1c]
mov edi, dword [esp + 0xc]
movsd qword [edi + 8], xmm1
movsd qword [edi], xmm0
add edi, 0x10
mov dword [esp + 0xc], edi
cmp esi, 0xa
lea esi, [esi + 1]
jne 0x79ca30
test ebp, ebp
je 0x79ca30
add esp, 0x24
pop esi
pop edi
pop ebx
pop ebp
ret