; ; cocos2d::extension::AssetsManager::update from 0x180001c90 to 0x180001eb7 (551 bytes) ; ; 5 xrefs: ; > @ 0x180023540 ; > @ 0x18002cf18 ; > @ 0x18002cf70 ; > @ 0x18002fdf8 ; > @ 0x1800490c0 ; ; 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 ; push rsi ; +0x0, 0x180001c90 sub rsp, 50h ; +0x2, 0x180001c92 mov rax, cs:__security_cookie ; +0x6, 0x180001c96 xor rax, rsp ; +0xd, 0x180001c9d mov [rsp+58h+var_18], rax ; +0x10, 0x180001ca0 cmp qword ptr [rcx+0B8h], 0 ; +0x15, 0x180001ca5 mov rsi, rcx ; +0x1d, 0x180001cad jnz loc_180001EA4 ; +0x20, 0x180001cb0 cmp qword ptr [rcx+78h], 0 ; +0x26, 0x180001cb6 jz loc_180001EA4 ; +0x2b, 0x180001cbb cmp qword ptr [rcx+58h], 0 ; +0x31, 0x180001cc1 jz loc_180001EA4 ; +0x36, 0x180001cc6 cmp qword ptr [rcx+60h], 0Fh ; +0x3c, 0x180001ccc mov [rsp+58h+arg_8], rbx ; +0x41, 0x180001cd1 lea rbx, [rcx+48h] ; +0x46, 0x180001cd6 jbe short loc_180001CE0 ; +0x4a, 0x180001cda mov rbx, [rcx+48h] ; +0x4c, 0x180001cdc mov rcx, [rcx+58h] ; +0x50, 0x180001ce0 cmp rcx, 4 ; +0x54, 0x180001ce4 jb loc_180001E9F ; +0x58, 0x180001ce8 mov [rsp+58h+arg_18], rdi ; +0x5e, 0x180001cee mov edx, 2Eh ; '.'; Val ; +0x63, 0x180001cf3 lea rdi, [rcx+rbx] ; +0x68, 0x180001cf8 mov rcx, rbx; Buf ; +0x6c, 0x180001cfc lea r8, [rdi-3] ; +0x6f, 0x180001cff sub r8, rbx; MaxCount ; +0x73, 0x180001d03 call memchr ; +0x76, 0x180001d06 mov r9, rax ; +0x7b, 0x180001d0b test rax, rax ; +0x7e, 0x180001d0e jz loc_180001E9A ; +0x81, 0x180001d11 mov [rsp+58h+arg_10], rbp ; +0x87, 0x180001d17 lea rbp, aZip; ".zip" ; +0x8c, 0x180001d1c nop dword ptr [rax+00h] ; +0x93, 0x180001d23 nop word ptr [rax+rax+00000000h] ; +0x97, 0x180001d27 xor ecx, ecx ; +0xa0, 0x180001d30 movzx eax, byte ptr [r9+rcx] ; +0xa2, 0x180001d32 inc rcx ; +0xa7, 0x180001d37 cmp al, [rcx+rbp-1] ; +0xaa, 0x180001d3a jnz short loc_180001D4A ; +0xae, 0x180001d3e cmp rcx, 4 ; +0xb0, 0x180001d40 jnz short loc_180001D32 ; +0xb4, 0x180001d44 xor eax, eax ; +0xb6, 0x180001d46 jmp short loc_180001D4F ; +0xb8, 0x180001d48 sbb eax, eax ; +0xba, 0x180001d4a or eax, 1 ; +0xbc, 0x180001d4c test eax, eax ; +0xbf, 0x180001d4f jz short loc_180001D77 ; +0xc1, 0x180001d51 inc r9 ; +0xc3, 0x180001d53 lea r8, [rdi-3] ; +0xc6, 0x180001d56 sub r8, r9; MaxCount ; +0xca, 0x180001d5a mov rcx, r9; Buf ; +0xcd, 0x180001d5d mov edx, 2Eh ; '.'; Val ; +0xd0, 0x180001d60 call memchr ; +0xd5, 0x180001d65 mov r9, rax ; +0xda, 0x180001d6a test rax, rax ; +0xdd, 0x180001d6d jnz short loc_180001D30 ; +0xe0, 0x180001d70 jmp loc_180001E95 ; +0xe2, 0x180001d72 sub r9, rbx ; +0xe7, 0x180001d77 cmp r9, 0FFFFFFFFFFFFFFFFh ; +0xea, 0x180001d7a jz loc_180001E95 ; +0xee, 0x180001d7e mov rax, [rsi] ; +0xf4, 0x180001d84 mov rcx, rsi ; +0xf7, 0x180001d87 call qword ptr [rax+8] ; +0xfa, 0x180001d8a test al, al ; +0xfd, 0x180001d8d jz loc_180001E95 ; +0xff, 0x180001d8f call cs:?sharedUserDefault@CCUserDefault@cocos2d@@SAPEAV12@XZ; cocos2d::CCUserDefault::sharedUserDefault(void) ; +0x105, 0x180001d95 mov rcx, rax ; +0x10b, 0x180001d9b lea r8, aDownloadedVers; "downloaded-version-code" ; +0x10e, 0x180001d9e lea rdx, [rsp+58h+Block] ; +0x115, 0x180001da5 call cs:?getStringForKey@CCUserDefault@cocos2d@@QEAA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEBD@Z; cocos2d::CCUserDefault::getStringForKey(char const *) ; +0x11a, 0x180001daa lea rbx, [rsi+88h] ; +0x120, 0x180001db0 mov rdi, rax ; +0x127, 0x180001db7 cmp rbx, rax ; +0x12a, 0x180001dba jz short loc_180001E29 ; +0x12d, 0x180001dbd mov rdx, [rbx+18h] ; +0x12f, 0x180001dbf cmp rdx, 0Fh ; +0x133, 0x180001dc3 jbe short loc_180001DF5 ; +0x137, 0x180001dc7 mov rcx, [rbx] ; +0x139, 0x180001dc9 inc rdx ; +0x13c, 0x180001dcc cmp rdx, 1000h ; +0x13f, 0x180001dcf jb short loc_180001DF0 ; +0x146, 0x180001dd6 mov r8, [rcx-8] ; +0x148, 0x180001dd8 add rdx, 27h ; ''' ; +0x14c, 0x180001ddc sub rcx, r8 ; +0x150, 0x180001de0 lea rax, [rcx-8] ; +0x153, 0x180001de3 cmp rax, 1Fh ; +0x157, 0x180001de7 ja short loc_180001E5D ; +0x15b, 0x180001deb mov rcx, r8; Block ; +0x15d, 0x180001ded call j_j_free ; +0x160, 0x180001df0 mov qword ptr [rbx+10h], 0 ; +0x165, 0x180001df5 mov qword ptr [rbx+18h], 0Fh ; +0x16d, 0x180001dfd mov byte ptr [rbx], 0 ; +0x175, 0x180001e05 movups xmm0, xmmword ptr [rdi] ; +0x178, 0x180001e08 movups xmmword ptr [rbx], xmm0 ; +0x17b, 0x180001e0b movups xmm1, xmmword ptr [rdi+10h] ; +0x17e, 0x180001e0e movups xmmword ptr [rbx+10h], xmm1 ; +0x182, 0x180001e12 mov qword ptr [rdi+10h], 0 ; +0x186, 0x180001e16 mov qword ptr [rdi+18h], 0Fh ; +0x18e, 0x180001e1e mov byte ptr [rdi], 0 ; +0x196, 0x180001e26 mov rdx, [rsp+58h+var_20] ; +0x199, 0x180001e29 cmp rdx, 0Fh ; +0x19e, 0x180001e2e jbe short loc_180001E69 ; +0x1a2, 0x180001e32 mov rcx, [rsp+58h+Block]; Block ; +0x1a4, 0x180001e34 inc rdx ; +0x1a9, 0x180001e39 mov rax, rcx ; +0x1ac, 0x180001e3c cmp rdx, 1000h ; +0x1af, 0x180001e3f jb short loc_180001E64 ; +0x1b6, 0x180001e46 mov rcx, [rcx-8] ; +0x1b8, 0x180001e48 add rdx, 27h ; ''' ; +0x1bc, 0x180001e4c sub rax, rcx ; +0x1c0, 0x180001e50 add rax, 0FFFFFFFFFFFFFFF8h ; +0x1c3, 0x180001e53 cmp rax, 1Fh ; +0x1c7, 0x180001e57 jbe short loc_180001E64 ; +0x1cb, 0x180001e5b call cs:_invalid_parameter_noinfo_noreturn ; +0x1cd, 0x180001e5d align 4 ; +0x1d3, 0x180001e63 call j_j_free ; +0x1d4, 0x180001e64 mov ecx, 10h; Size ; +0x1d9, 0x180001e69 call ??2@YAPEAX_K@Z; operator new(unsigned __int64) ; +0x1de, 0x180001e6e xorps xmm0, xmm0 ; +0x1e3, 0x180001e73 lea r8, sub_180001B60 ; +0x1e6, 0x180001e76 mov r9, rsi ; +0x1ed, 0x180001e7d xor edx, edx ; +0x1f0, 0x180001e80 mov rcx, rax ; +0x1f2, 0x180001e82 movups xmmword ptr [rax], xmm0 ; +0x1f5, 0x180001e85 mov [rsi+0B8h], rax ; +0x1f8, 0x180001e88 call cs:pthread_create ; +0x1ff, 0x180001e8f mov rbp, [rsp+58h+arg_10] ; +0x205, 0x180001e95 mov rdi, [rsp+58h+arg_18] ; +0x20a, 0x180001e9a mov rbx, [rsp+58h+arg_8] ; +0x20f, 0x180001e9f mov rcx, [rsp+58h+var_18] ; +0x214, 0x180001ea4 xor rcx, rsp; StackCookie ; +0x219, 0x180001ea9 call __security_check_cookie ; +0x21c, 0x180001eac add rsp, 50h ; +0x221, 0x180001eb1 pop rsi ; +0x225, 0x180001eb5 retn ; +0x226, 0x180001eb6