; ; 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 ; sub rsp, 38h ; +0x0, 0x180016e80 cmp cs:dword_1800486A0, 0 ; +0x4, 0x180016e84 jnz loc_180016FAD ; +0xb, 0x180016e8b mov [rsp+38h+arg_0], rbx ; +0x11, 0x180016e91 lea rdx, qword_1800486A8 ; +0x16, 0x180016e96 mov [rsp+38h+arg_10], rsi ; +0x1d, 0x180016e9d mov [rsp+38h+var_8], rdi ; +0x22, 0x180016ea2 test rcx, rcx ; +0x27, 0x180016ea7 jnz short loc_180016EB3 ; +0x2a, 0x180016eaa lea rcx, aMemory; ":memory:" ; +0x2c, 0x180016eac call cs:sqlite3_open ; +0x33, 0x180016eb3 mov rcx, cs:qword_1800486A8 ; +0x39, 0x180016eb9 lea r9, [rsp+38h+arg_8] ; +0x40, 0x180016ec0 xor esi, esi ; +0x45, 0x180016ec5 lea rdx, aCreateTableIfN; "CREATE TABLE IF NOT EXISTS data(key TEX"... ; +0x47, 0x180016ec7 mov edi, eax ; +0x4e, 0x180016ece mov [rsp+38h+var_18], rsi ; +0x50, 0x180016ed0 lea r8d, [rsi-1] ; +0x55, 0x180016ed5 call cs:sqlite3_prepare_v2 ; +0x59, 0x180016ed9 mov rcx, [rsp+38h+arg_8] ; +0x5f, 0x180016edf mov ebx, eax ; +0x64, 0x180016ee4 call cs:sqlite3_step ; +0x66, 0x180016ee6 mov rcx, [rsp+38h+arg_8] ; +0x6c, 0x180016eec or ebx, eax ; +0x71, 0x180016ef1 call cs:sqlite3_finalize ; +0x73, 0x180016ef3 or ebx, eax ; +0x79, 0x180016ef9 jz short loc_180016F0E ; +0x7b, 0x180016efb cmp ebx, 65h ; 'e' ; +0x7d, 0x180016efd jz short loc_180016F0E ; +0x80, 0x180016f00 lea rcx, Format; "Error in CREATE TABLE\n" ; +0x82, 0x180016f02 call sub_1800171C0 ; +0x89, 0x180016f09 mov rcx, cs:qword_1800486A8 ; +0x8e, 0x180016f0e lea r9, qword_1800486B0 ; +0x95, 0x180016f15 mov r8d, 0FFFFFFFFh ; +0x9c, 0x180016f1c mov [rsp+38h+var_18], rsi ; +0xa2, 0x180016f22 lea rdx, aSelectValueFro; "SELECT value FROM data WHERE key=?;" ; +0xa7, 0x180016f27 call cs:sqlite3_prepare_v2 ; +0xae, 0x180016f2e mov rcx, cs:qword_1800486A8 ; +0xb4, 0x180016f34 lea r9, qword_1800486C0 ; +0xbb, 0x180016f3b mov r8d, 0FFFFFFFFh ; +0xc2, 0x180016f42 mov [rsp+38h+var_18], rsi ; +0xc8, 0x180016f48 lea rdx, aReplaceIntoDat; "REPLACE INTO data (key, value) VALUES ("... ; +0xcd, 0x180016f4d or edi, eax ; +0xd4, 0x180016f54 call cs:sqlite3_prepare_v2 ; +0xd6, 0x180016f56 mov rcx, cs:qword_1800486A8 ; +0xdc, 0x180016f5c lea r9, qword_1800486B8 ; +0xe3, 0x180016f63 mov r8d, 0FFFFFFFFh ; +0xea, 0x180016f6a mov [rsp+38h+var_18], rsi ; +0xf0, 0x180016f70 lea rdx, aDeleteFromData; "DELETE FROM data WHERE key=?;" ; +0xf5, 0x180016f75 or edi, eax ; +0xfc, 0x180016f7c call cs:sqlite3_prepare_v2 ; +0xfe, 0x180016f7e mov rsi, [rsp+38h+arg_10] ; +0x104, 0x180016f84 or eax, edi ; +0x109, 0x180016f89 mov rdi, [rsp+38h+var_8] ; +0x10b, 0x180016f8b mov rbx, [rsp+38h+arg_0] ; +0x110, 0x180016f90 jz short loc_180016FA3 ; +0x115, 0x180016f95 lea rcx, aErrorInitializ; "Error initializing DB\n" ; +0x117, 0x180016f97 call sub_1800171C0 ; +0x11e, 0x180016f9e mov cs:dword_1800486A0, 1 ; +0x123, 0x180016fa3 add rsp, 38h ; +0x12d, 0x180016fad retn ; +0x131, 0x180016fb1