// // sub_1800041D0 from 0x1800041d0 to 0x18000448d (701 bytes) // // 2 xrefs: // > sub_180003D30 @ 0x180003dbf // > @ 0x1801f6264 // // 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 *__fastcall sub_1800041D0( _DWORD *a1, int a2, int a3, int *a4, int *a5, int *a6, int *a7, int *a8, int *a9, _DWORD *a10, int *a11) { int v12; // r11d int *v13; // r10 int v14; // eax int v15; // ebx int v16; // edi int v17; // esi int v18; // edi int v19; // ebx int v20; // r10d int v21; // r9d int v22; // r8d int v23; // ecx int v24; // ecx int v25; // eax int v26; // eax int v27; // r8d int *result; // rax int v29; // r9d int v30; // ecx int v31; // ecx int v32; // eax int v33; // eax int v34; // ecx int v35; // ecx int v36; // r11d int v37; // eax int v38; // esi int v39; // ecx int v40; // r9d int v41; // r8d int v42; // r9d int v43; // ecx int v44; // ecx int v45; // eax int v46; // ecx int v47; // ecx int v48; // eax int v49; // eax int v50; // r11d int v51; // ecx int v52; // ecx int v53; // ecx int v54; // eax int v55; // eax int v56; // r8d v12 = a3; v13 = *(int **)(*(_QWORD *)a1 + 32LL); v14 = a1[10]; v15 = *v13; v16 = *v13; LODWORD(v13) = v13[1]; v17 = (int)v13 >> 1; v18 = v16 >> 1; v19 = v15 >> 2; v20 = (int)v13 >> 2; if ( a1[9] ) { if ( v14 ) { v21 = v17 - a2; if ( a2 <= v20 ) v21 = a2; v22 = 0; *a4 = 0; *a7 = 0; if ( a2 <= v20 ) { v24 = v12; v25 = 0; if ( v20 < v12 ) v24 = v20; if ( a2 > 0 ) v25 = a2; v23 = v24 - v25; } else { v23 = 0; } *a5 = v23; if ( v12 >= v20 ) { v26 = a2; v27 = v12; if ( v20 > a2 ) v26 = v20; if ( v17 < v12 ) v27 = v17; v22 = v27 - v26; } *a6 = v22; result = a8; *a8 = v20 - v21; *a9 = v21; *a10 = v17 - a2; } else { v29 = v20 - v19; *a7 = 0; if ( a2 <= v20 - v19 ) { v31 = v20 - v19; v32 = a2; if ( a3 < v29 ) v31 = a3; if ( a2 < 0 ) v32 = 0; v30 = v31 - v32; } else { v30 = 0; } *a4 = v30; if ( a3 < v29 || a2 > v20 ) { v35 = 0; } else { v33 = v20 - v19; v34 = a3; if ( a2 > v29 ) v33 = a2; if ( v20 < a3 ) v34 = v20; v35 = v34 - v33; } *a5 = v35; if ( a3 >= v20 ) { if ( v20 + v19 < a3 ) v12 = v20 + v19; v37 = v20; if ( a2 > v20 ) v37 = a2; v36 = v12 - v37; } else { v36 = 0; } v38 = v17 - a2; if ( a2 <= v20 ) v38 = a2; *a6 = v36; result = a8; *a8 = v20 - v38; v39 = a2 + v19 - v20; if ( v39 <= v19 ) { v40 = 0; if ( v39 >= 0 ) v40 = a2 + v19 - v20; } else { v40 = v18 + v29 - a2; } *a9 = v40; a2 = 0; if ( v39 >= 0 ) a2 = v39; *a10 = v18 - a2; } } else { v41 = 0; *a4 = 0; v42 = v18 - a2; if ( v14 ) { if ( a2 <= v19 ) v42 = a2; if ( v12 >= v18 ) { v44 = v12; if ( v20 + v19 < v12 ) v44 = v20 + v19; v45 = v18; if ( a2 > v18 ) v45 = a2; v43 = v44 - v45; } else { v43 = 0; } *a7 = v43; if ( a2 <= v19 ) { v47 = v12; v48 = 0; if ( v19 < v12 ) v47 = v19; if ( a2 > 0 ) v48 = a2; v46 = v47 - v48; } else { v46 = 0; } *a5 = v46; if ( a2 > v18 || v12 < v19 ) { v50 = 0; } else { v49 = v19; if ( a2 > v19 ) v49 = a2; if ( v18 < v12 ) v12 = v18; v50 = v12 - v49; } v51 = v19 - v42; v42 = v20 + v42 - v19; *a6 = v50; result = a8; *a8 = v51; } else { if ( a2 <= v19 ) v42 = a2; *a7 = 0; if ( a2 <= v19 ) { v53 = v12; v54 = 0; if ( v19 < v12 ) v53 = v19; if ( a2 > 0 ) v54 = a2; v52 = v53 - v54; } else { v52 = 0; } *a5 = v52; if ( v12 >= v19 ) { v55 = v19; v56 = v12; if ( a2 > v19 ) v55 = a2; if ( v18 < v12 ) v56 = v18; v41 = v56 - v55; } *a6 = v41; result = a8; *a8 = v19 - v42; } *a9 = v42; *a10 = v18 - a2; } *a11 = a2; return result; }