Function at 0x4f4dd0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xb4
mov edi, edx
mov ebp, dword [esp + 0xc8]
movq xmm0, qword [ebp + 0x20]
movq xmm1, qword [ebp + 0x30]
punpcklqdq xmm1, xmm0
movq xmm0, qword [ebp + 0x60]
movq xmm2, qword [ebp + 0x70]
punpcklqdq xmm2, xmm0
movq xmm0, qword [ebp]
movq xmm3, qword [ebp + 0x10]
punpcklqdq xmm3, xmm0
movq xmm0, qword [ebp + 0x40]
movq xmm4, qword [ebp + 0x50]
punpcklqdq xmm4, xmm0
movq xmm0, qword [esp + 0xcc]
pshufd xmm0, xmm0, 0x44
paddq xmm4, xmm0
paddq xmm3, xmm0
paddq xmm2, xmm0
paddq xmm1, xmm0
movq xmm5, qword [ecx + 0x40]
movq xmm6, qword [ecx + 0x50]
punpcklqdq xmm6, xmm5
pxor xmm6, xmm4
movdqu xmmword [esp], xmm6
movq xmm4, qword [ecx]
movq xmm5, qword [ecx + 0x10]
punpcklqdq xmm5, xmm4
pxor xmm5, xmm3
movdqu xmmword [esp + 0x64], xmm5
movq xmm3, qword [ecx + 0x60]
movq xmm4, qword [ecx + 0x70]
punpcklqdq xmm4, xmm3
pxor xmm4, xmm2
movdqu xmmword [esp + 0x10], xmm4
movq xmm2, qword [ecx + 0x20]
movq xmm3, qword [ecx + 0x30]
punpcklqdq xmm3, xmm2
pxor xmm3, xmm1
movdqu xmmword [esp + 0x54], xmm3
movq xmm2, qword [ebp + 0x28]
movq xmm1, qword [ebp + 0x38]
punpcklqdq xmm1, xmm2
movq xmm3, qword [ebp + 0x68]
movq xmm2, qword [ebp + 0x78]
punpcklqdq xmm2, xmm3
movq xmm4, qword [ebp + 8]
movq xmm3, qword [ebp + 0x18]
punpcklqdq xmm3, xmm4
movq xmm4, qword [ebp + 0x48]
movq xmm5, qword [ebp + 0x58]
punpcklqdq xmm5, xmm4
psubq xmm5, xmm0
psubq xmm3, xmm0
psubq xmm2, xmm0
psubq xmm1, xmm0
movq xmm0, qword [ecx + 0x48]
movq xmm4, qword [ecx + 0x58]
punpcklqdq xmm4, xmm0
pxor xmm4, xmm5
movdqa xmm5, xmm4
movq xmm0, qword [ecx + 8]
movq xmm4, qword [ecx + 0x18]
punpcklqdq xmm4, xmm0
pxor xmm4, xmm3
movq xmm0, qword [ecx + 0x68]
movq xmm3, qword [ecx + 0x78]
punpcklqdq xmm3, xmm0
pxor xmm3, xmm2
movq xmm0, qword [ecx + 0x28]
movq xmm6, qword [ecx + 0x38]
punpcklqdq xmm6, xmm0
pxor xmm6, xmm1
movdqa xmm0, xmm5
movdqu xmm1, xmmword [esp]
pmuludq xmm0, xmm1
movdqu xmmword [esp + 0x30], xmm0
movdqa xmm0, xmm1
movdqa xmm2, xmm1
psrlq xmm0, 0x20
movdqa xmm1, xmm5
pmuludq xmm1, xmm0
movdqu xmmword [esp + 0x74], xmm1
psrlq xmm5, 0x20
pmuludq xmm2, xmm5
movdqu xmmword [esp], xmm2
pmuludq xmm5, xmm0
movdqu xmmword [esp + 0xa4], xmm5
movdqa xmm0, xmm4
movdqu xmm1, xmmword [esp + 0x64]
pmuludq xmm0, xmm1
movdqu xmmword [esp + 0x20], xmm0
movdqa xmm0, xmm1
psrlq xmm0, 0x20
movdqa xmm2, xmm4
pmuludq xmm2, xmm0
movdqu xmmword [esp + 0x44], xmm2
psrlq xmm4, 0x20
pmuludq xmm1, xmm4
movdqa xmm7, xmm1
pmuludq xmm4, xmm0
movdqu xmmword [esp + 0x94], xmm4
movdqa xmm0, xmm3
movdqu xmm1, xmmword [esp + 0x10]
pmuludq xmm0, xmm1
movdqu xmmword [esp + 0x64], xmm0
movdqa xmm0, xmm1
psrlq xmm0, 0x20
movdqa xmm5, xmm3
pmuludq xmm5, xmm0
psrlq xmm3, 0x20
pmuludq xmm1, xmm3
pmuludq xmm3, xmm0
movdqu xmmword [esp + 0x84], xmm3
movdqa xmm4, xmm6
movdqu xmm2, xmmword [esp + 0x54]
pmuludq xmm4, xmm2
movdqu xmmword [esp + 0x10], xmm4
movdqa xmm0, xmm2
psrlq xmm0, 0x20
movdqa xmm3, xmm6
pmuludq xmm3, xmm0
psrlq xmm6, 0x20
pmuludq xmm2, xmm6
pmuludq xmm6, xmm0
psrlq xmm4, 0x20
paddq xmm4, xmm2
movdqu xmm2, xmmword [esp + 0x64]
psrlq xmm2, 0x20
paddq xmm2, xmm1
movdqu xmm1, xmmword [esp + 0x20]
psrlq xmm1, 0x20
paddq xmm1, xmm7
movdqu xmm0, xmmword [esp + 0x30]
psrlq xmm0, 0x20
movdqu xmm7, xmmword [esp]
paddq xmm0, xmm7
movdqu xmm7, xmmword [esp + 0x74]
pand xmm7, xmmword [0x687510]
paddq xmm7, xmm0
movdqu xmmword [esp + 0x54], xmm7
movdqu xmm0, xmmword [esp + 0x44]
movdqa xmm7, xmmword [0x687510]
pand xmm0, xmm7
paddq xmm0, xmm1
movdqu xmmword [esp], xmm0
movdqa xmm1, xmm5
pand xmm1, xmm7
paddq xmm1, xmm2
movdqa xmm0, xmm3
pand xmm0, xmmword [0x687510]
paddq xmm0, xmm4
movdqu xmm4, xmmword [esp + 0x74]
psrlq xmm4, 0x20
movdqu xmm2, xmmword [esp + 0xa4]
paddq xmm4, xmm2
movdqu xmm2, xmmword [esp + 0x44]
psrlq xmm2, 0x20
movdqu xmm7, xmmword [esp + 0x94]
paddq xmm2, xmm7
psrlq xmm5, 0x20
movdqu xmm7, xmmword [esp + 0x84]
paddq xmm5, xmm7
psrlq xmm3, 0x20
paddq xmm3, xmm6
movdqa xmm7, xmm0
psrlq xmm7, 0x20
paddq xmm7, xmm3
movdqa xmm6, xmm1
psrlq xmm6, 0x20
paddq xmm6, xmm5
movdqu xmm3, xmmword [esp]
psrlq xmm3, 0x20
paddq xmm3, xmm2
movdqu xmm2, xmmword [esp + 0x54]
psrlq xmm2, 0x20
paddq xmm2, xmm4
psllq xmm0, 0x20
movdqu xmm4, xmmword [esp + 0x10]
movdqa xmm5, xmmword [0x687510]
pand xmm4, xmm5
por xmm4, xmm0
pxor xmm4, xmm7
psllq xmm1, 0x20
movdqu xmm0, xmmword [esp + 0x64]
pand xmm0, xmm5
por xmm0, xmm1
pxor xmm0, xmm6
paddq xmm0, xmm4
movdqu xmm4, xmmword [esp]
psllq xmm4, 0x20
movdqu xmm1, xmmword [esp + 0x20]
pand xmm1, xmm5
por xmm1, xmm4
pxor xmm1, xmm3
movdqa xmm4, xmm1
movdqa xmm3, xmm5
movdqu xmm5, xmmword [esp + 0x54]
psllq xmm5, 0x20
movdqu xmm1, xmmword [esp + 0x30]
pand xmm1, xmm3
por xmm1, xmm5
pxor xmm1, xmm2
paddq xmm1, xmm4
mov esi, 0x85ebca87
mov eax, edx
mul esi
imul esi, edi, 0x9e3779b1
add esi, edx
paddq xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
pshufd xmm1, xmm0, 0x55
movd edx, xmm0
add edx, eax
movd ebx, xmm1
adc ebx, esi
imul esi, ebx, 0x9e3779f9
shr ebx, 5
xor ebx, edx
mov eax, ebx
mov edx, 0x9e3779f9
mul edx
imul ebx, ebx, 0x16566791
add ebx, edx
add ebx, esi
xor eax, ebx
movd xmm6, dword [esp + 0xcc]
movd xmm5, dword [esp + 0xd0]
cmp edi, 0x90
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], ebx
jl 0x4f523f
mov esi, eax
mov ebx, edi
shr ebx, 4
lea eax, [ebx - 8]
mov edx, 8
cmp eax, 2
jae 0x4f5248
mov dword [esp + 0x10], esi
jmp 0x4f537d
mov dword [esp + 0x10], eax
jmp 0x4f543d
mov edi, eax
and edi, 0xfffffffe
lea edx, [edi + 8]
mov dword [esp], edx
movd xmm2, esi
movdqa xmm0, xmm3
movd xmm3, dword [esp + 0x44]
punpckldq xmm2, xmm3
movq xmm2, xmm2
movdqu xmmword [esp + 0x20], xmm6
movdqa xmm3, xmm6
movdqu xmmword [esp + 0x30], xmm5
punpckldq xmm3, xmm5
pshufd xmm3, xmm3, 0x44
xor edx, edx
mov esi, edi
nop word cs:[eax + eax]
movdqu xmm5, xmmword [ecx + edx + 0x80]
movdqu xmm4, xmmword [ecx + edx + 0x90]
movdqa xmm7, xmm5
punpcklqdq xmm7, xmm4
punpckhqdq xmm5, xmm4
movdqu xmm4, xmmword [ebp + edx + 3]
movdqu xmm1, xmmword [ebp + edx + 0x13]
movdqa xmm6, xmm4
punpcklqdq xmm6, xmm1
punpckhqdq xmm4, xmm1
paddq xmm6, xmm3
pxor xmm6, xmm7
psubq xmm4, xmm3
pxor xmm4, xmm5
movdqa xmm5, xmm4
pmuludq xmm5, xmm6
movdqa xmm1, xmm6
psrlq xmm1, 0x20
movdqa xmm7, xmm4
pmuludq xmm7, xmm1
psrlq xmm4, 0x20
pmuludq xmm6, xmm4
pmuludq xmm4, xmm1
movdqa xmm1, xmm5
psrlq xmm1, 0x20
paddq xmm1, xmm6
movdqa xmm6, xmm7
pand xmm6, xmm0
paddq xmm6, xmm1
psrlq xmm7, 0x20
paddq xmm7, xmm4
movdqa xmm1, xmm6
psrlq xmm1, 0x20
paddq xmm1, xmm7
psllq xmm6, 0x20
pand xmm5, xmm0
por xmm5, xmm6
pxor xmm5, xmm1
paddq xmm2, xmm5
add edx, 0x20
add esi, 0xfffffffe
jne 0x4f5290
pshufd xmm1, xmm2, 0xee
paddq xmm1, xmm2
movd dword [esp + 0x10], xmm1
pshufd xmm1, xmm1, 0x55
movd dword [esp + 0x44], xmm1
cmp eax, edi
movdqu xmm5, xmmword [esp + 0x30]
movdqu xmm6, xmmword [esp + 0x20]
mov edx, dword [esp]
je 0x4f543d
movdqa xmm1, xmm6
punpckldq xmm1, xmm5
pshufd xmm2, xmm1, 0x44
sub ebx, edx
shl edx, 4
nop
mov dword [esp], edx
mov dword [esp + 0x30], ebx
movups xmm1, xmmword [ecx + edx]
movdqu xmm3, xmmword [ebp + edx - 0x7d]
movdqa xmm4, xmm3
psubq xmm4, xmm2
paddq xmm3, xmm2
shufps xmm3, xmm4, 0xe4
xorps xmm3, xmm1
movd esi, xmm3
pshufd xmm1, xmm3, 0xee
movd edi, xmm1
mov eax, edi
mul esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x64], edx
pshufd xmm1, xmm3, 0xff
psrlq xmm3, 0x20
mov ebp, ecx
movd ecx, xmm3
mov eax, edi
mul ecx
mov dword [esp + 0x54], eax
mov dword [esp + 0x74], edx
movd edi, xmm1
mov eax, edi
mul esi
mov ebx, edx
mov esi, eax
mov eax, edi
mul ecx
mov ecx, ebp
mov ebp, dword [esp + 0xc8]
add esi, dword [esp + 0x54]
adc ebx, 0
add esi, dword [esp + 0x64]
adc ebx, 0
add eax, dword [esp + 0x74]
adc edx, 0
add eax, ebx
mov ebx, dword [esp + 0x30]
adc edx, 0
xor edx, esi
xor eax, dword [esp + 0x20]
add dword [esp + 0x10], eax
adc dword [esp + 0x44], edx
mov edx, dword [esp]
add edx, 0x10
add ebx, 0xffffffff
jne 0x4f5390
mov eax, dword [esp + 0x40]
movups xmm1, xmmword [ecx + eax - 0x10]
movdqu xmm2, xmmword [ebp + 0x77]
punpckldq xmm6, xmm5
pshufd xmm3, xmm6, 0x44
paddq xmm6, xmm2
psubq xmm2, xmm3
shufps xmm6, xmm2, 0xe4
xorps xmm6, xmm1
movd ebp, xmm6
pshufd xmm1, xmm6, 0xee
movd ecx, xmm1
mov eax, ecx
mul ebp
mov dword [esp], eax
mov dword [esp + 0x30], edx
pshufd xmm1, xmm6, 0xff
psrlq xmm6, 0x20
movd esi, xmm6
mov eax, ecx
mul esi
mov ebx, eax
mov dword [esp + 0x20], edx
movd edi, xmm1
mov eax, edi
mul ebp
mov ecx, edx
mov ebp, eax
mov eax, edi
mul esi
mov edi, edx
add ebp, ebx
adc ecx, 0
add ebp, dword [esp + 0x30]
adc ecx, 0
add eax, dword [esp + 0x20]
adc edi, 0
add eax, ecx
adc edi, 0
xor edi, ebp
xor eax, dword [esp]
add eax, dword [esp + 0x10]
adc edi, dword [esp + 0x44]
mov ecx, edi
shr ecx, 5
xor eax, ecx
mov esi, 0x16566791
imul esi, eax
mov ecx, 0x9e3779f9
mul ecx
add edx, esi
imul edi, ecx
add edx, edi
xor eax, edx
add esp, 0xb4
pop esi
pop edi
pop ebx
pop ebp
ret