{"name": "nextName", "code": "char * __fastcall nextName ( char * * @@a1@@ , const char * @@a2@@ , char * @@a3@@ , int @@a4@@ ) { char * result ; char * v5 ; int @@v7@@ ; char * @@dest@@ ; if ( ! * @@a1@@ ) return Number L ; while ( ( ( * _ctype_b_loc ( ) ) [ * * @@a1@@ ] & Number ) != Number || * * @@a1@@ == Number ) ++ * @@a1@@ ; if ( ! * * @@a1@@ ) return Number L ; @@dest@@ = @@a3@@ ; @@a3@@ [ @@a4@@ - Number ] = Number ; @@v7@@ = PaExpand ( @@a1@@ , & @@dest@@ , @@a4@@ ) ; if ( * * @@a1@@ ) ++ * @@a1@@ ; if ( @@v7@@ >= Number ) { if ( @@a3@@ != @@dest@@ && * ( @@dest@@ - Number ) != Number ) { v5 = @@dest@@ ++ ; * v5 = Number ; -- @@v7@@ ; } if ( @@v7@@ >= strlen ( @@a2@@ ) ) strcpy ( @@dest@@ , @@a2@@ ) ; else strncpy ( @@dest@@ , @@a2@@ , @@v7@@ ) ; result = @@a3@@ ; } else { * @@a3@@ = Number ; result = @@a3@@ ; } return result ; }", "source": [{"n": "a3", "t": {"T": 3, "t": "char"}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "int", "s": 4}, "location": "r24"}, {"n": "a1", "t": {"T": 3, "t": "char *"}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "const char"}, "location": "r64"}, {"n": "dest", "t": {"T": 3, "t": "char"}, "location": "s24"}, {"n": "v7", "t": {"T": 1, "n": "int", "s": 4}, "location": "s60"}]}
{"name": "PaExpand", "code": "__int64 __fastcall PaExpand ( char * * @@a1@@ , char * * @@a2@@ , int @@a3@@ ) { int v3 ; int v5 ; char * v6 ; char * v7 ; int @@v8@@ ; char @@name@@ [ Number ] ; struct passwd * @@v10@@ ; char * @@dest@@ ; char * * @@v12@@ ; char @@v13@@ ; int @@v14@@ ; int @@i@@ ; char * @@s@@ ; char * @@v17@@ ; char * @@v18@@ ; @@v8@@ = @@a3@@ - Number ; @@v18@@ = * @@a1@@ ; if ( * @@v18@@ != Number ) { if ( * @@v18@@ != Number ) { LABEL_54 : while ( * @@v18@@ == Number ) { if ( @@v18@@ [ Number ] != Number ) { if ( ! @@v18@@ [ Number ] || @@v18@@ [ Number ] == Number || ( ( * _ctype_b_loc ( ) ) [ @@v18@@ [ Number ] ] & Number ) != Number ) ++ @@v18@@ ; break ; } @@v18@@ += Number ; } @@v17@@ = * @@a2@@ ; goto LABEL_59 ; } @@v17@@ = @@name@@ ; for ( @@i@@ = Number ; ; ++ @@i@@ ) { * @@v17@@ = * ++ @@v18@@ ; if ( ( ( * _ctype_b_loc ( ) ) [ * @@v17@@ ] & Number ) != Number || ! * @@v17@@ || * @@v17@@ == Number || * @@v17@@ == Number ) break ; if ( @@i@@ <= Number ) ++ @@v17@@ ; } @@v13@@ = * @@v17@@ ; * @@v17@@ = Number ; if ( noTable ) { HashInit ( & expansionTable , Number L , Number L ) ; noTable = Number ; } @@v12@@ = ( char * * ) HashFind ( & expansionTable , @@name@@ ) ; @@s@@ = * @@v12@@ ; if ( ! @@s@@ ) { @@s@@ = getenv ( @@name@@ ) ; if ( ! @@s@@ ) { if ( strcmp ( @@name@@ , String ) ) { * @@v17@@ = @@v13@@ ; @@v18@@ = * @@a1@@ ; goto LABEL_54 ; } @@s@@ = String ; } v5 = strlen ( @@s@@ ) ; @@dest@@ = ( char * ) mallocMagic ( ( unsigned int ) ( v5 + Number ) ) ; strcpy ( @@dest@@ , @@s@@ ) ; * @@v12@@ = @@dest@@ ; } @@v14@@ = strlen ( @@s@@ ) ; if ( @@v14@@ > @@v8@@ ) @@v14@@ = @@v8@@ ; LABEL_26 : strncpy ( * @@a2@@ , @@s@@ , @@v14@@ + Number ) ; @@v8@@ -= @@v14@@ ; @@v17@@ = & ( * @@a2@@ ) [ @@v14@@ ] ; LABEL_59 : while ( * @@v18@@ && ( ( * _ctype_b_loc ( ) ) [ * @@v18@@ ] & Number ) == Number && * @@v18@@ != Number ) { if ( @@v8@@ <= Number ) { ++ @@v18@@ ; } else { v6 = @@v18@@ ++ ; v7 = @@v17@@ ++ ; * v7 = * v6 ; -- @@v8@@ ; } } * @@v17@@ = Number ; * @@a1@@ = @@v18@@ ; * @@a2@@ = @@v17@@ ; return ( unsigned int ) @@v8@@ ; } @@v17@@ = @@name@@ ; for ( @@i@@ = Number ; ; ++ @@i@@ ) { * @@v17@@ = * ++ @@v18@@ ; if ( ( ( * _ctype_b_loc ( ) ) [ * @@v17@@ ] & Number ) != Number || ! * @@v17@@ || * @@v17@@ == Number || * @@v17@@ == Number ) break ; if ( @@i@@ <= Number ) ++ @@v17@@ ; } * @@v17@@ = Number ; if ( noTable ) { HashInit ( & expansionTable , Number L , Number L ) ; noTable = Number ; } @@v12@@ = ( char * * ) HashFind ( & expansionTable , @@name@@ ) ; @@s@@ = * @@v12@@ ; if ( @@s@@ ) { LABEL_24 : @@v14@@ = strlen ( @@s@@ ) ; if ( @@v14@@ > @@v8@@ ) @@v14@@ = @@v8@@ ; goto LABEL_26 ; } if ( @@name@@ [ Number ] ) { @@s@@ = Number L ; @@v10@@ = getpwnam ( @@name@@ ) ; if ( @@v10@@ ) @@s@@ = @@v10@@ -> pw_dir ; } else { @@s@@ = getenv ( String ) ; } if ( @@s@@ ) { v3 = strlen ( @@s@@ ) ; @@dest@@ = ( char * ) mallocMagic ( ( unsigned int ) ( v3 + Number ) ) ; strcpy ( @@dest@@ , @@s@@ ) ; * @@v12@@ = @@dest@@ ; goto LABEL_24 ; } while ( * @@v18@@ && ( ( * _ctype_b_loc ( ) ) [ * @@v18@@ ] & Number ) == Number && * @@v18@@ != Number ) ++ @@v18@@ ; * @@a1@@ = @@v18@@ ; return Number ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "a1", "t": {"T": 3, "t": "char *"}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "char *"}, "location": "r64"}, {"n": "v17", "t": {"T": 3, "t": "char"}, "location": "s16"}, {"n": "name", "t": {"T": 2, "n": 112, "s": 1, "t": "char"}, "location": "s176"}, {"n": "v8", "t": {"T": 1, "n": "int", "s": 4}, "location": "s196"}, {"n": "s", "t": {"T": 3, "t": "char"}, "location": "s24"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s28"}, {"n": "v14", "t": {"T": 1, "n": "int", "s": 4}, "location": "s32"}, {"n": "v13", "t": {"T": 1, "n": "char", "s": 1}, "location": "s33"}, {"n": "v12", "t": {"T": 3, "t": "char *"}, "location": "s48"}, {"n": "dest", "t": {"T": 3, "t": "char"}, "location": "s56"}, {"n": "v10", "t": {"T": 3, "t": "struct passwd"}, "location": "s64"}, {"n": "v18", "t": {"T": 3, "t": "char"}, "location": "s8"}]} {"name": "PaLockOpen", "code": "__int64 __fastcall PaLockOpen ( char * @@a1@@ , __int64 @@a2@@ , char * @@a3@@ , char * @@a4@@ , char * @@a5@@ , _QWORD * @@a6@@ , __int64 @@a7@@ ) { __int64 @@result@@ ; char * @@v8@@ ; char * @@v9@@ ; char * @@src@@ ; __int64 @@v11@@ ; char * @@s@@ ; char * @@v13@@ ; char * @@v14@@ ; char @@dest@@ [ Number ] ; __int64 @@v16@@ ; int @@v17@@ ; int @@v18@@ ; int @@v19@@ ; @@s@@ = @@a1@@ ; @@v11@@ = @@a2@@ ; @@src@@ = @@a3@@ ; @@v9@@ = @@a4@@ ; @@v8@@ = @@a5@@ ; if ( ! @@a1@@ ) return Number L ; if ( ! * @@s@@ ) return Number L ; if ( @@a6@@ ) * @@a6@@ = & realName_3703 ; @@v19@@ = strlen ( @@s@@ ) ; if ( @@v19@@ > Number ) @@v19@@ = Number ; if ( @@src@@ ) { strncpy ( @@dest@@ , @@s@@ , @@v19@@ + Number ) ; @@v17@@ = Number - @@v19@@ ; @@v18@@ = strlen ( @@src@@ ) ; if ( @@v18@@ > @@v17@@ ) @@v18@@ = @@v17@@ ; strncpy ( & @@dest@@ [ @@v19@@ ] , @@src@@ , @@v18@@ + Number ) ; @@dest@@ [ Number ] = Number ; @@s@@ = @@dest@@ ; } if ( * @@s@@ == Number || * @@s@@ == Number ) { @@v14@@ = & realName_3703 ; @@v13@@ = @@s@@ ; if ( ( int ) PaExpand ( & @@v13@@ , & @@v14@@ , Number ) >= Number ) @@result@@ = flock_open ( & realName_3703 , @@v11@@ , @@a7@@ ) ; else @@result@@ = Number L ; } else if ( * @@s@@ == Number || * @@s@@ == Number && ( ! strcmp ( @@s@@ , String ) || ! strncmp ( @@s@@ , String , Number ) || ! strcmp ( @@s@@ , String ) || ! strncmp ( @@s@@ , String , Number ) ) ) { strncpy ( & realName_3703 , @@s@@ , Number ) ; byte_1E7F = Number ; @@result@@ = flock_open ( & realName_3703 , @@v11@@ , @@a7@@ ) ; } else { while ( nextName ( & @@v9@@ , @@s@@ , & realName_3703 , Number ) ) { if ( realName_3703 ) { @@v16@@ = flock_open ( & realName_3703 , @@v11@@ , @@a7@@ ) ; if ( @@v16@@ ) return @@v16@@ ; if ( * _errno_location ( ) != Number ) return Number L ; } } if ( @@v8@@ ) { while ( nextName ( & @@v8@@ , @@s@@ , & realName_3703 , Number ) ) { @@v16@@ = flock_open ( & realName_3703 , @@v11@@ , @@a7@@ ) ; if ( @@v16@@ ) return @@v16@@ ; if ( * _errno_location ( ) != Number ) return Number L ; } @@result@@ = Number L ; } else { @@result@@ = Number L ; } } return @@result@@ ; }", "source": [{"n": "a3", "t": {"T": 3, "t": "char"}, "location": "r16"}, {"n": "a4", "t": {"T": 3, "t": "char"}, "location": "r24"}, {"n": "a1", "t": {"T": 3, "t": "char"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "a5", "t": {"T": 3, "t": "char"}, "location": "r72"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "a6", "t": {"T": 3, "t": "_QWORD"}, "location": "r80"}, {"n": "a7", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s-16"}, {"n": "v17", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "v16", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}, {"n": "v19", "t": {"T": 1, "n": "int", "s": 4}, "location": "s4"}, {"n": "dest", "t": {"T": 2, "n": 4104, "s": 1, "t": "char"}, "location": "s4128"}, {"n": "v14", "t": {"T": 3, "t": "char"}, "location": "s4136"}, {"n": "v13", "t": {"T": 3, "t": "char"}, "location": "s4144"}, {"n": "s", "t": {"T": 3, "t": "char"}, "location": "s4152"}, {"n": "v11", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s4160"}, {"n": "src", "t": {"T": 3, "t": "char"}, "location": "s4168"}, {"n": "v9", "t": {"T": 3, "t": "char"}, "location": "s4176"}, {"n": "v8", "t": {"T": 3, "t": "char"}, "location": "s4184"}, {"n": "v18", "t": {"T": 1, "n": "int", "s": 4}, "location": "s8"}]} {"name": "PaEnum", "code": "__int64 __fastcall PaEnum ( char * @@a1@@ , const char * @@a2@@ , unsigned int ( __fastcall * @@a3@@ ) ( char * , __int64 ) , __int64 @@a4@@ ) { char * @@i@@ ; char * @@v8@@ ; char @@v9@@ [ Number ] ; char * @@v10@@ ; @@v8@@ = @@a1@@ ; for ( @@i@@ = nextName ( & @@v8@@ , @@a2@@ , @@v9@@ , Number ) ; ; @@i@@ = nextName ( & @@v8@@ , @@a2@@ , @@v9@@ , Number ) ) { @@v10@@ = @@i@@ ; if ( ! @@i@@ ) break ; if ( * @@v10@@ && @@a3@@ ( @@v10@@ , @@a4@@ ) ) return Number L ; } return Number L ; }", "source": [{"n": "a3", "t": {"T": 9, "n": "unsigned int (__fastcall *)(char *, __int64)"}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r24"}, {"n": "a1", "t": {"T": 3, "t": "char"}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "const char"}, "location": "r64"}, {"n": "i", "t": {"T": 3, "t": "char"}, "location": "r8"}, {"n": "v9", "t": {"T": 2, "n": 4104, "s": 1, "t": "char"}, "location": "s4112"}, {"n": "v8", "t": {"T": 3, "t": "char"}, "location": "s4120"}, {"n": "v10", "t": {"T": 3, "t": "char"}, "location": "s8"}]}