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>
9269 lines
201 KiB
C
9269 lines
201 KiB
C
/* @0042e8ac file=? name=FUN_0042e8ac */
|
|
|
|
undefined4 * __cdecl FUN_0042e8ac(undefined4 *param_1,int param_2)
|
|
|
|
{
|
|
FUN_004188dc(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e69c8;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @0042e8cb file=? name=FUN_0042e8cb */
|
|
|
|
undefined4 * __cdecl FUN_0042e8cb(undefined4 *param_1,int param_2)
|
|
|
|
{
|
|
FUN_004188dc(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e69c8;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @0042e8ea file=? name=FUN_0042e8ea */
|
|
|
|
undefined4 * __cdecl FUN_0042e8ea(undefined4 *param_1,int param_2)
|
|
|
|
{
|
|
FUN_00418904(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e69c8;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @0042e909 file=? name=FUN_0042e909 */
|
|
|
|
void __cdecl FUN_0042e909(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e69c8;
|
|
FUN_00418930(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @0042e935 file=? name=FUN_0042e935 */
|
|
|
|
undefined4 * __cdecl FUN_0042e935(undefined4 *param_1,int param_2)
|
|
|
|
{
|
|
FUN_00417d00(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e6978;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @0042e954 file=? name=FUN_0042e954 */
|
|
|
|
undefined4 * __cdecl FUN_0042e954(undefined4 *param_1,int param_2)
|
|
|
|
{
|
|
FUN_00417d00(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e6978;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @0042e973 file=? name=FUN_0042e973 */
|
|
|
|
undefined4 * __cdecl FUN_0042e973(undefined4 *param_1,int param_2)
|
|
|
|
{
|
|
FUN_00417d28(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e6978;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @0042e992 file=? name=FUN_0042e992 */
|
|
|
|
void __cdecl FUN_0042e992(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e6978;
|
|
FUN_00417d54(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @0042e9be file=? name=FUN_0042e9be */
|
|
|
|
undefined4 * __cdecl FUN_0042e9be(undefined4 param_1,int param_2,undefined4 *param_3)
|
|
|
|
{
|
|
undefined4 *puVar1;
|
|
|
|
puVar1 = (undefined4 *)FUN_0042ea6b();
|
|
if (puVar1 == (undefined4 *)0x0) {
|
|
puVar1 = (undefined4 *)0x0;
|
|
}
|
|
else {
|
|
puVar1 = FUN_0042ea14(puVar1,param_1,param_2,param_3);
|
|
}
|
|
return puVar1;
|
|
}
|
|
|
|
|
|
|
|
/* @0042e9ee file=? name=FUN_0042e9ee */
|
|
|
|
void __cdecl FUN_0042e9ee(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;
|
|
}
|
|
|
|
|
|
|
|
/* @0042ea14 file=? name=FUN_0042ea14 */
|
|
|
|
undefined4 * __cdecl
|
|
FUN_0042ea14(undefined4 *param_1,undefined4 param_2,int param_3,undefined4 *param_4)
|
|
|
|
{
|
|
FUN_004185bc(param_1,param_2,param_3);
|
|
*param_1 = &PTR_FUN_004e6aa0;
|
|
param_1[7] = *param_4;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @0042ea3f file=? name=FUN_0042ea3f */
|
|
|
|
void __cdecl FUN_0042ea3f(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e6aa0;
|
|
FUN_004185ec(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_0042eabb(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @0042ea6b file=? name=FUN_0042ea6b */
|
|
|
|
void FUN_0042ea6b(void)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined4 *puVar2;
|
|
|
|
iVar1 = DAT_004e6a9c;
|
|
DAT_004e6a9c = DAT_004e6a9c + 1;
|
|
puVar2 = DAT_004e6a98;
|
|
if ((iVar1 == 0) && (puVar2 = (undefined4 *)FUN_00402298(0x28), puVar2 != (undefined4 *)0x0)) {
|
|
FUN_00402b98(puVar2,0x20,100,100,s_VChainLinkOf_004e6960);
|
|
}
|
|
DAT_004e6a98 = puVar2;
|
|
FUN_00402f74((int)DAT_004e6a98);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @0042eabb file=? name=FUN_0042eabb */
|
|
|
|
void __cdecl FUN_0042eabb(undefined4 *param_1)
|
|
|
|
{
|
|
FUN_00402f98((int)DAT_004e6a98,param_1);
|
|
DAT_004e6a9c = DAT_004e6a9c + -1;
|
|
if (DAT_004e6a9c == 0) {
|
|
if (DAT_004e6a98 != (int *)0x0) {
|
|
FUN_00402c28(DAT_004e6a98,0);
|
|
FUN_004022d0(DAT_004e6a98);
|
|
}
|
|
DAT_004e6a98 = (int *)0x0;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @0042eb38 file=? name=FUN_0042eb38 */
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
void __cdecl FUN_0042eb38(int param_1,float param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
|
|
iVar1 = FUN_00417ab4(param_1 + 0x20c);
|
|
if (iVar1 != 0) {
|
|
iVar1 = FUN_00417ab4(param_1 + 0x20c);
|
|
if (*(int *)(iVar1 + 400) != 0) {
|
|
*(undefined4 *)(param_1 + 0x220) = *(undefined4 *)(*(int *)(iVar1 + 400) + 0x1e0);
|
|
}
|
|
}
|
|
if ((*(int *)(DAT_004efc94 + 0x88) == 7) || (*(int *)(DAT_004efc94 + 0x88) == 6)) {
|
|
*(undefined4 *)(param_1 + 0x224) = 0;
|
|
}
|
|
else if (_DAT_0042ec2c < *(float *)(DAT_004efc94 + 0x58)) {
|
|
if (*(int *)(param_1 + 0x224) == 0) {
|
|
*(float *)(param_1 + 0x22c) = *(float *)(param_1 + 0x22c) - param_2;
|
|
if (*(float *)(param_1 + 0x22c) <= _DAT_0042ec30) {
|
|
*(undefined4 *)(param_1 + 0x228) = 0;
|
|
*(undefined4 *)(param_1 + 0x224) = 1;
|
|
}
|
|
}
|
|
else {
|
|
*(float *)(param_1 + 0x228) = param_2 + *(float *)(param_1 + 0x228);
|
|
if (*(float *)(param_1 + 0x230) <= *(float *)(param_1 + 0x228)) {
|
|
*(undefined4 *)(param_1 + 0x22c) = *(undefined4 *)(param_1 + 0x234);
|
|
*(undefined4 *)(param_1 + 0x224) = 0;
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
*(undefined4 *)(param_1 + 0x224) = 1;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @0042ec3a file=? name=FUN_0042ec3a */
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
void FUN_0042ec3a(void)
|
|
|
|
{
|
|
int *piVar1;
|
|
int *piVar2;
|
|
int iVar3;
|
|
int iVar4;
|
|
int unaff_EBP;
|
|
|
|
piVar2 = *(int **)(unaff_EBP + 8);
|
|
FUN_0042e100(piVar2,*(float *)(unaff_EBP + 0xc));
|
|
FUN_0042eb38((int)piVar2,*(float *)(unaff_EBP + 0xc));
|
|
if (((float)piVar2[0x86] <= _DAT_0042ed64) || (*(int *)(DAT_004efc94 + 0x88) != 5)) {
|
|
iVar3 = FUN_0042efe4(0);
|
|
if ((iVar3 != 0) && (iVar3 = *(int *)(iVar3 + 0x1fc), iVar3 != 0)) {
|
|
piVar1 = piVar2 + 0x83;
|
|
iVar4 = FUN_00417ab4((int)piVar1);
|
|
if (iVar3 != iVar4) {
|
|
FUN_00417a5c((int)piVar1);
|
|
(**(code **)(piVar2[0x83] + 4))(piVar1,iVar3);
|
|
piVar2[0x86] = 0x41200000;
|
|
iVar3 = FUN_00417ab4((int)piVar1);
|
|
*(undefined4 *)(unaff_EBP + -0x34) = 0x34;
|
|
*(undefined4 *)(unaff_EBP + -0x30) = 0x15;
|
|
*(undefined4 *)(unaff_EBP + -0x2c) = 1;
|
|
FUN_00420ea4((undefined4 *)(unaff_EBP + -0x28),(undefined4 *)&DAT_00522524);
|
|
*(undefined4 *)(unaff_EBP + -0x20) = 0;
|
|
*(undefined4 *)(unaff_EBP + -0x1c) = 0;
|
|
FUN_00420ea4((undefined4 *)(unaff_EBP + -0x18),(undefined4 *)(iVar3 + 0x184));
|
|
*(undefined4 *)(unaff_EBP + -0x10) = 0;
|
|
*(undefined4 *)(unaff_EBP + -0xc) = DAT_004e0f80;
|
|
*(undefined4 *)(unaff_EBP + -8) = DAT_004e0f84;
|
|
*(undefined4 *)(unaff_EBP + -4) = DAT_004e0f88;
|
|
(**(code **)(*(int *)piVar2[0x87] + 0xc))((int *)piVar2[0x87],unaff_EBP + -0x34);
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
piVar2[0x86] = (int)((float)piVar2[0x86] - *(float *)(unaff_EBP + 0xc));
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @0042ed68 file=? name=FUN_0042ed68 */
|
|
|
|
void __cdecl FUN_0042ed68(int *param_1)
|
|
|
|
{
|
|
undefined4 local_5c;
|
|
undefined4 local_58;
|
|
undefined4 local_54;
|
|
undefined4 local_50 [2];
|
|
undefined4 local_48;
|
|
undefined4 local_44;
|
|
undefined4 local_40 [2];
|
|
uint local_38 [5];
|
|
undefined4 local_24;
|
|
undefined4 local_20;
|
|
undefined4 local_1c [2];
|
|
undefined4 local_14 [2];
|
|
undefined4 local_c [2];
|
|
|
|
(**(code **)(*param_1 + 0x40))
|
|
(param_1,param_1[0x40],param_1[0x41],param_1[0x42],param_1[0x43],param_1[0x44],
|
|
param_1[0x45],param_1[0x46]);
|
|
FUN_00420ea4(local_c,param_1 + 0x61);
|
|
local_38[0] = 0x24;
|
|
local_38[1] = 0x14;
|
|
local_38[2] = 1;
|
|
FUN_00420ea4(local_38 + 3,(undefined4 *)&DAT_00522524);
|
|
local_24 = 0;
|
|
local_20 = 0;
|
|
FUN_00420e8c(local_1c);
|
|
FUN_00420ef4(local_1c,local_c);
|
|
(**(code **)(*(int *)param_1[0x7f] + 0xc))((int *)param_1[0x7f],local_38);
|
|
FUN_0041f640(param_1[0x7f],local_38);
|
|
param_1[7] = (int)PTR_LAB_004e6b04;
|
|
param_1[8] = DAT_004e6b08;
|
|
param_1[9] = DAT_004e6b0c;
|
|
param_1[0x80] = 0;
|
|
FUN_00420ea4(local_14,(undefined4 *)(param_1[0x7f] + 0x184));
|
|
local_5c = 0x24;
|
|
local_58 = 0x15;
|
|
local_54 = 1;
|
|
FUN_00420ea4(local_50,(undefined4 *)&DAT_00522524);
|
|
local_48 = 0;
|
|
local_44 = 0;
|
|
FUN_00420ea4(local_40,local_14);
|
|
(**(code **)(*param_1 + 0xc))(param_1,&local_5c);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @0042eec8 file=? name=FUN_0042eec8 */
|
|
|
|
undefined4 * __cdecl FUN_0042eec8(undefined4 *param_1,int param_2,undefined4 param_3)
|
|
|
|
{
|
|
FUN_0042e328(param_1,param_2,param_3);
|
|
*param_1 = &PTR_FUN_004e6b4c;
|
|
FUN_0042f121(param_1 + 0x83,param_1);
|
|
param_1[0x87] = 0;
|
|
param_1[10] = param_1[10] | 0x10;
|
|
param_1[0x86] = 0xbf800000;
|
|
if ((param_1[10] & 0xc) != 4) {
|
|
param_1[7] = PTR_FUN_004e6b10;
|
|
param_1[8] = DAT_004e6b14;
|
|
param_1[9] = DAT_004e6b18;
|
|
}
|
|
param_1[0x88] = 0xffffffff;
|
|
param_1[0x89] = 0;
|
|
param_1[0x8c] = 0x41200000;
|
|
param_1[0x8d] = 0x41700000;
|
|
param_1[0x8a] = 0;
|
|
param_1[0x8b] = param_1[0x8d];
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @0042ef74 file=? name=FUN_0042ef74 */
|
|
|
|
undefined4 * __cdecl FUN_0042ef74(int param_1)
|
|
|
|
{
|
|
undefined4 *puVar1;
|
|
|
|
puVar1 = (undefined4 *)FUN_00402298(0x238);
|
|
if (puVar1 == (undefined4 *)0x0) {
|
|
puVar1 = (undefined4 *)0x0;
|
|
}
|
|
else {
|
|
puVar1 = FUN_0042eec8(puVar1,param_1,&DAT_004e6ad4);
|
|
}
|
|
return puVar1;
|
|
}
|
|
|
|
|
|
|
|
/* @0042efa4 file=? name=FUN_0042efa4 */
|
|
|
|
void __cdecl FUN_0042efa4(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e6b4c;
|
|
FUN_0042f140(param_1 + 0x83,2);
|
|
FUN_0042e524(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @0042efe4 file=? name=FUN_0042efe4 */
|
|
|
|
int __cdecl FUN_0042efe4(int param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
int local_10 [3];
|
|
|
|
iVar1 = FUN_00403ad0(*(int *)(DAT_004efc94 + 0x24) + 0x18,s_Players_004e6b3c);
|
|
if (iVar1 == 0) {
|
|
LAB_0042f05b:
|
|
iVar1 = 0;
|
|
}
|
|
else {
|
|
FUN_00421414(local_10,iVar1 + 0x10);
|
|
do {
|
|
iVar1 = (**(code **)(local_10[0] + 0x28))(local_10);
|
|
if (iVar1 == 0) {
|
|
FUN_00421452(local_10,2);
|
|
goto LAB_0042f05b;
|
|
}
|
|
} while (param_1 != *(int *)(iVar1 + 0x1cc));
|
|
FUN_00421452(local_10,2);
|
|
}
|
|
return iVar1;
|
|
}
|
|
|
|
|
|
|
|
/* @0042f064 file=? name=FUN_0042f064 */
|
|
|
|
void __cdecl FUN_0042f064(int param_1)
|
|
|
|
{
|
|
FUN_0041a1a4(**(int **)(param_1 + 0xc),0x4e6aa4);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @0042f121 file=? name=FUN_0042f121 */
|
|
|
|
undefined4 * __cdecl FUN_0042f121(undefined4 *param_1,undefined4 param_2)
|
|
|
|
{
|
|
FUN_004179d4(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e6b44;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @0042f140 file=? name=FUN_0042f140 */
|
|
|
|
void __cdecl FUN_0042f140(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e6b44;
|
|
FUN_004179f8(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @0042f16c file=? name=FUN_0042f16c */
|
|
|
|
undefined4 * __cdecl FUN_0042f16c(undefined4 *param_1,undefined4 *param_2,undefined4 param_3)
|
|
|
|
{
|
|
char cVar1;
|
|
undefined4 *puVar2;
|
|
undefined4 extraout_EAX;
|
|
undefined4 extraout_EAX_00;
|
|
undefined4 extraout_EAX_01;
|
|
undefined4 uVar3;
|
|
uint uVar4;
|
|
uint uVar5;
|
|
char *pcVar6;
|
|
int iVar7;
|
|
char *pcVar8;
|
|
undefined4 local_14 [2];
|
|
undefined4 *local_c;
|
|
|
|
FUN_0041ff38(param_1,(int)param_2,param_3);
|
|
*param_1 = &PTR_FUN_004e6c60;
|
|
param_1[10] = param_1[10] | 0x10;
|
|
param_1[0x71] = 0;
|
|
param_1[0x7a] = 0;
|
|
uVar4 = 0xffffffff;
|
|
pcVar6 = (char *)(param_2 + 0x13);
|
|
do {
|
|
pcVar8 = pcVar6;
|
|
if (uVar4 == 0) break;
|
|
uVar4 = uVar4 - 1;
|
|
pcVar8 = pcVar6 + 1;
|
|
cVar1 = *pcVar6;
|
|
pcVar6 = pcVar8;
|
|
} while (cVar1 != '\0');
|
|
uVar4 = ~uVar4;
|
|
pcVar6 = pcVar8 + -uVar4;
|
|
pcVar8 = (char *)(param_1 + 0x72);
|
|
for (uVar5 = uVar4 >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {
|
|
*(undefined4 *)pcVar8 = *(undefined4 *)pcVar6;
|
|
pcVar6 = pcVar6 + 4;
|
|
pcVar8 = pcVar8 + 4;
|
|
}
|
|
for (uVar4 = uVar4 & 3; uVar4 != 0; uVar4 = uVar4 - 1) {
|
|
*pcVar8 = *pcVar6;
|
|
pcVar6 = pcVar6 + 1;
|
|
pcVar8 = pcVar8 + 1;
|
|
}
|
|
puVar2 = FUN_004212b0(*(int *)(DAT_004efc94 + 0x24),s_DropZones_004e6c08);
|
|
(**(code **)(puVar2[4] + 4))(puVar2 + 4,param_1);
|
|
FUN_004030dc(local_14,param_2,*param_2,0x70);
|
|
iVar7 = param_2[0x1b];
|
|
param_1[0x71] = iVar7;
|
|
FUN_004de998((int *)0x0,0x1c,iVar7,1,FUN_0042fa79);
|
|
param_1[0x7a] = extraout_EAX;
|
|
FUN_004de998((int *)0x0,4,param_1[0x71],1,FUN_0042fa81);
|
|
param_1[0x7b] = extraout_EAX_00;
|
|
FUN_004de998((int *)0x0,8,param_1[0x71],1,FUN_00420e8c);
|
|
param_1[0x7c] = extraout_EAX_01;
|
|
uVar3 = FUN_004022b0(param_1[0x71] << 2);
|
|
param_1[0x7d] = uVar3;
|
|
for (iVar7 = 0; iVar7 < (int)param_1[0x71]; iVar7 = iVar7 + 1) {
|
|
FUN_0040a938((undefined4 *)(iVar7 * 0x1c + param_1[0x7a]),local_c);
|
|
*(undefined4 *)(iVar7 * 4 + param_1[0x7b]) = DAT_004e17f4;
|
|
FUN_00420ef4((undefined4 *)(iVar7 * 8 + param_1[0x7c]),(undefined4 *)&DAT_00522524);
|
|
*(undefined4 *)(param_1[0x7d] + iVar7 * 4) = 0xfffffffd;
|
|
local_c = local_c + 7;
|
|
}
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @0042f2f8 file=? name=FUN_0042f2f8 */
|
|
|
|
undefined4 * __cdecl FUN_0042f2f8(undefined4 *param_1)
|
|
|
|
{
|
|
undefined4 *puVar1;
|
|
|
|
puVar1 = (undefined4 *)FUN_00402298(0x1f8);
|
|
if (puVar1 == (undefined4 *)0x0) {
|
|
puVar1 = (undefined4 *)0x0;
|
|
}
|
|
else {
|
|
puVar1 = FUN_0042f16c(puVar1,param_1,&DAT_004e6bc0);
|
|
}
|
|
return puVar1;
|
|
}
|
|
|
|
|
|
|
|
/* @0042f328 file=? name=FUN_0042f328 */
|
|
|
|
void __cdecl FUN_0042f328(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e6c60;
|
|
if ((int *)param_1[0x7a] != (int *)0x0) {
|
|
FUN_004022e8((int *)param_1[0x7a]);
|
|
FUN_004022e8((int *)param_1[0x7b]);
|
|
FUN_004022e8((int *)param_1[0x7c]);
|
|
FUN_004022e8((int *)param_1[0x7d]);
|
|
}
|
|
FUN_00420508(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @0042f38c file=? name=FUN_0042f38c */
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
undefined4 __cdecl FUN_0042f38c(int param_1,int param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
int *piVar2;
|
|
|
|
if ((*(int *)(*(int *)(param_1 + 0x1ec) + param_2 * 4) != 0) &&
|
|
((iVar1 = *(int *)(param_1 + 0x1ec), piVar2 = (int *)FUN_00414b60(),
|
|
(float)(*piVar2 - *(int *)(param_2 * 4 + iVar1)) / DAT_0052140c <= _DAT_0042f400 ||
|
|
(*(int *)(DAT_004efc94 + 0x88) != 5)))) {
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
|
|
|
|
/* @0042f9bc file=? name=FUN_0042f9bc */
|
|
|
|
void __cdecl FUN_0042f9bc(int param_1)
|
|
|
|
{
|
|
FUN_0041a1a4(**(int **)(param_1 + 0xc),0x4e6b90);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @0042fa79 file=? name=FUN_0042fa79 */
|
|
|
|
undefined4 __cdecl FUN_0042fa79(undefined4 param_1)
|
|
|
|
{
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @0042fa81 file=? name=FUN_0042fa81 */
|
|
|
|
undefined4 __cdecl FUN_0042fa81(undefined4 param_1)
|
|
|
|
{
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @0042fa8c file=? name=FUN_0042fa8c */
|
|
|
|
void __cdecl FUN_0042fa8c(int param_1)
|
|
|
|
{
|
|
int *piVar1;
|
|
|
|
piVar1 = (int *)FUN_00414b60();
|
|
if (*(float *)(param_1 + 0x1c4) < (float)(*piVar1 - *(int *)(param_1 + 0x19c)) / DAT_0052140c) {
|
|
FUN_0042061c(param_1);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @0042fad0 file=? name=FUN_0042fad0 */
|
|
|
|
void __cdecl
|
|
FUN_0042fad0(int param_1,undefined4 param_2,undefined4 param_3,undefined4 *param_4,float param_5)
|
|
|
|
{
|
|
float *pfVar1;
|
|
int iVar2;
|
|
int *piVar3;
|
|
int iVar4;
|
|
float *pfVar5;
|
|
float10 fVar6;
|
|
int in_stack_00000024;
|
|
undefined4 uVar7;
|
|
uint uVar8;
|
|
undefined4 local_214;
|
|
undefined4 local_210;
|
|
undefined4 local_20c;
|
|
undefined4 local_208 [2];
|
|
undefined4 local_200;
|
|
undefined4 local_1fc;
|
|
undefined4 local_1f8 [2];
|
|
undefined4 local_1f0;
|
|
undefined4 local_1ec;
|
|
undefined4 local_1e8;
|
|
undefined4 local_1e4;
|
|
undefined4 local_1e0;
|
|
undefined4 local_1dc;
|
|
undefined4 local_1d8;
|
|
undefined4 local_1d4;
|
|
undefined4 local_1d0;
|
|
undefined4 local_1cc;
|
|
undefined4 local_1c8;
|
|
undefined4 local_1c4;
|
|
undefined4 local_1c0;
|
|
int local_1bc;
|
|
undefined4 local_1b8;
|
|
undefined4 local_1b4;
|
|
float local_1b0;
|
|
undefined4 local_1ac;
|
|
undefined4 local_1a8;
|
|
float local_1a4;
|
|
undefined4 local_1a0;
|
|
undefined4 local_19c;
|
|
undefined4 local_198;
|
|
undefined4 local_194;
|
|
undefined4 local_190;
|
|
undefined4 local_18c;
|
|
undefined4 local_188;
|
|
undefined4 local_184;
|
|
undefined4 local_180;
|
|
undefined4 local_17c;
|
|
undefined4 local_178;
|
|
undefined4 local_174;
|
|
undefined4 local_170;
|
|
undefined4 local_16c;
|
|
undefined4 local_168;
|
|
undefined4 local_164;
|
|
int local_160;
|
|
int local_15c;
|
|
undefined4 local_158 [6];
|
|
float local_140;
|
|
float local_13c;
|
|
float local_138;
|
|
int local_134 [4];
|
|
int local_124;
|
|
int local_120 [6];
|
|
int local_108 [5];
|
|
undefined4 local_f4 [15];
|
|
float local_b8 [6];
|
|
float local_a0;
|
|
float local_9c;
|
|
float local_98;
|
|
float local_94;
|
|
float local_90;
|
|
float local_8c;
|
|
undefined4 local_88;
|
|
float local_84 [6];
|
|
float local_6c [6];
|
|
undefined4 local_54;
|
|
undefined4 local_50;
|
|
int *local_4c;
|
|
int *local_48;
|
|
int local_44;
|
|
int local_40;
|
|
undefined4 local_3c;
|
|
float *local_38;
|
|
int *local_34;
|
|
undefined4 local_30;
|
|
int local_2c;
|
|
int local_28;
|
|
float local_24;
|
|
float local_20;
|
|
float local_1c;
|
|
float local_18;
|
|
float local_14;
|
|
float local_10;
|
|
undefined4 *local_c;
|
|
undefined4 *local_8;
|
|
|
|
FUN_0040de40(&local_4c,10);
|
|
local_3c = 0;
|
|
local_48 = local_4c;
|
|
local_40 = local_44;
|
|
local_c = (undefined4 *)FUN_00402298(0x1c);
|
|
if (local_c == (undefined4 *)0x0) {
|
|
local_8 = (undefined4 *)0x0;
|
|
}
|
|
else {
|
|
local_8 = FUN_00435478(local_c,*(undefined4 *)(*(int *)(param_1 + 0x1c8) + 0x194));
|
|
}
|
|
local_54 = 0x11;
|
|
local_50 = 2;
|
|
local_8c = -param_5;
|
|
local_90 = -param_5;
|
|
local_94 = -param_5;
|
|
local_1c = param_5;
|
|
local_20 = param_5;
|
|
local_24 = param_5;
|
|
local_a0 = param_5;
|
|
local_9c = param_5;
|
|
local_98 = param_5;
|
|
local_18 = local_94;
|
|
local_14 = local_90;
|
|
local_10 = local_8c;
|
|
FUN_0040d210(local_b8,&local_94,&local_a0);
|
|
pfVar1 = local_b8;
|
|
pfVar5 = local_84;
|
|
for (iVar4 = 6; iVar4 != 0; iVar4 = iVar4 + -1) {
|
|
*pfVar5 = *pfVar1;
|
|
pfVar1 = pfVar1 + 1;
|
|
pfVar5 = pfVar5 + 1;
|
|
}
|
|
pfVar1 = local_b8;
|
|
pfVar5 = local_6c;
|
|
for (iVar4 = 6; iVar4 != 0; iVar4 = iVar4 + -1) {
|
|
*pfVar5 = *pfVar1;
|
|
pfVar1 = pfVar1 + 1;
|
|
pfVar5 = pfVar5 + 1;
|
|
}
|
|
FUN_0040f33c(local_f4,&local_88,(float *)(param_1 + 0x100));
|
|
pfVar1 = (float *)FUN_0040eed8((int)local_f4,param_1,0);
|
|
FUN_004355bc(local_108,(int)local_8);
|
|
while (iVar4 = (**(code **)(local_108[0] + 0x28))(local_108), iVar4 != 0) {
|
|
if ((param_1 != iVar4) && (iVar2 = FUN_0041a1a4(**(int **)(iVar4 + 0xc),0x4e4518), iVar2 != 0))
|
|
{
|
|
FUN_00423468(iVar4,(int)&local_4c,pfVar1);
|
|
}
|
|
}
|
|
local_28 = *(int *)(DAT_004efc94 + 0x30);
|
|
local_30 = *(undefined4 *)(param_1 + 0x194);
|
|
local_2c = FUN_00433ed4(local_28 + 0x14);
|
|
local_34 = *(int **)(local_2c + 0x30);
|
|
local_38 = pfVar1;
|
|
FUN_0040e4ac(*local_34,pfVar1,pfVar1,(int)&local_4c);
|
|
if (local_8 != (undefined4 *)0x0) {
|
|
(**(code **)*local_8)(local_8,3);
|
|
}
|
|
if (pfVar1 != (float *)0x0) {
|
|
(**(code **)pfVar1[6])(pfVar1,3);
|
|
}
|
|
FUN_0043094a(local_120,0,0);
|
|
FUN_00430b36(local_134,(int)local_120);
|
|
for (iVar4 = 0; iVar4 < local_44 - local_40; iVar4 = iVar4 + 1) {
|
|
local_15c = local_4c[iVar4 * 7];
|
|
FUN_0040d28c(local_158,local_4c + iVar4 * 7 + 1);
|
|
iVar2 = *(int *)(local_15c + 0x1c);
|
|
if (((iVar2 != *(int *)(param_1 + 0x1c8)) && (param_1 != iVar2)) && (iVar2 != in_stack_00000024)
|
|
) {
|
|
FUN_00408440(&local_140,&DAT_004e0f74);
|
|
FUN_00408644(&local_140,(float *)(iVar2 + 0x100),(float *)(param_1 + 0x100));
|
|
(**(code **)(local_120[0] + 8))();
|
|
}
|
|
}
|
|
local_18c = *param_4;
|
|
local_188 = param_4[1];
|
|
local_184 = param_4[2];
|
|
local_180 = param_4[3];
|
|
local_17c = param_4[4];
|
|
local_178 = param_4[5];
|
|
local_174 = param_4[6];
|
|
local_170 = param_4[7];
|
|
local_16c = param_4[8];
|
|
local_168 = param_4[9];
|
|
local_164 = param_4[10];
|
|
local_160 = param_4[0xb];
|
|
(**(code **)(local_134[0] + 4))(local_134);
|
|
while (piVar3 = (int *)(**(code **)(local_134[0] + 0x30))(local_134), piVar3 != (int *)0x0) {
|
|
local_198 = *(undefined4 *)(local_124 + 0x1c);
|
|
local_194 = *(undefined4 *)(local_124 + 0x20);
|
|
local_190 = *(undefined4 *)(local_124 + 0x24);
|
|
FUN_00408440(&local_140,&local_198);
|
|
(**(code **)(local_134[0] + 0xc))(local_134);
|
|
if (piVar3[0x48] != 0) {
|
|
uVar8 = 0x3ff40000;
|
|
uVar7 = 0;
|
|
fVar6 = FUN_004dd138((double)(local_138 * local_138 +
|
|
local_13c * local_13c + local_140 * local_140));
|
|
FUN_004dce94((double)fVar6,uVar7,uVar8);
|
|
local_160 = FUN_004dcd94();
|
|
if (local_160 < 1) {
|
|
local_160 = 1;
|
|
}
|
|
local_1a4 = DAT_004e0f74;
|
|
local_1a0 = DAT_004e0f78;
|
|
local_19c = DAT_004e0f7c;
|
|
FUN_00408744(&local_1a4,&local_140,(float *)(param_1 + 0xd0));
|
|
FUN_00408440(&local_184,&local_1a4);
|
|
local_1b0 = DAT_004e0f80;
|
|
local_1ac = DAT_004e0f84;
|
|
local_1a8 = DAT_004e0f88;
|
|
FUN_004085ec(&local_1b0,(float *)(param_1 + 0x100),(float *)&stack0x00000018);
|
|
FUN_00408440(&local_16c,&local_1b0);
|
|
FUN_0042104c(piVar3 + 0x61,¶m_2);
|
|
if (in_stack_00000024 != 0) {
|
|
FUN_0042104c(piVar3 + 0x61,(int *)(in_stack_00000024 + 0x184));
|
|
}
|
|
local_214 = 100;
|
|
local_210 = 0x12;
|
|
local_20c = 1;
|
|
FUN_00420ea4(local_208,(undefined4 *)&DAT_00522524);
|
|
local_200 = 0;
|
|
local_1fc = 0;
|
|
FUN_00420ea4(local_1f8,¶m_2);
|
|
local_1f0 = 0xffffffff;
|
|
local_1ec = 1;
|
|
local_1e8 = local_18c;
|
|
local_1e4 = local_188;
|
|
local_1e0 = local_184;
|
|
local_1dc = local_180;
|
|
local_1d8 = local_17c;
|
|
local_1d4 = local_178;
|
|
local_1d0 = local_174;
|
|
local_1cc = local_170;
|
|
local_1c8 = local_16c;
|
|
local_1c4 = local_168;
|
|
local_1c0 = local_164;
|
|
local_1bc = local_160;
|
|
local_1b8 = 0xffffffff;
|
|
local_1b4 = 1;
|
|
(**(code **)(*piVar3 + 0xc))(piVar3,&local_214);
|
|
}
|
|
}
|
|
FUN_00430b74(local_134,2);
|
|
FUN_0043096d(local_120,2);
|
|
FUN_004355e8(local_108,2);
|
|
FUN_004022e8(local_4c);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00430180 file=? name=FUN_00430180 */
|
|
|
|
undefined4 * __cdecl FUN_00430180(undefined4 *param_1,int param_2,undefined4 param_3)
|
|
|
|
{
|
|
int *piVar1;
|
|
int iVar2;
|
|
undefined4 uVar3;
|
|
int iVar4;
|
|
|
|
FUN_0041ff38(param_1,param_2,param_3);
|
|
*param_1 = &PTR_FUN_004e6eb8;
|
|
FUN_00409968(param_1 + 0x43,&DAT_004e0fa4);
|
|
iVar2 = FUN_00407064(*(int *)(DAT_004efc94 + 0x68),param_1[0x6f],0xf);
|
|
iVar4 = *(int *)(iVar2 + 4);
|
|
*(int *)(iVar2 + 4) = *(int *)(iVar2 + 4) + 1;
|
|
if (iVar4 == 0) {
|
|
FUN_00406cd0(iVar2);
|
|
}
|
|
piVar1 = *(int **)(iVar2 + 0x3c);
|
|
uVar3 = (**(code **)(*(int *)(*(int *)(DAT_004efc94 + 0x2c) + 0x54) + 0xc))
|
|
(*(int *)(DAT_004efc94 + 0x2c) + 0x54,param_2 + 0x4c);
|
|
param_1[0x72] = uVar3;
|
|
iVar4 = FUN_00421070((int *)(param_2 + 0x54),(int *)&DAT_00522524);
|
|
if (iVar4 == 0) {
|
|
param_1[0x73] = 0;
|
|
}
|
|
else {
|
|
uVar3 = (**(code **)(*(int *)(*(int *)(DAT_004efc94 + 0x2c) + 0x54) + 0xc))
|
|
(*(int *)(DAT_004efc94 + 0x2c) + 0x54,param_2 + 0x54);
|
|
param_1[0x73] = uVar3;
|
|
}
|
|
FUN_00408bf8((float *)(param_1 + 0x74),(float *)(param_1 + 0x40),(float *)(param_1[0x72] + 0xd0));
|
|
param_1[0x71] = piVar1[1];
|
|
if (*piVar1 != 0) {
|
|
iVar4 = FUN_00416f08();
|
|
iVar4 = FUN_00430878(iVar4,param_1[0x72]);
|
|
if (iVar4 != -1) {
|
|
param_1[0x6f] = iVar4;
|
|
}
|
|
}
|
|
*(int *)(iVar2 + 4) = *(int *)(iVar2 + 4) + -1;
|
|
param_1[7] = PTR_FUN_004e6cd8;
|
|
param_1[8] = DAT_004e6cdc;
|
|
param_1[9] = DAT_004e6ce0;
|
|
param_1[10] = param_1[10] | 0x10;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @004302ec file=? name=FUN_004302ec */
|
|
|
|
undefined4 * __cdecl FUN_004302ec(int param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined4 *puVar2;
|
|
|
|
iVar1 = (**(code **)(*(int *)(*(int *)(DAT_004efc94 + 0x2c) + 0x54) + 0xc))
|
|
(*(int *)(DAT_004efc94 + 0x2c) + 0x54,param_1 + 0x4c);
|
|
if (iVar1 == 0) {
|
|
puVar2 = (undefined4 *)0x0;
|
|
}
|
|
else {
|
|
puVar2 = (undefined4 *)FUN_00402298(0x1dc);
|
|
if (puVar2 == (undefined4 *)0x0) {
|
|
puVar2 = (undefined4 *)0x0;
|
|
}
|
|
else {
|
|
puVar2 = FUN_00430180(puVar2,param_1,&DAT_004e6cc4);
|
|
}
|
|
}
|
|
return puVar2;
|
|
}
|
|
|
|
|
|
|
|
/* @00430340 file=? name=FUN_00430340 */
|
|
|
|
void __cdecl FUN_00430340(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e6eb8;
|
|
FUN_00420508(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @0043036c file=? name=FUN_0043036c */
|
|
|
|
void __cdecl FUN_0043036c(int param_1)
|
|
|
|
{
|
|
FUN_0041a1a4(**(int **)(param_1 + 0xc),0x4e6c94);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00430388 file=munga/explode.cpp name=FUN_00430388 */
|
|
|
|
undefined4 __cdecl FUN_00430388(int param_1,char *param_2,uint param_3)
|
|
|
|
{
|
|
char *pcVar1;
|
|
int iVar2;
|
|
undefined4 uVar3;
|
|
uint *puVar4;
|
|
undefined4 *puVar5;
|
|
undefined8 uVar6;
|
|
uint *local_14;
|
|
char *local_10;
|
|
int local_c;
|
|
float local_8;
|
|
|
|
iVar2 = FUN_00404118(param_3,s_gamedata_004e6cee,s_ExplosionDuration_004e6cf7,&local_8);
|
|
if (iVar2 == 0) {
|
|
uVar6 = FUN_004dbd4c((int *)&DAT_00524e68,param_3);
|
|
FUN_004dbb24((int *)uVar6,s_missing_ExplosionDuration_004e6d09,(char *)0x0);
|
|
FUN_004d9c38((int *)uVar6);
|
|
uVar3 = 0xffffffff;
|
|
}
|
|
else {
|
|
iVar2 = FUN_00404088(param_3,s_gamedata_004e6d25,s_ExplosionResourceTable_004e6d2e,&local_10);
|
|
pcVar1 = local_10;
|
|
if (iVar2 == 0) {
|
|
local_c = 0;
|
|
}
|
|
else {
|
|
puVar4 = (uint *)FUN_00402298(0x10);
|
|
if (puVar4 == (uint *)0x0) {
|
|
local_14 = (uint *)0x0;
|
|
}
|
|
else {
|
|
local_14 = FUN_00402460(puVar4,pcVar1);
|
|
}
|
|
local_14[3] = local_14[3] + 1;
|
|
local_c = FUN_00416f60(&local_14);
|
|
puVar4 = local_14 + 3;
|
|
*puVar4 = *puVar4 - 1;
|
|
if (*puVar4 == 0) {
|
|
FUN_004024d8((int *)local_14,3);
|
|
}
|
|
if (local_c == 0) {
|
|
FUN_004dbb24(&DAT_00524e20,s_resource_table_name____004e6d45,(char *)0x0);
|
|
FUN_004dbb24(&DAT_00524e20,local_10,(char *)0x0);
|
|
FUN_004dbb24(&DAT_00524e20,&DAT_004e6d5d,(char *)0x0);
|
|
FUN_0040385c(s_Explosion__CreateModelResource___004e6d5f,
|
|
s_d__tesla_bt_munga_EXPLODE_CPP_004e6da1,0x23b);
|
|
}
|
|
}
|
|
puVar5 = (undefined4 *)FUN_00406db4(param_1,param_2,0xf,1,0,&local_c,8,-1);
|
|
uVar3 = *puVar5;
|
|
}
|
|
return uVar3;
|
|
}
|
|
|
|
|
|
|
|
/* @004304cc file=? name=FUN_004304cc */
|
|
|
|
bool __cdecl FUN_004304cc(int param_1,int param_2)
|
|
|
|
{
|
|
return param_2 == *(int *)(param_1 + 0x1cc);
|
|
}
|
|
|
|
|
|
|
|
/* @004304ec file=? name=FUN_004304ec */
|
|
|
|
undefined4 * __cdecl FUN_004304ec(undefined4 *param_1,int *param_2)
|
|
|
|
{
|
|
int *piVar1;
|
|
undefined4 *puVar2;
|
|
int iVar3;
|
|
undefined4 local_10;
|
|
undefined1 local_c [4];
|
|
int local_8;
|
|
|
|
FUN_00415eb4(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e6eb4;
|
|
FUN_00424767(param_1 + 3,0,1);
|
|
(**(code **)(*param_2 + 0x1c))(param_2,&local_8,4);
|
|
iVar3 = 0;
|
|
if (0 < local_8) {
|
|
do {
|
|
piVar1 = (int *)(**(code **)(*param_2 + 0x1c))(param_2,local_c,4);
|
|
(**(code **)(*piVar1 + 0x1c))(piVar1,&local_10,4);
|
|
puVar2 = (undefined4 *)FUN_00402298(0x10);
|
|
if (puVar2 == (undefined4 *)0x0) {
|
|
puVar2 = (undefined4 *)0x0;
|
|
}
|
|
else {
|
|
puVar2 = FUN_00424716(puVar2,&local_10);
|
|
}
|
|
(**(code **)(param_1[3] + 8))(param_1 + 3,puVar2,local_c);
|
|
iVar3 = iVar3 + 1;
|
|
} while (iVar3 < local_8);
|
|
}
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @0043059c file=? name=FUN_0043059c */
|
|
|
|
void __cdecl FUN_0043059c(int *param_1,byte param_2)
|
|
|
|
{
|
|
void *this;
|
|
int local_20 [7];
|
|
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e6eb4;
|
|
FUN_00424811(local_20,(int)(param_1 + 3));
|
|
FUN_00417858(this,local_20,1);
|
|
FUN_0042484f(local_20,2);
|
|
FUN_0042478a(param_1 + 3,2);
|
|
FUN_00415ed8(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00430608 file=? name=FUN_00430608 */
|
|
|
|
void __cdecl FUN_00430608(int *param_1,int param_2)
|
|
|
|
{
|
|
undefined4 *puVar1;
|
|
bool bVar2;
|
|
undefined3 extraout_var;
|
|
undefined3 extraout_var_00;
|
|
undefined4 *puVar3;
|
|
uint *puVar4;
|
|
int *piVar5;
|
|
int iVar6;
|
|
int iVar7;
|
|
uint local_4c [2];
|
|
char *local_44;
|
|
uint local_3c [2];
|
|
char *local_34;
|
|
uint *local_2c;
|
|
char *local_28;
|
|
uint *local_24;
|
|
char *local_20;
|
|
int *local_1c;
|
|
undefined4 local_18;
|
|
int local_14;
|
|
int *local_10;
|
|
uint *local_c;
|
|
int local_8;
|
|
|
|
FUN_00414c58(param_1);
|
|
local_8 = 0;
|
|
for (puVar1 = *(undefined4 **)(param_2 + 4); puVar1 != (undefined4 *)0x0;
|
|
puVar1 = (undefined4 *)*puVar1) {
|
|
bVar2 = FUN_00403c20((int)puVar1,s_table_entry_004e6dbf);
|
|
if (CONCAT31(extraout_var,bVar2) != 0) {
|
|
local_8 = local_8 + 1;
|
|
}
|
|
}
|
|
(**(code **)(*param_1 + 0x20))(param_1,&local_8,4);
|
|
for (puVar1 = *(undefined4 **)(param_2 + 4); puVar1 != (undefined4 *)0x0;
|
|
puVar1 = (undefined4 *)*puVar1) {
|
|
bVar2 = FUN_00403c20((int)puVar1,s_table_entry_004e6dcb);
|
|
if (CONCAT31(extraout_var_00,bVar2) != 0) {
|
|
puVar3 = (undefined4 *)FUN_00402298(0x10);
|
|
if (puVar3 == (undefined4 *)0x0) {
|
|
local_c = (uint *)0x0;
|
|
}
|
|
else {
|
|
local_c = (uint *)FUN_004023f4(puVar3);
|
|
}
|
|
local_c[3] = local_c[3] + 1;
|
|
puVar3 = (undefined4 *)FUN_00402298(0x10);
|
|
if (puVar3 == (undefined4 *)0x0) {
|
|
local_10 = (int *)0x0;
|
|
}
|
|
else {
|
|
local_10 = (int *)FUN_004023f4(puVar3);
|
|
}
|
|
local_10[3] = local_10[3] + 1;
|
|
FUN_00402a98((int *)&local_1c,(int *)&local_c,(char *)puVar1[1]);
|
|
piVar5 = local_1c + 3;
|
|
*piVar5 = *piVar5 + -1;
|
|
if (*piVar5 == 0) {
|
|
FUN_004024d8(local_1c,3);
|
|
}
|
|
FUN_00402838(local_3c,local_c,0,(char *)0x0);
|
|
local_20 = local_34;
|
|
puVar4 = (uint *)FUN_00402298(0x10);
|
|
if (puVar4 == (uint *)0x0) {
|
|
local_24 = (uint *)0x0;
|
|
}
|
|
else {
|
|
local_24 = FUN_00402460(puVar4,local_20);
|
|
}
|
|
local_24[3] = local_24[3] + 1;
|
|
FUN_004024d8((int *)local_3c,2);
|
|
local_14 = FUN_004dd1e0((char *)local_24[2]);
|
|
puVar4 = local_24 + 3;
|
|
*puVar4 = *puVar4 - 1;
|
|
if (*puVar4 == 0) {
|
|
FUN_004024d8((int *)local_24,3);
|
|
}
|
|
iVar7 = -1;
|
|
iVar6 = 1;
|
|
FUN_00402838(local_4c,local_c,1,(char *)0x0);
|
|
local_28 = local_44;
|
|
puVar4 = (uint *)FUN_00402298(0x10);
|
|
if (puVar4 == (uint *)0x0) {
|
|
local_2c = (uint *)0x0;
|
|
}
|
|
else {
|
|
local_2c = FUN_00402460(puVar4,local_28);
|
|
}
|
|
local_2c[3] = local_2c[3] + 1;
|
|
FUN_004024d8((int *)local_4c,2);
|
|
puVar3 = (undefined4 *)FUN_00406ff8(param_1[6],(char *)local_2c[2],iVar6,iVar7);
|
|
puVar4 = local_2c + 3;
|
|
*puVar4 = *puVar4 - 1;
|
|
if (*puVar4 == 0) {
|
|
FUN_004024d8((int *)local_2c,3);
|
|
}
|
|
local_18 = *puVar3;
|
|
piVar5 = (int *)(**(code **)(*param_1 + 0x20))(param_1,&local_14,4);
|
|
(**(code **)(*piVar5 + 0x20))(piVar5,&local_18,4);
|
|
piVar5 = local_10 + 3;
|
|
*piVar5 = *piVar5 + -1;
|
|
if (*piVar5 == 0) {
|
|
FUN_004024d8(local_10,3);
|
|
}
|
|
puVar4 = local_c + 3;
|
|
*puVar4 = *puVar4 - 1;
|
|
if (*puVar4 == 0) {
|
|
FUN_004024d8((int *)local_c,3);
|
|
}
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00430838 file=? name=FUN_00430838 */
|
|
|
|
undefined4 FUN_00430838(void)
|
|
|
|
{
|
|
FUN_00415f1c();
|
|
return 1;
|
|
}
|
|
|
|
|
|
|
|
/* @0043084c file=? name=FUN_0043084c */
|
|
|
|
undefined4 __cdecl FUN_0043084c(int param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined4 uVar2;
|
|
|
|
iVar1 = (**(code **)(*(int *)(param_1 + 0xc) + 0xc))(param_1 + 0xc,&stack0x00000008);
|
|
if (iVar1 == 0) {
|
|
uVar2 = 0xffffffff;
|
|
}
|
|
else {
|
|
uVar2 = *(undefined4 *)(iVar1 + 0xc);
|
|
}
|
|
return uVar2;
|
|
}
|
|
|
|
|
|
|
|
/* @00430878 file=? name=FUN_00430878 */
|
|
|
|
void __cdecl FUN_00430878(int param_1,int param_2)
|
|
|
|
{
|
|
FUN_0042104c((int *)(param_2 + 0x184),(int *)(*(int *)(DAT_004efc94 + 0x6c) + 0x184));
|
|
FUN_0043084c(param_1);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @0043094a file=? name=FUN_0043094a */
|
|
|
|
undefined4 * __cdecl FUN_0043094a(undefined4 *param_1,undefined4 param_2,undefined4 param_3)
|
|
|
|
{
|
|
FUN_004186ac(param_1,param_2,param_3);
|
|
*param_1 = &PTR_FUN_004e6e98;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @0043096d file=? name=FUN_0043096d */
|
|
|
|
void __cdecl FUN_0043096d(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e6e98;
|
|
FUN_004186dc(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_00430acc(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00430999 file=? name=FUN_00430999 */
|
|
|
|
undefined4 __cdecl FUN_00430999(undefined4 param_1,int param_2,int param_3)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined4 uVar2;
|
|
float *pfVar3;
|
|
float *pfVar4;
|
|
|
|
pfVar3 = (float *)(param_2 + 0x1c);
|
|
pfVar4 = (float *)(param_3 + 0x1c);
|
|
iVar1 = FUN_004084fc(pfVar3,pfVar4,0.0001);
|
|
if (iVar1 == 0) {
|
|
if (*(float *)(param_2 + 0x24) * *(float *)(param_2 + 0x24) +
|
|
*(float *)(param_2 + 0x20) * *(float *)(param_2 + 0x20) + *pfVar3 * *pfVar3 <=
|
|
*(float *)(param_3 + 0x24) * *(float *)(param_3 + 0x24) +
|
|
*(float *)(param_3 + 0x20) * *(float *)(param_3 + 0x20) + *pfVar4 * *pfVar4) {
|
|
uVar2 = 0xffffffff;
|
|
}
|
|
else {
|
|
uVar2 = 1;
|
|
}
|
|
}
|
|
else {
|
|
uVar2 = 0;
|
|
}
|
|
return uVar2;
|
|
}
|
|
|
|
|
|
|
|
/* @00430a0c file=? name=FUN_00430a0c */
|
|
|
|
undefined4 __cdecl FUN_00430a0c(undefined4 param_1,float *param_2,int param_3)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined4 uVar2;
|
|
float *pfVar3;
|
|
|
|
pfVar3 = (float *)(param_3 + 0x1c);
|
|
iVar1 = FUN_004084fc(param_2,pfVar3,0.0001);
|
|
if (iVar1 == 0) {
|
|
if (param_2[2] * param_2[2] + param_2[1] * param_2[1] + *param_2 * *param_2 <=
|
|
*(float *)(param_3 + 0x24) * *(float *)(param_3 + 0x24) +
|
|
*(float *)(param_3 + 0x20) * *(float *)(param_3 + 0x20) + *pfVar3 * *pfVar3) {
|
|
uVar2 = 0xffffffff;
|
|
}
|
|
else {
|
|
uVar2 = 1;
|
|
}
|
|
}
|
|
else {
|
|
uVar2 = 0;
|
|
}
|
|
return uVar2;
|
|
}
|
|
|
|
|
|
|
|
/* @00430a7c file=? name=FUN_00430a7c */
|
|
|
|
void FUN_00430a7c(void)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined4 *puVar2;
|
|
|
|
iVar1 = DAT_004e6e38;
|
|
DAT_004e6e38 = DAT_004e6e38 + 1;
|
|
puVar2 = DAT_004e6e34;
|
|
if ((iVar1 == 0) && (puVar2 = (undefined4 *)FUN_00402298(0x28), puVar2 != (undefined4 *)0x0)) {
|
|
FUN_00402b98(puVar2,0x18,100,100,s_VChainOf_004e6de9);
|
|
}
|
|
DAT_004e6e34 = puVar2;
|
|
FUN_00402f74((int)DAT_004e6e34);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00430acc file=? name=FUN_00430acc */
|
|
|
|
void __cdecl FUN_00430acc(undefined4 *param_1)
|
|
|
|
{
|
|
FUN_00402f98((int)DAT_004e6e34,param_1);
|
|
DAT_004e6e38 = DAT_004e6e38 + -1;
|
|
if (DAT_004e6e38 == 0) {
|
|
if (DAT_004e6e34 != (int *)0x0) {
|
|
FUN_00402c28(DAT_004e6e34,0);
|
|
FUN_004022d0(DAT_004e6e34);
|
|
}
|
|
DAT_004e6e34 = (int *)0x0;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00430b17 file=? name=FUN_00430b17 */
|
|
|
|
undefined4 * __cdecl FUN_00430b17(undefined4 *param_1,int param_2)
|
|
|
|
{
|
|
FUN_004188dc(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e6e3c;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00430b36 file=? name=FUN_00430b36 */
|
|
|
|
undefined4 * __cdecl FUN_00430b36(undefined4 *param_1,int param_2)
|
|
|
|
{
|
|
FUN_004188dc(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e6e3c;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00430b55 file=? name=FUN_00430b55 */
|
|
|
|
undefined4 * __cdecl FUN_00430b55(undefined4 *param_1,int param_2)
|
|
|
|
{
|
|
FUN_00418904(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e6e3c;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00430b74 file=? name=FUN_00430b74 */
|
|
|
|
void __cdecl FUN_00430b74(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e6e3c;
|
|
FUN_00418930(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00430ba0 file=? name=FUN_00430ba0 */
|
|
|
|
undefined4 * __cdecl FUN_00430ba0(undefined4 param_1,int param_2,undefined4 *param_3)
|
|
|
|
{
|
|
undefined4 *puVar1;
|
|
|
|
puVar1 = (undefined4 *)FUN_00430c33();
|
|
if (puVar1 == (undefined4 *)0x0) {
|
|
puVar1 = (undefined4 *)0x0;
|
|
}
|
|
else {
|
|
puVar1 = FUN_00430bd0(puVar1,param_1,param_2,param_3);
|
|
}
|
|
return puVar1;
|
|
}
|
|
|
|
|
|
|
|
/* @00430bd0 file=? name=FUN_00430bd0 */
|
|
|
|
undefined4 * __cdecl
|
|
FUN_00430bd0(undefined4 *param_1,undefined4 param_2,int param_3,undefined4 *param_4)
|
|
|
|
{
|
|
FUN_004185bc(param_1,param_2,param_3);
|
|
*param_1 = &PTR_FUN_004e6ef4;
|
|
FUN_00408440(param_1 + 7,param_4);
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00430c07 file=? name=FUN_00430c07 */
|
|
|
|
void __cdecl FUN_00430c07(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e6ef4;
|
|
FUN_004185ec(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_00430c83(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00430c33 file=? name=FUN_00430c33 */
|
|
|
|
void FUN_00430c33(void)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined4 *puVar2;
|
|
|
|
iVar1 = DAT_004e6ef0;
|
|
DAT_004e6ef0 = DAT_004e6ef0 + 1;
|
|
puVar2 = DAT_004e6eec;
|
|
if ((iVar1 == 0) && (puVar2 = (undefined4 *)FUN_00402298(0x28), puVar2 != (undefined4 *)0x0)) {
|
|
FUN_00402b98(puVar2,0x28,100,100,s_VChainLinkOf_004e6e0a);
|
|
}
|
|
DAT_004e6eec = puVar2;
|
|
FUN_00402f74((int)DAT_004e6eec);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00430c83 file=? name=FUN_00430c83 */
|
|
|
|
void __cdecl FUN_00430c83(undefined4 *param_1)
|
|
|
|
{
|
|
FUN_00402f98((int)DAT_004e6eec,param_1);
|
|
DAT_004e6ef0 = DAT_004e6ef0 + -1;
|
|
if (DAT_004e6ef0 == 0) {
|
|
if (DAT_004e6eec != (int *)0x0) {
|
|
FUN_00402c28(DAT_004e6eec,0);
|
|
FUN_004022d0(DAT_004e6eec);
|
|
}
|
|
DAT_004e6eec = (int *)0x0;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00430cd0 file=? name=FUN_00430cd0 */
|
|
|
|
undefined4 * __cdecl FUN_00430cd0(undefined4 *param_1,int param_2,undefined4 param_3)
|
|
|
|
{
|
|
int iVar1;
|
|
int iVar2;
|
|
undefined4 uVar3;
|
|
undefined4 *puVar4;
|
|
undefined4 local_4c [7];
|
|
undefined4 local_30 [8];
|
|
uint local_10;
|
|
int *local_c;
|
|
undefined4 local_8;
|
|
|
|
FUN_0041ff38(param_1,param_2,param_3);
|
|
*param_1 = &PTR_FUN_004e7004;
|
|
param_1[0x71] = *(undefined4 *)(param_2 + 0x4c);
|
|
param_1[10] = param_1[10] | 0x10;
|
|
iVar1 = FUN_00407064(*(int *)(DAT_004efc94 + 0x68),param_1[0x6f],9);
|
|
param_1[0x72] = 0;
|
|
if (iVar1 != 0) {
|
|
iVar2 = *(int *)(iVar1 + 4);
|
|
*(int *)(iVar1 + 4) = *(int *)(iVar1 + 4) + 1;
|
|
if (iVar2 == 0) {
|
|
FUN_00406cd0(iVar1);
|
|
}
|
|
local_8 = param_1[0x65];
|
|
iVar2 = FUN_00433ed4(*(int *)(DAT_004efc94 + 0x30) + 0x14);
|
|
local_c = *(int **)(iVar2 + 0x30);
|
|
puVar4 = *(undefined4 **)(iVar1 + 0x3c);
|
|
local_10 = *(uint *)(iVar1 + 0x40) / 0x3c;
|
|
while (local_10 != 0) {
|
|
local_10 = local_10 - 1;
|
|
FUN_0040f33c(local_4c,puVar4,(float *)(param_1 + 0x40));
|
|
uVar3 = FUN_0040eed8((int)local_4c,param_1,param_1[0x72]);
|
|
param_1[0x72] = uVar3;
|
|
FUN_0040ea6c(local_c,param_1[0x72],local_30);
|
|
puVar4 = puVar4 + 0xf;
|
|
}
|
|
*(int *)(iVar1 + 4) = *(int *)(iVar1 + 4) + -1;
|
|
}
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00430ddc file=? name=FUN_00430ddc */
|
|
|
|
undefined4 __cdecl FUN_00430ddc(undefined4 *param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined4 uVar2;
|
|
char *pcVar3;
|
|
float10 fVar4;
|
|
|
|
iVar1 = FUN_00420234(param_1);
|
|
if (iVar1 == 0) {
|
|
uVar2 = 0;
|
|
}
|
|
else {
|
|
*param_1 = 0x50;
|
|
param_1[7] = 0x29;
|
|
param_1[0xb] = 0x20c;
|
|
pcVar3 = FUN_004d4d1c((char *)0x0,&DAT_004e6fab);
|
|
if (pcVar3 == (char *)0x0) {
|
|
FUN_004dbb24((int *)&DAT_00524e68,s_Scale_missing__004e6fad,(char *)0x0);
|
|
uVar2 = 0;
|
|
}
|
|
else {
|
|
fVar4 = (float10)FUN_004dd1cc(pcVar3);
|
|
uVar2 = 1;
|
|
param_1[0x13] = (float)fVar4;
|
|
}
|
|
}
|
|
return uVar2;
|
|
}
|
|
|
|
|
|
|
|
/* @00430e54 file=? name=FUN_00430e54 */
|
|
|
|
undefined4 * __cdecl FUN_00430e54(int param_1)
|
|
|
|
{
|
|
undefined4 *puVar1;
|
|
|
|
puVar1 = (undefined4 *)FUN_00402298(0x1cc);
|
|
if (puVar1 == (undefined4 *)0x0) {
|
|
puVar1 = (undefined4 *)0x0;
|
|
}
|
|
else {
|
|
puVar1 = FUN_00430cd0(puVar1,param_1,&DAT_004e6f28);
|
|
}
|
|
return puVar1;
|
|
}
|
|
|
|
|
|
|
|
/* @00430e84 file=? name=FUN_00430e84 */
|
|
|
|
void __cdecl FUN_00430e84(int *param_1,byte param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
int iVar2;
|
|
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e7004;
|
|
iVar1 = param_1[0x72];
|
|
while (iVar2 = iVar1, iVar2 != 0) {
|
|
iVar1 = *(int *)(iVar2 + 0x28);
|
|
if (iVar2 != 0) {
|
|
(*(code *)**(undefined4 **)(iVar2 + 0x18))(iVar2,3);
|
|
}
|
|
}
|
|
FUN_00420508(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00430ed4 file=? name=FUN_00430ed4 */
|
|
|
|
void __cdecl FUN_00430ed4(int param_1)
|
|
|
|
{
|
|
FUN_0041a1a4(**(int **)(param_1 + 0xc),0x4e6ef8);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00430ef0 file=? name=FUN_00430ef0 */
|
|
|
|
undefined4 * __cdecl FUN_00430ef0(undefined4 *param_1,int param_2,undefined4 param_3)
|
|
|
|
{
|
|
int iVar1;
|
|
int iVar2;
|
|
undefined4 uVar3;
|
|
undefined4 *puVar4;
|
|
undefined4 local_4c [7];
|
|
undefined4 local_30 [8];
|
|
uint local_10;
|
|
int *local_c;
|
|
undefined4 local_8;
|
|
|
|
FUN_0041ff38(param_1,param_2,param_3);
|
|
*param_1 = &PTR_FUN_004e6fd0;
|
|
param_1[10] = param_1[10] | 0x10;
|
|
iVar1 = FUN_00407064(*(int *)(DAT_004efc94 + 0x68),param_1[0x6f],9);
|
|
param_1[0x71] = 0;
|
|
if (iVar1 != 0) {
|
|
iVar2 = *(int *)(iVar1 + 4);
|
|
*(int *)(iVar1 + 4) = *(int *)(iVar1 + 4) + 1;
|
|
if (iVar2 == 0) {
|
|
FUN_00406cd0(iVar1);
|
|
}
|
|
local_8 = param_1[0x65];
|
|
iVar2 = FUN_00433ed4(*(int *)(DAT_004efc94 + 0x30) + 0x14);
|
|
local_c = *(int **)(iVar2 + 0x30);
|
|
puVar4 = *(undefined4 **)(iVar1 + 0x3c);
|
|
local_10 = *(uint *)(iVar1 + 0x40) / 0x3c;
|
|
while (local_10 != 0) {
|
|
local_10 = local_10 - 1;
|
|
FUN_0040f33c(local_4c,puVar4,(float *)(param_1 + 0x40));
|
|
uVar3 = FUN_0040eed8((int)local_4c,param_1,param_1[0x71]);
|
|
param_1[0x71] = uVar3;
|
|
FUN_0040ea6c(local_c,param_1[0x71],local_30);
|
|
puVar4 = puVar4 + 0xf;
|
|
}
|
|
*(int *)(iVar1 + 4) = *(int *)(iVar1 + 4) + -1;
|
|
}
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00430ff0 file=? name=FUN_00430ff0 */
|
|
|
|
undefined4 __cdecl FUN_00430ff0(undefined4 *param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
|
|
iVar1 = FUN_00420234(param_1);
|
|
if (iVar1 == 0) {
|
|
return 0;
|
|
}
|
|
param_1[7] = 0x2a;
|
|
param_1[0xb] = 0x20c;
|
|
return 1;
|
|
}
|
|
|
|
|
|
|
|
/* @00431028 file=? name=FUN_00431028 */
|
|
|
|
undefined4 * __cdecl FUN_00431028(int param_1)
|
|
|
|
{
|
|
undefined4 *puVar1;
|
|
|
|
puVar1 = (undefined4 *)FUN_00402298(0x1c8);
|
|
if (puVar1 == (undefined4 *)0x0) {
|
|
puVar1 = (undefined4 *)0x0;
|
|
}
|
|
else {
|
|
puVar1 = FUN_00430ef0(puVar1,param_1,&DAT_004e6f84);
|
|
}
|
|
return puVar1;
|
|
}
|
|
|
|
|
|
|
|
/* @00431058 file=? name=FUN_00431058 */
|
|
|
|
void __cdecl FUN_00431058(int *param_1,byte param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
int iVar2;
|
|
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e6fd0;
|
|
iVar1 = param_1[0x71];
|
|
while (iVar2 = iVar1, iVar2 != 0) {
|
|
iVar1 = *(int *)(iVar2 + 0x28);
|
|
if (iVar2 != 0) {
|
|
(*(code *)**(undefined4 **)(iVar2 + 0x18))(iVar2,3);
|
|
}
|
|
}
|
|
FUN_00420508(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004310a8 file=? name=FUN_004310a8 */
|
|
|
|
void __cdecl FUN_004310a8(int param_1)
|
|
|
|
{
|
|
FUN_0041a1a4(**(int **)(param_1 + 0xc),0x4e6f54);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00431200 file=? name=FUN_00431200 */
|
|
|
|
void __cdecl FUN_00431200(int param_1,int param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
int *piVar2;
|
|
uint local_a4 [5];
|
|
undefined4 local_90;
|
|
undefined4 local_8c;
|
|
undefined4 local_88;
|
|
undefined4 local_84;
|
|
undefined4 local_80;
|
|
undefined4 local_7c [2];
|
|
undefined4 local_74;
|
|
undefined4 local_70;
|
|
undefined4 local_6c;
|
|
undefined4 local_68 [2];
|
|
undefined4 local_60;
|
|
undefined4 local_5c;
|
|
undefined4 local_58;
|
|
undefined4 local_54;
|
|
undefined4 local_50;
|
|
undefined4 local_4c;
|
|
undefined4 local_48;
|
|
undefined4 local_44;
|
|
undefined4 local_40;
|
|
undefined4 local_3c [2];
|
|
undefined4 local_34 [2];
|
|
undefined4 local_2c;
|
|
undefined4 local_28;
|
|
undefined4 local_24;
|
|
undefined4 local_20;
|
|
undefined4 local_1c;
|
|
undefined4 local_18;
|
|
undefined4 local_14;
|
|
undefined4 local_10;
|
|
int local_c;
|
|
undefined4 local_8;
|
|
|
|
if (*(int *)(param_2 + 0x24) == -1) {
|
|
*(undefined4 *)(param_2 + 0x24) = 0;
|
|
}
|
|
if (*(int *)(param_1 + 0x40) == 0) {
|
|
if ((*(uint *)(param_1 + 0x28) & 0xc) != 4) {
|
|
*(ushort *)(param_1 + 0x18) = *(ushort *)(param_1 + 0x18) | 3;
|
|
*(uint *)(param_1 + 0x28) = *(uint *)(param_1 + 0x28) & 0xfffffffd;
|
|
}
|
|
FUN_0041ff08(param_1,param_2);
|
|
for (iVar1 = 0; iVar1 < *(int *)(param_1 + 0x11c); iVar1 = iVar1 + 1) {
|
|
if (*(int *)(*(int *)(*(int *)(param_1 + 0x120) + iVar1 * 4) + 0x24) == 1) {
|
|
local_2c = *(undefined4 *)(param_1 + 0x100);
|
|
local_28 = *(undefined4 *)(param_1 + 0x104);
|
|
local_24 = *(undefined4 *)(param_1 + 0x108);
|
|
local_20 = *(undefined4 *)(param_1 + 0x10c);
|
|
local_1c = *(undefined4 *)(param_1 + 0x110);
|
|
local_18 = *(undefined4 *)(param_1 + 0x114);
|
|
local_14 = *(undefined4 *)(param_1 + 0x118);
|
|
if ((*(int *)(param_2 + 0x2c) == 0) && (*(int *)(param_1 + 0x1cc) != -1)) {
|
|
local_8 = *(undefined4 *)(param_1 + 0x1cc);
|
|
}
|
|
else {
|
|
local_8 = *(undefined4 *)(param_1 + 0x1c8);
|
|
}
|
|
local_88 = 0x5c;
|
|
local_84 = 3;
|
|
local_80 = 1;
|
|
FUN_00420ea4(local_7c,(undefined4 *)&DAT_00522524);
|
|
local_74 = 0;
|
|
local_70 = 0;
|
|
local_6c = 0x31;
|
|
FUN_00420ea4(local_68,(undefined4 *)&DAT_00522524);
|
|
local_60 = local_8;
|
|
local_5c = 0x100;
|
|
local_58 = local_2c;
|
|
local_54 = local_28;
|
|
local_50 = local_24;
|
|
local_4c = local_20;
|
|
local_48 = local_1c;
|
|
local_44 = local_18;
|
|
local_40 = local_14;
|
|
FUN_00420ea4(local_3c,(undefined4 *)(param_1 + 0x184));
|
|
FUN_00420ea4(local_34,(undefined4 *)(param_1 + 0x184));
|
|
FUN_004302ec((int)&local_88);
|
|
local_a4[0] = 0x1c;
|
|
local_a4[1] = 0x15;
|
|
local_a4[2] = 1;
|
|
FUN_00420ea4(local_a4 + 3,(undefined4 *)&DAT_00522524);
|
|
local_90 = 0;
|
|
local_8c = 0;
|
|
piVar2 = (int *)FUN_00414b60();
|
|
local_c = *piVar2;
|
|
local_10 = *(undefined4 *)(param_1 + 0x1d4);
|
|
iVar1 = FUN_004dcd94();
|
|
local_c = local_c + iVar1;
|
|
FUN_0041acbc(*(int *)(DAT_004efc94 + 0x60),3,param_1,local_a4,local_c);
|
|
FUN_0041bbd8(param_1 + 0x2c,2);
|
|
FUN_00431428(param_1);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00431428 file=? name=FUN_00431428 */
|
|
|
|
void __cdecl FUN_00431428(int param_1)
|
|
|
|
{
|
|
int *piVar1;
|
|
int iVar2;
|
|
int iVar3;
|
|
|
|
iVar3 = FUN_00433ed4(*(int *)(DAT_004efc94 + 0x30) + 0x14);
|
|
piVar1 = *(int **)(iVar3 + 0x30);
|
|
iVar3 = *(int *)(param_1 + 0x1c4);
|
|
while (iVar2 = iVar3, iVar2 != 0) {
|
|
iVar3 = *(int *)(iVar2 + 0x28);
|
|
if ((*(uint *)(param_1 + 0x28) & 0x4000) == 0) {
|
|
*(float *)(iVar2 + 8) = *(float *)(param_1 + 0x1d0) + *(float *)(iVar2 + 8);
|
|
*(float *)(iVar2 + 0xc) = *(float *)(param_1 + 0x1d0) + *(float *)(iVar2 + 0xc);
|
|
}
|
|
else {
|
|
FUN_0040e184(*piVar1,iVar2,(undefined4 *)iVar2);
|
|
if (iVar2 != 0) {
|
|
(*(code *)**(undefined4 **)(iVar2 + 0x18))(iVar2,3);
|
|
}
|
|
}
|
|
}
|
|
*(undefined4 *)(param_1 + 0x1c4) = 0;
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004314bc file=? name=FUN_004314bc */
|
|
|
|
undefined4 * __cdecl FUN_004314bc(undefined4 *param_1,int param_2,undefined4 param_3)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined4 *puVar2;
|
|
int iVar3;
|
|
int local_20 [6];
|
|
int local_8;
|
|
|
|
FUN_00430ef0(param_1,param_2,param_3);
|
|
*param_1 = &PTR_FUN_004e7418;
|
|
param_1[0x76] = s_Defualt_004e7155._0_4_;
|
|
param_1[0x77] = s_Defualt_004e7155._4_4_;
|
|
iVar1 = FUN_00407064(*(int *)(DAT_004efc94 + 0x68),param_1[0x6f],0xf);
|
|
iVar3 = *(int *)(iVar1 + 4);
|
|
*(int *)(iVar1 + 4) = *(int *)(iVar1 + 4) + 1;
|
|
if (iVar3 == 0) {
|
|
FUN_00406cd0(iVar1);
|
|
}
|
|
puVar2 = *(undefined4 **)(iVar1 + 0x3c);
|
|
if (puVar2[4] == 0) {
|
|
param_1[0x74] = 0;
|
|
param_1[10] = param_1[10] | 0x4000;
|
|
}
|
|
else {
|
|
param_1[0x74] = *puVar2;
|
|
}
|
|
param_1[0x75] = puVar2[1];
|
|
if (puVar2[5] != 0) {
|
|
param_1[10] = param_1[10] | 0x8000;
|
|
}
|
|
param_1[0x72] = puVar2[2];
|
|
param_1[0x73] = puVar2[3];
|
|
*(int *)(iVar1 + 4) = *(int *)(iVar1 + 4) + -1;
|
|
local_8 = FUN_00407064(*(int *)(DAT_004efc94 + 0x68),param_1[0x6f],0x14);
|
|
iVar3 = *(int *)(local_8 + 4);
|
|
*(int *)(local_8 + 4) = *(int *)(local_8 + 4) + 1;
|
|
if (iVar3 == 0) {
|
|
FUN_00406cd0(local_8);
|
|
}
|
|
FUN_004032dc(local_20,*(undefined4 *)(local_8 + 0x3c),*(undefined4 *)(local_8 + 0x40),0);
|
|
(**(code **)(local_20[0] + 0x14))(local_20,4);
|
|
for (iVar3 = 0; iVar3 < (int)param_1[0x47]; iVar3 = iVar3 + 1) {
|
|
puVar2 = (undefined4 *)FUN_00402298(0x160);
|
|
if (puVar2 == (undefined4 *)0x0) {
|
|
puVar2 = (undefined4 *)0x0;
|
|
}
|
|
else {
|
|
puVar2 = FUN_0041df5c(puVar2,param_1,iVar3,local_20);
|
|
}
|
|
*(undefined4 **)(param_1[0x48] + iVar3 * 4) = puVar2;
|
|
}
|
|
param_1[10] = param_1[10] | 0x10;
|
|
*(int *)(local_8 + 4) = *(int *)(local_8 + 4) + -1;
|
|
FUN_00403310(local_20,2);
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @0043162c file=? name=FUN_0043162c */
|
|
|
|
void __cdecl FUN_0043162c(int param_1,undefined4 *param_2)
|
|
|
|
{
|
|
FUN_0041f76c(param_1,param_2);
|
|
if ((*(int *)(param_1 + 0x40) != *(int *)(param_1 + 0x3c)) && (*(int *)(param_1 + 0x40) == 1)) {
|
|
FUN_00431428(param_1);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00431658 file=? name=FUN_00431658 */
|
|
|
|
undefined4 __cdecl FUN_00431658(undefined4 *param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
|
|
iVar1 = FUN_00430ff0(param_1);
|
|
if (iVar1 == 0) {
|
|
return 0;
|
|
}
|
|
*param_1 = 0x4c;
|
|
param_1[7] = 0x5e;
|
|
param_1[0xb] = 0xb00;
|
|
return 1;
|
|
}
|
|
|
|
|
|
|
|
/* @00431698 file=? name=FUN_00431698 */
|
|
|
|
undefined4 * __cdecl FUN_00431698(int param_1)
|
|
|
|
{
|
|
undefined4 *puVar1;
|
|
|
|
puVar1 = (undefined4 *)FUN_00402298(0x218);
|
|
if (puVar1 == (undefined4 *)0x0) {
|
|
puVar1 = (undefined4 *)0x0;
|
|
}
|
|
else {
|
|
puVar1 = FUN_004314bc(puVar1,param_1,&DAT_004e7068);
|
|
}
|
|
return puVar1;
|
|
}
|
|
|
|
|
|
|
|
/* @004316c8 file=? name=FUN_004316c8 */
|
|
|
|
void __cdecl FUN_004316c8(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e7418;
|
|
FUN_00431058(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004316f4 file=? name=FUN_004316f4 */
|
|
|
|
undefined4 __cdecl
|
|
FUN_004316f4(int param_1,char *param_2,int param_3,undefined4 param_4,float *param_5)
|
|
|
|
{
|
|
char *pcVar1;
|
|
float *pfVar2;
|
|
int iVar3;
|
|
undefined4 uVar4;
|
|
char *pcVar5;
|
|
undefined4 *puVar6;
|
|
char *pcVar7;
|
|
float *pfVar8;
|
|
bool bVar9;
|
|
char *local_c;
|
|
char *local_8;
|
|
|
|
pfVar2 = param_5;
|
|
if (param_5 == (float *)0x0) {
|
|
pfVar2 = (float *)FUN_00402298(0x18);
|
|
}
|
|
iVar3 = FUN_00404118(param_3,s_gamedata_004e715d,s_DestroyedYTranslation_004e7166,pfVar2);
|
|
if (iVar3 == 0) {
|
|
pfVar2[4] = 0.0;
|
|
*pfVar2 = 0.0;
|
|
}
|
|
else {
|
|
pfVar2[4] = 1.4013e-45;
|
|
}
|
|
iVar3 = FUN_00404190(param_3,s_gamedata_004e717c,s_StoppingCollisionVolume_004e7185,pfVar2 + 5);
|
|
if (iVar3 == 0) {
|
|
pfVar2[5] = 0.0;
|
|
}
|
|
iVar3 = FUN_00404118(param_3,s_gamedata_004e719d,s_TimeDelay_004e71a6,pfVar2 + 1);
|
|
if (iVar3 == 0) {
|
|
FUN_004dbb24(&DAT_00524e20,param_2,(char *)0x0);
|
|
FUN_004dbb24(&DAT_00524e20,s_TimeDelay_is_missing_004e71b0,(char *)0x0);
|
|
FUN_004d9c38(&DAT_00524e20);
|
|
FUN_004036a0(1);
|
|
}
|
|
local_8 = s_Unspecified_004e71c7;
|
|
iVar3 = FUN_00404088(param_3,s_gamedata_004e71d3,s_ExplosionModelFile_004e71dc,&local_8);
|
|
if (iVar3 == 0) {
|
|
FUN_004dbb24(&DAT_00524e20,param_2,(char *)0x0);
|
|
FUN_004dbb24(&DAT_00524e20,s_missing_ExplosionModelFile__004e71ef,(char *)0x0);
|
|
uVar4 = 0;
|
|
}
|
|
else {
|
|
pfVar8 = (float *)0x0;
|
|
pcVar7 = s_Unspecified_004e720d;
|
|
pcVar5 = local_8;
|
|
do {
|
|
bVar9 = *pcVar5 == *pcVar7;
|
|
if (!bVar9) break;
|
|
if (*pcVar5 == '\0') goto LAB_0043183e;
|
|
pcVar1 = pcVar5 + 1;
|
|
bVar9 = *pcVar1 == pcVar7[1];
|
|
if (!bVar9) break;
|
|
pcVar5 = pcVar5 + 2;
|
|
pcVar7 = pcVar7 + 2;
|
|
bVar9 = *pcVar1 == '\0';
|
|
} while (!bVar9);
|
|
if (!bVar9) {
|
|
pfVar8 = (float *)FUN_00406ff8(param_1,local_8,1,-1);
|
|
}
|
|
LAB_0043183e:
|
|
pcVar5 = local_8;
|
|
if (pfVar8 == (float *)0x0) {
|
|
FUN_004dbb24(&DAT_00524e20,param_2,(char *)0x0);
|
|
FUN_004dbb24(&DAT_00524e20,s_cannot_find_004e7219,(char *)0x0);
|
|
FUN_004dbb24(&DAT_00524e20,pcVar5,(char *)0x0);
|
|
FUN_004dbb24(&DAT_00524e20,s_in_resource_file__004e7227,(char *)0x0);
|
|
uVar4 = 0;
|
|
}
|
|
else {
|
|
if (pfVar8 != (float *)0x0) {
|
|
pfVar2[2] = *pfVar8;
|
|
}
|
|
local_c = s_Unspecified_004e723b;
|
|
FUN_00404088(param_3,s_gamedata_004e7247,s_CrunchExplosionModelFile_004e7250,&local_c);
|
|
pfVar2[3] = -NAN;
|
|
pcVar7 = s_Unspecified_004e7269;
|
|
pcVar5 = local_c;
|
|
do {
|
|
if (*pcVar5 != *pcVar7) goto LAB_004318eb;
|
|
bVar9 = true;
|
|
if (*pcVar5 == '\0') break;
|
|
pcVar1 = pcVar5 + 1;
|
|
if (*pcVar1 != pcVar7[1]) goto LAB_004318eb;
|
|
pcVar5 = pcVar5 + 2;
|
|
pcVar7 = pcVar7 + 2;
|
|
bVar9 = *pcVar1 == '\0';
|
|
} while (!bVar9);
|
|
if (!bVar9) {
|
|
LAB_004318eb:
|
|
pfVar8 = (float *)FUN_00406ff8(param_1,local_c,1,-1);
|
|
pcVar5 = local_c;
|
|
if (pfVar8 == (float *)0x0) {
|
|
FUN_004dbb24(&DAT_00524e20,param_2,(char *)0x0);
|
|
FUN_004dbb24(&DAT_00524e20,s_cannot_find_004e7275,(char *)0x0);
|
|
FUN_004dbb24(&DAT_00524e20,pcVar5,(char *)0x0);
|
|
FUN_004dbb24(&DAT_00524e20,s_in_resource_file__004e7283,(char *)0x0);
|
|
return 0;
|
|
}
|
|
pfVar2[3] = *pfVar8;
|
|
}
|
|
if (param_5 == (float *)0x0) {
|
|
puVar6 = (undefined4 *)FUN_00406db4(param_1,param_2,0xf,1,0,pfVar2,0x18,-1);
|
|
FUN_004022d0((int *)pfVar2);
|
|
uVar4 = *puVar6;
|
|
}
|
|
else {
|
|
uVar4 = 0;
|
|
}
|
|
}
|
|
}
|
|
return uVar4;
|
|
}
|
|
|
|
|
|
|
|
/* @00431998 file=? name=FUN_00431998 */
|
|
|
|
undefined4 FUN_00431998(int param_1,char *param_2,int param_3,undefined4 *param_4)
|
|
|
|
{
|
|
int *piVar1;
|
|
int iVar2;
|
|
undefined4 uVar3;
|
|
char *pcVar4;
|
|
uint *puVar5;
|
|
int *piVar6;
|
|
undefined4 *puVar7;
|
|
int aiStack_38 [6];
|
|
int *piStack_20;
|
|
undefined4 *puStack_1c;
|
|
int *piStack_18;
|
|
int *piStack_14;
|
|
int iStack_10;
|
|
uint *puStack_c;
|
|
char *pcStack_8;
|
|
|
|
iVar2 = FUN_00404088(param_3,s_gamedata_004e7297,s_DamageZones_004e72a0,&pcStack_8);
|
|
if (iVar2 == 0) {
|
|
FUN_004dbb24((int *)&DAT_00524e68,param_2,(char *)0x0);
|
|
FUN_004dbb24((int *)&DAT_00524e68,s_is_missing__dmg_file_specificati_004e72ac,(char *)0x0);
|
|
uVar3 = 0xffffffff;
|
|
}
|
|
else {
|
|
pcVar4 = FUN_004064fc((char *)*param_4,pcStack_8);
|
|
puVar5 = (uint *)FUN_00402298(0x10);
|
|
if (puVar5 == (uint *)0x0) {
|
|
puStack_c = (uint *)0x0;
|
|
}
|
|
else {
|
|
puStack_c = FUN_00402460(puVar5,pcVar4);
|
|
}
|
|
puStack_c[3] = puStack_c[3] + 1;
|
|
piVar6 = (int *)FUN_00402298(0x20);
|
|
if (piVar6 == (int *)0x0) {
|
|
piVar6 = (int *)0x0;
|
|
}
|
|
else {
|
|
piVar6 = FUN_00403e84(piVar6,(char *)puStack_c[2],1);
|
|
}
|
|
if ((*(byte *)(piVar6 + 7) & 2) == 0) {
|
|
iStack_10 = piVar6[3];
|
|
}
|
|
else {
|
|
iStack_10 = piVar6[4];
|
|
}
|
|
if (iStack_10 == 0) {
|
|
FUN_004dbb24((int *)&DAT_00524e68,(char *)puStack_c[2],(char *)0x0);
|
|
FUN_004dbb24((int *)&DAT_00524e68,s_is_empty_or_missing__004e72d2,(char *)0x0);
|
|
FUN_00403ecc(piVar6,3);
|
|
uVar3 = 0xffffffff;
|
|
puVar5 = puStack_c + 3;
|
|
*puVar5 = *puVar5 - 1;
|
|
if (*puVar5 == 0) {
|
|
FUN_004024d8((int *)puStack_c,3);
|
|
}
|
|
}
|
|
else {
|
|
FUN_0040328c(aiStack_38,0);
|
|
(**(code **)(aiStack_38[0] + 0x20))(aiStack_38,&iStack_10,4);
|
|
piStack_14 = FUN_0040485c((int)piVar6,(char *)0x0);
|
|
puVar7 = (undefined4 *)piStack_14[1];
|
|
puStack_1c = (undefined4 *)FUN_00402298(0x10);
|
|
if (puStack_1c == (undefined4 *)0x0) {
|
|
piStack_18 = (int *)0x0;
|
|
}
|
|
else {
|
|
piStack_18 = (int *)FUN_004023f4(puStack_1c);
|
|
}
|
|
piStack_18[3] = piStack_18[3] + 1;
|
|
for (; puVar7 != (undefined4 *)0x0; puVar7 = (undefined4 *)*puVar7) {
|
|
FUN_00402a98((int *)&piStack_20,(int *)&piStack_18,(char *)(puVar7 + 2));
|
|
piVar1 = piStack_20 + 3;
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_004024d8(piStack_20,3);
|
|
}
|
|
piStack_18[3] = piStack_18[3] + 1;
|
|
FUN_0041e590(param_3,param_2,0,piStack_18,aiStack_38,(int)piVar6,(int)param_4);
|
|
}
|
|
puVar7 = (undefined4 *)FUN_00406f3c(param_1,param_2,0x14,1,0,aiStack_38,-1);
|
|
FUN_00403ecc(piVar6,3);
|
|
if (piStack_14 != (int *)0x0) {
|
|
(**(code **)*piStack_14)(piStack_14,3);
|
|
}
|
|
uVar3 = *puVar7;
|
|
piVar6 = piStack_18 + 3;
|
|
*piVar6 = *piVar6 + -1;
|
|
if (*piVar6 == 0) {
|
|
FUN_004024d8(piStack_18,3);
|
|
}
|
|
FUN_00403310(aiStack_38,2);
|
|
puVar5 = puStack_c + 3;
|
|
*puVar5 = *puVar5 - 1;
|
|
if (*puVar5 == 0) {
|
|
FUN_004024d8((int *)puStack_c,3);
|
|
}
|
|
}
|
|
}
|
|
return uVar3;
|
|
}
|
|
|
|
|
|
|
|
/* @0043199e file=? name=FUN_0043199e */
|
|
|
|
undefined4 FUN_0043199e(void)
|
|
|
|
{
|
|
char *pcVar1;
|
|
int *piVar2;
|
|
int iVar3;
|
|
undefined4 uVar4;
|
|
char *pcVar5;
|
|
uint *puVar6;
|
|
int *piVar7;
|
|
int *piVar8;
|
|
undefined4 *puVar9;
|
|
int unaff_EBP;
|
|
|
|
pcVar1 = *(char **)(unaff_EBP + 0xc);
|
|
iVar3 = FUN_00404088(*(int *)(unaff_EBP + 0x10),s_gamedata_004e7297,s_DamageZones_004e72a0,
|
|
(undefined4 *)(unaff_EBP + -4));
|
|
if (iVar3 == 0) {
|
|
FUN_004dbb24((int *)&DAT_00524e68,pcVar1,(char *)0x0);
|
|
FUN_004dbb24((int *)&DAT_00524e68,s_is_missing__dmg_file_specificati_004e72ac,(char *)0x0);
|
|
uVar4 = 0xffffffff;
|
|
}
|
|
else {
|
|
pcVar5 = FUN_004064fc((char *)**(undefined4 **)(unaff_EBP + 0x14),*(char **)(unaff_EBP + -4));
|
|
puVar6 = (uint *)FUN_00402298(0x10);
|
|
if (puVar6 == (uint *)0x0) {
|
|
puVar6 = (uint *)0x0;
|
|
}
|
|
else {
|
|
puVar6 = FUN_00402460(puVar6,pcVar5);
|
|
}
|
|
*(uint **)(unaff_EBP + -8) = puVar6;
|
|
piVar7 = (int *)(*(int *)(unaff_EBP + -8) + 0xc);
|
|
*piVar7 = *piVar7 + 1;
|
|
piVar7 = (int *)FUN_00402298(0x20);
|
|
if (piVar7 == (int *)0x0) {
|
|
piVar7 = (int *)0x0;
|
|
}
|
|
else {
|
|
piVar7 = FUN_00403e84(piVar7,*(char **)(*(int *)(unaff_EBP + -8) + 8),1);
|
|
}
|
|
if ((*(byte *)(piVar7 + 7) & 2) == 0) {
|
|
iVar3 = piVar7[3];
|
|
}
|
|
else {
|
|
iVar3 = piVar7[4];
|
|
}
|
|
*(int *)(unaff_EBP + -0xc) = iVar3;
|
|
if (*(int *)(unaff_EBP + -0xc) == 0) {
|
|
FUN_004dbb24((int *)&DAT_00524e68,*(char **)(*(int *)(unaff_EBP + -8) + 8),(char *)0x0);
|
|
FUN_004dbb24((int *)&DAT_00524e68,s_is_empty_or_missing__004e72d2,(char *)0x0);
|
|
FUN_00403ecc(piVar7,3);
|
|
uVar4 = 0xffffffff;
|
|
piVar8 = *(int **)(unaff_EBP + -8);
|
|
piVar7 = piVar8 + 3;
|
|
*piVar7 = *piVar7 + -1;
|
|
if (*piVar7 == 0) {
|
|
FUN_004024d8(piVar8,3);
|
|
}
|
|
}
|
|
else {
|
|
FUN_0040328c((undefined4 *)(unaff_EBP + -0x34),0);
|
|
(**(code **)(*(int *)(unaff_EBP + -0x34) + 0x20))(unaff_EBP + -0x34,unaff_EBP + -0xc,4);
|
|
piVar8 = FUN_0040485c((int)piVar7,(char *)0x0);
|
|
*(int **)(unaff_EBP + -0x10) = piVar8;
|
|
puVar9 = *(undefined4 **)(*(int *)(unaff_EBP + -0x10) + 4);
|
|
iVar3 = FUN_00402298(0x10);
|
|
*(int *)(unaff_EBP + -0x18) = iVar3;
|
|
if (iVar3 == 0) {
|
|
uVar4 = *(undefined4 *)(unaff_EBP + -0x18);
|
|
}
|
|
else {
|
|
uVar4 = FUN_004023f4(*(undefined4 **)(unaff_EBP + -0x18));
|
|
}
|
|
*(undefined4 *)(unaff_EBP + -0x14) = uVar4;
|
|
piVar8 = (int *)(*(int *)(unaff_EBP + -0x14) + 0xc);
|
|
*piVar8 = *piVar8 + 1;
|
|
for (; puVar9 != (undefined4 *)0x0; puVar9 = (undefined4 *)*puVar9) {
|
|
FUN_00402a98((int *)(unaff_EBP + -0x1c),(int *)(unaff_EBP + -0x14),(char *)(puVar9 + 2));
|
|
piVar2 = *(int **)(unaff_EBP + -0x1c);
|
|
piVar8 = piVar2 + 3;
|
|
*piVar8 = *piVar8 + -1;
|
|
if (*piVar8 == 0) {
|
|
FUN_004024d8(piVar2,3);
|
|
}
|
|
iVar3 = *(int *)(unaff_EBP + 0x14);
|
|
piVar2 = *(int **)(unaff_EBP + -0x14);
|
|
piVar8 = piVar2 + 3;
|
|
*piVar8 = *piVar8 + 1;
|
|
FUN_0041e590(*(int *)(unaff_EBP + 0x10),pcVar1,0,piVar2,(int *)(unaff_EBP + -0x34),
|
|
(int)piVar7,iVar3);
|
|
}
|
|
puVar9 = (undefined4 *)
|
|
FUN_00406f3c(*(int *)(unaff_EBP + 8),pcVar1,0x14,1,0,(int *)(unaff_EBP + -0x34),-1);
|
|
FUN_00403ecc(piVar7,3);
|
|
if (*(int *)(unaff_EBP + -0x10) != 0) {
|
|
(**(code **)**(undefined4 **)(unaff_EBP + -0x10))(*(undefined4 **)(unaff_EBP + -0x10),3);
|
|
}
|
|
uVar4 = *puVar9;
|
|
piVar8 = *(int **)(unaff_EBP + -0x14);
|
|
piVar7 = piVar8 + 3;
|
|
*piVar7 = *piVar7 + -1;
|
|
if (*piVar7 == 0) {
|
|
FUN_004024d8(piVar8,3);
|
|
}
|
|
FUN_00403310((int *)(unaff_EBP + -0x34),2);
|
|
piVar8 = *(int **)(unaff_EBP + -8);
|
|
piVar7 = piVar8 + 3;
|
|
*piVar7 = *piVar7 + -1;
|
|
if (*piVar7 == 0) {
|
|
FUN_004024d8(piVar8,3);
|
|
}
|
|
}
|
|
}
|
|
return uVar4;
|
|
}
|
|
|
|
|
|
|
|
/* @00431be4 file=? name=FUN_00431be4 */
|
|
|
|
void __cdecl FUN_00431be4(int param_1,int param_2)
|
|
|
|
{
|
|
char *pcVar1;
|
|
undefined4 *puVar2;
|
|
char *pcVar3;
|
|
int iVar4;
|
|
char *pcVar5;
|
|
bool bVar6;
|
|
int local_10 [3];
|
|
|
|
if (*(int *)(param_1 + 0x220) == 0) {
|
|
puVar2 = FUN_004212b0(*(int *)(DAT_004efc94 + 0x24),s_Teams_004e72fd);
|
|
if (puVar2 != (undefined4 *)0x0) {
|
|
FUN_00421414(local_10,(int)(puVar2 + 4));
|
|
LAB_00431c58:
|
|
do {
|
|
iVar4 = (**(code **)(local_10[0] + 0x28))(local_10);
|
|
if (iVar4 == 0) goto LAB_00431c69;
|
|
pcVar3 = (char *)(iVar4 + 0x1c4);
|
|
pcVar5 = (char *)(param_1 + 0x224);
|
|
do {
|
|
if (*pcVar3 != *pcVar5) goto LAB_00431c58;
|
|
bVar6 = true;
|
|
if (*pcVar3 == '\0') break;
|
|
pcVar1 = pcVar3 + 1;
|
|
if (*pcVar1 != pcVar5[1]) goto LAB_00431c58;
|
|
pcVar3 = pcVar3 + 2;
|
|
pcVar5 = pcVar5 + 2;
|
|
bVar6 = *pcVar1 == '\0';
|
|
} while (!bVar6);
|
|
} while (!bVar6);
|
|
*(int *)(param_1 + 0x220) = iVar4;
|
|
LAB_00431c69:
|
|
FUN_00421452(local_10,2);
|
|
}
|
|
}
|
|
if (*(int *)(param_1 + 0x220) == 0) {
|
|
FUN_004dbb24(&DAT_00524e20,s_TEAM_____004e7303,(char *)0x0);
|
|
FUN_004dbb24(&DAT_00524e20,(char *)(param_1 + 0x224),(char *)0x0);
|
|
FUN_004dbb24(&DAT_00524e20,s___was_never_found__004e730c,(char *)0x0);
|
|
FUN_004d9c38(&DAT_00524e20);
|
|
FUN_004dee24(0xffffffff);
|
|
}
|
|
if (*(int *)(param_1 + 0x40) != 1) {
|
|
FUN_00431200(param_1,param_2);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00431cf0 file=? name=FUN_00431cf0 */
|
|
|
|
void __cdecl FUN_00431cf0(int param_1)
|
|
|
|
{
|
|
FUN_0041a1a4(**(int **)(param_1 + 0xc),0x4e7038);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00431d0c file=? name=FUN_00431d0c */
|
|
|
|
undefined4 * __cdecl FUN_00431d0c(undefined4 *param_1,int param_2,undefined4 param_3)
|
|
|
|
{
|
|
char *pcVar1;
|
|
int *piVar2;
|
|
char cVar3;
|
|
int iVar4;
|
|
undefined4 *puVar5;
|
|
char *pcVar6;
|
|
int iVar7;
|
|
uint *puVar8;
|
|
undefined4 uVar9;
|
|
int iVar10;
|
|
uint uVar11;
|
|
uint uVar12;
|
|
char *pcVar13;
|
|
bool bVar14;
|
|
uint **ppuVar15;
|
|
int local_70 [5];
|
|
int local_5c [5];
|
|
int local_48 [3];
|
|
int *local_3c;
|
|
int *local_38;
|
|
int *local_34;
|
|
int *local_30;
|
|
int *local_2c;
|
|
int *local_28;
|
|
uint *local_24;
|
|
uint *local_20;
|
|
char *local_1c;
|
|
uint *local_18;
|
|
uint *local_14;
|
|
uint *local_10;
|
|
char *local_c;
|
|
int local_8;
|
|
|
|
FUN_004314bc(param_1,param_2,param_3);
|
|
*param_1 = &PTR_FUN_004e73e4;
|
|
param_1[0x86] = 0;
|
|
param_1[0x88] = 0;
|
|
local_8 = *(int *)(DAT_004efc94 + 0x24);
|
|
puVar5 = FUN_004212b0(local_8,s_Teams_004e7320);
|
|
if (puVar5 != (undefined4 *)0x0) {
|
|
FUN_00421414(local_48,(int)(puVar5 + 4));
|
|
LAB_00431da3:
|
|
do {
|
|
iVar7 = (**(code **)(local_48[0] + 0x28))(local_48);
|
|
if (iVar7 == 0) goto LAB_00431db4;
|
|
pcVar6 = (char *)(iVar7 + 0x1c4);
|
|
pcVar13 = (char *)(param_2 + 0xd0);
|
|
do {
|
|
if (*pcVar6 != *pcVar13) goto LAB_00431da3;
|
|
bVar14 = true;
|
|
if (*pcVar6 == '\0') break;
|
|
pcVar1 = pcVar6 + 1;
|
|
if (*pcVar1 != pcVar13[1]) goto LAB_00431da3;
|
|
pcVar6 = pcVar6 + 2;
|
|
pcVar13 = pcVar13 + 2;
|
|
bVar14 = *pcVar1 == '\0';
|
|
} while (!bVar14);
|
|
} while (!bVar14);
|
|
param_1[0x88] = iVar7;
|
|
LAB_00431db4:
|
|
FUN_00421452(local_48,2);
|
|
}
|
|
uVar11 = 0xffffffff;
|
|
pcVar6 = (char *)(param_2 + 0xd0);
|
|
do {
|
|
pcVar13 = pcVar6;
|
|
if (uVar11 == 0) break;
|
|
uVar11 = uVar11 - 1;
|
|
pcVar13 = pcVar6 + 1;
|
|
cVar3 = *pcVar6;
|
|
pcVar6 = pcVar13;
|
|
} while (cVar3 != '\0');
|
|
uVar11 = ~uVar11;
|
|
pcVar6 = pcVar13 + -uVar11;
|
|
pcVar13 = (char *)(param_1 + 0x89);
|
|
for (uVar12 = uVar11 >> 2; uVar12 != 0; uVar12 = uVar12 - 1) {
|
|
*(undefined4 *)pcVar13 = *(undefined4 *)pcVar6;
|
|
pcVar6 = pcVar6 + 4;
|
|
pcVar13 = pcVar13 + 4;
|
|
}
|
|
for (uVar11 = uVar11 & 3; uVar11 != 0; uVar11 = uVar11 - 1) {
|
|
*pcVar13 = *pcVar6;
|
|
pcVar6 = pcVar6 + 1;
|
|
pcVar13 = pcVar13 + 1;
|
|
}
|
|
local_c = (char *)(param_2 + 0x50);
|
|
puVar8 = (uint *)FUN_00402298(0x10);
|
|
if (puVar8 == (uint *)0x0) {
|
|
local_10 = (uint *)0x0;
|
|
}
|
|
else {
|
|
local_10 = FUN_00402460(puVar8,local_c);
|
|
}
|
|
local_10[3] = local_10[3] + 1;
|
|
FUN_004323c7(local_5c,*(int *)(DAT_004efc94 + 200) + 0x50);
|
|
uVar9 = (**(code **)(local_5c[0] + 0x54))(local_5c,&local_10);
|
|
FUN_00432405(local_5c,2);
|
|
param_1[0x86] = uVar9;
|
|
puVar8 = local_10 + 3;
|
|
*puVar8 = *puVar8 - 1;
|
|
if (*puVar8 == 0) {
|
|
FUN_004024d8((int *)local_10,3);
|
|
}
|
|
if (param_1[0x86] == 0) {
|
|
puVar5 = (undefined4 *)FUN_00402298(0x2c);
|
|
if (puVar5 == (undefined4 *)0x0) {
|
|
puVar5 = (undefined4 *)0x0;
|
|
}
|
|
else {
|
|
local_1c = (char *)(param_2 + 0x50);
|
|
local_24 = (uint *)FUN_00402298(0x10);
|
|
if (local_24 == (uint *)0x0) {
|
|
local_20 = (uint *)0x0;
|
|
}
|
|
else {
|
|
local_20 = FUN_00402460(local_24,local_1c);
|
|
}
|
|
ppuVar15 = &local_20;
|
|
local_20[3] = local_20[3] + 1;
|
|
local_18 = (uint *)FUN_00402298(0x10);
|
|
if (local_18 == (uint *)0x0) {
|
|
local_14 = (uint *)0x0;
|
|
}
|
|
else {
|
|
local_14 = FUN_00402460(local_18,s_Role__MapAssigned_004e7326);
|
|
}
|
|
local_14[3] = local_14[3] + 1;
|
|
puVar5 = FUN_00429a9c(puVar5,(int *)&local_14,(int *)ppuVar15);
|
|
}
|
|
param_1[0x86] = puVar5;
|
|
puVar8 = local_20 + 3;
|
|
*puVar8 = *puVar8 - 1;
|
|
if (*puVar8 == 0) {
|
|
FUN_004024d8((int *)local_20,3);
|
|
}
|
|
puVar8 = local_14 + 3;
|
|
*puVar8 = *puVar8 - 1;
|
|
if (*puVar8 == 0) {
|
|
FUN_004024d8((int *)local_14,3);
|
|
}
|
|
iVar7 = param_1[0x86];
|
|
iVar4 = *(int *)(DAT_004efc94 + 200);
|
|
local_28 = (int *)(iVar7 + 0x24);
|
|
local_2c = (int *)*local_28;
|
|
local_2c[3] = local_2c[3] + 1;
|
|
FUN_004323c7(local_70,iVar4 + 0x50);
|
|
iVar10 = (**(code **)(local_70[0] + 0x54))(local_70,&local_2c);
|
|
FUN_00432405(local_70,2);
|
|
uVar11 = (uint)(iVar10 == 0);
|
|
local_30 = local_2c;
|
|
piVar2 = local_2c + 3;
|
|
*piVar2 = *piVar2 + -1;
|
|
if (*piVar2 == 0) {
|
|
FUN_004024d8(local_2c,3);
|
|
}
|
|
if (uVar11 != 0) {
|
|
local_34 = (int *)(iVar7 + 0x24);
|
|
local_38 = (int *)*local_34;
|
|
local_38[3] = local_38[3] + 1;
|
|
(**(code **)(*(int *)(iVar4 + 0x50) + 8))(iVar4 + 0x50,iVar7,&local_38);
|
|
local_3c = local_38;
|
|
piVar2 = local_38 + 3;
|
|
*piVar2 = *piVar2 + -1;
|
|
if (*piVar2 == 0) {
|
|
FUN_004024d8(local_38,3);
|
|
}
|
|
}
|
|
}
|
|
puVar5 = FUN_004212b0(local_8,s_Landmarks_004e7338);
|
|
(**(code **)(puVar5[4] + 4))(puVar5 + 4,param_1);
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00432020 file=? name=FUN_00432020 */
|
|
|
|
void __cdecl FUN_00432020(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e73e4;
|
|
FUN_004316c8(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @0043204c file=? name=FUN_0043204c */
|
|
|
|
undefined4 __cdecl FUN_0043204c(undefined4 *param_1)
|
|
|
|
{
|
|
char cVar1;
|
|
int iVar2;
|
|
undefined4 uVar3;
|
|
char *pcVar4;
|
|
uint uVar5;
|
|
uint uVar6;
|
|
char *pcVar7;
|
|
|
|
iVar2 = FUN_00431658(param_1);
|
|
if (iVar2 == 0) {
|
|
uVar3 = 0;
|
|
}
|
|
else {
|
|
*param_1 = 0x110;
|
|
param_1[7] = 0x56;
|
|
pcVar4 = FUN_004d4d1c((char *)0x0,&DAT_004e7342);
|
|
if (pcVar4 == (char *)0x0) {
|
|
FUN_004dbb24((int *)&DAT_00524e68,s_teamName_missing__004e7344,(char *)0x0);
|
|
uVar3 = 0;
|
|
}
|
|
else {
|
|
uVar5 = 0xffffffff;
|
|
do {
|
|
pcVar7 = pcVar4;
|
|
if (uVar5 == 0) break;
|
|
uVar5 = uVar5 - 1;
|
|
pcVar7 = pcVar4 + 1;
|
|
cVar1 = *pcVar4;
|
|
pcVar4 = pcVar7;
|
|
} while (cVar1 != '\0');
|
|
uVar5 = ~uVar5;
|
|
pcVar4 = pcVar7 + -uVar5;
|
|
pcVar7 = (char *)(param_1 + 0x34);
|
|
for (uVar6 = uVar5 >> 2; uVar6 != 0; uVar6 = uVar6 - 1) {
|
|
*(undefined4 *)pcVar7 = *(undefined4 *)pcVar4;
|
|
pcVar4 = pcVar4 + 4;
|
|
pcVar7 = pcVar7 + 4;
|
|
}
|
|
for (uVar5 = uVar5 & 3; uVar5 != 0; uVar5 = uVar5 - 1) {
|
|
*pcVar7 = *pcVar4;
|
|
pcVar4 = pcVar4 + 1;
|
|
pcVar7 = pcVar7 + 1;
|
|
}
|
|
pcVar4 = FUN_004d4d1c((char *)0x0,&DAT_004e7357);
|
|
if (pcVar4 == (char *)0x0) {
|
|
FUN_004dbb24((int *)&DAT_00524e68,s_roleName_missing__004e7359,(char *)0x0);
|
|
uVar3 = 0;
|
|
}
|
|
else {
|
|
uVar5 = 0xffffffff;
|
|
do {
|
|
pcVar7 = pcVar4;
|
|
if (uVar5 == 0) break;
|
|
uVar5 = uVar5 - 1;
|
|
pcVar7 = pcVar4 + 1;
|
|
cVar1 = *pcVar4;
|
|
pcVar4 = pcVar7;
|
|
} while (cVar1 != '\0');
|
|
uVar5 = ~uVar5;
|
|
pcVar4 = pcVar7 + -uVar5;
|
|
pcVar7 = (char *)(param_1 + 0x14);
|
|
for (uVar6 = uVar5 >> 2; uVar6 != 0; uVar6 = uVar6 - 1) {
|
|
*(undefined4 *)pcVar7 = *(undefined4 *)pcVar4;
|
|
pcVar4 = pcVar4 + 4;
|
|
pcVar7 = pcVar7 + 4;
|
|
}
|
|
for (uVar5 = uVar5 & 3; uVar5 != 0; uVar5 = uVar5 - 1) {
|
|
*pcVar7 = *pcVar4;
|
|
pcVar4 = pcVar4 + 1;
|
|
pcVar7 = pcVar7 + 1;
|
|
}
|
|
pcVar4 = FUN_004d4d1c((char *)0x0,&DAT_004e736c);
|
|
if (pcVar4 == (char *)0x0) {
|
|
FUN_004dbb24((int *)&DAT_00524e68,s_Landmark_Name_missing__004e736e,(char *)0x0);
|
|
uVar3 = 0;
|
|
}
|
|
else {
|
|
uVar5 = 0xffffffff;
|
|
do {
|
|
pcVar7 = pcVar4;
|
|
if (uVar5 == 0) break;
|
|
uVar5 = uVar5 - 1;
|
|
pcVar7 = pcVar4 + 1;
|
|
cVar1 = *pcVar4;
|
|
pcVar4 = pcVar7;
|
|
} while (cVar1 != '\0');
|
|
uVar5 = ~uVar5;
|
|
pcVar4 = pcVar7 + -uVar5;
|
|
pcVar7 = (char *)(param_1 + 0x24);
|
|
for (uVar6 = uVar5 >> 2; uVar6 != 0; uVar6 = uVar6 - 1) {
|
|
*(undefined4 *)pcVar7 = *(undefined4 *)pcVar4;
|
|
pcVar4 = pcVar4 + 4;
|
|
pcVar7 = pcVar7 + 4;
|
|
}
|
|
uVar3 = 1;
|
|
for (uVar5 = uVar5 & 3; uVar5 != 0; uVar5 = uVar5 - 1) {
|
|
*pcVar7 = *pcVar4;
|
|
pcVar4 = pcVar4 + 1;
|
|
pcVar7 = pcVar7 + 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return uVar3;
|
|
}
|
|
|
|
|
|
|
|
/* @00432190 file=? name=FUN_00432190 */
|
|
|
|
undefined4 * __cdecl FUN_00432190(int param_1)
|
|
|
|
{
|
|
undefined4 *puVar1;
|
|
|
|
puVar1 = (undefined4 *)FUN_00402298(0x264);
|
|
if (puVar1 == (undefined4 *)0x0) {
|
|
puVar1 = (undefined4 *)0x0;
|
|
}
|
|
else {
|
|
puVar1 = FUN_00431d0c(puVar1,param_1,&DAT_004e70f4);
|
|
}
|
|
return puVar1;
|
|
}
|
|
|
|
|
|
|
|
/* @004321c0 file=? name=FUN_004321c0 */
|
|
|
|
undefined4 __cdecl
|
|
FUN_004321c0(int param_1,char *param_2,int param_3,undefined4 param_4,float *param_5)
|
|
|
|
{
|
|
int *piVar1;
|
|
undefined4 *puVar2;
|
|
undefined4 uVar3;
|
|
|
|
FUN_004316f4(param_1,param_2,param_3,param_4,param_5);
|
|
if (param_5 == (float *)0x0) {
|
|
piVar1 = (int *)FUN_00402298(0x18);
|
|
puVar2 = (undefined4 *)FUN_00406db4(param_1,param_2,0xf,1,0,piVar1,0x18,-1);
|
|
FUN_004022d0(piVar1);
|
|
uVar3 = *puVar2;
|
|
}
|
|
else {
|
|
uVar3 = 0;
|
|
}
|
|
return uVar3;
|
|
}
|
|
|
|
|
|
|
|
/* @00432224 file=? name=FUN_00432224 */
|
|
|
|
void __cdecl FUN_00432224(int param_1)
|
|
|
|
{
|
|
FUN_0041a1a4(**(int **)(param_1 + 0xc),0x4e70c4);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004323a8 file=? name=FUN_004323a8 */
|
|
|
|
undefined4 * __cdecl FUN_004323a8(undefined4 *param_1,int param_2)
|
|
|
|
{
|
|
FUN_004188dc(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e7388;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @004323c7 file=? name=FUN_004323c7 */
|
|
|
|
undefined4 * __cdecl FUN_004323c7(undefined4 *param_1,int param_2)
|
|
|
|
{
|
|
FUN_004188dc(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e7388;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @004323e6 file=? name=FUN_004323e6 */
|
|
|
|
undefined4 * __cdecl FUN_004323e6(undefined4 *param_1,int param_2)
|
|
|
|
{
|
|
FUN_00418904(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e7388;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00432405 file=? name=FUN_00432405 */
|
|
|
|
void __cdecl FUN_00432405(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e7388;
|
|
FUN_00418930(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00432450 file=? name=FUN_00432450 */
|
|
|
|
undefined4 * __cdecl FUN_00432450(undefined4 *param_1,int param_2,undefined4 param_3)
|
|
|
|
{
|
|
int *piVar1;
|
|
undefined4 uVar2;
|
|
undefined4 *puVar3;
|
|
int iVar4;
|
|
undefined4 local_1c [2];
|
|
int *local_14;
|
|
undefined4 *local_c;
|
|
int local_8;
|
|
|
|
FUN_00430ef0(param_1,param_2,param_3);
|
|
*param_1 = &PTR_FUN_004e7538;
|
|
param_1[10] = param_1[10] | 0x10;
|
|
param_1[7] = PTR_FUN_004e7490;
|
|
param_1[8] = DAT_004e7494;
|
|
param_1[9] = DAT_004e7498;
|
|
local_8 = FUN_00407064(*(int *)(DAT_004efc94 + 0x68),param_1[0x6f],0x11);
|
|
iVar4 = *(int *)(local_8 + 4);
|
|
*(int *)(local_8 + 4) = *(int *)(local_8 + 4) + 1;
|
|
if (iVar4 == 0) {
|
|
FUN_00406cd0(local_8);
|
|
}
|
|
FUN_004030dc(local_1c,*(undefined4 *)(local_8 + 0x3c),*(undefined4 *)(local_8 + 0x40),0);
|
|
iVar4 = *local_14;
|
|
param_1[0x49] = iVar4;
|
|
local_14 = local_14 + 1;
|
|
uVar2 = FUN_004022b0(iVar4 << 2);
|
|
param_1[0x4a] = uVar2;
|
|
for (iVar4 = 0; piVar1 = local_14, iVar4 < (int)param_1[0x49]; iVar4 = iVar4 + 1) {
|
|
local_c = (undefined4 *)FUN_00402298(0x134);
|
|
if (local_c == (undefined4 *)0x0) {
|
|
puVar3 = (undefined4 *)0x0;
|
|
}
|
|
else {
|
|
puVar3 = FUN_00432d2c(local_c,(int)param_1,iVar4,(char *)piVar1);
|
|
}
|
|
*(undefined4 **)(param_1[0x4a] + iVar4 * 4) = puVar3;
|
|
local_14 = (int *)((int)local_14 + piVar1[9]);
|
|
}
|
|
*(int *)(local_8 + 4) = *(int *)(local_8 + 4) + -1;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00432558 file=? name=FUN_00432558 */
|
|
|
|
undefined4 * __cdecl FUN_00432558(int param_1)
|
|
|
|
{
|
|
undefined4 *puVar1;
|
|
|
|
puVar1 = (undefined4 *)FUN_00402298(0x1c8);
|
|
if (puVar1 == (undefined4 *)0x0) {
|
|
puVar1 = (undefined4 *)0x0;
|
|
}
|
|
else {
|
|
puVar1 = FUN_00432450(puVar1,param_1,&DAT_004e747c);
|
|
}
|
|
return puVar1;
|
|
}
|
|
|
|
|
|
|
|
/* @00432588 file=? name=FUN_00432588 */
|
|
|
|
undefined4 __cdecl FUN_00432588(undefined4 *param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
|
|
iVar1 = FUN_00430ff0(param_1);
|
|
if (iVar1 == 0) {
|
|
return 0;
|
|
}
|
|
param_1[7] = 0x5f;
|
|
param_1[0xb] = 0xb00;
|
|
return 1;
|
|
}
|
|
|
|
|
|
|
|
/* @004325c0 file=? name=FUN_004325c0 */
|
|
|
|
void __cdecl FUN_004325c0(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e7538;
|
|
FUN_00431058(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004325ec file=? name=FUN_004325ec */
|
|
|
|
undefined4 __cdecl FUN_004325ec(int param_1,char *param_2,int param_3,undefined4 *param_4)
|
|
|
|
{
|
|
char *pcVar1;
|
|
char cVar2;
|
|
int iVar3;
|
|
undefined4 uVar4;
|
|
int *piVar5;
|
|
int *piVar6;
|
|
char *pcVar7;
|
|
undefined4 *puVar8;
|
|
uint uVar9;
|
|
uint uVar10;
|
|
char *pcVar11;
|
|
bool bVar12;
|
|
byte bVar13;
|
|
char local_54 [32];
|
|
int local_34 [2];
|
|
int *local_2c;
|
|
char *local_24;
|
|
int *local_20;
|
|
char *local_1c;
|
|
int *local_18;
|
|
uint local_14;
|
|
int *local_10;
|
|
int *local_c;
|
|
char *local_8;
|
|
|
|
iVar3 = FUN_00404088(param_3,s_gamedata_004e74a6,s_Subsystems_004e74af,&local_8);
|
|
if (iVar3 == 0) {
|
|
FUN_004dbb24((int *)&DAT_00524e68,param_2,(char *)0x0);
|
|
FUN_004dbb24((int *)&DAT_00524e68,s_is_missing__sub_file_specificati_004e74ba,(char *)0x0);
|
|
uVar4 = 0xffffffff;
|
|
}
|
|
else {
|
|
local_c = (int *)FUN_004064fc((char *)*param_4,local_8);
|
|
piVar5 = (int *)FUN_00402298(0x20);
|
|
if (piVar5 == (int *)0x0) {
|
|
piVar5 = (int *)0x0;
|
|
}
|
|
else {
|
|
piVar5 = FUN_00403e84(piVar5,(char *)local_c,1);
|
|
}
|
|
local_10 = FUN_0040485c((int)piVar5,(char *)0x0);
|
|
if ((*(byte *)(piVar5 + 7) & 2) == 0) {
|
|
iVar3 = piVar5[3];
|
|
}
|
|
else {
|
|
iVar3 = piVar5[4];
|
|
}
|
|
if (iVar3 == 0) {
|
|
FUN_004dbb24((int *)&DAT_00524e68,(char *)local_c,(char *)0x0);
|
|
FUN_004dbb24((int *)&DAT_00524e68,s_empty_of_missing__004e74e0,(char *)0x0);
|
|
LAB_004326c3:
|
|
FUN_004022d0(local_c);
|
|
FUN_00403ecc(piVar5,3);
|
|
if (local_10 != (int *)0x0) {
|
|
(**(code **)*local_10)(local_10,3);
|
|
}
|
|
uVar4 = 0xffffffff;
|
|
}
|
|
else {
|
|
local_14 = iVar3 * 0x48 + 4;
|
|
local_18 = (int *)FUN_004022b0(local_14);
|
|
FUN_004030dc(local_34,local_18,local_14,0);
|
|
*local_2c = iVar3;
|
|
local_2c = local_2c + 1;
|
|
for (puVar8 = (undefined4 *)local_10[1]; puVar8 != (undefined4 *)0x0;
|
|
puVar8 = (undefined4 *)*puVar8) {
|
|
uVar9 = 0xffffffff;
|
|
pcVar7 = (char *)(puVar8 + 2);
|
|
do {
|
|
pcVar11 = pcVar7;
|
|
if (uVar9 == 0) break;
|
|
uVar9 = uVar9 - 1;
|
|
pcVar11 = pcVar7 + 1;
|
|
cVar2 = *pcVar7;
|
|
pcVar7 = pcVar11;
|
|
} while (cVar2 != '\0');
|
|
uVar9 = ~uVar9;
|
|
pcVar7 = pcVar11 + -uVar9;
|
|
pcVar11 = local_54;
|
|
for (uVar10 = uVar9 >> 2; uVar10 != 0; uVar10 = uVar10 - 1) {
|
|
*(undefined4 *)pcVar11 = *(undefined4 *)pcVar7;
|
|
pcVar7 = pcVar7 + 4;
|
|
pcVar11 = pcVar11 + 4;
|
|
}
|
|
for (uVar9 = uVar9 & 3; uVar9 != 0; uVar9 = uVar9 - 1) {
|
|
*pcVar11 = *pcVar7;
|
|
pcVar7 = pcVar7 + 1;
|
|
pcVar11 = pcVar11 + 1;
|
|
}
|
|
iVar3 = FUN_00404088((int)piVar5,local_54,&DAT_004e74f4,&local_1c);
|
|
if (iVar3 == 0) {
|
|
bVar13 = 0x3a;
|
|
FUN_004dbb24((int *)&DAT_00524e68,param_2,(char *)0x0);
|
|
piVar6 = FUN_004db92c((int *)&DAT_00524e68,bVar13);
|
|
FUN_004dbb24(piVar6,local_54,(char *)0x0);
|
|
FUN_004dbb24(piVar6,s_missing_Type__004e74f9,(char *)0x0);
|
|
LAB_004327c2:
|
|
FUN_004022e8(local_18);
|
|
goto LAB_004326c3;
|
|
}
|
|
pcVar11 = s_DoorClassID_004e7509;
|
|
local_20 = local_2c;
|
|
pcVar7 = local_1c;
|
|
do {
|
|
if (*pcVar7 != *pcVar11) goto LAB_00432820;
|
|
bVar12 = true;
|
|
if (*pcVar7 == '\0') break;
|
|
pcVar1 = pcVar7 + 1;
|
|
if (*pcVar1 != pcVar11[1]) goto LAB_00432820;
|
|
pcVar7 = pcVar7 + 2;
|
|
pcVar11 = pcVar11 + 2;
|
|
bVar12 = *pcVar1 == '\0';
|
|
} while (!bVar12);
|
|
if (!bVar12) {
|
|
LAB_00432820:
|
|
local_24 = local_1c;
|
|
bVar13 = 0x3a;
|
|
FUN_004dbb24((int *)&DAT_00524e68,param_2,(char *)0x0);
|
|
piVar6 = FUN_004db92c((int *)&DAT_00524e68,bVar13);
|
|
FUN_004dbb24(piVar6,local_54,(char *)0x0);
|
|
FUN_004dbb24(piVar6,s_has_an_unknown_component_type_of_004e7515,(char *)0x0);
|
|
FUN_004dbb24(piVar6,local_24,(char *)0x0);
|
|
FUN_004d9c38(piVar6);
|
|
goto LAB_004327c2;
|
|
}
|
|
iVar3 = FUN_00432fa8(param_3,param_2,local_54,(char *)local_2c,(int)piVar5,(int)param_4,
|
|
param_1);
|
|
if (iVar3 == -1) goto LAB_004327c2;
|
|
local_2c = (int *)((int)local_2c + local_20[9]);
|
|
}
|
|
puVar8 = (undefined4 *)FUN_00406f3c(param_1,param_2,0x11,1,0,local_34,-1);
|
|
if (puVar8 == (undefined4 *)0x0) {
|
|
uVar4 = 0xffffffff;
|
|
}
|
|
else {
|
|
uVar4 = *puVar8;
|
|
}
|
|
FUN_004022d0(local_c);
|
|
FUN_00403ecc(piVar5,3);
|
|
if (local_10 != (int *)0x0) {
|
|
(**(code **)*local_10)(local_10,3);
|
|
}
|
|
FUN_004022e8(local_18);
|
|
}
|
|
}
|
|
return uVar4;
|
|
}
|
|
|
|
|
|
|
|
/* @004329d4 file=? name=FUN_004329d4 */
|
|
|
|
void __cdecl FUN_004329d4(int param_1,undefined4 *param_2,undefined2 param_3)
|
|
|
|
{
|
|
FUN_0041c500(param_1,param_2,param_3);
|
|
param_2[4] = *(undefined4 *)(param_1 + 0xe4);
|
|
*param_2 = 0x14;
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00432a04 file=? name=FUN_00432a04 */
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
void __cdecl FUN_00432a04(int param_1,float param_2)
|
|
|
|
{
|
|
float *pfVar1;
|
|
int unaff_ESI;
|
|
float local_8;
|
|
|
|
if (param_2 <= _DAT_00432c10) {
|
|
*(float *)(param_1 + 0x11c) = *(float *)(param_1 + 0x11c) - param_2;
|
|
switch(*(undefined4 *)(param_1 + 0x40)) {
|
|
case 0:
|
|
*(undefined4 *)(param_1 + 0x11c) = *(undefined4 *)(param_1 + 0x120);
|
|
case 3:
|
|
while (unaff_ESI = 3, *(float *)(param_1 + 0x11c) <= _DAT_00432c14) {
|
|
*(float *)(param_1 + 0x11c) = *(float *)(param_1 + 0x124) + *(float *)(param_1 + 0x11c);
|
|
switchD_00432a3d_caseD_4:
|
|
unaff_ESI = 4;
|
|
if (_DAT_00432c14 < *(float *)(param_1 + 0x11c)) {
|
|
local_8 = 0.0;
|
|
FUN_00408440((undefined4 *)(param_1 + 0xf8),&DAT_004e0f74);
|
|
goto switchD_00432a3d_default;
|
|
}
|
|
*(float *)(param_1 + 0x11c) = *(float *)(param_1 + 0x120) + *(float *)(param_1 + 0x11c);
|
|
switchD_00432a3d_caseD_1:
|
|
unaff_ESI = 1;
|
|
if (_DAT_00432c14 < *(float *)(param_1 + 0x11c)) {
|
|
local_8 = _DAT_00432c10 - *(float *)(param_1 + 0x11c) / *(float *)(param_1 + 0x120);
|
|
pfVar1 = (float *)(param_1 + 0xf8);
|
|
FUN_00408644(pfVar1,(float *)(param_1 + 0x110),(float *)(*(int *)(param_1 + 0xd0) + 0x100)
|
|
);
|
|
FUN_004086f8(pfVar1,pfVar1,*(float *)(param_1 + 0x120));
|
|
goto switchD_00432a3d_default;
|
|
}
|
|
*(float *)(param_1 + 0x11c) = *(float *)(param_1 + 0x124) + *(float *)(param_1 + 0x11c);
|
|
switchD_00432a3d_caseD_2:
|
|
unaff_ESI = 2;
|
|
if (_DAT_00432c14 < *(float *)(param_1 + 0x11c)) {
|
|
local_8 = 1.0;
|
|
FUN_00408440((undefined4 *)(param_1 + 0xf8),&DAT_004e0f74);
|
|
goto switchD_00432a3d_default;
|
|
}
|
|
*(float *)(param_1 + 0x11c) = *(float *)(param_1 + 0x120) + *(float *)(param_1 + 0x11c);
|
|
}
|
|
local_8 = *(float *)(param_1 + 0x11c) / *(float *)(param_1 + 0x120);
|
|
pfVar1 = (float *)(param_1 + 0xf8);
|
|
FUN_00408644(pfVar1,(float *)(*(int *)(param_1 + 0xd0) + 0x100),(float *)(param_1 + 0x110));
|
|
FUN_004086f8(pfVar1,pfVar1,*(float *)(param_1 + 0x120));
|
|
default:
|
|
switchD_00432a3d_default:
|
|
FUN_00432c18(param_1,local_8);
|
|
FUN_0041bbd8(param_1 + 0x2c,unaff_ESI);
|
|
break;
|
|
case 1:
|
|
goto switchD_00432a3d_caseD_1;
|
|
case 2:
|
|
goto switchD_00432a3d_caseD_2;
|
|
case 4:
|
|
goto switchD_00432a3d_caseD_4;
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00432c18 file=? name=FUN_00432c18 */
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
void __cdecl FUN_00432c18(int param_1,float param_2)
|
|
|
|
{
|
|
float *pfVar1;
|
|
float *pfVar2;
|
|
float local_18;
|
|
float local_14;
|
|
float local_10;
|
|
float local_c;
|
|
float local_8;
|
|
|
|
if (((*(int *)(param_1 + 0x40) != *(int *)(param_1 + 0x3c)) &&
|
|
((*(uint *)(*(int *)(param_1 + 0xd0) + 0x28) & 0xc) == 0)) &&
|
|
((*(byte *)(*(int *)(param_1 + 0xd0) + 0x29) & 1) != 0)) {
|
|
*(ushort *)(param_1 + 0x18) = *(ushort *)(param_1 + 0x18) | 1;
|
|
}
|
|
if (param_2 != *(float *)(param_1 + 0xe4)) {
|
|
*(float *)(param_1 + 0xe4) = param_2;
|
|
local_8 = *(float *)(param_1 + 0xe4);
|
|
FUN_00408848((float *)(param_1 + 0xec),(float *)&DAT_004e0f80,_DAT_00432d28 - local_8,
|
|
(float *)(param_1 + 0x104),local_8);
|
|
local_c = *(float *)(param_1 + 0xe4);
|
|
FUN_00408848(&local_18,(float *)(*(int *)(param_1 + 0xd0) + 0x100),_DAT_00432d28 - local_c,
|
|
(float *)(param_1 + 0x110),local_c);
|
|
pfVar2 = *(float **)(param_1 + 0x130);
|
|
for (pfVar1 = *(float **)(param_1 + 300); pfVar1 != (float *)0x0; pfVar1 = (float *)pfVar1[10])
|
|
{
|
|
*pfVar2 = *pfVar1 + local_18;
|
|
pfVar2[1] = pfVar1[1] + local_18;
|
|
pfVar2[2] = pfVar1[2] + local_14;
|
|
pfVar2[3] = pfVar1[3] + local_14;
|
|
pfVar2[4] = pfVar1[4] + local_10;
|
|
pfVar2[5] = pfVar1[5] + local_10;
|
|
pfVar2 = (float *)pfVar2[10];
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00432d2c file=? name=FUN_00432d2c */
|
|
|
|
undefined4 * __cdecl FUN_00432d2c(undefined4 *param_1,int param_2,undefined4 param_3,char *param_4)
|
|
|
|
{
|
|
undefined4 uVar1;
|
|
undefined4 *puVar2;
|
|
int iVar3;
|
|
undefined4 local_9c [15];
|
|
undefined4 local_60 [15];
|
|
float local_24;
|
|
undefined4 local_20;
|
|
undefined4 local_1c;
|
|
undefined4 local_18;
|
|
undefined4 local_14;
|
|
undefined4 local_10;
|
|
undefined4 local_c;
|
|
int local_8;
|
|
|
|
FUN_0041c52c(param_1,param_2,param_3,param_4,&DAT_004e756c);
|
|
*param_1 = &PTR_FUN_004e76cc;
|
|
FUN_00408440(param_1 + 0x41,(undefined4 *)(param_4 + 0x30));
|
|
param_1[0x48] = *(undefined4 *)(param_4 + 0x3c);
|
|
param_1[0x49] = *(undefined4 *)(param_4 + 0x40);
|
|
param_1[0x47] = 0;
|
|
FUN_00408440(param_1 + 0x3b,&DAT_004e0f80);
|
|
param_1[7] = PTR_FUN_004e75f4;
|
|
param_1[8] = DAT_004e75f8;
|
|
param_1[9] = DAT_004e75fc;
|
|
FUN_0041bbd8((int)(param_1 + 0xb),0);
|
|
param_1[0x4a] = 0;
|
|
param_1[0x4b] = 0;
|
|
param_1[0x4c] = 0;
|
|
param_1[0x39] = 0xbf800000;
|
|
FUN_00408b98((float *)(param_1 + 0x44),(float *)(param_1 + 0x41),(float *)(param_2 + 0xd0));
|
|
local_24 = *(float *)(param_2 + 0x100);
|
|
local_20 = *(undefined4 *)(param_2 + 0x104);
|
|
local_1c = *(undefined4 *)(param_2 + 0x108);
|
|
local_18 = *(undefined4 *)(param_2 + 0x10c);
|
|
local_14 = *(undefined4 *)(param_2 + 0x110);
|
|
local_10 = *(undefined4 *)(param_2 + 0x114);
|
|
local_c = *(undefined4 *)(param_2 + 0x118);
|
|
FUN_00408440(&local_24,&DAT_004e0f80);
|
|
local_8 = FUN_00406fd4(*(int *)(DAT_004efc94 + 0x68),*(int *)(param_4 + 0x44));
|
|
iVar3 = *(int *)(local_8 + 4);
|
|
*(int *)(local_8 + 4) = *(int *)(local_8 + 4) + 1;
|
|
if (iVar3 == 0) {
|
|
FUN_00406cd0(local_8);
|
|
}
|
|
puVar2 = *(undefined4 **)(local_8 + 0x3c);
|
|
param_1[0x4a] = *(uint *)(local_8 + 0x40) / 0x3c;
|
|
for (iVar3 = 0; iVar3 < (int)param_1[0x4a]; iVar3 = iVar3 + 1) {
|
|
FUN_0040f33c(local_60,puVar2,(float *)(param_2 + 0x100));
|
|
FUN_0040f33c(local_9c,puVar2,&local_24);
|
|
uVar1 = FUN_0040eed8((int)local_9c,param_1,param_1[0x4b]);
|
|
param_1[0x4b] = uVar1;
|
|
uVar1 = FUN_0040eed8((int)local_60,param_1,param_1[0x4c]);
|
|
param_1[0x4c] = uVar1;
|
|
puVar2 = puVar2 + 0xf;
|
|
}
|
|
*(int *)(local_8 + 4) = *(int *)(local_8 + 4) + -1;
|
|
FUN_00432c18((int)param_1,0.0);
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00432f34 file=? name=FUN_00432f34 */
|
|
|
|
void __cdecl FUN_00432f34(int *param_1,byte param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
int iVar2;
|
|
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e76cc;
|
|
iVar1 = param_1[0x4b];
|
|
while (iVar2 = iVar1, iVar2 != 0) {
|
|
iVar1 = *(int *)(iVar2 + 0x28);
|
|
if (iVar2 != 0) {
|
|
(*(code *)**(undefined4 **)(iVar2 + 0x18))(iVar2,3);
|
|
}
|
|
}
|
|
iVar1 = param_1[0x4c];
|
|
while (iVar2 = iVar1, iVar2 != 0) {
|
|
iVar1 = *(int *)(iVar2 + 0x28);
|
|
if (iVar2 != 0) {
|
|
(*(code *)**(undefined4 **)(iVar2 + 0x18))(iVar2,3);
|
|
}
|
|
}
|
|
FUN_0041c648(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00432fa8 file=? name=FUN_00432fa8 */
|
|
|
|
undefined4 __cdecl
|
|
FUN_00432fa8(int param_1,char *param_2,char *param_3,char *param_4,int param_5,int param_6,
|
|
int param_7)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined4 uVar2;
|
|
char *local_c;
|
|
undefined4 local_8;
|
|
|
|
iVar1 = FUN_0041c684(param_1,param_2,param_3,param_4,param_5,param_6);
|
|
if (iVar1 == 0) {
|
|
uVar2 = 0;
|
|
}
|
|
else {
|
|
param_4[0x24] = 'H';
|
|
param_4[0x25] = '\0';
|
|
param_4[0x26] = '\0';
|
|
param_4[0x27] = '\0';
|
|
param_4[0x20] = '`';
|
|
param_4[0x21] = '\0';
|
|
param_4[0x22] = '\0';
|
|
param_4[0x23] = '\0';
|
|
iVar1 = FUN_00404088(param_5,param_3,s_MotionExtent_004e763f,&local_8);
|
|
if (iVar1 == 0) {
|
|
FUN_004dbb24((int *)&DAT_00524e68,param_3,(char *)0x0);
|
|
FUN_004dbb24((int *)&DAT_00524e68,s_missing_MotionExtent___004e764c,(char *)0x0);
|
|
uVar2 = 0xffffffff;
|
|
}
|
|
else {
|
|
FUN_004d7f84(local_8,(byte *)s__f__f__f_004e7665);
|
|
iVar1 = FUN_00404118(param_5,param_3,s_TravelTime_004e766e,(float *)(param_4 + 0x3c));
|
|
if (iVar1 == 0) {
|
|
FUN_004dbb24((int *)&DAT_00524e68,param_3,(char *)0x0);
|
|
FUN_004dbb24((int *)&DAT_00524e68,s_missing_TravelTime__004e7679,(char *)0x0);
|
|
uVar2 = 0xffffffff;
|
|
}
|
|
else {
|
|
iVar1 = FUN_00404118(param_5,param_3,s_DeadTime_004e768f,(float *)(param_4 + 0x40));
|
|
if (iVar1 == 0) {
|
|
FUN_004dbb24((int *)&DAT_00524e68,param_3,(char *)0x0);
|
|
FUN_004dbb24((int *)&DAT_00524e68,s_missing_DeadTime__004e7698,(char *)0x0);
|
|
uVar2 = 0;
|
|
}
|
|
else {
|
|
iVar1 = FUN_00404088(param_5,param_3,s_Collision_004e76ac,&local_c);
|
|
if (iVar1 == 0) {
|
|
FUN_004dbb24((int *)&DAT_00524e68,param_3,(char *)0x0);
|
|
FUN_004dbb24((int *)&DAT_00524e68,s_missing_Collision__004e76b6,(char *)0x0);
|
|
uVar2 = 0;
|
|
}
|
|
else {
|
|
uVar2 = FUN_0040f7d8(local_c,param_7,param_6,0);
|
|
*(undefined4 *)(param_4 + 0x44) = uVar2;
|
|
uVar2 = 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return uVar2;
|
|
}
|
|
|
|
|
|
|
|
/* @00433138 file=? name=FUN_00433138 */
|
|
|
|
void __cdecl FUN_00433138(int param_1)
|
|
|
|
{
|
|
FUN_0041a1a4(**(int **)(param_1 + 0xc),0x4e757c);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00433220 file=? name=FUN_00433220 */
|
|
|
|
undefined4 * __cdecl FUN_00433220(undefined4 *param_1)
|
|
|
|
{
|
|
FUN_004178cc(param_1,8);
|
|
*param_1 = &PTR_FUN_004e3320;
|
|
param_1[3] = &DAT_004e7748;
|
|
*param_1 = &PTR_FUN_004e78a0;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @0043324c file=? name=FUN_0043324c */
|
|
|
|
void __cdecl FUN_0043324c(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e78a0;
|
|
FUN_0041790c(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00433278 file=? name=FUN_00433278 */
|
|
|
|
void __cdecl FUN_00433278(int param_1)
|
|
|
|
{
|
|
FUN_0041a1a4(**(int **)(param_1 + 0xc),0x4e7718);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00433294 file=? name=FUN_00433294 */
|
|
|
|
undefined4 __cdecl FUN_00433294(int *param_1,int param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined4 uVar2;
|
|
|
|
iVar1 = (**(code **)(*param_1 + 0x14))(param_1,*(undefined4 *)(param_2 + 0x1c));
|
|
if (iVar1 != 0) {
|
|
uVar2 = (**(code **)(iVar1 + 0x10))(param_2);
|
|
return uVar2;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
/* @004332bc file=munga/registry.cpp name=FUN_004332bc */
|
|
|
|
undefined4 FUN_004332bc(void)
|
|
|
|
{
|
|
FUN_0040385c(s_Registry__MakeTransferedEntity___004e7764,s_d__tesla_bt_munga_REGISTRY_CPP_004e7798
|
|
,0xbe);
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
/* @004332dc file=munga/registry.cpp name=FUN_004332dc */
|
|
|
|
undefined4 FUN_004332dc(void)
|
|
|
|
{
|
|
FUN_0040385c(s_Registry__MakeEntityReplacement___004e77b7,
|
|
s_d__tesla_bt_munga_REGISTRY_CPP_004e77ec,0xcd);
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
/* @004332fc file=? name=FUN_004332fc */
|
|
|
|
undefined * __cdecl FUN_004332fc(undefined4 param_1,int param_2)
|
|
|
|
{
|
|
if (param_2 < 0x40) {
|
|
if (param_2 == 0x3f) {
|
|
return &DAT_004e6604;
|
|
}
|
|
if (param_2 < 0x31) {
|
|
if (param_2 == 0x30) {
|
|
return &DAT_004e6bc0;
|
|
}
|
|
if (param_2 == 0x10) {
|
|
return &DAT_004e3d40;
|
|
}
|
|
if (param_2 == 0x29) {
|
|
return &DAT_004e6f28;
|
|
}
|
|
if (param_2 == 0x2a) {
|
|
return &DAT_004e6f84;
|
|
}
|
|
}
|
|
else {
|
|
if (param_2 == 0x31) {
|
|
return &DAT_004e6cc4;
|
|
}
|
|
if (param_2 == 0x32) {
|
|
return &DAT_004e6714;
|
|
}
|
|
}
|
|
}
|
|
else if (param_2 < 0x59) {
|
|
if (param_2 == 0x58) {
|
|
return &DAT_004e5b04;
|
|
}
|
|
if (param_2 == 0x45) {
|
|
return &DAT_004e62a8;
|
|
}
|
|
if (param_2 == 0x46) {
|
|
return &DAT_004e6ad4;
|
|
}
|
|
if (param_2 == 0x56) {
|
|
return &DAT_004e70f4;
|
|
}
|
|
}
|
|
else {
|
|
if (param_2 == 0x5e) {
|
|
return &DAT_004e7068;
|
|
}
|
|
if (param_2 == 0x5f) {
|
|
return &DAT_004e747c;
|
|
}
|
|
}
|
|
return (undefined *)0x0;
|
|
}
|
|
|
|
|
|
|
|
/* @004333b0 file=? name=FUN_004333b0 */
|
|
|
|
undefined4 * __cdecl FUN_004333b0(undefined4 param_1,int param_2)
|
|
|
|
{
|
|
char *pcVar1;
|
|
int iVar2;
|
|
undefined4 uVar3;
|
|
char *pcVar4;
|
|
undefined4 *puVar5;
|
|
char *pcVar6;
|
|
uint uVar7;
|
|
bool bVar8;
|
|
undefined4 local_a4;
|
|
undefined4 local_a0;
|
|
undefined4 local_9c;
|
|
undefined4 local_98 [2];
|
|
undefined4 local_90;
|
|
undefined4 local_8c;
|
|
undefined4 local_88;
|
|
undefined4 local_84 [2];
|
|
undefined4 local_7c;
|
|
uint local_78;
|
|
undefined4 local_74;
|
|
undefined4 local_70;
|
|
undefined4 local_6c;
|
|
undefined4 local_68;
|
|
undefined4 local_64;
|
|
undefined4 local_60;
|
|
undefined4 local_5c;
|
|
undefined4 local_58;
|
|
undefined4 local_54;
|
|
undefined4 local_50;
|
|
undefined4 local_4c;
|
|
undefined4 local_48 [2];
|
|
undefined4 local_40;
|
|
undefined4 local_3c;
|
|
undefined4 local_38;
|
|
undefined4 local_34 [2];
|
|
undefined4 local_2c;
|
|
uint local_28;
|
|
undefined4 local_24;
|
|
undefined4 local_20;
|
|
undefined4 local_1c;
|
|
undefined4 local_18;
|
|
undefined4 local_14;
|
|
undefined4 local_10;
|
|
undefined4 local_c;
|
|
undefined4 local_8;
|
|
|
|
pcVar6 = s_camera_004e780b;
|
|
uVar7 = 0x5100;
|
|
pcVar4 = *(char **)(param_2 + 0x2c);
|
|
do {
|
|
if (*pcVar4 != *pcVar6) goto LAB_004333ef;
|
|
bVar8 = true;
|
|
if (*pcVar4 == '\0') break;
|
|
pcVar1 = pcVar4 + 1;
|
|
if (*pcVar1 != pcVar6[1]) goto LAB_004333ef;
|
|
pcVar4 = pcVar4 + 2;
|
|
pcVar6 = pcVar6 + 2;
|
|
bVar8 = *pcVar1 == '\0';
|
|
} while (!bVar8);
|
|
if (bVar8) {
|
|
uVar7 = 0xd100;
|
|
}
|
|
LAB_004333ef:
|
|
iVar2 = *(int *)(*(int *)(*(int *)(DAT_004efc94 + 0x2c) + 0x14) + 0x10);
|
|
if (iVar2 == 0) {
|
|
uVar3 = *(undefined4 *)(param_2 + 0x4c);
|
|
local_54 = 0x50;
|
|
local_50 = 3;
|
|
local_4c = 1;
|
|
FUN_00420ea4(local_48,(undefined4 *)&DAT_00522524);
|
|
local_40 = 0;
|
|
local_3c = 0;
|
|
local_38 = 0x32;
|
|
FUN_00420ea4(local_34,(undefined4 *)&DAT_00522524);
|
|
local_2c = 0xffffffff;
|
|
local_24 = DAT_004e0fec;
|
|
local_20 = DAT_004e0ff0;
|
|
local_1c = DAT_004e0ff4;
|
|
local_18 = DAT_004e0ff8;
|
|
local_14 = DAT_004e0ffc;
|
|
local_10 = DAT_004e1000;
|
|
local_c = DAT_004e1004;
|
|
local_28 = uVar7;
|
|
local_8 = uVar3;
|
|
puVar5 = (undefined4 *)FUN_00402298(0x20c);
|
|
if (puVar5 == (undefined4 *)0x0) {
|
|
puVar5 = (undefined4 *)0x0;
|
|
}
|
|
else {
|
|
puVar5 = FUN_0042e328(puVar5,(int)&local_54,&DAT_004e6714);
|
|
}
|
|
}
|
|
else if (iVar2 - 1U < 2) {
|
|
uVar3 = *(undefined4 *)(param_2 + 0x4c);
|
|
local_a4 = 0x50;
|
|
local_a0 = 3;
|
|
local_9c = 1;
|
|
FUN_00420ea4(local_98,(undefined4 *)&DAT_00522524);
|
|
local_90 = 0;
|
|
local_8c = 0;
|
|
local_88 = 0x46;
|
|
FUN_00420ea4(local_84,(undefined4 *)&DAT_00522524);
|
|
local_7c = 0xffffffff;
|
|
local_74 = DAT_004e0fec;
|
|
local_70 = DAT_004e0ff0;
|
|
local_6c = DAT_004e0ff4;
|
|
local_68 = DAT_004e0ff8;
|
|
local_64 = DAT_004e0ffc;
|
|
local_60 = DAT_004e1000;
|
|
local_5c = DAT_004e1004;
|
|
local_78 = uVar7 | 0x9100;
|
|
local_58 = uVar3;
|
|
puVar5 = (undefined4 *)FUN_00402298(0x238);
|
|
if (puVar5 == (undefined4 *)0x0) {
|
|
puVar5 = (undefined4 *)0x0;
|
|
}
|
|
else {
|
|
puVar5 = FUN_0042eec8(puVar5,(int)&local_a4,&DAT_004e6ad4);
|
|
}
|
|
}
|
|
else {
|
|
puVar5 = (undefined4 *)0x0;
|
|
}
|
|
return puVar5;
|
|
}
|
|
|
|
|
|
|
|
/* @004335b8 file=? name=FUN_004335b8 */
|
|
|
|
void __cdecl FUN_004335b8(int *param_1,undefined4 *param_2)
|
|
|
|
{
|
|
undefined4 local_14 [2];
|
|
int local_c;
|
|
|
|
FUN_004030dc(local_14,param_2,*param_2,0);
|
|
local_c = local_c + 0xc;
|
|
FUN_00433294(param_1,local_c);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004335f0 file=? name=FUN_004335f0 */
|
|
|
|
undefined4 __cdecl FUN_004335f0(undefined4 param_1,int param_2)
|
|
|
|
{
|
|
undefined4 *puVar1;
|
|
undefined4 uVar2;
|
|
int local_2c [10];
|
|
|
|
FUN_0043377c(local_2c);
|
|
(**(code **)(local_2c[0] + 0x28))(local_2c,param_1,param_2);
|
|
puVar1 = (undefined4 *)
|
|
FUN_00406f3c(param_2,s_RegistryStaticObjectStream_004e7812,0x1c,1,0,local_2c,-1);
|
|
uVar2 = *puVar1;
|
|
FUN_00433798(local_2c,2);
|
|
return uVar2;
|
|
}
|
|
|
|
|
|
|
|
/* @0043364c file=? name=FUN_0043364c */
|
|
|
|
void FUN_0043364c(void)
|
|
|
|
{
|
|
int iVar1;
|
|
int iVar2;
|
|
int iVar3;
|
|
int iVar4;
|
|
int local_30 [10];
|
|
uint local_8;
|
|
|
|
iVar4 = 0;
|
|
iVar1 = *(int *)(DAT_004efc94 + 0x68);
|
|
local_8 = *(uint *)(iVar1 + 0x18);
|
|
if (local_8 < 0x80000000) {
|
|
do {
|
|
iVar3 = FUN_00406fd4(iVar1,iVar4);
|
|
if ((iVar3 != 0) && (*(int *)(iVar3 + 8) == 0x1c)) {
|
|
iVar2 = *(int *)(iVar3 + 4);
|
|
*(int *)(iVar3 + 4) = *(int *)(iVar3 + 4) + 1;
|
|
if (iVar2 == 0) {
|
|
FUN_00406cd0(iVar3);
|
|
}
|
|
FUN_0043375c(local_30,iVar3);
|
|
(**(code **)(local_30[0] + 0x24))(local_30);
|
|
*(int *)(iVar3 + 4) = *(int *)(iVar3 + 4) + -1;
|
|
FUN_00433798(local_30,2);
|
|
}
|
|
iVar4 = iVar4 + 1;
|
|
} while (iVar4 <= (int)local_8);
|
|
}
|
|
FUN_0040717c(iVar1);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004336d4 file=? name=FUN_004336d4 */
|
|
|
|
void __cdecl FUN_004336d4(undefined4 *param_1,undefined4 param_2)
|
|
|
|
{
|
|
*param_1 = param_2;
|
|
param_1[1] = 3;
|
|
param_1[2] = 1;
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004336f0 file=? name=FUN_004336f0 */
|
|
|
|
undefined4 __cdecl FUN_004336f0(uint *param_1)
|
|
|
|
{
|
|
undefined4 uVar1;
|
|
undefined4 *puVar2;
|
|
uint uVar3;
|
|
undefined4 local_14 [2];
|
|
undefined4 *local_c;
|
|
|
|
uVar3 = *param_1 + 0xc;
|
|
uVar1 = FUN_004022b0(uVar3);
|
|
FUN_004030dc(local_14,uVar1,uVar3,0);
|
|
puVar2 = (undefined4 *)FUN_004022c8(0xc,local_c);
|
|
if (puVar2 == (undefined4 *)0x0) {
|
|
uVar1 = 0;
|
|
}
|
|
else {
|
|
uVar1 = FUN_004336d4(puVar2,uVar3);
|
|
}
|
|
local_c = (undefined4 *)((int)local_c + 0xc);
|
|
FUN_004d4918(local_c,param_1,*param_1);
|
|
return uVar1;
|
|
}
|
|
|
|
|
|
|
|
/* @0043375c file=? name=FUN_0043375c */
|
|
|
|
undefined4 * __cdecl FUN_0043375c(undefined4 *param_1,int param_2)
|
|
|
|
{
|
|
FUN_00416fdc(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e7864;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @0043377c file=? name=FUN_0043377c */
|
|
|
|
undefined4 * __cdecl FUN_0043377c(undefined4 *param_1)
|
|
|
|
{
|
|
FUN_00416f88(param_1);
|
|
*param_1 = &PTR_FUN_004e7864;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00433798 file=? name=FUN_00433798 */
|
|
|
|
void __cdecl FUN_00433798(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e7864;
|
|
FUN_00417008(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004337c4 file=? name=FUN_004337c4 */
|
|
|
|
undefined8 __cdecl FUN_004337c4(int param_1)
|
|
|
|
{
|
|
undefined8 uVar1;
|
|
|
|
uVar1 = FUN_00417034(param_1);
|
|
return CONCAT44((int)((ulonglong)uVar1 >> 0x20),1);
|
|
}
|
|
|
|
|
|
|
|
/* @004337d8 file=? name=FUN_004337d8 */
|
|
|
|
undefined4 * __cdecl FUN_004337d8(int *param_1,int param_2)
|
|
|
|
{
|
|
undefined4 *puVar1;
|
|
|
|
if (param_2 == 0x47) {
|
|
puVar1 = (undefined4 *)FUN_00402298(0x24);
|
|
if (puVar1 == (undefined4 *)0x0) {
|
|
puVar1 = (undefined4 *)0x0;
|
|
}
|
|
else {
|
|
puVar1 = FUN_004304ec(puVar1,param_1);
|
|
}
|
|
}
|
|
else {
|
|
puVar1 = (undefined4 *)FUN_0041639c();
|
|
}
|
|
return puVar1;
|
|
}
|
|
|
|
|
|
|
|
/* @00433818 file=? name=FUN_00433818 */
|
|
|
|
void __cdecl FUN_00433818(undefined4 param_1,int param_2)
|
|
|
|
{
|
|
if (*(int *)(param_2 + 4) == 0x47) {
|
|
FUN_004170cc(param_1,param_2);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @0043383c file=? name=FUN_0043383c */
|
|
|
|
void __cdecl FUN_0043383c(int *param_1,int param_2,int param_3)
|
|
|
|
{
|
|
if (param_3 == 0x47) {
|
|
FUN_00430608(param_1,param_2);
|
|
}
|
|
else {
|
|
FUN_00416db0();
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00433874 file=? name=FUN_00433874 */
|
|
|
|
void __cdecl FUN_00433874(undefined4 param_1,int param_2,undefined4 param_3,undefined4 param_4)
|
|
|
|
{
|
|
if (param_2 == 0x47) {
|
|
FUN_004171f0(param_1,param_3,param_4);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00433920 file=? name=FUN_00433920 */
|
|
|
|
undefined4 * __cdecl FUN_00433920(undefined4 *param_1,undefined4 *param_2)
|
|
|
|
{
|
|
FUN_00415e90(param_1,1);
|
|
*param_1 = &PTR_FUN_004e79d0;
|
|
FUN_00434183(param_1 + 3,param_2,param_1);
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00433950 file=? name=FUN_00433950 */
|
|
|
|
void __cdecl FUN_00433950(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e79d0;
|
|
FUN_004341a7(param_1 + 3,2);
|
|
FUN_00415ed8(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @0043398c file=? name=FUN_0043398c */
|
|
|
|
undefined4 * __cdecl FUN_0043398c(undefined4 *param_1,undefined4 *param_2,undefined4 *param_3)
|
|
|
|
{
|
|
FUN_00433920(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e79cc;
|
|
param_1[0xb] = *param_3;
|
|
param_1[0xc] = param_3[1];
|
|
param_1[0xd] = param_3[2];
|
|
param_1[0xe] = param_3[3];
|
|
param_1[0xf] = param_3[4];
|
|
param_1[0x13] = param_3[8];
|
|
FUN_00408440(param_1 + 0x10,param_3 + 5);
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @004339ec file=? name=FUN_004339ec */
|
|
|
|
void __cdecl FUN_004339ec(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e79cc;
|
|
FUN_00433950(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00433a18 file=? name=FUN_00433a18 */
|
|
|
|
undefined4 FUN_00433a18(void)
|
|
|
|
{
|
|
FUN_00415f1c();
|
|
return 1;
|
|
}
|
|
|
|
|
|
|
|
/* @00433a2c file=? name=FUN_00433a2c */
|
|
|
|
undefined4 * __cdecl
|
|
FUN_00433a2c(undefined4 *param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4,
|
|
undefined4 param_5,undefined4 param_6)
|
|
|
|
{
|
|
FUN_00433920(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e79c8;
|
|
param_1[0xb] = param_3;
|
|
param_1[0xc] = param_4;
|
|
param_1[0xd] = param_5;
|
|
param_1[0xe] = 0;
|
|
param_1[0xf] = param_6;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00433a68 file=? name=FUN_00433a68 */
|
|
|
|
void __cdecl FUN_00433a68(int *param_1,byte param_2)
|
|
|
|
{
|
|
int *piVar1;
|
|
undefined4 *puVar2;
|
|
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e79c8;
|
|
piVar1 = (int *)param_1[0xc];
|
|
if (piVar1 != (int *)0x0) {
|
|
FUN_0040eabc(piVar1);
|
|
FUN_004022d0(piVar1);
|
|
}
|
|
param_1[0xc] = 0;
|
|
puVar2 = (undefined4 *)param_1[0xd];
|
|
if (puVar2 != (undefined4 *)0x0) {
|
|
(**(code **)*puVar2)(puVar2,3);
|
|
}
|
|
param_1[0xd] = 0;
|
|
piVar1 = (int *)param_1[0xf];
|
|
if (piVar1 != (int *)0x0) {
|
|
FUN_0040eabc(piVar1);
|
|
FUN_004022d0(piVar1);
|
|
}
|
|
param_1[0xf] = 0;
|
|
if ((int *)param_1[0xe] != (int *)0x0) {
|
|
FUN_00434a48(*(undefined4 *)(DAT_004efc94 + 0x30),(int *)param_1[0xe]);
|
|
puVar2 = (undefined4 *)param_1[0xe];
|
|
param_1[0xe] = 0;
|
|
if (puVar2 != (undefined4 *)0x0) {
|
|
(**(code **)*puVar2)(puVar2,3);
|
|
}
|
|
}
|
|
FUN_00433950(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00433b14 file=? name=FUN_00433b14 */
|
|
|
|
undefined4 FUN_00433b14(void)
|
|
|
|
{
|
|
FUN_00415f1c();
|
|
return 1;
|
|
}
|
|
|
|
|
|
|
|
/* @00433b3c file=? name=FUN_00433b3c */
|
|
|
|
undefined4 * __cdecl FUN_00433b3c(undefined4 *param_1,undefined4 param_2)
|
|
|
|
{
|
|
FUN_004178cc(param_1,2);
|
|
*param_1 = &PTR_FUN_004e79bc;
|
|
FUN_004341d4(param_1 + 3,0);
|
|
(**(code **)(param_1[3] + 4))(param_1 + 3,param_2);
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00433b78 file=? name=FUN_00433b78 */
|
|
|
|
void __cdecl FUN_00433b78(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e79bc;
|
|
FUN_00417a5c((int)(param_1 + 3));
|
|
FUN_004341f3(param_1 + 3,2);
|
|
FUN_0041790c(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00433bbc file=? name=FUN_00433bbc */
|
|
|
|
undefined4 FUN_00433bbc(void)
|
|
|
|
{
|
|
FUN_00415f1c();
|
|
return 1;
|
|
}
|
|
|
|
|
|
|
|
/* @00433bd0 file=? name=FUN_00433bd0 */
|
|
|
|
undefined4 * __cdecl FUN_00433bd0(undefined4 *param_1)
|
|
|
|
{
|
|
FUN_004178cc(param_1,2);
|
|
*param_1 = &PTR_FUN_004e79b0;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00433bf0 file=? name=FUN_00433bf0 */
|
|
|
|
void __cdecl FUN_00433bf0(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e79b0;
|
|
FUN_0041790c(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00433c1c file=? name=FUN_00433c1c */
|
|
|
|
undefined4 * __cdecl FUN_00433c1c(undefined4 *param_1)
|
|
|
|
{
|
|
FUN_00433bd0(param_1);
|
|
*param_1 = &PTR_FUN_004e79a4;
|
|
FUN_004341d4(param_1 + 3,0);
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00433c44 file=? name=FUN_00433c44 */
|
|
|
|
void __cdecl FUN_00433c44(int *param_1,byte param_2)
|
|
|
|
{
|
|
undefined4 *puVar1;
|
|
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e79a4;
|
|
puVar1 = (undefined4 *)FUN_00417ab4((int)(param_1 + 3));
|
|
if ((puVar1 != (undefined4 *)0x0) && (puVar1 != (undefined4 *)0x0)) {
|
|
(**(code **)*puVar1)(puVar1,3);
|
|
}
|
|
FUN_004341f3(param_1 + 3,2);
|
|
FUN_00433bf0(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00433ca0 file=? name=FUN_00433ca0 */
|
|
|
|
undefined4 FUN_00433ca0(void)
|
|
|
|
{
|
|
FUN_00415f1c();
|
|
return 1;
|
|
}
|
|
|
|
|
|
|
|
/* @00433cb4 file=? name=FUN_00433cb4 */
|
|
|
|
undefined4 * __cdecl FUN_00433cb4(int param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined4 *puVar2;
|
|
int iVar3;
|
|
int *piVar4;
|
|
undefined4 *puVar5;
|
|
undefined4 local_8c [6];
|
|
int local_74 [4];
|
|
undefined4 local_64 [9];
|
|
undefined4 local_40 [6];
|
|
int local_28 [4];
|
|
undefined4 *local_18;
|
|
int *local_14;
|
|
undefined4 local_10;
|
|
int local_c;
|
|
undefined4 *local_8;
|
|
|
|
puVar2 = (undefined4 *)FUN_00417ab4(param_1 + 0xc);
|
|
if (puVar2 == (undefined4 *)0x0) {
|
|
local_c = *(int *)(DAT_004efc94 + 0x68);
|
|
iVar3 = FUN_00406ff8(local_c,s_EnvironmentZone_004e78bc,0x17,-1);
|
|
if (iVar3 != 0) {
|
|
iVar1 = *(int *)(iVar3 + 4);
|
|
*(int *)(iVar3 + 4) = *(int *)(iVar3 + 4) + 1;
|
|
if (iVar1 == 0) {
|
|
FUN_00406cd0(iVar3);
|
|
}
|
|
FUN_004030dc(local_28,*(undefined4 *)(iVar3 + 0x3c),*(undefined4 *)(iVar3 + 0x40),0);
|
|
piVar4 = (int *)(**(code **)(local_28[0] + 0x1c))(local_28,local_40,0x18);
|
|
(**(code **)(*piVar4 + 0x1c))(piVar4,local_64,0x24);
|
|
*(int *)(iVar3 + 4) = *(int *)(iVar3 + 4) + -1;
|
|
puVar5 = (undefined4 *)FUN_00402298(0x50);
|
|
if (puVar5 == (undefined4 *)0x0) {
|
|
local_8 = (undefined4 *)0x0;
|
|
}
|
|
else {
|
|
local_8 = FUN_0043398c(puVar5,local_40,local_64);
|
|
}
|
|
}
|
|
iVar3 = FUN_00406ff8(local_c,s_InterestZone_004e78cc,0x18,-1);
|
|
if (iVar3 != 0) {
|
|
iVar1 = *(int *)(iVar3 + 4);
|
|
*(int *)(iVar3 + 4) = *(int *)(iVar3 + 4) + 1;
|
|
if (iVar1 == 0) {
|
|
FUN_00406cd0(iVar3);
|
|
}
|
|
FUN_004030dc(local_74,*(undefined4 *)(iVar3 + 0x3c),*(undefined4 *)(iVar3 + 0x40),0);
|
|
puVar2 = (undefined4 *)FUN_00402298(0x10);
|
|
if (puVar2 == (undefined4 *)0x0) {
|
|
local_14 = (int *)0x0;
|
|
}
|
|
else {
|
|
local_14 = (int *)FUN_004023f4(puVar2);
|
|
}
|
|
local_14[3] = local_14[3] + 1;
|
|
piVar4 = (int *)(**(code **)(local_74[0] + 0x1c))(local_74,local_8c,0x18);
|
|
piVar4 = (int *)(**(code **)(*piVar4 + 0x1c))(piVar4,&local_10,4);
|
|
FUN_00402aec(piVar4,(int *)&local_14);
|
|
*(int *)(iVar3 + 4) = *(int *)(iVar3 + 4) + -1;
|
|
puVar2 = (undefined4 *)FUN_00402298(4);
|
|
if (puVar2 != (undefined4 *)0x0) {
|
|
*puVar2 = 0;
|
|
}
|
|
local_18 = (undefined4 *)FUN_00402298(4);
|
|
if (local_18 != (undefined4 *)0x0) {
|
|
*local_18 = 0;
|
|
}
|
|
puVar5 = (undefined4 *)FUN_00402298(0x40);
|
|
if (puVar5 == (undefined4 *)0x0) {
|
|
puVar2 = (undefined4 *)0x0;
|
|
}
|
|
else {
|
|
puVar2 = FUN_00433a2c(puVar5,local_8c,local_10,puVar2,local_8,local_18);
|
|
}
|
|
piVar4 = local_14 + 3;
|
|
*piVar4 = *piVar4 + -1;
|
|
if (*piVar4 == 0) {
|
|
FUN_004024d8(local_14,3);
|
|
}
|
|
}
|
|
(**(code **)(*(int *)(param_1 + 0xc) + 4))(param_1 + 0xc,puVar2);
|
|
}
|
|
puVar5 = (undefined4 *)FUN_00402298(0x18);
|
|
if (puVar5 == (undefined4 *)0x0) {
|
|
puVar2 = (undefined4 *)0x0;
|
|
}
|
|
else {
|
|
puVar2 = FUN_00433b3c(puVar5,puVar2);
|
|
}
|
|
return puVar2;
|
|
}
|
|
|
|
|
|
|
|
/* @00433eb8 file=? name=FUN_00433eb8 */
|
|
|
|
undefined4 __cdecl FUN_00433eb8(int param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
|
|
iVar1 = FUN_00417ab4(param_1 + 0xc);
|
|
return *(undefined4 *)(iVar1 + 0x2c);
|
|
}
|
|
|
|
|
|
|
|
/* @00433ed4 file=? name=FUN_00433ed4 */
|
|
|
|
void __cdecl FUN_00433ed4(int param_1)
|
|
|
|
{
|
|
FUN_00417ab4(param_1 + 0xc);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00433ee8 file=? name=FUN_00433ee8 */
|
|
|
|
void __cdecl FUN_00433ee8(int param_1,int param_2)
|
|
|
|
{
|
|
int *piVar1;
|
|
uint *puVar2;
|
|
undefined4 *puVar3;
|
|
int local_a4 [6];
|
|
float local_8c [6];
|
|
int local_74 [6];
|
|
float local_5c [9];
|
|
float local_38 [6];
|
|
uint *local_20;
|
|
int *local_1c;
|
|
char *local_18;
|
|
int *local_14;
|
|
int local_10;
|
|
uint *local_c;
|
|
char *local_8;
|
|
|
|
FUN_00404088(param_2,s_EnvironmentZone_004e78d9,s_extent_box_004e78e9,&local_8);
|
|
FUN_0040d62c(local_8,local_38);
|
|
FUN_00404088(param_2,s_EnvironmentZone_004e78f4,s_environment_004e7904,&local_8);
|
|
FUN_00421658(local_8,local_5c);
|
|
FUN_0040328c(local_74,0);
|
|
piVar1 = (int *)(**(code **)(local_74[0] + 0x20))(local_74,local_38,0x18);
|
|
(**(code **)(*piVar1 + 0x20))(piVar1,local_5c,0x24);
|
|
puVar2 = (uint *)FUN_00402298(0x10);
|
|
if (puVar2 == (uint *)0x0) {
|
|
local_c = (uint *)0x0;
|
|
}
|
|
else {
|
|
local_c = FUN_00402460(puVar2,s_EnvironmentZone_004e7910);
|
|
}
|
|
local_c[3] = local_c[3] + 1;
|
|
FUN_00406f3c(param_1,(char *)local_c[2],0x17,1,0,local_74,-1);
|
|
puVar2 = local_c + 3;
|
|
*puVar2 = *puVar2 - 1;
|
|
if (*puVar2 == 0) {
|
|
FUN_004024d8((int *)local_c,3);
|
|
}
|
|
FUN_00403310(local_74,2);
|
|
puVar3 = (undefined4 *)FUN_00402298(0x10);
|
|
if (puVar3 == (undefined4 *)0x0) {
|
|
local_14 = (int *)0x0;
|
|
}
|
|
else {
|
|
local_14 = (int *)FUN_004023f4(puVar3);
|
|
}
|
|
local_14[3] = local_14[3] + 1;
|
|
FUN_00404088(param_2,s_InterestZone_004e7920,s_extent_box_004e792d,&local_18);
|
|
FUN_0040d62c(local_18,local_8c);
|
|
FUN_00404088(param_2,s_InterestZone_004e7938,s_interest_zone_ID_004e7945,&local_18);
|
|
FUN_00407ae0(local_18,&local_10);
|
|
FUN_00404088(param_2,s_InterestZone_004e7956,s_map_resource_name_004e7963,&local_18);
|
|
FUN_00402a98((int *)&local_1c,(int *)&local_14,local_18);
|
|
piVar1 = local_1c + 3;
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_004024d8(local_1c,3);
|
|
}
|
|
FUN_0040328c(local_a4,0);
|
|
piVar1 = (int *)(**(code **)(local_a4[0] + 0x20))(local_a4,local_8c,0x18);
|
|
(**(code **)(*piVar1 + 0x20))(piVar1,&local_10,4);
|
|
FUN_004029b0(local_a4,(int)local_14);
|
|
puVar2 = (uint *)FUN_00402298(0x10);
|
|
if (puVar2 == (uint *)0x0) {
|
|
local_20 = (uint *)0x0;
|
|
}
|
|
else {
|
|
local_20 = FUN_00402460(puVar2,s_InterestZone_004e7975);
|
|
}
|
|
local_20[3] = local_20[3] + 1;
|
|
FUN_00406f3c(param_1,(char *)local_20[2],0x18,1,0,local_a4,-1);
|
|
puVar2 = local_20 + 3;
|
|
*puVar2 = *puVar2 - 1;
|
|
if (*puVar2 == 0) {
|
|
FUN_004024d8((int *)local_20,3);
|
|
}
|
|
FUN_00403310(local_a4,2);
|
|
piVar1 = local_14 + 3;
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_004024d8(local_14,3);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00434163 file=? name=FUN_00434163 */
|
|
|
|
int __cdecl FUN_00434163(int param_1,undefined4 param_2)
|
|
|
|
{
|
|
FUN_0040deb0(param_1,param_2);
|
|
*(undefined ***)(param_1 + 0x18) = &PTR_FUN_004e798c;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00434183 file=? name=FUN_00434183 */
|
|
|
|
undefined4 * __cdecl FUN_00434183(undefined4 *param_1,undefined4 *param_2,undefined4 param_3)
|
|
|
|
{
|
|
FUN_0040ded0(param_1,param_2,param_3);
|
|
param_1[6] = &PTR_FUN_004e798c;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @004341a7 file=? name=FUN_004341a7 */
|
|
|
|
void __cdecl FUN_004341a7(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
param_1[6] = (int)&PTR_FUN_004e798c;
|
|
FUN_0040def8(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004341d4 file=? name=FUN_004341d4 */
|
|
|
|
undefined4 * __cdecl FUN_004341d4(undefined4 *param_1,undefined4 param_2)
|
|
|
|
{
|
|
FUN_004179d4(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e7984;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @004341f3 file=? name=FUN_004341f3 */
|
|
|
|
void __cdecl FUN_004341f3(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e7984;
|
|
FUN_004179f8(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00434220 file=? name=FUN_00434220 */
|
|
|
|
undefined4 * __cdecl
|
|
FUN_00434220(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)
|
|
|
|
{
|
|
FUN_004178cc(param_1,2);
|
|
*param_1 = &PTR_FUN_004e7b04;
|
|
FUN_00434364(param_1 + 6,0);
|
|
param_1[3] = param_2;
|
|
param_1[4] = param_3;
|
|
param_1[5] = param_4;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00434260 file=? name=FUN_00434260 */
|
|
|
|
void __cdecl FUN_00434260(int *param_1,byte param_2)
|
|
|
|
{
|
|
undefined4 *puVar1;
|
|
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e7b04;
|
|
puVar1 = (undefined4 *)FUN_00417ab4((int)(param_1 + 6));
|
|
if ((puVar1 != (undefined4 *)0x0) && (puVar1 != (undefined4 *)0x0)) {
|
|
(**(code **)*puVar1)(puVar1,3);
|
|
}
|
|
FUN_00434383(param_1 + 6,2);
|
|
FUN_0041790c(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004342bc file=? name=FUN_004342bc */
|
|
|
|
undefined4 FUN_004342bc(void)
|
|
|
|
{
|
|
FUN_00415f1c();
|
|
return 1;
|
|
}
|
|
|
|
|
|
|
|
/* @004342d0 file=? name=FUN_004342d0 */
|
|
|
|
void __cdecl FUN_004342d0(int param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined4 *puVar2;
|
|
|
|
iVar1 = FUN_00417ab4(param_1 + 0x18);
|
|
if (iVar1 == 0) {
|
|
puVar2 = FUN_00433cb4(*(int *)(DAT_004efc94 + 0x30) + 0x14);
|
|
(**(code **)(*(int *)(param_1 + 0x18) + 4))(param_1 + 0x18,puVar2);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00434310 file=munga/intorgn.cpp name=FUN_00434310 */
|
|
|
|
void FUN_00434310(void)
|
|
|
|
{
|
|
FUN_0040385c(s_InterestOrigin__AddInterestingEn_004e79d4,s_d__tesla_bt_munga_INTORGN_CPP_004e7a14,
|
|
0x9b);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @0043432c file=munga/intorgn.cpp name=FUN_0043432c */
|
|
|
|
void FUN_0043432c(void)
|
|
|
|
{
|
|
FUN_0040385c(s_InterestOrigin__RemoveUninterest_004e7a32,s_d__tesla_bt_munga_INTORGN_CPP_004e7a77,
|
|
0xa5);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00434348 file=munga/intorgn.cpp name=FUN_00434348 */
|
|
|
|
void FUN_00434348(void)
|
|
|
|
{
|
|
FUN_0040385c(s_InterestOrigin__RemoveUninterest_004e7a95,s_d__tesla_bt_munga_INTORGN_CPP_004e7adc,
|
|
0xaf);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00434364 file=? name=FUN_00434364 */
|
|
|
|
undefined4 * __cdecl FUN_00434364(undefined4 *param_1,undefined4 param_2)
|
|
|
|
{
|
|
FUN_004179d4(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e7afc;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00434383 file=? name=FUN_00434383 */
|
|
|
|
void __cdecl FUN_00434383(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e7afc;
|
|
FUN_004179f8(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004343b0 file=? name=FUN_004343b0 */
|
|
|
|
undefined4 * __cdecl FUN_004343b0(undefined4 *param_1,undefined4 param_2)
|
|
|
|
{
|
|
FUN_00434220(param_1,param_2,3,1);
|
|
*param_1 = &PTR_FUN_004e7b74;
|
|
FUN_00428cb4(param_1 + 9,0);
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @004343e4 file=? name=FUN_004343e4 */
|
|
|
|
void __cdecl FUN_004343e4(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e7b74;
|
|
FUN_00428cd3(param_1 + 9,2);
|
|
FUN_00434260(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00434420 file=? name=FUN_00434420 */
|
|
|
|
undefined4 FUN_00434420(void)
|
|
|
|
{
|
|
FUN_004342bc();
|
|
return 1;
|
|
}
|
|
|
|
|
|
|
|
/* @00434434 file=? name=FUN_00434434 */
|
|
|
|
void __cdecl FUN_00434434(int param_1,int param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
|
|
if ((*(byte *)(param_2 + 0x29) & 1) != 0) {
|
|
iVar1 = FUN_0041a1a4(**(int **)(param_2 + 0xc),0x4e4518);
|
|
if (iVar1 == 0) {
|
|
iVar1 = FUN_0041a1a4(**(int **)(param_2 + 0xc),0x4e744c);
|
|
if (iVar1 != 0) {
|
|
(**(code **)(*(int *)(param_1 + 0x24) + 4))(param_1 + 0x24,param_2);
|
|
}
|
|
}
|
|
else if ((*(byte *)(param_2 + 0x29) & 0x80) == 0) {
|
|
(**(code **)(*(int *)(param_1 + 0x24) + 4))(param_1 + 0x24,param_2);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004344a4 file=? name=FUN_004344a4 */
|
|
|
|
void __cdecl FUN_004344a4(int param_1,int param_2)
|
|
|
|
{
|
|
int local_14 [4];
|
|
|
|
FUN_00415f30(local_14,param_2,0xffffffff);
|
|
FUN_004161fc((int)local_14,param_1 + 0x24);
|
|
FUN_00415f90(local_14,2);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004344e4 file=? name=FUN_004344e4 */
|
|
|
|
void __cdecl FUN_004344e4(int param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
int local_18 [5];
|
|
|
|
FUN_00428cff(local_18,param_1 + 0x24);
|
|
while( true ) {
|
|
iVar1 = (**(code **)(local_18[0] + 0x30))(local_18);
|
|
if (iVar1 == 0) break;
|
|
(**(code **)(local_18[0] + 0x48))(local_18);
|
|
}
|
|
FUN_00428d5c(local_18,2);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @0043452c file=? name=FUN_0043452c */
|
|
|
|
undefined4 * __cdecl FUN_0043452c(undefined4 *param_1,int param_2)
|
|
|
|
{
|
|
FUN_00428d1e(param_1,param_2 + 0x24);
|
|
*param_1 = &PTR_FUN_004e7b20;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00434550 file=? name=FUN_00434550 */
|
|
|
|
void __cdecl FUN_00434550(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e7b20;
|
|
FUN_00428d5c(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @0043457c file=? name=FUN_0043457c */
|
|
|
|
undefined4 * __cdecl FUN_0043457c(undefined4 *param_1)
|
|
|
|
{
|
|
FUN_0041d520(param_1,0x15,&DAT_004e7b90,3);
|
|
*param_1 = &PTR_FUN_004e8074;
|
|
FUN_00433c1c(param_1 + 5);
|
|
FUN_00435375(param_1 + 0xb,0);
|
|
param_1[0x10] = 0;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @004345c0 file=? name=FUN_004345c0 */
|
|
|
|
void __cdecl FUN_004345c0(int *param_1,byte param_2)
|
|
|
|
{
|
|
undefined4 *puVar1;
|
|
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e8074;
|
|
puVar1 = (undefined4 *)param_1[0x10];
|
|
if ((puVar1 != (undefined4 *)0x0) && (puVar1 != (undefined4 *)0x0)) {
|
|
(**(code **)*puVar1)(puVar1,3);
|
|
}
|
|
FUN_00435394(param_1 + 0xb,2);
|
|
FUN_00433c44(param_1 + 5,2);
|
|
FUN_0041d554(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00434620 file=? name=FUN_00434620 */
|
|
|
|
undefined4 __cdecl FUN_00434620(int param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
|
|
iVar1 = FUN_0041a1a4(**(int **)(param_1 + 0xc),0x4e7b98);
|
|
if (iVar1 == 0) {
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
|
|
|
|
/* @00434648 file=? name=FUN_00434648 */
|
|
|
|
void __cdecl FUN_00434648(int param_1)
|
|
|
|
{
|
|
undefined4 *puVar1;
|
|
|
|
puVar1 = FUN_00433cb4(param_1 + 0x14);
|
|
*(undefined4 **)(param_1 + 0x40) = puVar1;
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00434668 file=? name=FUN_00434668 */
|
|
|
|
void __cdecl FUN_00434668(int param_1,int param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
int iVar2;
|
|
undefined4 *puVar3;
|
|
undefined4 *puVar4;
|
|
int local_30 [4];
|
|
uint local_20;
|
|
int *local_1c;
|
|
undefined4 local_18;
|
|
uint local_14;
|
|
undefined4 local_10 [2];
|
|
int local_8;
|
|
|
|
if (*(int *)(param_2 + 4) != -1) {
|
|
local_8 = *(int *)(DAT_004efc94 + 0x68);
|
|
iVar1 = FUN_00406fd4(local_8,*(int *)(param_2 + 4));
|
|
iVar2 = *(int *)(iVar1 + 4);
|
|
*(int *)(iVar1 + 4) = *(int *)(iVar1 + 4) + 1;
|
|
if (iVar2 == 0) {
|
|
FUN_00406cd0(iVar1);
|
|
}
|
|
FUN_004030dc(local_30,*(undefined4 *)(iVar1 + 0x3c),*(undefined4 *)(iVar1 + 0x40),0);
|
|
FUN_00420ebc(local_10,0xffffffff);
|
|
local_14 = 0;
|
|
FUN_004347ac(param_1,local_30,(float *)&DAT_004e0fec,local_10,&local_14);
|
|
*(int *)(iVar1 + 4) = *(int *)(iVar1 + 4) + -1;
|
|
iVar2 = FUN_00406fd4(local_8,*(int *)(param_2 + 8));
|
|
if (iVar2 != 0) {
|
|
iVar1 = *(int *)(iVar2 + 4);
|
|
*(int *)(iVar2 + 4) = *(int *)(iVar2 + 4) + 1;
|
|
if (iVar1 == 0) {
|
|
FUN_00406cd0(iVar2);
|
|
}
|
|
iVar1 = FUN_00417ab4(*(int *)(param_1 + 0x40) + 0xc);
|
|
local_18 = *(undefined4 *)(iVar1 + 0x2c);
|
|
iVar1 = FUN_00433ed4(param_1 + 0x14);
|
|
local_1c = *(int **)(iVar1 + 0x3c);
|
|
puVar4 = *(undefined4 **)(iVar2 + 0x3c);
|
|
local_20 = *(uint *)(iVar2 + 0x40) / 0x18;
|
|
while (local_20 != 0) {
|
|
local_20 = local_20 - 1;
|
|
puVar3 = (undefined4 *)FUN_00402298(0x1c);
|
|
if (puVar3 == (undefined4 *)0x0) {
|
|
puVar3 = (undefined4 *)0x0;
|
|
}
|
|
else {
|
|
puVar3 = FUN_0040dac4(puVar3,puVar4);
|
|
}
|
|
FUN_0040ea6c(local_1c,(int)puVar3,puVar3);
|
|
puVar4 = puVar4 + 6;
|
|
}
|
|
*(int *)(iVar2 + 4) = *(int *)(iVar2 + 4) + -1;
|
|
local_20 = 0xffffffff;
|
|
}
|
|
FUN_0040717c(local_8);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004347ac file=munga/interest.cpp name=FUN_004347ac */
|
|
|
|
void __cdecl
|
|
FUN_004347ac(undefined4 param_1,int *param_2,float *param_3,undefined4 *param_4,uint *param_5)
|
|
|
|
{
|
|
uint uVar1;
|
|
bool bVar2;
|
|
uint *puVar3;
|
|
int iVar4;
|
|
int iVar5;
|
|
uint *puVar6;
|
|
int local_48 [4];
|
|
float local_38;
|
|
uint local_34;
|
|
uint local_30;
|
|
uint local_2c;
|
|
uint local_28;
|
|
uint local_24;
|
|
uint local_20;
|
|
uint *local_1c;
|
|
float *local_18;
|
|
int local_14;
|
|
uint *local_10;
|
|
int local_c;
|
|
int local_8;
|
|
|
|
(**(code **)(*param_2 + 0x1c))(param_2);
|
|
local_c = 0;
|
|
if (0 < local_8) {
|
|
do {
|
|
puVar3 = (uint *)(**(code **)*param_2)();
|
|
if ((puVar3[2] & 4) == 0) {
|
|
bVar2 = true;
|
|
if ((*(byte *)((int)puVar3 + 0x2d) & 8) != 0) {
|
|
local_14 = *(int *)(DAT_004efc94 + 0x2c);
|
|
FUN_00420ea4((undefined4 *)&stack0xffffffa4,puVar3 + 3);
|
|
iVar5 = FUN_004291ec(local_14);
|
|
iVar4 = FUN_0042904c(local_14);
|
|
if (iVar5 != iVar4) {
|
|
bVar2 = false;
|
|
}
|
|
}
|
|
if (bVar2) {
|
|
puVar6 = (uint *)FUN_004022b0(*puVar3);
|
|
FUN_004d4918(puVar6,puVar3,*puVar3);
|
|
local_18 = (float *)(puVar6 + 0xc);
|
|
FUN_004085ec(local_18,local_18,param_3);
|
|
if (puVar6[7] == 0x56) {
|
|
uVar1 = *param_5;
|
|
*param_5 = *param_5 + 1;
|
|
puVar6[0x13] = uVar1;
|
|
}
|
|
if ((*(byte *)((int)puVar6 + 0x2d) & 1) == 0) {
|
|
FUN_00420f6c((int)param_4,1);
|
|
FUN_00420ef4(puVar6 + 3,param_4);
|
|
}
|
|
local_1c = (uint *)FUN_004336f0(puVar6);
|
|
FUN_004350d4(param_1,local_1c);
|
|
FUN_004022d0((int *)local_1c);
|
|
FUN_004022d0((int *)puVar6);
|
|
}
|
|
(**(code **)(*param_2 + 0x14))();
|
|
}
|
|
else {
|
|
if (puVar3[1] == 3) {
|
|
local_10 = puVar3;
|
|
iVar4 = FUN_00406fd4(*(int *)(DAT_004efc94 + 0x68),puVar3[3]);
|
|
iVar5 = *(int *)(iVar4 + 4);
|
|
*(int *)(iVar4 + 4) = *(int *)(iVar4 + 4) + 1;
|
|
if (iVar5 == 0) {
|
|
FUN_00406cd0(iVar4);
|
|
}
|
|
local_38 = (float)local_10[4];
|
|
local_34 = local_10[5];
|
|
local_30 = local_10[6];
|
|
local_2c = local_10[7];
|
|
local_28 = local_10[8];
|
|
local_24 = local_10[9];
|
|
local_20 = local_10[10];
|
|
FUN_004085ec(&local_38,&local_38,param_3);
|
|
FUN_004030dc(local_48,*(undefined4 *)(iVar4 + 0x3c),*(undefined4 *)(iVar4 + 0x40),0);
|
|
FUN_004347ac(param_1,local_48,&local_38,param_4,param_5);
|
|
*(int *)(iVar4 + 4) = *(int *)(iVar4 + 4) + -1;
|
|
}
|
|
else {
|
|
FUN_0040385c(s_Unknown_message_marker_in_map_st_004e7d5c,
|
|
s_d__tesla_bt_munga_INTEREST_CPP_004e7d83,0x19f);
|
|
}
|
|
(**(code **)(*param_2 + 0x14))();
|
|
}
|
|
local_c = local_c + 1;
|
|
} while (local_c < local_8);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004349e4 file=? name=FUN_004349e4 */
|
|
|
|
void __cdecl FUN_004349e4(int param_1)
|
|
|
|
{
|
|
undefined4 *puVar1;
|
|
|
|
puVar1 = *(undefined4 **)(param_1 + 0x40);
|
|
if (puVar1 != (undefined4 *)0x0) {
|
|
if (puVar1 != (undefined4 *)0x0) {
|
|
(**(code **)*puVar1)(puVar1,3);
|
|
}
|
|
*(undefined4 *)(param_1 + 0x40) = 0;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00434a08 file=? name=FUN_00434a08 */
|
|
|
|
void FUN_00434a08(void)
|
|
|
|
{
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00434a10 file=? name=FUN_00434a10 */
|
|
|
|
void __cdecl FUN_00434a10(int param_1,int *param_2)
|
|
|
|
{
|
|
(**(code **)(*(int *)(param_1 + 0x2c) + 4))(param_1 + 0x2c,param_2);
|
|
(**(code **)(*param_2 + 0xc))(param_2,param_2[3]);
|
|
FUN_00435080(param_1,param_2);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00434a48 file=? name=FUN_00434a48 */
|
|
|
|
void __cdecl FUN_00434a48(undefined4 param_1,int *param_2)
|
|
|
|
{
|
|
FUN_00435230(param_1,param_2);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00434a60 file=munga/interest.cpp name=FUN_00434a60 */
|
|
|
|
void __cdecl FUN_00434a60(int *param_1,int param_2,int param_3)
|
|
|
|
{
|
|
uint uVar1;
|
|
int iVar2;
|
|
|
|
uVar1 = *(uint *)(param_2 + 0x28) & 0xc;
|
|
if (uVar1 == 0) {
|
|
FUN_00434b4c(param_1,param_2,param_3);
|
|
}
|
|
else if (uVar1 == 4) {
|
|
FUN_00434c80((int)param_1,param_2);
|
|
}
|
|
else if (uVar1 == 8) {
|
|
iVar2 = FUN_0042904c(*(int *)(DAT_004efc94 + 0x2c));
|
|
if (iVar2 == *(int *)(param_2 + 0x18c)) {
|
|
FUN_00434b4c(param_1,param_2,param_3);
|
|
}
|
|
else {
|
|
FUN_00434c80((int)param_1,param_2);
|
|
}
|
|
}
|
|
else if (uVar1 == 0xc) {
|
|
if ((*(byte *)(param_2 + 0x29) & 1) == 0) {
|
|
FUN_00434b18((int)param_1,param_2);
|
|
}
|
|
else {
|
|
FUN_00434b4c(param_1,param_2,param_3);
|
|
}
|
|
}
|
|
else {
|
|
FUN_0040385c(s_InterestManager__NotifyOfEntityC_004e7da2,
|
|
s_d__tesla_bt_munga_INTEREST_CPP_004e7de4,0x321);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00434b18 file=? name=FUN_00434b18 */
|
|
|
|
void __cdecl FUN_00434b18(int param_1,int param_2)
|
|
|
|
{
|
|
undefined4 uVar1;
|
|
|
|
uVar1 = FUN_00433eb8(param_1 + 0x14);
|
|
*(undefined4 *)(param_2 + 0x194) = uVar1;
|
|
FUN_00434fe0(param_1,param_2);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00434b4c file=? name=FUN_00434b4c */
|
|
|
|
void __cdecl FUN_00434b4c(int *param_1,int param_2,int param_3)
|
|
|
|
{
|
|
undefined4 uVar1;
|
|
uint uVar2;
|
|
|
|
uVar1 = FUN_00433eb8((int)(param_1 + 5));
|
|
*(undefined4 *)(param_2 + 0x194) = uVar1;
|
|
FUN_00420ef4((undefined4 *)(param_3 + 0xc),(undefined4 *)(param_2 + 0x184));
|
|
*(undefined4 *)(param_3 + 0x14) = *(undefined4 *)(param_2 + 0x194);
|
|
*(undefined4 *)(param_3 + 0x18) = *(undefined4 *)(param_2 + 0x18c);
|
|
*(undefined4 *)(param_3 + 4) = 3;
|
|
uVar2 = *(uint *)(param_2 + 0x28) & 0xc;
|
|
if ((uVar2 == 0) || (uVar2 == 8)) {
|
|
FUN_0041d7b0(*(int **)(DAT_004efc94 + 0x20),param_3,3);
|
|
}
|
|
else {
|
|
(**(code **)(*param_1 + 0xc))(param_1,param_3);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00434be0 file=? name=FUN_00434be0 */
|
|
|
|
void __cdecl FUN_00434be0(int param_1,uint *param_2)
|
|
|
|
{
|
|
uint uVar1;
|
|
int *piVar2;
|
|
int iVar3;
|
|
|
|
uVar1 = FUN_0042904c(*(int *)(DAT_004efc94 + 0x2c));
|
|
if (uVar1 == param_2[6]) {
|
|
iVar3 = (**(code **)(*(int *)(*(int *)(DAT_004efc94 + 0x2c) + 0x54) + 0xc))
|
|
(*(int *)(DAT_004efc94 + 0x2c) + 0x54,param_2 + 3);
|
|
FUN_004206e8(iVar3);
|
|
FUN_00434fe0(param_1,iVar3);
|
|
}
|
|
else {
|
|
param_2[1] = 3;
|
|
if ((param_2[0xb] & 0xc) == 0) {
|
|
param_2[0xb] = param_2[0xb] & 0xfffffff3 | 4;
|
|
}
|
|
piVar2 = (int *)FUN_004336f0(param_2);
|
|
(**(code **)(**(int **)(DAT_004efc94 + 0x28) + 0xc))(*(int **)(DAT_004efc94 + 0x28),piVar2);
|
|
FUN_004022d0(piVar2);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00434c80 file=? name=FUN_00434c80 */
|
|
|
|
void __cdecl FUN_00434c80(int param_1,int param_2)
|
|
|
|
{
|
|
undefined4 local_20;
|
|
undefined4 uStack_1c;
|
|
|
|
FUN_0042904c(*(int *)(DAT_004efc94 + 0x2c));
|
|
FUN_00420ea4(&local_20,(undefined4 *)(param_2 + 0x184));
|
|
FUN_00434df4();
|
|
FUN_004206e8(param_2);
|
|
uStack_1c = 0x434cd3;
|
|
FUN_00434fe0(param_1,param_2);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00434cdc file=? name=FUN_00434cdc */
|
|
|
|
void __cdecl FUN_00434cdc(int param_1,int param_2)
|
|
|
|
{
|
|
undefined4 local_20;
|
|
undefined4 local_1c;
|
|
undefined4 local_18;
|
|
undefined4 local_14 [2];
|
|
undefined4 local_c;
|
|
undefined4 local_8;
|
|
|
|
FUN_00435030(param_1,param_2);
|
|
if ((*(uint *)(param_2 + 0x28) & 0xc) == 0) {
|
|
local_20 = 0x1c;
|
|
local_1c = 4;
|
|
local_18 = 1;
|
|
FUN_00420ea4(local_14,(undefined4 *)&DAT_00522524);
|
|
local_c = 0;
|
|
local_8 = 0;
|
|
FUN_00420ef4(local_14,(undefined4 *)(param_2 + 0x184));
|
|
local_c = *(undefined4 *)(param_2 + 0x194);
|
|
local_8 = *(undefined4 *)(param_2 + 0x18c);
|
|
(**(code **)(**(int **)(DAT_004efc94 + 0x20) + 0x1c))
|
|
(*(int **)(DAT_004efc94 + 0x20),&local_20,3);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00434d70 file=? name=FUN_00434d70 */
|
|
|
|
void __cdecl FUN_00434d70(undefined4 param_1,uint *param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
|
|
iVar1 = (**(code **)(*(int *)(*(int *)(DAT_004efc94 + 0x2c) + 0x54) + 0xc))
|
|
(*(int *)(DAT_004efc94 + 0x2c) + 0x54,param_2 + 3);
|
|
if (iVar1 != 0) {
|
|
param_2[1] = 9;
|
|
FUN_004351fc(param_1,iVar1,param_2);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00434db4 file=? name=FUN_00434db4 */
|
|
|
|
void FUN_00434db4(void)
|
|
|
|
{
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00434dbc file=munga/interest.cpp name=FUN_00434dbc */
|
|
|
|
void FUN_00434dbc(void)
|
|
|
|
{
|
|
FUN_0040385c(s_InterestManager__EntityNewIntere_004e7e03,s_d__tesla_bt_munga_INTEREST_CPP_004e7e46
|
|
,0x6bb);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00434dd8 file=munga/interest.cpp name=FUN_00434dd8 */
|
|
|
|
void FUN_00434dd8(void)
|
|
|
|
{
|
|
FUN_0040385c(s_InterestManager__LoadResourceFin_004e7e65,s_d__tesla_bt_munga_INTEREST_CPP_004e7ea7
|
|
,0x6f2);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00434df4 file=? name=FUN_00434df4 */
|
|
|
|
void FUN_00434df4(void)
|
|
|
|
{
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00434dfc file=? name=FUN_00434dfc */
|
|
|
|
void FUN_00434dfc(void)
|
|
|
|
{
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00434e04 file=? name=FUN_00434e04 */
|
|
|
|
void __cdecl FUN_00434e04(undefined4 param_1,int param_2,int param_3)
|
|
|
|
{
|
|
FUN_00420ef4((undefined4 *)(param_3 + 0xc),(undefined4 *)(param_2 + 0x184));
|
|
*(undefined4 *)(param_3 + 0x14) = *(undefined4 *)(param_2 + 0x194);
|
|
*(undefined4 *)(param_3 + 0x18) = *(undefined4 *)(param_2 + 0x18c);
|
|
*(undefined4 *)(param_3 + 4) = 6;
|
|
(**(code **)(**(int **)(DAT_004efc94 + 0x20) + 0x1c))(*(int **)(DAT_004efc94 + 0x20),param_3,3);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00434e5c file=? name=FUN_00434e5c */
|
|
|
|
void __cdecl FUN_00434e5c(undefined4 param_1,uint *param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
|
|
iVar1 = (**(code **)(*(int *)(*(int *)(DAT_004efc94 + 0x2c) + 0x54) + 0xc))
|
|
(*(int *)(DAT_004efc94 + 0x2c) + 0x54,param_2 + 3);
|
|
if (iVar1 != 0) {
|
|
param_2[1] = 0xf;
|
|
FUN_004351b4(param_1,iVar1,param_2);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00434ea0 file=? name=FUN_00434ea0 */
|
|
|
|
void __cdecl FUN_00434ea0(undefined4 param_1,int param_2,uint *param_3)
|
|
|
|
{
|
|
uint uVar1;
|
|
undefined4 *puVar2;
|
|
undefined4 uVar3;
|
|
undefined4 local_14 [2];
|
|
undefined4 *local_c;
|
|
|
|
FUN_00420ef4(param_3 + 3,(undefined4 *)(param_2 + 0x184));
|
|
param_3[5] = *(uint *)(param_2 + 0x194);
|
|
param_3[6] = *(uint *)(param_2 + 0x18c);
|
|
FUN_004030dc(local_14,&DAT_00522530,0x600,0);
|
|
uVar1 = *param_3;
|
|
puVar2 = (undefined4 *)FUN_004022c8(0xc,local_c);
|
|
if (puVar2 == (undefined4 *)0x0) {
|
|
uVar3 = 0;
|
|
}
|
|
else {
|
|
uVar3 = FUN_0043525c(puVar2,uVar1 + 0xc);
|
|
}
|
|
local_c = (undefined4 *)((int)local_c + 0xc);
|
|
FUN_004d4918(local_c,param_3,*param_3);
|
|
(**(code **)(**(int **)(DAT_004efc94 + 0x20) + 0x1c))(*(int **)(DAT_004efc94 + 0x20),uVar3,3);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00434f4c file=? name=FUN_00434f4c */
|
|
|
|
void __cdecl FUN_00434f4c(undefined4 param_1,undefined4 *param_2)
|
|
|
|
{
|
|
uint *puVar1;
|
|
int iVar2;
|
|
undefined4 local_14 [2];
|
|
uint *local_c;
|
|
|
|
FUN_004030dc(local_14,param_2,*param_2,0);
|
|
puVar1 = (uint *)((int)local_c + 0xc);
|
|
iVar2 = (int)local_c + 0x18;
|
|
local_c = puVar1;
|
|
iVar2 = (**(code **)(*(int *)(*(int *)(DAT_004efc94 + 0x2c) + 0x54) + 0xc))
|
|
(*(int *)(DAT_004efc94 + 0x2c) + 0x54,iVar2);
|
|
if (iVar2 != 0) {
|
|
FUN_004351b4(param_1,iVar2,puVar1);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00434fa8 file=munga/interest.cpp name=FUN_00434fa8 */
|
|
|
|
void FUN_00434fa8(void)
|
|
|
|
{
|
|
FUN_0040385c(s_InterestManager__HostInterestAre_004e7ec6,s_d__tesla_bt_munga_INTEREST_CPP_004e7f0c
|
|
,0x8f1);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00434fc4 file=munga/interest.cpp name=FUN_00434fc4 */
|
|
|
|
void FUN_00434fc4(void)
|
|
|
|
{
|
|
FUN_0040385c(s_InterestManager__InterestZoneDel_004e7f2b,s_d__tesla_bt_munga_INTEREST_CPP_004e7f6a
|
|
,0x915);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00434fe0 file=? name=FUN_00434fe0 */
|
|
|
|
void __cdecl FUN_00434fe0(int param_1,undefined4 param_2)
|
|
|
|
{
|
|
int *piVar1;
|
|
int local_18 [5];
|
|
|
|
FUN_004353c0(local_18,param_1 + 0x2c);
|
|
while( true ) {
|
|
piVar1 = (int *)(**(code **)(local_18[0] + 0x28))(local_18);
|
|
if (piVar1 == (int *)0x0) break;
|
|
(**(code **)(*piVar1 + 0x10))(piVar1,param_2);
|
|
}
|
|
FUN_0043541d(local_18,2);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00435030 file=? name=FUN_00435030 */
|
|
|
|
void __cdecl FUN_00435030(int param_1,undefined4 param_2)
|
|
|
|
{
|
|
int *piVar1;
|
|
int local_18 [5];
|
|
|
|
FUN_004353c0(local_18,param_1 + 0x2c);
|
|
while( true ) {
|
|
piVar1 = (int *)(**(code **)(local_18[0] + 0x28))(local_18);
|
|
if (piVar1 == (int *)0x0) break;
|
|
(**(code **)(*piVar1 + 0x14))(piVar1,param_2);
|
|
}
|
|
FUN_0043541d(local_18,2);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00435080 file=? name=FUN_00435080 */
|
|
|
|
void __cdecl FUN_00435080(undefined4 param_1,int *param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
int local_18 [5];
|
|
|
|
FUN_004292ac(local_18,*(int *)(DAT_004efc94 + 0x2c));
|
|
while( true ) {
|
|
iVar1 = (**(code **)(local_18[0] + 0x28))(local_18);
|
|
if (iVar1 == 0) break;
|
|
(**(code **)(*param_2 + 0x10))(param_2,iVar1);
|
|
}
|
|
FUN_004292d0(local_18,2);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004350d4 file=? name=FUN_004350d4 */
|
|
|
|
void __cdecl FUN_004350d4(undefined4 param_1,uint *param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
|
|
iVar1 = 1;
|
|
if (*(int *)(DAT_004efc94 + 0x88) == 5) {
|
|
iVar1 = 3;
|
|
}
|
|
FUN_0041acbc(*(int *)(DAT_004efc94 + 0x60),iVar1,*(undefined4 *)(DAT_004efc94 + 0x28),param_2,
|
|
DAT_004e17f4);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00435120 file=munga/interest.cpp name=FUN_00435120 */
|
|
|
|
void __cdecl FUN_00435120(undefined4 param_1,int *param_2,int param_3,uint *param_4)
|
|
|
|
{
|
|
undefined4 uVar1;
|
|
int iVar2;
|
|
int unaff_ESI;
|
|
|
|
uVar1 = FUN_00417ab4(param_3 + 0x40);
|
|
iVar2 = (**(code **)(*param_2 + 0x2c))(param_2,uVar1);
|
|
if (iVar2 == 0) {
|
|
unaff_ESI = 0;
|
|
if (*(int *)(DAT_004efc94 + 0x88) == 5) {
|
|
unaff_ESI = 1;
|
|
}
|
|
}
|
|
else if (iVar2 == 1) {
|
|
unaff_ESI = 0;
|
|
if (*(int *)(DAT_004efc94 + 0x88) == 5) {
|
|
unaff_ESI = 2;
|
|
}
|
|
}
|
|
else {
|
|
FUN_0040385c(s_Application__PostInterestEvent___004e7f89,
|
|
s_d__tesla_bt_munga_INTEREST_CPP_004e7fc2,0x9b1);
|
|
}
|
|
FUN_0041acbc(*(int *)(DAT_004efc94 + 0x60),unaff_ESI,param_3,param_4,DAT_004e17f4);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004351b4 file=? name=FUN_004351b4 */
|
|
|
|
void __cdecl FUN_004351b4(undefined4 param_1,undefined4 param_2,uint *param_3)
|
|
|
|
{
|
|
int iVar1;
|
|
|
|
iVar1 = 2;
|
|
if (*(int *)(DAT_004efc94 + 0x88) == 5) {
|
|
iVar1 = 4;
|
|
}
|
|
FUN_0041acbc(*(int *)(DAT_004efc94 + 0x60),iVar1,param_2,param_3,DAT_004e17f4);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004351fc file=? name=FUN_004351fc */
|
|
|
|
void __cdecl FUN_004351fc(undefined4 param_1,undefined4 param_2,uint *param_3)
|
|
|
|
{
|
|
FUN_0041acbc(*(int *)(DAT_004efc94 + 0x60),3,param_2,param_3,DAT_004e17f4);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00435230 file=? name=FUN_00435230 */
|
|
|
|
void __cdecl FUN_00435230(undefined4 param_1,int *param_2)
|
|
|
|
{
|
|
(**(code **)(*param_2 + 0x18))(param_2);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00435240 file=? name=FUN_00435240 */
|
|
|
|
void __cdecl FUN_00435240(undefined4 *param_1)
|
|
|
|
{
|
|
*param_1 = 0xc;
|
|
param_1[1] = 5;
|
|
param_1[2] = 1;
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @0043525c file=? name=FUN_0043525c */
|
|
|
|
void __cdecl FUN_0043525c(undefined4 *param_1,undefined4 param_2)
|
|
|
|
{
|
|
*param_1 = param_2;
|
|
param_1[1] = 7;
|
|
param_1[2] = 1;
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00435278 file=? name=FUN_00435278 */
|
|
|
|
undefined4 * __cdecl FUN_00435278(undefined4 *param_1,undefined4 *param_2,undefined4 param_3)
|
|
|
|
{
|
|
*param_1 = 0x18;
|
|
param_1[1] = 8;
|
|
param_1[2] = 1;
|
|
FUN_00420e8c(param_1 + 3);
|
|
FUN_00420ef4(param_1 + 3,param_2);
|
|
param_1[5] = param_3;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @004352b8 file=? name=FUN_004352b8 */
|
|
|
|
void __cdecl FUN_004352b8(undefined4 *param_1)
|
|
|
|
{
|
|
*param_1 = 0xc;
|
|
param_1[1] = 9;
|
|
param_1[2] = 1;
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004352d4 file=? name=FUN_004352d4 */
|
|
|
|
void __cdecl FUN_004352d4(undefined4 *param_1)
|
|
|
|
{
|
|
*param_1 = 0xc;
|
|
param_1[1] = 10;
|
|
param_1[2] = 1;
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00435375 file=? name=FUN_00435375 */
|
|
|
|
undefined4 * __cdecl FUN_00435375(undefined4 *param_1,undefined4 param_2)
|
|
|
|
{
|
|
FUN_0041827c(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e806c;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00435394 file=? name=FUN_00435394 */
|
|
|
|
void __cdecl FUN_00435394(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e806c;
|
|
FUN_004182a8(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004353c0 file=? name=FUN_004353c0 */
|
|
|
|
undefined4 * __cdecl FUN_004353c0(undefined4 *param_1,int param_2)
|
|
|
|
{
|
|
FUN_00418398(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e8018;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @004353df file=? name=FUN_004353df */
|
|
|
|
undefined4 * __cdecl FUN_004353df(undefined4 *param_1,int param_2)
|
|
|
|
{
|
|
FUN_00418398(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e8018;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @004353fe file=? name=FUN_004353fe */
|
|
|
|
undefined4 * __cdecl FUN_004353fe(undefined4 *param_1,int param_2)
|
|
|
|
{
|
|
FUN_004183c0(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e8018;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @0043541d file=? name=FUN_0043541d */
|
|
|
|
void __cdecl FUN_0043541d(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e8018;
|
|
FUN_004183ec(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @0043544c file=? name=FUN_0043544c */
|
|
|
|
undefined4 * __cdecl FUN_0043544c(int param_1)
|
|
|
|
{
|
|
undefined4 *puVar1;
|
|
|
|
puVar1 = (undefined4 *)FUN_00402298(0x1c);
|
|
if (puVar1 == (undefined4 *)0x0) {
|
|
puVar1 = (undefined4 *)0x0;
|
|
}
|
|
else {
|
|
puVar1 = FUN_00435478(puVar1,*(undefined4 *)(param_1 + 0x194));
|
|
}
|
|
return puVar1;
|
|
}
|
|
|
|
|
|
|
|
/* @00435478 file=? name=FUN_00435478 */
|
|
|
|
undefined4 * __cdecl FUN_00435478(undefined4 *param_1,undefined4 param_2)
|
|
|
|
{
|
|
FUN_004178cc(param_1,2);
|
|
*param_1 = &PTR_FUN_004e80f4;
|
|
FUN_00435614(param_1 + 4,0);
|
|
param_1[3] = param_2;
|
|
FUN_00435544((int)param_1,param_2);
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @004354b8 file=? name=FUN_004354b8 */
|
|
|
|
void __cdecl FUN_004354b8(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e80f4;
|
|
FUN_00435633(param_1 + 4,2);
|
|
FUN_0041790c(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004354f4 file=? name=FUN_004354f4 */
|
|
|
|
undefined4 FUN_004354f4(void)
|
|
|
|
{
|
|
FUN_00415f1c();
|
|
return 1;
|
|
}
|
|
|
|
|
|
|
|
/* @00435508 file=? name=FUN_00435508 */
|
|
|
|
void __cdecl FUN_00435508(int param_1,int param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
|
|
if (param_2 != *(int *)(param_1 + 0xc)) {
|
|
*(int *)(param_1 + 0xc) = param_2;
|
|
iVar1 = FUN_00417ab4(param_1 + 0x10);
|
|
if (iVar1 != 0) {
|
|
FUN_00417a5c(param_1 + 0x10);
|
|
}
|
|
FUN_00435544(param_1,param_2);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00435544 file=? name=FUN_00435544 */
|
|
|
|
void __cdecl FUN_00435544(int param_1,undefined4 param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined4 *puVar2;
|
|
int *piVar3;
|
|
|
|
iVar1 = FUN_00433ed4(*(int *)(DAT_004efc94 + 0x30) + 0x14);
|
|
piVar3 = *(int **)(iVar1 + 0x38);
|
|
if (piVar3 == (int *)0x0) {
|
|
puVar2 = (undefined4 *)FUN_00402298(0x38);
|
|
if (puVar2 == (undefined4 *)0x0) {
|
|
piVar3 = (int *)0x0;
|
|
}
|
|
else {
|
|
piVar3 = FUN_004343b0(puVar2,param_2);
|
|
}
|
|
*(int **)(iVar1 + 0x38) = piVar3;
|
|
FUN_00434a10(*(int *)(DAT_004efc94 + 0x30),piVar3);
|
|
}
|
|
(**(code **)(*(int *)(param_1 + 0x10) + 4))(param_1 + 0x10,piVar3);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004355bc file=? name=FUN_004355bc */
|
|
|
|
undefined4 * __cdecl FUN_004355bc(undefined4 *param_1,int param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
|
|
iVar1 = FUN_00417ab4(param_2 + 0x10);
|
|
FUN_0043452c(param_1,iVar1);
|
|
*param_1 = &PTR_FUN_004e80a0;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @004355e8 file=? name=FUN_004355e8 */
|
|
|
|
void __cdecl FUN_004355e8(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e80a0;
|
|
FUN_00434550(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00435614 file=? name=FUN_00435614 */
|
|
|
|
undefined4 * __cdecl FUN_00435614(undefined4 *param_1,undefined4 param_2)
|
|
|
|
{
|
|
FUN_004179d4(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e8098;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00435633 file=? name=FUN_00435633 */
|
|
|
|
void __cdecl FUN_00435633(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e8098;
|
|
FUN_004179f8(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00435660 file=? name=FUN_00435660 */
|
|
|
|
undefined4 * __cdecl
|
|
FUN_00435660(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,
|
|
undefined4 param_5)
|
|
|
|
{
|
|
FUN_00415e90(param_1,1);
|
|
*param_1 = &PTR_FUN_004e81a0;
|
|
param_1[3] = param_2;
|
|
param_1[4] = param_3;
|
|
param_1[5] = param_4;
|
|
param_1[6] = param_5;
|
|
param_1[7] = 1;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @0043569c file=? name=FUN_0043569c */
|
|
|
|
void __cdecl FUN_0043569c(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e81a0;
|
|
FUN_00415ed8(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_00402f98(0x4e8100,param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004356d4 file=? name=FUN_004356d4 */
|
|
|
|
undefined4 * __cdecl FUN_004356d4(undefined4 *param_1)
|
|
|
|
{
|
|
FUN_004178cc(param_1,2);
|
|
*param_1 = &PTR_FUN_004e8194;
|
|
FUN_004359a8(param_1 + 3,0);
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00435700 file=? name=FUN_00435700 */
|
|
|
|
void __cdecl FUN_00435700(int *param_1,byte param_2)
|
|
|
|
{
|
|
undefined4 *puVar1;
|
|
int local_10 [3];
|
|
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e8194;
|
|
FUN_00435a12(local_10,(int)(param_1 + 3));
|
|
while( true ) {
|
|
puVar1 = (undefined4 *)(**(code **)(local_10[0] + 0x28))(local_10);
|
|
if (puVar1 == (undefined4 *)0x0) break;
|
|
if (puVar1 != (undefined4 *)0x0) {
|
|
(**(code **)*puVar1)(puVar1,3);
|
|
}
|
|
}
|
|
FUN_00435a50(local_10,2);
|
|
FUN_004359c7(param_1 + 3,2);
|
|
FUN_0041790c(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00435780 file=? name=FUN_00435780 */
|
|
|
|
undefined4 FUN_00435780(void)
|
|
|
|
{
|
|
FUN_00415f1c();
|
|
return 1;
|
|
}
|
|
|
|
|
|
|
|
/* @00435794 file=? name=FUN_00435794 */
|
|
|
|
void FUN_00435794(int param_1)
|
|
|
|
{
|
|
bool bVar1;
|
|
int *piVar2;
|
|
undefined4 *puVar3;
|
|
int aiStack_38 [3];
|
|
int aiStack_2c [5];
|
|
int aiStack_18 [5];
|
|
|
|
FUN_0042934c(aiStack_18,*(int *)(DAT_004efc94 + 0x2c));
|
|
FUN_004292fc(aiStack_2c,*(int *)(DAT_004efc94 + 0x2c));
|
|
while (piVar2 = (int *)(**(code **)(aiStack_18[0] + 0x28))(aiStack_18), piVar2 != (int *)0x0) {
|
|
if (((*(byte *)(piVar2 + 10) & 2) == 0) || (piVar2[4] <= piVar2[5])) {
|
|
bVar1 = true;
|
|
}
|
|
else {
|
|
bVar1 = false;
|
|
}
|
|
if (bVar1) {
|
|
FUN_0041f8d4(piVar2,&stack0x00000008);
|
|
}
|
|
}
|
|
while (piVar2 = (int *)(**(code **)(aiStack_2c[0] + 0x28))(aiStack_2c), piVar2 != (int *)0x0) {
|
|
if ((piVar2[0x66] != 0) && ((*(byte *)(piVar2 + 10) & 2) == 0)) {
|
|
puVar3 = FUN_0041f8d4(piVar2,&stack0x00000008);
|
|
FUN_00434db4();
|
|
if (puVar3 != (undefined4 *)0x0) {
|
|
FUN_00434e04(*(undefined4 *)(DAT_004efc94 + 0x30),(int)piVar2,(int)puVar3);
|
|
}
|
|
}
|
|
}
|
|
FUN_00435a12(aiStack_38,param_1 + 0xc);
|
|
while (puVar3 = (undefined4 *)(**(code **)(aiStack_38[0] + 0x28))(aiStack_38),
|
|
puVar3 != (undefined4 *)0x0) {
|
|
(*(code *)puVar3[4])(puVar3[3]);
|
|
if (puVar3[7] != 0) {
|
|
FUN_0041c08c(puVar3[3]);
|
|
*(uint *)(puVar3[3] + 0x28) = *(uint *)(puVar3[3] + 0x28) & 0xfffffffe;
|
|
}
|
|
if (puVar3 != (undefined4 *)0x0) {
|
|
(**(code **)*puVar3)(puVar3,3);
|
|
}
|
|
}
|
|
FUN_00435a50(aiStack_38,2);
|
|
FUN_00429320(aiStack_2c,2);
|
|
FUN_00429370(aiStack_18,2);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @0043579a file=? name=FUN_0043579a */
|
|
|
|
void FUN_0043579a(void)
|
|
|
|
{
|
|
int iVar1;
|
|
bool bVar2;
|
|
int *piVar3;
|
|
undefined4 *puVar4;
|
|
int unaff_EBP;
|
|
|
|
iVar1 = *(int *)(unaff_EBP + 8);
|
|
FUN_0042934c((undefined4 *)(unaff_EBP + -0x14),*(int *)(DAT_004efc94 + 0x2c));
|
|
FUN_004292fc((undefined4 *)(unaff_EBP + -0x28),*(int *)(DAT_004efc94 + 0x2c));
|
|
while (piVar3 = (int *)(**(code **)(*(int *)(unaff_EBP + -0x14) + 0x28))(unaff_EBP + -0x14),
|
|
piVar3 != (int *)0x0) {
|
|
if (((*(byte *)(piVar3 + 10) & 2) == 0) || (piVar3[4] <= piVar3[5])) {
|
|
bVar2 = true;
|
|
}
|
|
else {
|
|
bVar2 = false;
|
|
}
|
|
if (bVar2) {
|
|
FUN_0041f8d4(piVar3,unaff_EBP + 0xc);
|
|
}
|
|
}
|
|
while (piVar3 = (int *)(**(code **)(*(int *)(unaff_EBP + -0x28) + 0x28))(unaff_EBP + -0x28),
|
|
piVar3 != (int *)0x0) {
|
|
if ((piVar3[0x66] != 0) && ((*(byte *)(piVar3 + 10) & 2) == 0)) {
|
|
puVar4 = FUN_0041f8d4(piVar3,unaff_EBP + 0xc);
|
|
FUN_00434db4();
|
|
if (puVar4 != (undefined4 *)0x0) {
|
|
FUN_00434e04(*(undefined4 *)(DAT_004efc94 + 0x30),(int)piVar3,(int)puVar4);
|
|
}
|
|
}
|
|
}
|
|
FUN_00435a12((undefined4 *)(unaff_EBP + -0x34),iVar1 + 0xc);
|
|
while (puVar4 = (undefined4 *)(**(code **)(*(int *)(unaff_EBP + -0x34) + 0x28))(unaff_EBP + -0x34)
|
|
, puVar4 != (undefined4 *)0x0) {
|
|
(*(code *)puVar4[4])(puVar4[3]);
|
|
if (puVar4[7] != 0) {
|
|
FUN_0041c08c(puVar4[3]);
|
|
*(uint *)(puVar4[3] + 0x28) = *(uint *)(puVar4[3] + 0x28) & 0xfffffffe;
|
|
}
|
|
if (puVar4 != (undefined4 *)0x0) {
|
|
(**(code **)*puVar4)(puVar4,3);
|
|
}
|
|
}
|
|
FUN_00435a50((int *)(unaff_EBP + -0x34),2);
|
|
FUN_00429320((int *)(unaff_EBP + -0x28),2);
|
|
FUN_00429370((int *)(unaff_EBP + -0x14),2);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004358e8 file=? name=FUN_004358e8 */
|
|
|
|
void __cdecl
|
|
FUN_004358e8(int param_1,int param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined4 *puVar2;
|
|
int local_10 [3];
|
|
|
|
FUN_00435a12(local_10,param_1 + 0xc);
|
|
do {
|
|
iVar1 = (**(code **)(local_10[0] + 0x28))(local_10);
|
|
if (iVar1 == 0) goto LAB_0043592f;
|
|
} while ((param_2 != *(int *)(iVar1 + 0xc)) || (*(int *)(iVar1 + 0x1c) == 0));
|
|
*(undefined4 *)(iVar1 + 0x1c) = 0;
|
|
LAB_0043592f:
|
|
puVar2 = FUN_00402f74(0x4e8100);
|
|
if (puVar2 == (undefined4 *)0x0) {
|
|
puVar2 = (undefined4 *)0x0;
|
|
}
|
|
else {
|
|
puVar2 = FUN_00435660(puVar2,param_2,param_3,param_4,param_5);
|
|
}
|
|
(**(code **)(*(int *)(param_1 + 0xc) + 4))(param_1 + 0xc,puVar2);
|
|
FUN_00435a50(local_10,2);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004359a8 file=? name=FUN_004359a8 */
|
|
|
|
undefined4 * __cdecl FUN_004359a8(undefined4 *param_1,undefined4 param_2)
|
|
|
|
{
|
|
FUN_00417be0(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e818c;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @004359c7 file=? name=FUN_004359c7 */
|
|
|
|
void __cdecl FUN_004359c7(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e818c;
|
|
FUN_00417c0c(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004359f3 file=? name=FUN_004359f3 */
|
|
|
|
undefined4 * __cdecl FUN_004359f3(undefined4 *param_1,int param_2)
|
|
|
|
{
|
|
FUN_00417d00(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e813c;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00435a12 file=? name=FUN_00435a12 */
|
|
|
|
undefined4 * __cdecl FUN_00435a12(undefined4 *param_1,int param_2)
|
|
|
|
{
|
|
FUN_00417d00(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e813c;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00435a31 file=? name=FUN_00435a31 */
|
|
|
|
undefined4 * __cdecl FUN_00435a31(undefined4 *param_1,int param_2)
|
|
|
|
{
|
|
FUN_00417d28(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e813c;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00435a50 file=? name=FUN_00435a50 */
|
|
|
|
void __cdecl FUN_00435a50(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e813c;
|
|
FUN_00417d54(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00435a7c file=? name=FUN_00435a7c */
|
|
|
|
void __cdecl FUN_00435a7c(undefined4 *param_1)
|
|
|
|
{
|
|
param_1[2] = 1;
|
|
*param_1 = 0;
|
|
param_1[1] = 0;
|
|
param_1[3] = 0;
|
|
param_1[4] = 0;
|
|
param_1[5] = 0;
|
|
param_1[6] = 0;
|
|
param_1[7] = 0;
|
|
param_1[8] = 0xffffffff;
|
|
param_1[9] = 0xffffffff;
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00435abc file=? name=FUN_00435abc */
|
|
|
|
undefined4 FUN_00435abc(void)
|
|
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
|
|
|
|
/* @00435ac8 file=? name=FUN_00435ac8 */
|
|
|
|
undefined4 __cdecl
|
|
FUN_00435ac8(int param_1,char *param_2,int param_3,undefined4 param_4,float *param_5)
|
|
|
|
{
|
|
float *pfVar1;
|
|
int iVar2;
|
|
undefined4 *puVar3;
|
|
undefined4 uVar4;
|
|
|
|
pfVar1 = param_5;
|
|
if (param_5 == (float *)0x0) {
|
|
pfVar1 = (float *)FUN_00402298(8);
|
|
}
|
|
iVar2 = FUN_00404118(param_3,s_gamedata_004e81a4,s_ReticleX_004e81ad,pfVar1);
|
|
if (iVar2 == 0) {
|
|
*pfVar1 = 0.0;
|
|
}
|
|
iVar2 = FUN_00404118(param_3,s_gamedata_004e81b6,s_ReticleY_004e81bf,pfVar1 + 1);
|
|
if (iVar2 == 0) {
|
|
pfVar1[1] = 0.0;
|
|
}
|
|
if (param_5 == (float *)0x0) {
|
|
puVar3 = (undefined4 *)FUN_00406db4(param_1,param_2,0xf,1,0,pfVar1,4,-1);
|
|
FUN_004022d0((int *)pfVar1);
|
|
uVar4 = *puVar3;
|
|
}
|
|
else {
|
|
uVar4 = 0;
|
|
}
|
|
return uVar4;
|
|
}
|
|
|
|
|
|
|
|
/* @00435b64 file=? name=FUN_00435b64 */
|
|
|
|
undefined4 * __cdecl
|
|
FUN_00435b64(undefined4 *param_1,undefined4 param_2,int param_3,undefined4 param_4,
|
|
undefined4 param_5)
|
|
|
|
{
|
|
FUN_00434220(param_1,*(undefined4 *)(param_3 + 0x194),param_4,param_5);
|
|
*param_1 = &PTR_FUN_004e821c;
|
|
FUN_00428cb4(param_1 + 10,0);
|
|
param_1[9] = param_2;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00435ba8 file=? name=FUN_00435ba8 */
|
|
|
|
void __cdecl FUN_00435ba8(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e821c;
|
|
FUN_00428cd3(param_1 + 10,2);
|
|
FUN_00434260(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00435be4 file=? name=FUN_00435be4 */
|
|
|
|
undefined4 FUN_00435be4(void)
|
|
|
|
{
|
|
FUN_004342bc();
|
|
return 1;
|
|
}
|
|
|
|
|
|
|
|
/* @00435bf8 file=? name=FUN_00435bf8 */
|
|
|
|
void __cdecl FUN_00435bf8(int param_1,int *param_2)
|
|
|
|
{
|
|
uint local_18 [5];
|
|
|
|
(**(code **)(*(int *)(param_1 + 0x28) + 4))(param_1 + 0x28,param_2);
|
|
FUN_00436544(local_18,(int)param_2);
|
|
FUN_00435120(*(undefined4 *)(DAT_004efc94 + 0x30),param_2,*(int *)(param_1 + 0x24),local_18);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00435c44 file=? name=FUN_00435c44 */
|
|
|
|
void __cdecl FUN_00435c44(int param_1,int param_2)
|
|
|
|
{
|
|
int local_14 [4];
|
|
|
|
(**(code **)(**(int **)(param_1 + 0x24) + 0x28))(*(int **)(param_1 + 0x24),param_2);
|
|
FUN_00415f30(local_14,param_2,0xffffffff);
|
|
FUN_004161fc((int)local_14,param_1 + 0x28);
|
|
FUN_00415f90(local_14,2);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00435c94 file=? name=FUN_00435c94 */
|
|
|
|
void __cdecl FUN_00435c94(int *param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
int local_18 [5];
|
|
|
|
FUN_00428cff(local_18,(int)(param_1 + 10));
|
|
while( true ) {
|
|
iVar1 = (**(code **)(local_18[0] + 0x30))(local_18);
|
|
if (iVar1 == 0) break;
|
|
(**(code **)(*param_1 + 0x14))(param_1,iVar1);
|
|
}
|
|
FUN_00428d5c(local_18,2);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00435ce0 file=? name=FUN_00435ce0 */
|
|
|
|
undefined4 * __cdecl FUN_00435ce0(undefined4 *param_1,int param_2)
|
|
|
|
{
|
|
FUN_00428cff(param_1,param_2 + 0x28);
|
|
*param_1 = &PTR_FUN_004e81c8;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00435d04 file=? name=FUN_00435d04 */
|
|
|
|
void __cdecl FUN_00435d04(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e81c8;
|
|
FUN_00428d5c(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00435d30 file=? name=FUN_00435d30 */
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
undefined4 * __cdecl
|
|
FUN_00435d30(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,
|
|
undefined4 param_5,undefined4 param_6,undefined4 param_7,undefined4 param_8)
|
|
|
|
{
|
|
undefined4 uVar1;
|
|
|
|
FUN_004178cc(param_1,param_7);
|
|
*param_1 = &PTR_FUN_004e3320;
|
|
param_1[3] = param_8;
|
|
*param_1 = &PTR_FUN_004e8554;
|
|
FUN_00436769(param_1 + 0xd,0);
|
|
FUN_0042f121(param_1 + 0x10,0);
|
|
param_1[4] = 0;
|
|
param_1[5] = param_2;
|
|
uVar1 = FUN_004dcd94();
|
|
param_1[6] = uVar1;
|
|
uVar1 = FUN_004dcd94();
|
|
param_1[7] = uVar1;
|
|
param_1[8] = param_3;
|
|
param_1[9] = param_4;
|
|
param_1[10] = param_5;
|
|
param_1[0xb] = param_6;
|
|
param_1[0xc] = DAT_004e8244;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00435df8 file=? name=FUN_00435df8 */
|
|
|
|
void __cdecl FUN_00435df8(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e8554;
|
|
(**(code **)(*param_1 + 0x18))(param_1);
|
|
FUN_0042f140(param_1 + 0x10,2);
|
|
FUN_00436788(param_1 + 0xd,2);
|
|
FUN_0041790c(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00435e48 file=? name=FUN_00435e48 */
|
|
|
|
undefined4 __cdecl FUN_00435e48(int param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
|
|
iVar1 = FUN_0041a1a4(**(int **)(param_1 + 0xc),0x4e82c8);
|
|
if (iVar1 == 0) {
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
|
|
|
|
/* @00435e70 file=? name=FUN_00435e70 */
|
|
|
|
void __cdecl FUN_00435e70(int *param_1,int param_2)
|
|
|
|
{
|
|
undefined4 *puVar1;
|
|
int *piVar2;
|
|
|
|
(**(code **)(*param_1 + 0x18))(param_1);
|
|
(**(code **)(param_1[0x10] + 4))(param_1 + 0x10,param_2);
|
|
puVar1 = (undefined4 *)FUN_00402298(0x3c);
|
|
if (puVar1 == (undefined4 *)0x0) {
|
|
piVar2 = (int *)0x0;
|
|
}
|
|
else {
|
|
piVar2 = FUN_00435b64(puVar1,param_1,param_2,param_1[10],param_1[0xb]);
|
|
}
|
|
FUN_00434a10(*(int *)(DAT_004efc94 + 0x30),piVar2);
|
|
(**(code **)(param_1[0xd] + 4))(param_1 + 0xd,piVar2);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00435ee4 file=? name=FUN_00435ee4 */
|
|
|
|
void __cdecl FUN_00435ee4(int param_1)
|
|
|
|
{
|
|
int *piVar1;
|
|
|
|
piVar1 = (int *)FUN_00417ab4(param_1 + 0x34);
|
|
if (piVar1 != (int *)0x0) {
|
|
FUN_00417a5c(param_1 + 0x40);
|
|
FUN_00434a48(*(undefined4 *)(DAT_004efc94 + 0x30),piVar1);
|
|
if (piVar1 != (int *)0x0) {
|
|
(**(code **)*piVar1)(piVar1,3);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00435f2c file=? name=FUN_00435f2c */
|
|
|
|
void __cdecl FUN_00435f2c(int *param_1,undefined4 param_2)
|
|
|
|
{
|
|
int *piVar1;
|
|
|
|
param_1[4] = 1;
|
|
piVar1 = (int *)FUN_00414b60();
|
|
param_1[7] = *piVar1;
|
|
FUN_00436310(*(int *)(DAT_004efc94 + 0x38),param_1);
|
|
(**(code **)(*param_1 + 0x30))(param_1,param_2);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00435f6c file=? name=FUN_00435f6c */
|
|
|
|
void __cdecl FUN_00435f6c(int *param_1)
|
|
|
|
{
|
|
if (param_1[4] != 0) {
|
|
param_1[4] = 0;
|
|
FUN_0043632c(*(int *)(DAT_004efc94 + 0x38),(int)param_1);
|
|
(**(code **)(*param_1 + 0x34))(param_1);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00435f9c file=? name=FUN_00435f9c */
|
|
|
|
void __cdecl FUN_00435f9c(int param_1)
|
|
|
|
{
|
|
*(undefined4 *)(param_1 + 0x10) = 2;
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00435fac file=? name=FUN_00435fac */
|
|
|
|
void __cdecl FUN_00435fac(int param_1,int param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
int *piVar2;
|
|
|
|
if ((*(int *)(param_1 + 0x10) != 0) && (*(int *)(param_1 + 0x1c) <= param_2)) {
|
|
iVar1 = FUN_00417ab4(param_1 + 0x40);
|
|
piVar2 = (int *)FUN_00417ab4(param_1 + 0x34);
|
|
(**(code **)(*piVar2 + 0xc))(piVar2,*(undefined4 *)(iVar1 + 0x194));
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00435ff0 file=? name=FUN_00435ff0 */
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
void __cdecl FUN_00435ff0(int *param_1,int param_2,undefined4 param_3)
|
|
|
|
{
|
|
int *piVar1;
|
|
float fVar2;
|
|
int *piVar3;
|
|
int iVar4;
|
|
float10 fVar5;
|
|
int local_24 [5];
|
|
float local_10;
|
|
float local_c;
|
|
float local_8;
|
|
|
|
if ((param_1[4] != 0) && (param_1[7] <= param_2)) {
|
|
piVar3 = (int *)FUN_00414b60();
|
|
piVar1 = param_1 + 7;
|
|
*piVar1 = *piVar3;
|
|
*piVar1 = *piVar1 + param_1[6];
|
|
fVar5 = FUN_00401b1c();
|
|
local_8 = (float)fVar5;
|
|
fVar2 = local_8 + (float)param_1[0xc];
|
|
local_c = _DAT_004360dc;
|
|
if ((_DAT_004360dc <= fVar2) && (local_c = fVar2, _DAT_004360e0 < fVar2)) {
|
|
local_c = _DAT_004360e0;
|
|
}
|
|
iVar4 = FUN_00417ab4((int)(param_1 + 0xd));
|
|
FUN_00435ce0(local_24,iVar4);
|
|
(**(code **)(*param_1 + 0x2c))(param_1,param_3,local_24);
|
|
fVar5 = FUN_00401b1c();
|
|
while (((local_10 = (float)fVar5, local_8 < local_10 && (local_10 < local_c)) &&
|
|
(iVar4 = (**(code **)(*param_1 + 0x1c))(param_1), iVar4 != 0))) {
|
|
fVar5 = FUN_00401b1c();
|
|
}
|
|
FUN_00435d04(local_24,2);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @0043610c file=? name=FUN_0043610c */
|
|
|
|
void __cdecl FUN_0043610c(int *param_1,int param_2)
|
|
|
|
{
|
|
(**(code **)(*param_1 + 0x28))(param_1,*(undefined4 *)(param_2 + 0xc));
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00436124 file=? name=FUN_00436124 */
|
|
|
|
void __cdecl FUN_00436124(int *param_1,int param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
int iVar2;
|
|
int iVar3;
|
|
int iVar4;
|
|
|
|
iVar1 = FUN_00436610(param_2);
|
|
if (iVar1 != 0) {
|
|
iVar4 = *(int *)(param_2 + 0x18);
|
|
iVar2 = FUN_00407064(*(int *)(DAT_004efc94 + 0x68),iVar4,0xf);
|
|
iVar3 = *(int *)(iVar2 + 4);
|
|
*(int *)(iVar2 + 4) = *(int *)(iVar2 + 4) + 1;
|
|
if (iVar3 == 0) {
|
|
FUN_00406cd0(iVar2);
|
|
}
|
|
if (**(int **)(iVar2 + 0x3c) != 0) {
|
|
iVar3 = FUN_00416f08();
|
|
iVar3 = FUN_00430878(iVar3,iVar1);
|
|
if (iVar3 != -1) {
|
|
iVar4 = iVar3;
|
|
}
|
|
}
|
|
(**(code **)(*param_1 + 0x38))(param_1,iVar1,*(undefined4 *)(param_2 + 0x14),iVar4);
|
|
*(int *)(iVar2 + 4) = *(int *)(iVar2 + 4) + -1;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004361a8 file=? name=FUN_004361a8 */
|
|
|
|
void __cdecl FUN_004361a8(int *param_1,int param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
|
|
iVar1 = FUN_00436610(param_2);
|
|
if (iVar1 != 0) {
|
|
(**(code **)(*param_1 + 0x3c))(param_1,iVar1);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004361d0 file=? name=FUN_004361d0 */
|
|
|
|
void __cdecl FUN_004361d0(int *param_1,int param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
|
|
iVar1 = FUN_00436610(param_2);
|
|
if (iVar1 != 0) {
|
|
(**(code **)(*param_1 + 0x40))
|
|
(param_1,iVar1,*(undefined4 *)(param_2 + 0x14),*(undefined4 *)(param_2 + 0x18),
|
|
*(undefined4 *)(param_2 + 0x1c));
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00436204 file=? name=FUN_00436204 */
|
|
|
|
void __cdecl FUN_00436204(int *param_1,int param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
|
|
iVar1 = FUN_00436610(param_2);
|
|
if (iVar1 != 0) {
|
|
(**(code **)(*param_1 + 0x44))
|
|
(param_1,iVar1,*(undefined4 *)(param_2 + 0x14),*(undefined4 *)(param_2 + 0x18));
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00436234 file=munga/renderer.cpp name=FUN_00436234 */
|
|
|
|
void FUN_00436234(void)
|
|
|
|
{
|
|
FUN_0040385c(s_Renderer__ExecuteImplementation___004e8392,
|
|
s_d__tesla_bt_munga_RENDERER_CPP_004e83cc,0x297);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00436250 file=munga/renderer.cpp name=FUN_00436250 */
|
|
|
|
void FUN_00436250(void)
|
|
|
|
{
|
|
FUN_0040385c(s_Renderer__LoadMissionImplementat_004e83eb,s_d__tesla_bt_munga_RENDERER_CPP_004e8429
|
|
,0x2a2);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @0043626c file=munga/renderer.cpp name=FUN_0043626c */
|
|
|
|
void FUN_0043626c(void)
|
|
|
|
{
|
|
FUN_0040385c(s_Renderer__ShutdownImplementation_004e8448,s_d__tesla_bt_munga_RENDERER_CPP_004e8483
|
|
,0x2ad);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00436288 file=? name=FUN_00436288 */
|
|
|
|
undefined4 * __cdecl FUN_00436288(undefined4 *param_1)
|
|
|
|
{
|
|
FUN_004178cc(param_1,0x26);
|
|
*param_1 = &PTR_FUN_004e3320;
|
|
param_1[3] = &DAT_004e2d1c;
|
|
*param_1 = &PTR_FUN_004e8540;
|
|
FUN_004367b4(param_1 + 4,0);
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @004362c0 file=? name=FUN_004362c0 */
|
|
|
|
void __cdecl FUN_004362c0(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e8540;
|
|
FUN_004367d3(param_1 + 4,2);
|
|
FUN_0041790c(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004362fc file=? name=FUN_004362fc */
|
|
|
|
undefined4 __cdecl FUN_004362fc(int param_1)
|
|
|
|
{
|
|
FUN_00419df0(param_1);
|
|
return 1;
|
|
}
|
|
|
|
|
|
|
|
/* @00436310 file=? name=FUN_00436310 */
|
|
|
|
void __cdecl FUN_00436310(int param_1,undefined4 param_2)
|
|
|
|
{
|
|
(**(code **)(*(int *)(param_1 + 0x10) + 4))(param_1 + 0x10,param_2);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @0043632c file=? name=FUN_0043632c */
|
|
|
|
void __cdecl FUN_0043632c(int param_1,int param_2)
|
|
|
|
{
|
|
int local_18 [5];
|
|
|
|
FUN_004367ff(local_18,param_1 + 0x10);
|
|
FUN_0041781c(local_18,param_2);
|
|
FUN_0043685c(local_18,2);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00436368 file=? name=FUN_00436368 */
|
|
|
|
undefined4 __cdecl FUN_00436368(int param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined4 uVar2;
|
|
int local_18 [5];
|
|
|
|
FUN_004367ff(local_18,param_1 + 0x10);
|
|
iVar1 = (**(code **)(local_18[0] + 0x30))(local_18);
|
|
if (iVar1 == 0) {
|
|
uVar2 = 0;
|
|
FUN_0043685c(local_18,2);
|
|
}
|
|
else {
|
|
do {
|
|
iVar1 = (**(code **)(local_18[0] + 0x28))(local_18);
|
|
if (iVar1 == 0) {
|
|
uVar2 = 1;
|
|
FUN_0043685c(local_18,2);
|
|
return uVar2;
|
|
}
|
|
} while (*(int *)(iVar1 + 0x10) == 2);
|
|
uVar2 = 0;
|
|
FUN_0043685c(local_18,2);
|
|
}
|
|
return uVar2;
|
|
}
|
|
|
|
|
|
|
|
/* @004363ec file=? name=FUN_004363ec */
|
|
|
|
void __cdecl FUN_004363ec(int param_1,int param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
int local_18 [5];
|
|
|
|
FUN_004367ff(local_18,param_1 + 0x10);
|
|
while( true ) {
|
|
iVar1 = (**(code **)(local_18[0] + 0x28))(local_18);
|
|
if (iVar1 == 0) break;
|
|
FUN_00435fac(iVar1,param_2);
|
|
}
|
|
FUN_0043685c(local_18,2);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00436440 file=? name=FUN_00436440 */
|
|
|
|
void __cdecl FUN_00436440(int param_1,int param_2)
|
|
|
|
{
|
|
int *piVar1;
|
|
int local_1c [5];
|
|
int local_8;
|
|
|
|
FUN_004367ff(local_1c,param_1 + 0x10);
|
|
while( true ) {
|
|
piVar1 = (int *)(**(code **)(local_1c[0] + 0x28))(local_1c);
|
|
if (piVar1 == (int *)0x0) break;
|
|
local_8 = piVar1[8];
|
|
FUN_00435ff0(piVar1,param_2,local_8);
|
|
}
|
|
FUN_0043685c(local_1c,2);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @0043649c file=? name=FUN_0043649c */
|
|
|
|
void __cdecl FUN_0043649c(int param_1)
|
|
|
|
{
|
|
int *piVar1;
|
|
int local_18 [5];
|
|
|
|
FUN_004367ff(local_18,param_1 + 0x10);
|
|
while( true ) {
|
|
piVar1 = (int *)(**(code **)(local_18[0] + 0x28))(local_18);
|
|
if (piVar1 == (int *)0x0) break;
|
|
(**(code **)(*piVar1 + 0x20))(piVar1);
|
|
}
|
|
FUN_0043685c(local_18,2);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004364e4 file=? name=FUN_004364e4 */
|
|
|
|
void __cdecl FUN_004364e4(int param_1,int *param_2,uint *param_3)
|
|
|
|
{
|
|
int iVar1;
|
|
int local_18 [5];
|
|
|
|
FUN_004367ff(local_18,param_1 + 0x10);
|
|
while( true ) {
|
|
iVar1 = (**(code **)(local_18[0] + 0x28))(local_18);
|
|
if (iVar1 == 0) break;
|
|
FUN_00435120(*(undefined4 *)(DAT_004efc94 + 0x30),param_2,iVar1,param_3);
|
|
}
|
|
FUN_0043685c(local_18,2);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00436544 file=? name=FUN_00436544 */
|
|
|
|
undefined4 * __cdecl FUN_00436544(undefined4 *param_1,int param_2)
|
|
|
|
{
|
|
*param_1 = 0x14;
|
|
param_1[1] = 3;
|
|
param_1[2] = 1;
|
|
FUN_00420e8c(param_1 + 3);
|
|
FUN_00420ef4(param_1 + 3,(undefined4 *)(param_2 + 0x184));
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00436584 file=? name=FUN_00436584 */
|
|
|
|
void __cdecl FUN_00436584(int param_1)
|
|
|
|
{
|
|
(**(code **)(*(int *)(*(int *)(DAT_004efc94 + 0x2c) + 0x54) + 0xc))
|
|
(*(int *)(DAT_004efc94 + 0x2c) + 0x54,param_1 + 0xc);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004365b0 file=? name=FUN_004365b0 */
|
|
|
|
void __cdecl FUN_004365b0(undefined4 *param_1,undefined4 param_2)
|
|
|
|
{
|
|
*param_1 = 0x10;
|
|
param_1[1] = 4;
|
|
param_1[2] = 1;
|
|
param_1[3] = param_2;
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004365d4 file=? name=FUN_004365d4 */
|
|
|
|
undefined4 * __cdecl
|
|
FUN_004365d4(undefined4 *param_1,undefined4 param_2,undefined4 param_3,int param_4)
|
|
|
|
{
|
|
*param_1 = param_3;
|
|
param_1[1] = param_2;
|
|
param_1[2] = 1;
|
|
FUN_00420e8c(param_1 + 3);
|
|
FUN_00420ef4(param_1 + 3,(undefined4 *)(param_4 + 0x184));
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00436610 file=? name=FUN_00436610 */
|
|
|
|
void __cdecl FUN_00436610(int param_1)
|
|
|
|
{
|
|
(**(code **)(*(int *)(*(int *)(DAT_004efc94 + 0x2c) + 0x54) + 0xc))
|
|
(*(int *)(DAT_004efc94 + 0x2c) + 0x54,param_1 + 0xc);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @0043663c file=? name=FUN_0043663c */
|
|
|
|
undefined4 * __cdecl
|
|
FUN_0043663c(undefined4 *param_1,int param_2,undefined4 param_3,undefined4 param_4)
|
|
|
|
{
|
|
FUN_004365d4(param_1,5,0x1c,param_2);
|
|
param_1[5] = param_3;
|
|
param_1[6] = param_4;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00436668 file=? name=FUN_00436668 */
|
|
|
|
undefined4 * __cdecl FUN_00436668(undefined4 *param_1,int param_2)
|
|
|
|
{
|
|
FUN_004365d4(param_1,6,0x14,param_2);
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00436688 file=? name=FUN_00436688 */
|
|
|
|
undefined4 * __cdecl
|
|
FUN_00436688(undefined4 *param_1,int param_2,undefined4 param_3,undefined4 param_4,
|
|
undefined4 param_5)
|
|
|
|
{
|
|
FUN_004365d4(param_1,7,0x20,param_2);
|
|
param_1[5] = param_3;
|
|
param_1[6] = param_4;
|
|
param_1[7] = param_5;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @004366b8 file=? name=FUN_004366b8 */
|
|
|
|
undefined4 * __cdecl
|
|
FUN_004366b8(undefined4 *param_1,int param_2,undefined4 param_3,undefined4 param_4)
|
|
|
|
{
|
|
FUN_004365d4(param_1,8,0x1c,param_2);
|
|
param_1[5] = param_3;
|
|
param_1[6] = param_4;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00436769 file=? name=FUN_00436769 */
|
|
|
|
undefined4 * __cdecl FUN_00436769(undefined4 *param_1,undefined4 param_2)
|
|
|
|
{
|
|
FUN_004179d4(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e8538;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00436788 file=? name=FUN_00436788 */
|
|
|
|
void __cdecl FUN_00436788(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e8538;
|
|
FUN_004179f8(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004367b4 file=? name=FUN_004367b4 */
|
|
|
|
undefined4 * __cdecl FUN_004367b4(undefined4 *param_1,undefined4 param_2)
|
|
|
|
{
|
|
FUN_0041827c(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e8530;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @004367d3 file=? name=FUN_004367d3 */
|
|
|
|
void __cdecl FUN_004367d3(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e8530;
|
|
FUN_004182a8(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004367ff file=? name=FUN_004367ff */
|
|
|
|
undefined4 * __cdecl FUN_004367ff(undefined4 *param_1,int param_2)
|
|
|
|
{
|
|
FUN_00418398(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e84dc;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @0043681e file=? name=FUN_0043681e */
|
|
|
|
undefined4 * __cdecl FUN_0043681e(undefined4 *param_1,int param_2)
|
|
|
|
{
|
|
FUN_00418398(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e84dc;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @0043683d file=? name=FUN_0043683d */
|
|
|
|
undefined4 * __cdecl FUN_0043683d(undefined4 *param_1,int param_2)
|
|
|
|
{
|
|
FUN_004183c0(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e84dc;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @0043685c file=? name=FUN_0043685c */
|
|
|
|
void __cdecl FUN_0043685c(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e84dc;
|
|
FUN_004183ec(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00436888 file=? name=FUN_00436888 */
|
|
|
|
undefined4 FUN_00436888(void)
|
|
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
/* @0043688f file=? name=FUN_0043688f */
|
|
|
|
undefined4 FUN_0043688f(void)
|
|
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
|
|
|
|
/* @00436899 file=? name=FUN_00436899 */
|
|
|
|
void FUN_00436899(void)
|
|
|
|
{
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @0043689e file=? name=FUN_0043689e */
|
|
|
|
void FUN_0043689e(void)
|
|
|
|
{
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004368a3 file=? name=FUN_004368a3 */
|
|
|
|
void FUN_004368a3(void)
|
|
|
|
{
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004368a8 file=? name=FUN_004368a8 */
|
|
|
|
void FUN_004368a8(void)
|
|
|
|
{
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004368ad file=? name=FUN_004368ad */
|
|
|
|
void FUN_004368ad(void)
|
|
|
|
{
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004368b2 file=? name=FUN_004368b2 */
|
|
|
|
void FUN_004368b2(void)
|
|
|
|
{
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004368b8 file=? name=FUN_004368b8 */
|
|
|
|
undefined4 * __cdecl
|
|
FUN_004368b8(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,
|
|
undefined4 param_5,undefined4 param_6)
|
|
|
|
{
|
|
FUN_00435d30(param_1,param_2,param_3,param_4,param_5,param_6,8,&DAT_004e82f8);
|
|
*param_1 = &PTR_FUN_004e85e0;
|
|
param_1[0x13] = 0;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @004368f4 file=? name=FUN_004368f4 */
|
|
|
|
void __cdecl FUN_004368f4(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e85e0;
|
|
FUN_00435df8(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00436920 file=? name=FUN_00436920 */
|
|
|
|
void __cdecl FUN_00436920(int *param_1,int param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
int iVar2;
|
|
undefined4 uVar3;
|
|
|
|
if (param_1[0x13] == 0) {
|
|
iVar2 = FUN_00417ab4((int)(param_1 + 0x10));
|
|
if (iVar2 == param_2) {
|
|
uVar3 = 1;
|
|
}
|
|
else {
|
|
uVar3 = 0;
|
|
}
|
|
}
|
|
else {
|
|
uVar3 = 0;
|
|
}
|
|
iVar2 = FUN_00407064(*(int *)(DAT_004efc94 + 0x68),*(int *)(param_2 + 0x1bc),10);
|
|
if ((iVar2 != 0) &&
|
|
(iVar1 = *(int *)(iVar2 + 4), *(int *)(iVar2 + 4) = *(int *)(iVar2 + 4) + 1, iVar1 == 0)) {
|
|
FUN_00406cd0(iVar2);
|
|
}
|
|
(**(code **)(*param_1 + 0x48))(param_1,param_2,iVar2,uVar3);
|
|
if (iVar2 != 0) {
|
|
*(int *)(iVar2 + 4) = *(int *)(iVar2 + 4) + -1;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004369a0 file=? name=FUN_004369a0 */
|
|
|
|
void __cdecl FUN_004369a0(undefined4 param_1,int param_2)
|
|
|
|
{
|
|
undefined4 *puVar1;
|
|
int local_2c [5];
|
|
int local_18 [5];
|
|
|
|
FUN_004214f0(local_18,param_2);
|
|
(**(code **)(local_18[0] + 8))(local_18);
|
|
while( true ) {
|
|
puVar1 = (undefined4 *)(**(code **)(local_18[0] + 0x2c))(local_18);
|
|
if (puVar1 == (undefined4 *)0x0) break;
|
|
if (puVar1 != (undefined4 *)0x0) {
|
|
(**(code **)*puVar1)(puVar1,3);
|
|
}
|
|
}
|
|
FUN_00421534(local_18,2);
|
|
FUN_00421480(local_2c,param_2);
|
|
(**(code **)(local_2c[0] + 8))(local_2c);
|
|
while( true ) {
|
|
puVar1 = (undefined4 *)(**(code **)(local_2c[0] + 0x2c))(local_2c);
|
|
if (puVar1 == (undefined4 *)0x0) break;
|
|
if (puVar1 != (undefined4 *)0x0) {
|
|
(**(code **)*puVar1)(puVar1,3);
|
|
}
|
|
}
|
|
FUN_004214c4(local_2c,2);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00436a40 file=? name=FUN_00436a40 */
|
|
|
|
void FUN_00436a40(void)
|
|
|
|
{
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00436a48 file=? name=FUN_00436a48 */
|
|
|
|
void __cdecl FUN_00436a48(undefined4 param_1,int param_2)
|
|
|
|
{
|
|
uint uVar1;
|
|
uint uVar2;
|
|
int *piVar3;
|
|
byte bVar4;
|
|
|
|
if (*(int *)(param_2 + 4) != 0x7d9) {
|
|
uVar1 = *(uint *)(param_2 + 4);
|
|
FUN_004dbb24(&DAT_00524e20,s_Entity_004e859c,(char *)0x0);
|
|
uVar2 = *(uint *)(param_2 + 0x188);
|
|
bVar4 = 0x3a;
|
|
piVar3 = FUN_004db78c(&DAT_00524e20,*(uint *)(param_2 + 0x184));
|
|
piVar3 = FUN_004db92c(piVar3,bVar4);
|
|
piVar3 = FUN_004db78c(piVar3,uVar2);
|
|
FUN_004dbb24(piVar3,s_class_004e85a4,(char *)0x0);
|
|
FUN_004db78c(piVar3,uVar1);
|
|
FUN_004dbb24(&DAT_00524e20,s_couldn_t_figure_out_how_to_MakeE_004e85ab,(char *)0x0);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00436ae0 file=? name=FUN_00436ae0 */
|
|
|
|
void FUN_00436ae0(void)
|
|
|
|
{
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00436ae8 file=? name=FUN_00436ae8 */
|
|
|
|
void FUN_00436ae8(void)
|
|
|
|
{
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00436af0 file=? name=FUN_00436af0 */
|
|
|
|
void FUN_00436af0(void)
|
|
|
|
{
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00436af8 file=? name=FUN_00436af8 */
|
|
|
|
void FUN_00436af8(void)
|
|
|
|
{
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00436b00 file=? name=FUN_00436b00 */
|
|
|
|
void __cdecl FUN_00436b00(int param_1)
|
|
|
|
{
|
|
FUN_0041a1a4(**(int **)(param_1 + 0xc),0x4e82c8);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00436b1c file=? name=FUN_00436b1c */
|
|
|
|
undefined4 * __cdecl FUN_00436b1c(undefined4 *param_1)
|
|
|
|
{
|
|
*param_1 = &PTR_FUN_004e87e4;
|
|
FUN_0042f121(param_1 + 2,0);
|
|
param_1[1] = 0;
|
|
param_1[5] = 0x42c80000;
|
|
param_1[6] = 0x3f800000;
|
|
param_1[7] = 0x3f800000;
|
|
param_1[8] = 0x41200000;
|
|
param_1[9] = 0x3d4ccccd;
|
|
param_1[10] = 0x3f000000;
|
|
param_1[0xb] = 0x41200000;
|
|
param_1[0xc] = 0x3d4ccccd;
|
|
param_1[0xd] = 0x3dcccccd;
|
|
param_1[0xe] = 0x43ac8000;
|
|
param_1[0xf] = 0x41a00000;
|
|
param_1[0x10] = 0x3f000000;
|
|
param_1[0x11] = 0x3f000000;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00436b9c file=? name=FUN_00436b9c */
|
|
|
|
void __cdecl FUN_00436b9c(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e87e4;
|
|
FUN_0042f140(param_1 + 2,2);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00436bcc file=? name=FUN_00436bcc */
|
|
|
|
undefined4 FUN_00436bcc(void)
|
|
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
|
|
|
|
/* @00436bd8 file=? name=FUN_00436bd8 */
|
|
|
|
void __cdecl FUN_00436bd8(int param_1,undefined4 param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
int iVar2;
|
|
|
|
iVar1 = param_1 + 8;
|
|
iVar2 = FUN_00417ab4(iVar1);
|
|
if (iVar2 != 0) {
|
|
FUN_00417a5c(iVar1);
|
|
}
|
|
(**(code **)(*(int *)(param_1 + 8) + 4))(iVar1,param_2);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00436c08 file=? name=FUN_00436c08 */
|
|
|
|
undefined4 * __cdecl FUN_00436c08(undefined4 *param_1,int param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
int iVar2;
|
|
undefined4 *puVar3;
|
|
undefined4 *puVar4;
|
|
|
|
iVar1 = FUN_00417ab4(param_2 + 8);
|
|
puVar3 = (undefined4 *)(iVar1 + 0xd0);
|
|
puVar4 = param_1;
|
|
for (iVar2 = 0xc; iVar2 != 0; iVar2 = iVar2 + -1) {
|
|
*puVar4 = *puVar3;
|
|
puVar3 = puVar3 + 1;
|
|
puVar4 = puVar4 + 1;
|
|
}
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00436c38 file=? name=FUN_00436c38 */
|
|
|
|
void __cdecl FUN_00436c38(int param_1)
|
|
|
|
{
|
|
*(int *)(param_1 + 4) = *(int *)(param_1 + 4) + 1;
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00436c44 file=? name=FUN_00436c44 */
|
|
|
|
void __cdecl FUN_00436c44(int param_1,undefined4 param_2)
|
|
|
|
{
|
|
*(undefined4 *)(param_1 + 0x14) = param_2;
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00436c54 file=? name=FUN_00436c54 */
|
|
|
|
bool __cdecl FUN_00436c54(int param_1,float *param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
float local_10;
|
|
float local_c;
|
|
float local_8;
|
|
|
|
iVar1 = FUN_00417ab4(param_1 + 8);
|
|
FUN_00408644(&local_10,(float *)(iVar1 + 0x100),param_2);
|
|
return *(float *)(param_1 + 0x14) * *(float *)(param_1 + 0x14) <
|
|
local_8 * local_8 + local_c * local_c + local_10 * local_10;
|
|
}
|
|
|
|
|
|
|
|
/* @00436cac file=? name=FUN_00436cac */
|
|
|
|
void __cdecl FUN_00436cac(int param_1,undefined4 param_2,undefined4 param_3)
|
|
|
|
{
|
|
*(undefined4 *)(param_1 + 0x3c) = param_2;
|
|
*(undefined4 *)(param_1 + 0x38) = param_3;
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00436cc0 file=? name=FUN_00436cc0 */
|
|
|
|
void __cdecl FUN_00436cc0(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)
|
|
|
|
{
|
|
*(undefined4 *)(param_1 + 0x1c) = param_2;
|
|
*(undefined4 *)(param_1 + 0x20) = param_3;
|
|
*(undefined4 *)(param_1 + 0x24) = param_4;
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00436cdc file=? name=FUN_00436cdc */
|
|
|
|
void __cdecl FUN_00436cdc(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)
|
|
|
|
{
|
|
*(undefined4 *)(param_1 + 0x28) = param_2;
|
|
*(undefined4 *)(param_1 + 0x2c) = param_3;
|
|
*(undefined4 *)(param_1 + 0x30) = param_4;
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00436cf8 file=? name=FUN_00436cf8 */
|
|
|
|
void __cdecl FUN_00436cf8(int param_1,undefined4 param_2,undefined4 param_3)
|
|
|
|
{
|
|
*(undefined4 *)(param_1 + 0x40) = param_2;
|
|
*(undefined4 *)(param_1 + 0x44) = param_3;
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00436d0c file=? name=FUN_00436d0c */
|
|
|
|
void FUN_00436d0c(void)
|
|
|
|
{
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00436d14 file=? name=FUN_00436d14 */
|
|
|
|
undefined4 * __cdecl FUN_00436d14(undefined4 *param_1,int *param_2,undefined4 param_3)
|
|
|
|
{
|
|
FUN_0041b868(param_1,param_2,param_3);
|
|
*param_1 = &PTR_FUN_004e87c8;
|
|
FUN_00436f51(param_1 + 5,0);
|
|
param_1[4] = 0xffffffff;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00436d4c file=? name=FUN_00436d4c */
|
|
|
|
void __cdecl FUN_00436d4c(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e87c8;
|
|
FUN_00436f70(param_1 + 5,2);
|
|
FUN_0041b898(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00436d88 file=? name=FUN_00436d88 */
|
|
|
|
undefined4 __cdecl FUN_00436d88(int param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
|
|
iVar1 = FUN_0041a1a4(**(int **)(param_1 + 0xc),0x4e8668);
|
|
if (iVar1 == 0) {
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
|
|
|
|
/* @00436db0 file=? name=FUN_00436db0 */
|
|
|
|
void __cdecl FUN_00436db0(int param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
int *piVar2;
|
|
int local_10 [3];
|
|
|
|
iVar1 = *(int *)(*(int *)(*(int *)(DAT_004efc94 + 0x44) + 0x4c) + 4);
|
|
if (*(int *)(param_1 + 0x10) <= iVar1) {
|
|
*(int *)(param_1 + 0x10) = iVar1 + 2;
|
|
FUN_00437025(local_10,param_1 + 0x14);
|
|
while( true ) {
|
|
piVar2 = (int *)(**(code **)(local_10[0] + 0x28))(local_10);
|
|
if (piVar2 == (int *)0x0) break;
|
|
(**(code **)(*piVar2 + 0x14))(piVar2);
|
|
}
|
|
FUN_00437082(local_10,2);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00436e14 file=? name=FUN_00436e14 */
|
|
|
|
void __cdecl FUN_00436e14(int param_1)
|
|
|
|
{
|
|
FUN_00436db0(param_1);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00436e24 file=munga/audio.cpp name=FUN_00436e24 */
|
|
|
|
void FUN_00436e24(void)
|
|
|
|
{
|
|
FUN_0040385c(s_AudioComponent__ReceiveControl___004e86be,s_d__tesla_bt_munga_AUDIO_CPP_004e86f7,
|
|
0x1b4);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00436e40 file=? name=FUN_00436e40 */
|
|
|
|
void __cdecl FUN_00436e40(undefined4 param_1,undefined4 param_2,undefined4 param_3)
|
|
|
|
{
|
|
uint local_18 [5];
|
|
|
|
FUN_00436ea4(local_18,param_2,param_3);
|
|
FUN_0041acbc(*(int *)(DAT_004efc94 + 0x60),2,param_1,local_18,DAT_004e17f4);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00436e88 file=? name=FUN_00436e88 */
|
|
|
|
void __cdecl FUN_00436e88(int *param_1,int param_2)
|
|
|
|
{
|
|
(**(code **)(*param_1 + 0x18))
|
|
(param_1,*(undefined4 *)(param_2 + 0xc),*(undefined4 *)(param_2 + 0x10));
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00436ea4 file=? name=FUN_00436ea4 */
|
|
|
|
void __cdecl FUN_00436ea4(undefined4 *param_1,undefined4 param_2,undefined4 param_3)
|
|
|
|
{
|
|
*param_1 = 0x14;
|
|
param_1[1] = 3;
|
|
param_1[2] = 1;
|
|
param_1[3] = param_2;
|
|
param_1[4] = param_3;
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00436f51 file=? name=FUN_00436f51 */
|
|
|
|
undefined4 * __cdecl FUN_00436f51(undefined4 *param_1,undefined4 param_2)
|
|
|
|
{
|
|
FUN_00417be0(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e87c0;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00436f70 file=? name=FUN_00436f70 */
|
|
|
|
void __cdecl FUN_00436f70(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e87c0;
|
|
FUN_00417c0c(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00436f9c file=? name=FUN_00436f9c */
|
|
|
|
undefined4 * __cdecl FUN_00436f9c(undefined4 *param_1,int param_2)
|
|
|
|
{
|
|
FUN_004188dc(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e8764;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00436fbb file=? name=FUN_00436fbb */
|
|
|
|
undefined4 * __cdecl FUN_00436fbb(undefined4 *param_1,int param_2)
|
|
|
|
{
|
|
FUN_004188dc(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e8764;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00436fda file=? name=FUN_00436fda */
|
|
|
|
undefined4 * __cdecl FUN_00436fda(undefined4 *param_1,int param_2)
|
|
|
|
{
|
|
FUN_00418904(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e8764;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00436ff9 file=? name=FUN_00436ff9 */
|
|
|
|
void __cdecl FUN_00436ff9(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e8764;
|
|
FUN_00418930(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00437025 file=? name=FUN_00437025 */
|
|
|
|
undefined4 * __cdecl FUN_00437025(undefined4 *param_1,int param_2)
|
|
|
|
{
|
|
FUN_00417d00(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e8714;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00437044 file=? name=FUN_00437044 */
|
|
|
|
undefined4 * __cdecl FUN_00437044(undefined4 *param_1,int param_2)
|
|
|
|
{
|
|
FUN_00417d00(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e8714;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00437063 file=? name=FUN_00437063 */
|
|
|
|
undefined4 * __cdecl FUN_00437063(undefined4 *param_1,int param_2)
|
|
|
|
{
|
|
FUN_00417d28(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e8714;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00437082 file=? name=FUN_00437082 */
|
|
|
|
void __cdecl FUN_00437082(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e8714;
|
|
FUN_00417d54(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004370b0 file=? name=FUN_004370b0 */
|
|
|
|
undefined4 * __cdecl FUN_004370b0(undefined4 *param_1,int param_2,undefined4 param_3)
|
|
|
|
{
|
|
int iVar1;
|
|
|
|
FUN_00430180(param_1,param_2,param_3);
|
|
*param_1 = &PTR_FUN_004e884c;
|
|
FUN_0042f121(param_1 + 0x77,0);
|
|
iVar1 = (**(code **)(*(int *)(*(int *)(DAT_004efc94 + 0x2c) + 0x54) + 0xc))
|
|
(*(int *)(DAT_004efc94 + 0x2c) + 0x54,param_2 + 0x5c);
|
|
if (iVar1 == 0) {
|
|
param_1[0x7a] = 0;
|
|
}
|
|
else {
|
|
(**(code **)(param_1[0x77] + 4))(param_1 + 0x77,iVar1);
|
|
param_1[0x7a] = *(undefined4 *)(param_2 + 100);
|
|
}
|
|
param_1[7] = PTR_FUN_004e8834;
|
|
param_1[8] = DAT_004e8838;
|
|
param_1[9] = DAT_004e883c;
|
|
param_1[10] = param_1[10] | 0x10;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00437154 file=? name=FUN_00437154 */
|
|
|
|
void __cdecl FUN_00437154(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e884c;
|
|
FUN_0042f140(param_1 + 0x77,2);
|
|
FUN_00430340(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00437194 file=? name=FUN_00437194 */
|
|
|
|
undefined4 __cdecl FUN_00437194(int param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
|
|
iVar1 = FUN_0041a1a4(**(int **)(param_1 + 0xc),0x4e87f0);
|
|
if (iVar1 == 0) {
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
|
|
|
|
/* @004371c8 file=? name=FUN_004371c8 */
|
|
|
|
undefined4 * __cdecl FUN_004371c8(int param_1)
|
|
|
|
{
|
|
undefined4 *puVar1;
|
|
|
|
puVar1 = (undefined4 *)FUN_00402298(0x1ec);
|
|
if (puVar1 == (undefined4 *)0x0) {
|
|
puVar1 = (undefined4 *)0x0;
|
|
}
|
|
else {
|
|
puVar1 = FUN_004370b0(puVar1,param_1,&DAT_004e8820);
|
|
}
|
|
return puVar1;
|
|
}
|
|
|
|
|
|
|
|
/* @004371f8 file=? name=FUN_004371f8 */
|
|
|
|
void __cdecl FUN_004371f8(int param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
|
|
iVar1 = FUN_00417ab4(param_1 + 0x1dc);
|
|
if (iVar1 == 0) {
|
|
FUN_0042061c(param_1);
|
|
}
|
|
else {
|
|
FUN_00424da8(iVar1,*(int *)(param_1 + 0x1e8),(float *)(param_1 + 0xd0));
|
|
FUN_0040a968((undefined4 *)(param_1 + 0x100),(float *)(param_1 + 0xd0));
|
|
FUN_0040a938((undefined4 *)(param_1 + 300),(undefined4 *)(param_1 + 0x100));
|
|
FUN_0042fa8c(param_1);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00437268 file=? name=FUN_00437268 */
|
|
|
|
undefined4 * __cdecl
|
|
FUN_00437268(undefined4 *param_1,undefined4 param_2,int param_3,undefined4 param_4)
|
|
|
|
{
|
|
*param_1 = 0x68;
|
|
param_1[1] = 3;
|
|
param_1[2] = 1;
|
|
FUN_00420ea4(param_1 + 3,(undefined4 *)&DAT_00522524);
|
|
param_1[5] = 0;
|
|
param_1[6] = 0;
|
|
param_1[7] = 0x54;
|
|
FUN_00420ea4(param_1 + 8,(undefined4 *)&DAT_00522524);
|
|
param_1[10] = param_2;
|
|
param_1[0xb] = 0x10c;
|
|
param_1[0xc] = *(undefined4 *)(param_3 + 0x100);
|
|
param_1[0xd] = *(undefined4 *)(param_3 + 0x104);
|
|
param_1[0xe] = *(undefined4 *)(param_3 + 0x108);
|
|
param_1[0xf] = *(undefined4 *)(param_3 + 0x10c);
|
|
param_1[0x10] = *(undefined4 *)(param_3 + 0x110);
|
|
param_1[0x11] = *(undefined4 *)(param_3 + 0x114);
|
|
param_1[0x12] = *(undefined4 *)(param_3 + 0x118);
|
|
FUN_00420ea4(param_1 + 0x13,(undefined4 *)(param_3 + 0x184));
|
|
FUN_00420ea4(param_1 + 0x15,(undefined4 *)&DAT_00522524);
|
|
FUN_00420ea4(param_1 + 0x17,(undefined4 *)(param_3 + 0x184));
|
|
param_1[0x19] = param_4;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @004373e8 file=? name=FUN_004373e8 */
|
|
|
|
void __cdecl FUN_004373e8(undefined4 *param_1)
|
|
|
|
{
|
|
*param_1 = *(undefined4 *)(*(int *)(*(int *)(DAT_004efc94 + 0x44) + 0x4c) + 4);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00437404 file=? name=FUN_00437404 */
|
|
|
|
void FUN_00437404(void)
|
|
|
|
{
|
|
FUN_004dcd94();
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00437428 file=? name=FUN_00437428 */
|
|
|
|
float10 __cdecl FUN_00437428(undefined4 param_1,int param_2)
|
|
|
|
{
|
|
return (float10)param_2 / (float10)*(float *)(*(int *)(DAT_004efc94 + 0x44) + 0x14);
|
|
}
|
|
|
|
|
|
|
|
/* @0043744c file=? name=FUN_0043744c */
|
|
|
|
undefined4 * __cdecl FUN_0043744c(undefined4 *param_1,int *param_2)
|
|
|
|
{
|
|
undefined4 uVar1;
|
|
undefined1 local_8 [4];
|
|
|
|
FUN_00415eb4(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e8b6c;
|
|
(**(code **)(*param_2 + 0x1c))(param_2,param_1 + 3,4);
|
|
(**(code **)(*param_2 + 0x1c))(param_2,param_1 + 4,4);
|
|
(**(code **)(*param_2 + 0x1c))(param_2,local_8,4);
|
|
uVar1 = FUN_004dcd94();
|
|
param_1[5] = uVar1;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @004374c4 file=munga/audlvl.cpp name=FUN_004374c4 */
|
|
|
|
void __cdecl FUN_004374c4(int *param_1,int param_2)
|
|
|
|
{
|
|
char *pcVar1;
|
|
uint *puVar2;
|
|
int iVar3;
|
|
float *pfVar4;
|
|
float local_14;
|
|
uint *local_10;
|
|
int local_c;
|
|
int local_8;
|
|
|
|
FUN_00414c58(param_1);
|
|
pcVar1 = (char *)FUN_00403ad0(param_2,s_voice_count_004e8880);
|
|
if (pcVar1 == (char *)0x0) {
|
|
FUN_004dbb24(&DAT_00524e20,s_DYN_MEM_STRM_WRITE_ENTRY____name_004e888c,(char *)0x0);
|
|
FUN_004dbb24(&DAT_00524e20,s_voice_count_004e88b1,(char *)0x0);
|
|
FUN_004dbb24(&DAT_00524e20,&DAT_004e88bd,(char *)0x0);
|
|
FUN_0040385c(s_DYN_MEM_STRM_WRITE_ENTRY____name_004e88bf,s_d__tesla_bt_munga_AUDLVL_CPP_004e88ff
|
|
,0x58);
|
|
}
|
|
FUN_00407ae0(pcVar1,&local_8);
|
|
(**(code **)(*param_1 + 0x20))(param_1,&local_8,4);
|
|
pcVar1 = (char *)FUN_00403ad0(param_2,s_render_type_004e891c);
|
|
if (pcVar1 == (char *)0x0) {
|
|
FUN_004dbb24(&DAT_00524e20,s_DYN_MEM_STRM_WRITE_ENTRY____name_004e8928,(char *)0x0);
|
|
FUN_004dbb24(&DAT_00524e20,s_render_type_004e894d,(char *)0x0);
|
|
FUN_004dbb24(&DAT_00524e20,&DAT_004e8959,(char *)0x0);
|
|
FUN_0040385c(s_DYN_MEM_STRM_WRITE_ENTRY____name_004e895b,s_d__tesla_bt_munga_AUDLVL_CPP_004e899b
|
|
,0x59);
|
|
}
|
|
FUN_00407ae0(pcVar1,&local_c);
|
|
(**(code **)(*param_1 + 0x20))(param_1,&local_c,4);
|
|
puVar2 = (uint *)FUN_00402298(0x10);
|
|
if (puVar2 == (uint *)0x0) {
|
|
local_10 = (uint *)0x0;
|
|
}
|
|
else {
|
|
local_10 = FUN_00402460(puVar2,s_suspend_delay_004e89b8);
|
|
}
|
|
local_10[3] = local_10[3] + 1;
|
|
local_14 = 0.33;
|
|
iVar3 = FUN_00403ad0(param_2,(char *)local_10[2]);
|
|
if (iVar3 != 0) {
|
|
pfVar4 = &local_14;
|
|
pcVar1 = (char *)FUN_00403ad0(param_2,(char *)local_10[2]);
|
|
FUN_00407b78(pcVar1,pfVar4);
|
|
}
|
|
(**(code **)(*param_1 + 0x20))(param_1,&local_14,4);
|
|
puVar2 = local_10 + 3;
|
|
*puVar2 = *puVar2 - 1;
|
|
if (*puVar2 == 0) {
|
|
FUN_004024d8((int *)local_10,3);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00437678 file=? name=FUN_00437678 */
|
|
|
|
void __cdecl FUN_00437678(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e8b6c;
|
|
FUN_00415ed8(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004376a4 file=? name=FUN_004376a4 */
|
|
|
|
undefined4 FUN_004376a4(void)
|
|
|
|
{
|
|
FUN_00415f1c();
|
|
return 1;
|
|
}
|
|
|
|
|
|
|
|
/* @004376b8 file=? name=FUN_004376b8 */
|
|
|
|
undefined4 * __cdecl FUN_004376b8(undefined4 *param_1,int *param_2)
|
|
|
|
{
|
|
undefined4 uVar1;
|
|
int iVar2;
|
|
int local_2c [7];
|
|
int local_10;
|
|
undefined1 local_c [4];
|
|
int local_8;
|
|
|
|
FUN_004178ec(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e8b60;
|
|
FUN_00437c84(param_1 + 4,0,1);
|
|
(**(code **)(*param_2 + 0x1c))(param_2,&local_8,4);
|
|
iVar2 = 0;
|
|
if (0 < local_8) {
|
|
do {
|
|
(**(code **)(*param_2 + 0x1c))(param_2,local_c,4);
|
|
FUN_00437ddc(param_2,&local_10);
|
|
(**(code **)(param_1[4] + 8))(param_1 + 4,local_10,local_c);
|
|
iVar2 = iVar2 + 1;
|
|
} while (iVar2 < local_8);
|
|
}
|
|
FUN_00437e0b(local_2c,(int)(param_1 + 4));
|
|
uVar1 = (**(code **)(local_2c[0] + 0x30))(local_2c);
|
|
param_1[3] = uVar1;
|
|
FUN_00437e49(local_2c,2);
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00437774 file=? name=FUN_00437774 */
|
|
|
|
void __cdecl FUN_00437774(int *param_1,int param_2)
|
|
|
|
{
|
|
int *piVar1;
|
|
undefined4 *puVar2;
|
|
bool bVar3;
|
|
undefined3 extraout_var;
|
|
undefined3 extraout_var_00;
|
|
undefined4 *puVar4;
|
|
uint *puVar5;
|
|
float *pfVar6;
|
|
uint local_48 [2];
|
|
char *local_40;
|
|
uint local_38 [2];
|
|
char *local_30;
|
|
uint *local_28;
|
|
char *local_24;
|
|
uint *local_20;
|
|
char *local_1c;
|
|
int *local_18;
|
|
undefined4 local_14;
|
|
float local_10;
|
|
uint *local_c;
|
|
int local_8;
|
|
|
|
FUN_00414c58(param_1);
|
|
local_8 = 0;
|
|
for (puVar2 = *(undefined4 **)(param_2 + 4); puVar2 != (undefined4 *)0x0;
|
|
puVar2 = (undefined4 *)*puVar2) {
|
|
bVar3 = FUN_00403c20((int)puVar2,s_audio_level_of_detail_004e89c6);
|
|
if (CONCAT31(extraout_var,bVar3) != 0) {
|
|
local_8 = local_8 + 1;
|
|
}
|
|
}
|
|
(**(code **)(*param_1 + 0x20))(param_1,&local_8,4);
|
|
for (puVar2 = *(undefined4 **)(param_2 + 4); puVar2 != (undefined4 *)0x0;
|
|
puVar2 = (undefined4 *)*puVar2) {
|
|
bVar3 = FUN_00403c20((int)puVar2,s_audio_level_of_detail_004e89dc);
|
|
if (CONCAT31(extraout_var_00,bVar3) != 0) {
|
|
puVar4 = (undefined4 *)FUN_00402298(0x10);
|
|
if (puVar4 == (undefined4 *)0x0) {
|
|
local_c = (uint *)0x0;
|
|
}
|
|
else {
|
|
local_c = (uint *)FUN_004023f4(puVar4);
|
|
}
|
|
local_c[3] = local_c[3] + 1;
|
|
FUN_00402a98((int *)&local_18,(int *)&local_c,(char *)puVar2[1]);
|
|
piVar1 = local_18 + 3;
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_004024d8(local_18,3);
|
|
}
|
|
pfVar6 = &local_10;
|
|
FUN_00402838(local_38,local_c,0,(char *)0x0);
|
|
local_1c = local_30;
|
|
puVar5 = (uint *)FUN_00402298(0x10);
|
|
if (puVar5 == (uint *)0x0) {
|
|
local_20 = (uint *)0x0;
|
|
}
|
|
else {
|
|
local_20 = FUN_00402460(puVar5,local_1c);
|
|
}
|
|
local_20[3] = local_20[3] + 1;
|
|
FUN_004024d8((int *)local_38,2);
|
|
FUN_00407b78((char *)local_20[2],pfVar6);
|
|
puVar5 = local_20 + 3;
|
|
*puVar5 = *puVar5 - 1;
|
|
if (*puVar5 == 0) {
|
|
FUN_004024d8((int *)local_20,3);
|
|
}
|
|
(**(code **)(*param_1 + 0x20))(param_1,&local_10,4);
|
|
FUN_00402838(local_48,local_c,1,(char *)0x0);
|
|
local_24 = local_40;
|
|
puVar5 = (uint *)FUN_00402298(0x10);
|
|
if (puVar5 == (uint *)0x0) {
|
|
local_28 = (uint *)0x0;
|
|
}
|
|
else {
|
|
local_28 = FUN_00402460(puVar5,local_24);
|
|
}
|
|
local_28[3] = local_28[3] + 1;
|
|
FUN_004024d8((int *)local_48,2);
|
|
local_14 = FUN_00417208((int)param_1,&local_28);
|
|
puVar5 = local_28 + 3;
|
|
*puVar5 = *puVar5 - 1;
|
|
if (*puVar5 == 0) {
|
|
FUN_004024d8((int *)local_28,3);
|
|
}
|
|
(**(code **)(*param_1 + 0x20))(param_1,&local_14,4);
|
|
puVar5 = local_c + 3;
|
|
*puVar5 = *puVar5 - 1;
|
|
if (*puVar5 == 0) {
|
|
FUN_004024d8((int *)local_c,3);
|
|
}
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00437968 file=? name=FUN_00437968 */
|
|
|
|
void __cdecl FUN_00437968(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e8b60;
|
|
FUN_00437ca7(param_1 + 4,2);
|
|
FUN_0041790c(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @004379a4 file=? name=FUN_004379a4 */
|
|
|
|
undefined4 FUN_004379a4(void)
|
|
|
|
{
|
|
FUN_00415f1c();
|
|
return 1;
|
|
}
|
|
|
|
|
|
|
|
/* @004379b8 file=? name=FUN_004379b8 */
|
|
|
|
void __cdecl FUN_004379b8(int param_1,float param_2)
|
|
|
|
{
|
|
undefined4 uVar1;
|
|
int local_20 [4];
|
|
int local_10;
|
|
int local_8;
|
|
|
|
FUN_00437e0b(local_20,param_1 + 0x10);
|
|
(**(code **)(local_20[0] + 8))(local_20);
|
|
while (param_2 < *(float *)(*(int *)(local_10 + local_8 * 4) + 0x14)) {
|
|
(**(code **)(local_20[0] + 0x10))(local_20);
|
|
}
|
|
uVar1 = (**(code **)(local_20[0] + 0x30))(local_20);
|
|
*(undefined4 *)(param_1 + 0xc) = uVar1;
|
|
FUN_00437e49(local_20,2);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00437a20 file=? name=FUN_00437a20 */
|
|
|
|
undefined4 * __cdecl FUN_00437a20(undefined4 *param_1,int *param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
int local_c;
|
|
int local_8;
|
|
|
|
FUN_004178ec(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e8b54;
|
|
FUN_00437d32(param_1 + 3,0,1);
|
|
(**(code **)(*param_2 + 0x1c))(param_2,&local_8,4);
|
|
iVar1 = 0;
|
|
if (0 < local_8) {
|
|
do {
|
|
FUN_00437e75(param_2,&local_c);
|
|
FUN_00437bec((int)param_1,local_c);
|
|
iVar1 = iVar1 + 1;
|
|
} while (iVar1 < local_8);
|
|
}
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00437a98 file=? name=FUN_00437a98 */
|
|
|
|
void __cdecl FUN_00437a98(int *param_1,int param_2)
|
|
|
|
{
|
|
int *piVar1;
|
|
undefined4 *puVar2;
|
|
bool bVar3;
|
|
undefined3 extraout_var;
|
|
undefined3 extraout_var_00;
|
|
undefined4 *puVar4;
|
|
int *local_14;
|
|
undefined4 local_10;
|
|
int *local_c;
|
|
int local_8;
|
|
|
|
FUN_00414c58(param_1);
|
|
local_8 = 0;
|
|
for (puVar2 = *(undefined4 **)(param_2 + 4); puVar2 != (undefined4 *)0x0;
|
|
puVar2 = (undefined4 *)*puVar2) {
|
|
bVar3 = FUN_00403c20((int)puVar2,s_audio_resource_004e89f2);
|
|
if (CONCAT31(extraout_var,bVar3) != 0) {
|
|
local_8 = local_8 + 1;
|
|
}
|
|
}
|
|
(**(code **)(*param_1 + 0x20))(param_1,&local_8,4);
|
|
for (puVar2 = *(undefined4 **)(param_2 + 4); puVar2 != (undefined4 *)0x0;
|
|
puVar2 = (undefined4 *)*puVar2) {
|
|
bVar3 = FUN_00403c20((int)puVar2,s_audio_resource_004e8a01);
|
|
if (CONCAT31(extraout_var_00,bVar3) != 0) {
|
|
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;
|
|
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_10 = FUN_00417208((int)param_1,&local_c);
|
|
(**(code **)(*param_1 + 0x20))(param_1,&local_10,4);
|
|
piVar1 = local_c + 3;
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_004024d8(local_c,3);
|
|
}
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00437b9c file=? name=FUN_00437b9c */
|
|
|
|
void __cdecl FUN_00437b9c(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e8b54;
|
|
FUN_00437d55(param_1 + 3,2);
|
|
FUN_0041790c(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00437bd8 file=? name=FUN_00437bd8 */
|
|
|
|
undefined4 FUN_00437bd8(void)
|
|
|
|
{
|
|
FUN_00415f1c();
|
|
return 1;
|
|
}
|
|
|
|
|
|
|
|
/* @00437bec file=? name=FUN_00437bec */
|
|
|
|
void __cdecl FUN_00437bec(int param_1,undefined4 param_2)
|
|
|
|
{
|
|
(**(code **)(*(int *)(param_1 + 0xc) + 8))(param_1 + 0xc,param_2,&stack0x0000000c);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00437c0c file=? name=FUN_00437c0c */
|
|
|
|
undefined4 __cdecl FUN_00437c0c(int param_1,undefined4 param_2)
|
|
|
|
{
|
|
undefined4 uVar1;
|
|
int local_20 [7];
|
|
|
|
FUN_00437ea4(local_20,param_1 + 0xc);
|
|
uVar1 = (**(code **)(local_20[0] + 0x34))(local_20,param_2);
|
|
FUN_00437ee2(local_20,2);
|
|
return uVar1;
|
|
}
|
|
|
|
|
|
|
|
/* @00437c4c file=? name=FUN_00437c4c */
|
|
|
|
undefined4 __cdecl FUN_00437c4c(int param_1)
|
|
|
|
{
|
|
undefined4 uVar1;
|
|
int local_20 [7];
|
|
|
|
FUN_00437ea4(local_20,param_1 + 0xc);
|
|
uVar1 = (**(code **)(local_20[0] + 0x14))(local_20);
|
|
FUN_00437ee2(local_20,2);
|
|
return uVar1;
|
|
}
|
|
|
|
|
|
|
|
/* @00437c84 file=? name=FUN_00437c84 */
|
|
|
|
undefined4 * __cdecl FUN_00437c84(undefined4 *param_1,undefined4 param_2,undefined4 param_3)
|
|
|
|
{
|
|
FUN_00419184(param_1,param_2,param_3);
|
|
*param_1 = &PTR_FUN_004e8b38;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00437ca7 file=? name=FUN_00437ca7 */
|
|
|
|
void __cdecl FUN_00437ca7(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e8b38;
|
|
FUN_004191b4(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00437cd3 file=? name=FUN_00437cd3 */
|
|
|
|
undefined4 __cdecl FUN_00437cd3(undefined4 param_1,int param_2,int param_3)
|
|
|
|
{
|
|
undefined4 uVar1;
|
|
|
|
if (*(float *)(param_2 + 0x14) == *(float *)(param_3 + 0x14)) {
|
|
return 0;
|
|
}
|
|
if (*(float *)(param_2 + 0x14) <= *(float *)(param_3 + 0x14)) {
|
|
uVar1 = 0xffffffff;
|
|
}
|
|
else {
|
|
uVar1 = 1;
|
|
}
|
|
return uVar1;
|
|
}
|
|
|
|
|
|
|
|
/* @00437d04 file=? name=FUN_00437d04 */
|
|
|
|
undefined4 __cdecl FUN_00437d04(undefined4 param_1,float *param_2,int param_3)
|
|
|
|
{
|
|
undefined4 uVar1;
|
|
|
|
if (*param_2 == *(float *)(param_3 + 0x14)) {
|
|
return 0;
|
|
}
|
|
if (*param_2 <= *(float *)(param_3 + 0x14)) {
|
|
uVar1 = 0xffffffff;
|
|
}
|
|
else {
|
|
uVar1 = 1;
|
|
}
|
|
return uVar1;
|
|
}
|
|
|
|
|
|
|
|
/* @00437d32 file=? name=FUN_00437d32 */
|
|
|
|
undefined4 * __cdecl FUN_00437d32(undefined4 *param_1,undefined4 param_2,undefined4 param_3)
|
|
|
|
{
|
|
FUN_00419184(param_1,param_2,param_3);
|
|
*param_1 = &PTR_FUN_004e8b1c;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00437d55 file=? name=FUN_00437d55 */
|
|
|
|
void __cdecl FUN_00437d55(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e8b1c;
|
|
FUN_004191b4(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00437d81 file=? name=FUN_00437d81 */
|
|
|
|
undefined4 __cdecl FUN_00437d81(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;
|
|
}
|
|
|
|
|
|
|
|
/* @00437db0 file=? name=FUN_00437db0 */
|
|
|
|
undefined4 __cdecl FUN_00437db0(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;
|
|
}
|
|
|
|
|
|
|
|
/* @00437ddc file=? name=FUN_00437ddc */
|
|
|
|
void __cdecl FUN_00437ddc(int *param_1,int *param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined4 local_8;
|
|
|
|
(**(code **)(*param_1 + 0x1c))(param_1,&local_8,4);
|
|
iVar1 = FUN_004170e4((int)param_1,local_8);
|
|
*param_2 = iVar1;
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00437e0b file=? name=FUN_00437e0b */
|
|
|
|
undefined4 * __cdecl FUN_00437e0b(undefined4 *param_1,int param_2)
|
|
|
|
{
|
|
FUN_004194d8(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e8ac0;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00437e2a file=? name=FUN_00437e2a */
|
|
|
|
undefined4 * __cdecl FUN_00437e2a(undefined4 *param_1,int param_2)
|
|
|
|
{
|
|
FUN_004194d8(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e8ac0;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00437e49 file=? name=FUN_00437e49 */
|
|
|
|
void __cdecl FUN_00437e49(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e8ac0;
|
|
FUN_0041951c(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00437e75 file=? name=FUN_00437e75 */
|
|
|
|
void __cdecl FUN_00437e75(int *param_1,int *param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined4 local_8;
|
|
|
|
(**(code **)(*param_1 + 0x1c))(param_1,&local_8,4);
|
|
iVar1 = FUN_004170e4((int)param_1,local_8);
|
|
*param_2 = iVar1;
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00437ea4 file=? name=FUN_00437ea4 */
|
|
|
|
undefined4 * __cdecl FUN_00437ea4(undefined4 *param_1,int param_2)
|
|
|
|
{
|
|
FUN_004194d8(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e8a64;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00437ec3 file=? name=FUN_00437ec3 */
|
|
|
|
undefined4 * __cdecl FUN_00437ec3(undefined4 *param_1,int param_2)
|
|
|
|
{
|
|
FUN_004194d8(param_1,param_2);
|
|
*param_1 = &PTR_FUN_004e8a64;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00437ee2 file=? name=FUN_00437ee2 */
|
|
|
|
void __cdecl FUN_00437ee2(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e8a64;
|
|
FUN_0041951c(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00437f0e file=? name=FUN_00437f0e */
|
|
|
|
undefined4 * __cdecl FUN_00437f0e(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;
|
|
}
|
|
|
|
|
|
|
|
/* @00437f3e file=? name=FUN_00437f3e */
|
|
|
|
undefined4 * __cdecl FUN_00437f3e(undefined4 param_1,int param_2,undefined4 *param_3)
|
|
|
|
{
|
|
undefined4 *puVar1;
|
|
|
|
puVar1 = (undefined4 *)FUN_00437fc5();
|
|
if (puVar1 == (undefined4 *)0x0) {
|
|
puVar1 = (undefined4 *)0x0;
|
|
}
|
|
else {
|
|
puVar1 = FUN_00437f6e(puVar1,param_1,param_2,param_3);
|
|
}
|
|
return puVar1;
|
|
}
|
|
|
|
|
|
|
|
/* @00437f6e file=? name=FUN_00437f6e */
|
|
|
|
undefined4 * __cdecl
|
|
FUN_00437f6e(undefined4 *param_1,undefined4 param_2,int param_3,undefined4 *param_4)
|
|
|
|
{
|
|
FUN_004190e8(param_1,param_2,param_3);
|
|
*param_1 = &PTR_FUN_004e8b78;
|
|
param_1[5] = *param_4;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @00437f99 file=? name=FUN_00437f99 */
|
|
|
|
void __cdecl FUN_00437f99(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e8b78;
|
|
FUN_0041910c(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_00438015(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00437fc5 file=? name=FUN_00437fc5 */
|
|
|
|
void FUN_00437fc5(void)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined4 *puVar2;
|
|
|
|
iVar1 = DAT_004e8b74;
|
|
DAT_004e8b74 = DAT_004e8b74 + 1;
|
|
puVar2 = DAT_004e8b70;
|
|
if ((iVar1 == 0) && (puVar2 = (undefined4 *)FUN_00402298(0x28), puVar2 != (undefined4 *)0x0)) {
|
|
FUN_00402b98(puVar2,0x18,100,100,s_TableEntryOf_004e8a2f);
|
|
}
|
|
DAT_004e8b70 = puVar2;
|
|
FUN_00402f74((int)DAT_004e8b70);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00438015 file=? name=FUN_00438015 */
|
|
|
|
void __cdecl FUN_00438015(undefined4 *param_1)
|
|
|
|
{
|
|
FUN_00402f98((int)DAT_004e8b70,param_1);
|
|
DAT_004e8b74 = DAT_004e8b74 + -1;
|
|
if (DAT_004e8b74 == 0) {
|
|
if (DAT_004e8b70 != (int *)0x0) {
|
|
FUN_00402c28(DAT_004e8b70,0);
|
|
FUN_004022d0(DAT_004e8b70);
|
|
}
|
|
DAT_004e8b70 = (int *)0x0;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00438060 file=? name=FUN_00438060 */
|
|
|
|
undefined4 * __cdecl FUN_00438060(undefined4 *param_1,int *param_2,int param_3)
|
|
|
|
{
|
|
undefined4 local_c;
|
|
undefined4 local_8;
|
|
|
|
FUN_00436d14(param_1,param_2,&DAT_004e8698);
|
|
*param_1 = &PTR_FUN_004e8c74;
|
|
param_1[10] = 0;
|
|
param_1[0xb] = 0;
|
|
param_1[0xc] = 0;
|
|
param_1[0xf] = 0;
|
|
param_1[0x10] = 0;
|
|
param_1[0x11] = 0;
|
|
(**(code **)(*param_2 + 0x1c))(param_2,param_1 + 10,0xc);
|
|
(**(code **)(*param_2 + 0x1c))(param_2,&local_8,4);
|
|
(**(code **)(*param_2 + 0x1c))(param_2,&local_c,4);
|
|
FUN_00438124((int)param_1,param_3,local_8,local_c);
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
/* @004380f8 file=? name=FUN_004380f8 */
|
|
|
|
void __cdecl FUN_004380f8(int *param_1,byte param_2)
|
|
|
|
{
|
|
if (param_1 != (int *)0x0) {
|
|
*param_1 = (int)&PTR_FUN_004e8c74;
|
|
FUN_00436d4c(param_1,0);
|
|
if ((param_2 & 1) != 0) {
|
|
FUN_004022d0(param_1);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00438124 file=? name=FUN_00438124 */
|
|
|
|
void __cdecl FUN_00438124(int param_1,int param_2,undefined4 param_3,undefined4 param_4)
|
|
|
|
{
|
|
*(int *)(param_1 + 0x24) = param_2;
|
|
FUN_004206b4(param_2,param_1);
|
|
*(undefined4 *)(param_1 + 0x34) = param_4;
|
|
*(undefined4 *)(param_1 + 0x38) = 0;
|
|
*(undefined4 *)(param_1 + 0x48) = 0x3f800000;
|
|
*(undefined4 *)(param_1 + 0x58) = 0;
|
|
*(undefined4 *)(param_1 + 0x4c) = 0;
|
|
*(undefined4 *)(param_1 + 0x50) = 0x3f800000;
|
|
*(undefined4 *)(param_1 + 0x54) = 0x3f800000;
|
|
*(undefined4 *)(param_1 + 0x5c) = param_3;
|
|
*(undefined4 *)(param_1 + 0x60) = 0xffffffff;
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00438178 file=? name=FUN_00438178 */
|
|
|
|
undefined4 __cdecl FUN_00438178(int param_1)
|
|
|
|
{
|
|
FUN_0041b8e0(param_1);
|
|
return 1;
|
|
}
|
|
|
|
|
|
|
|
/* @0043818c file=munga/audloc.cpp name=FUN_0043818c */
|
|
|
|
void __cdecl FUN_0043818c(int *param_1,int param_2)
|
|
|
|
{
|
|
char *pcVar1;
|
|
uint *puVar2;
|
|
int iVar3;
|
|
int *piVar4;
|
|
float *pfVar5;
|
|
float local_20 [3];
|
|
float local_14;
|
|
uint *local_10;
|
|
int local_c;
|
|
uint *local_8;
|
|
|
|
FUN_00414c58(param_1);
|
|
pcVar1 = (char *)FUN_00403ad0(param_2,s_location_offset_004e8b7c);
|
|
if (pcVar1 == (char *)0x0) {
|
|
FUN_004dbb24(&DAT_00524e20,s_DYN_MEM_STRM_WRITE_ENTRY____name_004e8b8c,(char *)0x0);
|
|
FUN_004dbb24(&DAT_00524e20,s_location_offset_004e8bb1,(char *)0x0);
|
|
FUN_004dbb24(&DAT_00524e20,&DAT_004e8bc1,(char *)0x0);
|
|
FUN_0040385c(s_DYN_MEM_STRM_WRITE_ENTRY____name_004e8bc3,s_d__tesla_bt_munga_AUDLOC_CPP_004e8c03
|
|
,0x77);
|
|
}
|
|
FUN_00408944(pcVar1,local_20);
|
|
(**(code **)(*param_1 + 0x20))(param_1,local_20,0xc);
|
|
puVar2 = (uint *)FUN_00402298(0x10);
|
|
if (puVar2 == (uint *)0x0) {
|
|
local_8 = (uint *)0x0;
|
|
}
|
|
else {
|
|
local_8 = FUN_00402460(puVar2,s_update_delay_004e8c20);
|
|
}
|
|
local_8[3] = local_8[3] + 1;
|
|
local_c = 2;
|
|
iVar3 = FUN_00403ad0(param_2,(char *)local_8[2]);
|
|
if (iVar3 != 0) {
|
|
piVar4 = &local_c;
|
|
pcVar1 = (char *)FUN_00403ad0(param_2,(char *)local_8[2]);
|
|
FUN_00407b30(pcVar1,piVar4);
|
|
}
|
|
(**(code **)(*param_1 + 0x20))(param_1,&local_c,4);
|
|
puVar2 = (uint *)FUN_00402298(0x10);
|
|
if (puVar2 == (uint *)0x0) {
|
|
local_10 = (uint *)0x0;
|
|
}
|
|
else {
|
|
local_10 = FUN_00402460(puVar2,s_clipping_scale_004e8c2d);
|
|
}
|
|
local_10[3] = local_10[3] + 1;
|
|
local_14 = 1.0;
|
|
iVar3 = FUN_00403ad0(param_2,(char *)local_10[2]);
|
|
if (iVar3 != 0) {
|
|
pfVar5 = &local_14;
|
|
pcVar1 = (char *)FUN_00403ad0(param_2,(char *)local_10[2]);
|
|
FUN_00407b78(pcVar1,pfVar5);
|
|
}
|
|
(**(code **)(*param_1 + 0x20))(param_1,&local_14,4);
|
|
puVar2 = local_10 + 3;
|
|
*puVar2 = *puVar2 - 1;
|
|
if (*puVar2 == 0) {
|
|
FUN_004024d8((int *)local_10,3);
|
|
}
|
|
puVar2 = local_8 + 3;
|
|
*puVar2 = *puVar2 - 1;
|
|
if (*puVar2 == 0) {
|
|
FUN_004024d8((int *)local_8,3);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00438340 file=? name=FUN_00438340 */
|
|
|
|
void FUN_00438340(void)
|
|
|
|
{
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
/* @00438348 file=? name=FUN_00438348 */
|
|
|
|
bool __cdecl FUN_00438348(int param_1,int param_2)
|
|
|
|
{
|
|
float fVar1;
|
|
int iVar2;
|
|
float local_14;
|
|
float local_10;
|
|
float local_c;
|
|
|
|
iVar2 = FUN_00417ab4(param_2 + 8);
|
|
FUN_00408644(&local_14,(float *)(iVar2 + 0x100),(float *)(*(int *)(param_1 + 0x24) + 0x100));
|
|
fVar1 = *(float *)(param_2 + 0x14) * *(float *)(param_1 + 0x34);
|
|
return fVar1 * fVar1 < local_c * local_c + local_10 * local_10 + local_14 * local_14;
|
|
}
|
|
|
|
|
|
|
|
/* @004383b4 file=? name=FUN_004383b4 */
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
void __cdecl FUN_004383b4(int param_1,int *param_2)
|
|
|
|
{
|
|
bool bVar1;
|
|
int iVar2;
|
|
undefined3 extraout_var;
|
|
float10 fVar3;
|
|
float *pfVar4;
|
|
float local_cc [3];
|
|
float local_c0 [3];
|
|
float local_b4;
|
|
float local_b0;
|
|
float local_ac;
|
|
float local_a8 [3];
|
|
float local_9c;
|
|
float local_98;
|
|
float local_94;
|
|
float local_90 [3];
|
|
float local_84 [3];
|
|
float local_78 [3];
|
|
float local_6c [12];
|
|
float local_3c;
|
|
float local_38;
|
|
float local_34;
|
|
float local_30;
|
|
float local_2c;
|
|
float local_28;
|
|
float local_24;
|
|
float local_20;
|
|
float local_1c;
|
|
float local_18;
|
|
float local_14;
|
|
float local_10;
|
|
int *local_c;
|
|
int *local_8;
|
|
|
|
local_8 = *(int **)(param_1 + 0x24);
|
|
local_c = (int *)FUN_00417ab4((int)(param_2 + 2));
|
|
if ((local_c == local_8) &&
|
|
(iVar2 = FUN_004084fc((float *)(param_1 + 0x28),(float *)&DAT_004e0f74,0.0001), iVar2 != 0)) {
|
|
*(undefined4 *)(param_1 + 0x38) = 1;
|
|
FUN_00408440((undefined4 *)(param_1 + 0x3c),&DAT_004e0f74);
|
|
*(undefined4 *)(param_1 + 0x48) = 0;
|
|
*(undefined4 *)(param_1 + 0x58) = 0;
|
|
*(undefined4 *)(param_1 + 0x4c) = 0;
|
|
*(undefined4 *)(param_1 + 0x50) = 0x3f800000;
|
|
*(undefined4 *)(param_1 + 0x54) = 0x3f800000;
|
|
return;
|
|
}
|
|
*(undefined4 *)(param_1 + 0x38) = 0;
|
|
(**(code **)(*param_2 + 4))(local_6c);
|
|
FUN_00408744(local_78,(float *)(param_1 + 0x28),(float *)(local_8 + 0x34));
|
|
FUN_004085ec(local_84,(float *)(local_8 + 0x40),local_78);
|
|
FUN_00408644(local_90,local_84,(float *)(local_c + 0x40));
|
|
FUN_0040879c((float *)(param_1 + 0x3c),local_90,local_6c);
|
|
fVar3 = FUN_004dd138((double)(*(float *)(param_1 + 0x44) * *(float *)(param_1 + 0x44) +
|
|
*(float *)(param_1 + 0x40) * *(float *)(param_1 + 0x40) +
|
|
*(float *)(param_1 + 0x3c) * *(float *)(param_1 + 0x3c)));
|
|
*(float *)(param_1 + 0x48) = (float)fVar3;
|
|
local_9c = 0.0;
|
|
local_98 = 0.0;
|
|
local_94 = -1.0;
|
|
local_10 = *(float *)(param_1 + 0x48);
|
|
fVar3 = FUN_004dcd00((double)local_10);
|
|
if ((float10)_DAT_00438768 < fVar3) {
|
|
FUN_004087f4(&local_9c,(float *)(param_1 + 0x3c));
|
|
}
|
|
local_14 = *(float *)(param_1 + 0x3c);
|
|
fVar3 = FUN_004dcd00((double)local_14);
|
|
if (fVar3 <= (float10)_DAT_00438768) {
|
|
local_18 = *(float *)(param_1 + 0x44);
|
|
fVar3 = FUN_004dcd00((double)local_18);
|
|
if (fVar3 <= (float10)_DAT_00438768) {
|
|
*(undefined4 *)(param_1 + 0x4c) = 0;
|
|
goto LAB_004385b4;
|
|
}
|
|
}
|
|
fVar3 = FUN_004dc8ec((double)*(float *)(param_1 + 0x3c),
|
|
SUB84((double)*(float *)(param_1 + 0x44),0),
|
|
(uint)((ulonglong)(double)*(float *)(param_1 + 0x44) >> 0x20));
|
|
local_1c = (float)fVar3;
|
|
*(float *)(param_1 + 0x4c) = local_1c;
|
|
LAB_004385b4:
|
|
if (*(float *)(param_1 + 0x48) <= (float)param_2[8]) {
|
|
*(undefined4 *)(param_1 + 0x50) = 0x3f800000;
|
|
}
|
|
else {
|
|
local_20 = (*(float *)(param_1 + 0x48) - (float)param_2[8]) *
|
|
((float)param_2[9] / *(float *)(param_1 + 0x34));
|
|
fVar3 = FUN_004dce94((double)local_20,SUB84((double)(float)param_2[7],0),
|
|
(uint)((ulonglong)(double)(float)param_2[7] >> 0x20));
|
|
local_24 = (float)(fVar3 + (float10)_DAT_0043876c);
|
|
*(float *)(param_1 + 0x50) = _DAT_0043876c / local_24;
|
|
}
|
|
if (*(float *)(param_1 + 0x48) <= (float)param_2[0xb]) {
|
|
*(undefined4 *)(param_1 + 0x54) = 0x3f800000;
|
|
}
|
|
else {
|
|
local_28 = (*(float *)(param_1 + 0x48) - (float)param_2[0xb]) *
|
|
((float)param_2[0xc] / *(float *)(param_1 + 0x34));
|
|
fVar3 = FUN_004dce94((double)local_28,SUB84((double)(float)param_2[10],0),
|
|
(uint)((ulonglong)(double)(float)param_2[10] >> 0x20));
|
|
local_2c = (float)(fVar3 + (float10)_DAT_0043876c);
|
|
*(float *)(param_1 + 0x54) = _DAT_0043876c / local_2c;
|
|
}
|
|
(**(code **)(*local_c + 0x20))(local_cc);
|
|
pfVar4 = local_cc;
|
|
(**(code **)(*local_8 + 0x20))();
|
|
FUN_00408644(local_a8,local_c0,pfVar4);
|
|
FUN_0040879c(&local_b4,local_a8,(float *)(local_c + 0x34));
|
|
local_30 = *(float *)(param_1 + 0x48);
|
|
fVar3 = FUN_004dcd00((double)local_30);
|
|
if (fVar3 <= (float10)_DAT_00438768) {
|
|
*(undefined4 *)(param_1 + 0x58) = 0;
|
|
}
|
|
else {
|
|
local_38 = local_94 * local_ac + local_98 * local_b0 + local_9c * local_b4;
|
|
local_3c = (float)param_2[6] * _DAT_00438770;
|
|
if (*(float *)(param_1 + 0x48) < local_3c) {
|
|
local_38 = (*(float *)(param_1 + 0x48) / local_3c) * local_38;
|
|
}
|
|
bVar1 = FUN_00438774(param_1,(int)param_2,local_38,&local_34);
|
|
if (CONCAT31(extraout_var,bVar1) != 0) {
|
|
*(float *)(param_1 + 0x58) = local_34;
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|