Function at 0x724750
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x1c
mov ebx, dword [esp + 0x3c]
mov esi, dword [esp + 0x38]
cmp esi, ebx
jb 0x724b8f
mov ebp, dword [esp + 0x30]
cmp ebx, 7
ja 0x724782
mov ecx, ebp
call fcn.00724ba0
sub esi, ebx
cmp esi, ebx
jae 0x724770
jmp 0x724b8f
mov eax, dword [esp + 0x34]
mov dword [esp], eax
mov edi, ebx
shr edi, 3
mov eax, ebx
and eax, 0xfffffff8
mov dword [esp + 0x10], eax
add eax, ebp
mov dword [esp + 0xc], eax
mov eax, ebx
and eax, 8
cmp eax, 1
mov eax, 0xffffffff
sbb eax, 0
add eax, edi
mov dword [esp + 8], eax
lea eax, [eax*8]
mov dword [esp + 4], eax
movdqa xmm6, xmmword [0xa719e0]
mov dword [esp + 0x18], edi
nop word [eax + eax]
xor eax, eax
cmp ebx, 0x18
mov dword [esp + 0x14], esi
jae 0x7247f0
mov ebx, dword [esp]
jmp 0x724a70
mov ebx, dword [esp]
mov ecx, dword [esp + 0x10]
add ecx, ebx
cmp ecx, ebp
seta cl
cmp ebx, dword [esp + 0xc]
setb dl
test cl, dl
jne 0x724a70
mov eax, dword [esp + 4]
add eax, ebx
xor ecx, ecx
mov esi, dword [esp + 8]
nop dword [eax]
movdqu xmm0, xmmword [ebx + ecx*8]
pshufd xmm1, xmm0, 0xe7
pshuflw xmm2, xmm1, 0xe7
pshufd xmm1, xmm0, 0xe8
movq xmm5, qword [0xa719d0]
pand xmm1, xmm5
movzx edx, byte [ebx + ecx*8 + 0xa]
movd xmm3, edx
psllw xmm3, 8
movdqa xmm4, xmm6
pandn xmm4, xmm3
movdqa xmm3, xmm0
psrld xmm3, 0x10
pand xmm3, xmm6
por xmm4, xmm3
punpcklbw xmm4, xmmword [0xa71ac0]
pxor xmm3, xmm3
punpcklwd xmm3, xmm4
por xmm3, xmm1
movzx edx, byte [ebx + ecx*8 + 0xb]
movd xmm4, edx
psllw xmm4, 8
movdqa xmm1, xmm6
pandn xmm1, xmm4
pshufd xmm4, xmm0, 0xed
psrld xmm0, 0x18
por xmm1, xmm0
punpcklbw xmm1, xmm1
punpcklwd xmm1, xmm1
pslld xmm1, 0x18
por xmm1, xmm3
pand xmm4, xmm5
pxor xmm0, xmm0
punpcklwd xmm0, xmm2
por xmm0, xmm4
movdqa xmm2, xmm1
movdqa xmm4, xmmword [str.UUUUUUUU]
pand xmm2, xmm4
movdqa xmm3, xmm2
psrld xmm3, 1
por xmm3, xmm2
movdqa xmm5, xmmword [str.33333333]
pand xmm3, xmm5
movdqa xmm2, xmm3
psrld xmm2, 2
por xmm2, xmm3
movdqa xmm7, xmmword [0xa71a10]
pand xmm2, xmm7
movdqa xmm3, xmm2
psrld xmm3, 4
por xmm3, xmm2
movdqa xmm2, xmm0
pand xmm2, xmm4
movdqa xmm4, xmm2
psrld xmm4, 1
por xmm4, xmm2
pand xmm4, xmm5
movdqa xmm2, xmm4
psrld xmm2, 2
por xmm2, xmm4
pand xmm2, xmm7
movdqa xmm4, xmm2
psrld xmm4, 4
por xmm4, xmm2
pand xmm4, xmmword [0xa71a40]
movdqa xmm2, xmm4
psrld xmm2, 8
por xmm2, xmm4
movdqa xmm4, xmm3
psrld xmm4, 8
pand xmm4, xmmword [0xa71a20]
pand xmm3, xmmword [0xa71a30]
pslld xmm2, 0x10
por xmm2, xmm3
por xmm2, xmm4
movdqa xmm4, xmmword [0xa71a50]
pand xmm1, xmm4
movdqa xmm3, xmm1
paddd xmm3, xmm1
por xmm3, xmm1
movdqa xmm5, xmmword [0xa71a60]
pand xmm3, xmm5
movdqa xmm1, xmm3
pslld xmm1, 2
por xmm1, xmm3
movdqa xmm7, xmmword [0xa71a70]
pand xmm1, xmm7
movdqa xmm3, xmm1
pslld xmm3, 4
por xmm3, xmm1
pand xmm3, xmmword [0xa71a80]
movdqa xmm1, xmm3
pslld xmm1, 8
por xmm1, xmm3
pand xmm0, xmm4
movdqa xmm3, xmm0
paddd xmm3, xmm0
por xmm3, xmm0
pand xmm3, xmm5
movdqa xmm0, xmm3
pslld xmm0, 2
por xmm0, xmm3
pand xmm0, xmm7
movdqa xmm3, xmm0
pslld xmm3, 4
por xmm3, xmm0
pshufd xmm4, xmm0, 0xf5
movdqa xmm5, xmmword [0xa71a90]
pmuludq xmm0, xmm5
pmuludq xmm4, xmm5
punpckldq xmm0, xmm4
pand xmm3, xmmword [0xa71ab0]
pand xmm0, xmmword [0xa71aa0]
por xmm0, xmm3
psrld xmm1, 0x10
por xmm0, xmm1
punpckldq xmm2, xmm0
movdqu xmm0, xmmword [ebp + ecx*8]
pxor xmm0, xmm2
movdqu xmmword [ebp + ecx*8], xmm0
add ecx, 2
cmp esi, ecx
jne 0x724820
mov ebx, eax
mov eax, esi
nop dword [eax + eax]
mov dword [esp], ebx
mov esi, dword [ebx]
mov ecx, dword [ebx + 4]
mov edx, esi
and edx, 0x55555555
mov ebx, edx
shr ebx, 1
or ebx, edx
and ebx, 0x33333333
mov edx, ebx
shr edx, 2
or edx, ebx
and edx, 0xf0f0f0f
mov ebx, edx
shr ebx, 4
or ebx, edx
movzx edx, bl
shr ebx, 8
and ebx, 0xff00
or edx, ebx
mov ebx, ecx
and ebx, 0x55555555
mov edi, ebp
mov ebp, ebx
shr ebp, 1
or ebp, ebx
and ebp, 0x33333333
mov ebx, ebp
shr ebx, 2
or ebx, ebp
and ebx, 0xf0f0f0f
mov ebp, ebx
shr ebp, 4
or ebp, ebx
and ebp, 0xff00ff
mov ebx, ebp
shr ebx, 8
or ebx, ebp
and esi, 0xaaaaaaaa
lea esi, [esi + esi*2]
and esi, 0xcccccccc
lea esi, [esi + esi*4]
and esi, 0xf0f0f0f0
mov ebp, esi
shl ebp, 4
or ebp, esi
and ebp, 0xff00ff00
mov esi, ebp
shl esi, 8
or esi, ebp
shr esi, 0x10
and ecx, 0xaaaaaaaa
lea ecx, [ecx + ecx*2]
and ecx, 0xcccccccc
lea ebp, [ecx + ecx*4]
and ebp, 0xf0f0f0f0
mov ecx, ebp
shl ecx, 4
or ecx, ebp
and ecx, 0xff000000
or ecx, esi
imul esi, ebp, 0x1100
mov ebp, edi
mov edi, dword [esp + 0x18]
and esi, 0xff0000
or ecx, esi
xor dword [ebp + eax*8 + 4], ecx
shl ebx, 0x10
or ebx, edx
xor dword [ebp + eax*8], ebx
mov ebx, dword [esp]
add ebx, 8
inc eax
cmp edi, eax
jne 0x724a70
mov dword [esp], ebx
mov ecx, ebp
call fcn.00724ba0
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x3c]
sub esi, ebx
cmp esi, ebx
movdqa xmm6, xmmword [0xa719e0]
jae 0x7247d0
mov eax, esi
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret