Function at 0x46c517
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x80
mov eax, dword [0x5599f4]
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp + 0x14]
mov esi, dword [ebp + 0x10]
mov edi, dword [ebp + 0xc]
xor eax, ebp
cmp ebx, 0xf
mov dword [esp + 0x78], eax
movdqu xmm5, xmmword [ecx + 0x30]
movdqu xmm6, xmmword [ecx + 0x40]
movdqu xmm7, xmmword [ecx + 0x50]
movdqu xmm3, xmmword [ecx + 0x60]
jg 0x46c563
test ebx, ebx
jne 0x46c92c
jmp 0x46ca3b
mov eax, esi
neg eax
and eax, 0xf
je 0x46c617
movups xmm0, xmmword [esi]
add esi, eax
sub ebx, eax
movdqa xmm4, xmm6
movdqa xmm1, xmm5
movups xmmword [edi], xmm0
add edi, eax
shl eax, 4
movaps xmmword [esp + 0x10], xmm0
movdqa xmm0, xmmword [0x50fc20]
movdqa xmm2, xmmword [eax + 0x519b90]
pxor xmm0, xmm2
pshufb xmm4, xmm2
pshufb xmm1, xmm2
pshufb xmm5, xmm0
pshufb xmm6, xmm0
por xmm5, xmm4
movdqa xmm4, xmm7
pshufb xmm7, xmm0
pshufb xmm4, xmm2
por xmm6, xmm4
movdqa xmm4, xmm3
pshufb xmm3, xmm0
pshufb xmm4, xmm2
por xmm7, xmm4
movdqa xmm4, xmmword [esp + 0x10]
pshufb xmm4, xmm2
movdqa xmm2, xmmword [0x519b40]
por xmm3, xmm4
movdqa xmmword [esp + 0x10], xmm4
pclmulqdq xmm2, xmm1, 1
pclmulqdq xmm1, xmmword [0x519b50], 1
pxor xmm1, xmm3
pxor xmm1, xmm2
movdqa xmm3, xmm1
jmp 0x46c622
movdqu xmm1, xmmword [ecx + 0x70]
movdqa xmmword [esp + 0x10], xmm1
cmp ebx, 0x40
jl 0x46c759
mov eax, ebx
mov ecx, 0xffffff80
movdqa xmm4, xmm7
movdqa xmm7, xmm5
not eax
cmp eax, 0xffffff7f
cmovg ecx, eax
xor edx, edx
lea ecx, [ebx + ecx + 0x40]
and ecx, 0xffffffc0
lea eax, [ecx + 0x40]
mov dword [esp + 0x28], eax
lea eax, [esi + ecx + 0x40]
mov dword [esp + 0x2c], eax
lea eax, [ebx + 0x40]
movaps xmm0, xmmword [esi + edx + 0x20]
movdqa xmm1, xmmword [esi + edx]
movdqa xmm2, xmm7
movdqa xmmword [esp + 0x50], xmm6
movdqa xmm5, xmmword [esi + edx + 0x10]
movdqa xmmword [esp + 0x40], xmm3
add eax, 0xffffffc0
movdqa xmm6, xmmword [esp + 0x50]
movdqa xmm3, xmmword [esp + 0x40]
movaps xmmword [esp + 0x30], xmm0
movaps xmm0, xmmword [esi + edx + 0x30]
movdqu xmmword [edi + edx], xmm1
movdqu xmmword [edi + edx + 0x10], xmm5
movaps xmmword [esp], xmm0
movdqa xmm0, xmmword [0x519b40]
pclmulqdq xmm7, xmm0, 0x10
movdqa xmm0, xmmword [0x519b50]
pxor xmm7, xmm1
movdqa xmm1, xmm6
pclmulqdq xmm2, xmm0, 1
pclmulqdq xmm1, xmm0, 1
pxor xmm7, xmm2
movdqa xmm2, xmmword [0x519b40]
pclmulqdq xmm6, xmm2, 0x10
pxor xmm6, xmm5
movdqa xmm5, xmmword [esp + 0x30]
pxor xmm6, xmm1
movdqa xmm1, xmm4
pclmulqdq xmm4, xmm2, 0x10
pclmulqdq xmm1, xmm0, 1
pxor xmm4, xmm5
movdqu xmmword [edi + edx + 0x20], xmm5
pxor xmm4, xmm1
movdqa xmm1, xmm3
pclmulqdq xmm3, xmm2, 0x10
movdqa xmm2, xmmword [esp]
pclmulqdq xmm1, xmm0, 1
pxor xmm3, xmm2
movdqu xmmword [edi + edx + 0x30], xmm2
add edx, 0x40
cmp eax, 0x7f
pxor xmm3, xmm1
jg 0x46c65f
add ebx, 0xffffffc0
add edi, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
movdqa xmmword [esp], xmm7
movdqa xmm7, xmm4
sub ebx, ecx
mov ecx, dword [ebp + 8]
jmp 0x46c75e
movdqa xmmword [esp], xmm5
cmp ebx, 0x30
jl 0x46c822
movaps xmm0, xmmword [esi]
movdqa xmm2, xmmword [0x519b40]
movdqa xmm1, xmm7
movdqa xmm7, xmmword [esi + 0x20]
add ebx, 0xffffffd0
movdqa xmm4, xmm1
movdqa xmm5, xmm1
movdqa xmm1, xmm6
movaps xmmword [esp + 0x50], xmm0
movdqa xmm0, xmmword [0x519b50]
pclmulqdq xmm4, xmm2, 0x10
pxor xmm4, xmm7
pclmulqdq xmm5, xmm0, 1
pxor xmm4, xmm5
movdqa xmm5, xmm6
movdqa xmm6, xmm2
movdqa xmm2, xmmword [esp]
pclmulqdq xmm5, xmm0, 1
pclmulqdq xmm1, xmm6, 0x10
pclmulqdq xmm0, xmm2, 0x10
pclmulqdq xmm2, xmm6, 0x10
movdqa xmm6, xmmword [esi + 0x10]
movdqa xmmword [esp + 0x40], xmm0
movdqa xmm0, xmmword [esp + 0x50]
movdqu xmmword [edi], xmm0
movdqu xmmword [edi + 0x10], xmm6
movdqu xmmword [edi + 0x20], xmm7
movdqa xmm7, xmm1
pxor xmm2, xmm0
pxor xmm7, xmm6
movdqa xmm6, xmm2
pxor xmm6, xmmword [esp + 0x40]
pxor xmm7, xmm5
je 0x46c906
movdqa xmm5, xmm3
add edi, 0x30
add esi, 0x30
movdqa xmm3, xmm4
jmp 0x46c92c
cmp ebx, 0x20
jl 0x46c8af
movdqa xmmword [esp + 0x30], xmm7
movdqa xmm0, xmmword [0x519b50]
movdqa xmm5, xmmword [0x519b40]
movdqa xmm7, xmmword [esp]
movdqa xmm1, xmmword [esi]
movdqa xmm2, xmmword [esi + 0x10]
movdqa xmm4, xmm6
add ebx, 0xffffffe0
pclmulqdq xmm4, xmm0, 1
pclmulqdq xmm0, xmm7, 0x10
pclmulqdq xmm7, xmm5, 0x10
pclmulqdq xmm6, xmm5, 0x10
movdqu xmmword [edi], xmm1
movdqu xmmword [edi + 0x10], xmm2
pxor xmm7, xmm1
pxor xmm6, xmm2
movdqa xmm1, xmm7
pxor xmm1, xmm0
movdqa xmm0, xmm6
pxor xmm0, xmm4
je 0x46ca4e
movdqa xmm5, xmmword [esp + 0x30]
movdqa xmm6, xmm3
add edi, 0x20
add esi, 0x20
movdqa xmm7, xmm1
movdqa xmm3, xmm0
jmp 0x46c92c
cmp ebx, 0x10
jl 0x46c919
movdqa xmm0, xmmword [0x519b50]
movdqa xmm4, xmmword [esp]
movdqa xmm1, xmmword [esi]
add ebx, 0xfffffff0
pclmulqdq xmm0, xmm4, 0x10
pclmulqdq xmm4, xmmword [0x519b40], 0x10
movdqu xmmword [edi], xmm1
pxor xmm4, xmm1
movdqa xmm1, xmm4
pxor xmm1, xmm0
je 0x46ca68
movdqa xmm5, xmm6
movdqa xmm6, xmm7
movdqa xmm7, xmm3
add edi, 0x10
add esi, 0x10
movdqa xmm3, xmm1
jmp 0x46c92c
movdqa xmm2, xmmword [esp + 0x10]
movdqa xmm5, xmm3
movdqa xmm3, xmm4
jmp 0x46ca22
movdqa xmm5, xmmword [esp]
movdqa xmm2, xmmword [esp + 0x10]
test ebx, ebx
je 0x46ca22
mov eax, 0x10
xor ecx, ecx
movdqa xmmword [esp + 0x40], xmm3
movdqa xmmword [esp + 0x30], xmm7
movdqa xmmword [esp], xmm5
movdqa xmmword [esp + 0x50], xmm6
sub eax, ebx
cmp ebx, 0xf
cmovbe ecx, eax
lea eax, [esp + ebx + 0x68]
push ecx
push 0
push eax
call fcn.004d7460
add esp, 0xc
lea eax, [esp + 0x68]
push ebx
push esi
push eax
mov esi, eax
call fcn.004d7b40
movdqa xmm7, xmmword [esp + 0x3c]
movdqa xmm5, xmmword [esp + 0xc]
movdqa xmm6, xmmword [esp + 0x5c]
mov ecx, dword [ebp + 8]
add esp, 0xc
shl ebx, 4
movdqa xmm0, xmmword [0x50fc20]
movdqa xmm3, xmm6
movdqa xmm2, xmmword [esp + 0x40]
movdqa xmm1, xmm5
movdqa xmm4, xmmword [ebx + 0x519b90]
pxor xmm0, xmm4
pshufb xmm3, xmm4
pshufb xmm1, xmm4
pshufb xmm5, xmm0
pshufb xmm6, xmm0
por xmm5, xmm3
movdqa xmm3, xmm7
pshufb xmm7, xmm0
pshufb xmm3, xmm4
por xmm6, xmm3
movdqa xmm3, xmm2
pshufb xmm3, xmm4
por xmm7, xmm3
movdqa xmm3, xmm2
movdqu xmm2, xmmword [esi]
pshufb xmm3, xmm0
movdqu xmmword [edi], xmm2
pshufb xmm2, xmm4
movdqa xmm4, xmmword [0x519b40]
por xmm3, xmm2
pclmulqdq xmm4, xmm1, 1
pclmulqdq xmm1, xmmword [0x519b50], 1
pxor xmm1, xmm3
pxor xmm1, xmm4
movdqa xmm3, xmm1
movdqu xmmword [ecx + 0x30], xmm5
movdqu xmmword [ecx + 0x40], xmm6
movdqu xmmword [ecx + 0x50], xmm7
movdqu xmmword [ecx + 0x60], xmm3
movdqu xmmword [ecx + 0x70], xmm2
mov ecx, dword [esp + 0x78]
xor ecx, ebp
call fcn.004d4bc8
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
movdqa xmm5, xmmword [esp + 0x30]
movdqa xmm2, xmmword [esp + 0x10]
movdqa xmm6, xmm3
movdqa xmm7, xmm1
movdqa xmm3, xmm0
jmp 0x46ca22
movdqa xmm2, xmmword [esp + 0x10]
movdqa xmm5, xmm6
movdqa xmm6, xmm7
movdqa xmm7, xmm3
jmp 0x46ca1e