{"name": "lock__parse", "code": "__int64 __fastcall lock__parse ( __int64 @@a1@@ ) { void * @@ptr@@ [ Number ] ; @@ptr@@ [ Number ] = ( void * ) __readfsqword ( Number ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = zalloc ( Number ) ; if ( ! * ( _QWORD * ) ( @@a1@@ + Number ) ) return Number L ; if ( ( int ) disasm_line__parse ( * ( _QWORD * ) @@a1@@ , @@ptr@@ , * ( _QWORD * ) ( @@a1@@ + Number ) ) < Number ) goto LABEL_10 ; * ( _QWORD * ) ( @@a1@@ + Number ) = ins__find ( @@ptr@@ [ Number ] ) ; free ( @@ptr@@ [ Number ] ) ; if ( ! * ( _QWORD * ) ( @@a1@@ + Number ) ) goto LABEL_10 ; if ( ! * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ) return Number L ; if ( ! * ( _QWORD * ) ( * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) + Number L ) || ( * ( int ( __fastcall * * ) ( _QWORD ) ) ( * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) + Number L ) ) ( * ( _QWORD * ) ( @@a1@@ + Number ) ) >= Number ) { return Number L ; } LABEL_10 : free ( * ( void * * ) ( @@a1@@ + Number ) ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = Number L ; return Number L ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "ptr", "t": {"T": 2, "n": 2, "s": 8, "t": "void *"}, "location": "s16"}]}
{"name": "zalloc", "code": "void * __fastcall zalloc ( size_t @@a1@@ ) { return calloc ( Number , @@a1@@ ) ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "size_t", "s": 8}, "location": "r56"}]} {"name": "ins__find", "code": "void * __fastcall ins__find ( const void * @@a1@@ ) { return bsearch ( @@a1@@ , & instructions , Number , Number , ins__cmp ) ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "const void"}, "location": "r56"}]} {"name": "disasm_line__parse", "code": "__int64 __fastcall disasm_line__parse ( const char * @@a1@@ , void * * @@a2@@ , unsigned __int8 * * @@a3@@ ) { __int64 @@result@@ ; unsigned __int8 @@v5@@ ; while ( ( * ( ( _BYTE * ) & sane_ctype + * ( unsigned __int8 * ) @@a1@@ ) & Number ) != Number ) ++ @@a1@@ ; if ( ! * @@a1@@ ) return Number ; for ( * @@a3@@ = ( unsigned __int8 * ) ( @@a1@@ + Number ) ; * * @@a3@@ && ( * ( ( _BYTE * ) & sane_ctype + * * @@a3@@ ) & Number ) == Number ; ++ * @@a3@@ ) ; @@v5@@ = * * @@a3@@ ; * * @@a3@@ = Number ; * @@a2@@ = strdup ( @@a1@@ ) ; if ( * @@a2@@ ) { * * @@a3@@ = @@v5@@ ; if ( * * @@a3@@ ) { ++ * @@a3@@ ; while ( ( * ( ( _BYTE * ) & sane_ctype + * * @@a3@@ ) & Number ) != Number ) ++ * @@a3@@ ; } @@result@@ = Number L ; } else { free ( * @@a2@@ ) ; * @@a2@@ = Number L ; @@result@@ = Number ; } return @@result@@ ; }", "source": [{"n": "a3", "t": {"T": 3, "t": "unsigned __int8 *"}, "location": "r16"}, {"n": "a1", "t": {"T": 3, "t": "const char"}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "void *"}, "location": "r64"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "v5", "t": {"T": 1, "n": "unsigned __int8", "s": 1}, "location": "s17"}]}