Function at 0x401000
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov esi, dword [eax + 4]
mov ecx, dword [eax]
mov eax, esi
mov edx, 0xf0f0f0f
shr eax, 4
mov edi, ecx
and eax, edx
and edi, edx
push 0x1d
xor eax, edi
xor ecx, eax
shl eax, 4
xor esi, eax
mov eax, ecx
mov edx, esi
shr eax, 0x10
and edx, 0xffff
xor eax, edx
mov edx, 0x33333333
xor esi, eax
shl eax, 0x10
xor ecx, eax
mov eax, esi
shr eax, 2
mov edi, ecx
and eax, edx
and edi, edx
mov edx, 0xff00ff
xor eax, edi
xor ecx, eax
shl eax, 2
xor esi, eax
mov eax, ecx
shr eax, 8
mov edi, esi
and eax, edx
and edi, edx
xor eax, edi
xor esi, eax
shl eax, 8
xor ecx, eax
mov edi, esi
shr edi, 1
mov eax, 0x55555555
mov edx, ecx
and edi, eax
and edx, eax
xor edi, edx
mov eax, edi
xor eax, ecx
push eax
call 0xfebb119c
mov dword [ebp - 8], eax
lea eax, [edi + edi]
xor eax, esi
push 0x1d
push eax
call 0xfebb11ac
add esp, 0x10
cmp dword [ebp + 0x10], 0
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
je 0x4012cd
push 0x3f
lea edi, [eax + 8]
mov dword [ebp + 0xc], 4
pop esi
mov eax, dword [edi - 4]
mov ebx, dword [edi - 8]
xor eax, dword [ebp - 8]
xor ebx, dword [ebp - 8]
push 4
push eax
call 0xfebb11e0
mov ecx, eax
mov edx, eax
shr ecx, 0x12
and ecx, esi
push 4
shr edx, 0xa
mov ecx, dword [ecx*4 + 0x423768]
and edx, esi
xor ecx, dword [edx*4 + 0x423568]
mov edx, eax
shr edx, 2
and edx, esi
shr eax, 0x1a
xor ecx, dword [edx*4 + 0x423368]
mov edx, ebx
shr edx, 0x12
and edx, esi
xor ecx, dword [edx*4 + 0x423668]
mov edx, ebx
shr edx, 0xa
and edx, esi
xor ecx, dword [edx*4 + 0x423468]
mov edx, ebx
shr edx, 2
and edx, esi
shr ebx, 0x1a
xor ecx, dword [edx*4 + 0x423268]
xor ecx, dword [eax*4 + 0x423968]
mov eax, dword [edi + 4]
xor ecx, dword [ebx*4 + 0x423868]
mov ebx, dword [edi]
xor dword [ebp - 4], ecx
xor eax, dword [ebp - 4]
xor ebx, dword [ebp - 4]
push eax
call 0xfebb125e
mov ecx, eax
mov edx, eax
shr ecx, 0x12
and ecx, esi
push 4
shr edx, 0xa
mov ecx, dword [ecx*4 + 0x423768]
and edx, esi
xor ecx, dword [edx*4 + 0x423568]
mov edx, eax
shr edx, 2
and edx, esi
shr eax, 0x1a
xor ecx, dword [edx*4 + 0x423368]
mov edx, ebx
shr edx, 0x12
and edx, esi
xor ecx, dword [edx*4 + 0x423668]
mov edx, ebx
shr edx, 0xa
and edx, esi
xor ecx, dword [edx*4 + 0x423468]
mov edx, ebx
shr edx, 2
and edx, esi
shr ebx, 0x1a
xor ecx, dword [edx*4 + 0x423268]
xor ecx, dword [eax*4 + 0x423968]
mov eax, dword [edi + 0xc]
xor ecx, dword [ebx*4 + 0x423868]
mov ebx, dword [edi + 8]
xor dword [ebp - 8], ecx
xor eax, dword [ebp - 8]
xor ebx, dword [ebp - 8]
push eax
call 0xfebb12dd
mov ecx, eax
shr ecx, 0x12
mov edx, eax
and ecx, esi
shr edx, 0xa
mov ecx, dword [ecx*4 + 0x423768]
and edx, esi
push 4
xor ecx, dword [edx*4 + 0x423568]
mov edx, eax
shr edx, 2
and edx, esi
shr eax, 0x1a
xor ecx, dword [edx*4 + 0x423368]
mov edx, ebx
shr edx, 0x12
and edx, esi
xor ecx, dword [edx*4 + 0x423668]
mov edx, ebx
shr edx, 0xa
and edx, esi
xor ecx, dword [edx*4 + 0x423468]
mov edx, ebx
shr edx, 2
and edx, esi
shr ebx, 0x1a
xor ecx, dword [edx*4 + 0x423268]
xor ecx, dword [eax*4 + 0x423968]
mov eax, dword [edi + 0x14]
xor ecx, dword [ebx*4 + 0x423868]
mov ebx, dword [edi + 0x10]
xor dword [ebp - 4], ecx
xor eax, dword [ebp - 4]
xor ebx, dword [ebp - 4]
push eax
call 0xfebb135c
mov ecx, eax
mov edx, eax
shr ecx, 0x12
and ecx, esi
add esp, 0x20
shr edx, 0xa
mov ecx, dword [ecx*4 + 0x423768]
and edx, esi
add edi, 0x20
xor ecx, dword [edx*4 + 0x423568]
mov edx, eax
shr edx, 2
and edx, esi
shr eax, 0x1a
xor ecx, dword [edx*4 + 0x423368]
mov edx, ebx
shr edx, 0x12
and edx, esi
xor ecx, dword [edx*4 + 0x423668]
mov edx, ebx
shr edx, 0xa
and edx, esi
xor ecx, dword [edx*4 + 0x423468]
mov edx, ebx
shr edx, 2
and edx, esi
shr ebx, 0x1a
xor ecx, dword [edx*4 + 0x423268]
xor ecx, dword [eax*4 + 0x423968]
xor ecx, dword [ebx*4 + 0x423868]
xor dword [ebp - 8], ecx
dec dword [ebp + 0xc]
jne 0x4010be
jmp 0xe04412db
push 0x3f
lea edi, [eax + 0x70]
mov dword [ebp + 0xc], 4
pop esi
mov eax, dword [edi + 0xc]
mov ebx, dword [edi + 8]
xor eax, dword [ebp - 8]
xor ebx, dword [ebp - 8]
push 4
push eax
call 0xfebb13fc
mov ecx, eax
mov edx, eax
shr ecx, 0x12
and ecx, esi
push 4
shr edx, 0xa
mov ecx, dword [ecx*4 + 0x423768]
and edx, esi
xor ecx, dword [edx*4 + 0x423568]
mov edx, eax
shr edx, 2
and edx, esi
shr eax, 0x1a
xor ecx, dword [edx*4 + 0x423368]
mov edx, ebx
shr edx, 0x12
and edx, esi
xor ecx, dword [edx*4 + 0x423668]
mov edx, ebx
shr edx, 0xa
and edx, esi
xor ecx, dword [edx*4 + 0x423468]
mov edx, ebx
shr edx, 2
and edx, esi
shr ebx, 0x1a
xor ecx, dword [edx*4 + 0x423268]
xor ecx, dword [eax*4 + 0x423968]
mov eax, dword [edi + 4]
xor ecx, dword [ebx*4 + 0x423868]
xor dword [ebp - 4], ecx
xor eax, dword [ebp - 4]
mov ebx, dword [ebp - 4]
xor ebx, dword [edi]
push eax
call 0xfebb147a
mov ecx, eax
mov edx, eax
shr ecx, 0x12
and ecx, esi
push 4
shr edx, 0xa
mov ecx, dword [ecx*4 + 0x423768]
and edx, esi
xor ecx, dword [edx*4 + 0x423568]
mov edx, eax
shr edx, 2
and edx, esi
shr eax, 0x1a
xor ecx, dword [edx*4 + 0x423368]
mov edx, ebx
shr edx, 0x12
and edx, esi
xor ecx, dword [edx*4 + 0x423668]
mov edx, ebx
shr edx, 0xa
and edx, esi
xor ecx, dword [edx*4 + 0x423468]
mov edx, ebx
shr edx, 2
and edx, esi
shr ebx, 0x1a
xor ecx, dword [edx*4 + 0x423268]
xor ecx, dword [eax*4 + 0x423968]
mov eax, dword [edi - 4]
xor ecx, dword [ebx*4 + 0x423868]
mov ebx, dword [edi - 8]
xor dword [ebp - 8], ecx
xor eax, dword [ebp - 8]
xor ebx, dword [ebp - 8]
push eax
call 0xfebb14f9
mov ecx, eax
shr ecx, 0x12
mov edx, eax
and ecx, esi
shr edx, 0xa
mov ecx, dword [ecx*4 + 0x423768]
and edx, esi
push 4
xor ecx, dword [edx*4 + 0x423568]
mov edx, eax
shr edx, 2
and edx, esi
shr eax, 0x1a
xor ecx, dword [edx*4 + 0x423368]
mov edx, ebx
shr edx, 0x12
and edx, esi
xor ecx, dword [edx*4 + 0x423668]
mov edx, ebx
shr edx, 0xa
and edx, esi
xor ecx, dword [edx*4 + 0x423468]
mov edx, ebx
shr edx, 2
and edx, esi
shr ebx, 0x1a
xor ecx, dword [edx*4 + 0x423268]
xor ecx, dword [eax*4 + 0x423968]
mov eax, dword [edi - 0xc]
xor ecx, dword [ebx*4 + 0x423868]
mov ebx, dword [edi - 0x10]
xor dword [ebp - 4], ecx
xor eax, dword [ebp - 4]
xor ebx, dword [ebp - 4]
push eax
call 0xfebb1578
mov ecx, eax
mov edx, eax
shr ecx, 0x12
and ecx, esi
add esp, 0x20
shr edx, 0xa
mov ecx, dword [ecx*4 + 0x423768]
and edx, esi
sub edi, 0x20
xor ecx, dword [edx*4 + 0x423568]
mov edx, eax
shr edx, 2
and edx, esi
shr eax, 0x1a
xor ecx, dword [edx*4 + 0x423368]
mov edx, ebx
shr edx, 0x12
and edx, esi
xor ecx, dword [edx*4 + 0x423668]
mov edx, ebx
shr edx, 0xa
and edx, esi
xor ecx, dword [edx*4 + 0x423468]
mov edx, ebx
shr edx, 2
and edx, esi
shr ebx, 0x1a
xor ecx, dword [edx*4 + 0x423268]
xor ecx, dword [eax*4 + 0x423968]
xor ecx, dword [ebx*4 + 0x423868]
xor dword [ebp - 8], ecx
dec dword [ebp + 0xc]
jne 0x4012da
push 3
push dword [ebp - 4]
call 0xfebb15fc
push 3
mov esi, eax
push dword [ebp - 8]
call 0xfebb1608
mov ecx, eax
mov edx, 0x55555555
shr ecx, 1
mov edi, esi
and ecx, edx
and edi, edx
mov edx, 0xff00ff
xor ecx, edi
add esp, 0x10
xor esi, ecx
add ecx, ecx
xor eax, ecx
mov ecx, esi
shr ecx, 8
mov edi, eax
and ecx, edx
and edi, edx
mov edx, 0x33333333
xor ecx, edi
xor eax, ecx
shl ecx, 8
xor esi, ecx
mov ecx, eax
shr ecx, 2
mov edi, esi
and ecx, edx
and edi, edx
xor ecx, edi
xor esi, ecx
shl ecx, 2
xor eax, ecx
mov ecx, esi
mov edx, eax
shr ecx, 0x10
and edx, 0xffff
xor ecx, edx
mov edx, 0xf0f0f0f
xor eax, ecx
shl ecx, 0x10
xor esi, ecx
mov ecx, eax
shr ecx, 4
mov edi, esi
and ecx, edx
and edi, edx
mov edx, dword [ebp + 8]
xor ecx, edi
mov edi, ecx
xor edi, esi
shl ecx, 4
mov dword [edx], edi
xor ecx, eax
pop edi
pop esi
mov dword [edx + 4], ecx
pop ebx
leave
ret