{"type": "func", "start": 6443737896, "end": 6443738040, "name": "setSBCS", "pseudocode": "// \n// setSBCS from 0x18013a328 to 0x18013a3b8 (144 bytes)\n// \n// 2 xrefs:\n// > _setmbcp_nolock @ 0x18013ab1d\n// > <???> @ 0x180203848\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 setSBCS(struct threadmbcinfostruct *a1)\n{\n  _BYTE *v1; // rbx\n  __int64 v3; // rbp\n  _WORD *v4; // rdi\n  __int64 v5; // rcx\n  signed __int64 v6; // rdi\n  _BYTE *v7; // rcx\n  __int64 v8; // rdx\n\n  v1 = (char *)a1 + 24;\n  v3 = 257;\n  memset((char *)a1 + 24, 0, 0x101u);\n  v4 = (_WORD *)((char *)a1 + 12);\n  *(_QWORD *)((char *)a1 + 4) = 0;\n  v5 = 6;\n  *((_QWORD *)a1 + 68) = 0;\n  while ( v5 )\n  {\n    *v4++ = 0;\n    --v5;\n  }\n  v6 = &unk_1801B1A50 - (_UNKNOWN *)a1;\n  do\n  {\n    *v1 = v1[v6];\n    ++v1;\n    --v3;\n  }\n  while ( v3 );\n  v7 = (char *)a1 + 281;\n  v8 = 256;\n  do\n  {\n    *v7 = v7[v6];\n    ++v7;\n    --v8;\n  }\n  while ( v8 );\n}", "assembly": "; \n; setSBCS from 0x18013a328 to 0x18013a3b8 (144 bytes)\n; \n; 2 xrefs:\n; > _setmbcp_nolock @ 0x18013ab1d\n; > <???> @ 0x180203848\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, 0x18013a328\nmov     [rsp+arg_8], rbp                                               ; +0x5, 0x18013a32d\nmov     [rsp+arg_10], rsi                                              ; +0xa, 0x18013a332\npush    rdi                                                            ; +0xf, 0x18013a337\nsub     rsp, 20h                                                       ; +0x10, 0x18013a338\nlea     rbx, [rcx+18h]                                                 ; +0x14, 0x18013a33c\nmov     rsi, rcx                                                       ; +0x18, 0x18013a340\nmov     ebp, 101h                                                      ; +0x1b, 0x18013a343\nmov     rcx, rbx; void *                                               ; +0x20, 0x18013a348\nmov     r8d, ebp; Size                                                 ; +0x23, 0x18013a34b\nxor     edx, edx; Val                                                  ; +0x26, 0x18013a34e\ncall    memset                                                         ; +0x28, 0x18013a350\nxor     eax, eax                                                       ; +0x2d, 0x18013a355\nlea     rdi, [rsi+0Ch]                                                 ; +0x2f, 0x18013a357\nmov     [rsi+4], rax                                                   ; +0x33, 0x18013a35b\nmov     ecx, 6                                                         ; +0x37, 0x18013a35f\nmov     [rsi+220h], rax                                                ; +0x3c, 0x18013a364\nmovzx   eax, ax                                                        ; +0x43, 0x18013a36b\nrep stosw                                                              ; +0x46, 0x18013a36e\nlea     rdi, unk_1801B1A50                                             ; +0x49, 0x18013a371\nsub     rdi, rsi                                                       ; +0x50, 0x18013a378\nmov     al, [rdi+rbx]                                                  ; +0x53, 0x18013a37b\nmov     [rbx], al                                                      ; +0x56, 0x18013a37e\ninc     rbx                                                            ; +0x58, 0x18013a380\nsub     rbp, 1                                                         ; +0x5b, 0x18013a383\njnz     short loc_18013A37B                                            ; +0x5f, 0x18013a387\nlea     rcx, [rsi+119h]                                                ; +0x61, 0x18013a389\nmov     edx, 100h                                                      ; +0x68, 0x18013a390\nmov     al, [rcx+rdi]                                                  ; +0x6d, 0x18013a395\nmov     [rcx], al                                                      ; +0x70, 0x18013a398\ninc     rcx                                                            ; +0x72, 0x18013a39a\nsub     rdx, 1                                                         ; +0x75, 0x18013a39d\njnz     short loc_18013A395                                            ; +0x79, 0x18013a3a1\nmov     rbx, [rsp+28h+arg_0]                                           ; +0x7b, 0x18013a3a3\nmov     rbp, [rsp+28h+arg_8]                                           ; +0x80, 0x18013a3a8\nmov     rsi, [rsp+28h+arg_10]                                          ; +0x85, 0x18013a3ad\nadd     rsp, 20h                                                       ; +0x8a, 0x18013a3b2\npop     rdi                                                            ; +0x8e, 0x18013a3b6\nretn                                                                   ; +0x8f, 0x18013a3b7", "xrefs": ["_setmbcp_nolock @ 0x18013ab1d", "<???> @ 0x180203848"], "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"}