; ; sub_180003810 from 0x180003810 to 0x18000399b (395 bytes) ; ; 8 xrefs: ; > sub_180001880 @ 0x1800018eb ; > sub_1800039A0 @ 0x180003a10 ; > sub_180003A20 @ 0x180003a9d ; > cocos2d::extension::WebSocket::init @ 0x180019f15 ; > @ 0x18002d2b4 ; > @ 0x18002d2c4 ; > @ 0x18002d2e4 ; > @ 0x180049258 ; ; 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 ; push rbx ; +0x0, 0x180003810 push rsi ; +0x2, 0x180003812 push r12 ; +0x3, 0x180003813 push r14 ; +0x5, 0x180003815 sub rsp, 28h ; +0x7, 0x180003817 mov r14, [rcx+10h] ; +0xb, 0x18000381b mov rbx, 7FFFFFFFFFFFFFFFh ; +0xf, 0x18000381f mov rax, rbx ; +0x19, 0x180003829 mov r12, r9 ; +0x1c, 0x18000382c sub rax, r14 ; +0x1f, 0x18000382f mov rsi, rcx ; +0x22, 0x180003832 cmp rax, rdx ; +0x25, 0x180003835 jb loc_18000398F ; +0x28, 0x180003838 mov [rsp+48h+arg_0], rbp ; +0x2e, 0x18000383e lea rbp, [r14+rdx] ; +0x33, 0x180003843 mov [rsp+48h+arg_8], rdi ; +0x37, 0x180003847 mov rdx, rbp ; +0x3c, 0x18000384c mov [rsp+48h+arg_10], r13 ; +0x3f, 0x18000384f or rdx, 0Fh ; +0x44, 0x180003854 mov r13, [rcx+18h] ; +0x48, 0x180003858 mov [rsp+48h+var_28], r15 ; +0x4c, 0x18000385c cmp rdx, rbx ; +0x51, 0x180003861 ja short loc_1800038A0 ; +0x54, 0x180003864 mov rcx, r13 ; +0x56, 0x180003866 mov rax, rbx ; +0x59, 0x180003869 shr rcx, 1 ; +0x5c, 0x18000386c sub rax, rcx ; +0x5f, 0x18000386f cmp r13, rax ; +0x62, 0x180003872 ja short loc_1800038A0 ; +0x65, 0x180003875 lea rax, [rcx+r13] ; +0x67, 0x180003877 mov rbx, rdx ; +0x6b, 0x18000387b cmp rdx, rax ; +0x6e, 0x18000387e cmovb rbx, rax ; +0x71, 0x180003881 lea rax, [rbx+1] ; +0x75, 0x180003885 cmp rax, 1000h ; +0x79, 0x180003889 jb short loc_1800038CA ; +0x7f, 0x18000388f lea rcx, [rax+27h] ; +0x81, 0x180003891 cmp rcx, rax ; +0x85, 0x180003895 jbe loc_180003995 ; +0x88, 0x180003898 jmp short loc_1800038AE ; +0x8e, 0x18000389e mov rcx, 8000000000000000h ; +0x90, 0x1800038a0 add rcx, 27h ; '''; Size ; +0x9a, 0x1800038aa call ??2@YAPEAX_K@Z; operator new(unsigned __int64) ; +0x9e, 0x1800038ae test rax, rax ; +0xa3, 0x1800038b3 jz loc_180003948 ; +0xa6, 0x1800038b6 lea rdi, [rax+27h] ; +0xac, 0x1800038bc and rdi, 0FFFFFFFFFFFFFFE0h ; +0xb0, 0x1800038c0 mov [rdi-8], rax ; +0xb4, 0x1800038c4 jmp short loc_1800038DE ; +0xb8, 0x1800038c8 test rax, rax ; +0xba, 0x1800038ca jz short loc_1800038DC ; +0xbd, 0x1800038cd mov rcx, rax; Size ; +0xbf, 0x1800038cf call ??2@YAPEAX_K@Z; operator new(unsigned __int64) ; +0xc2, 0x1800038d2 mov rdi, rax ; +0xc7, 0x1800038d7 jmp short loc_1800038DE ; +0xca, 0x1800038da xor edi, edi ; +0xcc, 0x1800038dc mov [rsi+10h], rbp ; +0xce, 0x1800038de lea r15, [rdi+r14] ; +0xd2, 0x1800038e2 mov rbp, [rsp+48h+Size] ; +0xd6, 0x1800038e6 mov r8, r14; Size ; +0xdb, 0x1800038eb mov [rsi+18h], rbx ; +0xde, 0x1800038ee mov rcx, rdi; void * ; +0xe2, 0x1800038f2 cmp r13, 0Fh ; +0xe5, 0x1800038f5 jbe short loc_18000394F ; +0xe9, 0x1800038f9 mov rbx, [rsi] ; +0xeb, 0x1800038fb mov rdx, rbx; Src ; +0xee, 0x1800038fe call memcpy ; +0xf1, 0x180003901 mov r8, rbp; Size ; +0xf6, 0x180003906 mov rdx, r12; Src ; +0xf9, 0x180003909 mov rcx, r15; void * ; +0xfc, 0x18000390c call memcpy ; +0xff, 0x18000390f lea rdx, [r13+1] ; +0x104, 0x180003914 mov byte ptr [r15+rbp], 0 ; +0x108, 0x180003918 cmp rdx, 1000h ; +0x10d, 0x18000391d jb short loc_18000393E ; +0x114, 0x180003924 mov rcx, [rbx-8] ; +0x116, 0x180003926 add rdx, 27h ; ''' ; +0x11a, 0x18000392a sub rbx, rcx ; +0x11e, 0x18000392e lea rax, [rbx-8] ; +0x121, 0x180003931 cmp rax, 1Fh ; +0x125, 0x180003935 ja short loc_180003948 ; +0x129, 0x180003939 mov rbx, rcx ; +0x12b, 0x18000393b mov rcx, rbx; Block ; +0x12e, 0x18000393e call j_j_free ; +0x131, 0x180003941 jmp short loc_18000396A ; +0x136, 0x180003946 call cs:_invalid_parameter_noinfo_noreturn ; +0x138, 0x180003948 db 0CCh ; +0x13e, 0x18000394e mov rdx, rsi; Src ; +0x13f, 0x18000394f call memcpy ; +0x142, 0x180003952 mov r8, rbp; Size ; +0x147, 0x180003957 mov rdx, r12; Src ; +0x14a, 0x18000395a mov rcx, r15; void * ; +0x14d, 0x18000395d call memcpy ; +0x150, 0x180003960 mov byte ptr [r15+rbp], 0 ; +0x155, 0x180003965 mov [rsi], rdi ; +0x15a, 0x18000396a mov rax, rsi ; +0x15d, 0x18000396d mov r13, [rsp+48h+arg_10] ; +0x160, 0x180003970 mov rdi, [rsp+48h+arg_8] ; +0x165, 0x180003975 mov rbp, [rsp+48h+arg_0] ; +0x16a, 0x18000397a mov r15, [rsp+48h+var_28] ; +0x16f, 0x18000397f add rsp, 28h ; +0x174, 0x180003984 pop r14 ; +0x178, 0x180003988 pop r12 ; +0x17a, 0x18000398a pop rsi ; +0x17c, 0x18000398c pop rbx ; +0x17d, 0x18000398d retn ; +0x17e, 0x18000398e call sub_180003D90 ; +0x17f, 0x18000398f db 0CCh ; +0x184, 0x180003994 call ?cancel_current_task@Concurrency@@YAXXZ; Concurrency::cancel_current_task(void) ; +0x185, 0x180003995 db 0CCh ; +0x18a, 0x18000399a