{"name": "dispatch_ops", "code": "_BYTE * __fastcall dispatch_ops ( _QWORD * @@a1@@ , _QWORD * @@a2@@ , char @@a3@@ ) { _BYTE * result ; _BOOL4 v4 ; char v5 ; _BYTE * v6 ; _BYTE * v7 ; _BYTE * v8 ; _BYTE * v9 ; _BOOL4 v10 ; char v11 ; _QWORD * @@v12@@ ; _QWORD * @@v13@@ ; _QWORD * @@v14@@ ; _QWORD * @@v15@@ ; _BYTE * @@v16@@ ; _BYTE * @@v17@@ ; _BYTE * @@v18@@ ; _BYTE * @@v19@@ ; _BYTE * @@v20@@ ; _BYTE * @@v21@@ ; void * @@v22@@ ; void * @@v23@@ ; void * @@ptr@@ ; void * @@v25@@ ; char @@v26@@ ; _BYTE * @@v27@@ ; _BYTE * @@v28@@ ; _BYTE * @@v29@@ ; _BYTE * @@v30@@ ; char @@v31@@ ; _BYTE * @@v32@@ ; _BYTE * @@v33@@ ; _BYTE * @@v34@@ ; _BYTE * @@v35@@ ; _QWORD * @@v36@@ ; __int64 * @@v37@@ ; _QWORD * @@v38@@ ; if ( @@a3@@ != Number ) { if ( @@a3@@ != Number ) { if ( @@a3@@ == Number ) { @@v29@@ = malloc ( Number ) ; * @@v29@@ = Number ; @@v29@@ [ Number ] = Number ; @@v29@@ [ Number ] = Number ; @@v36@@ = fill_big_num ( @@v29@@ ) ; @@v28@@ = malloc ( * @@a1@@ + Number L ) ; lngstrncpy ( @@v28@@ , @@a1@@ [ Number ] , * @@a1@@ + Number L ) ; @@v28@@ [ * @@a1@@ + Number ] = Number ; @@v27@@ = malloc ( * @@a2@@ + Number L ) ; lngstrncpy ( @@v27@@ , @@a2@@ [ Number ] , * @@a2@@ + Number L ) ; @@v27@@ [ * @@a2@@ + Number ] = Number ; v4 = negative ( ( __int64 ) @@a1@@ ) ; if ( v4 == negative ( ( __int64 ) @@a2@@ ) ) v5 = Number ; else v5 = Number ; @@v26@@ = v5 ; if ( ( int ) compare_bignums ( @@a2@@ , @@a1@@ ) > Number ) { @@v38@@ = fill_big_num ( @@v27@@ ) ; @@v37@@ = fill_big_num ( @@v28@@ ) ; } else { @@v38@@ = fill_big_num ( @@v28@@ ) ; @@v37@@ = fill_big_num ( @@v27@@ ) ; } if ( ( unsigned int ) zero ( @@v37@@ [ Number ] ) ) { result = ( _BYTE * ) @@v37@@ [ Number ] ; } else { while ( ! ( unsigned int ) one ( @@v37@@ ) ) { if ( ( unsigned int ) mod_2 ( @@v37@@ ) == Number ) { @@ptr@@ = @@v36@@ ; v6 = ( _BYTE * ) bnadd ( @@v36@@ , @@v38@@ ) ; @@v36@@ = fill_big_num ( v6 ) ; free ( @@ptr@@ ) ; } @@v23@@ = @@v38@@ ; @@v22@@ = @@v37@@ ; v7 = ( _BYTE * ) bnadd ( @@v38@@ , @@v38@@ ) ; @@v38@@ = fill_big_num ( v7 ) ; v8 = ( _BYTE * ) div_by_2 ( @@v37@@ ) ; @@v37@@ = fill_big_num ( v8 ) ; free ( @@v23@@ ) ; free ( @@v22@@ ) ; } @@v25@@ = @@v36@@ ; v9 = ( _BYTE * ) bnadd ( @@v36@@ , @@v38@@ ) ; @@v36@@ = fill_big_num ( v9 ) ; free ( @@v25@@ ) ; * ( _BYTE * ) @@v36@@ [ Number ] = @@v26@@ ; result = ( _BYTE * ) @@v36@@ [ Number ] ; } } else { @@v35@@ = malloc ( Number ) ; * @@v35@@ = Number ; @@v35@@ [ Number ] = Number ; @@v35@@ [ Number ] = Number ; @@v12@@ = fill_big_num ( @@v35@@ ) ; @@v34@@ = malloc ( Number ) ; * @@v34@@ = Number ; @@v34@@ [ Number ] = Number ; @@v34@@ [ Number ] = Number ; @@v13@@ = fill_big_num ( @@v34@@ ) ; @@v33@@ = malloc ( * @@a1@@ + Number L ) ; lngstrncpy ( @@v33@@ , @@a1@@ [ Number ] , * @@a1@@ + Number L ) ; @@v33@@ [ * @@a1@@ + Number ] = Number ; @@v32@@ = malloc ( * @@a2@@ + Number L ) ; lngstrncpy ( @@v32@@ , @@a2@@ [ Number ] , * @@a2@@ + Number L ) ; @@v32@@ [ * @@a2@@ + Number ] = Number ; v10 = negative ( ( __int64 ) @@a1@@ ) ; if ( v10 == negative ( ( __int64 ) @@a2@@ ) ) v11 = Number ; else v11 = Number ; @@v31@@ = v11 ; if ( ( int ) compare_bignums ( @@a2@@ , @@a1@@ ) > Number ) { @@v30@@ = malloc ( Number ) ; * @@v30@@ = Number ; @@v30@@ [ Number ] = Number ; @@v30@@ [ Number ] = Number ; result = @@v30@@ ; } else { @@v15@@ = fill_big_num ( @@v33@@ ) ; @@v14@@ = fill_big_num ( @@v32@@ ) ; if ( ( unsigned int ) zero ( @@v14@@ [ Number ] ) ) { printf ( String ) ; exit ( Number ) ; } divide ( & @@v15@@ , & @@v14@@ , & @@v12@@ , & @@v13@@ ) ; * ( _BYTE * ) @@v12@@ [ Number ] = @@v31@@ ; result = ( _BYTE * ) @@v12@@ [ Number ] ; } } return result ; } if ( negative ( ( __int64 ) @@a1@@ ) && negative ( ( __int64 ) @@a2@@ ) ) { if ( ( int ) compare_bignums ( @@a1@@ , @@a2@@ ) <= Number ) return ( _BYTE * ) bnsub ( @@a2@@ , @@a1@@ ) ; @@v21@@ = ( _BYTE * ) bnsub ( @@a1@@ , @@a2@@ ) ; * @@v21@@ = Number ; return @@v21@@ ; } if ( negative ( ( __int64 ) @@a1@@ ) ) { @@v19@@ = ( _BYTE * ) bnadd ( @@a1@@ , @@a2@@ ) ; * @@v19@@ = Number ; return @@v19@@ ; } if ( ! negative ( ( __int64 ) @@a2@@ ) ) { if ( ( int ) compare_bignums ( @@a2@@ , @@a1@@ ) > Number ) { @@v20@@ = ( _BYTE * ) bnsub ( @@a2@@ , @@a1@@ ) ; * @@v20@@ = Number ; return @@v20@@ ; } return ( _BYTE * ) bnsub ( @@a1@@ , @@a2@@ ) ; } return ( _BYTE * ) bnadd ( @@a1@@ , @@a2@@ ) ; } if ( negative ( ( __int64 ) @@a1@@ ) && negative ( ( __int64 ) @@a2@@ ) ) { @@v18@@ = ( _BYTE * ) bnadd ( @@a1@@ , @@a2@@ ) ; * @@v18@@ = Number ; return @@v18@@ ; } if ( ! negative ( ( __int64 ) @@a1@@ ) ) { if ( negative ( ( __int64 ) @@a2@@ ) ) { if ( ( int ) compare_bignums ( @@a2@@ , @@a1@@ ) > Number ) { @@v17@@ = ( _BYTE * ) bnsub ( @@a2@@ , @@a1@@ ) ; * @@v17@@ = Number ; return @@v17@@ ; } return ( _BYTE * ) bnsub ( @@a1@@ , @@a2@@ ) ; } return ( _BYTE * ) bnadd ( @@a1@@ , @@a2@@ ) ; } if ( ( int ) compare_bignums ( @@a1@@ , @@a2@@ ) <= Number ) return ( _BYTE * ) bnsub ( @@a2@@ , @@a1@@ ) ; @@v16@@ = ( _BYTE * ) bnsub ( @@a1@@ , @@a2@@ ) ; * @@v16@@ = Number ; return @@v16@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "char", "s": 1}, "location": "r16"}, {"n": "a1", "t": {"T": 3, "t": "_QWORD"}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "_QWORD"}, "location": "r64"}, {"n": "v28", "t": {"T": 3, "t": "_BYTE"}, "location": "s104"}, {"n": "v27", "t": {"T": 3, "t": "_BYTE"}, "location": "s112"}, {"n": "v26", "t": {"T": 1, "n": "char", "s": 1}, "location": "s113"}, {"n": "v25", "t": {"T": 3, "t": "void"}, "location": "s128"}, {"n": "ptr", "t": {"T": 3, "t": "void"}, "location": "s136"}, {"n": "v23", "t": {"T": 3, "t": "void"}, "location": "s144"}, {"n": "v22", "t": {"T": 3, "t": "void"}, "location": "s152"}, {"n": "v21", "t": {"T": 3, "t": "_BYTE"}, "location": "s160"}, {"n": "v20", "t": {"T": 3, "t": "_BYTE"}, "location": "s168"}, {"n": "v19", "t": {"T": 3, "t": "_BYTE"}, "location": "s176"}, {"n": "v18", "t": {"T": 3, "t": "_BYTE"}, "location": "s184"}, {"n": "v17", "t": {"T": 3, "t": "_BYTE"}, "location": "s192"}, {"n": "v16", "t": {"T": 3, "t": "_BYTE"}, "location": "s200"}, {"n": "v15", "t": {"T": 3, "t": "_QWORD"}, "location": "s208"}, {"n": "v14", "t": {"T": 3, "t": "_QWORD"}, "location": "s216"}, {"n": "v13", "t": {"T": 3, "t": "_QWORD"}, "location": "s224"}, {"n": "v12", "t": {"T": 3, "t": "_QWORD"}, "location": "s232"}, {"n": "v38", "t": {"T": 3, "t": "_QWORD"}, "location": "s24"}, {"n": "v37", "t": {"T": 3, "t": "__int64"}, "location": "s32"}, {"n": "v36", "t": {"T": 3, "t": "_QWORD"}, "location": "s40"}, {"n": "v35", "t": {"T": 3, "t": "_BYTE"}, "location": "s48"}, {"n": "v34", "t": {"T": 3, "t": "_BYTE"}, "location": "s56"}, {"n": "v33", "t": {"T": 3, "t": "_BYTE"}, "location": "s64"}, {"n": "v32", "t": {"T": 3, "t": "_BYTE"}, "location": "s72"}, {"n": "v31", "t": {"T": 1, "n": "char", "s": 1}, "location": "s73"}, {"n": "v30", "t": {"T": 3, "t": "_BYTE"}, "location": "s88"}, {"n": "v29", "t": {"T": 3, "t": "_BYTE"}, "location": "s96"}]}