; ; cocos2d::extension::CCControlUtils::RGBfromHSV from 0x18000d530 to 0x18000d6b0 (384 bytes) ; ; 5 xrefs: ; > cocos2d::extension::CCControlColourPicker::hueSliderValueChanged @ 0x1800080f4 ; > cocos2d::extension::CCControlColourPicker::colourSliderValueChanged @ 0x180008237 ; > cocos2d::extension::CCControlSaturationBrightnessPicker::updateWithHSV @ 0x180009d59 ; > @ 0x18002fdf8 ; > @ 0x180049e10 ; ; 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, 0x18000d530 push rdi ; +0x5, 0x18000d535 sub rsp, 30h ; +0x6, 0x18000d536 movsd xmm3, qword ptr [rdx] ; +0xa, 0x18000d53a xorps xmm0, xmm0 ; +0xe, 0x18000d53e movaps [rsp+38h+var_18], xmm6 ; +0x11, 0x18000d541 mov rax, 3FF0000000000000h ; +0x16, 0x18000d546 movsd xmm6, qword ptr [rdx+8] ; +0x20, 0x18000d550 mov rdi, rdx ; +0x25, 0x18000d555 comisd xmm0, xmm6 ; +0x28, 0x18000d558 mov rbx, rcx ; +0x2c, 0x18000d55c mov [rcx+18h], rax ; +0x2f, 0x18000d55f jb short loc_18000D5B6 ; +0x33, 0x18000d563 movaps xmm0, xmm3; X ; +0x35, 0x18000d565 call cs:_isnan ; +0x38, 0x18000d568 test eax, eax ; +0x3e, 0x18000d56e jnz short loc_18000D596 ; +0x40, 0x18000d570 movsd xmm0, qword ptr [rdi+10h] ; +0x42, 0x18000d572 mov rax, rbx ; +0x47, 0x18000d577 unpcklpd xmm0, xmm0 ; +0x4a, 0x18000d57a movsd qword ptr [rbx+10h], xmm0 ; +0x4e, 0x18000d57e movups xmmword ptr [rbx], xmm0 ; +0x53, 0x18000d583 mov rbx, [rsp+38h+arg_0] ; +0x56, 0x18000d586 movaps xmm6, [rsp+38h+var_18] ; +0x5b, 0x18000d58b add rsp, 30h ; +0x60, 0x18000d590 pop rdi ; +0x64, 0x18000d594 retn ; +0x65, 0x18000d595 xor eax, eax ; +0x66, 0x18000d596 mov [rbx], rax ; +0x68, 0x18000d598 mov [rbx+8], rax ; +0x6b, 0x18000d59b mov [rbx+10h], rax ; +0x6f, 0x18000d59f mov rax, rbx ; +0x73, 0x18000d5a3 mov rbx, [rsp+38h+arg_0] ; +0x76, 0x18000d5a6 movaps xmm6, [rsp+38h+var_18] ; +0x7b, 0x18000d5ab add rsp, 30h ; +0x80, 0x18000d5b0 pop rdi ; +0x84, 0x18000d5b4 retn ; +0x85, 0x18000d5b5 comisd xmm3, cs:qword_180029578 ; +0x86, 0x18000d5b6 jb short loc_18000D5C3 ; +0x8e, 0x18000d5be xorps xmm3, xmm3 ; +0x90, 0x18000d5c0 movsd xmm4, cs:qword_180029530 ; +0x93, 0x18000d5c3 xorps xmm0, xmm0 ; +0x9b, 0x18000d5cb mulsd xmm3, cs:qword_180029520 ; +0x9e, 0x18000d5ce movaps xmm5, xmm4 ; +0xa6, 0x18000d5d6 movsd xmm1, qword ptr [rdx+10h] ; +0xa9, 0x18000d5d9 movaps xmm2, xmm4 ; +0xae, 0x18000d5de subsd xmm2, xmm6 ; +0xb1, 0x18000d5e1 cvttsd2si eax, xmm3 ; +0xb5, 0x18000d5e5 mulsd xmm2, xmm1 ; +0xb9, 0x18000d5e9 cvtsi2sd xmm0, eax ; +0xbd, 0x18000d5ed subsd xmm3, xmm0 ; +0xc1, 0x18000d5f1 movaps xmm0, xmm6 ; +0xc5, 0x18000d5f5 mulsd xmm0, xmm3 ; +0xc8, 0x18000d5f8 subsd xmm5, xmm0 ; +0xcc, 0x18000d5fc movaps xmm0, xmm4 ; +0xd0, 0x18000d600 subsd xmm0, xmm3 ; +0xd3, 0x18000d603 mulsd xmm5, xmm1 ; +0xd7, 0x18000d607 mulsd xmm0, xmm6 ; +0xdb, 0x18000d60b subsd xmm4, xmm0 ; +0xdf, 0x18000d60f mulsd xmm4, xmm1 ; +0xe3, 0x18000d613 cmp eax, 5; switch 6 cases ; +0xe7, 0x18000d617 ja short def_18000D62F; jumptable 000000018000D62F default case, case 5 ; +0xea, 0x18000d61a lea rdx, cs:180000000h ; +0xec, 0x18000d61c cdqe ; +0xf3, 0x18000d623 mov ecx, ds:(jpt_18000D62F - 180000000h)[rdx+rax*4] ; +0xf5, 0x18000d625 add rcx, rdx ; +0xfc, 0x18000d62c jmp rcx; switch jump ; +0xff, 0x18000d62f movsd qword ptr [rbx+8], xmm4; jumptable 000000018000D62F case 0 ; +0x101, 0x18000d631 movsd qword ptr [rbx+10h], xmm2 ; +0x106, 0x18000d636 jmp short loc_18000D67E ; +0x10b, 0x18000d63b movsd qword ptr [rbx+8], xmm1; jumptable 000000018000D62F case 1 ; +0x10d, 0x18000d63d movaps xmm1, xmm5 ; +0x112, 0x18000d642 movsd qword ptr [rbx+10h], xmm2 ; +0x115, 0x18000d645 jmp short loc_18000D67E ; +0x11a, 0x18000d64a movsd qword ptr [rbx+8], xmm1; jumptable 000000018000D62F case 2 ; +0x11c, 0x18000d64c movaps xmm1, xmm2 ; +0x121, 0x18000d651 movsd qword ptr [rbx+10h], xmm4 ; +0x124, 0x18000d654 jmp short loc_18000D67E ; +0x129, 0x18000d659 movsd qword ptr [rbx+10h], xmm1; jumptable 000000018000D62F case 3 ; +0x12b, 0x18000d65b movaps xmm1, xmm2 ; +0x130, 0x18000d660 movsd qword ptr [rbx+8], xmm5 ; +0x133, 0x18000d663 jmp short loc_18000D67E ; +0x138, 0x18000d668 movsd qword ptr [rbx+10h], xmm1; jumptable 000000018000D62F case 4 ; +0x13a, 0x18000d66a movaps xmm1, xmm4 ; +0x13f, 0x18000d66f jmp short loc_18000D679 ; +0x142, 0x18000d672 movsd qword ptr [rbx+10h], xmm5; jumptable 000000018000D62F default case, case 5 ; +0x144, 0x18000d674 movsd qword ptr [rbx+8], xmm2 ; +0x149, 0x18000d679 movsd qword ptr [rbx], xmm1 ; +0x14e, 0x18000d67e mov rax, rbx ; +0x152, 0x18000d682 mov rbx, [rsp+38h+arg_0] ; +0x155, 0x18000d685 movaps xmm6, [rsp+38h+var_18] ; +0x15a, 0x18000d68a add rsp, 30h ; +0x15f, 0x18000d68f pop rdi ; +0x163, 0x18000d693 retn ; +0x164, 0x18000d694 align 8 ; +0x165, 0x18000d695 dd offset loc_18000D631 - 180000000h; jump table for switch statement ; +0x168, 0x18000d698