int __cdecl sub_10004E30(int a1, int a2) { int result; // eax@1 int v3; // ecx@1 int v4; // eax@2 int v5; // edx@2 int v6; // ecx@3 int v7; // edi@3 unsigned int v8; // edx@4 v3 = *(_DWORD *)(a1 + 4); result = *(_DWORD *)(a1 + 4) - *(_DWORD *)(a2 + 4); if ( !result ) { v4 = v3 - 1; v5 = *(_DWORD *)a2; if ( v3 - 1 < 0 ) { LABEL_6: result = 0; } else { v6 = v5 + 4 * v4; v7 = *(_DWORD *)a1 - v5; while ( 1 ) { v8 = *(_DWORD *)(v7 + v6); if ( *(_DWORD *)v6 != v8 ) break; --v4; v6 -= 4; if ( v4 < 0 ) goto LABEL_6; } result = (-(*(_DWORD *)v6 < v8) & 2) - 1; } } return result; } signed int __cdecl sub_1000CC60(int a1, int a2, int a3) { int v3; // eax@1 int v4; // ecx@1 int v5; // ebx@3 int v6; // ebp@3 int v7; // edi@3 int v8; // esi@3 signed int result; // eax@4 int v10; // edi@8 int v11; // esi@8 int v12; // eax@12 int *v13; // eax@8 int v14; // edi@8 int v15; // esi@8 int v16; // eax@8 int v17; // eax@10 v4 = a2; v3 = a3; if ( *(_DWORD *)(a2 + 4) < *(_DWORD *)(a3 + 4) ) { a2 = a3; a3 = v4; v3 = v4; v4 = a2; } v6 = *(_DWORD *)(v3 + 4); v8 = a1; v7 = *(_DWORD *)(v4 + 4); v5 = v7 - v6; if ( v7 + 1 > *(_DWORD *)(a1 + 8) ) { result = sub_10004AA0(a1, v7 + 1); v4 = a2; } else { result = a1; } if ( result ) { v13 = (int *)a3; *(_DWORD *)(v8 + 4) = v7; v14 = *(_DWORD *)v4; v15 = *(_DWORD *)v8; v16 = sub_10010CEF(v15, *(_DWORD *)v4, *v13, v6); v11 = 4 * v6 + v15; v10 = 4 * v6 + v14; if ( v16 ) { if ( !v5 ) { LABEL_12: v12 = a1; *(_DWORD *)v11 = 1; ++*(_DWORD *)(v12 + 4); LABEL_14: if ( v5 ) { if ( v11 != v10 ) { do { --v5; *(_DWORD *)v11 = *(_DWORD *)v10; v11 += 4; v10 += 4; } while ( v5 ); } } *(_DWORD *)(v12 + 12) = 0; return 1; } while ( 1 ) { v17 = *(_DWORD *)v10 + 1; *(_DWORD *)v11 = v17; --v5; v10 += 4; v11 += 4; if ( v17 ) break; if ( !v5 ) goto LABEL_12; } } v12 = a1; goto LABEL_14; } return result; } case 41: sub_1000CF70(*(_DWORD *)(a2 + 120), *(_DWORD *)(a2 + 120), *(_DWORD *)(a2 + 124)); v10 = *(_DWORD *)(v5 + 204); v11 = __SETO__(v10, 2); v12 = v10 == 2; v13 = v10 < 2; v7 = 5 * v10; if ( !((unsigned __int8)(v13 ^ v11) | v12) ) v7 = 2 * v7 - 10; *(_DWORD *)(v5 + 112) = v7 + 500; result = v16; break;