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

Disassembly:
mov edx, dword [esp + 4]
push ebx
push ebp
push esi
test edx, edx
push edi
je 0x77cf32
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x77cf32
mov ebp, dword [esp + 0x18]
cmp ebp, 0x80
je 0x77ca4a
cmp ebp, 0xc0
je 0x77ca42
cmp ebp, 0x100
je 0x77ca42
pop edi
pop esi
pop ebp
mov eax, 0xfffffffe
pop ebx
ret
cmp ebp, 0x80
jne 0x77ca56
mov dword [eax + 0xf0], 0xa
jmp 0x77ca6b
xor ecx, ecx
cmp ebp, 0xc0
setne cl
lea ecx, [ecx + ecx + 0xc]
mov dword [eax + 0xf0], ecx
mov ecx, dword [edx]
lea edi, [eax + 4]
mov esi, ecx
ror esi, 8
and esi, 0xff00ff00
rol ecx, 8
and ecx, 0xff00ff
or esi, ecx
mov dword [eax], esi
mov esi, dword [edx + 4]
mov ecx, esi
ror ecx, 8
and ecx, 0xff00ff00
rol esi, 8
and esi, 0xff00ff
or ecx, esi
mov dword [edi], ecx
mov esi, dword [edx + 8]
mov ecx, esi
ror ecx, 8
and ecx, 0xff00ff00
rol esi, 8
and esi, 0xff00ff
or ecx, esi
mov dword [eax + 8], ecx
mov esi, dword [edx + 0xc]
mov ecx, esi
ror ecx, 8
and ecx, 0xff00ff00
rol esi, 8
and esi, 0xff00ff
or ecx, esi
cmp ebp, 0x80
mov dword [eax + 0xc], ecx
jne 0x77cbf8
mov ebp, ecx
xor ecx, ecx
mov edx, ebp
mov dword [esp + 0x14], edx
mov cl, byte [esp + 0x16]
mov esi, dword [ecx*4 + 0x775970]
xor ecx, ecx
mov cl, dh
xor esi, 0x1000000
and esi, 0xff000000
mov ecx, dword [ecx*4 + 0x775970]
and ecx, 0xff0000
xor esi, ecx
mov ecx, edx
shr ecx, 0x18
and edx, 0xff
mov ecx, dword [ecx*4 + 0x775970]
mov edx, dword [edx*4 + 0x775970]
and ecx, 0xff
xor esi, ecx
mov ecx, dword [eax]
and edx, 0xff00
xor esi, edx
mov edx, dword [eax + 8]
xor esi, ecx
mov ecx, dword [edi]
xor ecx, esi
mov dword [eax + 0x10], esi
xor edx, ecx
mov dword [eax + 0x14], ecx
mov dword [eax + 0x18], edx
xor edx, ebp
mov dword [eax + 0x1c], edx
mov ecx, edi
mov esi, 0x777174
mov edx, dword [ecx + 0x18]
add ecx, 0x10
mov dword [esp + 0x14], edx
xor eax, eax
xor ebx, ebx
mov al, dh
mov bl, byte [esp + 0x16]
add esi, 4
mov eax, dword [eax*4 + 0x775970]
mov edi, dword [ebx*4 + 0x775970]
and eax, 0xff0000
and edi, 0xff000000
xor eax, edi
mov edi, edx
shr edi, 0x18
and edx, 0xff
mov edi, dword [edi*4 + 0x775970]
mov edx, dword [edx*4 + 0x775970]
and edi, 0xff
xor eax, edi
mov edi, dword [ecx - 4]
and edx, 0xff00
xor eax, edx
mov edx, dword [esi - 4]
xor eax, edi
xor eax, edx
mov dword [ecx + 0xc], eax
mov edx, dword [ecx]
xor edx, eax
mov dword [ecx + 0x10], edx
mov eax, dword [ecx + 4]
xor eax, edx
mov dword [ecx + 0x14], eax
mov edx, dword [ecx + 8]
xor edx, eax
cmp esi, 0x777198
mov dword [ecx + 0x18], edx
jne 0x77cb66
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret
mov ecx, dword [edx + 0x10]
mov esi, ecx
ror esi, 8
and esi, 0xff00ff00
rol ecx, 8
and ecx, 0xff00ff
or esi, ecx
mov dword [eax + 0x10], esi
mov ecx, dword [edx + 0x14]
mov esi, ecx
ror esi, 8
and esi, 0xff00ff00
rol ecx, 8
and ecx, 0xff00ff
or esi, ecx
cmp ebp, 0xc0
mov dword [eax + 0x14], esi
jne 0x77cd63
mov edx, esi
xor ecx, ecx
mov dword [esp + 0x14], edx
mov edi, dword [edi]
mov cl, byte [esp + 0x16]
mov esi, dword [ecx*4 + 0x775970]
xor ecx, ecx
mov cl, dh
xor esi, 0x1000000
and esi, 0xff000000
mov ecx, dword [ecx*4 + 0x775970]
and ecx, 0xff0000
xor esi, ecx
mov ecx, edx
shr ecx, 0x18
and edx, 0xff
mov ecx, dword [ecx*4 + 0x775970]
mov edx, dword [edx*4 + 0x775970]
and ecx, 0xff
xor esi, ecx
mov ecx, dword [eax]
and edx, 0xff00
xor esi, edx
mov edx, dword [eax + 0xc]
xor esi, ecx
mov ecx, dword [eax + 8]
xor edi, esi
mov dword [eax + 0x18], esi
xor ecx, edi
mov dword [eax + 0x1c], edi
xor edx, ecx
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], edx
add eax, 0x28
mov esi, 0x777174
mov ecx, dword [eax - 0x18]
mov ebx, dword [eax - 4]
mov edx, dword [eax - 0x14]
xor ecx, ebx
xor edx, ecx
mov dword [eax], ecx
mov dword [eax + 4], edx
mov edx, dword [eax + 4]
add eax, 0x18
mov dword [esp + 0x14], edx
xor ecx, ecx
xor ebx, ebx
mov bl, byte [esp + 0x16]
mov cl, dh
add esi, 4
mov ecx, dword [ecx*4 + 0x775970]
mov edi, dword [ebx*4 + 0x775970]
and ecx, 0xff0000
and edi, 0xff000000
xor ecx, edi
mov edi, edx
shr edi, 0x18
and edx, 0xff
mov edi, dword [edi*4 + 0x775970]
mov edx, dword [edx*4 + 0x775970]
and edi, 0xff
xor ecx, edi
mov edi, dword [eax - 0x28]
and edx, 0xff00
xor ecx, edx
mov edx, dword [esi - 4]
xor ecx, edi
xor ecx, edx
mov dword [eax - 0x10], ecx
mov edx, dword [eax - 0x24]
xor edx, ecx
mov dword [eax - 0xc], edx
mov ecx, dword [eax - 0x20]
xor ecx, edx
mov dword [eax - 8], ecx
mov edx, dword [eax - 0x1c]
xor edx, ecx
cmp esi, 0x777190
mov dword [eax - 4], edx
jne 0x77ccbd
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret
mov ecx, dword [edx + 0x18]
mov esi, ecx
ror esi, 8
and esi, 0xff00ff00
rol ecx, 8
and ecx, 0xff00ff
or esi, ecx
mov dword [eax + 0x18], esi
mov edx, dword [edx + 0x1c]
mov ecx, edx
ror ecx, 8
and ecx, 0xff00ff00
rol edx, 8
and edx, 0xff00ff
or ecx, edx
cmp ebp, 0x100
mov dword [eax + 0x1c], ecx
jne 0x77cf2b
mov edx, ecx
xor ecx, ecx
mov dword [esp + 0x14], edx
mov edi, dword [edi]
mov cl, byte [esp + 0x16]
mov esi, dword [ecx*4 + 0x775970]
xor ecx, ecx
mov cl, dh
xor esi, 0x1000000
and esi, 0xff000000
mov ecx, dword [ecx*4 + 0x775970]
and ecx, 0xff0000
xor esi, ecx
mov ecx, edx
shr ecx, 0x18
and edx, 0xff
mov ecx, dword [ecx*4 + 0x775970]
mov edx, dword [edx*4 + 0x775970]
and ecx, 0xff
xor esi, ecx
mov ecx, dword [eax]
and edx, 0xff00
xor esi, edx
mov edx, dword [eax + 0xc]
xor esi, ecx
mov ecx, dword [eax + 8]
xor edi, esi
mov dword [eax + 0x20], esi
xor ecx, edi
mov dword [eax + 0x24], edi
xor edx, ecx
mov dword [eax + 0x28], ecx
mov dword [eax + 0x2c], edx
add eax, 0x30
mov edi, 0x777174
mov ecx, dword [eax - 4]
xor edx, edx
mov dword [esp + 0x14], ecx
add eax, 0x20
mov dl, byte [esp + 0x16]
xor ebx, ebx
add edi, 4
mov esi, dword [edx*4 + 0x775970]
xor edx, edx
mov dl, ch
and esi, 0xff0000
mov edx, dword [edx*4 + 0x775970]
and edx, 0xff00
xor esi, edx
mov edx, ecx
shr edx, 0x18
and ecx, 0xff
mov edx, dword [edx*4 + 0x775970]
mov ecx, dword [ecx*4 + 0x775970]
and edx, 0xff000000
xor esi, edx
and ecx, 0xff
mov edx, dword [eax - 0x38]
xor esi, ecx
mov ecx, dword [eax - 0x40]
xor esi, ecx
mov ecx, dword [eax - 0x3c]
xor ecx, esi
mov dword [eax - 0x20], esi
mov dword [eax - 0x1c], ecx
xor edx, ecx
mov ecx, dword [eax - 0x34]
mov dword [eax - 0x18], edx
xor ecx, edx
mov dword [eax - 0x14], ecx
mov edx, dword [eax - 0x14]
mov dword [esp + 0x14], edx
xor ecx, ecx
mov bl, byte [esp + 0x16]
mov cl, dh
mov ecx, dword [ecx*4 + 0x775970]
mov esi, dword [ebx*4 + 0x775970]
and ecx, 0xff0000
and esi, 0xff000000
xor ecx, esi
mov esi, edx
shr esi, 0x18
and edx, 0xff
mov esi, dword [esi*4 + 0x775970]
mov edx, dword [edx*4 + 0x775970]
and esi, 0xff
xor ecx, esi
mov esi, dword [eax - 0x30]
and edx, 0xff00
xor ecx, edx
mov edx, dword [edi - 4]
xor ecx, esi
xor ecx, edx
mov dword [eax - 0x10], ecx
mov edx, dword [eax - 0x2c]
xor edx, ecx
mov dword [eax - 0xc], edx
mov ecx, dword [eax - 0x28]
xor ecx, edx
mov dword [eax - 8], ecx
mov edx, dword [eax - 0x24]
xor edx, ecx
cmp edi, 0x77718c
mov dword [eax - 4], edx
jne 0x77ce28
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
ret