Function at 0x4185a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
push ebx
push esi
push edi
mov ebx, dword [ebp + 0x10]
mov esi, dword [ebp + 0xc]
test esi, esi
js 0x4185bd
shr esi, 2
mov edi, dword [ebx + esi*4]
dec esi
push edi
jns 0x4185b6
mov dword [ebp + 0x10], esp
mov dword [ebp - 4], ecx
mov edx, dword [ebp + 0x10]
mov ecx, 8
lea ebx, [ebp - 0xc]
mov byte [ebx], 0
inc ebx
dec ecx
jne 0x4185ce
xor ecx, ecx
mov esi, dword [ebp - 4]
dec esi
test esi, esi
jl 0x4185fb
inc esi
xor ebx, ebx
mov bl, byte [eax]
mov bl, byte [edx + ebx]
mov edi, ecx
and edi, 0xff
xor byte [ebp + edi - 0xc], bl
inc ecx
and cl, 7
inc eax
dec esi
jne 0x4185e0
mov al, byte [ebp - 0xc]
xor al, byte [ebp - 0xb]
xor al, byte [ebp - 0xa]
xor al, byte [ebp - 9]
xor al, byte [ebp - 8]
xor al, byte [ebp - 7]
xor al, byte [ebp - 6]
xor al, byte [ebp - 5]
xor ecx, ecx
xor ebx, ebx
mov bl, byte [ebp - 0xc]
movzx ebx, byte [edx + ebx]
mov bl, byte [edx + ebx]
mov byte [ebp - 0xc], bl
xor ebx, ebx
mov bl, byte [ebp - 0xb]
movzx ebx, byte [edx + ebx]
mov bl, byte [edx + ebx]
mov byte [ebp - 0xb], bl
xor ebx, ebx
mov bl, byte [ebp - 0xa]
movzx ebx, byte [edx + ebx]
mov bl, byte [edx + ebx]
mov byte [ebp - 0xa], bl
xor ebx, ebx
mov bl, byte [ebp - 9]
movzx ebx, byte [edx + ebx]
mov bl, byte [edx + ebx]
mov byte [ebp - 9], bl
xor ebx, ebx
mov bl, byte [ebp - 8]
movzx ebx, byte [edx + ebx]
mov bl, byte [edx + ebx]
mov byte [ebp - 8], bl
xor ebx, ebx
mov bl, byte [ebp - 7]
movzx ebx, byte [edx + ebx]
mov bl, byte [edx + ebx]
mov byte [ebp - 7], bl
xor ebx, ebx
mov bl, byte [ebp - 6]
movzx ebx, byte [edx + ebx]
mov bl, byte [edx + ebx]
mov byte [ebp - 6], bl
xor ebx, ebx
mov bl, byte [ebp - 5]
movzx ebx, byte [edx + ebx]
mov bl, byte [edx + ebx]
mov byte [ebp - 5], bl
xor ebx, ebx
mov bl, al
movzx ebx, byte [edx + ebx]
mov bl, byte [edx + ebx]
movzx esi, byte [ebp + 8]
movzx esi, byte [edx + esi]
xor bl, byte [edx + esi]
mov byte [ebp + 8], bl
xor ebx, ebx
mov bl, al
xor al, byte [edx + ebx]
xor ebx, ebx
mov bl, al
mov bl, byte [edx + ebx]
xor bl, byte [ebp - 0xc]
xor bl, byte [ebp - 0xb]
and ebx, 0xff
mov bl, byte [ebx + 0x4223e4]
xor bl, byte [ebp + 8]
mov esi, dword [ebp + 0x18]
mov byte [esi + ecx], bl
xor ebx, ebx
mov bl, al
mov bl, byte [edx + ebx]
xor bl, byte [ebp - 0xa]
xor bl, byte [ebp - 9]
and ebx, 0xff
mov bl, byte [ebx + 0x4223e4]
xor bl, byte [ebp + 8]
mov esi, dword [ebp + 0x18]
mov byte [esi + ecx + 1], bl
xor ebx, ebx
mov bl, al
mov bl, byte [edx + ebx]
xor bl, byte [ebp - 8]
xor bl, byte [ebp - 7]
and ebx, 0xff
mov bl, byte [ebx + 0x4223e4]
xor bl, byte [ebp + 8]
mov esi, dword [ebp + 0x18]
mov byte [esi + ecx + 2], bl
xor ebx, ebx
mov bl, al
mov bl, byte [edx + ebx]
xor bl, byte [ebp - 6]
xor bl, byte [ebp - 5]
and ebx, 0xff
mov bl, byte [ebx + 0x4223e4]
xor bl, byte [ebp + 8]
mov esi, dword [ebp + 0x18]
mov byte [esi + ecx + 3], bl
xor ebx, ebx
mov bl, byte [ebp + 8]
xor al, byte [edx + ebx]
xor ebx, ebx
mov bl, al
movzx ebx, byte [edx + ebx]
mov bl, byte [edx + ebx]
movzx esi, byte [ebp - 0xc]
xor bl, byte [edx + esi]
mov byte [ebp + 8], bl
xor ebx, ebx
mov bl, al
mov bl, byte [edx + ebx]
xor bl, byte [ebp - 0xc]
xor bl, byte [ebp - 0xb]
and ebx, 0xff
mov bl, byte [ebx + 0x4223e4]
xor bl, byte [ebp + 8]
mov esi, dword [ebp + 0x18]
mov byte [esi + ecx + 4], bl
xor ebx, ebx
mov bl, al
mov bl, byte [edx + ebx]
xor bl, byte [ebp - 0xa]
xor bl, byte [ebp - 9]
and ebx, 0xff
mov bl, byte [ebx + 0x4223e4]
xor bl, byte [ebp + 8]
mov esi, dword [ebp + 0x18]
mov byte [esi + ecx + 5], bl
xor ebx, ebx
mov bl, al
mov bl, byte [edx + ebx]
xor bl, byte [ebp - 8]
xor bl, byte [ebp - 7]
and ebx, 0xff
mov bl, byte [ebx + 0x4223e4]
xor bl, byte [ebp + 8]
mov esi, dword [ebp + 0x18]
mov byte [esi + ecx + 6], bl
xor ebx, ebx
mov bl, al
mov bl, byte [edx + ebx]
xor bl, byte [ebp - 6]
xor bl, byte [ebp - 5]
and ebx, 0xff
mov bl, byte [ebx + 0x4223e4]
xor bl, byte [ebp + 8]
mov esi, dword [ebp + 0x18]
mov byte [esi + ecx + 7], bl
add ecx, 8
cmp ecx, 0x1ff
jle 0x418615
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret 0x14