; ; cocos2d::extension::WebSocket::init from 0x180019a70 to 0x18001a343 (2259 bytes) ; ; 2 xrefs: ; > @ 0x18002fdf8 ; > @ 0x18004ac80 ; ; 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, 0x180019a70 push rbp ; +0x5, 0x180019a75 push rsi ; +0x6, 0x180019a76 push rdi ; +0x7, 0x180019a77 push r12 ; +0x8, 0x180019a78 push r13 ; +0xa, 0x180019a7a push r14 ; +0xc, 0x180019a7c push r15 ; +0xe, 0x180019a7e lea rbp, [rsp-27h] ; +0x10, 0x180019a80 sub rsp, 0C0h ; +0x15, 0x180019a85 mov rax, cs:__security_cookie ; +0x1c, 0x180019a8c xor rax, rsp ; +0x23, 0x180019a93 mov [rbp+57h+var_40], rax ; +0x26, 0x180019a96 mov [rbp+57h+var_B8], r9 ; +0x2a, 0x180019a9a mov rbx, rdx ; +0x2e, 0x180019a9e mov rdi, rcx ; +0x31, 0x180019aa1 mov [rbp+57h+var_B0], rcx ; +0x34, 0x180019aa4 mov [rbp+57h+var_C0], 0 ; +0x38, 0x180019aa8 mov rdx, r8 ; +0x3c, 0x180019aac lea rcx, [rbp+57h+Buf] ; +0x3f, 0x180019aaf call sub_180003F50 ; +0x43, 0x180019ab3 nop ; +0x48, 0x180019ab8 mov [rdi+70h], rbx ; +0x49, 0x180019ab9 lea rsi, [rbp+57h+Buf] ; +0x4d, 0x180019abd mov r15, [rbp+57h+var_88] ; +0x51, 0x180019ac1 cmp r15, 0Fh ; +0x55, 0x180019ac5 setnbe r13b ; +0x59, 0x180019ac9 mov r12, [rbp+57h+Buf] ; +0x5d, 0x180019acd cmova rsi, r12 ; +0x61, 0x180019ad1 mov ebx, 5 ; +0x65, 0x180019ad5 lea r14, [rbx-6] ; +0x6a, 0x180019ada mov rdi, [rbp+57h+var_90] ; +0x6e, 0x180019ade cmp rdi, rbx ; +0x72, 0x180019ae2 jb short loc_180019B63 ; +0x75, 0x180019ae5 lea r14, [rdi+rsi] ; +0x77, 0x180019ae7 lea r8, [r14-4] ; +0x7b, 0x180019aeb sub r8, rsi; MaxCount ; +0x7f, 0x180019aef lea edx, [rbx+72h]; Val ; +0x82, 0x180019af2 mov rcx, rsi; Buf ; +0x85, 0x180019af5 call memchr ; +0x88, 0x180019af8 mov r9, rax ; +0x8d, 0x180019afd test rax, rax ; +0x90, 0x180019b00 jz short loc_180019B5C ; +0x93, 0x180019b03 lea rdx, aWs; "ws://" ; +0x95, 0x180019b05 nop dword ptr [rax+00h] ; +0x9c, 0x180019b0c xor ecx, ecx ; +0xa0, 0x180019b10 movzx eax, byte ptr [r9+rcx] ; +0xa2, 0x180019b12 inc rcx ; +0xa7, 0x180019b17 cmp al, [rdx+rcx-1] ; +0xaa, 0x180019b1a jnz short loc_180019B29 ; +0xae, 0x180019b1e cmp rcx, rbx ; +0xb0, 0x180019b20 jnz short loc_180019B12 ; +0xb3, 0x180019b23 xor eax, eax ; +0xb5, 0x180019b25 jmp short loc_180019B2E ; +0xb7, 0x180019b27 sbb eax, eax ; +0xb9, 0x180019b29 or eax, 1 ; +0xbb, 0x180019b2b test eax, eax ; +0xbe, 0x180019b2e jz loc_180019BF9 ; +0xc0, 0x180019b30 inc r9 ; +0xc6, 0x180019b36 lea r8, [r14-4] ; +0xc9, 0x180019b39 sub r8, r9; MaxCount ; +0xcd, 0x180019b3d mov edx, 77h ; 'w'; Val ; +0xd0, 0x180019b40 mov rcx, r9; Buf ; +0xd5, 0x180019b45 call memchr ; +0xd8, 0x180019b48 mov r9, rax ; +0xdd, 0x180019b4d test rax, rax ; +0xe0, 0x180019b50 lea rdx, aWs; "ws://" ; +0xe3, 0x180019b53 jnz short loc_180019B10 ; +0xea, 0x180019b5a mov r14, 0FFFFFFFFFFFFFFFFh ; +0xec, 0x180019b5c mov r9, r14 ; +0xf3, 0x180019b63 test r9d, r9d ; +0xf6, 0x180019b66 jnz short loc_180019B99 ; +0xf9, 0x180019b69 cmp rdi, rbx ; +0xfb, 0x180019b6b cmovb rbx, rdi ; +0xfe, 0x180019b6e lea rcx, [rbp+57h+Buf] ; +0x102, 0x180019b72 test r13b, r13b ; +0x106, 0x180019b76 cmovnz rcx, r12; void * ; +0x109, 0x180019b79 sub rdi, rbx ; +0x10d, 0x180019b7d lea r8, [rdi+1]; Size ; +0x110, 0x180019b80 lea rdx, [rcx+rbx]; Src ; +0x114, 0x180019b84 call memmove ; +0x118, 0x180019b88 mov [rbp+57h+var_90], rdi ; +0x11d, 0x180019b8d mov r15, [rbp+57h+var_88] ; +0x121, 0x180019b91 mov r12, [rbp+57h+Buf] ; +0x125, 0x180019b95 lea rsi, [rbp+57h+Buf] ; +0x129, 0x180019b99 cmp r15, 0Fh ; +0x12d, 0x180019b9d setnbe r13b ; +0x131, 0x180019ba1 cmova rsi, r12 ; +0x135, 0x180019ba5 mov ebx, 6 ; +0x139, 0x180019ba9 cmp rdi, rbx ; +0x13e, 0x180019bae jb loc_180019C42 ; +0x141, 0x180019bb1 lea r14, [rdi+rsi] ; +0x147, 0x180019bb7 lea r8, [r14-5] ; +0x14b, 0x180019bbb sub r8, rsi; MaxCount ; +0x14f, 0x180019bbf lea edx, [rbx+71h]; Val ; +0x152, 0x180019bc2 mov rcx, rsi; Buf ; +0x155, 0x180019bc5 call memchr ; +0x158, 0x180019bc8 mov r9, rax ; +0x15d, 0x180019bcd test rax, rax ; +0x160, 0x180019bd0 jz short loc_180019C3B ; +0x163, 0x180019bd3 lea rdx, aWss; "wss://" ; +0x165, 0x180019bd5 nop dword ptr [rax+00h] ; +0x16c, 0x180019bdc xor ecx, ecx ; +0x170, 0x180019be0 movzx eax, byte ptr [r9+rcx] ; +0x172, 0x180019be2 inc rcx ; +0x177, 0x180019be7 cmp al, [rdx+rcx-1] ; +0x17a, 0x180019bea jnz short loc_180019C08 ; +0x17e, 0x180019bee cmp rcx, rbx ; +0x180, 0x180019bf0 jnz short loc_180019BE2 ; +0x183, 0x180019bf3 xor eax, eax ; +0x185, 0x180019bf5 jmp short loc_180019C0D ; +0x187, 0x180019bf7 sub r9, rsi ; +0x189, 0x180019bf9 mov r14, 0FFFFFFFFFFFFFFFFh ; +0x18c, 0x180019bfc jmp loc_180019B66 ; +0x193, 0x180019c03 sbb eax, eax ; +0x198, 0x180019c08 or eax, 1 ; +0x19a, 0x180019c0a test eax, eax ; +0x19d, 0x180019c0d jz loc_180019CBA ; +0x19f, 0x180019c0f inc r9 ; +0x1a5, 0x180019c15 lea r8, [r14-5] ; +0x1a8, 0x180019c18 sub r8, r9; MaxCount ; +0x1ac, 0x180019c1c mov edx, 77h ; 'w'; Val ; +0x1af, 0x180019c1f mov rcx, r9; Buf ; +0x1b4, 0x180019c24 call memchr ; +0x1b7, 0x180019c27 mov r9, rax ; +0x1bc, 0x180019c2c test rax, rax ; +0x1bf, 0x180019c2f lea rdx, aWss; "wss://" ; +0x1c2, 0x180019c32 jnz short loc_180019BE0 ; +0x1c9, 0x180019c39 mov r14, 0FFFFFFFFFFFFFFFFh ; +0x1cb, 0x180019c3b mov r9, r14 ; +0x1d2, 0x180019c42 test r9d, r9d ; +0x1d5, 0x180019c45 jnz short loc_180019C7C ; +0x1d8, 0x180019c48 cmp rdi, rbx ; +0x1da, 0x180019c4a cmovb rbx, rdi ; +0x1dd, 0x180019c4d lea rcx, [rbp+57h+Buf] ; +0x1e1, 0x180019c51 test r13b, r13b ; +0x1e5, 0x180019c55 cmovnz rcx, r12; void * ; +0x1e8, 0x180019c58 sub rdi, rbx ; +0x1ec, 0x180019c5c lea r8, [rdi+1]; Size ; +0x1ef, 0x180019c5f lea rdx, [rcx+rbx]; Src ; +0x1f3, 0x180019c63 call memmove ; +0x1f7, 0x180019c67 mov [rbp+57h+var_90], rdi ; +0x1fc, 0x180019c6c mov [rbp+57h+var_C0], 1 ; +0x200, 0x180019c70 mov r15, [rbp+57h+var_88] ; +0x204, 0x180019c74 mov r12, [rbp+57h+Buf] ; +0x208, 0x180019c78 lea rsi, [rbp+57h+Buf] ; +0x20c, 0x180019c7c cmp r15, 0Fh ; +0x210, 0x180019c80 setnbe r13b ; +0x214, 0x180019c84 cmova rsi, r12 ; +0x218, 0x180019c88 cmp rdi, 1 ; +0x21c, 0x180019c8c jb short loc_180019CFE ; +0x220, 0x180019c90 lea r14, [rdi+rsi] ; +0x222, 0x180019c92 mov r8, r14 ; +0x226, 0x180019c96 sub r8, rsi; MaxCount ; +0x229, 0x180019c99 mov edx, 3Ah ; ':'; Val ; +0x22c, 0x180019c9c mov rcx, rsi; Buf ; +0x231, 0x180019ca1 call memchr ; +0x234, 0x180019ca4 mov rbx, rax ; +0x239, 0x180019ca9 test rax, rax ; +0x23c, 0x180019cac jz short loc_180019CF0 ; +0x23f, 0x180019caf cmp byte ptr [rbx], 3Ah ; ':' ; +0x241, 0x180019cb1 jnz short loc_180019CC9 ; +0x244, 0x180019cb4 xor eax, eax ; +0x246, 0x180019cb6 jmp short loc_180019CCE ; +0x248, 0x180019cb8 sub r9, rsi ; +0x24a, 0x180019cba mov r14, 0FFFFFFFFFFFFFFFFh ; +0x24d, 0x180019cbd jmp loc_180019C45 ; +0x254, 0x180019cc4 sbb eax, eax ; +0x259, 0x180019cc9 or eax, 1 ; +0x25b, 0x180019ccb test eax, eax ; +0x25e, 0x180019cce jz short loc_180019CF9 ; +0x260, 0x180019cd0 inc rbx ; +0x262, 0x180019cd2 mov r8, r14 ; +0x265, 0x180019cd5 sub r8, rbx; MaxCount ; +0x268, 0x180019cd8 mov edx, 3Ah ; ':'; Val ; +0x26b, 0x180019cdb mov rcx, rbx; Buf ; +0x270, 0x180019ce0 call memchr ; +0x273, 0x180019ce3 mov rbx, rax ; +0x278, 0x180019ce8 test rax, rax ; +0x27b, 0x180019ceb jnz short loc_180019CB1 ; +0x27e, 0x180019cee mov rbx, 0FFFFFFFFFFFFFFFFh ; +0x280, 0x180019cf0 jmp short loc_180019D01 ; +0x287, 0x180019cf7 sub rbx, rsi ; +0x289, 0x180019cf9 jmp short loc_180019D01 ; +0x28c, 0x180019cfc mov rbx, r14 ; +0x28e, 0x180019cfe test ebx, ebx ; +0x291, 0x180019d01 js loc_180019DB3 ; +0x293, 0x180019d03 lea eax, [rbx+1] ; +0x299, 0x180019d09 movsxd rcx, eax ; +0x29c, 0x180019d0c xorps xmm0, xmm0 ; +0x29f, 0x180019d0f movups xmmword ptr [rbp+57h+String], xmm0 ; +0x2a2, 0x180019d12 xor eax, eax ; +0x2a6, 0x180019d16 mov [rbp+57h+Size], rax ; +0x2a8, 0x180019d18 mov [rbp+57h+var_48], rax ; +0x2ac, 0x180019d1c cmp rdi, rcx ; +0x2b0, 0x180019d20 jb loc_18001A33D ; +0x2b3, 0x180019d23 mov rax, rdi ; +0x2b9, 0x180019d29 sub rax, rcx ; +0x2bc, 0x180019d2c cmp rax, rdi ; +0x2bf, 0x180019d2f cmovb rdi, rax ; +0x2c2, 0x180019d32 lea rdx, [rbp+57h+Buf] ; +0x2c6, 0x180019d36 test r13b, r13b ; +0x2ca, 0x180019d3a cmovnz rdx, r12 ; +0x2cd, 0x180019d3d add rdx, rcx ; +0x2d1, 0x180019d41 mov r8, rdi ; +0x2d4, 0x180019d44 lea rcx, [rbp+57h+String] ; +0x2d7, 0x180019d47 call sub_180003AB0 ; +0x2db, 0x180019d4b lea rcx, [rbp+57h+String] ; +0x2e0, 0x180019d50 cmp [rbp+57h+var_48], 0Fh ; +0x2e4, 0x180019d54 cmova rcx, [rbp+57h+String]; String ; +0x2e9, 0x180019d59 call cs:atoi ; +0x2ee, 0x180019d5e mov r13d, eax ; +0x2f4, 0x180019d64 mov rdx, [rbp+57h+var_48] ; +0x2f7, 0x180019d67 cmp rdx, 0Fh ; +0x2fb, 0x180019d6b jbe short loc_180019DA5 ; +0x2ff, 0x180019d6f inc rdx ; +0x301, 0x180019d71 mov rcx, [rbp+57h+String]; Block ; +0x304, 0x180019d74 mov rax, rcx ; +0x308, 0x180019d78 cmp rdx, 1000h ; +0x30b, 0x180019d7b jb short loc_180019DA0 ; +0x312, 0x180019d82 add rdx, 27h ; ''' ; +0x314, 0x180019d84 mov rcx, [rcx-8] ; +0x318, 0x180019d88 sub rax, rcx ; +0x31c, 0x180019d8c add rax, 0FFFFFFFFFFFFFFF8h ; +0x31f, 0x180019d8f cmp rax, 1Fh ; +0x323, 0x180019d93 jbe short loc_180019DA0 ; +0x327, 0x180019d97 call cs:_invalid_parameter_noinfo_noreturn ; +0x329, 0x180019d99 align 20h ; +0x32f, 0x180019d9f call j_j_free ; +0x330, 0x180019da0 mov r15, [rbp+57h+var_88] ; +0x335, 0x180019da5 mov rdi, [rbp+57h+var_90] ; +0x339, 0x180019da9 mov r12, [rbp+57h+Buf] ; +0x33d, 0x180019dad jmp short loc_180019DB9 ; +0x341, 0x180019db1 mov r13d, 50h ; 'P' ; +0x343, 0x180019db3 movsxd rcx, ebx ; +0x349, 0x180019db9 lea rbx, [rbp+57h+Buf] ; +0x34c, 0x180019dbc cmp r15, 0Fh ; +0x350, 0x180019dc0 setnbe r14b ; +0x354, 0x180019dc4 cmova rbx, r12 ; +0x358, 0x180019dc8 cmp rdi, 1 ; +0x35c, 0x180019dcc jb short loc_180019E31 ; +0x360, 0x180019dd0 lea rax, [rdi-1] ; +0x362, 0x180019dd2 cmp rcx, rax ; +0x366, 0x180019dd6 ja short loc_180019E31 ; +0x369, 0x180019dd9 lea rsi, [rdi+rbx] ; +0x36b, 0x180019ddb add rcx, rbx; Buf ; +0x36f, 0x180019ddf mov r8, rsi ; +0x372, 0x180019de2 sub r8, rcx; MaxCount ; +0x375, 0x180019de5 mov edx, 2Fh ; '/'; Val ; +0x378, 0x180019de8 call memchr ; +0x37d, 0x180019ded mov rcx, rax ; +0x382, 0x180019df2 test rax, rax ; +0x385, 0x180019df5 jz short loc_180019E31 ; +0x388, 0x180019df8 nop word ptr [rax+rax+00h] ; +0x38a, 0x180019dfa cmp byte ptr [rcx], 2Fh ; '/' ; +0x390, 0x180019e00 jnz short loc_180019E09 ; +0x393, 0x180019e03 xor eax, eax ; +0x395, 0x180019e05 jmp short loc_180019E0E ; +0x397, 0x180019e07 sbb eax, eax ; +0x399, 0x180019e09 or eax, 1 ; +0x39b, 0x180019e0b test eax, eax ; +0x39e, 0x180019e0e jz loc_180019F01 ; +0x3a0, 0x180019e10 inc rcx; Buf ; +0x3a6, 0x180019e16 mov r8, rsi ; +0x3a9, 0x180019e19 sub r8, rcx; MaxCount ; +0x3ac, 0x180019e1c mov edx, 2Fh ; '/'; Val ; +0x3af, 0x180019e1f call memchr ; +0x3b4, 0x180019e24 mov rcx, rax ; +0x3b9, 0x180019e29 test rax, rax ; +0x3bc, 0x180019e2c jnz short loc_180019E00 ; +0x3bf, 0x180019e2f mov rcx, 0FFFFFFFFFFFFFFFFh ; +0x3c1, 0x180019e31 xorps xmm0, xmm0 ; +0x3c8, 0x180019e38 movups xmmword ptr [rbp+57h+Block], xmm0 ; +0x3cb, 0x180019e3b mov [rbp+57h+var_70], 1 ; +0x3cf, 0x180019e3f mov [rbp+57h+var_68], 0Fh ; +0x3d7, 0x180019e47 movzx eax, cs:word_180023388 ; +0x3df, 0x180019e4f mov byte ptr [rbp+57h+Block], al ; +0x3e6, 0x180019e56 mov byte ptr [rbp+57h+Block+1], 0 ; +0x3e9, 0x180019e59 test ecx, ecx ; +0x3ed, 0x180019e5d js loc_180019F68 ; +0x3ef, 0x180019e5f lea eax, [rcx+1] ; +0x3f5, 0x180019e65 movsxd rcx, eax ; +0x3f8, 0x180019e68 movups xmmword ptr [rbp+57h+String], xmm0 ; +0x3fb, 0x180019e6b xor eax, eax ; +0x3ff, 0x180019e6f mov [rbp+57h+Size], rax ; +0x401, 0x180019e71 mov [rbp+57h+var_48], rax ; +0x405, 0x180019e75 cmp rdi, rcx ; +0x409, 0x180019e79 jb loc_18001A337 ; +0x40c, 0x180019e7c mov rax, rdi ; +0x412, 0x180019e82 sub rax, rcx ; +0x415, 0x180019e85 cmp rax, rdi ; +0x418, 0x180019e88 cmovb rdi, rax ; +0x41b, 0x180019e8b lea rdx, [rbp+57h+Buf] ; +0x41f, 0x180019e8f test r14b, r14b ; +0x423, 0x180019e93 cmovnz rdx, r12 ; +0x426, 0x180019e96 add rdx, rcx ; +0x42a, 0x180019e9a mov r8, rdi ; +0x42d, 0x180019e9d lea rcx, [rbp+57h+String] ; +0x430, 0x180019ea0 call sub_180003AB0 ; +0x434, 0x180019ea4 nop ; +0x439, 0x180019ea9 lea r9, [rbp+57h+String] ; +0x43a, 0x180019eaa mov rdi, [rbp+57h+String] ; +0x43e, 0x180019eae mov r14, [rbp+57h+var_48] ; +0x442, 0x180019eb2 cmp r14, 0Fh ; +0x446, 0x180019eb6 cmova r9, rdi ; +0x44a, 0x180019eba mov rcx, [rbp+57h+var_70] ; +0x44e, 0x180019ebe mov rdx, [rbp+57h+var_68] ; +0x452, 0x180019ec2 mov rax, rdx ; +0x456, 0x180019ec6 sub rax, rcx ; +0x459, 0x180019ec9 mov rsi, [rbp+57h+Size] ; +0x45c, 0x180019ecc cmp rsi, rax ; +0x460, 0x180019ed0 ja short loc_180019F09 ; +0x463, 0x180019ed3 lea rax, [rsi+rcx] ; +0x465, 0x180019ed5 mov [rbp+57h+var_70], rax ; +0x469, 0x180019ed9 lea rbx, [rbp+57h+Block] ; +0x46d, 0x180019edd cmp rdx, 0Fh ; +0x471, 0x180019ee1 cmova rbx, [rbp+57h+Block] ; +0x475, 0x180019ee5 add rbx, rcx ; +0x47a, 0x180019eea mov r8, rsi; Size ; +0x47d, 0x180019eed mov rdx, r9; Src ; +0x480, 0x180019ef0 mov rcx, rbx; void * ; +0x483, 0x180019ef3 call memmove ; +0x486, 0x180019ef6 mov byte ptr [rsi+rbx], 0 ; +0x48b, 0x180019efb jmp short loc_180019F22 ; +0x48f, 0x180019eff sub rcx, rbx ; +0x491, 0x180019f01 jmp loc_180019E38 ; +0x494, 0x180019f04 mov [rsp+0F0h+var_D0], rsi; Size ; +0x499, 0x180019f09 mov rdx, rsi ; +0x49e, 0x180019f0e lea rcx, [rbp+57h+Block]; Src ; +0x4a1, 0x180019f11 call sub_180003810 ; +0x4a5, 0x180019f15 mov r14, [rbp+57h+var_48] ; +0x4aa, 0x180019f1a mov rdi, [rbp+57h+String] ; +0x4ae, 0x180019f1e cmp r14, 0Fh ; +0x4b2, 0x180019f22 jbe short loc_180019F5C ; +0x4b6, 0x180019f26 lea rdx, [r14+1] ; +0x4b8, 0x180019f28 mov rax, rdi ; +0x4bc, 0x180019f2c cmp rdx, 1000h ; +0x4bf, 0x180019f2f jb short loc_180019F54 ; +0x4c6, 0x180019f36 add rdx, 27h ; ''' ; +0x4c8, 0x180019f38 mov rdi, [rdi-8] ; +0x4cc, 0x180019f3c sub rax, rdi ; +0x4d0, 0x180019f40 add rax, 0FFFFFFFFFFFFFFF8h ; +0x4d3, 0x180019f43 cmp rax, 1Fh ; +0x4d7, 0x180019f47 jbe short loc_180019F54 ; +0x4db, 0x180019f4b call cs:_invalid_parameter_noinfo_noreturn ; +0x4dd, 0x180019f4d align 4 ; +0x4e3, 0x180019f53 mov rcx, rdi; Block ; +0x4e4, 0x180019f54 call j_j_free ; +0x4e7, 0x180019f57 mov r12, [rbp+57h+Buf] ; +0x4ec, 0x180019f5c mov rdi, [rbp+57h+var_90] ; +0x4f0, 0x180019f60 mov r15, [rbp+57h+var_88] ; +0x4f4, 0x180019f64 lea rbx, [rbp+57h+Buf] ; +0x4f8, 0x180019f68 cmp r15, 0Fh ; +0x4fc, 0x180019f6c setnbe r14b ; +0x500, 0x180019f70 cmova rbx, r12 ; +0x504, 0x180019f74 cmp rdi, 1 ; +0x508, 0x180019f78 jb short loc_180019FD1 ; +0x50c, 0x180019f7c lea rsi, [rdi+rbx] ; +0x50e, 0x180019f7e mov r8, rsi ; +0x512, 0x180019f82 sub r8, rbx; MaxCount ; +0x515, 0x180019f85 mov edx, 3Ah ; ':'; Val ; +0x518, 0x180019f88 mov rcx, rbx; Buf ; +0x51d, 0x180019f8d call memchr ; +0x520, 0x180019f90 test rax, rax ; +0x525, 0x180019f95 jz short loc_180019FD1 ; +0x528, 0x180019f98 nop word ptr [rax+rax+00h] ; +0x52a, 0x180019f9a cmp byte ptr [rax], 3Ah ; ':' ; +0x530, 0x180019fa0 jnz short loc_180019FA9 ; +0x533, 0x180019fa3 xor ecx, ecx ; +0x535, 0x180019fa5 jmp short loc_180019FAE ; +0x537, 0x180019fa7 sbb ecx, ecx ; +0x539, 0x180019fa9 or ecx, 1 ; +0x53b, 0x180019fab test ecx, ecx ; +0x53e, 0x180019fae jz loc_18001A147 ; +0x540, 0x180019fb0 inc rax ; +0x546, 0x180019fb6 mov r8, rsi ; +0x549, 0x180019fb9 sub r8, rax; MaxCount ; +0x54c, 0x180019fbc mov edx, 3Ah ; ':'; Val ; +0x54f, 0x180019fbf mov rcx, rax; Buf ; +0x554, 0x180019fc4 call memchr ; +0x557, 0x180019fc7 test rax, rax ; +0x55c, 0x180019fcc jnz short loc_180019FA0 ; +0x55f, 0x180019fcf mov rsi, 0FFFFFFFFFFFFFFFFh ; +0x561, 0x180019fd1 mov rax, rsi ; +0x568, 0x180019fd8 test eax, eax ; +0x56b, 0x180019fdb js short loc_18001A029 ; +0x56d, 0x180019fdd movsxd r9, eax ; +0x56f, 0x180019fdf cmp rdi, r9 ; +0x572, 0x180019fe2 jb loc_18001A337 ; +0x575, 0x180019fe5 mov rax, rdi ; +0x57b, 0x180019feb sub rax, r9 ; +0x57e, 0x180019fee mov rdx, rdi ; +0x581, 0x180019ff1 cmp rax, rdi ; +0x584, 0x180019ff4 cmovb rdx, rax ; +0x587, 0x180019ff7 lea rcx, [rbp+57h+Buf] ; +0x58b, 0x180019ffb test r14b, r14b ; +0x58f, 0x180019fff cmovnz rcx, r12 ; +0x592, 0x18001a002 add rcx, r9; void * ; +0x596, 0x18001a006 sub rdi, rdx ; +0x599, 0x18001a009 mov r8, rdi ; +0x59c, 0x18001a00c sub r8, r9 ; +0x59f, 0x18001a00f inc r8; Size ; +0x5a2, 0x18001a012 add rdx, rcx; Src ; +0x5a5, 0x18001a015 call memmove ; +0x5a8, 0x18001a018 mov [rbp+57h+var_90], rdi ; +0x5ad, 0x18001a01d mov r15, [rbp+57h+var_88] ; +0x5b1, 0x18001a021 mov r12, [rbp+57h+Buf] ; +0x5b5, 0x18001a025 mov r14, [rbp+57h+var_B0] ; +0x5b9, 0x18001a029 lea rcx, [r14+10h]; void * ; +0x5bd, 0x18001a02d lea rax, [rbp+57h+Buf] ; +0x5c1, 0x18001a031 cmp rcx, rax ; +0x5c5, 0x18001a035 jz short loc_18001A04E ; +0x5c8, 0x18001a038 lea rdx, [rbp+57h+Buf] ; +0x5ca, 0x18001a03a cmp r15, 0Fh ; +0x5ce, 0x18001a03e cmova rdx, r12; Src ; +0x5d2, 0x18001a042 mov r8, rdi; Size ; +0x5d6, 0x18001a046 call sub_180003BC0 ; +0x5d9, 0x18001a049 mov [r14+30h], r13d ; +0x5de, 0x18001a04e lea rcx, [r14+38h]; void * ; +0x5e2, 0x18001a052 lea rax, [rbp+57h+Block] ; +0x5e6, 0x18001a056 cmp rcx, rax ; +0x5ea, 0x18001a05a jz short loc_18001A076 ; +0x5ed, 0x18001a05d lea rdx, [rbp+57h+Block] ; +0x5ef, 0x18001a05f cmp [rbp+57h+var_68], 0Fh ; +0x5f3, 0x18001a063 cmova rdx, [rbp+57h+Block]; Src ; +0x5f8, 0x18001a068 mov r8, [rbp+57h+var_70]; Size ; +0x5fd, 0x18001a06d call sub_180003BC0 ; +0x601, 0x18001a071 movzx eax, [rbp+57h+var_C0] ; +0x606, 0x18001a076 mov [r14+78h], eax ; +0x60a, 0x18001a07a mov r15, [rbp+57h+var_B8] ; +0x60e, 0x18001a07e test r15, r15 ; +0x612, 0x18001a082 jz short loc_18001A097 ; +0x615, 0x18001a085 mov rax, [r15+8] ; +0x617, 0x18001a087 sub rax, [r15] ; +0x61b, 0x18001a08b sar rax, 5 ; +0x61e, 0x18001a08e test rax, rax ; +0x622, 0x18001a092 jnz short loc_18001A09C ; +0x625, 0x18001a095 mov eax, 1 ; +0x627, 0x18001a097 inc eax ; +0x62c, 0x18001a09c movsxd rbx, eax ; +0x62e, 0x18001a09e mov eax, 38h ; '8' ; +0x631, 0x18001a0a1 mul rbx ; +0x636, 0x18001a0a6 cmovo rax, rsi ; +0x639, 0x18001a0a9 mov rcx, rax; Size ; +0x63d, 0x18001a0ad call j_??2@YAPEAX_K@Z; operator new(unsigned __int64) ; +0x640, 0x18001a0b0 mov [r14+80h], rax ; +0x645, 0x18001a0b5 imul r8, rbx, 38h ; '8'; Size ; +0x64c, 0x18001a0bc xor edx, edx; Val ; +0x650, 0x18001a0c0 mov rcx, rax; void * ; +0x652, 0x18001a0c2 call memset ; +0x655, 0x18001a0c5 test r15, r15 ; +0x65a, 0x18001a0ca jz loc_18001A156 ; +0x65d, 0x18001a0cd mov rbx, [r15] ; +0x663, 0x18001a0d3 cmp rbx, [r15+8] ; +0x666, 0x18001a0d6 jz loc_18001A190 ; +0x66a, 0x18001a0da xor edi, edi ; +0x670, 0x18001a0e0 lea rsi, sub_180019520 ; +0x672, 0x18001a0e2 nop dword ptr [rax+00000000h] ; +0x679, 0x18001a0e9 mov rcx, [rbx+10h] ; +0x680, 0x18001a0f0 inc rcx; Size ; +0x684, 0x18001a0f4 call j_??2@YAPEAX_K@Z; operator new(unsigned __int64) ; +0x687, 0x18001a0f7 mov r8, rax ; +0x68c, 0x18001a0fc mov rcx, rbx ; +0x68f, 0x18001a0ff cmp qword ptr [rbx+18h], 0Fh ; +0x692, 0x18001a102 jbe short loc_18001A10C ; +0x697, 0x18001a107 mov rcx, [rbx] ; +0x699, 0x18001a109 mov rdx, r8 ; +0x69c, 0x18001a10c sub rdx, rcx ; +0x69f, 0x18001a10f movzx eax, byte ptr [rcx] ; +0x6a2, 0x18001a112 mov [rdx+rcx], al ; +0x6a5, 0x18001a115 lea rcx, [rcx+1] ; +0x6a8, 0x18001a118 test al, al ; +0x6ac, 0x18001a11c jnz short loc_18001A112 ; +0x6ae, 0x18001a11e mov rax, [r14+80h] ; +0x6b0, 0x18001a120 mov [rdi+rax], r8 ; +0x6b7, 0x18001a127 mov rax, [r14+80h] ; +0x6bb, 0x18001a12b mov [rdi+rax+8], rsi ; +0x6c2, 0x18001a132 add rbx, 20h ; ' ' ; +0x6c7, 0x18001a137 add rdi, 38h ; '8' ; +0x6cb, 0x18001a13b cmp rbx, [r15+8] ; +0x6cf, 0x18001a13f jnz short loc_18001A0F0 ; +0x6d3, 0x18001a143 jmp short loc_18001A190 ; +0x6d5, 0x18001a145 sub rax, rbx ; +0x6d7, 0x18001a147 mov rsi, 0FFFFFFFFFFFFFFFFh ; +0x6da, 0x18001a14a jmp loc_180019FDB ; +0x6e1, 0x18001a151 mov ecx, 14h; Size ; +0x6e6, 0x18001a156 call j_??2@YAPEAX_K@Z; operator new(unsigned __int64) ; +0x6eb, 0x18001a15b movups xmm0, cs:xmmword_180028FA0 ; +0x6f0, 0x18001a160 movups xmmword ptr [rax], xmm0 ; +0x6f7, 0x18001a167 movzx ecx, cs:byte_180028FB0 ; +0x6fa, 0x18001a16a mov [rax+10h], cl ; +0x701, 0x18001a171 mov rcx, [r14+80h] ; +0x704, 0x18001a174 mov [rcx], rax ; +0x70b, 0x18001a17b mov rax, [r14+80h] ; +0x70e, 0x18001a17e lea rsi, sub_180019520 ; +0x715, 0x18001a185 mov [rax+8], rsi ; +0x71c, 0x18001a18c mov ecx, 78h ; 'x'; Size ; +0x720, 0x18001a190 call ??2@YAPEAX_K@Z; operator new(unsigned __int64) ; +0x725, 0x18001a195 mov rdi, rax ; +0x72a, 0x18001a19a mov [rbp+57h+var_B8], rax ; +0x72d, 0x18001a19d mov rcx, rax ; +0x731, 0x18001a1a1 call cs:??0CCObject@cocos2d@@QEAA@XZ; cocos2d::CCObject::CCObject(void) ; +0x734, 0x18001a1a4 nop ; +0x73a, 0x18001a1aa lea rax, ??_7WsThreadHelper@extension@cocos2d@@6B@; const cocos2d::extension::WsThreadHelper::`vftable' ; +0x73b, 0x18001a1ab mov [rdi], rax ; +0x742, 0x18001a1b2 xor esi, esi ; +0x745, 0x18001a1b5 mov [rdi+68h], rsi ; +0x747, 0x18001a1b7 mov [rdi+70h], sil ; +0x74b, 0x18001a1bb lea ecx, [rsi+10h]; Size ; +0x74f, 0x18001a1bf call ??2@YAPEAX_K@Z; operator new(unsigned __int64) ; +0x752, 0x18001a1c2 mov rbx, rax ; +0x757, 0x18001a1c7 mov [rbp+57h+var_B0], rax ; +0x75a, 0x18001a1ca mov [rax], rsi ; +0x75e, 0x18001a1ce mov [rax+8], rsi ; +0x761, 0x18001a1d1 lea ecx, [rsi+18h]; Size ; +0x765, 0x18001a1d5 call ??2@YAPEAX_K@Z; operator new(unsigned __int64) ; +0x768, 0x18001a1d8 mov [rax], rax ; +0x76d, 0x18001a1dd mov [rax+8], rax ; +0x770, 0x18001a1e0 mov [rbx], rax ; +0x774, 0x18001a1e4 mov [rdi+38h], rbx ; +0x777, 0x18001a1e7 lea rcx, [rdi+48h] ; +0x77b, 0x18001a1eb xor edx, edx ; +0x77f, 0x18001a1ef call cs:pthread_mutex_init ; +0x781, 0x18001a1f1 lea ecx, [rsi+10h]; Size ; +0x787, 0x18001a1f7 call ??2@YAPEAX_K@Z; operator new(unsigned __int64) ; +0x78a, 0x18001a1fa mov rbx, rax ; +0x78f, 0x18001a1ff mov [rbp+57h+var_B0], rax ; +0x792, 0x18001a202 mov [rax], rsi ; +0x796, 0x18001a206 mov [rax+8], rsi ; +0x799, 0x18001a209 lea ecx, [rsi+18h]; Size ; +0x79d, 0x18001a20d call ??2@YAPEAX_K@Z; operator new(unsigned __int64) ; +0x7a0, 0x18001a210 mov [rax], rax ; +0x7a5, 0x18001a215 mov [rax+8], rax ; +0x7a8, 0x18001a218 mov [rbx], rax ; +0x7ac, 0x18001a21c mov [rdi+40h], rbx ; +0x7af, 0x18001a21f lea rcx, [rdi+50h] ; +0x7b3, 0x18001a223 xor edx, edx ; +0x7b7, 0x18001a227 call cs:pthread_mutex_init ; +0x7b9, 0x18001a229 call cs:?sharedDirector@CCDirector@cocos2d@@SAPEAV12@XZ; cocos2d::CCDirector::sharedDirector(void) ; +0x7bf, 0x18001a22f mov rdx, [rax] ; +0x7c5, 0x18001a235 mov rcx, rax ; +0x7c8, 0x18001a238 call qword ptr [rdx+70h] ; +0x7cb, 0x18001a23b mov rcx, rax ; +0x7ce, 0x18001a23e xor r9d, r9d ; +0x7d1, 0x18001a241 xor r8d, r8d ; +0x7d4, 0x18001a244 mov rdx, rdi ; +0x7d7, 0x18001a247 call cs:?scheduleUpdateForTarget@CCScheduler@cocos2d@@QEAAXPEAVCCObject@2@H_N@Z; cocos2d::CCScheduler::scheduleUpdateForTarget(cocos2d::CCObject *,int,bool) ; +0x7da, 0x18001a24a nop ; +0x7e0, 0x18001a250 mov [r14+58h], rdi ; +0x7e1, 0x18001a251 mov [rdi+68h], r14 ; +0x7e5, 0x18001a255 lea rcx, [rbp+57h+var_B8] ; +0x7e9, 0x18001a259 call cs:pthread_attr_init ; +0x7ed, 0x18001a25d lea rcx, [rdi+58h] ; +0x7f3, 0x18001a263 mov r9, rdi ; +0x7f7, 0x18001a267 lea r8, sub_180019690 ; +0x7fa, 0x18001a26a lea rdx, [rbp+57h+var_B8] ; +0x801, 0x18001a271 call cs:pthread_create ; +0x805, 0x18001a275 nop ; +0x80b, 0x18001a27b test eax, eax ; +0x80c, 0x18001a27c setz bl ; +0x80e, 0x18001a27e mov rdx, [rbp+57h+var_68] ; +0x811, 0x18001a281 cmp rdx, 0Fh ; +0x815, 0x18001a285 jbe short loc_18001A2BF ; +0x819, 0x18001a289 inc rdx ; +0x81b, 0x18001a28b mov rcx, [rbp+57h+Block]; Block ; +0x81e, 0x18001a28e mov rax, rcx ; +0x822, 0x18001a292 cmp rdx, 1000h ; +0x825, 0x18001a295 jb short loc_18001A2BA ; +0x82c, 0x18001a29c add rdx, 27h ; ''' ; +0x82e, 0x18001a29e mov rcx, [rcx-8] ; +0x832, 0x18001a2a2 sub rax, rcx ; +0x836, 0x18001a2a6 add rax, 0FFFFFFFFFFFFFFF8h ; +0x839, 0x18001a2a9 cmp rax, 1Fh ; +0x83d, 0x18001a2ad jbe short loc_18001A2BA ; +0x841, 0x18001a2b1 call cs:_invalid_parameter_noinfo_noreturn ; +0x843, 0x18001a2b3 align 2 ; +0x849, 0x18001a2b9 call j_j_free ; +0x84a, 0x18001a2ba mov [rbp+57h+var_70], rsi ; +0x84f, 0x18001a2bf mov [rbp+57h+var_68], 0Fh ; +0x853, 0x18001a2c3 mov byte ptr [rbp+57h+Block], 0 ; +0x85b, 0x18001a2cb mov rdx, [rbp+57h+var_88] ; +0x85f, 0x18001a2cf cmp rdx, 0Fh ; +0x863, 0x18001a2d3 jbe short loc_18001A30D ; +0x867, 0x18001a2d7 inc rdx ; +0x869, 0x18001a2d9 mov rcx, [rbp+57h+Buf]; Block ; +0x86c, 0x18001a2dc mov rax, rcx ; +0x870, 0x18001a2e0 cmp rdx, 1000h ; +0x873, 0x18001a2e3 jb short loc_18001A308 ; +0x87a, 0x18001a2ea add rdx, 27h ; ''' ; +0x87c, 0x18001a2ec mov rcx, [rcx-8] ; +0x880, 0x18001a2f0 sub rax, rcx ; +0x884, 0x18001a2f4 add rax, 0FFFFFFFFFFFFFFF8h ; +0x887, 0x18001a2f7 cmp rax, 1Fh ; +0x88b, 0x18001a2fb jbe short loc_18001A308 ; +0x88f, 0x18001a2ff call cs:_invalid_parameter_noinfo_noreturn ; +0x891, 0x18001a301 align 8 ; +0x897, 0x18001a307 call j_j_free ; +0x898, 0x18001a308 movzx eax, bl ; +0x89d, 0x18001a30d mov rcx, [rbp+57h+var_40] ; +0x8a0, 0x18001a310 xor rcx, rsp; StackCookie ; +0x8a4, 0x18001a314 call __security_check_cookie ; +0x8a7, 0x18001a317 mov rbx, [rsp+0F0h+arg_8] ; +0x8ac, 0x18001a31c add rsp, 0C0h ; +0x8b4, 0x18001a324 pop r15 ; +0x8bb, 0x18001a32b pop r14 ; +0x8bd, 0x18001a32d pop r13 ; +0x8bf, 0x18001a32f pop r12 ; +0x8c1, 0x18001a331 pop rdi ; +0x8c3, 0x18001a333 pop rsi ; +0x8c4, 0x18001a334 pop rbp ; +0x8c5, 0x18001a335 retn ; +0x8c6, 0x18001a336 call sub_18001ABF0 ; +0x8c7, 0x18001a337 db 90h ; +0x8cc, 0x18001a33c call sub_18001ABF0 ; +0x8cd, 0x18001a33d db 0CCh ; +0x8d2, 0x18001a342