// // localStorageInit from 0x180016e80 to 0x180016fb2 (306 bytes) // // 4 xrefs: // > @ 0x18002f074 // > @ 0x18002f084 // > @ 0x18002fdf8 // > @ 0x18004a9c8 // // This function is hookable on this platform! // // Using BromaIDA 8.0.0 @ https://github.com/Stazzical/BromaIDA // Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https://github.com/geode-sdk/bindings // void __fastcall localStorageInit(const char *a1) { int v1; // edi int v2; // ebx int v3; // ebx int v4; // ebx int v5; // edi int v6; // edi __int64 v7; // [rsp+48h] [rbp+10h] BYREF if ( !dword_1800486A0 ) { if ( !a1 ) a1 = ":memory:"; v1 = sqlite3_open(a1, &qword_1800486A8); v2 = sqlite3_prepare_v2( qword_1800486A8, "CREATE TABLE IF NOT EXISTS data(key TEXT PRIMARY KEY,value TEXT);", 0xFFFFFFFFLL, &v7, 0); v3 = sqlite3_step(v7) | v2; v4 = sqlite3_finalize(v7) | v3; if ( v4 && v4 != 101 ) sub_1800171C0("Error in CREATE TABLE\n"); v5 = sqlite3_prepare_v2(qword_1800486A8, "SELECT value FROM data WHERE key=?;", 0xFFFFFFFFLL, &qword_1800486B0, 0) | v1; v6 = sqlite3_prepare_v2( qword_1800486A8, "REPLACE INTO data (key, value) VALUES (?,?);", 0xFFFFFFFFLL, &qword_1800486C0, 0) | v5; if ( v6 | (unsigned int)sqlite3_prepare_v2( qword_1800486A8, "DELETE FROM data WHERE key=?;", 0xFFFFFFFFLL, &qword_1800486B8, 0) ) { sub_1800171C0("Error initializing DB\n"); } dword_1800486A0 = 1; } }