{"type": "func", "start": 6442460352, "end": 6442460482, "name": "sub_1800024C0", "pseudocode": "// \n// sub_1800024C0 from 0x1800024c0 to 0x180002542 (130 bytes)\n// \n// 3 xrefs:\n// > sub_180001A10 @ 0x180001dad\n// > <???> @ 0x1801f60e4\n// > <???> @ 0x1801f60f0\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_1800024C0(int a1, unsigned int a2)\n{\n  int v2; // eax\n  __int64 v3; // r11\n  unsigned int v5; // r8d\n  __int64 result; // rax\n  int v7; // ebx\n  int v8; // ecx\n  int v9; // edx\n  __int64 v10; // r8\n  int v11; // eax\n\n  v2 = 0;\n  v3 = a2;\n  v5 = a1;\n  if ( a1 )\n  {\n    do\n    {\n      ++v2;\n      v5 >>= 1;\n    }\n    while ( v5 );\n  }\n  for ( result = (unsigned int)(a1 >> ((int)((a2 - 1) * (v2 - 1)) / (int)a2)); ; result = (unsigned int)(v7 + v11) )\n  {\n    v7 = result;\n    v8 = 1;\n    v9 = 1;\n    if ( (int)v3 > 0 )\n    {\n      v10 = v3;\n      do\n      {\n        v8 *= (_DWORD)result;\n        v9 *= (_DWORD)result + 1;\n        --v10;\n      }\n      while ( v10 );\n    }\n    if ( v8 <= a1 && v9 > a1 )\n      break;\n    v11 = -1;\n    if ( v8 <= a1 )\n      v11 = 1;\n  }\n  return result;\n}", "assembly": "; \n; sub_1800024C0 from 0x1800024c0 to 0x180002542 (130 bytes)\n; \n; 3 xrefs:\n; > sub_180001A10 @ 0x180001dad\n; > <???> @ 0x1801f60e4\n; > <???> @ 0x1801f60f0\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, 0x1800024c0\nmov     [rsp+arg_8], rdi                                               ; +0x5, 0x1800024c5\nxor     eax, eax                                                       ; +0xa, 0x1800024ca\nmov     r11d, edx                                                      ; +0xc, 0x1800024cc\nmov     r10d, ecx                                                      ; +0xf, 0x1800024cf\nmov     r8d, ecx                                                       ; +0x12, 0x1800024d2\ntest    ecx, ecx                                                       ; +0x15, 0x1800024d5\njz      short loc_1800024E7                                            ; +0x17, 0x1800024d7\nnop     dword ptr [rax+00000000h]                                      ; +0x19, 0x1800024d9\ninc     eax                                                            ; +0x20, 0x1800024e0\nshr     r8d, 1                                                         ; +0x22, 0x1800024e2\njnz     short loc_1800024E0                                            ; +0x25, 0x1800024e5\ndec     eax                                                            ; +0x27, 0x1800024e7\nlea     ecx, [r11-1]                                                   ; +0x29, 0x1800024e9\nimul    eax, ecx                                                       ; +0x2d, 0x1800024ed\nmov     edi, 1                                                         ; +0x30, 0x1800024f0\ncdq                                                                    ; +0x35, 0x1800024f5\nidiv    r11d                                                           ; +0x36, 0x1800024f6\nmov     ecx, eax                                                       ; +0x39, 0x1800024f9\nmov     eax, r10d                                                      ; +0x3b, 0x1800024fb\nsar     eax, cl                                                        ; +0x3e, 0x1800024fe\nmov     ebx, eax                                                       ; +0x40, 0x180002500\nmov     ecx, edi                                                       ; +0x42, 0x180002502\nmov     edx, edi                                                       ; +0x44, 0x180002504\ntest    r11d, r11d                                                     ; +0x46, 0x180002506\njle     short loc_18000251E                                            ; +0x49, 0x180002509\nlea     r9d, [rax+1]                                                   ; +0x4b, 0x18000250b\nmov     r8, r11                                                        ; +0x4f, 0x18000250f\nimul    ecx, eax                                                       ; +0x52, 0x180002512\nimul    edx, r9d                                                       ; +0x55, 0x180002515\nsub     r8, rdi                                                        ; +0x59, 0x180002519\njnz     short loc_180002512                                            ; +0x5c, 0x18000251c\ncmp     ecx, r10d                                                      ; +0x5e, 0x18000251e\njg      short loc_180002528                                            ; +0x61, 0x180002521\ncmp     edx, r10d                                                      ; +0x63, 0x180002523\njg      short loc_180002537                                            ; +0x66, 0x180002526\ncmp     ecx, r10d                                                      ; +0x68, 0x180002528\nmov     eax, 0FFFFFFFFh                                                ; +0x6b, 0x18000252b\ncmovle  eax, edi                                                       ; +0x70, 0x180002530\nadd     eax, ebx                                                       ; +0x73, 0x180002533\njmp     short loc_180002500                                            ; +0x75, 0x180002535\nmov     rbx, [rsp+arg_0]                                               ; +0x77, 0x180002537\nmov     rdi, [rsp+arg_8]                                               ; +0x7c, 0x18000253c\nretn                                                                   ; +0x81, 0x180002541", "xrefs": ["sub_180001A10 @ 0x180001dad", "<???> @ 0x1801f60e4", "<???> @ 0x1801f60f0"], "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"}