Function at 0x100130e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0x74
mov esi, dword [ebp + 8]
mov eax, dword [esi]
cmp eax, 0xac44
jne 0x10013102
mov dword [esp + 0x64], 1
jmp 0x10013118
mov edx, 2
cmp eax, 0x7d00
mov eax, 0
cmovne eax, edx
mov dword [esp + 0x64], eax
cmp dword [esi + 8], 0
jne 0x1001312b
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x10], 0
je 0x10013829
mov edi, 1
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x20]
mov edx, dword [ebp + 0x24]
mov ecx, dword [ebx]
push edx
mov dword [eax], ecx
push eax
mov ecx, dword [ebx]
push 0x1034330c
mov dword [edx], ecx
mov edx, dword [esp + 0x70]
push dword [edx*4 + 0x103e1090]
push dword [edx*4 + 0x103e109c]
push 0
push ebx
call fcn.1000f560
mov eax, dword [ebp + 0x20]
add esp, 0x1c
test edi, edi
je 0x10013307
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x14]
test ecx, ecx
je 0x10013237
mov edx, dword [eax]
test edx, edx
mov dword [esp + 0x40], edx
jbe 0x100131ab
mov edx, dword [eax + 4]
test edx, edx
mov eax, dword [eax + 8]
mov dword [esp + 0x3c], eax
mov eax, dword [ebp + 0x24]
mov dword [esp + 0x44], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0x20]
ja 0x10013712
cmp dword [ebp + 0x30], 0
je 0x10013237
cmp dword [eax + 4], 0
jbe 0x10013237
movss xmm2, dword [0x1034332c]
xor edx, edx
movss xmm1, dword [0x10343340]
movss xmm0, dword [0x10343344]
mov esi, dword [ebp + 0x30]
nop dword [eax]
movss xmm4, dword [ecx + edx*4]
mulss xmm4, xmm2
movss xmm5, dword [0x1034333c]
andps xmm5, xmm4
movaps xmm3, xmm5
pxor xmm3, xmm4
cmpltss xmm3, xmm1
andps xmm3, xmm1
orps xmm3, xmm5
movaps xmm7, xmm3
addss xmm7, xmm4
subss xmm7, xmm3
movaps xmm6, xmm7
subss xmm6, xmm4
cmpnless xmm6, xmm5
andps xmm6, xmm0
subss xmm7, xmm6
cvtss2si ebx, xmm7
add dword [esi + edx*4], ebx
inc edx
cmp edx, dword [eax + 4]
jb 0x100131e0
mov ebx, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x18]
test ecx, ecx
mov dword [esp + 0x38], ecx
je 0x10013307
mov edx, dword [eax]
test edx, edx
mov dword [esp + 0x44], edx
jbe 0x1001326f
mov ecx, dword [eax + 8]
mov dword [esp + 0x40], ecx
mov ecx, dword [ebp + 0x24]
mov edx, dword [eax + 4]
test edx, edx
mov ecx, dword [ecx + 8]
mov dword [esp + 0x3c], ecx
ja 0x10013640
cmp dword [ebp + 0x30], 0
je 0x10013307
cmp dword [eax + 4], 0
jbe 0x10013307
movss xmm2, dword [0x10343334]
xor edx, edx
movss xmm1, dword [0x10343340]
movss xmm0, dword [0x10343344]
mov ebx, dword [esp + 0x38]
mov esi, dword [ebp + 0x30]
nop dword [eax + eax]
nop dword [eax]
movss xmm4, dword [ebx + edx*4]
mulss xmm4, xmm2
movss xmm5, dword [0x1034333c]
andps xmm5, xmm4
movaps xmm3, xmm5
pxor xmm3, xmm4
cmpltss xmm3, xmm1
andps xmm3, xmm1
orps xmm3, xmm5
movaps xmm7, xmm3
addss xmm7, xmm4
subss xmm7, xmm3
movaps xmm6, xmm7
subss xmm6, xmm4
cmpnless xmm6, xmm5
andps xmm6, xmm0
subss xmm7, xmm6
cvtss2si ecx, xmm7
add dword [esi + edx*4], ecx
inc edx
cmp edx, dword [eax + 4]
jb 0x100132b0
mov ebx, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
mov edx, dword [ebp + 0x2c]
test edx, edx
je 0x10013322
push dword [eax]
push dword [eax + 4]
push edx
push dword [eax + 8]
call fcn.10009300
mov eax, dword [ebp + 0x20]
add esp, 0x10
test edi, edi
je 0x100135f9
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x10]
test ecx, ecx
je 0x1001335a
mov edx, dword [eax]
test edx, edx
mov dword [esp + 0x3c], edx
jbe 0x1001335a
mov edi, dword [eax + 8]
mov dword [esp + 0x34], edi
mov edi, dword [ebp + 0x24]
mov edx, dword [eax + 4]
test edx, edx
mov edi, dword [edi + 8]
mov dword [esp + 0x38], edi
ja 0x1001351b
cmp dword [esi + 8], 0
je 0x100133b7
push dword [esi + 0x20]
call fcn.1000c450
mov eax, dword [ebp + 0x20]
add esp, 4
mov edx, dword [ebp + 0xc]
mov edi, dword [esi + 0x18]
mov dword [esp], edi
mov edi, dword [edx + 4]
mov dword [esp + 4], edi
mov edi, dword [edx + 8]
mov dword [esp + 8], edi
mov edi, dword [edx + 0xc]
mov edx, dword [edx]
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], edx
mov edx, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x34]
fstp dword [esp + 0x14]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], ecx
mov ecx, dword [ebp + 0x38]
mov dword [esp + 0x24], ecx
call fcn.10026920
mov eax, dword [ebp + 0x20]
movss xmm0, dword [0x10343330]
mov edx, dword [eax + 8]
mov ecx, dword [ebp + 0x24]
mov dword [esp], edx
mov edx, dword [eax]
mov edi, dword [ecx + 8]
mov ecx, dword [eax + 4]
mov dword [esp + 4], edi
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
subss xmm0, dword [esi + 0xc]
movss dword [esp + 0x10], xmm0
call fcn.100039a0
mov eax, dword [ebp + 0x20]
cmp dword [ebp + 0x14], 0
je 0x100134dd
mov ecx, dword [ebp + 0x18]
movsd xmm0, qword [ecx]
movsd xmm1, qword [ecx + 8]
movsd xmm2, qword [ecx + 0x10]
movsd xmm3, qword [ecx + 0x18]
movsd xmm4, qword [ecx + 0x20]
movsd xmm5, qword [ecx + 0x28]
mov edx, dword [ecx + 0x30]
movsd qword [esp + 0x30], xmm0
movsd qword [esp + 0x38], xmm1
movsd qword [esp + 0x40], xmm2
movsd qword [esp + 0x48], xmm3
movsd qword [esp + 0x50], xmm4
movsd qword [esp + 0x58], xmm5
mov dword [esp + 0x60], edx
cmp dword [ecx + 0x10], 0
je 0x1001348f
cmp dword [ebx], 0
jbe 0x100134ca
mov esi, dword [ebp + 0x24]
xor edi, edi
mov eax, dword [esi + 8]
mov ecx, dword [esi + 4]
push 0x41acbe00
mov edx, dword [eax + edi*4]
push dword [edx + ecx*4 - 4]
call fcn.10013880
fstp dword [esp + 0x70]
movss xmm1, dword [esp + 0x70]
add esp, 8
movss xmm0, dword [esp + edi*4 + 0x44]
mulss xmm0, xmm1
movss dword [esp + edi*4 + 0x44], xmm0
inc edi
cmp edi, dword [ebx]
jb 0x10013454
jmp 0x100134c4
mov dword [esp + 0x40], 1
cmp dword [ebx], 0
jbe 0x100134ca
mov esi, dword [ebp + 0x24]
xor edi, edi
mov eax, dword [esi + 8]
mov ecx, dword [esi + 4]
push 0x41acbe00
mov edx, dword [eax + edi*4]
push dword [edx + ecx*4 - 4]
call fcn.10013880
add esp, 8
fstp dword [esp + edi*4 + 0x44]
inc edi
cmp edi, dword [ebx]
jb 0x100134a1
mov eax, dword [ebp + 0x20]
mov esi, dword [ebp + 8]
lea edx, [esp + 0x30]
push edx
push dword [ebp + 0x14]
call fcn.10006970
mov eax, dword [ebp + 0x20]
add esp, 8
mov dword [esp], eax
mov eax, dword [ebp + 0x24]
mov edx, dword [esi + 0xc]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x3f800000
mov dword [esp + 0x10], 0x1034330c
mov ecx, dword [esp + 0x64]
mov edi, dword [ecx*4 + 0x103e1090]
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], ebx
call fcn.10014610
jmp 0x1001361e
mov edi, edx
shr edi, 1
mov dword [esp + 0x30], 0
mov dword [esp + 0x44], edx
mov dword [esp + 0x40], ecx
mov eax, edi
mov edx, dword [esp + 0x30]
test eax, eax
jbe 0x100137df
mov ebx, dword [esp + 0x40]
xor esi, esi
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x38]
mov ebx, dword [ebx + edx*4]
mov ecx, dword [ecx + edx*4]
mov edi, dword [edi + edx*4]
nop dword [eax + eax]
nop dword [eax]
movss xmm0, dword [ecx + esi*8]
addss xmm0, dword [ebx + esi*8]
movss dword [ecx + esi*8], xmm0
movss xmm1, dword [edi + esi*8]
addss xmm1, dword [ebx + esi*8]
movss dword [edi + esi*8], xmm1
movss xmm2, dword [ecx + esi*8 + 4]
addss xmm2, dword [ebx + esi*8 + 4]
movss dword [ecx + esi*8 + 4], xmm2
movss xmm3, dword [edi + esi*8 + 4]
addss xmm3, dword [ebx + esi*8 + 4]
movss dword [edi + esi*8 + 4], xmm3
inc esi
cmp esi, eax
jb 0x10013560
lea ebx, [esi + esi + 1]
dec ebx
cmp ebx, dword [esp + 0x44]
jae 0x100137e9
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x40]
mov esi, dword [esi + edx*4]
mov ecx, dword [edi + edx*4]
mov edi, dword [esp + 0x38]
movss xmm0, dword [esi + ebx*4]
addss xmm0, dword [ecx + ebx*4]
movss dword [esi + ebx*4], xmm0
mov esi, dword [edi + edx*4]
inc edx
cmp edx, dword [esp + 0x3c]
movss xmm1, dword [esi + ebx*4]
addss xmm1, dword [ecx + ebx*4]
movss dword [esi + ebx*4], xmm1
jb 0x10013535
jmp 0x100137f4
cmp dword [ebp + 0x14], 0
je 0x1001360d
push dword [ebp + 0x18]
push dword [ebp + 0x14]
call fcn.10006970
add esp, 8
movsx eax, word [esi + 0x14]
push eax
push dword [esi + 0x10]
push ebx
call fcn.1000f8e0
add esp, 0xc
push dword [ebp + 0x28]
push dword [ebp + 0x1c]
push dword [ebp + 0x14]
push ebx
push dword [esi + 4]
push dword [esi + 0x20]
call fcn.1000c1f0
add esp, 0x8c
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, edx
shr ecx, 1
mov dword [esp + 0x34], 0
mov dword [esp + 0x48], edx
mov dword [esp + 0x30], edi
mov esi, ecx
mov ebx, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
test esi, esi
jbe 0x10013802
mov eax, dword [esp + 0x40]
xor edx, edx
mov edi, dword [esp + 0x3c]
mov eax, dword [eax + ebx*4]
mov edi, dword [edi + ebx*4]
nop dword [eax]
nop dword [eax]
movss xmm0, dword [eax + edx*8]
addss xmm0, dword [ecx + edx*8]
movss dword [eax + edx*8], xmm0
movss xmm1, dword [edi + edx*8]
addss xmm1, dword [ecx + edx*8]
movss dword [edi + edx*8], xmm1
movss xmm2, dword [eax + edx*8 + 4]
addss xmm2, dword [ecx + edx*8 + 4]
movss dword [eax + edx*8 + 4], xmm2
movss xmm3, dword [edi + edx*8 + 4]
addss xmm3, dword [ecx + edx*8 + 4]
movss dword [edi + edx*8 + 4], xmm3
inc edx
cmp edx, esi
jb 0x10013680
lea eax, [edx + edx + 1]
dec eax
cmp eax, dword [esp + 0x48]
jae 0x1001380c
mov edx, dword [esp + 0x40]
mov edi, dword [edx + ebx*4]
mov edx, dword [esp + 0x3c]
movss xmm0, dword [edi + eax*4]
addss xmm0, dword [ecx + eax*4]
movss dword [edi + eax*4], xmm0
mov edi, dword [edx + ebx*4]
inc ebx
cmp ebx, dword [esp + 0x44]
movss xmm1, dword [edi + eax*4]
addss xmm1, dword [ecx + eax*4]
movss dword [edi + eax*4], xmm1
jb 0x1001365e
jmp 0x10013817
mov dword [esp + 0x34], 0
mov esi, dword [esp + 0x34]
shr edx, 1
mov dword [esp + 0x30], edi
test edx, edx
jbe 0x10013867
mov eax, dword [esp + 0x3c]
xor ebx, ebx
mov edi, dword [esp + 0x38]
mov eax, dword [eax + esi*4]
mov edi, dword [edi + esi*4]
nop dword [eax]
movss xmm0, dword [eax + ebx*8]
addss xmm0, dword [ecx + ebx*8]
movss dword [eax + ebx*8], xmm0
movss xmm1, dword [edi + ebx*8]
addss xmm1, dword [ecx + ebx*8]
movss dword [edi + ebx*8], xmm1
movss xmm2, dword [eax + ebx*8 + 4]
addss xmm2, dword [ecx + ebx*8 + 4]
movss dword [eax + ebx*8 + 4], xmm2
movss xmm3, dword [edi + ebx*8 + 4]
addss xmm3, dword [ecx + ebx*8 + 4]
movss dword [edi + ebx*8 + 4], xmm3
inc ebx
cmp ebx, edx
jb 0x10013740
lea eax, [ebx + ebx + 1]
dec eax
cmp eax, dword [esp + 0x44]
jae 0x1001384a
mov ebx, dword [esp + 0x3c]
mov edi, dword [ebx + esi*4]
mov ebx, dword [esp + 0x38]
movss xmm0, dword [edi + eax*4]
addss xmm0, dword [ecx + eax*4]
movss dword [edi + eax*4], xmm0
mov edi, dword [ebx + esi*4]
inc esi
cmp esi, dword [esp + 0x40]
movss xmm1, dword [edi + eax*4]
addss xmm1, dword [ecx + eax*4]
movss dword [edi + eax*4], xmm1
jb 0x10013724
mov edi, dword [esp + 0x30]
mov eax, dword [ebp + 0x20]
mov ebx, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
jmp 0x100131ab
mov ebx, 1
jmp 0x100135ab
inc edx
cmp edx, dword [esp + 0x3c]
jb 0x10013535
mov eax, dword [ebp + 0x20]
mov ebx, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
jmp 0x1001335a
mov eax, 1
jmp 0x100136cb
inc ebx
cmp ebx, dword [esp + 0x44]
jb 0x1001365e
mov edi, dword [esp + 0x30]
mov eax, dword [ebp + 0x20]
mov ebx, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
jmp 0x1001326f
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x14], 0
jne 0x1001312b
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x18], 0
jne 0x1001312b
xor edi, edi
jmp 0x10013130
inc esi
cmp esi, dword [esp + 0x40]
jb 0x10013724
mov edi, dword [esp + 0x30]
mov eax, dword [ebp + 0x20]
mov ebx, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
jmp 0x100131ab
mov eax, 1
jmp 0x1001378b