Function at 0x401127
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x38
push ebx
push ebp
push esi
xor eax, eax
push edi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x10], eax
mov ebp, 0x1010101
mov ebx, dword [ecx + eax*4]
mov ecx, ebx
shr ecx, 7
mov eax, ecx
and eax, ebp
mov edx, eax
mov dword [esp + 0x40], eax
imul edx, edx, 0x1b
mov eax, edx
shr eax, 1
xor eax, ebx
shr eax, 6
and eax, ebp
mov dword [esp + 0x44], eax
imul eax, eax, 0x1b
mov dword [esp + 0x20], eax
shr eax, 1
mov dword [esp + 0x3c], eax
xor eax, edx
shr eax, 1
xor eax, ebx
shr eax, 5
and eax, ebp
imul eax, eax, 0x1b
mov dword [esp + 0x24], eax
mov eax, ecx
mov ebp, 0x10101
and eax, ebp
mov dword [esp + 0x30], eax
imul eax, eax, 0x1b
mov dword [esp + 0x14], edx
mov edx, ecx
and ecx, 1
mov dword [esp + 0x28], ecx
imul ecx, ecx, 0x1b
and edx, 0x101
mov dword [esp + 0x38], eax
mov esi, edx
shr eax, 1
imul esi, esi, 0x1b
xor eax, ebx
mov dword [esp + 0x2c], ecx
shr eax, 6
and eax, ebp
mov ebp, ecx
mov ecx, dword [esp + 0x10]
mov edi, esi
shr edi, 1
mov dword [esp + 0x34], eax
xor edi, ebx
mov ebx, dword [esp + 0x18]
shr ebp, 1
mov eax, dword [ebx + ecx*4]
mov ecx, eax
and ecx, 0xffffff1f
add ecx, ecx
xor ebp, eax
and eax, 0xffffff3f
xor ecx, eax
mov eax, dword [esp + 0x10]
shl ecx, 2
xor ecx, dword [ebx + eax*4]
shr edi, 6
shl ecx, 0x10
mov dword [esp + 0x1c], ecx
and edi, 0x101
mov ecx, edx
imul edx, edx, 0x360000
imul ecx, ecx, 0x6c0000
mov eax, edi
imul eax, eax, 0x360000
and ecx, 0xfdfdffff
xor ecx, eax
mov eax, edi
imul eax, eax, 0x1b
xor ecx, edx
shr ebp, 6
and ecx, 0xfefe0000
xor dword [esp + 0x1c], ecx
and ebp, 1
shr eax, 1
xor eax, esi
imul edi, edi, 0x1b0000
mov ecx, dword [esp + 0x10]
shr eax, 1
mov esi, ebx
mov edx, dword [esi + ecx*4]
xor eax, edx
shr eax, 5
and eax, 0x101
imul eax, eax, 0x1b0000
mov esi, dword [esp + 0x1c]
xor esi, eax
mov eax, dword [esp + 0x20]
xor esi, edi
mov edi, dword [esp + 0x24]
mov ecx, edi
xor ecx, eax
xor eax, dword [esp + 0x14]
xor ecx, edx
and eax, 0x7f7f0000
shr ecx, 1
xor ecx, eax
mov eax, dword [esp + 0x14]
xor eax, edx
and eax, 0x3f3f0000
shr ecx, 1
xor ecx, eax
shr ecx, 1
mov eax, edx
and eax, 0x1f1f0000
xor ecx, eax
shr ecx, 0xd
or esi, ecx
mov ecx, dword [esp + 0x28]
mov edx, ecx
imul ecx, ecx, 0x1b000000
mov eax, ebp
imul edx, edx, 0x6c000000
imul ebp, ebp, 0x1b
imul eax, eax, 0x36000000
and edx, 0xfdffffff
xor edx, eax
mov eax, dword [esp + 0x10]
shr ebp, 1
mov eax, dword [ebx + eax*4]
xor ebp, dword [esp + 0x2c]
shl eax, 0x19
xor edx, eax
mov eax, dword [esp + 0x10]
shr ebp, 1
xor ebp, dword [ebx + eax*4]
and edx, 0xfe000000
shr ebp, 5
and ebp, 1
imul ebp, ebp, 0x1b000000
xor edx, ebp
mov ebp, dword [ebx + eax*4]
mov eax, ebp
shl eax, 3
xor eax, ebp
shl eax, 0x18
xor edx, eax
mov eax, dword [esp + 0x20]
xor edx, ecx
mov ecx, edi
xor ecx, dword [esp + 0x14]
xor eax, ebp
xor ecx, ebp
shr ecx, 1
and eax, 0x7f7f7f00
xor ecx, eax
mov eax, dword [esp + 0x14]
shr ecx, 1
and eax, 0x3f3f3f00
xor ecx, eax
shr ecx, 1
mov eax, ebp
and eax, 0x1f1f1f00
xor ecx, eax
shr ecx, 5
or edx, ecx
mov ecx, dword [esp + 0x34]
mov eax, ecx
imul ecx, ecx, 0x1b
shr ecx, 1
imul eax, eax, 0x3600
xor ecx, dword [esp + 0x38]
xor esi, edx
mov edx, dword [esp + 0x30]
shr ecx, 1
imul edx, edx, 0x6c00
xor ecx, ebp
shr ecx, 5
and ecx, 0x10101
imul ecx, ecx, 0x1b00
and edx, 0xfdfdfdff
xor edx, eax
mov eax, ebp
and eax, 0xffff1f1f
shl eax, 3
xor eax, ebp
shl eax, 8
and edx, 0xfefefe00
xor edx, ecx
mov ecx, dword [esp + 0x14]
xor edx, eax
and ecx, 0xff7fffff
xor ecx, dword [esp + 0x3c]
mov eax, edi
xor eax, ebp
and ecx, 0x3f800000
shr eax, 2
xor ecx, eax
shr ecx, 1
mov eax, ebp
and eax, 0x1f000000
xor ecx, eax
mov eax, dword [esp + 0x44]
shr ecx, 0x15
imul eax, eax, 0x36
or edx, ecx
xor esi, edx
mov edx, dword [esp + 0x40]
mov ecx, edx
imul edx, edx, 0x36
imul ecx, ecx, 0x6c
and ecx, 0xfdfdfdfd
xor ecx, eax
xor ecx, edx
lea eax, [ebp*2]
xor ecx, eax
mov eax, ebp
and eax, 0xff1f1f1f
add eax, eax
and ebp, 0xff3f3f3f
xor eax, ebp
and ecx, 0xfefefefe
xor esi, ecx
shl eax, 2
xor esi, eax
mov eax, dword [esp + 0x10]
xor esi, edi
xor esi, dword [esp + 0x20]
mov ecx, ebx
xor esi, dword [esp + 0x14]
mov ebp, 0x1010101
mov dword [ecx + eax*4], esi
inc eax
mov dword [esp + 0x10], eax
cmp eax, 4
jl 0x40113d
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret