{"name": "os_find_datadir", "code": "char * __fastcall os_find_datadir ( const char * @@a1@@ ) { char * @@v2@@ ; _BYTE @@v3@@ [ Number ] ; char * @@v4@@ ; const char * @@s@@ ; size_t @@maxlen@@ ; char @@buf@@ [ Number ] ; unsigned __int64 @@v8@@ ; @@v8@@ = __readfsqword ( Number ) ; * ( _DWORD * ) & @@v3@@ [ Number ] = Number ; * ( _QWORD * ) @@v3@@ = ( unsigned int ) readlink ( String , @@buf@@ , Number ) ; if ( * ( int * ) @@v3@@ > Number ) { @@buf@@ [ * ( int * ) @@v3@@ ] = Number ; * ( _QWORD * ) & @@v3@@ [ Number ] = @@buf@@ ; } if ( ! * ( _QWORD * ) & @@v3@@ [ Number ] ) { * ( _QWORD * ) & @@v3@@ [ Number ] = realpath ( @@a1@@ , @@buf@@ ) ; if ( ! * ( _QWORD * ) & @@v3@@ [ Number ] ) return Number L ; } @@v2@@ = dirname ( * ( char * * ) & @@v3@@ [ Number ] ) ; @@s@@ = dirname ( @@v2@@ ) ; @@maxlen@@ = strlen ( @@s@@ ) + Number ; @@v4@@ = ( char * ) qemu_mallocz ( @@maxlen@@ ) ; snprintf ( @@v4@@ , @@maxlen@@ , String , @@s@@ , String ) ; if ( access ( @@v4@@ , Number ) ) { snprintf ( @@v4@@ , @@maxlen@@ , String , @@s@@ , String ) ; if ( access ( @@v4@@ , Number ) ) { qemu_free ( @@v4@@ ) ; @@v4@@ = Number L ; } } return @@v4@@ ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "const char"}, "location": "r56"}, {"n": "v2", "t": {"T": 3, "t": "char"}, "location": "r8"}, {"n": "buf", "t": {"T": 2, "n": 4104, "s": 1, "t": "char"}, "location": "s4112"}, {"n": "maxlen", "t": {"T": 1, "n": "size_t", "s": 8}, "location": "s4120"}, {"n": "s", "t": {"T": 3, "t": "const char"}, "location": "s4128"}, {"n": "v4", "t": {"T": 3, "t": "char"}, "location": "s4136"}, {"n": "v3", "t": {"T": 2, "n": 12, "s": 1, "t": "_BYTE"}, "location": "s4148"}, {"n": "v8", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]}