Function at 0x460077
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x60
mov eax, dword [0x582e50]
mov edx, dword [ebp + 8]
mov esi, dword [ebp + 0x14]
mov ebx, dword [ebp + 0x10]
mov edi, dword [ebp + 0xc]
xor eax, ebp
cmp esi, 0xf
mov dword [esp + 0x58], eax
movdqu xmm7, xmmword [edx + 0x2c]
movdqu xmm6, xmmword [edx + 0x3c]
movdqu xmm4, xmmword [edx + 0x4c]
movdqu xmm1, xmmword [edx + 0x5c]
jg 0x4600c0
test esi, esi
jne 0x460415
jmp 0x46051b
mov eax, ebx
neg eax
and eax, 0xf
mov ecx, eax
sub ecx, 1
jae 0x4600de
movdqu xmm0, xmmword [edx + 0x6c]
movdqa xmmword [esp + 0x10], xmm4
jmp 0x46017e
shl ecx, 4
movdqa xmm0, xmmword [0x538ec0]
movdqa xmm3, xmm6
movdqa xmm5, xmm4
movdqa xmm4, xmm1
movdqa xmm1, xmm7
sub esi, eax
movdqa xmm2, xmmword [ecx + 0x538f40]
pxor xmm0, xmm2
pshufb xmm3, xmm2
pshufb xmm1, xmm2
pshufb xmm7, xmm0
pshufb xmm6, xmm0
por xmm7, xmm3
movdqa xmm3, xmm5
pshufb xmm5, xmm0
pshufb xmm3, xmm2
por xmm6, xmm3
movdqa xmm3, xmm4
pshufb xmm4, xmm0
movdqu xmm0, xmmword [ebx]
add ebx, eax
pshufb xmm3, xmm2
por xmm5, xmm3
movdqa xmm3, xmmword [0x538ed0]
movdqa xmmword [esp + 0x10], xmm5
movdqu xmmword [edi], xmm0
pshufb xmm0, xmm2
add edi, eax
por xmm4, xmm0
pclmulqdq xmm3, xmm1, 1
pclmulqdq xmm1, xmmword [0x538ee0], 1
pxor xmm1, xmm4
pxor xmm1, xmm3
mov eax, esi
movdqa xmmword [esp], xmm1
movdqa xmmword [esp + 0x20], xmm0
add eax, 0xffffffc0
js 0x460282
movdqa xmm4, xmmword [esp]
movdqa xmm0, xmmword [esp + 0x10]
mov ecx, eax
movaps xmm2, xmmword [ebx + 0x20]
movdqa xmm1, xmmword [ebx]
movdqa xmm5, xmm7
movdqa xmmword [esp + 0x30], xmm6
movdqa xmm3, xmmword [ebx + 0x10]
movdqa xmm6, xmmword [esp + 0x30]
movaps xmmword [esp], xmm2
movaps xmm2, xmmword [ebx + 0x30]
movdqu xmmword [edi], xmm1
movdqu xmmword [edi + 0x10], xmm3
add ebx, 0x40
movaps xmmword [esp + 0x10], xmm2
movdqa xmm2, xmmword [0x538ed0]
pclmulqdq xmm7, xmm2, 0x10
movdqa xmm2, xmmword [0x538ee0]
pxor xmm7, xmm1
movdqa xmm1, xmm6
pclmulqdq xmm5, xmm2, 1
pclmulqdq xmm1, xmm2, 1
pxor xmm7, xmm5
movdqa xmm5, xmmword [0x538ed0]
pclmulqdq xmm6, xmm5, 0x10
pxor xmm6, xmm3
movdqa xmm3, xmmword [esp]
pxor xmm6, xmm1
movdqa xmm1, xmm0
pclmulqdq xmm0, xmm5, 0x10
pclmulqdq xmm1, xmm2, 1
pxor xmm0, xmm3
movdqu xmmword [edi + 0x20], xmm3
pxor xmm0, xmm1
movdqa xmm1, xmm4
pclmulqdq xmm4, xmm5, 0x10
movdqa xmm5, xmmword [esp + 0x10]
pclmulqdq xmm1, xmm2, 1
pxor xmm4, xmm5
movdqu xmmword [edi + 0x30], xmm5
add edi, 0x40
add ecx, 0xffffffc0
pxor xmm4, xmm1
jns 0x4601a1
movdqa xmmword [esp + 0x10], xmm0
movdqa xmm0, xmmword [esp + 0x20]
and eax, 0x3f
movdqa xmmword [esp], xmm4
mov esi, eax
mov eax, esi
add eax, 0xffffffd0
js 0x46032b
movdqa xmm0, xmmword [esp + 0x10]
movdqa xmm4, xmmword [ebx + 0x20]
movdqa xmm3, xmmword [0x538ee0]
movdqa xmm5, xmm6
movdqa xmm2, xmmword [ebx]
test eax, eax
movdqa xmm1, xmm0
pclmulqdq xmm0, xmm3, 1
pclmulqdq xmm5, xmm3, 1
pclmulqdq xmm3, xmm7, 0x10
pclmulqdq xmm1, xmmword [0x538ed0], 0x10
pxor xmm1, xmm4
pxor xmm1, xmm0
movdqa xmm0, xmm6
movdqa xmm6, xmmword [0x538ed0]
pclmulqdq xmm7, xmm6, 0x10
pclmulqdq xmm0, xmm6, 0x10
movdqa xmm6, xmmword [ebx + 0x10]
movdqu xmmword [edi], xmm2
pxor xmm7, xmm2
movdqu xmmword [edi + 0x10], xmm6
movdqu xmmword [edi + 0x20], xmm4
movdqa xmm4, xmm0
pxor xmm4, xmm6
movdqa xmm6, xmm7
pxor xmm4, xmm5
pxor xmm6, xmm3
je 0x4603af
movdqa xmm7, xmmword [esp]
add edi, 0x30
add ebx, 0x30
jmp 0x460413
mov eax, esi
add eax, 0xffffffe0
js 0x4603bf
movdqa xmm3, xmmword [0x538ee0]
movdqa xmm0, xmmword [0x538ed0]
movdqa xmm1, xmmword [ebx]
movdqa xmm2, xmmword [ebx + 0x10]
movdqa xmm4, xmm6
test eax, eax
pclmulqdq xmm6, xmm0, 0x10
pclmulqdq xmm4, xmm3, 1
pclmulqdq xmm3, xmm7, 0x10
pclmulqdq xmm7, xmm0, 0x10
movdqu xmmword [edi], xmm1
movdqu xmmword [edi + 0x10], xmm2
pxor xmm7, xmm1
pxor xmm6, xmm2
movdqa xmm1, xmm7
movdqa xmm2, xmm6
pxor xmm1, xmm3
pxor xmm2, xmm4
je 0x46052e
movdqa xmm7, xmmword [esp + 0x10]
movdqa xmm6, xmmword [esp]
movdqa xmm4, xmm1
add edi, 0x20
add ebx, 0x20
movdqa xmm1, xmm2
jmp 0x460413
movdqa xmm7, xmmword [esp]
movdqa xmm0, xmmword [esp + 0x20]
jmp 0x460502
mov eax, esi
add eax, 0xfffffff0
js 0x460549
movdqa xmm2, xmmword [0x538ee0]
movdqa xmm1, xmmword [ebx]
test eax, eax
pclmulqdq xmm2, xmm7, 0x10
pclmulqdq xmm7, xmmword [0x538ed0], 0x10
movdqu xmmword [edi], xmm1
pxor xmm7, xmm1
movdqa xmm1, xmm7
pxor xmm1, xmm2
je 0x46055e
movdqa xmm7, xmm6
movdqa xmm6, xmmword [esp + 0x10]
movdqa xmm4, xmmword [esp]
add edi, 0x10
add ebx, 0x10
mov esi, eax
mov eax, 0x10
xor ecx, ecx
movdqa xmmword [esp], xmm1
movdqa xmmword [esp + 0x10], xmm4
movdqa xmmword [esp + 0x20], xmm7
movdqa xmmword [esp + 0x30], xmm6
sub eax, esi
cmp esi, 0xf
cmovbe ecx, eax
lea eax, [esp + esi + 0x48]
push ecx
push 0
push eax
call fcn.0050bec0
add esp, 0xc
lea eax, [esp + 0x48]
push esi
push ebx
push eax
mov ebx, eax
call fcn.0050b3c0
movdqa xmm4, xmmword [esp + 0x1c]
movdqa xmm7, xmmword [esp + 0x2c]
movdqa xmm6, xmmword [esp + 0x3c]
mov edx, dword [ebp + 8]
add esp, 0xc
shl esi, 4
movdqa xmm0, xmmword [0x538ec0]
movdqa xmm3, xmm6
movdqa xmm5, xmmword [esp]
movdqa xmm1, xmm7
movdqa xmm2, xmmword [esi + 0x538f30]
pxor xmm0, xmm2
pshufb xmm3, xmm2
pshufb xmm1, xmm2
pshufb xmm7, xmm0
pshufb xmm6, xmm0
por xmm7, xmm3
movdqa xmm3, xmm4
pshufb xmm4, xmm0
pshufb xmm3, xmm2
por xmm6, xmm3
movdqa xmm3, xmm5
pshufb xmm5, xmm0
movdqu xmm0, xmmword [ebx]
pshufb xmm3, xmm2
por xmm4, xmm3
movdqa xmm3, xmmword [0x538ed0]
movdqu xmmword [edi], xmm0
pshufb xmm0, xmm2
por xmm5, xmm0
pclmulqdq xmm3, xmm1, 1
pclmulqdq xmm1, xmmword [0x538ee0], 1
pxor xmm1, xmm5
pxor xmm1, xmm3
movdqu xmmword [edx + 0x2c], xmm7
movdqu xmmword [edx + 0x3c], xmm6
movdqu xmmword [edx + 0x4c], xmm4
movdqu xmmword [edx + 0x5c], xmm1
movdqu xmmword [edx + 0x6c], xmm0
mov ecx, dword [esp + 0x58]
xor ecx, ebp
call fcn.004ed5a1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
movdqa xmm7, xmmword [esp + 0x10]
movdqa xmm6, xmmword [esp]
movdqa xmm0, xmmword [esp + 0x20]
movdqa xmm4, xmm1
movdqa xmm1, xmm2
jmp 0x460502
movdqa xmm1, xmmword [esp]
movdqa xmm4, xmmword [esp + 0x10]
test esi, esi
jne 0x460415
jmp 0x460502
movdqa xmm7, xmm6
movdqa xmm6, xmmword [esp + 0x10]
movdqa xmm4, xmmword [esp]
jmp 0x460502