{"type": "func", "start": 6442520944, "end": 6442521244, "name": "cocos2d::extension::CCEditBox::keyboardWillShow", "pseudocode": "// \n// cocos2d::extension::CCEditBox::keyboardWillShow from 0x180011170 to 0x18001129c (300 bytes)\n// \n// 6 xrefs:\n// > <???> @ 0x1800279d8\n// > <???> @ 0x18002e69c\n// > <???> @ 0x18002e6ac\n// > <???> @ 0x18002fdf8\n// > <???> @ 0x18004a224\n// > <???> @ 0x18004a230\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 cocos2d::extension::CCEditBox::keyboardWillShow(\n        cocos2d::extension::CCEditBox *this,\n        struct cocos2d::CCIMEKeyboardNotificationInfo *a2)\n{\n  const struct cocos2d::CCSize *v4; // rax\n  __int64 v5; // rax\n  float MaxY; // xmm6_4\n  float MinY; // xmm0_4\n  __int64 v8; // rcx\n  float v9[2]; // [rsp+30h] [rbp-68h] BYREF\n  _BYTE v10[4]; // [rsp+38h] [rbp-60h] BYREF\n  float v11; // [rsp+3Ch] [rbp-5Ch]\n  _BYTE v12[16]; // [rsp+48h] [rbp-50h] BYREF\n  _BYTE v13[24]; // [rsp+58h] [rbp-40h] BYREF\n\n  v4 = (const struct cocos2d::CCSize *)(*(__int64 (__fastcall **)(char *))(*((_QWORD *)this - 71) + 304LL))((char *)this - 568);\n  cocos2d::CCSize::CCSize((cocos2d::CCSize *)v9, v4);\n  cocos2d::CCRect::CCRect((cocos2d::CCRect *)v12, 0.0, 0.0, v9[0], v9[1]);\n  v5 = (*(__int64 (__fastcall **)(char *, _BYTE *))(*((_QWORD *)this - 71) + 800LL))((char *)this - 568, v13);\n  cocos2d::CCRectApplyAffineTransform(v10, v12, v5);\n  v11 = v11 + -4.0;\n  if ( cocos2d::CCRect::intersectsRect(\n         (cocos2d::CCRect *)v10,\n         (struct cocos2d::CCIMEKeyboardNotificationInfo *)((char *)a2 + 16)) )\n  {\n    MaxY = cocos2d::CCRect::getMaxY((struct cocos2d::CCIMEKeyboardNotificationInfo *)((char *)a2 + 16));\n    MinY = cocos2d::CCRect::getMinY((cocos2d::CCRect *)v10);\n    v8 = *((_QWORD *)this + 1);\n    *((float *)this + 47) = MaxY - MinY;\n    if ( v8 )\n      (*(void (__fastcall **)(__int64))(*(_QWORD *)v8 + 120LL))(v8);\n  }\n}", "assembly": "; \n; cocos2d::extension::CCEditBox::keyboardWillShow from 0x180011170 to 0x18001129c (300 bytes)\n; \n; 6 xrefs:\n; > <???> @ 0x1800279d8\n; > <???> @ 0x18002e69c\n; > <???> @ 0x18002e6ac\n; > <???> @ 0x18002fdf8\n; > <???> @ 0x18004a224\n; > <???> @ 0x18004a230\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_10], rbx                                              ; +0x0, 0x180011170\nmov     [rsp+arg_18], rsi                                              ; +0x5, 0x180011175\npush    rdi                                                            ; +0xa, 0x18001117a\nsub     rsp, 90h                                                       ; +0xb, 0x18001117b\nmov     rax, cs:__security_cookie                                      ; +0x12, 0x180011182\nxor     rax, rsp                                                       ; +0x19, 0x180011189\nmov     [rsp+98h+var_28], rax                                          ; +0x1c, 0x18001118c\nmov     rax, [rcx-238h]                                                ; +0x21, 0x180011191\nmov     rdi, rcx                                                       ; +0x28, 0x180011198\nadd     rcx, 0FFFFFFFFFFFFFDC8h                                        ; +0x2b, 0x18001119b\nmov     rsi, rdx                                                       ; +0x32, 0x1800111a2\ncall    qword ptr [rax+130h]                                           ; +0x35, 0x1800111a5\nmov     rdx, rax                                                       ; +0x3b, 0x1800111ab\nlea     rcx, [rsp+98h+var_68]                                          ; +0x3e, 0x1800111ae\ncall    cs:??0CCSize@cocos2d@@QEAA@AEBV01@@Z; cocos2d::CCSize::CCSize(cocos2d::CCSize const &) ; +0x43, 0x1800111b3\nmovss   xmm0, [rsp+98h+var_64]                                         ; +0x49, 0x1800111b9\nlea     rcx, [rsp+98h+var_50]                                          ; +0x4f, 0x1800111bf\nmovss   xmm3, [rsp+98h+var_68]                                         ; +0x54, 0x1800111c4\nxorps   xmm2, xmm2                                                     ; +0x5a, 0x1800111ca\nxorps   xmm1, xmm1                                                     ; +0x5d, 0x1800111cd\nmovss   [rsp+98h+var_78], xmm0                                         ; +0x60, 0x1800111d0\ncall    cs:??0CCRect@cocos2d@@QEAA@MMMM@Z; cocos2d::CCRect::CCRect(float,float,float,float) ; +0x66, 0x1800111d6\nmov     rax, [rdi-238h]                                                ; +0x6c, 0x1800111dc\nlea     rdx, [rsp+98h+var_40]                                          ; +0x73, 0x1800111e3\nlea     rcx, [rdi-238h]                                                ; +0x78, 0x1800111e8\ncall    qword ptr [rax+320h]                                           ; +0x7f, 0x1800111ef\nmov     r8, rax                                                        ; +0x85, 0x1800111f5\nlea     rdx, [rsp+98h+var_50]                                          ; +0x88, 0x1800111f8\nlea     rcx, [rsp+98h+var_60]                                          ; +0x8d, 0x1800111fd\ncall    cs:?CCRectApplyAffineTransform@cocos2d@@YA?AVCCRect@1@AEBV21@AEBUCCAffineTransform@1@@Z; cocos2d::CCRectApplyAffineTransform(cocos2d::CCRect const &,cocos2d::CCAffineTransform const &) ; +0x92, 0x180011202\nmovss   xmm0, [rsp+98h+var_5C]                                         ; +0x98, 0x180011208\nlea     rdx, [rsi+10h]                                                 ; +0x9e, 0x18001120e\naddss   xmm0, cs:dword_1800295D4                                       ; +0xa2, 0x180011212\nlea     rcx, [rsp+98h+var_60]                                          ; +0xaa, 0x18001121a\nmovss   [rsp+98h+var_5C], xmm0                                         ; +0xaf, 0x18001121f\ncall    cs:?intersectsRect@CCRect@cocos2d@@QEBA_NAEBV12@@Z; cocos2d::CCRect::intersectsRect(cocos2d::CCRect const &) ; +0xb5, 0x180011225\ntest    al, al                                                         ; +0xbb, 0x18001122b\njz      short loc_18001127A                                            ; +0xbd, 0x18001122d\nlea     rcx, [rsi+10h]                                                 ; +0xbf, 0x18001122f\nmovaps  [rsp+98h+var_18], xmm6                                         ; +0xc3, 0x180011233\ncall    cs:?getMaxY@CCRect@cocos2d@@QEBAMXZ; cocos2d::CCRect::getMaxY(void) ; +0xcb, 0x18001123b\nlea     rcx, [rsp+98h+var_60]                                          ; +0xd1, 0x180011241\nmovaps  xmm6, xmm0                                                     ; +0xd6, 0x180011246\ncall    cs:?getMinY@CCRect@cocos2d@@QEBAMXZ; cocos2d::CCRect::getMinY(void) ; +0xd9, 0x180011249\nmov     rcx, [rdi+8]                                                   ; +0xdf, 0x18001124f\nsubss   xmm6, xmm0                                                     ; +0xe3, 0x180011253\nmovss   dword ptr [rdi+0BCh], xmm6                                     ; +0xe7, 0x180011257\ntest    rcx, rcx                                                       ; +0xef, 0x18001125f\njz      short loc_180011272                                            ; +0xf2, 0x180011262\nmov     rax, [rcx]                                                     ; +0xf4, 0x180011264\nmovaps  xmm2, xmm6                                                     ; +0xf7, 0x180011267\nmovss   xmm1, dword ptr [rsi+20h]                                      ; +0xfa, 0x18001126a\ncall    qword ptr [rax+78h]                                            ; +0xff, 0x18001126f\nmovaps  xmm6, [rsp+98h+var_18]                                         ; +0x102, 0x180011272\nmov     rcx, [rsp+98h+var_28]                                          ; +0x10a, 0x18001127a\nxor     rcx, rsp; StackCookie                                          ; +0x10f, 0x18001127f\ncall    __security_check_cookie                                        ; +0x112, 0x180011282\nlea     r11, [rsp+98h+var_8]                                           ; +0x117, 0x180011287\nmov     rbx, [r11+20h]                                                 ; +0x11f, 0x18001128f\nmov     rsi, [r11+28h]                                                 ; +0x123, 0x180011293\nmov     rsp, r11                                                       ; +0x127, 0x180011297\npop     rdi                                                            ; +0x12a, 0x18001129a\nretn                                                                   ; +0x12b, 0x18001129b", "xrefs": ["<???> @ 0x1800279d8", "<???> @ 0x18002e69c", "<???> @ 0x18002e6ac", "<???> @ 0x18002fdf8", "<???> @ 0x18004a224", "<???> @ 0x18004a230"], "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"}