; ; sub_180018310 from 0x180018310 to 0x180018415 (261 bytes) ; ; 3 xrefs: ; > sub_180017450 @ 0x180017450 ; > cocos2d::extension::CCHttpClient::~CCHttpClient @ 0x18001775c ; > @ 0x18004aac4 ; ; 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, 0x180018310 mov [rsp+arg_8], rbp ; +0x5, 0x180018315 mov [rsp+arg_10], rsi ; +0xa, 0x18001831a push rdi ; +0xf, 0x18001831f sub rsp, 20h ; +0x10, 0x180018320 mov rbx, rcx ; +0x14, 0x180018324 xor ebp, ebp ; +0x17, 0x180018327 mov rcx, [rcx+20h] ; +0x19, 0x180018329 test rcx, rcx ; +0x1d, 0x18001832d jz short loc_180018379 ; +0x20, 0x180018330 mov rax, [rbx+18h] ; +0x22, 0x180018332 dec rax ; +0x26, 0x180018336 add rcx, rax ; +0x29, 0x180018339 mov rax, [rbx+10h] ; +0x2c, 0x18001833c dec rax ; +0x30, 0x180018340 and rcx, rax ; +0x33, 0x180018343 mov rax, [rbx+8] ; +0x36, 0x180018346 mov rdi, [rax+rcx*8] ; +0x3a, 0x18001834a mov rcx, [rdi+38h] ; +0x3e, 0x18001834e test rcx, rcx ; +0x42, 0x180018352 jz short loc_180018367 ; +0x45, 0x180018355 mov rax, [rcx] ; +0x47, 0x180018357 cmp rcx, rdi ; +0x4a, 0x18001835a setnz dl ; +0x4d, 0x18001835d call qword ptr [rax+20h] ; +0x50, 0x180018360 mov [rdi+38h], rbp ; +0x53, 0x180018363 mov rcx, [rbx+20h] ; +0x57, 0x180018367 sub rcx, 1 ; +0x5b, 0x18001836b mov [rbx+20h], rcx ; +0x5f, 0x18001836f jnz short loc_180018332 ; +0x63, 0x180018373 mov [rbx+18h], rbp ; +0x65, 0x180018375 cmp [rbx+8], rbp ; +0x69, 0x180018379 lea rsi, [rbx+8] ; +0x6d, 0x18001837d jz short loc_1800183E3 ; +0x71, 0x180018381 mov rdi, [rbx+10h] ; +0x73, 0x180018383 test rdi, rdi ; +0x77, 0x180018387 jz short loc_1800183B2 ; +0x7a, 0x18001838a nop dword ptr [rax+00h] ; +0x7c, 0x18001838c mov rax, [rsi] ; +0x80, 0x180018390 dec rdi ; +0x83, 0x180018393 mov rcx, [rax+rdi*8]; Block ; +0x86, 0x180018396 test rcx, rcx ; +0x8a, 0x18001839a jz short loc_1800183A9 ; +0x8d, 0x18001839d mov edx, 40h ; '@' ; +0x8f, 0x18001839f call j_j_free ; +0x94, 0x1800183a4 test rdi, rdi ; +0x99, 0x1800183a9 jnz short loc_180018390 ; +0x9c, 0x1800183ac lea rsi, [rbx+8] ; +0x9e, 0x1800183ae mov rdx, [rbx+10h] ; +0xa2, 0x1800183b2 mov rcx, [rsi] ; +0xa6, 0x1800183b6 shl rdx, 3 ; +0xa9, 0x1800183b9 cmp rdx, 1000h ; +0xad, 0x1800183bd jb short loc_1800183DE ; +0xb4, 0x1800183c4 mov r8, [rcx-8] ; +0xb6, 0x1800183c6 add rdx, 27h ; ''' ; +0xba, 0x1800183ca sub rcx, r8 ; +0xbe, 0x1800183ce lea rax, [rcx-8] ; +0xc1, 0x1800183d1 cmp rax, 1Fh ; +0xc5, 0x1800183d5 ja short loc_18001840E ; +0xc9, 0x1800183d9 mov rcx, r8; Block ; +0xcb, 0x1800183db call j_j_free ; +0xce, 0x1800183de mov rcx, [rbx]; Block ; +0xd3, 0x1800183e3 mov edx, 10h ; +0xd6, 0x1800183e6 mov [rbx], rbp ; +0xdb, 0x1800183eb mov [rbx+10h], rbp ; +0xde, 0x1800183ee mov [rsi], rbp ; +0xe2, 0x1800183f2 mov rbx, [rsp+28h+arg_0] ; +0xe5, 0x1800183f5 mov rbp, [rsp+28h+arg_8] ; +0xea, 0x1800183fa mov rsi, [rsp+28h+arg_10] ; +0xef, 0x1800183ff add rsp, 20h ; +0xf4, 0x180018404 pop rdi ; +0xf8, 0x180018408 jmp j_j_free ; +0xf9, 0x180018409 call cs:_invalid_parameter_noinfo_noreturn ; +0xfe, 0x18001840e db 0CCh ; +0x104, 0x180018414