{"type": "func", "start": 1065740, "end": 1065912, "name": "sub_10430C", "pseudocode": "// \n// sub_10430C from 0x10430c to 0x1043b8 (172 bytes)\n// \n// 3 xrefs:\n// > sub_103E84 @ 0x103fcc\n// > sub_103E84 @ 0x1040b0\n// > sub_103E84 @ 0x1040c0\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__n128 __fastcall sub_10430C(__int64 a1, __int64 a2)\n{\n  __int64 v4; // x3\n  __int16 v5; // w2\n  int v6; // w10\n  __int64 v7; // x8\n  int v8; // w2\n  __n128 result; // q0\n\n  v4 = **(_QWORD **)a2 >> *(_DWORD *)(a2 + 16);\n  v5 = *(_WORD *)(*(_QWORD *)(a1 + 48) + 2LL * ((unsigned int)v4 & *(_DWORD *)(a1 + 112)));\n  if ( v5 < 0 )\n    sub_FBCF8(a1, a2, v5, v4);\n  sub_1047DC();\n  *(_DWORD *)(a2 + 16) = v6;\n  *(_QWORD *)a2 = v7;\n  LOBYTE(v6) = *(_BYTE *)(a1 + 102);\n  result.n128_u32[0] = *(unsigned __int16 *)(*(_QWORD *)(a1 + 72) + 2LL * (unsigned int)(v8 - 1));\n  result.n128_u32[1] = result.n128_u32[0] >> v6;\n  result.n128_u32[2] = result.n128_u32[0] >> v6 >> v6;\n  result.n128_u32[3] = result.n128_u32[2] >> v6;\n  return result;\n}", "assembly": "; \n; sub_10430C from 0x10430c to 0x1043b8 (172 bytes)\n; \n; 3 xrefs:\n; > sub_103E84 @ 0x103fcc\n; > sub_103E84 @ 0x1040b0\n; > sub_103E84 @ 0x1040c0\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\nSTR             X21, [SP,#-0x10+var_20]!                               ; +0x0, 0x10430c\nSTP             X20, X19, [SP,#0x20+var_10]                            ; +0x4, 0x104310\nSTP             X29, X30, [SP,#0x20+var_s0]                            ; +0x8, 0x104314\nLDR             X8, [X1]                                               ; +0xc, 0x104318\nLDR             W9, [X1,#0x10]                                         ; +0x10, 0x10431c\nLDR             W11, [X0,#0x70]                                        ; +0x14, 0x104320\nLDP             X12, X21, [X0,#0x30]                                   ; +0x18, 0x104324\nLDR             X10, [X8]                                              ; +0x1c, 0x104328\nMOV             X20, X1                                                ; +0x20, 0x10432c\nMOV             X19, X0                                                ; +0x24, 0x104330\nADD             X29, SP, #0x20                                         ; +0x28, 0x104334\nLSR             X3, X10, X9                                            ; +0x2c, 0x104338\nAND             X10, X3, X11                                           ; +0x30, 0x10433c\nLDRSH           W10, [X12,X10,LSL#1]                                   ; +0x34, 0x104340\nAND             W2, W10, #0xFFFF                                       ; +0x38, 0x104344\nTBNZ            W10, #0x1F, loc_104354                                 ; +0x3c, 0x104348\nAND             W0, W10, #0x7FFF                                       ; +0x40, 0x10434c\nB               loc_10436C                                             ; +0x44, 0x104350\nMOV             X0, X19                                                ; +0x48, 0x104354\nMOV             X1, X20                                                ; +0x4c, 0x104358\nBL              sub_FBCF8                                              ; +0x50, 0x10435c\nLDR             W9, [X20,#0x10]                                        ; +0x54, 0x104360\nLDR             X8, [X20]                                              ; +0x58, 0x104364\nMOV             W2, W0                                                 ; +0x5c, 0x104368\nLDRB            W10, [X21,W0,UXTW]                                     ; +0x60, 0x10436c\nBL              sub_1047DC                                             ; +0x64, 0x104370\nSTR             W10, [X20,#0x10]                                       ; +0x68, 0x104374\nSTR             X8, [X20]                                              ; +0x6c, 0x104378\nLDR             X8, [X19,#0x48]                                        ; +0x70, 0x10437c\nSUB             W9, W2, #1                                             ; +0x74, 0x104380\nLDRB            W10, [X19,#0x66]                                       ; +0x78, 0x104384\nLDP             X29, X30, [SP,#0x20+var_s0]                            ; +0x7c, 0x104388\nLDRH            W8, [X8,W9,UXTW#1]                                     ; +0x80, 0x10438c\nLDP             X20, X19, [SP,#0x20+var_10]                            ; +0x84, 0x104390\nLSR             W9, W8, W10                                            ; +0x88, 0x104394\nFMOV            S0, W8                                                 ; +0x8c, 0x104398\nLSR             W8, W9, W10                                            ; +0x90, 0x10439c\nINS             V0.S[1], W9                                            ; +0x94, 0x1043a0\nLSR             W9, W8, W10                                            ; +0x98, 0x1043a4\nINS             V0.S[2], W8                                            ; +0x9c, 0x1043a8\nINS             V0.S[3], W9                                            ; +0xa0, 0x1043ac\nLDR             X21, [SP+0x20+var_20],#0x30                            ; +0xa4, 0x1043b0\nRET                                                                    ; +0xa8, 0x1043b4", "xrefs": ["sub_103E84 @ 0x103fcc", "sub_103E84 @ 0x1040b0", "sub_103E84 @ 0x1040c0"], "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"}