if ( mountIdentity == 3 )
{
sub_9B7BF0(plIndex);
a5 = 49;
playSound((int)&a5);
__asm { fld qword ptr [esi+0E8h]; Load Real }
*(_DWORD *)(currentPlayer_ptr + 224) = 0;
*(_WORD *)(currentPlayer_ptr + 320) = 100;
__asm
{
fstp [ebp+var_148] ; Store Real and Pop
fld [ebp+var_148] ; Load Real
}
*(_WORD *)(currentPlayer_ptr + 322) = -1;
*(_WORD *)(currentPlayer_ptr + 286) = 0;
*(_DWORD *)(currentPlayer_ptr + 228) = 0;
_vbaFpR4();
__asm
{
fcomp flt_B2C6E8 ; Compare Real and Pop
fnstsw ax ; Store Status Word (no wait)
}
if ( !(HIBYTE(_AX) & 0x41) )
{
__asm
{
fld flt_B2C6E8 ; Load Real
fstp qword ptr [esi+0E8h]; Store Real and Pop
}
}
v36 = *(_WORD *)(currentPlayer_ptr + 320);
*(_WORD *)(currentPlayer_ptr + 284) = 0;
*(_WORD *)(currentPlayer_ptr + 264) = 0;
*(_WORD *)(currentPlayer_ptr + 102) = 0;
*(_WORD *)(currentPlayer_ptr + 104) = 0;
*(_WORD *)(currentPlayer_ptr + 92) = 0;
*(_WORD *)(currentPlayer_ptr + 94) = 0;
*(_WORD *)(currentPlayer_ptr + 100) = 0;
*(_WORD *)(currentPlayer_ptr + 188) = v36;
newNPCIndex = HIWORD(NPCS_COUNT) + 1;
if ( __OFADD__(1, HIWORD(NPCS_COUNT)) )
goto LABEL_233;
++HIWORD(NPCS_COUNT);
if ( *(_WORD *)(currentPlayer_ptr + 184) > 0 || *(_WORD *)(currentPlayer_ptr + 186) > 0 )
{
sub_9BE6D0(plIndex);
newNPCIndex = HIWORD(NPCS_COUNT);
}
newNPCIndexOffseted = newNPCIndex + 128;
if ( (unsigned int)newNPCIndexOffseted >= 0x1409 )
_vbaGenerateBoundsError(v124, v125, v126);
v39 = *(_WORD *)plIndex;
newNPC = npc_or_layer_ptr + 344 * newNPCIndexOffseted;
if ( v39 >= 0xC9 )
_vbaGenerateBoundsError(v124, v125, v126);
v141 = *(_WORD *)(Player_ptr + 388 * v39 + 262);
__asm { fild [ebp+var_14C] ; Load Integer }
*(_WORD *)(newNPC + 292) = -1;
*(_WORD *)(newNPC + 298) = 100;
__asm { fstp dword ptr [edi+0ECh]; Store Real and Pop }
v41 = *(_WORD *)plIndex;
if ( v41 >= 0xC9 )
_vbaGenerateBoundsError(v124, v125, v126);
if ( *(_WORD *)(Player_ptr + 388 * v41 + 266) == 1 )
{
*(_WORD *)(newNPC + 226) = 95;
}
else
{
v42 = *(_WORD *)plIndex;
if ( v42 >= 0xC9 )
_vbaGenerateBoundsError(v124, v125, v126);
if ( *(_WORD *)(Player_ptr + 388 * v42 + 266) == 2 )
{
*(_WORD *)(newNPC + 226) = 98;
}
else
{
v43 = *(_WORD *)plIndex;
if ( v43 >= 0xC9 )
_vbaGenerateBoundsError(v124, v125, v126);
if ( *(_WORD *)(Player_ptr + 388 * v43 + 266) == 3 )
{
*(_WORD *)(newNPC + 226) = 99;
}
else
{
v44 = *(_WORD *)plIndex;
if ( v44 >= 0xC9 )
_vbaGenerateBoundsError(v124, v125, v126);
if ( *(_WORD *)(Player_ptr + 388 * v44 + 266) == 4 )
{
*(_WORD *)(newNPC + 226) = 100;
}
else
{
v45 = *(_WORD *)plIndex;
if ( v45 >= 0xC9 )
_vbaGenerateBoundsError(v124, v125, v126);
if ( *(_WORD *)(Player_ptr + 388 * v45 + 266) == 5 )
{
*(_WORD *)(newNPC + 226) = 148;
}
else
{
v46 = *(_WORD *)plIndex;
if ( v46 >= 0xC9 )
_vbaGenerateBoundsError(v124, v125, v126);
if ( *(_WORD *)(Player_ptr + 388 * v46 + 266) == 6 )
{
*(_WORD *)(newNPC + 226) = 149;
}
else
{
v47 = *(_WORD *)plIndex;
if ( v47 >= 0xC9 )
_vbaGenerateBoundsError(v124, v125, v126);
if ( *(_WORD *)(Player_ptr + 388 * v47 + 266) == 7 )
{
*(_WORD *)(newNPC + 226) = 150;
}
else
{
v48 = *(_WORD *)plIndex;
if ( v48 >= 0xC9 )
_vbaGenerateBoundsError(v124, v125, v126);
if ( *(_WORD *)(Player_ptr + 388 * v48 + 266) == 8 )
*(_WORD *)(newNPC + 226) = 228;
}
}
}
}
}
}
}
*(_DWORD *)(newNPC + 240) = 0;
*(_DWORD *)(newNPC + 136) = 0;
*(_DWORD *)(newNPC + 144) = 0;
*(_DWORD *)(newNPC + 244) = 1072693248;
*(_DWORD *)(newNPC + 140) = 1077936128;
*(_DWORD *)(newNPC + 148) = 1077936128;
v49 = *(_WORD *)plIndex;
if ( v49 >= 0xC9 )
_vbaGenerateBoundsError(v124, v125, v126);
v50 = *(_WORD *)plIndex;
v149 = *(_WORD *)plIndex;
if ( v50 >= 0xC9 )
{
_vbaGenerateBoundsError(v124, v125, v126);
JUMPOUT(*(int *)loc_9B5C1D);
}
_ECX = 97 * v50;
_EAX = Player_ptr;
__asm { fld qword ptr [eax+ecx*4+0D0h]; Load Real }
_EDX = 97 * v49;
__asm
{
fadd qword ptr [eax+edx*4+0C8h]; Add Real
fsub ds:dbl_4024D8 ; Subtract Real
fstp qword ptr [edi+80h]; Store Real and Pop
fnstsw ax ; Store Status Word (no wait)
}
if ( _EAX & 0xD )
goto LABEL_232;
v54 = *(_WORD *)plIndex;
if ( v54 >= 0xC9 )
_vbaGenerateBoundsError(v124, v125, v126);
v55 = *(_WORD *)plIndex;
v149 = *(_WORD *)plIndex;
if ( v55 >= 0xC9 )
_vbaGenerateBoundsError(v124, v125, v126);
_ECX = 97 * v54;
_EDX = 97 * v149;
_EAX = Player_ptr;
__asm { fld qword ptr [eax+edx*4+0D8h]; Load Real }
if ( dword_B25000 )
j__adj_fdiv_m64(LODWORD(dbl_4012D8), HIDWORD(dbl_4012D8));
else
__asm { fdiv ds:dbl_4012D8 ; Divide Real }
__asm
{
fadd qword ptr [eax+ecx*4+0C0h]; Add Real
fsub ds:dbl_402690 ; Subtract Real
fnstsw ax ; Store Status Word (no wait)
}
if ( _AX & 0xD )
goto LABEL_232;
_vbaFPInt();
__asm { fstp qword ptr [edi+78h]; Store Real and Pop }
*(_DWORD *)(newNPC + 160) = 0;
*(_DWORD *)(newNPC + 152) = 0;
*(_DWORD *)(newNPC + 164) = 1071644672;
*(_DWORD *)(newNPC + 156) = 0;
*(_WORD *)(newNPC + 302) = 10;
*(_WORD *)(newNPC + 304) = *(_WORD *)plIndex;
v60 = *(_WORD *)(currentPlayer_ptr + 240) - 1;
if ( (unsigned int)v60 >= 5 )
_vbaGenerateBoundsError(v124, v125, v126);
v61 = *(_WORD *)(currentPlayer_ptr + 274) - 1;
if ( (unsigned int)v61 >= 7 )
_vbaGenerateBoundsError(v124, v125, v126);
v140 = Hitbox_h_ptr[v60 + 4 * v61 + v61];
__asm
{
fild [ebp+var_150] ; Load Integer
fstp qword ptr [esi+0D0h]; Store Real and Pop
}
return;
}