{"type": "func", "start": 6443726292, "end": 6443727188, "name": "fp_format_a", "pseudocode": "// \n// fp_format_a from 0x1801375d4 to 0x180137954 (896 bytes)\n// \n// 3 xrefs:\n// > sub_180137FE0 @ 0x1801382e6\n// > <???> @ 0x1802035e4\n// > <???> @ 0x1802035f0\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\n__int64 __fastcall fp_format_a(\n        __int64 *a1,\n        char *a2,\n        unsigned __int64 a3,\n        __int64 a4,\n        __int64 a5,\n        int Size,\n        char a7,\n        int a8,\n        struct __crt_locale_pointers *a9,\n        unsigned int a10)\n{\n  char *v10; // rbx\n  int v12; // edi\n  unsigned int v15; // edi\n  __int64 v16; // rcx\n  unsigned __int64 v17; // rdx\n  char *v18; // rax\n  char *v19; // rbp\n  __int64 v20; // r12\n  _BYTE *v21; // r14\n  char v22; // al\n  __int64 v23; // r8\n  unsigned __int16 v24; // ax\n  char *i; // rcx\n  char v26; // dl\n  char v27; // si\n  _BYTE *v28; // r9\n  __int64 v29; // rcx\n  __int64 v30; // rdx\n  char v31; // al\n  _BYTE *v32; // r8\n  _QWORD v34[3]; // [rsp+50h] [rbp-48h] BYREF\n  char v35; // [rsp+68h] [rbp-30h]\n\n  *a2 = 0;\n  v10 = a2;\n  v12 = 0;\n  if ( Size >= 0 )\n    v12 = Size;\n  _LocaleUpdate::_LocaleUpdate((_LocaleUpdate *)v34, a9);\n  if ( a3 <= v12 + 11 )\n  {\n    v15 = 34;\n    *errno() = 34;\n    invalid_parameter_noinfo();\n    goto LABEL_53;\n  }\n  v16 = *a1;\n  LODWORD(v17) = 2047;\n  if ( (((unsigned __int64)*a1 >> 52) & 0x7FF) == 0x7FF )\n  {\n    v15 = sub_180137954(a1, v10, a3, a4, a5, v12, 0, a8, 0, a10);\n    if ( v15 )\n    {\n      *v10 = 0;\n      goto LABEL_53;\n    }\n    v18 = strrchr(v10, 101);\n    if ( v18 )\n    {\n      *v18 = 32 * (a7 ^ 1) + 80;\n      v18[3] = 0;\n    }\n  }\n  else\n  {\n    if ( v16 < 0 )\n    {\n      *v10++ = 45;\n      v16 = *a1;\n    }\n    v19 = v10 + 1;\n    v20 = 1023;\n    if ( (v16 & 0x7FF0000000000000LL) != 0 )\n    {\n      *v10 = 49;\n    }\n    else\n    {\n      *v10 = 48;\n      v20 = (*a1 & 0xFFFFFFFFFFFFFLL) != 0 ? 0x3FE : 0;\n    }\n    v21 = v10 + 2;\n    if ( v12 )\n      v22 = ***(_BYTE ***)(v34[1] + 248LL);\n    else\n      v22 = 0;\n    *v19 = v22;\n    if ( (*a1 & 0xFFFFFFFFFFFFFLL) != 0 )\n    {\n      v23 = 48;\n      v17 = 0xF000000000000LL;\n      do\n      {\n        if ( v12 <= 0 )\n          break;\n        v24 = ((v17 & *a1 & 0xFFFFFFFFFFFFFLL) >> v23) + 48;\n        if ( v24 > 0x39u )\n          LOBYTE(v24) = 32 * (a7 ^ 1) + 7 + v24;\n        *v21 = v24;\n        --v12;\n        ++v21;\n        v17 >>= 4;\n        LOWORD(v23) = v23 - 4;\n      }\n      while ( (v23 & 0x8000u) == 0LL );\n      if ( (v23 & 0x8000u) == 0LL && (unsigned __int8)should_round_up(a1, v17, v23, a10) )\n      {\n        for ( i = v21 - 1; ; --i )\n        {\n          v26 = *i;\n          if ( ((*i - 70) & 0xDF) != 0 )\n            break;\n          *i = 48;\n        }\n        if ( i == v19 )\n        {\n          ++*(i - 1);\n        }\n        else\n        {\n          if ( v26 == 57 )\n            v27 = 32 * (a7 ^ 1) + 65;\n          else\n            v27 = v26 + 1;\n          *i = v27;\n        }\n      }\n    }\n    if ( v12 > 0 )\n    {\n      LOBYTE(v17) = 48;\n      memset(v21, v17, (unsigned int)v12);\n      v21 += (unsigned int)v12;\n    }\n    if ( *v19 )\n      v19 = v21;\n    *v19 = 32 * (a7 ^ 1) + 80;\n    v28 = v19 + 2;\n    v29 = (((unsigned __int64)*a1 >> 52) & 0x7FF) - v20;\n    v30 = v29;\n    if ( v29 < 0 )\n      v29 = v20 - (((unsigned __int64)*a1 >> 52) & 0x7FF);\n    v31 = 43;\n    v32 = v19 + 2;\n    if ( v30 < 0 )\n      v31 = 45;\n    v19[1] = v31;\n    *v28 = 48;\n    if ( v29 >= 1000 )\n    {\n      v32 = v19 + 3;\n      *v28 = v29 / 1000 + 48;\n      v29 %= 1000;\n    }\n    if ( v32 != v28 || v29 >= 100 )\n    {\n      *v32++ = v29 / 100 + 48;\n      v29 %= 100;\n    }\n    if ( v32 != v28 || v29 >= 10 )\n    {\n      *v32++ = v29 / 10 + 48;\n      v29 %= 10;\n    }\n    *v32 = v29 + 48;\n    v32[1] = 0;\n  }\n  v15 = 0;\nLABEL_53:\n  if ( v35 )\n    *(_DWORD *)(v34[0] + 936LL) &= ~2u;\n  return v15;\n}", "assembly": "; \n; fp_format_a from 0x1801375d4 to 0x180137954 (896 bytes)\n; \n; 3 xrefs:\n; > sub_180137FE0 @ 0x1801382e6\n; > <???> @ 0x1802035e4\n; > <???> @ 0x1802035f0\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\nmov     r11, rsp                                                       ; +0x0, 0x1801375d4\nmov     [r11+8], rbx                                                   ; +0x3, 0x1801375d7\nmov     [r11+10h], rbp                                                 ; +0x7, 0x1801375db\nmov     [r11+18h], rsi                                                 ; +0xb, 0x1801375df\npush    rdi                                                            ; +0xf, 0x1801375e3\npush    r12                                                            ; +0x10, 0x1801375e4\npush    r13                                                            ; +0x12, 0x1801375e6\npush    r14                                                            ; +0x14, 0x1801375e8\npush    r15                                                            ; +0x16, 0x1801375ea\nsub     rsp, 70h                                                       ; +0x18, 0x1801375ec\nmov     eax, dword ptr [rsp+98h+Size]                                  ; +0x1c, 0x1801375f0\nxor     r14d, r14d                                                     ; +0x23, 0x1801375f7\ntest    eax, eax                                                       ; +0x26, 0x1801375fa\nmov     [rdx], r14b                                                    ; +0x28, 0x1801375fc\nmov     rbx, rdx                                                       ; +0x2b, 0x1801375ff\nmov     r15, rcx                                                       ; +0x2e, 0x180137602\nmov     rdx, [rsp+98h+arg_40]; struct __crt_locale_pointers *          ; +0x31, 0x180137605\nlea     rcx, [r11-48h]; this                                           ; +0x39, 0x18013760d\nmov     edi, r14d                                                      ; +0x3d, 0x180137611\nmov     rbp, r9                                                        ; +0x40, 0x180137614\ncmovns  edi, eax                                                       ; +0x43, 0x180137617\nmov     rsi, r8                                                        ; +0x46, 0x18013761a\ncall    ??0_LocaleUpdate@@QEAA@QEAU__crt_locale_pointers@@@Z           ; +0x49, 0x18013761d\nlea     eax, [rdi+0Bh]                                                 ; +0x4e, 0x180137622\nmovsxd  rcx, eax                                                       ; +0x51, 0x180137625\ncmp     rsi, rcx                                                       ; +0x54, 0x180137628\nja      short loc_180137642                                            ; +0x57, 0x18013762b\ncall    _errno                                                         ; +0x59, 0x18013762d\nlea     edi, [r14+22h]                                                 ; +0x5e, 0x180137632\nmov     [rax], edi                                                     ; +0x62, 0x180137636\ncall    _invalid_parameter_noinfo                                      ; +0x64, 0x180137638\njmp     loc_180137921                                                  ; +0x69, 0x18013763d\nmov     rcx, [r15]                                                     ; +0x6e, 0x180137642\nmov     edx, 7FFh                                                      ; +0x71, 0x180137645\nmov     rax, rcx                                                       ; +0x76, 0x18013764a\nshr     rax, 34h                                                       ; +0x79, 0x18013764d\nand     rax, rdx                                                       ; +0x7d, 0x180137651\ncmp     rax, rdx                                                       ; +0x80, 0x180137654\njnz     loc_1801376DE                                                  ; +0x83, 0x180137657\nmov     eax, [rsp+98h+arg_48]                                          ; +0x89, 0x18013765d\nmov     r9, rbp                                                        ; +0x90, 0x180137664\nmov     [rsp+98h+var_50], eax                                          ; +0x93, 0x180137667\nmov     r8, rsi                                                        ; +0x97, 0x18013766b\nmov     eax, [rsp+98h+arg_38]                                          ; +0x9a, 0x18013766e\nmov     rdx, rbx                                                       ; +0xa1, 0x180137675\nmov     [rsp+98h+var_58], r14                                          ; +0xa4, 0x180137678\nmov     rcx, r15                                                       ; +0xa9, 0x18013767d\nmov     [rsp+98h+var_60], eax                                          ; +0xac, 0x180137680\nmov     rax, [rsp+98h+arg_20]                                          ; +0xb0, 0x180137684\nmov     [rsp+98h+var_68], r14b                                         ; +0xb8, 0x18013768c\nmov     [rsp+98h+var_70], edi                                          ; +0xbd, 0x180137691\nmov     [rsp+98h+var_78], rax                                          ; +0xc1, 0x180137695\ncall    sub_180137954                                                  ; +0xc6, 0x18013769a\nmov     edi, eax                                                       ; +0xcb, 0x18013769f\ntest    eax, eax                                                       ; +0xcd, 0x1801376a1\njz      short loc_1801376AD                                            ; +0xcf, 0x1801376a3\nmov     [rbx], r14b                                                    ; +0xd1, 0x1801376a5\njmp     loc_180137921                                                  ; +0xd4, 0x1801376a8\nmov     edx, 65h ; 'e'; Ch                                             ; +0xd9, 0x1801376ad\nmov     rcx, rbx; Str                                                  ; +0xde, 0x1801376b2\ncall    strrchr                                                        ; +0xe1, 0x1801376b5\ntest    rax, rax                                                       ; +0xe6, 0x1801376ba\njz      loc_18013791E                                                  ; +0xe9, 0x1801376bd\nmov     cl, [rsp+98h+arg_30]                                           ; +0xef, 0x1801376c3\nxor     cl, 1                                                          ; +0xf6, 0x1801376ca\nshl     cl, 5                                                          ; +0xf9, 0x1801376cd\nadd     cl, 50h ; 'P'                                                  ; +0xfc, 0x1801376d0\nmov     [rax], cl                                                      ; +0xff, 0x1801376d3\nmov     [rax+3], r14b                                                  ; +0x101, 0x1801376d5\njmp     loc_18013791E                                                  ; +0x105, 0x1801376d9\nmov     eax, 2Dh ; '-'                                                 ; +0x10a, 0x1801376de\ntest    rcx, rcx                                                       ; +0x10f, 0x1801376e3\njns     short loc_1801376F0                                            ; +0x112, 0x1801376e6\nmov     [rbx], al                                                      ; +0x114, 0x1801376e8\ninc     rbx                                                            ; +0x116, 0x1801376ea\nmov     rcx, [r15]                                                     ; +0x119, 0x1801376ed\nmov     al, [rsp+98h+arg_30]                                           ; +0x11c, 0x1801376f0\nlea     rbp, [rbx+1]                                                   ; +0x123, 0x1801376f7\nxor     al, 1                                                          ; +0x127, 0x1801376fb\nmov     r12d, 3FFh                                                     ; +0x129, 0x1801376fd\nmovzx   r13d, al                                                       ; +0x12f, 0x180137703\nmov     r9d, 30h ; '0'                                                 ; +0x133, 0x180137707\nmov     esi, r13d                                                      ; +0x139, 0x18013770d\nmov     rax, 7FF0000000000000h                                         ; +0x13c, 0x180137710\nshl     esi, 5                                                         ; +0x146, 0x18013771a\nmov     r10, 0FFFFFFFFFFFFFh                                           ; +0x149, 0x18013771d\nadd     esi, 7                                                         ; +0x153, 0x180137727\ntest    rax, rcx                                                       ; +0x156, 0x18013772a\njnz     short loc_180137747                                            ; +0x159, 0x18013772d\nmov     [rbx], r9b                                                     ; +0x15b, 0x18013772f\nmov     rax, [r15]                                                     ; +0x15e, 0x180137732\nand     rax, r10                                                       ; +0x161, 0x180137735\nneg     rax                                                            ; +0x164, 0x180137738\nsbb     r12, r12                                                       ; +0x167, 0x18013773b\nand     r12d, 3FEh                                                     ; +0x16a, 0x18013773e\njmp     short loc_18013774A                                            ; +0x171, 0x180137745\nmov     byte ptr [rbx], 31h ; '1'                                      ; +0x173, 0x180137747\nxor     ebx, ebx                                                       ; +0x176, 0x18013774a\nlea     r14, [rbp+1]                                                   ; +0x178, 0x18013774c\ntest    edi, edi                                                       ; +0x17c, 0x180137750\njnz     short loc_180137758                                            ; +0x17e, 0x180137752\nmov     al, bl                                                         ; +0x180, 0x180137754\njmp     short loc_180137769                                            ; +0x182, 0x180137756\nmov     rax, [rsp+98h+var_40]                                          ; +0x184, 0x180137758\nmov     rcx, [rax+0F8h]                                                ; +0x189, 0x18013775d\nmov     rax, [rcx]                                                     ; +0x190, 0x180137764\nmov     al, [rax]                                                      ; +0x193, 0x180137767\nmov     [rbp+0], al                                                    ; +0x195, 0x180137769\ntest    [r15], r10                                                     ; +0x198, 0x18013776c\njbe     loc_180137806                                                  ; +0x19b, 0x18013776f\nmovzx   r8d, r9w                                                       ; +0x1a1, 0x180137775\nmov     rdx, 0F000000000000h                                           ; +0x1a5, 0x180137779\ntest    edi, edi                                                       ; +0x1af, 0x180137783\njle     short loc_1801377B6                                            ; +0x1b1, 0x180137785\nmov     rax, [r15]                                                     ; +0x1b3, 0x180137787\nmov     cl, r8b                                                        ; +0x1b6, 0x18013778a\nand     rax, rdx                                                       ; +0x1b9, 0x18013778d\nand     rax, r10                                                       ; +0x1bc, 0x180137790\nshr     rax, cl                                                        ; +0x1bf, 0x180137793\nadd     ax, r9w                                                        ; +0x1c2, 0x180137796\ncmp     ax, 39h ; '9'                                                  ; +0x1c6, 0x18013779a\njbe     short loc_1801377A3                                            ; +0x1ca, 0x18013779e\nadd     ax, si                                                         ; +0x1cc, 0x1801377a0\nmov     [r14], al                                                      ; +0x1cf, 0x1801377a3\ndec     edi                                                            ; +0x1d2, 0x1801377a6\ninc     r14                                                            ; +0x1d4, 0x1801377a8\nshr     rdx, 4                                                         ; +0x1d7, 0x1801377ab\nadd     r8w, 0FFFCh                                                    ; +0x1db, 0x1801377af\njns     short loc_180137783                                            ; +0x1e0, 0x1801377b4\ntest    r8w, r8w                                                       ; +0x1e2, 0x1801377b6\njs      short loc_180137806                                            ; +0x1e6, 0x1801377ba\nmov     r9d, [rsp+98h+arg_48]                                          ; +0x1e8, 0x1801377bc\nmov     rcx, r15                                                       ; +0x1f0, 0x1801377c4\ncall    ?should_round_up@@YA_NQEBN_KFW4__acrt_rounding_mode@@@Z        ; +0x1f3, 0x1801377c7\nmov     r9d, 30h ; '0'                                                 ; +0x1f8, 0x1801377cc\ntest    al, al                                                         ; +0x1fe, 0x1801377d2\njz      short loc_180137806                                            ; +0x200, 0x1801377d4\nlea     rcx, [r14-1]                                                   ; +0x202, 0x1801377d6\nmov     dl, [rcx]                                                      ; +0x206, 0x1801377da\nlea     eax, [rdx-46h]                                                 ; +0x208, 0x1801377dc\ntest    al, 0DFh                                                       ; +0x20b, 0x1801377df\njnz     short loc_1801377EB                                            ; +0x20d, 0x1801377e1\nmov     [rcx], r9b                                                     ; +0x20f, 0x1801377e3\ndec     rcx                                                            ; +0x212, 0x1801377e6\njmp     short loc_1801377DA                                            ; +0x215, 0x1801377e9\ncmp     rcx, rbp                                                       ; +0x217, 0x1801377eb\njz      short loc_180137803                                            ; +0x21a, 0x1801377ee\ncmp     dl, 39h ; '9'                                                  ; +0x21c, 0x1801377f0\njnz     short loc_1801377FB                                            ; +0x21f, 0x1801377f3\nadd     sil, 3Ah ; ':'                                                 ; +0x221, 0x1801377f5\njmp     short loc_1801377FE                                            ; +0x225, 0x1801377f9\nlea     esi, [rdx+1]                                                   ; +0x227, 0x1801377fb\nmov     [rcx], sil                                                     ; +0x22a, 0x1801377fe\njmp     short loc_180137806                                            ; +0x22d, 0x180137801\ninc     byte ptr [rcx-1]                                               ; +0x22f, 0x180137803\ntest    edi, edi                                                       ; +0x232, 0x180137806\njle     short loc_18013781F                                            ; +0x234, 0x180137808\nmov     r8d, edi; Size                                                 ; +0x236, 0x18013780a\nmov     dl, r9b; Val                                                   ; +0x239, 0x18013780d\nmov     rcx, r14; void *                                               ; +0x23c, 0x180137810\nmov     ebx, edi                                                       ; +0x23f, 0x180137813\ncall    memset                                                         ; +0x241, 0x180137815\nadd     r14, rbx                                                       ; +0x246, 0x18013781a\nxor     ebx, ebx                                                       ; +0x249, 0x18013781d\ncmp     [rbp+0], bl                                                    ; +0x24b, 0x18013781f\ncmovnz  rbp, r14                                                       ; +0x24e, 0x180137822\nshl     r13b, 5                                                        ; +0x252, 0x180137826\nadd     r13b, 50h ; 'P'                                                ; +0x256, 0x18013782a\nmov     [rbp+0], r13b                                                  ; +0x25a, 0x18013782e\nlea     r9, [rbp+2]                                                    ; +0x25e, 0x180137832\nmov     rax, [r15]                                                     ; +0x262, 0x180137836\nshr     rax, 34h                                                       ; +0x265, 0x180137839\nand     eax, 7FFh                                                      ; +0x269, 0x18013783d\nmov     ecx, eax                                                       ; +0x26e, 0x180137842\nsub     rcx, r12                                                       ; +0x270, 0x180137844\nmov     rdx, rcx                                                       ; +0x273, 0x180137847\njns     short loc_180137852                                            ; +0x276, 0x18013784a\nmov     rcx, r12                                                       ; +0x278, 0x18013784c\nsub     rcx, rax                                                       ; +0x27b, 0x18013784f\nmov     eax, 2Bh ; '+'                                                 ; +0x27e, 0x180137852\nxor     r14d, r14d                                                     ; +0x283, 0x180137857\ntest    rdx, rdx                                                       ; +0x286, 0x18013785a\nmov     r8, r9                                                         ; +0x289, 0x18013785d\nlea     edx, [rax+2]                                                   ; +0x28c, 0x180137860\ncmovs   eax, edx                                                       ; +0x28f, 0x180137863\nmov     [rbp+1], al                                                    ; +0x292, 0x180137866\nmov     byte ptr [r9], 30h ; '0'                                       ; +0x295, 0x180137869\ncmp     rcx, 3E8h                                                      ; +0x299, 0x18013786d\njl      short loc_1801378A5                                            ; +0x2a0, 0x180137874\nmov     rax, 20C49BA5E353F7CFh                                         ; +0x2a2, 0x180137876\nlea     r8, [r9+1]                                                     ; +0x2ac, 0x180137880\nimul    rcx                                                            ; +0x2b0, 0x180137884\nsar     rdx, 7                                                         ; +0x2b3, 0x180137887\nmov     rax, rdx                                                       ; +0x2b7, 0x18013788b\nshr     rax, 3Fh                                                       ; +0x2ba, 0x18013788e\nadd     rdx, rax                                                       ; +0x2be, 0x180137892\nlea     eax, [rdx+30h]                                                 ; +0x2c1, 0x180137895\nmov     [r9], al                                                       ; +0x2c4, 0x180137898\nimul    rax, rdx, 0FFFFFFFFFFFFFC18h                                   ; +0x2c7, 0x18013789b\nadd     rcx, rax                                                       ; +0x2ce, 0x1801378a2\ncmp     r8, r9                                                         ; +0x2d1, 0x1801378a5\njnz     short loc_1801378B0                                            ; +0x2d4, 0x1801378a8\ncmp     rcx, 64h ; 'd'                                                 ; +0x2d6, 0x1801378aa\njl      short loc_1801378DE                                            ; +0x2da, 0x1801378ae\nmov     rax, 0A3D70A3D70A3D70Bh                                        ; +0x2dc, 0x1801378b0\nimul    rcx                                                            ; +0x2e6, 0x1801378ba\nadd     rdx, rcx                                                       ; +0x2e9, 0x1801378bd\nsar     rdx, 6                                                         ; +0x2ec, 0x1801378c0\nmov     rax, rdx                                                       ; +0x2f0, 0x1801378c4\nshr     rax, 3Fh                                                       ; +0x2f3, 0x1801378c7\nadd     rdx, rax                                                       ; +0x2f7, 0x1801378cb\nlea     eax, [rdx+30h]                                                 ; +0x2fa, 0x1801378ce\nmov     [r8], al                                                       ; +0x2fd, 0x1801378d1\ninc     r8                                                             ; +0x300, 0x1801378d4\nimul    rax, rdx, -64h                                                 ; +0x303, 0x1801378d7\nadd     rcx, rax                                                       ; +0x307, 0x1801378db\ncmp     r8, r9                                                         ; +0x30a, 0x1801378de\njnz     short loc_1801378E9                                            ; +0x30d, 0x1801378e1\ncmp     rcx, 0Ah                                                       ; +0x30f, 0x1801378e3\njl      short loc_180137914                                            ; +0x313, 0x1801378e7\nmov     rax, 6666666666666667h                                         ; +0x315, 0x1801378e9\nimul    rcx                                                            ; +0x31f, 0x1801378f3\nsar     rdx, 2                                                         ; +0x322, 0x1801378f6\nmov     rax, rdx                                                       ; +0x326, 0x1801378fa\nshr     rax, 3Fh                                                       ; +0x329, 0x1801378fd\nadd     rdx, rax                                                       ; +0x32d, 0x180137901\nlea     eax, [rdx+30h]                                                 ; +0x330, 0x180137904\nmov     [r8], al                                                       ; +0x333, 0x180137907\ninc     r8                                                             ; +0x336, 0x18013790a\nimul    rax, rdx, -0Ah                                                 ; +0x339, 0x18013790d\nadd     rcx, rax                                                       ; +0x33d, 0x180137911\nadd     cl, 30h ; '0'                                                  ; +0x340, 0x180137914\nmov     [r8], cl                                                       ; +0x343, 0x180137917\nmov     [r8+1], r14b                                                   ; +0x346, 0x18013791a\nmov     edi, r14d                                                      ; +0x34a, 0x18013791e\ncmp     [rsp+98h+var_30], r14b                                         ; +0x34d, 0x180137921\njz      short loc_180137934                                            ; +0x352, 0x180137926\nmov     rcx, [rsp+98h+var_48]                                          ; +0x354, 0x180137928\nand     dword ptr [rcx+3A8h], 0FFFFFFFDh                               ; +0x359, 0x18013792d\nlea     r11, [rsp+98h+var_28]                                          ; +0x360, 0x180137934\nmov     eax, edi                                                       ; +0x365, 0x180137939\nmov     rbx, [r11+30h]                                                 ; +0x367, 0x18013793b\nmov     rbp, [r11+38h]                                                 ; +0x36b, 0x18013793f\nmov     rsi, [r11+40h]                                                 ; +0x36f, 0x180137943\nmov     rsp, r11                                                       ; +0x373, 0x180137947\npop     r15                                                            ; +0x376, 0x18013794a\npop     r14                                                            ; +0x378, 0x18013794c\npop     r13                                                            ; +0x37a, 0x18013794e\npop     r12                                                            ; +0x37c, 0x180137950\npop     rdi                                                            ; +0x37e, 0x180137952\nretn                                                                   ; +0x37f, 0x180137953", "xrefs": ["sub_180137FE0 @ 0x1801382e6", "<???> @ 0x1802035e4", "<???> @ 0x1802035f0"], "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"}