// // CWin32InputBox::InputBoxEx from 0x18001dfd0 to 0x18001e11e (334 bytes) // // 4 xrefs: // > @ 0x18002fa3c // > @ 0x18002fa50 // > @ 0x18002fdf8 // > @ 0x18004b0c4 // // This function is hookable on this platform! // // Using BromaIDA 8.0.0 @ https://github.com/Stazzical/BromaIDA // Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https://github.com/geode-sdk/bindings // INT_PTR __fastcall CWin32InputBox::InputBoxEx(struct WIN32INPUTBOX_PARAM *a1) { __int64 v3; // rax HMODULE v4; // rdi HRSRC ResourceW; // rax DLGTEMPLATE *Resource; // rdx int v7; // eax int v8; // ecx int v9; // ecx int v10; // ecx __int16 v11; // ax __int16 v12; // ax int v13; // ecx DWORD style; // eax int v15; // eax __int16 v16; // ax __int16 v17; // ax HWND v18; // r8 HINSTANCE v19; // rcx LPARAM dwInitParam[3]; // [rsp+30h] [rbp-18h] BYREF DLGTEMPLATE *v21; // [rsp+50h] [rbp+8h] if ( !*((_QWORD *)a1 + 8) ) { SetLastError(0x57u); return 0; } v3 = *((_QWORD *)a1 + 2); if ( v3 ) { v4 = *((HMODULE *)a1 + 11); ResourceW = FindResourceW(v4, (LPCWSTR)(unsigned __int16)v3, (LPCWSTR)5); if ( !ResourceW ) return 0; Resource = (DLGTEMPLATE *)LoadResource(v4, ResourceW); if ( !Resource ) return 0; } else { Resource = v21; if ( *((_QWORD *)a1 + 1) ) Resource = *((DLGTEMPLATE **)a1 + 1); } if ( LOWORD(Resource->style) == 1 && HIWORD(Resource->style) == 0xFFFF && Resource ) { v7 = *((_DWORD *)a1 + 9) | *(_DWORD *)&Resource->cdit; v8 = *(_DWORD *)&Resource->y; *(_DWORD *)&Resource->cdit = v7; v9 = *((_DWORD *)a1 + 7) | v8; *(_DWORD *)&Resource->y = v9; *(_DWORD *)&Resource->cdit = *((_DWORD *)a1 + 10) & v7; v10 = *((_DWORD *)a1 + 8) & v9; *(_DWORD *)&Resource->y = v10; if ( *((_BYTE *)a1 + 24) ) *(_DWORD *)&Resource->y = v10 | 0x800; v11 = *((_WORD *)a1 + 48); if ( v11 != -1 ) LOWORD(Resource[1].style) = v11; v12 = *((_WORD *)a1 + 49); if ( v12 != -1 ) HIWORD(Resource[1].style) = v12; } else { v13 = *((_DWORD *)a1 + 9) | Resource->dwExtendedStyle; Resource->dwExtendedStyle = v13; Resource->style |= *((_DWORD *)a1 + 7); style = Resource->style; Resource->dwExtendedStyle = *((_DWORD *)a1 + 10) & v13; v15 = *((_DWORD *)a1 + 8) & style; Resource->style = v15; if ( *((_BYTE *)a1 + 24) ) Resource->style = v15 | 0x800; v16 = *((_WORD *)a1 + 48); if ( v16 != -1 ) Resource->x = v16; v17 = *((_WORD *)a1 + 49); if ( v17 != -1 ) Resource->y = v17; } v18 = *((HWND *)a1 + 10); v19 = *((HINSTANCE *)a1 + 11); dwInitParam[0] = (LPARAM)a1; return DialogBoxIndirectParamW(v19, Resource, v18, CWin32InputBox::DlgProc, (LPARAM)dwInitParam); }