{"type": "func", "start": 6443716884, "end": 6443717129, "name": "destroy_ptd_array", "pseudocode": "// \n// destroy_ptd_array from 0x180135114 to 0x180135209 (245 bytes)\n// \n// 4 xrefs:\n// > Concurrency::details::SchedulerProxy::DeleteThis @ 0x180135101\n// > __acrt_freeptd @ 0x1801352a2\n// > <???> @ 0x18020332c\n// > <???> @ 0x180203338\n// \n// This function is hookable on this platform!\n// \n// Using BromaIDA 8.0.0 @ https://github.com/Stazzical/BromaIDA\n// Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https://github.com/geode-sdk/bindings\n// \n\nvoid __fastcall destroy_ptd_array(void **a1)\n{\n  int v1; // [rsp+20h] [rbp-20h] BYREF\n  int v2; // [rsp+24h] [rbp-1Ch] BYREF\n  void **v3; // [rsp+28h] [rbp-18h] BYREF\n  void ***v4; // [rsp+30h] [rbp-10h] BYREF\n  void ***v5; // [rsp+38h] [rbp-8h] BYREF\n  char v6; // [rsp+58h] [rbp+18h] BYREF\n  int v7; // [rsp+60h] [rbp+20h] BYREF\n  int v8; // [rsp+68h] [rbp+28h] BYREF\n\n  v3 = a1;\n  v4 = &v3;\n  v7 = 5;\n  v8 = 5;\n  v5 = &v3;\n  v1 = 4;\n  v2 = 4;\n  if ( *a1 != &unk_180172F70 )\n  {\n    free_base(*a1);\n    a1 = v3;\n  }\n  free_base(a1[14]);\n  free_base(v3[11]);\n  free_base(v3[12]);\n  free_base(v3[13]);\n  free_base(v3[9]);\n  free_base(v3[10]);\n  free_base(v3[15]);\n  free_base(v3[16]);\n  free_base(v3[120]);\n  __crt_seh_guarded_call<void>::operator()<_lambda_46352004c1216016012b18bd6f87e700_,_lambda_3bd07e1a1191394380780325891bf33f_ &,_lambda_334532d3f185bcaa59b5be82d7d22bff_>(\n    (__int64)&v6,\n    &v8,\n    (__int64)&v4,\n    &v7);\n  __crt_seh_guarded_call<void>::operator()<_lambda_fb3a7dec4e47f37f22dae91bb15c9095_,_lambda_698284760c8add0bfb0756c19673e34b_ &,_lambda_dfb8eca1e75fef3034a8fb18dd509707_>(\n    (__int64)&v6,\n    &v2,\n    (struct __acrt_ptd *const **)&v5,\n    &v1);\n}", "assembly": "; \n; destroy_ptd_array from 0x180135114 to 0x180135209 (245 bytes)\n; \n; 4 xrefs:\n; > Concurrency::details::SchedulerProxy::DeleteThis @ 0x180135101\n; > __acrt_freeptd @ 0x1801352a2\n; > <???> @ 0x18020332c\n; > <???> @ 0x180203338\n; \n; This function is hookable on this platform!\n; \n; Using BromaIDA 8.0.0 @ https:;github.com/Stazzical/BromaIDA\n; Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https:;github.com/geode-sdk/bindings\n; \n\npush    rbp                                                            ; +0x0, 0x180135114\nmov     rbp, rsp                                                       ; +0x2, 0x180135116\nsub     rsp, 40h                                                       ; +0x5, 0x180135119\nlea     rax, [rbp+var_18]                                              ; +0x9, 0x18013511d\nmov     [rbp+var_18], rcx                                              ; +0xd, 0x180135121\nmov     [rbp+var_10], rax                                              ; +0x11, 0x180135125\nlea     rdx, unk_180172F70                                             ; +0x15, 0x180135129\nmov     eax, 5                                                         ; +0x1c, 0x180135130\nmov     [rbp+arg_10], eax                                              ; +0x21, 0x180135135\nmov     [rbp+arg_18], eax                                              ; +0x24, 0x180135138\nlea     rax, [rbp+var_18]                                              ; +0x27, 0x18013513b\nmov     [rbp+var_8], rax                                               ; +0x2b, 0x18013513f\nmov     eax, 4                                                         ; +0x2f, 0x180135143\nmov     [rbp+var_20], eax                                              ; +0x34, 0x180135148\nmov     [rbp+var_1C], eax                                              ; +0x37, 0x18013514b\nmov     rax, [rcx]                                                     ; +0x3a, 0x18013514e\ncmp     rax, rdx                                                       ; +0x3d, 0x180135151\njz      short loc_180135162                                            ; +0x40, 0x180135154\nmov     rcx, rax; Block                                                ; +0x42, 0x180135156\ncall    _free_base                                                     ; +0x45, 0x180135159\nmov     rcx, [rbp+var_18]                                              ; +0x4a, 0x18013515e\nmov     rcx, [rcx+70h]; Block                                          ; +0x4e, 0x180135162\ncall    _free_base                                                     ; +0x52, 0x180135166\nmov     rcx, [rbp+var_18]                                              ; +0x57, 0x18013516b\nmov     rcx, [rcx+58h]; Block                                          ; +0x5b, 0x18013516f\ncall    _free_base                                                     ; +0x5f, 0x180135173\nmov     rcx, [rbp+var_18]                                              ; +0x64, 0x180135178\nmov     rcx, [rcx+60h]; Block                                          ; +0x68, 0x18013517c\ncall    _free_base                                                     ; +0x6c, 0x180135180\nmov     rcx, [rbp+var_18]                                              ; +0x71, 0x180135185\nmov     rcx, [rcx+68h]; Block                                          ; +0x75, 0x180135189\ncall    _free_base                                                     ; +0x79, 0x18013518d\nmov     rcx, [rbp+var_18]                                              ; +0x7e, 0x180135192\nmov     rcx, [rcx+48h]; Block                                          ; +0x82, 0x180135196\ncall    _free_base                                                     ; +0x86, 0x18013519a\nmov     rcx, [rbp+var_18]                                              ; +0x8b, 0x18013519f\nmov     rcx, [rcx+50h]; Block                                          ; +0x8f, 0x1801351a3\ncall    _free_base                                                     ; +0x93, 0x1801351a7\nmov     rcx, [rbp+var_18]                                              ; +0x98, 0x1801351ac\nmov     rcx, [rcx+78h]; Block                                          ; +0x9c, 0x1801351b0\ncall    _free_base                                                     ; +0xa0, 0x1801351b4\nmov     rcx, [rbp+var_18]                                              ; +0xa5, 0x1801351b9\nmov     rcx, [rcx+80h]; Block                                          ; +0xa9, 0x1801351bd\ncall    _free_base                                                     ; +0xb0, 0x1801351c4\nmov     rcx, [rbp+var_18]                                              ; +0xb5, 0x1801351c9\nmov     rcx, [rcx+3C0h]; Block                                         ; +0xb9, 0x1801351cd\ncall    _free_base                                                     ; +0xc0, 0x1801351d4\nlea     r9, [rbp+arg_10]                                               ; +0xc5, 0x1801351d9\nlea     r8, [rbp+var_10]                                               ; +0xc9, 0x1801351dd\nlea     rdx, [rbp+arg_18]                                              ; +0xcd, 0x1801351e1\nlea     rcx, [rbp+arg_8]                                               ; +0xd1, 0x1801351e5\ncall    ??$?RV_lambda_46352004c1216016012b18bd6f87e700_@@AEAV_lambda_3bd07e1a1191394380780325891bf33f_@@V_lambda_334532d3f185bcaa59b5be82d7d22bff_@@@?$__crt_seh_guarded_call@X@@QEAAX$$QEAV_lambda_46352004c1216016012b18bd6f87e700_@@AEAV_lambda_3bd07e1a1191394380780325891bf33f_@@$$QEAV_lambda_334532d3f185bcaa59b5be82d7d22bff_@@@Z ; +0xd5, 0x1801351e9\nlea     r9, [rbp+var_20]                                               ; +0xda, 0x1801351ee\nlea     r8, [rbp+var_8]                                                ; +0xde, 0x1801351f2\nlea     rdx, [rbp+var_1C]                                              ; +0xe2, 0x1801351f6\nlea     rcx, [rbp+arg_8]                                               ; +0xe6, 0x1801351fa\ncall    ??$?RV_lambda_fb3a7dec4e47f37f22dae91bb15c9095_@@AEAV_lambda_698284760c8add0bfb0756c19673e34b_@@V_lambda_dfb8eca1e75fef3034a8fb18dd509707_@@@?$__crt_seh_guarded_call@X@@QEAAX$$QEAV_lambda_fb3a7dec4e47f37f22dae91bb15c9095_@@AEAV_lambda_698284760c8add0bfb0756c19673e34b_@@$$QEAV_lambda_dfb8eca1e75fef3034a8fb18dd509707_@@@Z ; +0xea, 0x1801351fe\nadd     rsp, 40h                                                       ; +0xef, 0x180135203\npop     rbp                                                            ; +0xf3, 0x180135207\nretn                                                                   ; +0xf4, 0x180135208", "xrefs": ["Concurrency::details::SchedulerProxy::DeleteThis @ 0x180135101", "__acrt_freeptd @ 0x1801352a2", "<???> @ 0x18020332c", "<???> @ 0x180203338"], "is_objc": false, "is_arm32": false, "is_arm64": false, "bida_info": "8.0.0 @ https://github.com/Stazzical/BromaIDA", "bindings_info": "commit ba9f177b at Thu Jul 16 22:52:06 2026 from https://github.com/geode-sdk/bindings"}