; ; cocos2d::extension::CCControl::sendActionsForControlEvents from 0x1800043e0 to 0x1800045ba (474 bytes) ; ; 12 xrefs: ; > @ 0x180023b20 ; > @ 0x180024120 ; > @ 0x180024690 ; > @ 0x180024d98 ; > @ 0x180025348 ; > @ 0x180025930 ; > @ 0x180025ee0 ; > @ 0x1800264b0 ; > @ 0x180026ad8 ; > @ 0x180027f68 ; > @ 0x18002fdf8 ; > @ 0x1800493f0 ; ; 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_10], rbx ; +0x0, 0x1800043e0 mov [rsp+arg_18], rbp ; +0x5, 0x1800043e5 push rsi ; +0xa, 0x1800043ea push rdi ; +0xb, 0x1800043eb push r12 ; +0xc, 0x1800043ec push r14 ; +0xe, 0x1800043ee push r15 ; +0x10, 0x1800043f0 sub rsp, 50h ; +0x12, 0x1800043f2 mov rax, cs:__security_cookie ; +0x16, 0x1800043f6 xor rax, rsp ; +0x1d, 0x1800043fd mov [rsp+78h+var_38], rax ; +0x20, 0x180004400 mov r15d, edx ; +0x25, 0x180004405 mov rsi, rcx ; +0x28, 0x180004408 xor r12d, r12d ; +0x2b, 0x18000440b mov r14d, r12d ; +0x2e, 0x18000440e mov ecx, r14d ; +0x31, 0x180004411 mov ebp, 1 ; +0x34, 0x180004414 shl ebp, cl ; +0x39, 0x180004419 test r15d, ebp ; +0x3b, 0x18000441b jz loc_180004580 ; +0x3e, 0x18000441e movsxd rdx, ebp ; +0x44, 0x180004424 mov rcx, [rsi+1C0h] ; +0x47, 0x180004427 call cs:?objectForKey@CCDictionary@cocos2d@@QEAAPEAVCCObject@2@_J@Z; cocos2d::CCDictionary::objectForKey(__int64) ; +0x4e, 0x18000442e mov rbx, rax ; +0x54, 0x180004434 test rax, rax ; +0x57, 0x180004437 jnz short loc_18000445B ; +0x5a, 0x18000443a lea ecx, [rax+1] ; +0x5c, 0x18000443c call cs:?createWithCapacity@CCArray@cocos2d@@SAPEAV12@I@Z; cocos2d::CCArray::createWithCapacity(uint) ; +0x5f, 0x18000443f mov rbx, rax ; +0x65, 0x180004445 mov r8d, ebp ; +0x68, 0x180004448 mov rdx, rax ; +0x6b, 0x18000444b mov rcx, [rsi+1C0h] ; +0x6e, 0x18000444e call cs:?setObject@CCDictionary@cocos2d@@QEAAXPEAVCCObject@2@_J@Z; cocos2d::CCDictionary::setObject(cocos2d::CCObject *,__int64) ; +0x75, 0x180004455 test rbx, rbx ; +0x7b, 0x18000445b jz short loc_1800044AC ; +0x7e, 0x18000445e mov rbx, [rbx+38h] ; +0x80, 0x180004460 mov eax, [rbx] ; +0x84, 0x180004464 test eax, eax ; +0x86, 0x180004466 jz short loc_1800044AC ; +0x88, 0x180004468 mov rbx, [rbx+10h] ; +0x8a, 0x18000446a lea rdi, [rax-1] ; +0x8e, 0x18000446e lea rdi, [rbx+rdi*8] ; +0x92, 0x180004472 cmp rbx, rdi ; +0x96, 0x180004476 ja short loc_1800044AC ; +0x99, 0x180004479 nop dword ptr [rax+rax+00h] ; +0x9b, 0x18000447b mov r8, [rbx] ; +0xa0, 0x180004480 test r8, r8 ; +0xa3, 0x180004483 jz short loc_1800044AC ; +0xa6, 0x180004486 mov rcx, [r8+40h] ; +0xa8, 0x180004488 test rcx, rcx ; +0xac, 0x18000448c jz short loc_1800044A3 ; +0xaf, 0x18000448f mov rax, [r8+38h] ; +0xb1, 0x180004491 test rax, rax ; +0xb5, 0x180004495 jz short loc_1800044A3 ; +0xb8, 0x180004498 mov r8d, [r8+48h] ; +0xba, 0x18000449a mov rdx, rsi ; +0xbe, 0x18000449e call rax ; +0xc1, 0x1800044a1 add rbx, 8 ; +0xc3, 0x1800044a3 cmp rbx, rdi ; +0xc7, 0x1800044a7 jbe short loc_180004480 ; +0xca, 0x1800044aa cmp dword ptr [rsi+12Ch], 0 ; +0xcc, 0x1800044ac jz loc_180004580 ; +0xd3, 0x1800044b3 mov edx, r15d; unsigned int ; +0xd9, 0x1800044b9 mov rcx, rsi; this ; +0xdc, 0x1800044bc call ?getHandleOfControlEvent@CCControl@extension@cocos2d@@AEAAHI@Z; cocos2d::extension::CCControl::getHandleOfControlEvent(uint) ; +0xdf, 0x1800044bf mov ebx, eax ; +0xe4, 0x1800044c4 cmp eax, 0FFFFFFFFh ; +0xe6, 0x1800044c6 jz loc_180004580 ; +0xe9, 0x1800044c9 mov ecx, 3 ; +0xef, 0x1800044cf call cs:?createWithCapacity@CCArray@cocos2d@@SAPEAV12@I@Z; cocos2d::CCArray::createWithCapacity(uint) ; +0xf4, 0x1800044d4 mov rdi, rax ; +0xfa, 0x1800044da xorps xmm0, xmm0 ; +0xfd, 0x1800044dd movups [rsp+78h+var_58], xmm0 ; +0x100, 0x1800044e0 mov [rsp+78h+var_48], r12 ; +0x105, 0x1800044e5 mov [rsp+78h+var_40], 0Fh ; +0x10a, 0x1800044ea mov byte ptr [rsp+78h+var_58], 0 ; +0x113, 0x1800044f3 lea rcx, [rsp+78h+var_58] ; +0x118, 0x1800044f8 call cs:?create@CCString@cocos2d@@SAPEAV12@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z; cocos2d::CCString::create(std::string const &) ; +0x11d, 0x1800044fd mov rdx, rax ; +0x123, 0x180004503 mov rcx, rdi ; +0x126, 0x180004506 call cs:?addObject@CCArray@cocos2d@@QEAAXPEAVCCObject@2@@Z; cocos2d::CCArray::addObject(cocos2d::CCObject *) ; +0x129, 0x180004509 nop ; +0x12f, 0x18000450f mov rdx, [rsp+78h+var_40] ; +0x130, 0x180004510 cmp rdx, 0Fh ; +0x135, 0x180004515 jbe short loc_180004549 ; +0x139, 0x180004519 inc rdx ; +0x13b, 0x18000451b mov rcx, qword ptr [rsp+78h+var_58] ; +0x13e, 0x18000451e mov rax, rcx ; +0x143, 0x180004523 cmp rdx, 1000h ; +0x146, 0x180004526 jb short loc_180004544 ; +0x14d, 0x18000452d add rdx, 27h ; ''' ; +0x14f, 0x18000452f mov rcx, [rcx-8]; Block ; +0x153, 0x180004533 sub rax, rcx ; +0x157, 0x180004537 add rax, 0FFFFFFFFFFFFFFF8h ; +0x15a, 0x18000453a cmp rax, 1Fh ; +0x15e, 0x18000453e ja short loc_1800045B3 ; +0x162, 0x180004542 call j_j_free ; +0x164, 0x180004544 mov rdx, rsi ; +0x169, 0x180004549 mov rcx, rdi ; +0x16c, 0x18000454c call cs:?addObject@CCArray@cocos2d@@QEAAXPEAVCCObject@2@@Z; cocos2d::CCArray::addObject(cocos2d::CCObject *) ; +0x16f, 0x18000454f mov ecx, ebp ; +0x175, 0x180004555 call cs:?create@CCInteger@cocos2d@@SAPEAV12@H@Z; cocos2d::CCInteger::create(int) ; +0x177, 0x180004557 mov rdx, rax ; +0x17d, 0x18000455d mov rcx, rdi ; +0x180, 0x180004560 call cs:?addObject@CCArray@cocos2d@@QEAAXPEAVCCObject@2@@Z; cocos2d::CCArray::addObject(cocos2d::CCObject *) ; +0x183, 0x180004563 call cs:?sharedManager@CCScriptEngineManager@cocos2d@@SAPEAV12@XZ; cocos2d::CCScriptEngineManager::sharedManager(void) ; +0x189, 0x180004569 mov rcx, [rax] ; +0x18f, 0x18000456f mov rax, [rcx] ; +0x192, 0x180004572 mov r8, rdi ; +0x195, 0x180004575 mov edx, ebx ; +0x198, 0x180004578 call qword ptr [rax+90h] ; +0x19a, 0x18000457a inc r14d ; +0x1a0, 0x180004580 cmp r14d, 9 ; +0x1a3, 0x180004583 jl loc_180004411 ; +0x1a7, 0x180004587 mov rcx, [rsp+78h+var_38] ; +0x1ad, 0x18000458d xor rcx, rsp; StackCookie ; +0x1b2, 0x180004592 call __security_check_cookie ; +0x1b5, 0x180004595 lea r11, [rsp+78h+var_28] ; +0x1ba, 0x18000459a mov rbx, [r11+40h] ; +0x1bf, 0x18000459f mov rbp, [r11+48h] ; +0x1c3, 0x1800045a3 mov rsp, r11 ; +0x1c7, 0x1800045a7 pop r15 ; +0x1ca, 0x1800045aa pop r14 ; +0x1cc, 0x1800045ac pop r12 ; +0x1ce, 0x1800045ae pop rdi ; +0x1d0, 0x1800045b0 pop rsi ; +0x1d1, 0x1800045b1 retn ; +0x1d2, 0x1800045b2 call cs:_invalid_parameter_noinfo_noreturn ; +0x1d3, 0x1800045b3 db 0CCh ; +0x1d9, 0x1800045b9