; ; cocos2d::extension::AssetsManager::checkUpdate from 0x180001900 to 0x180001b58 (600 bytes) ; ; 3 xrefs: ; > @ 0x180023538 ; > @ 0x18002fdf8 ; > @ 0x180049090 ; ; 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 ; mov [rsp+arg_8], rbx ; +0x0, 0x180001900 mov [rsp+arg_10], rbp ; +0x5, 0x180001905 push rsi ; +0xa, 0x18000190a push rdi ; +0xb, 0x18000190b push r14 ; +0xc, 0x18000190c sub rsp, 50h ; +0xe, 0x18000190e mov rax, cs:__security_cookie ; +0x12, 0x180001912 xor rax, rsp ; +0x19, 0x180001919 mov [rsp+68h+var_20], rax ; +0x1c, 0x18000191c mov rdi, rcx ; +0x21, 0x180001921 cmp qword ptr [rcx+78h], 0 ; +0x24, 0x180001924 jz loc_180001A41 ; +0x29, 0x180001929 call cs:curl_easy_init ; +0x2f, 0x18000192f mov [rdi+0A8h], rax ; +0x35, 0x180001935 test rax, rax ; +0x3c, 0x18000193c jz loc_180001A41 ; +0x3f, 0x18000193f xor r14d, r14d ; +0x45, 0x180001945 mov [rdi+38h], r14 ; +0x48, 0x180001948 lea rax, [rdi+28h] ; +0x4c, 0x18000194c cmp qword ptr [rdi+40h], 0Fh ; +0x50, 0x180001950 jbe short loc_18000195B ; +0x55, 0x180001955 mov rax, [rdi+28h] ; +0x57, 0x180001957 mov [rax], r14b ; +0x5b, 0x18000195b lea r8, [rdi+68h] ; +0x5e, 0x18000195e cmp qword ptr [r8+18h], 0Fh ; +0x62, 0x180001962 jbe short loc_18000196C ; +0x67, 0x180001967 mov r8, [r8] ; +0x69, 0x180001969 mov edx, 2712h ; +0x6c, 0x18000196c mov rcx, [rdi+0A8h] ; +0x71, 0x180001971 call cs:curl_easy_setopt ; +0x78, 0x180001978 xor r8d, r8d ; +0x7e, 0x18000197e lea edx, [r8+40h] ; +0x81, 0x180001981 mov rcx, [rdi+0A8h] ; +0x85, 0x180001985 call cs:curl_easy_setopt ; +0x8c, 0x18000198c lea r8, sub_180001880 ; +0x92, 0x180001992 mov edx, 4E2Bh ; +0x99, 0x180001999 mov rcx, [rdi+0A8h] ; +0x9e, 0x18000199e call cs:curl_easy_setopt ; +0xa5, 0x1800019a5 lea r8, [rdi+28h] ; +0xab, 0x1800019ab mov edx, 2711h ; +0xaf, 0x1800019af mov rcx, [rdi+0A8h] ; +0xb4, 0x1800019b4 call cs:curl_easy_setopt ; +0xbb, 0x1800019bb mov r8d, [rdi+0C0h] ; +0xc1, 0x1800019c1 test r8d, r8d ; +0xc8, 0x1800019c8 jz short loc_1800019DF ; +0xcb, 0x1800019cb mov edx, 4Eh ; 'N' ; +0xcd, 0x1800019cd mov rcx, [rdi+0A8h] ; +0xd2, 0x1800019d2 call cs:curl_easy_setopt ; +0xd9, 0x1800019d9 mov rcx, [rdi+0A8h] ; +0xdf, 0x1800019df call cs:curl_easy_perform ; +0xe6, 0x1800019e6 test eax, eax ; +0xec, 0x1800019ec jz short loc_180001A66 ; +0xee, 0x1800019ee mov ecx, 10h; Size ; +0xf0, 0x1800019f0 call ??2@YAPEAX_K@Z; operator new(unsigned __int64) ; +0xf5, 0x1800019f5 mov rbx, rax ; +0xfa, 0x1800019fa mov [rsp+68h+var_48], rax ; +0xfd, 0x1800019fd mov [rax+8], r14 ; +0x102, 0x180001a02 mov dword ptr [rax], 3 ; +0x106, 0x180001a06 mov ecx, 10h; Size ; +0x10c, 0x180001a0c call ??2@YAPEAX_K@Z; operator new(unsigned __int64) ; +0x111, 0x180001a11 mov qword ptr [rax], 1 ; +0x116, 0x180001a16 mov [rax+8], rdi ; +0x11d, 0x180001a1d mov [rbx+8], rax ; +0x121, 0x180001a21 mov rdx, rbx ; +0x125, 0x180001a25 mov rcx, [rdi+0B0h] ; +0x128, 0x180001a28 call sub_180002B70 ; +0x12f, 0x180001a2f mov rcx, [rdi+0A8h] ; +0x134, 0x180001a34 call cs:curl_easy_cleanup ; +0x13b, 0x180001a3b xor al, al ; +0x141, 0x180001a41 mov rcx, [rsp+68h+var_20] ; +0x143, 0x180001a43 xor rcx, rsp; StackCookie ; +0x148, 0x180001a48 call __security_check_cookie ; +0x14b, 0x180001a4b mov rbx, [rsp+68h+arg_8] ; +0x150, 0x180001a50 mov rbp, [rsp+68h+arg_10] ; +0x155, 0x180001a55 add rsp, 50h ; +0x15d, 0x180001a5d pop r14 ; +0x161, 0x180001a61 pop rdi ; +0x163, 0x180001a63 pop rsi ; +0x164, 0x180001a64 retn ; +0x165, 0x180001a65 call cs:?sharedUserDefault@CCUserDefault@cocos2d@@SAPEAV12@XZ; cocos2d::CCUserDefault::sharedUserDefault(void) ; +0x166, 0x180001a66 mov rcx, rax ; +0x16c, 0x180001a6c lea r8, aCurrentVersion; "current-version-code" ; +0x16f, 0x180001a6f lea rdx, [rsp+68h+Buf1] ; +0x176, 0x180001a76 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 *) ; +0x17b, 0x180001a7b nop ; +0x181, 0x180001a81 lea rdx, [rdi+28h] ; +0x182, 0x180001a82 cmp qword ptr [rdi+40h], 0Fh ; +0x186, 0x180001a86 jbe short loc_180001A91 ; +0x18b, 0x180001a8b mov rdx, [rdi+28h]; Buf2 ; +0x18d, 0x180001a8d lea rcx, [rsp+68h+Buf1] ; +0x191, 0x180001a91 mov rsi, [rsp+68h+Buf1] ; +0x196, 0x180001a96 mov rbp, [rsp+68h+var_28] ; +0x19b, 0x180001a9b cmp rbp, 0Fh ; +0x1a0, 0x180001aa0 cmova rcx, rsi; Buf1 ; +0x1a4, 0x180001aa4 mov r8, [rsp+68h+Size]; Size ; +0x1a8, 0x180001aa8 cmp r8, [rdi+38h] ; +0x1ad, 0x180001aad jnz short loc_180001B14 ; +0x1b1, 0x180001ab1 call memcmp ; +0x1b3, 0x180001ab3 test eax, eax ; +0x1b8, 0x180001ab8 jnz short loc_180001B14 ; +0x1ba, 0x180001aba lea ecx, [rax+10h]; Size ; +0x1bc, 0x180001abc call ??2@YAPEAX_K@Z; operator new(unsigned __int64) ; +0x1bf, 0x180001abf mov rbx, rax ; +0x1c4, 0x180001ac4 mov [rsp+68h+var_48], rax ; +0x1c7, 0x180001ac7 mov [rax+8], r14 ; +0x1cc, 0x180001acc mov dword ptr [rax], 3 ; +0x1d0, 0x180001ad0 mov ecx, 10h; Size ; +0x1d6, 0x180001ad6 call ??2@YAPEAX_K@Z; operator new(unsigned __int64) ; +0x1db, 0x180001adb mov qword ptr [rax], 2 ; +0x1e0, 0x180001ae0 mov [rax+8], rdi ; +0x1e7, 0x180001ae7 mov [rbx+8], rax ; +0x1eb, 0x180001aeb mov rdx, rbx ; +0x1ef, 0x180001aef mov rcx, [rdi+0B0h] ; +0x1f2, 0x180001af2 call sub_180002B70 ; +0x1f9, 0x180001af9 mov rcx, rdi; this ; +0x1fe, 0x180001afe call ?setSearchPath@AssetsManager@extension@cocos2d@@IEAAXXZ; cocos2d::extension::AssetsManager::setSearchPath(void) ; +0x201, 0x180001b01 xor bl, bl ; +0x206, 0x180001b06 mov rbp, [rsp+68h+var_28] ; +0x208, 0x180001b08 mov rsi, [rsp+68h+Buf1] ; +0x20d, 0x180001b0d jmp short loc_180001B16 ; +0x212, 0x180001b12 mov bl, 1 ; +0x214, 0x180001b14 cmp rbp, 0Fh ; +0x216, 0x180001b16 jbe short loc_180001B50 ; +0x21a, 0x180001b1a lea rdx, [rbp+1] ; +0x21c, 0x180001b1c mov rax, rsi ; +0x220, 0x180001b20 cmp rdx, 1000h ; +0x223, 0x180001b23 jb short loc_180001B48 ; +0x22a, 0x180001b2a add rdx, 27h ; ''' ; +0x22c, 0x180001b2c mov rsi, [rsi-8] ; +0x230, 0x180001b30 sub rax, rsi ; +0x234, 0x180001b34 add rax, 0FFFFFFFFFFFFFFF8h ; +0x237, 0x180001b37 cmp rax, 1Fh ; +0x23b, 0x180001b3b jbe short loc_180001B48 ; +0x23f, 0x180001b3f call cs:_invalid_parameter_noinfo_noreturn ; +0x241, 0x180001b41 align 8 ; +0x247, 0x180001b47 mov rcx, rsi; Block ; +0x248, 0x180001b48 call j_j_free ; +0x24b, 0x180001b4b movzx eax, bl ; +0x250, 0x180001b50 jmp loc_180001A43 ; +0x253, 0x180001b53