Function at 0x10131290
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x40
mov eax, dword [0x1024b600]
xor eax, esp
mov dword [esp + 0x3c], eax
push esi
mov esi, dword [esp + 0x48]
push edi
mov edi, ecx
xor ecx, ecx
mov dword [esp + 0x28], edi
mov dword [esp + 0x30], ecx
test esi, esi
je 0x10131a68
nop dword [eax + eax]
mov eax, esi
mov edx, 0x80
sub edx, dword [edi + 0x10]
sub eax, ecx
cmp edx, eax
cmova edx, eax
mov eax, dword [edi + 0x14]
add eax, 8
mov dword [esp + 0x40], edx
add eax, dword [edi + 0x10]
lea esi, [edi + eax*4]
lea eax, [edx*4]
mov dword [esp + 0x3c], eax
test edx, edx
je 0x10131321
push eax
mov eax, dword [esp + 0x34]
add eax, 0x1c10
push esi
lea eax, [edi + eax*4]
push eax
call fcn.1006f830
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x3c]
push dword [esp + 0x48]
lea eax, [eax + ecx*4]
push eax
push esi
call fcn.1006f830
mov edx, dword [esp + 0x58]
add esp, 0x18
add dword [edi + 0x10], edx
add dword [esp + 0x30], edx
cmp dword [edi + 0x10], 0x80
jb 0x10131a64
mov edx, dword [edi + 0x14]
mov eax, 0x400
sub edx, 0xffffff80
mov dword [edi + 0x10], 0
and edx, 0x3ff
xor ecx, ecx
sub eax, edx
mov dword [esp + 0x40], edx
mov dword [edi + 0x14], edx
cmp eax, 4
jb 0x10131404
add edx, 9
lea eax, [edi + 0x3034]
mov esi, 0x3fc
lea edx, [edi + edx*4]
mov edi, dword [esp + 0x40]
sub esi, edi
shr esi, 2
inc esi
lea edi, [edi + esi*4]
mov dword [esp + 0x40], edi
mov edi, 0x10257350
lea eax, [eax + 0x20]
lea edx, [edx + 0x10]
movss xmm0, dword [edi + ecx*4]
mov edi, 0x10257358
mulss xmm0, dword [edx - 0x14]
movss dword [eax - 0x2c], xmm0
mov dword [eax - 0x28], 0
movss xmm0, dword [ecx*4 + 0x10257354]
mulss xmm0, dword [edx - 0x10]
movss dword [eax - 0x24], xmm0
mov dword [eax - 0x20], 0
movss xmm0, dword [edi + ecx*4]
mov edi, 0x1025735c
mulss xmm0, dword [edx - 0xc]
movss dword [eax - 0x1c], xmm0
mov dword [eax - 0x18], 0
movss xmm0, dword [edi + ecx*4]
add ecx, 4
mulss xmm0, dword [edx - 8]
mov edi, dword [esp + 0x28]
movss dword [eax - 0x14], xmm0
mov dword [eax - 0x10], 0
sub esi, 1
jne 0x10131383
mov edx, dword [esp + 0x40]
cmp edx, 0x400
jae 0x10131462
lea esi, [ecx*4 + 0x10257350]
add ecx, 0x605
lea eax, [edx + 8]
lea eax, [edi + eax*4]
mov dword [esp + 0x3c], eax
lea eax, [edi + ecx*8]
mov ecx, 0x400
sub ecx, edx
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
nop dword [eax]
movss xmm0, dword [esi]
lea eax, [eax + 8]
mulss xmm0, dword [ecx]
lea ecx, [ecx + 4]
mov dword [eax - 4], 0
lea esi, [esi + 4]
movss dword [eax - 8], xmm0
sub edx, 1
jne 0x10131440
mov eax, dword [edi + 0x14]
mov ecx, 0x400
sub ecx, eax
xor esi, esi
mov dword [esp + 0x3c], ecx
test eax, eax
je 0x101314b4
mov eax, dword [esp + 0x3c]
lea ecx, [ecx*4 + 0x10257350]
add eax, 0x605
lea edx, [edi + 0x20]
lea eax, [edi + eax*8]
nop dword [eax]
movss xmm0, dword [ecx]
lea edx, [edx + 4]
mulss xmm0, dword [edx - 4]
lea eax, [eax + 8]
mov dword [eax - 4], 0
lea ecx, [ecx + 4]
inc esi
movss dword [eax - 8], xmm0
cmp esi, dword [edi + 0x14]
jb 0x10131490
lea ecx, [edi + 0x3028]
push ecx
lea eax, [ecx + 0x2000]
mov dword [esp], 0xbf800000
push eax
push ecx
mov dword [esp + 0x30], ecx
call fcn.101413d0
add esp, 0xc
lea eax, [edi + 0x1020]
mov edi, dword [esp + 0x24]
xor esi, esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], eax
nop word [eax + eax]
movss xmm0, dword [edi + 4]
movss xmm1, dword [edi]
movss dword [esp + 0x2c], xmm0
cvtps2pd xmm0, xmm0
movss dword [esp + 0x38], xmm1
movsd qword [esp + 0x20], xmm0
fld qword [esp + 0x20]
cvtps2pd xmm0, xmm1
movsd qword [esp + 0x20], xmm0
fld qword [esp + 0x20]
call fcn.1007a1b0
mov ecx, dword [esp + 0x40]
mov eax, esi
and eax, 7
xorps xmm0, xmm0
fstp dword [esp + 0x24]
movss xmm1, dword [esp + 0x24]
sub esp, 8
fld dword [esp + 0x34]
movaps xmm2, xmm1
subss xmm2, dword [ecx]
cvtsi2sd xmm0, eax
shr eax, 0x1f
movss dword [ecx], xmm1
addsd xmm0, qword [eax*8 + 0x101556a0]
fstp dword [esp + 4]
fld dword [esp + 0x40]
fstp dword [esp]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x1020e7f4]
subss xmm2, xmm0
mulss xmm2, dword [0x1020e7f0]
movss dword [esp + 0x2c], xmm2
cvttss2si esi, xmm2
call fcn.10148427
mov eax, esi
add esp, 8
fstp dword [edi + 0x2000]
and eax, 0x80000001
jns 0x101315a5
dec eax
or eax, 0xfffffffe
inc eax
movss xmm1, dword [esp + 0x24]
add eax, esi
mov esi, dword [esp + 0x3c]
add dword [esp + 0x40], 4
movd xmm0, eax
mov eax, esi
cvtdq2ps xmm0, xmm0
shr eax, 0x1f
subss xmm1, xmm0
movd xmm0, esi
cvtdq2pd xmm0, xmm0
inc esi
mov dword [esp + 0x3c], esi
mulss xmm1, dword [0x101d72e8]
addsd xmm0, qword [eax*8 + 0x101556a0]
cvtpd2ps xmm0, xmm0
addss xmm1, xmm0
movss dword [edi + 0x2004], xmm1
add edi, 8
cmp esi, 0x201
jb 0x101314f0
mov edi, dword [esp + 0x28]
xorps xmm0, xmm0
movq qword [esp + 0x34], xmm0
lea eax, [edi + 0x7038]
lea esi, [edi + 0x6030]
cmp esi, eax
je 0x1013163a
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
mov dword [esi], edx
mov dword [esi + 4], ecx
add esi, 8
cmp esi, eax
jne 0x10131628
lea esi, [edi + 0x6030]
xor edx, edx
lea ecx, [edi + 0x18]
mov eax, 0x2007fff
mov dword [esp + 0x2c], ecx
div dword [ecx]
mov ecx, 0x201
inc eax
cmp eax, ecx
cmovb ecx, eax
xor edx, edx
mov dword [esp + 0x38], ecx
test ecx, ecx
je 0x101316c6
mov esi, dword [esp + 0x38]
lea ecx, [edi + 0x5028]
nop dword [eax]
mov eax, dword [esp + 0x2c]
movss xmm0, dword [ecx]
mov eax, dword [eax]
imul eax, edx
add eax, 0x8000
shr eax, 0x10
comiss xmm0, dword [edi + eax*8 + 0x6030]
jbe 0x101316a2
movss xmm0, dword [ecx + 4]
mulss xmm0, dword [edi + 0x1c]
movss dword [edi + eax*8 + 0x6034], xmm0
movss xmm0, dword [ecx]
inc edx
addss xmm0, dword [edi + eax*8 + 0x6030]
add ecx, 8
movss dword [edi + eax*8 + 0x6030], xmm0
cmp edx, esi
jb 0x10131670
lea esi, [edi + 0x6030]
lea edx, [edi + 0x1824]
mov edi, 0x201
mov dword [esp + 0x40], edx
nop word [eax + eax]
movss xmm1, dword [esi + 4]
mulss xmm1, dword [0x1020e7f4]
addss xmm1, dword [edx]
mulss xmm1, dword [0x1020e7f0]
cvttss2si ecx, xmm1
mov eax, ecx
and eax, 0x80000001
jns 0x1013170b
dec eax
or eax, 0xfffffffe
inc eax
add eax, ecx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
mulss xmm1, dword [0x10159240]
movss dword [edx], xmm1
movss xmm0, dword [esi]
movss dword [esp + 0x38], xmm0
mov eax, dword [esp + 0x38]
and eax, 0x7fffffff
movss dword [esp + 0x2c], xmm1
cmp eax, 0x7f800000
ja 0x101317a9
movss dword [esp + 0x38], xmm0
mov eax, dword [esp + 0x38]
and eax, 0x7fffffff
cmp eax, 0x7f800000
je 0x101317a9
xorps xmm2, xmm2
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jnp 0x101317a9
cvtps2pd xmm0, xmm1
call fcn.1007ac50
movss xmm1, dword [esp + 0x2c]
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [esi]
movss dword [esp + 0x38], xmm0
movss dword [esp + 0x18], xmm0
cvtps2pd xmm0, xmm1
call fcn.1007b630
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movss xmm0, dword [esp + 0x38]
mulss xmm1, dword [esi]
movss dword [esp + 0x1c], xmm1
jmp 0x10131821
push ecx
movss dword [esp], xmm0
call fcn.10145a59
add esp, 4
push dword [esp + 0x40]
test eax, eax
je 0x10131807
movss xmm0, dword [esi]
lea eax, [esp + 0x3c]
xorps xmm0, xmmword [0x10157ae0]
push eax
lea eax, [esp + 0x10]
movss dword [esp + 0x40], xmm0
push eax
call fcn.10130e90
movss xmm2, dword [0x10157ae0]
add esp, 0xc
movss xmm0, dword [eax]
movss xmm1, dword [eax + 4]
xorps xmm0, xmm2
xorps xmm1, xmm2
movss dword [esp + 0x18], xmm0
movss dword [esp + 0x1c], xmm1
jmp 0x10131829
lea eax, [esp + 0x1c]
push esi
push eax
call fcn.10130e90
movss xmm1, dword [esp + 0x28]
add esp, 0xc
movss xmm0, dword [esp + 0x18]
movss xmm2, dword [0x10157ae0]
mov edx, dword [esp + 0x40]
movss dword [esi - 0x3008], xmm0
add edx, 4
movss dword [esi - 0x3004], xmm1
add esi, 8
mov dword [esp + 0x40], edx
sub edi, 1
jne 0x101316e0
mov edi, dword [esp + 0x28]
mov edx, 0x49
lea eax, [edi + 0x403c]
lea ecx, [edi + 0x401c]
nop word [eax + eax]
movss xmm1, dword [ecx + 8]
lea eax, [eax + 0x38]
movss xmm0, dword [ecx + 4]
xorps xmm1, xmm2
movss dword [eax - 0x40], xmm1
lea ecx, [ecx - 0x38]
movss dword [eax - 0x44], xmm0
movss xmm1, dword [ecx + 0x38]
movss xmm0, dword [ecx + 0x34]
xorps xmm1, xmm2
movss dword [eax - 0x38], xmm1
movss dword [eax - 0x3c], xmm0
movss xmm1, dword [ecx + 0x30]
movss xmm0, dword [ecx + 0x2c]
xorps xmm1, xmm2
movss dword [eax - 0x30], xmm1
movss dword [eax - 0x34], xmm0
movss xmm1, dword [ecx + 0x28]
movss xmm0, dword [ecx + 0x24]
xorps xmm1, xmm2
movss dword [eax - 0x28], xmm1
movss dword [eax - 0x2c], xmm0
movss xmm1, dword [ecx + 0x20]
movss xmm0, dword [ecx + 0x1c]
xorps xmm1, xmm2
movss dword [eax - 0x20], xmm1
movss dword [eax - 0x24], xmm0
movss xmm1, dword [ecx + 0x18]
movss xmm0, dword [ecx + 0x14]
xorps xmm1, xmm2
movss dword [eax - 0x18], xmm1
movss dword [eax - 0x1c], xmm0
movss xmm1, dword [ecx + 0x10]
movss xmm0, dword [ecx + 0xc]
xorps xmm1, xmm2
movss dword [eax - 0x14], xmm0
movss dword [eax - 0x10], xmm1
sub edx, 1
jne 0x10131870
lea ecx, [edi + 0x3028]
push ecx
lea eax, [ecx + 0x2000]
mov dword [esp], 0x3f800000
push eax
push ecx
call fcn.101413d0
mov eax, dword [edi + 0x14]
add esp, 0xc
movss xmm1, dword [0x1020e7ec]
cmp eax, 0x400
jae 0x10131992
add eax, 0x80a
lea edx, [edi + 0x3028]
mov esi, 0x400
mov ecx, 0x10257350
sub esi, dword [edi + 0x14]
lea eax, [edi + eax*4]
nop dword [eax + eax]
movss xmm0, dword [edx]
add edx, 8
mulss xmm0, dword [ecx]
add ecx, 4
mulss xmm0, xmm1
addss xmm0, dword [eax]
movss dword [eax], xmm0
add eax, 4
sub esi, 1
jne 0x10131970
mov ecx, dword [edi + 0x14]
mov edx, 0x400
xor esi, esi
sub edx, ecx
test ecx, ecx
je 0x101319ea
lea ecx, [edx*4 + 0x10257350]
add edx, 0x605
lea eax, [edi + 0x2028]
lea edx, [edi + edx*8]
nop dword [eax + eax]
movss xmm0, dword [edx]
inc esi
mulss xmm0, dword [ecx]
add edx, 8
add ecx, 4
mulss xmm0, xmm1
addss xmm0, dword [eax]
movss dword [eax], xmm0
add eax, 4
mov dword [esp + 0x38], eax
cmp esi, dword [edi + 0x14]
jb 0x101319c0
mov ecx, dword [edi + 0x14]
lea eax, [edi + 0x2028]
lea eax, [eax + ecx*4]
push 0x200
push eax
lea eax, [edi + 0x20]
lea eax, [eax + ecx*4]
push eax
call fcn.1006f830
mov eax, dword [edi + 0x14]
lea ecx, [esp + 0x1c]
add eax, 0x80a
mov dword [esp + 0x20], 0
add esp, 0xc
mov dword [esp + 0x10], 0
lea edx, [edi + eax*4]
lea eax, [esp + 0x14]
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x10131a43
push 0x200
push 0
push edx
call fcn.100700d0
add esp, 0xc
jmp 0x10131a52
mov ecx, 0x80
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0x4c]
cmp ecx, esi
jb 0x101312c0
jmp 0x10131a68
mov esi, dword [esp + 0x4c]
push 0
mov eax, 0x200
lea edx, [edi + 0x7040]
cmp esi, eax
lea ecx, [edx + esi*4]
cmova eax, esi
push eax
lea eax, [edi + 0x8080]
push eax
lea eax, [edi + 0x8040]
push eax
push dword [esp + 0x6c]
push dword [esp + 0x6c]
push ecx
push edx
call dword [0x1024c3b0]
mov ecx, dword [esp + 0x64]
add esp, 0x20
pop edi
pop esi
xor ecx, esp
call fcn.1006d7ba
add esp, 0x40
ret 0x14