Files
arcattackandClaude Opus 4.8 7b7d465e5e Initial commit: bt411 -- standalone Windows BattleTech (Tesla 4.10 port)
Clean, self-contained extraction of the BattleTech-specific work from the
reverse-engineering workspace -- engine + game + content + build, with nothing
from Red Planet or the raw archive dumps. Builds green (Win32) and runs the
single-player drive->animate->target->fire->damage->destroy loop out of the box.

Layout:
  engine/   MUNGA + MUNGA_L4 shared 2007 engine, carrying our BT render/loader
            work (bgfload/L4D3D/L4VIDEO: BSL bit-slice decode, LOD/ground/shadow
            models) + image codec; the minimal rp/ headers the audio HAL needs
  game/     reconstructed BT logic + surviving-original BT source + fwd shims
            + WinMain launcher
  content/  full runtime tree (BTL4.RES, VIDEO/, GAUGE/, AUDIO/, eggs, BTDPL.INI)
  docs/     format specs + reconstruction ledgers
  reference/ raw Ghidra pseudocode (recon source-of-truth) + decomp exporter
  tools/    MP console emulator + map/resource scanners

One top-level CMake builds munga_engine lib + bt410_l4 game lib + btl4.exe.
All paths relativized (186 fwd shims + ~437 CMake abs paths -> repo-relative);
DXSDK is the one external, overridable via -DDXSDK. Verified: builds to a
byte-identical 2.27MB exe and runs combat (TARGET DESTROYED, 0 crashes) against
the bundled content.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 21:03:40 -05:00

9627 lines
212 KiB
C

