Function at 0xa807b8
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push esi
push edi
mov esi, dword [ebx + 4]
mov ecx, esi
shr ecx, 0x10
movzx edx, cl
mov eax, esi
shr eax, 0x18
mov ecx, dword [eax*8 + 0x14c60]
xor ecx, dword [edx*8 + 0x14460]
mov eax, dword [eax*8 + 0x14c64]
xor eax, dword [edx*8 + 0x14464]
mov edx, esi
shr edx, 8
movzx edx, dl
xor ecx, dword [edx*8 + 0x13c60]
xor eax, dword [edx*8 + 0x13c64]
mov edx, dword [ebx]
shr edx, 0x18
xor ecx, dword [edx*8 + 0x12c60]
xor eax, dword [edx*8 + 0x12c64]
mov edx, dword [ebx]
shr edx, 0x10
movzx edx, dl
xor ecx, dword [edx*8 + 0x12460]
xor eax, dword [edx*8 + 0x12464]
mov edx, dword [ebx]
shr edx, 8
movzx edx, dl
xor ecx, dword [edx*8 + 0x11c60]
xor eax, dword [edx*8 + 0x11c64]
movzx edx, byte [ebx + 4]
xor ecx, dword [edx*8 + 0x13460]
xor eax, dword [edx*8 + 0x13464]
movzx edx, byte [ebx]
xor ecx, dword [edx*8 + 0x11460]
xor eax, dword [edx*8 + 0x11464]
push 0x3f
mov dword [ebp - 4], ecx
mov dword [ebp - 8], 8
pop esi
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 4]
add dword [ebp + 8], 4
ror edx, 4
xor edx, dword [ecx]
mov ecx, edx
shr ecx, 0x18
and ecx, esi
mov ecx, dword [ecx*4 + 0x10c60]
mov edi, edx
shr edi, 0x10
and edi, esi
xor ecx, dword [edi*4 + 0x10e60]
mov edi, edx
shr edi, 8
and edi, esi
xor ecx, dword [edi*4 + 0x11060]
and edx, esi
xor ecx, dword [edx*4 + 0x11260]
xor eax, ecx
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
xor edx, dword [ebp - 4]
add dword [ebp + 8], 4
mov ecx, edx
shr ecx, 0x18
and ecx, esi
mov ecx, dword [ecx*4 + 0x10d60]
mov edi, edx
shr edi, 0x10
and edi, esi
xor ecx, dword [edi*4 + 0x10f60]
mov edi, edx
shr edi, 8
and edi, esi
xor ecx, dword [edi*4 + 0x11160]
and edx, esi
xor ecx, dword [edx*4 + 0x11360]
xor eax, ecx
mov ecx, dword [ebp + 8]
add dword [ebp + 8], 4
mov edx, eax
ror edx, 4
xor edx, dword [ecx]
mov ecx, edx
shr ecx, 0x18
and ecx, esi
mov ecx, dword [ecx*4 + 0x10c60]
mov edi, edx
shr edi, 0x10
and edi, esi
xor ecx, dword [edi*4 + 0x10e60]
mov edi, edx
shr edi, 8
and edi, esi
xor ecx, dword [edi*4 + 0x11060]
and edx, esi
xor ecx, dword [edx*4 + 0x11260]
xor dword [ebp - 4], ecx
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
add dword [ebp + 8], 4
xor edx, eax
mov ecx, edx
shr ecx, 0x18
and ecx, esi
mov ecx, dword [ecx*4 + 0x10d60]
mov edi, edx
shr edi, 0x10
and edi, esi
xor ecx, dword [edi*4 + 0x10f60]
mov edi, edx
shr edi, 8
and edi, esi
xor ecx, dword [edi*4 + 0x11160]
and edx, esi
xor ecx, dword [edx*4 + 0x11360]
xor dword [ebp - 4], ecx
dec dword [ebp - 8]
jne 0xa80870
mov ecx, dword [ebp - 4]
mov esi, dword [ebp - 4]
shr ecx, 0x10
movzx ecx, cl
shr esi, 0x18
mov edx, dword [esi*8 + 0x18c60]
xor edx, dword [ecx*8 + 0x18460]
mov esi, dword [esi*8 + 0x18c64]
xor esi, dword [ecx*8 + 0x18464]
mov ecx, dword [ebp - 4]
shr ecx, 8
movzx ecx, cl
xor edx, dword [ecx*8 + 0x17c60]
xor esi, dword [ecx*8 + 0x17c64]
mov ecx, eax
shr ecx, 0x10
movzx ecx, cl
mov edi, eax
shr edi, 0x18
xor edx, dword [edi*8 + 0x16c60]
xor esi, dword [edi*8 + 0x16c64]
xor edx, dword [ecx*8 + 0x16460]
xor esi, dword [ecx*8 + 0x16464]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
xor edx, dword [ecx*8 + 0x15c60]
xor esi, dword [ecx*8 + 0x15c64]
movzx ecx, byte [ebp - 4]
xor edx, dword [ecx*8 + 0x17460]
xor esi, dword [ecx*8 + 0x17464]
movzx eax, al
xor edx, dword [eax*8 + 0x15460]
xor esi, dword [eax*8 + 0x15464]
pop edi
mov dword [ebx + 4], esi
mov dword [ebx], edx
pop esi
leave
ret