Function at 0x4010d0
Capabilities:
Encode data using xor

Disassembly:
push ebx
push ebp
push esi
push edi
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 4]
mov eax, dword [ecx]
mov ecx, eax
and ecx, 0xf0f0f0f
mov esi, edx
shr esi, 4
and esi, 0xf0f0f0f
xor ecx, esi
xor eax, ecx
shl ecx, 4
xor edx, ecx
mov esi, eax
shr esi, 0x10
mov ecx, edx
and ecx, 0xffff
xor ecx, esi
xor edx, ecx
shl ecx, 0x10
xor eax, ecx
mov ecx, eax
and ecx, 0x33333333
mov esi, edx
shr esi, 2
and esi, 0x33333333
xor ecx, esi
xor eax, ecx
shl ecx, 2
xor edx, ecx
mov esi, eax
shr esi, 8
and esi, 0xff00ff
mov ecx, edx
and ecx, 0xff00ff
xor ecx, esi
xor edx, ecx
shl ecx, 8
xor eax, ecx
mov esi, eax
mov ecx, edx
shr ecx, 1
and ecx, 0x55555555
and esi, 0x55555555
xor esi, ecx
mov ecx, esi
xor ecx, eax
lea eax, [esi + esi]
xor eax, edx
mov edx, dword [esp + 0x1c]
ror ecx, 0x1d
ror eax, 0x1d
test edx, edx
je 0x401399
mov edx, dword [esp + 0x18]
lea esi, [edx + 8]
mov dword [esp + 0x18], 4
mov edi, dword [esi - 8]
mov edx, dword [esi - 4]
xor edi, ecx
xor edx, ecx
ror edx, 4
mov ebx, edi
shr ebx, 0x12
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x43e400]
mov ebp, edx
shr ebp, 0x12
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x43e500]
mov ebp, edi
shr ebp, 2
and ebp, 0x3f
xor ebx, dword [ebp*4 + section..rdata]
mov ebp, edx
shr ebp, 2
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x43e100]
mov ebp, edi
shr ebp, 0xa
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x43e200]
mov ebp, edx
shr ebp, 0xa
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x43e300]
shr edi, 0x1a
xor ebx, dword [edi*4 + 0x43e600]
mov edi, dword [esi]
shr edx, 0x1a
xor ebx, dword [edx*4 + 0x43e700]
mov edx, dword [esi + 4]
xor eax, ebx
xor edi, eax
xor edx, eax
ror edx, 4
mov ebx, edi
shr ebx, 0x12
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x43e400]
mov ebp, edx
shr ebp, 0x12
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x43e500]
mov ebp, edi
shr ebp, 2
and ebp, 0x3f
xor ebx, dword [ebp*4 + section..rdata]
mov ebp, edx
shr ebp, 2
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x43e100]
mov ebp, edi
shr ebp, 0xa
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x43e200]
mov ebp, edx
shr ebp, 0xa
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x43e300]
shr edi, 0x1a
mov ebp, dword [edi*4 + 0x43e600]
mov edi, dword [esi + 8]
xor ebx, ebp
shr edx, 0x1a
mov ebp, dword [edx*4 + 0x43e700]
mov edx, dword [esi + 0xc]
xor ebx, ebp
xor ecx, ebx
xor edi, ecx
xor edx, ecx
mov ebx, edi
ror edx, 4
shr ebx, 0x12
and ebx, 0x3f
mov ebp, edx
mov ebx, dword [ebx*4 + 0x43e400]
shr ebp, 0x12
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x43e500]
mov ebp, edi
shr ebp, 2
and ebp, 0x3f
xor ebx, dword [ebp*4 + section..rdata]
mov ebp, edx
shr ebp, 2
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x43e100]
mov ebp, edi
shr ebp, 0xa
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x43e200]
mov ebp, edx
shr ebp, 0xa
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x43e300]
shr edi, 0x1a
xor ebx, dword [edi*4 + 0x43e600]
mov edi, dword [esi + 0x10]
shr edx, 0x1a
mov ebp, dword [edx*4 + 0x43e700]
mov edx, dword [esi + 0x14]
xor ebx, ebp
xor eax, ebx
xor edi, eax
xor edx, eax
ror edx, 4
mov ebx, edi
shr ebx, 0x12
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x43e400]
mov ebp, edx
shr ebp, 0x12
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x43e500]
mov ebp, edi
shr ebp, 2
and ebp, 0x3f
xor ebx, dword [ebp*4 + section..rdata]
mov ebp, edx
shr ebp, 2
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x43e100]
mov ebp, edi
shr ebp, 0xa
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x43e200]
mov ebp, edx
shr ebp, 0xa
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x43e300]
shr edi, 0x1a
mov ebp, dword [edi*4 + 0x43e600]
shr edx, 0x1a
mov edi, dword [edx*4 + 0x43e700]
mov edx, dword [esp + 0x18]
xor ebx, ebp
xor ebx, edi
xor ecx, ebx
add esi, 0x20
dec edx
mov dword [esp + 0x18], edx
jne 0x401185
jmp 0x4015c0
mov esi, 0x78
mov edx, dword [esp + 0x18]
mov edi, dword [esi + edx]
mov edx, dword [esi + edx + 4]
xor edi, ecx
xor edx, ecx
ror edx, 4
mov ebx, edi
shr ebx, 0x12
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x43e400]
mov ebp, edx
shr ebp, 0x12
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x43e500]
mov ebp, edi
shr ebp, 2
and ebp, 0x3f
xor ebx, dword [ebp*4 + section..rdata]
mov ebp, edx
shr ebp, 2
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x43e100]
mov ebp, edi
shr ebp, 0xa
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x43e200]
mov ebp, edx
shr ebp, 0xa
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x43e300]
shr edi, 0x1a
xor ebx, dword [edi*4 + 0x43e600]
shr edx, 0x1a
mov edi, dword [edx*4 + 0x43e700]
mov edx, dword [esp + 0x18]
xor ebx, edi
mov edi, dword [esi + edx - 8]
mov edx, dword [esi + edx - 4]
xor eax, ebx
xor edi, eax
xor edx, eax
ror edx, 4
mov ebx, edi
shr ebx, 0x12
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x43e400]
mov ebp, edx
shr ebp, 0x12
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x43e500]
mov ebp, edi
shr ebp, 2
and ebp, 0x3f
xor ebx, dword [ebp*4 + section..rdata]
mov ebp, edx
shr ebp, 2
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x43e100]
mov ebp, edi
shr ebp, 0xa
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x43e200]
mov ebp, edx
shr ebp, 0xa
shr edi, 0x1a
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x43e300]
mov ebp, dword [edi*4 + 0x43e600]
shr edx, 0x1a
mov edi, dword [edx*4 + 0x43e700]
mov edx, dword [esp + 0x18]
xor ebx, ebp
xor ebx, edi
mov edi, dword [esi + edx - 0x10]
mov edx, dword [esi + edx - 0xc]
xor ecx, ebx
xor edi, ecx
xor edx, ecx
ror edx, 4
mov ebx, edi
shr ebx, 0x12
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x43e400]
mov ebp, edx
shr ebp, 0x12
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x43e500]
mov ebp, edi
shr ebp, 2
and ebp, 0x3f
xor ebx, dword [ebp*4 + section..rdata]
mov ebp, edx
shr ebp, 2
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x43e100]
mov ebp, edi
shr ebp, 0xa
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x43e200]
mov ebp, edx
shr ebp, 0xa
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x43e300]
shr edi, 0x1a
xor ebx, dword [edi*4 + 0x43e600]
shr edx, 0x1a
mov edi, dword [edx*4 + 0x43e700]
mov edx, dword [esp + 0x18]
xor ebx, edi
mov edi, dword [esi + edx - 0x18]
mov edx, dword [esi + edx - 0x14]
xor eax, ebx
xor edi, eax
xor edx, eax
ror edx, 4
mov ebx, edi
shr ebx, 0x12
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x43e400]
mov ebp, edx
shr ebp, 0x12
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x43e500]
mov ebp, edi
shr ebp, 2
and ebp, 0x3f
xor ebx, dword [ebp*4 + section..rdata]
mov ebp, edx
shr ebp, 2
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x43e100]
mov ebp, edi
shr ebp, 0xa
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x43e200]
mov ebp, edx
shr ebp, 0xa
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x43e300]
shr edi, 0x1a
mov ebp, dword [edi*4 + 0x43e600]
shr edx, 0x1a
mov edi, dword [edx*4 + 0x43e700]
xor ebx, ebp
xor ebx, edi
sub esi, 0x20
xor ecx, ebx
test esi, esi
jg 0x40139e
ror eax, 3
ror ecx, 3
mov esi, ecx
shr esi, 1
and esi, 0x55555555
mov edx, eax
and edx, 0x55555555
xor edx, esi
xor eax, edx
add edx, edx
xor ecx, edx
mov esi, eax
shr esi, 8
and esi, 0xff00ff
mov edx, ecx
and edx, 0xff00ff
xor edx, esi
xor ecx, edx
shl edx, 8
xor eax, edx
mov esi, ecx
shr esi, 2
and esi, 0x33333333
mov edx, eax
and edx, 0x33333333
xor edx, esi
xor eax, edx
shl edx, 2
xor ecx, edx
mov esi, eax
shr esi, 0x10
mov edx, ecx
and edx, 0xffff
xor edx, esi
xor ecx, edx
shl edx, 0x10
xor eax, edx
mov esi, ecx
shr esi, 4
mov edx, eax
and esi, 0xf0f0f0f
and edx, 0xf0f0f0f
xor edx, esi
mov esi, edx
xor esi, eax
mov eax, dword [esp + 0x14]
pop edi
mov dword [eax], esi
pop esi
shl edx, 4
xor edx, ecx
pop ebp
mov dword [eax + 4], edx
pop ebx
ret