{"type": "func", "start": 6443697380, "end": 6443698388, "name": "atan2f", "pseudocode": "// \n// atan2f from 0x1801304e4 to 0x1801308d4 (1008 bytes)\n// \n// 18 xrefs:\n// > sub_18007AC90 @ 0x18007b10f\n// > sub_18007AC90 @ 0x18007b12f\n// > sub_18007AC90 @ 0x18007b184\n// > sub_18007AC90 @ 0x18007b1bb\n// > sub_1800E9310 @ 0x1800e93a5\n// > sub_1800E9310 @ 0x1800e93ea\n// > sub_1800E9310 @ 0x1800e9564\n// > sub_1800E9310 @ 0x1800e95ad\n// > sub_1801009B0 @ 0x180100b21\n// > sub_1801009B0 @ 0x180100c15\n// > sub_1801009B0 @ 0x180100d0d\n// > sub_1801009B0 @ 0x180100e05\n// > sub_180101160 @ 0x180101351\n// > sub_180101160 @ 0x1801013dc\n// > sub_18010A910 @ 0x18010aa22\n// > sub_18010A910 @ 0x18010aa4d\n// > sub_18010BC70 @ 0x18010be8f\n// > <???> @ 0x180202e1c\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\nfloat __cdecl atan2f(float Y, float X)\n{\n  double v2; // xmm7_8\n  double v3; // xmm6_8\n  double v4; // rbp\n  double v5; // rdi\n  int v6; // esi\n  double v7; // r15\n  double v8; // r14\n  unsigned __int64 v10; // rbx\n  float v11; // xmm6_4\n  __int64 v12; // rcx\n  double v13; // rax\n  unsigned __int64 v14; // r8\n  __int64 v15; // rdx\n  unsigned __int64 v16; // rax\n  int v17; // edx\n  double v18; // xmm0_8\n  double v19; // xmm4_8\n  int v20; // eax\n  double v21; // xmm3_8\n  double v22; // xmm0_8\n  float v23; // [rsp+80h] [rbp+8h]\n\n  v2 = X;\n  v3 = Y;\n  v4 = X;\n  v5 = Y;\n  v6 = ((COERCE_UNSIGNED_INT64(Y) >> 52) & 0x7FF) - ((COERCE_UNSIGNED_INT64(X) >> 52) & 0x7FF);\n  v7 = fabs(X);\n  v8 = fabs(Y);\n  if ( *(_QWORD *)&v7 > 0x7FF0000000000000uLL )\n  {\n    v23 = X;\n    return handle_nanf(LODWORD(v23), 0x7FFFFFFFFFFFFFFFLL);\n  }\n  if ( *(_QWORD *)&v8 > 0x7FF0000000000000uLL )\n  {\n    v23 = Y;\n    return handle_nanf(LODWORD(v23), 0x7FFFFFFFFFFFFFFFLL);\n  }\n  v10 = 0;\n  if ( v8 == 0.0 )\n  {\n    if ( v4 >= 0.0 )\n      return v3;\nLABEL_35:\n    if ( v5 >= 0.0 )\n      v11 = 3.1415927;\n    else\n      v11 = -3.1415927;\n    goto LABEL_16;\n  }\n  if ( v7 == 0.0 )\n  {\n    if ( v5 < 0.0 )\n      goto LABEL_14;\n    set_statfp(32);\n  }\n  if ( v6 > 26 )\n  {\n    if ( v5 >= 0.0 )\n    {\n      v11 = 1.5707964;\n      goto LABEL_16;\n    }\nLABEL_14:\n    v11 = -1.5707964;\nLABEL_16:\n    v12 = 32;\n    goto LABEL_17;\n  }\n  if ( v6 < -13 && v4 >= 0.0 )\n  {\n    if ( v6 >= -150 )\n    {\n      if ( v6 >= -126 )\n        return v3 / v2;\n      v13 = fabs(1.267650600228229e30 * v3 / v2);\n      v14 = COERCE_UNSIGNED_INT64(1.267650600228229e30 * v3 / v2) & 0x8000000000000000uLL;\n      v15 = *(_QWORD *)&v13 >> 52;\n      if ( (unsigned int)(*(_QWORD *)&v13 >> 52) <= 0x64 )\n      {\n        v16 = *(_QWORD *)&v13 & 0x800FFFFFFFFFFFFFuLL | 0x10000000000000LL;\n        if ( 101 - (int)v15 <= 54 )\n          v10 = ((v16 >> (101 - (unsigned __int8)v15 - 1)) & 1) + (v16 >> (101 - (unsigned __int8)v15 - 1) >> 1);\n      }\n      else\n      {\n        v10 = *(_QWORD *)&v13 & 0x800FFFFFFFFFFFFFuLL | ((v15 - 100) << 52);\n      }\n      v11 = COERCE_DOUBLE(v14 | v10);\n      if ( ((v14 | v10) & 0x7FF0000000000000LL) != 0 )\n        return v11;\n    }\n    else if ( v5 >= 0.0 )\n    {\n      v11 = 0.0;\n    }\n    else\n    {\n      v11 = -0.0;\n    }\n    v12 = 48;\nLABEL_17:\n    set_statfp(v12);\n    return v11;\n  }\n  if ( v6 < -26 && v4 < 0.0 )\n    goto LABEL_35;\n  if ( v8 == INFINITY && v7 == INFINITY )\n  {\n    if ( v4 >= 0.0 )\n    {\n      if ( v5 >= 0.0 )\n        v11 = 0.78539819;\n      else\n        v11 = -0.78539819;\n    }\n    else if ( v5 >= 0.0 )\n    {\n      v11 = 2.3561945;\n    }\n    else\n    {\n      v11 = -2.3561945;\n    }\n    goto LABEL_16;\n  }\n  if ( v4 < 0.0 )\n    v2 = -v2;\n  if ( v5 < 0.0 )\n    v3 = -v3;\n  v17 = 0;\n  LOBYTE(v17) = v3 > v2;\n  if ( v3 > v2 )\n  {\n    v18 = v2;\n    v2 = v3;\n    v3 = v18;\n  }\n  v19 = v3 / v2;\n  if ( v3 / v2 > 0.0625 )\n  {\n    v20 = (int)(v19 * 256.0 + 0.5);\n    v21 = (v3 * 256.0 - (double)v20 * v2) / ((double)v20 * v3 + v2 * 256.0);\n    v19 = v21 + dbl_1801724A0[v20 - 16];\n    v22 = v21 * v21 * v21 * 0.333333333332241;\nLABEL_57:\n    v19 = v19 - v22;\n    goto LABEL_58;\n  }\n  if ( v19 >= 0.0001 )\n  {\n    v22 = (0.3333333333333317 - (0.1999999999939322 - v19 * v19 * 0.1428571356180717) * (v19 * v19)) * (v19 * v19 * v19);\n    goto LABEL_57;\n  }\nLABEL_58:\n  if ( v17 )\n    v19 = 1.570796326794897 - v19;\n  if ( v4 < 0.0 )\n    v19 = 3.141592653589793 - v19;\n  if ( v5 < 0.0 )\n    return -v19;\n  return v19;\n}", "assembly": "; \n; atan2f from 0x1801304e4 to 0x1801308d4 (1008 bytes)\n; \n; 18 xrefs:\n; > sub_18007AC90 @ 0x18007b10f\n; > sub_18007AC90 @ 0x18007b12f\n; > sub_18007AC90 @ 0x18007b184\n; > sub_18007AC90 @ 0x18007b1bb\n; > sub_1800E9310 @ 0x1800e93a5\n; > sub_1800E9310 @ 0x1800e93ea\n; > sub_1800E9310 @ 0x1800e9564\n; > sub_1800E9310 @ 0x1800e95ad\n; > sub_1801009B0 @ 0x180100b21\n; > sub_1801009B0 @ 0x180100c15\n; > sub_1801009B0 @ 0x180100d0d\n; > sub_1801009B0 @ 0x180100e05\n; > sub_180101160 @ 0x180101351\n; > sub_180101160 @ 0x1801013dc\n; > sub_18010A910 @ 0x18010aa22\n; > sub_18010A910 @ 0x18010aa4d\n; > sub_18010BC70 @ 0x18010be8f\n; > <???> @ 0x180202e1c\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_8], rbx                                               ; +0x0, 0x1801304e4\npush    rbp                                                            ; +0x5, 0x1801304e9\npush    rsi                                                            ; +0x6, 0x1801304ea\npush    rdi                                                            ; +0x7, 0x1801304eb\npush    r12                                                            ; +0x8, 0x1801304ec\npush    r13                                                            ; +0xa, 0x1801304ee\npush    r14                                                            ; +0xc, 0x1801304f0\npush    r15                                                            ; +0xe, 0x1801304f2\nsub     rsp, 40h                                                       ; +0x10, 0x1801304f4\nmovaps  [rsp+78h+var_48], xmm6                                         ; +0x14, 0x1801304f8\nmov     ecx, 7FFh                                                      ; +0x19, 0x1801304fd\nmovaps  [rsp+78h+var_58], xmm7                                         ; +0x1e, 0x180130502\nmov     rdx, 7FFFFFFFFFFFFFFFh                                         ; +0x23, 0x180130507\nxorps   xmm7, xmm7                                                     ; +0x2d, 0x180130511\nxorps   xmm6, xmm6                                                     ; +0x30, 0x180130514\ncvtss2sd xmm7, xmm1                                                    ; +0x33, 0x180130517\nmov     r12, 7FF0000000000000h                                         ; +0x37, 0x18013051b\ncvtss2sd xmm6, xmm0                                                    ; +0x41, 0x180130525\nmovsd   [rsp+78h+arg_10], xmm7                                         ; +0x45, 0x180130529\nmov     rbp, [rsp+78h+arg_10]                                          ; +0x4e, 0x180130532\nmovsd   [rsp+78h+arg_10], xmm6                                         ; +0x56, 0x18013053a\nmov     rax, rbp                                                       ; +0x5f, 0x180130543\nmov     rdi, [rsp+78h+arg_10]                                          ; +0x62, 0x180130546\nmov     r15, rbp                                                       ; +0x6a, 0x18013054e\nshr     rax, 34h                                                       ; +0x6d, 0x180130551\nmov     rsi, rdi                                                       ; +0x71, 0x180130555\nshr     rsi, 34h                                                       ; +0x74, 0x180130558\nand     eax, ecx                                                       ; +0x78, 0x18013055c\nand     esi, ecx                                                       ; +0x7a, 0x18013055e\nmov     r14, rdi                                                       ; +0x7c, 0x180130560\nsub     esi, eax                                                       ; +0x7f, 0x180130563\nand     r15, rdx                                                       ; +0x81, 0x180130565\nand     r14, rdx                                                       ; +0x84, 0x180130568\ncmp     r15, r12                                                       ; +0x87, 0x18013056b\njbe     short loc_18013058A                                            ; +0x8a, 0x18013056e\nmovss   [rsp+78h+arg_0], xmm1                                          ; +0x8c, 0x180130570\nmov     ecx, [rsp+78h+arg_0]                                           ; +0x95, 0x180130579\ncall    _handle_nanf                                                   ; +0x9c, 0x180130580\njmp     loc_1801308B2                                                  ; +0xa1, 0x180130585\ncmp     r14, r12                                                       ; +0xa6, 0x18013058a\njbe     short loc_18013059A                                            ; +0xa9, 0x18013058d\nmovss   [rsp+78h+arg_0], xmm0                                          ; +0xab, 0x18013058f\njmp     short loc_180130579                                            ; +0xb4, 0x180130598\nxor     ebx, ebx                                                       ; +0xb6, 0x18013059a\nlea     r13d, [rbx+20h]                                                ; +0xb8, 0x18013059c\ntest    r14, r14                                                       ; +0xbc, 0x1801305a0\njnz     short loc_1801305B7                                            ; +0xbf, 0x1801305a3\ntest    rbp, rbp                                                       ; +0xc1, 0x1801305a5\njs      loc_18013071E                                                  ; +0xc4, 0x1801305a8\ncvtpd2ps xmm0, xmm6                                                    ; +0xca, 0x1801305ae\njmp     loc_1801308B2                                                  ; +0xce, 0x1801305b2\ntest    r15, r15                                                       ; +0xd3, 0x1801305b7\njnz     short loc_1801305D3                                            ; +0xd6, 0x1801305ba\ntest    rdi, rdi                                                       ; +0xd8, 0x1801305bc\njs      short loc_1801305DD                                            ; +0xdb, 0x1801305bf\nmov     rcx, r13                                                       ; +0xdd, 0x1801305c1\ncall    _set_statfp                                                    ; +0xe0, 0x1801305c4\nmov     rdx, 7FFFFFFFFFFFFFFFh                                         ; +0xe5, 0x1801305c9\ncmp     esi, 1Ah                                                       ; +0xef, 0x1801305d3\njle     short loc_1801305FF                                            ; +0xf2, 0x1801305d6\ntest    rdi, rdi                                                       ; +0xf4, 0x1801305d8\njns     short loc_1801305E7                                            ; +0xf7, 0x1801305db\nmovss   xmm6, cs:dword_180168E90                                       ; +0xf9, 0x1801305dd\njmp     short loc_1801305EF                                            ; +0x101, 0x1801305e5\nmovss   xmm6, cs:dword_180166F14                                       ; +0x103, 0x1801305e7\nmov     rcx, r13                                                       ; +0x10b, 0x1801305ef\ncall    _set_statfp                                                    ; +0x10e, 0x1801305f2\nmovaps  xmm0, xmm6                                                     ; +0x113, 0x1801305f7\njmp     loc_1801308B2                                                  ; +0x116, 0x1801305fa\ncmp     esi, 0FFFFFFF3h                                                ; +0x11b, 0x1801305ff\njge     loc_180130714                                                  ; +0x11e, 0x180130602\ntest    rbp, rbp                                                       ; +0x124, 0x180130608\njs      loc_180130714                                                  ; +0x127, 0x18013060b\ncmp     esi, 0FFFFFF6Ah                                                ; +0x12d, 0x180130611\njge     short loc_180130633                                            ; +0x133, 0x180130617\ntest    rdi, rdi                                                       ; +0x135, 0x180130619\njns     short loc_18013062B                                            ; +0x138, 0x18013061c\nmovss   xmm6, cs:dword_180172C68                                       ; +0x13a, 0x18013061e\njmp     loc_180130701                                                  ; +0x142, 0x180130626\nxorps   xmm6, xmm6                                                     ; +0x147, 0x18013062b\njmp     loc_180130701                                                  ; +0x14a, 0x18013062e\ncmp     esi, 0FFFFFF82h                                                ; +0x14f, 0x180130633\njge     loc_18013070B                                                  ; +0x152, 0x180130636\nmov     rax, 4630000000000000h                                         ; +0x158, 0x18013063c\nmov     rcx, 8000000000000000h                                         ; +0x162, 0x180130646\nmov     [rsp+78h+arg_10], rax                                          ; +0x16c, 0x180130650\nmovsd   xmm0, [rsp+78h+arg_10]                                         ; +0x174, 0x180130658\nmulsd   xmm0, xmm6                                                     ; +0x17d, 0x180130661\ndivsd   xmm0, xmm7                                                     ; +0x181, 0x180130665\nmovsd   [rsp+78h+arg_10], xmm0                                         ; +0x185, 0x180130669\nmov     rax, [rsp+78h+arg_10]                                          ; +0x18e, 0x180130672\nmov     r8, rax                                                        ; +0x196, 0x18013067a\nand     rax, rdx                                                       ; +0x199, 0x18013067d\nmov     rdx, rax                                                       ; +0x19c, 0x180130680\nand     r8, rcx                                                        ; +0x19f, 0x180130683\nshr     rdx, 34h                                                       ; +0x1a2, 0x180130686\ncmp     edx, 64h ; 'd'                                                 ; +0x1a6, 0x18013068a\njbe     short loc_1801306A9                                            ; +0x1a9, 0x18013068d\nlea     rbx, [rdx-64h]                                                 ; +0x1ab, 0x18013068f\nmov     rcx, 800FFFFFFFFFFFFFh                                         ; +0x1af, 0x180130693\nshl     rbx, 34h                                                       ; +0x1b9, 0x18013069d\nand     rax, rcx                                                       ; +0x1bd, 0x1801306a1\nor      rbx, rax                                                       ; +0x1c0, 0x1801306a4\njmp     short loc_1801306E0                                            ; +0x1c3, 0x1801306a7\nmov     rcx, 801FFFFFFFFFFFFFh                                         ; +0x1c5, 0x1801306a9\nand     rax, rcx                                                       ; +0x1cf, 0x1801306b3\nmov     rcx, 10000000000000h                                           ; +0x1d2, 0x1801306b6\nor      rax, rcx                                                       ; +0x1dc, 0x1801306c0\nmov     ecx, 65h ; 'e'                                                 ; +0x1df, 0x1801306c3\nsub     ecx, edx                                                       ; +0x1e4, 0x1801306c8\ncmp     ecx, 36h ; '6'                                                 ; +0x1e6, 0x1801306ca\njg      short loc_1801306E0                                            ; +0x1e9, 0x1801306cd\ndec     ecx                                                            ; +0x1eb, 0x1801306cf\nshr     rax, cl                                                        ; +0x1ed, 0x1801306d1\nmov     rbx, rax                                                       ; +0x1f0, 0x1801306d4\nand     eax, 1                                                         ; +0x1f3, 0x1801306d7\nshr     rbx, 1                                                         ; +0x1f6, 0x1801306da\nadd     rbx, rax                                                       ; +0x1f9, 0x1801306dd\nor      rbx, r8                                                        ; +0x1fc, 0x1801306e0\nmov     [rsp+78h+arg_10], rbx                                          ; +0x1ff, 0x1801306e3\nmovsd   xmm0, [rsp+78h+arg_10]                                         ; +0x207, 0x1801306eb\ncvtpd2ps xmm6, xmm0                                                    ; +0x210, 0x1801306f4\ntest    r12, rbx                                                       ; +0x214, 0x1801306f8\njnz     loc_1801305F7                                                  ; +0x217, 0x1801306fb\nmov     ecx, 30h ; '0'                                                 ; +0x21d, 0x180130701\njmp     loc_1801305F2                                                  ; +0x222, 0x180130706\ndivsd   xmm6, xmm7                                                     ; +0x227, 0x18013070b\njmp     loc_1801305AE                                                  ; +0x22b, 0x18013070f\ncmp     esi, 0FFFFFFE6h                                                ; +0x230, 0x180130714\njge     short loc_18013073D                                            ; +0x233, 0x180130717\ntest    rbp, rbp                                                       ; +0x235, 0x180130719\njns     short loc_18013073D                                            ; +0x238, 0x18013071c\ntest    rdi, rdi                                                       ; +0x23a, 0x18013071e\njns     short loc_180130730                                            ; +0x23d, 0x180130721\nmovss   xmm6, cs:dword_180168E94                                       ; +0x23f, 0x180130723\njmp     loc_1801305EF                                                  ; +0x247, 0x18013072b\nmovss   xmm6, cs:dword_180164B80                                       ; +0x24c, 0x180130730\njmp     loc_1801305EF                                                  ; +0x254, 0x180130738\ncmp     r14, r12                                                       ; +0x259, 0x18013073d\njnz     short loc_18013078A                                            ; +0x25c, 0x180130740\ncmp     r15, r12                                                       ; +0x25e, 0x180130742\njnz     short loc_18013078A                                            ; +0x261, 0x180130745\ntest    rbp, rbp                                                       ; +0x263, 0x180130747\njns     short loc_18013076B                                            ; +0x266, 0x18013074a\ntest    rdi, rdi                                                       ; +0x268, 0x18013074c\njns     short loc_18013075E                                            ; +0x26b, 0x18013074f\nmovss   xmm6, cs:dword_180172C70                                       ; +0x26d, 0x180130751\njmp     loc_1801305EF                                                  ; +0x275, 0x180130759\nmovss   xmm6, cs:dword_180172C58                                       ; +0x27a, 0x18013075e\njmp     loc_1801305EF                                                  ; +0x282, 0x180130766\ntest    rdi, rdi                                                       ; +0x287, 0x18013076b\njns     short loc_18013077D                                            ; +0x28a, 0x18013076e\nmovss   xmm6, cs:dword_180172C6C                                       ; +0x28c, 0x180130770\njmp     loc_1801305EF                                                  ; +0x294, 0x180130778\nmovss   xmm6, cs:dword_18016E558                                       ; +0x299, 0x18013077d\njmp     loc_1801305EF                                                  ; +0x2a1, 0x180130785\nmovsd   xmm5, qword ptr cs:xmmword_1801445D0                           ; +0x2a6, 0x18013078a\ntest    rbp, rbp                                                       ; +0x2ae, 0x180130792\njns     short loc_18013079A                                            ; +0x2b1, 0x180130795\nxorps   xmm7, xmm5                                                     ; +0x2b3, 0x180130797\ntest    rdi, rdi                                                       ; +0x2b6, 0x18013079a\njns     short loc_1801307A2                                            ; +0x2b9, 0x18013079d\nxorps   xmm6, xmm5                                                     ; +0x2bb, 0x18013079f\ncomisd  xmm6, xmm7                                                     ; +0x2be, 0x1801307a2\nmov     edx, ebx                                                       ; +0x2c2, 0x1801307a6\nsetnbe  dl                                                             ; +0x2c4, 0x1801307a8\ntest    edx, edx                                                       ; +0x2c7, 0x1801307ab\njz      short loc_1801307B8                                            ; +0x2c9, 0x1801307ad\nmovaps  xmm0, xmm7                                                     ; +0x2cb, 0x1801307af\nmovaps  xmm7, xmm6                                                     ; +0x2ce, 0x1801307b2\nmovaps  xmm6, xmm0                                                     ; +0x2d1, 0x1801307b5\nmovaps  xmm4, xmm6                                                     ; +0x2d4, 0x1801307b8\ndivsd   xmm4, xmm7                                                     ; +0x2d7, 0x1801307bb\ncomisd  xmm4, cs:qword_180172C30                                       ; +0x2db, 0x1801307bf\njbe     short loc_180130834                                            ; +0x2e3, 0x1801307c7\nmovsd   xmm2, cs:qword_180172C60                                       ; +0x2e5, 0x1801307c9\nxorps   xmm1, xmm1                                                     ; +0x2ed, 0x1801307d1\nmulsd   xmm4, xmm2                                                     ; +0x2f0, 0x1801307d4\nmovaps  xmm3, xmm6                                                     ; +0x2f4, 0x1801307d8\nmulsd   xmm3, xmm2                                                     ; +0x2f7, 0x1801307db\naddsd   xmm4, cs:qword_18016F8A8                                       ; +0x2fb, 0x1801307df\ncvttsd2si ecx, xmm4                                                    ; +0x303, 0x1801307e7\nmov     eax, ecx                                                       ; +0x307, 0x1801307eb\nadd     ecx, 0FFFFFFF0h                                                ; +0x309, 0x1801307ed\ncvtsi2sd xmm1, rax                                                     ; +0x30c, 0x1801307f0\nlea     rax, dbl_1801724A0                                             ; +0x311, 0x1801307f5\nmovaps  xmm0, xmm1                                                     ; +0x318, 0x1801307fc\nmulsd   xmm1, xmm6                                                     ; +0x31b, 0x1801307ff\nmulsd   xmm0, xmm7                                                     ; +0x31f, 0x180130803\nmulsd   xmm7, xmm2                                                     ; +0x323, 0x180130807\nsubsd   xmm3, xmm0                                                     ; +0x327, 0x18013080b\naddsd   xmm1, xmm7                                                     ; +0x32b, 0x18013080f\ndivsd   xmm3, xmm1                                                     ; +0x32f, 0x180130813\nmovaps  xmm0, xmm3                                                     ; +0x333, 0x180130817\nmovaps  xmm4, xmm3                                                     ; +0x336, 0x18013081a\naddsd   xmm4, qword ptr [rax+rcx*8]                                    ; +0x339, 0x18013081d\nmulsd   xmm0, xmm3                                                     ; +0x33e, 0x180130822\nmulsd   xmm0, xmm3                                                     ; +0x342, 0x180130826\nmulsd   xmm0, cs:qword_180172C48                                       ; +0x346, 0x18013082a\njmp     short loc_180130878                                            ; +0x34e, 0x180130832\nmovsd   xmm0, cs:qword_180172C28                                       ; +0x350, 0x180130834\ncomisd  xmm0, xmm4                                                     ; +0x358, 0x18013083c\nja      short loc_18013087C                                            ; +0x35c, 0x180130840\nmovsd   xmm1, cs:qword_180172C40                                       ; +0x35e, 0x180130842\nmovaps  xmm2, xmm4                                                     ; +0x366, 0x18013084a\nmulsd   xmm2, xmm4                                                     ; +0x369, 0x18013084d\nmovaps  xmm0, xmm2                                                     ; +0x36d, 0x180130851\nmulsd   xmm0, cs:qword_180172C38                                       ; +0x370, 0x180130854\nsubsd   xmm1, xmm0                                                     ; +0x378, 0x18013085c\nmovsd   xmm0, cs:qword_180172C50                                       ; +0x37c, 0x180130860\nmulsd   xmm1, xmm2                                                     ; +0x384, 0x180130868\nmulsd   xmm2, xmm4                                                     ; +0x388, 0x18013086c\nsubsd   xmm0, xmm1                                                     ; +0x38c, 0x180130870\nmulsd   xmm0, xmm2                                                     ; +0x390, 0x180130874\nsubsd   xmm4, xmm0                                                     ; +0x394, 0x180130878\ntest    edx, edx                                                       ; +0x398, 0x18013087c\njz      short loc_18013088F                                            ; +0x39a, 0x18013087e\nmovsd   xmm0, cs:qword_180170C50                                       ; +0x39c, 0x180130880\nsubsd   xmm0, xmm4                                                     ; +0x3a4, 0x180130888\nmovaps  xmm4, xmm0                                                     ; +0x3a8, 0x18013088c\ntest    rbp, rbp                                                       ; +0x3ab, 0x18013088f\njns     short loc_1801308A3                                            ; +0x3ae, 0x180130892\nmovsd   xmm0, cs:qword_180170C58                                       ; +0x3b0, 0x180130894\nsubsd   xmm0, xmm4                                                     ; +0x3b8, 0x18013089c\nmovaps  xmm4, xmm0                                                     ; +0x3bc, 0x1801308a0\ntest    rdi, rdi                                                       ; +0x3bf, 0x1801308a3\njns     short loc_1801308AB                                            ; +0x3c2, 0x1801308a6\nxorps   xmm4, xmm5                                                     ; +0x3c4, 0x1801308a8\nxorps   xmm0, xmm0                                                     ; +0x3c7, 0x1801308ab\ncvtsd2ss xmm0, xmm4                                                    ; +0x3ca, 0x1801308ae\nmov     rbx, [rsp+78h+arg_8]                                           ; +0x3ce, 0x1801308b2\nmovaps  xmm6, [rsp+78h+var_48]                                         ; +0x3d6, 0x1801308ba\nmovaps  xmm7, [rsp+78h+var_58]                                         ; +0x3db, 0x1801308bf\nadd     rsp, 40h                                                       ; +0x3e0, 0x1801308c4\npop     r15                                                            ; +0x3e4, 0x1801308c8\npop     r14                                                            ; +0x3e6, 0x1801308ca\npop     r13                                                            ; +0x3e8, 0x1801308cc\npop     r12                                                            ; +0x3ea, 0x1801308ce\npop     rdi                                                            ; +0x3ec, 0x1801308d0\npop     rsi                                                            ; +0x3ed, 0x1801308d1\npop     rbp                                                            ; +0x3ee, 0x1801308d2\nretn                                                                   ; +0x3ef, 0x1801308d3", "xrefs": ["sub_18007AC90 @ 0x18007b10f", "sub_18007AC90 @ 0x18007b12f", "sub_18007AC90 @ 0x18007b184", "sub_18007AC90 @ 0x18007b1bb", "sub_1800E9310 @ 0x1800e93a5", "sub_1800E9310 @ 0x1800e93ea", "sub_1800E9310 @ 0x1800e9564", "sub_1800E9310 @ 0x1800e95ad", "sub_1801009B0 @ 0x180100b21", "sub_1801009B0 @ 0x180100c15", "sub_1801009B0 @ 0x180100d0d", "sub_1801009B0 @ 0x180100e05", "sub_180101160 @ 0x180101351", "sub_180101160 @ 0x1801013dc", "sub_18010A910 @ 0x18010aa22", "sub_18010A910 @ 0x18010aa4d", "sub_18010BC70 @ 0x18010be8f", "<???> @ 0x180202e1c"], "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"}