int sendMove()
{
int v0; // esi
int v1; // ebx
int result; // eax
bool v3; // sf
int v4; // esi
int *v5; // ecx
signed int v6; // edx
signed int v7; // edi
bool v8; // al
int v9; // esi
char *v10; // edi
size_t v11; // esi
int v12; // eax
int *v13; // ecx
int v14; // eax
char v15; // [esp+10h] [ebp-FF8h]
void **v16; // [esp+FB0h] [ebp-58h]
void **v17; // [esp+FB4h] [ebp-54h]
char v18; // [esp+FB8h] [ebp-50h]
int v19; // [esp+FBCh] [ebp-4Ch]
int v20; // [esp+FC0h] [ebp-48h]
int *v21; // [esp+FC4h] [ebp-44h]
int v22; // [esp+FC8h] [ebp-40h]
int v23; // [esp+FCCh] [ebp-3Ch]
char v24; // [esp+FD0h] [ebp-38h]
char v25; // [esp+FD4h] [ebp-34h]
int v26; // [esp+FE4h] [ebp-24h]
int v27; // [esp+FE8h] [ebp-20h]
void *v28[4]; // [esp+FECh] [ebp-1Ch]
__int16 v29; // [esp+FFCh] [ebp-Ch]
int v30; // [esp+1000h] [ebp-8h]
int v31; // [esp+1004h] [ebp-4h]
v0 = *(_DWORD *)(dword_10588DC4[0] + 19752);
v1 = v0 + *(_DWORD *)(dword_10588DC4[0] + 19748) + 1;
result = ((int (__thiscall *)(int (*(**)[2])(), _DWORD))(*off_10588DC0)[13])(&off_10588DC0, 0);
if ( !(_BYTE)result )
{
*(_OWORD *)v28 = xmmword_104DCE80;
v29 = 256;
v30 = 0;
__crt_strtox::big_integer::big_integer((__crt_strtox::big_integer *)&v18);
v22 = 0;
v3 = v0 + 1 < 0;
v4 = v0 + 1;
v16 = &CNetMessagePB<9,CCLCMsg_Move,11,0>::`vftable';
v5 = &dword_105B9C9C;
v17 = &CNetMessagePB<9,CCLCMsg_Move,11,0>::`vftable';
v21 = &dword_105B9C9C;
v24 = 0;
v27 = 15;
v26 = 0;
v25 = 0;
v28[0] = &v15;
v28[1] = (void *)4000;
v28[2] = (void *)32000;
v28[3] = 0;
LOBYTE(v29) = 0;
if ( v3 )
{
v4 = 0;
}
else if ( v4 > 15 )
{
v4 = 15;
}
v31 = v1 - v4;
v6 = 3;
v20 = v4;
v7 = -1;
v8 = 1;
v9 = v1 - v4 - 1;
v19 = 2;
v23 = 3;
if ( v9 > v1 )
{
v10 = &v15;
}
else
{
do
{
v8 = v8
&& (*(unsigned __int8 (__stdcall **)(_DWORD, void **, signed int, int, bool))(*(_DWORD *)dword_10895E88 + 96))(
0,
v28,
v7,
v9,
v9 >= v31 + 1);
v7 = v9++;
}
while ( v9 <= v1 );
if ( !v8 )
goto LABEL_21;
v10 = (char *)v28[0];
v6 = v23;
v5 = v21;
}
v23 = v6 | 4;
v11 = (_DWORD)((_DWORD)v28[3] + 7) >> 3;
if ( v5 == &dword_105B9C9C )
{
v12 = (*(int (__stdcall **)(signed int))(*g_pMemAlloc + 4))(24);
v13 = (int *)v12;
if ( v12 )
{
*(_DWORD *)(v12 + 20) = 15;
*(_DWORD *)(v12 + 16) = 0;
*(_BYTE *)v12 = 0;
}
else
{
v13 = 0;
}
v21 = v13;
}
sub_100A3030(v10, v11);
v14 = ((int (__thiscall *)(int (*(**)[2])()))(*off_10588DC0)[5])(&off_10588DC0);
(*(void (__stdcall **)(void ***, _DWORD, _DWORD))(**(_DWORD **)(dword_10588DC4[v14] + 156) + 160))(&v16, 0, 0);
LABEL_21:
result = sub_100D4B70(&v16);
}
return result;
}