{"name": "_ZNK4llvm21BranchProbabilityInfo20printEdgeProbabilityERNS_11raw_ostreamEPKNS_10BasicBlockES5_", "code": "llvm raw_ostream * __fastcall llvm BranchProbabilityInfo printEdgeProbability ( llvm BranchProbabilityInfo * @@this@@ , llvm raw_ostream * @@a2@@ , const llvm BasicBlock * @@a3@@ , const llvm BasicBlock * @@a4@@ ) { __int64 v8 ; llvm raw_ostream * v9 ; const void * v10 ; size_t v11 ; void * v12 ; size_t v13 ; llvm raw_ostream * v14 ; _DWORD * v15 ; const void * v16 ; size_t v17 ; void * v18 ; size_t v19 ; __m128i * * v20 ; __m128i * v21 ; const char * v22 ; llvm raw_ostream * v23 ; unsigned __int64 v24 ; _DWORD * v25 ; unsigned __int64 v27 ; char * v28 ; const char * v29 ; unsigned int v30 ; unsigned int v31 ; unsigned int v32 ; __int64 v33 ; __int64 @@v34@@ [ Number ] ; @@v34@@ [ Number ] = llvm BranchProbabilityInfo getEdgeProbability ( @@this@@ , @@a3@@ , @@a4@@ ) ; v8 = * ( ( _QWORD * ) @@a2@@ + Number ) ; if ( * ( ( _QWORD * ) @@a2@@ + Number ) >= ( unsigned __int64 ) ( v8 + Number ) ) { * ( _DWORD * ) v8 = Number ; v9 = @@a2@@ ; * ( _BYTE * ) ( v8 + Number ) = Number ; * ( ( _QWORD * ) @@a2@@ + Number ) += Number L ; } else { v9 = ( llvm raw_ostream * ) llvm raw_ostream write ( @@a2@@ , String , Number ) ; } v10 = ( const void * ) llvm Value getName ( @@a3@@ ) ; v12 = ( void * ) * ( ( _QWORD * ) v9 + Number ) ; v13 = v11 ; if ( * ( ( _QWORD * ) v9 + Number ) >= ( unsigned __int64 ) v12 + v11 ) { memcpy ( v12 , v10 , v11 ) ; v15 = ( _DWORD * ) ( * ( ( _QWORD * ) v9 + Number ) + v13 ) ; * ( ( _QWORD * ) v9 + Number ) = v15 ; } else { v14 = ( llvm raw_ostream * ) llvm raw_ostream write ( v9 , ( const char * ) v10 , v11 ) ; v15 = ( _DWORD * ) * ( ( _QWORD * ) v14 + Number ) ; v9 = v14 ; } if ( * ( ( _QWORD * ) v9 + Number ) >= ( unsigned __int64 ) ( v15 + Number ) ) { * v15 = Number ; * ( ( _QWORD * ) v9 + Number ) += Number L ; } else { v9 = ( llvm raw_ostream * ) llvm raw_ostream write ( v9 , String , Number ) ; } v16 = ( const void * ) llvm Value getName ( @@a4@@ ) ; v18 = ( void * ) * ( ( _QWORD * ) v9 + Number ) ; v19 = v17 ; if ( * ( ( _QWORD * ) v9 + Number ) >= ( unsigned __int64 ) v18 + v17 ) { memcpy ( v18 , v16 , v17 ) ; v21 = ( __m128i * ) ( * ( ( _QWORD * ) v9 + Number ) + v19 ) ; * ( ( _QWORD * ) v9 + Number ) = v21 ; } else { v20 = ( __m128i * * ) llvm raw_ostream write ( v9 , ( const char * ) v16 , v17 ) ; v21 = v20 [ Number ] ; v9 = ( llvm raw_ostream * ) v20 ; } if ( * ( ( _QWORD * ) v9 + Number ) >= ( unsigned __int64 ) & v21 [ Number ] ) { * v21 = _mm_load_si128 ( ( const __m128i * ) & LC48 ) ; * ( ( _QWORD * ) v9 + Number ) += Number L ; } else { v9 = ( llvm raw_ostream * ) llvm raw_ostream write ( v9 , String , Number ) ; } v22 = String ; v23 = ( llvm raw_ostream * ) llvm operator << ( v9 , @@v34@@ ) ; if ( ! llvm BranchProbabilityInfo isEdgeHot ( @@this@@ , @@a3@@ , @@a4@@ ) ) v22 = String ; v24 = strlen ( v22 ) ; v25 = ( _DWORD * ) * ( ( _QWORD * ) v23 + Number ) ; if ( * ( ( _QWORD * ) v23 + Number ) < ( unsigned __int64 ) v25 + v24 ) { llvm raw_ostream write ( v23 , v22 , v24 ) ; return @@a2@@ ; } if ( ( unsigned int ) v24 < Number ) { if ( ( v24 & Number ) != Number ) { * v25 = * ( _DWORD * ) v22 ; * ( _DWORD * ) ( ( char * ) v25 + ( unsigned int ) v24 - Number ) = * ( _DWORD * ) & v22 [ ( unsigned int ) v24 - Number ] ; } else if ( ( _DWORD ) v24 ) { * ( _BYTE * ) v25 = * v22 ; if ( ( v24 & Number ) != Number ) * ( _WORD * ) ( ( char * ) v25 + ( unsigned int ) v24 - Number ) = * ( _WORD * ) & v22 [ ( unsigned int ) v24 - Number ] ; } goto LABEL_24 ; } v27 = ( unsigned __int64 ) ( v25 + Number ) & Number ; * ( _QWORD * ) v25 = * ( _QWORD * ) v22 ; * ( _QWORD * ) ( ( char * ) v25 + ( unsigned int ) v24 - Number ) = * ( _QWORD * ) & v22 [ ( unsigned int ) v24 - Number ] ; v28 = ( char * ) v25 - v27 ; v29 = ( const char * ) ( v22 - v28 ) ; v30 = ( v24 + ( _DWORD ) v28 ) & Number ; if ( v30 < Number ) { LABEL_24 : * ( ( _QWORD * ) v23 + Number ) += v24 ; return @@a2@@ ; } v31 = v30 & Number ; v32 = Number ; do { v33 = v32 ; v32 += Number ; * ( _QWORD * ) ( v27 + v33 ) = * ( _QWORD * ) & v29 [ v33 ] ; } while ( v32 < v31 ) ; * ( ( _QWORD * ) v23 + Number ) += v24 ; return @@a2@@ ; }", "source": [{"n": "a3", "t": {"T": 3, "t": "const llvm::BasicBlock"}, "location": "r16"}, {"n": "a4", "t": {"T": 3, "t": "const llvm::BasicBlock"}, "location": "r24"}, {"n": "this", "t": {"T": 3, "t": "llvm::BranchProbabilityInfo"}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "llvm::raw_ostream"}, "location": "r64"}, {"n": "v34", "t": {"T": 2, "n": 8, "s": 8, "t": "__int64"}, "location": "s64"}]}