Function at 0x401324
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff8
push ebx
push esi
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
shr ebx, 3
mov edx, dword [eax]
mov eax, dword [ebp + 8]
mov ecx, dword [ecx + 4]
mov dword [ebp - 8], ebx
add eax, 8
mov ebx, dword [ebp - 8]
test ebx, ebx
je 0x401520
inc edx
and edx, 0xff
mov esi, dword [eax + edx*4]
add ecx, esi
and ecx, 0xff
mov ebx, dword [eax + ecx*4]
mov dword [ebp - 4], ebx
mov dword [eax + edx*4], ebx
mov dword [eax + ecx*4], esi
inc edx
mov ebx, dword [ebp - 4]
and edx, 0xff
add esi, ebx
and esi, 0xff
mov bl, byte [eax + esi*4]
mov esi, dword [ebp + 0x10]
xor bl, byte [esi]
mov esi, dword [ebp + 0x14]
mov byte [esi], bl
mov esi, dword [eax + edx*4]
add ecx, esi
and ecx, 0xff
mov ebx, dword [eax + ecx*4]
mov dword [ebp - 4], ebx
mov dword [eax + edx*4], ebx
mov dword [eax + ecx*4], esi
inc edx
mov ebx, dword [ebp - 4]
and edx, 0xff
add esi, ebx
and esi, 0xff
mov bl, byte [eax + esi*4]
mov esi, dword [ebp + 0x10]
xor bl, byte [esi + 1]
mov esi, dword [ebp + 0x14]
mov byte [esi + 1], bl
mov esi, dword [eax + edx*4]
add ecx, esi
and ecx, 0xff
mov ebx, dword [eax + ecx*4]
mov dword [ebp - 4], ebx
mov dword [eax + edx*4], ebx
mov dword [eax + ecx*4], esi
inc edx
mov ebx, dword [ebp - 4]
and edx, 0xff
add esi, ebx
and esi, 0xff
mov bl, byte [eax + esi*4]
mov esi, dword [ebp + 0x10]
xor bl, byte [esi + 2]
mov esi, dword [ebp + 0x14]
mov byte [esi + 2], bl
mov esi, dword [eax + edx*4]
add ecx, esi
and ecx, 0xff
mov ebx, dword [eax + ecx*4]
mov dword [ebp - 4], ebx
mov dword [eax + edx*4], ebx
mov dword [eax + ecx*4], esi
inc edx
mov ebx, dword [ebp - 4]
and edx, 0xff
add esi, ebx
and esi, 0xff
mov bl, byte [eax + esi*4]
mov esi, dword [ebp + 0x10]
xor bl, byte [esi + 3]
mov esi, dword [ebp + 0x14]
mov byte [esi + 3], bl
mov esi, dword [eax + edx*4]
add ecx, esi
and ecx, 0xff
mov ebx, dword [eax + ecx*4]
mov dword [ebp - 4], ebx
mov dword [eax + edx*4], ebx
mov dword [eax + ecx*4], esi
inc edx
mov ebx, dword [ebp - 4]
and edx, 0xff
add esi, ebx
and esi, 0xff
mov bl, byte [eax + esi*4]
mov esi, dword [ebp + 0x10]
xor bl, byte [esi + 4]
mov esi, dword [ebp + 0x14]
mov byte [esi + 4], bl
mov esi, dword [eax + edx*4]
add ecx, esi
and ecx, 0xff
mov ebx, dword [eax + ecx*4]
mov dword [ebp - 4], ebx
mov dword [eax + edx*4], ebx
mov dword [eax + ecx*4], esi
inc edx
mov ebx, dword [ebp - 4]
and edx, 0xff
add esi, ebx
and esi, 0xff
mov bl, byte [eax + esi*4]
mov esi, dword [ebp + 0x10]
xor bl, byte [esi + 5]
mov esi, dword [ebp + 0x14]
mov byte [esi + 5], bl
mov esi, dword [eax + edx*4]
add ecx, esi
and ecx, 0xff
mov ebx, dword [eax + ecx*4]
mov dword [ebp - 4], ebx
mov dword [eax + edx*4], ebx
mov dword [eax + ecx*4], esi
inc edx
mov ebx, dword [ebp - 4]
and edx, 0xff
add esi, ebx
and esi, 0xff
mov bl, byte [eax + esi*4]
mov esi, dword [ebp + 0x10]
xor bl, byte [esi + 6]
mov esi, dword [ebp + 0x14]
mov byte [esi + 6], bl
mov esi, dword [eax + edx*4]
add ecx, esi
and ecx, 0xff
mov ebx, dword [eax + ecx*4]
mov dword [ebp - 4], ebx
mov dword [eax + edx*4], ebx
mov dword [eax + ecx*4], esi
mov ebx, dword [ebp - 4]
add esi, ebx
and esi, 0xff
mov bl, byte [eax + esi*4]
mov esi, dword [ebp + 0x10]
xor bl, byte [esi + 7]
mov esi, dword [ebp + 0x14]
mov byte [esi + 7], bl
add dword [ebp + 0x10], 8
add dword [ebp + 0x14], 8
dec dword [ebp - 8]
jne 0x401351
mov ebx, dword [ebp + 0xc]
and ebx, 7
mov dword [ebp - 8], ebx
mov ebx, dword [ebp - 8]
test ebx, ebx
je 0x4016f1
inc edx
and edx, 0xff
mov esi, dword [eax + edx*4]
add ecx, esi
and ecx, 0xff
mov ebx, dword [eax + ecx*4]
mov dword [ebp - 4], ebx
mov dword [eax + edx*4], ebx
mov dword [eax + ecx*4], esi
mov ebx, dword [ebp - 4]
add esi, ebx
and esi, 0xff
mov bl, byte [eax + esi*4]
mov esi, dword [ebp + 0x10]
xor bl, byte [esi]
mov esi, dword [ebp + 0x14]
mov byte [esi], bl
dec dword [ebp - 8]
je 0x4016f1
inc edx
and edx, 0xff
mov esi, dword [eax + edx*4]
add ecx, esi
and ecx, 0xff
mov ebx, dword [eax + ecx*4]
mov dword [ebp - 4], ebx
mov dword [eax + edx*4], ebx
mov dword [eax + ecx*4], esi
mov ebx, dword [ebp - 4]
add esi, ebx
and esi, 0xff
mov bl, byte [eax + esi*4]
mov esi, dword [ebp + 0x10]
xor bl, byte [esi + 1]
mov esi, dword [ebp + 0x14]
mov byte [esi + 1], bl
dec dword [ebp - 8]
je 0x4016f1
inc edx
and edx, 0xff
mov esi, dword [eax + edx*4]
add ecx, esi
and ecx, 0xff
mov ebx, dword [eax + ecx*4]
mov dword [ebp - 4], ebx
mov dword [eax + edx*4], ebx
mov dword [eax + ecx*4], esi
mov ebx, dword [ebp - 4]
add esi, ebx
and esi, 0xff
mov bl, byte [eax + esi*4]
mov esi, dword [ebp + 0x10]
xor bl, byte [esi + 2]
mov esi, dword [ebp + 0x14]
mov byte [esi + 2], bl
dec dword [ebp - 8]
je 0x4016f1
inc edx
and edx, 0xff
mov esi, dword [eax + edx*4]
add ecx, esi
and ecx, 0xff
mov ebx, dword [eax + ecx*4]
mov dword [ebp - 4], ebx
mov dword [eax + edx*4], ebx
mov dword [eax + ecx*4], esi
mov ebx, dword [ebp - 4]
add esi, ebx
and esi, 0xff
mov bl, byte [eax + esi*4]
mov esi, dword [ebp + 0x10]
xor bl, byte [esi + 3]
mov esi, dword [ebp + 0x14]
mov byte [esi + 3], bl
dec dword [ebp - 8]
je 0x4016f1
inc edx
and edx, 0xff
mov esi, dword [eax + edx*4]
add ecx, esi
and ecx, 0xff
mov ebx, dword [eax + ecx*4]
mov dword [ebp - 4], ebx
mov dword [eax + edx*4], ebx
mov dword [eax + ecx*4], esi
mov ebx, dword [ebp - 4]
add esi, ebx
and esi, 0xff
mov bl, byte [eax + esi*4]
mov esi, dword [ebp + 0x10]
xor bl, byte [esi + 4]
mov esi, dword [ebp + 0x14]
mov byte [esi + 4], bl
dec dword [ebp - 8]
je 0x4016f1
inc edx
and edx, 0xff
mov esi, dword [eax + edx*4]
add ecx, esi
and ecx, 0xff
mov ebx, dword [eax + ecx*4]
mov dword [ebp - 4], ebx
mov dword [eax + edx*4], ebx
mov dword [eax + ecx*4], esi
mov ebx, dword [ebp - 4]
add esi, ebx
and esi, 0xff
mov bl, byte [eax + esi*4]
mov esi, dword [ebp + 0x10]
xor bl, byte [esi + 5]
mov esi, dword [ebp + 0x14]
mov byte [esi + 5], bl
dec dword [ebp - 8]
je 0x4016f1
inc edx
and edx, 0xff
mov esi, dword [eax + edx*4]
add ecx, esi
and ecx, 0xff
mov ebx, dword [eax + ecx*4]
mov dword [ebp - 4], ebx
mov dword [eax + edx*4], ebx
mov dword [eax + ecx*4], esi
mov ebx, dword [ebp - 4]
add esi, ebx
and esi, 0xff
mov bl, byte [eax + esi*4]
mov esi, dword [ebp + 0x10]
xor bl, byte [esi + 6]
mov esi, dword [ebp + 0x14]
mov byte [esi + 6], bl
dec dword [ebp - 8]
jne 0x401534
mov eax, dword [ebp + 8]
mov dword [eax], edx
mov edx, dword [ebp + 8]
mov dword [edx + 4], ecx
pop esi
pop ebx
pop ecx
pop ecx
pop ebp
ret