; ; cocos2d::extension::CCControlSwitch::initWithMaskSprite from 0x18000cbc0 to 0x18000cdcc (524 bytes) ; ; 5 xrefs: ; > cocos2d::extension::CCControlSwitch::initWithMaskSprite @ 0x18000cafa ; > cocos2d::extension::CCControlSwitch::create @ 0x18000cb78 ; > cocos2d::extension::CCControlSwitch::create @ 0x18000ce40 ; > @ 0x18002fdf8 ; > @ 0x180049d98 ; ; 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_0], rbx ; +0x0, 0x18000cbc0 mov [rsp+arg_8], rbp ; +0x5, 0x18000cbc5 mov [rsp+arg_10], rsi ; +0xa, 0x18000cbca push rdi ; +0xf, 0x18000cbcf push r14 ; +0x10, 0x18000cbd0 push r15 ; +0x12, 0x18000cbd2 sub rsp, 70h ; +0x14, 0x18000cbd4 movaps [rsp+88h+var_28], xmm6 ; +0x18, 0x18000cbd8 movaps [rsp+88h+var_38], xmm7 ; +0x1d, 0x18000cbdd mov rbp, r9 ; +0x22, 0x18000cbe2 mov r14, r8 ; +0x25, 0x18000cbe5 mov r15, rdx ; +0x28, 0x18000cbe8 mov rsi, rcx ; +0x2b, 0x18000cbeb call ?init@CCControl@extension@cocos2d@@UEAA_NXZ; cocos2d::extension::CCControl::init(void) ; +0x2e, 0x18000cbee test al, al ; +0x33, 0x18000cbf3 jz loc_18000CDA6 ; +0x35, 0x18000cbf5 mov rax, [rsi] ; +0x3b, 0x18000cbfb mov dl, 1 ; +0x3e, 0x18000cbfe mov rcx, rsi ; +0x40, 0x18000cc00 call qword ptr [rax+388h] ; +0x43, 0x18000cc03 mov byte ptr [rsi+1E5h], 1 ; +0x49, 0x18000cc09 mov ecx, 2A8h; Size ; +0x50, 0x18000cc10 call ??2@YAPEAX_K@Z; operator new(unsigned __int64) ; +0x55, 0x18000cc15 mov rdi, rax ; +0x5a, 0x18000cc1a mov [rsp+88h+var_48], rax ; +0x5d, 0x18000cc1d mov rcx, rax ; +0x62, 0x18000cc22 call cs:??0CCSprite@cocos2d@@QEAA@XZ; cocos2d::CCSprite::CCSprite(void) ; +0x65, 0x18000cc25 lea rcx, [rdi+258h] ; +0x6b, 0x18000cc2b call cs:??0CCActionTweenDelegate@cocos2d@@QEAA@XZ; cocos2d::CCActionTweenDelegate::CCActionTweenDelegate(void) ; +0x72, 0x18000cc32 lea rax, ??_7CCControlSwitchSprite@extension@cocos2d@@6B@; const cocos2d::extension::CCControlSwitchSprite::`vftable' ; +0x78, 0x18000cc38 mov [rdi], rax ; +0x7f, 0x18000cc3f lea rax, ??_7CCControlSwitchSprite@extension@cocos2d@@6B@_0; const cocos2d::extension::CCControlSwitchSprite::`vftable' ; +0x82, 0x18000cc42 mov [rdi+140h], rax ; +0x89, 0x18000cc49 lea rax, ??_7CCControlSwitchSprite@extension@cocos2d@@6B@_1; const cocos2d::extension::CCControlSwitchSprite::`vftable' ; +0x90, 0x18000cc50 mov [rdi+158h], rax ; +0x97, 0x18000cc57 lea rax, ??_7CCControlSwitchSprite@extension@cocos2d@@6B@_2; const cocos2d::extension::CCControlSwitchSprite::`vftable' ; +0x9e, 0x18000cc5e mov [rdi+258h], rax ; +0xa5, 0x18000cc65 xor eax, eax ; +0xac, 0x18000cc6c mov [rdi+260h], rax ; +0xae, 0x18000cc6e mov [rdi+268h], eax ; +0xb5, 0x18000cc75 mov [rdi+270h], rax ; +0xbb, 0x18000cc7b mov [rdi+278h], rax ; +0xc2, 0x18000cc82 mov [rdi+280h], rax ; +0xc9, 0x18000cc89 mov [rdi+288h], rax ; +0xd0, 0x18000cc90 mov [rdi+290h], rax ; +0xd7, 0x18000cc97 mov [rdi+298h], rax ; +0xde, 0x18000cc9e mov [rdi+2A0h], rax ; +0xe5, 0x18000cca5 mov [rsi+1D8h], rdi ; +0xec, 0x18000ccac mov rax, [rsp+88h+arg_30] ; +0xf3, 0x18000ccb3 mov [rsp+88h+var_58], rax ; +0xfb, 0x18000ccbb mov rax, [rsp+88h+arg_28] ; +0x100, 0x18000ccc0 mov [rsp+88h+var_60], rax ; +0x108, 0x18000ccc8 mov rax, [rsp+88h+arg_20] ; +0x10d, 0x18000cccd mov [rsp+88h+var_68], rax ; +0x115, 0x18000ccd5 mov r9, rbp ; +0x11a, 0x18000ccda mov r8, r14 ; +0x11d, 0x18000ccdd mov rdx, r15 ; +0x120, 0x18000cce0 mov rcx, rdi ; +0x123, 0x18000cce3 call sub_18000C110 ; +0x126, 0x18000cce6 mov rcx, [rsi+1D8h] ; +0x12b, 0x18000cceb mov rbx, [rcx] ; +0x132, 0x18000ccf2 call qword ptr [rbx+130h] ; +0x135, 0x18000ccf5 movss xmm6, dword ptr [rax+4] ; +0x13b, 0x18000ccfb mov rcx, [rsi+1D8h] ; +0x140, 0x18000cd00 mov rax, [rcx] ; +0x147, 0x18000cd07 call qword ptr [rax+130h] ; +0x14a, 0x18000cd0a movss xmm7, cs:dword_180029510 ; +0x150, 0x18000cd10 mulss xmm6, xmm7 ; +0x158, 0x18000cd18 movss xmm1, dword ptr [rax] ; +0x15c, 0x18000cd1c mulss xmm1, xmm7 ; +0x160, 0x18000cd20 movaps xmm2, xmm6 ; +0x164, 0x18000cd24 lea rcx, [rsp+88h+var_48] ; +0x167, 0x18000cd27 call cs:??0CCPoint@cocos2d@@QEAA@MM@Z; cocos2d::CCPoint::CCPoint(float,float) ; +0x16c, 0x18000cd2c mov rdx, rax ; +0x172, 0x18000cd32 mov rcx, [rsi+1D8h] ; +0x175, 0x18000cd35 call qword ptr [rbx+0B8h] ; +0x17c, 0x18000cd3c mov rax, [rsi] ; +0x182, 0x18000cd42 mov rdx, [rsi+1D8h] ; +0x185, 0x18000cd45 mov rcx, rsi ; +0x18c, 0x18000cd4c call qword ptr [rax+1C0h] ; +0x18f, 0x18000cd4f mov rax, [rsi] ; +0x195, 0x18000cd55 xor edx, edx ; +0x198, 0x18000cd58 mov rcx, rsi ; +0x19a, 0x18000cd5a call qword ptr [rax+1A0h] ; +0x19d, 0x18000cd5d mov rbx, [rsi] ; +0x1a3, 0x18000cd63 movaps xmm2, xmm7 ; +0x1a6, 0x18000cd66 movaps xmm1, xmm7 ; +0x1a9, 0x18000cd69 lea rcx, [rsp+88h+var_48] ; +0x1ac, 0x18000cd6c call cs:??0CCPoint@cocos2d@@QEAA@MM@Z; cocos2d::CCPoint::CCPoint(float,float) ; +0x1b1, 0x18000cd71 mov rdx, rax ; +0x1b7, 0x18000cd77 mov rcx, rsi ; +0x1ba, 0x18000cd7a call qword ptr [rbx+110h] ; +0x1bd, 0x18000cd7d mov rbx, [rsi] ; +0x1c3, 0x18000cd83 mov rcx, [rsi+1D8h] ; +0x1c6, 0x18000cd86 mov rax, [rcx] ; +0x1cd, 0x18000cd8d call qword ptr [rax+130h] ; +0x1d0, 0x18000cd90 mov rdx, rax ; +0x1d6, 0x18000cd96 mov rcx, rsi ; +0x1d9, 0x18000cd99 call qword ptr [rbx+128h] ; +0x1dc, 0x18000cd9c mov al, 1 ; +0x1e2, 0x18000cda2 jmp short loc_18000CDA8 ; +0x1e4, 0x18000cda4 xor al, al ; +0x1e6, 0x18000cda6 lea r11, [rsp+88h+var_18] ; +0x1e8, 0x18000cda8 mov rbx, [r11+20h] ; +0x1ed, 0x18000cdad mov rbp, [r11+28h] ; +0x1f1, 0x18000cdb1 mov rsi, [r11+30h] ; +0x1f5, 0x18000cdb5 movaps xmm6, [rsp+88h+var_28] ; +0x1f9, 0x18000cdb9 movaps xmm7, [rsp+88h+var_38] ; +0x1fe, 0x18000cdbe mov rsp, r11 ; +0x203, 0x18000cdc3 pop r15 ; +0x206, 0x18000cdc6 pop r14 ; +0x208, 0x18000cdc8 pop rdi ; +0x20a, 0x18000cdca retn ; +0x20b, 0x18000cdcb