Function at 0x517e70
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
mov eax, 0x1400
call fcn.005540d0
mov eax, dword [esp + 0x1418]
movdqa xmm4, xmmword [0x559290]
movdqa xmm6, xmmword [0x5592a0]
mov esi, 0xfffffc00
pxor xmm2, xmm2
nop
movdqa xmm3, xmm4
movdqa xmm7, xmmword [0x5592c0]
movdqa xmm0, xmm4
movdqa xmm1, xmm4
movdqa xmm5, xmm4
pand xmm3, xmm6
psrld xmm0, 6
pand xmm1, xmmword [0x559320]
pcmpeqd xmm3, xmm2
pand xmm3, xmmword [0x5592b0]
pcmpeqd xmm1, xmm2
pand xmm1, xmmword [0x559330]
pxor xmm0, xmm3
movdqa xmm3, xmm4
pand xmm3, xmm7
movdqa xmm7, xmmword [0x5592e0]
pcmpeqd xmm3, xmm2
pand xmm3, xmmword [0x5592d0]
pand xmm5, xmm7
movdqa xmm7, xmmword [0x559350]
pcmpeqd xmm5, xmm2
pand xmm5, xmmword [0x5592f0]
pxor xmm3, xmm0
pand xmm0, xmm6
pcmpeqd xmm0, xmm2
pxor xmm1, xmm5
movdqa xmm5, xmm4
pand xmm5, xmmword [0x559340]
pcmpeqd xmm5, xmm2
pand xmm5, xmm7
pxor xmm5, xmm1
movdqa xmm1, xmm4
paddd xmm4, xmmword [0x5592e0]
pand xmm1, xmmword [str._b_b_b_b]
pxor xmm5, xmm3
pand xmm3, xmmword [0x5592c0]
pcmpeqd xmm1, xmm2
pcmpeqd xmm3, xmm2
pand xmm1, xmmword [0x559310]
pand xmm3, xmm7
pxor xmm5, xmm1
movdqa xmm1, xmm0
pand xmm0, xmmword [0x559370]
pandn xmm1, xmmword [0x559360]
psrld xmm5, 2
por xmm0, xmm1
pxor xmm0, xmm5
pxor xmm0, xmm3
movdqu xmmword [esp + esi + 0x400], xmm0
add esi, 0x10
jne 0x517ea0
mov esi, eax
mov eax, 0xfffffc00
shr esi, 2
nop word [eax + eax]
mov ebx, dword [esp + eax + 0x400]
movzx ecx, bl
shr ebx, 8
xor ebx, dword [esp + ecx*4]
movzx ecx, bl
shr ebx, 8
xor ebx, dword [esp + ecx*4]
movzx ecx, bl
shr ebx, 8
xor ebx, dword [esp + ecx*4]
mov dword [esp + eax + 0x800], ebx
add eax, 4
jne 0x517fc0
mov eax, dword [esp]
mov edi, dword [esp + 0x400]
xor ebp, ebp
mov ebx, eax
shr ebx, 8
nop
mov ecx, eax
xor ecx, ebp
movzx ecx, cl
mov ecx, dword [esp + ecx*4]
xor ecx, ebx
movzx edx, cl
shr ecx, 8
xor ecx, dword [esp + edx*4]
movzx edx, cl
shr ecx, 8
mov edx, dword [esp + edx*4]
xor edx, edi
xor edx, ecx
mov dword [esp + ebp*4 + 0x800], edx
inc ebp
cmp ebp, 0x100
jne 0x518000
movzx eax, al
xor ebx, dword [esp + eax*4]
xor eax, eax
mov ebp, ebx
shr ebp, 8
nop
mov ecx, ebx
xor ecx, eax
movzx ecx, cl
mov ecx, dword [esp + ecx*4]
xor ecx, ebp
movzx edx, cl
shr ecx, 8
mov edx, dword [esp + edx*4]
xor edx, edi
xor edx, ecx
mov dword [esp + eax*4 + 0xc00], edx
inc eax
cmp eax, 0x100
jne 0x518040
movzx eax, bl
xor ebx, ebx
xor ebp, dword [esp + eax*4]
mov eax, ebp
shr eax, 8
nop word cs:[eax + eax]
nop
mov ecx, ebp
xor ecx, ebx
movzx ecx, cl
mov ecx, dword [esp + ecx*4]
xor ecx, edi
xor ecx, eax
mov dword [esp + ebx*4 + 0x1000], ecx
inc ebx
cmp ebx, 0x100
jne 0x518080
mov edi, dword [esp + 0x141c]
mov ebp, dword [esp + 0x1414]
test esi, esi
je 0x5180fc
mov eax, ebp
nop word cs:[eax + eax]
nop dword [eax]
mov ebx, dword [eax]
add eax, 4
xor ebx, dword [edi]
movzx ecx, bl
movzx edx, bh
mov ecx, dword [esp + ecx*4 + 0x400]
xor ecx, dword [esp + edx*4 + 0x800]
mov edx, ebx
shr ebx, 0x18
shr edx, 0xe
and edx, 0x3fc
xor ecx, dword [esp + edx + 0xc00]
xor ecx, dword [esp + ebx*4 + 0x1000]
dec esi
mov dword [edi], ecx
jne 0x5180c0
mov esi, dword [esp + 0x1418]
mov eax, esi
and eax, 0xfffffffc
cmp eax, esi
jae 0x518127
sub esi, eax
add ebp, eax
mov eax, dword [edi]
movzx edx, byte [ebp]
inc ebp
movzx ecx, al
shr eax, 8
xor edx, ecx
xor eax, dword [esp + edx*4]
dec esi
mov dword [edi], eax
jne 0x518110
add esp, 0x1400
pop esi
pop edi
pop ebx
pop ebp
ret