{"type": "func", "start": 6442455872, "end": 6442455977, "name": "sub_180001340", "pseudocode": "// \n// sub_180001340 from 0x180001340 to 0x1800013a9 (105 bytes)\n// \n// 103 xrefs:\n// > sub_180001540 @ 0x18000157b\n// > sub_180001540 @ 0x180001593\n// > sub_180001540 @ 0x1800015a3\n// > sub_180001540 @ 0x1800015bf\n// > sub_180001540 @ 0x1800015db\n// > sub_180001540 @ 0x180001629\n// > sub_180001540 @ 0x180001669\n// > sub_180001540 @ 0x1800016b1\n// > sub_180001540 @ 0x180001704\n// > sub_180001540 @ 0x180001728\n// > sub_180001540 @ 0x180001739\n// > sub_180001540 @ 0x180001788\n// > sub_180001A10 @ 0x180001a71\n// > sub_180001A10 @ 0x180001a88\n// > sub_180001A10 @ 0x180001a97\n// > sub_180001A10 @ 0x180001ab6\n// > sub_180001A10 @ 0x180001ad3\n// > sub_180001A10 @ 0x180001b39\n// > sub_180001A10 @ 0x180001b94\n// > sub_180001A10 @ 0x180001bab\n// > sub_180001A10 @ 0x180001bba\n// > sub_180001A10 @ 0x180001c46\n// > sub_180001A10 @ 0x180001c56\n// > sub_180001A10 @ 0x180001cc8\n// > sub_180001A10 @ 0x180001ceb\n// > sub_180001A10 @ 0x180001cfc\n// > sub_180001A10 @ 0x180001d68\n// > sub_180001A10 @ 0x180001df7\n// > sub_180003F70 @ 0x180003fa2\n// > sub_180003F70 @ 0x180003fe2\n// > sub_180003F70 @ 0x1800040a6\n// > sub_180003F70 @ 0x1800040b3\n// > sub_180004490 @ 0x1800044b6\n// > sub_180004490 @ 0x1800044de\n// > sub_180006380 @ 0x1800063c1\n// > sub_180006380 @ 0x18000641a\n// > sub_180006380 @ 0x180006488\n// > sub_180006380 @ 0x18000649b\n// > sub_180006380 @ 0x180006529\n// > sub_180006640 @ 0x180006686\n// > sub_180006640 @ 0x1800066bd\n// > sub_180006640 @ 0x180006708\n// > sub_180006640 @ 0x180006725\n// > sub_180006640 @ 0x180006755\n// > sub_180006640 @ 0x1800067a8\n// > sub_180006640 @ 0x18000680d\n// > sub_180006640 @ 0x18000681f\n// > sub_180006640 @ 0x1800068e6\n// > sub_180006A40 @ 0x180006a8a\n// > sub_180006A40 @ 0x180006aad\n// > sub_180006A40 @ 0x180006ac2\n// > sub_180006A40 @ 0x180006acf\n// > sub_180007790 @ 0x1800077cd\n// > sub_180007790 @ 0x18000781b\n// > sub_180007790 @ 0x180007838\n// > sub_180007790 @ 0x180007852\n// > sub_180007790 @ 0x180007898\n// > sub_180007790 @ 0x1800078ee\n// > sub_180007790 @ 0x180007941\n// > sub_180007790 @ 0x180007969\n// > sub_180007790 @ 0x1800079a7\n// > sub_180007790 @ 0x1800079d8\n// > sub_180007790 @ 0x1800079ec\n// > sub_180007790 @ 0x1800079fb\n// > sub_180007790 @ 0x180007a0a\n// > sub_180007790 @ 0x180007a38\n// > sub_180007A70 @ 0x180007a96\n// > sub_180007A70 @ 0x180007add\n// > sub_180007A70 @ 0x180007b12\n// > sub_180007A70 @ 0x180007b3a\n// > sub_180007A70 @ 0x180007b69\n// > sub_180007A70 @ 0x180007bba\n// > sub_180007A70 @ 0x180007c09\n// > sub_180007CB0 @ 0x180007cd2\n// > sub_180007CB0 @ 0x180007ce1\n// > sub_180007CB0 @ 0x180007cf8\n// > sub_180007CB0 @ 0x180007d09\n// > sub_180007E10 @ 0x180007e40\n// > sub_180007E10 @ 0x180007e51\n// > sub_180007E10 @ 0x180007e78\n// > sub_180007E10 @ 0x180007e8d\n// > sub_180007E10 @ 0x180007ed9\n// > sub_180007E10 @ 0x180007f09\n// > sub_180007E10 @ 0x180007f4d\n// > sub_180007E10 @ 0x180007f88\n// > sub_180007E10 @ 0x180007fcb\n// > sub_180007E10 @ 0x180007fd8\n// > sub_180007E10 @ 0x180007ffa\n// > sub_180009D60 @ 0x180009dee\n// > sub_180009D60 @ 0x180009e58\n// > sub_180009D60 @ 0x180009e68\n// > sub_180009D60 @ 0x180009e79\n// > sub_180009F30 @ 0x180009f6e\n// > sub_180009F30 @ 0x180009f86\n// > sub_180009F30 @ 0x180009f96\n// > sub_180009F30 @ 0x180009fa6\n// > sub_180009F30 @ 0x180009fb8\n// > sub_180009F30 @ 0x180009fca\n// > sub_180009F30 @ 0x18000a018\n// > sub_180009F30 @ 0x18000a027\n// > sub_180009F30 @ 0x18000a038\n// > sub_180009F30 @ 0x18000a08d\n// > <???> @ 0x1801f6090\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 sub_180001340(__int64 a1, int a2)\n{\n  _DWORD *v2; // r11\n  int v3; // r9d\n  unsigned int v4; // r8d\n  int v5; // edx\n\n  v2 = *(_DWORD **)a1;\n  v3 = *(_DWORD *)(a1 + 16);\n  v4 = **(_DWORD **)a1 >> v3;\n  if ( a2 < 32 )\n  {\n    v4 &= (1 << a2) - 1;\n  }\n  else if ( v3 )\n  {\n    v4 |= *((unsigned __int8 *)v2 + 4) << (32 - v3);\n  }\n  v5 = v3 + a2;\n  *(_DWORD *)(a1 + 16) = v5 & 7;\n  *(_QWORD *)a1 = (char *)v2 + ((__int64)v5 >> 3);\n  return v4;\n}", "assembly": "; \n; sub_180001340 from 0x180001340 to 0x1800013a9 (105 bytes)\n; \n; 103 xrefs:\n; > sub_180001540 @ 0x18000157b\n; > sub_180001540 @ 0x180001593\n; > sub_180001540 @ 0x1800015a3\n; > sub_180001540 @ 0x1800015bf\n; > sub_180001540 @ 0x1800015db\n; > sub_180001540 @ 0x180001629\n; > sub_180001540 @ 0x180001669\n; > sub_180001540 @ 0x1800016b1\n; > sub_180001540 @ 0x180001704\n; > sub_180001540 @ 0x180001728\n; > sub_180001540 @ 0x180001739\n; > sub_180001540 @ 0x180001788\n; > sub_180001A10 @ 0x180001a71\n; > sub_180001A10 @ 0x180001a88\n; > sub_180001A10 @ 0x180001a97\n; > sub_180001A10 @ 0x180001ab6\n; > sub_180001A10 @ 0x180001ad3\n; > sub_180001A10 @ 0x180001b39\n; > sub_180001A10 @ 0x180001b94\n; > sub_180001A10 @ 0x180001bab\n; > sub_180001A10 @ 0x180001bba\n; > sub_180001A10 @ 0x180001c46\n; > sub_180001A10 @ 0x180001c56\n; > sub_180001A10 @ 0x180001cc8\n; > sub_180001A10 @ 0x180001ceb\n; > sub_180001A10 @ 0x180001cfc\n; > sub_180001A10 @ 0x180001d68\n; > sub_180001A10 @ 0x180001df7\n; > sub_180003F70 @ 0x180003fa2\n; > sub_180003F70 @ 0x180003fe2\n; > sub_180003F70 @ 0x1800040a6\n; > sub_180003F70 @ 0x1800040b3\n; > sub_180004490 @ 0x1800044b6\n; > sub_180004490 @ 0x1800044de\n; > sub_180006380 @ 0x1800063c1\n; > sub_180006380 @ 0x18000641a\n; > sub_180006380 @ 0x180006488\n; > sub_180006380 @ 0x18000649b\n; > sub_180006380 @ 0x180006529\n; > sub_180006640 @ 0x180006686\n; > sub_180006640 @ 0x1800066bd\n; > sub_180006640 @ 0x180006708\n; > sub_180006640 @ 0x180006725\n; > sub_180006640 @ 0x180006755\n; > sub_180006640 @ 0x1800067a8\n; > sub_180006640 @ 0x18000680d\n; > sub_180006640 @ 0x18000681f\n; > sub_180006640 @ 0x1800068e6\n; > sub_180006A40 @ 0x180006a8a\n; > sub_180006A40 @ 0x180006aad\n; > sub_180006A40 @ 0x180006ac2\n; > sub_180006A40 @ 0x180006acf\n; > sub_180007790 @ 0x1800077cd\n; > sub_180007790 @ 0x18000781b\n; > sub_180007790 @ 0x180007838\n; > sub_180007790 @ 0x180007852\n; > sub_180007790 @ 0x180007898\n; > sub_180007790 @ 0x1800078ee\n; > sub_180007790 @ 0x180007941\n; > sub_180007790 @ 0x180007969\n; > sub_180007790 @ 0x1800079a7\n; > sub_180007790 @ 0x1800079d8\n; > sub_180007790 @ 0x1800079ec\n; > sub_180007790 @ 0x1800079fb\n; > sub_180007790 @ 0x180007a0a\n; > sub_180007790 @ 0x180007a38\n; > sub_180007A70 @ 0x180007a96\n; > sub_180007A70 @ 0x180007add\n; > sub_180007A70 @ 0x180007b12\n; > sub_180007A70 @ 0x180007b3a\n; > sub_180007A70 @ 0x180007b69\n; > sub_180007A70 @ 0x180007bba\n; > sub_180007A70 @ 0x180007c09\n; > sub_180007CB0 @ 0x180007cd2\n; > sub_180007CB0 @ 0x180007ce1\n; > sub_180007CB0 @ 0x180007cf8\n; > sub_180007CB0 @ 0x180007d09\n; > sub_180007E10 @ 0x180007e40\n; > sub_180007E10 @ 0x180007e51\n; > sub_180007E10 @ 0x180007e78\n; > sub_180007E10 @ 0x180007e8d\n; > sub_180007E10 @ 0x180007ed9\n; > sub_180007E10 @ 0x180007f09\n; > sub_180007E10 @ 0x180007f4d\n; > sub_180007E10 @ 0x180007f88\n; > sub_180007E10 @ 0x180007fcb\n; > sub_180007E10 @ 0x180007fd8\n; > sub_180007E10 @ 0x180007ffa\n; > sub_180009D60 @ 0x180009dee\n; > sub_180009D60 @ 0x180009e58\n; > sub_180009D60 @ 0x180009e68\n; > sub_180009D60 @ 0x180009e79\n; > sub_180009F30 @ 0x180009f6e\n; > sub_180009F30 @ 0x180009f86\n; > sub_180009F30 @ 0x180009f96\n; > sub_180009F30 @ 0x180009fa6\n; > sub_180009F30 @ 0x180009fb8\n; > sub_180009F30 @ 0x180009fca\n; > sub_180009F30 @ 0x18000a018\n; > sub_180009F30 @ 0x18000a027\n; > sub_180009F30 @ 0x18000a038\n; > sub_180009F30 @ 0x18000a08d\n; > <???> @ 0x1801f6090\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     [rsp+arg_0], rbx                                               ; +0x0, 0x180001340\nmov     r11, [rcx]                                                     ; +0x5, 0x180001345\nmov     r10, rcx                                                       ; +0x8, 0x180001348\nmov     r9d, [rcx+10h]                                                 ; +0xb, 0x18000134b\nmov     ebx, edx                                                       ; +0xf, 0x18000134f\nmov     ecx, r9d                                                       ; +0x11, 0x180001351\nmov     r8d, [r11]                                                     ; +0x14, 0x180001354\nshr     r8d, cl                                                        ; +0x17, 0x180001357\ncmp     edx, 20h ; ' '                                                 ; +0x1a, 0x18000135a\njl      short loc_180001378                                            ; +0x1d, 0x18000135d\ntest    r9d, r9d                                                       ; +0x1f, 0x18000135f\njz      short loc_180001386                                            ; +0x22, 0x180001362\nmovzx   edx, byte ptr [r11+4]                                          ; +0x24, 0x180001364\nmov     ecx, 20h ; ' '                                                 ; +0x29, 0x180001369\nsub     ecx, r9d                                                       ; +0x2e, 0x18000136e\nshl     edx, cl                                                        ; +0x31, 0x180001371\nor      r8d, edx                                                       ; +0x33, 0x180001373\njmp     short loc_180001386                                            ; +0x36, 0x180001376\nmov     ecx, ebx                                                       ; +0x38, 0x180001378\nmov     edx, 1                                                         ; +0x3a, 0x18000137a\nshl     edx, cl                                                        ; +0x3f, 0x18000137f\ndec     edx                                                            ; +0x41, 0x180001381\nand     r8d, edx                                                       ; +0x43, 0x180001383\nlea     edx, [r9+rbx]                                                  ; +0x46, 0x180001386\nmov     eax, r8d                                                       ; +0x4a, 0x18000138a\nmov     rbx, [rsp+arg_0]                                               ; +0x4d, 0x18000138d\nmov     ecx, edx                                                       ; +0x52, 0x180001392\nand     ecx, 7                                                         ; +0x54, 0x180001394\nmov     [r10+10h], ecx                                                 ; +0x57, 0x180001397\nmovsxd  rcx, edx                                                       ; +0x5b, 0x18000139b\nsar     rcx, 3                                                         ; +0x5e, 0x18000139e\nadd     rcx, r11                                                       ; +0x62, 0x1800013a2\nmov     [r10], rcx                                                     ; +0x65, 0x1800013a5\nretn                                                                   ; +0x68, 0x1800013a8", "xrefs": ["sub_180001540 @ 0x18000157b", "sub_180001540 @ 0x180001593", "sub_180001540 @ 0x1800015a3", "sub_180001540 @ 0x1800015bf", "sub_180001540 @ 0x1800015db", "sub_180001540 @ 0x180001629", "sub_180001540 @ 0x180001669", "sub_180001540 @ 0x1800016b1", "sub_180001540 @ 0x180001704", "sub_180001540 @ 0x180001728", "sub_180001540 @ 0x180001739", "sub_180001540 @ 0x180001788", "sub_180001A10 @ 0x180001a71", "sub_180001A10 @ 0x180001a88", "sub_180001A10 @ 0x180001a97", "sub_180001A10 @ 0x180001ab6", "sub_180001A10 @ 0x180001ad3", "sub_180001A10 @ 0x180001b39", "sub_180001A10 @ 0x180001b94", "sub_180001A10 @ 0x180001bab", "sub_180001A10 @ 0x180001bba", "sub_180001A10 @ 0x180001c46", "sub_180001A10 @ 0x180001c56", "sub_180001A10 @ 0x180001cc8", "sub_180001A10 @ 0x180001ceb", "sub_180001A10 @ 0x180001cfc", "sub_180001A10 @ 0x180001d68", "sub_180001A10 @ 0x180001df7", "sub_180003F70 @ 0x180003fa2", "sub_180003F70 @ 0x180003fe2", "sub_180003F70 @ 0x1800040a6", "sub_180003F70 @ 0x1800040b3", "sub_180004490 @ 0x1800044b6", "sub_180004490 @ 0x1800044de", "sub_180006380 @ 0x1800063c1", "sub_180006380 @ 0x18000641a", "sub_180006380 @ 0x180006488", "sub_180006380 @ 0x18000649b", "sub_180006380 @ 0x180006529", "sub_180006640 @ 0x180006686", "sub_180006640 @ 0x1800066bd", "sub_180006640 @ 0x180006708", "sub_180006640 @ 0x180006725", "sub_180006640 @ 0x180006755", "sub_180006640 @ 0x1800067a8", "sub_180006640 @ 0x18000680d", "sub_180006640 @ 0x18000681f", "sub_180006640 @ 0x1800068e6", "sub_180006A40 @ 0x180006a8a", "sub_180006A40 @ 0x180006aad", "sub_180006A40 @ 0x180006ac2", "sub_180006A40 @ 0x180006acf", "sub_180007790 @ 0x1800077cd", "sub_180007790 @ 0x18000781b", "sub_180007790 @ 0x180007838", "sub_180007790 @ 0x180007852", "sub_180007790 @ 0x180007898", "sub_180007790 @ 0x1800078ee", "sub_180007790 @ 0x180007941", "sub_180007790 @ 0x180007969", "sub_180007790 @ 0x1800079a7", "sub_180007790 @ 0x1800079d8", "sub_180007790 @ 0x1800079ec", "sub_180007790 @ 0x1800079fb", "sub_180007790 @ 0x180007a0a", "sub_180007790 @ 0x180007a38", "sub_180007A70 @ 0x180007a96", "sub_180007A70 @ 0x180007add", "sub_180007A70 @ 0x180007b12", "sub_180007A70 @ 0x180007b3a", "sub_180007A70 @ 0x180007b69", "sub_180007A70 @ 0x180007bba", "sub_180007A70 @ 0x180007c09", "sub_180007CB0 @ 0x180007cd2", "sub_180007CB0 @ 0x180007ce1", "sub_180007CB0 @ 0x180007cf8", "sub_180007CB0 @ 0x180007d09", "sub_180007E10 @ 0x180007e40", "sub_180007E10 @ 0x180007e51", "sub_180007E10 @ 0x180007e78", "sub_180007E10 @ 0x180007e8d", "sub_180007E10 @ 0x180007ed9", "sub_180007E10 @ 0x180007f09", "sub_180007E10 @ 0x180007f4d", "sub_180007E10 @ 0x180007f88", "sub_180007E10 @ 0x180007fcb", "sub_180007E10 @ 0x180007fd8", "sub_180007E10 @ 0x180007ffa", "sub_180009D60 @ 0x180009dee", "sub_180009D60 @ 0x180009e58", "sub_180009D60 @ 0x180009e68", "sub_180009D60 @ 0x180009e79", "sub_180009F30 @ 0x180009f6e", "sub_180009F30 @ 0x180009f86", "sub_180009F30 @ 0x180009f96", "sub_180009F30 @ 0x180009fa6", "sub_180009F30 @ 0x180009fb8", "sub_180009F30 @ 0x180009fca", "sub_180009F30 @ 0x18000a018", "sub_180009F30 @ 0x18000a027", "sub_180009F30 @ 0x18000a038", "sub_180009F30 @ 0x18000a08d", "<???> @ 0x1801f6090"], "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"}