{"name": "vfbfs_dir_create_in", "code": "__int64 __fastcall vfbfs_dir_create_in ( __int64 @@a1@@ , __int64 @@a2@@ , const char * @@a3@@ ) { char * @@v4@@ ; _QWORD * @@v5@@ ; if ( ! @@a1@@ || ! @@a3@@ ) return Number L ; @@v4@@ = strdup ( @@a3@@ ) ; @@v5@@ = vfbfs_dir_new ( @@a1@@ , ( __int64 ) @@v4@@ ) ; return vfbfs_dir_add_to ( @@a1@@ , @@a2@@ , ( __int64 ) @@v5@@ ) ; }", "source": [{"n": "a3", "t": {"T": 3, "t": "const char"}, "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": "v4", "t": {"T": 3, "t": "char"}, "location": "r8"}, {"n": "v5", "t": {"T": 3, "t": "_QWORD"}, "location": "s8"}]}
{"name": "vfbfs_dir_new", "code": "_QWORD * __fastcall vfbfs_dir_new ( __int64 @@a1@@ , __int64 @@a2@@ ) { _QWORD * @@result@@ ; _QWORD * @@v3@@ ; _QWORD * @@ptr@@ ; @@ptr@@ = ( _QWORD * ) vfbfs_entry_dir_alloc ( @@a1@@ ) ; @@v3@@ = ( _QWORD * ) vfbfs_dir_alloc ( @@a1@@ ) ; if ( @@ptr@@ && @@v3@@ ) { * @@ptr@@ = @@a2@@ ; @@ptr@@ [ Number ] = @@v3@@ ; * @@v3@@ = @@ptr@@ ; if ( @@a1@@ ) { if ( * ( _QWORD * ) @@a1@@ ) { @@v3@@ [ Number ] = * ( _QWORD * ) ( * ( _QWORD * ) @@a1@@ + Number L ) ; @@v3@@ [ Number ] = * ( _QWORD * ) ( * ( _QWORD * ) @@a1@@ + Number L ) ; @@v3@@ [ Number ] = * ( _QWORD * ) ( * ( _QWORD * ) @@a1@@ + Number L ) ; @@v3@@ [ Number ] = * ( _QWORD * ) @@a1@@ ; } } @@result@@ = @@v3@@ ; } else { free ( @@ptr@@ ) ; free ( @@v3@@ ) ; @@result@@ = Number L ; } return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "result", "t": {"T": 3, "t": "_QWORD"}, "location": "r8"}, {"n": "v3", "t": {"T": 3, "t": "_QWORD"}, "location": "s16"}, {"n": "ptr", "t": {"T": 3, "t": "_QWORD"}, "location": "s8"}]} {"name": "vfbfs_dir_add_to", "code": "__int64 __fastcall vfbfs_dir_add_to ( __int64 @@a1@@ , __int64 @@a2@@ , __int64 @@a3@@ ) { __int64 @@v5@@ ; @@v5@@ = @@a2@@ ; if ( @@a1@@ ) { if ( ! @@a2@@ ) @@v5@@ = * ( _QWORD * ) ( * ( _QWORD * ) @@a1@@ + Number L ) ; if ( ( unsigned int ) vfbfs_entry_add_to ( @@a1@@ , @@v5@@ , * ( _QWORD * ) @@a3@@ ) ) return Number L ; pthread_rwlock_wrlock ( ( pthread_rwlock_t * ) ( @@a3@@ + Number ) ) ; pthread_rwlock_rdlock ( ( pthread_rwlock_t * ) ( @@v5@@ + Number ) ) ; * ( _QWORD * ) ( @@a3@@ + Number ) = * ( _QWORD * ) ( @@v5@@ + Number ) ; * ( _QWORD * ) ( @@a3@@ + Number ) = * ( _QWORD * ) ( @@v5@@ + Number ) ; * ( _QWORD * ) ( @@a3@@ + Number ) = * ( _QWORD * ) ( @@v5@@ + Number ) ; * ( _QWORD * ) ( @@a3@@ + Number ) = * ( _QWORD * ) ( @@v5@@ + Number ) ; * ( _QWORD * ) ( @@a3@@ + Number ) = * ( _QWORD * ) ( @@v5@@ + Number ) ; pthread_rwlock_unlock ( ( pthread_rwlock_t * ) ( @@v5@@ + Number ) ) ; pthread_rwlock_unlock ( ( pthread_rwlock_t * ) ( @@a3@@ + Number ) ) ; } return @@a3@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "__int64", "s": 8}, "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": "v5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s32"}]}