Function at 0x100dd9d3
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
push esi
mov esi, ecx
mov dword [ebp - 0x18], esi
test byte [esi + 4], 0xa
jne 0x100dd9ef
mov eax, 0x80070057
jmp 0x100ddf71
movss xmm0, dword [esi + 0x44]
cvtps2pd xmm0, xmm0
push ecx
push ecx
movsd qword [ebp - 0x38], xmm0
fld qword [ebp - 0x38]
fstp qword [esp]
call fcn.1029ac48
fstp dword [ebp - 0x24]
movss xmm0, dword [ebp - 0x24]
xor ecx, ecx
addss xmm0, dword [0x1034096c]
push 4
pop edx
cvttss2si eax, xmm0
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.100dcabd
add esp, 0xc
mov dword [ebp - 4], eax
test eax, eax
jne 0x100dda45
mov eax, 0x8007000e
jmp 0x100ddf71
movss xmm0, dword [esi + 0x44]
cvtps2pd xmm0, xmm0
push edi
push ecx
push ecx
movsd qword [ebp - 0x38], xmm0
fld qword [ebp - 0x38]
fstp qword [esp]
call fcn.1029ac48
fstp qword [ebp - 0x38]
movsd xmm0, qword [ebp - 0x38]
cvtpd2ps xmm0, xmm0
pop ecx
pop ecx
addss xmm0, dword [0x1034096c]
call fcn.10279213
shl eax, 2
push eax
push 0
push dword [ebp - 4]
call fcn.1027bff1
mov eax, dword [esi]
add esp, 0xc
sub eax, 1
je 0x100ddafb
sub eax, 1
je 0x100ddaa4
mov dword [ebp - 0x14], 0x80070057
jmp 0x100ddf64
movss xmm0, dword [esi + 0x44]
cvtps2pd xmm0, xmm0
push ecx
push ecx
movsd qword [ebp - 0x38], xmm0
fld qword [ebp - 0x38]
fstp qword [esp]
call fcn.1029ad63
fstp qword [ebp - 0x38]
movsd xmm0, qword [ebp - 0x38]
and dword [esi + 0x54], 0
cvtpd2ps xmm0, xmm0
cvttss2si edi, xmm0
movss xmm0, dword [esi + 0x44]
mov eax, edi
mov dword [ebp - 0x1c], edi
shl eax, 2
push eax
push dword [esi + 0x98]
movss dword [esi + 0x50], xmm0
push dword [ebp - 4]
call fcn.1027ad2a
add esp, 0x14
jmp 0x100ddc87
movss xmm1, dword [esi + 0x44]
movss xmm0, dword [0x1034096c]
comiss xmm0, xmm1
movss dword [ebp - 0xc], xmm1
jbe 0x100ddb18
and dword [esi + 0x54], 0
jmp 0x100ddb8d
movss xmm0, dword [esi + 0x4c]
mulss xmm0, xmm1
cvtps2pd xmm0, xmm0
call fcn.102a3bdb
movsd qword [ebp - 0x38], xmm0
movsd xmm0, qword [0x10341e38]
call fcn.102a3bdb
movsd xmm1, qword [ebp - 0x38]
divsd xmm1, xmm0
xorps xmm0, xmm0
comisd xmm0, xmm1
jbe 0x100ddb54
movsd qword [ebp - 0x38], xmm0
jmp 0x100ddb59
movsd qword [ebp - 0x38], xmm1
fld qword [ebp - 0x38]
push ecx
push ecx
fstp qword [esp]
call fcn.1029ad63
movsd xmm0, qword [0x10368ee0]
fstp qword [ebp - 0x38]
movsd xmm1, qword [ebp - 0x38]
comisd xmm1, xmm0
pop ecx
pop ecx
ja 0x100ddb81
movaps xmm0, xmm1
movss xmm1, dword [ebp - 0xc]
cvttsd2si eax, xmm0
mov dword [esi + 0x54], eax
mov ecx, dword [esi + 0x54]
xor eax, eax
inc eax
shl eax, cl
push ecx
push ecx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
cvtps2pd xmm0, xmm1
movss dword [ebp - 0xc], xmm1
movsd qword [ebp - 0x38], xmm0
fld qword [ebp - 0x38]
fstp qword [esp]
movss dword [esi + 0x50], xmm1
call fcn.1029ac48
fstp qword [ebp - 0x38]
movsd xmm0, qword [ebp - 0x38]
xorps xmm2, xmm2
cvtpd2ps xmm0, xmm0
pop ecx
pop ecx
xorps xmm1, xmm1
movss dword [ebp - 0x14], xmm2
cvttss2si edi, xmm0
movss xmm0, dword [esi + 0x48]
divss xmm0, dword [ebp - 0xc]
and dword [ebp - 0xc], 0
inc edi
mov dword [ebp - 0x1c], edi
movss dword [ebp - 0x10], xmm1
movss dword [ebp - 0x24], xmm0
test edi, edi
jle 0x100ddc5f
mov esi, dword [ebp - 4]
movaps xmm0, xmm1
mulss xmm0, xmm1
xorps xmm0, xmmword [0x10341e90]
cvtss2sd xmm0, xmm0
call fcn.102a3926
mov ecx, dword [ebp - 0xc]
xor eax, eax
test ecx, ecx
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
setne al
inc eax
movd xmm0, eax
cvtdq2ps xmm2, xmm0
movss xmm0, dword [ebp - 0x24]
addss xmm0, dword [ebp - 0x10]
mulss xmm2, xmm1
movss dword [esi + ecx*4], xmm1
inc ecx
mov dword [ebp - 0xc], ecx
movaps xmm1, xmm0
movss dword [ebp - 0x10], xmm1
addss xmm2, dword [ebp - 0x14]
movss dword [ebp - 0x14], xmm2
cmp ecx, edi
jl 0x100ddbff
mov esi, dword [ebp - 0x18]
movss xmm1, dword [0x1034096c]
xor eax, eax
divss xmm1, xmm2
test edi, edi
jle 0x100ddc87
mov ecx, dword [ebp - 4]
movss xmm0, dword [ecx + eax*4]
mulss xmm0, xmm1
movss dword [ecx + eax*4], xmm0
inc eax
cmp eax, edi
jl 0x100ddc74
push 3
call sub.KERNEL32.dll_IsProcessorFeaturePresent
neg eax
push 4
sbb eax, eax
pop ecx
and eax, ecx
add eax, ecx
mov dword [ebp - 0x24], eax
mov dword [esi + 0x60], eax
shl eax, 3
cdq
idiv dword [0x106427cc]
mov ecx, eax
mov eax, edi
cdq
idiv ecx
mov dword [esi + 0x58], ecx
xor ecx, ecx
test edx, edx
setne cl
add eax, ecx
mov dword [esi + 0x5c], eax
test eax, eax
jg 0x100ddccd
mov eax, 0x80070057
jmp 0x100ddf70
imul eax, dword [ebp - 0x24]
mov dword [ebp - 0x14], 0x8007000e
shl eax, 8
push eax
mov dword [esi + 0x6c], eax
call fcn.100dcabd
mov dword [esi + 0x68], eax
pop ecx
test eax, eax
je 0x100ddf64
push dword [esi + 0x6c]
push 0
push eax
call fcn.1027bff1
mov eax, dword [esi + 0x58]
xor ecx, ecx
push 4
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.100dcabd
mov edx, eax
add esp, 0x10
mov dword [ebp - 8], edx
test edx, edx
je 0x100ddf64
mov ecx, dword [0x106427cc]
sub ecx, dword [esi + 0x64]
and dword [ebp - 0x10], 0
cmp dword [esi + 0x60], 8
mov eax, dword [esi + 0x68]
jne 0x100dde67
and dword [ebp - 0x14], 0
mov dword [ebp - 0xc], eax
test edi, edi
jle 0x100ddf59
push 0x11
pop eax
sub eax, ecx
mov dword [ebp - 0x28], eax
push 0x12
pop eax
sub eax, ecx
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x2c], eax
xor eax, eax
cmp dword [esi + 0x58], eax
jle 0x100ddd88
cmp ecx, edi
jge 0x100ddd77
mov edx, dword [ebp - 4]
movss xmm0, dword [edx + ecx*4]
inc ecx
mov edx, dword [ebp - 8]
jmp 0x100ddd7a
xorps xmm0, xmm0
movss dword [edx + eax*4], xmm0
inc eax
cmp eax, dword [esi + 0x58]
jl 0x100ddd65
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x10], 0
jne 0x100ddda5
movss xmm0, dword [edx]
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [0x10341e28]
cvtpd2ps xmm0, xmm0
movss dword [edx], xmm0
mov ecx, dword [ebp - 0xc]
xor eax, eax
mov dword [ebp - 0x24], eax
mov edi, dword [esi + 0x58]
sub edi, 1
mov dword [ebp - 0x20], edi
js 0x100dde3c
mov ecx, dword [ebp - 0x28]
movd xmm1, eax
xor eax, eax
inc eax
shl eax, cl
cvtdq2ps xmm1, xmm1
movd xmm2, eax
cvtdq2ps xmm2, xmm2
movss dword [ebp - 0x30], xmm1
movss dword [ebp - 0x34], xmm2
movss xmm0, dword [edx + edi*4]
mov ecx, dword [ebp - 0x2c]
mulss xmm0, xmm1
mulss xmm0, dword [0x10368ee8]
addss xmm0, xmm2
cvttss2si eax, xmm0
sar eax, cl
mov ecx, dword [0x106427cc]
cdq
mov edi, edx
mov esi, eax
mov edx, dword [ebp - 0xc]
mov eax, dword [edx]
mov edx, dword [edx + 4]
call fcn.10279df0
mov ecx, dword [ebp - 0xc]
add esi, eax
movss xmm1, dword [ebp - 0x30]
movss xmm2, dword [ebp - 0x34]
adc edi, edx
mov edx, dword [ebp - 8]
mov dword [ecx + 4], edi
mov edi, dword [ebp - 0x20]
sub edi, 1
mov dword [ecx], esi
mov dword [ebp - 0x20], edi
jns 0x100ddddc
mov esi, dword [ebp - 0x18]
mov eax, dword [ebp - 0x24]
add ecx, 8
inc eax
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x24], eax
cmp eax, 0x100
jl 0x100dddad
inc dword [ebp - 0x10]
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x14]
cmp ecx, edi
jl 0x100ddd5e
jmp 0x100ddf59
and dword [ebp - 0xc], 0
mov dword [ebp - 0x14], eax
test edi, edi
jle 0x100ddf59
push 0x11
pop eax
sub eax, ecx
mov dword [ebp - 0x34], eax
push 0x12
pop eax
sub eax, ecx
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x2c], eax
xor eax, eax
cmp dword [esi + 0x58], eax
jle 0x100ddeb3
cmp ecx, edi
jge 0x100ddea2
mov edx, dword [ebp - 4]
movss xmm0, dword [edx + ecx*4]
inc ecx
mov edx, dword [ebp - 8]
jmp 0x100ddea5
xorps xmm0, xmm0
movss dword [edx + eax*4], xmm0
inc eax
cmp eax, dword [esi + 0x58]
jl 0x100dde90
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 0x10], 0
jne 0x100dded0
movss xmm0, dword [edx]
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [0x10341e28]
cvtpd2ps xmm0, xmm0
movss dword [edx], xmm0
xor ecx, ecx
mov dword [ebp - 0x24], ecx
mov eax, dword [esi + 0x58]
sub eax, 1
mov dword [ebp - 0x30], eax
js 0x100ddf36
mov edi, dword [ebp - 0x30]
xor eax, eax
mov esi, dword [ebp - 0x14]
inc eax
movd xmm1, ecx
mov ecx, dword [ebp - 0x34]
shl eax, cl
cvtdq2ps xmm1, xmm1
movd xmm2, eax
cvtdq2ps xmm2, xmm2
movss xmm0, dword [edx + edi*4]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [esi]
mulss xmm0, xmm1
mulss xmm0, dword [0x10368ee8]
addss xmm0, xmm2
cvttss2si edx, xmm0
sar edx, cl
mov ecx, dword [0x106427cc]
shl eax, cl
add edx, eax
sub edi, 1
mov dword [esi], edx
mov edx, dword [ebp - 8]
jns 0x100ddefc
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x24]
push 4
pop eax
add dword [ebp - 0x14], eax
inc ecx
mov dword [ebp - 0x24], ecx
cmp ecx, 0x100
jl 0x100dded5
inc dword [ebp - 0x10]
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
cmp ecx, edi
jl 0x100dde89
push edx
call fcn.102a9552
and dword [ebp - 0x14], 0
pop ecx
push dword [ebp - 4]
call fcn.102a9552
mov eax, dword [ebp - 0x14]
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret