Function at 0x4271b2
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xd0
mov eax, dword [ecx]
movups xmm2, xmmword [ecx + 4]
movups xmm3, xmmword [ecx + 0x14]
mov esi, dword [ecx + 0x24]
mov dword [esp + 0x24], esi
movd xmm0, esi
movsd xmm1, qword [ecx + 0x28]
movsd xmm4, qword [ecx + 0x38]
movaps xmm5, xmm2
shufps xmm5, xmm3, 3
shufps xmm5, xmm3, 0x98
movups xmmword [esp + 0x50], xmm5
mov dword [esp + 0x28], eax
movd xmm6, eax
shufps xmm6, xmm2, 0xe4
movups xmmword [esp + 0x80], xmm2
shufps xmm6, xmm2, 0x42
movups xmmword [esp + 0x70], xmm3
shufps xmm0, xmm3, 0xe4
shufps xmm0, xmm1, 0x4c
shufps xmm0, xmm0, 0x78
movss dword [esp + 0x20], xmm1
shufps xmm1, xmm1, 0x55
movss dword [esp + 0x1c], xmm1
movaps xmm1, xmm4
shufps xmm1, xmm4, 0x55
movss dword [esp + 0x18], xmm1
mov eax, dword [esp + 0xec]
mov ebp, dword [esp + 0xe8]
mov esi, dword [esp + 0xe4]
mov ebx, dword [ecx + 0x30]
mov dword [esp + 0x10], ecx
mov edi, dword [ecx + 0x34]
mov ecx, esi
movups xmmword [esp + 0x60], xmm4
movss dword [esp + 0x14], xmm4
mov dword [esp + 4], 0
mov esi, ebp
mov dword [esp + 0xc], eax
sub esi, 0x40
sbb eax, 0
mov dword [esp + 0x30], esi
mov dword [esp + 0x2c], eax
jae 0x4272dd
mov dword [esp], ecx
xorps xmm1, xmm1
movups xmmword [esp + 0xc0], xmm1
movups xmmword [esp + 0xb0], xmm1
movups xmmword [esp + 0xa0], xmm1
movups xmmword [esp + 0x90], xmm1
mov eax, ebp
mov ecx, dword [esp + 0xc]
or eax, ecx
je 0x4272c9
xor eax, eax
inc eax
mov esi, ecx
mov cl, byte [edx + eax - 1]
mov byte [esp + eax + 0x8f], cl
cmp eax, ebp
lea eax, [eax + 1]
mov ecx, 0
sbb ecx, esi
jb 0x4272b0
lea edx, [esp + 0x90]
mov dword [esp + 8], edx
mov eax, dword [esp]
mov dword [esp + 4], eax
jmp 0x4272e1
mov dword [esp + 8], ecx
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], ebp
mov esi, ebx
movd xmm1, ebx
mov edx, edi
movd xmm2, edi
punpcklqdq xmm2, xmm1
movups xmm3, xmmword [esp + 0x60]
shufps xmm3, xmm2, 0x24
mov ecx, 0xffffffec
movdqu xmm7, xmmword [esp + 0x50]
movaps xmm5, xmm6
movaps xmm1, xmm0
pshufd xmm3, xmm3, 0x39
pshufd xmm4, xmm7, 0x93
paddd xmm4, xmm5
pxor xmm3, xmm4
movdqa xmm2, xmm3
psrld xmm2, 0x10
pslld xmm3, 0x10
por xmm3, xmm2
pshufd xmm2, xmm3, 0x4e
paddd xmm2, xmm1
pshufd xmm1, xmm2, 0x93
pxor xmm1, xmm7
movdqa xmm5, xmm1
psrld xmm5, 0x14
pslld xmm1, 0xc
por xmm1, xmm5
pshufd xmm5, xmm1, 0x93
paddd xmm5, xmm4
pxor xmm3, xmm5
pshufd xmm3, xmm3, 0x4e
movdqa xmm4, xmm3
psrld xmm4, 0x18
pslld xmm3, 8
por xmm3, xmm4
paddd xmm2, xmm3
pshufd xmm7, xmm2, 0x93
pxor xmm7, xmm1
movdqa xmm1, xmm7
psrld xmm1, 0x19
pslld xmm7, 7
por xmm7, xmm1
paddd xmm5, xmm7
pshufd xmm3, xmm3, 0x39
pxor xmm3, xmm5
movdqa xmm1, xmm3
psrld xmm1, 0x10
pslld xmm3, 0x10
por xmm3, xmm1
paddd xmm2, xmm3
pxor xmm7, xmm2
movdqa xmm1, xmm7
psrld xmm1, 0x14
pslld xmm7, 0xc
por xmm7, xmm1
paddd xmm5, xmm7
pxor xmm3, xmm5
movdqa xmm1, xmm3
psrld xmm1, 0x18
pslld xmm3, 8
por xmm3, xmm1
movdqa xmm1, xmm2
paddd xmm1, xmm3
pxor xmm7, xmm1
movdqa xmm2, xmm7
psrld xmm2, 0x19
pslld xmm7, 7
por xmm7, xmm2
add ecx, 2
jne 0x427313
pshufd xmm2, xmm5, 0x55
movd ecx, xmm2
add ecx, dword [esp + 0x28]
mov ebp, ecx
movd eax, xmm1
add eax, dword [esp + 0x24]
pshufd xmm2, xmm1, 0x55
movd ebx, xmm2
add ebx, dword [esp + 0x20]
pshufd xmm2, xmm1, 0xee
movd ecx, xmm2
add ecx, dword [esp + 0x1c]
mov dword [esp], ecx
pshufd xmm2, xmm3, 0xee
movd ecx, xmm2
mov dword [esp + 0x44], esi
add ecx, esi
mov edi, ecx
pshufd xmm2, xmm3, 0xff
movd esi, xmm2
mov dword [esp + 0x40], edx
add esi, edx
movd ecx, xmm3
add ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x48]
xor ebp, dword [edx]
mov dword [esp + 0x34], ebp
xor eax, dword [edx + 0x24]
mov dword [esp + 0x3c], eax
xor ebx, dword [edx + 0x28]
mov eax, dword [esp]
xor eax, dword [edx + 0x2c]
mov dword [esp], eax
xor edi, dword [edx + 0x30]
mov dword [esp + 0x38], edi
xor esi, dword [edx + 0x34]
pshufd xmm2, xmm3, 0x55
xor ecx, dword [edx + 0x38]
movd eax, xmm2
add eax, dword [esp + 0x18]
xor eax, dword [edx + 0x3c]
movdqu xmm2, xmmword [edx + 4]
movdqu xmm3, xmmword [edx + 0x14]
mov ebp, dword [esp + 8]
mov edi, dword [esp + 0x34]
mov dword [ebp], edi
movdqa xmm4, xmm7
punpcklqdq xmm4, xmm5
shufps xmm5, xmm4, 0x2e
movdqu xmm4, xmmword [esp + 0x80]
paddd xmm5, xmm4
shufps xmm1, xmm7, 0x33
shufps xmm7, xmm1, 0x29
movdqu xmm1, xmmword [esp + 0x70]
paddd xmm7, xmm1
pxor xmm2, xmm5
pxor xmm3, xmm7
movdqu xmmword [ebp + 4], xmm2
movdqu xmmword [ebp + 0x14], xmm3
mov edi, dword [esp + 0x3c]
mov dword [ebp + 0x24], edi
mov dword [ebp + 0x28], ebx
mov ebx, dword [esp + 0x44]
mov edi, dword [esp]
mov dword [ebp + 0x2c], edi
mov edi, dword [esp + 0x38]
mov dword [ebp + 0x30], edi
mov edi, dword [esp + 0x40]
mov dword [ebp + 0x34], esi
mov dword [ebp + 0x38], ecx
add ebx, 1
adc edi, 0
mov dword [ebp + 0x3c], eax
mov esi, dword [esp + 0x4c]
mov eax, 0x40
cmp eax, esi
mov eax, 0
mov ecx, dword [esp + 0xc]
sbb eax, ecx
jae 0x42755d
add ebp, 0x40
add edx, 0x40
mov esi, dword [esp + 0x30]
mov ecx, ebp
mov ebp, esi
mov eax, dword [esp + 0x2c]
jmp 0x427267
xor eax, eax
mov edx, ecx
mov ecx, 0x3f
cmp ecx, esi
sbb eax, edx
mov edx, dword [esp + 4]
jb 0x427582
test esi, esi
je 0x427582
xor eax, eax
mov cl, byte [ebp + eax]
mov byte [edx + eax], cl
inc eax
cmp eax, esi
jb 0x427576
mov eax, dword [esp + 0x10]
mov dword [eax + 0x30], ebx
mov dword [eax + 0x34], edi
add esp, 0xd0
pop esi
pop edi
pop ebx
pop ebp
ret