Function at 0x43e560
Capabilities:
Encode data using xor

Disassembly:
push ecx
mov eax, dword [esp + 8]
push ebx
push ebp
push esi
lea esi, [eax + 0xb8]
push edi
add eax, 0xabc
mov dword [esp + 0x10], 0x40
lea esp, [esp]
movzx ecx, byte [esi + 0x100]
mov ebx, ecx
and ebx, 3
movzx edi, byte [ebx + 0x477a20]
movzx ebx, byte [ebx + 0x477a24]
mov edx, ecx
shr edx, 2
xor edi, edx
mov edx, ecx
shr edx, 1
xor edx, ecx
shr edx, 1
xor edx, ebx
xor edx, ecx
xor edi, ecx
mov ebx, edx
imul edx, edx, 0x1000100
imul ebx, ebx, 0x10100
add ebx, edi
shl ebx, 8
add ebx, ecx
add edx, edi
mov dword [eax - 0x800], ebx
shl ecx, 0x10
add ecx, edx
mov dword [eax], ecx
movzx edx, byte [esi]
mov ebx, edx
and ebx, 3
movzx edi, byte [ebx + 0x477a20]
movzx ebx, byte [ebx + 0x477a24]
mov ecx, edx
shr ecx, 2
xor edi, ecx
mov ecx, edx
shr ecx, 1
xor ecx, edx
xor edi, edx
shr ecx, 1
xor ecx, ebx
xor ecx, edx
mov ebx, edx
shl ebx, 8
add ebx, edi
imul edi, edi, 0x1000001
mov ebp, ecx
imul ebp, ebp, 0x101
shl ebx, 0x10
shl ecx, 8
add ecx, edx
add ebx, ebp
mov dword [eax - 0x400], ebx
shl ecx, 8
add ecx, edi
mov dword [eax + 0x400], ecx
movzx ecx, byte [esi + 0x101]
mov ebx, ecx
and ebx, 3
movzx edi, byte [ebx + 0x477a20]
movzx ebx, byte [ebx + 0x477a24]
mov edx, ecx
shr edx, 2
xor edi, edx
mov edx, ecx
shr edx, 1
xor edx, ecx
shr edx, 1
xor edx, ebx
xor edx, ecx
mov ebx, edx
imul edx, edx, 0x1000100
imul ebx, ebx, 0x10100
xor edi, ecx
add ebx, edi
shl ebx, 8
add ebx, ecx
shl ecx, 0x10
add edx, edi
add ecx, edx
mov dword [eax - 0x7fc], ebx
mov dword [eax + 4], ecx
movzx edx, byte [esi + 1]
mov ebx, edx
and ebx, 3
movzx edi, byte [ebx + 0x477a20]
movzx ebx, byte [ebx + 0x477a24]
mov ecx, edx
shr ecx, 2
xor edi, ecx
mov ecx, edx
shr ecx, 1
xor ecx, edx
shr ecx, 1
xor ecx, ebx
xor ecx, edx
xor edi, edx
mov ebp, ecx
mov ebx, edx
imul ebp, ebp, 0x101
shl ebx, 8
add ebx, edi
imul edi, edi, 0x1000001
shl ecx, 8
add ecx, edx
shl ebx, 0x10
add ebx, ebp
mov dword [eax - 0x3fc], ebx
shl ecx, 8
add ecx, edi
mov dword [eax + 0x404], ecx
movzx ecx, byte [esi + 0x102]
mov ebx, ecx
and ebx, 3
movzx edi, byte [ebx + 0x477a20]
movzx ebx, byte [ebx + 0x477a24]
mov edx, ecx
shr edx, 2
xor edi, edx
mov edx, ecx
shr edx, 1
xor edx, ecx
shr edx, 1
xor edx, ebx
xor edx, ecx
xor edi, ecx
mov ebx, edx
imul edx, edx, 0x1000100
imul ebx, ebx, 0x10100
add ebx, edi
shl ebx, 8
add ebx, ecx
shl ecx, 0x10
mov dword [eax - 0x7f8], ebx
add edx, edi
add ecx, edx
mov dword [eax + 8], ecx
movzx edx, byte [esi + 2]
mov ebx, edx
and ebx, 3
movzx edi, byte [ebx + 0x477a20]
movzx ebx, byte [ebx + 0x477a24]
mov ecx, edx
shr ecx, 2
xor edi, ecx
mov ecx, edx
shr ecx, 1
xor ecx, edx
shr ecx, 1
xor ecx, ebx
xor ecx, edx
mov ebp, ecx
imul ebp, ebp, 0x101
mov ebx, edx
shl ebx, 8
xor edi, edx
add ebx, edi
shl ebx, 0x10
shl ecx, 8
add ebx, ebp
add ecx, edx
mov dword [eax - 0x3f8], ebx
shl ecx, 8
imul edi, edi, 0x1000001
add ecx, edi
mov dword [eax + 0x408], ecx
movzx ecx, byte [esi + 0x103]
mov ebx, ecx
and ebx, 3
movzx edi, byte [ebx + 0x477a20]
movzx ebx, byte [ebx + 0x477a24]
mov edx, ecx
shr edx, 2
xor edi, edx
mov edx, ecx
shr edx, 1
xor edx, ecx
shr edx, 1
xor edx, ebx
xor edx, ecx
xor edi, ecx
mov ebx, edx
imul edx, edx, 0x1000100
imul ebx, ebx, 0x10100
add ebx, edi
shl ebx, 8
add ebx, ecx
shl ecx, 0x10
mov dword [eax - 0x7f4], ebx
add edx, edi
add ecx, edx
mov dword [eax + 0xc], ecx
movzx edx, byte [esi + 3]
mov ebx, edx
and ebx, 3
movzx edi, byte [ebx + 0x477a20]
movzx ebx, byte [ebx + 0x477a24]
mov ecx, edx
shr ecx, 2
xor edi, ecx
mov ecx, edx
shr ecx, 1
xor ecx, edx
shr ecx, 1
xor ecx, ebx
xor ecx, edx
mov ebp, ecx
xor edi, edx
imul ebp, ebp, 0x101
mov ebx, edx
shl ebx, 8
add ebx, edi
imul edi, edi, 0x1000001
shl ecx, 8
add ecx, edx
shl ebx, 0x10
shl ecx, 8
add ebx, ebp
add ecx, edi
mov dword [eax - 0x3f4], ebx
mov dword [eax + 0x40c], ecx
add eax, 0x10
add esi, 4
sub dword [esp + 0x10], 1
jne 0x43e580
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret