Function at 0x4c2a90
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x98
mov eax, dword [0x4e26d0]
xor eax, ebp
mov dword [ebp - 4], eax
mov edx, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
push esi
mov esi, dword [ebx + 0x14]
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x24], ecx
movdqu xmm0, xmmword [edx + 0x30]
push edi
mov edi, dword [ebx + 0x10]
movdqa xmmword [ebp - 0x20], xmm0
movdqa xmmword [ebp - 0x40], xmm0
movdqu xmm7, xmmword [edx + 0x40]
movdqu xmm6, xmmword [edx + 0x50]
movdqa xmmword [ebp - 0x90], xmm7
movdqa xmmword [ebp - 0x70], xmm6
movdqu xmm5, xmmword [edx + 0x60]
movdqu xmm1, xmmword [edx + 0x70]
movdqa xmmword [ebp - 0x80], xmm5
movdqa xmmword [ebp - 0x50], xmm1
cmp esi, 0x10
jge 0x4c2b16
test esi, esi
je 0x4c2eae
jmp 0x4c2e0a
mov eax, edi
neg eax
and eax, 0xf
je 0x4c2b7f
movdqu xmm0, xmmword [edi]
add edi, eax
sub esi, eax
movdqu xmmword [ecx], xmm0
add ecx, eax
movdqa xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x24], ecx
lea ecx, [ebp - 0x50]
push ecx
lea ecx, [ebp - 0x80]
push ecx
lea ecx, [ebp - 0x70]
push ecx
lea ecx, [ebp - 0x90]
push ecx
lea ecx, [ebp - 0x40]
push ecx
push eax
push edx
call fcn.004c2fc0
movdqa xmm0, xmmword [ebp - 0x40]
add esp, 0x1c
movdqa xmm1, xmmword [ebp - 0x50]
movdqa xmm7, xmmword [ebp - 0x90]
movdqa xmm6, xmmword [ebp - 0x70]
movdqa xmm5, xmmword [ebp - 0x80]
mov ecx, dword [ebp - 0x24]
movdqa xmmword [ebp - 0x20], xmm0
movdqa xmmword [ebp - 0x50], xmm1
sub esi, 0x40
js 0x4c2c73
lea eax, [esi + 0x40]
shr eax, 6
mov dword [ebp - 0x24], eax
neg eax
shl eax, 6
add esi, eax
mov eax, dword [ebp - 0x24]
jmp 0x4c2ba0
movdqa xmm1, xmmword [edi]
pclmulqdq xmm0, xmmword [0x4d3ea0], 1
movdqa xmm2, xmmword [edi + 0x10]
movdqa xmm3, xmmword [edi + 0x20]
movdqa xmm4, xmmword [edi + 0x30]
add edi, 0x40
movdqa xmmword [ebp - 0x40], xmm1
movdqa xmm1, xmmword [ebp - 0x20]
pclmulqdq xmm1, xmmword [0x4d3ea0], 0x10
xorps xmm1, xmm0
movdqa xmm0, xmm7
movdqa xmmword [ebp - 0x20], xmm1
movdqa xmm1, xmmword [0x4d3ea0]
pclmulqdq xmm0, xmm1, 1
pclmulqdq xmm7, xmm1, 0x10
xorps xmm7, xmm0
movdqa xmm0, xmm6
pclmulqdq xmm0, xmm1, 1
pclmulqdq xmm6, xmm1, 0x10
xorps xmm6, xmm0
pxor xmm7, xmm2
movdqa xmm0, xmm5
movdqa xmmword [ebp - 0x90], xmm7
pclmulqdq xmm0, xmm1, 1
pclmulqdq xmm5, xmm1, 0x10
movdqa xmm1, xmmword [ebp - 0x40]
xorps xmm5, xmm0
movdqa xmm0, xmmword [ebp - 0x20]
pxor xmm6, xmm3
movdqu xmmword [ecx], xmm1
movdqu xmmword [ecx + 0x10], xmm2
movdqu xmmword [ecx + 0x20], xmm3
movdqu xmmword [ecx + 0x30], xmm4
add ecx, 0x40
pxor xmm0, xmm1
movdqa xmmword [ebp - 0x70], xmm6
movdqa xmmword [ebp - 0x20], xmm0
pxor xmm5, xmm4
movdqa xmmword [ebp - 0x40], xmm0
movdqa xmmword [ebp - 0x80], xmm5
dec eax
jne 0x4c2ba0
mov dword [ebp - 0x24], ecx
lea eax, [esi + 0x10]
test eax, eax
js 0x4c2cfe
movdqa xmm7, xmmword [edi]
mov esi, eax
movdqa xmm6, xmmword [edi + 0x10]
lea eax, [ebp - 0x80]
movdqa xmm5, xmmword [edi + 0x20]
push eax
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x40]
push eax
push edx
call fcn.004c2f10
mov eax, dword [ebp - 0x24]
add esp, 0x14
movdqu xmmword [eax], xmm7
pxor xmm7, xmmword [ebp - 0x90]
movdqa xmmword [ebp - 0x90], xmm7
movdqu xmmword [eax + 0x10], xmm6
pxor xmm6, xmmword [ebp - 0x70]
movdqa xmmword [ebp - 0x70], xmm6
movdqu xmmword [eax + 0x20], xmm5
pxor xmm5, xmmword [ebp - 0x80]
movdqa xmmword [ebp - 0x80], xmm5
test esi, esi
je 0x4c2cf1
add eax, 0x30
add edi, 0x30
mov dword [ebp - 0x24], eax
jmp 0x4c2e0a
movdqa xmm0, xmmword [ebp - 0x40]
mov edx, dword [ebp - 0x54]
jmp 0x4c2e90
lea eax, [esi + 0x20]
test eax, eax
js 0x4c2d92
movdqa xmm0, xmmword [0x4d3ea0]
movdqa xmm2, xmm5
movdqa xmm3, xmmword [edi]
movdqa xmm5, xmm7
movdqa xmm4, xmmword [edi + 0x10]
movdqa xmm1, xmm6
pclmulqdq xmm7, xmm0, 1
pclmulqdq xmm5, xmm0, 0x10
xorps xmm5, xmm7
mov esi, eax
movdqa xmm7, xmmword [ebp - 0x20]
pxor xmm5, xmm4
movdqa xmmword [ebp - 0x80], xmm5
movdqa xmm6, xmm7
pclmulqdq xmm7, xmm0, 1
pclmulqdq xmm6, xmm0, 0x10
xorps xmm6, xmm7
movdqa xmm0, xmm1
movdqa xmmword [ebp - 0x40], xmm0
movdqa xmm7, xmm2
movdqa xmmword [ebp - 0x90], xmm7
pxor xmm6, xmm3
movdqa xmmword [ebp - 0x70], xmm6
movdqu xmmword [ecx], xmm3
movdqu xmmword [ecx + 0x10], xmm4
test esi, esi
je 0x4c2e90
add ecx, 0x20
add edi, 0x20
mov dword [ebp - 0x24], ecx
jmp 0x4c2e0a
lea eax, [esi + 0x30]
test eax, eax
js 0x4c2e01
movdqa xmm3, xmmword [ebp - 0x20]
movdqa xmm1, xmm5
movdqa xmm2, xmmword [edi]
movdqa xmm5, xmm3
pclmulqdq xmm5, xmmword [0x4d3ea0], 0x10
pclmulqdq xmm3, xmmword [0x4d3ea0], 1
movdqa xmm0, xmm7
xorps xmm5, xmm3
movdqa xmm7, xmm6
movdqa xmmword [ebp - 0x40], xmm0
mov esi, eax
movdqa xmmword [ebp - 0x90], xmm7
movdqa xmm6, xmm1
pxor xmm5, xmm2
movdqa xmmword [ebp - 0x70], xmm6
movdqa xmmword [ebp - 0x80], xmm5
movdqu xmmword [ecx], xmm2
test esi, esi
je 0x4c2e90
add ecx, 0x10
add edi, 0x10
mov dword [ebp - 0x24], ecx
jmp 0x4c2e0a
add esi, 0x40
je 0x4c2e8b
push esi
lea eax, [ebp - 0x20]
xorps xmm0, xmm0
push edi
push eax
movdqu xmmword [ebp - 0x20], xmm0
call fcn.00497ff0
movd xmm2, dword [ebp - 0x14]
movd xmm0, dword [ebp - 0x18]
movd xmm1, dword [ebp - 0x1c]
movd xmm3, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x54]
punpckldq xmm3, xmm0
punpckldq xmm1, xmm2
punpckldq xmm3, xmm1
movdqu xmmword [eax], xmm3
lea eax, [ebp - 0x50]
movdqa xmmword [ebp - 0x50], xmm3
push eax
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x40]
push eax
push esi
push edx
call fcn.004c2fc0
movdqa xmm0, xmmword [ebp - 0x40]
add esp, 0x28
movdqa xmm7, xmmword [ebp - 0x90]
movdqa xmm6, xmmword [ebp - 0x70]
movdqa xmm5, xmmword [ebp - 0x80]
movdqa xmm1, xmmword [ebp - 0x50]
jmp 0x4c2e95
movdqa xmm0, xmmword [ebp - 0x20]
movdqa xmm1, xmmword [ebp - 0x50]
movdqu xmmword [edx + 0x30], xmm0
movdqu xmmword [edx + 0x40], xmm7
movdqu xmmword [edx + 0x50], xmm6
movdqu xmmword [edx + 0x60], xmm5
movdqu xmmword [edx + 0x70], xmm1
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.0049653f
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret