Function at 0x40c1d0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 8
xor edx, edx
push ebx
push ebp
push esi
mov esi, ecx
mov dh, byte [esi]
movzx ecx, byte [esi + 2]
push edi
movzx edi, byte [esi + 6]
mov dl, byte [esi + 1]
mov dword [esp + 0x14], 3
shl edx, 8
or edx, ecx
movzx ecx, byte [esi + 3]
shl edx, 8
or edx, ecx
xor ecx, ecx
mov ch, byte [esi + 4]
mov cl, byte [esi + 5]
movzx esi, byte [esi + 7]
shl ecx, 8
or ecx, edi
shl ecx, 8
or esi, ecx
mov ecx, edx
shr ecx, 4
xor ecx, esi
and ecx, 0xf0f0f0f
xor esi, ecx
shl ecx, 4
xor edx, ecx
mov ecx, edx
shr ecx, 0x10
xor ecx, esi
and ecx, 0xffff
xor esi, ecx
shl ecx, 0x10
xor edx, ecx
mov ecx, esi
shr ecx, 2
xor ecx, edx
and ecx, 0x33333333
xor edx, ecx
shl ecx, 2
xor esi, ecx
mov ecx, esi
shr ecx, 8
xor ecx, edx
and ecx, 0xff00ff
xor edx, ecx
shl ecx, 8
xor esi, ecx
mov ecx, edx
shr edx, 1
shl ecx, 0x1f
or ecx, edx
mov edx, esi
xor edx, ecx
and edx, 0x55555555
xor esi, edx
xor ecx, edx
mov edx, esi
shl edx, 0x1f
shr esi, 1
or edx, esi
mov dword [esp + 0x10], 2
lea esp, [esp]
mov ebp, dword [eax]
mov esi, edx
shr esi, 0x1c
mov ebx, edx
shl ebx, 4
or esi, ebx
mov ebx, dword [eax + 4]
and esi, 0xfcfcfcfc
xor esi, ebx
mov edi, edx
and edi, 0xfcfcfcfc
xor edi, ebp
mov ebx, edi
shr ebx, 0x10
and ebx, 0x3fc
mov ebx, dword [ebx + 0x423108]
mov ebp, edi
shr ebp, 8
and ebp, 0x3fc
xor ebx, dword [ebp + 0x423108]
mov ebp, esi
shr ebp, 0x10
and ebp, 0x3fc
xor ebx, dword [ebp + 0x423908]
mov ebp, esi
shr ebp, 8
and ebp, 0x3fc
xor ebx, dword [ebp + 0x423908]
mov ebp, edi
shr ebp, 0x18
and ebp, 0xfc
xor ebx, dword [ebp + 0x423108]
mov ebp, esi
shr ebp, 0x18
and ebp, 0xfc
xor ebx, dword [ebp + 0x423908]
and edi, 0x3fc
xor ebx, dword [edi + 0x423108]
and esi, 0x3fc
xor ebx, dword [esi + 0x423908]
mov ebp, dword [eax + 8]
xor ecx, ebx
mov esi, ecx
shr esi, 0x1c
mov ebx, ecx
shl ebx, 4
or esi, ebx
mov ebx, dword [eax + 0xc]
mov edi, ecx
and edi, 0xfcfcfcfc
xor edi, ebp
and esi, 0xfcfcfcfc
xor esi, ebx
mov ebx, edi
shr ebx, 0x10
and ebx, 0x3fc
mov ebx, dword [ebx + 0x423108]
mov ebp, edi
shr ebp, 8
and ebp, 0x3fc
xor ebx, dword [ebp + 0x423108]
mov ebp, esi
shr ebp, 0x10
and ebp, 0x3fc
xor ebx, dword [ebp + 0x423908]
mov ebp, esi
shr ebp, 8
and ebp, 0x3fc
xor ebx, dword [ebp + 0x423908]
mov ebp, edi
shr ebp, 0x18
and ebp, 0xfc
xor ebx, dword [ebp + 0x423108]
mov ebp, esi
shr ebp, 0x18
and ebp, 0xfc
xor ebx, dword [ebp + 0x423908]
and edi, 0x3fc
xor ebx, dword [edi + 0x423108]
mov ebp, dword [eax + 0x10]
and esi, 0x3fc
xor ebx, dword [esi + 0x423908]
xor edx, ebx
add eax, 0x10
mov esi, edx
shr esi, 0x1c
mov ebx, edx
shl ebx, 4
or esi, ebx
mov ebx, dword [eax + 4]
and esi, 0xfcfcfcfc
xor esi, ebx
mov edi, edx
and edi, 0xfcfcfcfc
xor edi, ebp
mov ebx, edi
shr ebx, 0x10
and ebx, 0x3fc
mov ebx, dword [ebx + 0x423108]
mov ebp, edi
shr ebp, 8
and ebp, 0x3fc
xor ebx, dword [ebp + 0x423108]
mov ebp, esi
shr ebp, 0x10
and ebp, 0x3fc
xor ebx, dword [ebp + 0x423908]
mov ebp, esi
shr ebp, 8
and ebp, 0x3fc
xor ebx, dword [ebp + 0x423908]
mov ebp, edi
shr ebp, 0x18
and ebp, 0xfc
xor ebx, dword [ebp + 0x423108]
mov ebp, esi
shr ebp, 0x18
and ebp, 0xfc
xor ebx, dword [ebp + 0x423908]
and edi, 0x3fc
xor ebx, dword [edi + 0x423108]
and esi, 0x3fc
xor ebx, dword [esi + 0x423908]
mov ebp, dword [eax + 8]
xor ecx, ebx
mov esi, ecx
shr esi, 0x1c
mov ebx, ecx
shl ebx, 4
or esi, ebx
mov ebx, dword [eax + 0xc]
mov edi, ecx
and edi, 0xfcfcfcfc
xor edi, ebp
and esi, 0xfcfcfcfc
xor esi, ebx
mov ebx, edi
shr ebx, 0x10
and ebx, 0x3fc
mov ebx, dword [ebx + 0x423108]
mov ebp, edi
shr ebp, 8
and ebp, 0x3fc
xor ebx, dword [ebp + 0x423108]
mov ebp, esi
shr ebp, 0x10
and ebp, 0x3fc
xor ebx, dword [ebp + 0x423908]
mov ebp, esi
shr ebp, 8
and ebp, 0x3fc
xor ebx, dword [ebp + 0x423908]
mov ebp, edi
shr ebp, 0x18
and ebp, 0xfc
xor ebx, dword [ebp + 0x423108]
mov ebp, esi
shr ebp, 0x18
and ebp, 0xfc
xor ebx, dword [ebp + 0x423908]
and esi, 0x3fc
and edi, 0x3fc
xor ebx, dword [edi + 0x423108]
xor ebx, dword [esi + 0x423908]
mov ebp, dword [eax + 0x10]
xor edx, ebx
add eax, 0x10
mov esi, edx
shr esi, 0x1c
mov ebx, edx
shl ebx, 4
or esi, ebx
mov ebx, dword [eax + 4]
and esi, 0xfcfcfcfc
xor esi, ebx
mov edi, edx
and edi, 0xfcfcfcfc
xor edi, ebp
mov ebx, edi
shr ebx, 0x10
and ebx, 0x3fc
mov ebx, dword [ebx + 0x423108]
mov ebp, edi
shr ebp, 8
and ebp, 0x3fc
xor ebx, dword [ebp + 0x423108]
mov ebp, esi
shr ebp, 0x10
and ebp, 0x3fc
xor ebx, dword [ebp + 0x423908]
mov ebp, esi
shr ebp, 8
and ebp, 0x3fc
xor ebx, dword [ebp + 0x423908]
mov ebp, edi
shr ebp, 0x18
and ebp, 0xfc
xor ebx, dword [ebp + 0x423108]
mov ebp, esi
shr ebp, 0x18
and ebp, 0xfc
xor ebx, dword [ebp + 0x423908]
and edi, 0x3fc
xor ebx, dword [edi + 0x423108]
and esi, 0x3fc
xor ebx, dword [esi + 0x423908]
mov ebp, dword [eax + 8]
xor ecx, ebx
mov esi, ecx
shr esi, 0x1c
mov ebx, ecx
shl ebx, 4
or esi, ebx
mov ebx, dword [eax + 0xc]
mov edi, ecx
and edi, 0xfcfcfcfc
xor edi, ebp
and esi, 0xfcfcfcfc
xor esi, ebx
mov ebx, edi
shr ebx, 0x10
and ebx, 0x3fc
mov ebx, dword [ebx + 0x423108]
mov ebp, edi
shr ebp, 8
and ebp, 0x3fc
xor ebx, dword [ebp + 0x423108]
mov ebp, esi
shr ebp, 0x10
and ebp, 0x3fc
xor ebx, dword [ebp + 0x423908]
mov ebp, esi
shr ebp, 8
and ebp, 0x3fc
xor ebx, dword [ebp + 0x423908]
mov ebp, edi
shr ebp, 0x18
and ebp, 0xfc
xor ebx, dword [ebp + 0x423108]
mov ebp, esi
shr ebp, 0x18
and ebp, 0xfc
xor ebx, dword [ebp + 0x423908]
and esi, 0x3fc
and edi, 0x3fc
xor ebx, dword [edi + 0x423108]
xor ebx, dword [esi + 0x423908]
mov ebp, dword [eax + 0x10]
xor edx, ebx
add eax, 0x10
mov esi, edx
shr esi, 0x1c
mov ebx, edx
shl ebx, 4
or esi, ebx
mov ebx, dword [eax + 4]
and esi, 0xfcfcfcfc
xor esi, ebx
mov edi, edx
and edi, 0xfcfcfcfc
xor edi, ebp
mov ebx, edi
shr ebx, 0x10
and ebx, 0x3fc
mov ebx, dword [ebx + 0x423108]
mov ebp, edi
shr ebp, 8
and ebp, 0x3fc
xor ebx, dword [ebp + 0x423108]
mov ebp, esi
shr ebp, 0x10
and ebp, 0x3fc
xor ebx, dword [ebp + 0x423908]
mov ebp, esi
shr ebp, 8
and ebp, 0x3fc
xor ebx, dword [ebp + 0x423908]
mov ebp, edi
shr ebp, 0x18
and ebp, 0xfc
xor ebx, dword [ebp + 0x423108]
mov ebp, esi
shr ebp, 0x18
and ebp, 0xfc
xor ebx, dword [ebp + 0x423908]
and edi, 0x3fc
xor ebx, dword [edi + 0x423108]
and esi, 0x3fc
xor ebx, dword [esi + 0x423908]
mov ebp, dword [eax + 8]
xor ecx, ebx
mov esi, ecx
shr esi, 0x1c
mov ebx, ecx
shl ebx, 4
or esi, ebx
mov ebx, dword [eax + 0xc]
mov edi, ecx
and edi, 0xfcfcfcfc
xor edi, ebp
and esi, 0xfcfcfcfc
xor esi, ebx
mov ebx, edi
shr ebx, 0x10
mov ebp, edi
and ebx, 0x3fc
mov ebx, dword [ebx + 0x423108]
shr ebp, 8
and ebp, 0x3fc
xor ebx, dword [ebp + 0x423108]
mov ebp, esi
shr ebp, 0x10
and ebp, 0x3fc
xor ebx, dword [ebp + 0x423908]
mov ebp, esi
shr ebp, 8
and ebp, 0x3fc
xor ebx, dword [ebp + 0x423908]
mov ebp, edi
shr ebp, 0x18
and ebp, 0xfc
xor ebx, dword [ebp + 0x423108]
mov ebp, esi
shr ebp, 0x18
and ebp, 0xfc
xor ebx, dword [ebp + 0x423908]
and edi, 0x3fc
mov ebp, dword [edi + 0x423108]
and esi, 0x3fc
mov edi, dword [esi + 0x423908]
mov esi, dword [esp + 0x10]
xor ebx, ebp
xor ebx, edi
xor edx, ebx
add eax, 0x10
dec esi
mov dword [esp + 0x10], esi
jne 0x40c290
dec dword [esp + 0x14]
je 0x40c7df
mov esi, edx
mov edx, ecx
mov ecx, esi
jmp 0x40c284
mov eax, ecx
add ecx, ecx
shr eax, 0x1f
or eax, ecx
mov ecx, edx
xor ecx, eax
and ecx, 0x55555555
xor edx, ecx
xor eax, ecx
mov ecx, edx
add edx, edx
shr ecx, 0x1f
or ecx, edx
mov edx, eax
shr edx, 8
xor edx, ecx
and edx, 0xff00ff
xor ecx, edx
shl edx, 8
xor eax, edx
mov edx, eax
shr edx, 2
xor edx, ecx
and edx, 0x33333333
xor ecx, edx
shl edx, 2
xor eax, edx
mov esi, dword [esp + 0x1c]
mov edx, ecx
shr edx, 0x10
xor edx, eax
and edx, 0xffff
xor eax, edx
shl edx, 0x10
xor ecx, edx
mov edx, ecx
shr edx, 4
xor edx, eax
and edx, 0xf0f0f0f
xor eax, edx
shl edx, 4
xor ecx, edx
mov edx, ecx
shr edx, 0x18
mov byte [esi], dl
mov edx, ecx
shr edx, 0x10
mov byte [esi + 1], dl
mov edx, ecx
mov byte [esi + 3], cl
shr edx, 8
mov ecx, eax
shr ecx, 0x18
mov byte [esi + 2], dl
mov byte [esi + 4], cl
mov edx, eax
shr edx, 0x10
mov ecx, eax
pop edi
shr ecx, 8
mov byte [esi + 5], dl
mov byte [esi + 6], cl
mov byte [esi + 7], al
pop esi
pop ebp
pop ebx
add esp, 8
ret