{"name": "so_tri", "code": "__int64 __fastcall so_tri ( __int64 @@a1@@ , int @@a2@@ , int @@a3@@ , int @@a4@@ ) { int @@v5@@ [ Number ] ; @@v5@@ [ Number ] = @@a2@@ ; @@v5@@ [ Number ] = @@a3@@ ; @@v5@@ [ Number ] = @@a4@@ ; return so_emit_prim ( @@a1@@ , ( __int64 ) @@v5@@ , Number ) ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "int", "s": 4}, "location": "r24"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "v5", "t": {"T": 2, "n": 3, "s": 4, "t": "int"}, "location": "s12"}]}
{"name": "so_emit_prim", "code": "__int64 __fastcall so_emit_prim ( __int64 @@a1@@ , __int64 @@a2@@ , unsigned int @@a3@@ ) { unsigned int v3 ; __int64 result ; int @@v6@@ ; unsigned int @@v7@@ ; __int64 @@v8@@ ; __int64 @@v9@@ ; __int64 @@v10@@ ; int @@v11@@ ; unsigned int @@k@@ ; unsigned int @@v13@@ ; int @@v14@@ ; _QWORD * @@v15@@ ; unsigned int @@i@@ ; unsigned int @@j@@ ; @@v11@@ = * ( _DWORD * ) ( @@a1@@ + Number ) ; @@v10@@ = * ( _QWORD * ) @@a1@@ + Number L ; @@v15@@ = Number L ; @@v9@@ = * ( _QWORD * ) ( @@a1@@ + Number ) ; for ( @@i@@ = Number ; @@i@@ < @@a3@@ ; ++ @@i@@ ) { @@v14@@ = Number ; @@v8@@ = ( unsigned int ) ( @@v11@@ * * ( _DWORD * ) ( Number L * @@i@@ + @@a2@@ ) ) + @@v9@@ ; for ( @@j@@ = Number ; @@j@@ < * ( _DWORD * ) ( @@v10@@ + Number ) ; ++ @@j@@ ) { @@v7@@ = * ( _DWORD * ) ( @@v10@@ + Number * ( @@j@@ + Number L ) ) ; @@v6@@ = * ( unsigned __int8 * ) ( @@v10@@ + @@j@@ + Number ) ; @@v13@@ = Number ; @@v15@@ = ( _QWORD * ) ( Number L * * ( int * ) ( @@v10@@ + Number L * @@j@@ ) + @@a1@@ + Number ) ; for ( @@k@@ = Number ; @@k@@ <= Number ; ++ @@k@@ ) { if ( is_component_writable ( @@v6@@ , @@k@@ ) ) { v3 = @@v13@@ ++ ; * ( _DWORD * ) ( * @@v15@@ + Number L * v3 ) = * ( _DWORD * ) ( Number L * @@v7@@ + @@v8@@ + Number L * @@k@@ ) ; } } * @@v15@@ += Number L * @@v13@@ ; @@v14@@ += @@v13@@ ; } if ( * ( _BYTE * ) ( @@a1@@ + Number ) ) * @@v15@@ += * ( _DWORD * ) ( @@v10@@ + Number ) - Number * @@v14@@ ; } * ( _DWORD * ) ( @@a1@@ + Number ) += @@a3@@ ; result = @@a1@@ ; ++ * ( _DWORD * ) ( @@a1@@ + Number ) ; return result ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "v15", "t": {"T": 3, "t": "_QWORD"}, "location": "s16"}, {"n": "v14", "t": {"T": 1, "n": "int", "s": 4}, "location": "s20"}, {"n": "v13", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s24"}, {"n": "k", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s28"}, {"n": "v11", "t": {"T": 1, "n": "int", "s": 4}, "location": "s32"}, {"n": "j", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s4"}, {"n": "v10", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s48"}, {"n": "v9", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s56"}, {"n": "v8", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s64"}, {"n": "v7", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s72"}, {"n": "v6", "t": {"T": 1, "n": "int", "s": 4}, "location": "s76"}, {"n": "i", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s8"}]} {"name": "so_run_linear", "code": "__int64 __fastcall so_run_linear ( __int64 @@a1@@ , __int64 @@a2@@ , __int64 @@a3@@ , int @@a4@@ , unsigned int @@a5@@ ) { __int64 @@result@@ ; int v6 ; int @@v8@@ ; int v9 ; int v10 ; int v11 ; int v12 ; int v13 ; int v14 ; int v15 ; int v16 ; int v17 ; int v18 ; int v19 ; int v20 ; int v21 ; int v22 ; int v23 ; int v24 ; int v25 ; int v26 ; int v27 ; int @@v28@@ ; int @@v29@@ ; unsigned int @@v30@@ ; unsigned int i ; int j ; unsigned int k ; int l ; int m ; int n ; int ii ; int jj ; int kk ; int ll ; int mm ; int nn ; int i1 ; @@v8@@ = @@a4@@ ; @@v30@@ = * ( _DWORD * ) ( @@a2@@ + Number ) ; @@v29@@ = * ( _DWORD * ) ( @@a2@@ + Number ) ; @@result@@ = @@v30@@ - Number ; if ( ( unsigned int ) @@result@@ > Number ) { @@result@@ = @@v30@@ ; switch ( @@v30@@ ) { case Number : for ( i = Number ; ; ++ i ) { @@result@@ = i ; if ( i >= @@a5@@ ) break ; so_point ( @@a1@@ , @@v8@@ + i ) ; } break ; case Number : for ( j = Number ; ; j += Number ) { @@result@@ = ( unsigned int ) ( j + Number ) ; if ( @@a5@@ <= ( unsigned int ) @@result@@ ) break ; so_line ( @@a1@@ , @@v8@@ + j , j + @@v8@@ + Number ) ; } break ; case Number : case Number : if ( @@a5@@ > Number ) { v13 = @@a4@@ ; for ( k = Number ; ; ++ k ) { @@result@@ = k ; if ( k >= @@a5@@ ) break ; v9 = v13 ; v13 = @@v8@@ + k ; so_line ( @@a1@@ , v9 , @@v8@@ + k ) ; } if ( @@v30@@ == Number && ! @@v29@@ ) @@result@@ = so_line ( @@a1@@ , v13 , @@v8@@ ) ; } break ; case Number : for ( l = Number ; ; l += Number ) { @@result@@ = ( unsigned int ) ( l + Number ) ; if ( @@a5@@ <= ( unsigned int ) @@result@@ ) break ; so_tri ( @@a1@@ , @@v8@@ + l , l + @@v8@@ + Number , l + @@v8@@ + Number ) ; } break ; case Number : if ( @@a5@@ > Number ) { v14 = @@a4@@ ; v19 = @@a4@@ + Number ; for ( m = Number ; ; ++ m ) { @@result@@ = ( unsigned int ) ( m + Number ) ; if ( @@a5@@ <= ( unsigned int ) @@result@@ ) break ; v10 = v14 ; v14 = v19 ; v19 = m + @@v8@@ + Number ; if ( ( m & Number ) != Number ) so_tri ( @@a1@@ , v14 , v10 , v19 ) ; else so_tri ( @@a1@@ , v10 , v14 , v19 ) ; } } break ; case Number : if ( @@a5@@ > Number ) { v20 = @@a4@@ + Number ; for ( n = Number ; ; ++ n ) { @@result@@ = ( unsigned int ) ( n + Number ) ; if ( @@a5@@ <= ( unsigned int ) @@result@@ ) break ; v15 = v20 ; v20 = n + @@v8@@ + Number ; so_tri ( @@a1@@ , @@v8@@ , v15 , v20 ) ; } } break ; case Number : for ( ii = Number ; ; ii += Number ) { @@result@@ = ( unsigned int ) ( ii + Number ) ; if ( @@a5@@ <= ( unsigned int ) @@result@@ ) break ; so_tri ( @@a1@@ , @@v8@@ + ii , ii + @@v8@@ + Number , ii + @@v8@@ + Number ) ; so_tri ( @@a1@@ , ii + @@v8@@ + Number , ii + @@v8@@ + Number , ii + @@v8@@ + Number ) ; } break ; case Number : if ( @@a5@@ > Number ) { v21 = @@a4@@ ; v25 = @@a4@@ + Number ; for ( jj = Number ; ; jj += Number ) { @@result@@ = ( unsigned int ) ( jj + Number ) ; if ( @@a5@@ <= ( unsigned int ) @@result@@ ) break ; v11 = v21 ; v16 = v25 ; v21 = jj + @@v8@@ + Number ; v25 = jj + @@v8@@ + Number ; so_tri ( @@a1@@ , v21 , v11 , v25 ) ; so_tri ( @@a1@@ , v11 , v16 , v25 ) ; } } break ; case Number : if ( @@a5@@ > Number ) { v22 = @@a4@@ + Number ; for ( kk = Number ; ; ++ kk ) { @@result@@ = ( unsigned int ) ( kk + Number ) ; if ( @@a5@@ <= ( unsigned int ) @@result@@ ) break ; v17 = v22 ; v22 = kk + @@v8@@ + Number ; so_tri ( @@a1@@ , v17 , v22 , @@v8@@ ) ; } } break ; case Number : for ( ll = Number ; ; ll += Number ) { @@result@@ = ( unsigned int ) ( ll + Number ) ; if ( @@a5@@ <= ( unsigned int ) @@result@@ ) break ; so_line ( @@a1@@ , ll + @@v8@@ + Number , ll + @@v8@@ + Number ) ; } break ; case Number : if ( @@a5@@ > Number ) { v23 = @@a4@@ + Number ; v26 = @@a4@@ + Number ; for ( mm = Number ; ; ++ mm ) { @@result@@ = ( unsigned int ) ( mm + Number ) ; if ( @@a5@@ <= ( unsigned int ) @@result@@ ) break ; v18 = v23 ; v23 = v26 ; v26 = mm + @@v8@@ + Number ; so_line ( @@a1@@ , v18 , v23 ) ; } } break ; case Number : for ( nn = Number ; ; nn += Number ) { @@result@@ = ( unsigned int ) ( nn + Number ) ; if ( @@a5@@ <= ( unsigned int ) @@result@@ ) break ; so_tri ( @@a1@@ , @@v8@@ + nn , nn + @@v8@@ + Number , nn + @@v8@@ + Number ) ; } break ; case Number : if ( @@a5@@ > Number ) { v24 = @@a4@@ ; @@v28@@ = @@a4@@ + Number ; v27 = @@a4@@ + Number ; for ( i1 = Number ; ; i1 += Number ) { @@result@@ = ( unsigned int ) ( i1 + Number ) ; if ( @@a5@@ <= ( unsigned int ) @@result@@ ) break ; v12 = v24 ; v24 = @@v28@@ ; @@v28@@ = v27 ; if ( @@a5@@ <= i1 + Number ) v6 = Number ; else v6 = Number ; v27 = i1 + v6 + @@v8@@ ; if ( ( i1 & Number ) != Number ) so_tri ( @@a1@@ , v24 , v12 , @@v28@@ ) ; else so_tri ( @@a1@@ , v12 , v24 , @@v28@@ ) ; } } break ; default : return @@result@@ ; } } return @@result@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "int", "s": 4}, "location": "r24"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "a5", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r72"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "v30", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s16"}, {"n": "v29", "t": {"T": 1, "n": "int", "s": 4}, "location": "s20"}, {"n": "v28", "t": {"T": 1, "n": "int", "s": 4}, "location": "s32"}, {"n": "v8", "t": {"T": 1, "n": "int", "s": 4}, "location": "s76"}]} {"name": "so_run_elts", "code": "__int64 __fastcall so_run_elts ( __int64 @@a1@@ , __int64 @@a2@@ , __int64 @@a3@@ , unsigned int @@a4@@ , unsigned int @@a5@@ ) { __int64 @@result@@ ; int v6 ; int v9 ; int v10 ; int v11 ; int v12 ; int v13 ; int v14 ; int v15 ; int v16 ; int v17 ; int v18 ; int v19 ; int v20 ; int v21 ; int v22 ; int v23 ; int v24 ; int v25 ; int v26 ; int v27 ; int v28 ; int v29 ; int v30 ; int v31 ; int v32 ; int v33 ; int @@v34@@ ; int @@v35@@ ; unsigned int @@v36@@ ; __int64 @@v37@@ ; unsigned int i ; int j ; unsigned int k ; int l ; int m ; int n ; int ii ; int jj ; int kk ; int ll ; int mm ; int nn ; int i1 ; @@v37@@ = * ( _QWORD * ) ( @@a2@@ + Number ) ; @@v36@@ = * ( _DWORD * ) ( @@a2@@ + Number ) ; @@v35@@ = * ( _DWORD * ) ( @@a2@@ + Number ) ; @@result@@ = @@v36@@ - Number ; if ( ( unsigned int ) @@result@@ > Number ) { @@result@@ = @@v36@@ ; switch ( @@v36@@ ) { case Number : for ( i = Number ; ; ++ i ) { @@result@@ = i ; if ( i >= @@a5@@ ) break ; so_point ( @@a1@@ , * ( unsigned __int16 * ) ( Number L * ( @@a4@@ + i ) + @@v37@@ ) ) ; } break ; case Number : for ( j = Number ; ; j += Number ) { @@result@@ = ( unsigned int ) ( j + Number ) ; if ( @@a5@@ <= ( unsigned int ) @@result@@ ) break ; so_line ( @@a1@@ , * ( unsigned __int16 * ) ( Number L * ( @@a4@@ + j ) + @@v37@@ ) , * ( unsigned __int16 * ) ( Number L * ( j + @@a4@@ + Number ) + @@v37@@ ) ) ; } break ; case Number : case Number : if ( @@a5@@ > Number ) { v15 = * ( unsigned __int16 * ) ( Number L * @@a4@@ + @@v37@@ ) ; v22 = v15 ; for ( k = Number ; ; ++ k ) { @@result@@ = k ; if ( k >= @@a5@@ ) break ; v9 = v15 ; v15 = * ( unsigned __int16 * ) ( Number L * ( @@a4@@ + k ) + @@v37@@ ) ; so_line ( @@a1@@ , v9 , v15 ) ; } if ( @@v36@@ == Number && ! @@v35@@ ) @@result@@ = so_line ( @@a1@@ , v15 , v22 ) ; } break ; case Number : for ( l = Number ; ; l += Number ) { @@result@@ = ( unsigned int ) ( l + Number ) ; if ( @@a5@@ <= ( unsigned int ) @@result@@ ) break ; so_tri ( @@a1@@ , * ( unsigned __int16 * ) ( Number L * ( @@a4@@ + l ) + @@v37@@ ) , * ( unsigned __int16 * ) ( Number L * ( l + @@a4@@ + Number ) + @@v37@@ ) , * ( unsigned __int16 * ) ( Number L * ( l + @@a4@@ + Number ) + @@v37@@ ) ) ; } break ; case Number : if ( @@a5@@ > Number ) { v16 = * ( unsigned __int16 * ) ( Number L * @@a4@@ + @@v37@@ ) ; v23 = * ( unsigned __int16 * ) ( Number L * ( @@a4@@ + Number ) + @@v37@@ ) ; for ( m = Number ; ; ++ m ) { @@result@@ = ( unsigned int ) ( m + Number ) ; if ( @@a5@@ <= ( unsigned int ) @@result@@ ) break ; v10 = v16 ; v16 = v23 ; v23 = * ( unsigned __int16 * ) ( Number L * ( m + @@a4@@ + Number ) + @@v37@@ ) ; if ( ( m & Number ) != Number ) so_tri ( @@a1@@ , v16 , v10 , v23 ) ; else so_tri ( @@a1@@ , v10 , v16 , v23 ) ; } } break ; case Number : if ( @@a5@@ > Number ) { v11 = * ( unsigned __int16 * ) ( Number L * @@a4@@ + @@v37@@ ) ; v24 = * ( unsigned __int16 * ) ( Number L * ( @@a4@@ + Number ) + @@v37@@ ) ; for ( n = Number ; ; ++ n ) { @@result@@ = ( unsigned int ) ( n + Number ) ; if ( @@a5@@ <= ( unsigned int ) @@result@@ ) break ; v17 = v24 ; v24 = * ( unsigned __int16 * ) ( Number L * ( n + @@a4@@ + Number ) + @@v37@@ ) ; so_tri ( @@a1@@ , v11 , v17 , v24 ) ; } } break ; case Number : for ( ii = Number ; ; ii += Number ) { @@result@@ = ( unsigned int ) ( ii + Number ) ; if ( @@a5@@ <= ( unsigned int ) @@result@@ ) break ; v18 = * ( unsigned __int16 * ) ( Number L * ( ii + @@a4@@ + Number ) + @@v37@@ ) ; v25 = * ( unsigned __int16 * ) ( Number L * ( ii + @@a4@@ + Number ) + @@v37@@ ) ; v30 = * ( unsigned __int16 * ) ( Number L * ( ii + @@a4@@ + Number ) + @@v37@@ ) ; so_tri ( @@a1@@ , * ( unsigned __int16 * ) ( Number L * ( @@a4@@ + ii ) + @@v37@@ ) , v18 , v30 ) ; so_tri ( @@a1@@ , v18 , v25 , v30 ) ; } break ; case Number : if ( @@a5@@ > Number ) { v26 = * ( unsigned __int16 * ) ( Number L * @@a4@@ + @@v37@@ ) ; v31 = * ( unsigned __int16 * ) ( Number L * ( @@a4@@ + Number ) + @@v37@@ ) ; for ( jj = Number ; ; jj += Number ) { @@result@@ = ( unsigned int ) ( jj + Number ) ; if ( @@a5@@ <= ( unsigned int ) @@result@@ ) break ; v12 = v26 ; v19 = v31 ; v26 = * ( unsigned __int16 * ) ( Number L * ( jj + @@a4@@ + Number ) + @@v37@@ ) ; v31 = * ( unsigned __int16 * ) ( Number L * ( jj + @@a4@@ + Number ) + @@v37@@ ) ; so_tri ( @@a1@@ , v26 , v12 , v31 ) ; so_tri ( @@a1@@ , v12 , v19 , v31 ) ; } } break ; case Number : if ( @@a5@@ > Number ) { v13 = * ( unsigned __int16 * ) ( Number L * @@a4@@ + @@v37@@ ) ; v27 = * ( unsigned __int16 * ) ( Number L * ( @@a4@@ + Number ) + @@v37@@ ) ; for ( kk = Number ; ; ++ kk ) { @@result@@ = ( unsigned int ) ( kk + Number ) ; if ( @@a5@@ <= ( unsigned int ) @@result@@ ) break ; v20 = v27 ; v27 = * ( unsigned __int16 * ) ( Number L * ( kk + @@a4@@ + Number ) + @@v37@@ ) ; so_tri ( @@a1@@ , v20 , v27 , v13 ) ; } } break ; case Number : for ( ll = Number ; ; ll += Number ) { @@result@@ = ( unsigned int ) ( ll + Number ) ; if ( @@a5@@ <= ( unsigned int ) @@result@@ ) break ; so_line ( @@a1@@ , * ( unsigned __int16 * ) ( Number L * ( ll + @@a4@@ + Number ) + @@v37@@ ) , * ( unsigned __int16 * ) ( Number L * ( ll + @@a4@@ + Number ) + @@v37@@ ) ) ; } break ; case Number : if ( @@a5@@ > Number ) { v28 = * ( unsigned __int16 * ) ( Number L * ( @@a4@@ + Number ) + @@v37@@ ) ; v32 = * ( unsigned __int16 * ) ( Number L * ( @@a4@@ + Number ) + @@v37@@ ) ; for ( mm = Number ; ; ++ mm ) { @@result@@ = ( unsigned int ) ( mm + Number ) ; if ( @@a5@@ <= ( unsigned int ) @@result@@ ) break ; v21 = v28 ; v28 = v32 ; v32 = * ( unsigned __int16 * ) ( Number L * ( mm + @@a4@@ + Number ) + @@v37@@ ) ; so_line ( @@a1@@ , v21 , v28 ) ; } } break ; case Number : for ( nn = Number ; ; nn += Number ) { @@result@@ = ( unsigned int ) ( nn + Number ) ; if ( @@a5@@ <= ( unsigned int ) @@result@@ ) break ; so_tri ( @@a1@@ , * ( unsigned __int16 * ) ( Number L * ( @@a4@@ + nn ) + @@v37@@ ) , * ( unsigned __int16 * ) ( Number L * ( nn + @@a4@@ + Number ) + @@v37@@ ) , * ( unsigned __int16 * ) ( Number L * ( nn + @@a4@@ + Number ) + @@v37@@ ) ) ; } break ; case Number : if ( @@a5@@ > Number ) { v29 = * ( unsigned __int16 * ) ( Number L * @@a4@@ + @@v37@@ ) ; @@v34@@ = * ( unsigned __int16 * ) ( Number L * ( @@a4@@ + Number ) + @@v37@@ ) ; v33 = * ( unsigned __int16 * ) ( Number L * ( @@a4@@ + Number ) + @@v37@@ ) ; for ( i1 = Number ; ; i1 += Number ) { @@result@@ = ( unsigned int ) ( i1 + Number ) ; if ( @@a5@@ <= ( unsigned int ) @@result@@ ) break ; v14 = v29 ; v29 = @@v34@@ ; @@v34@@ = v33 ; if ( @@a5@@ <= i1 + Number ) v6 = Number ; else v6 = Number ; v33 = * ( unsigned __int16 * ) ( Number L * ( i1 + v6 + @@a4@@ ) + @@v37@@ ) ; if ( ( i1 & Number ) != Number ) so_tri ( @@a1@@ , v29 , v14 , @@v34@@ ) ; else so_tri ( @@a1@@ , v14 , v29 , @@v34@@ ) ; } } break ; default : return @@result@@ ; } } return @@result@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r24"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "a5", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r72"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "v37", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}, {"n": "v36", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s28"}, {"n": "v35", "t": {"T": 1, "n": "int", "s": 4}, "location": "s32"}, {"n": "v34", "t": {"T": 1, "n": "int", "s": 4}, "location": "s48"}]}