Function at 0x1002d900
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x48
mov edi, dword [esp + 0x5c]
mov eax, dword [esp + 0x4c]
add eax, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x50]
add eax, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x54]
add eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x58]
add eax, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x64]
sub eax, 4
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x60]
lea edx, [eax - 4]
shl eax, 3
mov dword [esp + 0xc], edx
mov dword [esp + 0x14], eax
lea edi, [edi + eax*2 + 0x10]
mov dword [esp], edi
mov eax, dword [esp]
mov edx, dword [esp + 0x14]
mov dword [esp + 4], eax
add dword [esp], edx
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jmp 0x1002d980
mov ebx, dword [esp + 4]
mov edi, dword [esp + 0x14]
add ebx, dword [esp + 0x18]
movzx ebp, word [ebx]
movd xmm3, ebp
movzx eax, word [ebx - 0x10]
movd xmm4, eax
lea ecx, [ebp + eax]
sub eax, ebp
movd xmm2, ebp
cdq
xor eax, edx
sub eax, edx
mov dword [0x452fbb4c], ecx
add eax, eax
mov dword [0x452fba6c], eax
movzx eax, word [ebx + 0x10]
lea esi, [ebp + eax]
pinsrw xmm4, eax, 2
sub eax, ebp
cdq
xor eax, edx
pshufd xmm3, xmm3, 0
sub eax, edx
mov dword [0x452fbb0c], esi
add eax, eax
mov dword [0x452fba64], eax
movzx eax, word [ebx + edi*2 - 0x10]
add ecx, eax
sub eax, ebp
cdq
xor eax, edx
sub eax, edx
add eax, eax
mov dword [0x452fba7c], eax
movzx eax, word [ebx + edi*2]
pinsrw xmm4, eax, 4
add ecx, eax
add esi, eax
sub eax, ebp
mov dword [0x452fbb6c], ecx
cdq
xor eax, edx
sub eax, edx
add eax, eax
mov dword [0x452fba68], eax
movzx eax, word [ebx + edi*2 + 0x10]
neg edi
add esi, eax
sub eax, ebp
cdq
mov dword [0x452fbb2c], esi
xor eax, edx
sub eax, edx
add eax, eax
mov dword [0x452fba74], eax
movzx eax, word [ebx + edi*2 - 0x10]
add dword [0x452fbb4c], eax
sub eax, ebp
cdq
xor eax, edx
sub eax, edx
add eax, eax
mov dword [0x452fba78], eax
movzx eax, word [ebx + edi*2]
pinsrw xmm4, eax, 6
add dword [0x452fbb4c], eax
add dword [0x452fbb0c], eax
sub eax, ebp
cdq
xor eax, edx
paddd xmm3, xmm4
sub eax, edx
add eax, eax
mov dword [0x452fba60], eax
movzx eax, word [ebx + edi*2 + 0x10]
mov ebx, dword [esp + 4]
add ebx, dword [esp + 0x20]
paddd xmm3, xmm3
add dword [0x452fbb0c], eax
sub eax, ebp
cdq
xor eax, edx
movd dword [0x452fbaec], xmm3
sub eax, edx
psrldq xmm3, 4
add eax, eax
mov dword [0x452fba70], eax
movzx ebp, word [ebx - 8]
movd xmm0, ebp
lea edx, [ebp*4]
movzx eax, word [ebx + 8]
mov dword [0x452fbae8], edx
lea edx, [eax*4]
mov esi, eax
lea ecx, [ebp + eax]
sub eax, ebp
mov dword [0x452fbaa8], edx
cdq
mov dword [0x452fbac8], ecx
xor eax, edx
movd dword [0x452fbaac], xmm3
sub eax, edx
add eax, eax
psrldq xmm3, 4
add dword [0x452fba64], eax
add dword [0x452fba6c], eax
movzx eax, word [ebx + edi*2 - 8]
movd xmm1, eax
lea edx, [ecx + eax]
mov ecx, eax
mov dword [0x452fba88], edx
sub eax, ebp
movd dword [0x452fbacc], xmm3
sub ecx, esi
cdq
xor eax, edx
psrldq xmm3, 4
sub eax, edx
add dword [0x452fba60], eax
lea eax, [ecx + ecx]
cdq
xor eax, edx
sub eax, edx
movd dword [0x452fba8c], xmm3
add dword [0x452fba78], eax
movzx eax, word [ebx + edi*2 + 8]
pinsrw xmm1, eax, 2
neg edi
add dword [0x452fba88], eax
mov ecx, eax
sub eax, ebp
sub ecx, esi
cdq
xor eax, edx
pinsrw xmm0, esi, 2
sub eax, edx
add eax, eax
add dword [0x452fba70], eax
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
add dword [0x452fba60], eax
movzx eax, word [ebx + edi*2 - 8]
pinsrw xmm1, eax, 4
add dword [0x452fbac8], eax
mov ecx, eax
sub eax, ebp
sub ecx, esi
cdq
xor eax, edx
pshufd xmm0, xmm0, 0x44
sub eax, edx
add dword [0x452fba68], eax
lea eax, [ecx + ecx]
cdq
xor eax, edx
sub eax, edx
add dword [0x452fba7c], eax
movzx eax, word [ebx + edi*2 + 8]
mov ebx, dword [esp + 4]
add ebx, dword [esp + 0x28]
pinsrw xmm1, eax, 6
add dword [0x452fbac8], eax
mov ecx, eax
sub eax, ebp
sub ecx, esi
cdq
paddd xmm0, xmm1
xor eax, edx
sub eax, edx
add eax, eax
paddd xmm0, xmm0
add dword [0x452fba74], eax
mov eax, ecx
cdq
xor eax, edx
movd dword [0x452fbb48], xmm0
sub eax, edx
add dword [0x452fba68], eax
psrldq xmm0, 4
movzx ebp, word [edi + ebx]
lea edx, [ebp*4]
movzx eax, word [edi + ebx - 0x10]
mov dword [0x452fbac4], edx
lea edx, [ebp + eax]
movzx ecx, word [edi + ebx + 0x10]
neg edi
movd dword [0x452fbb08], xmm0
mov dword [0x452fbae4], edx
add edx, edx
mov esi, eax
sub eax, ebp
psrldq xmm0, 4
mov dword [0x452fbb64], edx
cdq
xor eax, edx
sub eax, edx
lea edx, [ebp + ecx]
add dword [0x452fba6c], eax
movd dword [0x452fbb68], xmm0
mov dword [0x452fbaa4], edx
add edx, edx
mov eax, ecx
sub eax, ebp
mov dword [0x452fbb24], edx
cdq
psrldq xmm0, 4
xor eax, edx
sub eax, edx
add dword [0x452fba64], eax
movzx eax, word [edi + ebx]
lea edx, [eax*4]
sub esi, eax
xchg esi, eax
movd dword [0x452fbb28], xmm0
sub ecx, esi
mov dword [0x452fba84], edx
cdq
xor eax, edx
sub eax, edx
add eax, eax
add dword [0x452fba7c], eax
lea eax, [ecx + ecx]
cdq
xor eax, edx
sub eax, edx
add dword [0x452fba74], eax
movzx eax, word [edi + ebx - 0x10]
lea edx, [esi + eax]
mov ecx, eax
add dword [0x452fbae4], edx
add edx, edx
sub eax, ebp
sub ecx, esi
mov dword [0x452fbb44], edx
cdq
xor eax, edx
sub eax, edx
add eax, eax
add dword [0x452fba78], eax
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
add dword [0x452fba6c], eax
movzx eax, word [edi + ebx + 0x10]
mov ebx, dword [esp + 4]
add ebx, dword [esp + 0x30]
lea edx, [esi + eax]
mov ecx, eax
add dword [0x452fbaa4], edx
add edx, edx
sub eax, ebp
sub ecx, esi
sub esi, ebp
mov dword [0x452fbb04], edx
cdq
xor eax, edx
sub eax, edx
add eax, eax
add dword [0x452fba70], eax
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
add dword [0x452fba64], eax
lea eax, [esi + esi]
cdq
xor eax, edx
sub eax, edx
add dword [0x452fba60], eax
add dword [0x452fba68], eax
movzx ebp, word [edi + ebx - 8]
movd xmm3, ebp
movzx eax, word [edi + ebx + 8]
neg edi
mov esi, eax
pinsrw xmm3, eax, 2
sub eax, ebp
cdq
xor eax, edx
sub eax, edx
add dword [0x452fba64], eax
add dword [0x452fba6c], eax
movzx eax, word [edi + ebx - 8]
pinsrw xmm3, eax, 4
mov ecx, eax
sub eax, ebp
cdq
xor eax, edx
sub eax, edx
add dword [0x452fba60], eax
add dword [0x452fba68], eax
mov eax, ecx
sub eax, esi
cdq
xor eax, edx
sub eax, edx
add eax, eax
add dword [0x452fba70], eax
add dword [0x452fba7c], eax
movzx eax, word [edi + ebx + 8]
pxor xmm1, xmm1
pinsrw xmm3, eax, 6
mov edi, dword [0x452fba70]
mov ebx, dword [0x452fba7c]
sub esi, eax
por xmm1, xmm3
pshufd xmm4, xmm3, 0x8d
paddd xmm3, xmm4
pslld xmm1, 2
paddd xmm3, xmm3
movd dword [0x452fbb40], xmm1
movd dword [0x452fba80], xmm3
psrldq xmm1, 4
psrldq xmm3, 4
movd dword [0x452fbb00], xmm1
movd dword [0x452fbaa0], xmm3
psrldq xmm1, 4
psrldq xmm3, 4
movd dword [0x452fbb60], xmm1
movd dword [0x452fbae0], xmm3
psrldq xmm1, 4
psrldq xmm3, 4
movd dword [0x452fbb20], xmm1
movd dword [0x452fbac0], xmm3
sub ebp, eax
sub eax, ecx
mov ecx, dword [0x452fba64]
cdq
xor eax, edx
sub eax, edx
add ecx, eax
add eax, dword [0x452fba6c]
mov dword [0x452fba64], ecx
xchg esi, eax
cdq
xor eax, edx
sub eax, edx
add dword [0x452fba60], eax
add eax, dword [0x452fba68]
xchg ebp, eax
cdq
xor eax, edx
sub eax, edx
mov edx, dword [0x452fba60]
add eax, eax
add dword [0x452fba74], eax
add dword [0x452fba78], eax
mov eax, ebx
pshufd xmm2, xmm2, 0xc0
pxor xmm0, xmm0
cvtdq2ps xmm2, xmm2
addps xmm2, xmm5
cmp ebx, edi
cmova eax, edi
cmovb ebx, edi
mov edi, dword [0x452fba74]
cmp eax, ecx
cmova eax, ecx
cmp ebx, ecx
cmovb ebx, ecx
mov ecx, dword [0x452fba78]
cmp eax, esi
cmova eax, esi
cmp ebx, esi
cmovb ebx, esi
cmp eax, ebp
cmova eax, ebp
cmp ebx, ebp
cmovb ebx, ebp
cmp eax, edx
cmova eax, edx
cmp ebx, edx
cmovb ebx, edx
cmp eax, edi
cmova eax, edi
cmp ebx, edi
cmovb ebx, edi
cmp eax, ecx
cmova eax, ecx
cmp ebx, ecx
cmovb ebx, ecx
shr ebx, 1
lea eax, [ebx + eax]
xor ebx, ebx
cmp eax, ecx
mov ecx, 0x10
cmovb ebx, ecx
setae cl
paddd xmm0, xmmword [ebx + 0x452fbb40]
xor ebx, ebx
cmp eax, edx
mov edx, 0x10
cmovb ebx, edx
setae dl
paddd xmm0, xmmword [ebx + 0x452fba80]
xor ebx, ebx
add ecx, edx
cmp eax, esi
mov esi, 0x10
cmovb ebx, esi
setae dl
paddd xmm0, xmmword [ebx + 0x452fbae0]
xor ebx, ebx
add ecx, edx
cmp eax, edi
cmovb ebx, esi
setae dl
mov edi, dword [esp + 4]
add dword [esp + 4], 8
paddd xmm0, xmmword [ebx + 0x452fbb20]
xor ebx, ebx
add ecx, edx
cmp eax, ebp
cmovb ebx, esi
setae dl
paddd xmm0, xmmword [ebx + 0x452fbac0]
mov ebp, dword [esp + 0x30]
xor ebx, ebx
add ecx, edx
cmp eax, dword [0x452fba70]
cmovb ebx, esi
setae dl
paddd xmm0, xmmword [ebx + 0x452fbb00]
xor ebx, ebx
add ecx, edx
cmp eax, dword [0x452fba64]
cmovb ebx, esi
setae dl
paddd xmm0, xmmword [ebx + 0x452fbaa0]
xor ebx, ebx
add ecx, edx
cmp eax, dword [0x452fba7c]
cmovb ebx, esi
setae dl
mov esi, dword [esp + 0x28]
paddd xmm0, xmmword [ebx + 0x452fbb60]
add ecx, edx
mov edx, dword [esp + 0x20]
pshufd xmm1, xmm0, 0xff
add ecx, ecx
psubd xmm0, xmm1
cvtdq2ps xmm0, xmm0
mulps xmm0, xmmword [ecx*8 + 0x452fb790]
addps xmm2, xmm0
maxps xmm2, xmm7
minps xmm2, xmm6
cvttps2dq xmm2, xmm2
pextrw eax, xmm2, 0
mov word [ebp + edi], ax
pextrw ecx, xmm2, 2
mov word [esi + edi], cx
pextrw eax, xmm2, 4
mov word [edx + edi], ax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x30], esi
sub dword [esp + 8], 1
jne 0x1002d980
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], edx
sub dword [esp + 0x10], 1
jne 0x1002d963
add esp, 0x48
ret