{"type": "func", "start": 6443659584, "end": 6443660509, "name": "qsort", "pseudocode": "// \n// qsort from 0x180127140 to 0x1801274dd (925 bytes)\n// \n// 10 xrefs:\n// > sub_180001E90 @ 0x180002004\n// > sub_18004A8C0 @ 0x18004ac95\n// > sub_18004AD20 @ 0x18004af73\n// > sub_18004F920 @ 0x18004fb73\n// > sub_1800BC0F0 @ 0x1800bc303\n// > _wsetlocale_set_cat @ 0x18013a089\n// > <???> @ 0x18019250c\n// > <???> @ 0x18019251c\n// > <???> @ 0x1802029c0\n// > <???> @ 0x1802029cc\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 __cdecl qsort(\n        void *Base,\n        size_t NumOfElements,\n        size_t SizeOfElements,\n        _CoreCrtNonSecureSearchSortCompareFunction CompareFunction)\n{\n  char *v6; // r13\n  char *v7; // r15\n  __int64 v8; // rcx\n  size_t v9; // rbx\n  char *v10; // rbx\n  unsigned __int64 v11; // rdi\n  size_t v12; // r8\n  char *v13; // rdx\n  signed __int64 v14; // rbx\n  char v15; // cl\n  size_t v16; // rbx\n  char *v17; // rsi\n  char *v18; // r8\n  size_t v19; // r9\n  char v20; // cl\n  size_t v21; // r8\n  char *v22; // rdx\n  signed __int64 v23; // r9\n  char v24; // cl\n  size_t v25; // r8\n  char *v26; // rdx\n  signed __int64 v27; // r9\n  char v28; // cl\n  unsigned __int64 v29; // rbx\n  char *v30; // rdi\n  char *v31; // rbp\n  char *v32; // rdx\n  unsigned __int64 v33; // r9\n  char v34; // cl\n  char *v35; // rax\n  __int64 v36; // [rsp+20h] [rbp-448h]\n  _QWORD v37[124]; // [rsp+30h] [rbp-438h]\n\n  v6 = (char *)Base;\n  if ( (Base || !NumOfElements) && SizeOfElements && CompareFunction )\n  {\n    if ( NumOfElements >= 2 )\n    {\n      v7 = (char *)Base + SizeOfElements * (NumOfElements - 1);\n      v8 = 0;\n      v36 = 0;\n      while ( 1 )\n      {\n        while ( 1 )\n        {\n          v9 = (v7 - v6) / SizeOfElements + 1;\n          if ( v9 <= 8 )\n          {\n            if ( v7 > v6 )\n            {\n              do\n              {\n                v10 = v6;\n                v11 = (unsigned __int64)&v6[SizeOfElements];\n                if ( &v6[SizeOfElements] <= v7 )\n                {\n                  do\n                  {\n                    if ( ((int (__fastcall *)(unsigned __int64, char *))CompareFunction)(v11, v10) > 0 )\n                      v10 = (char *)v11;\n                    v11 += SizeOfElements;\n                  }\n                  while ( v11 <= (unsigned __int64)v7 );\n                }\n                v12 = SizeOfElements;\n                v13 = v7;\n                if ( v10 != v7 )\n                {\n                  v14 = v10 - v7;\n                  do\n                  {\n                    v15 = v13[v14];\n                    v13[v14] = *v13;\n                    *v13++ = v15;\n                    --v12;\n                  }\n                  while ( v12 );\n                }\n                v7 -= SizeOfElements;\n              }\n              while ( v7 > v6 );\n              v8 = v36;\n            }\n            goto LABEL_19;\n          }\n          v16 = SizeOfElements * (v9 >> 1);\n          v17 = &v6[v16];\n          if ( ((int (__fastcall *)(char *, char *))CompareFunction)(v6, &v6[v16]) > 0 )\n          {\n            v19 = SizeOfElements;\n            v18 = &v6[v16];\n            if ( v6 != v17 )\n            {\n              do\n              {\n                v20 = v18[-v16];\n                v18[-v16] = *v18;\n                *v18++ = v20;\n                --v19;\n              }\n              while ( v19 );\n            }\n          }\n          if ( ((int (__fastcall *)(char *, char *, char *, size_t))CompareFunction)(v6, v7, v18, v19) > 0 )\n          {\n            v21 = SizeOfElements;\n            v22 = v7;\n            if ( v6 != v7 )\n            {\n              v23 = v6 - v7;\n              do\n              {\n                v24 = v22[v23];\n                v22[v23] = *v22;\n                *v22++ = v24;\n                --v21;\n              }\n              while ( v21 );\n            }\n          }\n          if ( ((int (__fastcall *)(char *, char *, size_t))CompareFunction)(&v6[v16], v7, v21) > 0 )\n          {\n            v25 = SizeOfElements;\n            v26 = v7;\n            if ( v17 != v7 )\n            {\n              v27 = v17 - v7;\n              do\n              {\n                v28 = v26[v27];\n                v26[v27] = *v26;\n                *v26++ = v28;\n                --v25;\n              }\n              while ( v25 );\n            }\n          }\n          v29 = (unsigned __int64)v6;\n          v30 = v7;\n          while ( 1 )\n          {\n            if ( (unsigned __int64)v17 > v29 )\n            {\n              while ( 1 )\n              {\n                v29 += SizeOfElements;\n                if ( v29 >= (unsigned __int64)v17 )\n                  break;\n                if ( ((int (__fastcall *)(unsigned __int64, char *, size_t))CompareFunction)(v29, v17, v25) > 0 )\n                  goto LABEL_39;\n              }\n            }\n            do\n              v29 += SizeOfElements;\n            while ( v29 <= (unsigned __int64)v7\n                 && ((int (__fastcall *)(unsigned __int64, char *, size_t))CompareFunction)(v29, v17, v25) <= 0 );\n            do\n            {\nLABEL_39:\n              v31 = v30;\n              v30 -= SizeOfElements;\n            }\n            while ( v30 > v17 && ((int (__fastcall *)(char *, char *))CompareFunction)(v30, v17) > 0 );\n            if ( (unsigned __int64)v30 < v29 )\n              break;\n            v25 = SizeOfElements;\n            v32 = v30;\n            if ( v30 != (char *)v29 )\n            {\n              v33 = v29 - (_QWORD)v30;\n              do\n              {\n                v34 = v32[v33];\n                v32[v33] = *v32;\n                *v32++ = v34;\n                --v25;\n              }\n              while ( v25 );\n            }\n            v35 = (char *)v29;\n            if ( v17 != v30 )\n              v35 = v17;\n            v17 = v35;\n          }\n          if ( v17 < v31 )\n          {\n            while ( 1 )\n            {\n              v31 -= SizeOfElements;\n              if ( v31 <= v17 )\n                break;\n              if ( ((unsigned int (__fastcall *)(char *, char *))CompareFunction)(v31, v17) )\n                goto LABEL_54;\n            }\n          }\n          do\n            v31 -= SizeOfElements;\n          while ( v31 > v6 && !((unsigned int (__fastcall *)(char *, char *))CompareFunction)(v31, v17) );\nLABEL_54:\n          v8 = v36;\n          if ( v31 - v6 >= (__int64)&v7[-v29] )\n            break;\n          if ( v29 < (unsigned __int64)v7 )\n          {\n            v37[v36] = v29;\n            v37[v36 + 62] = v7;\n            v8 = ++v36;\n          }\n          if ( v6 >= v31 )\n          {\nLABEL_19:\n            v36 = --v8;\n            if ( v8 < 0 )\n              return;\n            v6 = (char *)v37[v8];\n            v7 = (char *)v37[v8 + 62];\n          }\n          else\n          {\n            v7 = v31;\n          }\n        }\n        if ( v6 < v31 )\n        {\n          v37[v36] = v6;\n          v37[v36 + 62] = v31;\n          v8 = ++v36;\n        }\n        if ( v29 >= (unsigned __int64)v7 )\n          goto LABEL_19;\n        v6 = (char *)v29;\n      }\n    }\n  }\n  else\n  {\n    *errno() = 22;\n    invalid_parameter_noinfo();\n  }\n}", "assembly": "; \n; qsort from 0x180127140 to 0x1801274dd (925 bytes)\n; \n; 10 xrefs:\n; > sub_180001E90 @ 0x180002004\n; > sub_18004A8C0 @ 0x18004ac95\n; > sub_18004AD20 @ 0x18004af73\n; > sub_18004F920 @ 0x18004fb73\n; > sub_1800BC0F0 @ 0x1800bc303\n; > _wsetlocale_set_cat @ 0x18013a089\n; > <???> @ 0x18019250c\n; > <???> @ 0x18019251c\n; > <???> @ 0x1802029c0\n; > <???> @ 0x1802029cc\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    r12                                                            ; +0x0, 0x180127140\npush    r13                                                            ; +0x2, 0x180127142\npush    r14                                                            ; +0x4, 0x180127144\nsub     rsp, 450h                                                      ; +0x6, 0x180127146\nmov     rax, cs:__security_cookie                                      ; +0xd, 0x18012714d\nxor     rax, rsp                                                       ; +0x14, 0x180127154\nmov     [rsp+468h+var_58], rax                                         ; +0x17, 0x180127157\nmov     r12, r9                                                        ; +0x1f, 0x18012715f\nmov     r14, r8                                                        ; +0x22, 0x180127162\nmov     r13, rcx                                                       ; +0x25, 0x180127165\ntest    rcx, rcx                                                       ; +0x28, 0x180127168\njnz     short loc_180127187                                            ; +0x2b, 0x18012716b\ntest    rdx, rdx                                                       ; +0x2d, 0x18012716d\njz      short loc_180127187                                            ; +0x30, 0x180127170\ncall    _errno                                                         ; +0x32, 0x180127172\nmov     dword ptr [rax], 16h                                           ; +0x37, 0x180127177\ncall    _invalid_parameter_noinfo                                      ; +0x3d, 0x18012717d\njmp     loc_1801274BF                                                  ; +0x42, 0x180127182\ntest    r14, r14                                                       ; +0x47, 0x180127187\njz      short loc_180127172                                            ; +0x4a, 0x18012718a\ntest    r12, r12                                                       ; +0x4c, 0x18012718c\njz      short loc_180127172                                            ; +0x4f, 0x18012718f\ncmp     rdx, 2                                                         ; +0x51, 0x180127191\njb      loc_1801274BF                                                  ; +0x55, 0x180127195\nmov     [rsp+468h+var_20], rbx                                         ; +0x5b, 0x18012719b\nmov     [rsp+468h+var_28], rbp                                         ; +0x63, 0x1801271a3\nmov     [rsp+468h+var_30], rsi                                         ; +0x6b, 0x1801271ab\nmov     [rsp+468h+var_38], rdi                                         ; +0x73, 0x1801271b3\nmov     [rsp+468h+var_40], r15                                         ; +0x7b, 0x1801271bb\nlea     r15, [rdx-1]                                                   ; +0x83, 0x1801271c3\nimul    r15, r14                                                       ; +0x87, 0x1801271c7\nadd     r15, rcx                                                       ; +0x8b, 0x1801271cb\nxor     ecx, ecx                                                       ; +0x8e, 0x1801271ce\nmov     [rsp+468h+var_448], rcx                                        ; +0x90, 0x1801271d0\nnop     word ptr [rax+rax+00000000h]                                   ; +0x95, 0x1801271d5\nxor     edx, edx                                                       ; +0xa0, 0x1801271e0\nmov     rax, r15                                                       ; +0xa2, 0x1801271e2\nsub     rax, r13                                                       ; +0xa5, 0x1801271e5\ndiv     r14                                                            ; +0xa8, 0x1801271e8\nlea     rbx, [rax+1]                                                   ; +0xab, 0x1801271eb\ncmp     rbx, 8                                                         ; +0xaf, 0x1801271ef\nja      loc_180127284                                                  ; +0xb3, 0x1801271f3\ncmp     r15, r13                                                       ; +0xb9, 0x1801271f9\njbe     short loc_180127263                                            ; +0xbc, 0x1801271fc\nlea     rsi, [r14+r13]                                                 ; +0xbe, 0x1801271fe\nmov     rbx, r13                                                       ; +0xc2, 0x180127202\nmov     rdi, rsi                                                       ; +0xc5, 0x180127205\ncmp     rsi, r15                                                       ; +0xc8, 0x180127208\nja      short loc_18012722D                                            ; +0xcb, 0x18012720b\nnop     dword ptr [rax]                                                ; +0xcd, 0x18012720d\nmov     rdx, rbx                                                       ; +0xd0, 0x180127210\nmov     rcx, rdi                                                       ; +0xd3, 0x180127213\nmov     rax, r12                                                       ; +0xd6, 0x180127216\ncall    cs:__guard_dispatch_icall_fptr                                 ; +0xd9, 0x180127219\ntest    eax, eax                                                       ; +0xdf, 0x18012721f\ncmovg   rbx, rdi                                                       ; +0xe1, 0x180127221\nadd     rdi, r14                                                       ; +0xe5, 0x180127225\ncmp     rdi, r15                                                       ; +0xe8, 0x180127228\njbe     short loc_180127210                                            ; +0xeb, 0x18012722b\nmov     r8, r14                                                        ; +0xed, 0x18012722d\nmov     rdx, r15                                                       ; +0xf0, 0x180127230\ncmp     rbx, r15                                                       ; +0xf3, 0x180127233\njz      short loc_180127256                                            ; +0xf6, 0x180127236\nsub     rbx, r15                                                       ; +0xf8, 0x180127238\nnop     dword ptr [rax+rax+00h]                                        ; +0xfb, 0x18012723b\nmovzx   eax, byte ptr [rdx]                                            ; +0x100, 0x180127240\nmovzx   ecx, byte ptr [rbx+rdx]                                        ; +0x103, 0x180127243\nmov     [rbx+rdx], al                                                  ; +0x107, 0x180127247\nmov     [rdx], cl                                                      ; +0x10a, 0x18012724a\nlea     rdx, [rdx+1]                                                   ; +0x10c, 0x18012724c\nsub     r8, 1                                                          ; +0x110, 0x180127250\njnz     short loc_180127240                                            ; +0x114, 0x180127254\nsub     r15, r14                                                       ; +0x116, 0x180127256\ncmp     r15, r13                                                       ; +0x119, 0x180127259\nja      short loc_180127202                                            ; +0x11c, 0x18012725c\nmov     rcx, [rsp+468h+var_448]                                        ; +0x11e, 0x18012725e\nsub     rcx, 1                                                         ; +0x123, 0x180127263\nmov     [rsp+468h+var_448], rcx                                        ; +0x127, 0x180127267\njs      loc_180127497                                                  ; +0x12c, 0x18012726c\nmov     r13, [rsp+rcx*8+468h+var_438]                                  ; +0x132, 0x180127272\nmov     r15, [rsp+rcx*8+468h+var_248]                                  ; +0x137, 0x180127277\njmp     $recurse$210                                                   ; +0x13f, 0x18012727f\nshr     rbx, 1                                                         ; +0x144, 0x180127284\nmov     rcx, r13                                                       ; +0x147, 0x180127287\nimul    rbx, r14                                                       ; +0x14a, 0x18012728a\nmov     rax, r12                                                       ; +0x14e, 0x18012728e\nlea     rsi, [rbx+r13]                                                 ; +0x151, 0x180127291\nmov     rdx, rsi                                                       ; +0x155, 0x180127295\ncall    cs:__guard_dispatch_icall_fptr                                 ; +0x158, 0x180127298\ntest    eax, eax                                                       ; +0x15e, 0x18012729e\njle     short loc_1801272CB                                            ; +0x160, 0x1801272a0\nmov     r9, r14                                                        ; +0x162, 0x1801272a2\nmov     r8, rsi                                                        ; +0x165, 0x1801272a5\ncmp     r13, rsi                                                       ; +0x168, 0x1801272a8\njz      short loc_1801272CB                                            ; +0x16b, 0x1801272ab\nnop     dword ptr [rax]                                                ; +0x16d, 0x1801272ad\nmovzx   eax, byte ptr [r8]                                             ; +0x170, 0x1801272b0\nmov     rdx, r8                                                        ; +0x174, 0x1801272b4\nsub     rdx, rbx                                                       ; +0x177, 0x1801272b7\nmovzx   ecx, byte ptr [rdx]                                            ; +0x17a, 0x1801272ba\nmov     [rdx], al                                                      ; +0x17d, 0x1801272bd\nmov     [r8], cl                                                       ; +0x17f, 0x1801272bf\ninc     r8                                                             ; +0x182, 0x1801272c2\nsub     r9, 1                                                          ; +0x185, 0x1801272c5\njnz     short loc_1801272B0                                            ; +0x189, 0x1801272c9\nmov     rdx, r15                                                       ; +0x18b, 0x1801272cb\nmov     rcx, r13                                                       ; +0x18e, 0x1801272ce\nmov     rax, r12                                                       ; +0x191, 0x1801272d1\ncall    cs:__guard_dispatch_icall_fptr                                 ; +0x194, 0x1801272d4\ntest    eax, eax                                                       ; +0x19a, 0x1801272da\njle     short loc_180127308                                            ; +0x19c, 0x1801272dc\nmov     r8, r14                                                        ; +0x19e, 0x1801272de\nmov     rdx, r15                                                       ; +0x1a1, 0x1801272e1\ncmp     r13, r15                                                       ; +0x1a4, 0x1801272e4\njz      short loc_180127308                                            ; +0x1a7, 0x1801272e7\nmov     r9, r13                                                        ; +0x1a9, 0x1801272e9\nsub     r9, r15                                                        ; +0x1ac, 0x1801272ec\nnop                                                                    ; +0x1af, 0x1801272ef\nmovzx   eax, byte ptr [rdx]                                            ; +0x1b0, 0x1801272f0\nmovzx   ecx, byte ptr [r9+rdx]                                         ; +0x1b3, 0x1801272f3\nmov     [r9+rdx], al                                                   ; +0x1b8, 0x1801272f8\nmov     [rdx], cl                                                      ; +0x1bc, 0x1801272fc\nlea     rdx, [rdx+1]                                                   ; +0x1be, 0x1801272fe\nsub     r8, 1                                                          ; +0x1c2, 0x180127302\njnz     short loc_1801272F0                                            ; +0x1c6, 0x180127306\nmov     rdx, r15                                                       ; +0x1c8, 0x180127308\nmov     rcx, rsi                                                       ; +0x1cb, 0x18012730b\nmov     rax, r12                                                       ; +0x1ce, 0x18012730e\ncall    cs:__guard_dispatch_icall_fptr                                 ; +0x1d1, 0x180127311\ntest    eax, eax                                                       ; +0x1d7, 0x180127317\njle     short loc_180127348                                            ; +0x1d9, 0x180127319\nmov     r8, r14                                                        ; +0x1db, 0x18012731b\nmov     rdx, r15                                                       ; +0x1de, 0x18012731e\ncmp     rsi, r15                                                       ; +0x1e1, 0x180127321\njz      short loc_180127348                                            ; +0x1e4, 0x180127324\nmov     r9, rsi                                                        ; +0x1e6, 0x180127326\nsub     r9, r15                                                        ; +0x1e9, 0x180127329\nnop     dword ptr [rax+00h]                                            ; +0x1ec, 0x18012732c\nmovzx   eax, byte ptr [rdx]                                            ; +0x1f0, 0x180127330\nmovzx   ecx, byte ptr [r9+rdx]                                         ; +0x1f3, 0x180127333\nmov     [r9+rdx], al                                                   ; +0x1f8, 0x180127338\nmov     [rdx], cl                                                      ; +0x1fc, 0x18012733c\nlea     rdx, [rdx+1]                                                   ; +0x1fe, 0x18012733e\nsub     r8, 1                                                          ; +0x202, 0x180127342\njnz     short loc_180127330                                            ; +0x206, 0x180127346\nmov     rbx, r13                                                       ; +0x208, 0x180127348\nmov     rdi, r15                                                       ; +0x20b, 0x18012734b\nxchg    ax, ax                                                         ; +0x20e, 0x18012734e\ncmp     rsi, rbx                                                       ; +0x210, 0x180127350\njbe     short loc_180127372                                            ; +0x213, 0x180127353\nadd     rbx, r14                                                       ; +0x215, 0x180127355\ncmp     rbx, rsi                                                       ; +0x218, 0x180127358\njnb     short loc_180127372                                            ; +0x21b, 0x18012735b\nmov     rdx, rsi                                                       ; +0x21d, 0x18012735d\nmov     rcx, rbx                                                       ; +0x220, 0x180127360\nmov     rax, r12                                                       ; +0x223, 0x180127363\ncall    cs:__guard_dispatch_icall_fptr                                 ; +0x226, 0x180127366\ntest    eax, eax                                                       ; +0x22c, 0x18012736c\njle     short loc_180127355                                            ; +0x22e, 0x18012736e\njmp     short loc_180127390                                            ; +0x230, 0x180127370\nadd     rbx, r14                                                       ; +0x232, 0x180127372\ncmp     rbx, r15                                                       ; +0x235, 0x180127375\nja      short loc_180127390                                            ; +0x238, 0x180127378\nmov     rdx, rsi                                                       ; +0x23a, 0x18012737a\nmov     rcx, rbx                                                       ; +0x23d, 0x18012737d\nmov     rax, r12                                                       ; +0x240, 0x180127380\ncall    cs:__guard_dispatch_icall_fptr                                 ; +0x243, 0x180127383\ntest    eax, eax                                                       ; +0x249, 0x180127389\njle     short loc_180127372                                            ; +0x24b, 0x18012738b\nnop     dword ptr [rax]                                                ; +0x24d, 0x18012738d\nmov     rbp, rdi                                                       ; +0x250, 0x180127390\nsub     rdi, r14                                                       ; +0x253, 0x180127393\ncmp     rdi, rsi                                                       ; +0x256, 0x180127396\njbe     short loc_1801273AE                                            ; +0x259, 0x180127399\nmov     rdx, rsi                                                       ; +0x25b, 0x18012739b\nmov     rcx, rdi                                                       ; +0x25e, 0x18012739e\nmov     rax, r12                                                       ; +0x261, 0x1801273a1\ncall    cs:__guard_dispatch_icall_fptr                                 ; +0x264, 0x1801273a4\ntest    eax, eax                                                       ; +0x26a, 0x1801273aa\njg      short loc_180127390                                            ; +0x26c, 0x1801273ac\ncmp     rdi, rbx                                                       ; +0x26e, 0x1801273ae\njb      short loc_1801273EB                                            ; +0x271, 0x1801273b1\nmov     r8, r14                                                        ; +0x273, 0x1801273b3\nmov     rdx, rdi                                                       ; +0x276, 0x1801273b6\njz      short loc_1801273D9                                            ; +0x279, 0x1801273b9\nmov     r9, rbx                                                        ; +0x27b, 0x1801273bb\nsub     r9, rdi                                                        ; +0x27e, 0x1801273be\nmovzx   eax, byte ptr [rdx]                                            ; +0x281, 0x1801273c1\nmovzx   ecx, byte ptr [r9+rdx]                                         ; +0x284, 0x1801273c4\nmov     [r9+rdx], al                                                   ; +0x289, 0x1801273c9\nmov     [rdx], cl                                                      ; +0x28d, 0x1801273cd\nlea     rdx, [rdx+1]                                                   ; +0x28f, 0x1801273cf\nsub     r8, 1                                                          ; +0x293, 0x1801273d3\njnz     short loc_1801273C1                                            ; +0x297, 0x1801273d7\ncmp     rsi, rdi                                                       ; +0x299, 0x1801273d9\nmov     rax, rbx                                                       ; +0x29c, 0x1801273dc\ncmovnz  rax, rsi                                                       ; +0x29f, 0x1801273df\nmov     rsi, rax                                                       ; +0x2a3, 0x1801273e3\njmp     loc_180127350                                                  ; +0x2a6, 0x1801273e6\ncmp     rsi, rbp                                                       ; +0x2ab, 0x1801273eb\njnb     short loc_180127410                                            ; +0x2ae, 0x1801273ee\nsub     rbp, r14                                                       ; +0x2b0, 0x1801273f0\ncmp     rbp, rsi                                                       ; +0x2b3, 0x1801273f3\njbe     short loc_180127410                                            ; +0x2b6, 0x1801273f6\nmov     rdx, rsi                                                       ; +0x2b8, 0x1801273f8\nmov     rcx, rbp                                                       ; +0x2bb, 0x1801273fb\nmov     rax, r12                                                       ; +0x2be, 0x1801273fe\ncall    cs:__guard_dispatch_icall_fptr                                 ; +0x2c1, 0x180127401\ntest    eax, eax                                                       ; +0x2c7, 0x180127407\njz      short loc_1801273F0                                            ; +0x2c9, 0x180127409\njmp     short loc_18012742B                                            ; +0x2cb, 0x18012740b\nalign 10h                                                              ; +0x2cd, 0x18012740d\nsub     rbp, r14                                                       ; +0x2d0, 0x180127410\ncmp     rbp, r13                                                       ; +0x2d3, 0x180127413\njbe     short loc_18012742B                                            ; +0x2d6, 0x180127416\nmov     rdx, rsi                                                       ; +0x2d8, 0x180127418\nmov     rcx, rbp                                                       ; +0x2db, 0x18012741b\nmov     rax, r12                                                       ; +0x2de, 0x18012741e\ncall    cs:__guard_dispatch_icall_fptr                                 ; +0x2e1, 0x180127421\ntest    eax, eax                                                       ; +0x2e7, 0x180127427\njz      short loc_180127410                                            ; +0x2e9, 0x180127429\nmov     rcx, r15                                                       ; +0x2eb, 0x18012742b\nmov     rax, rbp                                                       ; +0x2ee, 0x18012742e\nsub     rcx, rbx                                                       ; +0x2f1, 0x180127431\nsub     rax, r13                                                       ; +0x2f4, 0x180127434\ncmp     rax, rcx                                                       ; +0x2f7, 0x180127437\nmov     rcx, [rsp+468h+var_448]                                        ; +0x2fa, 0x18012743a\njl      short loc_18012746C                                            ; +0x2ff, 0x18012743f\ncmp     r13, rbp                                                       ; +0x301, 0x180127441\njnb     short loc_18012745B                                            ; +0x304, 0x180127444\nmov     [rsp+rcx*8+468h+var_438], r13                                  ; +0x306, 0x180127446\nmov     [rsp+rcx*8+468h+var_248], rbp                                  ; +0x30b, 0x18012744b\ninc     rcx                                                            ; +0x313, 0x180127453\nmov     [rsp+468h+var_448], rcx                                        ; +0x316, 0x180127456\ncmp     rbx, r15                                                       ; +0x31b, 0x18012745b\njnb     loc_180127263                                                  ; +0x31e, 0x18012745e\nmov     r13, rbx                                                       ; +0x324, 0x180127464\njmp     $recurse$210                                                   ; +0x327, 0x180127467\ncmp     rbx, r15                                                       ; +0x32c, 0x18012746c\njnb     short loc_180127486                                            ; +0x32f, 0x18012746f\nmov     [rsp+rcx*8+468h+var_438], rbx                                  ; +0x331, 0x180127471\nmov     [rsp+rcx*8+468h+var_248], r15                                  ; +0x336, 0x180127476\ninc     rcx                                                            ; +0x33e, 0x18012747e\nmov     [rsp+468h+var_448], rcx                                        ; +0x341, 0x180127481\ncmp     r13, rbp                                                       ; +0x346, 0x180127486\njnb     loc_180127263                                                  ; +0x349, 0x180127489\nmov     r15, rbp                                                       ; +0x34f, 0x18012748f\njmp     $recurse$210                                                   ; +0x352, 0x180127492\nmov     rdi, [rsp+468h+var_38]                                         ; +0x357, 0x180127497\nmov     rsi, [rsp+468h+var_30]                                         ; +0x35f, 0x18012749f\nmov     rbp, [rsp+468h+var_28]                                         ; +0x367, 0x1801274a7\nmov     rbx, [rsp+468h+var_20]                                         ; +0x36f, 0x1801274af\nmov     r15, [rsp+468h+var_40]                                         ; +0x377, 0x1801274b7\nmov     rcx, [rsp+468h+var_58]                                         ; +0x37f, 0x1801274bf\nxor     rcx, rsp; StackCookie                                          ; +0x387, 0x1801274c7\ncall    __security_check_cookie                                        ; +0x38a, 0x1801274ca\nadd     rsp, 450h                                                      ; +0x38f, 0x1801274cf\npop     r14                                                            ; +0x396, 0x1801274d6\npop     r13                                                            ; +0x398, 0x1801274d8\npop     r12                                                            ; +0x39a, 0x1801274da\nretn                                                                   ; +0x39c, 0x1801274dc", "xrefs": ["sub_180001E90 @ 0x180002004", "sub_18004A8C0 @ 0x18004ac95", "sub_18004AD20 @ 0x18004af73", "sub_18004F920 @ 0x18004fb73", "sub_1800BC0F0 @ 0x1800bc303", "_wsetlocale_set_cat @ 0x18013a089", "<???> @ 0x18019250c", "<???> @ 0x18019251c", "<???> @ 0x1802029c0", "<???> @ 0x1802029cc"], "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"}