; ; cocos2d::extension::AssetsManager::downLoad from 0x180002510 to 0x180002824 (788 bytes) ; ; 3 xrefs: ; > sub_180001B60 @ 0x180001baf ; > @ 0x18002fdf8 ; > @ 0x180049144 ; ; 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, 0x180002510 mov [rsp+arg_10], rbp ; +0x5, 0x180002515 push rsi ; +0xa, 0x18000251a push rdi ; +0xb, 0x18000251b push r12 ; +0xc, 0x18000251c push r14 ; +0xe, 0x18000251e push r15 ; +0x10, 0x180002520 sub rsp, 50h ; +0x12, 0x180002522 mov rax, cs:__security_cookie ; +0x16, 0x180002526 xor rax, rsp ; +0x1d, 0x18000252d mov [rsp+78h+var_30], rax ; +0x20, 0x180002530 mov rsi, rcx ; +0x25, 0x180002535 xor r12d, r12d ; +0x28, 0x180002538 lea r14, [rcx+8] ; +0x2b, 0x18000253b mov rbp, [r14+10h] ; +0x2f, 0x18000253f mov rcx, 7FFFFFFFFFFFFFFFh ; +0x33, 0x180002543 mov rax, rcx ; +0x3d, 0x18000254d sub rax, rbp ; +0x40, 0x180002550 cmp rax, 20h ; ' ' ; +0x43, 0x180002553 jb loc_180002818 ; +0x47, 0x180002557 cmp qword ptr [r14+18h], 0Fh ; +0x4d, 0x18000255d jbe short loc_180002567 ; +0x52, 0x180002562 mov r14, [r14] ; +0x54, 0x180002564 xorps xmm0, xmm0 ; +0x57, 0x180002567 movups xmmword ptr [rsp+78h+FileName], xmm0 ; +0x5a, 0x18000256a mov [rsp+78h+var_40], r12 ; +0x5f, 0x18000256f mov [rsp+78h+var_38], r12 ; +0x64, 0x180002574 lea r15, [rbp+20h] ; +0x69, 0x180002579 mov ebx, 0Fh ; +0x6d, 0x18000257d lea rdi, [rsp+78h+FileName] ; +0x72, 0x180002582 cmp r15, rbx ; +0x77, 0x180002587 jbe short loc_180002607 ; +0x7a, 0x18000258a mov rbx, r15 ; +0x7c, 0x18000258c or rbx, 0Fh ; +0x7f, 0x18000258f cmp rbx, rcx ; +0x83, 0x180002593 jbe short loc_1800025C8 ; +0x86, 0x180002596 mov rbx, rcx ; +0x88, 0x180002598 mov rax, 8000000000000000h ; +0x8b, 0x18000259b add rax, 27h ; ''' ; +0x95, 0x1800025a5 mov rcx, rax; Size ; +0x99, 0x1800025a9 call ??2@YAPEAX_K@Z; operator new(unsigned __int64) ; +0x9c, 0x1800025ac test rax, rax ; +0xa1, 0x1800025b1 jz loc_1800027E3 ; +0xa4, 0x1800025b4 lea rdi, [rax+27h] ; +0xaa, 0x1800025ba and rdi, 0FFFFFFFFFFFFFFE0h ; +0xae, 0x1800025be mov [rdi-8], rax ; +0xb2, 0x1800025c2 jmp short loc_180002602 ; +0xb6, 0x1800025c6 mov eax, 16h ; +0xb8, 0x1800025c8 cmp rbx, rax ; +0xbd, 0x1800025cd cmovb rbx, rax ; +0xc0, 0x1800025d0 lea rcx, [rbx+1]; Size ; +0xc4, 0x1800025d4 cmp rcx, 1000h ; +0xc8, 0x1800025d8 jb short loc_1800025F0 ; +0xcf, 0x1800025df lea rax, [rcx+27h] ; +0xd1, 0x1800025e1 cmp rax, rcx ; +0xd5, 0x1800025e5 jbe loc_18000281E ; +0xd8, 0x1800025e8 jmp short loc_1800025A9 ; +0xde, 0x1800025ee test rcx, rcx ; +0xe0, 0x1800025f0 jz short loc_1800025FF ; +0xe3, 0x1800025f3 call ??2@YAPEAX_K@Z; operator new(unsigned __int64) ; +0xe5, 0x1800025f5 mov rdi, rax ; +0xea, 0x1800025fa jmp short loc_180002602 ; +0xed, 0x1800025fd mov rdi, r12 ; +0xef, 0x1800025ff mov [rsp+78h+FileName], rdi ; +0xf2, 0x180002602 mov [rsp+78h+var_40], r15 ; +0xf7, 0x180002607 mov [rsp+78h+var_38], rbx ; +0xfc, 0x18000260c mov r8, rbp; Size ; +0x101, 0x180002611 mov rdx, r14; Src ; +0x104, 0x180002614 mov rcx, rdi; void * ; +0x107, 0x180002617 call memcpy ; +0x10a, 0x18000261a movups xmm0, cs:xmmword_1800233C8 ; +0x10f, 0x18000261f movups xmmword ptr [rdi+rbp], xmm0 ; +0x116, 0x180002626 movups xmm1, cs:xmmword_1800233D8 ; +0x11a, 0x18000262a movups xmmword ptr [rdi+rbp+10h], xmm1 ; +0x121, 0x180002631 mov [rdi+r15], r12b ; +0x126, 0x180002636 lea rcx, [rsp+78h+FileName] ; +0x12a, 0x18000263a cmp [rsp+78h+var_38], 0Fh ; +0x12f, 0x18000263f cmova rcx, [rsp+78h+FileName]; FileName ; +0x135, 0x180002645 lea rdx, Mode; "wb" ; +0x13b, 0x18000264b call cs:fopen ; +0x142, 0x180002652 mov rdi, rax ; +0x148, 0x180002658 test rax, rax ; +0x14b, 0x18000265b jnz short loc_1800026A3 ; +0x14e, 0x18000265e lea ecx, [rax+10h]; Size ; +0x150, 0x180002660 call ??2@YAPEAX_K@Z; operator new(unsigned __int64) ; +0x153, 0x180002663 mov rbx, rax ; +0x158, 0x180002668 mov [rsp+78h+var_58], rax ; +0x15b, 0x18000266b mov [rax+8], r12 ; +0x160, 0x180002670 mov dword ptr [rax], 3 ; +0x164, 0x180002674 lea ecx, [rdi+10h]; Size ; +0x16a, 0x18000267a call ??2@YAPEAX_K@Z; operator new(unsigned __int64) ; +0x16d, 0x18000267d mov [rax], r12 ; +0x172, 0x180002682 mov [rax+8], rsi ; +0x175, 0x180002685 mov [rbx+8], rax ; +0x179, 0x180002689 mov rdx, rbx ; +0x17d, 0x18000268d mov rcx, [rsi+0B0h] ; +0x180, 0x180002690 call sub_180002B70 ; +0x187, 0x180002697 xor bl, bl ; +0x18c, 0x18000269c jmp loc_1800027AF ; +0x18e, 0x18000269e lea r8, [rsi+48h] ; +0x193, 0x1800026a3 cmp qword ptr [r8+18h], 0Fh ; +0x197, 0x1800026a7 jbe short loc_1800026B1 ; +0x19c, 0x1800026ac mov r8, [r8] ; +0x19e, 0x1800026ae mov edx, 2712h ; +0x1a1, 0x1800026b1 mov rcx, [rsi+0A8h] ; +0x1a6, 0x1800026b6 call cs:curl_easy_setopt ; +0x1ad, 0x1800026bd lea r8, fwrite ; +0x1b3, 0x1800026c3 mov edx, 4E2Bh ; +0x1ba, 0x1800026ca mov rcx, [rsi+0A8h] ; +0x1bf, 0x1800026cf call cs:curl_easy_setopt ; +0x1c6, 0x1800026d6 mov r8, rdi ; +0x1cc, 0x1800026dc mov edx, 2711h ; +0x1cf, 0x1800026df mov rcx, [rsi+0A8h] ; +0x1d4, 0x1800026e4 call cs:curl_easy_setopt ; +0x1db, 0x1800026eb xor r8d, r8d ; +0x1e1, 0x1800026f1 lea edx, [r8+2Bh] ; +0x1e4, 0x1800026f4 mov rcx, [rsi+0A8h] ; +0x1e8, 0x1800026f8 call cs:curl_easy_setopt ; +0x1ef, 0x1800026ff lea r8, sub_180002480 ; +0x1f5, 0x180002705 mov edx, 4E58h ; +0x1fc, 0x18000270c mov rcx, [rsi+0A8h] ; +0x201, 0x180002711 call cs:curl_easy_setopt ; +0x208, 0x180002718 mov r8, rsi ; +0x20e, 0x18000271e mov edx, 2749h ; +0x211, 0x180002721 mov rcx, [rsi+0A8h] ; +0x216, 0x180002726 call cs:curl_easy_setopt ; +0x21d, 0x18000272d mov rcx, [rsi+0A8h] ; +0x223, 0x180002733 call cs:curl_easy_perform ; +0x22a, 0x18000273a mov ebx, eax ; +0x230, 0x180002740 mov rcx, [rsi+0A8h] ; +0x232, 0x180002742 call cs:curl_easy_cleanup ; +0x239, 0x180002749 test ebx, ebx ; +0x23f, 0x18000274f jz short loc_1800027A4 ; +0x241, 0x180002751 mov ecx, 10h; Size ; +0x243, 0x180002753 call ??2@YAPEAX_K@Z; operator new(unsigned __int64) ; +0x248, 0x180002758 mov rbx, rax ; +0x24d, 0x18000275d mov [rsp+78h+var_58], rax ; +0x250, 0x180002760 mov [rax+8], r12 ; +0x255, 0x180002765 mov dword ptr [rax], 3 ; +0x259, 0x180002769 mov ecx, 10h; Size ; +0x25f, 0x18000276f call ??2@YAPEAX_K@Z; operator new(unsigned __int64) ; +0x264, 0x180002774 mov qword ptr [rax], 1 ; +0x269, 0x180002779 mov [rax+8], rsi ; +0x270, 0x180002780 mov [rbx+8], rax ; +0x274, 0x180002784 mov rdx, rbx ; +0x278, 0x180002788 mov rcx, [rsi+0B0h] ; +0x27b, 0x18000278b call sub_180002B70 ; +0x282, 0x180002792 mov rcx, rdi; Stream ; +0x287, 0x180002797 call cs:fclose ; +0x28a, 0x18000279a xor bl, bl ; +0x290, 0x1800027a0 jmp short loc_1800027AF ; +0x292, 0x1800027a2 mov rcx, rdi; Stream ; +0x294, 0x1800027a4 call cs:fclose ; +0x297, 0x1800027a7 mov bl, 1 ; +0x29d, 0x1800027ad mov rdx, [rsp+78h+var_38] ; +0x29f, 0x1800027af cmp rdx, 0Fh ; +0x2a4, 0x1800027b4 jbe short loc_1800027EF ; +0x2a8, 0x1800027b8 inc rdx ; +0x2aa, 0x1800027ba mov rcx, [rsp+78h+FileName]; Block ; +0x2ad, 0x1800027bd mov rax, rcx ; +0x2b2, 0x1800027c2 cmp rdx, 1000h ; +0x2b5, 0x1800027c5 jb short loc_1800027EA ; +0x2bc, 0x1800027cc add rdx, 27h ; ''' ; +0x2be, 0x1800027ce mov rcx, [rcx-8] ; +0x2c2, 0x1800027d2 sub rax, rcx ; +0x2c6, 0x1800027d6 add rax, 0FFFFFFFFFFFFFFF8h ; +0x2c9, 0x1800027d9 cmp rax, 1Fh ; +0x2cd, 0x1800027dd jbe short loc_1800027EA ; +0x2d1, 0x1800027e1 call cs:_invalid_parameter_noinfo_noreturn ; +0x2d3, 0x1800027e3 align 2 ; +0x2d9, 0x1800027e9 call j_j_free ; +0x2da, 0x1800027ea movzx eax, bl ; +0x2df, 0x1800027ef mov rcx, [rsp+78h+var_30] ; +0x2e2, 0x1800027f2 xor rcx, rsp; StackCookie ; +0x2e7, 0x1800027f7 call __security_check_cookie ; +0x2ea, 0x1800027fa lea r11, [rsp+78h+var_28] ; +0x2ef, 0x1800027ff mov rbx, [r11+38h] ; +0x2f4, 0x180002804 mov rbp, [r11+40h] ; +0x2f8, 0x180002808 mov rsp, r11 ; +0x2fc, 0x18000280c pop r15 ; +0x2ff, 0x18000280f pop r14 ; +0x301, 0x180002811 pop r12 ; +0x303, 0x180002813 pop rdi ; +0x305, 0x180002815 pop rsi ; +0x306, 0x180002816 retn ; +0x307, 0x180002817 call sub_180003D90 ; +0x308, 0x180002818 align 2 ; +0x30d, 0x18000281d call ?cancel_current_task@Concurrency@@YAXXZ; Concurrency::cancel_current_task(void) ; +0x30e, 0x18000281e db 0CCh ; +0x313, 0x180002823