Function at 0x10027aa0
Capabilities:
Encode data using xor

Disassembly:
push ecx
mov eax, dword [esp + 8]
mov edx, dword [eax]
push ebx
mov ebx, dword [eax + 4]
mov eax, dword [ecx + 0x1070]
push ebp
push esi
push edi
mov edi, dword [ecx + 0x60]
bswap edx
xor edx, dword [edi]
bswap ebx
lea esi, [edi + 8]
mov dword [esp + 0x18], 2
mov ecx, edx
shr ecx, 0x10
movzx ecx, cl
mov ecx, dword [eax + ecx*4 + 0x400]
mov dword [esp + 0x10], ebx
mov ebp, edx
shr ebp, 0x18
add ecx, dword [eax + ebp*4]
mov ebx, edx
shr ebx, 8
movzx ebp, bl
xor ecx, dword [eax + ebp*4 + 0x800]
mov ebx, dword [esp + 0x10]
movzx ebp, dl
add ecx, dword [eax + ebp*4 + 0xc00]
mov dword [esp + 0x10], edx
xor ecx, dword [esi - 4]
xor ebx, ecx
mov ecx, ebx
shr ecx, 0x10
movzx ecx, cl
mov ecx, dword [eax + ecx*4 + 0x400]
mov ebp, ebx
shr ebp, 0x18
add ecx, dword [eax + ebp*4]
mov edx, ebx
shr edx, 8
movzx ebp, dl
xor ecx, dword [eax + ebp*4 + 0x800]
mov edx, dword [esp + 0x10]
movzx ebp, bl
add ecx, dword [eax + ebp*4 + 0xc00]
mov dword [esp + 0x10], ebx
xor edx, ecx
xor edx, dword [esi]
mov ecx, edx
shr ecx, 0x10
movzx ecx, cl
mov ecx, dword [eax + ecx*4 + 0x400]
mov ebp, edx
shr ebp, 0x18
add ecx, dword [eax + ebp*4]
mov ebx, edx
shr ebx, 8
movzx ebp, bl
xor ecx, dword [eax + ebp*4 + 0x800]
mov ebx, dword [esp + 0x10]
movzx ebp, dl
add ecx, dword [eax + ebp*4 + 0xc00]
mov dword [esp + 0x10], edx
xor ecx, dword [esi + 4]
xor ebx, ecx
mov ecx, ebx
shr ecx, 0x10
movzx ecx, cl
mov ecx, dword [eax + ecx*4 + 0x400]
mov ebp, ebx
shr ebp, 0x18
add ecx, dword [eax + ebp*4]
mov edx, ebx
shr edx, 8
movzx ebp, dl
xor ecx, dword [eax + ebp*4 + 0x800]
mov edx, dword [esp + 0x10]
movzx ebp, bl
add ecx, dword [eax + ebp*4 + 0xc00]
mov dword [esp + 0x10], ebx
xor ecx, dword [esi + 8]
xor edx, ecx
mov ecx, edx
shr ecx, 0x10
movzx ecx, cl
mov ecx, dword [eax + ecx*4 + 0x400]
mov ebp, edx
shr ebp, 0x18
add ecx, dword [eax + ebp*4]
mov ebx, edx
shr ebx, 8
movzx ebp, bl
xor ecx, dword [eax + ebp*4 + 0x800]
movzx ebp, dl
add ecx, dword [eax + ebp*4 + 0xc00]
mov ebx, dword [esp + 0x10]
xor ecx, dword [esi + 0xc]
mov dword [esp + 0x10], edx
xor ebx, ecx
mov ecx, ebx
shr ecx, 0x10
movzx ecx, cl
mov ecx, dword [eax + ecx*4 + 0x400]
mov ebp, ebx
shr ebp, 0x18
add ecx, dword [eax + ebp*4]
mov edx, ebx
shr edx, 8
movzx ebp, dl
xor ecx, dword [eax + ebp*4 + 0x800]
mov edx, dword [esp + 0x10]
movzx ebp, bl
add ecx, dword [eax + ebp*4 + 0xc00]
mov dword [esp + 0x10], ebx
xor ecx, dword [esi + 0x10]
add esi, 0x20
xor edx, ecx
mov ecx, edx
shr ecx, 0x10
movzx ecx, cl
mov ecx, dword [eax + ecx*4 + 0x400]
mov ebp, edx
shr ebp, 0x18
add ecx, dword [eax + ebp*4]
mov ebx, edx
shr ebx, 8
movzx ebp, bl
xor ecx, dword [eax + ebp*4 + 0x800]
mov ebx, dword [esp + 0x10]
movzx ebp, dl
add ecx, dword [eax + ebp*4 + 0xc00]
mov dword [esp + 0x10], edx
xor ecx, dword [esi - 0xc]
xor ebx, ecx
mov ecx, ebx
shr ecx, 0x10
movzx ecx, cl
mov ecx, dword [eax + ecx*4 + 0x400]
mov ebp, ebx
shr ebp, 0x18
add ecx, dword [eax + ebp*4]
mov edx, ebx
shr edx, 8
movzx ebp, dl
xor ecx, dword [eax + ebp*4 + 0x800]
mov edx, dword [esp + 0x10]
movzx ebp, bl
add ecx, dword [eax + ebp*4 + 0xc00]
xor ecx, dword [esi - 8]
xor edx, ecx
dec dword [esp + 0x18]
jne 0x10027ac8
mov eax, dword [edi + 0x44]
mov ecx, dword [esp + 0x1c]
xor eax, ebx
test ecx, ecx
je 0x10027ccd
mov esi, dword [ecx]
jmp 0x10027ccf
xor esi, esi
bswap eax
xor eax, esi
mov esi, dword [esp + 0x20]
mov dword [esi], eax
test ecx, ecx
je 0x10027cf5
lea eax, [ecx + 4]
test eax, eax
je 0x10027cf5
mov eax, dword [eax]
bswap edx
pop edi
xor edx, eax
mov dword [esi + 4], edx
pop esi
pop ebp
pop ebx
pop ecx
ret 0xc
xor eax, eax
bswap edx
pop edi
xor edx, eax
mov dword [esi + 4], edx
pop esi
pop ebp
pop ebx
pop ecx
ret 0xc