; ; cocos2d::extension::WebSocket::~WebSocket from 0x180019930 to 0x180019a69 (313 bytes) ; ; 4 xrefs: ; > sub_180019490 @ 0x1800194ee ; > sub_180019490 @ 0x1800194ac ; > @ 0x18002fdf8 ; > @ 0x18004ac74 ; ; 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, 0x180019930 mov [rsp+arg_8], rbp ; +0x5, 0x180019935 mov [rsp+arg_10], rsi ; +0xa, 0x18001993a push rdi ; +0xf, 0x18001993f sub rsp, 20h ; +0x10, 0x180019940 mov rbx, rcx ; +0x14, 0x180019944 lea rax, ??_7WebSocket@extension@cocos2d@@6B@; const cocos2d::extension::WebSocket::`vftable' ; +0x17, 0x180019947 mov [rcx], rax ; +0x1e, 0x18001994e call ?close@WebSocket@extension@cocos2d@@QEAAXXZ; cocos2d::extension::WebSocket::close(void) ; +0x21, 0x180019951 mov rcx, [rbx+58h] ; +0x26, 0x180019956 xor ebp, ebp ; +0x2a, 0x18001995a test rcx, rcx ; +0x2c, 0x18001995c jz short loc_18001996B ; +0x2f, 0x18001995f call cs:?release@CCObject@cocos2d@@QEAAXXZ; cocos2d::CCObject::release(void) ; +0x31, 0x180019961 mov [rbx+58h], rbp ; +0x37, 0x180019967 mov rcx, [rbx+80h] ; +0x3b, 0x18001996b cmp [rcx+8], rbp ; +0x42, 0x180019972 jz short loc_1800199AE ; +0x46, 0x180019976 mov rsi, rbp ; +0x48, 0x180019978 mov rdi, rbp ; +0x4b, 0x18001997b xchg ax, ax ; +0x4e, 0x18001997e mov rcx, [rdi+rcx]; Block ; +0x50, 0x180019980 test rcx, rcx ; +0x54, 0x180019984 jz short loc_180019999 ; +0x57, 0x180019987 call j_j_free ; +0x59, 0x180019989 mov rax, [rbx+80h] ; +0x5e, 0x18001998e mov [rdi+rax], rbp ; +0x65, 0x180019995 inc rsi ; +0x69, 0x180019999 imul rdi, rsi, 38h ; '8' ; +0x6c, 0x18001999c mov rcx, [rbx+80h]; Block ; +0x70, 0x1800199a0 cmp [rcx+rdi+8], rbp ; +0x77, 0x1800199a7 jnz short loc_180019980 ; +0x7c, 0x1800199ac test rcx, rcx ; +0x7e, 0x1800199ae jz short loc_1800199BF ; +0x81, 0x1800199b1 call j_j_free ; +0x83, 0x1800199b3 mov [rbx+80h], rbp ; +0x88, 0x1800199b8 mov rdx, [rbx+50h] ; +0x8f, 0x1800199bf cmp rdx, 0Fh ; +0x93, 0x1800199c3 jbe short loc_1800199F6 ; +0x97, 0x1800199c7 inc rdx ; +0x99, 0x1800199c9 mov rcx, [rbx+38h] ; +0x9c, 0x1800199cc cmp rdx, 1000h ; +0xa0, 0x1800199d0 jb short loc_1800199F1 ; +0xa7, 0x1800199d7 add rdx, 27h ; ''' ; +0xa9, 0x1800199d9 mov r8, [rcx-8] ; +0xad, 0x1800199dd sub rcx, r8 ; +0xb1, 0x1800199e1 lea rax, [rcx-8] ; +0xb4, 0x1800199e4 cmp rax, 1Fh ; +0xb8, 0x1800199e8 ja short loc_180019A62 ; +0xbc, 0x1800199ec mov rcx, r8; Block ; +0xbe, 0x1800199ee call j_j_free ; +0xc1, 0x1800199f1 mov [rbx+48h], rbp ; +0xc6, 0x1800199f6 mov qword ptr [rbx+50h], 0Fh ; +0xca, 0x1800199fa mov [rbx+38h], bpl ; +0xd2, 0x180019a02 mov rdx, [rbx+28h] ; +0xd6, 0x180019a06 cmp rdx, 0Fh ; +0xda, 0x180019a0a jbe short loc_180019A3D ; +0xde, 0x180019a0e inc rdx ; +0xe0, 0x180019a10 mov rcx, [rbx+10h] ; +0xe3, 0x180019a13 cmp rdx, 1000h ; +0xe7, 0x180019a17 jb short loc_180019A38 ; +0xee, 0x180019a1e add rdx, 27h ; ''' ; +0xf0, 0x180019a20 mov r8, [rcx-8] ; +0xf4, 0x180019a24 sub rcx, r8 ; +0xf8, 0x180019a28 lea rax, [rcx-8] ; +0xfb, 0x180019a2b cmp rax, 1Fh ; +0xff, 0x180019a2f ja short loc_180019A62 ; +0x103, 0x180019a33 mov rcx, r8; Block ; +0x105, 0x180019a35 call j_j_free ; +0x108, 0x180019a38 mov [rbx+20h], rbp ; +0x10d, 0x180019a3d mov qword ptr [rbx+28h], 0Fh ; +0x111, 0x180019a41 mov [rbx+10h], bpl ; +0x119, 0x180019a49 mov rbx, [rsp+28h+arg_0] ; +0x11d, 0x180019a4d mov rbp, [rsp+28h+arg_8] ; +0x122, 0x180019a52 mov rsi, [rsp+28h+arg_10] ; +0x127, 0x180019a57 add rsp, 20h ; +0x12c, 0x180019a5c pop rdi ; +0x130, 0x180019a60 retn ; +0x131, 0x180019a61 call cs:_invalid_parameter_noinfo_noreturn ; +0x132, 0x180019a62 db 0CCh ; +0x138, 0x180019a68