{"name": "read_chars", "code": "_BOOL8 __fastcall read_chars ( __int64 @@a1@@ , FILE * @@a2@@ , size_t @@a3@@ ) { __int64 @@v5@@ [ Number ] ; size_t @@v6@@ ; void * @@ptr@@ ; size_t @@n@@ ; luaL_buffinit ( @@a1@@ , @@v5@@ ) ; @@n@@ = Number ; do { @@ptr@@ = ( void * ) luaL_prepbuffer ( @@v5@@ ) ; if ( @@n@@ > @@a3@@ ) @@n@@ = @@a3@@ ; @@v6@@ = fread ( @@ptr@@ , Number , @@n@@ , @@a2@@ ) ; @@v5@@ [ Number ] += @@v6@@ ; @@a3@@ -= @@v6@@ ; } while ( @@a3@@ && @@v6@@ == @@n@@ ) ; luaL_pushresult ( @@v5@@ ) ; return ! @@a3@@ || lua_objlen ( @@a1@@ , Number ) ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "size_t", "s": 8}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "FILE"}, "location": "r64"}, {"n": "ptr", "t": {"T": 3, "t": "void"}, "location": "s16"}, {"n": "v6", "t": {"T": 1, "n": "size_t", "s": 8}, "location": "s24"}, {"n": "n", "t": {"T": 1, "n": "size_t", "s": 8}, "location": "s8"}, {"n": "v5", "t": {"T": 2, "n": 1027, "s": 8, "t": "__int64"}, "location": "s8240"}]}
{"name": "pushresult", "code": "__int64 __fastcall pushresult ( __int64 @@a1@@ , int @@a2@@ , const char * @@a3@@ ) { __int64 result ; char * v4 ; int @@errnum@@ ; @@errnum@@ = * _errno_location ( ) ; if ( @@a2@@ ) { lua_pushboolean ( @@a1@@ , Number L ) ; result = Number L ; } else { lua_pushnil ( @@a1@@ ) ; v4 = strerror ( @@errnum@@ ) ; if ( @@a3@@ ) lua_pushfstring ( @@a1@@ , String , @@a3@@ , v4 ) ; else lua_pushfstring ( @@a1@@ , String , v4 ) ; lua_pushinteger ( @@a1@@ , @@errnum@@ ) ; result = Number L ; } return result ; }", "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": "int", "s": 4}, "location": "r64"}, {"n": "errnum", "t": {"T": 1, "n": "int", "s": 4}, "location": "s4"}]} {"name": "g_read", "code": "__int64 __fastcall g_read ( __int64 @@a1@@ , FILE * @@a2@@ , unsigned int @@a3@@ ) { _BOOL4 v3 ; int v4 ; int v6 ; size_t @@v8@@ ; _BYTE * @@v9@@ ; unsigned int @@i@@ ; int @@v11@@ ; int @@v12@@ ; @@v12@@ = lua_gettop ( @@a1@@ ) - Number ; clearerr ( @@a2@@ ) ; if ( @@v12@@ ) { luaL_checkstack ( @@a1@@ , ( unsigned int ) ( @@v12@@ + Number ) , String ) ; @@v11@@ = Number ; for ( @@i@@ = @@a3@@ ; ; ++ @@i@@ ) { v6 = @@v12@@ -- ; if ( ! v6 || ! @@v11@@ ) break ; if ( ( unsigned int ) lua_type ( @@a1@@ , @@i@@ ) == Number ) { @@v8@@ = lua_tointeger ( @@a1@@ , @@i@@ ) ; if ( @@v8@@ ) v3 = read_chars ( @@a1@@ , @@a2@@ , @@v8@@ ) ; else v3 = test_eof ( @@a1@@ , @@a2@@ ) ; @@v11@@ = v3 ; } else { @@v9@@ = ( _BYTE * ) lua_tolstring ( @@a1@@ , @@i@@ , Number L ) ; if ( ! @@v9@@ || * @@v9@@ != Number ) luaL_argerror ( @@a1@@ , @@i@@ , String ) ; v4 = ( char ) @@v9@@ [ Number ] ; if ( v4 == Number ) { @@v11@@ = read_number ( @@a1@@ , ( __int64 ) @@a2@@ ) ; } else { if ( v4 > Number ) return luaL_argerror ( @@a1@@ , @@i@@ , String ) ; if ( v4 == Number ) { read_chars ( @@a1@@ , @@a2@@ , Number ) ; @@v11@@ = Number ; } else { if ( v4 != Number ) return luaL_argerror ( @@a1@@ , @@i@@ , String ) ; @@v11@@ = read_line ( @@a1@@ , @@a2@@ ) ; } } } } } else { @@v11@@ = read_line ( @@a1@@ , @@a2@@ ) ; @@i@@ = @@a3@@ + Number ; } if ( ferror ( @@a2@@ ) ) return pushresult ( @@a1@@ , Number , Number L ) ; if ( ! @@v11@@ ) { lua_settop ( @@a1@@ , Number L ) ; lua_pushnil ( @@a1@@ ) ; } return @@i@@ - @@a3@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "FILE"}, "location": "r64"}, {"n": "i", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s12"}, {"n": "v9", "t": {"T": 3, "t": "_BYTE"}, "location": "s24"}, {"n": "v8", "t": {"T": 1, "n": "size_t", "s": 8}, "location": "s32"}, {"n": "v12", "t": {"T": 1, "n": "int", "s": 4}, "location": "s4"}, {"n": "v11", "t": {"T": 1, "n": "int", "s": 4}, "location": "s8"}]}