Function at 0x100258fc
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push esi
push edi
push ebx
sub esp, 0x74
mov esi, eax
mov edi, edx
lea ebx, [ecx + 0x140]
mov dword [esp + 0x18], ecx
test edi, edi
lea eax, [esi + 0xd4]
mov dword [esp + 0x1c], eax
jbe 0x100259d5
cmp edi, 8
jb 0x10025f8d
mov eax, ebx
and eax, 0xf
je 0x10025948
test al, 3
jne 0x10025f8d
neg eax
add eax, 0x10
shr eax, 2
lea edx, [eax + 8]
cmp edi, edx
jb 0x10025f8d
mov edx, edi
sub edx, eax
and edx, 7
neg edx
movss xmm0, dword [0x1035ee6c]
add edx, edi
movaps xmm1, xmm0
test eax, eax
jbe 0x10025987
xor ecx, ecx
movss xmm2, dword [ebx + ecx*4]
movaps xmm3, xmm1
movaps xmm1, xmm2
inc ecx
comiss xmm1, xmm3
ja 0x10025983
movaps xmm1, xmm3
cmp ecx, eax
jb 0x1002596f
shufps xmm1, xmm1, 0
movaps xmm2, xmmword [ebx + eax*4]
maxps xmm2, xmm1
movaps xmm1, xmmword [ebx + eax*4 + 0x10]
add eax, 8
maxps xmm1, xmm2
cmp eax, edx
jb 0x1002598b
movaps xmm2, xmm1
movhlps xmm2, xmm1
maxps xmm1, xmm2
movaps xmm3, xmm1
shufps xmm3, xmm1, 0xf5
maxss xmm1, xmm3
cmp edx, edi
jae 0x100259d1
movss xmm2, dword [ebx + edx*4]
movaps xmm3, xmm1
movaps xmm1, xmm2
inc edx
comiss xmm1, xmm3
ja 0x100259cd
movaps xmm1, xmm3
cmp edx, edi
jb 0x100259b9
test edi, edi
jmp 0x100259e0
movss xmm0, dword [0x1035ee6c]
movaps xmm1, xmm0
subss xmm0, xmm1
pxor xmm1, xmm1
movss dword [esp + 0x38], xmm1
jbe 0x10025b4d
xor eax, eax
movss xmm7, dword [0x1036b74c]
movss xmm6, dword [0x1036b750]
movss xmm5, dword [0x1036b754]
movss xmm4, dword [0x1036b758]
mov ecx, dword [0x1036b760]
mov edx, dword [0x1036b764]
movss xmm2, dword [0x1035ee30]
movss dword [esp + 0x40], xmm0
mov dword [esp + 0x14], esi
mov esi, eax
movss xmm1, dword [ebx + esi*4]
movss xmm0, dword [0x1035ee30]
addss xmm1, dword [esp + 0x40]
comiss xmm0, xmm1
ja 0x10025b37
pxor xmm0, xmm0
subss xmm1, dword [0x1035ee34]
cvtss2sd xmm0, xmm1
mov edx, dword [0x1036b760]
movsd qword [esp], xmm0
mov dword [esp + 8], edx
movss dword [esp + 0x3c], xmm1
call fcn.10009ad0
movss xmm1, dword [esp + 0x3c]
movaps xmm0, xmm1
mulss xmm0, xmm1
movss dword [esp + 0x10], xmm0
cvtss2sd xmm0, xmm0
mov edx, dword [0x1036b764]
fstp qword [esp + 0x30]
movsd qword [esp], xmm0
mov dword [esp + 8], edx
movss dword [esp + 0x3c], xmm1
call fcn.10009ad0
movss xmm1, dword [esp + 0x3c]
mulss xmm1, dword [esp + 0x10]
cvtss2sd xmm1, xmm1
mov edx, dword [0x1036b768]
fstp qword [esp + 0x28]
movsd qword [esp], xmm1
mov dword [esp + 8], edx
call fcn.10009ad0
movsd xmm2, qword [esp + 0x30]
cvtsd2ss xmm2, xmm2
movsd xmm1, qword [esp + 0x28]
cvtsd2ss xmm1, xmm1
mulss xmm2, dword [0x1036b750]
mulss xmm1, dword [0x1036b754]
addss xmm2, dword [0x1036b74c]
fstp qword [esp + 0x20]
addss xmm2, xmm1
movsd xmm0, qword [esp + 0x20]
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [0x1036b758]
movss xmm3, dword [esp + 0x38]
addss xmm0, xmm2
maxss xmm3, xmm0
minss xmm3, dword [0x1035ee38]
jmp 0x10025b3b
pxor xmm3, xmm3
movss dword [ebx + esi*4], xmm3
inc esi
cmp esi, edi
jb 0x10025a36
mov esi, dword [esp + 0x14]
cmp dword [esi + 0x154], 0
jne 0x10025b68
cmp dword [esi + 0x158], 0
jne 0x10025b68
test edi, edi
ja 0x10025bbc
jmp 0x10025e96
test edi, edi
jbe 0x10025e96
cmp edi, 0x18
jbe 0x10025fb4
mov edx, dword [esp + 0x1c]
lea eax, [edi*4]
sub edx, ebx
xor ecx, ecx
cmp edx, eax
mov dword [esp + 0x10], ebx
mov ebx, 1
cmovg ecx, ebx
neg edx
cmp edx, eax
mov edx, 0
cmovg edx, ebx
mov ebx, dword [esp + 0x10]
or ecx, edx
je 0x10025fb4
push eax
push ebx
push dword [esp + 0x24]
call fcn.100182a0
add esp, 0xc
cmp ebx, dword [esp + 0x1c]
jae 0x10025bd3
mov edx, dword [esp + 0x1c]
lea eax, [edi*4]
sub edx, ebx
cmp eax, edx
jle 0x10025bf2
cmp ebx, dword [esp + 0x1c]
jbe 0x10025dcb
mov eax, ebx
lea edx, [edi*4]
sub eax, dword [esp + 0x1c]
cmp eax, edx
jl 0x10025dcb
cmp edi, 8
jb 0x10025f9f
mov ecx, dword [esp + 0x1c]
and ecx, 0xf
je 0x10025c15
test cl, 3
jne 0x10025f9f
neg ecx
add ecx, 0x10
shr ecx, 2
lea eax, [ecx + 8]
cmp edi, eax
jb 0x10025f9f
mov edx, edi
sub edx, ecx
pxor xmm1, xmm1
and edx, 7
neg edx
add edx, edi
test ecx, ecx
jbe 0x10025c7c
mov dword [esp + 0x10], edi
xor eax, eax
movss xmm0, dword [0x1035ee58]
mov dword [esp + 0x14], esi
mov edi, dword [esp + 0x1c]
movss xmm2, dword [ebx + eax*4]
mov esi, dword [ebx + eax*4]
subss xmm2, dword [edi + eax*4]
movaps xmm3, xmm2
xorps xmm3, xmmword [0x1035ede0]
mov dword [edi + eax*4], esi
inc eax
cmp eax, ecx
maxss xmm3, xmm2
mulss xmm3, xmm0
addss xmm1, xmm3
jb 0x10025c49
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
pxor xmm2, xmm2
movss xmm2, xmm1
lea eax, [eax + ecx*4 + 0x140]
test al, 0xf
je 0x10025d02
movaps xmm0, xmmword [0x1035edf0]
mov eax, dword [esp + 0x1c]
pxor xmm1, xmm1
nop dword [eax]
nop dword [eax]
movups xmm5, xmmword [ebx + ecx*4]
movaps xmm3, xmm5
movaps xmm4, xmmword [0x1035ee10]
movaps xmm7, xmmword [0x1035ee10]
subps xmm3, xmmword [eax + ecx*4]
movaps xmmword [eax + ecx*4], xmm5
pxor xmm4, xmm3
maxps xmm4, xmm3
movups xmm3, xmmword [ebx + ecx*4 + 0x10]
mulps xmm4, xmm0
movaps xmm6, xmm3
addps xmm2, xmm4
subps xmm6, xmmword [eax + ecx*4 + 0x10]
pxor xmm7, xmm6
maxps xmm7, xmm6
mulps xmm7, xmm0
movaps xmmword [eax + ecx*4 + 0x10], xmm3
add ecx, 8
cmp ecx, edx
addps xmm1, xmm7
jb 0x10025cb0
jmp 0x10025d70
movaps xmm0, xmmword [0x1035edf0]
mov eax, dword [esp + 0x1c]
pxor xmm1, xmm1
nop dword [eax + eax]
nop dword [eax]
movaps xmm5, xmmword [ebx + ecx*4]
movaps xmm3, xmm5
movaps xmm4, xmmword [0x1035ee10]
movaps xmm7, xmmword [0x1035ee10]
subps xmm3, xmmword [eax + ecx*4]
movaps xmmword [eax + ecx*4], xmm5
pxor xmm4, xmm3
maxps xmm4, xmm3
movaps xmm3, xmmword [ebx + ecx*4 + 0x10]
movaps xmm6, xmm3
mulps xmm4, xmm0
subps xmm6, xmmword [eax + ecx*4 + 0x10]
pxor xmm7, xmm6
addps xmm2, xmm4
maxps xmm7, xmm6
mulps xmm7, xmm0
movaps xmmword [eax + ecx*4 + 0x10], xmm3
add ecx, 8
cmp ecx, edx
addps xmm1, xmm7
jb 0x10025d20
addps xmm2, xmm1
movaps xmm0, xmm2
movhlps xmm0, xmm2
addps xmm2, xmm0
movaps xmm1, xmm2
shufps xmm1, xmm2, 0xf5
addss xmm2, xmm1
cmp edx, edi
jae 0x10025e9a
movss xmm0, dword [0x1035ee58]
mov ecx, dword [esp + 0x1c]
movss xmm1, dword [ebx + edx*4]
mov eax, dword [ebx + edx*4]
subss xmm1, dword [ecx + edx*4]
movaps xmm3, xmm1
xorps xmm3, xmmword [0x1035ede0]
mov dword [ecx + edx*4], eax
inc edx
cmp edx, edi
maxss xmm3, xmm1
mulss xmm3, xmm0
addss xmm2, xmm3
jb 0x10025d9b
jmp 0x10025e9a
mov edx, edi
shr edx, 1
pxor xmm2, xmm2
test edx, edx
jbe 0x10025faa
movss xmm0, dword [0x1035ee58]
xor ecx, ecx
mov dword [esp + 0x10], edi
pxor xmm1, xmm1
mov eax, dword [esp + 0x1c]
nop dword [eax + eax]
nop dword [eax]
movss xmm3, dword [ebx + ecx*8]
mov edi, dword [ebx + ecx*8]
subss xmm3, dword [eax + ecx*8]
mov dword [eax + ecx*8], edi
movaps xmm4, xmm3
movss xmm5, dword [ebx + ecx*8 + 4]
xorps xmm4, xmmword [0x1035ede0]
mov edi, dword [ebx + ecx*8 + 4]
maxss xmm4, xmm3
subss xmm5, dword [eax + ecx*8 + 4]
mulss xmm4, xmm0
movaps xmm6, xmm5
addss xmm2, xmm4
xorps xmm6, xmmword [0x1035ede0]
mov dword [eax + ecx*8 + 4], edi
inc ecx
cmp ecx, edx
maxss xmm6, xmm5
mulss xmm6, xmm0
addss xmm1, xmm6
jb 0x10025e00
mov edi, dword [esp + 0x10]
lea ecx, [ecx + ecx + 1]
addss xmm2, xmm1
dec ecx
cmp ecx, edi
jae 0x10025e9a
mov edx, dword [esp + 0x1c]
movss xmm0, dword [ebx + ecx*4]
mov eax, dword [ebx + ecx*4]
subss xmm0, dword [edx + ecx*4]
movaps xmm1, xmm0
xorps xmm1, xmmword [0x1035ede0]
mov dword [edx + ecx*4], eax
maxss xmm1, xmm0
mulss xmm1, dword [0x1035ee58]
addss xmm2, xmm1
jmp 0x10025e9a
pxor xmm2, xmm2
movss xmm1, dword [str._n__n_UU]
movss xmm3, dword [ebp + 8]
mulss xmm3, xmm2
comiss xmm1, xmm2
jb 0x10025eb6
pxor xmm0, xmm0
jmp 0x10025f11
comiss xmm2, dword [0x1035ee44]
jbe 0x10025ec9
movss xmm0, dword [0x1035ee38]
jmp 0x10025f11
mulss xmm2, dword [0x1035ee48]
subss xmm2, dword [0x1035ee4c]
cvtss2sd xmm2, xmm2
movsd qword [esp], xmm2
mov dword [esp + 8], 7
movss dword [esp + 0x10], xmm3
call fcn.10009ad0
fstp qword [esp + 0x20]
movsd xmm0, qword [esp + 0x20]
movss xmm3, dword [esp + 0x10]
movss xmm1, dword [str._n__n_UU]
cvtsd2ss xmm0, xmm0
movss dword [esi + 0xc8], xmm0
comiss xmm1, xmm3
jae 0x10025f75
comiss xmm3, dword [0x1035ee44]
jbe 0x10025f37
movss xmm0, dword [0x1035ee38]
movss dword [esp + 0x38], xmm0
jmp 0x10025f75
movss xmm0, dword [0x1035ee48]
mulss xmm0, xmm3
subss xmm0, dword [0x1035ee4c]
cvtss2sd xmm0, xmm0
movsd qword [esp], xmm0
mov dword [esp + 8], 7
call fcn.10009ad0
fstp qword [esp + 0x20]
movsd xmm0, qword [esp + 0x20]
cvtsd2ss xmm0, xmm0
movss dword [esp + 0x38], xmm0
movss xmm0, dword [esp + 0x38]
movss dword [esi + 0xd0], xmm0
add esp, 0x74
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
movss xmm0, dword [0x1035ee6c]
xor edx, edx
movaps xmm1, xmm0
jmp 0x100259b5
xor edx, edx
pxor xmm2, xmm2
jmp 0x10025d87
mov ecx, 1
jmp 0x10025e61
mov edx, edi
shr edx, 1
test edx, edx
jbe 0x10025ff9
mov dword [esp + 0x10], edi
xor ecx, ecx
mov eax, dword [esp + 0x1c]
mov edi, dword [ebx + ecx*8]
mov dword [eax + ecx*8], edi
mov edi, dword [ebx + ecx*8 + 4]
mov dword [eax + ecx*8 + 4], edi
inc ecx
cmp ecx, edx
jb 0x10025fc6
mov edi, dword [esp + 0x10]
lea ecx, [ecx + ecx + 1]
dec ecx
cmp ecx, edi
jae 0x10025bbc
mov edx, dword [esp + 0x1c]
mov eax, dword [ebx + ecx*4]
mov dword [edx + ecx*4], eax
jmp 0x10025bbc
mov ecx, 1
jmp 0x10025fe1