; ; cocos2d::extension::WebSocket::onSubThreadStarted from 0x18001a5a0 to 0x18001a7af (527 bytes) ; ; 3 xrefs: ; > @ 0x180029030 ; > @ 0x18002fdf8 ; > @ 0x18004acf8 ; ; 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-8+arg_8], rbx ; +0x0, 0x18001a5a0 mov [rsp-8+arg_10], rsi ; +0x5, 0x18001a5a5 mov [rsp-8+arg_18], rdi ; +0xa, 0x18001a5aa push rbp ; +0xf, 0x18001a5af lea rbp, [rsp-2F0h] ; +0x10, 0x18001a5b0 sub rsp, 3F0h ; +0x18, 0x18001a5b8 mov rax, cs:__security_cookie ; +0x1f, 0x18001a5bf xor rax, rsp ; +0x26, 0x18001a5c6 mov [rbp+2F0h+var_10], rax ; +0x29, 0x18001a5c9 mov rbx, rcx ; +0x30, 0x18001a5d0 xor edx, edx; Val ; +0x33, 0x18001a5d3 mov r8d, 298h; Size ; +0x35, 0x18001a5d5 lea rcx, [rbp+2F0h+var_2D0]; void * ; +0x3b, 0x18001a5db call memset ; +0x3f, 0x18001a5df mov [rbp+2F0h+var_270], 0FFFFFFFFh ; +0x44, 0x18001a5e4 mov rax, [rbx+80h] ; +0x4e, 0x18001a5ee mov [rbp+2F0h+var_2C8], rax ; +0x55, 0x18001a5f5 mov [rbp+2F0h+var_134], 0FFFFFFFFFFFFFFFFh ; +0x59, 0x18001a5f9 mov [rbp+2F0h+var_120], rbx ; +0x64, 0x18001a604 lea rcx, [rbp+2F0h+var_2D0] ; +0x6b, 0x18001a60b call cs:lws_create_context ; +0x6f, 0x18001a60f mov [rbx+68h], rax ; +0x75, 0x18001a615 test rax, rax ; +0x79, 0x18001a619 jz loc_18001A787 ; +0x7c, 0x18001a61c xor edi, edi ; +0x82, 0x18001a622 mov [rbx+8], edi ; +0x84, 0x18001a624 xorps xmm0, xmm0 ; +0x87, 0x18001a627 movups xmmword ptr [rbp+2F0h+Block], xmm0 ; +0x8a, 0x18001a62a movdqa xmm1, cs:xmmword_1800295E0 ; +0x91, 0x18001a631 movdqu [rbp+2F0h+var_20], xmm1 ; +0x99, 0x18001a639 mov byte ptr [rbp+2F0h+Block], dil ; +0xa1, 0x18001a641 mov rax, [rbx+80h] ; +0xa8, 0x18001a648 cmp [rax+8], rdi ; +0xaf, 0x18001a64f jz short loc_18001A6B2 ; +0xb3, 0x18001a653 mov ecx, edi ; +0xb5, 0x18001a655 lea esi, [rdi+38h] ; +0xb7, 0x18001a657 nop word ptr [rax+rax+00h] ; +0xba, 0x18001a65a mov rdx, [rcx+rax] ; +0xc0, 0x18001a660 lea rcx, [rbp+2F0h+Block]; Src ; +0xc4, 0x18001a664 call sub_180003A20 ; +0xcb, 0x18001a66b mov rax, [rbx+80h] ; +0xd0, 0x18001a670 cmp qword ptr [rax+rsi+8], 0 ; +0xd7, 0x18001a677 jz short loc_18001A698 ; +0xdd, 0x18001a67d mov r8d, 2 ; +0xdf, 0x18001a67f lea rdx, unk_180028FB4 ; +0xe5, 0x18001a685 lea rcx, [rbp+2F0h+Block]; Src ; +0xec, 0x18001a68c call sub_1800039A0 ; +0xf3, 0x18001a693 inc rdi ; +0xf8, 0x18001a698 add rsi, 38h ; '8' ; +0xfb, 0x18001a69b imul rcx, rdi, 38h ; '8' ; +0xff, 0x18001a69f mov rax, [rbx+80h] ; +0x103, 0x18001a6a3 cmp qword ptr [rax+rcx+8], 0 ; +0x10a, 0x18001a6aa jnz short loc_18001A660 ; +0x110, 0x18001a6b0 xor eax, eax ; +0x112, 0x18001a6b2 mov [rsp+3F0h+var_3B0], rax ; +0x114, 0x18001a6b4 xor edx, edx; Val ; +0x119, 0x18001a6b9 mov r8d, 0C0h; Size ; +0x11b, 0x18001a6bb lea rcx, [rsp+3F0h+var_398]; void * ; +0x121, 0x18001a6c1 call memset ; +0x126, 0x18001a6c6 mov rcx, [rbx+68h] ; +0x12b, 0x18001a6cb mov [rsp+3F0h+var_3D0], rcx ; +0x12f, 0x18001a6cf lea rax, [rbx+10h] ; +0x134, 0x18001a6d4 cmp qword ptr [rax+18h], 0Fh ; +0x138, 0x18001a6d8 jbe short loc_18001A6E2 ; +0x13d, 0x18001a6dd mov rax, [rax] ; +0x13f, 0x18001a6df mov [rsp+3F0h+var_3C8], rax ; +0x142, 0x18001a6e2 mov eax, [rbx+30h] ; +0x147, 0x18001a6e7 mov [rsp+3F0h+var_3C0], eax ; +0x14a, 0x18001a6ea lea rax, [rbx+38h] ; +0x14e, 0x18001a6ee cmp qword ptr [rax+18h], 0Fh ; +0x152, 0x18001a6f2 jbe short loc_18001A6FC ; +0x157, 0x18001a6f7 mov rax, [rax] ; +0x159, 0x18001a6f9 mov [rsp+3F0h+var_3B8], rax ; +0x15c, 0x18001a6fc call cs:lws_canonical_hostname ; +0x161, 0x18001a701 mov [rsp+3F0h+var_3B0], rax ; +0x167, 0x18001a707 mov [rsp+3F0h+var_3A8], rax ; +0x16c, 0x18001a70c lea rax, [rbp+2F0h+Block] ; +0x171, 0x18001a711 cmp qword ptr [rbp+2F0h+var_20+8], 0Fh ; +0x178, 0x18001a718 cmova rax, [rbp+2F0h+Block] ; +0x180, 0x18001a720 mov [rsp+3F0h+var_3A0], rax ; +0x188, 0x18001a728 mov eax, [rbx+78h] ; +0x18d, 0x18001a72d mov [rsp+3F0h+var_3BC], eax ; +0x190, 0x18001a730 lea rcx, [rsp+3F0h+var_3D0] ; +0x194, 0x18001a734 call cs:lws_client_connect_via_info ; +0x199, 0x18001a739 mov [rbx+60h], rax ; +0x19f, 0x18001a73f mov rdx, qword ptr [rbp+2F0h+var_20+8] ; +0x1a3, 0x18001a743 cmp rdx, 0Fh ; +0x1aa, 0x18001a74a jbe short loc_18001A787 ; +0x1ae, 0x18001a74e inc rdx ; +0x1b0, 0x18001a750 mov rcx, [rbp+2F0h+Block]; Block ; +0x1b3, 0x18001a753 mov rax, rcx ; +0x1ba, 0x18001a75a cmp rdx, 1000h ; +0x1bd, 0x18001a75d jb short loc_18001A782 ; +0x1c4, 0x18001a764 add rdx, 27h ; ''' ; +0x1c6, 0x18001a766 mov rcx, [rcx-8] ; +0x1ca, 0x18001a76a sub rax, rcx ; +0x1ce, 0x18001a76e add rax, 0FFFFFFFFFFFFFFF8h ; +0x1d1, 0x18001a771 cmp rax, 1Fh ; +0x1d5, 0x18001a775 jbe short loc_18001A782 ; +0x1d9, 0x18001a779 call cs:_invalid_parameter_noinfo_noreturn ; +0x1db, 0x18001a77b align 2 ; +0x1e1, 0x18001a781 call j_j_free ; +0x1e2, 0x18001a782 mov rcx, [rbp+2F0h+var_10] ; +0x1e7, 0x18001a787 xor rcx, rsp; StackCookie ; +0x1ee, 0x18001a78e call __security_check_cookie ; +0x1f1, 0x18001a791 lea r11, [rsp+3F0h+var_s0] ; +0x1f6, 0x18001a796 mov rbx, [r11+18h] ; +0x1fe, 0x18001a79e mov rsi, [r11+20h] ; +0x202, 0x18001a7a2 mov rdi, [r11+28h] ; +0x206, 0x18001a7a6 mov rsp, r11 ; +0x20a, 0x18001a7aa pop rbp ; +0x20d, 0x18001a7ad retn ; +0x20e, 0x18001a7ae