/* @0040aee0 file=? name=FUN_0040aee0 */
void __cdecl FUN_0040aee0(undefined4 *param_1,undefined4 *param_2)
{
*param_1 = *param_2;
param_1[4] = param_2[1];
param_1[8] = param_2[2];
param_1[1] = param_2[4];
param_1[5] = param_2[5];
param_1[9] = param_2[6];
param_1[2] = param_2[8];
param_1[6] = param_2[9];
param_1[10] = param_2[10];
param_1[3] = param_2[0xc];
param_1[7] = param_2[0xd];
param_1[0xb] = param_2[0xe];
return;
}
/* @0040af34 file=? name=FUN_0040af34 */
void __cdecl FUN_0040af34(undefined4 *param_1,undefined4 *param_2)
{
*param_1 = *param_2;
param_1[4] = param_2[1];
param_1[8] = param_2[2];
param_1[1] = param_2[4];
param_1[5] = param_2[5];
param_1[9] = param_2[6];
param_1[2] = param_2[8];
param_1[6] = param_2[9];
param_1[10] = param_2[10];
param_1[3] = param_2[0xc];
param_1[7] = param_2[0xd];
param_1[0xb] = param_2[0xe];
return;
}
/* @0040af88 file=? name=FUN_0040af88 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
undefined4 __cdecl FUN_0040af88(float *param_1,float *param_2)
{
uint uVar1;
float10 fVar2;
uVar1 = 0;
do {
fVar2 = FUN_004dcd00((double)(*param_1 - *param_2));
if ((float10)_DAT_0040afec < fVar2) {
return 0;
}
uVar1 = uVar1 + 1;
param_1 = param_1 + 1;
param_2 = param_2 + 1;
} while (uVar1 < 0xc);
return 1;
}
/* @0040aff0 file=? name=FUN_0040aff0 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
undefined4 __cdecl FUN_0040aff0(float *param_1,float *param_2)
{
uint uVar1;
float10 fVar2;
uVar1 = 0;
do {
fVar2 = FUN_004dcd00((double)(*param_1 - *param_2));
if ((float10)_DAT_0040b054 < fVar2) {
return 1;
}
uVar1 = uVar1 + 1;
param_1 = param_1 + 1;
param_2 = param_2 + 1;
} while (uVar1 < 0xc);
return 0;
}
/* @0040b058 file=? name=FUN_0040b058 */
void __cdecl FUN_0040b058(int param_1,int param_2,undefined4 *param_3)
{
*param_3 = *(undefined4 *)(param_1 + param_2 * 4);
param_3[1] = *(undefined4 *)(param_1 + 0x10 + param_2 * 4);
param_3[2] = *(undefined4 *)(param_1 + 0x20 + param_2 * 4);
return;
}
/* @0040b07c file=? name=FUN_0040b07c */
void __cdecl FUN_0040b07c(int param_1,int param_2,undefined4 *param_3)
{
*param_3 = *(undefined4 *)(param_1 + param_2 * 0x10);
param_3[1] = *(undefined4 *)(param_1 + 4 + param_2 * 0x10);
param_3[2] = *(undefined4 *)(param_1 + 8 + param_2 * 0x10);
return;
}
/* @0040b0ac file=? name=FUN_0040b0ac */
void __cdecl FUN_0040b0ac(int param_1,int param_2,undefined4 *param_3)
{
*(undefined4 *)(param_1 + param_2 * 4) = *param_3;
*(undefined4 *)(param_1 + 0x10 + param_2 * 4) = param_3[1];
*(undefined4 *)(param_1 + 0x20 + param_2 * 4) = param_3[2];
return;
}
/* @0040b0d0 file=? name=FUN_0040b0d0 */
void __cdecl FUN_0040b0d0(int param_1,int param_2,undefined4 *param_3)
{
*(undefined4 *)(param_1 + param_2 * 0x10) = *param_3;
*(undefined4 *)(param_1 + 4 + param_2 * 0x10) = param_3[1];
*(undefined4 *)(param_1 + 8 + param_2 * 0x10) = param_3[2];
return;
}
/* @0040b104 file=? name=FUN_0040b104 */
float * __cdecl FUN_0040b104(float *param_1,float *param_2,float *param_3)
{
*param_1 = param_2[8] * param_3[2] + param_2[4] * param_3[1] + *param_2 * *param_3;
param_1[1] = param_2[9] * param_3[2] + param_2[5] * param_3[1] + param_2[1] * *param_3;
param_1[2] = param_2[10] * param_3[2] + param_2[6] * param_3[1] + param_2[2] * *param_3;
param_1[3] = param_2[0xb] * param_3[2] + param_2[7] * param_3[1] + param_2[3] * *param_3 +
param_3[3];
param_1[4] = param_2[8] * param_3[6] + param_2[4] * param_3[5] + *param_2 * param_3[4];
param_1[5] = param_2[9] * param_3[6] + param_2[5] * param_3[5] + param_2[1] * param_3[4];
param_1[6] = param_2[10] * param_3[6] + param_2[6] * param_3[5] + param_2[2] * param_3[4];
param_1[7] = param_2[0xb] * param_3[6] + param_2[7] * param_3[5] + param_2[3] * param_3[4] +
param_3[7];
param_1[8] = param_2[8] * param_3[10] + param_2[4] * param_3[9] + *param_2 * param_3[8];
param_1[9] = param_2[9] * param_3[10] + param_2[5] * param_3[9] + param_2[1] * param_3[8];
param_1[10] = param_2[10] * param_3[10] + param_2[6] * param_3[9] + param_2[2] * param_3[8];
param_1[0xb] = param_2[0xb] * param_3[10] + param_2[7] * param_3[9] + param_2[3] * param_3[8] +
param_3[0xb];
return param_1;
}
/* @0040b244 file=? name=FUN_0040b244 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
float * __cdecl FUN_0040b244(float *param_1,float *param_2)
{
float fVar1;
float fVar2;
float fVar3;
float *pfVar4;
int iVar5;
*param_1 = param_2[5] * param_2[10] - param_2[9] * param_2[6];
param_1[1] = param_2[9] * param_2[2] - param_2[1] * param_2[10];
param_1[2] = param_2[1] * param_2[6] - param_2[5] * param_2[2];
fVar1 = *param_2;
fVar2 = param_2[4];
fVar3 = param_2[8];
param_1[3] = (-param_2[3] * *param_1 - param_2[7] * param_1[1]) - param_2[0xb] * param_1[2];
param_1[4] = param_2[8] * param_2[6] - param_2[4] * param_2[10];
param_1[5] = *param_2 * param_2[10] - param_2[8] * param_2[2];
param_1[6] = param_2[4] * param_2[2] - *param_2 * param_2[6];
param_1[7] = (-param_2[3] * param_1[4] - param_2[7] * param_1[5]) - param_2[0xb] * param_1[6];
param_1[8] = param_2[4] * param_2[9] - param_2[8] * param_2[5];
param_1[9] = param_2[1] * param_2[8] - *param_2 * param_2[9];
param_1[10] = *param_2 * param_2[5] - param_2[4] * param_2[1];
param_1[0xb] = (-param_2[3] * param_1[8] - param_2[7] * param_1[9]) - param_2[0xb] * param_1[10];
fVar1 = _DAT_0040b370 / (param_1[2] * fVar3 + param_1[1] * fVar2 + *param_1 * fVar1);
iVar5 = 0;
pfVar4 = param_1;
do {
*pfVar4 = fVar1 * *pfVar4;
iVar5 = iVar5 + 1;
pfVar4 = pfVar4 + 1;
} while (iVar5 < 0xc);
return param_1;
}
/* @0040b374 file=? name=FUN_0040b374 */
void __cdecl FUN_0040b374(float *param_1,float *param_2,float *param_3)
{
*param_1 = *param_2 * *param_3;
param_1[1] = param_2[1] * *param_3;
param_1[2] = param_2[2] * *param_3;
param_1[3] = param_2[3] * *param_3;
param_1[4] = param_2[4] * param_3[1];
param_1[5] = param_2[5] * param_3[1];
param_1[6] = param_2[6] * param_3[1];
param_1[7] = param_2[7] * param_3[1];
param_1[8] = param_2[8] * param_3[2];
param_1[9] = param_2[9] * param_3[2];
param_1[10] = param_2[10] * param_3[2];
param_1[0xb] = param_2[0xb] * param_3[2];
return;
}
/* @0040b3e8 file=? name=FUN_0040b3e8 */
void __cdecl FUN_0040b3e8(float *param_1,float *param_2,float *param_3)
{
int iVar1;
float *pfVar2;
float *pfVar3;
float local_34 [12];
pfVar2 = (float *)&DAT_004e107c;
pfVar3 = local_34;
for (iVar1 = 0xc; iVar1 != 0; iVar1 = iVar1 + -1) {
*pfVar3 = *pfVar2;
pfVar2 = pfVar2 + 1;
pfVar3 = pfVar3 + 1;
}
FUN_0040adec(local_34,param_3);
FUN_0040b104(param_1,param_2,local_34);
return;
}
/* @0040b42c file=? name=FUN_0040b42c */
void __cdecl FUN_0040b42c(int param_1,int param_2,float *param_3)
{
*(float *)(param_1 + 0xc) = *(float *)(param_2 + 0xc) + *param_3;
*(float *)(param_1 + 0x1c) = *(float *)(param_2 + 0x1c) + param_3[1];
*(float *)(param_1 + 0x2c) = *(float *)(param_2 + 0x2c) + param_3[2];
return;
}
/* @0040b454 file=? name=FUN_0040b454 */
float10 __cdecl FUN_0040b454(float *param_1)
{
return ((float10)param_1[1] * (float10)param_1[6] - (float10)param_1[5] * (float10)param_1[2]) *
(float10)param_1[8] +
((float10)param_1[9] * (float10)param_1[2] - (float10)param_1[1] * (float10)param_1[10]) *
(float10)param_1[4] +
((float10)param_1[5] * (float10)param_1[10] - (float10)param_1[9] * (float10)param_1[6]) *
(float10)*param_1;
}
/* @0040b494 file=? name=FUN_0040b494 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
float * __cdecl FUN_0040b494(float *param_1)
{
float fVar1;
int iVar2;
if (*param_1 == _DAT_0040b68c) {
iVar2 = 0;
do {
if (param_1[iVar2 * 4] != _DAT_0040b68c) break;
iVar2 = iVar2 + 1;
} while (iVar2 < 3);
fVar1 = *param_1;
*param_1 = param_1[iVar2 * 4];
param_1[iVar2 * 4] = fVar1;
fVar1 = param_1[1];
param_1[1] = param_1[iVar2 * 4 + 1];
param_1[iVar2 * 4 + 1] = fVar1;
fVar1 = param_1[2];
param_1[2] = param_1[iVar2 * 4 + 2];
param_1[iVar2 * 4 + 2] = fVar1;
fVar1 = param_1[3];
param_1[3] = param_1[iVar2 * 4 + 3];
param_1[iVar2 * 4 + 3] = fVar1;
}
fVar1 = *param_1;
*param_1 = 1.0;
param_1[1] = param_1[1] / fVar1;
param_1[2] = param_1[2] / fVar1;
param_1[3] = param_1[3] / fVar1;
fVar1 = param_1[4];
param_1[4] = 0.0;
param_1[5] = param_1[5] - fVar1 * param_1[1];
param_1[6] = param_1[6] - fVar1 * param_1[2];
param_1[7] = param_1[7] - fVar1 * param_1[3];
fVar1 = param_1[8];
param_1[8] = 0.0;
param_1[9] = param_1[9] - fVar1 * param_1[1];
param_1[10] = param_1[10] - fVar1 * param_1[2];
param_1[0xb] = param_1[0xb] - fVar1 * param_1[3];
if (param_1[5] == _DAT_0040b68c) {
fVar1 = param_1[5];
param_1[5] = param_1[9];
param_1[9] = fVar1;
fVar1 = param_1[6];
param_1[6] = param_1[10];
param_1[10] = fVar1;
fVar1 = param_1[7];
param_1[7] = param_1[0xb];
param_1[0xb] = fVar1;
}
fVar1 = param_1[5];
param_1[5] = 1.0;
param_1[6] = param_1[6] / fVar1;
param_1[7] = param_1[7] / fVar1;
fVar1 = param_1[1];
param_1[1] = 0.0;
param_1[2] = param_1[2] - fVar1 * param_1[6];
param_1[3] = param_1[3] - fVar1 * param_1[7];
fVar1 = param_1[9];
param_1[9] = 0.0;
param_1[10] = param_1[10] - fVar1 * param_1[6];
param_1[0xb] = param_1[0xb] - fVar1 * param_1[7];
fVar1 = param_1[10];
param_1[10] = 1.0;
param_1[0xb] = param_1[0xb] / fVar1;
fVar1 = param_1[2];
param_1[2] = 0.0;
param_1[3] = param_1[3] - fVar1 * param_1[0xb];
fVar1 = param_1[6];
param_1[6] = 0.0;
param_1[7] = param_1[7] - fVar1 * param_1[0xb];
return param_1;
}
/* @0040bbe8 file=? name=FUN_0040bbe8 */
undefined4 FUN_0040bbe8(void)
{
return 1;
}
/* @0040bc00 file=? name=FUN_0040bc00 */
undefined4 * __cdecl FUN_0040bc00(undefined4 *param_1,undefined4 *param_2)
{
FUN_0040ab28(param_1,param_2);
return param_1;
}
/* @0040bc1c file=? name=FUN_0040bc1c */
undefined4 * __cdecl FUN_0040bc1c(undefined4 *param_1,undefined4 *param_2)
{
FUN_0040aee0(param_1,param_2);
return param_1;
}
/* @0040bc38 file=? name=FUN_0040bc38 */
undefined4 * __cdecl FUN_0040bc38(undefined4 *param_1,undefined4 *param_2)
{
FUN_0040af34(param_1,param_2);
return param_1;
}
/* @0040bc54 file=? name=FUN_0040bc54 */
float * __cdecl FUN_0040bc54(float *param_1,float *param_2)
{
*param_1 = *param_2;
param_1[4] = param_2[1];
param_1[8] = param_2[2];
param_1[1] = param_2[4];
param_1[5] = param_2[5];
param_1[9] = param_2[6];
param_1[2] = param_2[8];
param_1[6] = param_2[9];
param_1[10] = param_2[10];
param_1[3] = (-param_2[3] * *param_2 - param_2[7] * param_2[4]) - param_2[0xb] * param_2[8];
param_1[7] = (-param_2[3] * param_2[1] - param_2[7] * param_2[5]) - param_2[0xb] * param_2[9];
param_1[0xb] = (-param_2[3] * param_2[2] - param_2[7] * param_2[6]) - param_2[0xb] * param_2[10];
return param_1;
}
/* @0040bce8 file=? name=FUN_0040bce8 */
void __cdecl FUN_0040bce8(float *param_1)
{
param_1[8] = param_1[1] * param_1[6] - param_1[5] * param_1[2];
param_1[9] = param_1[2] * param_1[4] - param_1[6] * *param_1;
param_1[10] = *param_1 * param_1[5] - param_1[4] * param_1[1];
return;
}
/* @0040bd24 file=? name=FUN_0040bd24 */
undefined4 __cdecl FUN_0040bd24(int param_1)
{
int iVar1;
undefined4 uVar2;
float local_28 [3];
float local_1c [3];
float local_10 [3];
FUN_0040b058(param_1,0,local_10);
iVar1 = FUN_00408cbc(local_10);
if (iVar1 == 0) {
uVar2 = 0;
}
else {
FUN_0040b058(param_1,1,local_1c);
iVar1 = FUN_00408cbc(local_1c);
if (iVar1 == 0) {
uVar2 = 0;
}
else {
FUN_0040866c(local_28,local_10,local_1c);
FUN_0040b058(param_1,2,local_10);
uVar2 = FUN_004084fc(local_10,local_28,0.0001);
}
}
return uVar2;
}
/* @0040bdbc file=? name=FUN_0040bdbc */
undefined4 * __cdecl FUN_0040bdbc(undefined4 *param_1,undefined4 *param_2)
{
FUN_004d4918(param_1,param_2,0x40);
return param_1;
}
/* @0040bdd8 file=? name=FUN_0040bdd8 */
void __cdecl FUN_0040bdd8(undefined4 *param_1,undefined4 *param_2)
{
*param_1 = *param_2;
param_1[1] = param_2[4];
param_1[2] = param_2[8];
param_1[3] = param_2[0xc];
param_1[4] = param_2[1];
param_1[5] = param_2[5];
param_1[6] = param_2[9];
param_1[7] = param_2[0xd];
param_1[8] = param_2[2];
param_1[9] = param_2[6];
param_1[10] = param_2[10];
param_1[0xb] = param_2[0xe];
param_1[0xc] = param_2[3];
param_1[0xd] = param_2[7];
param_1[0xe] = param_2[0xb];
param_1[0xf] = param_2[0xf];
return;
}
/* @0040be44 file=? name=FUN_0040be44 */
undefined4 FUN_0040be44(void)
{
return 1;
}
/* @0040be50 file=? name=FUN_0040be50 */
void __cdecl FUN_0040be50(undefined4 *param_1)
{
*param_1 = 0x3f800000;
param_1[4] = 0;
param_1[8] = 0;
param_1[0xc] = 0;
param_1[1] = 0;
param_1[5] = 0x3f800000;
param_1[9] = 0;
param_1[0xd] = 0;
param_1[2] = 0;
param_1[6] = 0;
param_1[10] = 0x3f800000;
param_1[0xe] = 0;
param_1[3] = 0;
param_1[7] = 0;
param_1[0xb] = 0;
param_1[0xf] = 0x3f800000;
return;
}
/* @0040beb0 file=? name=FUN_0040beb0 */
void __cdecl FUN_0040beb0(undefined4 *param_1,undefined4 *param_2)
{
*param_1 = *param_2;
param_1[1] = param_2[4];
param_1[2] = param_2[8];
param_1[3] = 0;
param_1[4] = param_2[1];
param_1[5] = param_2[5];
param_1[6] = param_2[9];
param_1[7] = 0;
param_1[8] = param_2[2];
param_1[9] = param_2[6];
param_1[10] = param_2[10];
param_1[0xb] = 0;
param_1[0xc] = param_2[3];
param_1[0xd] = param_2[7];
param_1[0xe] = param_2[0xb];
param_1[0xf] = 0x3f800000;
return;
}
/* @0040bf18 file=? name=FUN_0040bf18 */
float * __cdecl FUN_0040bf18(float *param_1,undefined4 *param_2)
{
FUN_0040c03c(param_1,(float *)(param_2 + 3));
FUN_0040c170((int)param_1,param_2);
param_1[3] = 0.0;
param_1[7] = 0.0;
param_1[0xb] = 0.0;
param_1[0xf] = 1.0;
return param_1;
}
/* @0040bf58 file=? name=FUN_0040bf58 */
float * __cdecl FUN_0040bf58(float *param_1,float *param_2)
{
float local_1c;
float local_18;
float local_14;
float local_10;
float local_c;
float local_8;
FUN_00408328(&local_c,param_2);
FUN_00408328(&local_14,param_2 + 1);
FUN_00408328(&local_1c,param_2 + 2);
*param_1 = local_10 * local_18;
param_1[1] = local_10 * local_1c;
param_1[2] = -local_14;
param_1[3] = 0.0;
param_1[4] = local_c * local_14 * local_18 - local_8 * local_1c;
param_1[5] = local_8 * local_18 + local_c * local_14 * local_1c;
param_1[6] = local_c * local_10;
param_1[7] = 0.0;
param_1[8] = local_c * local_1c + local_8 * local_14 * local_18;
param_1[9] = local_8 * local_14 * local_1c - local_c * local_18;
param_1[10] = local_8 * local_10;
param_1[0xb] = 0.0;
param_1[0xc] = 0.0;
param_1[0xd] = 0.0;
param_1[0xe] = 0.0;
param_1[0xf] = 1.0;
return param_1;
}
/* @0040c03c file=? name=FUN_0040c03c */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
float * __cdecl FUN_0040c03c(float *param_1,float *param_2)
{
float fVar1;
float fVar2;
float fVar3;
float fVar4;
float fVar5;
float fVar6;
float fVar7;
float fVar8;
float fVar9;
float fVar10;
float fVar11;
float fVar12;
float fVar13;
float fVar14;
float fVar15;
float fVar16;
fVar1 = *param_2;
fVar2 = param_2[1];
fVar3 = param_2[1];
fVar4 = param_2[2];
fVar5 = param_2[2];
fVar6 = *param_2;
fVar7 = param_2[3];
fVar8 = *param_2;
fVar9 = param_2[3];
fVar10 = param_2[1];
fVar11 = param_2[3];
fVar12 = param_2[2];
fVar13 = param_2[3] * param_2[3];
fVar14 = *param_2 * *param_2;
fVar15 = param_2[1] * param_2[1];
fVar16 = param_2[2] * param_2[2];
*param_1 = ((fVar13 + fVar14) - fVar15) - fVar16;
param_1[4] = (fVar1 * fVar2 - fVar11 * fVar12) * _DAT_0040c12c;
param_1[8] = (fVar5 * fVar6 + fVar9 * fVar10) * _DAT_0040c12c;
param_1[1] = (fVar11 * fVar12 + fVar1 * fVar2) * _DAT_0040c12c;
param_1[5] = ((fVar13 - fVar14) + fVar15) - fVar16;
param_1[9] = (fVar3 * fVar4 - fVar7 * fVar8) * _DAT_0040c12c;
param_1[2] = (fVar5 * fVar6 - fVar9 * fVar10) * _DAT_0040c12c;
param_1[6] = (fVar3 * fVar4 + fVar7 * fVar8) * _DAT_0040c12c;
param_1[10] = ((fVar13 - fVar14) - fVar15) + fVar16;
return param_1;
}
/* @0040c170 file=? name=FUN_0040c170 */
void __cdecl FUN_0040c170(int param_1,undefined4 *param_2)
{
*(undefined4 *)(param_1 + 0x30) = *param_2;
*(undefined4 *)(param_1 + 0x34) = param_2[1];
*(undefined4 *)(param_1 + 0x38) = param_2[2];
return;
}
/* @0040c18c file=? name=FUN_0040c18c */
undefined4 * __cdecl FUN_0040c18c(undefined4 *param_1,undefined4 *param_2)
{
FUN_0040c170((int)param_1,param_2);
*param_1 = 0x3f800000;
param_1[1] = 0;
param_1[2] = 0;
param_1[3] = 0;
param_1[4] = 0;
param_1[5] = 0x3f800000;
param_1[6] = 0;
param_1[7] = 0;
param_1[8] = 0;
param_1[9] = 0;
param_1[10] = 0x3f800000;
param_1[0xb] = 0;
param_1[0xf] = 0x3f800000;
return param_1;
}
/* @0040c1f0 file=? name=FUN_0040c1f0 */
float * __cdecl FUN_0040c1f0(float *param_1,float *param_2,float *param_3)
{
*param_1 = param_2[3] * param_3[0xc] +
param_2[2] * param_3[8] + param_2[1] * param_3[4] + *param_2 * *param_3;
param_1[4] = param_2[7] * param_3[0xc] +
param_2[6] * param_3[8] + param_2[5] * param_3[4] + param_2[4] * *param_3;
param_1[8] = param_2[0xb] * param_3[0xc] +
param_2[10] * param_3[8] + param_2[9] * param_3[4] + param_2[8] * *param_3;
param_1[0xc] = param_2[0xf] * param_3[0xc] +
param_2[0xe] * param_3[8] + param_2[0xd] * param_3[4] + param_2[0xc] * *param_3;
param_1[1] = param_2[3] * param_3[0xd] +
param_2[2] * param_3[9] + param_2[1] * param_3[5] + *param_2 * param_3[1];
param_1[5] = param_2[7] * param_3[0xd] +
param_2[6] * param_3[9] + param_2[5] * param_3[5] + param_2[4] * param_3[1];
param_1[9] = param_2[0xb] * param_3[0xd] +
param_2[10] * param_3[9] + param_2[9] * param_3[5] + param_2[8] * param_3[1];
param_1[0xd] = param_2[0xf] * param_3[0xd] +
param_2[0xe] * param_3[9] + param_2[0xd] * param_3[5] + param_2[0xc] * param_3[1];
param_1[2] = param_2[3] * param_3[0xe] +
param_2[2] * param_3[10] + param_2[1] * param_3[6] + *param_2 * param_3[2];
param_1[6] = param_2[7] * param_3[0xe] +
param_2[6] * param_3[10] + param_2[5] * param_3[6] + param_2[4] * param_3[2];
param_1[10] = param_2[0xb] * param_3[0xe] +
param_2[10] * param_3[10] + param_2[9] * param_3[6] + param_2[8] * param_3[2];
param_1[0xe] = param_2[0xf] * param_3[0xe] +
param_2[0xe] * param_3[10] + param_2[0xd] * param_3[6] + param_2[0xc] * param_3[2];
param_1[3] = param_2[3] * param_3[0xf] +
param_2[2] * param_3[0xb] + param_2[1] * param_3[7] + *param_2 * param_3[3];
param_1[7] = param_2[7] * param_3[0xf] +
param_2[6] * param_3[0xb] + param_2[5] * param_3[7] + param_2[4] * param_3[3];
param_1[0xb] = param_2[0xb] * param_3[0xf] +
param_2[10] * param_3[0xb] + param_2[9] * param_3[7] + param_2[8] * param_3[3];
param_1[0xf] = param_2[0xf] * param_3[0xf] +
param_2[0xe] * param_3[0xb] + param_2[0xd] * param_3[7] + param_2[0xc] * param_3[3]
;
return param_1;
}
/* @0040c408 file=? name=FUN_0040c408 */
float * __cdecl FUN_0040c408(float *param_1,float *param_2,float *param_3)
{
*param_1 = param_2[3] * param_3[3] +
param_2[2] * param_3[2] + param_2[1] * param_3[1] + *param_2 * *param_3;
param_1[4] = param_2[7] * param_3[3] +
param_2[6] * param_3[2] + param_2[5] * param_3[1] + param_2[4] * *param_3;
param_1[8] = param_2[0xb] * param_3[3] +
param_2[10] * param_3[2] + param_2[9] * param_3[1] + param_2[8] * *param_3;
param_1[0xc] = param_2[0xf] * param_3[3] +
param_2[0xe] * param_3[2] + param_2[0xd] * param_3[1] + param_2[0xc] * *param_3;
param_1[1] = param_2[3] * param_3[7] +
param_2[2] * param_3[6] + param_2[1] * param_3[5] + *param_2 * param_3[4];
param_1[5] = param_2[7] * param_3[7] +
param_2[6] * param_3[6] + param_2[5] * param_3[5] + param_2[4] * param_3[4];
param_1[9] = param_2[0xb] * param_3[7] +
param_2[10] * param_3[6] + param_2[9] * param_3[5] + param_2[8] * param_3[4];
param_1[0xd] = param_2[0xf] * param_3[7] +
param_2[0xe] * param_3[6] + param_2[0xd] * param_3[5] + param_2[0xc] * param_3[4];
param_1[2] = param_2[3] * param_3[0xb] +
param_2[2] * param_3[10] + param_2[1] * param_3[9] + *param_2 * param_3[8];
param_1[6] = param_2[7] * param_3[0xb] +
param_2[6] * param_3[10] + param_2[5] * param_3[9] + param_2[4] * param_3[8];
param_1[10] = param_2[0xb] * param_3[0xb] +
param_2[10] * param_3[10] + param_2[9] * param_3[9] + param_2[8] * param_3[8];
param_1[0xe] = param_2[0xf] * param_3[0xb] +
param_2[0xe] * param_3[10] + param_2[0xd] * param_3[9] + param_2[0xc] * param_3[8];
param_1[3] = param_2[3];
param_1[7] = param_2[7];
param_1[0xb] = param_2[0xb];
param_1[0xf] = param_2[0xf];
return param_1;
}
/* @0040c5b4 file=? name=FUN_0040c5b4 */
float * __cdecl FUN_0040c5b4(float *param_1,float *param_2,float *param_3)
{
*param_1 = param_2[8] * param_3[8] + param_2[4] * param_3[4] + *param_2 * *param_3;
param_1[4] = param_2[9] * param_3[8] + param_2[5] * param_3[4] + param_2[1] * *param_3;
param_1[8] = param_2[10] * param_3[8] + param_2[6] * param_3[4] + param_2[2] * *param_3;
param_1[0xc] = param_2[0xb] * param_3[8] + param_2[7] * param_3[4] + param_2[3] * *param_3 +
param_3[0xc];
param_1[1] = param_2[8] * param_3[9] + param_2[4] * param_3[5] + *param_2 * param_3[1];
param_1[5] = param_2[9] * param_3[9] + param_2[5] * param_3[5] + param_2[1] * param_3[1];
param_1[9] = param_2[10] * param_3[9] + param_2[6] * param_3[5] + param_2[2] * param_3[1];
param_1[0xd] = param_2[0xb] * param_3[9] + param_2[7] * param_3[5] + param_2[3] * param_3[1] +
param_3[0xd];
param_1[2] = param_2[8] * param_3[10] + param_2[4] * param_3[6] + *param_2 * param_3[2];
param_1[6] = param_2[9] * param_3[10] + param_2[5] * param_3[6] + param_2[1] * param_3[2];
param_1[10] = param_2[10] * param_3[10] + param_2[6] * param_3[6] + param_2[2] * param_3[2];
param_1[0xe] = param_2[0xb] * param_3[10] + param_2[7] * param_3[6] + param_2[3] * param_3[2] +
param_3[0xe];
param_1[3] = param_2[8] * param_3[0xb] + param_2[4] * param_3[7] + *param_2 * param_3[3];
param_1[7] = param_2[9] * param_3[0xb] + param_2[5] * param_3[7] + param_2[1] * param_3[3];
param_1[0xb] = param_2[10] * param_3[0xb] + param_2[6] * param_3[7] + param_2[2] * param_3[3];
param_1[0xf] = param_2[0xb] * param_3[0xb] + param_2[7] * param_3[7] + param_2[3] * param_3[3] +
param_3[0xf];
return param_1;
}
/* @0040c758 file=? name=FUN_0040c758 */
float * __cdecl FUN_0040c758(float *param_1,float *param_2,float *param_3)
{
FUN_0040b104(param_1,param_2,param_3);
param_1[3] = 0.0;
param_1[7] = 0.0;
param_1[0xb] = 0.0;
param_1[0xf] = 1.0;
return param_1;
}
/* @0040c78c file=? name=FUN_0040c78c */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
void __cdecl
FUN_0040c78c(undefined4 *param_1,float param_2,float param_3,float param_4,float param_5,
float param_6)
{
*param_1 = 0x3f800000;
param_1[1] = 0;
param_1[2] = 0;
param_1[3] = 0;
param_1[4] = 0;
param_1[5] = 0x3f800000;
param_1[6] = 0;
param_1[7] = 0;
param_1[0xc] = param_4 * param_6 * param_2;
param_1[8] = -(param_4 * param_6);
param_1[0xd] = param_5 * param_6 * param_2;
param_1[9] = -(param_5 * param_6);
param_1[10] = param_2 * -param_3 * param_6;
param_1[0xb] = (_DAT_0040c82c - (float)param_1[10]) * param_2;
param_1[0xe] = -param_3 * param_6;
param_1[0xf] = _DAT_0040c82c - (float)param_1[10];
return;
}
/* @0040cdb4 file=? name=FUN_0040cdb4 */
undefined4 * __cdecl FUN_0040cdb4(undefined4 *param_1,undefined4 *param_2)
{
FUN_004d4918(param_1,param_2,0x30);
param_1[0xc] = 0;
param_1[0xd] = 0;
param_1[0xe] = 0;
param_1[0xf] = 0x3f800000;
return param_1;
}
/* @0040cdf4 file=? name=FUN_0040cdf4 */
void __cdecl FUN_0040cdf4(float *param_1,float param_2,float *param_3)
{
float local_10 [3];
FUN_004086ac(local_10,param_1 + 3,param_2);
FUN_004085ec(param_3,param_1,local_10);
return;
}
/* @0040ce2c file=? name=FUN_0040ce2c */
float10 __cdecl FUN_0040ce2c(float *param_1,float *param_2)
{
float local_10;
float local_c;
float local_8;
FUN_00408644(&local_10,param_2,param_1);
return (float10)local_8 * (float10)param_1[5] +
(float10)local_c * (float10)param_1[4] + (float10)local_10 * (float10)param_1[3];
}
/* @0040ce64 file=? name=FUN_0040ce64 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
float10 __cdecl FUN_0040ce64(float *param_1,float *param_2,float *param_3)
{
float10 fVar1;
float local_8;
*param_3 = param_2[2] * param_1[5] + param_2[1] * param_1[4] + *param_2 * param_1[3];
local_8 = (param_2[2] * param_1[2] + param_2[1] * param_1[1] + *param_2 * *param_1) - param_2[3];
fVar1 = FUN_004dcd00((double)*param_3);
if ((float10)_DAT_0040cee4 < fVar1) {
local_8 = local_8 / -*param_3;
}
return (float10)local_8;
}
/* @0040cfb8 file=? name=FUN_0040cfb8 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
float10 __cdecl
FUN_0040cfb8(float *param_1,float *param_2,float *param_3,float *param_4,float *param_5,
float *param_6,float *param_7,undefined4 *param_8)
{
float10 fVar1;
float local_30;
float local_2c;
float local_28;
float local_24;
float local_20;
float local_1c;
float local_18;
float local_14;
float local_10;
float local_c;
float local_8;
FUN_00408644(&local_18,param_1,param_4);
FUN_00408644(&local_24,param_2,param_5);
local_c = local_1c * local_1c + local_20 * local_20 + local_24 * local_24;
local_8 = local_c;
fVar1 = FUN_004dcd00((double)local_c);
if ((float10)_DAT_0040d0fc < fVar1) {
*param_8 = 0;
*param_7 = (local_10 * local_1c + local_14 * local_20 + local_18 * local_24) / -local_8;
FUN_00408614(&local_30,&local_18,&local_24,*param_7);
FUN_00408614(param_3,param_1,param_2,*param_7);
FUN_00408614(param_6,param_4,param_5,*param_7);
fVar1 = FUN_004dd138((double)(local_28 * local_28 + local_2c * local_2c + local_30 * local_30));
}
else {
*param_8 = 1;
fVar1 = FUN_004dd138((double)(local_10 * local_10 + local_14 * local_14 + local_18 * local_18));
}
return (float10)(float)fVar1;
}
/* @0040d100 file=? name=FUN_0040d100 */
int __cdecl FUN_0040d100(int param_1,float *param_2)
{
float10 fVar1;
fVar1 = FUN_004dd138((double)(param_2[2] * param_2[2] +
param_2[1] * param_2[1] + *param_2 * *param_2));
*(float *)(param_1 + 0x18) = (float)fVar1;
*(float *)(param_1 + 0xc) = *param_2 / *(float *)(param_1 + 0x18);
*(float *)(param_1 + 0x10) = param_2[1] / *(float *)(param_1 + 0x18);
*(float *)(param_1 + 0x14) = param_2[2] / *(float *)(param_1 + 0x18);
return param_1;
}
/* @0040d150 file=? name=FUN_0040d150 */
void __cdecl FUN_0040d150(undefined4 *param_1,undefined4 *param_2)
{
*param_1 = *param_2;
param_1[1] = param_2[1];
param_1[2] = param_2[2];
return;
}
/* @0040d16c file=? name=FUN_0040d16c */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
float10 __cdecl FUN_0040d16c(float *param_1,float *param_2,float *param_3)
{
float fVar1;
float10 fVar2;
*param_3 = param_1[5] * param_2[2] + param_1[4] * param_2[1] + param_1[3] * *param_2;
fVar2 = FUN_004dcd00((double)*param_3);
fVar1 = _DAT_0040d1fc;
if ((float10)_DAT_0040d1f8 < fVar2) {
fVar1 = -((param_2[2] * param_1[2] + param_2[1] * param_1[1] + *param_2 * *param_1) - param_2[3]
) / *param_3;
}
return (float10)fVar1;
}
/* @0040d210 file=? name=FUN_0040d210 */
float * __cdecl FUN_0040d210(float *param_1,float *param_2,float *param_3)
{
if (*param_3 < *param_2) {
*param_1 = *param_3;
param_1[1] = *param_2;
}
else {
*param_1 = *param_2;
param_1[1] = *param_3;
}
if (param_3[1] < param_2[1]) {
param_1[2] = param_3[1];
param_1[3] = param_2[1];
}
else {
param_1[2] = param_2[1];
param_1[3] = param_3[1];
}
if (param_3[2] < param_2[2]) {
param_1[4] = param_3[2];
param_1[5] = param_2[2];
}
else {
param_1[4] = param_2[2];
param_1[5] = param_3[2];
}
return param_1;
}
/* @0040d28c file=? name=FUN_0040d28c */
void __cdecl FUN_0040d28c(undefined4 *param_1,undefined4 *param_2)
{
*param_1 = *param_2;
param_1[1] = param_2[1];
param_1[2] = param_2[2];
param_1[3] = param_2[3];
param_1[4] = param_2[4];
param_1[5] = param_2[5];
return;
}
/* @0040d2bc file=? name=FUN_0040d2bc */
float * __cdecl FUN_0040d2bc(float *param_1,float *param_2,float *param_3)
{
float fVar1;
if (*param_2 <= *param_3) {
fVar1 = *param_3;
}
else {
fVar1 = *param_2;
}
*param_1 = fVar1;
if (param_3[1] <= param_2[1]) {
fVar1 = param_3[1];
}
else {
fVar1 = param_2[1];
}
param_1[1] = fVar1;
if (param_2[2] <= param_3[2]) {
fVar1 = param_3[2];
}
else {
fVar1 = param_2[2];
}
param_1[2] = fVar1;
if (param_3[3] <= param_2[3]) {
fVar1 = param_3[3];
}
else {
fVar1 = param_2[3];
}
param_1[3] = fVar1;
if (param_2[4] <= param_3[4]) {
fVar1 = param_3[4];
}
else {
fVar1 = param_2[4];
}
param_1[4] = fVar1;
if (param_3[5] <= param_2[5]) {
fVar1 = param_3[5];
}
else {
fVar1 = param_2[5];
}
param_1[5] = fVar1;
return param_1;
}
/* @0040d350 file=? name=FUN_0040d350 */
float * __cdecl FUN_0040d350(float *param_1,float *param_2)
{
float fVar1;
if (*param_1 <= *param_2) {
if (*param_2 <= param_1[1]) {
fVar1 = *param_2;
}
else {
fVar1 = param_1[1];
}
}
else {
fVar1 = *param_1;
}
*param_2 = fVar1;
if (param_1[2] <= param_2[1]) {
if (param_2[1] <= param_1[3]) {
fVar1 = param_2[1];
}
else {
fVar1 = param_1[3];
}
}
else {
fVar1 = param_1[2];
}
param_2[1] = fVar1;
if (param_1[4] <= param_2[2]) {
if (param_2[2] <= param_1[5]) {
fVar1 = param_2[2];
}
else {
fVar1 = param_1[5];
}
}
else {
fVar1 = param_1[4];
}
param_2[2] = fVar1;
return param_2;
}
/* @0040d3cc file=? name=FUN_0040d3cc */
undefined4 __cdecl FUN_0040d3cc(float *param_1,float *param_2)
{
undefined4 uVar1;
if ((((*param_2 < *param_1) || (param_1[1] < *param_2)) || (param_2[1] < param_1[2])) ||
(((param_1[3] < param_2[1] || (param_2[2] < param_1[4])) || (param_1[5] < param_2[2])))) {
uVar1 = 0;
}
else {
uVar1 = 1;
}
return uVar1;
}
/* @0040d420 file=? name=FUN_0040d420 */
undefined4 __cdecl FUN_0040d420(float *param_1,float *param_2)
{
undefined4 uVar1;
if ((((*param_2 < *param_1) || (param_1[1] < param_2[1])) || (param_2[2] < param_1[2])) ||
(((param_1[3] < param_2[3] || (param_2[4] < param_1[4])) || (param_1[5] < param_2[5])))) {
uVar1 = 0;
}
else {
uVar1 = 1;
}
return uVar1;
}
/* @0040d474 file=? name=FUN_0040d474 */
undefined4 __cdecl FUN_0040d474(float *param_1,float *param_2)
{
undefined4 uVar1;
if ((((param_2[1] < *param_1) || (param_1[1] < *param_2)) || (param_2[3] < param_1[2])) ||
(((param_1[3] < param_2[2] || (param_2[5] < param_1[4])) || (param_1[5] < param_2[4])))) {
uVar1 = 0;
}
else {
uVar1 = 1;
}
return uVar1;
}
/* @0040d4c8 file=? name=FUN_0040d4c8 */
undefined4 __cdecl FUN_0040d4c8(float *param_1)
{
undefined4 uVar1;
if (((param_1[1] < *param_1) || (param_1[3] < param_1[2])) || (param_1[5] < param_1[4])) {
uVar1 = 0;
}
else {
uVar1 = 1;
}
return uVar1;
}
/* @0040d4fc file=? name=FUN_0040d4fc */
void __cdecl FUN_0040d4fc(int *param_1,float *param_2)
{
float fVar1;
float fVar2;
float fVar3;
float fVar4;
float fVar5;
float fVar6;
int *piVar7;
byte bVar8;
bVar8 = 0x5d;
fVar1 = param_2[5];
fVar2 = param_2[4];
fVar3 = param_2[3];
fVar4 = param_2[2];
fVar5 = param_2[1];
fVar6 = *param_2;
piVar7 = FUN_004db92c(param_1,0x5b);
piVar7 = FUN_004db634(piVar7,(float10)fVar6);
FUN_004dbb24(piVar7,&DAT_004e1130,(char *)0x0);
piVar7 = FUN_004db634(piVar7,(float10)fVar5);
FUN_004dbb24(piVar7,&DAT_004e1133,(char *)0x0);
piVar7 = FUN_004db634(piVar7,(float10)fVar4);
FUN_004dbb24(piVar7,&DAT_004e1137,(char *)0x0);
piVar7 = FUN_004db634(piVar7,(float10)fVar3);
FUN_004dbb24(piVar7,&DAT_004e113a,(char *)0x0);
piVar7 = FUN_004db634(piVar7,(float10)fVar2);
FUN_004dbb24(piVar7,&DAT_004e113e,(char *)0x0);
piVar7 = FUN_004db634(piVar7,(float10)fVar1);
FUN_004db92c(piVar7,bVar8);
return;
}
/* @0040d62c file=? name=FUN_0040d62c */
void __cdecl FUN_0040d62c(char *param_1,float *param_2)
{
uint *puVar1;
float10 fVar2;
uint local_80 [2];
char *local_78;
uint local_70 [2];
char *local_68;
uint local_60 [2];
char *local_58;
uint local_50 [2];
char *local_48;
uint local_40 [2];
char *local_38;
uint local_30 [2];
char *local_28;
uint *local_20;
uint *local_1c;
uint *local_18;
uint *local_14;
uint *local_10;
uint *local_c;
uint *local_8;
puVar1 = (uint *)FUN_00402298(0x10);
if (puVar1 == (uint *)0x0) {
local_8 = (uint *)0x0;
}
else {
local_8 = FUN_00402460(puVar1,param_1);
}
local_8[3] = local_8[3] + 1;
FUN_00402838(local_30,local_8,0,(char *)0x0);
puVar1 = (uint *)FUN_00402298(0x10);
if (puVar1 == (uint *)0x0) {
local_c = (uint *)0x0;
}
else {
local_c = FUN_00402460(puVar1,local_28);
}
local_c[3] = local_c[3] + 1;
FUN_004024d8((int *)local_30,2);
fVar2 = (float10)FUN_004dd1cc(local_c[2]);
*param_2 = (float)fVar2;
puVar1 = local_c + 3;
*puVar1 = *puVar1 - 1;
if (*puVar1 == 0) {
FUN_004024d8((int *)local_c,3);
}
FUN_00402838(local_40,local_8,1,(char *)0x0);
puVar1 = (uint *)FUN_00402298(0x10);
if (puVar1 == (uint *)0x0) {
local_10 = (uint *)0x0;
}
else {
local_10 = FUN_00402460(puVar1,local_38);
}
local_10[3] = local_10[3] + 1;
FUN_004024d8((int *)local_40,2);
fVar2 = (float10)FUN_004dd1cc(local_10[2]);
param_2[2] = (float)fVar2;
puVar1 = local_10 + 3;
*puVar1 = *puVar1 - 1;
if (*puVar1 == 0) {
FUN_004024d8((int *)local_10,3);
}
FUN_00402838(local_50,local_8,2,(char *)0x0);
puVar1 = (uint *)FUN_00402298(0x10);
if (puVar1 == (uint *)0x0) {
local_14 = (uint *)0x0;
}
else {
local_14 = FUN_00402460(puVar1,local_48);
}
local_14[3] = local_14[3] + 1;
FUN_004024d8((int *)local_50,2);
fVar2 = (float10)FUN_004dd1cc(local_14[2]);
param_2[4] = (float)fVar2;
puVar1 = local_14 + 3;
*puVar1 = *puVar1 - 1;
if (*puVar1 == 0) {
FUN_004024d8((int *)local_14,3);
}
FUN_00402838(local_60,local_8,3,(char *)0x0);
puVar1 = (uint *)FUN_00402298(0x10);
if (puVar1 == (uint *)0x0) {
local_18 = (uint *)0x0;
}
else {
local_18 = FUN_00402460(puVar1,local_58);
}
local_18[3] = local_18[3] + 1;
FUN_004024d8((int *)local_60,2);
fVar2 = (float10)FUN_004dd1cc(local_18[2]);
param_2[1] = (float)fVar2;
puVar1 = local_18 + 3;
*puVar1 = *puVar1 - 1;
if (*puVar1 == 0) {
FUN_004024d8((int *)local_18,3);
}
FUN_00402838(local_70,local_8,4,(char *)0x0);
puVar1 = (uint *)FUN_00402298(0x10);
if (puVar1 == (uint *)0x0) {
local_1c = (uint *)0x0;
}
else {
local_1c = FUN_00402460(puVar1,local_68);
}
local_1c[3] = local_1c[3] + 1;
FUN_004024d8((int *)local_70,2);
fVar2 = (float10)FUN_004dd1cc(local_1c[2]);
param_2[3] = (float)fVar2;
puVar1 = local_1c + 3;
*puVar1 = *puVar1 - 1;
if (*puVar1 == 0) {
FUN_004024d8((int *)local_1c,3);
}
FUN_00402838(local_80,local_8,5,(char *)0x0);
puVar1 = (uint *)FUN_00402298(0x10);
if (puVar1 == (uint *)0x0) {
local_20 = (uint *)0x0;
}
else {
local_20 = FUN_00402460(puVar1,local_78);
}
local_20[3] = local_20[3] + 1;
FUN_004024d8((int *)local_80,2);
fVar2 = (float10)FUN_004dd1cc(local_20[2]);
param_2[5] = (float)fVar2;
puVar1 = local_20 + 3;
*puVar1 = *puVar1 - 1;
if (*puVar1 == 0) {
FUN_004024d8((int *)local_20,3);
}
puVar1 = local_8 + 3;
*puVar1 = *puVar1 - 1;
if (*puVar1 == 0) {
FUN_004024d8((int *)local_8,3);
}
return;
}
/* @0040d908 file=? name=FUN_0040d908 */
int FUN_0040d908(int param_1,int *param_2)
{
bool bVar1;
undefined3 extraout_var;
int extraout_EAX;
int iVar2;
int iVar3;
int iVar4;
int iVar5;
int iVar6;
int iVar7;
int iVar8;
char acStack_38 [52];
bVar1 = FUN_004040d8(param_1,s_COLLISION_004e1141,s_extentcount_004e114b,param_2);
if (CONCAT31(extraout_var,bVar1) == 0) {
FUN_004dbb24((int *)&DAT_00524e68,s_No__COLLISION__entry______004e1157,(char *)0x0);
FUN_004d9c38((int *)&DAT_00524e68);
FUN_004036a0(1);
}
FUN_004de998((int *)0x0,0x18,*param_2,1,FUN_0040daba);
for (iVar8 = 0; iVar8 < *param_2; iVar8 = iVar8 + 1) {
FUN_004d7f10(acStack_38,s_extent__d_004e1171);
iVar2 = FUN_00404118(param_1,acStack_38,s_extminX_004e117b,
(float *)(iVar8 * 0x18 + extraout_EAX));
iVar3 = FUN_00404118(param_1,acStack_38,s_extmaxX_004e1183,
(float *)(iVar8 * 0x18 + extraout_EAX + 4));
iVar4 = FUN_00404118(param_1,acStack_38,s_extminY_004e118b,
(float *)(iVar8 * 0x18 + extraout_EAX + 8));
iVar5 = FUN_00404118(param_1,acStack_38,s_extmaxY_004e1193,
(float *)(iVar8 * 0x18 + extraout_EAX + 0xc));
iVar6 = FUN_00404118(param_1,acStack_38,s_extminZ_004e119b,
(float *)(iVar8 * 0x18 + extraout_EAX + 0x10));
iVar7 = FUN_00404118(param_1,acStack_38,s_extmaxZ_004e11a3,
(float *)(iVar8 * 0x18 + extraout_EAX + 0x14));
if (((((iVar2 == 0 || iVar3 == 0) || iVar4 == 0) || iVar5 == 0) || iVar6 == 0) || iVar7 == 0) {
FUN_004036a0(1);
}
}
return extraout_EAX;
}
/* @0040d90e file=? name=FUN_0040d90e */
int FUN_0040d90e(void)
{
bool bVar1;
undefined3 extraout_var;
int extraout_EAX;
int iVar2;
int iVar3;
int iVar4;
int iVar5;
int iVar6;
int iVar7;
int iVar8;
int unaff_EBP;
bVar1 = FUN_004040d8(*(int *)(unaff_EBP + 8),s_COLLISION_004e1141,s_extentcount_004e114b,
*(int **)(unaff_EBP + 0xc));
if (CONCAT31(extraout_var,bVar1) == 0) {
FUN_004dbb24((int *)&DAT_00524e68,s_No__COLLISION__entry______004e1157,(char *)0x0);
FUN_004d9c38((int *)&DAT_00524e68);
FUN_004036a0(1);
}
FUN_004de998((int *)0x0,0x18,**(int **)(unaff_EBP + 0xc),1,FUN_0040daba);
for (iVar8 = 0; iVar8 < **(int **)(unaff_EBP + 0xc); iVar8 = iVar8 + 1) {
FUN_004d7f10((undefined1 *)(unaff_EBP + -0x34),s_extent__d_004e1171);
iVar2 = FUN_00404118(*(int *)(unaff_EBP + 8),(char *)(unaff_EBP + -0x34),s_extminX_004e117b,
(float *)(iVar8 * 0x18 + extraout_EAX));
iVar3 = FUN_00404118(*(int *)(unaff_EBP + 8),(char *)(unaff_EBP + -0x34),s_extmaxX_004e1183,
(float *)(iVar8 * 0x18 + extraout_EAX + 4));
iVar4 = FUN_00404118(*(int *)(unaff_EBP + 8),(char *)(unaff_EBP + -0x34),s_extminY_004e118b,
(float *)(iVar8 * 0x18 + extraout_EAX + 8));
iVar5 = FUN_00404118(*(int *)(unaff_EBP + 8),(char *)(unaff_EBP + -0x34),s_extmaxY_004e1193,
(float *)(iVar8 * 0x18 + extraout_EAX + 0xc));
iVar6 = FUN_00404118(*(int *)(unaff_EBP + 8),(char *)(unaff_EBP + -0x34),s_extminZ_004e119b,
(float *)(iVar8 * 0x18 + extraout_EAX + 0x10));
iVar7 = FUN_00404118(*(int *)(unaff_EBP + 8),(char *)(unaff_EBP + -0x34),s_extmaxZ_004e11a3,
(float *)(iVar8 * 0x18 + extraout_EAX + 0x14));
if (((((iVar2 == 0 || iVar3 == 0) || iVar4 == 0) || iVar5 == 0) || iVar6 == 0) || iVar7 == 0) {
FUN_004036a0(1);
}
}
return extraout_EAX;
}
/* @0040daba file=? name=FUN_0040daba */
undefined4 __cdecl FUN_0040daba(undefined4 param_1)
{
return param_1;
}
/* @0040dac4 file=? name=FUN_0040dac4 */
undefined4 * __cdecl FUN_0040dac4(undefined4 *param_1,undefined4 *param_2)
{
FUN_0040d28c(param_1,param_2);
param_1[6] = &PTR_FUN_004e11c4;
return param_1;
}
/* @0040dae4 file=? name=FUN_0040dae4 */
void __cdecl FUN_0040dae4(int param_1)
{
*(undefined ***)(param_1 + 0x18) = &PTR_FUN_004e11c4;
return;
}
/* @0040daf4 file=? name=FUN_0040daf4 */
void __cdecl FUN_0040daf4(float *param_1,float *param_2)
{
*param_1 = *param_2 + *param_1;
param_1[1] = *param_2 + param_1[1];
param_1[2] = param_2[1] + param_1[2];
param_1[3] = param_2[1] + param_1[3];
param_1[4] = param_2[2] + param_1[4];
param_1[5] = param_2[2] + param_1[5];
return;
}
/* @0040db34 file=? name=FUN_0040db34 */
void __cdecl FUN_0040db34(int *param_1,byte param_2)
{
if ((param_1 != (int *)0x0) && (param_1[6] = (int)&PTR_FUN_004e11c4, (param_2 & 1) != 0)) {
FUN_004022d0(param_1);
}
return;
}
/* @0040db54 file=? name=FUN_0040db54 */
undefined4 __cdecl FUN_0040db54(float *param_1,float *param_2)
{
int iVar1;
undefined4 uVar2;
float local_1c [6];
iVar1 = FUN_0040d474(param_1,param_2);
if (iVar1 == 0) {
uVar2 = 0;
}
else {
FUN_0040d2bc(local_1c,param_1,param_2);
uVar2 = (**(code **)((int)param_1[6] + 4))(param_1,local_1c);
}
return uVar2;
}
/* @0040db98 file=? name=FUN_0040db98 */
undefined4 __cdecl FUN_0040db98(float *param_1,float *param_2,float *param_3)
{
int iVar1;
undefined4 uVar2;
iVar1 = FUN_0040d474(param_1,param_2);
if (iVar1 == 0) {
uVar2 = 0;
}
else {
FUN_0040d2bc(param_3,param_1,param_2);
uVar2 = (**(code **)((int)param_1[6] + 4))(param_1,param_3);
}
return uVar2;
}
/* @0040dbd4 file=? name=FUN_0040dbd4 */
undefined4 __cdecl FUN_0040dbd4(float *param_1,float *param_2)
{
int iVar1;
undefined4 uVar2;
iVar1 = FUN_0040d3cc(param_1,param_2);
if (iVar1 == 0) {
uVar2 = 0;
}
else {
uVar2 = (**(code **)((int)param_1[6] + 8))(param_1,param_2);
}
return uVar2;
}
/* @0040dc00 file=? name=FUN_0040dc00 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
float10 __cdecl FUN_0040dc00(float *param_1,float *param_2)
{
float10 fVar1;
if ((((*param_1 <= *param_2) && (*param_2 <= param_1[1])) && (param_1[2] <= param_2[1])) &&
((param_1[4] <= param_2[2] && (param_2[2] <= param_1[5])))) {
fVar1 = (float10)(**(code **)((int)param_1[6] + 0xc))(param_1,param_2);
return fVar1;
}
return (float10)_DAT_0040dc54;
}
/* @0040dc58 file=? name=FUN_0040dc58 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
undefined4 __cdecl FUN_0040dc58(int param_1,int param_2)
{
float fVar1;
bool bVar2;
bool bVar3;
undefined4 uVar4;
int iVar5;
uint uVar6;
float10 fVar7;
float local_14;
float local_10;
float local_c;
float local_8;
bVar2 = false;
bVar3 = false;
uVar6 = 0;
do {
iVar5 = (int)uVar6 >> 1;
if ((uVar6 & 1) == 0) {
local_10 = *(float *)(param_1 + uVar6 * 4) - *(float *)(param_2 + iVar5 * 4);
local_14 = -*(float *)(param_2 + 0xc + iVar5 * 4);
}
else {
local_10 = *(float *)(param_2 + iVar5 * 4) - *(float *)(param_1 + uVar6 * 4);
local_14 = *(float *)(param_2 + 0xc + iVar5 * 4);
}
fVar7 = FUN_004dcd00((double)local_14);
if ((float10)_DAT_0040dda4 < fVar7) {
fVar1 = -local_10 / local_14;
if (_DAT_0040dda8 <= local_14) {
if (bVar3) {
if (fVar1 < local_c) {
local_c = fVar1;
}
}
else {
bVar3 = true;
local_c = fVar1;
}
if (local_c < _DAT_0040dda8) {
return 0;
}
}
else {
if (bVar2) {
if (local_8 <= fVar1) {
local_8 = fVar1;
}
}
else {
bVar2 = true;
local_8 = fVar1;
}
if (*(float *)(param_2 + 0x18) < local_8) {
return 0;
}
}
}
else if (_DAT_0040dda8 < local_10) {
return 0;
}
uVar6 = uVar6 + 1;
if (5 < (int)uVar6) {
if (local_c < local_8) {
uVar4 = 0;
}
else {
uVar4 = (**(code **)(*(int *)(param_1 + 0x18) + 0x10))(param_1,param_2,local_8,local_c);
}
return uVar4;
}
} while( true );
}
/* @0040ddb8 file=? name=FUN_0040ddb8 */
undefined4 FUN_0040ddb8(void)
{
return 1;
}
/* @0040ddc4 file=? name=FUN_0040ddc4 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
float10 __cdecl FUN_0040ddc4(int param_1,int param_2)
{
float fVar1;
float fVar2;
fVar1 = *(float *)(param_2 + 4) - *(float *)(param_1 + 0xc);
fVar2 = _DAT_0040ddf4;
if (_DAT_0040ddf4 < fVar1) {
fVar2 = fVar1;
}
return (float10)fVar2;
}
/* @0040de34 file=? name=FUN_0040de34 */
undefined4 FUN_0040de34(void)
{
return 1;
}
/* @0040de40 file=? name=FUN_0040de40 */
undefined4 * __cdecl FUN_0040de40(undefined4 *param_1,int param_2)
{
undefined4 extraout_EAX;
FUN_004de998((int *)0x0,0x1c,param_2,1,FUN_0040df25);
*param_1 = extraout_EAX;
param_1[2] = param_2;
param_1[1] = *param_1;
param_1[3] = param_1[2];
return param_1;
}
/* @0040de78 file=? name=FUN_0040de78 */
void __cdecl FUN_0040de78(int param_1,undefined4 param_2,undefined4 *param_3)
{
int iVar1;
undefined4 *puVar2;
puVar2 = *(undefined4 **)(param_1 + 4);
*puVar2 = param_2;
for (iVar1 = 6; puVar2 = puVar2 + 1, iVar1 != 0; iVar1 = iVar1 + -1) {
*puVar2 = *param_3;
param_3 = param_3 + 1;
}
*(int *)(param_1 + 4) = *(int *)(param_1 + 4) + 0x1c;
*(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + -1;
return;
}
/* @0040dea4 file=? name=FUN_0040dea4 */
undefined4 FUN_0040dea4(void)
{
return 1;
}
/* @0040deb0 file=? name=FUN_0040deb0 */
int __cdecl FUN_0040deb0(int param_1,undefined4 param_2)
{
FUN_0040dae4(param_1);
*(undefined ***)(param_1 + 0x18) = &PTR_FUN_004e11ac;
*(undefined4 *)(param_1 + 0x1c) = param_2;
return param_1;
}
/* @0040ded0 file=? name=FUN_0040ded0 */
undefined4 * __cdecl FUN_0040ded0(undefined4 *param_1,undefined4 *param_2,undefined4 param_3)
{
FUN_0040dac4(param_1,param_2);
param_1[6] = &PTR_FUN_004e11ac;
param_1[7] = param_3;
return param_1;
}
/* @0040def8 file=? name=FUN_0040def8 */
void __cdecl FUN_0040def8(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
param_1[6] = (int)&PTR_FUN_004e11ac;
FUN_0040db34(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0040df25 file=? name=FUN_0040df25 */
undefined4 __cdecl FUN_0040df25(undefined4 param_1)
{
return param_1;
}
/* @0040df68 file=? name=FUN_0040df68 */
undefined4 * __cdecl FUN_0040df68(undefined4 *param_1,undefined4 param_2,undefined4 *param_3)
{
undefined4 *puVar1;
int iVar2;
puVar1 = param_1;
for (iVar2 = 6; iVar2 != 0; iVar2 = iVar2 + -1) {
*puVar1 = *param_3;
param_3 = param_3 + 1;
puVar1 = puVar1 + 1;
}
param_1[6] = param_2;
param_1[0xd] = 0;
iVar2 = 0;
puVar1 = param_1 + 7;
do {
*puVar1 = 0;
iVar2 = iVar2 + 1;
puVar1 = puVar1 + 1;
} while (iVar2 < 6);
return param_1;
}
/* @0040dfa4 file=? name=FUN_0040dfa4 */
void __cdecl FUN_0040dfa4(undefined4 *param_1,byte param_2)
{
undefined4 *puVar1;
int iVar2;
if (param_1 != (undefined4 *)0x0) {
iVar2 = 0;
puVar1 = param_1 + 7;
do {
if ((undefined4 *)*puVar1 != (undefined4 *)0x0) {
FUN_0040dfa4((undefined4 *)*puVar1,3);
}
iVar2 = iVar2 + 1;
puVar1 = puVar1 + 1;
} while (iVar2 < 6);
if ((undefined4 *)param_1[0xd] != (undefined4 *)0x0) {
FUN_0040dfa4((undefined4 *)param_1[0xd],3);
}
if ((param_2 & 1) != 0) {
FUN_00402f98(0x4e11dc,param_1);
}
}
return;
}
/* @0040e000 file=? name=FUN_0040e000 */
void __cdecl FUN_0040e000(int param_1,int param_2,undefined4 *param_3)
{
uint uVar1;
int iVar2;
undefined4 *puVar3;
uint uVar4;
float local_30 [6];
uint *local_18;
undefined4 *local_14;
float local_10;
uint local_c;
int local_8;
FUN_0040d28c(local_30,param_3);
local_8 = 0;
local_18 = &DAT_004e1204;
do {
uVar1 = *local_18;
uVar4 = uVar1 ^ 1;
if ((uVar1 & 1) == 0) {
if (local_30[uVar1] < *(float *)(param_1 + uVar1 * 4)) {
local_c = (uint)(*(float *)(param_1 + uVar1 * 4) < local_30[uVar4]);
goto LAB_0040e07f;
}
}
else if (*(float *)(param_1 + uVar1 * 4) < local_30[uVar1]) {
local_c = (uint)(local_30[uVar4] < *(float *)(param_1 + uVar1 * 4));
LAB_0040e07f:
if (local_c != 0) {
local_10 = local_30[uVar4];
local_30[uVar4] = *(float *)(param_1 + uVar1 * 4);
}
iVar2 = (**(code **)(*(int *)(param_2 + 0x18) + 4))(param_2,local_30);
if (iVar2 != 0) {
if (*(int *)(param_1 + 0x1c + uVar1 * 4) == 0) {
local_14 = FUN_00402f74(0x4e11dc);
if (local_14 == (undefined4 *)0x0) {
puVar3 = (undefined4 *)0x0;
}
else {
puVar3 = FUN_0040df68(local_14,param_2,local_30);
}
*(undefined4 **)(param_1 + 0x1c + uVar1 * 4) = puVar3;
}
else {
FUN_0040e000(*(int *)(param_1 + 0x1c + uVar1 * 4),param_2,local_30);
}
}
if (local_c == 0) {
return;
}
local_30[uVar4] = local_10;
local_30[uVar1] = *(float *)(param_1 + uVar1 * 4);
}
local_8 = local_8 + 1;
local_18 = local_18 + 1;
if (5 < local_8) {
iVar2 = (**(code **)(*(int *)(param_2 + 0x18) + 4))(param_2,local_30);
if (iVar2 != 0) {
if (*(int *)(param_1 + 0x34) == 0) {
puVar3 = FUN_00402f74(0x4e11dc);
if (puVar3 == (undefined4 *)0x0) {
puVar3 = (undefined4 *)0x0;
}
else {
puVar3 = FUN_0040df68(puVar3,param_2,local_30);
}
*(undefined4 **)(param_1 + 0x34) = puVar3;
}
else {
FUN_0040e000(*(int *)(param_1 + 0x34),param_2,local_30);
}
}
return;
}
} while( true );
}
/* @0040e184 file=? name=FUN_0040e184 */
void __cdecl FUN_0040e184(int param_1,int param_2,undefined4 *param_3)
{
uint uVar1;
int iVar2;
uint uVar3;
float local_2c [6];
uint *local_14;
float local_10;
uint local_c;
int local_8;
if (*(int *)(param_1 + 0x18) == param_2) {
*(undefined4 *)(param_1 + 0x18) = 0;
}
else {
FUN_0040d28c(local_2c,param_3);
local_8 = 0;
local_14 = &DAT_004e1204;
do {
uVar1 = *local_14;
uVar3 = uVar1 ^ 1;
if ((uVar1 & 1) == 0) {
if (local_2c[uVar1] < *(float *)(param_1 + uVar1 * 4)) {
local_c = (uint)(*(float *)(param_1 + uVar1 * 4) < local_2c[uVar3]);
goto LAB_0040e213;
}
}
else if (*(float *)(param_1 + uVar1 * 4) < local_2c[uVar1]) {
local_c = (uint)(local_2c[uVar3] < *(float *)(param_1 + uVar1 * 4));
LAB_0040e213:
if (local_c != 0) {
local_10 = local_2c[uVar3];
local_2c[uVar3] = *(float *)(param_1 + uVar1 * 4);
}
iVar2 = (**(code **)(*(int *)(param_2 + 0x18) + 4))(param_2,local_2c);
if (iVar2 != 0) {
FUN_0040e184(*(int *)(param_1 + 0x1c + uVar1 * 4),param_2,local_2c);
}
if (local_c == 0) {
return;
}
local_2c[uVar3] = local_10;
local_2c[uVar1] = *(float *)(param_1 + uVar1 * 4);
}
local_8 = local_8 + 1;
local_14 = local_14 + 1;
} while (local_8 < 6);
iVar2 = (**(code **)(*(int *)(param_2 + 0x18) + 4))(param_2,local_2c);
if (iVar2 != 0) {
FUN_0040e184(*(int *)(param_1 + 0x34),param_2,local_2c);
}
}
return;
}
/* @0040e2ac file=? name=FUN_0040e2ac */
int __cdecl FUN_0040e2ac(int param_1,int param_2,int param_3)
{
uint uVar1;
int iVar2;
uint *puVar3;
int local_8;
LAB_0040e2c0:
do {
iVar2 = param_1;
puVar3 = &DAT_004e1204;
local_8 = 0;
do {
uVar1 = *puVar3;
if ((uVar1 & 1) == 0) {
if (*(float *)(param_2 + uVar1 * 4) < *(float *)(iVar2 + uVar1 * 4)) {
if (*(float *)(iVar2 + uVar1 * 4) <= *(float *)(param_2 + (uVar1 ^ 1) * 4)) {
if (param_3 == 0) {
return iVar2;
}
return param_3;
}
goto LAB_0040e323;
}
}
else if (*(float *)(iVar2 + uVar1 * 4) < *(float *)(param_2 + uVar1 * 4)) {
if (*(float *)(param_2 + (uVar1 ^ 1) * 4) <= *(float *)(iVar2 + uVar1 * 4)) {
if (param_3 == 0) {
return iVar2;
}
return param_3;
}
LAB_0040e323:
if (*(int *)(iVar2 + 0x1c + uVar1 * 4) == 0) {
if (param_3 == 0) {
return iVar2;
}
return param_3;
}
param_1 = *(int *)(iVar2 + 0x1c + uVar1 * 4);
goto LAB_0040e2c0;
}
local_8 = local_8 + 1;
puVar3 = puVar3 + 1;
} while (local_8 < 6);
param_1 = *(int *)(iVar2 + 0x34);
param_3 = iVar2;
if (*(int *)(iVar2 + 0x34) == 0) {
return iVar2;
}
} while( true );
}
/* @0040e36c file=? name=FUN_0040e36c */
int __cdecl FUN_0040e36c(int param_1,int param_2)
{
uint uVar1;
int iVar2;
uint *puVar3;
int local_8;
LAB_0040e37b:
iVar2 = param_1;
puVar3 = &DAT_004e1204;
local_8 = 0;
do {
uVar1 = *puVar3;
if ((uVar1 & 1) == 0) {
if (*(float *)(param_2 + uVar1 * 4) < *(float *)(iVar2 + uVar1 * 4)) {
if (*(float *)(iVar2 + uVar1 * 4) <= *(float *)(param_2 + (uVar1 ^ 1) * 4)) {
return iVar2;
}
goto LAB_0040e3c5;
}
}
else if (*(float *)(iVar2 + uVar1 * 4) < *(float *)(param_2 + uVar1 * 4)) break;
local_8 = local_8 + 1;
puVar3 = puVar3 + 1;
if (3 < local_8) {
return iVar2;
}
} while( true );
if (*(float *)(param_2 + (uVar1 ^ 1) * 4) <= *(float *)(iVar2 + uVar1 * 4)) {
return iVar2;
}
LAB_0040e3c5:
param_1 = *(int *)(iVar2 + 0x1c + uVar1 * 4);
if (param_1 == 0) {
return iVar2;
}
goto LAB_0040e37b;
}
/* @0040e3ec file=? name=FUN_0040e3ec */
undefined4 __cdecl FUN_0040e3ec(int param_1,int param_2,undefined4 param_3)
{
uint uVar1;
int iVar2;
uint *puVar3;
int local_8;
LAB_0040e3f7:
do {
puVar3 = &DAT_004e1204;
local_8 = 0;
do {
uVar1 = *puVar3;
if ((uVar1 & 1) == 0) {
if (*(float *)(param_2 + ((int)uVar1 >> 1) * 4) < *(float *)(param_1 + uVar1 * 4))
goto LAB_0040e42a;
}
else if (*(float *)(param_1 + uVar1 * 4) < *(float *)(param_2 + ((int)uVar1 >> 1) * 4)) {
LAB_0040e42a:
param_1 = *(int *)(param_1 + 0x1c + uVar1 * 4);
if (param_1 == 0) {
return param_3;
}
goto LAB_0040e3f7;
}
local_8 = local_8 + 1;
puVar3 = puVar3 + 1;
} while (local_8 < 6);
if (*(int *)(param_1 + 0x34) == 0) {
iVar2 = *(int *)(param_1 + 0x18);
if (iVar2 == 0) {
param_3 = 0;
}
else {
iVar2 = (**(code **)(*(int *)(iVar2 + 0x18) + 8))(iVar2,param_2);
if (iVar2 != 0) {
param_3 = *(undefined4 *)(param_1 + 0x18);
}
}
return param_3;
}
iVar2 = *(int *)(param_1 + 0x18);
if (iVar2 == 0) {
param_3 = 0;
}
else {
iVar2 = (**(code **)(*(int *)(iVar2 + 0x18) + 8))(iVar2,param_2);
if (iVar2 != 0) {
param_3 = *(undefined4 *)(param_1 + 0x18);
}
}
param_1 = *(int *)(param_1 + 0x34);
} while( true );
}
/* @0040e4ac file=? name=FUN_0040e4ac */
void __cdecl FUN_0040e4ac(int param_1,undefined4 param_2,undefined4 *param_3,int param_4)
{
uint uVar1;
int iVar2;
int iVar3;
uint uVar4;
float local_2c [6];
uint *local_14;
float local_10;
uint local_c;
int local_8;
FUN_0040d28c(local_2c,param_3);
local_8 = 0;
local_14 = &DAT_004e1204;
do {
uVar1 = *local_14;
uVar4 = uVar1 ^ 1;
if ((uVar1 & 1) == 0) {
if (local_2c[uVar1] < *(float *)(param_1 + uVar1 * 4)) {
local_c = (uint)(*(float *)(param_1 + uVar1 * 4) <= local_2c[uVar4]);
goto LAB_0040e527;
}
}
else if (*(float *)(param_1 + uVar1 * 4) < local_2c[uVar1]) {
local_c = (uint)(local_2c[uVar4] <= *(float *)(param_1 + uVar1 * 4));
LAB_0040e527:
if (local_c != 0) {
local_10 = local_2c[uVar4];
local_2c[uVar4] = *(float *)(param_1 + uVar1 * 4);
}
iVar2 = *(int *)(param_1 + 0x1c + uVar1 * 4);
if (iVar2 != 0) {
FUN_0040e4ac(iVar2,param_2,local_2c,param_4);
}
if (local_c == 0) {
return;
}
if (*(int *)(param_4 + 0xc) == 0) {
return;
}
local_2c[uVar4] = local_10;
local_2c[uVar1] = *(float *)(param_1 + uVar1 * 4);
}
local_8 = local_8 + 1;
local_14 = local_14 + 1;
if (5 < local_8) {
iVar3 = 0;
iVar2 = *(int *)(param_1 + 0x18);
if ((iVar2 != 0) &&
(iVar2 = (**(code **)(*(int *)(iVar2 + 0x18) + 4))(iVar2,local_2c), iVar2 != 0)) {
iVar3 = *(int *)(param_1 + 0x18);
}
if (*(int *)(param_1 + 0x34) != 0) {
FUN_0040e4ac(*(int *)(param_1 + 0x34),param_2,local_2c,param_4);
}
if ((iVar3 != 0) && (*(int *)(param_4 + 0xc) != 0)) {
FUN_0040de78(param_4,iVar3,local_2c);
}
return;
}
} while( true );
}
/* @0040e5f0 file=? name=FUN_0040e5f0 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
int __cdecl FUN_0040e5f0(int param_1,int param_2,float *param_3)
{
uint uVar1;
int iVar2;
int iVar3;
float10 fVar4;
uint *local_10;
float local_c;
int local_8;
LAB_0040e601:
local_8 = 0;
local_10 = &DAT_004e1204;
do {
uVar1 = *local_10;
if ((uVar1 & 1) == 0) {
if (*(float *)(param_2 + ((int)uVar1 >> 1) * 4) < *(float *)(param_1 + uVar1 * 4)) break;
}
else if (*(float *)(param_1 + uVar1 * 4) < *(float *)(param_2 + ((int)uVar1 >> 1) * 4)) break;
local_8 = local_8 + 1;
local_10 = local_10 + 1;
if (3 < local_8) {
if (((*(float *)(param_1 + 0xc) < *(float *)(param_2 + 4)) && (*(int *)(param_1 + 0x28) != 0))
&& (iVar2 = FUN_0040e5f0(*(int *)(param_1 + 0x28),param_2,param_3), iVar2 != 0)) {
return iVar2;
}
if (*(float *)(param_2 + 4) < *(float *)(param_1 + 8)) goto LAB_0040e725;
if (*(int *)(param_1 + 0x18) == 0) {
LAB_0040e6dc:
iVar2 = 0;
*param_3 = -1.0;
}
else {
iVar2 = *(int *)(param_1 + 0x18);
fVar4 = (float10)(**(code **)(*(int *)(*(int *)(param_1 + 0x18) + 0x18) + 0xc))
(*(int *)(param_1 + 0x18),param_2);
*param_3 = (float)fVar4;
if ((*param_3 == _DAT_0040e750) ||
(*(float *)(param_2 + 4) - *param_3 < *(float *)(param_1 + 8))) goto LAB_0040e6dc;
}
if (((*(int *)(param_1 + 0x34) != 0) &&
(iVar3 = FUN_0040e5f0(*(int *)(param_1 + 0x34),param_2,&local_c), iVar3 != 0)) &&
((local_c < *param_3 || (iVar2 == 0)))) {
*param_3 = local_c;
iVar2 = iVar3;
}
if (iVar2 != 0) {
return iVar2;
}
LAB_0040e725:
if (*(int *)(param_1 + 0x24) != 0) {
iVar2 = FUN_0040e5f0(*(int *)(param_1 + 0x24),param_2,param_3);
return iVar2;
}
*param_3 = -1.0;
return 0;
}
} while( true );
param_1 = *(int *)(param_1 + 0x1c + uVar1 * 4);
if (param_1 == 0) {
*param_3 = -1.0;
return 0;
}
goto LAB_0040e601;
}
/* @0040e754 file=? name=FUN_0040e754 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
int __cdecl FUN_0040e754(int param_1,int param_2)
{
uint uVar1;
int iVar2;
int iVar3;
float10 fVar4;
uint local_60 [6];
uint local_48;
uint *local_44;
uint *local_40;
uint *local_3c;
uint *local_38;
uint *local_34;
float local_30;
int local_2c;
int local_28;
int local_24;
int local_20;
int local_1c;
float local_18;
float local_14;
float local_10;
float local_c;
float local_8;
local_8 = 0.0;
local_c = 0.0;
local_1c = 0;
local_20 = 6;
local_24 = 0;
local_28 = 0;
local_2c = 0;
local_3c = &local_48;
local_38 = local_60;
local_34 = &DAT_004e1204;
do {
uVar1 = *local_34;
iVar2 = (int)uVar1 >> 1;
if ((uVar1 & 1) == 0) {
local_10 = *(float *)(param_1 + uVar1 * 4) - *(float *)(param_2 + iVar2 * 4);
local_14 = -*(float *)(param_2 + 0xc + iVar2 * 4);
}
else {
local_10 = *(float *)(param_2 + iVar2 * 4) - *(float *)(param_1 + uVar1 * 4);
local_14 = *(float *)(param_2 + 0xc + iVar2 * 4);
}
local_30 = local_14;
fVar4 = FUN_004dcd00((double)local_14);
if ((float10)_DAT_0040ea58 < fVar4) {
local_18 = -local_10 / local_14;
if (_DAT_0040ea5c <= local_14) {
if (local_28 == 0) {
local_28 = 1;
local_c = local_18;
}
else if (local_18 < local_c) {
local_c = local_18;
}
if (_DAT_0040ea5c <= local_10) {
if (*(int *)(param_1 + 0x1c + uVar1 * 4) != 0) {
*local_3c = uVar1;
local_20 = local_20 + -1;
}
goto LAB_0040e93e;
}
if ((local_18 <= *(float *)(param_2 + 0x18)) && (*(int *)(param_1 + 0x1c + uVar1 * 4) != 0))
{
*local_3c = uVar1;
local_20 = local_20 + -1;
local_3c = local_3c + -1;
}
if ((local_24 != 0) && (local_c < local_8)) goto LAB_0040e93e;
}
else {
if (local_24 == 0) {
local_24 = 1;
local_8 = local_18;
}
else if (local_8 < local_18) {
local_8 = local_18;
}
if (_DAT_0040ea5c <= local_10) {
if (*(int *)(param_1 + 0x1c + uVar1 * 4) != 0) {
*local_38 = uVar1;
local_1c = local_1c + 1;
local_38 = local_38 + 1;
}
if ((*(float *)(param_2 + 0x18) < local_18) || ((local_28 != 0 && (local_c < local_8))))
goto LAB_0040e93e;
}
}
}
else if (_DAT_0040ea5c < local_10) {
if (*(int *)(param_1 + 0x1c + uVar1 * 4) != 0) {
*local_38 = uVar1;
local_1c = local_1c + 1;
}
goto LAB_0040e93e;
}
local_2c = local_2c + 1;
local_34 = local_34 + 1;
if (5 < local_2c) {
LAB_0040e93e:
if (local_2c == 6) {
local_60[local_20] = 6;
local_20 = local_20 + -1;
}
local_2c = 0;
local_40 = local_60;
if (0 < local_1c) {
do {
iVar2 = FUN_0040e754(*(int *)(param_1 + 0x1c + *local_40 * 4),param_2);
if (iVar2 != 0) {
return iVar2;
}
local_2c = local_2c + 1;
local_40 = local_40 + 1;
} while (local_2c < local_1c);
}
if ((local_20 < 6) && (local_60[local_20 + 1] == 6)) {
iVar2 = 0;
if (*(int *)(param_1 + 0x18) == 0) {
if (*(int *)(param_1 + 0x34) != 0) {
iVar2 = FUN_0040e754(*(int *)(param_1 + 0x34),param_2);
}
}
else {
iVar3 = (**(code **)(*(int *)(*(int *)(param_1 + 0x18) + 0x18) + 0x10))
(*(int *)(param_1 + 0x18),param_2,local_8);
if (iVar3 != 0) {
iVar2 = *(int *)(param_1 + 0x18);
}
if ((*(int *)(param_1 + 0x34) != 0) &&
(iVar3 = FUN_0040e754(*(int *)(param_1 + 0x34),param_2), iVar3 != 0)) {
iVar2 = iVar3;
}
}
if (iVar2 != 0) {
return iVar2;
}
local_20 = local_20 + 1;
}
local_2c = local_20 + 1;
local_44 = local_60 + local_2c;
while( true ) {
if (6 < local_2c) {
return 0;
}
iVar2 = FUN_0040e754(*(int *)(param_1 + 0x1c + *local_44 * 4),param_2);
if (iVar2 != 0) break;
local_2c = local_2c + 1;
local_44 = local_44 + 1;
}
return iVar2;
}
} while( true );
}
/* @0040ea6c file=? name=FUN_0040ea6c */
void __cdecl FUN_0040ea6c(int *param_1,int param_2,undefined4 *param_3)
{
undefined4 *puVar1;
if (*param_1 == 0) {
puVar1 = FUN_00402f74(0x4e11dc);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_0040df68(puVar1,param_2,param_3);
}
*param_1 = (int)puVar1;
}
else {
FUN_0040e000(*param_1,param_2,param_3);
}
return;
}
/* @0040eabc file=? name=FUN_0040eabc */
void __cdecl FUN_0040eabc(undefined4 *param_1)
{
if ((undefined4 *)*param_1 != (undefined4 *)0x0) {
FUN_0040dfa4((undefined4 *)*param_1,3);
}
*param_1 = 0;
return;
}
/* @0040eadc file=? name=FUN_0040eadc */
void __cdecl FUN_0040eadc(int *param_1,float *param_2)
{
int iVar1;
float local_28 [6];
float local_10 [3];
FUN_0040cdf4(param_2,param_2[6],local_10);
FUN_0040d210(local_28,param_2,local_10);
iVar1 = FUN_0040e2ac(*param_1,(int)local_28,0);
FUN_0040e754(iVar1,(int)param_2);
return;
}
/* @0040eb2c file=? name=FUN_0040eb2c */
undefined4 FUN_0040eb2c(void)
{
return 1;
}
/* @0040eb64 file=? name=FUN_0040eb64 */
undefined4 FUN_0040eb64(void)
{
return 1;
}
/* @0040eb70 file=? name=FUN_0040eb70 */
void __cdecl FUN_0040eb70(undefined4 *param_1)
{
*param_1 = 0;
param_1[1] = 0;
param_1[2] = 0;
param_1[3] = 0;
param_1[4] = 1;
return;
}
/* @0040eb94 file=? name=FUN_0040eb94 */
void __cdecl FUN_0040eb94(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
if ((int *)param_1[2] != (int *)0x0) {
FUN_004022d0((int *)param_1[2]);
}
if ((int *)param_1[3] != (int *)0x0) {
FUN_004022d0((int *)param_1[3]);
}
FUN_0040ec7c(param_1);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0040ebd4 file=? name=FUN_0040ebd4 */
void __cdecl FUN_0040ebd4(undefined4 *param_1,undefined4 param_2,undefined4 *param_3)
{
undefined4 *puVar1;
param_1[1] = param_1[1] + 1;
puVar1 = FUN_00402f74(0x4e1234);
if (puVar1 != (undefined4 *)0x0) {
*puVar1 = param_2;
puVar1[1] = 0;
FUN_0040d28c(puVar1 + 2,param_3);
}
puVar1[1] = *param_1;
*param_1 = puVar1;
return;
}
/* @0040ec28 file=? name=FUN_0040ec28 */
void __cdecl FUN_0040ec28(int *param_1,int param_2)
{
int *piVar1;
int *piVar2;
piVar1 = (int *)0x0;
for (piVar2 = (int *)*param_1; (piVar2 != (int *)0x0 && (param_2 != *piVar2));
piVar2 = (int *)piVar2[1]) {
piVar1 = piVar2;
}
if (piVar2 != (int *)0x0) {
if (piVar1 == (int *)0x0) {
*param_1 = piVar2[1];
}
else {
piVar1[1] = piVar2[1];
}
param_1[1] = param_1[1] + -1;
if (piVar2 != (int *)0x0) {
FUN_00402f98(0x4e1234,piVar2);
}
}
return;
}
/* @0040ec7c file=? name=FUN_0040ec7c */
void __cdecl FUN_0040ec7c(undefined4 *param_1)
{
undefined4 *puVar1;
undefined4 *puVar2;
puVar1 = (undefined4 *)*param_1;
while (puVar2 = puVar1, puVar2 != (undefined4 *)0x0) {
puVar1 = (undefined4 *)puVar2[1];
if (puVar2 != (undefined4 *)0x0) {
FUN_00402f98(0x4e1234,puVar2);
}
}
*param_1 = 0;
param_1[1] = 0;
return;
}
/* @0040ecbc file=? name=FUN_0040ecbc */
float * __cdecl FUN_0040ecbc(undefined4 *param_1,float *param_2)
{
undefined4 *puVar1;
float *pfVar2;
int iVar3;
puVar1 = (undefined4 *)*param_1;
while( true ) {
if (puVar1 == (undefined4 *)0x0) {
return (float *)0x0;
}
pfVar2 = (float *)*puVar1;
iVar3 = FUN_0040dbd4(pfVar2,param_2);
if (iVar3 != 0) break;
puVar1 = (undefined4 *)puVar1[1];
}
return pfVar2;
}
/* @0040ecf0 file=? name=FUN_0040ecf0 */
void __cdecl FUN_0040ecf0(undefined4 *param_1,float *param_2,int param_3)
{
undefined4 *puVar1;
float *pfVar2;
int iVar3;
float local_1c [6];
puVar1 = (undefined4 *)*param_1;
do {
if (puVar1 == (undefined4 *)0x0) {
return;
}
pfVar2 = (float *)*puVar1;
iVar3 = FUN_0040d474(pfVar2,param_2);
if (iVar3 != 0) {
FUN_0040d2bc(local_1c,param_2,pfVar2);
iVar3 = (**(code **)((int)pfVar2[6] + 4))(pfVar2,local_1c);
if ((iVar3 != 0) && (FUN_0040de78(param_3,pfVar2,local_1c), *(int *)(param_3 + 0xc) == 0)) {
return;
}
}
puVar1 = (undefined4 *)puVar1[1];
} while( true );
}
/* @0040ed60 file=? name=FUN_0040ed60 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
float * __cdecl FUN_0040ed60(undefined4 *param_1,float *param_2,float *param_3)
{
float fVar1;
undefined4 *puVar2;
float *pfVar3;
float *pfVar4;
float10 fVar5;
pfVar4 = (float *)0x0;
*param_3 = -1.0;
for (puVar2 = (undefined4 *)*param_1; puVar2 != (undefined4 *)0x0;
puVar2 = (undefined4 *)puVar2[1]) {
pfVar3 = (float *)*puVar2;
fVar5 = FUN_0040dc00(pfVar3,param_2);
fVar1 = (float)fVar5;
if ((fVar1 != _DAT_0040edc8) && ((pfVar4 == (float *)0x0 || (fVar1 < *param_3)))) {
*param_3 = fVar1;
pfVar4 = pfVar3;
}
}
return pfVar4;
}
/* @0040ee00 file=? name=FUN_0040ee00 */
undefined4 FUN_0040ee00(void)
{
return 1;
}
/* @0040ee38 file=? name=FUN_0040ee38 */
undefined4 * __cdecl
FUN_0040ee38(undefined4 *param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4,
undefined4 param_5,undefined4 param_6)
{
FUN_0040ded0(param_1,param_2,param_5);
param_1[6] = &PTR_FUN_004e15b0;
param_1[8] = param_3;
param_1[9] = param_4;
param_1[10] = param_6;
return param_1;
}
/* @0040ee70 file=? name=FUN_0040ee70 */
undefined4 * __cdecl
FUN_0040ee70(undefined4 *param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4,
undefined4 param_5)
{
FUN_0040ded0(param_1,param_2,param_4);
param_1[6] = &PTR_FUN_004e15b0;
param_1[8] = 0;
param_1[9] = param_3;
param_1[10] = param_5;
return param_1;
}
/* @0040eea8 file=? name=FUN_0040eea8 */
void __cdecl FUN_0040eea8(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
param_1[6] = (int)&PTR_FUN_004e15b0;
FUN_0040def8(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0040eed8 file=? name=FUN_0040eed8 */
void __cdecl FUN_0040eed8(int param_1,undefined4 param_2,undefined4 param_3)
{
undefined4 *puVar1;
switch(*(undefined4 *)(param_1 + 0x34)) {
case 0:
puVar1 = (undefined4 *)FUN_00402298(0x2c);
if (puVar1 != (undefined4 *)0x0) {
FUN_0040ee70(puVar1,(undefined4 *)(param_1 + 4),*(undefined4 *)(param_1 + 0x38),param_2,
param_3);
}
break;
case 1:
puVar1 = (undefined4 *)FUN_00402298(0x2c);
if (puVar1 != (undefined4 *)0x0) {
FUN_00410500(puVar1,(undefined4 *)(param_1 + 4),*(undefined4 *)(param_1 + 0x38),param_2,
param_3);
}
break;
case 2:
puVar1 = (undefined4 *)FUN_00402298(0x2c);
if (puVar1 != (undefined4 *)0x0) {
FUN_004108b4(puVar1,(undefined4 *)(param_1 + 4),*(undefined4 *)(param_1 + 0x38),param_2,
param_3);
}
break;
case 3:
puVar1 = (undefined4 *)FUN_00402298(0x2c);
if (puVar1 != (undefined4 *)0x0) {
FUN_0040ff5c(puVar1,(undefined4 *)(param_1 + 4),*(undefined4 *)(param_1 + 0x38),param_2,
param_3);
}
break;
case 4:
puVar1 = (undefined4 *)FUN_00402298(0x2c);
if (puVar1 != (undefined4 *)0x0) {
FUN_00411024(puVar1,(undefined4 *)(param_1 + 4),*(undefined4 *)(param_1 + 0x38),param_2,
param_3);
}
break;
case 5:
puVar1 = (undefined4 *)FUN_00402298(0x2c);
if (puVar1 != (undefined4 *)0x0) {
FUN_0041140c(puVar1,(undefined4 *)(param_1 + 4),*(undefined4 *)(param_1 + 0x38),param_2,
param_3);
}
break;
case 6:
puVar1 = (undefined4 *)FUN_00402298(0x2c);
if (puVar1 != (undefined4 *)0x0) {
FUN_00411218(puVar1,(undefined4 *)(param_1 + 4),*(undefined4 *)(param_1 + 0x38),param_2,
param_3);
}
break;
case 7:
puVar1 = (undefined4 *)FUN_00402298(0x2c);
if (puVar1 != (undefined4 *)0x0) {
FUN_00411600(puVar1,(undefined4 *)(param_1 + 4),*(undefined4 *)(param_1 + 0x38),param_2,
param_3);
}
break;
case 8:
puVar1 = (undefined4 *)FUN_00402298(0x2c);
if (puVar1 != (undefined4 *)0x0) {
FUN_004117f0(puVar1,(undefined4 *)(param_1 + 4),*(undefined4 *)(param_1 + 0x38),param_2,
param_3);
}
break;
case 9:
puVar1 = (undefined4 *)FUN_00402298(0x2c);
if (puVar1 != (undefined4 *)0x0) {
FUN_00411bf8(puVar1,(undefined4 *)(param_1 + 4),*(undefined4 *)(param_1 + 0x38),param_2,
param_3);
}
break;
case 10:
puVar1 = (undefined4 *)FUN_00402298(0x2c);
if (puVar1 != (undefined4 *)0x0) {
FUN_004119f4(puVar1,(undefined4 *)(param_1 + 4),*(undefined4 *)(param_1 + 0x38),param_2,
param_3);
}
break;
case 0xb:
puVar1 = (undefined4 *)FUN_00402298(0x2c);
if (puVar1 != (undefined4 *)0x0) {
FUN_00411df4(puVar1,(undefined4 *)(param_1 + 4),*(undefined4 *)(param_1 + 0x38),param_2,
param_3);
}
break;
case 0xc:
puVar1 = (undefined4 *)FUN_00402298(0x2c);
if (puVar1 != (undefined4 *)0x0) {
FUN_00411ff8(puVar1,(undefined4 *)(param_1 + 4),*(undefined4 *)(param_1 + 0x38),param_2,
param_3);
}
break;
case 0xd:
puVar1 = (undefined4 *)FUN_00402298(0x2c);
if (puVar1 != (undefined4 *)0x0) {
FUN_00412614(puVar1,(undefined4 *)(param_1 + 4),*(undefined4 *)(param_1 + 0x38),param_2,
param_3);
}
break;
case 0xe:
puVar1 = (undefined4 *)FUN_00402298(0x2c);
if (puVar1 != (undefined4 *)0x0) {
FUN_00412200(puVar1,(undefined4 *)(param_1 + 4),*(undefined4 *)(param_1 + 0x38),param_2,
param_3);
}
break;
case 0xf:
puVar1 = (undefined4 *)FUN_00402298(0x2c);
if (puVar1 != (undefined4 *)0x0) {
FUN_0041240c(puVar1,(undefined4 *)(param_1 + 4),*(undefined4 *)(param_1 + 0x38),param_2,
param_3);
}
break;
case 0x10:
puVar1 = (undefined4 *)FUN_00402298(0x2c);
if (puVar1 != (undefined4 *)0x0) {
FUN_00412820(puVar1,(undefined4 *)(param_1 + 4),*(undefined4 *)(param_1 + 0x38),param_2,
param_3);
}
break;
case 0x11:
puVar1 = (undefined4 *)FUN_00402298(0x2c);
if (puVar1 != (undefined4 *)0x0) {
FUN_00412c78(puVar1,(undefined4 *)(param_1 + 4),*(undefined4 *)(param_1 + 0x38),param_2,
param_3);
}
break;
case 0x12:
puVar1 = (undefined4 *)FUN_00402298(0x2c);
if (puVar1 != (undefined4 *)0x0) {
FUN_004146dc(puVar1,(undefined4 *)(param_1 + 4),*(undefined4 *)(param_1 + 0x38),param_2,
param_3);
}
}
return;
}
/* @0040f2f8 file=? name=FUN_0040f2f8 */
undefined4 FUN_0040f2f8(void)
{
return 1;
}
/* @0040f304 file=munga/boxsolid.cpp name=FUN_0040f304 */
undefined4 FUN_0040f304(void)
{
FUN_0040385c(s_Unsupported_mover_collision_type_004e13c4,s_d__tesla_bt_munga_BOXSOLID_CPP_004e13e7
,0x162);
return 0;
}
/* @0040f324 file=? name=FUN_0040f324 */
bool __cdecl FUN_0040f324(int param_1)
{
return *(int *)(param_1 + 0x20) == 0;
}
/* @0040f33c file=? name=FUN_0040f33c */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
void __cdecl FUN_0040f33c(undefined4 *param_1,undefined4 *param_2,float *param_3)
{
int iVar1;
undefined4 *puVar2;
undefined4 *puVar3;
float10 fVar4;
float local_68 [2];
float local_60;
float local_5c [12];
float local_2c;
undefined4 local_28;
float local_24;
float local_20;
float local_1c;
float local_18;
float local_14;
float local_10;
float local_c;
float local_8;
param_1[0xe] = param_2[0xe];
local_8 = param_3[6];
fVar4 = FUN_004dcd00((double)(local_8 - _DAT_0040f6a8));
if ((float10)_DAT_0040f6ac < fVar4) {
fVar4 = FUN_004dcd00((double)param_3[4]);
local_c = (float)fVar4;
fVar4 = FUN_004dcd00((double)(local_c - _DAT_0040f6a8));
if ((float10)_DAT_0040f6ac < fVar4) {
local_10 = param_3[4];
local_14 = param_3[6];
fVar4 = FUN_004dcd00((double)(local_14 - local_10));
if ((float10)_DAT_0040f6ac < fVar4) {
local_18 = -param_3[4];
local_1c = param_3[6];
fVar4 = FUN_004dcd00((double)(local_1c - local_18));
if ((float10)_DAT_0040f6ac < fVar4) {
iVar1 = param_2[0xd];
if (((iVar1 == 0x11) || (iVar1 == 2)) || (iVar1 == 1)) {
param_1[0xd] = iVar1;
local_2c = ((float)param_2[1] + (float)param_2[2]) * _DAT_0040f6b0;
local_28 = param_2[3];
local_24 = ((float)param_2[5] + (float)param_2[6]) * _DAT_0040f6b0;
local_20 = local_2c - (float)param_2[1];
FUN_0040aadc(local_5c);
FUN_0040adec(local_5c,param_3 + 3);
FUN_00408744(local_68,&local_2c,local_5c);
param_1[1] = local_68[0] - local_20;
param_1[2] = local_68[0] + local_20;
param_1[3] = param_2[3];
param_1[4] = param_2[4];
param_1[5] = local_60 - local_20;
param_1[6] = local_60 + local_20;
puVar3 = param_1 + 7;
puVar2 = param_1;
for (iVar1 = 6; puVar2 = puVar2 + 1, iVar1 != 0; iVar1 = iVar1 + -1) {
*puVar3 = *puVar2;
puVar3 = puVar3 + 1;
}
}
}
else {
param_1[0xd] = *(undefined4 *)(&DAT_004e131c + param_2[0xd] * 4);
param_1[1] = -(float)param_2[6];
param_1[2] = -(float)param_2[5];
param_1[3] = param_2[3];
param_1[4] = param_2[4];
param_1[5] = param_2[1];
param_1[6] = param_2[2];
param_1[7] = -(float)param_2[0xc];
param_1[8] = -(float)param_2[0xb];
param_1[9] = param_2[9];
param_1[10] = param_2[10];
param_1[0xb] = param_2[7];
param_1[0xc] = param_2[8];
}
}
else {
param_1[0xd] = *(undefined4 *)(&DAT_004e1274 + param_2[0xd] * 4);
param_1[1] = param_2[5];
param_1[2] = param_2[6];
param_1[3] = param_2[3];
param_1[4] = param_2[4];
param_1[5] = -(float)param_2[2];
param_1[6] = -(float)param_2[1];
param_1[7] = param_2[0xb];
param_1[8] = param_2[0xc];
param_1[9] = param_2[9];
param_1[10] = param_2[10];
param_1[0xb] = -(float)param_2[8];
param_1[0xc] = -(float)param_2[7];
}
}
else {
param_1[0xd] = *(undefined4 *)(&DAT_004e12c8 + param_2[0xd] * 4);
param_1[1] = -(float)param_2[2];
param_1[2] = -(float)param_2[1];
param_1[3] = param_2[3];
param_1[4] = param_2[4];
param_1[5] = -(float)param_2[6];
param_1[6] = -(float)param_2[5];
param_1[7] = -(float)param_2[8];
param_1[8] = -(float)param_2[7];
param_1[9] = param_2[9];
param_1[10] = param_2[10];
param_1[0xb] = -(float)param_2[0xc];
param_1[0xc] = -(float)param_2[0xb];
}
}
else {
param_1[0xd] = param_2[0xd];
iVar1 = 6;
puVar2 = param_2;
puVar3 = param_1;
while( true ) {
puVar3 = puVar3 + 1;
puVar2 = puVar2 + 1;
if (iVar1 == 0) break;
iVar1 = iVar1 + -1;
*puVar3 = *puVar2;
}
puVar2 = param_2 + 7;
puVar3 = param_1 + 7;
for (iVar1 = 6; iVar1 != 0; iVar1 = iVar1 + -1) {
*puVar3 = *puVar2;
puVar2 = puVar2 + 1;
puVar3 = puVar3 + 1;
}
}
param_1[1] = *param_3 + (float)param_1[1];
param_1[2] = *param_3 + (float)param_1[2];
param_1[3] = param_3[1] + (float)param_1[3];
param_1[4] = param_3[1] + (float)param_1[4];
param_1[5] = param_3[2] + (float)param_1[5];
param_1[6] = param_3[2] + (float)param_1[6];
param_1[7] = *param_3 + (float)param_1[7];
param_1[8] = *param_3 + (float)param_1[8];
param_1[9] = param_3[1] + (float)param_1[9];
param_1[10] = param_3[1] + (float)param_1[10];
param_1[0xb] = param_3[2] + (float)param_1[0xb];
param_1[0xc] = param_3[2] + (float)param_1[0xc];
return;
}
/* @0040f7d8 file=? name=FUN_0040f7d8 */
undefined4 __cdecl FUN_0040f7d8(char *param_1,int param_2,int param_3,int param_4)
{
int *piVar1;
int *piVar2;
int iVar3;
int *extraout_EAX;
int *piVar4;
undefined4 *puVar5;
int iVar6;
int *piVar7;
undefined4 unaff_EDI;
int *piVar8;
piVar1 = (int *)FUN_004064fc(*(char **)(param_3 + 8),param_1);
piVar2 = (int *)FUN_00402298(0x20);
if (piVar2 == (int *)0x0) {
piVar2 = (int *)0x0;
}
else {
piVar2 = FUN_00403e84(piVar2,(char *)piVar1,1);
}
FUN_004022d0(piVar1);
if ((*(byte *)(piVar2 + 7) & 2) == 0) {
iVar3 = piVar2[3];
}
else {
iVar3 = piVar2[4];
}
if (iVar3 == 0) {
FUN_004dbb24(&DAT_00524e20,s____Collision_file___004e1406,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,param_1,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s___empty_or_not_found_____004e141a,(char *)0x0);
FUN_004d9c38(&DAT_00524e20);
}
else {
piVar1 = (int *)FUN_00402298(0x14);
if (piVar1 != (int *)0x0) {
FUN_0040eb70(piVar1);
}
iVar3 = FUN_004101a0(piVar1,(int)piVar2);
FUN_004de998((int *)0x0,0x3c,iVar3,1,FUN_004104f7);
piVar4 = extraout_EAX + 0xe;
for (puVar5 = (undefined4 *)*piVar1; puVar5 != (undefined4 *)0x0;
puVar5 = (undefined4 *)puVar5[1]) {
piVar7 = (int *)*puVar5;
*piVar4 = piVar7[9];
if ((piVar7[8] == 0) && (param_4 != 0)) {
piVar4[-1] = 3;
}
else {
piVar4[-1] = piVar7[8];
}
piVar8 = piVar4 + -0xd;
for (iVar6 = 6; iVar6 != 0; iVar6 = iVar6 + -1) {
*piVar8 = *piVar7;
piVar7 = piVar7 + 1;
piVar8 = piVar8 + 1;
}
piVar7 = puVar5 + 2;
piVar8 = piVar4 + -7;
for (iVar6 = 6; iVar6 != 0; iVar6 = iVar6 + -1) {
*piVar8 = *piVar7;
piVar7 = piVar7 + 1;
piVar8 = piVar8 + 1;
}
piVar4[-0xe] = 0x3c;
piVar4 = piVar4 + 0xf;
}
for (piVar4 = (int *)*piVar1; piVar4 != (int *)0x0; piVar4 = (int *)piVar4[1]) {
iVar6 = *piVar4;
if (iVar6 != 0) {
(*(code *)**(undefined4 **)(iVar6 + 0x18))(iVar6,3);
}
}
puVar5 = (undefined4 *)FUN_00406ff8(param_2,param_1,9,-1);
if (puVar5 == (undefined4 *)0x0) {
puVar5 = (undefined4 *)FUN_00406db4(param_2,param_1,9,1,0,extraout_EAX,iVar3 * 0x3c,-1);
unaff_EDI = *puVar5;
}
else {
unaff_EDI = *puVar5;
}
FUN_004022d0(extraout_EAX);
if (piVar1 != (int *)0x0) {
FUN_0040eb94(piVar1,0);
FUN_004022d0(piVar1);
}
}
FUN_00403ecc(piVar2,3);
return unaff_EDI;
}
/* @0040f9d8 file=? name=FUN_0040f9d8 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
undefined4 __cdecl FUN_0040f9d8(float *param_1,float *param_2,float *param_3)
{
float fVar1;
int iVar2;
float *pfVar3;
uint uVar4;
float *pfVar5;
int iVar6;
float10 fVar7;
float *local_10;
iVar6 = 0;
local_10 = param_3;
do {
fVar7 = FUN_004dcd00((double)*local_10);
if ((float10)_DAT_0040fba8 < fVar7) {
iVar2 = *(int *)((int)*param_1 + 0x20);
if (((1 << ((byte)iVar6 & 0x1f) & *(uint *)(&DAT_004e1370 + iVar2 * 4)) == 0) ||
(iVar2 == *(int *)((int)*param_2 + 0x20))) {
uVar4 = (uint)(*local_10 < _DAT_0040fbac) + iVar6 * 2;
if ((uVar4 & 1) == 0) {
if (iVar2 == 0) {
if (param_1[uVar4 + 1] < param_2[uVar4 + 1]) goto LAB_0040fade;
}
else if (param_1[(uVar4 ^ 1) + 1] <= param_2[uVar4 + 1]) goto LAB_0040fade;
}
else if (iVar2 == 0) {
if (param_2[uVar4 + 1] < param_1[uVar4 + 1]) {
LAB_0040fade:
uVar4 = 0;
pfVar3 = param_1;
pfVar5 = param_2;
do {
pfVar5 = pfVar5 + 1;
pfVar3 = pfVar3 + 1;
if (iVar6 != (int)uVar4 >> 1) {
if ((uVar4 & 1) == 0) {
if (*pfVar5 < *pfVar3) break;
}
else if (*pfVar3 < *pfVar5) break;
}
uVar4 = uVar4 + 1;
} while ((int)uVar4 < 6);
if (uVar4 == 6) {
iVar2 = iVar6 * 2;
if (*local_10 <= _DAT_0040fbac) {
if (param_2[iVar6 * 2 + 1] <= param_1[iVar6 * 2 + 1]) {
fVar1 = param_2[iVar6 * 2 + 1];
}
else {
fVar1 = param_1[iVar6 * 2 + 1];
}
param_1[iVar6 * 2 + 1] = fVar1;
}
else {
if (param_1[iVar2 + 2] <= param_2[iVar2 + 2]) {
fVar1 = param_2[iVar2 + 2];
}
else {
fVar1 = param_1[iVar2 + 2];
}
param_1[iVar2 + 2] = fVar1;
}
return 1;
}
}
}
else if (param_2[uVar4 + 1] <= param_1[(uVar4 ^ 1) + 1]) goto LAB_0040fade;
}
}
iVar6 = iVar6 + 1;
local_10 = local_10 + 1;
if (2 < iVar6) {
return 0;
}
} while( true );
}
/* @0040fbb0 file=? name=FUN_0040fbb0 */
void __cdecl FUN_0040fbb0(int *param_1,float *param_2)
{
bool bVar1;
float *pfVar2;
int *piVar3;
int *piVar4;
int *piVar5;
int iVar6;
int *piVar7;
float *pfVar8;
float *pfVar9;
float *pfVar10;
int *piVar11;
int iVar12;
undefined4 *puVar13;
int iVar14;
undefined4 *puVar15;
int local_28;
float local_20;
int local_14;
int local_c;
int local_8;
bVar1 = true;
local_14 = param_1[2] - param_1[3];
param_1[4] = 0;
while ((bVar1 && (1 < local_14))) {
bVar1 = false;
local_8 = 0;
if (0 < local_14) {
do {
local_c = local_8 + 1;
if (local_c < local_14) {
do {
pfVar9 = (float *)(*param_1 + local_8 * 0x1c);
pfVar2 = (float *)(*param_1 + local_c * 0x1c);
if (*(int *)((int)*pfVar9 + 0x20) == *(int *)((int)*pfVar2 + 0x20)) {
iVar14 = 0;
iVar6 = -1;
iVar12 = 0;
pfVar10 = pfVar9 + 1;
pfVar8 = pfVar2 + 1;
do {
if ((*pfVar10 == *pfVar8) && (pfVar10[1] == pfVar8[1])) {
iVar14 = iVar14 + 1;
}
else if (iVar6 < 0) {
iVar6 = iVar12;
}
iVar12 = iVar12 + 2;
pfVar8 = pfVar8 + 2;
pfVar10 = pfVar10 + 2;
} while (iVar12 < 6);
if ((iVar14 == 2) &&
((pfVar9[iVar6 + 1] == pfVar2[iVar6 + 2] ||
(pfVar9[iVar6 + 2] == pfVar2[iVar6 + 1])))) {
if (pfVar9[iVar6 + 2] == pfVar2[iVar6 + 1]) {
iVar6 = iVar6 + 1;
}
local_20 = 0.0;
if ((*pfVar9 != *pfVar2) &&
(iVar12 = FUN_0040f9d8(pfVar2,pfVar9,param_2), iVar12 != 0)) {
local_20 = *pfVar9;
*pfVar9 = *pfVar2;
}
pfVar9[iVar6 + 1] = pfVar2[iVar6 + 1];
iVar6 = local_c;
while (iVar6 = iVar6 + 1, iVar6 < local_14) {
puVar13 = (undefined4 *)(*param_1 + iVar6 * 0x1c);
puVar15 = (undefined4 *)(*param_1 + -0x1c + iVar6 * 0x1c);
for (iVar12 = 7; iVar12 != 0; iVar12 = iVar12 + -1) {
*puVar15 = *puVar13;
puVar13 = puVar13 + 1;
puVar15 = puVar15 + 1;
}
}
param_1[4] = param_1[4] + 1;
local_14 = local_14 + -1;
*(float *)(*param_1 + local_14 * 0x1c) = local_20;
local_c = local_c + -1;
bVar1 = true;
}
}
local_c = local_c + 1;
} while (local_c < local_14);
}
local_8 = local_8 + 1;
} while (local_8 < local_14);
}
}
if (1 < local_14) {
piVar3 = (int *)FUN_004022b0(local_14 << 2);
piVar4 = (int *)FUN_004022b0(local_14 << 2);
local_8 = 0;
piVar5 = piVar3;
if (0 < local_14) {
do {
*piVar5 = 0;
local_8 = local_8 + 1;
piVar5 = piVar5 + 1;
} while (local_8 < local_14);
}
local_8 = 0;
if (0 < local_14) {
do {
local_c = 0;
piVar5 = piVar3;
if (0 < local_14) {
do {
if (((local_8 != local_c) && (*piVar5 == 0)) &&
(iVar6 = FUN_0040f9d8((float *)(*param_1 + local_8 * 0x1c),
(float *)(*param_1 + local_c * 0x1c),param_2), iVar6 != 0)) {
*piVar5 = 1;
}
local_c = local_c + 1;
piVar5 = piVar5 + 1;
} while (local_c < local_14);
}
local_8 = local_8 + 1;
} while (local_8 < local_14);
}
local_c = 0;
local_28 = 0;
local_8 = 0;
piVar7 = piVar3;
piVar11 = piVar4;
piVar5 = piVar4;
if (0 < local_14) {
do {
if (*piVar7 == 0) {
if (local_c < local_8) {
puVar13 = (undefined4 *)(*param_1 + local_8 * 0x1c);
puVar15 = (undefined4 *)(*param_1 + local_c * 0x1c);
for (iVar6 = 7; iVar6 != 0; iVar6 = iVar6 + -1) {
*puVar15 = *puVar13;
puVar13 = puVar13 + 1;
puVar15 = puVar15 + 1;
}
}
local_c = local_c + 1;
}
else {
local_28 = local_28 + 1;
piVar11 = piVar11 + 1;
*piVar11 = *(int *)(*param_1 + local_8 * 0x1c);
}
local_8 = local_8 + 1;
piVar7 = piVar7 + 1;
} while (local_8 < local_14);
}
for (; local_c < local_14; local_c = local_c + 1) {
*(int *)(*param_1 + local_c * 0x1c) = *piVar5;
piVar5 = piVar5 + 1;
}
param_1[4] = param_1[4] + local_28;
FUN_004022e8(piVar4);
FUN_004022e8(piVar3);
}
return;
}
/* @0040ff5c file=? name=FUN_0040ff5c */
undefined4 * __cdecl
FUN_0040ff5c(undefined4 *param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4,
undefined4 param_5)
{
FUN_0040ee38(param_1,param_2,3,param_3,param_4,param_5);
param_1[6] = &PTR_FUN_004e1590;
return param_1;
}
/* @0040ff8c file=? name=FUN_0040ff8c */
void __cdecl FUN_0040ff8c(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
param_1[6] = (int)&PTR_FUN_004e1590;
FUN_0040eea8(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0040ffbc file=? name=FUN_0040ffbc */
bool __cdecl FUN_0040ffbc(int param_1)
{
return *(int *)(param_1 + 0x20) == 3;
}
/* @0040ffd4 file=? name=FUN_0040ffd4 */
void __cdecl FUN_0040ffd4(float *param_1,float *param_2)
{
FUN_0040d474(param_1,param_2);
return;
}
/* @0040ffec file=? name=FUN_0040ffec */
void __cdecl FUN_0040ffec(float *param_1,float *param_2)
{
FUN_0040d3cc(param_1,param_2);
return;
}
/* @00410004 file=? name=FUN_00410004 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
float10 __cdecl FUN_00410004(float *param_1,float *param_2)
{
float fVar1;
fVar1 = _DAT_00410078;
if ((((*param_1 <= *param_2) && (*param_2 <= param_1[1])) && (param_1[2] <= param_2[1])) &&
(((param_1[4] <= param_2[2] && (param_2[2] <= param_1[5])) &&
(fVar1 = param_2[1] - param_1[3], fVar1 <= _DAT_00410074)))) {
return (float10)_DAT_00410074;
}
return (float10)fVar1;
}
/* @004101a0 file=? name=FUN_004101a0 */
int __cdecl FUN_004101a0(undefined4 *param_1,int param_2)
{
bool bVar1;
undefined3 extraout_var;
undefined3 extraout_var_00;
int *piVar2;
undefined3 extraout_var_01;
int iVar3;
int iVar4;
int iVar5;
int iVar6;
int iVar7;
int iVar8;
undefined4 uVar9;
uint uVar10;
undefined1 local_7c [4];
float local_78;
float local_74;
float local_70;
float local_6c;
float local_68;
float local_64;
float local_60;
float local_5c;
float local_58;
float local_54;
float local_50;
float local_4c;
int local_48;
int local_44;
char local_40 [52];
int local_c;
int local_8;
local_8 = 0;
bVar1 = FUN_004040d8(param_2,s_COLLISION_004e1433,s_count_004e143d,&local_8);
if (CONCAT31(extraout_var,bVar1) == 0) {
FUN_004dbb24(&DAT_00524e20,s_No__COLLISION__entry______004e1443,(char *)0x0);
FUN_004d9c38(&DAT_00524e20);
FUN_004036a0(1);
}
uVar10 = 0;
if (0 < local_8) {
do {
FUN_004d7f10(local_40,s_volume__d_004e145d);
bVar1 = FUN_004040d8(param_2,local_40,s_TypeNumber_004e1467,&local_c);
if (CONCAT31(extraout_var_00,bVar1) == 0) {
FUN_004dbb24(&DAT_00524e20,s_No_solid_at_collision_number___004e1472,(char *)0x0);
piVar2 = FUN_004db78c(&DAT_00524e20,uVar10);
FUN_004d9c38(piVar2);
FUN_004036a0(1);
}
local_48 = local_c;
bVar1 = FUN_004040d8(param_2,local_40,s_MaterialNumber_004e1492,&local_c);
if (CONCAT31(extraout_var_01,bVar1) == 0) {
FUN_004dbb24(&DAT_00524e20,s_No_material_at_collision_number___004e14a1,(char *)0x0);
piVar2 = FUN_004db78c(&DAT_00524e20,uVar10);
FUN_004d9c38(piVar2);
FUN_004036a0(1);
}
local_44 = local_c;
iVar3 = FUN_00404118(param_2,local_40,s_extminX_004e14c4,&local_78);
iVar4 = FUN_00404118(param_2,local_40,s_extmaxX_004e14cc,&local_74);
iVar5 = FUN_00404118(param_2,local_40,s_extminY_004e14d4,&local_70);
iVar6 = FUN_00404118(param_2,local_40,s_extmaxY_004e14dc,&local_6c);
iVar7 = FUN_00404118(param_2,local_40,s_extminZ_004e14e4,&local_68);
iVar8 = FUN_00404118(param_2,local_40,s_extmaxZ_004e14ec,&local_64);
if (((((iVar3 == 0 || iVar4 == 0) || iVar5 == 0) || iVar6 == 0) || iVar7 == 0) || iVar8 == 0)
{
FUN_004dbb24(&DAT_00524e20,s_Collision_number___004e14f4,(char *)0x0);
piVar2 = FUN_004db78c(&DAT_00524e20,uVar10);
FUN_004dbb24(piVar2,s_does_not_have_valid_extents_004e1508,(char *)0x0);
FUN_004036a0(1);
}
iVar3 = FUN_00404118(param_2,local_40,s_slcminX_004e1526,&local_60);
iVar4 = FUN_00404118(param_2,local_40,s_slcmaxX_004e152e,&local_5c);
iVar5 = FUN_00404118(param_2,local_40,s_slcminY_004e1536,&local_58);
iVar6 = FUN_00404118(param_2,local_40,s_slcmaxY_004e153e,&local_54);
iVar7 = FUN_00404118(param_2,local_40,s_slcminZ_004e1546,&local_50);
iVar8 = FUN_00404118(param_2,local_40,s_slcmaxZ_004e154e,&local_4c);
if (((((iVar3 == 0 || iVar4 == 0) || iVar5 == 0) || iVar6 == 0) || iVar7 == 0) || iVar8 == 0)
{
FUN_004dbb24(&DAT_00524e20,s_Collision_number___004e1556,(char *)0x0);
piVar2 = FUN_004db78c(&DAT_00524e20,uVar10);
FUN_004dbb24(piVar2,s_does_not_have_valid_slice_extent_004e156a,(char *)0x0);
FUN_004036a0(1);
}
uVar9 = FUN_0040eed8((int)local_7c,0,0);
FUN_0040ebd4(param_1,uVar9,&local_60);
uVar10 = uVar10 + 1;
} while ((int)uVar10 < local_8);
}
return local_8;
}
/* @004104f7 file=? name=FUN_004104f7 */
undefined4 __cdecl FUN_004104f7(undefined4 param_1)
{
return param_1;
}
/* @00410500 file=? name=FUN_00410500 */
undefined4 * __cdecl
FUN_00410500(undefined4 *param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4,
undefined4 param_5)
{
FUN_0040ee38(param_1,param_2,1,param_3,param_4,param_5);
param_1[6] = &PTR_FUN_004e15d0;
return param_1;
}
/* @00410530 file=? name=FUN_00410530 */
void __cdecl FUN_00410530(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
param_1[6] = (int)&PTR_FUN_004e15d0;
FUN_0040eea8(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00410560 file=? name=FUN_00410560 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
bool __cdecl FUN_00410560(float *param_1,float *param_2)
{
float local_20;
float local_1c;
float local_18;
float local_14;
float local_10;
float local_c;
float local_8;
local_20 = (*param_1 + param_1[1]) * _DAT_00410600;
local_1c = (param_1[2] + param_1[3]) * _DAT_00410600;
local_18 = (param_1[4] + param_1[5]) * _DAT_00410600;
local_8 = param_1[1] - local_20;
local_14 = local_20;
local_10 = local_1c;
local_c = local_18;
FUN_0040d350(param_2,&local_20);
FUN_00408644(&local_20,&local_20,&local_14);
return local_18 * local_18 + local_1c * local_1c + local_20 * local_20 <= local_8 * local_8;
}
/* @004108b4 file=? name=FUN_004108b4 */
undefined4 * __cdecl
FUN_004108b4(undefined4 *param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4,
undefined4 param_5)
{
FUN_0040ee38(param_1,param_2,2,param_3,param_4,param_5);
param_1[6] = &PTR_FUN_004e15f0;
return param_1;
}
/* @004108e4 file=? name=FUN_004108e4 */
void __cdecl FUN_004108e4(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
param_1[6] = (int)&PTR_FUN_004e15f0;
FUN_0040eea8(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00410914 file=? name=FUN_00410914 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
bool __cdecl FUN_00410914(float *param_1,float *param_2)
{
bool bVar1;
float10 fVar2;
float local_28;
float local_24;
float local_20;
float local_1c;
float local_18;
float local_14;
float local_c;
float local_8;
local_28 = (*param_1 + param_1[1]) * _DAT_004109e4;
local_24 = param_1[2];
local_20 = (param_1[4] + param_1[5]) * _DAT_004109e4;
local_8 = param_1[1] - local_28;
local_1c = local_28;
local_18 = local_24;
local_14 = local_20;
FUN_0040d350(param_2,&local_28);
local_18 = param_1[3];
FUN_00408644(&local_28,&local_1c,&local_28);
local_c = local_20 * local_20 + local_28 * local_28;
if (local_c <= local_8 * local_8) {
fVar2 = FUN_004dd138((double)local_c);
bVar1 = (float)fVar2 * (param_1[3] - param_1[2]) <= local_24 * local_8;
}
else {
bVar1 = false;
}
return bVar1;
}
/* @00410b5c file=? name=FUN_00410b5c */
float10 __cdecl FUN_00410b5c(float *param_1,float *param_2,float param_3)
{
return (float10)param_1[2] * (float10)param_2[2] +
((float10)*param_1 * (float10)*param_2 -
(float10)param_3 * (float10)param_1[1] * (float10)param_2[1]);
}
/* @00410b80 file=? name=FUN_00410b80 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
undefined4 __cdecl FUN_00410b80(float *param_1,float *param_2,float param_3,float param_4)
{
float *pfVar1;
float fVar2;
float10 fVar3;
float local_58;
float local_54;
float local_4c;
float local_48;
float local_44;
float local_38;
float local_34;
float local_2c;
float local_28;
float local_24;
float local_20;
float local_1c;
float local_18;
float local_14;
float local_10;
float local_c;
float local_8;
local_4c = (*param_1 + param_1[1]) * _DAT_00410e9c;
local_48 = param_1[3];
local_44 = (param_1[4] + param_1[5]) * _DAT_00410e9c;
local_8 = param_1[1] - local_4c;
local_c = param_1[3] - param_1[2];
local_10 = (local_8 * local_8) / (local_c * local_c);
FUN_00408644(&local_58,param_2,&local_4c);
pfVar1 = param_2 + 3;
fVar3 = FUN_00410b5c(pfVar1,pfVar1,local_10);
local_18 = (float)fVar3;
local_14 = local_18;
fVar3 = FUN_004dcd00((double)local_18);
if ((float10)_DAT_00410ea0 < fVar3) {
fVar3 = FUN_00410b5c(&local_58,pfVar1,local_10);
local_1c = (float)(fVar3 * (float10)_DAT_00410ea4);
fVar3 = FUN_00410b5c(&local_58,&local_58,local_10);
local_20 = (float)fVar3;
local_24 = -local_1c / (_DAT_00410ea4 * local_14);
local_2c = local_1c * local_1c - _DAT_00410ea8 * local_14 * local_20;
if (local_2c < _DAT_00410eac) {
return 0;
}
local_28 = local_2c;
fVar3 = FUN_004dcd00((double)local_2c);
if (fVar3 <= (float10)_DAT_00410ea0) {
if (_DAT_00410eac < param_2[4] * local_24 + local_54) {
return 0;
}
if (param_2[4] <= _DAT_00410eac) {
if (param_3 <= local_24) {
param_3 = local_24;
}
}
else if (local_24 < param_4) {
param_4 = local_24;
}
if (((param_3 <= param_4) && (param_3 <= param_2[6])) && (_DAT_00410eac <= param_4)) {
fVar2 = _DAT_00410eac;
if (_DAT_00410eac < param_3) {
fVar2 = param_3;
}
param_2[6] = fVar2;
return 1;
}
return 0;
}
fVar3 = FUN_004dd138((double)local_28);
local_38 = (float)(fVar3 / ((float10)_DAT_00410ea4 * (float10)local_14));
if (local_38 <= _DAT_00410eac) {
local_34 = local_24 + local_38;
local_38 = local_24 - local_38;
}
else {
local_34 = local_24 - local_38;
local_38 = local_24 + local_38;
}
fVar2 = param_2[4] * local_38 + local_54;
if (param_2[4] * local_34 + local_54 <= _DAT_00410eac) {
if (fVar2 <= _DAT_00410eac) {
if (param_3 < local_34) {
param_3 = local_34;
}
if (local_38 < param_4) {
param_4 = local_38;
}
}
else if (local_34 < param_4) {
param_4 = local_34;
}
}
else {
if (_DAT_00410eac < fVar2) {
return 0;
}
if (param_3 < local_38) {
param_3 = local_38;
}
}
if (((param_4 < param_3) || (param_2[6] < param_3)) || (param_4 < _DAT_00410eac)) {
return 0;
}
fVar2 = _DAT_00410eac;
if (_DAT_00410eac < param_3) {
fVar2 = param_3;
}
param_2[6] = fVar2;
}
return 1;
}
/* @00410ec8 file=? name=FUN_00410ec8 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
undefined4 __cdecl FUN_00410ec8(float *param_1,float *param_2,float param_3,float param_4)
{
float fVar1;
float fVar2;
undefined4 uVar3;
fVar1 = (param_2[2] * param_1[2] + param_2[1] * param_1[1] + *param_2 * *param_1) - param_2[3];
fVar2 = param_1[5] * param_2[2] + param_1[4] * param_2[1] + param_1[3] * *param_2;
if ((fVar2 <= _DAT_00411020) || (fVar1 <= _DAT_00411020)) {
if (fVar2 == _DAT_00411020) {
if (_DAT_00411020 < fVar1) {
uVar3 = 0;
}
else {
fVar1 = _DAT_00411020;
if (_DAT_00411020 < param_3) {
fVar1 = param_3;
}
param_1[6] = fVar1;
uVar3 = 1;
}
}
else if (_DAT_00411020 <= fVar2) {
if (fVar1 / -fVar2 < param_3) {
uVar3 = 0;
}
else {
fVar1 = _DAT_00411020;
if (_DAT_00411020 < param_3) {
fVar1 = param_3;
}
param_1[6] = fVar1;
uVar3 = 1;
}
}
else {
fVar1 = fVar1 / -fVar2;
if ((fVar1 <= param_3) || ((fVar1 <= param_4 && (param_3 = fVar1, fVar1 <= param_1[6])))) {
fVar1 = _DAT_00411020;
if (_DAT_00411020 < param_3) {
fVar1 = param_3;
}
param_1[6] = fVar1;
uVar3 = 1;
}
else {
uVar3 = 0;
}
}
}
else {
uVar3 = 0;
}
return uVar3;
}
/* @00411024 file=? name=FUN_00411024 */
undefined4 * __cdecl
FUN_00411024(undefined4 *param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4,
undefined4 param_5)
{
FUN_0040ee38(param_1,param_2,4,param_3,param_4,param_5);
param_1[6] = &PTR_FUN_004e1670;
return param_1;
}
/* @00411054 file=? name=FUN_00411054 */
void __cdecl FUN_00411054(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
param_1[6] = (int)&PTR_FUN_004e1670;
FUN_0040eea8(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00411084 file=? name=FUN_00411084 */
bool __cdecl FUN_00411084(int param_1,int param_2)
{
return (*(float *)(param_2 + 0x10) - *(float *)(param_1 + 0x14)) *
(*(float *)(param_1 + 0xc) - *(float *)(param_1 + 8)) <=
(*(float *)(param_2 + 8) - *(float *)(param_1 + 8)) *
(*(float *)(param_1 + 0x10) - *(float *)(param_1 + 0x14));
}
/* @004110d0 file=? name=FUN_004110d0 */
bool __cdecl FUN_004110d0(int param_1,int param_2)
{
return (*(float *)(param_2 + 8) - *(float *)(param_1 + 0x14)) *
(*(float *)(param_1 + 0xc) - *(float *)(param_1 + 8)) <=
(*(float *)(param_2 + 4) - *(float *)(param_1 + 8)) *
(*(float *)(param_1 + 0x10) - *(float *)(param_1 + 0x14));
}
/* @0041111c file=? name=FUN_0041111c */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
float10 __cdecl FUN_0041111c(int param_1,int param_2)
{
float fVar1;
float fVar2;
fVar1 = (*(float *)(param_2 + 4) - *(float *)(param_1 + 8)) -
((*(float *)(param_1 + 0xc) - *(float *)(param_1 + 8)) /
(*(float *)(param_1 + 0x10) - *(float *)(param_1 + 0x14))) *
(*(float *)(param_2 + 8) - *(float *)(param_1 + 0x14));
fVar2 = _DAT_00411178;
if (_DAT_00411178 < fVar1) {
fVar2 = fVar1;
}
return (float10)fVar2;
}
/* @00411200 file=? name=FUN_00411200 */
bool __cdecl FUN_00411200(int param_1)
{
return *(int *)(param_1 + 0x20) == 4;
}
/* @00411218 file=? name=FUN_00411218 */
undefined4 * __cdecl
FUN_00411218(undefined4 *param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4,
undefined4 param_5)
{
FUN_0040ee38(param_1,param_2,6,param_3,param_4,param_5);
param_1[6] = &PTR_FUN_004e1650;
return param_1;
}
/* @00411248 file=? name=FUN_00411248 */
void __cdecl FUN_00411248(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
param_1[6] = (int)&PTR_FUN_004e1650;
FUN_0040eea8(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00411278 file=? name=FUN_00411278 */
bool __cdecl FUN_00411278(int param_1,int param_2)
{
return (*(float *)(param_2 + 8) - *(float *)(param_1 + 8)) *
(*(float *)(param_1 + 0x14) - *(float *)(param_1 + 0x10)) <=
(*(float *)(param_2 + 0x14) - *(float *)(param_1 + 0x10)) *
(*(float *)(param_1 + 0xc) - *(float *)(param_1 + 8));
}
/* @004112c4 file=? name=FUN_004112c4 */
bool __cdecl FUN_004112c4(int param_1,int param_2)
{
return (*(float *)(param_2 + 4) - *(float *)(param_1 + 8)) *
(*(float *)(param_1 + 0x14) - *(float *)(param_1 + 0x10)) <=
(*(float *)(param_2 + 8) - *(float *)(param_1 + 0x10)) *
(*(float *)(param_1 + 0xc) - *(float *)(param_1 + 8));
}
/* @00411310 file=? name=FUN_00411310 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
float10 __cdecl FUN_00411310(int param_1,int param_2)
{
float fVar1;
float fVar2;
fVar1 = (*(float *)(param_2 + 4) - *(float *)(param_1 + 8)) -
((*(float *)(param_1 + 0xc) - *(float *)(param_1 + 8)) /
(*(float *)(param_1 + 0x14) - *(float *)(param_1 + 0x10))) *
(*(float *)(param_2 + 8) - *(float *)(param_1 + 0x10));
fVar2 = _DAT_0041136c;
if (_DAT_0041136c < fVar1) {
fVar2 = fVar1;
}
return (float10)fVar2;
}
/* @004113f4 file=? name=FUN_004113f4 */
bool __cdecl FUN_004113f4(int param_1)
{
return *(int *)(param_1 + 0x20) == 6;
}
/* @0041140c file=? name=FUN_0041140c */
undefined4 * __cdecl
FUN_0041140c(undefined4 *param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4,
undefined4 param_5)
{
FUN_0040ee38(param_1,param_2,5,param_3,param_4,param_5);
param_1[6] = &PTR_FUN_004e1630;
return param_1;
}
/* @0041143c file=? name=FUN_0041143c */
void __cdecl FUN_0041143c(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
param_1[6] = (int)&PTR_FUN_004e1630;
FUN_0040eea8(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041146c file=? name=FUN_0041146c */
bool __cdecl FUN_0041146c(float *param_1,float *param_2)
{
return (*param_2 - param_1[1]) * (param_1[3] - param_1[2]) <=
(param_2[2] - param_1[2]) * (*param_1 - param_1[1]);
}
/* @004114b8 file=? name=FUN_004114b8 */
bool __cdecl FUN_004114b8(float *param_1,float *param_2)
{
return (*param_2 - param_1[1]) * (param_1[3] - param_1[2]) <=
(param_2[1] - param_1[2]) * (*param_1 - param_1[1]);
}
/* @00411504 file=? name=FUN_00411504 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
float10 __cdecl FUN_00411504(float *param_1,float *param_2)
{
float fVar1;
float fVar2;
fVar1 = (param_2[1] - param_1[2]) -
((param_1[3] - param_1[2]) / (*param_1 - param_1[1])) * (*param_2 - param_1[1]);
fVar2 = _DAT_00411560;
if (_DAT_00411560 < fVar1) {
fVar2 = fVar1;
}
return (float10)fVar2;
}
/* @004115e8 file=? name=FUN_004115e8 */
bool __cdecl FUN_004115e8(int param_1)
{
return *(int *)(param_1 + 0x20) == 5;
}
/* @00411600 file=? name=FUN_00411600 */
undefined4 * __cdecl
FUN_00411600(undefined4 *param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4,
undefined4 param_5)
{
FUN_0040ee38(param_1,param_2,7,param_3,param_4,param_5);
param_1[6] = &PTR_FUN_004e1610;
return param_1;
}
/* @00411630 file=? name=FUN_00411630 */
void __cdecl FUN_00411630(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
param_1[6] = (int)&PTR_FUN_004e1610;
FUN_0040eea8(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00411660 file=? name=FUN_00411660 */
bool __cdecl FUN_00411660(float *param_1,int param_2)
{
return (*(float *)(param_2 + 8) - param_1[2]) * (param_1[1] - *param_1) <=
(*(float *)(param_2 + 4) - *param_1) * (param_1[3] - param_1[2]);
}
/* @004116ac file=? name=FUN_004116ac */
bool __cdecl FUN_004116ac(float *param_1,float *param_2)
{
return (param_2[1] - param_1[2]) * (param_1[1] - *param_1) <=
(*param_2 - *param_1) * (param_1[3] - param_1[2]);
}
/* @004116f4 file=? name=FUN_004116f4 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
float10 __cdecl FUN_004116f4(float *param_1,float *param_2)
{
float fVar1;
float fVar2;
fVar1 = (param_2[1] - param_1[2]) -
((param_1[3] - param_1[2]) / (param_1[1] - *param_1)) * (*param_2 - *param_1);
fVar2 = _DAT_00411750;
if (_DAT_00411750 < fVar1) {
fVar2 = fVar1;
}
return (float10)fVar2;
}
/* @004117d8 file=? name=FUN_004117d8 */
bool __cdecl FUN_004117d8(int param_1)
{
return *(int *)(param_1 + 0x20) == 7;
}
/* @004117f0 file=? name=FUN_004117f0 */
undefined4 * __cdecl
FUN_004117f0(undefined4 *param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4,
undefined4 param_5)
{
FUN_0040ee38(param_1,param_2,8,param_3,param_4,param_5);
param_1[6] = &PTR_FUN_004e16f0;
return param_1;
}
/* @00411820 file=? name=FUN_00411820 */
void __cdecl FUN_00411820(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
param_1[6] = (int)&PTR_FUN_004e16f0;
FUN_0040eea8(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00411850 file=? name=FUN_00411850 */
bool __cdecl FUN_00411850(int param_1,int param_2)
{
return (*(float *)(param_2 + 0x10) - *(float *)(param_1 + 0x10)) *
(*(float *)(param_1 + 0xc) - *(float *)(param_1 + 8)) <=
(*(float *)(param_2 + 0xc) - *(float *)(param_1 + 8)) *
(*(float *)(param_1 + 0x14) - *(float *)(param_1 + 0x10));
}
/* @0041189c file=? name=FUN_0041189c */
bool __cdecl FUN_0041189c(int param_1,int param_2)
{
return (*(float *)(param_2 + 8) - *(float *)(param_1 + 0x10)) *
(*(float *)(param_1 + 0xc) - *(float *)(param_1 + 8)) <=
(*(float *)(param_2 + 4) - *(float *)(param_1 + 8)) *
(*(float *)(param_1 + 0x14) - *(float *)(param_1 + 0x10));
}
/* @004118e8 file=? name=FUN_004118e8 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
float10 __cdecl FUN_004118e8(int param_1,int param_2)
{
float10 fVar1;
if (*(float *)(param_2 + 4) <= *(float *)(param_1 + 0xc)) {
if ((*(float *)(param_2 + 4) - *(float *)(param_1 + 8)) *
(*(float *)(param_1 + 0x14) - *(float *)(param_1 + 0x10)) <
(*(float *)(param_2 + 8) - *(float *)(param_1 + 0x10)) *
(*(float *)(param_1 + 0xc) - *(float *)(param_1 + 8))) {
fVar1 = (float10)_DAT_00411954;
}
else {
fVar1 = (float10)_DAT_00411950;
}
}
else {
fVar1 = (float10)*(float *)(param_2 + 4) - (float10)*(float *)(param_1 + 0xc);
}
return fVar1;
}
/* @004119dc file=? name=FUN_004119dc */
bool __cdecl FUN_004119dc(int param_1)
{
return *(int *)(param_1 + 0x20) == 8;
}
/* @004119f4 file=? name=FUN_004119f4 */
undefined4 * __cdecl
FUN_004119f4(undefined4 *param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4,
undefined4 param_5)
{
FUN_0040ee38(param_1,param_2,10,param_3,param_4,param_5);
param_1[6] = &PTR_FUN_004e16d0;
return param_1;
}
/* @00411a24 file=? name=FUN_00411a24 */
void __cdecl FUN_00411a24(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
param_1[6] = (int)&PTR_FUN_004e16d0;
FUN_0040eea8(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00411a54 file=? name=FUN_00411a54 */
bool __cdecl FUN_00411a54(int param_1,int param_2)
{
return (*(float *)(param_2 + 0xc) - *(float *)(param_1 + 8)) *
(*(float *)(param_1 + 0x10) - *(float *)(param_1 + 0x14)) <=
(*(float *)(param_2 + 0x14) - *(float *)(param_1 + 0x14)) *
(*(float *)(param_1 + 0xc) - *(float *)(param_1 + 8));
}
/* @00411aa0 file=? name=FUN_00411aa0 */
bool __cdecl FUN_00411aa0(int param_1,int param_2)
{
return (*(float *)(param_2 + 4) - *(float *)(param_1 + 8)) *
(*(float *)(param_1 + 0x10) - *(float *)(param_1 + 0x14)) <=
(*(float *)(param_2 + 8) - *(float *)(param_1 + 0x14)) *
(*(float *)(param_1 + 0xc) - *(float *)(param_1 + 8));
}
/* @00411aec file=? name=FUN_00411aec */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
float10 __cdecl FUN_00411aec(int param_1,int param_2)
{
float10 fVar1;
if (*(float *)(param_2 + 4) <= *(float *)(param_1 + 0xc)) {
if ((*(float *)(param_2 + 8) - *(float *)(param_1 + 0x14)) *
(*(float *)(param_1 + 0xc) - *(float *)(param_1 + 8)) <
(*(float *)(param_2 + 4) - *(float *)(param_1 + 8)) *
(*(float *)(param_1 + 0x10) - *(float *)(param_1 + 0x14))) {
fVar1 = (float10)_DAT_00411b58;
}
else {
fVar1 = (float10)_DAT_00411b54;
}
}
else {
fVar1 = (float10)*(float *)(param_2 + 4) - (float10)*(float *)(param_1 + 0xc);
}
return fVar1;
}
/* @00411be0 file=? name=FUN_00411be0 */
bool __cdecl FUN_00411be0(int param_1)
{
return *(int *)(param_1 + 0x20) == 10;
}
/* @00411bf8 file=? name=FUN_00411bf8 */
undefined4 * __cdecl
FUN_00411bf8(undefined4 *param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4,
undefined4 param_5)
{
FUN_0040ee38(param_1,param_2,9,param_3,param_4,param_5);
param_1[6] = &PTR_FUN_004e16b0;
return param_1;
}
/* @00411c28 file=? name=FUN_00411c28 */
void __cdecl FUN_00411c28(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
param_1[6] = (int)&PTR_FUN_004e16b0;
FUN_0040eea8(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00411c58 file=? name=FUN_00411c58 */
bool __cdecl FUN_00411c58(float *param_1,float *param_2)
{
return (*param_2 - *param_1) * (param_1[3] - param_1[2]) <=
(param_2[3] - param_1[2]) * (param_1[1] - *param_1);
}
/* @00411ca0 file=? name=FUN_00411ca0 */
bool __cdecl FUN_00411ca0(float *param_1,float *param_2)
{
return (*param_2 - *param_1) * (param_1[3] - param_1[2]) <=
(param_2[1] - param_1[2]) * (param_1[1] - *param_1);
}
/* @00411ce8 file=? name=FUN_00411ce8 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
float10 __cdecl FUN_00411ce8(float *param_1,float *param_2)
{
float10 fVar1;
if (param_2[1] <= param_1[3]) {
if ((param_2[1] - param_1[2]) * (param_1[1] - *param_1) <
(*param_2 - *param_1) * (param_1[3] - param_1[2])) {
fVar1 = (float10)_DAT_00411d54;
}
else {
fVar1 = (float10)_DAT_00411d50;
}
}
else {
fVar1 = (float10)param_2[1] - (float10)param_1[3];
}
return fVar1;
}
/* @00411ddc file=? name=FUN_00411ddc */
bool __cdecl FUN_00411ddc(int param_1)
{
return *(int *)(param_1 + 0x20) == 9;
}
/* @00411df4 file=? name=FUN_00411df4 */
undefined4 * __cdecl
FUN_00411df4(undefined4 *param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4,
undefined4 param_5)
{
FUN_0040ee38(param_1,param_2,0xb,param_3,param_4,param_5);
param_1[6] = &PTR_FUN_004e1690;
return param_1;
}
/* @00411e24 file=? name=FUN_00411e24 */
void __cdecl FUN_00411e24(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
param_1[6] = (int)&PTR_FUN_004e1690;
FUN_0040eea8(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00411e54 file=? name=FUN_00411e54 */
bool __cdecl FUN_00411e54(float *param_1,int param_2)
{
return (*(float *)(param_2 + 0xc) - param_1[2]) * (*param_1 - param_1[1]) <=
(*(float *)(param_2 + 4) - param_1[1]) * (param_1[3] - param_1[2]);
}
/* @00411ea0 file=? name=FUN_00411ea0 */
bool __cdecl FUN_00411ea0(float *param_1,float *param_2)
{
return (param_2[1] - param_1[2]) * (*param_1 - param_1[1]) <=
(*param_2 - param_1[1]) * (param_1[3] - param_1[2]);
}
/* @00411eec file=? name=FUN_00411eec */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
float10 __cdecl FUN_00411eec(float *param_1,float *param_2)
{
float10 fVar1;
if (param_2[1] <= param_1[3]) {
if ((*param_2 - param_1[1]) * (param_1[3] - param_1[2]) <
(param_2[1] - param_1[2]) * (*param_1 - param_1[1])) {
fVar1 = (float10)_DAT_00411f58;
}
else {
fVar1 = (float10)_DAT_00411f54;
}
}
else {
fVar1 = (float10)param_2[1] - (float10)param_1[3];
}
return fVar1;
}
/* @00411fe0 file=? name=FUN_00411fe0 */
bool __cdecl FUN_00411fe0(int param_1)
{
return *(int *)(param_1 + 0x20) == 0xb;
}
/* @00411ff8 file=? name=FUN_00411ff8 */
undefined4 * __cdecl
FUN_00411ff8(undefined4 *param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4,
undefined4 param_5)
{
FUN_0040ee38(param_1,param_2,0xc,param_3,param_4,param_5);
param_1[6] = &PTR_FUN_004e1770;
return param_1;
}
/* @00412028 file=? name=FUN_00412028 */
void __cdecl FUN_00412028(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
param_1[6] = (int)&PTR_FUN_004e1770;
FUN_0040eea8(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00412058 file=? name=FUN_00412058 */
bool __cdecl FUN_00412058(float *param_1,int param_2)
{
return (*(float *)(param_2 + 0x10) - param_1[4]) * (param_1[1] - *param_1) <=
(*(float *)(param_2 + 4) - *param_1) * (param_1[5] - param_1[4]);
}
/* @004120a4 file=? name=FUN_004120a4 */
bool __cdecl FUN_004120a4(float *param_1,float *param_2)
{
return (param_2[2] - param_1[4]) * (param_1[1] - *param_1) <=
(*param_2 - *param_1) * (param_1[5] - param_1[4]);
}
/* @004120ec file=? name=FUN_004120ec */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
float10 __cdecl FUN_004120ec(float *param_1,float *param_2)
{
float10 fVar1;
if ((*param_2 - *param_1) * (param_1[5] - param_1[4]) <
(param_2[2] - param_1[4]) * (param_1[1] - *param_1)) {
fVar1 = (float10)_DAT_00412160;
}
else if (param_2[1] - param_1[3] <= _DAT_0041215c) {
fVar1 = (float10)_DAT_0041215c;
}
else {
fVar1 = (float10)(param_2[1] - param_1[3]);
}
return fVar1;
}
/* @004121e8 file=? name=FUN_004121e8 */
bool __cdecl FUN_004121e8(int param_1)
{
return *(int *)(param_1 + 0x20) == 0xc;
}
/* @00412200 file=? name=FUN_00412200 */
undefined4 * __cdecl
FUN_00412200(undefined4 *param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4,
undefined4 param_5)
{
FUN_0040ee38(param_1,param_2,0xe,param_3,param_4,param_5);
param_1[6] = &PTR_FUN_004e1750;
return param_1;
}
/* @00412230 file=? name=FUN_00412230 */
void __cdecl FUN_00412230(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
param_1[6] = (int)&PTR_FUN_004e1750;
FUN_0040eea8(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00412260 file=? name=FUN_00412260 */
bool __cdecl FUN_00412260(float *param_1,float *param_2)
{
return (param_2[5] - param_1[5]) * (*param_1 - param_1[1]) <=
(*param_2 - param_1[1]) * (param_1[4] - param_1[5]);
}
/* @004122ac file=? name=FUN_004122ac */
bool __cdecl FUN_004122ac(float *param_1,float *param_2)
{
return (param_2[2] - param_1[5]) * (*param_1 - param_1[1]) <=
(*param_2 - param_1[1]) * (param_1[4] - param_1[5]);
}
/* @004122f8 file=? name=FUN_004122f8 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
float10 __cdecl FUN_004122f8(float *param_1,float *param_2)
{
float10 fVar1;
if ((*param_2 - param_1[1]) * (param_1[4] - param_1[5]) <
(param_2[2] - param_1[5]) * (*param_1 - param_1[1])) {
fVar1 = (float10)_DAT_0041236c;
}
else if (param_2[1] - param_1[3] <= _DAT_00412368) {
fVar1 = (float10)_DAT_00412368;
}
else {
fVar1 = (float10)(param_2[1] - param_1[3]);
}
return fVar1;
}
/* @004123f4 file=? name=FUN_004123f4 */
bool __cdecl FUN_004123f4(int param_1)
{
return *(int *)(param_1 + 0x20) == 0xe;
}
/* @0041240c file=? name=FUN_0041240c */
undefined4 * __cdecl
FUN_0041240c(undefined4 *param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4,
undefined4 param_5)
{
FUN_0040ee38(param_1,param_2,0xf,param_3,param_4,param_5);
param_1[6] = &PTR_FUN_004e1730;
return param_1;
}
/* @0041243c file=? name=FUN_0041243c */
void __cdecl FUN_0041243c(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
param_1[6] = (int)&PTR_FUN_004e1730;
FUN_0040eea8(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041246c file=? name=FUN_0041246c */
bool __cdecl FUN_0041246c(float *param_1,int param_2)
{
return (*(float *)(param_2 + 4) - *param_1) * (param_1[4] - param_1[5]) <=
(*(float *)(param_2 + 0x14) - param_1[5]) * (param_1[1] - *param_1);
}
/* @004124b8 file=? name=FUN_004124b8 */
bool __cdecl FUN_004124b8(float *param_1,float *param_2)
{
return (*param_2 - *param_1) * (param_1[4] - param_1[5]) <=
(param_2[2] - param_1[5]) * (param_1[1] - *param_1);
}
/* @00412500 file=? name=FUN_00412500 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
float10 __cdecl FUN_00412500(float *param_1,float *param_2)
{
float10 fVar1;
if ((param_2[2] - param_1[5]) * (param_1[1] - *param_1) <
(*param_2 - *param_1) * (param_1[4] - param_1[5])) {
fVar1 = (float10)_DAT_00412574;
}
else if (param_2[1] - param_1[3] <= _DAT_00412570) {
fVar1 = (float10)_DAT_00412570;
}
else {
fVar1 = (float10)(param_2[1] - param_1[3]);
}
return fVar1;
}
/* @004125fc file=? name=FUN_004125fc */
bool __cdecl FUN_004125fc(int param_1)
{
return *(int *)(param_1 + 0x20) == 0xf;
}
/* @00412614 file=? name=FUN_00412614 */
undefined4 * __cdecl
FUN_00412614(undefined4 *param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4,
undefined4 param_5)
{
FUN_0040ee38(param_1,param_2,0xd,param_3,param_4,param_5);
param_1[6] = &PTR_FUN_004e1710;
return param_1;
}
/* @00412644 file=? name=FUN_00412644 */
void __cdecl FUN_00412644(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
param_1[6] = (int)&PTR_FUN_004e1710;
FUN_0040eea8(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00412674 file=? name=FUN_00412674 */
bool __cdecl FUN_00412674(float *param_1,float *param_2)
{
return (*param_2 - param_1[1]) * (param_1[5] - param_1[4]) <=
(param_2[4] - param_1[4]) * (*param_1 - param_1[1]);
}
/* @004126c0 file=? name=FUN_004126c0 */
bool __cdecl FUN_004126c0(float *param_1,float *param_2)
{
return (*param_2 - param_1[1]) * (param_1[5] - param_1[4]) <=
(param_2[2] - param_1[4]) * (*param_1 - param_1[1]);
}
/* @0041270c file=? name=FUN_0041270c */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
float10 __cdecl FUN_0041270c(float *param_1,float *param_2)
{
float10 fVar1;
if ((param_2[2] - param_1[4]) * (*param_1 - param_1[1]) <
(*param_2 - param_1[1]) * (param_1[5] - param_1[4])) {
fVar1 = (float10)_DAT_00412780;
}
else if (param_2[1] - param_1[3] <= _DAT_0041277c) {
fVar1 = (float10)_DAT_0041277c;
}
else {
fVar1 = (float10)(param_2[1] - param_1[3]);
}
return fVar1;
}
/* @00412808 file=? name=FUN_00412808 */
bool __cdecl FUN_00412808(int param_1)
{
return *(int *)(param_1 + 0x20) == 0xd;
}
/* @00412820 file=? name=FUN_00412820 */
undefined4 * __cdecl
FUN_00412820(undefined4 *param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4,
undefined4 param_5)
{
FUN_0040ee38(param_1,param_2,0x10,param_3,param_4,param_5);
param_1[6] = &PTR_FUN_004e17d0;
return param_1;
}
/* @00412850 file=? name=FUN_00412850 */
void __cdecl FUN_00412850(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
param_1[6] = (int)&PTR_FUN_004e17d0;
FUN_0040eea8(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00412880 file=? name=FUN_00412880 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
bool __cdecl FUN_00412880(int param_1,int param_2)
{
float fVar1;
float fVar2;
float fVar3;
float fVar4;
float fVar5;
fVar4 = (*(float *)(param_1 + 8) + *(float *)(param_1 + 0xc)) * _DAT_00412940;
fVar5 = (*(float *)(param_1 + 0x10) + *(float *)(param_1 + 0x14)) * _DAT_00412940;
fVar1 = *(float *)(param_1 + 0xc) - fVar4;
if (*(float *)(param_2 + 8) <= fVar4) {
fVar2 = fVar4;
if (*(float *)(param_2 + 0xc) < fVar4) {
fVar2 = *(float *)(param_2 + 0xc);
}
}
else {
fVar2 = *(float *)(param_2 + 8);
}
if (*(float *)(param_2 + 0x10) <= fVar5) {
fVar3 = fVar5;
if (*(float *)(param_2 + 0x14) < fVar5) {
fVar3 = *(float *)(param_2 + 0x14);
}
}
else {
fVar3 = *(float *)(param_2 + 0x10);
}
return (fVar3 - fVar5) * (fVar3 - fVar5) + (fVar2 - fVar4) * (fVar2 - fVar4) <= fVar1 * fVar1;
}
/* @00412c78 file=? name=FUN_00412c78 */
undefined4 * __cdecl
FUN_00412c78(undefined4 *param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4,
undefined4 param_5)
{
FUN_0040ee38(param_1,param_2,0x11,param_3,param_4,param_5);
param_1[6] = &PTR_FUN_004e17b0;
return param_1;
}
/* @00412ca8 file=? name=FUN_00412ca8 */
void __cdecl FUN_00412ca8(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
param_1[6] = (int)&PTR_FUN_004e17b0;
FUN_0040eea8(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00412cd8 file=? name=FUN_00412cd8 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
uint __cdecl FUN_00412cd8(float *param_1,undefined4 *param_2)
{
float *pfVar1;
float fVar2;
float fVar3;
float fVar4;
uint uVar5;
pfVar1 = (float *)*param_2;
switch(pfVar1[8]) {
case 0.0:
case 1.4013e-45:
case 4.2039e-45:
case 5.60519e-45:
case 7.00649e-45:
case 8.40779e-45:
case 9.80909e-45:
case 1.12104e-44:
case 1.26117e-44:
case 1.4013e-44:
case 1.54143e-44:
case 1.68156e-44:
case 1.82169e-44:
case 1.96182e-44:
case 2.10195e-44:
case 2.24208e-44:
case 2.52234e-44:
case 2.66247e-44:
case 2.8026e-44:
uVar5 = (**(code **)((int)param_1[6] + 4))(param_1,param_2 + 1);
break;
case 2.8026e-45:
fVar3 = (param_1[1] + *param_1) * _DAT_00412e68;
fVar4 = (pfVar1[1] + *pfVar1) * _DAT_00412e68;
fVar2 = ((pfVar1[3] - param_1[2]) / (pfVar1[3] - pfVar1[2])) * (pfVar1[1] - fVar4) +
(param_1[1] - fVar3);
fVar3 = fVar3 - fVar4;
fVar4 = (param_1[5] + param_1[4]) * _DAT_00412e68 - (pfVar1[5] + pfVar1[4]) * _DAT_00412e68;
uVar5 = (uint)(fVar4 * fVar4 + fVar3 * fVar3 <= fVar2 * fVar2);
break;
case 2.38221e-44:
fVar3 = (param_1[1] + *param_1) * _DAT_00412e68;
fVar4 = (pfVar1[1] + *pfVar1) * _DAT_00412e68;
fVar2 = (pfVar1[1] - fVar4) + (param_1[1] - fVar3);
fVar3 = fVar3 - fVar4;
fVar4 = (param_1[5] + param_1[4]) * _DAT_00412e68 - (pfVar1[5] + pfVar1[4]) * _DAT_00412e68;
uVar5 = (uint)(fVar4 * fVar4 + fVar3 * fVar3 <= fVar2 * fVar2);
break;
default:
uVar5 = 0;
}
return uVar5;
}
/* @004146dc file=? name=FUN_004146dc */
undefined4 * __cdecl
FUN_004146dc(undefined4 *param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4,
undefined4 param_5)
{
FUN_0040ee38(param_1,param_2,0x12,param_3,param_4,param_5);
param_1[6] = &PTR_FUN_004e1790;
return param_1;
}
/* @0041470c file=? name=FUN_0041470c */
void __cdecl FUN_0041470c(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
param_1[6] = (int)&PTR_FUN_004e1790;
FUN_0040eea8(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041473c file=? name=FUN_0041473c */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
bool __cdecl FUN_0041473c(float *param_1,float *param_2)
{
float fVar1;
float fVar2;
float fVar3;
float fVar4;
fVar3 = (*param_1 + param_1[1]) * _DAT_004147fc;
fVar4 = (param_1[2] + param_1[3]) * _DAT_004147fc;
if (*param_2 <= fVar3) {
fVar1 = fVar3;
if (param_2[1] < fVar3) {
fVar1 = param_2[1];
}
}
else {
fVar1 = *param_2;
}
if (param_2[2] <= fVar4) {
fVar2 = fVar4;
if (param_2[3] < fVar4) {
fVar2 = param_2[3];
}
}
else {
fVar2 = param_2[2];
}
return (fVar2 - fVar4) * (fVar2 - fVar4) + (fVar1 - fVar3) * (fVar1 - fVar3) <=
(param_1[1] - fVar3) * (param_1[1] - fVar3);
}
/* @00414b60 file=? name=FUN_00414b60 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
undefined * FUN_00414b60(void)
{
if (DAT_004e17f0 == '\0') {
DAT_004e17f0 = '\x01';
}
if (DAT_00521404 == 0) {
_DAT_00521f60 = FUN_00401a1c();
_DAT_00521f60 = _DAT_00521f60 - _DAT_00521408;
}
else {
_DAT_00521f60 = DAT_00521404;
}
return &DAT_00521f60;
}
/* @00414b98 file=? name=FUN_00414b98 */
undefined4 FUN_00414b98(void)
{
return 1;
}
/* @00414ba4 file=? name=FUN_00414ba4 */
void __cdecl FUN_00414ba4(undefined4 param_1,undefined4 *param_2)
{
undefined4 uVar1;
FUN_004dd1cc(param_1);
uVar1 = FUN_004dcd94();
*param_2 = uVar1;
return;
}
/* @00414be8 file=? name=FUN_00414be8 */
void __cdecl FUN_00414be8(undefined4 *param_1,undefined4 param_2)
{
*param_1 = &PTR_FUN_004e1bdc;
param_1[1] = param_2;
return;
}
/* @00414bfc file=? name=FUN_00414bfc */
void __cdecl FUN_00414bfc(int *param_1,byte param_2)
{
if ((param_1 != (int *)0x0) && (*param_1 = (int)&PTR_FUN_004e1bdc, (param_2 & 1) != 0)) {
FUN_004022d0(param_1);
}
return;
}
/* @00414c1c file=? name=FUN_00414c1c */
undefined4 * __cdecl FUN_00414c1c(undefined4 *param_1,int *param_2)
{
undefined1 local_8 [4];
*param_1 = &PTR_FUN_004e1bdc;
(**(code **)(*param_2 + 0x1c))(param_2,param_1 + 1,4);
(**(code **)(*param_2 + 0x1c))(param_2,local_8,4);
return param_1;
}
/* @00414c58 file=? name=FUN_00414c58 */
void __cdecl FUN_00414c58(int *param_1)
{
int *piVar1;
piVar1 = (int *)(**(code **)(*param_1 + 0x20))(param_1,&stack0x0000000c,4);
(**(code **)(*piVar1 + 0x20))(piVar1,&stack0x00000010,4);
return;
}
/* @00414c80 file=? name=FUN_00414c80 */
undefined4 FUN_00414c80(void)
{
return 1;
}
/* @00414c8c file=? name=FUN_00414c8c */
undefined4 __cdecl FUN_00414c8c(int *param_1)
{
char *pcVar1;
char *pcVar2;
char *pcVar3;
bool bVar4;
pcVar3 = s_AudioStateTrigger_004e17f8;
pcVar2 = *(char **)(*param_1 + 8);
do {
if (*pcVar2 != *pcVar3) goto LAB_00414cc3;
bVar4 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar3[1]) goto LAB_00414cc3;
pcVar2 = pcVar2 + 2;
pcVar3 = pcVar3 + 2;
bVar4 = *pcVar1 == '\0';
} while (!bVar4);
if (bVar4) {
return 0x1c;
}
LAB_00414cc3:
pcVar2 = *(char **)(*param_1 + 8);
pcVar3 = s_AudioMotionScale_004e180a;
do {
if (*pcVar2 != *pcVar3) goto LAB_00414cf3;
bVar4 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar3[1]) goto LAB_00414cf3;
pcVar2 = pcVar2 + 2;
pcVar3 = pcVar3 + 2;
bVar4 = *pcVar1 == '\0';
} while (!bVar4);
if (bVar4) {
return 0x1d;
}
LAB_00414cf3:
pcVar2 = *(char **)(*param_1 + 8);
pcVar3 = s_AudioRenderer_004e181b;
do {
if (*pcVar2 != *pcVar3) goto LAB_00414d23;
bVar4 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar3[1]) goto LAB_00414d23;
pcVar2 = pcVar2 + 2;
pcVar3 = pcVar3 + 2;
bVar4 = *pcVar1 == '\0';
} while (!bVar4);
if (bVar4) {
return 0x1e;
}
LAB_00414d23:
pcVar2 = *(char **)(*param_1 + 8);
pcVar3 = s_AudioLocation_004e1829;
do {
if (*pcVar2 != *pcVar3) goto LAB_00414d53;
bVar4 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar3[1]) goto LAB_00414d53;
pcVar2 = pcVar2 + 2;
pcVar3 = pcVar3 + 2;
bVar4 = *pcVar1 == '\0';
} while (!bVar4);
if (bVar4) {
return 0x1f;
}
LAB_00414d53:
pcVar2 = *(char **)(*param_1 + 8);
pcVar3 = s_AudioMotionTrigger_004e1837;
do {
if (*pcVar2 != *pcVar3) goto LAB_00414d83;
bVar4 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar3[1]) goto LAB_00414d83;
pcVar2 = pcVar2 + 2;
pcVar3 = pcVar3 + 2;
bVar4 = *pcVar1 == '\0';
} while (!bVar4);
if (bVar4) {
return 0x27;
}
LAB_00414d83:
pcVar2 = *(char **)(*param_1 + 8);
pcVar3 = s_AudioControlMixer_004e184a;
do {
if (*pcVar2 != *pcVar3) goto LAB_00414db3;
bVar4 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar3[1]) goto LAB_00414db3;
pcVar2 = pcVar2 + 2;
pcVar3 = pcVar3 + 2;
bVar4 = *pcVar1 == '\0';
} while (!bVar4);
if (bVar4) {
return 0x2b;
}
LAB_00414db3:
pcVar2 = *(char **)(*param_1 + 8);
pcVar3 = s_AudioHingeScale_004e185c;
do {
if (*pcVar2 != *pcVar3) goto LAB_00414de3;
bVar4 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar3[1]) goto LAB_00414de3;
pcVar2 = pcVar2 + 2;
pcVar3 = pcVar3 + 2;
bVar4 = *pcVar1 == '\0';
} while (!bVar4);
if (bVar4) {
return 0x2c;
}
LAB_00414de3:
pcVar2 = *(char **)(*param_1 + 8);
pcVar3 = s_AudioControlSmoother_004e186c;
do {
if (*pcVar2 != *pcVar3) goto LAB_00414e13;
bVar4 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar3[1]) goto LAB_00414e13;
pcVar2 = pcVar2 + 2;
pcVar3 = pcVar3 + 2;
bVar4 = *pcVar1 == '\0';
} while (!bVar4);
if (bVar4) {
return 0x2d;
}
LAB_00414e13:
pcVar2 = *(char **)(*param_1 + 8);
pcVar3 = s_AudioResourceSelector_004e1881;
do {
if (*pcVar2 != *pcVar3) goto LAB_00414e43;
bVar4 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar3[1]) goto LAB_00414e43;
pcVar2 = pcVar2 + 2;
pcVar3 = pcVar3 + 2;
bVar4 = *pcVar1 == '\0';
} while (!bVar4);
if (bVar4) {
return 0x2f;
}
LAB_00414e43:
pcVar2 = *(char **)(*param_1 + 8);
pcVar3 = s_L4AudioCollisionTrigger_004e1897;
do {
if (*pcVar2 != *pcVar3) goto LAB_00414e73;
bVar4 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar3[1]) goto LAB_00414e73;
pcVar2 = pcVar2 + 2;
pcVar3 = pcVar3 + 2;
bVar4 = *pcVar1 == '\0';
} while (!bVar4);
if (bVar4) {
return 0x3ee;
}
LAB_00414e73:
pcVar2 = *(char **)(*param_1 + 8);
pcVar3 = s_AudioResourceIndex_004e18af;
do {
if (*pcVar2 != *pcVar3) goto LAB_00414ea3;
bVar4 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar3[1]) goto LAB_00414ea3;
pcVar2 = pcVar2 + 2;
pcVar3 = pcVar3 + 2;
bVar4 = *pcVar1 == '\0';
} while (!bVar4);
if (bVar4) {
return 0x34;
}
LAB_00414ea3:
pcVar2 = *(char **)(*param_1 + 8);
pcVar3 = s_AudioScalarScale_004e18c2;
do {
if (*pcVar2 != *pcVar3) goto LAB_00414ed3;
bVar4 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar3[1]) goto LAB_00414ed3;
pcVar2 = pcVar2 + 2;
pcVar3 = pcVar3 + 2;
bVar4 = *pcVar1 == '\0';
} while (!bVar4);
if (bVar4) {
return 0x35;
}
LAB_00414ed3:
pcVar2 = *(char **)(*param_1 + 8);
pcVar3 = s_AudioControlSend_004e18d3;
do {
if (*pcVar2 != *pcVar3) goto LAB_00414f03;
bVar4 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar3[1]) goto LAB_00414f03;
pcVar2 = pcVar2 + 2;
pcVar3 = pcVar3 + 2;
bVar4 = *pcVar1 == '\0';
} while (!bVar4);
if (bVar4) {
return 0x36;
}
LAB_00414f03:
pcVar2 = *(char **)(*param_1 + 8);
pcVar3 = s_L4AudioLocation_004e18e4;
do {
if (*pcVar2 != *pcVar3) goto LAB_00414f33;
bVar4 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar3[1]) goto LAB_00414f33;
pcVar2 = pcVar2 + 2;
pcVar3 = pcVar3 + 2;
bVar4 = *pcVar1 == '\0';
} while (!bVar4);
if (bVar4) {
return 1000;
}
LAB_00414f33:
pcVar2 = *(char **)(*param_1 + 8);
pcVar3 = s_DirectPatchSource_004e18f4;
do {
if (*pcVar2 != *pcVar3) goto LAB_00414f63;
bVar4 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar3[1]) goto LAB_00414f63;
pcVar2 = pcVar2 + 2;
pcVar3 = pcVar3 + 2;
bVar4 = *pcVar1 == '\0';
} while (!bVar4);
if (bVar4) {
return 0x3e9;
}
LAB_00414f63:
pcVar2 = *(char **)(*param_1 + 8);
pcVar3 = s_Dynamic3DPatchSource_004e1906;
do {
if (*pcVar2 != *pcVar3) goto LAB_00414f93;
bVar4 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar3[1]) goto LAB_00414f93;
pcVar2 = pcVar2 + 2;
pcVar3 = pcVar3 + 2;
bVar4 = *pcVar1 == '\0';
} while (!bVar4);
if (bVar4) {
return 0x3ea;
}
LAB_00414f93:
pcVar2 = *(char **)(*param_1 + 8);
pcVar3 = s_PatchResource_004e191b;
do {
if (*pcVar2 != *pcVar3) goto LAB_00414fc3;
bVar4 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar3[1]) goto LAB_00414fc3;
pcVar2 = pcVar2 + 2;
pcVar3 = pcVar3 + 2;
bVar4 = *pcVar1 == '\0';
} while (!bVar4);
if (bVar4) {
return 0x3ec;
}
LAB_00414fc3:
pcVar2 = *(char **)(*param_1 + 8);
pcVar3 = s_Static3DPatchSource_004e1929;
do {
if (*pcVar2 != *pcVar3) goto LAB_00414ff3;
bVar4 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar3[1]) goto LAB_00414ff3;
pcVar2 = pcVar2 + 2;
pcVar3 = pcVar3 + 2;
bVar4 = *pcVar1 == '\0';
} while (!bVar4);
if (bVar4) {
return 0x3ed;
}
LAB_00414ff3:
pcVar2 = *(char **)(*param_1 + 8);
pcVar3 = s_AudioControlMultiplier_004e193d;
do {
if (*pcVar2 != *pcVar3) goto LAB_00415023;
bVar4 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar3[1]) goto LAB_00415023;
pcVar2 = pcVar2 + 2;
pcVar3 = pcVar3 + 2;
bVar4 = *pcVar1 == '\0';
} while (!bVar4);
if (bVar4) {
return 0x2e;
}
LAB_00415023:
pcVar2 = *(char **)(*param_1 + 8);
pcVar3 = s_AudioSampleAndHold_004e1954;
do {
if (*pcVar2 != *pcVar3) goto LAB_00415053;
bVar4 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar3[1]) goto LAB_00415053;
pcVar2 = pcVar2 + 2;
pcVar3 = pcVar3 + 2;
bVar4 = *pcVar1 == '\0';
} while (!bVar4);
if (bVar4) {
return 0x3a;
}
LAB_00415053:
pcVar2 = *(char **)(*param_1 + 8);
pcVar3 = s_AudioScalarTrigger_004e1967;
do {
if (*pcVar2 != *pcVar3) goto LAB_00415083;
bVar4 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar3[1]) goto LAB_00415083;
pcVar2 = pcVar2 + 2;
pcVar3 = pcVar3 + 2;
bVar4 = *pcVar1 == '\0';
} while (!bVar4);
if (bVar4) {
return 0x3b;
}
LAB_00415083:
pcVar2 = *(char **)(*param_1 + 8);
pcVar3 = s_AudioEnumerationTrigger_004e197a;
do {
if (*pcVar2 != *pcVar3) goto LAB_004150b3;
bVar4 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar3[1]) goto LAB_004150b3;
pcVar2 = pcVar2 + 2;
pcVar3 = pcVar3 + 2;
bVar4 = *pcVar1 == '\0';
} while (!bVar4);
if (bVar4) {
return 0x3c;
}
LAB_004150b3:
pcVar2 = *(char **)(*param_1 + 8);
pcVar3 = s_AudioIntegerTrigger_004e1992;
do {
if (*pcVar2 != *pcVar3) goto LAB_004150e3;
bVar4 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar3[1]) goto LAB_004150e3;
pcVar2 = pcVar2 + 2;
pcVar3 = pcVar3 + 2;
bVar4 = *pcVar1 == '\0';
} while (!bVar4);
if (bVar4) {
return 0x3d;
}
LAB_004150e3:
pcVar2 = *(char **)(*param_1 + 8);
pcVar3 = s_AudioLogicalTrigger_004e19a6;
do {
if (*pcVar2 != *pcVar3) goto LAB_00415113;
bVar4 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar3[1]) goto LAB_00415113;
pcVar2 = pcVar2 + 2;
pcVar3 = pcVar3 + 2;
bVar4 = *pcVar1 == '\0';
} while (!bVar4);
if (bVar4) {
return 0x3e;
}
LAB_00415113:
pcVar2 = *(char **)(*param_1 + 8);
pcVar3 = s_AudioControlsButtonTrigger_004e19ba;
do {
if (*pcVar2 != *pcVar3) goto LAB_00415143;
bVar4 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar3[1]) goto LAB_00415143;
pcVar2 = pcVar2 + 2;
pcVar3 = pcVar3 + 2;
bVar4 = *pcVar1 == '\0';
} while (!bVar4);
if (bVar4) {
return 0x42;
}
LAB_00415143:
pcVar2 = *(char **)(*param_1 + 8);
pcVar3 = s_ExplosionResourceTable_004e19d5;
do {
if (*pcVar2 != *pcVar3) goto LAB_00415173;
bVar4 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar3[1]) goto LAB_00415173;
pcVar2 = pcVar2 + 2;
pcVar3 = pcVar3 + 2;
bVar4 = *pcVar1 == '\0';
} while (!bVar4);
if (bVar4) {
return 0x47;
}
LAB_00415173:
pcVar2 = *(char **)(*param_1 + 8);
pcVar3 = s_AudioIdleWatcher_004e19ec;
do {
if (*pcVar2 != *pcVar3) goto LAB_004151a3;
bVar4 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar3[1]) goto LAB_004151a3;
pcVar2 = pcVar2 + 2;
pcVar3 = pcVar3 + 2;
bVar4 = *pcVar1 == '\0';
} while (!bVar4);
if (bVar4) {
return 0x49;
}
LAB_004151a3:
pcVar2 = *(char **)(*param_1 + 8);
pcVar3 = s_AudioControlEvent_004e19fd;
do {
if (*pcVar2 != *pcVar3) goto LAB_004151d3;
bVar4 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar3[1]) goto LAB_004151d3;
pcVar2 = pcVar2 + 2;
pcVar3 = pcVar3 + 2;
bVar4 = *pcVar1 == '\0';
} while (!bVar4);
if (bVar4) {
return 0x4a;
}
LAB_004151d3:
pcVar2 = *(char **)(*param_1 + 8);
pcVar3 = s_AudioControlSequence_004e1a0f;
do {
if (*pcVar2 != *pcVar3) goto LAB_00415203;
bVar4 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar3[1]) goto LAB_00415203;
pcVar2 = pcVar2 + 2;
pcVar3 = pcVar3 + 2;
bVar4 = *pcVar1 == '\0';
} while (!bVar4);
if (bVar4) {
return 0x4b;
}
LAB_00415203:
pcVar2 = *(char **)(*param_1 + 8);
pcVar3 = s_AudioControlSplitter_004e1a24;
do {
if (*pcVar2 != *pcVar3) goto LAB_00415233;
bVar4 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar3[1]) goto LAB_00415233;
pcVar2 = pcVar2 + 2;
pcVar3 = pcVar3 + 2;
bVar4 = *pcVar1 == '\0';
} while (!bVar4);
if (bVar4) {
return 0x4c;
}
LAB_00415233:
pcVar2 = *(char **)(*param_1 + 8);
pcVar3 = s_AudioLFO_004e1a39;
do {
if (*pcVar2 != *pcVar3) goto LAB_00415263;
bVar4 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar3[1]) goto LAB_00415263;
pcVar2 = pcVar2 + 2;
pcVar3 = pcVar3 + 2;
bVar4 = *pcVar1 == '\0';
} while (!bVar4);
if (bVar4) {
return 0x4f;
}
LAB_00415263:
pcVar2 = *(char **)(*param_1 + 8);
pcVar3 = s_AudioEnumerationDeltaTrigger_004e1a42;
do {
if (*pcVar2 != *pcVar3) goto LAB_00415293;
bVar4 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar3[1]) goto LAB_00415293;
pcVar2 = pcVar2 + 2;
pcVar3 = pcVar3 + 2;
bVar4 = *pcVar1 == '\0';
} while (!bVar4);
if (bVar4) {
return 0x50;
}
LAB_00415293:
pcVar2 = *(char **)(*param_1 + 8);
pcVar3 = s_AudioScalarDeltaTrigger_004e1a5f;
do {
if (*pcVar2 != *pcVar3) goto LAB_004152c3;
bVar4 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar3[1]) goto LAB_004152c3;
pcVar2 = pcVar2 + 2;
pcVar3 = pcVar3 + 2;
bVar4 = *pcVar1 == '\0';
} while (!bVar4);
if (bVar4) {
return 0x51;
}
LAB_004152c3:
pcVar2 = *(char **)(*param_1 + 8);
pcVar3 = s_AudioLevelOfDetail_004e1a77;
do {
if (*pcVar2 != *pcVar3) goto LAB_004152f3;
bVar4 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar3[1]) goto LAB_004152f3;
pcVar2 = pcVar2 + 2;
pcVar3 = pcVar3 + 2;
bVar4 = *pcVar1 == '\0';
} while (!bVar4);
if (bVar4) {
return 0x55;
}
LAB_004152f3:
pcVar2 = *(char **)(*param_1 + 8);
pcVar3 = s_PatchLevelOfDetail_004e1a8a;
do {
if (*pcVar2 != *pcVar3) goto LAB_00415323;
bVar4 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar3[1]) goto LAB_00415323;
pcVar2 = pcVar2 + 2;
pcVar3 = pcVar3 + 2;
bVar4 = *pcVar1 == '\0';
} while (!bVar4);
if (bVar4) {
return 0x3f3;
}
LAB_00415323:
pcVar2 = *(char **)(*param_1 + 8);
pcVar3 = s_AudioMessageWatcher_004e1a9d;
do {
if (*pcVar2 != *pcVar3) goto LAB_00415353;
bVar4 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar3[1]) goto LAB_00415353;
pcVar2 = pcVar2 + 2;
pcVar3 = pcVar3 + 2;
bVar4 = *pcVar1 == '\0';
} while (!bVar4);
if (bVar4) {
return 0x59;
}
LAB_00415353:
pcVar2 = *(char **)(*param_1 + 8);
pcVar3 = s_AudioControlsButtonMessageWatche_004e1ab1;
do {
if (*pcVar2 != *pcVar3) {
return 0xffffffff;
}
bVar4 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar3[1]) {
return 0xffffffff;
}
pcVar2 = pcVar2 + 2;
pcVar3 = pcVar3 + 2;
bVar4 = *pcVar1 == '\0';
} while (!bVar4);
if (!bVar4) {
return 0xffffffff;
}
return 0x5a;
}
/* @00415389 file=? name=FUN_00415389 */
undefined4 * __cdecl
FUN_00415389(undefined4 *param_1,undefined4 param_2,int param_3,undefined4 *param_4)
{
FUN_004185bc(param_1,param_2,param_3);
*param_1 = &PTR_FUN_004e1b14;
param_1[7] = *param_4;
return param_1;
}
/* @004153b4 file=? name=FUN_004153b4 */
void __cdecl FUN_004153b4(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e1b14;
FUN_004185ec(param_1,0);
if ((param_2 & 1) != 0) {
FUN_00415430(param_1);
}
}
return;
}
/* @004153e0 file=? name=FUN_004153e0 */
void FUN_004153e0(void)
{
int iVar1;
undefined4 *puVar2;
iVar1 = DAT_004e1b10;
DAT_004e1b10 = DAT_004e1b10 + 1;
puVar2 = DAT_004e1b0c;
if ((iVar1 == 0) && (puVar2 = (undefined4 *)FUN_00402298(0x28), puVar2 != (undefined4 *)0x0)) {
FUN_00402b98(puVar2,0x20,100,100,s_VChainLinkOf_004e1af0);
}
DAT_004e1b0c = puVar2;
FUN_00402f74((int)DAT_004e1b0c);
return;
}
/* @00415430 file=? name=FUN_00415430 */
void __cdecl FUN_00415430(undefined4 *param_1)
{
FUN_00402f98((int)DAT_004e1b0c,param_1);
DAT_004e1b10 = DAT_004e1b10 + -1;
if (DAT_004e1b10 == 0) {
if (DAT_004e1b0c != (int *)0x0) {
FUN_00402c28(DAT_004e1b0c,0);
FUN_004022d0(DAT_004e1b0c);
}
DAT_004e1b0c = (int *)0x0;
}
return;
}
/* @0041547b file=? name=FUN_0041547b */
undefined4 * __cdecl FUN_0041547b(undefined4 *param_1,int *param_2)
{
int *piVar1;
undefined4 *puVar2;
int iVar3;
int *local_8;
FUN_00415e90(param_1,1);
*param_1 = &PTR_FUN_004e1bd8;
puVar2 = (undefined4 *)FUN_00402298(0x10);
if (puVar2 == (undefined4 *)0x0) {
iVar3 = 0;
}
else {
iVar3 = FUN_004023f4(puVar2);
}
param_1[3] = iVar3;
piVar1 = (int *)(param_1[3] + 0xc);
*piVar1 = *piVar1 + 1;
FUN_00402a4c((int *)&local_8,param_1 + 3,param_2);
piVar1 = local_8 + 3;
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_004024d8(local_8,3);
}
return param_1;
}
/* @004154e8 file=? name=FUN_004154e8 */
void __cdecl FUN_004154e8(int *param_1,byte param_2)
{
int *piVar1;
int *piVar2;
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e1bd8;
piVar2 = (int *)param_1[3];
piVar1 = piVar2 + 3;
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_004024d8(piVar2,3);
}
FUN_00415ed8(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00415529 file=? name=FUN_00415529 */
undefined4 * __cdecl FUN_00415529(undefined4 *param_1,undefined4 param_2,undefined4 param_3)
{
FUN_00418bb8(param_1,param_2,param_3);
*param_1 = &PTR_FUN_004e1bbc;
return param_1;
}
/* @0041554c file=? name=FUN_0041554c */
void __cdecl FUN_0041554c(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e1bbc;
FUN_00418be0(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00415578 file=? name=FUN_00415578 */
undefined4 __cdecl FUN_00415578(undefined4 param_1,int param_2,int param_3)
{
int iVar1;
undefined4 uVar2;
iVar1 = FUN_004027d8(*(int *)(param_2 + 0x20),*(int *)(param_3 + 0x20));
if (iVar1 == 0) {
uVar2 = 0;
}
else {
iVar1 = FUN_004027d8(*(int *)(param_2 + 0x20),*(int *)(param_3 + 0x20));
if (iVar1 < 1) {
uVar2 = 0xffffffff;
}
else {
uVar2 = 1;
}
}
return uVar2;
}
/* @004155c5 file=? name=FUN_004155c5 */
undefined4 __cdecl FUN_004155c5(undefined4 param_1,int *param_2,int param_3)
{
int iVar1;
undefined4 uVar2;
iVar1 = FUN_004027d8(*param_2,*(int *)(param_3 + 0x20));
if (iVar1 == 0) {
uVar2 = 0;
}
else {
iVar1 = FUN_004027d8(*param_2,*(int *)(param_3 + 0x20));
if (iVar1 < 1) {
uVar2 = 0xffffffff;
}
else {
uVar2 = 1;
}
}
return uVar2;
}
/* @0041560f file=? name=FUN_0041560f */
int * __cdecl FUN_0041560f(int *param_1,int param_2)
{
FUN_00418f34(param_1,param_2);
*param_1 = (int)&PTR_FUN_004e1b60;
return param_1;
}
/* @0041562e file=? name=FUN_0041562e */
int * __cdecl FUN_0041562e(int *param_1,int param_2)
{
FUN_00418f34(param_1,param_2);
*param_1 = (int)&PTR_FUN_004e1b60;
return param_1;
}
/* @0041564d file=? name=FUN_0041564d */
void __cdecl FUN_0041564d(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e1b60;
FUN_00418f5c(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00415679 file=? name=FUN_00415679 */
undefined4 * __cdecl FUN_00415679(undefined4 *param_1,undefined4 param_2,undefined4 param_3)
{
FUN_004186ac(param_1,param_2,param_3);
*param_1 = &PTR_FUN_004e1b44;
return param_1;
}
/* @0041569c file=? name=FUN_0041569c */
void __cdecl FUN_0041569c(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e1b44;
FUN_004186dc(param_1,0);
if ((param_2 & 1) != 0) {
FUN_00415773(param_1);
}
}
return;
}
/* @004156c8 file=? name=FUN_004156c8 */
undefined4 __cdecl FUN_004156c8(undefined4 param_1,int param_2,int param_3)
{
undefined4 uVar1;
if (*(uint *)(param_3 + 0x1c) == *(uint *)(param_2 + 0x1c)) {
uVar1 = 0;
}
else {
uVar1 = 1;
if (*(uint *)(param_2 + 0x1c) <= *(uint *)(param_3 + 0x1c)) {
uVar1 = 0xffffffff;
}
}
return uVar1;
}
/* @004156f7 file=? name=FUN_004156f7 */
undefined4 __cdecl FUN_004156f7(undefined4 param_1,uint *param_2,int param_3)
{
undefined4 uVar1;
if (*(uint *)(param_3 + 0x1c) == *param_2) {
uVar1 = 0;
}
else {
uVar1 = 1;
if (*param_2 <= *(uint *)(param_3 + 0x1c)) {
uVar1 = 0xffffffff;
}
}
return uVar1;
}
/* @00415723 file=? name=FUN_00415723 */
void FUN_00415723(void)
{
int iVar1;
undefined4 *puVar2;
iVar1 = DAT_004e1b1c;
DAT_004e1b1c = DAT_004e1b1c + 1;
puVar2 = DAT_004e1b18;
if ((iVar1 == 0) && (puVar2 = (undefined4 *)FUN_00402298(0x28), puVar2 != (undefined4 *)0x0)) {
FUN_00402b98(puVar2,0x18,100,100,s_VChainOf_004e1ad3);
}
DAT_004e1b18 = puVar2;
FUN_00402f74((int)DAT_004e1b18);
return;
}
/* @00415773 file=? name=FUN_00415773 */
void __cdecl FUN_00415773(undefined4 *param_1)
{
FUN_00402f98((int)DAT_004e1b18,param_1);
DAT_004e1b1c = DAT_004e1b1c + -1;
if (DAT_004e1b1c == 0) {
if (DAT_004e1b18 != (int *)0x0) {
FUN_00402c28(DAT_004e1b18,0);
FUN_004022d0(DAT_004e1b18);
}
DAT_004e1b18 = (int *)0x0;
}
return;
}
/* @004157be file=? name=FUN_004157be */
undefined4 * __cdecl FUN_004157be(undefined4 *param_1,undefined4 param_2,undefined4 param_3)
{
FUN_004186ac(param_1,param_2,param_3);
*param_1 = &PTR_FUN_004e1b28;
return param_1;
}
/* @004157e1 file=? name=FUN_004157e1 */
void __cdecl FUN_004157e1(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e1b28;
FUN_004186dc(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004158f4(param_1);
}
}
return;
}
/* @0041580d file=? name=FUN_0041580d */
undefined4 __cdecl FUN_0041580d(undefined4 param_1,int param_2,int param_3)
{
int iVar1;
undefined4 uVar2;
iVar1 = FUN_004027d8(*(int *)(param_2 + 0x1c),*(int *)(param_3 + 0x1c));
if (iVar1 == 0) {
uVar2 = 0;
}
else {
iVar1 = FUN_004027d8(*(int *)(param_2 + 0x1c),*(int *)(param_3 + 0x1c));
if (iVar1 < 1) {
uVar2 = 0xffffffff;
}
else {
uVar2 = 1;
}
}
return uVar2;
}
/* @0041585a file=? name=FUN_0041585a */
undefined4 __cdecl FUN_0041585a(undefined4 param_1,int *param_2,int param_3)
{
int iVar1;
undefined4 uVar2;
iVar1 = FUN_004027d8(*param_2,*(int *)(param_3 + 0x1c));
if (iVar1 == 0) {
uVar2 = 0;
}
else {
iVar1 = FUN_004027d8(*param_2,*(int *)(param_3 + 0x1c));
if (iVar1 < 1) {
uVar2 = 0xffffffff;
}
else {
uVar2 = 1;
}
}
return uVar2;
}
/* @004158a4 file=? name=FUN_004158a4 */
void FUN_004158a4(void)
{
int iVar1;
undefined4 *puVar2;
iVar1 = DAT_004e1b24;
DAT_004e1b24 = DAT_004e1b24 + 1;
puVar2 = DAT_004e1b20;
if ((iVar1 == 0) && (puVar2 = (undefined4 *)FUN_00402298(0x28), puVar2 != (undefined4 *)0x0)) {
FUN_00402b98(puVar2,0x18,100,100,s_VChainOf_004e1adc);
}
DAT_004e1b20 = puVar2;
FUN_00402f74((int)DAT_004e1b20);
return;
}
/* @004158f4 file=? name=FUN_004158f4 */
void __cdecl FUN_004158f4(undefined4 *param_1)
{
FUN_00402f98((int)DAT_004e1b20,param_1);
DAT_004e1b24 = DAT_004e1b24 + -1;
if (DAT_004e1b24 == 0) {
if (DAT_004e1b20 != (int *)0x0) {
FUN_00402c28(DAT_004e1b20,0);
FUN_004022d0(DAT_004e1b20);
}
DAT_004e1b20 = (int *)0x0;
}
return;
}
/* @0041593f file=? name=FUN_0041593f */
undefined4 * __cdecl FUN_0041593f(undefined4 param_1,int param_2,int *param_3)
{
undefined4 *puVar1;
puVar1 = (undefined4 *)FUN_00415bd2();
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_00415b1e(puVar1,param_1,param_2,param_3);
}
return puVar1;
}
/* @0041596f file=? name=FUN_0041596f */
undefined4 * __cdecl FUN_0041596f(undefined4 param_1,int param_2,undefined4 *param_3)
{
undefined4 *puVar1;
puVar1 = (undefined4 *)FUN_004153e0();
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_00415389(puVar1,param_1,param_2,param_3);
}
return puVar1;
}
/* @0041599f file=? name=FUN_0041599f */
undefined4 * __cdecl FUN_0041599f(undefined4 param_1,int param_2,int *param_3)
{
undefined4 *puVar1;
puVar1 = (undefined4 *)FUN_00415a83();
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_004159cf(puVar1,param_1,param_2,param_3);
}
return puVar1;
}
/* @004159cf file=? name=FUN_004159cf */
undefined4 * __cdecl FUN_004159cf(undefined4 *param_1,undefined4 param_2,int param_3,int *param_4)
{
int *piVar1;
undefined4 *puVar2;
int iVar3;
int *local_8;
FUN_00418ae0(param_1,param_2,param_3);
*param_1 = &PTR_FUN_004e1bf4;
puVar2 = (undefined4 *)FUN_00402298(0x10);
if (puVar2 == (undefined4 *)0x0) {
iVar3 = 0;
}
else {
iVar3 = FUN_004023f4(puVar2);
}
param_1[8] = iVar3;
piVar1 = (int *)(param_1[8] + 0xc);
*piVar1 = *piVar1 + 1;
FUN_00402a4c((int *)&local_8,param_1 + 8,param_4);
piVar1 = local_8 + 3;
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_004024d8(local_8,3);
}
return param_1;
}
/* @00415a42 file=? name=FUN_00415a42 */
void __cdecl FUN_00415a42(int *param_1,byte param_2)
{
int *piVar1;
int *piVar2;
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e1bf4;
piVar2 = (int *)param_1[8];
piVar1 = piVar2 + 3;
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_004024d8(piVar2,3);
}
FUN_00418b14(param_1,0);
if ((param_2 & 1) != 0) {
FUN_00415ad3(param_1);
}
}
return;
}
/* @00415a83 file=? name=FUN_00415a83 */
void FUN_00415a83(void)
{
int iVar1;
undefined4 *puVar2;
iVar1 = DAT_004e1be4;
DAT_004e1be4 = DAT_004e1be4 + 1;
puVar2 = DAT_004e1be0;
if ((iVar1 == 0) && (puVar2 = (undefined4 *)FUN_00402298(0x28), puVar2 != (undefined4 *)0x0)) {
FUN_00402b98(puVar2,0x24,100,100,s_TreeNodeOf_004e1ae5);
}
DAT_004e1be0 = puVar2;
FUN_00402f74((int)DAT_004e1be0);
return;
}
/* @00415ad3 file=? name=FUN_00415ad3 */
void __cdecl FUN_00415ad3(undefined4 *param_1)
{
FUN_00402f98((int)DAT_004e1be0,param_1);
DAT_004e1be4 = DAT_004e1be4 + -1;
if (DAT_004e1be4 == 0) {
if (DAT_004e1be0 != (int *)0x0) {
FUN_00402c28(DAT_004e1be0,0);
FUN_004022d0(DAT_004e1be0);
}
DAT_004e1be0 = (int *)0x0;
}
return;
}
/* @00415b1e file=? name=FUN_00415b1e */
undefined4 * __cdecl FUN_00415b1e(undefined4 *param_1,undefined4 param_2,int param_3,int *param_4)
{
int *piVar1;
undefined4 *puVar2;
int iVar3;
int *local_8;
FUN_004185bc(param_1,param_2,param_3);
*param_1 = &PTR_FUN_004e1bf0;
puVar2 = (undefined4 *)FUN_00402298(0x10);
if (puVar2 == (undefined4 *)0x0) {
iVar3 = 0;
}
else {
iVar3 = FUN_004023f4(puVar2);
}
param_1[7] = iVar3;
piVar1 = (int *)(param_1[7] + 0xc);
*piVar1 = *piVar1 + 1;
FUN_00402a4c((int *)&local_8,param_1 + 7,param_4);
piVar1 = local_8 + 3;
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_004024d8(local_8,3);
}
return param_1;
}
/* @00415b91 file=? name=FUN_00415b91 */
void __cdecl FUN_00415b91(int *param_1,byte param_2)
{
int *piVar1;
int *piVar2;
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e1bf0;
piVar2 = (int *)param_1[7];
piVar1 = piVar2 + 3;
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_004024d8(piVar2,3);
}
FUN_004185ec(param_1,0);
if ((param_2 & 1) != 0) {
FUN_00415c22(param_1);
}
}
return;
}
/* @00415bd2 file=? name=FUN_00415bd2 */
void FUN_00415bd2(void)
{
int iVar1;
undefined4 *puVar2;
iVar1 = DAT_004e1bec;
DAT_004e1bec = DAT_004e1bec + 1;
puVar2 = DAT_004e1be8;
if ((iVar1 == 0) && (puVar2 = (undefined4 *)FUN_00402298(0x28), puVar2 != (undefined4 *)0x0)) {
FUN_00402b98(puVar2,0x20,100,100,s_VChainLinkOf_004e1afd);
}
DAT_004e1be8 = puVar2;
FUN_00402f74((int)DAT_004e1be8);
return;
}
/* @00415c22 file=? name=FUN_00415c22 */
void __cdecl FUN_00415c22(undefined4 *param_1)
{
FUN_00402f98((int)DAT_004e1be8,param_1);
DAT_004e1bec = DAT_004e1bec + -1;
if (DAT_004e1bec == 0) {
if (DAT_004e1be8 != (int *)0x0) {
FUN_00402c28(DAT_004e1be8,0);
FUN_004022d0(DAT_004e1be8);
}
DAT_004e1be8 = (int *)0x0;
}
return;
}
/* @00415c70 file=? name=FUN_00415c70 */
void __cdecl FUN_00415c70(undefined4 *param_1)
{
*param_1 = &PTR_FUN_004e1dc4;
return;
}
/* @00415c80 file=? name=FUN_00415c80 */
void __cdecl FUN_00415c80(int *param_1,byte param_2)
{
if ((param_1 != (int *)0x0) && (*param_1 = (int)&PTR_FUN_004e1dc4, (param_2 & 1) != 0)) {
FUN_004022d0(param_1);
}
return;
}
/* @00415ca0 file=? name=FUN_00415ca0 */
undefined4 FUN_00415ca0(void)
{
return 1;
}
/* @00415cac file=munga/iterator.cpp name=FUN_00415cac */
void FUN_00415cac(void)
{
FUN_0040385c(s_Iterator__First___Should_never_r_004e1bf8,s_d__tesla_bt_munga_ITERATOR_CPP_004e1c22
,0x40);
return;
}
/* @00415cc8 file=munga/iterator.cpp name=FUN_00415cc8 */
void FUN_00415cc8(void)
{
FUN_0040385c(s_Iterator__Last___Should_never_re_004e1c41,s_d__tesla_bt_munga_ITERATOR_CPP_004e1c6a
,0x4b);
return;
}
/* @00415ce4 file=munga/iterator.cpp name=FUN_00415ce4 */
void FUN_00415ce4(void)
{
FUN_0040385c(s_Iterator__Next___Should_never_re_004e1c89,s_d__tesla_bt_munga_ITERATOR_CPP_004e1cb2
,0x56);
return;
}
/* @00415d00 file=munga/iterator.cpp name=FUN_00415d00 */
void FUN_00415d00(void)
{
FUN_0040385c(s_Iterator__Previous___Should_neve_004e1cd1,s_d__tesla_bt_munga_ITERATOR_CPP_004e1cfe
,0x61);
return;
}
/* @00415d1c file=munga/iterator.cpp name=FUN_00415d1c */
undefined4 FUN_00415d1c(void)
{
FUN_0040385c(s_Iterator__GetSize___Should_never_004e1d1d,s_d__tesla_bt_munga_ITERATOR_CPP_004e1d49
,0x6c);
return 0;
}
/* @00415d38 file=? name=FUN_00415d38 */
int __cdecl FUN_00415d38(int *param_1)
{
int iVar1;
iVar1 = (**(code **)(*param_1 + 0x30))(param_1);
if (iVar1 != 0) {
(**(code **)(*param_1 + 0xc))(param_1);
}
return iVar1;
}
/* @00415d5c file=? name=FUN_00415d5c */
int __cdecl FUN_00415d5c(int *param_1)
{
int iVar1;
iVar1 = (**(code **)(*param_1 + 0x30))(param_1);
if (iVar1 != 0) {
(**(code **)(*param_1 + 0x10))(param_1);
}
return iVar1;
}
/* @00415d80 file=munga/iterator.cpp name=FUN_00415d80 */
undefined4 FUN_00415d80(void)
{
FUN_0040385c(s_Iterator__GetCurrentImplementati_004e1d68,s_d__tesla_bt_munga_ITERATOR_CPP_004e1da5
,0x9a);
return 0;
}
/* @00415da0 file=? name=FUN_00415da0 */
int __cdecl FUN_00415da0(int *param_1,int param_2)
{
int iVar1;
int iVar2;
iVar2 = 0;
(**(code **)(*param_1 + 4))(param_1);
while( true ) {
iVar1 = (**(code **)(*param_1 + 0x30))(param_1);
if (iVar1 == 0) {
return 0;
}
if (iVar2 == param_2) break;
(**(code **)(*param_1 + 0xc))(param_1);
iVar2 = iVar2 + 1;
}
return iVar1;
}
/* @00415ddc file=? name=FUN_00415ddc */
undefined4 * __cdecl FUN_00415ddc(undefined4 *param_1,undefined4 param_2,int param_3)
{
*param_1 = &PTR_FUN_004e1e0c;
param_1[1] = param_2;
param_1[2] = param_3;
FUN_00415e70((int)param_1,param_3);
return param_1;
}
/* @00415e04 file=? name=FUN_00415e04 */
void __cdecl FUN_00415e04(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e1e0c;
FUN_00415e38((int)param_1);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00415e2c file=? name=FUN_00415e2c */
undefined4 FUN_00415e2c(void)
{
return 1;
}
/* @00415e38 file=? name=FUN_00415e38 */
void __cdecl FUN_00415e38(int param_1)
{
if (param_1 == *(int *)(*(int *)(param_1 + 8) + 8)) {
*(undefined4 *)(*(int *)(param_1 + 8) + 8) = *(undefined4 *)(param_1 + 0xc);
}
if (*(int *)(param_1 + 0x10) != 0) {
*(undefined4 *)(*(int *)(param_1 + 0x10) + 0xc) = *(undefined4 *)(param_1 + 0xc);
}
if (*(int *)(param_1 + 0xc) != 0) {
*(undefined4 *)(*(int *)(param_1 + 0xc) + 0x10) = *(undefined4 *)(param_1 + 0x10);
}
*(undefined4 *)(param_1 + 0xc) = 0;
*(undefined4 *)(param_1 + 0x10) = 0;
return;
}
/* @00415e70 file=? name=FUN_00415e70 */
void __cdecl FUN_00415e70(int param_1,int param_2)
{
int iVar1;
iVar1 = *(int *)(param_2 + 8);
*(int *)(param_1 + 0xc) = iVar1;
if (iVar1 != 0) {
*(int *)(iVar1 + 0x10) = param_1;
}
*(undefined4 *)(param_1 + 0x10) = 0;
*(int *)(param_2 + 8) = param_1;
return;
}
/* @00415e90 file=? name=FUN_00415e90 */
undefined4 * __cdecl FUN_00415e90(undefined4 *param_1,undefined4 param_2)
{
FUN_00414be8(param_1,param_2);
*param_1 = &PTR_FUN_004e1e90;
param_1[2] = 0;
return param_1;
}
/* @00415eb4 file=? name=FUN_00415eb4 */
undefined4 * __cdecl FUN_00415eb4(undefined4 *param_1,int *param_2)
{
FUN_00414c1c(param_1,param_2);
*param_1 = &PTR_FUN_004e1e90;
param_1[2] = 0;
return param_1;
}
/* @00415ed8 file=? name=FUN_00415ed8 */
void __cdecl FUN_00415ed8(int *param_1,byte param_2)
{
undefined4 *puVar1;
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e1e90;
while (puVar1 = (undefined4 *)param_1[2], puVar1 != (undefined4 *)0x0) {
if (puVar1 != (undefined4 *)0x0) {
(**(code **)*puVar1)(puVar1,3);
}
}
FUN_00414bfc(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00415f1c file=? name=FUN_00415f1c */
undefined4 FUN_00415f1c(void)
{
return 1;
}
/* @00415f30 file=? name=FUN_00415f30 */
undefined4 * __cdecl FUN_00415f30(undefined4 *param_1,int param_2,undefined4 param_3)
{
FUN_00415c70(param_1);
*param_1 = &PTR_FUN_004e1e48;
param_1[1] = param_2;
param_1[3] = param_3;
param_1[2] = *(undefined4 *)(param_2 + 8);
return param_1;
}
/* @00415f60 file=? name=FUN_00415f60 */
undefined4 * __cdecl FUN_00415f60(undefined4 *param_1,int param_2)
{
FUN_00415c70(param_1);
*param_1 = &PTR_FUN_004e1e48;
param_1[1] = *(undefined4 *)(param_2 + 4);
param_1[3] = *(undefined4 *)(param_2 + 0xc);
param_1[2] = *(undefined4 *)(param_2 + 8);
return param_1;
}
/* @00415f90 file=? name=FUN_00415f90 */
void __cdecl FUN_00415f90(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e1e48;
FUN_00415c80(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00415fbc file=? name=FUN_00415fbc */
undefined4 FUN_00415fbc(void)
{
return 1;
}
/* @00415fd0 file=? name=FUN_00415fd0 */
void __cdecl FUN_00415fd0(int param_1)
{
*(undefined4 *)(param_1 + 8) = *(undefined4 *)(*(int *)(param_1 + 4) + 8);
FUN_00416128(param_1);
return;
}
/* @00415fe8 file=? name=FUN_00415fe8 */
void __cdecl FUN_00415fe8(int param_1)
{
int iVar1;
if ((*(int *)(param_1 + 8) != 0) ||
(iVar1 = *(int *)(*(int *)(param_1 + 4) + 8), *(int *)(param_1 + 8) = iVar1, iVar1 != 0)) {
while (iVar1 = *(int *)(*(int *)(param_1 + 8) + 0xc), iVar1 != 0) {
*(int *)(param_1 + 8) = iVar1;
}
FUN_0041615c(param_1);
}
return;
}
/* @0041601c file=? name=FUN_0041601c */
void __cdecl FUN_0041601c(int param_1)
{
*(undefined4 *)(param_1 + 8) = *(undefined4 *)(*(int *)(param_1 + 8) + 0xc);
FUN_00416128(param_1);
return;
}
/* @00416034 file=? name=FUN_00416034 */
void __cdecl FUN_00416034(int param_1)
{
*(undefined4 *)(param_1 + 8) = *(undefined4 *)(*(int *)(param_1 + 8) + 0x10);
FUN_0041615c(param_1);
return;
}
/* @0041604c file=? name=FUN_0041604c */
undefined4 __cdecl FUN_0041604c(int param_1)
{
int iVar1;
undefined4 uVar2;
iVar1 = *(int *)(param_1 + 8);
if (iVar1 != 0) {
uVar2 = *(undefined4 *)(*(int *)(iVar1 + 4) + 4);
*(undefined4 *)(param_1 + 8) = *(undefined4 *)(iVar1 + 0xc);
FUN_00416128(param_1);
return uVar2;
}
return 0;
}
/* @00416078 file=? name=FUN_00416078 */
undefined4 __cdecl FUN_00416078(int param_1)
{
int iVar1;
undefined4 uVar2;
iVar1 = *(int *)(param_1 + 8);
if (iVar1 != 0) {
uVar2 = *(undefined4 *)(*(int *)(iVar1 + 4) + 4);
*(undefined4 *)(param_1 + 8) = *(undefined4 *)(iVar1 + 0x10);
FUN_0041615c(param_1);
return uVar2;
}
return 0;
}
/* @004160a4 file=? name=FUN_004160a4 */
undefined4 __cdecl FUN_004160a4(int param_1)
{
if (*(int *)(param_1 + 8) != 0) {
return *(undefined4 *)(*(int *)(*(int *)(param_1 + 8) + 4) + 4);
}
return 0;
}
/* @004160c0 file=? name=FUN_004160c0 */
int __cdecl FUN_004160c0(int *param_1)
{
int iVar1;
int iVar2;
iVar2 = 0;
(**(code **)(*param_1 + 4))(param_1);
while( true ) {
iVar1 = (**(code **)(*param_1 + 0x30))(param_1);
if (iVar1 == 0) break;
iVar2 = iVar2 + 1;
(**(code **)(*param_1 + 0xc))(param_1);
}
return iVar2;
}
/* @004160ec file=? name=FUN_004160ec */
int __cdecl FUN_004160ec(int *param_1,int param_2)
{
int iVar1;
int iVar2;
iVar2 = 0;
(**(code **)(*param_1 + 4))(param_1);
while( true ) {
iVar1 = (**(code **)(*param_1 + 0x30))(param_1);
if (iVar1 == 0) {
return 0;
}
if (iVar2 == param_2) break;
(**(code **)(*param_1 + 0xc))(param_1);
iVar2 = iVar2 + 1;
}
return iVar1;
}
/* @00416128 file=? name=FUN_00416128 */
void __cdecl FUN_00416128(int param_1)
{
int iVar1;
while ((*(int *)(param_1 + 8) != 0 &&
((iVar1 = *(int *)(*(int *)(*(int *)(param_1 + 8) + 4) + 4), iVar1 == 0 ||
((*(int *)(iVar1 + 4) != *(int *)(param_1 + 0xc) && (*(int *)(param_1 + 0xc) != -1)))))))
{
*(undefined4 *)(param_1 + 8) = *(undefined4 *)(*(int *)(param_1 + 8) + 0xc);
}
return;
}
/* @0041615c file=? name=FUN_0041615c */
void __cdecl FUN_0041615c(int param_1)
{
int iVar1;
while ((*(int *)(param_1 + 8) != 0 &&
((iVar1 = *(int *)(*(int *)(*(int *)(param_1 + 8) + 4) + 4), iVar1 == 0 ||
((*(int *)(iVar1 + 4) != *(int *)(param_1 + 0xc) && (*(int *)(param_1 + 0xc) != -1)))))))
{
*(undefined4 *)(param_1 + 8) = *(undefined4 *)(*(int *)(param_1 + 8) + 0x10);
}
return;
}
/* @00416190 file=? name=FUN_00416190 */
void __cdecl FUN_00416190(int param_1)
{
undefined4 *puVar1;
puVar1 = *(undefined4 **)(param_1 + 8);
*(undefined4 *)(param_1 + 8) = puVar1[3];
if (puVar1 != (undefined4 *)0x0) {
(**(code **)*puVar1)(puVar1,3);
}
return;
}
/* @004161b4 file=? name=FUN_004161b4 */
int __cdecl FUN_004161b4(int *param_1,undefined4 param_2,undefined4 param_3)
{
int iVar1;
int *piVar2;
(**(code **)(*param_1 + 4))(param_1);
while( true ) {
piVar2 = (int *)(**(code **)(*param_1 + 0x30))(param_1);
if (piVar2 == (int *)0x0) {
return 0;
}
iVar1 = (**(code **)(*piVar2 + 4))(piVar2,param_2,param_3);
if (iVar1 != 0) break;
(**(code **)(*param_1 + 0xc))(param_1);
}
return iVar1;
}
/* @004161fc file=? name=FUN_004161fc */
void __cdecl FUN_004161fc(int param_1,int param_2)
{
undefined4 *puVar1;
puVar1 = *(undefined4 **)(*(int *)(param_1 + 4) + 8);
while( true ) {
if (puVar1 == (undefined4 *)0x0) {
return;
}
if (param_2 == puVar1[1]) break;
puVar1 = (undefined4 *)puVar1[3];
}
*(undefined4 *)(param_1 + 8) = puVar1[3];
if (puVar1 == (undefined4 *)0x0) {
return;
}
(**(code **)*puVar1)(puVar1,3);
return;
}
/* @00416234 file=? name=FUN_00416234 */
undefined4 * __cdecl FUN_00416234(undefined4 *param_1)
{
FUN_0040328c(param_1,0);
*param_1 = &PTR_FUN_004e223c;
param_1[6] = 0;
param_1[7] = 0;
return param_1;
}
/* @0041625c file=? name=FUN_0041625c */
undefined4 * __cdecl FUN_0041625c(undefined4 *param_1,undefined4 param_2,undefined4 param_3)
{
FUN_004032dc(param_1,param_2,param_3,0);
*param_1 = &PTR_FUN_004e223c;
param_1[6] = 0;
param_1[7] = 0;
return param_1;
}
/* @0041628c file=? name=FUN_0041628c */
undefined4 * __cdecl FUN_0041628c(undefined4 *param_1,int param_2)
{
FUN_004032dc(param_1,*(undefined4 *)(param_2 + 0x3c),*(undefined4 *)(param_2 + 0x40),0);
*param_1 = &PTR_FUN_004e223c;
param_1[6] = 0;
param_1[7] = 0;
return param_1;
}
/* @004162c0 file=? name=FUN_004162c0 */
void __cdecl FUN_004162c0(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e223c;
FUN_00403310(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @004162ec file=? name=FUN_004162ec */
undefined8 __cdecl FUN_004162ec(int param_1)
{
return CONCAT44(*(undefined4 *)(param_1 + 0x18),1);
}
/* @00416320 file=? name=FUN_00416320 */
int FUN_00416320(void)
{
DAT_004e1e94 = DAT_004e1e94 + 1;
return DAT_004e1e94;
}
/* @0041632c file=? name=FUN_0041632c */
void __cdecl FUN_0041632c(int *param_1)
{
undefined4 uVar1;
int iVar2;
undefined4 local_c;
undefined4 local_8;
while( true ) {
iVar2 = (**(code **)(*param_1 + 4))(param_1);
if (iVar2 == 0) break;
(**(code **)(*param_1 + 0x1c))(param_1,&local_8,4);
(**(code **)(*param_1 + 0x1c))(param_1,&local_c,4);
(**(code **)(*param_1 + 0x18))(param_1,4);
(**(code **)(*param_1 + 0x18))(param_1,4);
uVar1 = (**(code **)(*param_1 + 0x2c))(param_1,local_8);
(**(code **)(*param_1 + 0x30))(param_1,uVar1,local_c);
}
return;
}
/* @0041639c file=munga/objstrm.cpp name=FUN_0041639c */
undefined4 FUN_0041639c(void)
{
FUN_0040385c(s_ObjectStream__MakeObject___Unkno_004e1e98,s_d__tesla_bt_munga_OBJSTRM_CPP_004e1ec4,
0xcc);
return 0;
}
/* @004163c4 file=? name=FUN_004163c4 */
void FUN_004163c4(void)
{
return;
}
/* @004163cc file=? name=FUN_004163cc */
void __cdecl FUN_004163cc(int *param_1,int param_2,int param_3)
{
undefined4 *puVar1;
void *this;
int local_18 [5];
param_1[6] = param_3;
puVar1 = (undefined4 *)FUN_00402298(0x14);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_00415529(puVar1,0,1);
}
param_1[7] = (int)puVar1;
FUN_0041645c(param_1,param_2);
FUN_0041560f(local_18,param_1[7]);
FUN_00417858(this,local_18,1);
FUN_0041564d(local_18,2);
puVar1 = (undefined4 *)param_1[7];
if (puVar1 != (undefined4 *)0x0) {
(**(code **)*puVar1)(puVar1,3);
}
param_1[7] = 0;
param_1[6] = 0;
return;
}
/* @0041645c file=? name=FUN_0041645c */
void __cdecl FUN_0041645c(int *param_1,int param_2)
{
int *piVar1;
uint *puVar2;
undefined4 *puVar3;
int *piVar4;
int iVar5;
char cVar6;
undefined4 *puVar7;
int *local_30;
undefined4 *local_2c;
int *local_28;
char *local_24;
int local_20;
undefined4 local_1c;
int *local_18;
int *local_14;
uint *local_10;
uint *local_c;
int *local_8;
local_8 = FUN_0040485c(param_2,(char *)0x0);
puVar7 = (undefined4 *)local_8[1];
while (puVar7 != (undefined4 *)0x0) {
while( true ) {
puVar2 = (uint *)FUN_00402298(0x10);
if (puVar2 == (uint *)0x0) {
local_c = (uint *)0x0;
}
else {
local_c = FUN_00402460(puVar2,s_include_004e1ee2);
}
local_c[3] = local_c[3] + 1;
puVar2 = (uint *)FUN_00402298(0x10);
if (puVar2 == (uint *)0x0) {
local_10 = (uint *)0x0;
}
else {
local_10 = FUN_00402460(puVar2,s_macro_004e1eea);
}
local_10[3] = local_10[3] + 1;
puVar3 = (undefined4 *)FUN_00402298(0x10);
if (puVar3 == (undefined4 *)0x0) {
local_14 = (int *)0x0;
}
else {
local_14 = (int *)FUN_004023f4(puVar3);
}
local_14[3] = local_14[3] + 1;
FUN_00402a98((int *)&local_18,(int *)&local_14,(char *)(puVar7 + 2));
piVar4 = local_18 + 3;
*piVar4 = *piVar4 + -1;
if (*piVar4 == 0) {
FUN_004024d8(local_18,3);
}
if (local_14[1] == 0) {
cVar6 = '\0';
}
else {
cVar6 = *(char *)local_14[2];
}
if (cVar6 == '!') break;
piVar4 = FUN_00404758(param_2,puVar7[1],(char *)0x0);
iVar5 = FUN_004027d8((int)local_14,(int)local_c);
if (iVar5 == 0) {
FUN_00416714(param_1,(int)piVar4);
}
else {
iVar5 = FUN_004027d8((int)local_14,(int)local_10);
if (iVar5 == 0) {
FUN_004167e0((int)param_1,(int)piVar4);
}
else {
local_1c = FUN_00414c8c((int *)&local_14);
local_20 = FUN_00416320();
local_2c = (undefined4 *)FUN_00402298(0x10);
if (local_2c == (undefined4 *)0x0) {
local_28 = (int *)0x0;
}
else {
local_28 = (int *)FUN_004023f4(local_2c);
}
local_28[3] = local_28[3] + 1;
FUN_00416914((int)param_1,(int)piVar4);
local_24 = (char *)FUN_00403ad0((int)piVar4,&DAT_004e1ef0);
if (local_24 != (char *)0x0) {
FUN_00402a98((int *)&local_30,(int *)&local_28,local_24);
piVar1 = local_30 + 3;
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_004024d8(local_30,3);
}
}
(**(code **)(*param_1 + 0x34))(param_1,piVar4,local_1c,local_20);
FUN_00416d88(param_1,(int)piVar4);
(**(code **)(*param_1 + 0x38))(param_1,local_1c,local_20,&local_28);
piVar1 = local_28 + 3;
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_004024d8(local_28,3);
}
}
}
if (piVar4 != (int *)0x0) {
(**(code **)*piVar4)(piVar4,3);
}
puVar7 = (undefined4 *)*puVar7;
piVar4 = local_14 + 3;
*piVar4 = *piVar4 + -1;
if (*piVar4 == 0) {
FUN_004024d8(local_14,3);
}
puVar2 = local_10 + 3;
*puVar2 = *puVar2 - 1;
if (*puVar2 == 0) {
FUN_004024d8((int *)local_10,3);
}
puVar2 = local_c + 3;
*puVar2 = *puVar2 - 1;
if (*puVar2 == 0) {
FUN_004024d8((int *)local_c,3);
}
if (puVar7 == (undefined4 *)0x0) goto LAB_004166f6;
}
puVar7 = (undefined4 *)*puVar7;
piVar4 = local_14 + 3;
*piVar4 = *piVar4 + -1;
if (*piVar4 == 0) {
FUN_004024d8(local_14,3);
}
puVar2 = local_10 + 3;
*puVar2 = *puVar2 - 1;
if (*puVar2 == 0) {
FUN_004024d8((int *)local_10,3);
}
puVar2 = local_c + 3;
*puVar2 = *puVar2 - 1;
if (*puVar2 == 0) {
FUN_004024d8((int *)local_c,3);
}
}
LAB_004166f6:
if (local_8 != (int *)0x0) {
(**(code **)*local_8)(local_8,3);
}
return;
}
/* @00416714 file=? name=FUN_00416714 */
void __cdecl FUN_00416714(int *param_1,int param_2)
{
int *piVar1;
undefined4 *puVar2;
bool bVar3;
undefined3 extraout_var;
undefined4 *puVar4;
int local_2c [8];
int *local_c;
int *local_8;
for (puVar2 = *(undefined4 **)(param_2 + 4); puVar2 != (undefined4 *)0x0;
puVar2 = (undefined4 *)*puVar2) {
bVar3 = FUN_00403c20((int)puVar2,&DAT_004e1ef5);
if (CONCAT31(extraout_var,bVar3) != 0) {
puVar4 = (undefined4 *)FUN_00402298(0x10);
if (puVar4 == (undefined4 *)0x0) {
local_8 = (int *)0x0;
}
else {
local_8 = (int *)FUN_004023f4(puVar4);
}
local_8[3] = local_8[3] + 1;
FUN_00402a98((int *)&local_c,(int *)&local_8,(char *)puVar2[1]);
piVar1 = local_c + 3;
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_004024d8(local_c,3);
}
FUN_00403e84(local_2c,(char *)local_8[2],1);
FUN_0041645c(param_1,(int)local_2c);
FUN_00403ecc(local_2c,2);
piVar1 = local_8 + 3;
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_004024d8(local_8,3);
}
}
}
return;
}
/* @004167e0 file=? name=FUN_004167e0 */
void __cdecl FUN_004167e0(int param_1,int param_2)
{
int *piVar1;
undefined4 *puVar2;
undefined4 *puVar3;
uint *puVar4;
uint *local_18;
char *local_14;
int *local_10;
undefined4 *local_c;
int *local_8;
for (puVar2 = *(undefined4 **)(param_2 + 4); puVar2 != (undefined4 *)0x0;
puVar2 = (undefined4 *)*puVar2) {
if (puVar2[1] != 0) {
puVar3 = (undefined4 *)FUN_00402298(0x10);
if (puVar3 == (undefined4 *)0x0) {
local_8 = (int *)0x0;
}
else {
local_8 = (int *)FUN_004023f4(puVar3);
}
local_8[3] = local_8[3] + 1;
FUN_00402a98((int *)&local_10,(int *)&local_8,(char *)(puVar2 + 2));
piVar1 = local_10 + 3;
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_004024d8(local_10,3);
}
puVar3 = (undefined4 *)FUN_00402298(0x10);
if (puVar3 == (undefined4 *)0x0) {
puVar3 = (undefined4 *)0x0;
}
else {
local_14 = (char *)puVar2[1];
puVar4 = (uint *)FUN_00402298(0x10);
if (puVar4 == (uint *)0x0) {
local_18 = (uint *)0x0;
}
else {
local_18 = FUN_00402460(puVar4,local_14);
}
local_18[3] = local_18[3] + 1;
puVar3 = FUN_0041547b(puVar3,(int *)&local_18);
}
puVar4 = local_18 + 3;
*puVar4 = *puVar4 - 1;
if (*puVar4 == 0) {
FUN_004024d8((int *)local_18,3);
}
local_c = (undefined4 *)
(**(code **)(**(int **)(param_1 + 0x1c) + 0xc))(*(int **)(param_1 + 0x1c),&local_8);
if ((local_c != (undefined4 *)0x0) && (local_c != (undefined4 *)0x0)) {
(**(code **)*local_c)(local_c,3);
}
(**(code **)(**(int **)(param_1 + 0x1c) + 8))(*(int **)(param_1 + 0x1c),puVar3,&local_8);
piVar1 = local_8 + 3;
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_004024d8(local_8,3);
}
}
}
return;
}
/* @00416914 file=? name=FUN_00416914 */
void __cdecl FUN_00416914(int param_1,int param_2)
{
int *piVar1;
char cVar2;
uint *puVar3;
undefined4 *puVar4;
int iVar5;
char *pcVar6;
uint uVar7;
uint uVar8;
char *pcVar9;
char *pcVar10;
uint local_88 [2];
char *local_80;
uint local_78 [2];
char *local_70;
uint local_68 [2];
char *local_60;
uint *local_58;
int *local_54;
int *local_50;
uint local_4c;
uint *local_48;
int *local_44;
int *local_40;
uint *local_3c;
int *local_38;
uint *local_34;
char *local_30;
uint local_2c;
int *local_28;
uint local_24;
int *local_20;
uint *local_1c;
int *local_18;
int *local_14;
char *local_10;
uint *local_c;
undefined4 *local_8;
local_8 = *(undefined4 **)(param_2 + 4);
do {
if (local_8 == (undefined4 *)0x0) {
return;
}
if (local_8[1] != 0) {
local_10 = (char *)local_8[1];
puVar3 = (uint *)FUN_00402298(0x10);
if (puVar3 == (uint *)0x0) {
local_c = (uint *)0x0;
}
else {
local_c = FUN_00402460(puVar3,local_10);
}
local_c[3] = local_c[3] + 1;
puVar4 = (undefined4 *)FUN_00402298(0x10);
if (puVar4 == (undefined4 *)0x0) {
local_14 = (int *)0x0;
}
else {
local_14 = (int *)FUN_004023f4(puVar4);
}
local_14[3] = local_14[3] + 1;
puVar4 = (undefined4 *)FUN_00402298(0x10);
if (puVar4 == (undefined4 *)0x0) {
local_18 = (int *)0x0;
}
else {
local_18 = (int *)FUN_004023f4(puVar4);
}
local_18[3] = local_18[3] + 1;
puVar3 = (uint *)FUN_00402298(0x10);
if (puVar3 == (uint *)0x0) {
local_1c = (uint *)0x0;
}
else {
local_1c = FUN_00402460(puVar3,&DAT_004e1efa);
}
local_1c[3] = local_1c[3] + 1;
puVar4 = (undefined4 *)FUN_00402298(0x10);
if (puVar4 == (undefined4 *)0x0) {
local_20 = (int *)0x0;
}
else {
local_20 = (int *)FUN_004023f4(puVar4);
}
local_20[3] = local_20[3] + 1;
local_24 = 0;
while( true ) {
local_2c = local_24;
FUN_00402838(local_68,local_c,local_24,(char *)0x0);
local_30 = local_60;
puVar3 = (uint *)FUN_00402298(0x10);
if (puVar3 == (uint *)0x0) {
local_34 = (uint *)0x0;
}
else {
local_34 = FUN_00402460(puVar3,local_30);
}
local_34[3] = local_34[3] + 1;
FUN_004024d8((int *)local_68,2);
FUN_00402a4c((int *)&local_28,(int *)&local_18,(int *)&local_34);
iVar5 = FUN_004027d8((int)local_28,(int)local_20);
uVar7 = (uint)(iVar5 != 0);
piVar1 = local_28 + 3;
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_004024d8(local_28,3);
}
puVar3 = local_34 + 3;
*puVar3 = *puVar3 - 1;
if (*puVar3 == 0) {
FUN_004024d8((int *)local_34,3);
}
if (uVar7 == 0) break;
iVar5 = FUN_004027d8((int)local_14,(int)local_20);
if (iVar5 != 0) {
FUN_00402624(local_78,(int)local_14,(int)local_1c);
pcVar9 = local_70;
puVar3 = (uint *)FUN_00402298(0x10);
if (puVar3 == (uint *)0x0) {
local_3c = (uint *)0x0;
}
else {
local_3c = FUN_00402460(puVar3,pcVar9);
}
local_3c[3] = local_3c[3] + 1;
FUN_004024d8((int *)local_78,2);
FUN_00402a4c((int *)&local_38,(int *)&local_14,(int *)&local_3c);
piVar1 = local_38 + 3;
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_004024d8(local_38,3);
}
puVar3 = local_3c + 3;
*puVar3 = *puVar3 - 1;
if (*puVar3 == 0) {
FUN_004024d8((int *)local_3c,3);
}
}
FUN_00416ce8(&local_40,param_1,(int *)&local_18);
FUN_00402624(local_88,(int)local_14,(int)local_40);
pcVar9 = local_80;
puVar3 = (uint *)FUN_00402298(0x10);
if (puVar3 == (uint *)0x0) {
local_48 = (uint *)0x0;
}
else {
local_48 = FUN_00402460(puVar3,pcVar9);
}
local_48[3] = local_48[3] + 1;
FUN_004024d8((int *)local_88,2);
FUN_00402a4c((int *)&local_44,(int *)&local_14,(int *)&local_48);
piVar1 = local_44 + 3;
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_004024d8(local_44,3);
}
puVar3 = local_48 + 3;
*puVar3 = *puVar3 - 1;
if (*puVar3 == 0) {
FUN_004024d8((int *)local_48,3);
}
piVar1 = local_40 + 3;
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_004024d8(local_40,3);
}
local_24 = local_24 + 1;
}
local_4c = local_14[1] + 1;
pcVar6 = (char *)FUN_004022b0(local_4c);
uVar7 = 0xffffffff;
pcVar9 = (char *)local_14[2];
do {
pcVar10 = pcVar9;
if (uVar7 == 0) break;
uVar7 = uVar7 - 1;
pcVar10 = pcVar9 + 1;
cVar2 = *pcVar9;
pcVar9 = pcVar10;
} while (cVar2 != '\0');
uVar7 = ~uVar7;
pcVar9 = pcVar10 + -uVar7;
pcVar10 = pcVar6;
for (uVar8 = uVar7 >> 2; uVar8 != 0; uVar8 = uVar8 - 1) {
*(undefined4 *)pcVar10 = *(undefined4 *)pcVar9;
pcVar9 = pcVar9 + 4;
pcVar10 = pcVar10 + 4;
}
for (uVar7 = uVar7 & 3; uVar7 != 0; uVar7 = uVar7 - 1) {
*pcVar10 = *pcVar9;
pcVar9 = pcVar9 + 1;
pcVar10 = pcVar10 + 1;
}
local_8[1] = pcVar6;
piVar1 = local_20 + 3;
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_004024d8(local_20,3);
}
puVar3 = local_1c + 3;
*puVar3 = *puVar3 - 1;
if (*puVar3 == 0) {
FUN_004024d8((int *)local_1c,3);
}
local_50 = local_18;
piVar1 = local_18 + 3;
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_004024d8(local_18,3);
}
local_54 = local_14;
piVar1 = local_14 + 3;
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_004024d8(local_14,3);
}
local_58 = local_c;
puVar3 = local_c + 3;
*puVar3 = *puVar3 - 1;
if (*puVar3 == 0) {
FUN_004024d8((int *)local_c,3);
}
}
local_8 = (undefined4 *)*local_8;
} while( true );
}
/* @00416ce8 file=? name=FUN_00416ce8 */
undefined4 * __cdecl FUN_00416ce8(undefined4 *param_1,int param_2,int *param_3)
{
int *piVar1;
int iVar2;
int *local_10;
int *local_c;
int *local_8;
local_8 = (int *)*param_3;
local_8[3] = local_8[3] + 1;
while( true ) {
iVar2 = (**(code **)(**(int **)(param_2 + 0x1c) + 0xc))(*(int **)(param_2 + 0x1c),&local_8);
if (iVar2 == 0) break;
local_10 = *(int **)(iVar2 + 0xc);
local_10[3] = local_10[3] + 1;
FUN_00402a4c((int *)&local_c,(int *)&local_8,(int *)&local_10);
piVar1 = local_c + 3;
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_004024d8(local_c,3);
}
piVar1 = local_10 + 3;
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_004024d8(local_10,3);
}
}
*param_1 = local_8;
local_8[3] = local_8[3] + 1;
piVar1 = local_8 + 3;
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_004024d8(local_8,3);
}
return param_1;
}
/* @00416d88 file=? name=FUN_00416d88 */
void __cdecl FUN_00416d88(undefined4 param_1,int param_2)
{
undefined4 *puVar1;
for (puVar1 = *(undefined4 **)(param_2 + 4); puVar1 != (undefined4 *)0x0;
puVar1 = (undefined4 *)*puVar1) {
if ((int *)puVar1[1] != (int *)0x0) {
FUN_004022e8((int *)puVar1[1]);
}
}
return;
}
/* @00416db0 file=munga/objstrm.cpp name=FUN_00416db0 */
void FUN_00416db0(void)
{
FUN_0040385c(s_ObjectStream__BuildFromPage___Un_004e1efc,s_d__tesla_bt_munga_OBJSTRM_CPP_004e1f2b,
0x296);
return;
}
/* @00416dd0 file=? name=FUN_00416dd0 */
void FUN_00416dd0(void)
{
return;
}
/* @00416dd8 file=? name=FUN_00416dd8 */
undefined4 * __cdecl FUN_00416dd8(undefined4 *param_1)
{
FUN_004178cc(param_1,2);
*param_1 = &PTR_FUN_004e2230;
FUN_00417410(param_1 + 3,500,0,1);
FUN_004174a5(param_1 + 9,0,1);
return param_1;
}
/* @00416e1c file=? name=FUN_00416e1c */
void __cdecl FUN_00416e1c(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e2230;
FUN_00416e80((int)param_1);
FUN_004174c8(param_1 + 9,2);
FUN_00417437(param_1 + 3,2);
FUN_0041790c(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00416e6c file=? name=FUN_00416e6c */
undefined4 FUN_00416e6c(void)
{
FUN_00415f1c();
return 1;
}
/* @00416e80 file=? name=FUN_00416e80 */
void __cdecl FUN_00416e80(int param_1)
{
void *this;
int local_38 [8];
int local_18 [5];
FUN_0041758b(local_18,param_1 + 0x24);
FUN_00417858(local_18,local_18,1);
FUN_004175c9(local_18,2);
FUN_004175f5(local_38,param_1 + 0xc);
FUN_00417858(this,local_38,1);
FUN_00417633(local_38,2);
return;
}
/* @00416ee8 file=? name=FUN_00416ee8 */
void __cdecl FUN_00416ee8(undefined4 param_1)
{
(**(code **)(DAT_00521f70 + 8))(&DAT_00521f70,param_1,&stack0x00000008);
return;
}
/* @00416f08 file=? name=FUN_00416f08 */
void FUN_00416f08(void)
{
(**(code **)(DAT_00521f70 + 0xc))(&DAT_00521f70,&stack0x00000004);
return;
}
/* @00416f24 file=? name=FUN_00416f24 */
void __cdecl FUN_00416f24(undefined4 param_1,undefined4 param_2)
{
undefined4 *puVar1;
puVar1 = (undefined4 *)FUN_00402298(0x10);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_004173bf(puVar1,&param_1);
}
(**(code **)(DAT_00521f88 + 8))(&DAT_00521f88,puVar1,param_2);
return;
}
/* @00416f60 file=? name=FUN_00416f60 */
undefined4 __cdecl FUN_00416f60(undefined4 param_1)
{
int iVar1;
iVar1 = (**(code **)(DAT_00521f88 + 0xc))(&DAT_00521f88,param_1);
if (iVar1 != 0) {
return *(undefined4 *)(iVar1 + 0xc);
}
return 0;
}
/* @00416f88 file=? name=FUN_00416f88 */
undefined4 * __cdecl FUN_00416f88(undefined4 *param_1)
{
FUN_00416234(param_1);
*param_1 = &PTR_FUN_004e21f4;
param_1[8] = 0;
param_1[9] = 0;
return param_1;
}
/* @00416fac file=? name=FUN_00416fac */
undefined4 * __cdecl FUN_00416fac(undefined4 *param_1,undefined4 param_2,undefined4 param_3)
{
FUN_0041625c(param_1,param_2,param_3);
*param_1 = &PTR_FUN_004e21f4;
param_1[8] = 0;
param_1[9] = 0;
return param_1;
}
/* @00416fdc file=? name=FUN_00416fdc */
undefined4 * __cdecl FUN_00416fdc(undefined4 *param_1,int param_2)
{
FUN_0041628c(param_1,param_2);
*param_1 = &PTR_FUN_004e21f4;
param_1[8] = 0;
param_1[9] = 0;
return param_1;
}
/* @00417008 file=? name=FUN_00417008 */
void __cdecl FUN_00417008(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e21f4;
FUN_004162c0(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00417034 file=? name=FUN_00417034 */
undefined8 __cdecl FUN_00417034(int param_1)
{
undefined8 uVar1;
uVar1 = FUN_004162ec(param_1);
return CONCAT44((int)((ulonglong)uVar1 >> 0x20),1);
}
/* @00417054 file=? name=FUN_00417054 */
void __cdecl FUN_00417054(int *param_1)
{
int local_1c [6];
FUN_00415679(local_1c,0,1);
param_1[8] = (int)local_1c;
FUN_0041632c(param_1);
param_1[8] = 0;
FUN_0041569c(local_1c,2);
return;
}
/* @00417094 file=? name=FUN_00417094 */
void __cdecl FUN_00417094(int param_1,undefined4 param_2)
{
FUN_004170b0(param_1,param_2);
return;
}
/* @004170b0 file=? name=FUN_004170b0 */
void __cdecl FUN_004170b0(int param_1,undefined4 param_2)
{
(**(code **)(**(int **)(param_1 + 0x20) + 8))(*(int **)(param_1 + 0x20),param_2,&stack0x0000000c);
return;
}
/* @004170cc file=? name=FUN_004170cc */
void __cdecl FUN_004170cc(undefined4 param_1,undefined4 param_2)
{
FUN_00416ee8(param_2);
return;
}
/* @004170e4 file=? name=FUN_004170e4 */
int __cdecl FUN_004170e4(int param_1,undefined4 param_2)
{
int iVar1;
iVar1 = (**(code **)(**(int **)(param_1 + 0x20) + 0xc))(*(int **)(param_1 + 0x20),&param_2);
if ((iVar1 == 0) && (iVar1 = FUN_00416f08(), iVar1 == 0)) {
iVar1 = 0;
}
return iVar1;
}
/* @00417120 file=? name=FUN_00417120 */
void __cdecl FUN_00417120(int *param_1,int param_2,int param_3)
{
void *this;
int local_30 [5];
int local_1c [6];
FUN_004157be(local_1c,0,1);
param_1[9] = (int)local_1c;
FUN_004163cc(param_1,param_2,param_3);
FUN_0041765f(local_30,(int)local_1c);
FUN_00417858(this,local_30,1);
FUN_004176bc(local_30,2);
param_1[9] = 0;
FUN_004157e1(local_1c,2);
return;
}
/* @00417198 file=? name=FUN_00417198 */
void __cdecl FUN_00417198(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)
{
FUN_004171b4(param_1,param_3,param_4);
return;
}
/* @004171b4 file=? name=FUN_004171b4 */
void __cdecl FUN_004171b4(int param_1,undefined4 param_2,undefined4 param_3)
{
undefined4 *puVar1;
puVar1 = (undefined4 *)FUN_00402298(0x10);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_004173bf(puVar1,&param_2);
}
(**(code **)(**(int **)(param_1 + 0x24) + 8))(*(int **)(param_1 + 0x24),puVar1,param_3);
return;
}
/* @004171f0 file=? name=FUN_004171f0 */
void __cdecl FUN_004171f0(undefined4 param_1,undefined4 param_2,undefined4 param_3)
{
FUN_00416f24(param_2,param_3);
return;
}
/* @00417208 file=? name=FUN_00417208 */
undefined4 __cdecl FUN_00417208(int param_1,undefined4 param_2)
{
int iVar1;
undefined4 uVar2;
iVar1 = (**(code **)(**(int **)(param_1 + 0x24) + 0xc))(*(int **)(param_1 + 0x24),param_2);
if (iVar1 == 0) {
uVar2 = FUN_00416f60(param_2);
}
else {
uVar2 = *(undefined4 *)(iVar1 + 0xc);
}
return uVar2;
}
/* @00417240 file=munga/objstrm.cpp name=FUN_00417240 */
void __cdecl FUN_00417240(int *param_1,int param_2,int *param_3)
{
int *piVar1;
undefined4 *puVar2;
char *pcVar3;
int *local_10;
int local_c;
int *local_8;
puVar2 = (undefined4 *)FUN_00402298(0x10);
if (puVar2 == (undefined4 *)0x0) {
local_8 = (int *)0x0;
}
else {
local_8 = (int *)FUN_004023f4(puVar2);
}
local_8[3] = local_8[3] + 1;
pcVar3 = (char *)FUN_00403ad0(param_2,*(char **)(*param_3 + 8));
if (pcVar3 == (char *)0x0) {
FUN_004dbb24(&DAT_00524e20,s_PlugStream_FindEntryAndWriteObje_004e1f49,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,*(char **)(*param_3 + 8),(char *)0x0);
FUN_004dbb24(&DAT_00524e20,&DAT_004e1f7f,(char *)0x0);
FUN_0040385c(s_PlugStream_FindEntryAndWriteObje_004e1f81,
s_d__tesla_bt_munga_OBJSTRM_CPP_004e1fbb,0x4c1);
}
FUN_00402a98((int *)&local_10,(int *)&local_8,pcVar3);
piVar1 = local_10 + 3;
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_004024d8(local_10,3);
}
local_c = FUN_00417208((int)param_1,&local_8);
if (local_c == 0) {
FUN_004dbb24(&DAT_00524e20,s_PlugStream_FindEntryAndWriteObje_004e1fd9,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,(char *)local_8[2],(char *)0x0);
FUN_004dbb24(&DAT_00524e20,&DAT_004e2010,(char *)0x0);
FUN_0040385c(s_PlugStream_FindEntryAndWriteObje_004e2012,
s_d__tesla_bt_munga_OBJSTRM_CPP_004e2053,0x4cc);
}
(**(code **)(*param_1 + 0x20))(param_1,&local_c,4);
piVar1 = local_8 + 3;
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_004024d8(local_8,3);
}
return;
}
/* @004173b8 file=? name=FUN_004173b8 */
undefined4 FUN_004173b8(void)
{
return 0;
}
/* @004173bf file=? name=FUN_004173bf */
undefined4 * __cdecl FUN_004173bf(undefined4 *param_1,undefined4 *param_2)
{
FUN_00415e90(param_1,1);
*param_1 = &PTR_FUN_004e21f0;
param_1[3] = *param_2;
return param_1;
}
/* @004173e4 file=? name=FUN_004173e4 */
void __cdecl FUN_004173e4(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e21f0;
FUN_00415ed8(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00417410 file=? name=FUN_00417410 */
undefined4 * __cdecl
FUN_00417410(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)
{
FUN_00419774(param_1,param_2,param_3,param_4);
*param_1 = &PTR_FUN_004e21d8;
return param_1;
}
/* @00417437 file=? name=FUN_00417437 */
void __cdecl FUN_00417437(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e21d8;
FUN_004197d4(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00417463 file=? name=FUN_00417463 */
undefined4 * __cdecl FUN_00417463(int param_1)
{
undefined4 *puVar1;
puVar1 = (undefined4 *)FUN_00415723();
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_00415679(puVar1,*(undefined4 *)(param_1 + 4),*(undefined4 *)(param_1 + 0xc));
}
return puVar1;
}
/* @00417492 file=? name=FUN_00417492 */
int __cdecl FUN_00417492(int param_1,int *param_2)
{
return *param_2 % *(int *)(param_1 + 0x14);
}
/* @004174a5 file=? name=FUN_004174a5 */
undefined4 * __cdecl FUN_004174a5(undefined4 *param_1,undefined4 param_2,undefined4 param_3)
{
FUN_00418bb8(param_1,param_2,param_3);
*param_1 = &PTR_FUN_004e21bc;
return param_1;
}
/* @004174c8 file=? name=FUN_004174c8 */
void __cdecl FUN_004174c8(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e21bc;
FUN_00418be0(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @004174f4 file=? name=FUN_004174f4 */
undefined4 __cdecl FUN_004174f4(undefined4 param_1,int param_2,int param_3)
{
int iVar1;
undefined4 uVar2;
iVar1 = FUN_004027d8(*(int *)(param_2 + 0x20),*(int *)(param_3 + 0x20));
if (iVar1 == 0) {
uVar2 = 0;
}
else {
iVar1 = FUN_004027d8(*(int *)(param_2 + 0x20),*(int *)(param_3 + 0x20));
if (iVar1 < 1) {
uVar2 = 0xffffffff;
}
else {
uVar2 = 1;
}
}
return uVar2;
}
/* @00417541 file=? name=FUN_00417541 */
undefined4 __cdecl FUN_00417541(undefined4 param_1,int *param_2,int param_3)
{
int iVar1;
undefined4 uVar2;
iVar1 = FUN_004027d8(*param_2,*(int *)(param_3 + 0x20));
if (iVar1 == 0) {
uVar2 = 0;
}
else {
iVar1 = FUN_004027d8(*param_2,*(int *)(param_3 + 0x20));
if (iVar1 < 1) {
uVar2 = 0xffffffff;
}
else {
uVar2 = 1;
}
}
return uVar2;
}
/* @0041758b file=? name=FUN_0041758b */
int * __cdecl FUN_0041758b(int *param_1,int param_2)
{
FUN_00418f34(param_1,param_2);
*param_1 = (int)&PTR_FUN_004e2160;
return param_1;
}
/* @004175aa file=? name=FUN_004175aa */
int * __cdecl FUN_004175aa(int *param_1,int param_2)
{
FUN_00418f34(param_1,param_2);
*param_1 = (int)&PTR_FUN_004e2160;
return param_1;
}
/* @004175c9 file=? name=FUN_004175c9 */
void __cdecl FUN_004175c9(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e2160;
FUN_00418f5c(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @004175f5 file=? name=FUN_004175f5 */
int * __cdecl FUN_004175f5(int *param_1,int param_2)
{
FUN_00419928(param_1,param_2);
*param_1 = (int)&PTR_FUN_004e2104;
return param_1;
}
/* @00417614 file=? name=FUN_00417614 */
int * __cdecl FUN_00417614(int *param_1,int param_2)
{
FUN_00419928(param_1,param_2);
*param_1 = (int)&PTR_FUN_004e2104;
return param_1;
}
/* @00417633 file=? name=FUN_00417633 */
void __cdecl FUN_00417633(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e2104;
FUN_00419968(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041765f file=? name=FUN_0041765f */
undefined4 * __cdecl FUN_0041765f(undefined4 *param_1,int param_2)
{
FUN_004188dc(param_1,param_2);
*param_1 = &PTR_FUN_004e20a8;
return param_1;
}
/* @0041767e file=? name=FUN_0041767e */
undefined4 * __cdecl FUN_0041767e(undefined4 *param_1,int param_2)
{
FUN_004188dc(param_1,param_2);
*param_1 = &PTR_FUN_004e20a8;
return param_1;
}
/* @0041769d file=? name=FUN_0041769d */
undefined4 * __cdecl FUN_0041769d(undefined4 *param_1,int param_2)
{
FUN_00418904(param_1,param_2);
*param_1 = &PTR_FUN_004e20a8;
return param_1;
}
/* @004176bc file=? name=FUN_004176bc */
void __cdecl FUN_004176bc(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e20a8;
FUN_00418930(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @004176e8 file=? name=FUN_004176e8 */
undefined4 * __cdecl FUN_004176e8(undefined4 param_1,int param_2,int *param_3)
{
undefined4 *puVar1;
puVar1 = (undefined4 *)FUN_00415a83();
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_004159cf(puVar1,param_1,param_2,param_3);
}
return puVar1;
}
/* @00417718 file=? name=FUN_00417718 */
void __cdecl FUN_00417718(undefined4 *param_1,undefined4 param_2)
{
*param_1 = &PTR_FUN_004e23c4;
param_1[1] = param_2;
return;
}
/* @0041772c file=? name=FUN_0041772c */
void __cdecl FUN_0041772c(int *param_1,byte param_2)
{
if ((param_1 != (int *)0x0) && (*param_1 = (int)&PTR_FUN_004e23c4, (param_2 & 1) != 0)) {
FUN_004022d0(param_1);
}
return;
}
/* @0041774c file=? name=FUN_0041774c */
undefined4 FUN_0041774c(void)
{
return 1;
}
/* @00417758 file=munga/socket.cpp name=FUN_00417758 */
void FUN_00417758(void)
{
FUN_0040385c(s_Socket__AddImplementation___Shou_004e2278,s_d__tesla_bt_munga_SOCKET_CPP_004e22ac,
0x46);
return;
}
/* @00417774 file=? name=FUN_00417774 */
undefined4 * __cdecl FUN_00417774(undefined4 *param_1,undefined4 param_2)
{
FUN_00415c70(param_1);
*param_1 = &PTR_FUN_004e2374;
param_1[1] = param_2;
return param_1;
}
/* @00417794 file=? name=FUN_00417794 */
void __cdecl FUN_00417794(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e2374;
FUN_00415c80(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @004177c0 file=? name=FUN_004177c0 */
undefined4 FUN_004177c0(void)
{
return 1;
}
/* @004177cc file=munga/socket.cpp name=FUN_004177cc */
void FUN_004177cc(void)
{
FUN_0040385c(s_SocketIterator__Remove___Should_n_004e22c9,s_d__tesla_bt_munga_SOCKET_CPP_004e22fa,
0x6f);
return;
}
/* @004177e8 file=? name=FUN_004177e8 */
undefined4 __cdecl FUN_004177e8(int *param_1,int param_2)
{
int iVar1;
(**(code **)(*param_1 + 4))(param_1);
do {
iVar1 = (**(code **)(*param_1 + 0x28))(param_1);
if (iVar1 == 0) {
return 0;
}
} while (param_2 != iVar1);
return 1;
}
/* @0041781c file=? name=FUN_0041781c */
void __cdecl FUN_0041781c(int *param_1,int param_2)
{
int iVar1;
(**(code **)(*param_1 + 4))(param_1);
while( true ) {
iVar1 = (**(code **)(*param_1 + 0x30))(param_1);
if (iVar1 == 0) {
return;
}
if (param_2 == iVar1) break;
(**(code **)(*param_1 + 0xc))(param_1);
}
(**(code **)(*param_1 + 0x48))(param_1);
return;
}
/* @00417858 file=? name=FUN_00417858 */
void __thiscall FUN_00417858(void *this,int *param_1,int param_2)
{
undefined4 *puVar1;
void *local_8;
local_8 = this;
if (param_2 != 0) {
local_8 = *(void **)(param_1[1] + 4);
*(undefined4 *)(param_1[1] + 4) = 0;
}
(**(code **)(*param_1 + 4))(param_1);
while( true ) {
puVar1 = (undefined4 *)(**(code **)(*param_1 + 0x28))(param_1);
if (puVar1 == (undefined4 *)0x0) break;
if (puVar1 != (undefined4 *)0x0) {
(**(code **)*puVar1)(puVar1,3);
}
}
if (param_2 != 0) {
*(void **)(param_1[1] + 4) = local_8;
}
return;
}
/* @004178b0 file=munga/socket.cpp name=FUN_004178b0 */
void FUN_004178b0(void)
{
FUN_0040385c(s_SocketIterator__InsertImplementa_004e2317,s_d__tesla_bt_munga_SOCKET_CPP_004e2356,
0x116);
return;
}
/* @004178cc file=? name=FUN_004178cc */
undefined4 * __cdecl FUN_004178cc(undefined4 *param_1,undefined4 param_2)
{
FUN_00415e90(param_1,param_2);
*param_1 = &PTR_FUN_004e23cc;
return param_1;
}
/* @004178ec file=? name=FUN_004178ec */
undefined4 * __cdecl FUN_004178ec(undefined4 *param_1,int *param_2)
{
FUN_00415eb4(param_1,param_2);
*param_1 = &PTR_FUN_004e23cc;
return param_1;
}
/* @0041790c file=? name=FUN_0041790c */
void __cdecl FUN_0041790c(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e23cc;
FUN_00415ed8(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00417938 file=? name=FUN_00417938 */
void FUN_00417938(void)
{
return;
}
/* @00417940 file=? name=FUN_00417940 */
undefined4 * __cdecl FUN_00417940(undefined4 *param_1,undefined4 param_2,int param_3)
{
FUN_00415ddc(param_1,param_2,param_3);
*param_1 = &PTR_FUN_004e2414;
return param_1;
}
/* @00417964 file=? name=FUN_00417964 */
void __cdecl FUN_00417964(int *param_1,byte param_2)
{
int iVar1;
int *piVar2;
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e2414;
iVar1 = param_1[1];
*(undefined4 *)(iVar1 + 8) = 0;
FUN_00415e38((int)param_1);
piVar2 = *(int **)(iVar1 + 4);
if (piVar2 != (int *)0x0) {
(**(code **)(*piVar2 + 8))(piVar2,iVar1,param_1[2]);
}
FUN_00415e04(param_1,0);
if ((param_2 & 1) != 0) {
FUN_00402f98(0x4e23d8,param_1);
}
}
return;
}
/* @004179c0 file=? name=FUN_004179c0 */
undefined4 FUN_004179c0(void)
{
FUN_00415e2c();
return 1;
}
/* @004179d4 file=? name=FUN_004179d4 */
undefined4 * __cdecl FUN_004179d4(undefined4 *param_1,undefined4 param_2)
{
FUN_00417718(param_1,param_2);
*param_1 = &PTR_FUN_004e240c;
param_1[2] = 0;
return param_1;
}
/* @004179f8 file=? name=FUN_004179f8 */
void __cdecl FUN_004179f8(int *param_1,byte param_2)
{
undefined4 *puVar1;
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e240c;
param_1[1] = 0;
puVar1 = (undefined4 *)param_1[2];
if ((puVar1 != (undefined4 *)0x0) && (puVar1 != (undefined4 *)0x0)) {
(**(code **)*puVar1)(puVar1,3);
}
FUN_0041772c(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00417a40 file=? name=FUN_00417a40 */
undefined4 FUN_00417a40(void)
{
FUN_0041774c();
return 1;
}
/* @00417a5c file=? name=FUN_00417a5c */
void __cdecl FUN_00417a5c(int param_1)
{
undefined4 *puVar1;
puVar1 = *(undefined4 **)(param_1 + 8);
if (puVar1 != (undefined4 *)0x0) {
if (puVar1 != (undefined4 *)0x0) {
(**(code **)*puVar1)(puVar1,3);
}
*(undefined4 *)(param_1 + 8) = 0;
}
return;
}
/* @00417a80 file=? name=FUN_00417a80 */
void __cdecl FUN_00417a80(int param_1,int param_2)
{
undefined4 *puVar1;
puVar1 = FUN_00402f74(0x4e23d8);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_00417940(puVar1,param_1,param_2);
}
*(undefined4 **)(param_1 + 8) = puVar1;
return;
}
/* @00417ab4 file=? name=FUN_00417ab4 */
undefined4 __cdecl FUN_00417ab4(int param_1)
{
if (*(int *)(param_1 + 8) != 0) {
return *(undefined4 *)(*(int *)(param_1 + 8) + 8);
}
return 0;
}
/* @00417af8 file=? name=FUN_00417af8 */
undefined4 * __cdecl
FUN_00417af8(undefined4 *param_1,undefined4 param_2,int param_3,int param_4,int param_5)
{
FUN_00415ddc(param_1,param_2,param_3);
*param_1 = &PTR_FUN_004e24a4;
param_1[5] = param_4;
if (param_4 != 0) {
*(undefined4 **)(param_4 + 0x18) = param_1;
}
param_1[6] = param_5;
if (param_5 != 0) {
*(undefined4 **)(param_5 + 0x14) = param_1;
}
return param_1;
}
/* @00417b38 file=? name=FUN_00417b38 */
void __cdecl FUN_00417b38(int *param_1,byte param_2)
{
int iVar1;
int *piVar2;
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e24a4;
iVar1 = param_1[1];
if (param_1[6] == 0) {
*(int *)(iVar1 + 8) = param_1[5];
}
else {
*(int *)(param_1[6] + 0x14) = param_1[5];
}
if (param_1[5] == 0) {
*(int *)(iVar1 + 0xc) = param_1[6];
}
else {
*(int *)(param_1[5] + 0x18) = param_1[6];
}
param_1[5] = 0;
param_1[6] = 0;
FUN_00415e38((int)param_1);
piVar2 = *(int **)(iVar1 + 4);
if (piVar2 != (int *)0x0) {
(**(code **)(*piVar2 + 8))(piVar2,iVar1,param_1[2]);
}
FUN_00415e04(param_1,0);
if ((param_2 & 1) != 0) {
FUN_00402f98(0x4e2418,param_1);
}
}
return;
}
/* @00417bc0 file=? name=FUN_00417bc0 */
undefined4 FUN_00417bc0(void)
{
FUN_00415e2c();
return 1;
}
/* @00417be0 file=? name=FUN_00417be0 */
undefined4 * __cdecl FUN_00417be0(undefined4 *param_1,undefined4 param_2)
{
FUN_00417718(param_1,param_2);
*param_1 = &PTR_FUN_004e249c;
param_1[2] = 0;
param_1[3] = 0;
return param_1;
}
/* @00417c0c file=? name=FUN_00417c0c */
void __cdecl FUN_00417c0c(int *param_1,byte param_2)
{
undefined4 *puVar1;
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e249c;
param_1[1] = 0;
while (puVar1 = (undefined4 *)param_1[2], puVar1 != (undefined4 *)0x0) {
if (puVar1 != (undefined4 *)0x0) {
(**(code **)*puVar1)(puVar1,3);
}
}
FUN_0041772c(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00417c54 file=? name=FUN_00417c54 */
undefined4 FUN_00417c54(void)
{
FUN_0041774c();
return 1;
}
/* @00417c74 file=? name=FUN_00417c74 */
void __cdecl FUN_00417c74(int param_1,int param_2)
{
undefined4 *puVar1;
puVar1 = FUN_00402f74(0x4e2418);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_00417af8(puVar1,param_1,param_2,0,*(int *)(param_1 + 0xc));
}
*(undefined4 **)(param_1 + 0xc) = puVar1;
if (*(int *)(param_1 + 8) == 0) {
*(undefined4 **)(param_1 + 8) = puVar1;
}
return;
}
/* @00417cbc file=? name=FUN_00417cbc */
void __cdecl FUN_00417cbc(int param_1,int param_2,int param_3)
{
undefined4 *puVar1;
puVar1 = FUN_00402f74(0x4e2418);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_00417af8(puVar1,param_1,param_2,param_3,*(int *)(param_3 + 0x18));
}
if (param_3 == *(int *)(param_1 + 8)) {
*(undefined4 **)(param_1 + 8) = puVar1;
}
return;
}
/* @00417d00 file=? name=FUN_00417d00 */
undefined4 * __cdecl FUN_00417d00(undefined4 *param_1,int param_2)
{
FUN_00417774(param_1,param_2);
*param_1 = &PTR_FUN_004e244c;
param_1[2] = *(undefined4 *)(param_2 + 8);
return param_1;
}
/* @00417d28 file=? name=FUN_00417d28 */
undefined4 * __cdecl FUN_00417d28(undefined4 *param_1,int param_2)
{
FUN_00417774(param_1,*(undefined4 *)(param_2 + 4));
*param_1 = &PTR_FUN_004e244c;
param_1[2] = *(undefined4 *)(param_2 + 8);
return param_1;
}
/* @00417d54 file=? name=FUN_00417d54 */
void __cdecl FUN_00417d54(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e244c;
FUN_00417794(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00417d80 file=? name=FUN_00417d80 */
undefined4 FUN_00417d80(void)
{
FUN_004177c0();
return 1;
}
/* @00417d9c file=? name=FUN_00417d9c */
void __cdecl FUN_00417d9c(int param_1)
{
*(undefined4 *)(param_1 + 8) = *(undefined4 *)(*(int *)(param_1 + 4) + 8);
return;
}
/* @00417db0 file=? name=FUN_00417db0 */
void __cdecl FUN_00417db0(int param_1)
{
*(undefined4 *)(param_1 + 8) = *(undefined4 *)(*(int *)(param_1 + 4) + 0xc);
return;
}
/* @00417dc4 file=? name=FUN_00417dc4 */
void __cdecl FUN_00417dc4(int param_1)
{
*(undefined4 *)(param_1 + 8) = *(undefined4 *)(*(int *)(param_1 + 8) + 0x14);
return;
}
/* @00417dd8 file=? name=FUN_00417dd8 */
void __cdecl FUN_00417dd8(int param_1)
{
*(undefined4 *)(param_1 + 8) = *(undefined4 *)(*(int *)(param_1 + 8) + 0x18);
return;
}
/* @00417dec file=? name=FUN_00417dec */
undefined4 __cdecl FUN_00417dec(int param_1)
{
int iVar1;
undefined4 uVar2;
iVar1 = *(int *)(param_1 + 8);
if (iVar1 != 0) {
uVar2 = *(undefined4 *)(iVar1 + 8);
*(undefined4 *)(param_1 + 8) = *(undefined4 *)(iVar1 + 0x14);
return uVar2;
}
return 0;
}