Function at 0x418bb0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0xc
mov eax, dword [esp + 0x10]
push ebx
push ebp
push esi
mov esi, dword [eax + 0xc]
mov eax, dword [eax + 0x14]
push edi
mov ebx, esi
xor edi, edi
and ebx, 0xfffffff0
mov dword [esp + 0x20], esi
mov dword [esp + 0x14], eax
jbe 0x418da3
dec ebx
shr ebx, 4
inc ebx
mov esi, ebx
add eax, 4
shl esi, 4
mov dword [esp + 0x18], esi
jmp 0x418bf0
movzx edi, word [eax - 2]
mov ebp, dword [ecx + edi*8]
movzx esi, word [eax - 4]
xor dword [edx + esi*8], ebp
mov edi, dword [ecx + edi*8 + 4]
xor dword [edx + esi*8 + 4], edi
movzx edi, word [eax + 2]
mov ebp, dword [ecx + edi*8]
lea esi, [edx + esi*8]
movzx esi, word [eax]
xor dword [edx + esi*8], ebp
mov edi, dword [ecx + edi*8 + 4]
xor dword [edx + esi*8 + 4], edi
movzx edi, word [eax + 6]
mov ebp, dword [ecx + edi*8]
lea esi, [edx + esi*8]
movzx esi, word [eax + 4]
xor dword [edx + esi*8], ebp
mov edi, dword [ecx + edi*8 + 4]
xor dword [edx + esi*8 + 4], edi
movzx edi, word [eax + 0xa]
mov ebp, dword [ecx + edi*8]
lea esi, [edx + esi*8]
movzx esi, word [eax + 8]
xor dword [edx + esi*8], ebp
mov edi, dword [ecx + edi*8 + 4]
xor dword [edx + esi*8 + 4], edi
movzx edi, word [eax + 0xe]
mov ebp, dword [ecx + edi*8]
lea esi, [edx + esi*8]
movzx esi, word [eax + 0xc]
xor dword [edx + esi*8], ebp
mov edi, dword [ecx + edi*8 + 4]
xor dword [edx + esi*8 + 4], edi
movzx edi, word [eax + 0x12]
mov ebp, dword [ecx + edi*8]
lea esi, [edx + esi*8]
movzx esi, word [eax + 0x10]
xor dword [edx + esi*8], ebp
mov edi, dword [ecx + edi*8 + 4]
xor dword [edx + esi*8 + 4], edi
movzx edi, word [eax + 0x16]
mov ebp, dword [ecx + edi*8]
lea esi, [edx + esi*8]
movzx esi, word [eax + 0x14]
xor dword [edx + esi*8], ebp
mov edi, dword [ecx + edi*8 + 4]
xor dword [edx + esi*8 + 4], edi
movzx edi, word [eax + 0x1a]
mov ebp, dword [ecx + edi*8]
lea esi, [edx + esi*8]
movzx esi, word [eax + 0x18]
xor dword [edx + esi*8], ebp
mov edi, dword [ecx + edi*8 + 4]
xor dword [edx + esi*8 + 4], edi
movzx edi, word [eax + 0x1e]
mov ebp, dword [ecx + edi*8]
lea esi, [edx + esi*8]
movzx esi, word [eax + 0x1c]
xor dword [edx + esi*8], ebp
mov edi, dword [ecx + edi*8 + 4]
xor dword [edx + esi*8 + 4], edi
movzx edi, word [eax + 0x22]
mov ebp, dword [ecx + edi*8]
lea esi, [edx + esi*8]
movzx esi, word [eax + 0x20]
xor dword [edx + esi*8], ebp
mov edi, dword [ecx + edi*8 + 4]
xor dword [edx + esi*8 + 4], edi
movzx edi, word [eax + 0x26]
mov ebp, dword [ecx + edi*8]
lea esi, [edx + esi*8]
movzx esi, word [eax + 0x24]
xor dword [edx + esi*8], ebp
mov edi, dword [ecx + edi*8 + 4]
xor dword [edx + esi*8 + 4], edi
movzx edi, word [eax + 0x2a]
mov ebp, dword [ecx + edi*8]
lea esi, [edx + esi*8]
movzx esi, word [eax + 0x28]
lea esi, [edx + esi*8]
xor dword [esi], ebp
mov edi, dword [ecx + edi*8 + 4]
xor dword [esi + 4], edi
movzx edi, word [eax + 0x2e]
mov ebp, dword [ecx + edi*8]
movzx esi, word [eax + 0x2c]
xor dword [edx + esi*8], ebp
mov edi, dword [ecx + edi*8 + 4]
xor dword [edx + esi*8 + 4], edi
movzx edi, word [eax + 0x32]
mov ebp, dword [ecx + edi*8]
lea esi, [edx + esi*8]
movzx esi, word [eax + 0x30]
xor dword [edx + esi*8], ebp
mov edi, dword [ecx + edi*8 + 4]
xor dword [edx + esi*8 + 4], edi
movzx edi, word [eax + 0x36]
mov ebp, dword [ecx + edi*8]
lea esi, [edx + esi*8]
movzx esi, word [eax + 0x34]
xor dword [edx + esi*8], ebp
mov edi, dword [ecx + edi*8 + 4]
xor dword [edx + esi*8 + 4], edi
movzx edi, word [eax + 0x38]
lea esi, [edx + esi*8]
movzx esi, word [eax + 0x3a]
mov ebp, dword [ecx + esi*8]
mov esi, dword [ecx + esi*8 + 4]
xor esi, dword [edx + edi*8 + 4]
xor ebp, dword [edx + edi*8]
mov dword [esp + 0x10], esi
movzx esi, word [eax + 0x38]
mov dword [edx + esi*8], ebp
mov ebp, dword [esp + 0x10]
add eax, 0x40
dec ebx
mov dword [edx + esi*8 + 4], ebp
jne 0x418bf0
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
cmp edi, esi
jae 0x418dce
jmp 0x418db0
movzx ebx, word [eax + edi*4 + 2]
movzx esi, word [eax + edi*4]
mov ebp, dword [ecx + ebx*8]
xor dword [edx + esi*8], ebp
mov ebx, dword [ecx + ebx*8 + 4]
xor dword [edx + esi*8 + 4], ebx
inc edi
cmp edi, dword [esp + 0x20]
jb 0x418db0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret