Function at 0x402ec0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [0x434098]
xor eax, ebp
mov dword [ebp - 4], eax
movq xmm0, qword [ecx]
push ebx
mov ebx, dword [0x43d174]
push esi
mov esi, dword [0x43d184]
movq qword [ebp - 0x14], xmm0
movq xmm0, qword [ecx + 8]
mov ecx, esi
shl ecx, 4
add ecx, ebx
movq qword [ebp - 0xc], xmm0
mov eax, dword [ecx]
xor dword [ebp - 0x14], eax
mov eax, dword [ecx + 4]
xor dword [ebp - 0x10], eax
mov eax, dword [ecx + 8]
xor dword [ebp - 0xc], eax
mov eax, dword [ecx + 0xc]
xor dword [ebp - 8], eax
push edi
lea edi, [esi - 1]
mov dword [ebp - 0x28], edx
test edi, edi
je 0x402fe5
mov eax, edi
shl eax, 4
lea esi, [ebx + 8]
add esi, eax
jmp 0x402f30
movq xmm0, qword [ebp - 0x14]
movq qword [ebp - 0x24], xmm0
movq xmm0, qword [ebp - 0xc]
movzx eax, byte [ebp - 0x24]
mov byte [ebp - 0x14], al
movq qword [ebp - 0x1c], xmm0
movzx eax, byte [ebp - 0x17]
mov byte [ebp - 0x13], al
movzx eax, byte [ebp - 0x1a]
mov byte [ebp - 0x12], al
movzx eax, byte [ebp - 0x1d]
mov byte [ebp - 0x11], al
movzx eax, byte [ebp - 0x20]
mov byte [ebp - 0x10], al
movzx eax, byte [ebp - 0x23]
mov byte [ebp - 0xf], al
movzx eax, byte [ebp - 0x16]
mov byte [ebp - 0xe], al
movzx eax, byte [ebp - 0x19]
mov byte [ebp - 0xd], al
movzx eax, byte [ebp - 0x1c]
mov byte [ebp - 0xc], al
movzx eax, byte [ebp - 0x1f]
mov byte [ebp - 0xb], al
movzx eax, byte [ebp - 0x22]
mov byte [ebp - 0xa], al
movzx eax, byte [ebp - 0x15]
mov byte [ebp - 9], al
movzx eax, byte [ebp - 0x18]
mov byte [ebp - 8], al
movzx eax, byte [ebp - 0x1b]
mov byte [ebp - 7], al
movzx eax, byte [ebp - 0x1e]
mov byte [ebp - 6], al
movzx eax, byte [ebp - 0x21]
lea ecx, [ebp - 0x14]
mov byte [ebp - 5], al
call fcn.00401e70
mov eax, dword [esi - 8]
xor dword [ebp - 0x14], eax
mov eax, dword [esi - 4]
xor dword [ebp - 0x10], eax
mov eax, dword [esi]
xor dword [ebp - 0xc], eax
mov eax, dword [esi + 4]
xor dword [ebp - 8], eax
lea ecx, [ebp - 0x14]
call fcn.00401f10
lea esi, [esi - 0x10]
dec edi
jne 0x402f30
movq xmm0, qword [ebp - 0x14]
movq qword [ebp - 0x24], xmm0
movq xmm0, qword [ebp - 0xc]
movzx eax, byte [ebp - 0x24]
mov byte [ebp - 0x14], al
movq qword [ebp - 0x1c], xmm0
movzx eax, byte [ebp - 0x17]
mov byte [ebp - 0x13], al
movzx eax, byte [ebp - 0x1a]
mov byte [ebp - 0x12], al
movzx eax, byte [ebp - 0x1d]
mov byte [ebp - 0x11], al
movzx eax, byte [ebp - 0x20]
mov byte [ebp - 0x10], al
movzx eax, byte [ebp - 0x23]
mov byte [ebp - 0xf], al
movzx eax, byte [ebp - 0x16]
mov byte [ebp - 0xe], al
movzx eax, byte [ebp - 0x19]
mov byte [ebp - 0xd], al
movzx eax, byte [ebp - 0x1c]
mov byte [ebp - 0xc], al
movzx eax, byte [ebp - 0x1f]
mov byte [ebp - 0xb], al
movzx eax, byte [ebp - 0x22]
mov byte [ebp - 0xa], al
movzx eax, byte [ebp - 0x15]
mov byte [ebp - 9], al
movzx eax, byte [ebp - 0x18]
mov byte [ebp - 8], al
movzx eax, byte [ebp - 0x1b]
mov byte [ebp - 7], al
movzx eax, byte [ebp - 0x1e]
mov byte [ebp - 6], al
movzx eax, byte [ebp - 0x21]
lea ecx, [ebp - 0x14]
mov byte [ebp - 5], al
call fcn.00401e70
mov eax, dword [ebx]
xor dword [ebp - 0x14], eax
mov eax, dword [ebx + 4]
xor dword [ebp - 0x10], eax
mov eax, dword [ebx + 8]
xor dword [ebp - 0xc], eax
mov eax, dword [ebx + 0xc]
xor dword [ebp - 8], eax
mov eax, dword [ebp - 0x28]
movq xmm0, qword [ebp - 0x14]
mov ecx, dword [ebp - 4]
pop edi
movq qword [eax], xmm0
movq xmm0, qword [ebp - 0xc]
pop esi
xor ecx, ebp
movq qword [eax + 8], xmm0
pop ebx
call fcn.0041026c
mov esp, ebp
pop ebp
ret