Function at 0x10035e40
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x10
push ebx
mov ebx, dword [0x11607e8c]
push ebp
push esi
push edi
test ebx, ebx
jne 0x10035e75
push 0x477
push str.D:_axash3d_fwgsxash3d_fwgs_refglgl_studio.c
push str.assert_failed_at__s:_i_n
call dword [0x11a5f3dc]
mov ebx, dword [0x11607e8c]
add esp, 0xc
mov edx, dword [ebx + 0x50]
xor ecx, ecx
test edx, edx
jle 0x10035ea3
mov eax, 0x113bc3c8
mov dword [eax + 4], 0
lea eax, [eax + 0xc]
mov dword [eax - 0xc], 0
inc ecx
mov dword [eax - 0x10], 0
mov edx, dword [ebx + 0x50]
cmp ecx, edx
jl 0x10035e83
xor ecx, ecx
mov dword [esp + 0x18], ecx
cmp dword [ebx + 0x48], ecx
jle 0x10036259
xor edx, edx
mov dword [esp + 0x1c], edx
nop dword [eax + eax]
mov eax, dword [ebx + 0x4c]
mov ebx, dword [0x11607ea4]
add eax, edx
mov edi, dword [eax + ebx + 4]
add edi, ebx
movsx ebx, word [edi]
test ebx, ebx
je 0x1003623b
nop dword [eax]
add edi, 2
test ebx, ebx
jns 0x10036076
neg ebx
cmp ebx, 2
jle 0x10036225
movsx eax, word [edi]
movsx ecx, word [edi + 8]
add edi, 0x10
sub ebx, 2
lea esi, [eax + eax*2]
nop word [eax + eax]
movsx edx, word [edi]
lea ecx, [ecx + ecx*2]
movss xmm2, dword [esi*4 + 0x1138c3c4]
dec ebx
movss xmm5, dword [ecx*4 + 0x1138c3c4]
add edi, 8
movss xmm1, dword [esi*4 + 0x1138c3c8]
subss xmm5, xmm2
movss xmm0, dword [esi*4 + 0x1138c3cc]
lea eax, [edx + edx*2]
movss xmm7, dword [eax*4 + 0x1138c3c4]
movss xmm6, dword [eax*4 + 0x1138c3cc]
subss xmm7, xmm2
movss xmm2, dword [eax*4 + 0x1138c3c8]
subss xmm6, xmm0
movss xmm4, dword [ecx*4 + 0x1138c3c8]
subss xmm2, xmm1
movss xmm3, dword [ecx*4 + 0x1138c3cc]
subss xmm4, xmm1
subss xmm3, xmm0
movaps xmm0, xmm6
mulss xmm6, xmm5
mulss xmm0, xmm4
movaps xmm1, xmm2
mulss xmm1, xmm3
mulss xmm2, xmm5
subss xmm1, xmm0
movaps xmm0, xmm7
mulss xmm0, xmm3
mulss xmm7, xmm4
subss xmm6, xmm0
movaps xmm0, xmm1
addss xmm0, dword [esi*4 + 0x113bc3c4]
subss xmm7, xmm2
movss dword [esi*4 + 0x113bc3c4], xmm0
movaps xmm0, xmm6
addss xmm0, dword [esi*4 + 0x113bc3c8]
movss dword [esi*4 + 0x113bc3c8], xmm0
movaps xmm0, xmm7
addss xmm0, dword [esi*4 + 0x113bc3cc]
movss dword [esi*4 + 0x113bc3cc], xmm0
movaps xmm0, xmm1
addss xmm0, dword [ecx*4 + 0x113bc3c4]
movss dword [ecx*4 + 0x113bc3c4], xmm0
movaps xmm0, xmm6
addss xmm0, dword [ecx*4 + 0x113bc3c8]
movss dword [ecx*4 + 0x113bc3c8], xmm0
movaps xmm0, xmm7
addss xmm0, dword [ecx*4 + 0x113bc3cc]
movss dword [ecx*4 + 0x113bc3cc], xmm0
mov ecx, edx
addss xmm1, dword [eax*4 + 0x113bc3c4]
addss xmm6, dword [eax*4 + 0x113bc3c8]
addss xmm7, dword [eax*4 + 0x113bc3cc]
movss dword [eax*4 + 0x113bc3c4], xmm1
movss dword [eax*4 + 0x113bc3c8], xmm6
movss dword [eax*4 + 0x113bc3cc], xmm7
test ebx, ebx
jg 0x10035f10
jmp 0x10036228
cmp ebx, 2
jle 0x10036225
movsx eax, word [edi + 8]
movsx ebp, word [edi]
add edi, 0x10
mov dword [esp + 0x14], 0
sub ebx, 2
mov dword [esp + 0x10], eax
nop dword [eax + eax]
movsx esi, word [edi]
lea edx, [eax + eax*2]
movss xmm5, dword [edx*4 + 0x1138c3c4]
lea eax, [ebp*2]
movss xmm4, dword [edx*4 + 0x1138c3c8]
add eax, ebp
movss xmm3, dword [edx*4 + 0x1138c3cc]
lea ecx, [esi + esi*2]
movss xmm7, dword [ecx*4 + 0x1138c3c4]
movss xmm2, dword [eax*4 + 0x1138c3c4]
movss xmm6, dword [ecx*4 + 0x1138c3cc]
subss xmm7, xmm2
movss xmm1, dword [eax*4 + 0x1138c3c8]
subss xmm5, xmm2
movss xmm0, dword [eax*4 + 0x1138c3cc]
subss xmm4, xmm1
movss xmm2, dword [ecx*4 + 0x1138c3c8]
subss xmm6, xmm0
subss xmm3, xmm0
subss xmm2, xmm1
movaps xmm0, xmm6
mulss xmm6, xmm5
mulss xmm0, xmm4
movaps xmm1, xmm2
mulss xmm1, xmm3
mulss xmm2, xmm5
subss xmm1, xmm0
movaps xmm0, xmm7
mulss xmm0, xmm3
mulss xmm7, xmm4
subss xmm6, xmm0
movaps xmm0, xmm1
addss xmm0, dword [eax*4 + 0x113bc3c4]
subss xmm7, xmm2
movss dword [eax*4 + 0x113bc3c4], xmm0
movaps xmm0, xmm6
addss xmm0, dword [eax*4 + 0x113bc3c8]
movss dword [eax*4 + 0x113bc3c8], xmm0
movaps xmm0, xmm7
addss xmm0, dword [eax*4 + 0x113bc3cc]
movss dword [eax*4 + 0x113bc3cc], xmm0
movaps xmm0, xmm1
addss xmm0, dword [edx*4 + 0x113bc3c4]
mov eax, esi
movss dword [edx*4 + 0x113bc3c4], xmm0
movaps xmm0, xmm6
addss xmm0, dword [edx*4 + 0x113bc3c8]
movss dword [edx*4 + 0x113bc3c8], xmm0
movaps xmm0, xmm7
addss xmm0, dword [edx*4 + 0x113bc3cc]
movss dword [edx*4 + 0x113bc3cc], xmm0
addss xmm1, dword [ecx*4 + 0x113bc3c4]
addss xmm6, dword [ecx*4 + 0x113bc3c8]
addss xmm7, dword [ecx*4 + 0x113bc3cc]
movss dword [ecx*4 + 0x113bc3c4], xmm1
movss dword [ecx*4 + 0x113bc3c8], xmm6
movss dword [ecx*4 + 0x113bc3cc], xmm7
mov ecx, dword [esp + 0x14]
test ecx, ecx
cmove eax, dword [esp + 0x10]
cmove ebp, esi
xor ecx, 1
mov dword [esp + 0x10], eax
dec ebx
mov dword [esp + 0x14], ecx
add edi, 8
test ebx, ebx
jg 0x100360a0
jmp 0x10036228
lea edi, [edi + ebx*2]
movsx ebx, word [edi]
test ebx, ebx
jne 0x10035ee0
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [0x11607e8c]
inc ecx
add edx, 0x14
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
cmp ecx, dword [ebx + 0x48]
jl 0x10035ec0
mov edx, dword [ebx + 0x50]
xor edi, edi
test edx, edx
jle 0x1003631f
mov esi, 0x113bc3c8
nop dword [eax + eax]
movss xmm0, dword [esi - 4]
movss xmm2, dword [esi]
movaps xmm1, xmm0
movss xmm3, dword [esi + 4]
mulss xmm1, xmm0
movss dword [esp + 0x1c], xmm0
movaps xmm0, xmm2
mulss xmm0, xmm2
movss dword [esp + 0x18], xmm2
movss dword [esp + 0x14], xmm3
addss xmm1, xmm0
movaps xmm0, xmm3
mulss xmm0, xmm3
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x100362bf
sqrtsd xmm0, xmm0
jmp 0x100362c4
call fcn.10098f60
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
xorps xmm0, xmm0
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jnp 0x100362e6
movss xmm0, dword [0x100aa724]
divss xmm0, xmm1
movaps xmm1, xmm0
movss xmm0, dword [esp + 0x1c]
inc edi
mulss xmm0, xmm1
movss dword [esi - 4], xmm0
movss xmm0, dword [esp + 0x18]
mulss xmm0, xmm1
movss dword [esi], xmm0
movss xmm0, dword [esp + 0x14]
mulss xmm0, xmm1
movss dword [esi + 4], xmm0
add esi, 0xc
cmp edi, dword [ebx + 0x50]
jl 0x10036270
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret