Files
BT411/reference/decomp/all/part_002.c
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

8447 lines
174 KiB
C

/* @00417e0c file=? name=FUN_00417e0c */
undefined4 __cdecl FUN_00417e0c(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 + 0x18);
return uVar2;
}
return 0;
}
/* @00417e2c file=? name=FUN_00417e2c */
undefined4 __cdecl FUN_00417e2c(int param_1)
{
if (*(int *)(param_1 + 8) != 0) {
return *(undefined4 *)(*(int *)(param_1 + 8) + 8);
}
return 0;
}
/* @00417e44 file=? name=FUN_00417e44 */
int __cdecl FUN_00417e44(int param_1)
{
int iVar1;
int iVar2;
iVar2 = 0;
for (iVar1 = *(int *)(*(int *)(param_1 + 4) + 8); iVar1 != 0; iVar1 = *(int *)(iVar1 + 0x14)) {
iVar2 = iVar2 + 1;
}
return iVar2;
}
/* @00417e64 file=? name=FUN_00417e64 */
undefined4 __cdecl FUN_00417e64(int param_1,int param_2)
{
int iVar1;
int iVar2;
iVar2 = 0;
iVar1 = *(int *)(*(int *)(param_1 + 4) + 8);
while( true ) {
if (iVar1 == 0) {
return 0;
}
if (param_2 == iVar2) break;
iVar2 = iVar2 + 1;
iVar1 = *(int *)(iVar1 + 0x14);
}
*(int *)(param_1 + 8) = iVar1;
return *(undefined4 *)(iVar1 + 8);
}
/* @00417e98 file=? name=FUN_00417e98 */
void __cdecl FUN_00417e98(int param_1)
{
undefined4 *puVar1;
puVar1 = *(undefined4 **)(param_1 + 8);
*(undefined4 *)(param_1 + 8) = puVar1[5];
if (puVar1 != (undefined4 *)0x0) {
(**(code **)*puVar1)(puVar1,3);
}
return;
}
/* @00417ebc file=? name=FUN_00417ebc */
void __cdecl FUN_00417ebc(int param_1,int param_2)
{
undefined4 uVar1;
uVar1 = FUN_00417cbc(*(int *)(param_1 + 4),param_2,*(int *)(param_1 + 8));
*(undefined4 *)(param_1 + 8) = uVar1;
return;
}
/* @00417f0c file=? name=FUN_00417f0c */
undefined4 * __cdecl FUN_00417f0c(undefined4 *param_1,undefined4 param_2)
{
FUN_00417718(param_1,param_2);
*param_1 = &PTR_FUN_004e2550;
param_1[2] = 0;
return param_1;
}
/* @00417f30 file=? name=FUN_00417f30 */
void __cdecl FUN_00417f30(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e2550;
FUN_0041772c(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00417f5c file=? name=FUN_00417f5c */
undefined4 FUN_00417f5c(void)
{
FUN_0041774c();
return 1;
}
/* @00417f78 file=? name=FUN_00417f78 */
void __cdecl FUN_00417f78(int param_1,undefined4 param_2,undefined4 param_3)
{
int *piVar1;
for (piVar1 = *(int **)(param_1 + 8); piVar1 != (int *)0x0; piVar1 = (int *)piVar1[2]) {
(**(code **)(*piVar1 + 0x50))(piVar1,param_2,param_3);
}
return;
}
/* @00417fa8 file=? name=FUN_00417fa8 */
undefined4 * __cdecl FUN_00417fa8(undefined4 *param_1,int param_2)
{
int iVar1;
FUN_00417774(param_1,param_2);
*param_1 = &PTR_FUN_004e24fc;
iVar1 = *(int *)(param_2 + 8);
param_1[2] = iVar1;
if (iVar1 != 0) {
*(undefined4 **)(iVar1 + 0xc) = param_1;
}
param_1[3] = 0;
*(undefined4 **)(param_2 + 8) = param_1;
return param_1;
}
/* @00417fe0 file=? name=FUN_00417fe0 */
void __cdecl FUN_00417fe0(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e24fc;
if (param_1 == *(int **)(param_1[1] + 8)) {
*(int *)(param_1[1] + 8) = param_1[2];
}
if (param_1[3] != 0) {
*(int *)(param_1[3] + 8) = param_1[2];
}
if (param_1[2] != 0) {
*(int *)(param_1[2] + 0xc) = param_1[3];
}
FUN_00417794(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00418034 file=? name=FUN_00418034 */
undefined4 FUN_00418034(void)
{
FUN_004177c0();
return 1;
}
/* @00418054 file=munga/sfeskt.cpp name=FUN_00418054 */
void FUN_00418054(void)
{
FUN_0040385c(s_SafeIterator__ReceiveMemo___Shou_004e24a8,s_d__tesla_bt_munga_SFESKT_CPP_004e24dc,
0xa7);
return;
}
/* @00418070 file=? name=FUN_00418070 */
undefined4 * __cdecl FUN_00418070(undefined4 *param_1,undefined4 param_2,undefined4 param_3)
{
FUN_00417f0c(param_1,param_2);
*param_1 = &PTR_FUN_004e2720;
param_1[3] = param_3;
return param_1;
}
/* @00418098 file=? name=FUN_00418098 */
void __cdecl FUN_00418098(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e2720;
FUN_00417f30(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @004180c4 file=munga/srtskt.cpp name=FUN_004180c4 */
void FUN_004180c4(void)
{
FUN_0040385c(s_SortedSocket__AddValueImplementa_004e2558,s_d__tesla_bt_munga_SRTSKT_CPP_004e2597,
0x2b);
return;
}
/* @004180e0 file=munga/srtskt.cpp name=FUN_004180e0 */
undefined4 FUN_004180e0(void)
{
FUN_0040385c(s_SortedSocket__FindImplementation_004e25b4,s_d__tesla_bt_munga_SRTSKT_CPP_004e25ef,
0x31);
return 0;
}
/* @004180fc file=? name=FUN_004180fc */
undefined4 * __cdecl FUN_004180fc(undefined4 *param_1,int param_2)
{
FUN_00417fa8(param_1,param_2);
*param_1 = &PTR_FUN_004e26c4;
return param_1;
}
/* @0041811c file=? name=FUN_0041811c */
void __cdecl FUN_0041811c(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e26c4;
FUN_00417fe0(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00418148 file=munga/srtskt.cpp name=FUN_00418148 */
undefined4 FUN_00418148(void)
{
FUN_0040385c(s_SortedIterator__FindImplementati_004e260c,s_d__tesla_bt_munga_SRTSKT_CPP_004e2649,
0x41);
return 0;
}
/* @00418164 file=munga/srtskt.cpp name=FUN_00418164 */
undefined4 FUN_00418164(void)
{
FUN_0040385c(s_SortedIterator__GetValueImplemen_004e2666,s_d__tesla_bt_munga_SRTSKT_CPP_004e26a7,
0x48);
return 0;
}
/* @00418180 file=? name=FUN_00418180 */
undefined4 * __cdecl
FUN_00418180(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_004e27c0;
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;
}
/* @004181c4 file=? name=FUN_004181c4 */
void __cdecl FUN_004181c4(int *param_1,byte param_2)
{
int iVar1;
int *piVar2;
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e27c0;
iVar1 = param_1[1];
FUN_00417f78(iVar1,1,param_1);
if (param_1[6] == 0) {
*(int *)(iVar1 + 0xc) = param_1[5];
}
else {
*(int *)(param_1[6] + 0x14) = param_1[5];
}
if (param_1[5] == 0) {
*(int *)(iVar1 + 0x10) = 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(0x4e2730,param_1);
}
}
return;
}
/* @0041825c file=? name=FUN_0041825c */
undefined4 FUN_0041825c(void)
{
FUN_00415e2c();
return 1;
}
/* @0041827c file=? name=FUN_0041827c */
undefined4 * __cdecl FUN_0041827c(undefined4 *param_1,undefined4 param_2)
{
FUN_00417f0c(param_1,param_2);
*param_1 = &PTR_FUN_004e27b8;
param_1[3] = 0;
param_1[4] = 0;
return param_1;
}
/* @004182a8 file=? name=FUN_004182a8 */
void __cdecl FUN_004182a8(int *param_1,byte param_2)
{
undefined4 *puVar1;
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e27b8;
param_1[1] = 0;
while (puVar1 = (undefined4 *)param_1[3], puVar1 != (undefined4 *)0x0) {
if (puVar1 != (undefined4 *)0x0) {
(**(code **)*puVar1)(puVar1,3);
}
}
FUN_00417f30(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @004182f0 file=? name=FUN_004182f0 */
undefined4 FUN_004182f0(void)
{
FUN_00417f5c();
return 1;
}
/* @0041830c file=? name=FUN_0041830c */
void __cdecl FUN_0041830c(int param_1,int param_2)
{
undefined4 *puVar1;
puVar1 = FUN_00402f74(0x4e2730);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_00418180(puVar1,param_1,param_2,0,*(int *)(param_1 + 0x10));
}
*(undefined4 **)(param_1 + 0x10) = puVar1;
if (*(int *)(param_1 + 0xc) == 0) {
*(undefined4 **)(param_1 + 0xc) = puVar1;
}
return;
}
/* @00418354 file=? name=FUN_00418354 */
void __cdecl FUN_00418354(int param_1,int param_2,int param_3)
{
undefined4 *puVar1;
puVar1 = FUN_00402f74(0x4e2730);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_00418180(puVar1,param_1,param_2,param_3,*(int *)(param_3 + 0x18));
}
if (param_3 == *(int *)(param_1 + 0xc)) {
*(undefined4 **)(param_1 + 0xc) = puVar1;
}
return;
}
/* @00418398 file=? name=FUN_00418398 */
undefined4 * __cdecl FUN_00418398(undefined4 *param_1,int param_2)
{
FUN_00417fa8(param_1,param_2);
*param_1 = &PTR_FUN_004e2764;
param_1[4] = *(undefined4 *)(param_2 + 0xc);
return param_1;
}
/* @004183c0 file=? name=FUN_004183c0 */
undefined4 * __cdecl FUN_004183c0(undefined4 *param_1,int param_2)
{
FUN_00417fa8(param_1,*(int *)(param_2 + 4));
*param_1 = &PTR_FUN_004e2764;
param_1[4] = *(undefined4 *)(param_2 + 0x10);
return param_1;
}
/* @004183ec file=? name=FUN_004183ec */
void __cdecl FUN_004183ec(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e2764;
FUN_00417fe0(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00418418 file=? name=FUN_00418418 */
undefined4 FUN_00418418(void)
{
FUN_00418034();
return 1;
}
/* @00418434 file=? name=FUN_00418434 */
void __cdecl FUN_00418434(int param_1)
{
*(undefined4 *)(param_1 + 0x10) = *(undefined4 *)(*(int *)(param_1 + 4) + 0xc);
return;
}
/* @00418448 file=? name=FUN_00418448 */
void __cdecl FUN_00418448(int param_1)
{
*(undefined4 *)(param_1 + 0x10) = *(undefined4 *)(*(int *)(param_1 + 4) + 0x10);
return;
}
/* @0041845c file=? name=FUN_0041845c */
void __cdecl FUN_0041845c(int param_1)
{
*(undefined4 *)(param_1 + 0x10) = *(undefined4 *)(*(int *)(param_1 + 0x10) + 0x14);
return;
}
/* @00418470 file=? name=FUN_00418470 */
void __cdecl FUN_00418470(int param_1)
{
*(undefined4 *)(param_1 + 0x10) = *(undefined4 *)(*(int *)(param_1 + 0x10) + 0x18);
return;
}
/* @00418484 file=? name=FUN_00418484 */
undefined4 __cdecl FUN_00418484(int param_1)
{
int iVar1;
undefined4 uVar2;
iVar1 = *(int *)(param_1 + 0x10);
if (iVar1 != 0) {
uVar2 = *(undefined4 *)(iVar1 + 8);
*(undefined4 *)(param_1 + 0x10) = *(undefined4 *)(iVar1 + 0x14);
return uVar2;
}
return 0;
}
/* @004184a4 file=? name=FUN_004184a4 */
undefined4 __cdecl FUN_004184a4(int param_1)
{
int iVar1;
undefined4 uVar2;
iVar1 = *(int *)(param_1 + 0x10);
if (iVar1 != 0) {
uVar2 = *(undefined4 *)(iVar1 + 8);
*(undefined4 *)(param_1 + 0x10) = *(undefined4 *)(iVar1 + 0x18);
return uVar2;
}
return 0;
}
/* @004184c4 file=? name=FUN_004184c4 */
undefined4 __cdecl FUN_004184c4(int param_1)
{
if (*(int *)(param_1 + 0x10) != 0) {
return *(undefined4 *)(*(int *)(param_1 + 0x10) + 8);
}
return 0;
}
/* @004184dc file=? name=FUN_004184dc */
int __cdecl FUN_004184dc(int param_1)
{
int iVar1;
int iVar2;
iVar2 = 0;
for (iVar1 = *(int *)(*(int *)(param_1 + 4) + 0xc); iVar1 != 0; iVar1 = *(int *)(iVar1 + 0x14)) {
iVar2 = iVar2 + 1;
}
return iVar2;
}
/* @004184fc file=? name=FUN_004184fc */
undefined4 __cdecl FUN_004184fc(int param_1,int param_2)
{
int iVar1;
int iVar2;
iVar2 = 0;
iVar1 = *(int *)(*(int *)(param_1 + 4) + 0xc);
while( true ) {
if (iVar1 == 0) {
return 0;
}
if (param_2 == iVar2) break;
iVar2 = iVar2 + 1;
iVar1 = *(int *)(iVar1 + 0x14);
}
*(int *)(param_1 + 0x10) = iVar1;
return *(undefined4 *)(iVar1 + 8);
}
/* @00418530 file=? name=FUN_00418530 */
void __cdecl FUN_00418530(int param_1)
{
undefined4 *puVar1;
puVar1 = *(undefined4 **)(param_1 + 0x10);
if (puVar1 != (undefined4 *)0x0) {
(**(code **)*puVar1)(puVar1,3);
}
return;
}
/* @0041854c file=? name=FUN_0041854c */
void __cdecl FUN_0041854c(int param_1,int param_2)
{
undefined4 uVar1;
uVar1 = FUN_00418354(*(int *)(param_1 + 4),param_2,*(int *)(param_1 + 0x10));
*(undefined4 *)(param_1 + 0x10) = uVar1;
return;
}
/* @00418570 file=? name=FUN_00418570 */
void __cdecl FUN_00418570(int *param_1,int param_2,int param_3)
{
if ((param_2 == 1) && (param_3 == param_1[4])) {
(**(code **)(*param_1 + 0xc))(param_1);
}
return;
}
/* @004185bc file=? name=FUN_004185bc */
undefined4 * __cdecl FUN_004185bc(undefined4 *param_1,undefined4 param_2,int param_3)
{
FUN_00415ddc(param_1,param_2,param_3);
*param_1 = &PTR_FUN_004e2934;
param_1[5] = 0;
param_1[6] = 0;
return param_1;
}
/* @004185ec file=? name=FUN_004185ec */
void __cdecl FUN_004185ec(int *param_1,byte param_2)
{
int iVar1;
int *piVar2;
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e2934;
iVar1 = param_1[1];
FUN_00417f78(iVar1,1,param_1);
if (param_1[6] == 0) {
*(int *)(iVar1 + 0x10) = param_1[5];
}
else {
*(int *)(param_1[6] + 0x14) = param_1[5];
}
if (param_1[5] == 0) {
*(int *)(iVar1 + 0x14) = 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_004022d0(param_1);
}
}
return;
}
/* @00418678 file=? name=FUN_00418678 */
undefined4 FUN_00418678(void)
{
FUN_00415e2c();
return 1;
}
/* @00418698 file=? name=FUN_00418698 */
void __cdecl FUN_00418698(int param_1,undefined4 param_2,undefined4 param_3)
{
*(undefined4 *)(param_1 + 0x14) = param_2;
*(undefined4 *)(param_1 + 0x18) = param_3;
return;
}
/* @004186ac file=? name=FUN_004186ac */
undefined4 * __cdecl FUN_004186ac(undefined4 *param_1,undefined4 param_2,undefined4 param_3)
{
FUN_00418070(param_1,param_2,param_3);
*param_1 = &PTR_FUN_004e2918;
param_1[4] = 0;
param_1[5] = 0;
return param_1;
}
/* @004186dc file=? name=FUN_004186dc */
void __cdecl FUN_004186dc(int *param_1,byte param_2)
{
undefined4 *puVar1;
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e2918;
param_1[1] = 0;
while (puVar1 = (undefined4 *)param_1[4], puVar1 != (undefined4 *)0x0) {
if (puVar1 != (undefined4 *)0x0) {
(**(code **)*puVar1)(puVar1,3);
}
}
FUN_00418098(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00418724 file=? name=FUN_00418724 */
undefined4 FUN_00418724(void)
{
FUN_00417f5c();
return 1;
}
/* @00418744 file=munga/vchain.cpp name=FUN_00418744 */
undefined4 FUN_00418744(void)
{
FUN_0040385c(s_VChain__MakeVChainLink___Should_n_004e27c4,s_d__tesla_bt_munga_VCHAIN_CPP_004e27f5,
0xcd);
return 0;
}
/* @00418764 file=munga/vchain.cpp name=FUN_00418764 */
undefined4 FUN_00418764(void)
{
FUN_0040385c(s_VChain__CompareVChainLinks___Sho_004e2812,s_d__tesla_bt_munga_VCHAIN_CPP_004e2847,
0xdc);
return 0;
}
/* @00418784 file=munga/vchain.cpp name=FUN_00418784 */
undefined4 FUN_00418784(void)
{
FUN_0040385c(s_VChain__CompareValueToVChainLink_004e2864,s_d__tesla_bt_munga_VCHAIN_CPP_004e289f,
0xeb);
return 0;
}
/* @004187a4 file=? name=FUN_004187a4 */
void __cdecl FUN_004187a4(int *param_1,undefined4 param_2)
{
(**(code **)(*param_1 + 8))(param_1,param_2,0);
return;
}
/* @004187bc file=? name=FUN_004187bc */
void __cdecl FUN_004187bc(int *param_1,undefined4 param_2,undefined4 param_3)
{
int iVar1;
int iVar2;
int iVar3;
iVar2 = (**(code **)(*param_1 + 0x10))(param_1,param_2,param_3);
if (param_1[4] == 0) {
FUN_00418698(iVar2,0,0);
param_1[4] = iVar2;
param_1[5] = iVar2;
}
else {
iVar1 = param_1[4];
while ((iVar1 != 0 &&
(iVar3 = (**(code **)(*param_1 + 0x18))(param_1,param_3,iVar1), -1 < iVar3))) {
iVar1 = *(int *)(iVar1 + 0x14);
}
if (iVar1 == 0) {
FUN_00418698(iVar2,0,param_1[5]);
*(int *)(param_1[5] + 0x14) = iVar2;
param_1[5] = iVar2;
}
else if (iVar1 == param_1[4]) {
FUN_00418698(iVar2,param_1[4],0);
*(int *)(param_1[4] + 0x18) = iVar2;
param_1[4] = iVar2;
}
else {
FUN_00418698(iVar2,iVar1,*(undefined4 *)(iVar1 + 0x18));
*(int *)(*(int *)(iVar1 + 0x18) + 0x14) = iVar2;
*(int *)(iVar1 + 0x18) = iVar2;
}
}
FUN_00417f78((int)param_1,0,iVar2);
return;
}
/* @00418878 file=? name=FUN_00418878 */
undefined4 __cdecl FUN_00418878(int *param_1,undefined4 param_2)
{
int iVar1;
undefined4 uVar2;
iVar1 = FUN_004188a0(param_1,param_2);
if (iVar1 == 0) {
uVar2 = 0;
}
else {
uVar2 = *(undefined4 *)(iVar1 + 8);
}
return uVar2;
}
/* @004188a0 file=? name=FUN_004188a0 */
int __cdecl FUN_004188a0(int *param_1,undefined4 param_2)
{
int iVar1;
int iVar2;
iVar1 = param_1[4];
while( true ) {
if (iVar1 == 0) {
return 0;
}
iVar2 = (**(code **)(*param_1 + 0x18))(param_1,param_2,iVar1);
if (iVar2 == 0) break;
if (iVar2 < 0) {
return 0;
}
iVar1 = *(int *)(iVar1 + 0x14);
}
return iVar1;
}
/* @004188dc file=? name=FUN_004188dc */
undefined4 * __cdecl FUN_004188dc(undefined4 *param_1,int param_2)
{
FUN_004180fc(param_1,param_2);
*param_1 = &PTR_FUN_004e28bc;
param_1[4] = *(undefined4 *)(param_2 + 0x10);
return param_1;
}
/* @00418904 file=? name=FUN_00418904 */
undefined4 * __cdecl FUN_00418904(undefined4 *param_1,int param_2)
{
FUN_004180fc(param_1,*(int *)(param_2 + 4));
*param_1 = &PTR_FUN_004e28bc;
param_1[4] = *(undefined4 *)(param_2 + 0x10);
return param_1;
}
/* @00418930 file=? name=FUN_00418930 */
void __cdecl FUN_00418930(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e28bc;
FUN_0041811c(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041895c file=? name=FUN_0041895c */
undefined4 FUN_0041895c(void)
{
FUN_00418034();
return 1;
}
/* @00418978 file=? name=FUN_00418978 */
void __cdecl FUN_00418978(int param_1)
{
*(undefined4 *)(param_1 + 0x10) = *(undefined4 *)(*(int *)(param_1 + 4) + 0x10);
return;
}
/* @0041898c file=? name=FUN_0041898c */
void __cdecl FUN_0041898c(int param_1)
{
*(undefined4 *)(param_1 + 0x10) = *(undefined4 *)(*(int *)(param_1 + 4) + 0x14);
return;
}
/* @004189a0 file=? name=FUN_004189a0 */
void __cdecl FUN_004189a0(int param_1)
{
*(undefined4 *)(param_1 + 0x10) = *(undefined4 *)(*(int *)(param_1 + 0x10) + 0x14);
return;
}
/* @004189b4 file=? name=FUN_004189b4 */
void __cdecl FUN_004189b4(int param_1)
{
*(undefined4 *)(param_1 + 0x10) = *(undefined4 *)(*(int *)(param_1 + 0x10) + 0x18);
return;
}
/* @004189c8 file=? name=FUN_004189c8 */
undefined4 __cdecl FUN_004189c8(int param_1)
{
int iVar1;
undefined4 uVar2;
iVar1 = *(int *)(param_1 + 0x10);
if (iVar1 != 0) {
uVar2 = *(undefined4 *)(iVar1 + 8);
*(undefined4 *)(param_1 + 0x10) = *(undefined4 *)(iVar1 + 0x14);
return uVar2;
}
return 0;
}
/* @004189e8 file=? name=FUN_004189e8 */
undefined4 __cdecl FUN_004189e8(int param_1)
{
int iVar1;
undefined4 uVar2;
iVar1 = *(int *)(param_1 + 0x10);
if (iVar1 != 0) {
uVar2 = *(undefined4 *)(iVar1 + 8);
*(undefined4 *)(param_1 + 0x10) = *(undefined4 *)(iVar1 + 0x18);
return uVar2;
}
return 0;
}
/* @00418a08 file=? name=FUN_00418a08 */
undefined4 __cdecl FUN_00418a08(int param_1)
{
if (*(int *)(param_1 + 0x10) != 0) {
return *(undefined4 *)(*(int *)(param_1 + 0x10) + 8);
}
return 0;
}
/* @00418a20 file=? name=FUN_00418a20 */
int __cdecl FUN_00418a20(int param_1)
{
int iVar1;
int iVar2;
iVar2 = 0;
for (iVar1 = *(int *)(*(int *)(param_1 + 4) + 0x10); iVar1 != 0; iVar1 = *(int *)(iVar1 + 0x14)) {
iVar2 = iVar2 + 1;
}
return iVar2;
}
/* @00418a40 file=? name=FUN_00418a40 */
undefined4 __cdecl FUN_00418a40(int param_1,int param_2)
{
int iVar1;
int iVar2;
iVar2 = 0;
iVar1 = *(int *)(*(int *)(param_1 + 4) + 0x10);
while( true ) {
if (iVar1 == 0) {
return 0;
}
if (param_2 == iVar2) break;
iVar2 = iVar2 + 1;
iVar1 = *(int *)(iVar1 + 0x14);
}
*(int *)(param_1 + 0x10) = iVar1;
return *(undefined4 *)(iVar1 + 8);
}
/* @00418a74 file=? name=FUN_00418a74 */
void __cdecl FUN_00418a74(int param_1)
{
undefined4 *puVar1;
puVar1 = *(undefined4 **)(param_1 + 0x10);
if (puVar1 != (undefined4 *)0x0) {
(**(code **)*puVar1)(puVar1,3);
}
return;
}
/* @00418a90 file=? name=FUN_00418a90 */
undefined4 __cdecl FUN_00418a90(int param_1,undefined4 param_2)
{
int iVar1;
undefined4 uVar2;
iVar1 = FUN_004188a0(*(int **)(param_1 + 4),param_2);
if (iVar1 == 0) {
uVar2 = 0;
}
else {
*(int *)(param_1 + 0x10) = iVar1;
uVar2 = *(undefined4 *)(iVar1 + 8);
}
return uVar2;
}
/* @00418ac0 file=? name=FUN_00418ac0 */
void __cdecl FUN_00418ac0(int *param_1,int param_2,int param_3)
{
if ((param_2 == 1) && (param_3 == param_1[4])) {
(**(code **)(*param_1 + 0xc))(param_1);
}
return;
}
/* @00418ae0 file=? name=FUN_00418ae0 */
undefined4 * __cdecl FUN_00418ae0(undefined4 *param_1,undefined4 param_2,int param_3)
{
FUN_00415ddc(param_1,param_2,param_3);
*param_1 = &PTR_FUN_004e2a98;
param_1[5] = 0;
param_1[6] = 0;
param_1[7] = 0;
return param_1;
}
/* @00418b14 file=? name=FUN_00418b14 */
void __cdecl FUN_00418b14(int *param_1,byte param_2)
{
int iVar1;
int *piVar2;
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e2a98;
iVar1 = param_1[1];
FUN_00417f78(iVar1,1,param_1);
FUN_00418da0(iVar1,(int)param_1);
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_004022d0(param_1);
}
}
return;
}
/* @00418b78 file=? name=FUN_00418b78 */
undefined4 FUN_00418b78(void)
{
FUN_00415e2c();
return 1;
}
/* @00418b9c file=? name=FUN_00418b9c */
void __cdecl FUN_00418b9c(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)
{
*(undefined4 *)(param_1 + 0x14) = param_2;
*(undefined4 *)(param_1 + 0x18) = param_3;
*(undefined4 *)(param_1 + 0x1c) = param_4;
return;
}
/* @00418bb8 file=? name=FUN_00418bb8 */
undefined4 * __cdecl FUN_00418bb8(undefined4 *param_1,undefined4 param_2,undefined4 param_3)
{
FUN_00418070(param_1,param_2,param_3);
*param_1 = &PTR_FUN_004e2a7c;
param_1[4] = 0;
return param_1;
}
/* @00418be0 file=? name=FUN_00418be0 */
void __cdecl FUN_00418be0(int *param_1,byte param_2)
{
undefined4 *puVar1;
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e2a7c;
param_1[1] = 0;
while (puVar1 = (undefined4 *)param_1[4], puVar1 != (undefined4 *)0x0) {
if (puVar1 != (undefined4 *)0x0) {
(**(code **)*puVar1)(puVar1,3);
}
}
FUN_00418098(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00418c28 file=? name=FUN_00418c28 */
undefined4 FUN_00418c28(void)
{
FUN_00417f5c();
return 1;
}
/* @00418c44 file=? name=FUN_00418c44 */
void __cdecl FUN_00418c44(int *param_1,undefined4 param_2)
{
(**(code **)(*param_1 + 8))(param_1,param_2,0);
return;
}
/* @00418c5c file=? name=FUN_00418c5c */
void __cdecl FUN_00418c5c(int *param_1,undefined4 param_2,undefined4 param_3)
{
int iVar1;
iVar1 = (**(code **)(*param_1 + 0x10))(param_1,param_2,param_3);
FUN_00418d1c(param_1,iVar1);
FUN_00417f78((int)param_1,0,iVar1);
return;
}
/* @00418c94 file=? name=FUN_00418c94 */
undefined4 __cdecl FUN_00418c94(int *param_1,undefined4 param_2)
{
int iVar1;
undefined4 uVar2;
iVar1 = FUN_00418ef4(param_1,param_2);
if (iVar1 == 0) {
uVar2 = 0;
}
else {
uVar2 = *(undefined4 *)(iVar1 + 8);
}
return uVar2;
}
/* @00418cbc file=munga/tree.cpp name=FUN_00418cbc */
undefined4 FUN_00418cbc(void)
{
FUN_0040385c(s_Tree__MakeTreeNode___Shoule_neve_004e2938,s_d__tesla_bt_munga_TREE_CPP_004e2965,
0x107);
return 0;
}
/* @00418cdc file=munga/tree.cpp name=FUN_00418cdc */
undefined4 FUN_00418cdc(void)
{
FUN_0040385c(s_Tree__CompareTreeNodes___Shoule_n_004e2980,s_d__tesla_bt_munga_TREE_CPP_004e29b1,
0x116);
return 0;
}
/* @00418cfc file=munga/tree.cpp name=FUN_00418cfc */
undefined4 FUN_00418cfc(void)
{
FUN_0040385c(s_Tree__CompareValueToTreeNode___S_004e29cc,s_d__tesla_bt_munga_TREE_CPP_004e2a03,
0x125);
return 0;
}
/* @00418d1c file=? name=FUN_00418d1c */
void __cdecl FUN_00418d1c(int *param_1,int param_2)
{
int iVar1;
int iVar2;
if (param_1[4] == 0) {
FUN_00418b9c(param_2,0,0,0);
param_1[4] = param_2;
}
else {
iVar1 = param_1[4];
while (iVar1 != 0) {
iVar2 = (**(code **)(*param_1 + 0x14))(param_1,param_2,iVar1);
if (iVar2 < 0) {
if (*(int *)(iVar1 + 0x14) == 0) {
FUN_00418b9c(param_2,0,0,iVar1);
*(int *)(iVar1 + 0x14) = param_2;
return;
}
iVar1 = *(int *)(iVar1 + 0x14);
}
else {
if (*(int *)(iVar1 + 0x18) == 0) {
FUN_00418b9c(param_2,0,0,iVar1);
*(int *)(iVar1 + 0x18) = param_2;
return;
}
iVar1 = *(int *)(iVar1 + 0x18);
}
}
}
return;
}
/* @00418da0 file=? name=FUN_00418da0 */
void __cdecl FUN_00418da0(int param_1,int param_2)
{
int iVar1;
int iVar2;
if (*(int *)(param_2 + 0x18) == 0) {
if (*(int *)(param_2 + 0x14) == 0) {
if (param_2 == *(int *)(param_1 + 0x10)) {
*(undefined4 *)(param_1 + 0x10) = 0;
}
else if (param_2 == *(int *)(*(int *)(param_2 + 0x1c) + 0x14)) {
*(undefined4 *)(*(int *)(param_2 + 0x1c) + 0x14) = 0;
}
else {
*(undefined4 *)(*(int *)(param_2 + 0x1c) + 0x18) = 0;
}
}
else if (param_2 == *(int *)(param_1 + 0x10)) {
*(undefined4 *)(param_1 + 0x10) = *(undefined4 *)(param_2 + 0x14);
*(undefined4 *)(*(int *)(param_2 + 0x14) + 0x1c) = 0;
}
else {
if (param_2 == *(int *)(*(int *)(param_2 + 0x1c) + 0x14)) {
*(undefined4 *)(*(int *)(param_2 + 0x1c) + 0x14) = *(undefined4 *)(param_2 + 0x14);
}
else {
*(undefined4 *)(*(int *)(param_2 + 0x1c) + 0x18) = *(undefined4 *)(param_2 + 0x14);
}
*(undefined4 *)(*(int *)(param_2 + 0x14) + 0x1c) = *(undefined4 *)(param_2 + 0x1c);
}
}
else if (*(int *)(param_2 + 0x14) == 0) {
if (param_2 == *(int *)(param_1 + 0x10)) {
*(undefined4 *)(param_1 + 0x10) = *(undefined4 *)(param_2 + 0x18);
*(undefined4 *)(*(int *)(param_2 + 0x18) + 0x1c) = 0;
}
else {
if (param_2 == *(int *)(*(int *)(param_2 + 0x1c) + 0x14)) {
*(undefined4 *)(*(int *)(param_2 + 0x1c) + 0x14) = *(undefined4 *)(param_2 + 0x18);
}
else {
*(undefined4 *)(*(int *)(param_2 + 0x1c) + 0x18) = *(undefined4 *)(param_2 + 0x18);
}
*(undefined4 *)(*(int *)(param_2 + 0x18) + 0x1c) = *(undefined4 *)(param_2 + 0x1c);
}
}
else {
iVar1 = *(int *)(param_2 + 0x18);
do {
iVar2 = iVar1;
iVar1 = *(int *)(iVar2 + 0x14);
} while (*(int *)(iVar2 + 0x14) != 0);
if (iVar2 == *(int *)(*(int *)(iVar2 + 0x1c) + 0x14)) {
*(undefined4 *)(*(int *)(iVar2 + 0x1c) + 0x14) = *(undefined4 *)(iVar2 + 0x18);
}
else {
*(undefined4 *)(*(int *)(iVar2 + 0x1c) + 0x18) = *(undefined4 *)(iVar2 + 0x18);
}
if (*(int *)(iVar2 + 0x18) != 0) {
*(undefined4 *)(*(int *)(iVar2 + 0x18) + 0x1c) = *(undefined4 *)(iVar2 + 0x1c);
}
*(undefined4 *)(iVar2 + 0x1c) = *(undefined4 *)(param_2 + 0x1c);
*(undefined4 *)(iVar2 + 0x14) = *(undefined4 *)(param_2 + 0x14);
*(undefined4 *)(iVar2 + 0x18) = *(undefined4 *)(param_2 + 0x18);
if (param_2 == *(int *)(param_1 + 0x10)) {
*(int *)(param_1 + 0x10) = iVar2;
}
else if (param_2 == *(int *)(*(int *)(iVar2 + 0x1c) + 0x14)) {
*(int *)(*(int *)(iVar2 + 0x1c) + 0x14) = iVar2;
}
else {
*(int *)(*(int *)(iVar2 + 0x1c) + 0x18) = iVar2;
}
if (*(int *)(iVar2 + 0x18) != 0) {
*(int *)(*(int *)(iVar2 + 0x18) + 0x1c) = iVar2;
}
if (*(int *)(iVar2 + 0x14) != 0) {
*(int *)(*(int *)(iVar2 + 0x14) + 0x1c) = iVar2;
}
}
return;
}
/* @00418ef4 file=? name=FUN_00418ef4 */
int __cdecl FUN_00418ef4(int *param_1,undefined4 param_2)
{
int iVar1;
int iVar2;
iVar1 = param_1[4];
while ((iVar1 != 0 && (iVar2 = (**(code **)(*param_1 + 0x18))(param_1,param_2,iVar1), iVar2 != 0))
) {
if (iVar2 < 0) {
iVar1 = *(int *)(iVar1 + 0x14);
}
else {
iVar1 = *(int *)(iVar1 + 0x18);
}
}
return iVar1;
}
/* @00418f34 file=? name=FUN_00418f34 */
int * __cdecl FUN_00418f34(int *param_1,int param_2)
{
FUN_004180fc(param_1,param_2);
*param_1 = (int)&PTR_FUN_004e2a20;
(**(code **)(*param_1 + 4))(param_1);
return param_1;
}
/* @00418f5c file=? name=FUN_00418f5c */
void __cdecl FUN_00418f5c(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e2a20;
FUN_0041811c(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00418f88 file=? name=FUN_00418f88 */
undefined4 FUN_00418f88(void)
{
FUN_00418034();
return 1;
}
/* @00418fa4 file=? name=FUN_00418fa4 */
void __cdecl FUN_00418fa4(int param_1)
{
int iVar1;
int iVar2;
int iVar3;
iVar1 = *(int *)(*(int *)(param_1 + 4) + 0x10);
iVar3 = iVar1;
while (iVar2 = iVar1, iVar2 != 0) {
iVar3 = iVar2;
iVar1 = *(int *)(iVar2 + 0x14);
}
*(int *)(param_1 + 0x10) = iVar3;
return;
}
/* @00418fc4 file=? name=FUN_00418fc4 */
void FUN_00418fc4(void)
{
return;
}
/* @00418fcc file=? name=FUN_00418fcc */
void __cdecl FUN_00418fcc(int param_1)
{
int iVar1;
int iVar2;
iVar2 = *(int *)(param_1 + 0x10);
if (iVar2 != 0) {
iVar1 = *(int *)(iVar2 + 0x18);
if (*(int *)(iVar2 + 0x18) != 0) {
do {
iVar2 = iVar1;
iVar1 = *(int *)(iVar2 + 0x14);
} while (iVar1 != 0);
*(int *)(param_1 + 0x10) = iVar2;
return;
}
*(undefined4 *)(param_1 + 0x10) = 0;
for (; iVar1 = *(int *)(iVar2 + 0x1c), iVar1 != 0; iVar2 = *(int *)(iVar2 + 0x1c)) {
if (iVar2 == *(int *)(iVar1 + 0x14)) {
*(int *)(param_1 + 0x10) = iVar1;
return;
}
}
}
return;
}
/* @00419010 file=? name=FUN_00419010 */
void FUN_00419010(void)
{
return;
}
/* @00419018 file=? name=FUN_00419018 */
undefined4 __cdecl FUN_00419018(int param_1)
{
if (*(int *)(param_1 + 0x10) != 0) {
return *(undefined4 *)(*(int *)(param_1 + 0x10) + 8);
}
return 0;
}
/* @00419030 file=? name=FUN_00419030 */
int __cdecl FUN_00419030(int param_1)
{
int iVar1;
int iVar2;
int local_18 [5];
FUN_00418f34(local_18,*(int *)(param_1 + 4));
iVar2 = 0;
while( true ) {
iVar1 = (**(code **)(local_18[0] + 0x28))(local_18);
if (iVar1 == 0) break;
iVar2 = iVar2 + 1;
}
FUN_00418f5c(local_18,2);
return iVar2;
}
/* @00419078 file=? name=FUN_00419078 */
void __cdecl FUN_00419078(int param_1)
{
undefined4 *puVar1;
puVar1 = *(undefined4 **)(param_1 + 0x10);
if ((puVar1 != (undefined4 *)0x0) && (puVar1 != (undefined4 *)0x0)) {
(**(code **)*puVar1)(puVar1,3);
}
return;
}
/* @00419098 file=? name=FUN_00419098 */
undefined4 __cdecl FUN_00419098(int param_1,undefined4 param_2)
{
int iVar1;
undefined4 uVar2;
iVar1 = FUN_00418ef4(*(int **)(param_1 + 4),param_2);
if (iVar1 == 0) {
uVar2 = 0;
}
else {
*(int *)(param_1 + 0x10) = iVar1;
uVar2 = *(undefined4 *)(iVar1 + 8);
}
return uVar2;
}
/* @004190c8 file=? name=FUN_004190c8 */
void __cdecl FUN_004190c8(int *param_1,int param_2,int param_3)
{
if ((param_2 == 1) && (param_3 == param_1[4])) {
(**(code **)(*param_1 + 0xc))(param_1);
}
return;
}
/* @004190e8 file=? name=FUN_004190e8 */
undefined4 * __cdecl FUN_004190e8(undefined4 *param_1,undefined4 param_2,int param_3)
{
FUN_00415ddc(param_1,param_2,param_3);
*param_1 = &PTR_FUN_004e2c08;
return param_1;
}
/* @0041910c file=? name=FUN_0041910c */
void __cdecl FUN_0041910c(int *param_1,byte param_2)
{
int iVar1;
int *piVar2;
int local_8;
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e2c08;
iVar1 = param_1[1];
local_8 = FUN_0041942c(iVar1,(int)param_1);
FUN_00419450(iVar1,local_8);
FUN_00417f78(iVar1,1,&local_8);
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_004022d0(param_1);
}
}
return;
}
/* @00419184 file=? name=FUN_00419184 */
undefined4 * __cdecl FUN_00419184(undefined4 *param_1,undefined4 param_2,undefined4 param_3)
{
FUN_00418070(param_1,param_2,param_3);
*param_1 = &PTR_FUN_004e2bec;
param_1[4] = 0;
param_1[5] = 0;
return param_1;
}
/* @004191b4 file=? name=FUN_004191b4 */
void __cdecl FUN_004191b4(int *param_1,byte param_2)
{
undefined4 *puVar1;
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e2bec;
param_1[1] = 0;
while (0 < param_1[5]) {
puVar1 = *(undefined4 **)param_1[4];
if (puVar1 != (undefined4 *)0x0) {
(**(code **)*puVar1)(puVar1,3);
}
}
FUN_00418098(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00419204 file=? name=FUN_00419204 */
undefined4 FUN_00419204(void)
{
FUN_00417f5c();
return 1;
}
/* @00419228 file=? name=FUN_00419228 */
void __cdecl FUN_00419228(int *param_1,undefined4 param_2)
{
(**(code **)(*param_1 + 8))(param_1,param_2,0);
return;
}
/* @00419240 file=? name=FUN_00419240 */
void __cdecl FUN_00419240(int *param_1,undefined4 param_2,undefined4 param_3)
{
undefined4 uVar1;
uVar1 = (**(code **)(*param_1 + 0x10))(param_1,param_2,param_3);
FUN_00419308((int)param_1,uVar1);
FUN_00419370(param_1);
FUN_00417f78((int)param_1,0,uVar1);
return;
}
/* @0041927c file=? name=FUN_0041927c */
undefined4 __cdecl FUN_0041927c(int *param_1,undefined4 param_2)
{
uint uVar1;
undefined4 uVar2;
uVar1 = FUN_004193d0(param_1,param_2);
if (uVar1 == 0xffffffff) {
uVar2 = 0;
}
else {
uVar2 = *(undefined4 *)(*(int *)(param_1[4] + uVar1 * 4) + 8);
}
return uVar2;
}
/* @004192a8 file=munga/table.cpp name=FUN_004192a8 */
undefined4 FUN_004192a8(void)
{
FUN_0040385c(s_Table__MakeTableEntry___Should_n_004e2a9c,s_d__tesla_bt_munga_TABLE_CPP_004e2acc,
0xde);
return 0;
}
/* @004192c8 file=munga/table.cpp name=FUN_004192c8 */
undefined4 FUN_004192c8(void)
{
FUN_0040385c(s_Table__CompareTableEntries___Sho_004e2ae8,s_d__tesla_bt_munga_TABLE_CPP_004e2b1d,
0xed);
return 0;
}
/* @004192e8 file=munga/table.cpp name=FUN_004192e8 */
undefined4 FUN_004192e8(void)
{
FUN_0040385c(s_Table__CompareValueToTableEntry___004e2b39,s_d__tesla_bt_munga_TABLE_CPP_004e2b73,
0xfc);
return 0;
}
/* @00419308 file=? name=FUN_00419308 */
void __cdecl FUN_00419308(int param_1,undefined4 param_2)
{
undefined4 uVar1;
undefined4 *puVar2;
int iVar3;
iVar3 = *(int *)(param_1 + 0x14) + 1;
if (*(int *)(param_1 + 0x10) == 0) {
uVar1 = FUN_004022b0(iVar3 * 4);
*(undefined4 *)(param_1 + 0x10) = uVar1;
}
else {
puVar2 = (undefined4 *)FUN_004022b0(iVar3 * 4);
FUN_004d4918(puVar2,*(undefined4 **)(param_1 + 0x10),*(int *)(param_1 + 0x14) << 2);
FUN_004022e8(*(int **)(param_1 + 0x10));
*(undefined4 **)(param_1 + 0x10) = puVar2;
}
*(int *)(param_1 + 0x14) = iVar3;
*(undefined4 *)(*(int *)(param_1 + 0x10) + -4 + iVar3 * 4) = param_2;
return;
}
/* @00419370 file=? name=FUN_00419370 */
void __cdecl FUN_00419370(int *param_1)
{
undefined4 uVar1;
int iVar2;
uint uVar3;
uint local_8;
local_8 = 1;
do {
if ((uint)param_1[5] <= local_8) {
return;
}
uVar1 = *(undefined4 *)(param_1[4] + local_8 * 4);
uVar3 = local_8;
do {
iVar2 = (**(code **)(*param_1 + 0x14))
(param_1,*(undefined4 *)(param_1[4] + -4 + uVar3 * 4),uVar1);
if (iVar2 < 1) break;
*(undefined4 *)(param_1[4] + uVar3 * 4) = *(undefined4 *)(param_1[4] + -4 + uVar3 * 4);
uVar3 = uVar3 - 1;
} while (uVar3 != 0);
*(undefined4 *)(param_1[4] + uVar3 * 4) = uVar1;
local_8 = local_8 + 1;
} while( true );
}
/* @004193d0 file=? name=FUN_004193d0 */
uint __cdecl FUN_004193d0(int *param_1,undefined4 param_2)
{
int iVar1;
uint uVar2;
uint uVar3;
uint uVar4;
uVar3 = 0;
uVar4 = param_1[5];
if (param_1[5] != 0) {
do {
uVar2 = (uVar4 + uVar3) - 1 >> 1;
iVar1 = (**(code **)(*param_1 + 0x18))
(param_1,param_2,*(undefined4 *)(param_1[4] + uVar2 * 4));
if (iVar1 == 0) {
return uVar2;
}
if (-1 < iVar1) {
uVar3 = uVar2 + 1;
uVar2 = uVar4;
}
uVar4 = uVar2;
} while (uVar3 < uVar2);
}
return 0xffffffff;
}
/* @0041942c file=? name=FUN_0041942c */
int __cdecl FUN_0041942c(int param_1,int param_2)
{
int iVar1;
int *piVar2;
iVar1 = 0;
piVar2 = *(int **)(param_1 + 0x10);
while( true ) {
if (*(int *)(param_1 + 0x14) <= iVar1) {
return -1;
}
if (param_2 == *piVar2) break;
iVar1 = iVar1 + 1;
piVar2 = piVar2 + 1;
}
return iVar1;
}
/* @00419450 file=? name=FUN_00419450 */
void __cdecl FUN_00419450(int param_1,int param_2)
{
undefined4 *puVar1;
undefined4 *puVar2;
int iVar3;
puVar2 = (undefined4 *)((*(int *)(param_1 + 0x14) + -1) * 4 + *(int *)(param_1 + 0x10));
puVar1 = (undefined4 *)(param_2 * 4 + *(int *)(param_1 + 0x10));
if (puVar1 < puVar2) {
FUN_004d493c(puVar1,puVar1 + 1,(int)puVar2 - (int)puVar1);
}
iVar3 = *(int *)(param_1 + 0x14) + -1;
if (iVar3 == 0) {
FUN_004022e8(*(int **)(param_1 + 0x10));
*(undefined4 *)(param_1 + 0x10) = 0;
}
else {
puVar1 = (undefined4 *)FUN_004022b0(iVar3 * 4);
FUN_004d4918(puVar1,*(undefined4 **)(param_1 + 0x10),iVar3 * 4);
FUN_004022e8(*(int **)(param_1 + 0x10));
*(undefined4 **)(param_1 + 0x10) = puVar1;
}
*(int *)(param_1 + 0x14) = iVar3;
return;
}
/* @004194d8 file=? name=FUN_004194d8 */
undefined4 * __cdecl FUN_004194d8(undefined4 *param_1,int param_2)
{
FUN_004180fc(param_1,param_2);
*param_1 = &PTR_FUN_004e2b90;
param_1[4] = *(undefined4 *)(param_2 + 0x10);
param_1[5] = *(undefined4 *)(param_2 + 0x14);
if (param_1[4] == 0) {
param_1[6] = 0xffffffff;
}
else {
param_1[6] = 0;
}
return param_1;
}
/* @0041951c file=? name=FUN_0041951c */
void __cdecl FUN_0041951c(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e2b90;
FUN_0041811c(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00419548 file=? name=FUN_00419548 */
undefined4 FUN_00419548(void)
{
FUN_00418034();
return 1;
}
/* @00419564 file=? name=FUN_00419564 */
void __cdecl FUN_00419564(int param_1)
{
if (*(int *)(param_1 + 0x10) != 0) {
*(undefined4 *)(param_1 + 0x18) = 0;
}
return;
}
/* @00419578 file=? name=FUN_00419578 */
void __cdecl FUN_00419578(int param_1)
{
if (*(int *)(param_1 + 0x10) != 0) {
*(int *)(param_1 + 0x18) = *(int *)(param_1 + 0x14) + -1;
}
return;
}
/* @00419590 file=? name=FUN_00419590 */
void __cdecl FUN_00419590(int param_1)
{
*(int *)(param_1 + 0x18) = *(int *)(param_1 + 0x18) + 1;
if (*(int *)(param_1 + 0x14) <= *(int *)(param_1 + 0x18)) {
*(undefined4 *)(param_1 + 0x18) = 0xffffffff;
}
return;
}
/* @004195ac file=? name=FUN_004195ac */
void __cdecl FUN_004195ac(int param_1)
{
int *piVar1;
piVar1 = (int *)(param_1 + 0x18);
*piVar1 = *piVar1 + -1;
if (*piVar1 < 0) {
*(undefined4 *)(param_1 + 0x18) = 0xffffffff;
}
return;
}
/* @004195c0 file=? name=FUN_004195c0 */
undefined4 __cdecl FUN_004195c0(int param_1)
{
undefined4 uVar1;
if (*(int *)(param_1 + 0x18) != -1) {
uVar1 = *(undefined4 *)(*(int *)(*(int *)(param_1 + 0x10) + *(int *)(param_1 + 0x18) * 4) + 8);
*(int *)(param_1 + 0x18) = *(int *)(param_1 + 0x18) + 1;
if (*(int *)(param_1 + 0x14) <= *(int *)(param_1 + 0x18)) {
*(undefined4 *)(param_1 + 0x18) = 0xffffffff;
}
return uVar1;
}
return 0;
}
/* @004195f4 file=? name=FUN_004195f4 */
undefined4 __cdecl FUN_004195f4(int param_1)
{
int *piVar1;
undefined4 uVar2;
if (*(int *)(param_1 + 0x18) != -1) {
uVar2 = *(undefined4 *)(*(int *)(*(int *)(param_1 + 0x10) + *(int *)(param_1 + 0x18) * 4) + 8);
piVar1 = (int *)(param_1 + 0x18);
*piVar1 = *piVar1 + -1;
if (*piVar1 < 0) {
*(undefined4 *)(param_1 + 0x18) = 0xffffffff;
}
return uVar2;
}
return 0;
}
/* @00419620 file=? name=FUN_00419620 */
undefined4 __cdecl FUN_00419620(int param_1)
{
if (*(int *)(param_1 + 0x18) != -1) {
return *(undefined4 *)(*(int *)(*(int *)(param_1 + 0x10) + *(int *)(param_1 + 0x18) * 4) + 8);
}
return 0;
}
/* @00419640 file=? name=FUN_00419640 */
undefined4 __cdecl FUN_00419640(int param_1)
{
return *(undefined4 *)(param_1 + 0x14);
}
/* @0041964c file=? name=FUN_0041964c */
undefined4 __cdecl FUN_0041964c(int param_1,int param_2)
{
if (param_2 < *(int *)(param_1 + 0x14)) {
*(int *)(param_1 + 0x18) = param_2;
return *(undefined4 *)(*(int *)(*(int *)(param_1 + 0x10) + param_2 * 4) + 8);
}
return 0;
}
/* @00419674 file=? name=FUN_00419674 */
void __cdecl FUN_00419674(int param_1)
{
undefined4 *puVar1;
if ((*(int *)(param_1 + 0x18) != -1) &&
(puVar1 = *(undefined4 **)(*(int *)(param_1 + 0x10) + *(int *)(param_1 + 0x18) * 4),
puVar1 != (undefined4 *)0x0)) {
(**(code **)*puVar1)(puVar1,3);
}
return;
}
/* @00419698 file=? name=FUN_00419698 */
undefined4 __cdecl FUN_00419698(int param_1,undefined4 param_2)
{
int *piVar1;
uint uVar2;
int iVar3;
undefined4 uVar4;
piVar1 = *(int **)(param_1 + 4);
uVar2 = FUN_004193d0(piVar1,param_2);
if (uVar2 == 0xffffffff) {
*(undefined4 *)(param_1 + 0x18) = 0xffffffff;
uVar4 = 0;
}
else {
if (piVar1[3] == 0) {
while ((-1 < (int)(uVar2 - 1) &&
(iVar3 = (**(code **)(*piVar1 + 0x14))
(piVar1,*(undefined4 *)(*(int *)(param_1 + 0x10) + -4 + uVar2 * 4),
*(undefined4 *)(*(int *)(param_1 + 0x10) + uVar2 * 4)), iVar3 == 0)
)) {
uVar2 = uVar2 - 1;
}
}
*(uint *)(param_1 + 0x18) = uVar2;
uVar4 = *(undefined4 *)(*(int *)(*(int *)(param_1 + 0x10) + uVar2 * 4) + 8);
}
return uVar4;
}
/* @00419704 file=? name=FUN_00419704 */
void __cdecl FUN_00419704(int param_1,int param_2,int *param_3)
{
int iVar1;
if (param_2 == 0) {
iVar1 = *(int *)(param_1 + 4);
*(undefined4 *)(param_1 + 0x10) = *(undefined4 *)(iVar1 + 0x10);
*(undefined4 *)(param_1 + 0x14) = *(undefined4 *)(iVar1 + 0x14);
iVar1 = FUN_0041942c(iVar1,(int)param_3);
if (iVar1 <= *(int *)(param_1 + 0x18)) {
*(int *)(param_1 + 0x18) = *(int *)(param_1 + 0x18) + 1;
return;
}
}
else {
if (param_2 != 1) {
return;
}
*(undefined4 *)(param_1 + 0x10) = *(undefined4 *)(*(int *)(param_1 + 4) + 0x10);
*(undefined4 *)(param_1 + 0x14) = *(undefined4 *)(*(int *)(param_1 + 4) + 0x14);
if (*param_3 < *(int *)(param_1 + 0x18)) {
*(int *)(param_1 + 0x18) = *(int *)(param_1 + 0x18) + -1;
}
else if (*(int *)(param_1 + 0x14) <= *(int *)(param_1 + 0x18)) {
*(int *)(param_1 + 0x18) = *(int *)(param_1 + 0x18) + -1;
}
}
return;
}
/* @00419774 file=? name=FUN_00419774 */
undefined4 * __cdecl
FUN_00419774(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)
{
FUN_00418070(param_1,param_3,param_4);
*param_1 = &PTR_FUN_004e2cf8;
param_1[5] = param_2;
FUN_004197a4((int)param_1);
return param_1;
}
/* @004197a4 file=? name=FUN_004197a4 */
void __cdecl FUN_004197a4(int param_1)
{
undefined4 uVar1;
int iVar2;
uVar1 = FUN_004022b0(*(int *)(param_1 + 0x14) << 2);
*(undefined4 *)(param_1 + 0x10) = uVar1;
for (iVar2 = 0; iVar2 < *(int *)(param_1 + 0x14); iVar2 = iVar2 + 1) {
*(undefined4 *)(*(int *)(param_1 + 0x10) + iVar2 * 4) = 0;
}
return;
}
/* @004197d4 file=? name=FUN_004197d4 */
void __cdecl FUN_004197d4(int *param_1,byte param_2)
{
undefined4 *puVar1;
int iVar2;
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e2cf8;
for (iVar2 = 0; iVar2 < param_1[5]; iVar2 = iVar2 + 1) {
puVar1 = *(undefined4 **)(param_1[4] + iVar2 * 4);
if ((puVar1 != (undefined4 *)0x0) && (puVar1 != (undefined4 *)0x0)) {
(**(code **)*puVar1)(puVar1,3);
}
}
FUN_004022e8((int *)param_1[4]);
param_1[4] = 0;
param_1[5] = 0;
FUN_00418098(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00419840 file=? name=FUN_00419840 */
undefined4 FUN_00419840(void)
{
FUN_00417f5c();
return 1;
}
/* @00419854 file=? name=FUN_00419854 */
void __cdecl FUN_00419854(int *param_1,undefined4 param_2)
{
(**(code **)(*param_1 + 8))(param_1,param_2,0);
return;
}
/* @0041986c file=? name=FUN_0041986c */
void __cdecl FUN_0041986c(int *param_1,undefined4 param_2,undefined4 param_3)
{
int iVar1;
int *piVar2;
iVar1 = (**(code **)(*param_1 + 0x14))(param_1,param_3);
piVar2 = *(int **)(param_1[4] + iVar1 * 4);
if (piVar2 == (int *)0x0) {
piVar2 = (int *)(**(code **)(*param_1 + 0x10))(param_1);
*(int **)(param_1[4] + iVar1 * 4) = piVar2;
}
(**(code **)(*piVar2 + 8))(piVar2,param_2,param_3);
return;
}
/* @004198b0 file=? name=FUN_004198b0 */
undefined4 __cdecl FUN_004198b0(int *param_1,undefined4 param_2)
{
int *piVar1;
int iVar2;
undefined4 uVar3;
iVar2 = (**(code **)(*param_1 + 0x14))(param_1,param_2);
piVar1 = *(int **)(param_1[4] + iVar2 * 4);
if (piVar1 == (int *)0x0) {
uVar3 = 0;
}
else {
uVar3 = (**(code **)(*piVar1 + 0xc))(piVar1,param_2);
}
return uVar3;
}
/* @004198e8 file=munga/hash.cpp name=FUN_004198e8 */
undefined4 FUN_004198e8(void)
{
FUN_0040385c(s_Hash__MakeVChain___Should_never_r_004e2c0c,s_d__tesla_bt_munga_HASH_CPP_004e2c37,
0xe3);
return 0;
}
/* @00419908 file=munga/hash.cpp name=FUN_00419908 */
undefined4 FUN_00419908(void)
{
FUN_0040385c(s_Hash__GetHashIndex___Should_neve_004e2c52,s_d__tesla_bt_munga_HASH_CPP_004e2c7f,
0xef);
return 0;
}
/* @00419928 file=? name=FUN_00419928 */
int * __cdecl FUN_00419928(int *param_1,int param_2)
{
FUN_004180fc(param_1,param_2);
*param_1 = (int)&PTR_FUN_004e2c9c;
param_1[4] = *(int *)(param_2 + 0x10);
param_1[5] = *(int *)(param_2 + 0x14);
param_1[6] = -1;
param_1[7] = 0;
(**(code **)(*param_1 + 4))(param_1);
return param_1;
}
/* @00419968 file=? name=FUN_00419968 */
void __cdecl FUN_00419968(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e2c9c;
param_1[4] = 0;
param_1[5] = 0;
param_1[6] = -1;
FUN_00419b1c((int)param_1);
FUN_0041811c(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @004199ac file=? name=FUN_004199ac */
undefined4 FUN_004199ac(void)
{
FUN_00418034();
return 1;
}
/* @004199c8 file=? name=FUN_004199c8 */
void __cdecl FUN_004199c8(int param_1)
{
FUN_00419b40(param_1,0);
return;
}
/* @004199dc file=? name=FUN_004199dc */
void FUN_004199dc(void)
{
return;
}
/* @004199e4 file=? name=FUN_004199e4 */
void __cdecl FUN_004199e4(int param_1)
{
int *piVar1;
int iVar2;
piVar1 = *(int **)(param_1 + 0x1c);
if (piVar1 != (int *)0x0) {
iVar2 = (**(code **)(*piVar1 + 0x30))(piVar1);
if (iVar2 != 0) {
(**(code **)(**(int **)(param_1 + 0x1c) + 0xc))(*(int **)(param_1 + 0x1c));
}
iVar2 = (**(code **)(**(int **)(param_1 + 0x1c) + 0x30))(*(int **)(param_1 + 0x1c));
if (iVar2 == 0) {
FUN_00419b40(param_1,*(int *)(param_1 + 0x18) + 1);
}
}
return;
}
/* @00419a28 file=? name=FUN_00419a28 */
void FUN_00419a28(void)
{
return;
}
/* @00419a30 file=? name=FUN_00419a30 */
undefined4 __cdecl FUN_00419a30(int param_1)
{
int *piVar1;
int iVar2;
undefined4 uVar3;
piVar1 = *(int **)(param_1 + 0x1c);
if (piVar1 != (int *)0x0) {
iVar2 = (**(code **)(*piVar1 + 0x30))(piVar1);
if (iVar2 != 0) {
uVar3 = (**(code **)(**(int **)(param_1 + 0x1c) + 0x30))(*(int **)(param_1 + 0x1c));
return uVar3;
}
FUN_00419b40(param_1,*(int *)(param_1 + 0x18) + 1);
piVar1 = *(int **)(param_1 + 0x1c);
if (piVar1 != (int *)0x0) {
uVar3 = (**(code **)(*piVar1 + 0x30))(piVar1);
return uVar3;
}
}
return 0;
}
/* @00419a7c file=? name=FUN_00419a7c */
int __cdecl FUN_00419a7c(int param_1)
{
int iVar1;
int iVar2;
int local_24 [8];
FUN_00419928(local_24,*(int *)(param_1 + 4));
iVar2 = 0;
while( true ) {
iVar1 = (**(code **)(local_24[0] + 0x28))(local_24);
if (iVar1 == 0) break;
iVar2 = iVar2 + 1;
}
FUN_00419968(local_24,2);
return iVar2;
}
/* @00419ac4 file=? name=FUN_00419ac4 */
void __cdecl FUN_00419ac4(int param_1)
{
int *piVar1;
int iVar2;
piVar1 = *(int **)(param_1 + 0x1c);
if (piVar1 != (int *)0x0) {
iVar2 = (**(code **)(*piVar1 + 0x30))(piVar1);
if (iVar2 != 0) {
(**(code **)(**(int **)(param_1 + 0x1c) + 0x48))(*(int **)(param_1 + 0x1c));
return;
}
FUN_00419b40(param_1,*(int *)(param_1 + 0x18) + 1);
piVar1 = *(int **)(param_1 + 0x1c);
if (piVar1 != (int *)0x0) {
(**(code **)(*piVar1 + 0x48))(piVar1);
}
}
return;
}
/* @00419b0c file=? name=FUN_00419b0c */
undefined4 FUN_00419b0c(void)
{
return 0;
}
/* @00419b14 file=? name=FUN_00419b14 */
void FUN_00419b14(void)
{
return;
}
/* @00419b1c file=? name=FUN_00419b1c */
void __cdecl FUN_00419b1c(int param_1)
{
undefined4 *puVar1;
puVar1 = *(undefined4 **)(param_1 + 0x1c);
if (puVar1 != (undefined4 *)0x0) {
if (puVar1 != (undefined4 *)0x0) {
(**(code **)*puVar1)(puVar1,3);
}
*(undefined4 *)(param_1 + 0x1c) = 0;
}
return;
}
/* @00419b40 file=? name=FUN_00419b40 */
void __cdecl FUN_00419b40(int param_1,int param_2)
{
undefined4 *puVar1;
int iVar2;
FUN_00419b1c(param_1);
*(undefined4 *)(param_1 + 0x18) = 0xffffffff;
do {
if (*(int *)(param_1 + 0x14) <= param_2) {
return;
}
if (*(int *)(*(int *)(param_1 + 0x10) + param_2 * 4) != 0) {
puVar1 = (undefined4 *)FUN_00402298(0x14);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_004188dc(puVar1,*(int *)(*(int *)(param_1 + 0x10) + param_2 * 4));
}
*(undefined4 **)(param_1 + 0x1c) = puVar1;
iVar2 = (**(code **)(**(int **)(param_1 + 0x1c) + 0x30))(*(int **)(param_1 + 0x1c));
if (iVar2 != 0) {
*(int *)(param_1 + 0x18) = param_2;
return;
}
FUN_00419b1c(param_1);
}
param_2 = param_2 + 1;
} while( true );
}
/* @00419bbc file=? name=FUN_00419bbc */
void __cdecl FUN_00419bbc(int param_1,int param_2)
{
int iVar1;
undefined4 *puVar2;
int local_14 [3];
int *local_8;
FUN_0041a434(local_14,**(int **)(param_1 + 0xc) + 0x10);
while( true ) {
iVar1 = (**(code **)(local_14[0] + 0x28))(local_14);
if (iVar1 == 0) break;
FUN_00419f28(iVar1,param_1,param_2);
}
local_8 = *(int **)(*(int *)(param_1 + 0xc) + 4);
if (*local_8 < *(int *)(param_2 + 4)) {
puVar2 = &DAT_004e2d10;
}
else {
puVar2 = (undefined4 *)(local_8[1] + -0xc + *(int *)(param_2 + 4) * 0x14);
}
if ((((code *)*puVar2 != DAT_004e2d10) || (puVar2[1] != DAT_004e2d14)) ||
(puVar2[2] != DAT_004e2d18)) {
(*(code *)*puVar2)(param_1,param_2);
}
FUN_0041a472(local_14,2);
return;
}
/* @00419c90 file=? name=FUN_00419c90 */
void __cdecl FUN_00419c90(int param_1,undefined4 *param_2)
{
FUN_00419bbc(param_1,param_2[4]);
if (param_2 != (undefined4 *)0x0) {
(**(code **)*param_2)(param_2,3);
}
return;
}
/* @00419cb8 file=? name=FUN_00419cb8 */
void __cdecl FUN_00419cb8(int param_1)
{
undefined4 *puVar1;
int local_14 [4];
FUN_0041a49e(local_14,param_1,0xffffffff);
while( true ) {
puVar1 = (undefined4 *)(**(code **)(local_14[0] + 0x28))(local_14);
if (puVar1 == (undefined4 *)0x0) break;
if ((puVar1[1] == 9) && (puVar1 != (undefined4 *)0x0)) {
(**(code **)*puVar1)(puVar1,3);
}
}
FUN_0041a503(local_14,2);
return;
}
/* @00419d10 file=? name=FUN_00419d10 */
void __cdecl FUN_00419d10(int param_1,int param_2)
{
undefined4 *puVar1;
int local_14 [4];
FUN_0041a49e(local_14,param_1,0xffffffff);
while( true ) {
puVar1 = (undefined4 *)(**(code **)(local_14[0] + 0x28))(local_14);
if (puVar1 == (undefined4 *)0x0) break;
if ((puVar1[1] == 9) &&
(((param_2 == 0 || (param_2 == *(int *)(puVar1[4] + 4))) && (puVar1 != (undefined4 *)0x0))))
{
(**(code **)*puVar1)(puVar1,3);
}
}
FUN_0041a503(local_14,2);
return;
}
/* @00419d78 file=? name=FUN_00419d78 */
void __cdecl FUN_00419d78(int param_1)
{
undefined4 *puVar1;
int local_14 [4];
FUN_0041a52f(local_14,param_1,0xffffffff);
do {
puVar1 = (undefined4 *)(**(code **)(local_14[0] + 0x28))(local_14);
if (puVar1 == (undefined4 *)0x0) break;
} while (puVar1[1] != 0xd);
if (puVar1 == (undefined4 *)0x0) {
FUN_0041a594(local_14,2);
}
else {
FUN_0041b0a8(puVar1[3],0);
if (puVar1 != (undefined4 *)0x0) {
(**(code **)*puVar1)(puVar1,3);
}
FUN_0041a594(local_14,2);
}
return;
}
/* @00419df0 file=? name=FUN_00419df0 */
void __cdecl FUN_00419df0(int param_1)
{
FUN_0041a1a4(**(int **)(param_1 + 0xc),0x4e2d24);
return;
}
/* @00419e0c file=? name=FUN_00419e0c */
undefined4 FUN_00419e0c(void)
{
return 1;
}
/* @00419e18 file=? name=FUN_00419e18 */
int * __cdecl FUN_00419e18(int *param_1,undefined4 param_2,undefined4 param_3)
{
undefined4 local_10;
undefined4 local_c;
undefined4 local_8;
FUN_0040328c(param_1,0);
*param_1 = (int)&PTR_FUN_004e2f80;
local_10 = param_3;
local_c = param_2;
local_8 = 1;
(**(code **)(*param_1 + 0x20))(param_1,&local_10,param_3);
return param_1;
}
/* @00419e60 file=? name=FUN_00419e60 */
int * __cdecl FUN_00419e60(int *param_1,undefined4 *param_2,uint param_3)
{
FUN_004033d0(param_1,param_2,param_3);
*(int *)param_1[1] = param_1[2] - param_1[1];
return param_1;
}
/* @00419e8c file=? name=FUN_00419e8c */
undefined4 * __cdecl
FUN_00419e8c(undefined4 *param_1,int param_2,undefined4 param_3,undefined4 param_4,
undefined4 param_5,undefined4 param_6)
{
FUN_00415e90(param_1,6);
*param_1 = &PTR_FUN_004e2f7c;
param_1[6] = param_3;
param_1[3] = param_4;
param_1[4] = param_5;
param_1[5] = param_6;
param_1[7] = 0;
param_1[8] = 0;
FUN_0041a144(param_2,param_1);
return param_1;
}
/* @00419ed8 file=? name=FUN_00419ed8 */
undefined4 * __cdecl
FUN_00419ed8(undefined4 *param_1,int param_2,undefined4 param_3,undefined4 param_4,
undefined4 param_5,undefined4 param_6,undefined4 param_7,undefined4 param_8)
{
FUN_00415e90(param_1,6);
*param_1 = &PTR_FUN_004e2f7c;
param_1[6] = param_3;
param_1[3] = param_4;
param_1[4] = param_5;
param_1[5] = param_6;
param_1[7] = param_8;
param_1[8] = param_7;
FUN_0041a144(param_2,param_1);
return param_1;
}
/* @00419f28 file=? name=FUN_00419f28 */
void __cdecl FUN_00419f28(int param_1,int param_2,int param_3)
{
if (((*(int *)(param_1 + 0x1c) == 0) || (param_2 == *(int *)(param_1 + 0x1c))) &&
((*(int *)(param_1 + 0x20) == 0 || (*(int *)(param_1 + 0x20) == *(int *)(param_3 + 4))))) {
(**(code **)(param_1 + 0xc))(*(undefined4 *)(param_1 + 0x18),param_3,param_2);
}
return;
}
/* @00419f5c file=? name=FUN_00419f5c */
undefined4 FUN_00419f5c(void)
{
return 1;
}
/* @00419f68 file=? name=FUN_00419f68 */
undefined4 FUN_00419f68(void)
{
return 1;
}
/* @00419f74 file=? name=FUN_00419f74 */
void __cdecl FUN_00419f74(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
if ((int *)param_1[1] != (int *)0x0) {
FUN_004022e8((int *)param_1[1]);
}
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00419fa0 file=? name=FUN_00419fa0 */
void __cdecl FUN_00419fa0(int *param_1,int param_2,int *param_3,int *param_4)
{
int iVar1;
int iVar2;
int *piVar3;
undefined4 *puVar4;
undefined4 *puVar5;
int *piVar6;
*param_1 = 0;
iVar1 = 0;
piVar3 = param_3;
if (0 < param_2) {
do {
if (*param_1 < *piVar3) {
*param_1 = *piVar3;
}
iVar1 = iVar1 + 1;
piVar3 = piVar3 + 5;
} while (iVar1 < param_2);
}
if ((param_4 != (int *)0x0) && (*param_1 < *param_4)) {
*param_1 = *param_4;
}
iVar1 = FUN_004022b0(*param_1 * 0x14);
param_1[1] = iVar1;
iVar1 = 0;
if (param_4 != (int *)0x0) {
for (; iVar1 < *param_4; iVar1 = iVar1 + 1) {
puVar4 = (undefined4 *)(param_4[1] + iVar1 * 0x14);
puVar5 = (undefined4 *)(param_1[1] + iVar1 * 0x14);
for (iVar2 = 5; iVar2 != 0; iVar2 = iVar2 + -1) {
*puVar5 = *puVar4;
puVar4 = puVar4 + 1;
puVar5 = puVar5 + 1;
}
}
}
iVar1 = 0;
if (0 < param_2) {
do {
piVar3 = param_3;
piVar6 = (int *)(param_1[1] + (*param_3 + -1) * 0x14);
for (iVar2 = 5; iVar2 != 0; iVar2 = iVar2 + -1) {
*piVar6 = *piVar3;
piVar3 = piVar3 + 1;
piVar6 = piVar6 + 1;
}
iVar1 = iVar1 + 1;
param_3 = param_3 + 5;
} while (iVar1 < param_2);
}
return;
}
/* @0041a058 file=? name=FUN_0041a058 */
int __cdecl FUN_0041a058(int *param_1,char *param_2)
{
char *pcVar1;
char *pcVar2;
char *pcVar3;
int iVar4;
bool bVar5;
iVar4 = 0;
do {
if (*param_1 <= iVar4) {
return 0;
}
pcVar3 = *(char **)(param_1[1] + 4 + iVar4 * 0x14);
pcVar2 = param_2;
do {
if (*pcVar2 != *pcVar3) goto LAB_0041a0a1;
bVar5 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar3[1]) goto LAB_0041a0a1;
pcVar2 = pcVar2 + 2;
pcVar3 = pcVar3 + 2;
bVar5 = *pcVar1 == '\0';
} while (!bVar5);
if (bVar5) {
return iVar4 * 0x14 + param_1[1];
}
LAB_0041a0a1:
iVar4 = iVar4 + 1;
} while( true );
}
/* @0041a0b0 file=? name=FUN_0041a0b0 */
undefined4 * __cdecl FUN_0041a0b0(undefined4 *param_1,undefined4 param_2)
{
FUN_004178cc(param_1,7);
*param_1 = &PTR_FUN_004e2f70;
FUN_0041a37f(param_1 + 4,param_1);
FUN_0041a3ca(param_1 + 8,param_1);
param_1[3] = param_2;
return param_1;
}
/* @0041a0f0 file=? name=FUN_0041a0f0 */
undefined4 * __cdecl FUN_0041a0f0(undefined4 *param_1,int param_2,undefined4 param_3)
{
FUN_004178cc(param_1,7);
*param_1 = &PTR_FUN_004e2f70;
FUN_0041a37f(param_1 + 4,param_1);
FUN_0041a3ca(param_1 + 8,param_1);
param_1[3] = param_3;
(**(code **)(*(int *)(param_2 + 0x20) + 4))(param_2 + 0x20,param_1);
return param_1;
}
/* @0041a144 file=? name=FUN_0041a144 */
void __cdecl FUN_0041a144(int param_1,undefined4 param_2)
{
int iVar1;
int local_10 [3];
(**(code **)(*(int *)(param_1 + 0x10) + 4))(param_1 + 0x10,param_2);
FUN_0041a5df(local_10,param_1 + 0x20);
while( true ) {
iVar1 = (**(code **)(local_10[0] + 0x28))(local_10);
if (iVar1 == 0) break;
FUN_0041a144(iVar1,param_2);
}
FUN_0041a61d(local_10,2);
return;
}
/* @0041a1a4 file=? name=FUN_0041a1a4 */
undefined4 __cdecl FUN_0041a1a4(int param_1,int param_2)
{
undefined4 uVar1;
int iVar2;
int local_14 [4];
if (param_1 == param_2) {
uVar1 = 1;
}
else {
FUN_0041a649(local_14,param_1,0xffffffff);
do {
iVar2 = (**(code **)(local_14[0] + 0x28))(local_14);
if (iVar2 == 0) {
uVar1 = 0;
FUN_0041a6ae(local_14,2);
return uVar1;
}
} while (*(int *)(iVar2 + 4) != 7);
uVar1 = FUN_0041a1a4(iVar2,param_2);
FUN_0041a6ae(local_14,2);
}
return uVar1;
}
/* @0041a21c file=? name=FUN_0041a21c */
undefined4 __cdecl FUN_0041a21c(int param_1,char *param_2)
{
char *pcVar1;
char *pcVar2;
undefined4 uVar3;
int iVar4;
char *pcVar5;
bool bVar6;
int local_14 [4];
pcVar2 = *(char **)(param_1 + 0xc);
pcVar5 = param_2;
do {
if (*pcVar2 != *pcVar5) goto LAB_0041a254;
bVar6 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar5[1]) goto LAB_0041a254;
pcVar2 = pcVar2 + 2;
pcVar5 = pcVar5 + 2;
bVar6 = *pcVar1 == '\0';
} while (!bVar6);
if (bVar6) {
uVar3 = 1;
}
else {
LAB_0041a254:
FUN_0041a649(local_14,param_1,0xffffffff);
do {
iVar4 = (**(code **)(local_14[0] + 0x28))(local_14);
if (iVar4 == 0) {
uVar3 = 0;
FUN_0041a6ae(local_14,2);
return uVar3;
}
} while (*(int *)(iVar4 + 4) != 7);
uVar3 = FUN_0041a21c(iVar4,param_2);
FUN_0041a6ae(local_14,2);
}
return uVar3;
}
/* @0041a2b4 file=? name=FUN_0041a2b4 */
undefined4 FUN_0041a2b4(void)
{
return 1;
}
/* @0041a37f file=? name=FUN_0041a37f */
undefined4 * __cdecl FUN_0041a37f(undefined4 *param_1,undefined4 param_2)
{
FUN_00417be0(param_1,param_2);
*param_1 = &PTR_FUN_004e2f68;
return param_1;
}
/* @0041a39e file=? name=FUN_0041a39e */
void __cdecl FUN_0041a39e(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e2f68;
FUN_00417c0c(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041a3ca file=? name=FUN_0041a3ca */
undefined4 * __cdecl FUN_0041a3ca(undefined4 *param_1,undefined4 param_2)
{
FUN_00417be0(param_1,param_2);
*param_1 = &PTR_FUN_004e2f60;
return param_1;
}
/* @0041a3e9 file=? name=FUN_0041a3e9 */
void __cdecl FUN_0041a3e9(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e2f60;
FUN_00417c0c(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041a415 file=? name=FUN_0041a415 */
undefined4 * __cdecl FUN_0041a415(undefined4 *param_1,int param_2)
{
FUN_00417d00(param_1,param_2);
*param_1 = &PTR_FUN_004e2f10;
return param_1;
}
/* @0041a434 file=? name=FUN_0041a434 */
undefined4 * __cdecl FUN_0041a434(undefined4 *param_1,int param_2)
{
FUN_00417d00(param_1,param_2);
*param_1 = &PTR_FUN_004e2f10;
return param_1;
}
/* @0041a453 file=? name=FUN_0041a453 */
undefined4 * __cdecl FUN_0041a453(undefined4 *param_1,int param_2)
{
FUN_00417d28(param_1,param_2);
*param_1 = &PTR_FUN_004e2f10;
return param_1;
}
/* @0041a472 file=? name=FUN_0041a472 */
void __cdecl FUN_0041a472(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e2f10;
FUN_00417d54(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041a49e file=? name=FUN_0041a49e */
undefined4 * __cdecl FUN_0041a49e(undefined4 *param_1,int param_2,undefined4 param_3)
{
FUN_00415f30(param_1,param_2,param_3);
*param_1 = &PTR_FUN_004e2ec8;
return param_1;
}
/* @0041a4c1 file=? name=FUN_0041a4c1 */
undefined4 * __cdecl FUN_0041a4c1(undefined4 *param_1,int param_2,undefined4 param_3)
{
FUN_00415f30(param_1,param_2,param_3);
*param_1 = &PTR_FUN_004e2ec8;
return param_1;
}
/* @0041a4e4 file=? name=FUN_0041a4e4 */
undefined4 * __cdecl FUN_0041a4e4(undefined4 *param_1,int param_2)
{
FUN_00415f60(param_1,param_2);
*param_1 = &PTR_FUN_004e2ec8;
return param_1;
}
/* @0041a503 file=? name=FUN_0041a503 */
void __cdecl FUN_0041a503(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e2ec8;
FUN_00415f90(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041a52f file=? name=FUN_0041a52f */
undefined4 * __cdecl FUN_0041a52f(undefined4 *param_1,int param_2,undefined4 param_3)
{
FUN_00415f30(param_1,param_2,param_3);
*param_1 = &PTR_FUN_004e2e80;
return param_1;
}
/* @0041a552 file=? name=FUN_0041a552 */
undefined4 * __cdecl FUN_0041a552(undefined4 *param_1,int param_2,undefined4 param_3)
{
FUN_00415f30(param_1,param_2,param_3);
*param_1 = &PTR_FUN_004e2e80;
return param_1;
}
/* @0041a575 file=? name=FUN_0041a575 */
undefined4 * __cdecl FUN_0041a575(undefined4 *param_1,int param_2)
{
FUN_00415f60(param_1,param_2);
*param_1 = &PTR_FUN_004e2e80;
return param_1;
}
/* @0041a594 file=? name=FUN_0041a594 */
void __cdecl FUN_0041a594(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e2e80;
FUN_00415f90(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041a5c0 file=? name=FUN_0041a5c0 */
undefined4 * __cdecl FUN_0041a5c0(undefined4 *param_1,int param_2)
{
FUN_00417d00(param_1,param_2);
*param_1 = &PTR_FUN_004e2e30;
return param_1;
}
/* @0041a5df file=? name=FUN_0041a5df */
undefined4 * __cdecl FUN_0041a5df(undefined4 *param_1,int param_2)
{
FUN_00417d00(param_1,param_2);
*param_1 = &PTR_FUN_004e2e30;
return param_1;
}
/* @0041a5fe file=? name=FUN_0041a5fe */
undefined4 * __cdecl FUN_0041a5fe(undefined4 *param_1,int param_2)
{
FUN_00417d28(param_1,param_2);
*param_1 = &PTR_FUN_004e2e30;
return param_1;
}
/* @0041a61d file=? name=FUN_0041a61d */
void __cdecl FUN_0041a61d(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e2e30;
FUN_00417d54(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041a649 file=? name=FUN_0041a649 */
undefined4 * __cdecl FUN_0041a649(undefined4 *param_1,int param_2,undefined4 param_3)
{
FUN_00415f30(param_1,param_2,param_3);
*param_1 = &PTR_FUN_004e2de8;
return param_1;
}
/* @0041a66c file=? name=FUN_0041a66c */
undefined4 * __cdecl FUN_0041a66c(undefined4 *param_1,int param_2,undefined4 param_3)
{
FUN_00415f30(param_1,param_2,param_3);
*param_1 = &PTR_FUN_004e2de8;
return param_1;
}
/* @0041a68f file=? name=FUN_0041a68f */
undefined4 * __cdecl FUN_0041a68f(undefined4 *param_1,int param_2)
{
FUN_00415f60(param_1,param_2);
*param_1 = &PTR_FUN_004e2de8;
return param_1;
}
/* @0041a6ae file=? name=FUN_0041a6ae */
void __cdecl FUN_0041a6ae(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e2de8;
FUN_00415f90(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041a6da file=? name=FUN_0041a6da */
void __cdecl FUN_0041a6da(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
FUN_0041a3e9(param_1 + 8,2);
FUN_0041a39e(param_1 + 4,2);
FUN_0041790c(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041a71c file=? name=FUN_0041a71c */
void __cdecl FUN_0041a71c(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
FUN_00415ed8(param_1,0);
if ((param_2 & 1) != 0) {
FUN_00402f98(0x4e2d84,param_1);
}
}
return;
}
/* @0041a750 file=? name=FUN_0041a750 */
undefined4 * __cdecl
FUN_0041a750(undefined4 *param_1,uint *param_2,undefined4 param_3,undefined4 param_4)
{
undefined4 uVar1;
FUN_004178cc(param_1,param_4);
*param_1 = &PTR_FUN_004e3268;
param_1[3] = param_3;
uVar1 = FUN_004022b0(*param_2 + 3 & 0xfffffffc);
param_1[4] = uVar1;
FUN_004d4918((undefined4 *)param_1[4],param_2,*param_2);
return param_1;
}
/* @0041a7a4 file=? name=FUN_0041a7a4 */
void __cdecl FUN_0041a7a4(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e3268;
if ((int *)param_1[4] != (int *)0x0) {
FUN_004022d0((int *)param_1[4]);
}
FUN_0041790c(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041a7e0 file=munga/event.cpp name=FUN_0041a7e0 */
void FUN_0041a7e0(void)
{
FUN_0040385c(s_AbstractEvent__Process_should_no_004e2fcc,s_d__tesla_bt_munga_EVENT_CPP_004e2ffa,
100);
return;
}
/* @0041a7fc file=munga/event.cpp name=FUN_0041a7fc */
void FUN_0041a7fc(void)
{
FUN_0040385c(s_AbstractEvent__DumpData_should_n_004e3016,s_d__tesla_bt_munga_EVENT_CPP_004e3045,
0x6c);
return;
}
/* @0041a818 file=? name=FUN_0041a818 */
undefined4 * __cdecl
FUN_0041a818(undefined4 *param_1,undefined4 param_2,uint *param_3,undefined4 param_4)
{
FUN_0041a750(param_1,param_3,param_4,9);
*param_1 = &PTR_FUN_004e3254;
FUN_0041b688(param_1 + 5,param_1);
(**(code **)(param_1[5] + 4))(param_1 + 5,param_2);
return param_1;
}
/* @0041a860 file=? name=FUN_0041a860 */
void __cdecl FUN_0041a860(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e3254;
FUN_0041b6a7(param_1 + 5,2);
FUN_0041a7a4(param_1,0);
if ((param_2 & 1) != 0) {
FUN_00402f98(0x4e2fa4,param_1);
}
}
return;
}
/* @0041a8a4 file=? name=FUN_0041a8a4 */
void __cdecl FUN_0041a8a4(int param_1,int param_2,int param_3,int param_4)
{
int iVar1;
int local_14 [4];
FUN_0041b71e(local_14,param_1,0xffffffff);
do {
iVar1 = (**(code **)(local_14[0] + 0x30))(local_14);
if (iVar1 == 0) {
LAB_0041a8fa:
if (param_4 != 0) {
*(int *)(param_1 + 0xc) = param_4;
}
FUN_0041adec(param_2,param_3,param_1);
FUN_0041b783(local_14,2);
return;
}
iVar1 = *(int *)(iVar1 + 4);
if (((iVar1 == 0xc) || (iVar1 == 0xb)) || (iVar1 == 0xd)) {
FUN_00416190((int)local_14);
goto LAB_0041a8fa;
}
(**(code **)(local_14[0] + 0xc))(local_14);
} while( true );
}
/* @0041a92c file=? name=FUN_0041a92c */
void __cdecl FUN_0041a92c(int param_1)
{
int iVar1;
undefined4 *puVar2;
int local_14 [4];
iVar1 = FUN_00417ab4(param_1 + 0x14);
FUN_0041a52f(local_14,iVar1,0xffffffff);
do {
puVar2 = (undefined4 *)(**(code **)(local_14[0] + 0x28))(local_14);
if (puVar2 == (undefined4 *)0x0) break;
} while (puVar2[1] != 0xd);
if (puVar2 == (undefined4 *)0x0) {
puVar2 = (undefined4 *)FUN_00402298(0x1c);
if (puVar2 == (undefined4 *)0x0) {
puVar2 = (undefined4 *)0x0;
}
else {
puVar2 = FUN_0041b59c(puVar2,iVar1);
}
}
FUN_0041a8a4(param_1,puVar2[3],0,DAT_004e17f4);
FUN_0041a594(local_14,2);
return;
}
/* @0041a9c0 file=? name=FUN_0041a9c0 */
void __cdecl FUN_0041a9c0(int param_1)
{
int *piVar1;
piVar1 = (int *)FUN_00417ab4(param_1 + 0x14);
(**(code **)(*piVar1 + 0x10))(piVar1,param_1);
return;
}
/* @0041a9e0 file=? name=FUN_0041a9e0 */
void __cdecl FUN_0041a9e0(int param_1)
{
char *pcVar1;
uint uVar2;
uint uVar3;
int iVar4;
int *piVar5;
char *pcVar6;
iVar4 = FUN_00417ab4(param_1 + 0x14);
piVar5 = *(int **)(DAT_004efc94 + 0x28);
if ((piVar5 != (int *)0x0) &&
(piVar5 = (int *)(**(code **)(*piVar5 + 0x14))(piVar5,*(undefined4 *)(iVar4 + 4)),
piVar5 != (int *)0x0)) {
pcVar1 = *(char **)(*piVar5 + 0xc);
iVar4 = *(int *)(*(int *)(param_1 + 0x10) + 4);
if (*(int *)piVar5[1] < iVar4) {
pcVar6 = (char *)0x0;
}
else {
pcVar6 = *(char **)(((int *)piVar5[1])[1] + -0x10 + iVar4 * 0x14);
}
FUN_004dbb24(&DAT_00524e20,pcVar6,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_message_for_class_004e3068,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,pcVar1,(char *)0x0);
FUN_004d9c38(&DAT_00524e20);
return;
}
uVar2 = *(uint *)(iVar4 + 4);
uVar3 = *(uint *)(*(int *)(param_1 + 0x10) + 4);
FUN_004dbb24(&DAT_00524e20,s_Message_004e307c,(char *)0x0);
piVar5 = FUN_004db78c(&DAT_00524e20,uVar3);
FUN_004dbb24(piVar5,s_for_object_of_classID_004e3085,(char *)0x0);
piVar5 = FUN_004db78c(piVar5,uVar2);
FUN_004d9c38(piVar5);
return;
}
/* @0041aac8 file=? name=FUN_0041aac8 */
void __cdecl FUN_0041aac8(undefined4 *param_1)
{
if (param_1 != (undefined4 *)0x0) {
(**(code **)*param_1)(param_1,3);
}
return;
}
/* @0041aae0 file=? name=FUN_0041aae0 */
undefined4 * __cdecl
FUN_0041aae0(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,
uint *param_5,undefined4 param_6)
{
FUN_0041a750(param_1,param_5,param_6,10);
*param_1 = &PTR_FUN_004e3240;
param_1[5] = param_2;
param_1[6] = param_3;
param_1[7] = param_4;
return param_1;
}
/* @0041ab1c file=? name=FUN_0041ab1c */
void __cdecl FUN_0041ab1c(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e3240;
FUN_0041a7a4(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041ab48 file=? name=FUN_0041ab48 */
void __cdecl FUN_0041ab48(undefined4 *param_1)
{
int iVar1;
iVar1 = param_1[7];
if (iVar1 == 0) {
(**(code **)(**(int **)(DAT_004efc94 + 0x20) + 0x18))
(*(int **)(DAT_004efc94 + 0x20),param_1[4],param_1[6],param_1[5]);
}
else if (iVar1 == 1) {
FUN_0041d7b0(*(int **)(DAT_004efc94 + 0x20),param_1[4],param_1[6]);
}
else if (iVar1 == 2) {
(**(code **)(**(int **)(DAT_004efc94 + 0x20) + 0x1c))
(*(int **)(DAT_004efc94 + 0x20),param_1[4],param_1[6]);
}
if (param_1 != (undefined4 *)0x0) {
(**(code **)*param_1)(param_1,3);
}
return;
}
/* @0041abc4 file=? name=FUN_0041abc4 */
undefined4 * __cdecl FUN_0041abc4(undefined4 *param_1,undefined4 param_2)
{
FUN_004178cc(param_1,param_2);
*param_1 = &PTR_FUN_004e3234;
FUN_0041b6d3(param_1 + 4,param_1);
FUN_0041b6d3(param_1 + 8,param_1);
param_1[3] = 0xffffffff;
param_1[0xc] = 0;
return param_1;
}
/* @0041ac0c file=? name=FUN_0041ac0c */
undefined4 * __cdecl FUN_0041ac0c(undefined4 *param_1)
{
FUN_004178cc(param_1,0xb);
*param_1 = &PTR_FUN_004e3234;
FUN_0041b6d3(param_1 + 4,param_1);
FUN_0041b6d3(param_1 + 8,param_1);
param_1[3] = 0xffffffff;
param_1[0xc] = 0;
return param_1;
}
/* @0041ac50 file=? name=FUN_0041ac50 */
void __cdecl FUN_0041ac50(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e3234;
FUN_0041b6f2(param_1 + 8,2);
FUN_0041b6f2(param_1 + 4,2);
FUN_0041790c(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041ac98 file=? name=FUN_0041ac98 */
void __cdecl FUN_0041ac98(int param_1)
{
int extraout_EAX;
FUN_004de998((int *)0x0,0x34,param_1,0x211,FUN_0041ac0c);
*(int *)(extraout_EAX + 0xc) = param_1;
return;
}
/* @0041acbc file=? name=FUN_0041acbc */
void __cdecl
FUN_0041acbc(int param_1,int param_2,undefined4 param_3,uint *param_4,undefined4 param_5)
{
undefined4 *puVar1;
puVar1 = FUN_00402f74(0x4e2fa4);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_0041a818(puVar1,param_3,param_4,param_5);
}
FUN_0041adec(param_1,param_2,(int)puVar1);
return;
}
/* @0041ad08 file=? name=FUN_0041ad08 */
void __cdecl
FUN_0041ad08(int param_1,int param_2,undefined4 param_3,undefined4 param_4,uint *param_5,
undefined4 param_6)
{
undefined4 *puVar1;
puVar1 = (undefined4 *)FUN_00402298(0x20);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_0041aae0(puVar1,param_3,param_4,0,param_5,param_6);
}
FUN_0041adec(param_1,param_2,(int)puVar1);
return;
}
/* @0041ad54 file=? name=FUN_0041ad54 */
void __cdecl
FUN_0041ad54(int param_1,int param_2,undefined4 param_3,uint *param_4,undefined4 param_5)
{
undefined4 *puVar1;
puVar1 = (undefined4 *)FUN_00402298(0x20);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_0041aae0(puVar1,0,param_3,1,param_4,param_5);
}
FUN_0041adec(param_1,param_2,(int)puVar1);
return;
}
/* @0041ada0 file=? name=FUN_0041ada0 */
void __cdecl
FUN_0041ada0(int param_1,int param_2,undefined4 param_3,uint *param_4,undefined4 param_5)
{
undefined4 *puVar1;
puVar1 = (undefined4 *)FUN_00402298(0x20);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_0041aae0(puVar1,0,param_3,2,param_4,param_5);
}
FUN_0041adec(param_1,param_2,(int)puVar1);
return;
}
/* @0041adec file=? name=FUN_0041adec */
void __cdecl FUN_0041adec(int param_1,int param_2,int param_3)
{
int iVar1;
int local_10 [3];
if (*(int *)(param_3 + 0xc) == 0) {
(**(code **)(*(int *)(param_1 + 0x10 + param_2 * 0x34) + 4))
(param_2 * 0x34 + param_1 + 0x10,param_3);
}
else {
FUN_0041b7ce(local_10,param_2 * 0x34 + param_1 + 0x20);
(**(code **)(local_10[0] + 8))(local_10);
iVar1 = (**(code **)(local_10[0] + 0x30))(local_10);
if ((iVar1 == 0) || (*(int *)(iVar1 + 0xc) <= *(int *)(param_3 + 0xc))) {
(**(code **)(*(int *)(param_1 + 0x20 + param_2 * 0x34) + 4))
(param_2 * 0x34 + param_1 + 0x20,param_3);
}
else {
do {
(**(code **)(local_10[0] + 0x10))(local_10);
iVar1 = (**(code **)(local_10[0] + 0x30))(local_10);
if (iVar1 == 0) {
(**(code **)(local_10[0] + 4))(local_10);
break;
}
} while (*(int *)(param_3 + 0xc) < *(int *)(iVar1 + 0xc));
if (iVar1 != 0) {
(**(code **)(local_10[0] + 0xc))(local_10);
}
(**(code **)(local_10[0] + 0x4c))(local_10,param_3);
}
FUN_0041b80c(local_10,2);
}
return;
}
/* @0041af10 file=? name=FUN_0041af10 */
int __cdecl FUN_0041af10(int param_1,int param_2)
{
int iVar1;
int *piVar2;
int iVar3;
int local_1c [3];
int local_10 [3];
iVar3 = *(int *)(param_1 + 0xc);
while( true ) {
iVar3 = iVar3 + -1;
if (iVar3 < param_2) {
return 0;
}
FUN_0041b7ce(local_10,iVar3 * 0x34 + param_1 + 0x20);
iVar1 = (**(code **)(local_10[0] + 0x30))(local_10);
if ((iVar1 != 0) && (piVar2 = (int *)FUN_00414b60(), *(int *)(iVar1 + 0xc) <= *piVar2)) break;
FUN_0041b7ce(local_1c,iVar3 * 0x34 + param_1 + 0x10);
iVar1 = (**(code **)(local_1c[0] + 0x30))(local_1c);
if (iVar1 != 0) {
FUN_0041b80c(local_1c,2);
FUN_0041b80c(local_10,2);
return iVar1;
}
FUN_0041b80c(local_1c,2);
FUN_0041b80c(local_10,2);
}
FUN_0041b80c(local_10,2);
return iVar1;
}
/* @0041aff4 file=? name=FUN_0041aff4 */
undefined4 __cdecl FUN_0041aff4(int param_1,int param_2)
{
undefined4 uVar1;
int iVar2;
int local_1c [3];
int local_10 [3];
iVar2 = param_2 * 0x34 + param_1;
FUN_0041b7ce(local_10,iVar2 + 0x10);
FUN_0041b7ce(local_1c,iVar2 + 0x20);
iVar2 = (**(code **)(local_10[0] + 0x30))(local_10);
if (iVar2 == 0) {
iVar2 = (**(code **)(local_1c[0] + 0x30))(local_1c);
if (iVar2 == 0) {
uVar1 = 1;
goto LAB_0041b057;
}
}
uVar1 = 0;
LAB_0041b057:
FUN_0041b80c(local_1c,2);
FUN_0041b80c(local_10,2);
return uVar1;
}
/* @0041b07c file=? name=FUN_0041b07c */
undefined4 __cdecl FUN_0041b07c(int param_1,int param_2)
{
int *piVar1;
piVar1 = (int *)FUN_0041af10(param_1,param_2);
if (piVar1 != (int *)0x0) {
(**(code **)(*piVar1 + 0xc))(piVar1);
return 1;
}
return 0;
}
/* @0041b0a8 file=? name=FUN_0041b0a8 */
void __cdecl FUN_0041b0a8(int param_1,int param_2)
{
int iVar1;
do {
iVar1 = FUN_0041b07c(param_1,param_2);
} while (iVar1 != 0);
return;
}
/* @0041b0c8 file=? name=FUN_0041b0c8 */
void __cdecl FUN_0041b0c8(int param_1,int param_2)
{
undefined4 *puVar1;
int local_1c [3];
int local_10 [3];
if (param_2 < 0) {
param_2 = *(int *)(param_1 + 0xc) + -1;
}
for (; -1 < param_2; param_2 = param_2 + -1) {
FUN_0041b7ce(local_10,param_2 * 0x34 + param_1 + 0x20);
while (puVar1 = (undefined4 *)(**(code **)(local_10[0] + 0x28))(local_10),
puVar1 != (undefined4 *)0x0) {
if (puVar1 != (undefined4 *)0x0) {
(**(code **)*puVar1)(puVar1,3);
}
}
FUN_0041b7ce(local_1c,param_2 * 0x34 + param_1 + 0x10);
while (puVar1 = (undefined4 *)(**(code **)(local_1c[0] + 0x28))(local_1c),
puVar1 != (undefined4 *)0x0) {
if (puVar1 != (undefined4 *)0x0) {
(**(code **)*puVar1)(puVar1,3);
}
}
FUN_0041b80c(local_1c,2);
FUN_0041b80c(local_10,2);
}
return;
}
/* @0041b190 file=? name=FUN_0041b190 */
void __cdecl FUN_0041b190(int param_1,int param_2,int param_3)
{
undefined4 *puVar1;
int local_1c [3];
int local_10 [3];
if (param_3 < 0) {
param_3 = *(int *)(param_1 + 0xc) + -1;
}
for (; -1 < param_3; param_3 = param_3 + -1) {
FUN_0041b7ce(local_10,param_3 * 0x34 + param_1 + 0x10);
while (puVar1 = (undefined4 *)(**(code **)(local_10[0] + 0x28))(local_10),
puVar1 != (undefined4 *)0x0) {
if (((param_2 == 0) || (param_2 == *(int *)(puVar1[4] + 4))) && (puVar1 != (undefined4 *)0x0))
{
(**(code **)*puVar1)(puVar1,3);
}
}
FUN_0041b7ce(local_1c,param_3 * 0x34 + param_1 + 0x20);
while (puVar1 = (undefined4 *)(**(code **)(local_1c[0] + 0x28))(local_1c),
puVar1 != (undefined4 *)0x0) {
if (((param_2 == 0) || (param_2 == *(int *)(puVar1[4] + 4))) && (puVar1 != (undefined4 *)0x0))
{
(**(code **)*puVar1)(puVar1,3);
}
}
FUN_0041b80c(local_1c,2);
FUN_0041b80c(local_10,2);
}
return;
}
/* @0041b27c file=? name=FUN_0041b27c */
void __cdecl FUN_0041b27c(int param_1)
{
uint uVar1;
int *piVar2;
uint uVar3;
int local_28 [3];
int local_1c [3];
uint local_10;
uint local_c;
uint local_8;
local_8 = 0;
uVar1 = *(uint *)(param_1 + 0xc);
while (uVar1 = uVar1 - 1, -1 < (int)uVar1) {
FUN_004dbb24(&DAT_00524e20,s_EventQueue_priority_004e309d,(char *)0x0);
piVar2 = FUN_004db78c(&DAT_00524e20,uVar1);
FUN_004dbb24(piVar2,s__________________________________004e30b2,(char *)0x0);
FUN_0041b7ce(local_1c,uVar1 * 0x34 + param_1 + 0x10);
uVar3 = 0;
while (piVar2 = (int *)(**(code **)(local_1c[0] + 0x28))(local_1c), piVar2 != (int *)0x0) {
uVar3 = uVar3 + 1;
(**(code **)(*piVar2 + 0x10))(piVar2);
}
local_c = uVar1;
piVar2 = FUN_004db880(&DAT_00524e20,uVar3);
FUN_004dbb24(piVar2,s_priority_004e30f3,(char *)0x0);
piVar2 = FUN_004db78c(piVar2,local_c);
FUN_004dbb24(piVar2,s_events_004e30fe,(char *)0x0);
uVar3 = 0;
FUN_0041b7ce(local_28,uVar1 * 0x34 + param_1 + 0x20);
while (piVar2 = (int *)(**(code **)(local_28[0] + 0x28))(local_28), piVar2 != (int *)0x0) {
uVar3 = uVar3 + 1;
(**(code **)(*piVar2 + 0x10))(piVar2);
}
local_10 = uVar1;
piVar2 = FUN_004db880(&DAT_00524e20,uVar3);
FUN_004dbb24(piVar2,s_priority_004e3108,(char *)0x0);
piVar2 = FUN_004db78c(piVar2,local_10);
FUN_004dbb24(piVar2,s_timed_events_004e3113,(char *)0x0);
local_8 = uVar3 + local_8;
FUN_0041b80c(local_28,2);
FUN_0041b80c(local_1c,2);
}
piVar2 = FUN_004db78c(&DAT_00524e20,local_8);
FUN_004dbb24(piVar2,s_total_events_in_queues_004e3123,(char *)0x0);
return;
}
/* @0041b424 file=? name=FUN_0041b424 */
undefined4 * __cdecl FUN_0041b424(undefined4 *param_1)
{
FUN_0041abc4(param_1,0xc);
*param_1 = &PTR_FUN_004e3228;
return param_1;
}
/* @0041b444 file=? name=FUN_0041b444 */
void __cdecl FUN_0041b444(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e3228;
FUN_0041ac50(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041b470 file=? name=FUN_0041b470 */
void __cdecl FUN_0041b470(int param_1)
{
int extraout_EAX;
FUN_004de998((int *)0x0,0x34,param_1,0x211,FUN_0041b424);
*(int *)(extraout_EAX + 0xc) = param_1;
return;
}
/* @0041b494 file=? name=FUN_0041b494 */
void __cdecl FUN_0041b494(int param_1,int param_2,int param_3)
{
int *piVar1;
int iVar2;
int local_20 [3];
int local_14 [3];
int local_8;
local_8 = *(int *)(param_1 + 0xc);
while (local_8 = local_8 + -1, -1 < local_8) {
FUN_0041b7ce(local_14,local_8 * 0x34 + param_1 + 0x10);
while (piVar1 = (int *)(**(code **)(local_14[0] + 0x28))(local_14), piVar1 != (int *)0x0) {
iVar2 = FUN_00417ab4((int)(piVar1 + 5));
if ((param_2 == iVar2) && ((param_3 == 0 || (param_3 == *(int *)(piVar1[4] + 4))))) {
(**(code **)(*piVar1 + 0xc))(piVar1);
}
}
FUN_0041b7ce(local_20,local_8 * 0x34 + param_1 + 0x20);
while (piVar1 = (int *)(**(code **)(local_20[0] + 0x28))(local_20), piVar1 != (int *)0x0) {
iVar2 = FUN_00417ab4((int)(piVar1 + 5));
if ((param_2 == iVar2) && ((param_3 == 0 || (param_3 == *(int *)(piVar1[4] + 4))))) {
(**(code **)(*piVar1 + 0xc))(piVar1);
}
}
FUN_0041b80c(local_20,2);
FUN_0041b80c(local_14,2);
}
return;
}
/* @0041b59c file=? name=FUN_0041b59c */
undefined4 * __cdecl FUN_0041b59c(undefined4 *param_1,undefined4 param_2)
{
undefined4 *puVar1;
FUN_004178cc(param_1,0xd);
*param_1 = &PTR_FUN_004e321c;
FUN_0041b688(param_1 + 4,param_1);
puVar1 = (undefined4 *)FUN_00402298(0x34);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_0041b424(puVar1);
}
param_1[3] = puVar1;
(**(code **)(param_1[4] + 4))(param_1 + 4,param_2);
return param_1;
}
/* @0041b5f8 file=? name=FUN_0041b5f8 */
void __cdecl FUN_0041b5f8(int *param_1,byte param_2)
{
undefined4 *puVar1;
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e321c;
puVar1 = (undefined4 *)param_1[3];
if (puVar1 != (undefined4 *)0x0) {
(**(code **)*puVar1)(puVar1,3);
}
FUN_0041b6a7(param_1 + 4,2);
FUN_0041790c(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041b644 file=? name=FUN_0041b644 */
void __cdecl FUN_0041b644(undefined4 *param_1)
{
if (param_1 != (undefined4 *)0x0) {
(**(code **)*param_1)(param_1,3);
}
return;
}
/* @0041b688 file=? name=FUN_0041b688 */
undefined4 * __cdecl FUN_0041b688(undefined4 *param_1,undefined4 param_2)
{
FUN_004179d4(param_1,param_2);
*param_1 = &PTR_FUN_004e3214;
return param_1;
}
/* @0041b6a7 file=? name=FUN_0041b6a7 */
void __cdecl FUN_0041b6a7(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e3214;
FUN_004179f8(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041b6d3 file=? name=FUN_0041b6d3 */
undefined4 * __cdecl FUN_0041b6d3(undefined4 *param_1,undefined4 param_2)
{
FUN_00417be0(param_1,param_2);
*param_1 = &PTR_FUN_004e320c;
return param_1;
}
/* @0041b6f2 file=? name=FUN_0041b6f2 */
void __cdecl FUN_0041b6f2(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e320c;
FUN_00417c0c(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041b71e file=? name=FUN_0041b71e */
undefined4 * __cdecl FUN_0041b71e(undefined4 *param_1,int param_2,undefined4 param_3)
{
FUN_00415f30(param_1,param_2,param_3);
*param_1 = &PTR_FUN_004e31c4;
return param_1;
}
/* @0041b741 file=? name=FUN_0041b741 */
undefined4 * __cdecl FUN_0041b741(undefined4 *param_1,int param_2,undefined4 param_3)
{
FUN_00415f30(param_1,param_2,param_3);
*param_1 = &PTR_FUN_004e31c4;
return param_1;
}
/* @0041b764 file=? name=FUN_0041b764 */
undefined4 * __cdecl FUN_0041b764(undefined4 *param_1,int param_2)
{
FUN_00415f60(param_1,param_2);
*param_1 = &PTR_FUN_004e31c4;
return param_1;
}
/* @0041b783 file=? name=FUN_0041b783 */
void __cdecl FUN_0041b783(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e31c4;
FUN_00415f90(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041b7af file=? name=FUN_0041b7af */
undefined4 * __cdecl FUN_0041b7af(undefined4 *param_1,int param_2)
{
FUN_00417d00(param_1,param_2);
*param_1 = &PTR_FUN_004e3174;
return param_1;
}
/* @0041b7ce file=? name=FUN_0041b7ce */
undefined4 * __cdecl FUN_0041b7ce(undefined4 *param_1,int param_2)
{
FUN_00417d00(param_1,param_2);
*param_1 = &PTR_FUN_004e3174;
return param_1;
}
/* @0041b7ed file=? name=FUN_0041b7ed */
undefined4 * __cdecl FUN_0041b7ed(undefined4 *param_1,int param_2)
{
FUN_00417d28(param_1,param_2);
*param_1 = &PTR_FUN_004e3174;
return param_1;
}
/* @0041b80c file=? name=FUN_0041b80c */
void __cdecl FUN_0041b80c(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e3174;
FUN_00417d54(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041b838 file=? name=FUN_0041b838 */
undefined4 * __cdecl FUN_0041b838(undefined4 *param_1,undefined4 param_2,undefined4 param_3)
{
FUN_004178cc(param_1,param_2);
*param_1 = &PTR_FUN_004e3320;
param_1[3] = param_3;
*param_1 = &PTR_FUN_004e3308;
return param_1;
}
/* @0041b868 file=? name=FUN_0041b868 */
undefined4 * __cdecl FUN_0041b868(undefined4 *param_1,int *param_2,undefined4 param_3)
{
FUN_004178ec(param_1,param_2);
*param_1 = &PTR_FUN_004e3320;
param_1[3] = param_3;
*param_1 = &PTR_FUN_004e3308;
return param_1;
}
/* @0041b898 file=? name=FUN_0041b898 */
void __cdecl FUN_0041b898(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e3308;
FUN_0041790c(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041b8c4 file=munga/cmpnnt.cpp name=FUN_0041b8c4 */
void FUN_0041b8c4(void)
{
FUN_0040385c(s_Component__Execute___Should_neve_004e32be,s_d__tesla_bt_munga_CMPNNT_CPP_004e32eb,
0x4e);
return;
}
/* @0041b8e0 file=? name=FUN_0041b8e0 */
void __cdecl FUN_0041b8e0(int param_1)
{
FUN_0041a1a4(**(int **)(param_1 + 0xc),0x4e327c);
return;
}
/* @0041b956 file=? name=FUN_0041b956 */
void __cdecl FUN_0041b956(int param_1,int param_2)
{
FUN_00419bbc(param_1,param_2);
return;
}
/* @0041b96b file=? name=FUN_0041b96b */
void __cdecl FUN_0041b96b(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
FUN_0041790c(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041b994 file=? name=FUN_0041b994 */
undefined4 * __cdecl FUN_0041b994(undefined4 *param_1)
{
FUN_004178cc(param_1,2);
*param_1 = &PTR_FUN_004e3440;
FUN_0041c42c(param_1 + 6,0);
FUN_0041c42c(param_1 + 0xb,0);
FUN_0041c42c(param_1 + 0x10,0);
param_1[3] = 0;
param_1[4] = 0;
param_1[5] = 0;
return param_1;
}
/* @0041b9ec file=? name=FUN_0041b9ec */
undefined4 * __cdecl FUN_0041b9ec(undefined4 *param_1,undefined4 param_2)
{
FUN_004178cc(param_1,2);
*param_1 = &PTR_FUN_004e3440;
FUN_0041c42c(param_1 + 6,0);
FUN_0041c42c(param_1 + 0xb,0);
FUN_0041c42c(param_1 + 0x10,0);
param_1[3] = param_2;
param_1[4] = param_2;
param_1[5] = param_2;
return param_1;
}
/* @0041ba44 file=? name=FUN_0041ba44 */
undefined4 * __cdecl FUN_0041ba44(undefined4 *param_1,int param_2)
{
FUN_004178cc(param_1,2);
*param_1 = &PTR_FUN_004e3440;
FUN_0041c42c(param_1 + 6,0);
FUN_0041c42c(param_1 + 0xb,0);
FUN_0041c42c(param_1 + 0x10,0);
param_1[3] = *(undefined4 *)(param_2 + 0xc);
param_1[4] = *(undefined4 *)(param_2 + 0x10);
param_1[5] = *(undefined4 *)(param_2 + 0x14);
return param_1;
}
/* @0041baa4 file=? name=FUN_0041baa4 */
void __cdecl FUN_0041baa4(int *param_1,byte param_2)
{
void *this;
void *this_00;
int local_40 [5];
int local_2c [5];
int local_18 [5];
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e3440;
FUN_0041c477(local_18,(int)(param_1 + 6));
FUN_00417858(local_18,local_18,1);
FUN_0041c4d4(local_18,2);
FUN_0041c477(local_2c,(int)(param_1 + 0xb));
FUN_00417858(this,local_2c,1);
FUN_0041c4d4(local_2c,2);
FUN_0041c477(local_40,(int)(param_1 + 0x10));
FUN_00417858(this_00,local_40,1);
FUN_0041c4d4(local_40,2);
FUN_0041c44b(param_1 + 0x10,2);
FUN_0041c44b(param_1 + 0xb,2);
FUN_0041c44b(param_1 + 6,2);
FUN_0041790c(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041bb88 file=? name=FUN_0041bb88 */
void __cdecl FUN_0041bb88(int param_1,int param_2)
{
*(undefined4 *)(param_1 + 0xc) = *(undefined4 *)(param_2 + 0xc);
*(undefined4 *)(param_1 + 0x10) = *(undefined4 *)(param_2 + 0x10);
*(undefined4 *)(param_1 + 0x14) = *(undefined4 *)(param_2 + 0x14);
return;
}
/* @0041bba8 file=? name=FUN_0041bba8 */
undefined4 __cdecl FUN_0041bba8(int param_1,int param_2)
{
undefined4 uVar1;
if (((*(int *)(param_1 + 0xc) == *(int *)(param_2 + 0xc)) &&
(*(int *)(param_1 + 0x10) == *(int *)(param_2 + 0x10))) &&
(*(int *)(param_1 + 0x14) == *(int *)(param_2 + 0x14))) {
uVar1 = 1;
}
else {
uVar1 = 0;
}
return uVar1;
}
/* @0041bbd8 file=? name=FUN_0041bbd8 */
void __cdecl FUN_0041bbd8(int param_1,int param_2)
{
int *piVar1;
int local_40 [5];
int local_2c [5];
int local_18 [5];
*(undefined4 *)(param_1 + 0x10) = *(undefined4 *)(param_1 + 0x14);
if (param_2 != *(int *)(param_1 + 0x14)) {
*(int *)(param_1 + 0x14) = param_2;
FUN_0041c496(local_18,param_1 + 0x18);
while( true ) {
piVar1 = (int *)(**(code **)(local_18[0] + 0x28))(local_18);
if (piVar1 == (int *)0x0) break;
(**(code **)(*piVar1 + 0x14))(piVar1);
}
FUN_0041c4d4(local_18,2);
FUN_0041c496(local_2c,param_1 + 0x2c);
while( true ) {
piVar1 = (int *)(**(code **)(local_2c[0] + 0x28))(local_2c);
if (piVar1 == (int *)0x0) break;
(**(code **)(*piVar1 + 0x14))(piVar1);
}
FUN_0041c4d4(local_2c,2);
FUN_0041c496(local_40,param_1 + 0x40);
while( true ) {
piVar1 = (int *)(**(code **)(local_40[0] + 0x28))(local_40);
if (piVar1 == (int *)0x0) break;
(**(code **)(*piVar1 + 0x14))(piVar1);
}
FUN_0041c4d4(local_40,2);
}
return;
}
/* @0041bca8 file=? name=FUN_0041bca8 */
int * __cdecl FUN_0041bca8(int *param_1,int param_2)
{
uint uVar1;
int *piVar2;
uVar1 = *(uint *)(param_2 + 0xc);
FUN_004dbb24(param_1,&DAT_004e33a0,(char *)0x0);
piVar2 = FUN_004db880(param_1,uVar1);
FUN_004dbb24(piVar2,&DAT_004e33a2,(char *)0x0);
piVar2 = FUN_004db880(param_1,*(uint *)(param_2 + 0x10));
FUN_004dbb24(piVar2,&DAT_004e33a4,(char *)0x0);
piVar2 = FUN_004db880(param_1,*(uint *)(param_2 + 0x14));
FUN_004dbb24(piVar2,&DAT_004e33a6,(char *)0x0);
return param_1;
}
/* @0041bd28 file=? name=FUN_0041bd28 */
undefined4 FUN_0041bd28(void)
{
return 1;
}
/* @0041bd34 file=? name=FUN_0041bd34 */
void __cdecl FUN_0041bd34(int param_1,int param_2)
{
undefined4 *puVar1;
puVar1 = (undefined4 *)FUN_00414b60();
*(undefined4 *)(param_1 + 0x14) = *puVar1;
FUN_0041bbd8(param_1 + 0x2c,*(int *)(param_2 + 0xc));
return;
}
/* @0041bd60 file=? name=FUN_0041bd60 */
void __cdecl FUN_0041bd60(int param_1,undefined4 *param_2,undefined2 param_3)
{
param_2[2] = *(undefined4 *)(param_1 + 0x10);
param_2[3] = *(undefined4 *)(param_1 + 0x40);
*param_2 = 0x10;
*(undefined2 *)((int)param_2 + 6) = param_3;
*(undefined4 *)(param_1 + 0x14) = *(undefined4 *)(param_1 + 0x10);
return;
}
/* @0041bd98 file=? name=FUN_0041bd98 */
void __cdecl FUN_0041bd98(int *param_1,int *param_2)
{
ushort uVar1;
undefined4 *puVar2;
uint uVar3;
int iVar4;
iVar4 = 0;
uVar1 = *(ushort *)(param_1 + 6);
*(undefined2 *)(param_1 + 6) = 0;
for (uVar3 = (uint)uVar1; uVar3 != 0; uVar3 = (int)uVar3 >> 1) {
if ((uVar3 & 1) != 0) {
puVar2 = (undefined4 *)(**(code **)*param_2)(param_2);
(**(code **)(*param_1 + 0x1c))(param_1,puVar2,iVar4);
(**(code **)(*param_2 + 0x14))(param_2,*puVar2);
}
iVar4 = iVar4 + 1;
}
return;
}
/* @0041bdf0 file=? name=FUN_0041bdf0 */
undefined4 * __cdecl FUN_0041bdf0(undefined4 *param_1,undefined4 param_2,undefined4 param_3)
{
undefined4 *puVar1;
FUN_004178cc(param_1,param_2);
*param_1 = &PTR_FUN_004e3320;
param_1[3] = param_3;
*param_1 = &PTR_FUN_004e3420;
FUN_0041b9ec(param_1 + 0xb,*(undefined4 *)(param_1[3] + 0xc));
FUN_0041c42c(param_1 + 0x20,0);
FUN_0041c42c(param_1 + 0x25,0);
FUN_0041c42c(param_1 + 0x2a,0);
FUN_0041c42c(param_1 + 0x2f,0);
FUN_0041bbd8((int)(param_1 + 0xb),0);
puVar1 = (undefined4 *)FUN_00414b60();
param_1[4] = *puVar1;
param_1[5] = param_1[4];
param_1[7] = PTR_FUN_004e3374;
param_1[8] = DAT_004e3378;
param_1[9] = DAT_004e337c;
*(undefined2 *)(param_1 + 6) = 0;
param_1[10] = 0;
return param_1;
}
/* @0041bec4 file=? name=FUN_0041bec4 */
void __cdecl FUN_0041bec4(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e3420;
FUN_0041c44b(param_1 + 0x2f,2);
FUN_0041c44b(param_1 + 0x2a,2);
FUN_0041c44b(param_1 + 0x25,2);
FUN_0041c44b(param_1 + 0x20,2);
FUN_0041baa4(param_1 + 0xb,2);
FUN_0041790c(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041bf44 file=? name=FUN_0041bf44 */
int __cdecl FUN_0041bf44(int param_1,int param_2)
{
int *piVar1;
int iVar2;
int local_14;
int local_10;
piVar1 = *(int **)(*(int *)(param_1 + 0xc) + 8);
if (*piVar1 < param_2) {
local_14 = DAT_004e3380;
local_10 = DAT_004e3384;
}
else {
iVar2 = piVar1[1];
local_14 = *(int *)(iVar2 + -8 + param_2 * 0x10);
local_10 = *(int *)(iVar2 + -4 + param_2 * 0x10);
}
if ((local_14 == DAT_004e3380) && (local_10 == DAT_004e3384)) {
iVar2 = 0;
}
else {
iVar2 = param_1 + local_14 + -1;
}
return iVar2;
}
/* @0041bfc0 file=? name=FUN_0041bfc0 */
int __cdecl FUN_0041bfc0(int param_1,char *param_2)
{
int iVar1;
int local_14;
int local_10;
FUN_0041c288(&local_14,*(int **)(*(int *)(param_1 + 0xc) + 8),param_2);
if ((local_14 == DAT_004e3380) && (local_10 == DAT_004e3384)) {
iVar1 = 0;
}
else {
iVar1 = param_1 + local_14 + -1;
}
return iVar1;
}
/* @0041c018 file=? name=FUN_0041c018 */
void __cdecl FUN_0041c018(int *param_1,int *param_2,int *param_3)
{
float fVar1;
fVar1 = (float)(*param_2 - param_1[4]) / DAT_0052140c;
param_1[4] = *param_2;
(*(code *)param_1[7])(param_1,fVar1);
if ((*(byte *)(param_1 + 10) & 1) == 0) {
FUN_0041c08c((int)param_1);
}
FUN_0041bd98(param_1,param_3);
return;
}
/* @0041c078 file=? name=FUN_0041c078 */
void __cdecl FUN_0041c078(int param_1)
{
*(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) | 2;
return;
}
/* @0041c084 file=? name=FUN_0041c084 */
void FUN_0041c084(void)
{
return;
}
/* @0041c08c file=? name=FUN_0041c08c */
void __cdecl FUN_0041c08c(int param_1)
{
int *piVar1;
int local_54 [5];
int local_40 [5];
int local_2c [5];
int local_18 [5];
FUN_0041c496(local_18,param_1 + 0x80);
while( true ) {
piVar1 = (int *)(**(code **)(local_18[0] + 0x28))(local_18);
if (piVar1 == (int *)0x0) break;
(**(code **)(*piVar1 + 0x14))(piVar1);
}
FUN_0041c4d4(local_18,2);
FUN_0041c496(local_2c,param_1 + 0x94);
while( true ) {
piVar1 = (int *)(**(code **)(local_2c[0] + 0x28))(local_2c);
if (piVar1 == (int *)0x0) break;
(**(code **)(*piVar1 + 0x14))(piVar1);
}
FUN_0041c4d4(local_2c,2);
FUN_0041c496(local_40,param_1 + 0xa8);
while( true ) {
piVar1 = (int *)(**(code **)(local_40[0] + 0x28))(local_40);
if (piVar1 == (int *)0x0) break;
(**(code **)(*piVar1 + 0x14))(piVar1);
}
FUN_0041c4d4(local_40,2);
FUN_0041c496(local_54,param_1 + 0xbc);
while( true ) {
piVar1 = (int *)(**(code **)(local_54[0] + 0x28))(local_54);
if (piVar1 == (int *)0x0) break;
(**(code **)(*piVar1 + 0x14))(piVar1);
}
FUN_0041c4d4(local_54,2);
return;
}
/* @0041c18c file=? name=FUN_0041c18c */
void __cdecl FUN_0041c18c(int param_1)
{
FUN_0041a1a4(**(int **)(param_1 + 0xc),0x4e3334);
return;
}
/* @0041c1a8 file=? name=FUN_0041c1a8 */
void __cdecl FUN_0041c1a8(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
if ((int *)param_1[1] != (int *)0x0) {
FUN_004022e8((int *)param_1[1]);
}
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041c1d4 file=? name=FUN_0041c1d4 */
void __cdecl FUN_0041c1d4(int *param_1,int param_2,int *param_3,int *param_4)
{
int iVar1;
int iVar2;
int *piVar3;
undefined4 *puVar4;
undefined4 *puVar5;
int *piVar6;
*param_1 = 0;
iVar1 = 0;
piVar3 = param_3;
if (0 < param_2) {
do {
if (*param_1 < *piVar3) {
*param_1 = *piVar3;
}
iVar1 = iVar1 + 1;
piVar3 = piVar3 + 4;
} while (iVar1 < param_2);
}
if ((param_4 != (int *)0x0) && (*param_1 < *param_4)) {
*param_1 = *param_4;
}
iVar1 = FUN_004022b0(*param_1 << 4);
param_1[1] = iVar1;
iVar1 = 0;
if (param_4 != (int *)0x0) {
for (; iVar1 < *param_4; iVar1 = iVar1 + 1) {
puVar4 = (undefined4 *)(param_4[1] + iVar1 * 0x10);
puVar5 = (undefined4 *)(param_1[1] + iVar1 * 0x10);
for (iVar2 = 4; iVar2 != 0; iVar2 = iVar2 + -1) {
*puVar5 = *puVar4;
puVar4 = puVar4 + 1;
puVar5 = puVar5 + 1;
}
}
}
iVar1 = 0;
if (0 < param_2) {
do {
piVar3 = param_3;
piVar6 = (int *)(param_1[1] + -0x10 + *param_3 * 0x10);
for (iVar2 = 4; iVar2 != 0; iVar2 = iVar2 + -1) {
*piVar6 = *piVar3;
piVar3 = piVar3 + 1;
piVar6 = piVar6 + 1;
}
iVar1 = iVar1 + 1;
param_3 = param_3 + 4;
} while (iVar1 < param_2);
}
return;
}
/* @0041c288 file=? name=FUN_0041c288 */
undefined4 * __cdecl FUN_0041c288(undefined4 *param_1,int *param_2,char *param_3)
{
char *pcVar1;
int iVar2;
char *pcVar3;
char *pcVar4;
int iVar5;
bool bVar6;
iVar5 = 0;
do {
if (*param_2 <= iVar5) {
*param_1 = DAT_004e3380;
param_1[1] = DAT_004e3384;
return param_1;
}
pcVar4 = *(char **)(param_2[1] + 4 + iVar5 * 0x10);
pcVar3 = param_3;
do {
if (*pcVar3 != *pcVar4) goto LAB_0041c2dc;
bVar6 = true;
if (*pcVar3 == '\0') break;
pcVar1 = pcVar3 + 1;
if (*pcVar1 != pcVar4[1]) goto LAB_0041c2dc;
pcVar3 = pcVar3 + 2;
pcVar4 = pcVar4 + 2;
bVar6 = *pcVar1 == '\0';
} while (!bVar6);
if (bVar6) {
iVar2 = param_2[1];
*param_1 = *(undefined4 *)(iVar2 + 8 + iVar5 * 0x10);
param_1[1] = *(undefined4 *)(iVar2 + 0xc + iVar5 * 0x10);
return param_1;
}
LAB_0041c2dc:
iVar5 = iVar5 + 1;
} while( true );
}
/* @0041c2fc file=? name=FUN_0041c2fc */
int __cdecl FUN_0041c2fc(int *param_1,char *param_2)
{
char *pcVar1;
char *pcVar2;
char *pcVar3;
int iVar4;
bool bVar5;
iVar4 = 0;
do {
if (*param_1 <= iVar4) {
return 0;
}
pcVar3 = *(char **)(param_1[1] + 4 + iVar4 * 0x10);
pcVar2 = param_2;
do {
if (*pcVar2 != *pcVar3) goto LAB_0041c33f;
bVar5 = true;
if (*pcVar2 == '\0') break;
pcVar1 = pcVar2 + 1;
if (*pcVar1 != pcVar3[1]) goto LAB_0041c33f;
pcVar2 = pcVar2 + 2;
pcVar3 = pcVar3 + 2;
bVar5 = *pcVar1 == '\0';
} while (!bVar5);
if (bVar5) {
return iVar4 * 0x10 + param_1[1];
}
LAB_0041c33f:
iVar4 = iVar4 + 1;
} while( true );
}
/* @0041c350 file=? name=FUN_0041c350 */
void __cdecl FUN_0041c350(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)
{
*(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) | 1;
FUN_004358e8(*(int *)(DAT_004efc94 + 0x34),param_1,param_2,param_3,param_4);
return;
}
/* @0041c42c file=? name=FUN_0041c42c */
undefined4 * __cdecl FUN_0041c42c(undefined4 *param_1,undefined4 param_2)
{
FUN_0041827c(param_1,param_2);
*param_1 = &PTR_FUN_004e3418;
return param_1;
}
/* @0041c44b file=? name=FUN_0041c44b */
void __cdecl FUN_0041c44b(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e3418;
FUN_004182a8(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041c477 file=? name=FUN_0041c477 */
undefined4 * __cdecl FUN_0041c477(undefined4 *param_1,int param_2)
{
FUN_00418398(param_1,param_2);
*param_1 = &PTR_FUN_004e33c4;
return param_1;
}
/* @0041c496 file=? name=FUN_0041c496 */
undefined4 * __cdecl FUN_0041c496(undefined4 *param_1,int param_2)
{
FUN_00418398(param_1,param_2);
*param_1 = &PTR_FUN_004e33c4;
return param_1;
}
/* @0041c4b5 file=? name=FUN_0041c4b5 */
undefined4 * __cdecl FUN_0041c4b5(undefined4 *param_1,int param_2)
{
FUN_004183c0(param_1,param_2);
*param_1 = &PTR_FUN_004e33c4;
return param_1;
}
/* @0041c4d4 file=? name=FUN_0041c4d4 */
void __cdecl FUN_0041c4d4(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e33c4;
FUN_004183ec(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041c500 file=? name=FUN_0041c500 */
void __cdecl FUN_0041c500(int param_1,undefined4 *param_2,undefined2 param_3)
{
FUN_0041bd60(param_1,param_2,param_3);
*(short *)(param_2 + 1) = *(short *)(param_1 + 0xd8) + 1;
return;
}
/* @0041c52c file=? name=FUN_0041c52c */
undefined4 * __cdecl
FUN_0041c52c(undefined4 *param_1,undefined4 param_2,undefined4 param_3,char *param_4,
undefined4 param_5)
{
char cVar1;
int iVar2;
undefined4 uVar3;
uint uVar4;
uint uVar5;
char *pcVar6;
char *pcVar7;
FUN_0041bdf0(param_1,*(undefined4 *)(param_4 + 0x20),param_5);
*param_1 = &PTR_FUN_004e3598;
param_1[0x34] = param_2;
param_1[0x36] = param_3;
iVar2 = FUN_004d4a78(param_4);
uVar3 = FUN_004022b0(iVar2 + 1);
param_1[0x35] = uVar3;
uVar4 = 0xffffffff;
pcVar6 = param_4;
do {
pcVar7 = pcVar6;
if (uVar4 == 0) break;
uVar4 = uVar4 - 1;
pcVar7 = pcVar6 + 1;
cVar1 = *pcVar6;
pcVar6 = pcVar7;
} while (cVar1 != '\0');
uVar4 = ~uVar4;
pcVar6 = pcVar7 + -uVar4;
pcVar7 = (char *)param_1[0x35];
for (uVar5 = uVar4 >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {
*(undefined4 *)pcVar7 = *(undefined4 *)pcVar6;
pcVar6 = pcVar6 + 4;
pcVar7 = pcVar7 + 4;
}
for (uVar4 = uVar4 & 3; uVar4 != 0; uVar4 = uVar4 - 1) {
*pcVar7 = *pcVar6;
pcVar6 = pcVar6 + 1;
pcVar7 = pcVar7 + 1;
}
param_1[0x37] = *(undefined4 *)(param_4 + 0x28);
param_1[10] = *(undefined4 *)(param_4 + 0x2c);
param_1[0x38] = 0;
return param_1;
}
/* @0041c5c0 file=? name=FUN_0041c5c0 */
undefined4 * __cdecl
FUN_0041c5c0(undefined4 *param_1,undefined4 param_2,undefined4 param_3,char *param_4,
undefined4 param_5,undefined4 param_6)
{
char cVar1;
int iVar2;
undefined4 uVar3;
uint uVar4;
uint uVar5;
char *pcVar6;
char *pcVar7;
FUN_0041bdf0(param_1,param_5,param_6);
*param_1 = &PTR_FUN_004e3598;
param_1[0x34] = param_2;
param_1[0x36] = param_3;
iVar2 = FUN_004d4a78(param_4);
uVar3 = FUN_004022b0(iVar2 + 1);
param_1[0x35] = uVar3;
uVar4 = 0xffffffff;
do {
pcVar6 = param_4;
if (uVar4 == 0) break;
uVar4 = uVar4 - 1;
pcVar6 = param_4 + 1;
cVar1 = *param_4;
param_4 = pcVar6;
} while (cVar1 != '\0');
uVar4 = ~uVar4;
pcVar6 = pcVar6 + -uVar4;
pcVar7 = (char *)param_1[0x35];
for (uVar5 = uVar4 >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {
*(undefined4 *)pcVar7 = *(undefined4 *)pcVar6;
pcVar6 = pcVar6 + 4;
pcVar7 = pcVar7 + 4;
}
for (uVar4 = uVar4 & 3; uVar4 != 0; uVar4 = uVar4 - 1) {
*pcVar7 = *pcVar6;
pcVar6 = pcVar6 + 1;
pcVar7 = pcVar7 + 1;
}
param_1[0x37] = 0xffffffff;
return param_1;
}
/* @0041c648 file=? name=FUN_0041c648 */
void __cdecl FUN_0041c648(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e3598;
FUN_004022e8((int *)param_1[0x35]);
FUN_0041bec4(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041c684 file=? name=FUN_0041c684 */
undefined4 __cdecl
FUN_0041c684(int param_1,char *param_2,char *param_3,char *param_4,int param_5,int param_6)
{
char cVar1;
char *pcVar2;
uint uVar3;
int *piVar4;
undefined4 uVar5;
uint uVar6;
int iVar7;
char *pcVar8;
bool bVar9;
char *local_c;
char *local_8;
iVar7 = 0;
pcVar2 = param_4;
do {
*pcVar2 = '\0';
iVar7 = iVar7 + 1;
pcVar2 = pcVar2 + 1;
} while (iVar7 < 0x20);
param_4[0x24] = '0';
param_4[0x25] = '\0';
param_4[0x26] = '\0';
param_4[0x27] = '\0';
uVar3 = FUN_004d4a78(param_3);
if (uVar3 < 0x20) {
uVar3 = 0xffffffff;
pcVar2 = param_3;
do {
pcVar8 = pcVar2;
if (uVar3 == 0) break;
uVar3 = uVar3 - 1;
pcVar8 = pcVar2 + 1;
cVar1 = *pcVar2;
pcVar2 = pcVar8;
} while (cVar1 != '\0');
uVar3 = ~uVar3;
pcVar2 = pcVar8 + -uVar3;
pcVar8 = param_4;
for (uVar6 = uVar3 >> 2; uVar6 != 0; uVar6 = uVar6 - 1) {
*(undefined4 *)pcVar8 = *(undefined4 *)pcVar2;
pcVar2 = pcVar2 + 4;
pcVar8 = pcVar8 + 4;
}
for (uVar3 = uVar3 & 3; uVar3 != 0; uVar3 = uVar3 - 1) {
*pcVar8 = *pcVar2;
pcVar2 = pcVar2 + 1;
pcVar8 = pcVar8 + 1;
}
param_4[0x2c] = '\0';
param_4[0x2d] = '\0';
param_4[0x2e] = '\0';
param_4[0x2f] = '\0';
iVar7 = FUN_00404088(param_5,param_3,s_SubsystemFlags_004e34c8,&local_8);
if (iVar7 != 0) {
pcVar2 = s_DontReplicateFlag_004e34d7;
do {
if (*local_8 != *pcVar2) goto LAB_0041c772;
bVar9 = true;
if (*local_8 == '\0') break;
pcVar8 = local_8 + 1;
if (*pcVar8 != pcVar2[1]) goto LAB_0041c772;
local_8 = local_8 + 2;
pcVar2 = pcVar2 + 2;
bVar9 = *pcVar8 == '\0';
} while (!bVar9);
if (!bVar9) {
LAB_0041c772:
FUN_004dbb24(&DAT_00524e20,param_3,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_has_an_unknown_subsystem_flag__004e34e9,(char *)0x0);
return 0;
}
*(uint *)(param_4 + 0x2c) = *(uint *)(param_4 + 0x2c) | 4;
}
param_4[0x28] = -1;
param_4[0x29] = -1;
param_4[0x2a] = -1;
param_4[0x2b] = -1;
iVar7 = FUN_00404088(param_5,param_3,s_SegmentPageName_004e350a,&local_c);
if (iVar7 != 0) {
iVar7 = FUN_0041c808(param_1,param_2,param_6,local_c);
*(int *)(param_4 + 0x28) = iVar7;
}
uVar5 = 1;
}
else {
FUN_004dbb24(&DAT_00524e20,param_3,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_is_too_long__Maximum_name_size_i_004e3496,(char *)0x0);
piVar4 = FUN_004db880(&DAT_00524e20,0x1f);
FUN_004dbb24(piVar4,s_character__004e34bb,(char *)0x0);
uVar5 = 0;
}
return uVar5;
}
/* @0041c7e4 file=? name=FUN_0041c7e4 */
void __cdecl FUN_0041c7e4(int param_1)
{
FUN_0041a1a4(**(int **)(param_1 + 0xc),0x4e345c);
return;
}
/* @0041c800 file=? name=FUN_0041c800 */
undefined4 FUN_0041c800(void)
{
return 0;
}
/* @0041c808 file=? name=FUN_0041c808 */
int __cdecl FUN_0041c808(int param_1,char *param_2,int param_3,char *param_4)
{
char cVar1;
undefined4 *puVar2;
int *piVar3;
int iVar4;
int iVar5;
int *piVar6;
char *pcVar7;
char *pcVar8;
uint uVar9;
uint uVar10;
char *pcVar11;
char *pcVar12;
bool bVar13;
char local_34 [32];
int local_14;
int *local_10;
int *local_c;
char *local_8;
iVar5 = FUN_00404088(param_1,s_video_004e351a,s_skeleton_004e3520,&local_8);
if (iVar5 == 0) {
FUN_004dbb24((int *)&DAT_00524e68,param_2,(char *)0x0);
FUN_004dbb24((int *)&DAT_00524e68,s_is_missing__skl_file_specificati_004e3529,(char *)0x0);
}
else {
local_c = (int *)FUN_004064fc(*(char **)(param_3 + 0x10),local_8);
piVar6 = (int *)FUN_00402298(0x20);
if (piVar6 == (int *)0x0) {
piVar6 = (int *)0x0;
}
else {
piVar6 = FUN_00403e84(piVar6,(char *)local_c,1);
}
if ((*(byte *)(piVar6 + 7) & 2) == 0) {
iVar5 = piVar6[3];
}
else {
iVar5 = piVar6[4];
}
if (iVar5 != 0) {
local_10 = FUN_0040485c((int)piVar6,(char *)0x0);
iVar5 = 0;
puVar2 = (undefined4 *)local_10[1];
local_14 = -1;
joined_r0x0041c90c:
do {
iVar4 = local_14;
if (puVar2 == (undefined4 *)0x0) {
LAB_0041c9c2:
local_14 = iVar4;
piVar3 = local_c;
if (local_14 == -1) {
FUN_004dbb24(&DAT_00524e20,param_4,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_SegmentPageName_Not_in_004e357b,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,(char *)piVar3,(char *)0x0);
FUN_004d9c38(&DAT_00524e20);
return 0;
}
FUN_004022e8(local_c);
FUN_00403ecc(piVar6,3);
if (local_10 == (int *)0x0) {
return local_14;
}
(**(code **)*local_10)(local_10,3);
return local_14;
}
uVar9 = 0xffffffff;
pcVar8 = (char *)(puVar2 + 2);
do {
pcVar12 = pcVar8;
if (uVar9 == 0) break;
uVar9 = uVar9 - 1;
pcVar12 = pcVar8 + 1;
cVar1 = *pcVar8;
pcVar8 = pcVar12;
} while (cVar1 != '\0');
uVar9 = ~uVar9;
pcVar8 = pcVar12 + -uVar9;
pcVar12 = local_34;
for (uVar10 = uVar9 >> 2; uVar10 != 0; uVar10 = uVar10 - 1) {
*(undefined4 *)pcVar12 = *(undefined4 *)pcVar8;
pcVar8 = pcVar8 + 4;
pcVar12 = pcVar12 + 4;
}
pcVar11 = s_LAB_ONLY_004e3566;
pcVar7 = local_34;
for (uVar9 = uVar9 & 3; uVar9 != 0; uVar9 = uVar9 - 1) {
*pcVar12 = *pcVar8;
pcVar8 = pcVar8 + 1;
pcVar12 = pcVar12 + 1;
}
do {
bVar13 = *pcVar7 == *pcVar11;
if (!bVar13) break;
if (*pcVar7 == '\0') goto LAB_0041c987;
pcVar8 = pcVar7 + 1;
bVar13 = *pcVar8 == pcVar11[1];
if (!bVar13) break;
pcVar7 = pcVar7 + 2;
pcVar11 = pcVar11 + 2;
bVar13 = *pcVar8 == '\0';
} while (!bVar13);
if (!bVar13) {
pcVar8 = local_34;
pcVar12 = s_DamageZones_004e356f;
do {
if (*pcVar8 != *pcVar12) goto LAB_0041c98e;
bVar13 = true;
if (*pcVar8 == '\0') break;
pcVar7 = pcVar8 + 1;
if (*pcVar7 != pcVar12[1]) goto LAB_0041c98e;
pcVar8 = pcVar8 + 2;
pcVar12 = pcVar12 + 2;
bVar13 = *pcVar7 == '\0';
} while (!bVar13);
if (!bVar13) {
LAB_0041c98e:
pcVar8 = local_34;
pcVar12 = param_4;
do {
if (*pcVar8 != *pcVar12) goto LAB_0041c9b7;
bVar13 = true;
if (*pcVar8 == '\0') break;
pcVar7 = pcVar8 + 1;
if (*pcVar7 != pcVar12[1]) goto LAB_0041c9b7;
pcVar8 = pcVar8 + 2;
pcVar12 = pcVar12 + 2;
bVar13 = *pcVar7 == '\0';
} while (!bVar13);
iVar4 = iVar5;
if (bVar13) goto LAB_0041c9c2;
LAB_0041c9b7:
iVar5 = iVar5 + 1;
puVar2 = (undefined4 *)*puVar2;
goto joined_r0x0041c90c;
}
}
LAB_0041c987:
puVar2 = (undefined4 *)*puVar2;
} while( true );
}
FUN_004dbb24((int *)&DAT_00524e68,(char *)local_c,(char *)0x0);
FUN_004dbb24((int *)&DAT_00524e68,s_is_empty_or_missing__004e354f,(char *)0x0);
FUN_004022e8(local_c);
FUN_00403ecc(piVar6,3);
}
return -1;
}
/* @0041cab2 file=? name=FUN_0041cab2 */
void __cdecl FUN_0041cab2(int param_1,undefined4 param_2)
{
(**(code **)(**(int **)(param_1 + 0xe0) + 0x18))(*(int **)(param_1 + 0xe0),param_2);
return;
}
/* @0041cacd file=? name=FUN_0041cacd */
void FUN_0041cacd(void)
{
return;
}
/* @0041cad2 file=? name=FUN_0041cad2 */
void FUN_0041cad2(void)
{
return;
}
/* @0041cad8 file=? name=FUN_0041cad8 */
undefined4 * __cdecl FUN_0041cad8(undefined4 *param_1)
{
FUN_00408e90(param_1 + 3,&DAT_004e0f8c);
FUN_00408440(param_1,&DAT_004e0f80);
return param_1;
}
/* @0041cb04 file=? name=FUN_0041cb04 */
undefined4 * __cdecl FUN_0041cb04(undefined4 *param_1,undefined4 *param_2)
{
FUN_00408e90(param_1 + 3,param_2 + 3);
FUN_00408440(param_1,param_2);
return param_1;
}
/* @0041cb34 file=? name=FUN_0041cb34 */
undefined4 FUN_0041cb34(void)
{
return 1;
}
/* @0041cb40 file=? name=FUN_0041cb40 */
undefined4 * __cdecl FUN_0041cb40(undefined4 *param_1,undefined4 param_2)
{
FUN_00415e90(param_1,1);
*param_1 = &PTR_FUN_004e36dc;
param_1[4] = 3;
param_1[5] = 1;
param_1[3] = 0;
param_1[6] = param_2;
return param_1;
}
/* @0041cb78 file=? name=FUN_0041cb78 */
undefined4 * __cdecl FUN_0041cb78(undefined4 *param_1,undefined4 param_2,undefined4 param_3)
{
undefined4 *puVar1;
FUN_00415e90(param_1,1);
*param_1 = &PTR_FUN_004e36dc;
param_1[4] = param_3;
param_1[5] = 1;
param_1[6] = param_2;
param_1[3] = 0;
switch(param_3) {
case 0:
puVar1 = (undefined4 *)FUN_00402298(8);
if (puVar1 != (undefined4 *)0x0) {
*puVar1 = 0;
puVar1[1] = 0;
}
param_1[3] = puVar1;
break;
case 1:
puVar1 = (undefined4 *)FUN_00402298(8);
if (puVar1 != (undefined4 *)0x0) {
*puVar1 = 1;
puVar1[1] = 0;
}
param_1[3] = puVar1;
break;
case 2:
puVar1 = (undefined4 *)FUN_00402298(8);
if (puVar1 != (undefined4 *)0x0) {
*puVar1 = 2;
puVar1[1] = 0;
}
param_1[3] = puVar1;
break;
case 4:
puVar1 = (undefined4 *)FUN_00402298(0xc);
if (puVar1 != (undefined4 *)0x0) {
*puVar1 = DAT_004e0f8c;
puVar1[1] = DAT_004e0f90;
puVar1[2] = DAT_004e0f94;
}
param_1[3] = puVar1;
break;
case 5:
puVar1 = (undefined4 *)FUN_00402298(0x18);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_0041cad8(puVar1);
}
param_1[3] = puVar1;
}
return param_1;
}
/* @0041ccc0 file=? name=FUN_0041ccc0 */
undefined4 * __cdecl FUN_0041ccc0(undefined4 *param_1,int param_2)
{
uint uVar1;
undefined4 *puVar2;
undefined4 *puVar3;
FUN_00415e90(param_1,1);
*param_1 = &PTR_FUN_004e36dc;
param_1[5] = 1;
param_1[6] = *(undefined4 *)(param_2 + 0x18);
param_1[4] = *(undefined4 *)(param_2 + 0x10);
param_1[3] = 0;
uVar1 = *(uint *)(param_2 + 0x10);
if (uVar1 < 3) {
puVar3 = (undefined4 *)FUN_00402298(8);
if (puVar3 != (undefined4 *)0x0) {
puVar2 = *(undefined4 **)(param_2 + 0xc);
*puVar3 = *puVar2;
puVar3[1] = puVar2[1];
}
param_1[3] = puVar3;
}
else if (uVar1 != 3) {
if (uVar1 == 4) {
puVar3 = (undefined4 *)FUN_00402298(0xc);
if (puVar3 != (undefined4 *)0x0) {
puVar2 = *(undefined4 **)(param_2 + 0xc);
*puVar3 = *puVar2;
puVar3[1] = puVar2[1];
puVar3[2] = puVar2[2];
}
param_1[3] = puVar3;
}
else if (uVar1 == 5) {
puVar3 = (undefined4 *)FUN_00402298(0x18);
if (puVar3 == (undefined4 *)0x0) {
puVar3 = (undefined4 *)0x0;
}
else {
puVar3 = FUN_0041cb04(puVar3,*(undefined4 **)(param_2 + 0xc));
}
param_1[3] = puVar3;
}
}
return param_1;
}
/* @0041cdd8 file=? name=FUN_0041cdd8 */
int __cdecl FUN_0041cdd8(int param_1,int param_2)
{
uint uVar1;
undefined4 *puVar2;
undefined4 *puVar3;
*(undefined4 *)(param_1 + 0x14) = 1;
uVar1 = *(uint *)(param_1 + 0x10);
if (uVar1 == *(uint *)(param_2 + 0x10)) {
uVar1 = *(uint *)(param_2 + 0x10);
if (uVar1 < 3) {
*(undefined4 *)(param_1 + 0xc) = *(undefined4 *)(param_2 + 0xc);
}
else if (uVar1 != 3) {
if (uVar1 == 4) {
*(undefined4 *)(param_1 + 0xc) = *(undefined4 *)(param_2 + 0xc);
}
else if (uVar1 == 5) {
*(undefined4 *)(param_1 + 0xc) = *(undefined4 *)(param_2 + 0xc);
}
}
}
else {
if (uVar1 < 3) {
FUN_004022d0(*(int **)(param_1 + 0xc));
}
else if (uVar1 != 3) {
if (uVar1 == 4) {
FUN_004022d0(*(int **)(param_1 + 0xc));
}
else if (uVar1 == 5) {
FUN_004022d0(*(int **)(param_1 + 0xc));
}
}
*(undefined4 *)(param_1 + 0x10) = *(undefined4 *)(param_2 + 0x10);
uVar1 = *(uint *)(param_2 + 0x10);
if (uVar1 < 3) {
puVar3 = (undefined4 *)FUN_00402298(8);
if (puVar3 != (undefined4 *)0x0) {
puVar2 = *(undefined4 **)(param_2 + 0xc);
*puVar3 = *puVar2;
puVar3[1] = puVar2[1];
}
*(undefined4 **)(param_1 + 0xc) = puVar3;
}
else if (uVar1 != 3) {
if (uVar1 == 4) {
puVar3 = (undefined4 *)FUN_00402298(0xc);
if (puVar3 != (undefined4 *)0x0) {
puVar2 = *(undefined4 **)(param_2 + 0xc);
*puVar3 = *puVar2;
puVar3[1] = puVar2[1];
puVar3[2] = puVar2[2];
}
*(undefined4 **)(param_1 + 0xc) = puVar3;
}
else if (uVar1 == 5) {
puVar3 = (undefined4 *)FUN_00402298(0x18);
if (puVar3 == (undefined4 *)0x0) {
puVar3 = (undefined4 *)0x0;
}
else {
puVar3 = FUN_0041cb04(puVar3,*(undefined4 **)(param_2 + 0xc));
}
*(undefined4 **)(param_1 + 0xc) = puVar3;
}
}
}
return param_1;
}
/* @0041cf40 file=? name=FUN_0041cf40 */
void __cdecl FUN_0041cf40(int *param_1,byte param_2)
{
uint uVar1;
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e36dc;
uVar1 = param_1[4];
if (uVar1 < 3) {
FUN_004022d0((int *)param_1[3]);
}
else if (uVar1 != 3) {
if (uVar1 == 4) {
FUN_004022d0((int *)param_1[3]);
}
else if (uVar1 == 5) {
FUN_004022d0((int *)param_1[3]);
}
}
FUN_00415ed8(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041cfa0 file=? name=FUN_0041cfa0 */
int __cdecl FUN_0041cfa0(int param_1)
{
if (*(int *)(param_1 + 0x10) == 4) {
return *(int *)(param_1 + 0xc);
}
if (*(int *)(param_1 + 0x10) != 5) {
return *(int *)(param_1 + 0xc);
}
return *(int *)(param_1 + 0xc) + 0xc;
}
/* @0041cfc8 file=? name=FUN_0041cfc8 */
void __cdecl FUN_0041cfc8(int param_1,int *param_2)
{
int *piVar1;
int iVar2;
iVar2 = FUN_00408d78(*(int **)(param_1 + 0xc),param_2,0.0001);
if (iVar2 == 0) {
*(undefined4 *)(param_1 + 0x14) = 1;
piVar1 = *(int **)(param_1 + 0xc);
*piVar1 = *param_2;
piVar1[1] = param_2[1];
*(undefined4 *)(*(int *)(param_1 + 0x18) + 0xfc) = 1;
}
return;
}
/* @0041d020 file=? name=FUN_0041d020 */
void __cdecl FUN_0041d020(int param_1,float *param_2)
{
int iVar1;
if (*(int *)(param_1 + 0x10) == 4) {
iVar1 = FUN_004091f4(*(float **)(param_1 + 0xc),param_2,0.0001);
if (iVar1 != 0) {
return;
}
FUN_00408e90(*(undefined4 **)(param_1 + 0xc),param_2);
}
else {
if (*(int *)(param_1 + 0x10) != 5) {
return;
}
iVar1 = FUN_004091f4((float *)(*(int *)(param_1 + 0xc) + 0xc),param_2,0.0001);
if (iVar1 != 0) {
return;
}
FUN_00408e90((undefined4 *)(*(int *)(param_1 + 0xc) + 0xc),param_2);
}
*(undefined4 *)(param_1 + 0x14) = 1;
*(undefined4 *)(*(int *)(param_1 + 0x18) + 0xfc) = 1;
return;
}
/* @0041d0a8 file=? name=FUN_0041d0a8 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
void __cdecl FUN_0041d0a8(int param_1,float *param_2)
{
float10 fVar1;
fVar1 = FUN_004dcd00((double)(*(float *)(*(int *)(param_1 + 0xc) + 4) - *param_2));
if ((float10)_DAT_0041d118 < fVar1) {
*(float *)(*(int *)(param_1 + 0xc) + 4) = *param_2;
*(undefined4 *)(param_1 + 0x14) = 1;
*(undefined4 *)(*(int *)(param_1 + 0x18) + 0xfc) = 1;
}
return;
}
/* @0041d11c file=? name=FUN_0041d11c */
void __cdecl FUN_0041d11c(int param_1,float *param_2)
{
int iVar1;
*(undefined4 *)(param_1 + 0x14) = 1;
iVar1 = FUN_004084fc(*(float **)(param_1 + 0xc),param_2,0.0001);
if (iVar1 == 0) {
FUN_00408440(*(undefined4 **)(param_1 + 0xc),param_2);
*(undefined4 *)(param_1 + 0x14) = 1;
*(undefined4 *)(*(int *)(param_1 + 0x18) + 0xfc) = 1;
}
return;
}
/* @0041d170 file=? name=FUN_0041d170 */
undefined4 * __cdecl
FUN_0041d170(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)
{
undefined4 *puVar1;
FUN_0041c5c0(param_1,param_2,param_3,s_Joint_Subsystem_004e3617,0x33,param_4);
*param_1 = &PTR_FUN_004e36ac;
FUN_0041d2ea(param_1 + 0x39,0,0);
puVar1 = (undefined4 *)FUN_00402298(0x160);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_0041de1c(puVar1,param_1,0);
}
param_1[0x38] = puVar1;
return param_1;
}
/* @0041d1dc file=? name=FUN_0041d1dc */
void __cdecl FUN_0041d1dc(int *param_1,byte param_2)
{
undefined4 *puVar1;
void *this;
int local_20 [7];
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e36ac;
FUN_0041d3b3(local_20,(int)(param_1 + 0x39));
FUN_00417858(this,local_20,1);
puVar1 = (undefined4 *)param_1[0x38];
if (puVar1 != (undefined4 *)0x0) {
(**(code **)*puVar1)(puVar1,3);
}
FUN_0041d3d2(local_20,2);
FUN_0041d30d(param_1 + 0x39,2);
FUN_0041c648(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041d260 file=? name=FUN_0041d260 */
void __cdecl FUN_0041d260(int param_1)
{
FUN_0041a1a4(**(int **)(param_1 + 0xc),0x4e35d8);
return;
}
/* @0041d2ea file=? name=FUN_0041d2ea */
undefined4 * __cdecl FUN_0041d2ea(undefined4 *param_1,undefined4 param_2,undefined4 param_3)
{
FUN_00419184(param_1,param_2,param_3);
*param_1 = &PTR_FUN_004e3690;
return param_1;
}
/* @0041d30d file=? name=FUN_0041d30d */
void __cdecl FUN_0041d30d(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e3690;
FUN_004191b4(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041d339 file=? name=FUN_0041d339 */
undefined4 __cdecl FUN_0041d339(undefined4 param_1,int param_2,int param_3)
{
undefined4 uVar1;
if (*(int *)(param_3 + 0x14) == *(int *)(param_2 + 0x14)) {
uVar1 = 0;
}
else {
uVar1 = 1;
if (*(int *)(param_2 + 0x14) <= *(int *)(param_3 + 0x14)) {
uVar1 = 0xffffffff;
}
}
return uVar1;
}
/* @0041d368 file=? name=FUN_0041d368 */
undefined4 __cdecl FUN_0041d368(undefined4 param_1,int *param_2,int param_3)
{
undefined4 uVar1;
if (*(int *)(param_3 + 0x14) == *param_2) {
uVar1 = 0;
}
else {
uVar1 = 1;
if (*param_2 <= *(int *)(param_3 + 0x14)) {
uVar1 = 0xffffffff;
}
}
return uVar1;
}
/* @0041d394 file=? name=FUN_0041d394 */
undefined4 * __cdecl FUN_0041d394(undefined4 *param_1,int param_2)
{
FUN_004194d8(param_1,param_2);
*param_1 = &PTR_FUN_004e3634;
return param_1;
}
/* @0041d3b3 file=? name=FUN_0041d3b3 */
undefined4 * __cdecl FUN_0041d3b3(undefined4 *param_1,int param_2)
{
FUN_004194d8(param_1,param_2);
*param_1 = &PTR_FUN_004e3634;
return param_1;
}
/* @0041d3d2 file=? name=FUN_0041d3d2 */
void __cdecl FUN_0041d3d2(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e3634;
FUN_0041951c(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041d3fe file=? name=FUN_0041d3fe */
undefined4 * __cdecl FUN_0041d3fe(undefined4 param_1,int param_2,undefined4 *param_3)
{
undefined4 *puVar1;
puVar1 = (undefined4 *)FUN_0041d485();
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_0041d42e(puVar1,param_1,param_2,param_3);
}
return puVar1;
}
/* @0041d42e file=? name=FUN_0041d42e */
undefined4 * __cdecl
FUN_0041d42e(undefined4 *param_1,undefined4 param_2,int param_3,undefined4 *param_4)
{
FUN_004190e8(param_1,param_2,param_3);
*param_1 = &PTR_FUN_004e36e8;
param_1[5] = *param_4;
return param_1;
}
/* @0041d459 file=? name=FUN_0041d459 */
void __cdecl FUN_0041d459(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e36e8;
FUN_0041910c(param_1,0);
if ((param_2 & 1) != 0) {
FUN_0041d4d5(param_1);
}
}
return;
}
/* @0041d485 file=? name=FUN_0041d485 */
void FUN_0041d485(void)
{
int iVar1;
undefined4 *puVar2;
iVar1 = DAT_004e36e4;
DAT_004e36e4 = DAT_004e36e4 + 1;
puVar2 = DAT_004e36e0;
if ((iVar1 == 0) && (puVar2 = (undefined4 *)FUN_00402298(0x28), puVar2 != (undefined4 *)0x0)) {
FUN_00402b98(puVar2,0x18,100,100,s_TableEntryOf_004e3627);
}
DAT_004e36e0 = puVar2;
FUN_00402f74((int)DAT_004e36e0);
return;
}
/* @0041d4d5 file=? name=FUN_0041d4d5 */
void __cdecl FUN_0041d4d5(undefined4 *param_1)
{
FUN_00402f98((int)DAT_004e36e0,param_1);
DAT_004e36e4 = DAT_004e36e4 + -1;
if (DAT_004e36e4 == 0) {
if (DAT_004e36e0 != (int *)0x0) {
FUN_00402c28(DAT_004e36e0,0);
FUN_004022d0(DAT_004e36e0);
}
DAT_004e36e0 = (int *)0x0;
}
return;
}
/* @0041d520 file=? name=FUN_0041d520 */
undefined4 * __cdecl
FUN_0041d520(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)
{
FUN_004178cc(param_1,param_2);
*param_1 = &PTR_FUN_004e3320;
param_1[3] = param_3;
*param_1 = &PTR_FUN_004e3954;
param_1[4] = param_4;
return param_1;
}
/* @0041d554 file=? name=FUN_0041d554 */
void __cdecl FUN_0041d554(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e3954;
FUN_0041790c(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041d580 file=? name=FUN_0041d580 */
void __cdecl FUN_0041d580(int param_1)
{
FUN_0041a1a4(**(int **)(param_1 + 0xc),0x4e36f8);
return;
}
/* @0041d59c file=? name=FUN_0041d59c */
void __cdecl FUN_0041d59c(int *param_1,undefined4 param_2,undefined4 param_3)
{
(**(code **)(*param_1 + 0xc))(param_1,param_3);
return;
}
/* @0041d5b4 file=? name=FUN_0041d5b4 */
undefined4 * __cdecl FUN_0041d5b4(undefined4 *param_1,undefined4 param_2)
{
FUN_0041d520(param_1,0x11,param_2,0);
*param_1 = &PTR_FUN_004e3918;
param_1[5] = 0;
param_1[6] = 0;
param_1[7] = 0;
param_1[8] = 0;
param_1[9] = 0;
return param_1;
}
/* @0041d5f0 file=? name=FUN_0041d5f0 */
void FUN_0041d5f0(void)
{
undefined4 *puVar1;
uint local_10 [3];
puVar1 = (undefined4 *)FUN_00402298(0x58);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_00428a78(puVar1,1,0,1);
}
FUN_00428ee0(*(int *)(DAT_004efc94 + 0x2c),(int)puVar1);
local_10[0] = 0xc;
local_10[1] = 10;
local_10[2] = 1;
FUN_0041acbc(*(int *)(DAT_004efc94 + 0x60),2,DAT_004efc94,local_10,DAT_004e17f4);
return;
}
/* @0041d66c file=? name=FUN_0041d66c */
undefined4 __cdecl FUN_0041d66c(int param_1)
{
undefined4 *puVar1;
if (*(int **)(param_1 + 0x20) != (int *)0x0) {
FUN_00403ecc(*(int **)(param_1 + 0x20),3);
}
puVar1 = (undefined4 *)FUN_00428f34(*(int *)(DAT_004efc94 + 0x2c));
if (puVar1 != (undefined4 *)0x0) {
(**(code **)*puVar1)(puVar1,3);
}
return 1;
}
/* @0041d6a8 file=? name=FUN_0041d6a8 */
void __cdecl FUN_0041d6a8(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e3918;
FUN_0041d554(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041d6d4 file=? name=FUN_0041d6d4 */
void __cdecl FUN_0041d6d4(int param_1,int param_2)
{
undefined4 uVar1;
int *piVar2;
if (*(int *)(param_2 + 0xc) == -1) {
FUN_0044e9c0(DAT_004efc94,*(undefined4 *)(param_1 + 0x20));
}
else {
if (*(int *)(param_2 + 0xc) == 0) {
uVar1 = FUN_004022b0(*(uint *)(param_2 + 0x10));
*(undefined4 *)(param_1 + 0x1c) = uVar1;
*(undefined4 *)(param_1 + 0x24) = 0;
}
FUN_004d4918((undefined4 *)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x24)),
(undefined4 *)(param_2 + 0x18),*(uint *)(param_2 + 0x14));
*(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + *(int *)(param_2 + 0x14);
if (*(int *)(param_2 + 0x10) <= *(int *)(param_1 + 0x24)) {
piVar2 = (int *)FUN_00402298(0x20);
if (piVar2 == (int *)0x0) {
piVar2 = (int *)0x0;
}
else {
piVar2 = FUN_00403e84(piVar2,(char *)0x0,1);
}
*(int **)(param_1 + 0x20) = piVar2;
FUN_00404d00((int)piVar2,*(char **)(param_1 + 0x1c),*(int *)(param_1 + 0x24));
FUN_00404d6c(*(undefined4 **)(param_1 + 0x20),s_last_egg_004e37a8);
FUN_0044e9c0(DAT_004efc94,*(undefined4 *)(param_1 + 0x20));
FUN_004022d0(*(int **)(param_1 + 0x1c));
}
}
return;
}
/* @0041d7a8 file=? name=FUN_0041d7a8 */
void FUN_0041d7a8(void)
{
return;
}
/* @0041d7b0 file=? name=FUN_0041d7b0 */
void __cdecl FUN_0041d7b0(int *param_1,undefined4 param_2,uint param_3)
{
int *piVar1;
piVar1 = (int *)FUN_0041d7f0((int)param_1,param_3);
(**(code **)(*piVar1 + 0x14))(piVar1,0,param_2);
(**(code **)(*param_1 + 0x1c))(param_1,param_2,param_3);
return;
}
/* @0041d7e8 file=? name=FUN_0041d7e8 */
void FUN_0041d7e8(void)
{
return;
}
/* @0041d7f0 file=munga/network.cpp name=FUN_0041d7f0 */
int __cdecl FUN_0041d7f0(int param_1,uint param_2)
{
int *piVar1;
switch(param_2) {
case 0:
goto switchD_0041d801_caseD_0;
case 1:
return *(int *)(DAT_004efc94 + 0x24);
case 2:
return *(int *)(DAT_004efc94 + 0x2c);
case 3:
return *(int *)(DAT_004efc94 + 0x30);
case 4:
return DAT_004efc94;
default:
FUN_004dbb24(&DAT_00524e20,s_______UNKNOWN_NETWORK_CLIENT_ID_004e37b1,(char *)0x0);
piVar1 = FUN_004db78c(&DAT_00524e20,param_2);
FUN_004d9c38(piVar1);
FUN_0040385c(s_Unknown_Client_ID_004e37d2,s_d__tesla_bt_munga_NETWORK_CPP_004e37e4,0x17e);
param_1 = 0;
switchD_0041d801_caseD_0:
return param_1;
case 6:
return *(int *)(DAT_004efc94 + 0x40);
}
}
/* @0041d8a8 file=munga/network.cpp name=FUN_0041d8a8 */
undefined4 __cdecl FUN_0041d8a8(int *param_1)
{
int iVar1;
undefined4 uVar2;
int *piVar3;
uint local_64c;
uint local_648;
uint local_644;
undefined1 local_63c [1584];
uint local_c;
uint local_8;
iVar1 = (**(code **)(*param_1 + 0x34))(param_1,&local_64c);
if (iVar1 == 0) {
uVar2 = 0;
}
else {
if (local_648 == param_1[5]) {
piVar3 = (int *)FUN_0041d7f0((int)param_1,local_64c);
(**(code **)(*piVar3 + 0x14))(piVar3,&local_64c,local_63c);
}
else {
local_8 = local_644;
local_c = local_648;
FUN_004dbb24(&DAT_00524e20,s___________client_004e3802,(char *)0x0);
piVar3 = FUN_004db78c(&DAT_00524e20,local_64c);
FUN_004dbb24(piVar3,s_gameID_004e3814,(char *)0x0);
piVar3 = FUN_004db78c(piVar3,local_c);
FUN_004dbb24(piVar3,s_fromHost_004e381d,(char *)0x0);
piVar3 = FUN_004db78c(piVar3,local_8);
FUN_004d9c38(piVar3);
FUN_0040385c(s___________NOT_A_PACKET_FOR_THIS_G_004e3828,
s_d__tesla_bt_munga_NETWORK_CPP_004e384e,0x1ac);
}
(**(code **)(*param_1 + 0x38))(param_1,&local_64c);
uVar2 = 1;
}
return uVar2;
}
/* @0041d9a4 file=? name=FUN_0041d9a4 */
undefined4 FUN_0041d9a4(void)
{
return 1;
}
/* @0041d9b0 file=munga/network.cpp name=FUN_0041d9b0 */
undefined4 FUN_0041d9b0(void)
{
FUN_0040385c(s_NetworkManager__CheckBuffers___s_004e386c,s_d__tesla_bt_munga_NETWORK_CPP_004e38a4,
0x1c6);
return 0;
}
/* @0041d9d0 file=munga/network.cpp name=FUN_0041d9d0 */
void FUN_0041d9d0(void)
{
FUN_0040385c(s_NetworkManager__RemovePacket___s_004e38c2,s_d__tesla_bt_munga_NETWORK_CPP_004e38fa,
0x1d1);
return;
}
/* @0041dac6 file=? name=FUN_0041dac6 */
void FUN_0041dac6(void)
{
return;
}
/* @0041dacb file=? name=FUN_0041dacb */
void FUN_0041dacb(void)
{
return;
}
/* @0041dad0 file=? name=FUN_0041dad0 */
undefined4 * __cdecl FUN_0041dad0(undefined4 *param_1)
{
undefined4 *puVar1;
FUN_00415e90(param_1,1);
*param_1 = &PTR_FUN_004e3d0c;
FUN_0041f2cb(param_1 + 4,0);
puVar1 = (undefined4 *)FUN_00402298(0x14);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_0041f335(puVar1,(int)(param_1 + 4));
}
param_1[3] = puVar1;
return param_1;
}
/* @0041db20 file=? name=FUN_0041db20 */
void __thiscall FUN_0041db20(void *this,int *param_1,byte param_2)
{
undefined4 *puVar1;
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e3d0c;
FUN_00417858(this,(int *)param_1[3],1);
puVar1 = (undefined4 *)param_1[3];
if (puVar1 != (undefined4 *)0x0) {
(**(code **)*puVar1)(puVar1,3);
}
FUN_0041f2ea(param_1 + 4,2);
FUN_00415ed8(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041db7c file=? name=FUN_0041db7c */
int __cdecl FUN_0041db7c(int param_1)
{
*(undefined4 *)(param_1 + 4) = 0;
FUN_00408440((undefined4 *)(param_1 + 8),&DAT_004e0f74);
*(undefined4 *)(param_1 + 0x14) = 0;
*(undefined4 *)(param_1 + 0x18) = 0x3f800000;
*(undefined4 *)(param_1 + 0x1c) = 0;
FUN_00408440((undefined4 *)(param_1 + 0x20),&DAT_004e0f80);
*(undefined4 *)(param_1 + 0x2c) = 1;
return param_1;
}
/* @0041dbd0 file=? name=FUN_0041dbd0 */
int __cdecl FUN_0041dbd0(int param_1,undefined4 param_2)
{
int iVar1;
int local_68 [5];
int local_54 [5];
int local_40 [5];
int local_2c [5];
int local_18 [5];
switch(param_2) {
case 1:
FUN_0041f4b3(local_40,param_1 + 0x100);
iVar1 = (**(code **)(local_40[0] + 0x30))(local_40);
if (iVar1 != 0) {
FUN_0041f4f1(local_40,2);
return iVar1;
}
FUN_0041f4f1(local_40,2);
break;
case 2:
FUN_0041f4b3(local_2c,param_1 + 0xec);
iVar1 = (**(code **)(local_2c[0] + 0x30))(local_2c);
if (iVar1 != 0) {
FUN_0041f4f1(local_2c,2);
return iVar1;
}
FUN_0041f4f1(local_2c,2);
break;
case 3:
FUN_0041f4b3(local_68,param_1 + 0x128);
iVar1 = (**(code **)(local_68[0] + 0x30))(local_68);
if (iVar1 != 0) {
FUN_0041f4f1(local_68,2);
return iVar1;
}
FUN_0041f4f1(local_68,2);
break;
case 4:
FUN_0041f4b3(local_54,param_1 + 0x114);
iVar1 = (**(code **)(local_54[0] + 0x30))(local_54);
if (iVar1 != 0) {
FUN_0041f4f1(local_54,2);
return iVar1;
}
FUN_0041f4f1(local_54,2);
}
FUN_0041f4b3(local_18,param_1 + 0xd8);
iVar1 = (**(code **)(local_18[0] + 0x30))(local_18);
FUN_0041f4f1(local_18,2);
return iVar1;
}
/* @0041dd68 file=? name=FUN_0041dd68 */
void __cdecl FUN_0041dd68(int param_1)
{
FUN_0041bbd8(param_1 + 0x10,0);
FUN_0041bbd8(param_1 + 100,0);
*(undefined4 *)(param_1 + 0x158) = 0;
return;
}
/* @0041dd98 file=? name=FUN_0041dd98 */
void __cdecl FUN_0041dd98(int param_1,undefined4 *param_2)
{
param_2[2] = *(undefined4 *)(param_1 + 0x158);
param_2[3] = *(undefined4 *)(param_1 + 0x24);
param_2[4] = *(undefined4 *)(param_1 + 0x78);
param_2[1] = *(undefined4 *)(param_1 + 0x13c);
param_2[5] = *(undefined4 *)(param_1 + 0xb8);
*param_2 = 0x18;
*(undefined4 *)(param_1 + 0xb8) = 0;
return;
}
/* @0041ddd8 file=? name=FUN_0041ddd8 */
void __cdecl FUN_0041ddd8(int param_1,int param_2)
{
*(undefined4 *)(param_1 + 0x158) = *(undefined4 *)(param_2 + 8);
FUN_0041bbd8(param_1 + 0x10,*(int *)(param_2 + 0xc));
FUN_0041bbd8(param_1 + 100,*(int *)(param_2 + 0x10));
*(undefined4 *)(param_1 + 0xb8) = *(undefined4 *)(param_2 + 0x14);
return;
}
/* @0041de1c file=? name=FUN_0041de1c */
undefined4 * __cdecl FUN_0041de1c(undefined4 *param_1,undefined4 param_2,undefined4 param_3)
{
int *piVar1;
undefined4 *puVar2;
int iVar3;
int *local_8;
FUN_004178cc(param_1,0x4e);
*param_1 = &PTR_FUN_004e3cf0;
FUN_0041b9ec(param_1 + 4,2);
FUN_0041b9ec(param_1 + 0x19,3);
FUN_0041f39f(param_1 + 0x2f,0,0);
FUN_0041f449(param_1 + 0x36,0);
FUN_0041f449(param_1 + 0x3b,0);
FUN_0041f449(param_1 + 0x40,0);
FUN_0041f449(param_1 + 0x45,0);
FUN_0041f449(param_1 + 0x4a,0);
puVar2 = (undefined4 *)FUN_00402298(0x10);
if (puVar2 == (undefined4 *)0x0) {
iVar3 = 0;
}
else {
iVar3 = FUN_004023f4(puVar2);
}
param_1[0x57] = iVar3;
piVar1 = (int *)(param_1[0x57] + 0xc);
*piVar1 = *piVar1 + 1;
param_1[0x4f] = param_3;
param_1[3] = param_2;
param_1[0x56] = 0;
param_1[0x35] = 0;
iVar3 = 0;
puVar2 = param_1 + 0x51;
do {
*puVar2 = 0;
iVar3 = iVar3 + 1;
puVar2 = puVar2 + 1;
} while (iVar3 < 5);
FUN_00402a98((int *)&local_8,param_1 + 0x57,s_TrivialDamageZone_Name_004e396c);
piVar1 = local_8 + 3;
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_004024d8(local_8,3);
}
param_1[0x2e] = 0;
FUN_0041dd68((int)param_1);
return param_1;
}
/* @0041df5c file=? name=FUN_0041df5c */
undefined4 * __cdecl
FUN_0041df5c(undefined4 *param_1,undefined4 param_2,undefined4 param_3,int *param_4)
{
int *piVar1;
int iVar2;
undefined4 uVar3;
undefined4 *puVar4;
int local_84 [7];
undefined4 local_68;
int *local_64;
int local_60;
undefined4 *local_5c;
int local_58;
int *local_54;
undefined4 local_50;
int local_4c;
int local_48;
int *local_44;
undefined4 *local_40;
undefined1 local_3c [4];
undefined4 local_38;
undefined4 local_34;
undefined4 local_30;
undefined4 local_2c;
undefined4 local_28;
undefined4 local_24;
int local_20;
undefined4 local_1c;
int local_18;
int local_14;
int *local_10;
int *local_c;
undefined4 *local_8;
FUN_004178cc(param_1,0x4e);
*param_1 = &PTR_FUN_004e3cf0;
FUN_0041b9ec(param_1 + 4,2);
FUN_0041b9ec(param_1 + 0x19,3);
FUN_0041f39f(param_1 + 0x2f,0,0);
FUN_0041f449(param_1 + 0x36,0);
FUN_0041f449(param_1 + 0x3b,0);
FUN_0041f449(param_1 + 0x40,0);
FUN_0041f449(param_1 + 0x45,0);
FUN_0041f449(param_1 + 0x4a,0);
local_8 = (undefined4 *)FUN_00402298(0x10);
if (local_8 == (undefined4 *)0x0) {
iVar2 = 0;
}
else {
iVar2 = FUN_004023f4(local_8);
}
param_1[0x57] = iVar2;
piVar1 = (int *)(param_1[0x57] + 0xc);
*piVar1 = *piVar1 + 1;
param_1[3] = param_2;
param_1[0x4f] = param_3;
param_1[0x56] = 0;
param_1[0x35] = 0;
FUN_0041dd68((int)param_1);
local_c = param_1 + 0x57;
local_10 = param_4;
FUN_00402aec(param_4,local_c);
iVar2 = FUN_0041a1a4(**(int **)(param_1[3] + 0xc),0x4e4afc);
if (iVar2 == 0) {
iVar2 = 0;
do {
(**(code **)(*param_4 + 0x1c))(param_4,local_3c,4);
iVar2 = iVar2 + 1;
} while (iVar2 < 5);
}
else {
local_14 = param_1[3];
local_20 = 0;
do {
(**(code **)(*param_4 + 0x1c))(param_4,&local_18,4);
iVar2 = 0;
if (0 < local_18) {
do {
(**(code **)(*param_4 + 0x1c))(param_4,&local_1c,4);
local_24 = local_1c;
FUN_0041f216(local_84,local_14 + 0x300);
uVar3 = (**(code **)(local_84[0] + 0x34))(local_84,local_24);
FUN_0041f235(local_84,2);
switch(local_20) {
case 0:
local_28 = uVar3;
(**(code **)(param_1[0x36] + 4))(param_1 + 0x36,uVar3);
break;
case 1:
local_2c = uVar3;
(**(code **)(param_1[0x40] + 4))(param_1 + 0x40,uVar3);
break;
case 2:
local_30 = uVar3;
(**(code **)(param_1[0x3b] + 4))(param_1 + 0x3b,uVar3);
break;
case 3:
local_34 = uVar3;
(**(code **)(param_1[0x4a] + 4))(param_1 + 0x4a,uVar3);
break;
case 4:
local_38 = uVar3;
(**(code **)(param_1[0x45] + 4))(param_1 + 0x45,uVar3);
}
iVar2 = iVar2 + 1;
} while (iVar2 < local_18);
}
local_20 = local_20 + 1;
} while (local_20 < 5);
}
local_40 = param_1 + 0x50;
local_44 = param_4;
(**(code **)(*param_4 + 0x1c))(param_4,local_40,4);
local_48 = 0;
do {
(**(code **)(*param_4 + 0x1c))(param_4,param_1 + local_48 + 0x51,4);
local_48 = local_48 + 1;
} while (local_48 < 5);
local_54 = param_4;
(**(code **)(*param_4 + 0x1c))(param_4,&local_4c,4);
local_48 = 0;
if (0 < local_4c) {
do {
(**(code **)(*param_4 + 0x1c))(param_4,&local_50,4);
(**(code **)(*param_4 + 0x1c))(param_4,&local_58,4);
if (local_58 != 0) {
puVar4 = (undefined4 *)FUN_00402298(0x24);
if (puVar4 == (undefined4 *)0x0) {
local_5c = (undefined4 *)0x0;
}
else {
local_5c = FUN_0041dad0(puVar4);
}
local_60 = 0;
if (0 < local_58) {
do {
puVar4 = (undefined4 *)FUN_00402298(0x10);
if (puVar4 == (undefined4 *)0x0) {
local_64 = (int *)0x0;
}
else {
local_64 = (int *)FUN_004023f4(puVar4);
}
local_64[3] = local_64[3] + 1;
FUN_00402aec(param_4,(int *)&local_64);
puVar4 = (undefined4 *)FUN_00402298(0x10);
if (puVar4 == (undefined4 *)0x0) {
puVar4 = (undefined4 *)0x0;
}
else {
puVar4 = FUN_0041547b(puVar4,(int *)&local_64);
}
(**(code **)(local_5c[4] + 4))(local_5c + 4,puVar4);
piVar1 = local_64 + 3;
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_004024d8(local_64,3);
}
local_60 = local_60 + 1;
} while (local_60 < local_58);
}
(**(code **)(*(int *)local_5c[3] + 4))((int *)local_5c[3]);
local_68 = local_50;
(**(code **)(param_1[0x2f] + 8))(param_1 + 0x2f,local_5c,&local_68);
}
local_48 = local_48 + 1;
} while (local_48 < local_4c);
}
param_1[0x2e] = 0;
return param_1;
}
/* @0041e394 file=? name=FUN_0041e394 */
void __cdecl FUN_0041e394(int *param_1,byte param_2)
{
int *piVar1;
undefined4 *puVar2;
int *piVar3;
void *this;
int local_20 [7];
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e3cf0;
FUN_004012c7(local_20,(int)(param_1 + 0x2f));
FUN_00417858(this,local_20,1);
puVar2 = (undefined4 *)param_1[0x35];
if ((puVar2 != (undefined4 *)0x0) && (puVar2 != (undefined4 *)0x0)) {
(**(code **)*puVar2)(puVar2,3);
}
FUN_004012e6(local_20,2);
piVar3 = (int *)param_1[0x57];
piVar1 = piVar3 + 3;
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_004024d8(piVar3,3);
}
FUN_0041f468(param_1 + 0x4a,2);
FUN_0041f468(param_1 + 0x45,2);
FUN_0041f468(param_1 + 0x40,2);
FUN_0041f468(param_1 + 0x3b,2);
FUN_0041f468(param_1 + 0x36,2);
FUN_0041f3c2(param_1 + 0x2f,2);
FUN_0041baa4(param_1 + 0x19,2);
FUN_0041baa4(param_1 + 4,2);
FUN_0041790c(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041e4a8 file=? name=FUN_0041e4a8 */
int * __cdecl FUN_0041e4a8(int param_1,int *param_2)
{
int *piVar1;
piVar1 = (int *)FUN_00402298(0x18);
if (piVar1 == (int *)0x0) {
piVar1 = (int *)0x0;
}
else {
piVar1 = FUN_0042a748(piVar1,param_2);
}
*(int **)(param_1 + 0xd4) = piVar1;
return piVar1;
}
/* @0041e4e0 file=? name=FUN_0041e4e0 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
void __cdecl FUN_0041e4e0(int *param_1,int *param_2)
{
float fVar1;
param_1[0x56] = (int)((float)param_2[1] * (float)param_1[*param_2 + 0x51] + (float)param_1[0x56]);
fVar1 = _DAT_0041e57c;
if ((_DAT_0041e57c <= (float)param_1[0x56]) &&
(fVar1 = _DAT_0041e580, (float)param_1[0x56] <= _DAT_0041e580)) {
fVar1 = (float)param_1[0x56];
}
param_1[0x56] = (int)fVar1;
param_1[0x2e] = param_1[0x2e] | 4;
if (_DAT_0041e580 <= (float)param_1[0x56]) {
FUN_0041bbd8((int)(param_1 + 4),1);
(**(code **)(*param_1 + 0xc))(param_1,1);
param_1[0x2e] = param_1[0x2e] | 8;
}
return;
}
/* @0041e590 file=? name=FUN_0041e590 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
undefined4 __cdecl
FUN_0041e590(int param_1,undefined4 param_2,int param_3,int *param_4,int *param_5,int param_6,
int param_7)
{
undefined4 *puVar1;
int iVar2;
undefined4 *puVar3;
uint *puVar4;
int *piVar5;
char cVar6;
undefined4 uVar7;
int *local_d4;
undefined4 *local_d0;
int *local_cc;
int *local_c8;
int local_c4;
int *local_c0;
int *local_bc;
int *local_b8;
int *local_b4;
uint *local_b0;
uint *local_ac;
uint *local_a8;
uint *local_a4;
uint *local_a0;
uint *local_9c;
uint *local_98;
uint *local_94;
uint *local_90;
uint *local_8c;
uint *local_88;
uint *local_84;
uint *local_80;
uint *local_7c;
uint *local_78;
uint *local_74;
undefined4 local_70;
int *local_6c;
int *local_68;
int *local_64;
int local_60;
int *local_5c;
int *local_58;
undefined4 local_54;
int *local_50;
int *local_4c;
int *local_48;
int *local_44;
int *local_40;
int *local_3c;
float local_38;
float local_34;
int *local_30;
int *local_2c;
int *local_28;
char *local_24;
int *local_20;
float local_1c;
undefined4 local_18;
int *local_14;
char *local_10;
int *local_c;
int *local_8;
local_8 = param_5;
FUN_004029b0(param_5,(int)param_4);
iVar2 = FUN_00403f84(param_6,(char *)param_4[2]);
if (iVar2 == 0) {
local_c = param_4;
local_10 = (char *)param_4[2];
FUN_004dbb24((int *)&DAT_00524e68,local_10,(char *)0x0);
FUN_004dbb24((int *)&DAT_00524e68,s_listed_in__skl__does_not_exist_i_004e3983,(char *)0x0);
FUN_004d9c38((int *)&DAT_00524e68);
uVar7 = 0xffffffff;
local_14 = param_4;
piVar5 = param_4 + 3;
*piVar5 = *piVar5 + -1;
if (*piVar5 == 0) {
FUN_004024d8(param_4,3);
}
}
else {
if (param_3 == 0) {
local_18 = 0;
iVar2 = 0;
do {
(**(code **)(*param_5 + 0x20))(param_5,&local_18,4);
iVar2 = iVar2 + 1;
} while (iVar2 < 5);
}
else {
FUN_0041f07c(param_5,(char *)param_4[2],param_6,param_3,s_DefaultEffectSiteName_004e39b0);
FUN_0041f07c(param_5,(char *)param_4[2],param_6,param_3,s_ExternalVideoEffectSiteName_004e39c6
);
FUN_0041f07c(param_5,(char *)param_4[2],param_6,param_3,s_InternalVideoEffectSiteName_004e39e2
);
FUN_0041f07c(param_5,(char *)param_4[2],param_6,param_3,s_ExternalAudioEffectSiteName_004e39fe
);
FUN_0041f07c(param_5,(char *)param_4[2],param_6,param_3,s_InternalAudioEffectSiteName_004e3a1a
);
}
iVar2 = FUN_00404118(param_6,(char *)param_4[2],s_WeaponDamagePoints_004e3a36,&local_1c);
if (iVar2 == 0) {
local_20 = param_4;
local_24 = (char *)param_4[2];
FUN_004dbb24((int *)&DAT_00524e68,local_24,(char *)0x0);
FUN_004dbb24((int *)&DAT_00524e68,s_Must_have_a_WeaponDamagePoints_004e3a49,(char *)0x0);
FUN_004d9c38((int *)&DAT_00524e68);
uVar7 = 0;
local_28 = param_4;
piVar5 = param_4 + 3;
*piVar5 = *piVar5 + -1;
if (*piVar5 == 0) {
FUN_004024d8(param_4,3);
}
}
else if (local_1c == _DAT_0041f074) {
FUN_004dbb24((int *)&DAT_00524e68,s_DefaultDamagePoints_must_have_a_n_004e3a69,(char *)0x0);
FUN_004d9c38((int *)&DAT_00524e68);
uVar7 = 0;
local_2c = param_4;
piVar5 = param_4 + 3;
*piVar5 = *piVar5 + -1;
if (*piVar5 == 0) {
FUN_004024d8(param_4,3);
}
}
else {
local_30 = param_5;
(**(code **)(*param_5 + 0x20))(param_5,&local_1c,4);
iVar2 = FUN_00404118(param_6,(char *)param_4[2],s_CollisionDamagePoints_004e3a9a,&local_34);
if (iVar2 == 0) {
local_38 = _DAT_0041f078 / local_1c;
}
else if (local_34 == _DAT_0041f074) {
local_38 = _DAT_0041f078 / local_1c;
}
else {
local_38 = _DAT_0041f078 / local_34;
}
local_3c = param_5;
(**(code **)(*param_5 + 0x20))(param_5,&local_38,4);
iVar2 = FUN_00404118(param_6,(char *)param_4[2],s_BallisticDamagePoints_004e3ab0,&local_34);
local_38 = local_34;
if (iVar2 == 0) {
local_38 = local_1c;
}
local_38 = _DAT_0041f078 / local_38;
local_40 = param_5;
(**(code **)(*param_5 + 0x20))(param_5,&local_38,4);
iVar2 = FUN_00404118(param_6,(char *)param_4[2],s_ExplosiveDamagePoints_004e3ac6,&local_34);
local_38 = local_34;
if (iVar2 == 0) {
local_38 = local_1c;
}
local_38 = _DAT_0041f078 / local_38;
local_44 = param_5;
(**(code **)(*param_5 + 0x20))(param_5,&local_38,4);
iVar2 = FUN_00404118(param_6,(char *)param_4[2],s_LaserDamagePoints_004e3adc,&local_34);
local_38 = local_34;
if (iVar2 == 0) {
local_38 = local_1c;
}
local_38 = _DAT_0041f078 / local_38;
local_48 = param_5;
(**(code **)(*param_5 + 0x20))(param_5,&local_38,4);
iVar2 = FUN_00404118(param_6,(char *)param_4[2],s_EnergyDamagePoints_004e3aee,&local_34);
if (iVar2 == 0) {
local_34 = local_1c;
}
local_38 = _DAT_0041f078 / local_34;
local_4c = param_5;
(**(code **)(*param_5 + 0x20))(param_5,&local_38,4);
local_50 = FUN_00404720(param_1,s_video_004e3b01,&DAT_004e3b07);
if (local_50 == (int *)0x0) {
local_54 = 0;
local_58 = param_5;
(**(code **)(*param_5 + 0x20))(param_5,&local_54,4);
uVar7 = 1;
local_5c = param_4;
piVar5 = param_4 + 3;
*piVar5 = *piVar5 + -1;
if (*piVar5 == 0) {
FUN_004024d8(param_4,3);
}
}
else {
local_60 = FUN_00403b60((int)local_50);
local_64 = param_5;
(**(code **)(*param_5 + 0x20))(param_5,&local_60,4);
if (local_60 != 0) {
puVar1 = (undefined4 *)local_50[1];
while (puVar1 != (undefined4 *)0x0) {
puVar3 = (undefined4 *)FUN_00402298(0x10);
if (puVar3 == (undefined4 *)0x0) {
local_68 = (int *)0x0;
}
else {
local_68 = (int *)FUN_004023f4(puVar3);
}
local_68[3] = local_68[3] + 1;
FUN_00402a98((int *)&local_6c,(int *)&local_68,(char *)(puVar1 + 2));
piVar5 = local_6c + 3;
*piVar5 = *piVar5 + -1;
if (*piVar5 == 0) {
FUN_004024d8(local_6c,3);
}
puVar4 = (uint *)FUN_00402298(0x10);
if (puVar4 == (uint *)0x0) {
local_74 = (uint *)0x0;
}
else {
local_74 = FUN_00402460(puVar4,&DAT_004e3b0b);
}
local_74[3] = local_74[3] + 1;
iVar2 = FUN_004027d8((int)local_68,(int)local_74);
cVar6 = iVar2 == 0;
local_78 = local_74;
puVar4 = local_74 + 3;
*puVar4 = *puVar4 - 1;
if (*puVar4 == 0) {
FUN_004024d8((int *)local_74,3);
}
if (cVar6 == '\0') {
puVar4 = (uint *)FUN_00402298(0x10);
if (puVar4 == (uint *)0x0) {
local_7c = (uint *)0x0;
}
else {
local_7c = FUN_00402460(puVar4,&DAT_004e3b0f);
}
local_7c[3] = local_7c[3] + 1;
iVar2 = FUN_004027d8((int)local_68,(int)local_7c);
cVar6 = iVar2 == 0;
local_80 = local_7c;
puVar4 = local_7c + 3;
*puVar4 = *puVar4 - 1;
if (*puVar4 == 0) {
FUN_004024d8((int *)local_7c,3);
}
if (cVar6 == '\0') {
puVar4 = (uint *)FUN_00402298(0x10);
if (puVar4 == (uint *)0x0) {
local_84 = (uint *)0x0;
}
else {
local_84 = FUN_00402460(puVar4,&DAT_004e3b14);
}
local_84[3] = local_84[3] + 1;
iVar2 = FUN_004027d8((int)local_68,(int)local_84);
cVar6 = iVar2 == 0;
local_88 = local_84;
puVar4 = local_84 + 3;
*puVar4 = *puVar4 - 1;
if (*puVar4 == 0) {
FUN_004024d8((int *)local_84,3);
}
if (cVar6 == '\0') {
puVar4 = (uint *)FUN_00402298(0x10);
if (puVar4 == (uint *)0x0) {
local_8c = (uint *)0x0;
}
else {
local_8c = FUN_00402460(puVar4,&DAT_004e3b19);
}
local_8c[3] = local_8c[3] + 1;
iVar2 = FUN_004027d8((int)local_68,(int)local_8c);
cVar6 = iVar2 == 0;
local_90 = local_8c;
puVar4 = local_8c + 3;
*puVar4 = *puVar4 - 1;
if (*puVar4 == 0) {
FUN_004024d8((int *)local_8c,3);
}
if (cVar6 == '\0') {
puVar4 = (uint *)FUN_00402298(0x10);
if (puVar4 == (uint *)0x0) {
local_94 = (uint *)0x0;
}
else {
local_94 = FUN_00402460(puVar4,&DAT_004e3b1e);
}
local_94[3] = local_94[3] + 1;
iVar2 = FUN_004027d8((int)local_68,(int)local_94);
cVar6 = iVar2 == 0;
local_98 = local_94;
puVar4 = local_94 + 3;
*puVar4 = *puVar4 - 1;
if (*puVar4 == 0) {
FUN_004024d8((int *)local_94,3);
}
if (cVar6 == '\0') {
puVar4 = (uint *)FUN_00402298(0x10);
if (puVar4 == (uint *)0x0) {
local_9c = (uint *)0x0;
}
else {
local_9c = FUN_00402460(puVar4,&DAT_004e3b23);
}
local_9c[3] = local_9c[3] + 1;
iVar2 = FUN_004027d8((int)local_68,(int)local_9c);
cVar6 = iVar2 == 0;
local_a0 = local_9c;
puVar4 = local_9c + 3;
*puVar4 = *puVar4 - 1;
if (*puVar4 == 0) {
FUN_004024d8((int *)local_9c,3);
}
if (cVar6 == '\0') {
puVar4 = (uint *)FUN_00402298(0x10);
if (puVar4 == (uint *)0x0) {
local_a4 = (uint *)0x0;
}
else {
local_a4 = FUN_00402460(puVar4,&DAT_004e3b28);
}
local_a4[3] = local_a4[3] + 1;
iVar2 = FUN_004027d8((int)local_68,(int)local_a4);
cVar6 = iVar2 == 0;
local_a8 = local_a4;
puVar4 = local_a4 + 3;
*puVar4 = *puVar4 - 1;
if (*puVar4 == 0) {
FUN_004024d8((int *)local_a4,3);
}
if (cVar6 == '\0') {
puVar4 = (uint *)FUN_00402298(0x10);
if (puVar4 == (uint *)0x0) {
local_ac = (uint *)0x0;
}
else {
local_ac = FUN_00402460(puVar4,&DAT_004e3b2d);
}
local_ac[3] = local_ac[3] + 1;
iVar2 = FUN_004027d8((int)local_68,(int)local_ac);
cVar6 = iVar2 == 0;
local_b0 = local_ac;
puVar4 = local_ac + 3;
*puVar4 = *puVar4 - 1;
if (*puVar4 == 0) {
FUN_004024d8((int *)local_ac,3);
}
if (cVar6 != '\0') {
local_70 = 7;
}
}
else {
local_70 = 6;
}
}
else {
local_70 = 5;
}
}
else {
local_70 = 4;
}
}
else {
local_70 = 3;
}
}
else {
local_70 = 2;
}
}
else {
local_70 = 1;
}
}
else {
local_70 = 0;
}
local_b4 = param_5;
(**(code **)(*param_5 + 0x20))(param_5,&local_70,4);
local_b8 = (int *)FUN_004064fc(*(char **)(param_7 + 0x10),(char *)puVar1[1]);
piVar5 = (int *)FUN_00402298(0x20);
if (piVar5 == (int *)0x0) {
local_bc = (int *)0x0;
}
else {
local_bc = FUN_00403e84(piVar5,(char *)local_b8,1);
}
local_c0 = FUN_00404720((int)local_bc,(char *)param_4[2],s_material_004e3b32);
local_c4 = 0;
if (local_c0 == (int *)0x0) {
(**(code **)(*param_5 + 0x20))(param_5,&local_c4,4);
}
else {
local_c4 = FUN_00403b60((int)local_c0);
local_c8 = param_5;
(**(code **)(*param_5 + 0x20))(param_5,&local_c4,4);
if (local_c4 != 0) {
puVar3 = (undefined4 *)local_c0[1];
local_d0 = (undefined4 *)FUN_00402298(0x10);
if (local_d0 == (undefined4 *)0x0) {
local_cc = (int *)0x0;
}
else {
local_cc = (int *)FUN_004023f4(local_d0);
}
local_cc[3] = local_cc[3] + 1;
for (; puVar3 != (undefined4 *)0x0; puVar3 = (undefined4 *)*puVar3) {
FUN_00402a98((int *)&local_d4,(int *)&local_cc,(char *)puVar3[1]);
piVar5 = local_d4 + 3;
*piVar5 = *piVar5 + -1;
if (*piVar5 == 0) {
FUN_004024d8(local_d4,3);
}
FUN_004029b0(param_5,(int)local_cc);
}
piVar5 = local_cc + 3;
*piVar5 = *piVar5 + -1;
if (*piVar5 == 0) {
FUN_004024d8(local_cc,3);
}
}
if (local_c0 != (int *)0x0) {
(**(code **)*local_c0)(local_c0,3);
}
}
puVar1 = (undefined4 *)*puVar1;
FUN_004022d0(local_b8);
FUN_00403ecc(local_bc,3);
piVar5 = local_68 + 3;
*piVar5 = *piVar5 + -1;
if (*piVar5 == 0) {
FUN_004024d8(local_68,3);
}
}
}
if (local_50 != (int *)0x0) {
(**(code **)*local_50)(local_50,3);
}
uVar7 = 1;
piVar5 = param_4 + 3;
*piVar5 = *piVar5 + -1;
if (*piVar5 == 0) {
FUN_004024d8(param_4,3);
}
}
}
}
return uVar7;
}
/* @0041f07c file=? name=FUN_0041f07c */
undefined4 __cdecl FUN_0041f07c(int *param_1,char *param_2,int param_3,int param_4,char *param_5)
{
int *piVar1;
undefined4 *puVar2;
int *piVar3;
undefined4 *puVar4;
undefined4 uVar5;
int *local_14;
int local_10;
int *local_c;
int local_8;
local_8 = 0;
piVar3 = FUN_00404720(param_3,param_2,param_5);
if (piVar3 == (int *)0x0) {
(**(code **)(*param_1 + 0x20))(param_1,&local_8,4);
}
else {
local_8 = FUN_00403b60((int)piVar3);
(**(code **)(*param_1 + 0x20))(param_1,&local_8,4);
puVar2 = (undefined4 *)piVar3[1];
puVar4 = (undefined4 *)FUN_00402298(0x10);
if (puVar4 == (undefined4 *)0x0) {
local_c = (int *)0x0;
}
else {
local_c = (int *)FUN_004023f4(puVar4);
}
local_c[3] = local_c[3] + 1;
for (; puVar2 != (undefined4 *)0x0; puVar2 = (undefined4 *)*puVar2) {
FUN_00402a98((int *)&local_14,(int *)&local_c,(char *)puVar2[1]);
piVar1 = local_14 + 3;
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_004024d8(local_14,3);
}
local_c[3] = local_c[3] + 1;
local_10 = FUN_0042760c(local_c,param_4);
if (local_10 == -1) {
FUN_004dbb24((int *)&DAT_00524e68,(char *)local_c[2],(char *)0x0);
FUN_004dbb24((int *)&DAT_00524e68,s_not_found_in_skl_file___004e3b3b,(char *)0x0);
FUN_004d9c38((int *)&DAT_00524e68);
if (piVar3 != (int *)0x0) {
(**(code **)*piVar3)(piVar3,3);
}
uVar5 = 0xffffffff;
piVar3 = local_c + 3;
*piVar3 = *piVar3 + -1;
if (*piVar3 == 0) {
FUN_004024d8(local_c,3);
return uVar5;
}
return 0xffffffff;
}
(**(code **)(*param_1 + 0x20))(param_1,&local_10,4);
}
if (piVar3 != (int *)0x0) {
(**(code **)*piVar3)(piVar3,3);
}
piVar3 = local_c + 3;
*piVar3 = *piVar3 + -1;
if (*piVar3 == 0) {
FUN_004024d8(local_c,3);
}
}
return 1;
}
/* @0041f1f7 file=? name=FUN_0041f1f7 */
undefined4 * __cdecl FUN_0041f1f7(undefined4 *param_1,int param_2)
{
FUN_004194d8(param_1,param_2);
*param_1 = &PTR_FUN_004e3c94;
return param_1;
}
/* @0041f216 file=? name=FUN_0041f216 */
undefined4 * __cdecl FUN_0041f216(undefined4 *param_1,int param_2)
{
FUN_004194d8(param_1,param_2);
*param_1 = &PTR_FUN_004e3c94;
return param_1;
}
/* @0041f235 file=? name=FUN_0041f235 */
void __cdecl FUN_0041f235(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e3c94;
FUN_0041951c(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041f261 file=? name=FUN_0041f261 */
undefined4 * __cdecl FUN_0041f261(undefined4 *param_1,int param_2)
{
FUN_004194d8(param_1,param_2);
*param_1 = &PTR_FUN_004e3c38;
return param_1;
}
/* @0041f280 file=? name=FUN_0041f280 */
undefined4 * __cdecl FUN_0041f280(undefined4 *param_1,int param_2)
{
FUN_004194d8(param_1,param_2);
*param_1 = &PTR_FUN_004e3c38;
return param_1;
}
/* @0041f29f file=? name=FUN_0041f29f */
void __cdecl FUN_0041f29f(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e3c38;
FUN_0041951c(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041f2cb file=? name=FUN_0041f2cb */
undefined4 * __cdecl FUN_0041f2cb(undefined4 *param_1,undefined4 param_2)
{
FUN_0041827c(param_1,param_2);
*param_1 = &PTR_FUN_004e3c30;
return param_1;
}
/* @0041f2ea file=? name=FUN_0041f2ea */
void __cdecl FUN_0041f2ea(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e3c30;
FUN_004182a8(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041f316 file=? name=FUN_0041f316 */
undefined4 * __cdecl FUN_0041f316(undefined4 *param_1,int param_2)
{
FUN_00418398(param_1,param_2);
*param_1 = &PTR_FUN_004e3bdc;
return param_1;
}
/* @0041f335 file=? name=FUN_0041f335 */
undefined4 * __cdecl FUN_0041f335(undefined4 *param_1,int param_2)
{
FUN_00418398(param_1,param_2);
*param_1 = &PTR_FUN_004e3bdc;
return param_1;
}
/* @0041f354 file=? name=FUN_0041f354 */
undefined4 * __cdecl FUN_0041f354(undefined4 *param_1,int param_2)
{
FUN_004183c0(param_1,param_2);
*param_1 = &PTR_FUN_004e3bdc;
return param_1;
}
/* @0041f373 file=? name=FUN_0041f373 */
void __cdecl FUN_0041f373(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e3bdc;
FUN_004183ec(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041f39f file=? name=FUN_0041f39f */
undefined4 * __cdecl FUN_0041f39f(undefined4 *param_1,undefined4 param_2,undefined4 param_3)
{
FUN_00419184(param_1,param_2,param_3);
*param_1 = &PTR_FUN_004e3bc0;
return param_1;
}
/* @0041f3c2 file=? name=FUN_0041f3c2 */
void __cdecl FUN_0041f3c2(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e3bc0;
FUN_004191b4(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041f3ee file=? name=FUN_0041f3ee */
undefined4 __cdecl FUN_0041f3ee(undefined4 param_1,int param_2,int param_3)
{
undefined4 uVar1;
if (*(int *)(param_3 + 0x14) == *(int *)(param_2 + 0x14)) {
uVar1 = 0;
}
else {
uVar1 = 1;
if (*(int *)(param_2 + 0x14) <= *(int *)(param_3 + 0x14)) {
uVar1 = 0xffffffff;
}
}
return uVar1;
}
/* @0041f41d file=? name=FUN_0041f41d */
undefined4 __cdecl FUN_0041f41d(undefined4 param_1,int *param_2,int param_3)
{
undefined4 uVar1;
if (*(int *)(param_3 + 0x14) == *param_2) {
uVar1 = 0;
}
else {
uVar1 = 1;
if (*param_2 <= *(int *)(param_3 + 0x14)) {
uVar1 = 0xffffffff;
}
}
return uVar1;
}
/* @0041f449 file=? name=FUN_0041f449 */
undefined4 * __cdecl FUN_0041f449(undefined4 *param_1,undefined4 param_2)
{
FUN_0041827c(param_1,param_2);
*param_1 = &PTR_FUN_004e3bb8;
return param_1;
}
/* @0041f468 file=? name=FUN_0041f468 */
void __cdecl FUN_0041f468(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e3bb8;
FUN_004182a8(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041f494 file=? name=FUN_0041f494 */
undefined4 * __cdecl FUN_0041f494(undefined4 *param_1,int param_2)
{
FUN_00418398(param_1,param_2);
*param_1 = &PTR_FUN_004e3b64;
return param_1;
}
/* @0041f4b3 file=? name=FUN_0041f4b3 */
undefined4 * __cdecl FUN_0041f4b3(undefined4 *param_1,int param_2)
{
FUN_00418398(param_1,param_2);
*param_1 = &PTR_FUN_004e3b64;
return param_1;
}
/* @0041f4d2 file=? name=FUN_0041f4d2 */
undefined4 * __cdecl FUN_0041f4d2(undefined4 *param_1,int param_2)
{
FUN_004183c0(param_1,param_2);
*param_1 = &PTR_FUN_004e3b64;
return param_1;
}
/* @0041f4f1 file=? name=FUN_0041f4f1 */
void __cdecl FUN_0041f4f1(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004e3b64;
FUN_004183ec(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0041f51d file=? name=FUN_0041f51d */
undefined4 * __cdecl FUN_0041f51d(undefined4 param_1,int param_2,undefined4 *param_3)
{
undefined4 *puVar1;
puVar1 = (undefined4 *)FUN_0041d485();
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_0041d42e(puVar1,param_1,param_2,param_3);
}
return puVar1;
}
/* @0041f54d file=? name=FUN_0041f54d */
void __cdecl FUN_0041f54d(int param_1,int param_2)
{
FUN_0041bbd8(param_1 + 100,param_2);
*(uint *)(param_1 + 0xb8) = *(uint *)(param_1 + 0xb8) | 8;
return;
}
/* @0041f59c file=? name=FUN_0041f59c */
void __cdecl FUN_0041f59c(int param_1,uint *param_2)
{
if ((int)param_2[1] < 3) {
FUN_00419bbc(param_1,(int)param_2);
}
FUN_00420ef4(param_2 + 3,(undefined4 *)(param_1 + 0x184));
param_2[5] = *(uint *)(param_1 + 0x194);
if ((*(uint *)(param_1 + 0x28) & 0xc) == 4) {
(**(code **)(**(int **)(DAT_004efc94 + 0x20) + 0x18))
(*(int **)(DAT_004efc94 + 0x20),param_2,1,*(undefined4 *)(param_1 + 0x18c));
}
else if ((*(byte *)(param_1 + 0x28) & 0x10) == 0) {
FUN_0041acbc(*(int *)(DAT_004efc94 + 0x60),1,param_1,param_2,DAT_004e17f4);
}
else {
FUN_00419bbc(param_1,(int)param_2);
}
return;
}
/* @0041f640 file=? name=FUN_0041f640 */
void __cdecl FUN_0041f640(int param_1,uint *param_2)
{
FUN_00420ef4(param_2 + 3,(undefined4 *)(param_1 + 0x184));
param_2[5] = *(uint *)(param_1 + 0x194);
FUN_00434ea0(*(undefined4 *)(DAT_004efc94 + 0x30),param_1,param_2);
return;
}
/* @0041f680 file=? name=FUN_0041f680 */
void __cdecl FUN_0041f680(int param_1,int *param_2,int param_3)
{
if (param_3 == 0) {
FUN_0041bd60(param_1,param_2,0);
FUN_0040a938(param_2 + 4,(undefined4 *)(param_1 + 0x100));
FUN_0040a938((undefined4 *)(param_1 + 300),(undefined4 *)(param_1 + 0x100));
*param_2 = 0x2c;
}
else if (param_3 == 1) {
param_2[2] = *(int *)(param_1 + 0x10);
*(undefined2 *)((int)param_2 + 6) = 1;
FUN_0041f858(param_1,param_2);
}
else {
FUN_0041bd60(param_1,param_2,(short)param_3);
}
*(undefined2 *)(param_2 + 1) = 0;
return;
}
/* @0041f710 file=? name=FUN_0041f710 */
void __cdecl FUN_0041f710(int param_1,undefined4 *param_2)
{
int *piVar1;
int *piVar2;
undefined4 local_14;
int local_10;
int *local_c;
int local_8;
FUN_004030dc(&local_14,param_2,*param_2,0x1c);
for (; piVar1 = local_c, local_8 != (int)local_c - local_10;
local_c = (int *)((int)local_c + *piVar1)) {
piVar2 = (int *)FUN_0041f964(param_1,*(ushort *)(local_c + 1) - 1);
(**(code **)(*piVar2 + 0x18))(piVar2,piVar1);
}
return;
}
/* @0041f76c file=? name=FUN_0041f76c */
void __cdecl FUN_0041f76c(int param_1,undefined4 *param_2)
{
if (*(short *)((int)param_2 + 6) == 0) {
FUN_0040a938((undefined4 *)(param_1 + 300),param_2 + 4);
if ((*(int *)(DAT_004efc94 + 0x88) < 5) || (*(int *)(DAT_004efc94 + 0x88) == 0xb)) {
FUN_0040a938((undefined4 *)(param_1 + 0x100),(undefined4 *)(param_1 + 300));
FUN_0040ab44((float *)(param_1 + 0xd0),(undefined4 *)(param_1 + 0x100));
}
FUN_0041bd34(param_1,(int)param_2);
}
else if (*(short *)((int)param_2 + 6) == 1) {
FUN_0041f800(param_1,param_2);
}
else {
FUN_0041bd34(param_1,(int)param_2);
}
return;
}
/* @0041f800 file=? name=FUN_0041f800 */
void __cdecl FUN_0041f800(int param_1,undefined4 *param_2)
{
int *piVar1;
int *piVar2;
undefined4 local_14;
int local_10;
int *local_c;
int local_8;
FUN_004030dc(&local_14,param_2,*param_2,0x10);
for (; piVar2 = local_c, local_8 != (int)local_c - local_10;
local_c = (int *)((int)local_c + *piVar2)) {
piVar1 = *(int **)(*(int *)(param_1 + 0x120) + local_c[1] * 4);
(**(code **)(*piVar1 + 0x10))(piVar1,local_c);
}
return;
}
/* @0041f858 file=? name=FUN_0041f858 */
void __cdecl FUN_0041f858(int param_1,int *param_2)
{
int *piVar1;
int *piVar2;
int iVar3;
undefined4 local_18 [2];
int *local_10;
int *local_8;
FUN_004030dc(local_18,param_2,0x578 - (int)(param_2 + -0x1487eb),0x10);
local_8 = local_10;
for (iVar3 = 0; piVar2 = local_10, iVar3 < *(int *)(param_1 + 0x11c); iVar3 = iVar3 + 1) {
piVar1 = *(int **)(*(int *)(param_1 + 0x120) + iVar3 * 4);
(**(code **)(*piVar1 + 0x14))(piVar1,local_10);
local_10 = (int *)((int)local_10 + *piVar2);
}
if (local_10 != local_8) {
*param_2 = (int)local_10 - (int)param_2;
}
return;
}
/* @0041f8d4 file=? name=FUN_0041f8d4 */
undefined4 * __cdecl FUN_0041f8d4(int *param_1,undefined4 param_2)
{
int iVar1;
undefined4 *puVar2;
int local_14 [2];
int local_c;
FUN_004030dc(local_14,&DAT_00521fac,0x578,0x1c);
iVar1 = local_c;
if (((*(int *)(DAT_004efc94 + 0x88) == 5) || (*(int *)(DAT_004efc94 + 0x88) == 6)) ||
((*(byte *)((int)param_1 + 0x29) & 0x10) != 0)) {
(**(code **)(*param_1 + 0x14))(param_1,param_2,local_14);
}
else {
FUN_0041bd98(param_1,local_14);
}
if (iVar1 == local_c) {
puVar2 = (undefined4 *)0x0;
}
else {
puVar2 = &DAT_00521fac;
DAT_00521fb0 = 0xf;
DAT_00521fac = local_c + -0x521fac;
DAT_00521fb4 = 0;
}
return puVar2;
}
/* @0041f964 file=? name=FUN_0041f964 */
int __cdecl FUN_0041f964(int param_1,uint param_2)
{
if (param_2 != 0xffffffff) {
if (param_2 < *(uint *)(param_1 + 0x124)) {
return *(int *)(*(int *)(param_1 + 0x128) + param_2 * 4);
}
param_1 = 0;
}
return param_1;
}