Files
BT411/reference/decomp/all/part_009.c
T
Joe DiPrimaandClaude Fable 5 f44be87ab2 #60 PART 2: the RE-EXPORT -- dark code 90KB -> 41KB, coverage 87.3% -> 93.5%
Installed JDK 21 + Ghidra 12.1.2 (no admin, %LOCALAPPDATA%\bt411-tools beside
DXSDK/cmake; runner uses 8.3 SHORT paths because Ghidra's .bat expands
%JAVA_HOME% unquoted and the profile has a space).

New tooling: reference/ghidra_scripts/ExportGaps.java -- ExportAll's exact
output contract PLUS a gap-fill pass (force disassembly + createFunction at
E8 call targets outside functions, data->code pointers at a plausible
prologue, and the census's discovered starts; iterated to a fixpoint,
logged to gapfill_report.tsv).  tools/ghidra_reexport.sh (headless runner,
'reprocess' mode) and tools/gapdiff.py (score two censused exports);
gapcensus.py now censuses any export dir.

Results: 6267 -> 6472 functions (+205 created in 2 rounds: 195 census
starts, 6 call targets, 4 data pointers; 56.1KB newly covered), ZERO
decompile failures.  Dark real code 90.4 -> 40.8 KB (54.8% recovered);
game-side dark 53.1 -> 21.1 KB; regions 428 -> 321.  EVERY historically
dark function now has pseudocode -- including @0x4c05c4 VehicleDead, the
absence that opened this issue.

VALIDATION: the new pseudocode confirms this week's hand reconstruction of
the crouch field-for-field (mapPosture/duckState/squatCapable/myomerEff/
novice gate/SetLegAnimation/ForceUpdate/stability alarm) -- and exposed one
branch the raw pass missed: AIRBORNE AUTO-RISE (mode 3|4 && legState 1 ->
forced squ), now implemented in mech4.cpp and re-benched un-regressed.

PROMOTION: the re-export is canonical reference/decomp/; the previous export
is preserved at reference/decomp/archive_2025export/ so old
`part_0NN.c:LINE` citations still resolve (addresses are stable across both;
line/shard membership is NOT -- cite @ADDR).

New lead recorded: @0x4c0904 is the MASTER BTPlayer Performance (team
resolution, EndMission console post, score heartbeat) -- our @0x4c083c
PlayerSimulation attribution needs a re-check.  KB: source-completeness,
gotcha #20 (the rule is cheap now -- look it up), CLAUDE.md router/layout.
Log: phases/phase-04-gap-census.md.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-06 11:11:26 -05:00

12716 lines
318 KiB
C

/* @0046ab18 file=? name=FUN_0046ab18 */
int __cdecl FUN_0046ab18(int param_1)
{
uint uVar1;
int iVar2;
iVar2 = 0;
for (uVar1 = *(uint *)(param_1 + 8); uVar1 != 0; uVar1 = uVar1 & uVar1 - 1) {
iVar2 = iVar2 + 1;
}
return iVar2;
}
/* @0046ab38 file=? name=FUN_0046ab38 */
int __cdecl FUN_0046ab38(int param_1)
{
int iVar1;
iVar1 = FUN_0046ab18(param_1);
return *(int *)(param_1 + 4) - iVar1;
}
/* @0046ab50 file=? name=FUN_0046ab50 */
undefined4 * __cdecl FUN_0046ab50(undefined4 *param_1,int param_2,int param_3)
{
undefined4 uVar1;
undefined4 *puVar2;
int iVar3;
FUN_0044a078(param_1,param_2,param_3);
*param_1 = &PTR_FUN_004f4d70;
FUN_00449ed0(param_1 + 0xb,param_2,param_3);
param_1[8] = param_3;
param_1[6] = param_2;
param_1[7] = param_2 >> 5;
iVar3 = param_1[8] * (param_2 >> 5);
param_1[10] = param_1[8] + -1;
param_1[9] = param_1[6] + -1;
uVar1 = FUN_004022b0(param_1[8]);
param_1[0xe] = uVar1;
uVar1 = FUN_004022b0(iVar3 * 4);
param_1[0xf] = uVar1;
if ((param_1[0xe] == 0) || (param_1[0xf] == 0)) {
param_1[5] = 0;
}
else {
param_1[5] = 1;
FUN_004d4988((undefined4 *)param_1[0xe],0,param_1[8]);
puVar2 = (undefined4 *)param_1[0xf];
for (; 0 < iVar3; iVar3 = iVar3 + -1) {
*puVar2 = 0;
puVar2 = puVar2 + 1;
}
}
return param_1;
}
/* @0046ac08 file=? name=FUN_0046ac08 */
void __cdecl FUN_0046ac08(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004f4d70;
if ((int *)param_1[0xe] != (int *)0x0) {
FUN_004022d0((int *)param_1[0xe]);
param_1[0xe] = 0;
}
if ((int *)param_1[0xf] != (int *)0x0) {
FUN_004022d0((int *)param_1[0xf]);
param_1[0xf] = 0;
}
FUN_00449f30(param_1 + 0xb,2);
FUN_0044a0ac(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0046ac68 file=? name=FUN_0046ac68 */
undefined4 FUN_0046ac68(void)
{
return 1;
}
/* @0046ac74 file=? name=FUN_0046ac74 */
void __cdecl FUN_0046ac74(int param_1,char *param_2)
{
char cVar1;
int *piVar2;
uint uVar3;
uint uVar4;
char *pcVar5;
char *pcVar6;
undefined8 uVar7;
char local_54 [80];
FUN_004dbb24(&DAT_00524e20,param_2,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_Video16BitBuffered__004f4b3c,(char *)0x0);
uVar3 = 0xffffffff;
do {
pcVar5 = param_2;
if (uVar3 == 0) break;
uVar3 = uVar3 - 1;
pcVar5 = param_2 + 1;
cVar1 = *param_2;
param_2 = pcVar5;
} while (cVar1 != '\0');
uVar3 = ~uVar3;
pcVar5 = pcVar5 + -uVar3;
pcVar6 = local_54;
for (uVar4 = uVar3 >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {
*(undefined4 *)pcVar6 = *(undefined4 *)pcVar5;
pcVar5 = pcVar5 + 4;
pcVar6 = pcVar6 + 4;
}
for (uVar3 = uVar3 & 3; uVar3 != 0; uVar3 = uVar3 - 1) {
*pcVar6 = *pcVar5;
pcVar5 = pcVar5 + 1;
pcVar6 = pcVar6 + 1;
}
FUN_004d49b8(local_54,&DAT_004f4b51);
uVar3 = *(uint *)(param_1 + 0x18);
FUN_004dbb24(&DAT_00524e20,local_54,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_width___004f4b55,(char *)0x0);
piVar2 = FUN_004db78c(&DAT_00524e20,uVar3);
FUN_004dbb24(piVar2,&DAT_004f4b62,(char *)0x0);
uVar3 = *(uint *)(param_1 + 0x20);
FUN_004dbb24(&DAT_00524e20,local_54,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_height___004f4b64,(char *)0x0);
piVar2 = FUN_004db78c(&DAT_00524e20,uVar3);
FUN_004dbb24(piVar2,&DAT_004f4b71,(char *)0x0);
uVar3 = *(uint *)(param_1 + 0x24);
FUN_004dbb24(&DAT_00524e20,local_54,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_maximumX___004f4b73,(char *)0x0);
piVar2 = FUN_004db78c(&DAT_00524e20,uVar3);
FUN_004dbb24(piVar2,&DAT_004f4b80,(char *)0x0);
uVar3 = *(uint *)(param_1 + 0x28);
FUN_004dbb24(&DAT_00524e20,local_54,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_maximumY___004f4b82,(char *)0x0);
piVar2 = FUN_004db78c(&DAT_00524e20,uVar3);
FUN_004dbb24(piVar2,&DAT_004f4b8f,(char *)0x0);
pcVar5 = *(char **)(param_1 + 0x38);
FUN_004dbb24(&DAT_00524e20,local_54,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_changedLine__004f4b91,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,pcVar5,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,&DAT_004f4b9e,(char *)0x0);
uVar3 = *(uint *)(param_1 + 0x3c);
FUN_004dbb24(&DAT_00524e20,local_54,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_changedBit___004f4ba0,(char *)0x0);
uVar7 = FUN_004dbd4c(&DAT_00524e20,uVar3);
FUN_004dbb24((int *)uVar7,&DAT_004f4bad,(char *)0x0);
FUN_00449f74((uint *)(param_1 + 0x2c),local_54);
FUN_0044a0cc(param_1,local_54);
return;
}
/* @0046aec4 file=? name=FUN_0046aec4 */
void __cdecl
FUN_0046aec4(int param_1,int param_2,int param_3,int *param_4,int *param_5,int *param_6)
{
*param_4 = param_2 * 2 + *(int *)(param_1 + 0x34) + param_3 * *(int *)(param_1 + 0x18) * 2;
*param_5 = (param_2 >> 5) * 4 + *(int *)(param_1 + 0x3c) + param_3 * *(int *)(param_1 + 0x1c) * 4;
*param_6 = 1 << (0x1f - ((byte)param_2 & 0x1f) & 0x1f);
return;
}
/* @0046af20 file=? name=FUN_0046af20 */
void __cdecl FUN_0046af20(int param_1,int param_2,int param_3)
{
int iVar1;
iVar1 = param_2;
if (param_3 < param_2) {
iVar1 = param_3;
param_3 = param_2;
}
FUN_004d4988((undefined4 *)(iVar1 + *(int *)(param_1 + 0x38)),1,(param_3 - iVar1) + 1);
return;
}
/* @0046af50 file=? name=FUN_0046af50 */
void __cdecl
FUN_0046af50(int param_1,ushort param_2,ushort param_3,int param_4,int param_5,int param_6)
{
int iVar1;
uint local_10;
uint *local_c;
ushort *local_8;
if (*(int *)(param_1 + 0x14) != 0) {
iVar1 = *(int *)(param_1 + 0x28) - param_6;
FUN_0046af20(param_1,iVar1,iVar1);
FUN_0046aec4(param_1,param_5,iVar1,(int *)&local_8,(int *)&local_c,(int *)&local_10);
if (param_4 == 0) {
*local_8 = *local_8 & ~param_3 | param_2;
}
else if (param_4 == 1) {
*local_8 = *local_8 & param_2;
}
else if (param_4 == 2) {
*local_8 = *local_8 | param_2;
}
else if (param_4 == 3) {
*local_8 = *local_8 ^ param_2;
}
*local_c = *local_c | local_10;
DAT_00522cbc = DAT_00522cbc + 1;
}
return;
}
/* @0046aff8 file=? name=FUN_0046aff8 */
void __cdecl
FUN_0046aff8(int *param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5,int param_6,
int param_7,int param_8,int param_9)
{
int iVar1;
int iVar2;
int iVar3;
bool bVar4;
uint local_18;
uint *local_14;
ushort *local_10;
int local_c;
uint local_8;
if (param_1[5] != 0) {
if ((param_7 == param_5) && (param_6 == param_8)) {
if (param_9 != 0) {
(**(code **)(*param_1 + 0x14))(param_1,param_2,param_3,param_4,param_5,param_6);
}
}
else {
iVar2 = param_1[10] - param_6;
iVar1 = param_1[10] - param_8;
FUN_0046af20((int)param_1,iVar2,iVar1);
param_3._0_2_ = ~(ushort)param_3;
iVar3 = param_7 - param_5;
bVar4 = iVar3 < 0;
if (bVar4) {
iVar3 = -iVar3;
}
local_8 = (uint)bVar4;
local_c = iVar1 - iVar2;
if (local_c < 0) {
local_8 = local_8 | 2;
local_c = -local_c;
}
if (local_c < iVar3) {
local_8 = local_8 | 4;
}
FUN_0046aec4((int)param_1,param_5,iVar2,(int *)&local_10,(int *)&local_14,(int *)&local_18);
iVar1 = 0x400;
switch(local_8) {
case 0:
iVar2 = local_c;
if (param_9 == 0) {
iVar2 = local_c + -1;
}
for (; 0 < iVar2; iVar2 = iVar2 + -1) {
if (param_4 == 0) {
*local_10 = *local_10 & (ushort)param_3 | (ushort)param_2;
}
else if (param_4 == 1) {
*local_10 = *local_10 & (ushort)param_2;
}
else if (param_4 == 2) {
*local_10 = *local_10 | (ushort)param_2;
}
else if (param_4 == 3) {
*local_10 = *local_10 ^ (ushort)param_2;
}
*local_14 = *local_14 | local_18;
DAT_00522cbc = DAT_00522cbc + 1;
local_10 = local_10 + param_1[6];
local_14 = local_14 + param_1[7];
iVar1 = iVar1 + (iVar3 << 0xb) / local_c;
if (0x800 < iVar1) {
local_10 = local_10 + 1;
local_18 = local_18 >> 1;
iVar1 = iVar1 + -0x800;
if (local_18 == 0) {
local_14 = local_14 + 1;
local_18 = 0x80000000;
}
}
}
break;
case 1:
iVar2 = local_c;
if (param_9 == 0) {
iVar2 = local_c + -1;
}
for (; 0 < iVar2; iVar2 = iVar2 + -1) {
if (param_4 == 0) {
*local_10 = *local_10 & (ushort)param_3 | (ushort)param_2;
}
else if (param_4 == 1) {
*local_10 = *local_10 & (ushort)param_2;
}
else if (param_4 == 2) {
*local_10 = *local_10 | (ushort)param_2;
}
else if (param_4 == 3) {
*local_10 = *local_10 ^ (ushort)param_2;
}
*local_14 = *local_14 | local_18;
DAT_00522cbc = DAT_00522cbc + 1;
local_10 = local_10 + param_1[6];
local_14 = local_14 + param_1[7];
iVar1 = iVar1 + (iVar3 << 0xb) / local_c;
if (0x800 < iVar1) {
local_10 = local_10 + -1;
local_18 = local_18 << 1;
iVar1 = iVar1 + -0x800;
if (local_18 == 0) {
local_14 = local_14 + -1;
local_18 = 1;
}
}
}
break;
case 2:
iVar2 = local_c;
if (param_9 == 0) {
iVar2 = local_c + -1;
}
for (; 0 < iVar2; iVar2 = iVar2 + -1) {
if (param_4 == 0) {
*local_10 = *local_10 & (ushort)param_3 | (ushort)param_2;
}
else if (param_4 == 1) {
*local_10 = *local_10 & (ushort)param_2;
}
else if (param_4 == 2) {
*local_10 = *local_10 | (ushort)param_2;
}
else if (param_4 == 3) {
*local_10 = *local_10 ^ (ushort)param_2;
}
*local_14 = *local_14 | local_18;
DAT_00522cbc = DAT_00522cbc + 1;
local_10 = local_10 + -param_1[6];
local_14 = local_14 + -param_1[7];
iVar1 = iVar1 + (iVar3 << 0xb) / local_c;
if (0x800 < iVar1) {
local_10 = local_10 + 1;
local_18 = local_18 >> 1;
iVar1 = iVar1 + -0x800;
if (local_18 == 0) {
local_14 = local_14 + 1;
local_18 = 0x80000000;
}
}
}
break;
case 3:
iVar2 = local_c;
if (param_9 == 0) {
iVar2 = local_c + -1;
}
for (; 0 < iVar2; iVar2 = iVar2 + -1) {
if (param_4 == 0) {
*local_10 = *local_10 & (ushort)param_3 | (ushort)param_2;
}
else if (param_4 == 1) {
*local_10 = *local_10 & (ushort)param_2;
}
else if (param_4 == 2) {
*local_10 = *local_10 | (ushort)param_2;
}
else if (param_4 == 3) {
*local_10 = *local_10 ^ (ushort)param_2;
}
*local_14 = *local_14 | local_18;
DAT_00522cbc = DAT_00522cbc + 1;
local_10 = local_10 + -param_1[6];
local_14 = local_14 + -param_1[7];
iVar1 = iVar1 + (iVar3 << 0xb) / local_c;
if (0x800 < iVar1) {
local_10 = local_10 + -1;
local_18 = local_18 << 1;
iVar1 = iVar1 + -0x800;
if (local_18 == 0) {
local_14 = local_14 + -1;
local_18 = 1;
}
}
}
break;
case 4:
iVar2 = iVar3;
if (param_9 == 0) {
iVar2 = iVar3 + -1;
}
for (; 0 < iVar2; iVar2 = iVar2 + -1) {
if (param_4 == 0) {
*local_10 = *local_10 & (ushort)param_3 | (ushort)param_2;
}
else if (param_4 == 1) {
*local_10 = *local_10 & (ushort)param_2;
}
else if (param_4 == 2) {
*local_10 = *local_10 | (ushort)param_2;
}
else if (param_4 == 3) {
*local_10 = *local_10 ^ (ushort)param_2;
}
*local_14 = *local_14 | local_18;
local_10 = local_10 + 1;
local_18 = local_18 >> 1;
DAT_00522cbc = DAT_00522cbc + 1;
if (local_18 == 0) {
local_14 = local_14 + 1;
local_18 = 0x80000000;
}
iVar1 = iVar1 + (local_c << 0xb) / iVar3;
if (0x800 < iVar1) {
iVar1 = iVar1 + -0x800;
local_10 = local_10 + param_1[6];
local_14 = local_14 + param_1[7];
}
}
break;
case 5:
iVar2 = iVar3;
if (param_9 == 0) {
iVar2 = iVar3 + -1;
}
for (; 0 < iVar2; iVar2 = iVar2 + -1) {
if (param_4 == 0) {
*local_10 = *local_10 & (ushort)param_3 | (ushort)param_2;
}
else if (param_4 == 1) {
*local_10 = *local_10 & (ushort)param_2;
}
else if (param_4 == 2) {
*local_10 = *local_10 | (ushort)param_2;
}
else if (param_4 == 3) {
*local_10 = *local_10 ^ (ushort)param_2;
}
*local_14 = *local_14 | local_18;
local_10 = local_10 + -1;
local_18 = local_18 << 1;
DAT_00522cbc = DAT_00522cbc + 1;
if (local_18 == 0) {
local_14 = local_14 + -1;
local_18 = 1;
}
iVar1 = iVar1 + (local_c << 0xb) / iVar3;
if (0x800 < iVar1) {
iVar1 = iVar1 + -0x800;
local_10 = local_10 + param_1[6];
local_14 = local_14 + param_1[7];
}
}
break;
case 6:
iVar2 = iVar3;
if (param_9 == 0) {
iVar2 = iVar3 + -1;
}
for (; 0 < iVar2; iVar2 = iVar2 + -1) {
if (param_4 == 0) {
*local_10 = *local_10 & (ushort)param_3 | (ushort)param_2;
}
else if (param_4 == 1) {
*local_10 = *local_10 & (ushort)param_2;
}
else if (param_4 == 2) {
*local_10 = *local_10 | (ushort)param_2;
}
else if (param_4 == 3) {
*local_10 = *local_10 ^ (ushort)param_2;
}
*local_14 = *local_14 | local_18;
local_10 = local_10 + 1;
local_18 = local_18 >> 1;
DAT_00522cbc = DAT_00522cbc + 1;
if (local_18 == 0) {
local_14 = local_14 + 1;
local_18 = 0x80000000;
}
iVar1 = iVar1 + (local_c << 0xb) / iVar3;
if (0x800 < iVar1) {
iVar1 = iVar1 + -0x800;
local_10 = local_10 + -param_1[6];
local_14 = local_14 + -param_1[7];
}
}
break;
case 7:
iVar2 = iVar3;
if (param_9 == 0) {
iVar2 = iVar3 + -1;
}
for (; 0 < iVar2; iVar2 = iVar2 + -1) {
if (param_4 == 0) {
*local_10 = *local_10 & (ushort)param_3 | (ushort)param_2;
}
else if (param_4 == 1) {
*local_10 = *local_10 & (ushort)param_2;
}
else if (param_4 == 2) {
*local_10 = *local_10 | (ushort)param_2;
}
else if (param_4 == 3) {
*local_10 = *local_10 ^ (ushort)param_2;
}
*local_14 = *local_14 | local_18;
local_10 = local_10 + -1;
local_18 = local_18 << 1;
DAT_00522cbc = DAT_00522cbc + 1;
if (local_18 == 0) {
local_14 = local_14 + -1;
local_18 = 1;
}
iVar1 = iVar1 + (local_c << 0xb) / iVar3;
if (0x800 < iVar1) {
iVar1 = iVar1 + -0x800;
local_10 = local_10 + -param_1[6];
local_14 = local_14 + -param_1[7];
}
}
}
}
}
return;
}
/* @0046b6d4 file=? name=FUN_0046b6d4 */
void __cdecl
FUN_0046b6d4(int param_1,ushort param_2,ushort param_3,int param_4,int param_5,int param_6,
int param_7,int param_8)
{
uint *puVar1;
int iVar2;
uint uVar3;
int iVar4;
int iVar5;
int iVar6;
uint local_10;
uint *local_c;
ushort *local_8;
iVar6 = param_5;
if (*(int *)(param_1 + 0x14) != 0) {
iVar2 = *(int *)(param_1 + 0x28) - param_8;
iVar4 = *(int *)(param_1 + 0x28) - param_6;
if (param_7 < param_5) {
param_5 = param_7;
param_7 = iVar6;
}
iVar6 = iVar4;
if (iVar2 < iVar4) {
iVar6 = iVar2;
iVar2 = iVar4;
}
FUN_0046af20(param_1,iVar6,iVar2);
param_3 = ~param_3;
FUN_0046aec4(param_1,param_5,iVar6,(int *)&local_8,(int *)&local_c,(int *)&local_10);
iVar6 = (iVar2 - iVar6) + 1;
iVar2 = (param_7 - param_5) + 1;
iVar4 = *(int *)(param_1 + 0x18) - iVar2;
if (param_4 == 0) {
for (; 0 < iVar6; iVar6 = iVar6 + -1) {
puVar1 = local_c + *(int *)(param_1 + 0x1c);
uVar3 = local_10;
for (iVar5 = iVar2; 0 < iVar5; iVar5 = iVar5 + -1) {
*local_8 = *local_8 & param_3 | param_2;
local_8 = local_8 + 1;
*local_c = *local_c | uVar3;
DAT_00522cbc = DAT_00522cbc + 1;
uVar3 = uVar3 >> 1;
if (uVar3 == 0) {
local_c = local_c + 1;
uVar3 = 0x80000000;
}
}
local_8 = local_8 + iVar4;
local_c = puVar1;
}
}
else if (param_4 == 1) {
for (; 0 < iVar6; iVar6 = iVar6 + -1) {
puVar1 = local_c + *(int *)(param_1 + 0x1c);
uVar3 = local_10;
for (iVar5 = iVar2; 0 < iVar5; iVar5 = iVar5 + -1) {
*local_8 = *local_8 & param_2;
local_8 = local_8 + 1;
*local_c = *local_c | uVar3;
DAT_00522cbc = DAT_00522cbc + 1;
uVar3 = uVar3 >> 1;
if (uVar3 == 0) {
local_c = local_c + 1;
uVar3 = 0x80000000;
}
}
local_8 = local_8 + iVar4;
local_c = puVar1;
}
}
else if (param_4 == 2) {
for (; 0 < iVar6; iVar6 = iVar6 + -1) {
puVar1 = local_c + *(int *)(param_1 + 0x1c);
uVar3 = local_10;
for (iVar5 = iVar2; 0 < iVar5; iVar5 = iVar5 + -1) {
*local_8 = *local_8 | param_2;
local_8 = local_8 + 1;
*local_c = *local_c | uVar3;
DAT_00522cbc = DAT_00522cbc + 1;
uVar3 = uVar3 >> 1;
if (uVar3 == 0) {
local_c = local_c + 1;
uVar3 = 0x80000000;
}
}
local_8 = local_8 + iVar4;
local_c = puVar1;
}
}
else if (param_4 == 3) {
for (; 0 < iVar6; iVar6 = iVar6 + -1) {
puVar1 = local_c + *(int *)(param_1 + 0x1c);
uVar3 = local_10;
for (iVar5 = iVar2; 0 < iVar5; iVar5 = iVar5 + -1) {
*local_8 = *local_8 ^ param_2;
local_8 = local_8 + 1;
*local_c = *local_c | uVar3;
DAT_00522cbc = DAT_00522cbc + 1;
uVar3 = uVar3 >> 1;
if (uVar3 == 0) {
local_c = local_c + 1;
uVar3 = 0x80000000;
}
}
local_8 = local_8 + iVar4;
local_c = puVar1;
}
}
}
return;
}
/* @0046b91c file=? name=FUN_0046b91c */
undefined4 __cdecl FUN_0046b91c(int param_1)
{
return *(undefined4 *)(param_1 + 0x14);
}
/* @0046b92c file=? name=FUN_0046b92c */
void __cdecl
FUN_0046b92c(int param_1,ushort param_2,ushort param_3,int param_4,int param_5,int param_6,
int param_7,int param_8,int param_9,int param_10,int param_11,int param_12)
{
ushort *puVar1;
uint *puVar2;
uint uVar3;
uint uVar4;
int iVar5;
int iVar6;
int iVar7;
uint *local_28;
uint *local_24;
uint local_20;
ushort *local_1c;
ushort *local_18;
ushort *local_14;
uint local_10;
uint local_c;
int local_8;
if (*(int *)(param_1 + 0x14) != 0) {
iVar5 = *(int *)(param_1 + 0x28) - param_7;
iVar6 = *(int *)(param_8 + 0x10) + -1;
iVar7 = iVar6 - param_10;
local_8 = (param_11 - param_9) + 1;
param_3 = ~param_3;
iVar6 = (iVar7 - (iVar6 - param_12)) + 1;
local_14 = (ushort *)
(*(int *)(param_8 + 0x18) + (param_9 >> 4) * 2 + *(int *)(param_8 + 0x14) * iVar7 * 2
);
local_10 = 1 << (0xf - ((byte)param_9 & 0xf) & 0x1f);
FUN_0046aec4(param_1,param_6,iVar5,(int *)&local_1c,(int *)&local_24,(int *)&local_20);
if (param_5 == 0x5a) {
FUN_0046af20(param_1,iVar5,iVar5 + local_8);
puVar2 = local_24;
uVar4 = local_20;
for (; 0 < iVar6; iVar6 = iVar6 + -1) {
iVar5 = *(int *)(param_8 + 0x14);
local_20 = uVar4 >> 1;
local_24 = puVar2;
if (local_20 == 0) {
local_24 = puVar2 + 1;
local_20 = 0x80000000;
}
puVar1 = local_1c + 1;
local_c = (uint)*local_14;
local_18 = local_14 + 1;
uVar3 = local_10;
for (iVar7 = local_8; 0 < iVar7; iVar7 = iVar7 + -1) {
if (uVar3 == 0) {
uVar3 = 0x8000;
local_c = (uint)*local_18;
local_18 = local_18 + 1;
}
if ((local_c & uVar3) != 0) {
if (param_4 == 0) {
*local_1c = *local_1c & param_3 | param_2;
}
else if (param_4 == 1) {
*local_1c = *local_1c & param_2;
}
else if (param_4 == 2) {
*local_1c = *local_1c | param_2;
}
else if (param_4 == 3) {
*local_1c = *local_1c ^ param_2;
}
*puVar2 = *puVar2 | uVar4;
DAT_00522cbc = DAT_00522cbc + 1;
}
uVar3 = (int)uVar3 >> 1;
puVar2 = puVar2 + *(int *)(param_1 + 0x1c);
local_1c = local_1c + *(int *)(param_1 + 0x18);
}
puVar2 = local_24;
uVar4 = local_20;
local_1c = puVar1;
local_14 = local_14 + -iVar5;
}
}
else if (param_5 == 0xb4) {
FUN_0046af20(param_1,iVar5,iVar5 + iVar6);
local_28 = local_24;
for (; 0 < iVar6; iVar6 = iVar6 + -1) {
iVar5 = *(int *)(param_8 + 0x14);
puVar2 = local_28 + *(int *)(param_1 + 0x1c);
puVar1 = local_1c + *(int *)(param_1 + 0x18);
local_c = (uint)*local_14;
local_18 = local_14 + 1;
uVar4 = local_20;
uVar3 = local_10;
for (iVar7 = local_8; 0 < iVar7; iVar7 = iVar7 + -1) {
if (uVar3 == 0) {
uVar3 = 0x8000;
local_c = (uint)*local_18;
local_18 = local_18 + 1;
}
if ((local_c & uVar3) != 0) {
if (param_4 == 0) {
*local_1c = *local_1c & param_3 | param_2;
}
else if (param_4 == 1) {
*local_1c = *local_1c & param_2;
}
else if (param_4 == 2) {
*local_1c = *local_1c | param_2;
}
else if (param_4 == 3) {
*local_1c = *local_1c ^ param_2;
}
*local_28 = *local_28 | uVar4;
DAT_00522cbc = DAT_00522cbc + 1;
}
uVar4 = uVar4 * 2;
if (uVar4 == 0) {
local_28 = local_28 + -1;
uVar4 = 1;
}
local_1c = local_1c + -1;
uVar3 = (int)uVar3 >> 1;
}
local_28 = puVar2;
local_1c = puVar1;
local_14 = local_14 + -iVar5;
}
}
else if (param_5 == 0x10e) {
if (-1 < param_6 - iVar6) {
FUN_0046af20(param_1,iVar5 - (local_8 + -1),iVar5);
puVar2 = local_24;
uVar4 = local_20;
for (; 0 < iVar6; iVar6 = iVar6 + -1) {
iVar5 = *(int *)(param_8 + 0x14);
local_20 = uVar4 << 1;
local_24 = puVar2;
if (local_20 == 0) {
local_24 = puVar2 + -1;
local_20 = 1;
}
puVar1 = local_1c + -1;
local_c = (uint)*local_14;
local_18 = local_14 + 1;
uVar3 = local_10;
for (iVar7 = local_8; 0 < iVar7; iVar7 = iVar7 + -1) {
if (uVar3 == 0) {
uVar3 = 0x8000;
local_c = (uint)*local_18;
local_18 = local_18 + 1;
}
if ((local_c & uVar3) != 0) {
if (param_4 == 0) {
*local_1c = *local_1c & param_3 | param_2;
}
else if (param_4 == 1) {
*local_1c = *local_1c & param_2;
}
else if (param_4 == 2) {
*local_1c = *local_1c | param_2;
}
else if (param_4 == 3) {
*local_1c = *local_1c ^ param_2;
}
*puVar2 = *puVar2 | uVar4;
DAT_00522cbc = DAT_00522cbc + 1;
}
uVar3 = (int)uVar3 >> 1;
puVar2 = puVar2 + -*(int *)(param_1 + 0x1c);
local_1c = local_1c + -*(int *)(param_1 + 0x18);
}
puVar2 = local_24;
uVar4 = local_20;
local_1c = puVar1;
local_14 = local_14 + -iVar5;
}
}
}
else {
FUN_0046af20(param_1,(iVar5 - iVar6) + 1,iVar5);
local_28 = local_24;
for (; 0 < iVar6; iVar6 = iVar6 + -1) {
iVar5 = *(int *)(param_8 + 0x14);
puVar2 = local_28 + -*(int *)(param_1 + 0x1c);
puVar1 = local_1c + -*(int *)(param_1 + 0x18);
local_c = (uint)*local_14;
local_18 = local_14 + 1;
uVar4 = local_20;
uVar3 = local_10;
for (iVar7 = local_8; 0 < iVar7; iVar7 = iVar7 + -1) {
if (uVar3 == 0) {
uVar3 = 0x8000;
local_c = (uint)*local_18;
local_18 = local_18 + 1;
}
if ((local_c & uVar3) != 0) {
if (param_4 == 0) {
*local_1c = *local_1c & param_3 | param_2;
}
else if (param_4 == 1) {
*local_1c = *local_1c & param_2;
}
else if (param_4 == 2) {
*local_1c = *local_1c | param_2;
}
else if (param_4 == 3) {
*local_1c = *local_1c ^ param_2;
}
*local_28 = *local_28 | uVar4;
DAT_00522cbc = DAT_00522cbc + 1;
}
uVar4 = uVar4 >> 1;
if (uVar4 == 0) {
local_28 = local_28 + 1;
uVar4 = 0x80000000;
}
local_1c = local_1c + 1;
uVar3 = (int)uVar3 >> 1;
}
local_28 = puVar2;
local_1c = puVar1;
local_14 = local_14 + -iVar5;
}
}
}
return;
}
/* @0046bdfc file=? name=FUN_0046bdfc */
void __cdecl
FUN_0046bdfc(int param_1,ushort param_2,ushort param_3,ushort param_4,int param_5,int param_6,
int param_7,int param_8,int param_9,int param_10,int param_11,int param_12,int param_13)
{
ushort *puVar1;
uint *puVar2;
uint uVar3;
ushort uVar4;
uint uVar5;
int iVar6;
int iVar7;
int iVar8;
uint *local_2c;
uint *local_28;
uint local_24 [2];
ushort *local_1c;
ushort *local_18;
ushort *local_14;
uint local_10;
uint local_c;
int local_8;
if (*(int *)(param_1 + 0x14) != 0) {
iVar6 = *(int *)(param_1 + 0x28) - param_8;
iVar7 = *(int *)(param_9 + 0x10) + -1;
iVar8 = iVar7 - param_11;
local_8 = (param_12 - param_10) + 1;
param_4 = ~param_4;
iVar7 = (iVar8 - (iVar7 - param_13)) + 1;
local_14 = (ushort *)
(*(int *)(param_9 + 0x18) + (param_10 >> 4) * 2 +
*(int *)(param_9 + 0x14) * iVar8 * 2);
local_10 = 1 << (0xf - ((byte)param_10 & 0xf) & 0x1f);
FUN_0046aec4(param_1,param_7,iVar6,(int *)&local_1c,(int *)&local_28,(int *)local_24);
if (param_6 == 0x5a) {
FUN_0046af20(param_1,iVar6,iVar6 + local_8);
puVar2 = local_28;
uVar5 = local_24[0];
for (; 0 < iVar7; iVar7 = iVar7 + -1) {
iVar6 = *(int *)(param_9 + 0x14);
local_24[0] = uVar5 >> 1;
local_28 = puVar2;
if (local_24[0] == 0) {
local_28 = puVar2 + 1;
local_24[0] = 0x80000000;
}
puVar1 = local_1c + 1;
local_c = (uint)*local_14;
local_18 = local_14 + 1;
uVar3 = local_10;
for (iVar8 = local_8; 0 < iVar8; iVar8 = iVar8 + -1) {
if (uVar3 == 0) {
uVar3 = 0x8000;
local_c = (uint)*local_18;
local_18 = local_18 + 1;
}
uVar4 = param_3;
if ((local_c & uVar3) != 0) {
uVar4 = param_2;
}
if (param_5 == 0) {
*local_1c = uVar4 | *local_1c & param_4;
}
else if (param_5 == 1) {
*local_1c = *local_1c & uVar4;
}
else if (param_5 == 2) {
*local_1c = *local_1c | uVar4;
}
else if (param_5 == 3) {
*local_1c = *local_1c ^ uVar4;
}
uVar3 = (int)uVar3 >> 1;
*puVar2 = *puVar2 | uVar5;
DAT_00522cbc = DAT_00522cbc + 1;
puVar2 = puVar2 + *(int *)(param_1 + 0x1c);
local_1c = local_1c + *(int *)(param_1 + 0x18);
}
puVar2 = local_28;
uVar5 = local_24[0];
local_1c = puVar1;
local_14 = local_14 + -iVar6;
}
}
else if (param_6 == 0xb4) {
FUN_0046af20(param_1,iVar6,iVar6 + iVar7);
local_2c = local_28;
for (; 0 < iVar7; iVar7 = iVar7 + -1) {
iVar6 = *(int *)(param_9 + 0x14);
puVar2 = local_2c + *(int *)(param_1 + 0x1c);
puVar1 = local_1c + *(int *)(param_1 + 0x18);
local_c = (uint)*local_14;
local_18 = local_14 + 1;
uVar5 = local_24[0];
uVar3 = local_10;
for (iVar8 = local_8; 0 < iVar8; iVar8 = iVar8 + -1) {
if (uVar3 == 0) {
uVar3 = 0x8000;
local_c = (uint)*local_18;
local_18 = local_18 + 1;
}
uVar4 = param_3;
if ((local_c & uVar3) != 0) {
uVar4 = param_2;
}
if (param_5 == 0) {
*local_1c = uVar4 | *local_1c & param_4;
}
else if (param_5 == 1) {
*local_1c = *local_1c & uVar4;
}
else if (param_5 == 2) {
*local_1c = *local_1c | uVar4;
}
else if (param_5 == 3) {
*local_1c = *local_1c ^ uVar4;
}
*local_2c = *local_2c | uVar5;
DAT_00522cbc = DAT_00522cbc + 1;
uVar5 = uVar5 * 2;
if (uVar5 == 0) {
local_2c = local_2c + -1;
uVar5 = 1;
}
local_1c = local_1c + -1;
uVar3 = (int)uVar3 >> 1;
}
local_2c = puVar2;
local_1c = puVar1;
local_14 = local_14 + -iVar6;
}
}
else if (param_6 == 0x10e) {
FUN_0046af20(param_1,iVar6 - (local_8 + -1),iVar6);
puVar2 = local_28;
uVar5 = local_24[0];
for (; 0 < iVar7; iVar7 = iVar7 + -1) {
iVar6 = *(int *)(param_9 + 0x14);
local_24[0] = uVar5 << 1;
local_28 = puVar2;
if (local_24[0] == 0) {
local_28 = puVar2 + -1;
local_24[0] = 1;
}
puVar1 = local_1c + -1;
local_c = (uint)*local_14;
local_18 = local_14 + 1;
uVar3 = local_10;
for (iVar8 = local_8; 0 < iVar8; iVar8 = iVar8 + -1) {
if (uVar3 == 0) {
uVar3 = 0x8000;
local_c = (uint)*local_18;
local_18 = local_18 + 1;
}
uVar4 = param_3;
if ((local_c & uVar3) != 0) {
uVar4 = param_2;
}
if (param_5 == 0) {
*local_1c = uVar4 | *local_1c & param_4;
}
else if (param_5 == 1) {
*local_1c = *local_1c & uVar4;
}
else if (param_5 == 2) {
*local_1c = *local_1c | uVar4;
}
else if (param_5 == 3) {
*local_1c = *local_1c ^ uVar4;
}
uVar3 = (int)uVar3 >> 1;
*puVar2 = *puVar2 | uVar5;
DAT_00522cbc = DAT_00522cbc + 1;
puVar2 = puVar2 + -*(int *)(param_1 + 0x1c);
local_1c = local_1c + -*(int *)(param_1 + 0x18);
}
puVar2 = local_28;
uVar5 = local_24[0];
local_1c = puVar1;
local_14 = local_14 + -iVar6;
}
}
else {
FUN_0046af20(param_1,(iVar6 - iVar7) + 1,iVar6);
local_2c = local_28;
for (; 0 < iVar7; iVar7 = iVar7 + -1) {
iVar6 = *(int *)(param_9 + 0x14);
puVar2 = local_2c + -*(int *)(param_1 + 0x1c);
puVar1 = local_1c + -*(int *)(param_1 + 0x18);
local_c = (uint)*local_14;
local_18 = local_14 + 1;
uVar5 = local_24[0];
uVar3 = local_10;
for (iVar8 = local_8; 0 < iVar8; iVar8 = iVar8 + -1) {
if (uVar3 == 0) {
uVar3 = 0x8000;
local_c = (uint)*local_18;
local_18 = local_18 + 1;
}
uVar4 = param_3;
if ((local_c & uVar3) != 0) {
uVar4 = param_2;
}
if (param_5 == 0) {
*local_1c = uVar4 | *local_1c & param_4;
}
else if (param_5 == 1) {
*local_1c = *local_1c & uVar4;
}
else if (param_5 == 2) {
*local_1c = *local_1c | uVar4;
}
else if (param_5 == 3) {
*local_1c = *local_1c ^ uVar4;
}
*local_2c = *local_2c | uVar5;
DAT_00522cbc = DAT_00522cbc + 1;
uVar5 = uVar5 >> 1;
if (uVar5 == 0) {
local_2c = local_2c + 1;
uVar5 = 0x80000000;
}
local_1c = local_1c + 1;
uVar3 = (int)uVar3 >> 1;
}
local_2c = puVar2;
local_1c = puVar1;
local_14 = local_14 + -iVar6;
}
}
}
return;
}
/* @0046c324 file=? name=FUN_0046c324 */
void __cdecl
FUN_0046c324(int param_1,int param_2,ushort param_3,int param_4,int param_5,int param_6,int param_7,
int param_8,int *param_9,int param_10,int param_11,int param_12,int param_13)
{
byte *pbVar1;
ushort *puVar2;
byte bVar3;
ushort uVar4;
uint *puVar5;
uint uVar6;
int iVar7;
int iVar8;
int iVar9;
uint *local_20;
uint *local_1c;
uint local_18;
ushort *local_14 [2];
byte *local_c;
int local_8;
if (*(int *)(param_1 + 0x14) != 0) {
iVar7 = *(int *)(param_1 + 0x28) - param_8;
iVar8 = (param_9[1] + -1) - param_11;
local_8 = (param_12 - param_10) + 1;
param_3 = ~param_3;
iVar9 = (iVar8 - ((param_9[1] + -1) - param_13)) + 1;
local_c = (byte *)(param_10 + param_9[2] + *param_9 * iVar8);
FUN_0046aec4(param_1,param_7,iVar7,(int *)local_14,(int *)&local_1c,(int *)&local_18);
if (param_5 == 0) {
if (param_6 == 0x5a) {
FUN_0046af20(param_1,iVar7,iVar7 + local_8);
puVar5 = local_1c;
uVar6 = local_18;
for (; 0 < iVar9; iVar9 = iVar9 + -1) {
pbVar1 = local_c + -*param_9;
local_18 = uVar6 >> 1;
local_1c = puVar5;
if (local_18 == 0) {
local_1c = puVar5 + 1;
local_18 = 0x80000000;
}
puVar2 = local_14[0] + 1;
for (iVar7 = local_8; 0 < iVar7; iVar7 = iVar7 + -1) {
bVar3 = *local_c;
local_c = local_c + 1;
if (bVar3 != 0) {
uVar4 = *(ushort *)(param_2 + (uint)bVar3 * 4);
if (param_4 == 0) {
*local_14[0] = uVar4 | *local_14[0] & param_3;
}
else if (param_4 == 1) {
*local_14[0] = *local_14[0] & uVar4;
}
else if (param_4 == 2) {
*local_14[0] = *local_14[0] | uVar4;
}
else if (param_4 == 3) {
*local_14[0] = *local_14[0] ^ uVar4;
}
*puVar5 = *puVar5 | uVar6;
DAT_00522cbc = DAT_00522cbc + 1;
}
puVar5 = puVar5 + *(int *)(param_1 + 0x1c);
local_14[0] = local_14[0] + *(int *)(param_1 + 0x18);
}
puVar5 = local_1c;
uVar6 = local_18;
local_14[0] = puVar2;
local_c = pbVar1;
}
}
else if (param_6 == 0xb4) {
FUN_0046af20(param_1,iVar7,iVar7 + iVar9);
local_20 = local_1c;
for (; 0 < iVar9; iVar9 = iVar9 + -1) {
pbVar1 = local_c + -*param_9;
puVar5 = local_20 + *(int *)(param_1 + 0x1c);
puVar2 = local_14[0] + *(int *)(param_1 + 0x18);
uVar6 = local_18;
for (iVar7 = local_8; 0 < iVar7; iVar7 = iVar7 + -1) {
bVar3 = *local_c;
local_c = local_c + 1;
if (bVar3 != 0) {
uVar4 = *(ushort *)(param_2 + (uint)bVar3 * 4);
if (param_4 == 0) {
*local_14[0] = uVar4 | *local_14[0] & param_3;
}
else if (param_4 == 1) {
*local_14[0] = *local_14[0] & uVar4;
}
else if (param_4 == 2) {
*local_14[0] = *local_14[0] | uVar4;
}
else if (param_4 == 3) {
*local_14[0] = *local_14[0] ^ uVar4;
}
*local_20 = *local_20 | uVar6;
DAT_00522cbc = DAT_00522cbc + 1;
}
uVar6 = uVar6 * 2;
if (uVar6 == 0) {
local_20 = local_20 + -1;
uVar6 = 1;
}
local_14[0] = local_14[0] + -1;
}
local_20 = puVar5;
local_14[0] = puVar2;
local_c = pbVar1;
}
}
else if (param_6 == 0x10e) {
FUN_0046af20(param_1,iVar7 - (local_8 + -1),iVar7);
puVar5 = local_1c;
uVar6 = local_18;
for (; 0 < iVar9; iVar9 = iVar9 + -1) {
pbVar1 = local_c + -*param_9;
local_18 = uVar6 << 1;
local_1c = puVar5;
if (local_18 == 0) {
local_1c = puVar5 + -1;
local_18 = 1;
}
puVar2 = local_14[0] + -1;
for (iVar7 = local_8; 0 < iVar7; iVar7 = iVar7 + -1) {
bVar3 = *local_c;
local_c = local_c + 1;
if (bVar3 != 0) {
uVar4 = *(ushort *)(param_2 + (uint)bVar3 * 4);
if (param_4 == 0) {
*local_14[0] = uVar4 | *local_14[0] & param_3;
}
else if (param_4 == 1) {
*local_14[0] = *local_14[0] & uVar4;
}
else if (param_4 == 2) {
*local_14[0] = *local_14[0] | uVar4;
}
else if (param_4 == 3) {
*local_14[0] = *local_14[0] ^ uVar4;
}
*puVar5 = *puVar5 | uVar6;
DAT_00522cbc = DAT_00522cbc + 1;
}
puVar5 = puVar5 + -*(int *)(param_1 + 0x1c);
local_14[0] = local_14[0] + -*(int *)(param_1 + 0x18);
}
puVar5 = local_1c;
uVar6 = local_18;
local_14[0] = puVar2;
local_c = pbVar1;
}
}
else {
FUN_0046af20(param_1,(iVar7 - iVar9) + 1,iVar7);
local_20 = local_1c;
for (; 0 < iVar9; iVar9 = iVar9 + -1) {
pbVar1 = local_c + -*param_9;
puVar5 = local_20 + -*(int *)(param_1 + 0x1c);
puVar2 = local_14[0] + -*(int *)(param_1 + 0x18);
uVar6 = local_18;
for (iVar7 = local_8; 0 < iVar7; iVar7 = iVar7 + -1) {
bVar3 = *local_c;
local_c = local_c + 1;
if (bVar3 != 0) {
uVar4 = *(ushort *)(param_2 + (uint)bVar3 * 4);
if (param_4 == 0) {
*local_14[0] = uVar4 | *local_14[0] & param_3;
}
else if (param_4 == 1) {
*local_14[0] = *local_14[0] & uVar4;
}
else if (param_4 == 2) {
*local_14[0] = *local_14[0] | uVar4;
}
else if (param_4 == 3) {
*local_14[0] = *local_14[0] ^ uVar4;
}
*local_20 = *local_20 | uVar6;
DAT_00522cbc = DAT_00522cbc + 1;
}
uVar6 = uVar6 >> 1;
if (uVar6 == 0) {
local_20 = local_20 + 1;
uVar6 = 0x80000000;
}
local_14[0] = local_14[0] + 1;
}
local_20 = puVar5;
local_14[0] = puVar2;
local_c = pbVar1;
}
}
}
else if (param_6 == 0x5a) {
FUN_0046af20(param_1,iVar7,iVar7 + local_8);
puVar5 = local_1c;
uVar6 = local_18;
for (; 0 < iVar9; iVar9 = iVar9 + -1) {
pbVar1 = local_c + -*param_9;
local_18 = uVar6 >> 1;
local_1c = puVar5;
if (local_18 == 0) {
local_1c = puVar5 + 1;
local_18 = 0x80000000;
}
puVar2 = local_14[0] + 1;
for (iVar7 = local_8; 0 < iVar7; iVar7 = iVar7 + -1) {
bVar3 = *local_c;
local_c = local_c + 1;
uVar4 = *(ushort *)(param_2 + (uint)bVar3 * 4);
if (param_4 == 0) {
*local_14[0] = uVar4 | *local_14[0] & param_3;
}
else if (param_4 == 1) {
*local_14[0] = *local_14[0] & uVar4;
}
else if (param_4 == 2) {
*local_14[0] = *local_14[0] | uVar4;
}
else if (param_4 == 3) {
*local_14[0] = *local_14[0] ^ uVar4;
}
*puVar5 = *puVar5 | uVar6;
DAT_00522cbc = DAT_00522cbc + 1;
puVar5 = puVar5 + *(int *)(param_1 + 0x1c);
local_14[0] = local_14[0] + *(int *)(param_1 + 0x18);
}
puVar5 = local_1c;
uVar6 = local_18;
local_14[0] = puVar2;
local_c = pbVar1;
}
}
else if (param_6 == 0xb4) {
FUN_0046af20(param_1,iVar7,iVar7 + iVar9);
local_20 = local_1c;
for (; 0 < iVar9; iVar9 = iVar9 + -1) {
pbVar1 = local_c + -*param_9;
puVar5 = local_20 + *(int *)(param_1 + 0x1c);
puVar2 = local_14[0] + *(int *)(param_1 + 0x18);
uVar6 = local_18;
for (iVar7 = local_8; 0 < iVar7; iVar7 = iVar7 + -1) {
bVar3 = *local_c;
local_c = local_c + 1;
uVar4 = *(ushort *)(param_2 + (uint)bVar3 * 4);
if (param_4 == 0) {
*local_14[0] = uVar4 | *local_14[0] & param_3;
}
else if (param_4 == 1) {
*local_14[0] = *local_14[0] & uVar4;
}
else if (param_4 == 2) {
*local_14[0] = *local_14[0] | uVar4;
}
else if (param_4 == 3) {
*local_14[0] = *local_14[0] ^ uVar4;
}
*local_20 = *local_20 | uVar6;
DAT_00522cbc = DAT_00522cbc + 1;
uVar6 = uVar6 * 2;
if (uVar6 == 0) {
local_20 = local_20 + -1;
uVar6 = 1;
}
local_14[0] = local_14[0] + -1;
}
local_20 = puVar5;
local_14[0] = puVar2;
local_c = pbVar1;
}
}
else if (param_6 == 0x10e) {
FUN_0046af20(param_1,iVar7 - (local_8 + -1),iVar7);
puVar5 = local_1c;
uVar6 = local_18;
for (; 0 < iVar9; iVar9 = iVar9 + -1) {
pbVar1 = local_c + -*param_9;
local_18 = uVar6 << 1;
local_1c = puVar5;
if (local_18 == 0) {
local_1c = puVar5 + -1;
local_18 = 1;
}
puVar2 = local_14[0] + -1;
for (iVar7 = local_8; 0 < iVar7; iVar7 = iVar7 + -1) {
bVar3 = *local_c;
local_c = local_c + 1;
uVar4 = *(ushort *)(param_2 + (uint)bVar3 * 4);
if (param_4 == 0) {
*local_14[0] = uVar4 | *local_14[0] & param_3;
}
else if (param_4 == 1) {
*local_14[0] = *local_14[0] & uVar4;
}
else if (param_4 == 2) {
*local_14[0] = *local_14[0] | uVar4;
}
else if (param_4 == 3) {
*local_14[0] = *local_14[0] ^ uVar4;
}
*puVar5 = *puVar5 | uVar6;
DAT_00522cbc = DAT_00522cbc + 1;
puVar5 = puVar5 + -*(int *)(param_1 + 0x1c);
local_14[0] = local_14[0] + -*(int *)(param_1 + 0x18);
}
puVar5 = local_1c;
uVar6 = local_18;
local_14[0] = puVar2;
local_c = pbVar1;
}
}
else {
FUN_0046af20(param_1,(iVar7 - iVar9) + 1,iVar7);
local_20 = local_1c;
for (; 0 < iVar9; iVar9 = iVar9 + -1) {
pbVar1 = local_c + -*param_9;
puVar5 = local_20 + -*(int *)(param_1 + 0x1c);
puVar2 = local_14[0] + -*(int *)(param_1 + 0x18);
uVar6 = local_18;
for (iVar7 = local_8; 0 < iVar7; iVar7 = iVar7 + -1) {
bVar3 = *local_c;
local_c = local_c + 1;
uVar4 = *(ushort *)(param_2 + (uint)bVar3 * 4);
if (param_4 == 0) {
*local_14[0] = uVar4 | *local_14[0] & param_3;
}
else if (param_4 == 1) {
*local_14[0] = *local_14[0] & uVar4;
}
else if (param_4 == 2) {
*local_14[0] = *local_14[0] | uVar4;
}
else if (param_4 == 3) {
*local_14[0] = *local_14[0] ^ uVar4;
}
*local_20 = *local_20 | uVar6;
DAT_00522cbc = DAT_00522cbc + 1;
uVar6 = uVar6 >> 1;
if (uVar6 == 0) {
local_20 = local_20 + 1;
uVar6 = 0x80000000;
}
local_14[0] = local_14[0] + 1;
}
local_20 = puVar5;
local_14[0] = puVar2;
local_c = pbVar1;
}
}
}
return;
}
/* @0046cac4 file=? name=FUN_0046cac4 */
void __cdecl
FUN_0046cac4(int param_1,ushort param_2,ushort param_3,int param_4,int param_5,int param_6,
int param_7,int *param_8,int param_9,int param_10,int param_11,int param_12)
{
char *pcVar1;
ushort *puVar2;
char cVar3;
uint *puVar4;
uint uVar5;
int iVar6;
int iVar7;
int iVar8;
uint *local_20;
uint *local_1c;
uint local_18;
ushort *local_14;
char *local_10;
int local_8;
if (*(int *)(param_1 + 0x14) != 0) {
iVar6 = *(int *)(param_1 + 0x28) - param_7;
iVar7 = (param_8[1] + -1) - param_10;
local_8 = (param_11 - param_9) + 1;
param_3 = ~param_3;
iVar8 = (iVar7 - ((param_8[1] + -1) - param_12)) + 1;
local_10 = (char *)(param_9 + param_8[2] + *param_8 * iVar7);
FUN_0046aec4(param_1,param_6,iVar6,(int *)&local_14,(int *)&local_1c,(int *)&local_18);
if (param_5 == 0x5a) {
FUN_0046af20(param_1,iVar6,iVar6 + local_8);
puVar4 = local_1c;
uVar5 = local_18;
for (; 0 < iVar8; iVar8 = iVar8 + -1) {
pcVar1 = local_10 + -*param_8;
local_18 = uVar5 >> 1;
local_1c = puVar4;
if (local_18 == 0) {
local_1c = puVar4 + 1;
local_18 = 0x80000000;
}
puVar2 = local_14 + 1;
for (iVar6 = local_8; 0 < iVar6; iVar6 = iVar6 + -1) {
cVar3 = *local_10;
local_10 = local_10 + 1;
if (cVar3 != '\0') {
if (param_4 == 0) {
*local_14 = *local_14 & param_3 | param_2;
}
else if (param_4 == 1) {
*local_14 = *local_14 & param_2;
}
else if (param_4 == 2) {
*local_14 = *local_14 | param_2;
}
else if (param_4 == 3) {
*local_14 = *local_14 ^ param_2;
}
*puVar4 = *puVar4 | uVar5;
DAT_00522cbc = DAT_00522cbc + 1;
}
puVar4 = puVar4 + *(int *)(param_1 + 0x1c);
local_14 = local_14 + *(int *)(param_1 + 0x18);
}
puVar4 = local_1c;
uVar5 = local_18;
local_14 = puVar2;
local_10 = pcVar1;
}
}
else if (param_5 == 0xb4) {
FUN_0046af20(param_1,iVar6,iVar6 + iVar8);
local_20 = local_1c;
for (; 0 < iVar8; iVar8 = iVar8 + -1) {
pcVar1 = local_10 + -*param_8;
puVar4 = local_20 + *(int *)(param_1 + 0x1c);
puVar2 = local_14 + *(int *)(param_1 + 0x18);
uVar5 = local_18;
for (iVar6 = local_8; 0 < iVar6; iVar6 = iVar6 + -1) {
cVar3 = *local_10;
local_10 = local_10 + 1;
if (cVar3 != '\0') {
if (param_4 == 0) {
*local_14 = *local_14 & param_3 | param_2;
}
else if (param_4 == 1) {
*local_14 = *local_14 & param_2;
}
else if (param_4 == 2) {
*local_14 = *local_14 | param_2;
}
else if (param_4 == 3) {
*local_14 = *local_14 ^ param_2;
}
*local_20 = *local_20 | uVar5;
DAT_00522cbc = DAT_00522cbc + 1;
}
uVar5 = uVar5 * 2;
if (uVar5 == 0) {
local_20 = local_20 + -1;
uVar5 = 1;
}
local_14 = local_14 + -1;
}
local_20 = puVar4;
local_14 = puVar2;
local_10 = pcVar1;
}
}
else if (param_5 == 0x10e) {
FUN_0046af20(param_1,iVar6 - local_8,iVar6);
puVar4 = local_1c;
uVar5 = local_18;
for (; 0 < iVar8; iVar8 = iVar8 + -1) {
pcVar1 = local_10 + -*param_8;
local_18 = uVar5 << 1;
local_1c = puVar4;
if (local_18 == 0) {
local_1c = puVar4 + -1;
local_18 = 1;
}
puVar2 = local_14 + -1;
for (iVar6 = local_8; 0 < iVar6; iVar6 = iVar6 + -1) {
cVar3 = *local_10;
local_10 = local_10 + 1;
if (cVar3 != '\0') {
if (param_4 == 0) {
*local_14 = *local_14 & param_3 | param_2;
}
else if (param_4 == 1) {
*local_14 = *local_14 & param_2;
}
else if (param_4 == 2) {
*local_14 = *local_14 | param_2;
}
else if (param_4 == 3) {
*local_14 = *local_14 ^ param_2;
}
*puVar4 = *puVar4 | uVar5;
DAT_00522cbc = DAT_00522cbc + 1;
}
puVar4 = puVar4 + -*(int *)(param_1 + 0x1c);
local_14 = local_14 + -*(int *)(param_1 + 0x18);
}
puVar4 = local_1c;
uVar5 = local_18;
local_14 = puVar2;
local_10 = pcVar1;
}
}
else {
FUN_0046af20(param_1,(iVar6 - iVar8) + 1,iVar6);
local_20 = local_1c;
for (; 0 < iVar8; iVar8 = iVar8 + -1) {
pcVar1 = local_10 + -*param_8;
puVar4 = local_20 + -*(int *)(param_1 + 0x1c);
puVar2 = local_14 + -*(int *)(param_1 + 0x18);
uVar5 = local_18;
for (iVar6 = local_8; 0 < iVar6; iVar6 = iVar6 + -1) {
cVar3 = *local_10;
local_10 = local_10 + 1;
if (cVar3 != '\0') {
if (param_4 == 0) {
*local_14 = *local_14 & param_3 | param_2;
}
else if (param_4 == 1) {
*local_14 = *local_14 & param_2;
}
else if (param_4 == 2) {
*local_14 = *local_14 | param_2;
}
else if (param_4 == 3) {
*local_14 = *local_14 ^ param_2;
}
*local_20 = *local_20 | uVar5;
DAT_00522cbc = DAT_00522cbc + 1;
}
uVar5 = uVar5 >> 1;
if (uVar5 == 0) {
local_20 = local_20 + 1;
uVar5 = 0x80000000;
}
local_14 = local_14 + 1;
}
local_20 = puVar4;
local_14 = puVar2;
local_10 = pcVar1;
}
}
}
return;
}
/* @0046ced4 file=? name=FUN_0046ced4 */
int * __cdecl
FUN_0046ced4(int *param_1,uint param_2,int param_3,int param_4,int param_5,int param_6,int param_7,
int param_8,int param_9)
{
int *piVar1;
undefined4 extraout_ECX;
undefined4 extraout_EDX;
int iVar2;
int *piVar3;
short *psVar4;
int local_8;
FUN_0046ab50(param_1,param_3,param_4);
*param_1 = (int)&PTR_FUN_004f4d3c;
piVar3 = param_1 + 0x20;
FUN_004de998(piVar3,0x31c,4,1,FUN_0046e6ec);
param_1[0x10] = param_5 << 10;
param_1[0x11] = param_5 / param_6;
param_1[0x12] = param_7;
param_1[0x13] = param_8;
param_1[0x14] = param_9;
param_1[0x15] = -1;
FUN_0047d70c(param_2,param_1[0x13]);
FUN_0047d7da(extraout_ECX,extraout_EDX,1);
FUN_0046d4a0((int)param_1,0.0);
psVar4 = &DAT_004f4b34;
local_8 = 0;
do {
*(short *)piVar3 = *psVar4;
piVar3[1] = 0;
piVar3[0xc3] = 0;
piVar3[0xc4] = 0;
piVar3[0xc6] = -1;
piVar1 = piVar3 + 0xc5;
iVar2 = 0;
do {
*(undefined1 *)piVar1 = 0xff;
iVar2 = iVar2 + 1;
piVar1 = (int *)((int)piVar1 + 1);
} while (iVar2 < 4);
if (*psVar4 != 0x3c6) {
FUN_0047d8cb(0,iVar2,*psVar4);
}
psVar4 = psVar4 + 1;
local_8 = local_8 + 1;
piVar3 = piVar3 + 199;
} while (local_8 < 4);
param_1[0x15] = -1;
FUN_0046d404((int)param_1);
DAT_00522cbc = 0;
DAT_00522cc0 = 0;
DAT_00522cc4 = 0;
(**(code **)(*param_1 + 0x1c))(param_1,0,0xffff,0,0,0,param_1[9],param_1[10]);
(**(code **)(*param_1 + 8))(param_1,0);
return param_1;
}
/* @0046d050 file=? name=FUN_0046d050 */
void __cdecl FUN_0046d050(int *param_1,byte param_2)
{
uint uVar1;
uint uVar2;
uint uVar3;
int *piVar4;
undefined4 extraout_ECX;
undefined4 extraout_EDX;
double local_c;
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004f4d3c;
FUN_0047d70c(3,0);
uVar3 = DAT_00522cc4;
uVar2 = DAT_00522cc0;
uVar1 = DAT_00522cbc;
if (DAT_00522cc0 == 0) {
local_c = 0.0;
}
else {
local_c = (double)(int)DAT_00522cbc / (double)(int)DAT_00522cc0;
}
FUN_004dbb24(&DAT_00524e20,s_SVGA16___SVGA16__pixel_managemen_004f4baf,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_Number_of_dirty_pixels___004f4be9,(char *)0x0);
piVar4 = FUN_004db78c(&DAT_00524e20,uVar1);
FUN_004dbb24(piVar4,s_Number_of_transferred_pixels__004f4c08,(char *)0x0);
piVar4 = FUN_004db78c(piVar4,uVar2);
FUN_004dbb24(piVar4,s_Times_overflowed___004f4c27,(char *)0x0);
piVar4 = FUN_004db78c(piVar4,uVar3);
FUN_004dbb24(piVar4,s_Ratio___004f4c46,(char *)0x0);
piVar4 = FUN_004db634(piVar4,(float10)local_c);
FUN_004dbb24(piVar4,s__________________________________004f4c4f,(char *)0x0);
FUN_0047d7da(extraout_ECX,extraout_EDX,0);
FUN_004de8d4(param_1 + 0x20,0x31c,4,1,FUN_0046e702);
FUN_0046ac08(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0046d1a8 file=? name=FUN_0046d1a8 */
void FUN_0046d1a8(void)
{
FUN_0046ac68();
return;
}
/* @0046d1b8 file=? name=FUN_0046d1b8 */
void __cdecl FUN_0046d1b8(int param_1,char *param_2)
{
char cVar1;
uint uVar2;
uint uVar3;
char *pcVar4;
char *pcVar5;
char local_54 [80];
FUN_004dbb24(&DAT_00524e20,param_2,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_SVGA16__004f4c89,(char *)0x0);
uVar2 = 0xffffffff;
do {
pcVar4 = param_2;
if (uVar2 == 0) break;
uVar2 = uVar2 - 1;
pcVar4 = param_2 + 1;
cVar1 = *param_2;
param_2 = pcVar4;
} while (cVar1 != '\0');
uVar2 = ~uVar2;
pcVar4 = pcVar4 + -uVar2;
pcVar5 = local_54;
for (uVar3 = uVar2 >> 2; uVar3 != 0; uVar3 = uVar3 - 1) {
*(undefined4 *)pcVar5 = *(undefined4 *)pcVar4;
pcVar4 = pcVar4 + 4;
pcVar5 = pcVar5 + 4;
}
for (uVar2 = uVar2 & 3; uVar2 != 0; uVar2 = uVar2 - 1) {
*pcVar5 = *pcVar4;
pcVar4 = pcVar4 + 1;
pcVar5 = pcVar5 + 1;
}
FUN_004d49b8(local_54,&DAT_004f4c92);
FUN_004dbb24(&DAT_00524e20,local_54,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_SVGA16__004f4c96,(char *)0x0);
FUN_0046ac74(param_1,local_54);
return;
}
/* @0046d260 file=? name=FUN_0046d260 */
undefined4 __cdecl FUN_0046d260(int param_1,int param_2)
{
char cVar1;
int iVar2;
undefined1 *puVar3;
int iVar4;
undefined4 *puVar5;
undefined4 uVar6;
char *this;
int iVar7;
undefined8 uVar8;
int local_14;
int local_10;
char *local_c;
if (*(int *)(param_1 + 0x14) == 0) {
uVar6 = 0;
}
else {
if (param_2 != 0) {
FUN_004d4988(*(undefined4 **)(param_1 + 0x38),1,*(uint *)(param_1 + 0x20));
}
iVar2 = *(int *)(param_1 + 0x5c);
if (*(int *)(param_1 + 0x50) == 0) {
local_c = (char *)0x40;
local_10 = *(int *)(param_1 + 0x18) * 2;
}
else {
local_c = (char *)0x20;
local_10 = *(int *)(param_1 + 0x18);
}
local_14 = 0xf;
do {
this = *(char **)(param_1 + 100);
puVar3 = *(undefined1 **)(param_1 + 100);
cVar1 = *this;
*(int *)(param_1 + 100) = *(int *)(param_1 + 100) + 1;
*puVar3 = 0;
if (cVar1 == '\0') {
*(int *)(param_1 + 0x6c) = *(int *)(param_1 + 0x6c) + *(int *)(param_1 + 0x1c) * 4;
*(int *)(param_1 + 0x68) = *(int *)(param_1 + 0x68) + *(int *)(param_1 + 0x18) * 2;
*(int *)(param_1 + 0x60) = *(int *)(param_1 + 0x60) + local_10;
if (*(int *)(param_1 + 0x40) <= *(int *)(param_1 + 0x60)) {
*(int *)(param_1 + 0x60) = *(int *)(param_1 + 0x60) - *(int *)(param_1 + 0x40);
*(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + *(int *)(param_1 + 0x44);
}
}
else {
local_14 = local_14 + -1;
for (iVar7 = 0; iVar7 < *(int *)(param_1 + 0x1c); iVar7 = iVar7 + 1) {
iVar4 = **(int **)(param_1 + 0x6c);
puVar5 = *(undefined4 **)(param_1 + 0x6c);
*(int *)(param_1 + 0x6c) = *(int *)(param_1 + 0x6c) + 4;
*puVar5 = 0;
if (iVar4 != 0) {
if (*(uint *)(param_1 + 0x58) != *(uint *)(param_1 + 0x54)) {
FUN_0047d7f6(this,*(uint *)(param_1 + 0x58));
this = *(char **)(param_1 + 0x58);
*(char **)(param_1 + 0x54) = this;
}
if (*(int *)(param_1 + 0x50) == 0) {
uVar8 = FUN_0047d848(this,*(undefined4 *)(param_1 + 0x60),
(undefined2 *)*(undefined4 *)(param_1 + 0x60),
*(undefined2 **)(param_1 + 0x68),iVar4);
DAT_00522cc0 = DAT_00522cc0 + (int)uVar8;
}
else {
uVar8 = FUN_0047d88b(*(undefined4 *)(param_1 + 0x60),*(undefined4 *)(param_1 + 0x68),
(undefined1 *)*(undefined4 *)(param_1 + 0x60),
(undefined2 *)*(undefined4 *)(param_1 + 0x68),iVar4);
DAT_00522cc0 = DAT_00522cc0 + (int)uVar8;
}
}
*(int *)(param_1 + 0x68) = *(int *)(param_1 + 0x68) + 0x40;
*(int *)(param_1 + 0x60) = (int)(local_c + *(int *)(param_1 + 0x60));
this = local_c;
if (*(int *)(param_1 + 0x40) <= *(int *)(param_1 + 0x60)) {
*(int *)(param_1 + 0x60) = *(int *)(param_1 + 0x60) - *(int *)(param_1 + 0x40);
this = *(char **)(param_1 + 0x44);
*(int *)(param_1 + 0x58) = (int)(this + *(int *)(param_1 + 0x58));
}
}
}
if ((0x10000000 < DAT_00522cc0) || (0x10000000 < DAT_00522cbc)) {
DAT_00522cc0 = DAT_00522cc0 >> 1;
DAT_00522cbc = DAT_00522cbc >> 1;
DAT_00522cc4 = DAT_00522cc4 + 1;
}
*(int *)(param_1 + 0x5c) = *(int *)(param_1 + 0x5c) + 1;
if (*(int *)(param_1 + 0x20) <= *(int *)(param_1 + 0x5c)) {
FUN_0046d404(param_1);
}
if (*(int *)(param_1 + 0x5c) == iVar2) {
return 0;
}
} while (0 < local_14);
uVar6 = 1;
}
return uVar6;
}
/* @0046d404 file=? name=FUN_0046d404 */
void __cdecl FUN_0046d404(int param_1)
{
*(undefined4 *)(param_1 + 0x5c) = 0;
*(undefined4 *)(param_1 + 0x68) = *(undefined4 *)(param_1 + 0x34);
*(undefined4 *)(param_1 + 100) = *(undefined4 *)(param_1 + 0x38);
*(undefined4 *)(param_1 + 0x6c) = *(undefined4 *)(param_1 + 0x3c);
*(undefined4 *)(param_1 + 0x58) = 0;
*(undefined4 *)(param_1 + 0x60) = 0;
return;
}
/* @0046d430 file=? name=FUN_0046d430 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
void __cdecl FUN_0046d430(int param_1,float param_2)
{
undefined4 *puVar1;
float10 fVar2;
puVar1 = (undefined4 *)FUN_00414b60();
*(undefined4 *)(param_1 + 0x7c) = *puVar1;
*(undefined4 *)(param_1 + 0x70) = 3;
fVar2 = FUN_004dcd00((double)param_2);
if ((float10)_DAT_0046d498 < fVar2) {
*(float *)(param_1 + 0x78) = _DAT_0046d49c / param_2;
}
else {
*(undefined4 *)(param_1 + 0x78) = 0;
*(undefined4 *)(param_1 + 0x74) = 0x3f800000;
}
return;
}
/* @0046d4a0 file=? name=FUN_0046d4a0 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
void __cdecl FUN_0046d4a0(int param_1,float param_2)
{
undefined4 *puVar1;
float10 fVar2;
puVar1 = (undefined4 *)FUN_00414b60();
*(undefined4 *)(param_1 + 0x7c) = *puVar1;
*(undefined4 *)(param_1 + 0x70) = 1;
fVar2 = FUN_004dcd00((double)param_2);
if ((float10)_DAT_0046d504 < fVar2) {
*(float *)(param_1 + 0x78) = _DAT_0046d508 / param_2;
}
else {
*(undefined4 *)(param_1 + 0x78) = 0;
*(undefined4 *)(param_1 + 0x74) = 0;
}
return;
}
/* @0046d50c file=? name=FUN_0046d50c */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
void __cdecl FUN_0046d50c(short *param_1)
{
undefined4 uVar1;
undefined2 extraout_var;
byte *pbVar2;
int iVar3;
int local_308;
byte local_304 [768];
FUN_004498a8(&local_308);
iVar3 = 0;
pbVar2 = local_304;
do {
uVar1 = FUN_004dcd94();
*pbVar2 = (byte)uVar1;
uVar1 = FUN_004dcd94();
pbVar2[1] = (byte)uVar1;
uVar1 = FUN_004dcd94();
pbVar2[2] = (byte)uVar1;
iVar3 = iVar3 + 1;
pbVar2 = pbVar2 + 3;
} while (iVar3 < 0x100);
FUN_0047d8f2(CONCAT22(extraout_var,*param_1),param_1,local_304,*param_1);
FUN_00449994(&local_308,2);
return;
}
/* @0046d694 file=? name=FUN_0046d694 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
uint __cdecl FUN_0046d694(int param_1)
{
int *piVar1;
float fVar2;
undefined1 uVar3;
uint uVar4;
int iVar5;
float fVar6;
int *piVar7;
uint uVar8;
undefined2 extraout_var;
undefined2 extraout_var_00;
undefined4 extraout_ECX;
undefined2 *puVar9;
short *psVar10;
int iVar11;
undefined8 uVar12;
piVar7 = (int *)FUN_00414b60();
piVar1 = (int *)(param_1 + 0x7c);
fVar6 = (float)(*piVar7 - *piVar1) / DAT_0052140c;
*piVar1 = *piVar7;
uVar8 = CONCAT22((short)((uint)piVar1 >> 0x10),
(ushort)(fVar6 < _DAT_0046d834) << 8 |
(ushort)(NAN(fVar6) || NAN(_DAT_0046d834)) << 10 |
(ushort)(fVar6 == _DAT_0046d834) << 0xe);
if (fVar6 >= _DAT_0046d834 && (fVar6 == _DAT_0046d834) == 0) {
puVar9 = (undefined2 *)(param_1 + 0x80);
iVar11 = 0;
do {
fVar2 = *(float *)(puVar9 + 0x188);
uVar8 = CONCAT22((short)(uVar8 >> 0x10),
(ushort)(fVar2 < _DAT_0046d834) << 8 |
(ushort)(NAN(fVar2) || NAN(_DAT_0046d834)) << 10 |
(ushort)(fVar2 == _DAT_0046d834) << 0xe);
if ((fVar2 == _DAT_0046d834) == 0) {
*(float *)(puVar9 + 0x186) = *(float *)(puVar9 + 0x188) * fVar6 + *(float *)(puVar9 + 0x186)
;
while (_DAT_0046d838 <= *(float *)(puVar9 + 0x186)) {
*(float *)(puVar9 + 0x186) = *(float *)(puVar9 + 0x186) - _DAT_0046d838;
}
uVar8 = FUN_004dcd94();
uVar4 = *(uint *)(puVar9 + 0x18c);
if (uVar8 != uVar4) {
*(uint *)(puVar9 + 0x18c) = uVar8;
uVar3 = *(undefined1 *)((int)puVar9 + uVar8 + 0x314);
uVar12 = FUN_0047d962(CONCAT31((int3)((uint)extraout_ECX >> 8),uVar3),uVar4,*puVar9,uVar3)
;
uVar8 = (uint)uVar12;
}
}
iVar11 = iVar11 + 1;
puVar9 = puVar9 + 0x18e;
} while (iVar11 < 4);
psVar10 = (short *)(param_1 + 0x80);
iVar11 = 0;
do {
if ((iVar11 == 1) && (uVar8 = 0, *(int *)(param_1 + 0x70) != 0)) {
psVar10[2] = 0;
psVar10[3] = 0;
iVar5 = *(int *)(param_1 + 0x70);
if (iVar5 == 1) {
*(float *)(param_1 + 0x74) =
*(float *)(param_1 + 0x74) - fVar6 * *(float *)(param_1 + 0x78);
FUN_0046d50c(psVar10);
fVar2 = *(float *)(param_1 + 0x74);
uVar8 = CONCAT22(extraout_var,
(ushort)(fVar2 < _DAT_0046d834) << 8 |
(ushort)(NAN(fVar2) || NAN(_DAT_0046d834)) << 10 |
(ushort)(fVar2 == _DAT_0046d834) << 0xe);
if (fVar2 < _DAT_0046d834 || (fVar2 == _DAT_0046d834) != 0) {
*(undefined4 *)(param_1 + 0x74) = 0;
*(undefined4 *)(param_1 + 0x70) = 2;
}
}
else {
uVar8 = 0;
if ((iVar5 != 2) && (uVar8 = iVar5 - 3, uVar8 == 0)) {
*(float *)(param_1 + 0x74) =
fVar6 * *(float *)(param_1 + 0x78) + *(float *)(param_1 + 0x74);
FUN_0046d50c(psVar10);
fVar2 = *(float *)(param_1 + 0x74);
uVar8 = CONCAT22(extraout_var_00,
(ushort)(fVar2 < _DAT_0046d83c) << 8 |
(ushort)(NAN(fVar2) || NAN(_DAT_0046d83c)) << 10 |
(ushort)(fVar2 == _DAT_0046d83c) << 0xe);
if (fVar2 >= _DAT_0046d83c) {
*(undefined4 *)(param_1 + 0x74) = 0x3f800000;
*(undefined4 *)(param_1 + 0x70) = 0;
}
}
}
}
else if (*(int *)(psVar10 + 2) != 0) {
psVar10[2] = 0;
psVar10[3] = 0;
uVar12 = FUN_0047d8f2(0,psVar10 + 6,(byte *)(psVar10 + 6),*psVar10);
uVar8 = (uint)uVar12;
}
iVar11 = iVar11 + 1;
psVar10 = psVar10 + 0x18e;
} while (iVar11 < 4);
}
return uVar8;
}
/* @0046d840 file=? name=FUN_0046d840 */
undefined6 __cdecl FUN_0046d840(undefined4 param_1,int param_2)
{
undefined6 uVar1;
uVar1 = FUN_0047d76d(param_2);
return uVar1;
}
/* @0046d850 file=? name=FUN_0046d850 */
undefined4 * __cdecl
FUN_0046d850(undefined4 *param_1,undefined4 *param_2,char *param_3,undefined4 param_4,
undefined4 param_5,undefined4 param_6,undefined4 param_7)
{
uint uVar1;
undefined4 *puVar2;
int iVar3;
FUN_0044a2d0(param_1,param_2,param_3);
*param_1 = &PTR_FUN_004f4d0c;
param_1[0x14a] = param_4;
param_1[0x14f] = param_6;
param_1[0x150] = param_7;
uVar1 = 0x8000;
param_1[0x14b] = param_5;
param_1[0x14c] = 0;
do {
if ((param_1[0x14b] & uVar1) != 0) {
param_1[0x14c] = param_1[0x14c] + 1;
}
uVar1 = (int)uVar1 >> 1;
} while (uVar1 != 0);
param_1[0x14d] = param_1[3] - param_1[1];
param_1[0x14e] = param_1[4] - param_1[2];
if (((param_1[0x14a] == 0x5a) || (param_1[0x14a] == 0x10e)) && (param_2 != (undefined4 *)0x0)) {
param_1[1] = param_2[2];
param_1[2] = param_2[1];
param_1[3] = param_2[4];
param_1[4] = param_2[3];
}
iVar3 = 0;
puVar2 = param_1 + 0x10a;
do {
*(undefined1 *)puVar2 = 0;
iVar3 = iVar3 + 1;
puVar2 = (undefined4 *)((int)puVar2 + 1);
} while (iVar3 < 0x100);
return param_1;
}
/* @0046d91c file=? name=FUN_0046d91c */
void __cdecl FUN_0046d91c(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004f4d0c;
FUN_0044a348(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0046d948 file=? name=FUN_0046d948 */
undefined4 FUN_0046d948(void)
{
return 1;
}
/* @0046d954 file=? name=FUN_0046d954 */
void __cdecl FUN_0046d954(int param_1,char *param_2)
{
char cVar1;
int *piVar2;
uint uVar3;
uint uVar4;
char *pcVar5;
char *pcVar6;
uint *puVar7;
char local_54 [80];
FUN_004dbb24(&DAT_00524e20,param_2,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_L4GraphicsPort__004f4c9f,(char *)0x0);
uVar3 = 0xffffffff;
do {
pcVar5 = param_2;
if (uVar3 == 0) break;
uVar3 = uVar3 - 1;
pcVar5 = param_2 + 1;
cVar1 = *param_2;
param_2 = pcVar5;
} while (cVar1 != '\0');
uVar3 = ~uVar3;
pcVar5 = pcVar5 + -uVar3;
pcVar6 = local_54;
for (uVar4 = uVar3 >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {
*(undefined4 *)pcVar6 = *(undefined4 *)pcVar5;
pcVar5 = pcVar5 + 4;
pcVar6 = pcVar6 + 4;
}
for (uVar3 = uVar3 & 3; uVar3 != 0; uVar3 = uVar3 - 1) {
*pcVar6 = *pcVar5;
pcVar5 = pcVar5 + 1;
pcVar6 = pcVar6 + 1;
}
FUN_004d49b8(local_54,&DAT_004f4cb0);
uVar3 = *(uint *)(param_1 + 0x52c);
FUN_004dbb24(&DAT_00524e20,local_54,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_bitMask___004f4cb4,(char *)0x0);
piVar2 = FUN_004db78c(&DAT_00524e20,uVar3);
FUN_004dbb24(piVar2,&DAT_004f4cc3,(char *)0x0);
uVar3 = *(uint *)(param_1 + 0x528);
FUN_004dbb24(&DAT_00524e20,local_54,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_baseRotation___004f4cc5,(char *)0x0);
piVar2 = FUN_004db78c(&DAT_00524e20,uVar3);
FUN_004dbb24(piVar2,&DAT_004f4cd4,(char *)0x0);
uVar3 = *(uint *)(param_1 + 0x534);
FUN_004dbb24(&DAT_00524e20,local_54,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_maximumX___004f4cd6,(char *)0x0);
piVar2 = FUN_004db78c(&DAT_00524e20,uVar3);
FUN_004dbb24(piVar2,&DAT_004f4ce5,(char *)0x0);
uVar3 = *(uint *)(param_1 + 0x538);
FUN_004dbb24(&DAT_00524e20,local_54,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_maximumY___004f4ce7,(char *)0x0);
piVar2 = FUN_004db78c(&DAT_00524e20,uVar3);
FUN_004dbb24(piVar2,&DAT_004f4cf6,(char *)0x0);
puVar7 = (uint *)(param_1 + 4);
FUN_004dbb24(&DAT_00524e20,local_54,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_bounds___004f4cf8,(char *)0x0);
piVar2 = (int *)FUN_00407d78(&DAT_00524e20,puVar7);
FUN_004dbb24(piVar2,&DAT_004f4d07,(char *)0x0);
FUN_004d9c70(&DAT_00524e20);
FUN_0044a374(param_1,local_54);
return;
}
/* @0046db5c file=? name=FUN_0046db5c */
void __cdecl FUN_0046db5c(int param_1,undefined1 *param_2,int param_3)
{
if (1 < *(int *)(param_1 + 0x540) - 4U) {
FUN_0046e31c(param_1,param_2,param_3);
}
return;
}
/* @0046db84 file=? name=FUN_0046db84 */
void __cdecl FUN_0046db84(int param_1,int param_2)
{
if (*(int *)(param_1 + 0x14) != 0) {
if (*(int *)(param_1 + 0x540) == 4) {
FUN_0046e180(param_1,param_2);
return;
}
if (*(int *)(param_1 + 0x540) == 5) {
FUN_0046e578(param_1);
FUN_0046e650(param_1);
return;
}
FUN_0046e1e4(param_1,param_2);
FUN_0046e650(param_1);
}
return;
}
/* @0046dbdc file=? name=FUN_0046dbdc */
void __cdecl FUN_0046dbdc(int param_1)
{
uint uVar1;
int *piVar2;
int local_310 [193];
undefined2 local_a;
undefined1 local_8;
undefined2 local_7;
undefined1 local_5;
if (*(int *)(param_1 + 0x14) != 0) {
if (*(int *)(param_1 + 0x540) == 4) {
piVar2 = local_310;
uVar1 = FUN_004498a8(piVar2);
local_7 = 0;
local_5 = 0;
local_a = 0xffff;
local_8 = 0xff;
FUN_004499e4((int)local_310,0,0xff,(uVar1 & 0xffffff00) << 0x10,
CONCAT22((short)CONCAT31((int3)((uint)piVar2 >> 8),0xff),0xffff));
FUN_0046e180(param_1,(int)local_310);
FUN_00449994(local_310,2);
}
else if (*(int *)(param_1 + 0x540) == 5) {
FUN_0046e578(param_1);
FUN_0046e694(param_1);
}
else {
FUN_0046e444(param_1);
FUN_0046e694(param_1);
}
}
return;
}
/* @0046dca0 file=? name=FUN_0046dca0 */
void __cdecl FUN_0046dca0(int param_1,int param_2,undefined4 param_3,int param_4,int param_5)
{
int local_c;
int local_8;
if (*(int *)(param_1 + 0x14) != 0) {
FUN_0046e114(param_1,&local_8,&local_c,param_4,param_5);
(**(code **)(**(int **)(param_1 + 0x14) + 0x14))
(*(int **)(param_1 + 0x14),*(undefined4 *)(param_1 + 0x28 + param_2 * 4),
*(undefined4 *)(param_1 + 0x52c),param_3,local_8 + *(int *)(param_1 + 4),
local_c + *(int *)(param_1 + 8));
}
return;
}
/* @0046dd00 file=? name=FUN_0046dd00 */
void __cdecl
FUN_0046dd00(int param_1,int param_2,undefined4 param_3,int param_4,int param_5,int param_6,
int param_7,undefined4 param_8)
{
int local_14;
int local_10;
int local_c;
int local_8;
if (*(int *)(param_1 + 0x14) != 0) {
FUN_0046e114(param_1,&local_8,&local_c,param_4,param_5);
FUN_0046e114(param_1,&local_10,&local_14,param_6,param_7);
(**(code **)(**(int **)(param_1 + 0x14) + 0x18))
(*(int **)(param_1 + 0x14),*(undefined4 *)(param_1 + 0x28 + param_2 * 4),
*(undefined4 *)(param_1 + 0x52c),param_3,local_8 + *(int *)(param_1 + 4),
local_c + *(int *)(param_1 + 8),local_10 + *(int *)(param_1 + 4),
local_14 + *(int *)(param_1 + 8),param_8);
}
return;
}
/* @0046dd8c file=? name=FUN_0046dd8c */
void __cdecl
FUN_0046dd8c(int param_1,int param_2,undefined4 param_3,int param_4,int param_5,int param_6,
int param_7)
{
int local_14;
int local_10;
int local_c;
int local_8;
if (*(int *)(param_1 + 0x14) != 0) {
FUN_0046e114(param_1,&local_8,&local_c,param_4,param_5);
FUN_0046e114(param_1,&local_10,&local_14,param_6,param_7);
(**(code **)(**(int **)(param_1 + 0x14) + 0x1c))
(*(int **)(param_1 + 0x14),*(undefined4 *)(param_1 + 0x28 + param_2 * 4),
*(undefined4 *)(param_1 + 0x52c),param_3,local_8 + *(int *)(param_1 + 4),
local_c + *(int *)(param_1 + 8),local_10 + *(int *)(param_1 + 4),
local_14 + *(int *)(param_1 + 8));
}
return;
}
/* @0046de14 file=? name=FUN_0046de14 */
void FUN_0046de14(void)
{
return;
}
/* @0046de1c file=? name=FUN_0046de1c */
void __cdecl
FUN_0046de1c(int param_1,int param_2,undefined4 param_3,int param_4,int param_5,int param_6,
int param_7,undefined4 param_8,undefined4 param_9,undefined4 param_10,
undefined4 param_11)
{
int iVar1;
int local_c;
int local_8;
if (((*(int *)(param_1 + 0x14) != 0) && (param_7 != 0)) && (*(int *)(param_7 + 0x18) != 0)) {
FUN_0046e114(param_1,&local_8,&local_c,param_5,param_6);
for (iVar1 = param_4 + *(int *)(param_1 + 0x528); iVar1 < 0; iVar1 = iVar1 + 0x168) {
}
for (; 0x167 < iVar1; iVar1 = iVar1 + -0x168) {
}
(**(code **)(**(int **)(param_1 + 0x14) + 0x24))
(*(int **)(param_1 + 0x14),*(undefined4 *)(param_1 + 0x28 + param_2 * 4),
*(undefined4 *)(param_1 + 0x52c),param_3,iVar1,local_8 + *(int *)(param_1 + 4),
local_c + *(int *)(param_1 + 8),param_7,param_8,param_9,param_10,param_11);
}
return;
}
/* @0046ded8 file=? name=FUN_0046ded8 */
void __cdecl
FUN_0046ded8(int param_1,int param_2,int param_3,undefined4 param_4,int param_5,int param_6,
int param_7,int param_8,undefined4 param_9,undefined4 param_10,undefined4 param_11,
undefined4 param_12)
{
int iVar1;
int local_c;
int local_8;
if (((*(int *)(param_1 + 0x14) != 0) && (param_8 != 0)) && (*(int *)(param_8 + 0x18) != 0)) {
FUN_0046e114(param_1,&local_8,&local_c,param_6,param_7);
for (iVar1 = param_5 + *(int *)(param_1 + 0x528); iVar1 < 0; iVar1 = iVar1 + 0x168) {
}
for (; 0x167 < iVar1; iVar1 = iVar1 + -0x168) {
}
(**(code **)(**(int **)(param_1 + 0x14) + 0x28))
(*(int **)(param_1 + 0x14),*(undefined4 *)(param_1 + 0x28 + param_2 * 4),
*(undefined4 *)(param_1 + 0x28 + param_3 * 4),*(undefined4 *)(param_1 + 0x52c),
param_4,iVar1,local_8 + *(int *)(param_1 + 4),local_c + *(int *)(param_1 + 8),param_8
,param_9,param_10,param_11,param_12);
}
return;
}
/* @0046df9c file=? name=FUN_0046df9c */
void __cdecl
FUN_0046df9c(int param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5,int param_6,
int param_7,undefined4 param_8,undefined4 param_9,undefined4 param_10,
undefined4 param_11)
{
int iVar1;
int local_c;
int local_8;
if (((*(int *)(param_1 + 0x14) != 0) && (param_7 != 0)) && (*(int *)(param_7 + 8) != 0)) {
FUN_0046e114(param_1,&local_8,&local_c,param_5,param_6);
for (iVar1 = param_4 + *(int *)(param_1 + 0x528); iVar1 < 0; iVar1 = iVar1 + 0x168) {
}
for (; 0x167 < iVar1; iVar1 = iVar1 + -0x168) {
}
(**(code **)(**(int **)(param_1 + 0x14) + 0x2c))
(*(int **)(param_1 + 0x14),param_1 + 0x28,*(undefined4 *)(param_1 + 0x52c),param_2,
param_3,iVar1,local_8 + *(int *)(param_1 + 4),local_c + *(int *)(param_1 + 8),param_7
,param_8,param_9,param_10,param_11);
}
return;
}
/* @0046e058 file=? name=FUN_0046e058 */
void __cdecl
FUN_0046e058(int param_1,int param_2,undefined4 param_3,int param_4,int param_5,int param_6,
int param_7,undefined4 param_8,undefined4 param_9,undefined4 param_10,
undefined4 param_11)
{
int iVar1;
int local_c;
int local_8;
if (((*(int *)(param_1 + 0x14) != 0) && (param_7 != 0)) && (*(int *)(param_7 + 8) != 0)) {
FUN_0046e114(param_1,&local_8,&local_c,param_5,param_6);
for (iVar1 = param_4 + *(int *)(param_1 + 0x528); iVar1 < 0; iVar1 = iVar1 + 0x168) {
}
for (; 0x167 < iVar1; iVar1 = iVar1 + -0x168) {
}
(**(code **)(**(int **)(param_1 + 0x14) + 0x30))
(*(int **)(param_1 + 0x14),*(undefined4 *)(param_1 + 0x28 + param_2 * 4),
*(undefined4 *)(param_1 + 0x52c),param_3,iVar1,local_8 + *(int *)(param_1 + 4),
local_c + *(int *)(param_1 + 8),param_7,param_8,param_9,param_10,param_11);
}
return;
}
/* @0046e114 file=? name=FUN_0046e114 */
void __cdecl FUN_0046e114(int param_1,int *param_2,int *param_3,int param_4,int param_5)
{
int iVar1;
iVar1 = *(int *)(param_1 + 0x528);
if (iVar1 == 0x5a) {
*param_2 = param_5;
*param_3 = *(int *)(param_1 + 0x538) - param_4;
}
else if (iVar1 == 0xb4) {
*param_2 = *(int *)(param_1 + 0x534) - param_4;
*param_3 = *(int *)(param_1 + 0x538) - param_5;
}
else if (iVar1 == 0x10e) {
*param_2 = *(int *)(param_1 + 0x534) - param_5;
*param_3 = param_4;
}
else {
*param_2 = param_4;
*param_3 = param_5;
}
return;
}
/* @0046e180 file=? name=FUN_0046e180 */
void __cdecl FUN_0046e180(int param_1,int param_2)
{
byte *pbVar1;
byte *pbVar2;
byte bVar3;
byte *pbVar4;
int iVar5;
uint *puVar6;
pbVar4 = (byte *)(param_2 + 4);
*(undefined4 *)(param_1 + 0x52c) = 0xffff;
puVar6 = (uint *)(param_1 + 0x28);
iVar5 = 0x100;
do {
pbVar1 = pbVar4 + 1;
bVar3 = *pbVar4;
pbVar2 = pbVar4 + 2;
pbVar4 = pbVar4 + 3;
iVar5 = iVar5 + -1;
*puVar6 = ((int)(uint)bVar3 >> 3) << 0xb | ((int)(uint)*pbVar1 >> 2) << 5 |
(int)(uint)*pbVar2 >> 3;
puVar6 = puVar6 + 1;
} while (0 < iVar5);
return;
}
/* @0046e1e4 file=? name=FUN_0046e1e4 */
void __cdecl FUN_0046e1e4(int param_1,int param_2)
{
int iVar1;
int iVar2;
int iVar3;
undefined1 *puVar4;
uint local_14 [3];
undefined1 *local_8;
if (*(int *)(param_1 + 0x14) != 0) {
FUN_0046aa78(local_14,*(uint *)(param_1 + 0x52c) & 0xff,8);
iVar3 = *(int *)(param_1 + 0x53c) * 0x31c + *(int *)(param_1 + 0x14);
puVar4 = (undefined1 *)(param_2 + 4);
iVar1 = 0;
do {
*(undefined1 *)(param_1 + 0x428 + local_14[0]) = 0;
iVar1 = iVar1 + 1;
} while (iVar1 < 0x100);
if ((*(byte *)(param_1 + 0x540) & 0x80) != 0) {
puVar4 = (undefined1 *)(param_2 + 7);
FUN_0046aab0(local_14);
}
do {
do {
*(undefined1 *)(param_1 + 0x428 + local_14[0]) = 1;
iVar2 = local_14[0] * 3 + iVar3 + 0x80;
iVar1 = *(int *)(param_1 + 0x540);
if (iVar1 < 0x81) {
if ((iVar1 == 0x80) || (iVar1 == 0)) {
*(undefined1 *)(iVar2 + 0xc) = *puVar4;
}
else {
if (iVar1 == 1) goto LAB_0046e2b2;
if (iVar1 == 2) goto LAB_0046e2ba;
if (iVar1 == 3) goto LAB_0046e2c2;
}
}
else if (iVar1 == 0x81) {
LAB_0046e2b2:
*(undefined1 *)(iVar2 + 0xd) = puVar4[1];
}
else if (iVar1 == 0x82) {
LAB_0046e2ba:
*(undefined1 *)(iVar2 + 0xe) = puVar4[2];
}
else if (iVar1 == 0x83) {
LAB_0046e2c2:
*(undefined1 *)(iVar2 + 0xc) = *puVar4;
*(undefined1 *)(iVar2 + 0xd) = puVar4[1];
*(undefined1 *)(iVar2 + 0xe) = puVar4[2];
local_8 = puVar4;
}
iVar1 = FUN_0046aae0(local_14);
} while (iVar1 != 0);
puVar4 = puVar4 + 3;
iVar1 = FUN_0046aab0(local_14);
} while (iVar1 != 0);
*(undefined4 *)(iVar3 + 0x88) = 1;
*(undefined4 *)(iVar3 + 0x84) = 1;
}
return;
}
/* @0046e31c file=? name=FUN_0046e31c */
void __cdecl FUN_0046e31c(int param_1,undefined1 *param_2,int param_3)
{
int iVar1;
int iVar2;
int iVar3;
uint local_10 [3];
if (*(int *)(param_1 + 0x14) == 0) {
return;
}
FUN_0046aa78(local_10,*(uint *)(param_1 + 0x52c) & 0xff,8);
iVar3 = 0;
iVar2 = *(int *)(param_1 + 0x53c) * 0x31c + *(int *)(param_1 + 0x14);
if ((*(byte *)(param_1 + 0x540) & 0x80) != 0) {
iVar3 = 1;
FUN_0046aab0(local_10);
}
do {
if (iVar3 == param_3) goto LAB_0046e38f;
iVar3 = iVar3 + 1;
iVar1 = FUN_0046aab0(local_10);
} while (iVar1 != 0);
goto LAB_0046e42f;
LAB_0046e38f:
do {
if (*(char *)(param_1 + 0x428 + local_10[0]) != '\0') {
iVar3 = *(int *)(param_1 + 0x540);
iVar1 = local_10[0] * 3 + iVar2;
if (iVar3 < 0x81) {
if ((iVar3 == 0x80) || (iVar3 == 0)) {
*(undefined1 *)(iVar1 + 0x8c) = *param_2;
}
else {
if (iVar3 == 1) goto LAB_0046e3df;
if (iVar3 == 2) goto LAB_0046e3ea;
if (iVar3 == 3) goto LAB_0046e3f5;
}
}
else if (iVar3 == 0x81) {
LAB_0046e3df:
*(undefined1 *)(iVar1 + 0x8d) = param_2[1];
}
else if (iVar3 == 0x82) {
LAB_0046e3ea:
*(undefined1 *)(iVar1 + 0x8e) = param_2[2];
}
else if (iVar3 == 0x83) {
LAB_0046e3f5:
*(undefined1 *)(iVar1 + 0x8c) = *param_2;
*(undefined1 *)(iVar1 + 0x8d) = param_2[1];
*(undefined1 *)(iVar1 + 0x8e) = param_2[2];
}
}
iVar3 = FUN_0046aae0(local_10);
} while (iVar3 != 0);
LAB_0046e42f:
*(undefined4 *)(iVar2 + 0x88) = 1;
*(undefined4 *)(iVar2 + 0x84) = 1;
return;
}
/* @0046e444 file=? name=FUN_0046e444 */
void __cdecl FUN_0046e444(int param_1)
{
int iVar1;
int iVar2;
int iVar3;
int iVar4;
uint local_18 [3];
undefined1 local_9;
int local_8;
if (*(int *)(param_1 + 0x14) != 0) {
FUN_0046aa78(local_18,*(int *)(param_1 + 0x52c) >> 8 & 0xff,8);
iVar4 = *(int *)(param_1 + 0x53c) * 0x31c + *(int *)(param_1 + 0x14);
iVar1 = FUN_0046ab18((int)local_18);
iVar2 = (int)(0x1fe0 / (longlong)((1 << ((byte)iVar1 & 0x1f)) + -1));
iVar1 = 0;
local_8 = iVar2;
if ((*(byte *)(param_1 + 0x540) & 0x80) != 0) {
FUN_0046aab0(local_18);
iVar1 = iVar2;
}
do {
local_9 = (undefined1)(iVar1 >> 5);
iVar1 = iVar1 + local_8;
do {
iVar3 = local_18[0] * 3 + iVar4 + 0x80;
iVar2 = *(int *)(param_1 + 0x540);
if (iVar2 < 0x81) {
if ((iVar2 == 0x80) || (iVar2 == 0)) {
*(undefined1 *)(iVar3 + 0xc) = local_9;
}
else {
if (iVar2 == 1) goto LAB_0046e520;
if (iVar2 == 2) goto LAB_0046e528;
if (iVar2 == 3) goto LAB_0046e530;
}
}
else if (iVar2 == 0x81) {
LAB_0046e520:
*(undefined1 *)(iVar3 + 0xd) = local_9;
}
else if (iVar2 == 0x82) {
LAB_0046e528:
*(undefined1 *)(iVar3 + 0xe) = local_9;
}
else if (iVar2 == 0x83) {
LAB_0046e530:
*(undefined1 *)(iVar3 + 0xc) = local_9;
*(undefined1 *)(iVar3 + 0xd) = local_9;
*(undefined1 *)(iVar3 + 0xe) = local_9;
}
iVar2 = FUN_0046aae0(local_18);
} while (iVar2 != 0);
iVar2 = FUN_0046aab0(local_18);
} while (iVar2 != 0);
*(undefined4 *)(iVar4 + 0x88) = 1;
*(undefined4 *)(iVar4 + 0x84) = 1;
}
return;
}
/* @0046e578 file=? name=FUN_0046e578 */
void __cdecl FUN_0046e578(int param_1)
{
int iVar1;
int iVar2;
int iVar3;
uint local_10 [3];
if (*(int *)(param_1 + 0x14) != 0) {
FUN_0046aa78(local_10,*(int *)(param_1 + 0x52c) >> 8 & 0xff,8);
iVar3 = *(int *)(param_1 + 0x53c) * 0x31c + *(int *)(param_1 + 0x14);
do {
iVar1 = local_10[0] * 3 + iVar3 + 0x80;
iVar2 = *(int *)(param_1 + 0x540);
if (iVar2 < 0x81) {
if ((iVar2 == 0x80) || (iVar2 == 0)) {
*(undefined1 *)(iVar1 + 0xc) = 0;
}
else {
if (iVar2 == 1) goto LAB_0046e60d;
if (iVar2 == 2) goto LAB_0046e612;
if (iVar2 == 3) goto LAB_0046e617;
}
}
else if (iVar2 == 0x81) {
LAB_0046e60d:
*(undefined1 *)(iVar1 + 0xd) = 0;
}
else if (iVar2 == 0x82) {
LAB_0046e612:
*(undefined1 *)(iVar1 + 0xe) = 0;
}
else if (iVar2 == 0x83) {
LAB_0046e617:
*(undefined1 *)(iVar1 + 0xc) = 0;
*(undefined1 *)(iVar1 + 0xd) = 0;
*(undefined1 *)(iVar1 + 0xe) = 0;
}
iVar2 = FUN_0046aae0(local_10);
} while ((iVar2 != 0) || (iVar2 = FUN_0046aab0(local_10), iVar2 != 0));
*(undefined4 *)(iVar3 + 0x88) = 1;
*(undefined4 *)(iVar3 + 0x84) = 1;
}
return;
}
/* @0046e650 file=? name=FUN_0046e650 */
void __cdecl FUN_0046e650(int param_1)
{
int iVar1;
uint *puVar2;
uint local_10 [3];
FUN_0046aa78(local_10,*(uint *)(param_1 + 0x52c) & 0xff,8);
puVar2 = (uint *)(param_1 + 0x28);
do {
*puVar2 = local_10[0];
puVar2 = puVar2 + 1;
iVar1 = FUN_0046aab0(local_10);
} while (iVar1 != 0);
return;
}
/* @0046e694 file=? name=FUN_0046e694 */
void __cdecl FUN_0046e694(int param_1)
{
int iVar1;
int *piVar2;
int iVar3;
uint local_10 [3];
FUN_0046aa78(local_10,*(int *)(param_1 + 0x52c) >> 8 & 0xff,8);
piVar2 = (int *)(param_1 + 0x28);
do {
iVar3 = local_10[0] << 8;
do {
*piVar2 = iVar3;
piVar2 = piVar2 + 1;
iVar1 = FUN_0046aae0(local_10);
} while (iVar1 != 0);
iVar3 = FUN_0046aab0(local_10);
} while (iVar3 != 0);
return;
}
/* @0046e6ec file=? name=FUN_0046e6ec */
int __cdecl FUN_0046e6ec(int param_1)
{
FUN_004498a8((undefined4 *)(param_1 + 8));
return param_1;
}
/* @0046e702 file=? name=FUN_0046e702 */
void __cdecl FUN_0046e702(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
FUN_00449994(param_1 + 2,2);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0046e72c file=? name=FUN_0046e72c */
undefined4 * __cdecl
FUN_0046e72c(undefined4 *param_1,char *param_2,undefined4 param_3,undefined4 param_4)
{
char cVar1;
uint uVar2;
uint uVar3;
char *pcVar4;
char *pcVar5;
*(undefined1 *)(param_1 + 2) = 0;
uVar2 = 0xffffffff;
do {
pcVar4 = param_2;
if (uVar2 == 0) break;
uVar2 = uVar2 - 1;
pcVar4 = param_2 + 1;
cVar1 = *param_2;
param_2 = pcVar4;
} while (cVar1 != '\0');
uVar2 = ~uVar2;
pcVar4 = pcVar4 + -uVar2;
pcVar5 = (char *)(param_1 + 2);
for (uVar3 = uVar2 >> 2; uVar3 != 0; uVar3 = uVar3 - 1) {
*(undefined4 *)pcVar5 = *(undefined4 *)pcVar4;
pcVar4 = pcVar4 + 4;
pcVar5 = pcVar5 + 4;
}
for (uVar2 = uVar2 & 3; uVar2 != 0; uVar2 = uVar2 - 1) {
*pcVar5 = *pcVar4;
pcVar4 = pcVar4 + 1;
pcVar5 = pcVar5 + 1;
}
*(undefined1 *)((int)param_1 + 0x47) = 0;
*param_1 = param_3;
param_1[1] = param_4;
param_1[0x12] = DAT_00522cc8;
DAT_00522cc8 = param_1;
return param_1;
}
/* @0046e788 file=? name=FUN_0046e788 */
undefined4 __cdecl FUN_0046e788(char *param_1)
{
char *pcVar1;
bool bVar2;
int *piVar3;
char *pcVar4;
uint uVar5;
undefined4 *puVar6;
char *pcVar7;
char *pcVar8;
int iVar9;
undefined4 uVar10;
bool bVar11;
char local_120 [256];
int local_20;
uint local_1c;
int *local_18;
int *local_14;
int *local_10;
int *local_c;
int *local_8;
uVar10 = 0;
piVar3 = (int *)FUN_00402298(0x20);
if (piVar3 == (int *)0x0) {
local_8 = (int *)0x0;
}
else {
local_8 = FUN_00403e84(piVar3,param_1,1);
}
local_c = FUN_00404720((int)local_8,s_colors_004f4da5,(char *)0x0);
if (local_c == (int *)0x0) {
FUN_004dbb24(&DAT_00524e20,param_1,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_has_no__colors__page__004f4dac,(char *)0x0);
FUN_004d9c38(&DAT_00524e20);
}
local_10 = FUN_00404720((int)local_8,s_attributes_004f4dc3,(char *)0x0);
if (local_10 == (int *)0x0) {
FUN_004dbb24(&DAT_00524e20,param_1,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_has_no__attributes__page__004f4dce,(char *)0x0);
FUN_004d9c38(&DAT_00524e20);
}
local_14 = FUN_00404720((int)local_8,s_groups_004f4de9,(char *)0x0);
if (local_14 == (int *)0x0) {
FUN_004dbb24(&DAT_00524e20,param_1,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_has_no__groups__page__004f4df0,(char *)0x0);
FUN_004d9c38(&DAT_00524e20);
}
if (((local_10 != (int *)0x0) && (local_c != (int *)0x0)) && (local_14 != (int *)0x0)) {
DAT_00522cc8 = 0;
local_18 = (int *)local_14[1];
while (local_18 != (int *)0x0) {
pcVar8 = (char *)local_18[1];
local_1c = 0;
local_20 = 0;
if (pcVar8 == (char *)0x0) {
FUN_004dbb24(&DAT_00524e20,(char *)0x0,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_is_an_empty__GAT_group__004f4e07,(char *)0x0);
FUN_004d9c38(&DAT_00524e20);
}
else {
while (*pcVar8 != '\0') {
while (((&DAT_005207dd)[*pcVar8] & 1) != 0) {
pcVar8 = pcVar8 + 1;
}
iVar9 = 0;
pcVar4 = local_120;
do {
if (((&DAT_005207dd)[*pcVar8] & 0xe) == 0) break;
*pcVar4 = *pcVar8;
iVar9 = iVar9 + 1;
pcVar4 = pcVar4 + 1;
pcVar8 = pcVar8 + 1;
} while (iVar9 < 0xff);
*pcVar4 = '\0';
bVar2 = false;
for (puVar6 = (undefined4 *)local_c[1]; puVar6 != (undefined4 *)0x0;
puVar6 = (undefined4 *)*puVar6) {
pcVar4 = (char *)(puVar6 + 2);
pcVar7 = local_120;
do {
if (*pcVar4 != *pcVar7) goto LAB_0046e9ab;
bVar11 = true;
if (*pcVar4 == '\0') break;
pcVar1 = pcVar4 + 1;
if (*pcVar1 != pcVar7[1]) goto LAB_0046e9ab;
pcVar4 = pcVar4 + 2;
pcVar7 = pcVar7 + 2;
bVar11 = *pcVar1 == '\0';
} while (!bVar11);
if (bVar11) {
local_20 = FUN_004dd1e0((char *)puVar6[1]);
bVar2 = true;
break;
}
LAB_0046e9ab:
}
if (!bVar2) {
bVar2 = false;
for (puVar6 = (undefined4 *)local_10[1]; puVar6 != (undefined4 *)0x0;
puVar6 = (undefined4 *)*puVar6) {
pcVar4 = (char *)(puVar6 + 2);
pcVar7 = local_120;
do {
if (*pcVar4 != *pcVar7) goto LAB_0046ea00;
bVar11 = true;
if (*pcVar4 == '\0') break;
pcVar1 = pcVar4 + 1;
if (*pcVar1 != pcVar7[1]) goto LAB_0046ea00;
pcVar4 = pcVar4 + 2;
pcVar7 = pcVar7 + 2;
bVar11 = *pcVar1 == '\0';
} while (!bVar11);
if (bVar11) {
uVar5 = FUN_004dd1e0((char *)puVar6[1]);
local_1c = local_1c | uVar5;
bVar2 = true;
break;
}
LAB_0046ea00:
}
if (!bVar2) {
FUN_004dbb24(&DAT_00524e20,s_Attribute___004f4e20,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,local_120,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s___not_found__004f4e2c,(char *)0x0);
FUN_004d9c38(&DAT_00524e20);
}
}
}
}
puVar6 = (undefined4 *)FUN_00402298(0x4c);
if (puVar6 != (undefined4 *)0x0) {
FUN_0046e72c(puVar6,(char *)(local_18 + 2),local_20,local_1c);
}
local_18 = (int *)*local_18;
}
if (local_c != (int *)0x0) {
(**(code **)*local_c)(local_c,3);
}
if (local_10 != (int *)0x0) {
(**(code **)*local_10)(local_10,3);
}
if (local_14 != (int *)0x0) {
(**(code **)*local_14)(local_14,3);
}
uVar10 = 1;
}
FUN_00403ecc(local_8,3);
return uVar10;
}
/* @0046eaf0 file=? name=FUN_0046eaf0 */
void FUN_0046eaf0(void)
{
int *piVar1;
int *piVar2;
piVar1 = DAT_00522cc8;
while (piVar2 = piVar1, piVar2 != (int *)0x0) {
piVar1 = (int *)piVar2[0x12];
if (piVar2 != (int *)0x0) {
FUN_004022d0(piVar2);
}
}
DAT_00522cc8 = (int *)0x0;
return;
}
/* @0046eb18 file=? name=FUN_0046eb18 */
undefined4 __cdecl FUN_0046eb18(char *param_1,undefined4 *param_2,undefined4 *param_3)
{
undefined4 *puVar1;
int iVar2;
puVar1 = DAT_00522cc8;
while( true ) {
if (puVar1 == (undefined4 *)0x0) {
return 0;
}
iVar2 = FUN_004d4ae0(param_1,(char *)(puVar1 + 2),0x40);
if (iVar2 == 0) break;
puVar1 = (undefined4 *)puVar1[0x12];
}
*param_2 = *puVar1;
*param_3 = puVar1[1];
return 1;
}
/* @0046eb64 file=? name=FUN_0046eb64 */
undefined4 FUN_0046eb64(void)
{
return 0;
}
/* @0046eb6c file=? name=FUN_0046eb6c */
int * __cdecl FUN_0046eb6c(int param_1)
{
int iVar1;
int iVar2;
int *piVar3;
int local_14 [4];
piVar3 = (int *)0x0;
iVar2 = FUN_00407064(*(int *)(DAT_004efc94 + 0x68),param_1,0x12);
if (iVar2 != 0) {
iVar1 = *(int *)(iVar2 + 4);
*(int *)(iVar2 + 4) = *(int *)(iVar2 + 4) + 1;
if (iVar1 == 0) {
FUN_00406cd0(iVar2);
}
FUN_004030dc(local_14,*(undefined4 *)(iVar2 + 0x3c),*(undefined4 *)(iVar2 + 0x40),0);
if (*(int *)(iVar2 + 0x3c) != 0) {
piVar3 = (int *)FUN_00402298(0x14);
if (piVar3 == (int *)0x0) {
piVar3 = (int *)0x0;
}
else {
piVar3 = FUN_0046ebf0(piVar3,local_14);
}
}
*(int *)(iVar2 + 4) = *(int *)(iVar2 + 4) + -1;
}
return piVar3;
}
/* @0046ebf0 file=? name=FUN_0046ebf0 */
int * __cdecl FUN_0046ebf0(int *param_1,int *param_2)
{
int extraout_EAX;
int *piVar1;
int iVar2;
int *piVar3;
(**(code **)(*param_2 + 0x1c))(param_2,param_1,4);
piVar3 = FUN_004de998((int *)0x0,0xc,*param_1,1,&LAB_0046f974);
param_1[2] = extraout_EAX;
for (iVar2 = 0; iVar2 < *param_1; iVar2 = iVar2 + 1) {
(**(code **)(*piVar3 + 0x1c))(piVar3,iVar2 * 0xc + param_1[2],0xc);
}
(**(code **)(*piVar3 + 0x1c))(piVar3,param_1 + 1,4);
iVar2 = FUN_004022b0(param_1[1] << 2);
param_1[3] = iVar2;
for (iVar2 = 0; iVar2 < param_1[1]; iVar2 = iVar2 + 1) {
(**(code **)(*piVar3 + 0x1c))(piVar3,iVar2 * 4 + param_1[3],4);
}
iVar2 = FUN_004022b0(param_1[1] << 2);
param_1[4] = iVar2;
for (iVar2 = 0; iVar2 < param_1[1]; iVar2 = iVar2 + 1) {
piVar1 = (int *)FUN_00402298(8);
if (piVar1 == (int *)0x0) {
piVar1 = (int *)0x0;
}
else {
piVar1 = FUN_0046f190(piVar1,piVar3);
}
*(int **)(param_1[4] + iVar2 * 4) = piVar1;
}
return param_1;
}
/* @0046ecdc file=? name=FUN_0046ecdc */
void __cdecl FUN_0046ecdc(int *param_1,byte param_2)
{
int iVar1;
if (param_1 != (int *)0x0) {
FUN_004022e8((int *)param_1[2]);
FUN_004022e8((int *)param_1[3]);
for (iVar1 = 0; iVar1 < param_1[1]; iVar1 = iVar1 + 1) {
FUN_0046f1f0(*(int **)(param_1[4] + iVar1 * 4),3);
}
FUN_004022e8((int *)param_1[4]);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0046ed34 file=? name=FUN_0046ed34 */
undefined4 __cdecl FUN_0046ed34(int param_1,char *param_2,int param_3,int param_4)
{
int iVar1;
int *piVar2;
int *piVar3;
int *piVar4;
undefined4 *puVar5;
int *piVar6;
char *local_10;
char *local_c;
undefined4 local_8;
local_8 = 0xffffffff;
iVar1 = FUN_00404088(param_3,s_gauge_004f4e39,s_image_004f4e3f,&local_c);
if (iVar1 != 0) {
piVar2 = (int *)FUN_004064fc(*(char **)(param_4 + 0x14),local_c);
piVar3 = (int *)FUN_00402298(0x20);
if (piVar3 == (int *)0x0) {
piVar3 = (int *)0x0;
}
else {
piVar3 = FUN_00403e84(piVar3,(char *)piVar2,1);
}
iVar1 = FUN_00404088((int)piVar3,s_object_004f4e45,s_gatfile_004f4e4c,&local_10);
if (iVar1 == 0) {
FUN_004dbb24(&DAT_00524e20,s_Missing__gat_specification__004f4e54,(char *)0x0);
FUN_004d9c38(&DAT_00524e20);
}
else {
piVar4 = (int *)FUN_004064fc(*(char **)(param_4 + 0x14),local_10);
iVar1 = FUN_0046e788((char *)piVar4);
if (iVar1 != 0) {
puVar5 = (undefined4 *)FUN_00402298(0x18);
if (puVar5 == (undefined4 *)0x0) {
piVar6 = (int *)0x0;
}
else {
piVar6 = FUN_0040328c(puVar5,0);
}
iVar1 = FUN_0046ee84(piVar6,(int)piVar3);
if (iVar1 == 1) {
puVar5 = (undefined4 *)FUN_00406f3c(param_1,param_2,0x12,1,0,piVar6,-1);
local_8 = *puVar5;
}
FUN_0046eaf0();
FUN_00403310(piVar6,3);
}
FUN_004022d0(piVar4);
}
FUN_00403ecc(piVar3,3);
FUN_004022d0(piVar2);
}
return local_8;
}
/* @0046ee84 file=? name=FUN_0046ee84 */
int __cdecl FUN_0046ee84(int *param_1,int param_2)
{
undefined4 *puVar1;
int iVar2;
int iVar3;
float10 fVar4;
float local_28 [3];
int local_1c;
float local_18;
int local_14;
int *local_10;
int local_c;
int *local_8;
iVar3 = 1;
local_8 = FUN_00404720(param_2,s_vertices_004f4e70,(char *)0x0);
if (local_8 == (int *)0x0) {
FUN_004dbb24(&DAT_00524e20,s_No__vertices__page_in_the__GIM_f_004f4e79,(char *)0x0);
FUN_004d9c38(&DAT_00524e20);
iVar3 = 0;
}
else {
local_c = FUN_00403b60((int)local_8);
if (local_c < 1) {
FUN_004dbb24(&DAT_00524e20,s_The__vertices__page_in_the__GIM_f_004f4e9e,(char *)0x0);
FUN_004d9c38(&DAT_00524e20);
iVar3 = 0;
}
else {
(**(code **)(*param_1 + 0x20))(param_1,&local_c,4);
puVar1 = (undefined4 *)local_8[1];
iVar2 = 0;
if (0 < local_c) {
do {
FUN_00408944((char *)puVar1[1],local_28);
(**(code **)(*param_1 + 0x20))(param_1,local_28,0xc);
puVar1 = (undefined4 *)*puVar1;
iVar2 = iVar2 + 1;
} while (iVar2 < local_c);
}
}
if (local_8 != (int *)0x0) {
(**(code **)*local_8)(local_8,3);
}
}
if (iVar3 == 1) {
local_10 = FUN_00404720(param_2,&DAT_004f4ed3,(char *)0x0);
if (local_10 == (int *)0x0) {
FUN_004dbb24(&DAT_00524e20,s_No__lods__page_in_the__GIM_file__004f4ed8,(char *)0x0);
FUN_004d9c38(&DAT_00524e20);
iVar3 = 0;
}
else {
local_14 = FUN_00403b60((int)local_10);
if (local_14 < 1) {
FUN_004dbb24(&DAT_00524e20,s_The__lod__page_in_the__GIM_file_h_004f4ef9,(char *)0x0);
FUN_004d9c38(&DAT_00524e20);
iVar3 = 0;
}
else {
(**(code **)(*param_1 + 0x20))(param_1,&local_14,4);
iVar2 = 0;
puVar1 = (undefined4 *)local_10[1];
if (0 < local_14) {
do {
local_1c = puVar1[1];
if (local_1c == 0) {
FUN_004dbb24(&DAT_00524e20,s_Missing_scale_value__004f4f29,(char *)0x0);
FUN_004d9c38(&DAT_00524e20);
iVar3 = 0;
break;
}
fVar4 = (float10)FUN_004dd1cc(local_1c);
local_18 = (float)fVar4;
(**(code **)(*param_1 + 0x20))(param_1,&local_18,4);
puVar1 = (undefined4 *)*puVar1;
iVar2 = iVar2 + 1;
} while (iVar2 < local_14);
}
iVar2 = 0;
puVar1 = (undefined4 *)local_10[1];
if (0 < local_14) {
do {
iVar3 = FUN_0046f234(param_1,param_2,(char *)(puVar1 + 2));
if (iVar3 == 0) break;
puVar1 = (undefined4 *)*puVar1;
iVar2 = iVar2 + 1;
} while (iVar2 < local_14);
}
}
}
if (local_10 != (int *)0x0) {
(**(code **)*local_10)(local_10,3);
}
}
return iVar3;
}
/* @0046f0c0 file=? name=FUN_0046f0c0 */
void __cdecl
FUN_0046f0c0(int *param_1,float param_2,float param_3,int *param_4,int param_5,float *param_6,
int param_7)
{
int iVar1;
undefined4 *puVar2;
float *pfVar3;
int iVar4;
float local_34 [12];
if (DAT_004f4da4 == '\0') {
FUN_004de998((int *)&DAT_00522ccc,0xc,100,1,&LAB_0046f974);
DAT_004f4da4 = DAT_004f4da4 + '\x01';
}
FUN_0040aadc(local_34);
iVar1 = FUN_0040af88(param_6,local_34);
if (iVar1 == 0) {
iVar1 = 0;
for (pfVar3 = (float *)param_1[3]; (iVar1 < param_1[1] && (*pfVar3 < param_2));
pfVar3 = pfVar3 + 1) {
iVar1 = iVar1 + 1;
}
if (iVar1 < param_1[1]) {
puVar2 = &DAT_0052317c;
for (iVar4 = 0; iVar4 < *param_1; iVar4 = iVar4 + 1) {
*puVar2 = 0;
puVar2 = puVar2 + 1;
}
FUN_0046f374(*(int **)(param_1[4] + iVar1 * 4),param_4,param_5,param_6,param_1[2],0x522ccc,
0x52317c,param_3,param_7);
}
}
return;
}
/* @0046f184 file=? name=FUN_0046f184 */
undefined4 FUN_0046f184(void)
{
return 1;
}
/* @0046f190 file=? name=FUN_0046f190 */
int * __cdecl FUN_0046f190(int *param_1,int *param_2)
{
int iVar1;
int iVar2;
(**(code **)(*param_2 + 0x1c))(param_2,param_1,4);
iVar1 = FUN_004022b0(*param_1 << 2);
param_1[1] = iVar1;
for (iVar1 = 0; iVar1 < *param_1; iVar1 = iVar1 + 1) {
iVar2 = FUN_00402298(0x14);
if (iVar2 == 0) {
iVar2 = 0;
}
else {
iVar2 = FUN_0046f468(iVar2,param_2);
}
*(int *)(param_1[1] + iVar1 * 4) = iVar2;
}
return param_1;
}
/* @0046f1f0 file=? name=FUN_0046f1f0 */
void __cdecl FUN_0046f1f0(int *param_1,byte param_2)
{
int iVar1;
if (param_1 != (int *)0x0) {
for (iVar1 = 0; iVar1 < *param_1; iVar1 = iVar1 + 1) {
FUN_0046f500(*(int **)(param_1[1] + iVar1 * 4),3);
}
FUN_004022e8((int *)param_1[1]);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0046f234 file=? name=FUN_0046f234 */
int __cdecl FUN_0046f234(int *param_1,int param_2,char *param_3)
{
undefined4 *puVar1;
int iVar2;
int iVar3;
int local_c;
int *local_8;
iVar2 = 1;
local_8 = FUN_00404720(param_2,param_3,(char *)0x0);
if (local_8 == (int *)0x0) {
FUN_004dbb24(&DAT_00524e20,s_Can_t_find_the___004f4f3e,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,param_3,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s___page_in_the__GIM_file__004f4f4f,(char *)0x0);
FUN_004d9c38(&DAT_00524e20);
iVar2 = 0;
}
else {
local_c = FUN_00403b60((int)local_8);
if (local_c < 1) {
FUN_004dbb24(&DAT_00524e20,s_The___004f4f68,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,param_3,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s___page_in_the__GIM_file_has_no_e_004f4f6e,(char *)0x0);
FUN_004d9c38(&DAT_00524e20);
iVar2 = 0;
}
else {
(**(code **)(*param_1 + 0x20))(param_1,&local_c,4);
iVar3 = 0;
puVar1 = (undefined4 *)local_8[1];
if (0 < local_c) {
do {
iVar2 = FUN_0046f530(param_1,(char *)(puVar1 + 2),(char *)puVar1[1]);
if (iVar2 == 0) break;
puVar1 = (undefined4 *)*puVar1;
iVar3 = iVar3 + 1;
} while (iVar3 < local_c);
}
}
if (local_8 != (int *)0x0) {
(**(code **)*local_8)(local_8,3);
}
}
return iVar2;
}
/* @0046f368 file=? name=FUN_0046f368 */
undefined4 FUN_0046f368(void)
{
return 1;
}
/* @0046f374 file=? name=FUN_0046f374 */
void __cdecl
FUN_0046f374(int *param_1,int *param_2,int param_3,float *param_4,int param_5,int param_6,
int param_7,float param_8,int param_9)
{
byte *pbVar1;
int iVar2;
int local_18;
int local_14;
int local_10;
int local_c;
undefined4 *local_8;
local_8 = (undefined4 *)param_1[1];
if (param_9 == 0) {
for (iVar2 = 0; iVar2 < *param_1; iVar2 = iVar2 + 1) {
pbVar1 = (byte *)*local_8;
local_8 = local_8 + 1;
FUN_0046f774(pbVar1,param_2,param_3,param_4,param_5,param_6,param_7,param_8,(int *)0x0);
}
}
else {
FUN_00407bd0(&local_18,9999,9999,0xffffd8f1,0xffffd8f1);
for (iVar2 = 0; iVar2 < *param_1; iVar2 = iVar2 + 1) {
pbVar1 = (byte *)*local_8;
local_8 = local_8 + 1;
FUN_0046f774(pbVar1,param_2,param_3,param_4,param_5,param_6,param_7,param_8,&local_18);
}
(**(code **)(*param_2 + 0x18))(param_2,param_9);
(**(code **)(*param_2 + 0x24))(param_2,local_18 + -4,local_14 + -4);
(**(code **)(*param_2 + 0x40))(param_2,local_10 + 4,local_c + 4);
}
return;
}
/* @0046f468 file=? name=FUN_0046f468 */
int __cdecl FUN_0046f468(int param_1,int *param_2)
{
undefined4 uVar1;
int iVar2;
int local_8;
(**(code **)(*param_2 + 0x1c))(param_2,&local_8,4);
*(int *)(param_1 + 8) = local_8;
if (local_8 == 0) {
(**(code **)(*param_2 + 0x1c))(param_2,param_1 + 4,4);
(**(code **)(*param_2 + 0x1c))(param_2,param_1,4);
(**(code **)(*param_2 + 0x1c))(param_2,param_1 + 0xc,4);
uVar1 = FUN_004022b0(*(int *)(param_1 + 0xc) << 2);
*(undefined4 *)(param_1 + 0x10) = uVar1;
for (iVar2 = 0; iVar2 < *(int *)(param_1 + 0xc); iVar2 = iVar2 + 1) {
(**(code **)(*param_2 + 0x1c))(param_2,iVar2 * 4 + *(int *)(param_1 + 0x10),4);
}
}
return param_1;
}
/* @0046f500 file=? name=FUN_0046f500 */
void __cdecl FUN_0046f500(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
if (param_1[2] == 0) {
FUN_004022e8((int *)param_1[4]);
}
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0046f530 file=? name=FUN_0046f530 */
/* WARNING: Type propagation algorithm not settling */
undefined4 __cdecl FUN_0046f530(int *param_1,char *param_2,char *param_3)
{
char cVar1;
int iVar2;
char *pcVar3;
char local_158 [64];
int local_118 [64];
undefined4 local_18;
int local_14 [4];
local_14[2] = 0;
local_14[1] = 0;
local_14[0] = 0;
local_18 = 1;
iVar2 = FUN_004d4b58(param_2,s_linelist_004f4f96);
if (iVar2 == 0) {
local_14[3] = 0;
(**(code **)(*param_1 + 0x20))(param_1,local_14 + 3,4);
while (*param_3 != '\0') {
while (((&DAT_005207dd)[*param_3] & 1) != 0) {
param_3 = param_3 + 1;
}
if (*param_3 == 'v') {
iVar2 = 0;
while( true ) {
param_3 = param_3 + 1;
if (((&DAT_005207dd)[*param_3] & 2) == 0) break;
iVar2 = (int)*param_3 + iVar2 * 10 + -0x30;
}
if (local_14[0] < 0x40) {
local_118[local_14[0]] = iVar2;
local_14[0] = local_14[0] + 1;
}
}
else if (*param_3 == 'a') {
iVar2 = 0;
pcVar3 = local_158;
do {
cVar1 = *param_3;
if ((((&DAT_005207dd)[cVar1] & 1) != 0) || (cVar1 == '\0')) break;
*pcVar3 = cVar1;
iVar2 = iVar2 + 1;
param_3 = param_3 + 1;
pcVar3 = pcVar3 + 1;
} while (iVar2 < 0x3f);
*pcVar3 = '\0';
iVar2 = FUN_0046eb18(local_158,local_14 + 1,local_14 + 2);
if (iVar2 == 0) {
FUN_004dbb24(&DAT_00524e20,s_Couldn_t_find_attribute_group___004f4f9f,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,local_158,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,&DAT_004f4fbf,(char *)0x0);
FUN_004d9c38(&DAT_00524e20);
}
}
}
(**(code **)(*param_1 + 0x20))(param_1,local_14 + 1,4);
(**(code **)(*param_1 + 0x20))(param_1,local_14 + 2,4);
if (local_14[0] == 0) {
FUN_004dbb24(&DAT_00524e20,s_No_vertex_indices_in_primitive__004f4fc2,(char *)0x0);
FUN_004d9c38(&DAT_00524e20);
local_18 = 0;
}
else {
(**(code **)(*param_1 + 0x20))(param_1,local_14,4);
iVar2 = 0;
if (0 < local_14[0]) {
do {
(**(code **)(*param_1 + 0x20))(param_1,local_118 + iVar2,4);
iVar2 = iVar2 + 1;
} while (iVar2 < local_14[0]);
}
}
}
else {
FUN_004dbb24(&DAT_00524e20,s_Unsupported_primitive___004f4fe2,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,param_2,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s___in__GIM_file__004f4ffa,(char *)0x0);
FUN_004d9c38(&DAT_00524e20);
local_18 = 0;
}
return local_18;
}
/* @0046f768 file=? name=FUN_0046f768 */
undefined4 FUN_0046f768(void)
{
return 1;
}
/* @0046f774 file=? name=FUN_0046f774 */
int __cdecl
FUN_0046f774(byte *param_1,int *param_2,int param_3,float *param_4,int param_5,int param_6,
int param_7,float param_8,int *param_9)
{
int iVar1;
int iVar2;
undefined4 uVar3;
undefined4 uVar4;
int *piVar5;
iVar2 = *(int *)(param_1 + 8) + -1;
if ((*(int *)(param_1 + 8) == 0) && (1 < *(int *)(param_1 + 0xc))) {
if (*(int *)(param_1 + 4) != 0) {
param_3 = *(int *)(param_1 + 4);
}
(**(code **)(*param_2 + 0x18))(param_2,param_3);
piVar5 = *(int **)(param_1 + 0x10);
iVar2 = *piVar5;
FUN_0046f888(param_1,param_4,(float *)(iVar2 * 0xc + param_5),(float *)(iVar2 * 0xc + param_6),
(int *)(iVar2 * 4 + param_7),param_8,param_9);
uVar3 = FUN_004dcd94();
uVar4 = FUN_004dcd94();
(**(code **)(*param_2 + 0x24))(param_2,uVar4,uVar3);
iVar2 = *(int *)(param_1 + 0xc);
while (iVar2 = iVar2 + -1, 0 < iVar2) {
piVar5 = piVar5 + 1;
iVar1 = *piVar5;
FUN_0046f888(param_1,param_4,(float *)(iVar1 * 0xc + param_5),(float *)(iVar1 * 0xc + param_6)
,(int *)(iVar1 * 4 + param_7),param_8,param_9);
uVar3 = FUN_004dcd94();
uVar4 = FUN_004dcd94();
(**(code **)(*param_2 + 0x30))(param_2,uVar4,uVar3);
}
}
return iVar2;
}
/* @0046f888 file=? name=FUN_0046f888 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
void __cdecl
FUN_0046f888(byte *param_1,float *param_2,float *param_3,float *param_4,int *param_5,float param_6,
int *param_7)
{
int iVar1;
float local_14 [3];
float local_8;
if (*param_5 == 0) {
if ((*param_1 & 1) == 0) {
FUN_00408b98(param_4,param_3,param_2);
}
else {
FUN_00408440(local_14,param_3);
local_8 = param_6;
FUN_004086ac(local_14,local_14,param_6);
FUN_00408b98(param_4,local_14,param_2);
}
*param_4 = *param_4 + _DAT_0046f970;
param_4[2] = -param_4[2] + _DAT_0046f970;
*param_5 = 1;
}
if (param_7 != (int *)0x0) {
if (*param_4 < (float)*param_7) {
iVar1 = FUN_004dcd94();
*param_7 = iVar1;
}
if ((float)param_7[2] < *param_4) {
iVar1 = FUN_004dcd94();
param_7[2] = iVar1;
}
if (param_4[2] < (float)param_7[1]) {
iVar1 = FUN_004dcd94();
param_7[1] = iVar1;
}
if ((float)param_7[3] < param_4[2]) {
iVar1 = FUN_004dcd94();
param_7[3] = iVar1;
}
}
return;
}
/* @0046f97c file=? name=FUN_0046f97c */
undefined4 * __cdecl FUN_0046f97c(undefined4 *param_1)
{
bool bVar1;
bool bVar2;
bool bVar3;
bool bVar4;
bool bVar5;
bool bVar6;
bool bVar7;
bool bVar8;
char *pcVar9;
char *pcVar10;
int iVar11;
undefined4 *puVar12;
undefined3 extraout_var;
undefined3 extraout_var_00;
undefined3 extraout_var_01;
undefined3 extraout_var_02;
undefined3 extraout_var_03;
undefined3 extraout_var_04;
undefined3 extraout_var_05;
undefined3 extraout_var_06;
int *piVar13;
int local_44 [8];
int local_24;
int local_20;
int local_1c;
int local_18;
int local_14;
int local_10;
int local_c;
uint local_8;
FUN_00447890(param_1);
*param_1 = &PTR_FUN_004f56a4;
param_1[0x714b] = 0;
param_1[0x714c] = 0;
param_1[0x714a] = 1;
param_1[0x714d] = 0;
pcVar9 = (char *)FUN_004dee74(s_L4GAUGE_004f5631);
if (pcVar9 != (char *)0x0) {
pcVar10 = (char *)FUN_004dee74(s_L4PLASMA_004f5639);
if (pcVar10 != (char *)0x0) {
iVar11 = FUN_004d4bec(pcVar10,&DAT_004f5642,4);
if (iVar11 == 0) {
puVar12 = (undefined4 *)FUN_00402298(100);
if (puVar12 == (undefined4 *)0x0) {
puVar12 = (undefined4 *)0x0;
}
else {
puVar12 = FUN_004750b4(puVar12,0x2f8,0xb);
}
param_1[0x714c] = puVar12;
}
else {
puVar12 = (undefined4 *)FUN_00402298(100);
if (puVar12 == (undefined4 *)0x0) {
puVar12 = (undefined4 *)0x0;
}
else {
puVar12 = FUN_004750b4(puVar12,0x3f8,0xc);
}
param_1[0x714c] = puVar12;
}
}
FUN_00403e84(local_44,s_GAUGE_L4GAUGE_INI_004f5647,1);
iVar11 = FUN_00403f84((int)local_44,pcVar9);
if (iVar11 != 0) {
local_8 = 0;
local_c = 0x280;
local_10 = 0x1e0;
local_14 = 0x40;
local_18 = 0x40;
local_1c = 0x500;
local_20 = 0;
local_24 = 0;
bVar1 = FUN_004040d8((int)local_44,pcVar9,&DAT_004f5659,(int *)&local_8);
bVar2 = FUN_004040d8((int)local_44,pcVar9,s_width_004f565e,&local_c);
bVar3 = FUN_004040d8((int)local_44,pcVar9,s_height_004f5664,&local_10);
bVar4 = FUN_004040d8((int)local_44,pcVar9,s_sizeInKB_004f566b,&local_14);
bVar5 = FUN_004040d8((int)local_44,pcVar9,s_granularityInKB_004f5674,&local_18);
bVar6 = FUN_004040d8((int)local_44,pcVar9,s_bytesPerLine_004f5684,&local_1c);
bVar7 = FUN_004040d8((int)local_44,pcVar9,s_pageFcnPtr_004f5691,&local_20);
bVar8 = FUN_004040d8((int)local_44,pcVar9,s_special_004f569c,&local_24);
if (CONCAT31(extraout_var,bVar1) + CONCAT31(extraout_var_00,bVar2) +
CONCAT31(extraout_var_01,bVar3) + CONCAT31(extraout_var_02,bVar4) +
CONCAT31(extraout_var_03,bVar5) + CONCAT31(extraout_var_04,bVar6) +
CONCAT31(extraout_var_05,bVar7) + CONCAT31(extraout_var_06,bVar8) == 8) {
piVar13 = (int *)FUN_00402298(0xcf0);
if (piVar13 == (int *)0x0) {
piVar13 = (int *)0x0;
}
else {
piVar13 = FUN_0046ced4(piVar13,local_8,local_c,local_10,local_14,local_18,local_1c,
local_20,local_24);
}
param_1[0x714b] = piVar13;
}
}
FUN_00403ecc(local_44,2);
}
return param_1;
}
/* @0046fbcc file=? name=FUN_0046fbcc */
void __cdecl FUN_0046fbcc(int *param_1,byte param_2)
{
undefined4 *puVar1;
int *piVar2;
int iVar3;
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004f56a4;
FUN_00447fc0((int)param_1,0);
iVar3 = 0;
piVar2 = param_1 + 0x15;
do {
puVar1 = (undefined4 *)*piVar2;
if ((puVar1 != (undefined4 *)0x0) && (puVar1 != (undefined4 *)0x0)) {
(**(code **)*puVar1)(puVar1,3);
}
iVar3 = iVar3 + 1;
piVar2 = piVar2 + 1;
} while (iVar3 < 0x10);
puVar1 = (undefined4 *)param_1[0x714b];
if ((puVar1 != (undefined4 *)0x0) && (puVar1 != (undefined4 *)0x0)) {
(**(code **)*puVar1)(puVar1,3);
}
puVar1 = (undefined4 *)param_1[0x714c];
if ((puVar1 != (undefined4 *)0x0) && (puVar1 != (undefined4 *)0x0)) {
(**(code **)*puVar1)(puVar1,3);
}
FUN_00447a14(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0046fc5c file=? name=FUN_0046fc5c */
void __cdecl FUN_0046fc5c(int param_1)
{
undefined4 *puVar1;
puVar1 = *(undefined4 **)(param_1 + 0x1c52c);
if ((puVar1 != (undefined4 *)0x0) && (puVar1 != (undefined4 *)0x0)) {
(**(code **)*puVar1)(puVar1,3);
}
FUN_00447b58();
return;
}
/* @0046fc88 file=? name=FUN_0046fc88 */
void __cdecl FUN_0046fc88(int param_1)
{
FUN_00447b60(param_1);
return;
}
/* @0046fc98 file=? name=FUN_0046fc98 */
void FUN_0046fc98(void)
{
FUN_00447e64();
return;
}
/* @0046fcb0 file=? name=FUN_0046fcb0 */
void __cdecl FUN_0046fcb0(int param_1)
{
FUN_00447e6c(param_1);
return;
}
/* @0046fcc0 file=? name=FUN_0046fcc0 */
void __cdecl FUN_0046fcc0(int param_1)
{
FUN_00447ef8(param_1);
return;
}
/* @0046fcd0 file=? name=FUN_0046fcd0 */
void __cdecl FUN_0046fcd0(int param_1)
{
FUN_00447f0c(param_1);
return;
}
/* @0046fce0 file=? name=FUN_0046fce0 */
void __cdecl FUN_0046fce0(int param_1)
{
FUN_00448188(param_1);
if (*(int *)(param_1 + 0x1c52c) != 0) {
FUN_0047003c(param_1);
FUN_0046d694(*(int *)(param_1 + 0x1c52c));
}
return;
}
/* @0046fd10 file=? name=FUN_0046fd10 */
undefined4 __cdecl FUN_0046fd10(int param_1)
{
int *piVar1;
int iVar2;
undefined4 uVar3;
uVar3 = 0;
piVar1 = *(int **)(param_1 + 0x1c530);
if (piVar1 != (int *)0x0) {
uVar3 = (**(code **)(*piVar1 + 8))(piVar1,0);
}
if ((*(int *)(param_1 + 0x1c0d0) == 2) &&
(piVar1 = *(int **)(param_1 + 0x1c52c), piVar1 != (int *)0x0)) {
iVar2 = (**(code **)(*piVar1 + 8))(piVar1,0);
if (iVar2 == 0) {
*(undefined4 *)(param_1 + 0x1c0d0) = 0;
}
else {
uVar3 = 1;
}
}
return uVar3;
}
/* @0046fd6c file=? name=FUN_0046fd6c */
void __cdecl FUN_0046fd6c(int param_1,int param_2)
{
FUN_004688ce(*(int *)(param_1 + 0x4c) + 0x58,*(int *)(param_2 + 0x1bc),0);
FUN_00447c58(param_1,param_2);
return;
}
/* @0046fda0 file=? name=FUN_0046fda0 */
void __cdecl FUN_0046fda0(int param_1,int param_2)
{
FUN_004689bc(*(int *)(param_1 + 0x4c) + 0x58,*(int *)(param_2 + 0x1bc));
FUN_00447d38(param_1,param_2);
return;
}
/* @0046fdd0 file=? name=FUN_0046fdd0 */
void __cdecl
FUN_0046fdd0(int param_1,int param_2,char *param_3,undefined4 param_4,int param_5,undefined4 param_6
,undefined4 param_7,int param_8)
{
int iVar1;
undefined4 *puVar2;
if (*(int *)(param_1 + 0x1c52c) != 0) {
puVar2 = *(undefined4 **)(param_1 + 0x54 + param_2 * 4);
if ((puVar2 != (undefined4 *)0x0) && (puVar2 != (undefined4 *)0x0)) {
(**(code **)*puVar2)(puVar2,3);
}
puVar2 = (undefined4 *)FUN_00402298(0x544);
if (puVar2 == (undefined4 *)0x0) {
puVar2 = (undefined4 *)0x0;
}
else {
puVar2 = FUN_0046d850(puVar2,*(undefined4 **)(param_1 + 0x1c52c),param_3,param_4,param_5,
param_6,param_7);
}
*(undefined4 **)(param_1 + 0x54 + param_2 * 4) = puVar2;
iVar1 = *(int *)(param_1 + 0x54 + param_2 * 4);
if (iVar1 != 0) {
if ((param_5 < 1) || (0xff < param_5)) {
FUN_0046dbdc(iVar1);
}
else {
FUN_0046db84(iVar1,param_8);
}
}
}
return;
}
/* @0046fe70 file=? name=FUN_0046fe70 */
void __cdecl FUN_0046fe70(int param_1,int param_2,undefined4 param_3,undefined4 param_4,int param_5)
{
int iVar1;
if ((*(int *)(param_1 + 0x1c52c) != 0) &&
(iVar1 = *(int *)(param_1 + 0x54 + param_2 * 4), iVar1 != 0)) {
*(undefined4 *)(iVar1 + 0x53c) = param_3;
*(undefined4 *)(iVar1 + 0x540) = param_4;
if ((char)*(undefined4 *)(iVar1 + 0x52c) != '\0') {
FUN_0046db84(iVar1,param_5);
return;
}
FUN_0046dbdc(iVar1);
}
return;
}
/* @0046fec0 file=? name=FUN_0046fec0 */
undefined4 __cdecl FUN_0046fec0(int param_1,int param_2,char *param_3)
{
undefined4 *puVar1;
undefined4 uVar2;
uVar2 = 0;
if (*(int *)(param_1 + 0x1c530) != 0) {
puVar1 = *(undefined4 **)(param_1 + 0x54 + param_2 * 4);
if ((puVar1 != (undefined4 *)0x0) && (puVar1 != (undefined4 *)0x0)) {
(**(code **)*puVar1)(puVar1,3);
}
puVar1 = (undefined4 *)FUN_00402298(0x34);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_0046a3a8(puVar1,*(undefined4 **)(param_1 + 0x1c530),param_3,0);
}
*(undefined4 **)(param_1 + 0x54 + param_2 * 4) = puVar1;
uVar2 = *(undefined4 *)(param_1 + 0x54 + param_2 * 4);
}
return uVar2;
}
/* @0046ff24 file=? name=FUN_0046ff24 */
void __cdecl FUN_0046ff24(int param_1,float param_2)
{
if (*(int *)(param_1 + 0x1c52c) != 0) {
FUN_0046d4a0(*(int *)(param_1 + 0x1c52c),param_2);
}
return;
}
/* @0046ff44 file=? name=FUN_0046ff44 */
void __cdecl FUN_0046ff44(int param_1,float param_2)
{
if (*(int *)(param_1 + 0x1c52c) != 0) {
FUN_0046d430(*(int *)(param_1 + 0x1c52c),param_2);
}
return;
}
/* @0046ff64 file=? name=FUN_0046ff64 */
void __cdecl FUN_0046ff64(int *param_1,char *param_2,undefined4 param_3)
{
char cVar1;
uint uVar2;
uint uVar3;
char *pcVar4;
char *pcVar5;
char local_44 [64];
uVar2 = 0xffffffff;
pcVar4 = *(char **)(*(int *)(DAT_004efc94 + 200) + 0x2c);
do {
pcVar5 = pcVar4;
if (uVar2 == 0) break;
uVar2 = uVar2 - 1;
pcVar5 = pcVar4 + 1;
cVar1 = *pcVar4;
pcVar4 = pcVar5;
} while (cVar1 != '\0');
uVar2 = ~uVar2;
pcVar4 = pcVar5 + -uVar2;
pcVar5 = local_44;
for (uVar3 = uVar2 >> 2; uVar3 != 0; uVar3 = uVar3 - 1) {
*(undefined4 *)pcVar5 = *(undefined4 *)pcVar4;
pcVar4 = pcVar4 + 4;
pcVar5 = pcVar5 + 4;
}
for (uVar2 = uVar2 & 3; uVar2 != 0; uVar2 = uVar2 - 1) {
*pcVar5 = *pcVar4;
pcVar4 = pcVar4 + 1;
pcVar5 = pcVar5 + 1;
}
FUN_004d49b8(local_44,param_2);
(**(code **)(*param_1 + 0x50))(param_1,local_44,param_3);
return;
}
/* @0046ffcc file=? name=FUN_0046ffcc */
undefined8 __fastcall FUN_0046ffcc(undefined4 param_1,undefined4 param_2,int param_3,int param_4)
{
int iVar1;
undefined4 uVar2;
undefined2 extraout_var;
undefined6 uVar3;
iVar1 = param_4 + -1;
if ((param_4 == 0) && (param_2 = 0, *(int *)(param_3 + 0x1c52c) != 0)) {
*(undefined4 *)(param_3 + 0x1c534) = 1;
FUN_00414b60();
uVar2 = FUN_004dcd94();
*(undefined4 *)(param_3 + 0x1c538) = uVar2;
uVar3 = FUN_0046d840(*(undefined4 *)(param_3 + 0x1c52c),1);
param_2 = CONCAT22(extraout_var,(short)((uint6)uVar3 >> 0x20));
iVar1 = (int)uVar3;
}
return CONCAT44(param_2,iVar1);
}
/* @0047003c file=? name=FUN_0047003c */
undefined8 __cdecl FUN_0047003c(int param_1)
{
int *piVar1;
int iVar2;
int iVar3;
undefined6 uVar4;
undefined2 extraout_var;
piVar1 = (int *)FUN_00414b60();
iVar3 = *(int *)(param_1 + 0x1c534);
iVar2 = *piVar1;
if ((iVar3 != 0) && (iVar2 = *(int *)(param_1 + 0x1c538), iVar2 <= *piVar1)) {
*(undefined4 *)(param_1 + 0x1c534) = 0;
uVar4 = FUN_0046d840(*(undefined4 *)(param_1 + 0x1c52c),0);
iVar3 = CONCAT22(extraout_var,(short)((uint6)uVar4 >> 0x20));
iVar2 = (int)uVar4;
}
return CONCAT44(iVar3,iVar2);
}
/* @00470084 file=? name=FUN_00470084 */
void FUN_00470084(void)
{
FUN_00401b1c();
return;
}
/* @004700ac file=? name=FUN_004700ac */
void __cdecl FUN_004700ac(char *param_1)
{
FUN_00402300(param_1);
return;
}
/* @004700bc file=? name=FUN_004700bc */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
int * __cdecl
FUN_004700bc(int *param_1,int param_2,int param_3,int param_4,char *param_5,uint param_6,int param_7
,int param_8,int param_9)
{
int iVar1;
undefined4 *puVar2;
float10 fVar3;
iVar1 = FUN_004700ac(param_5);
param_1[1] = iVar1;
*param_1 = param_2;
puVar2 = FUN_00442aec(param_2 + 4,(char *)param_1[1],0);
if (puVar2 == (undefined4 *)0x0) {
param_1[2] = 0;
param_1[3] = 0;
}
else {
param_1[2] = (puVar2[3] + 1) / 0xe;
param_1[3] = puVar2[4];
}
if ((int)param_6 < 1) {
param_6 = 1;
}
if (param_1[9] == 4) {
if (8 < (int)param_6) {
param_6 = 8;
}
param_1[10] = 0x48ae0600;
}
else {
if (0x10 < (int)param_6) {
param_6 = 0x10;
}
fVar3 = (float10)FUN_004dd4b0(param_6);
param_1[10] = (int)(float)(fVar3 - (float10)_DAT_00470188);
}
param_1[4] = param_6;
param_1[9] = param_7;
param_1[5] = param_8;
param_1[6] = param_9;
param_1[7] = param_3;
param_1[8] = param_4;
param_1[0xc] = 1;
FUN_004703f4((int)param_1);
return param_1;
}
/* @0047018c file=? name=FUN_0047018c */
void __cdecl FUN_0047018c(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
FUN_00442c12(*param_1 + 4,(char *)param_1[1]);
FUN_004022e8((int *)param_1[1]);
param_1[1] = 0;
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @004701c8 file=? name=FUN_004701c8 */
undefined4 FUN_004701c8(void)
{
return 1;
}
/* @004701d4 file=? name=FUN_004701d4 */
void __cdecl FUN_004701d4(int param_1,char *param_2)
{
char cVar1;
int *piVar2;
uint uVar3;
uint uVar4;
char *pcVar5;
char *pcVar6;
char local_54 [80];
FUN_004dbb24(&DAT_00524e20,param_2,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_NumericDisplay__004fafc9,(char *)0x0);
uVar3 = 0xffffffff;
do {
pcVar5 = param_2;
if (uVar3 == 0) break;
uVar3 = uVar3 - 1;
pcVar5 = param_2 + 1;
cVar1 = *param_2;
param_2 = pcVar5;
} while (cVar1 != '\0');
uVar3 = ~uVar3;
pcVar5 = pcVar5 + -uVar3;
pcVar6 = local_54;
for (uVar4 = uVar3 >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {
*(undefined4 *)pcVar6 = *(undefined4 *)pcVar5;
pcVar5 = pcVar5 + 4;
pcVar6 = pcVar6 + 4;
}
for (uVar3 = uVar3 & 3; uVar3 != 0; uVar3 = uVar3 - 1) {
*pcVar6 = *pcVar5;
pcVar5 = pcVar5 + 1;
pcVar6 = pcVar6 + 1;
}
FUN_004d49b8(local_54,&DAT_004fafda);
uVar3 = *(uint *)(param_1 + 0x14);
FUN_004dbb24(&DAT_00524e20,local_54,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_backgroundColor__004fafde,(char *)0x0);
piVar2 = FUN_004db78c(&DAT_00524e20,uVar3);
FUN_004dbb24(piVar2,&DAT_004fafef,(char *)0x0);
uVar3 = *(uint *)(param_1 + 0x18);
FUN_004dbb24(&DAT_00524e20,local_54,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_foregroundColor__004faff1,(char *)0x0);
piVar2 = FUN_004db78c(&DAT_00524e20,uVar3);
FUN_004dbb24(piVar2,&DAT_004fb002,(char *)0x0);
uVar3 = *(uint *)(param_1 + 0x10);
FUN_004dbb24(&DAT_00524e20,local_54,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_numberOfDigits___004fb004,(char *)0x0);
piVar2 = FUN_004db78c(&DAT_00524e20,uVar3);
FUN_004dbb24(piVar2,&DAT_004fb015,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,local_54,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_format___004fb017,(char *)0x0);
switch(*(undefined4 *)(param_1 + 0x24)) {
case 0:
FUN_004dbb24(&DAT_00524e20,s_unsignedFormat_004fb028,(char *)0x0);
break;
case 1:
FUN_004dbb24(&DAT_00524e20,s_signedFormat_004fb038,(char *)0x0);
break;
case 2:
FUN_004dbb24(&DAT_00524e20,s_signedBlankedZerosFormat_004fb046,(char *)0x0);
break;
case 3:
FUN_004dbb24(&DAT_00524e20,s_absoluteFormat_004fb060,(char *)0x0);
break;
case 4:
FUN_004dbb24(&DAT_00524e20,s_timeFormat_004fb070,(char *)0x0);
break;
default:
FUN_004dbb24(&DAT_00524e20,s___OUT_OF_RANGE___004fb07c,(char *)0x0);
}
return;
}
/* @004703f4 file=? name=FUN_004703f4 */
void __cdecl FUN_004703f4(int param_1)
{
undefined1 *puVar1;
int iVar2;
*(undefined4 *)(param_1 + 0x2c) = 0xbf9e0419;
iVar2 = 0;
puVar1 = (undefined1 *)(param_1 + 0x34);
do {
*puVar1 = 0xff;
iVar2 = iVar2 + 1;
puVar1 = puVar1 + 1;
} while (iVar2 < 0x10);
return;
}
/* @00470414 file=? name=FUN_00470414 */
void __cdecl FUN_00470414(int param_1,undefined4 param_2,undefined4 param_3)
{
*(undefined4 *)(param_1 + 0x14) = param_2;
*(undefined4 *)(param_1 + 0x18) = param_3;
FUN_004703f4(param_1);
return;
}
/* @00470430 file=? name=FUN_00470430 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
void FUN_00470430(int *param_1,int *param_2,float param_3)
{
uint uVar1;
int iVar2;
int iVar3;
undefined1 uVar4;
char cVar5;
char acStack_38 [20];
int *piStack_24;
int iStack_20;
uint uStack_1c;
int iStack_18;
char *pcStack_14;
int iStack_10;
undefined4 uStack_c;
undefined4 *puStack_8;
if (param_1[0xc] != 0) {
param_1[0xc] = 0;
FUN_004703f4((int)param_1);
}
puStack_8 = FUN_00442aec(*param_1 + 4,(char *)param_1[1],0);
if (puStack_8 == (undefined4 *)0x0) goto LAB_00470737;
if ((param_1[9] == 3) && (param_3 < _DAT_00470750)) {
param_3 = -param_3;
}
if ((float)param_1[0xb] == param_3) goto LAB_00470737;
param_1[0xb] = (int)param_3;
iVar2 = FUN_004dcd94();
uStack_c = puStack_8[4];
if (iVar2 < 0) {
iVar2 = -iVar2;
}
iVar3 = FUN_004dcd94();
if (iVar3 < iVar2) {
iVar2 = iVar3;
}
pcStack_14 = &stack0xffffffc7 + param_1[4];
iVar3 = param_1[9];
if (iVar3 == 0) {
LAB_004704f9:
iVar3 = param_1[4];
while (iVar3 = iVar3 + -1, -1 < iVar3) {
*pcStack_14 = (char)(iVar2 % 10);
iVar2 = iVar2 / 10;
pcStack_14 = pcStack_14 + -1;
}
}
else if (iVar3 == 1) {
for (iVar3 = param_1[4] + -2; -1 < iVar3; iVar3 = iVar3 + -1) {
*pcStack_14 = (char)(iVar2 % 10);
iVar2 = iVar2 / 10;
pcStack_14 = pcStack_14 + -1;
}
uVar4 = 10;
if (param_3 < _DAT_00470750) {
uVar4 = 0xb;
}
*pcStack_14 = uVar4;
}
else {
if (iVar3 - 2U < 2) goto LAB_004704f9;
if (iVar3 - 2U == 2) {
uStack_1c = 0;
iVar3 = param_1[4];
uVar1 = uStack_1c;
while (uStack_1c = uVar1, 0 < iVar3) {
uStack_1c = uVar1 + 1;
if (uVar1 < 2) {
iStack_18 = iVar2 % 0x3c;
iVar2 = iVar2 / 0x3c;
}
else if (uVar1 == 2) {
iStack_18 = iVar2 % 0x18;
iVar2 = iVar2 / 0x18;
}
else if (uVar1 == 3) {
iStack_18 = iVar2 % 100;
}
else {
iStack_18 = 0;
}
if (-1 < iVar3 + -1) {
*pcStack_14 = (char)(iStack_18 % 10);
pcStack_14 = pcStack_14 + -1;
}
if (-1 < iVar3 + -2) {
*pcStack_14 = (char)(iStack_18 / 10);
pcStack_14 = pcStack_14 + -1;
}
iVar3 = iVar3 + -3;
uVar1 = uStack_1c;
if (-1 < iVar3) {
*pcStack_14 = 0xd;
pcStack_14 = pcStack_14 + -1;
uVar1 = uStack_1c;
}
}
}
}
iStack_20 = 1;
iStack_10 = param_1[7];
pcStack_14 = acStack_38;
piStack_24 = param_1 + 0xd;
for (iVar2 = 0; iVar2 < param_1[4]; iVar2 = iVar2 + 1) {
cVar5 = *pcStack_14;
if ((param_1[9] == 2) && (iStack_20 != 0)) {
if ((_DAT_00470750 <= param_3) || (pcStack_14[1] == '\0')) {
if (cVar5 == '\0') {
if (iVar2 == param_1[4] + -1) {
iStack_20 = 0;
}
else {
cVar5 = '\x7f';
}
}
else {
iStack_20 = 0;
}
}
else {
cVar5 = '\v';
iStack_20 = 0;
}
}
if (cVar5 != (char)*piStack_24) {
*(char *)piStack_24 = cVar5;
(**(code **)(*param_2 + 0x24))(param_2,iStack_10,param_1[8]);
if (cVar5 == 0x7f) {
(**(code **)(*param_2 + 0x18))(param_2,param_1[5]);
(**(code **)(*param_2 + 0x4c))(param_2,param_1[2],uStack_c);
}
else {
iVar3 = (int)cVar5 * param_1[2];
(**(code **)(*param_2 + 0x18))(param_2,param_1[6]);
(**(code **)(*param_2 + 0x58))
(param_2,param_1[5],0,puStack_8,iVar3,0,param_1[2] + iVar3 + -1,uStack_c);
}
}
piStack_24 = (int *)((int)piStack_24 + 1);
iStack_10 = iStack_10 + param_1[2];
pcStack_14 = pcStack_14 + 1;
}
LAB_00470737:
FUN_00442c12(*param_1 + 4,(char *)param_1[1]);
return;
}
/* @00470436 file=? name=FUN_00470436 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
void FUN_00470436(void)
{
int *piVar1;
uint uVar2;
undefined4 *puVar3;
int iVar4;
int iVar5;
undefined1 uVar6;
char cVar7;
int unaff_EBP;
piVar1 = *(int **)(unaff_EBP + 8);
if (piVar1[0xc] != 0) {
piVar1[0xc] = 0;
FUN_004703f4((int)piVar1);
}
puVar3 = FUN_00442aec(*piVar1 + 4,(char *)piVar1[1],0);
*(undefined4 **)(unaff_EBP + -4) = puVar3;
if (*(int *)(unaff_EBP + -4) == 0) goto LAB_00470737;
if ((piVar1[9] == 3) && (*(float *)(unaff_EBP + 0x10) < _DAT_00470750)) {
*(float *)(unaff_EBP + 0x10) = -*(float *)(unaff_EBP + 0x10);
}
if ((float)piVar1[0xb] == *(float *)(unaff_EBP + 0x10)) goto LAB_00470737;
piVar1[0xb] = *(int *)(unaff_EBP + 0x10);
iVar4 = FUN_004dcd94();
*(undefined4 *)(unaff_EBP + -8) = *(undefined4 *)(*(int *)(unaff_EBP + -4) + 0x10);
if (iVar4 < 0) {
iVar4 = -iVar4;
}
iVar5 = FUN_004dcd94();
if (iVar5 < iVar4) {
iVar4 = iVar5;
}
*(int *)(unaff_EBP + -0x10) = unaff_EBP + -0x35 + piVar1[4];
iVar5 = piVar1[9];
if (iVar5 == 0) {
LAB_004704f9:
iVar5 = piVar1[4];
while (iVar5 = iVar5 + -1, -1 < iVar5) {
**(undefined1 **)(unaff_EBP + -0x10) = (char)(iVar4 % 10);
iVar4 = iVar4 / 10;
*(int *)(unaff_EBP + -0x10) = *(int *)(unaff_EBP + -0x10) + -1;
}
}
else if (iVar5 == 1) {
for (iVar5 = piVar1[4] + -2; -1 < iVar5; iVar5 = iVar5 + -1) {
**(undefined1 **)(unaff_EBP + -0x10) = (char)(iVar4 % 10);
iVar4 = iVar4 / 10;
*(int *)(unaff_EBP + -0x10) = *(int *)(unaff_EBP + -0x10) + -1;
}
uVar6 = 10;
if (*(float *)(unaff_EBP + 0x10) < _DAT_00470750) {
uVar6 = 0xb;
}
**(undefined1 **)(unaff_EBP + -0x10) = uVar6;
}
else {
if (iVar5 - 2U < 2) goto LAB_004704f9;
if (iVar5 - 2U == 2) {
*(undefined4 *)(unaff_EBP + -0x18) = 0;
iVar5 = piVar1[4];
while (0 < iVar5) {
uVar2 = *(uint *)(unaff_EBP + -0x18);
*(int *)(unaff_EBP + -0x18) = *(int *)(unaff_EBP + -0x18) + 1;
if (uVar2 < 2) {
*(int *)(unaff_EBP + -0x14) = iVar4 % 0x3c;
iVar4 = iVar4 / 0x3c;
}
else if (uVar2 == 2) {
*(int *)(unaff_EBP + -0x14) = iVar4 % 0x18;
iVar4 = iVar4 / 0x18;
}
else if (uVar2 == 3) {
*(int *)(unaff_EBP + -0x14) = iVar4 % 100;
}
else {
*(undefined4 *)(unaff_EBP + -0x14) = 0;
}
if (-1 < iVar5 + -1) {
**(undefined1 **)(unaff_EBP + -0x10) = (char)(*(int *)(unaff_EBP + -0x14) % 10);
*(int *)(unaff_EBP + -0x10) = *(int *)(unaff_EBP + -0x10) + -1;
}
if (-1 < iVar5 + -2) {
**(undefined1 **)(unaff_EBP + -0x10) = (char)(*(int *)(unaff_EBP + -0x14) / 10);
*(int *)(unaff_EBP + -0x10) = *(int *)(unaff_EBP + -0x10) + -1;
}
iVar5 = iVar5 + -3;
if (-1 < iVar5) {
**(undefined1 **)(unaff_EBP + -0x10) = 0xd;
*(int *)(unaff_EBP + -0x10) = *(int *)(unaff_EBP + -0x10) + -1;
}
}
}
}
*(undefined4 *)(unaff_EBP + -0x1c) = 1;
*(int *)(unaff_EBP + -0xc) = piVar1[7];
*(int *)(unaff_EBP + -0x10) = unaff_EBP + -0x34;
*(int **)(unaff_EBP + -0x20) = piVar1 + 0xd;
for (iVar4 = 0; iVar4 < piVar1[4]; iVar4 = iVar4 + 1) {
cVar7 = **(char **)(unaff_EBP + -0x10);
if ((piVar1[9] == 2) && (*(int *)(unaff_EBP + -0x1c) != 0)) {
if ((_DAT_00470750 <= *(float *)(unaff_EBP + 0x10)) ||
(*(char *)(*(int *)(unaff_EBP + -0x10) + 1) == '\0')) {
if (cVar7 == '\0') {
if (iVar4 == piVar1[4] + -1) {
*(undefined4 *)(unaff_EBP + -0x1c) = 0;
}
else {
cVar7 = '\x7f';
}
}
else {
*(undefined4 *)(unaff_EBP + -0x1c) = 0;
}
}
else {
cVar7 = '\v';
*(undefined4 *)(unaff_EBP + -0x1c) = 0;
}
}
if (cVar7 != **(char **)(unaff_EBP + -0x20)) {
**(char **)(unaff_EBP + -0x20) = cVar7;
(**(code **)(**(int **)(unaff_EBP + 0xc) + 0x24))
(*(int **)(unaff_EBP + 0xc),*(undefined4 *)(unaff_EBP + -0xc),piVar1[8]);
if (cVar7 == 0x7f) {
(**(code **)(**(int **)(unaff_EBP + 0xc) + 0x18))(*(int **)(unaff_EBP + 0xc),piVar1[5]);
(**(code **)(**(int **)(unaff_EBP + 0xc) + 0x4c))
(*(int **)(unaff_EBP + 0xc),piVar1[2],*(undefined4 *)(unaff_EBP + -8));
}
else {
iVar5 = (int)cVar7 * piVar1[2];
(**(code **)(**(int **)(unaff_EBP + 0xc) + 0x18))(*(int **)(unaff_EBP + 0xc),piVar1[6]);
(**(code **)(**(int **)(unaff_EBP + 0xc) + 0x58))
(*(int **)(unaff_EBP + 0xc),piVar1[5],0,*(undefined4 *)(unaff_EBP + -4),iVar5,0,
piVar1[2] + iVar5 + -1,*(undefined4 *)(unaff_EBP + -8));
}
}
*(int *)(unaff_EBP + -0x20) = *(int *)(unaff_EBP + -0x20) + 1;
*(int *)(unaff_EBP + -0xc) = *(int *)(unaff_EBP + -0xc) + piVar1[2];
*(int *)(unaff_EBP + -0x10) = *(int *)(unaff_EBP + -0x10) + 1;
}
LAB_00470737:
FUN_00442c12(*piVar1 + 4,(char *)piVar1[1]);
return;
}
/* @00470758 file=? name=FUN_00470758 */
void __cdecl FUN_00470758(int param_1,int *param_2)
{
if (*(int *)(param_1 + 0x30) == 0) {
*(undefined4 *)(param_1 + 0x30) = 1;
(**(code **)(*param_2 + 0x18))(param_2,*(undefined4 *)(param_1 + 0x14));
(**(code **)(*param_2 + 0x24))
(param_2,*(undefined4 *)(param_1 + 0x1c),*(undefined4 *)(param_1 + 0x20));
(**(code **)(*param_2 + 0x4c))
(param_2,*(int *)(param_1 + 8) * *(int *)(param_1 + 0x10),
*(undefined4 *)(param_1 + 0xc));
}
return;
}
/* @004707a8 file=? name=FUN_004707a8 */
undefined4 __cdecl FUN_004707a8(int param_1,int param_2,int param_3,undefined4 param_4,int param_5)
{
int iVar1;
undefined4 uVar2;
int *piVar3;
undefined4 *puVar4;
iVar1 = FUN_00445034(&PTR_s_unsigned_004f5784,&DAT_004f593c);
if (iVar1 < 0) {
uVar2 = 0;
}
else {
piVar3 = (int *)FUN_00402298(0x98);
if (piVar3 != (int *)0x0) {
FUN_00470888(piVar3,DAT_004f57e8,DAT_004f582c,param_5,0,param_1,param_2,param_3,
param_2 + DAT_004f5870,param_3 + DAT_004f5874,&DAT_004f58b4,DAT_004f58f8,iVar1,
DAT_004f5980,DAT_004f59c4,DAT_004f5a08,s_NumericDisplayScalar_004fadbd);
}
iVar1 = *(int *)(param_5 + 0x4c) + 4;
puVar4 = FUN_00442aec(iVar1,&DAT_004f58b4,0);
if (puVar4 == (undefined4 *)0x0) {
uVar2 = 0;
}
else {
FUN_00442c12(iVar1,&DAT_004f58b4);
uVar2 = 1;
}
}
return uVar2;
}
/* @00470888 file=? name=FUN_00470888 */
int * __cdecl
FUN_00470888(int *param_1,undefined4 param_2,undefined4 param_3,int param_4,undefined4 param_5,
int param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9,undefined4 param_10
,char *param_11,uint param_12,int param_13,int param_14,int param_15,undefined4 param_16
,undefined4 param_17)
{
int *piVar1;
undefined4 *puVar2;
FUN_00444818(param_1,param_2,param_3,param_4,param_5,param_6,param_17);
*param_1 = (int)&PTR_FUN_004fbb40;
piVar1 = (int *)FUN_00402298(0x44);
if (piVar1 == (int *)0x0) {
piVar1 = (int *)0x0;
}
else {
piVar1 = FUN_004700bc(piVar1,*(int *)(param_4 + 0x4c),0,0,param_11,param_12,param_13,param_14,
param_15);
}
param_1[0x24] = (int)piVar1;
(**(code **)(param_1[0x12] + 8))(param_1 + 0x12,param_7,param_8,param_9,param_10);
puVar2 = (undefined4 *)FUN_00402298(0x18);
if (puVar2 == (undefined4 *)0x0) {
puVar2 = (undefined4 *)0x0;
}
else {
puVar2 = FUN_00474855(puVar2,0,param_1 + 0x25,param_16);
}
(**(code **)(*param_1 + 0x34))(param_1,puVar2);
return param_1;
}
/* @0047094c file=? name=FUN_0047094c */
void __cdecl FUN_0047094c(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004fbb40;
if ((int *)param_1[0x24] != (int *)0x0) {
FUN_0047018c((int *)param_1[0x24],3);
param_1[0x24] = 0;
}
FUN_00444870(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00470998 file=? name=FUN_00470998 */
void FUN_00470998(void)
{
FUN_004448ac();
return;
}
/* @004709a8 file=? name=FUN_004709a8 */
void __cdecl FUN_004709a8(int param_1,char *param_2)
{
char cVar1;
uint uVar2;
uint uVar3;
char *pcVar4;
char *pcVar5;
char local_54 [80];
FUN_004dbb24(&DAT_00524e20,param_2,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_NumericDisplayScalar__004fb096,(char *)0x0);
uVar2 = 0xffffffff;
do {
pcVar4 = param_2;
if (uVar2 == 0) break;
uVar2 = uVar2 - 1;
pcVar4 = param_2 + 1;
cVar1 = *param_2;
param_2 = pcVar4;
} while (cVar1 != '\0');
uVar2 = ~uVar2;
pcVar4 = pcVar4 + -uVar2;
pcVar5 = local_54;
for (uVar3 = uVar2 >> 2; uVar3 != 0; uVar3 = uVar3 - 1) {
*(undefined4 *)pcVar5 = *(undefined4 *)pcVar4;
pcVar4 = pcVar4 + 4;
pcVar5 = pcVar5 + 4;
}
for (uVar2 = uVar2 & 3; uVar2 != 0; uVar2 = uVar2 - 1) {
*pcVar5 = *pcVar4;
pcVar4 = pcVar4 + 1;
pcVar5 = pcVar5 + 1;
}
FUN_004d49b8(local_54,&DAT_004fb0ad);
FUN_004448bc(param_1,local_54);
FUN_004701d4(*(int *)(param_1 + 0x90),local_54);
return;
}
/* @00470a3c file=? name=FUN_00470a3c */
void __cdecl FUN_00470a3c(int param_1)
{
FUN_004703f4(*(int *)(param_1 + 0x90));
return;
}
/* @00470a54 file=? name=FUN_00470a54 */
void __cdecl FUN_00470a54(int param_1,undefined4 param_2,undefined4 param_3)
{
FUN_00470414(*(int *)(param_1 + 0x90),param_2,param_3);
return;
}
/* @00470a74 file=? name=FUN_00470a74 */
void __cdecl FUN_00470a74(int param_1)
{
FUN_00470430(*(int **)(param_1 + 0x90),(int *)(param_1 + 0x48),*(float *)(param_1 + 0x94));
return;
}
/* @00470a98 file=? name=FUN_00470a98 */
undefined4 __cdecl FUN_00470a98(int param_1,int param_2,int param_3,undefined4 param_4,int param_5)
{
int iVar1;
undefined4 uVar2;
int *piVar3;
undefined4 *puVar4;
iVar1 = FUN_00445034(&PTR_s_unsigned_004f5784,&DAT_004f5d84);
if (iVar1 < 0) {
uVar2 = 0;
}
else {
piVar3 = (int *)FUN_00402298(0x98);
if (piVar3 != (int *)0x0) {
FUN_00470b74(piVar3,DAT_004f5c30,DAT_004f5c74,param_5,0,param_1,param_2,param_3,
param_2 + DAT_004f5cb8,param_3 + DAT_004f5cbc,&DAT_004f5cfc,DAT_004f5d40,iVar1,
DAT_004f5dc8,DAT_004f5e0c,DAT_004f5e50);
}
iVar1 = *(int *)(param_5 + 0x4c) + 4;
puVar4 = FUN_00442aec(iVar1,&DAT_004f5cfc,0);
if (puVar4 == (undefined4 *)0x0) {
uVar2 = 0;
}
else {
FUN_00442c12(iVar1,&DAT_004f5cfc);
uVar2 = 1;
}
}
return uVar2;
}
/* @00470b74 file=? name=FUN_00470b74 */
int * __cdecl
FUN_00470b74(int *param_1,undefined4 param_2,undefined4 param_3,int param_4,undefined4 param_5,
int param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9,undefined4 param_10
,char *param_11,uint param_12,int param_13,int param_14,int param_15,undefined4 param_16
)
{
FUN_00470888(param_1,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,param_10,
param_11,param_12,param_13,param_14,param_15,param_16,s_NumericDisplayScalar_004fadbd
);
*param_1 = (int)&PTR_FUN_004fbafc;
return param_1;
}
/* @00470bd0 file=? name=FUN_00470bd0 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
void __cdecl FUN_00470bd0(int param_1)
{
float10 fVar1;
fVar1 = FUN_004dcd00((double)(*(float *)(param_1 + 0x94) * _DAT_00470c18));
FUN_00470430(*(int **)(param_1 + 0x90),(int *)(param_1 + 0x48),(float)fVar1);
return;
}
/* @00470c1c file=? name=FUN_00470c1c */
undefined4 __cdecl FUN_00470c1c(int param_1,int param_2,int param_3,undefined4 param_4,int param_5)
{
int iVar1;
undefined4 uVar2;
int *piVar3;
undefined4 *puVar4;
iVar1 = FUN_00445034(&PTR_s_unsigned_004f5784,&DAT_004f61cc);
if (iVar1 < 0) {
uVar2 = 0;
}
else {
piVar3 = (int *)FUN_00402298(0x98);
if (piVar3 != (int *)0x0) {
FUN_00470cfc(piVar3,DAT_004f6078,DAT_004f60bc,param_5,0,param_1,param_2,param_3,
param_2 + DAT_004f6100,param_3 + DAT_004f6104,&DAT_004f6144,DAT_004f6188,iVar1,
DAT_004f6210,DAT_004f6254,DAT_004f6298,s_NumericDisplayInteger_004fadd2);
}
iVar1 = *(int *)(param_5 + 0x4c) + 4;
puVar4 = FUN_00442aec(iVar1,&DAT_004f6144,0);
if (puVar4 == (undefined4 *)0x0) {
uVar2 = 0;
}
else {
FUN_00442c12(iVar1,&DAT_004f6144);
uVar2 = 1;
}
}
return uVar2;
}
/* @00470cfc file=? name=FUN_00470cfc */
int * __cdecl
FUN_00470cfc(int *param_1,undefined4 param_2,undefined4 param_3,int param_4,undefined4 param_5,
int param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9,undefined4 param_10
,char *param_11,uint param_12,int param_13,int param_14,int param_15,undefined4 param_16
,undefined4 param_17)
{
int *piVar1;
undefined4 *puVar2;
FUN_00444818(param_1,param_2,param_3,param_4,param_5,param_6,param_17);
*param_1 = (int)&PTR_FUN_004fbab8;
piVar1 = (int *)FUN_00402298(0x44);
if (piVar1 == (int *)0x0) {
piVar1 = (int *)0x0;
}
else {
piVar1 = FUN_004700bc(piVar1,*(int *)(param_4 + 0x4c),0,0,param_11,param_12,param_13,param_14,
param_15);
}
param_1[0x24] = (int)piVar1;
(**(code **)(param_1[0x12] + 8))(param_1 + 0x12,param_7,param_8,param_9,param_10);
puVar2 = (undefined4 *)FUN_00402298(0x18);
if (puVar2 == (undefined4 *)0x0) {
puVar2 = (undefined4 *)0x0;
}
else {
puVar2 = FUN_004749de(puVar2,0,param_1 + 0x25,param_16);
}
(**(code **)(*param_1 + 0x34))(param_1,puVar2);
return param_1;
}
/* @00470dc0 file=? name=FUN_00470dc0 */
void __cdecl FUN_00470dc0(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004fbab8;
if ((int *)param_1[0x24] != (int *)0x0) {
FUN_0047018c((int *)param_1[0x24],3);
param_1[0x24] = 0;
}
FUN_00444870(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00470e0c file=? name=FUN_00470e0c */
void FUN_00470e0c(void)
{
FUN_004448ac();
return;
}
/* @00470e1c file=? name=FUN_00470e1c */
void __cdecl FUN_00470e1c(int param_1,char *param_2)
{
char cVar1;
uint uVar2;
uint uVar3;
char *pcVar4;
char *pcVar5;
char local_54 [80];
FUN_004dbb24(&DAT_00524e20,param_2,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_NumericDisplayInteger__004fb0cd,(char *)0x0);
uVar2 = 0xffffffff;
do {
pcVar4 = param_2;
if (uVar2 == 0) break;
uVar2 = uVar2 - 1;
pcVar4 = param_2 + 1;
cVar1 = *param_2;
param_2 = pcVar4;
} while (cVar1 != '\0');
uVar2 = ~uVar2;
pcVar4 = pcVar4 + -uVar2;
pcVar5 = local_54;
for (uVar3 = uVar2 >> 2; uVar3 != 0; uVar3 = uVar3 - 1) {
*(undefined4 *)pcVar5 = *(undefined4 *)pcVar4;
pcVar4 = pcVar4 + 4;
pcVar5 = pcVar5 + 4;
}
for (uVar2 = uVar2 & 3; uVar2 != 0; uVar2 = uVar2 - 1) {
*pcVar5 = *pcVar4;
pcVar4 = pcVar4 + 1;
pcVar5 = pcVar5 + 1;
}
FUN_004d49b8(local_54,&DAT_004fb0e5);
FUN_004448bc(param_1,local_54);
FUN_004701d4(*(int *)(param_1 + 0x90),local_54);
return;
}
/* @00470eb0 file=? name=FUN_00470eb0 */
void __cdecl FUN_00470eb0(int param_1)
{
FUN_004703f4(*(int *)(param_1 + 0x90));
return;
}
/* @00470ec8 file=? name=FUN_00470ec8 */
void __cdecl FUN_00470ec8(int param_1,undefined4 param_2,undefined4 param_3)
{
FUN_00470414(*(int *)(param_1 + 0x90),param_2,param_3);
return;
}
/* @00470ee8 file=? name=FUN_00470ee8 */
void __cdecl FUN_00470ee8(int param_1)
{
FUN_00470430(*(int **)(param_1 + 0x90),(int *)(param_1 + 0x48),(float)*(int *)(param_1 + 0x94));
return;
}
/* @00470f10 file=? name=FUN_00470f10 */
undefined4 __cdecl FUN_00470f10(int param_1,int param_2,int param_3,undefined4 param_4,int param_5)
{
int iVar1;
undefined4 uVar2;
undefined4 *puVar3;
iVar1 = FUN_00445034(&PTR_s_unsigned_004f5784,&DAT_004f6614);
if (iVar1 < 0) {
uVar2 = 0;
}
else {
puVar3 = (undefined4 *)FUN_00402298(0x94);
if (puVar3 != (undefined4 *)0x0) {
FUN_00470fe8(puVar3,DAT_004f64c0,DAT_004f6504,param_5,0,param_1,param_2,param_3,
param_2 + DAT_004f6548,param_3 + DAT_004f654c,&DAT_004f658c,DAT_004f65d0,iVar1,
DAT_004f6658,DAT_004f669c,s_DigitalClock_004fade8);
}
iVar1 = *(int *)(param_5 + 0x4c) + 4;
puVar3 = FUN_00442aec(iVar1,&DAT_004f658c,0);
if (puVar3 == (undefined4 *)0x0) {
uVar2 = 0;
}
else {
FUN_00442c12(iVar1,&DAT_004f658c);
uVar2 = 1;
}
}
return uVar2;
}
/* @00470fe8 file=? name=FUN_00470fe8 */
undefined4 * __cdecl
FUN_00470fe8(undefined4 *param_1,undefined4 param_2,undefined4 param_3,int param_4,
undefined4 param_5,int param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9,
undefined4 param_10,char *param_11,uint param_12,int param_13,int param_14,int param_15,
undefined4 param_16)
{
int *piVar1;
FUN_00444818(param_1,param_2,param_3,param_4,param_5,param_6,param_16);
*param_1 = &PTR_FUN_004fba74;
piVar1 = (int *)FUN_00402298(0x44);
if (piVar1 == (int *)0x0) {
piVar1 = (int *)0x0;
}
else {
piVar1 = FUN_004700bc(piVar1,*(int *)(param_4 + 0x4c),0,0,param_11,param_12,param_13,param_14,
param_15);
}
param_1[0x24] = piVar1;
(**(code **)(param_1[0x12] + 8))(param_1 + 0x12,param_7,param_8,param_9,param_10);
return param_1;
}
/* @0047107c file=? name=FUN_0047107c */
void __cdecl FUN_0047107c(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004fba74;
if ((int *)param_1[0x24] != (int *)0x0) {
FUN_0047018c((int *)param_1[0x24],3);
param_1[0x24] = 0;
}
FUN_00444870(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @004710c8 file=? name=FUN_004710c8 */
void FUN_004710c8(void)
{
FUN_004448ac();
return;
}
/* @004710d8 file=? name=FUN_004710d8 */
void __cdecl FUN_004710d8(int param_1,char *param_2)
{
char cVar1;
uint uVar2;
uint uVar3;
char *pcVar4;
char *pcVar5;
undefined8 uVar6;
char local_54 [80];
FUN_004dbb24(&DAT_00524e20,param_2,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_DigitalClock__004fb0f6,(char *)0x0);
uVar2 = 0xffffffff;
do {
pcVar4 = param_2;
if (uVar2 == 0) break;
uVar2 = uVar2 - 1;
pcVar4 = param_2 + 1;
cVar1 = *param_2;
param_2 = pcVar4;
} while (cVar1 != '\0');
uVar2 = ~uVar2;
pcVar4 = pcVar4 + -uVar2;
pcVar5 = local_54;
for (uVar3 = uVar2 >> 2; uVar3 != 0; uVar3 = uVar3 - 1) {
*(undefined4 *)pcVar5 = *(undefined4 *)pcVar4;
pcVar4 = pcVar4 + 4;
pcVar5 = pcVar5 + 4;
}
for (uVar2 = uVar2 & 3; uVar2 != 0; uVar2 = uVar2 - 1) {
*pcVar5 = *pcVar4;
pcVar4 = pcVar4 + 1;
pcVar5 = pcVar5 + 1;
}
FUN_004d49b8(local_54,&DAT_004fb105);
uVar2 = *(uint *)(param_1 + 0x90);
FUN_004dbb24(&DAT_00524e20,local_54,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_numericDisplay__004fb109,(char *)0x0);
uVar6 = FUN_004dbd4c(&DAT_00524e20,uVar2);
FUN_004dbb24((int *)uVar6,&DAT_004fb119,(char *)0x0);
FUN_004443b4(param_1,local_54);
FUN_004701d4(*(int *)(param_1 + 0x90),local_54);
return;
}
/* @004711b8 file=? name=FUN_004711b8 */
void __cdecl FUN_004711b8(int param_1)
{
FUN_004703f4(*(int *)(param_1 + 0x90));
return;
}
/* @004711d0 file=? name=FUN_004711d0 */
void __cdecl FUN_004711d0(int param_1)
{
FUN_00470430(*(int **)(param_1 + 0x90),(int *)(param_1 + 0x48),*(float *)(DAT_004efc94 + 0x58));
return;
}
/* @004711fc file=? name=FUN_004711fc */
undefined4 FUN_004711fc(void)
{
int iVar1;
int iVar2;
int iVar3;
int iVar4;
undefined4 uVar5;
int iVar6;
int iVar7;
int *piVar8;
int in_stack_00000014;
iVar4 = FUN_00445034(&PTR_s_native_004f575c,&DAT_004f6a18);
if (iVar4 < 0) {
FUN_004dbb24(&DAT_00524e20,s_configure_palette_ID___004fb11b,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,&DAT_004f6a18,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s___NOT_FOUND_004fb132,(char *)0x0);
uVar5 = 0;
}
else {
iVar6 = FUN_00445034(&PTR_DAT_004f5704,&DAT_004f6a5c);
iVar3 = DAT_004f69d4;
uVar5 = DAT_004f6990;
iVar2 = DAT_004f6908;
if (iVar6 < 0) {
FUN_004dbb24(&DAT_00524e20,s_configure_enable_ID___004fb13f,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,&DAT_004f6a5c,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s___NOT_FOUND_004fb155,(char *)0x0);
uVar5 = 0;
}
else {
iVar7 = FUN_004d4b58(&DAT_004f6aa0,&DAT_004fb162);
iVar1 = *(int *)(in_stack_00000014 + 0x4c);
if (iVar7 != 0) {
piVar8 = FUN_00442f6a(iVar1 + 0x3c,&DAT_004f6aa0,0);
if (piVar8 == (int *)0x0) {
FUN_004dbb24(&DAT_00524e20,s_MakeConfig_missing_palette___004fb167,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,&DAT_004f6aa0,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,&DAT_004fb184,(char *)0x0);
return 0;
}
}
else {
piVar8 = (int *)0x0;
}
FUN_0046fdd0(in_stack_00000014,iVar2,&DAT_004f694c,uVar5,iVar3,iVar4,iVar6,(int)piVar8);
if (iVar7 != 0) {
FUN_00443090(iVar1 + 0x3c,&DAT_004f6aa0);
}
uVar5 = 1;
}
}
return uVar5;
}
/* @004713e0 file=? name=FUN_004713e0 */
undefined4 FUN_004713e0(void)
{
int iVar1;
undefined4 uVar2;
int iVar3;
undefined4 *puVar4;
int in_stack_00000014;
iVar1 = FUN_00445034(&PTR_s_native_004f575c,&DAT_004f7220);
if (iVar1 < 0) {
FUN_004dbb24(&DAT_00524e20,s_reconfigure_palette_ID___004fb1af,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,&DAT_004f7220,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s___NOT_FOUND_004fb1c8,(char *)0x0);
uVar2 = 0;
}
else {
iVar3 = FUN_00445034(&PTR_DAT_004f5704,&DAT_004f7264);
if (iVar3 < 0) {
FUN_004dbb24(&DAT_00524e20,s_reconfigure_enable_ID___004fb1d5,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,&DAT_004f7264,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s___NOT_FOUND_004fb1ed,(char *)0x0);
uVar2 = 0;
}
else {
puVar4 = (undefined4 *)FUN_00402298(0x38);
if (puVar4 == (undefined4 *)0x0) {
puVar4 = (undefined4 *)0x0;
}
else {
puVar4 = FUN_00471568(puVar4,DAT_004f7198,in_stack_00000014,DAT_004f71dc,iVar1,iVar3,
&DAT_004f72a8,s_BackgroundReconfig_004fae02);
}
if (puVar4[9] == 0) {
iVar1 = *(int *)(in_stack_00000014 + 0x4c) + 4;
puVar4 = FUN_00442aec(iVar1,&DAT_004f72a8,0);
if (puVar4 == (undefined4 *)0x0) {
FUN_004dbb24(&DAT_00524e20,s_BackgroundReconfig_missing_palet_004fb1fa,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,&DAT_004f72a8,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,&DAT_004fb21f,(char *)0x0);
return 0;
}
FUN_00442c12(iVar1,&DAT_004f72a8);
}
uVar2 = 1;
}
}
return uVar2;
}
/* @00471568 file=? name=FUN_00471568 */
undefined4 * __cdecl
FUN_00471568(undefined4 *param_1,undefined4 param_2,int param_3,undefined4 param_4,
undefined4 param_5,undefined4 param_6,char *param_7,undefined4 param_8)
{
char *pcVar1;
int iVar2;
FUN_004440a8(param_1,param_2,param_3,0,param_8);
*param_1 = &PTR_FUN_004fba40;
param_1[10] = param_4;
param_1[0xb] = param_5;
param_1[0xc] = param_6;
pcVar1 = (char *)FUN_004700ac(param_7);
param_1[0xd] = pcVar1;
iVar2 = FUN_004d4b58(pcVar1,&DAT_004fb222);
param_1[9] = (uint)(iVar2 == 0);
if ((iVar2 == 0) == 0) {
FUN_00442f6a(*(int *)(param_3 + 0x4c) + 0x3c,(char *)param_1[0xd],0);
}
return param_1;
}
/* @004715f0 file=? name=FUN_004715f0 */
void __cdecl FUN_004715f0(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004fba40;
if (param_1[9] == 0) {
FUN_00443090(*(int *)(param_1[7] + 0x4c) + 0x3c,(char *)param_1[0xd]);
}
FUN_004022e8((int *)param_1[0xd]);
param_1[0xd] = 0;
FUN_00443f7c(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00471648 file=? name=FUN_00471648 */
void __cdecl FUN_00471648(int param_1)
{
int iVar1;
int *piVar2;
iVar1 = *(int *)(*(int *)(param_1 + 0x1c) + 0x4c);
if (*(int *)(param_1 + 0x24) == 0) {
piVar2 = FUN_00442f6a(iVar1 + 0x3c,*(char **)(param_1 + 0x34),0);
}
else {
piVar2 = (int *)0x0;
}
FUN_0046fe70(*(int *)(param_1 + 0x1c),*(int *)(param_1 + 0x28),*(undefined4 *)(param_1 + 0x2c),
*(undefined4 *)(param_1 + 0x30),(int)piVar2);
if (*(int *)(param_1 + 0x24) == 0) {
FUN_00443090(iVar1 + 0x3c,*(char **)(param_1 + 0x34));
}
return;
}
/* @004716a8 file=? name=FUN_004716a8 */
undefined4 __cdecl FUN_004716a8(int param_1,int param_2,int param_3,undefined4 param_4,int param_5)
{
undefined4 *puVar1;
puVar1 = (undefined4 *)FUN_00402298(0x80);
if (puVar1 != (undefined4 *)0x0) {
FUN_00471710(puVar1,DAT_004f75e0,param_5,0,param_1,DAT_004f7624,param_2,param_3,
param_2 + DAT_004f7668,param_3 + DAT_004f766c,DAT_004f76ac,
s_BackgroundLine_004fae15);
}
return 1;
}
/* @00471710 file=? name=FUN_00471710 */
undefined4 * __cdecl
FUN_00471710(undefined4 *param_1,undefined4 param_2,int param_3,undefined4 param_4,int param_5,
undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9,
undefined4 param_10,undefined4 param_11,undefined4 param_12)
{
FUN_004440d4(param_1,param_2,param_3,param_4,param_5,param_12);
*param_1 = &PTR_FUN_004fba0c;
FUN_00407b9c(param_1 + 0x1c);
param_1[0x1c] = param_7;
param_1[0x1d] = param_8;
param_1[0x1e] = param_9;
param_1[0x1f] = param_10;
param_1[0x1b] = param_6;
(**(code **)(param_1[9] + 0x18))(param_1 + 9,param_11);
return param_1;
}
/* @00471778 file=? name=FUN_00471778 */
void __cdecl FUN_00471778(int param_1)
{
int iVar1;
iVar1 = param_1 + 0x24;
(**(code **)(*(int *)(param_1 + 0x24) + 0x24))
(iVar1,*(undefined4 *)(param_1 + 0x70),*(undefined4 *)(param_1 + 0x74));
if (*(int *)(param_1 + 0x6c) == 0) {
(**(code **)(*(int *)(param_1 + 0x24) + 0x30))
(iVar1,*(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x7c));
}
else {
(**(code **)(*(int *)(param_1 + 0x24) + 0x38))
(iVar1,*(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x7c));
}
return;
}
/* @004717c8 file=? name=FUN_004717c8 */
undefined4 __cdecl FUN_004717c8(int param_1,int param_2,int param_3,undefined4 param_4,int param_5)
{
undefined4 *puVar1;
puVar1 = (undefined4 *)FUN_00402298(0x7c);
if (puVar1 != (undefined4 *)0x0) {
FUN_00471820(puVar1,DAT_004f7a28,param_5,0,param_1,param_2,param_3,param_2 + DAT_004f7a6c,
param_3 + DAT_004f7a70,DAT_004f7ab0,s_BackgroundRect_004fae24);
}
return 1;
}
/* @00471820 file=? name=FUN_00471820 */
undefined4 * __cdecl
FUN_00471820(undefined4 *param_1,undefined4 param_2,int param_3,undefined4 param_4,int param_5,
undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9,
undefined4 param_10,undefined4 param_11)
{
FUN_004440d4(param_1,param_2,param_3,param_4,param_5,param_11);
*param_1 = &PTR_FUN_004fb9d8;
FUN_00407b9c(param_1 + 0x1b);
param_1[0x1b] = param_6;
param_1[0x1c] = param_7;
param_1[0x1d] = param_9;
param_1[0x1e] = param_8;
(**(code **)(param_1[9] + 0x18))(param_1 + 9,param_10);
return param_1;
}
/* @00471884 file=? name=FUN_00471884 */
void __cdecl FUN_00471884(int param_1)
{
(**(code **)(*(int *)(param_1 + 0x24) + 0x24))
(param_1 + 0x24,*(undefined4 *)(param_1 + 0x6c),*(undefined4 *)(param_1 + 0x70));
(**(code **)(*(int *)(param_1 + 0x24) + 0x40))
(param_1 + 0x24,*(undefined4 *)(param_1 + 0x74),*(undefined4 *)(param_1 + 0x78));
return;
}
/* @004718b8 file=? name=FUN_004718b8 */
undefined4 __cdecl FUN_004718b8(int param_1,int param_2,int param_3,undefined4 param_4,int param_5)
{
undefined4 *puVar1;
int *piVar2;
puVar1 = (undefined4 *)FUN_00402298(0x7c);
if (puVar1 == (undefined4 *)0x0) {
piVar2 = (int *)0x0;
}
else {
piVar2 = FUN_0047193c(puVar1,DAT_004f7e70,param_5,0,param_1,param_2,param_3,
param_2 + DAT_004f7eb4,param_3 + DAT_004f7eb8,DAT_004f7ef8,
s_BackgroundFilledRect_004fae33);
}
if (DAT_004f7e70 == -1) {
(**(code **)(*piVar2 + 0xc))(piVar2);
if (piVar2 != (int *)0x0) {
(**(code **)*piVar2)(piVar2,3);
}
}
return 1;
}
/* @0047193c file=? name=FUN_0047193c */
undefined4 * __cdecl
FUN_0047193c(undefined4 *param_1,undefined4 param_2,int param_3,undefined4 param_4,int param_5,
undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9,
undefined4 param_10,undefined4 param_11)
{
FUN_004440d4(param_1,param_2,param_3,param_4,param_5,param_11);
*param_1 = &PTR_FUN_004fb9a4;
FUN_00407b9c(param_1 + 0x1b);
param_1[0x1b] = param_6;
param_1[0x1c] = param_7;
param_1[0x1d] = param_9;
param_1[0x1e] = param_8;
(**(code **)(param_1[9] + 0x18))(param_1 + 9,param_10);
return param_1;
}
/* @004719a0 file=? name=FUN_004719a0 */
void __cdecl FUN_004719a0(int param_1)
{
(**(code **)(*(int *)(param_1 + 0x24) + 0x24))
(param_1 + 0x24,*(undefined4 *)(param_1 + 0x6c),*(undefined4 *)(param_1 + 0x70));
(**(code **)(*(int *)(param_1 + 0x24) + 0x48))
(param_1 + 0x24,*(undefined4 *)(param_1 + 0x74),*(undefined4 *)(param_1 + 0x78));
return;
}
/* @004719d4 file=? name=FUN_004719d4 */
undefined4 __cdecl
FUN_004719d4(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int param_5)
{
int iVar1;
undefined4 *puVar2;
int *piVar3;
int *piVar4;
undefined4 uVar5;
puVar2 = (undefined4 *)FUN_00402298(0x74);
if (puVar2 == (undefined4 *)0x0) {
piVar3 = (int *)0x0;
}
else {
piVar3 = FUN_00471abc(puVar2,DAT_004f82b8,param_5,0,param_1,param_2,param_3,&DAT_004f82fc,
DAT_004f8340,s_BackgroundPixelmap_004fae48);
}
iVar1 = *(int *)(param_5 + 0x4c);
piVar4 = FUN_00442d2b(iVar1 + 0x20,&DAT_004f82fc,0);
if (piVar4 == (int *)0x0) {
FUN_004dbb24(&DAT_00524e20,s_BackgroundPixelmap__Missing_imag_004fb24d,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,&DAT_004f82fc,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,&DAT_004fb271,(char *)0x0);
uVar5 = 0;
}
else {
FUN_00442e51(iVar1 + 0x20,&DAT_004f82fc);
if (DAT_004f82b8 == -1) {
(**(code **)(*piVar3 + 0xc))(piVar3);
if (piVar3 != (int *)0x0) {
(**(code **)*piVar3)(piVar3,3);
}
}
uVar5 = 1;
}
return uVar5;
}
/* @00471abc file=? name=FUN_00471abc */
undefined4 * __cdecl
FUN_00471abc(undefined4 *param_1,undefined4 param_2,int param_3,undefined4 param_4,int param_5,
undefined4 param_6,undefined4 param_7,char *param_8,undefined4 param_9,
undefined4 param_10)
{
undefined4 uVar1;
FUN_004440d4(param_1,param_2,param_3,param_4,param_5,param_10);
*param_1 = &PTR_FUN_004fb970;
uVar1 = FUN_004700ac(param_8);
param_1[0x1b] = uVar1;
param_1[0x1c] = param_9;
(**(code **)(param_1[9] + 0x10))(param_1 + 9,param_6,param_7);
FUN_00442d2b(*(int *)(param_3 + 0x4c) + 0x20,(char *)param_1[0x1b],0);
return param_1;
}
/* @00471b2c file=? name=FUN_00471b2c */
void __cdecl FUN_00471b2c(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004fb970;
FUN_00442e51(*(int *)(param_1[7] + 0x4c) + 0x20,(char *)param_1[0x1b]);
FUN_004022e8((int *)param_1[0x1b]);
param_1[0x1b] = 0;
FUN_0044ae0c(param_1 + 9,2);
FUN_00443f7c(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00471b8c file=? name=FUN_00471b8c */
void FUN_00471b8c(void)
{
FUN_00443fa8();
return;
}
/* @00471b9c file=? name=FUN_00471b9c */
void __cdecl FUN_00471b9c(int param_1)
{
int iVar1;
int *piVar2;
iVar1 = *(int *)(*(int *)(param_1 + 0x1c) + 0x4c);
piVar2 = FUN_00442d2b(iVar1 + 0x20,*(char **)(param_1 + 0x6c),0);
if (piVar2 != (int *)0x0) {
(**(code **)(*(int *)(param_1 + 0x24) + 0x24))(param_1 + 0x24,0,0);
(**(code **)(*(int *)(param_1 + 0x24) + 0x5c))
(param_1 + 0x24,*(undefined4 *)(param_1 + 0x70),0,piVar2,0,0,*piVar2 + -1,
piVar2[1] + -1);
}
FUN_00442e51(iVar1 + 0x20,*(char **)(param_1 + 0x6c));
return;
}
/* @00471c0c file=? name=FUN_00471c0c */
undefined4 __cdecl
FUN_00471c0c(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int param_5)
{
int iVar1;
undefined4 *puVar2;
int *piVar3;
undefined4 uVar4;
puVar2 = (undefined4 *)FUN_00402298(0x7c);
if (puVar2 == (undefined4 *)0x0) {
piVar3 = (int *)0x0;
}
else {
piVar3 = FUN_00471d00(puVar2,DAT_004f8700,param_5,0,param_1,param_2,param_3,&DAT_004f8744,
DAT_004f8788,DAT_004f87cc,DAT_004f8810,s_BackgroundBitmap_004fae5b);
}
iVar1 = *(int *)(param_5 + 0x4c);
puVar2 = FUN_00442aec(iVar1 + 4,&DAT_004f8744,0);
if (puVar2 == (undefined4 *)0x0) {
FUN_004dbb24(&DAT_00524e20,s_BackgroundBitmap__Missing_image___004fb27c,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,&DAT_004f8744,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,&DAT_004fb29e,(char *)0x0);
uVar4 = 0;
}
else {
FUN_00442c12(iVar1 + 4,&DAT_004f8744);
if (DAT_004f8700 == -1) {
(**(code **)(*piVar3 + 0xc))(piVar3);
if (piVar3 != (int *)0x0) {
(**(code **)*piVar3)(piVar3,3);
}
}
uVar4 = 1;
}
return uVar4;
}
/* @00471d00 file=? name=FUN_00471d00 */
undefined4 * __cdecl
FUN_00471d00(undefined4 *param_1,undefined4 param_2,int param_3,undefined4 param_4,int param_5,
undefined4 param_6,undefined4 param_7,char *param_8,undefined4 param_9,
undefined4 param_10,undefined4 param_11,undefined4 param_12)
{
undefined4 uVar1;
FUN_004440d4(param_1,param_2,param_3,param_4,param_5,param_12);
*param_1 = &PTR_FUN_004fb93c;
uVar1 = FUN_004700ac(param_8);
param_1[0x1b] = uVar1;
param_1[0x1e] = param_9;
param_1[0x1c] = param_10;
param_1[0x1d] = param_11;
(**(code **)(param_1[9] + 0x10))(param_1 + 9,param_6,param_7);
FUN_00442aec(*(int *)(param_3 + 0x4c) + 4,(char *)param_1[0x1b],0);
return param_1;
}
/* @00471d7c file=? name=FUN_00471d7c */
void __cdecl FUN_00471d7c(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004fb93c;
FUN_00442c12(*(int *)(param_1[7] + 0x4c) + 4,(char *)param_1[0x1b]);
FUN_004022e8((int *)param_1[0x1b]);
param_1[0x1b] = 0;
FUN_0044ae0c(param_1 + 9,2);
FUN_00443f7c(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00471ddc file=? name=FUN_00471ddc */
void FUN_00471ddc(void)
{
FUN_00443fa8();
return;
}
/* @00471dec file=? name=FUN_00471dec */
void __cdecl FUN_00471dec(int param_1)
{
int iVar1;
int iVar2;
undefined4 *puVar3;
iVar2 = *(int *)(*(int *)(param_1 + 0x1c) + 0x4c);
puVar3 = FUN_00442aec(iVar2 + 4,*(char **)(param_1 + 0x6c),0);
if (puVar3 != (undefined4 *)0x0) {
iVar1 = param_1 + 0x24;
(**(code **)(*(int *)(param_1 + 0x24) + 0x24))(iVar1,0,0);
(**(code **)(*(int *)(param_1 + 0x24) + 0x18))(iVar1,*(undefined4 *)(param_1 + 0x70));
if (*(int *)(param_1 + 0x78) == 0) {
(**(code **)(*(int *)(param_1 + 0x24) + 0x54))
(iVar1,0,puVar3,0,0,puVar3[3] + -1,puVar3[4] + -1);
}
else {
(**(code **)(*(int *)(param_1 + 0x24) + 0x58))
(iVar1,*(undefined4 *)(param_1 + 0x74),0,puVar3,0,0,puVar3[3] + -1,puVar3[4] + -1);
}
}
FUN_00442e51(iVar2 + 0x20,*(char **)(param_1 + 0x6c));
return;
}
/* @00471e9c file=? name=FUN_00471e9c */
bool __cdecl FUN_00471e9c(int param_1,int param_2,int param_3,undefined4 param_4,int param_5)
{
int iVar1;
undefined4 *puVar2;
puVar2 = (undefined4 *)FUN_00402298(0xa8);
if (puVar2 != (undefined4 *)0x0) {
FUN_00471f30(puVar2,DAT_004f8b48,DAT_004f8b8c,param_5,0,param_1,param_2,param_3,&DAT_004f8bd0,
DAT_004f8c14,DAT_004f8c58,s_RankAndScore_004fadf5);
}
iVar1 = *(int *)(param_5 + 0x4c) + 4;
puVar2 = FUN_00442aec(iVar1,&DAT_004f8bd0,0);
if (puVar2 != (undefined4 *)0x0) {
FUN_00442c12(iVar1,&DAT_004f8bd0);
}
return puVar2 != (undefined4 *)0x0;
}
/* @00471f30 file=? name=FUN_00471f30 */
undefined4 * __cdecl
FUN_00471f30(undefined4 *param_1,undefined4 param_2,undefined4 param_3,int param_4,
undefined4 param_5,int param_6,int param_7,int param_8,char *param_9,int param_10,
int param_11,undefined4 param_12)
{
int *piVar1;
FUN_00444818(param_1,param_2,param_3,param_4,param_5,param_6,param_12);
*param_1 = &PTR_FUN_004fb8f8;
piVar1 = (int *)FUN_00402298(0x44);
if (piVar1 == (int *)0x0) {
piVar1 = (int *)0x0;
}
else {
piVar1 = FUN_004700bc(piVar1,*(int *)(param_4 + 0x4c),2,2,param_9,1,0,param_11,param_10);
}
param_1[0x24] = piVar1;
piVar1 = (int *)FUN_00402298(0x44);
if (piVar1 == (int *)0x0) {
piVar1 = (int *)0x0;
}
else {
piVar1 = FUN_004700bc(piVar1,*(int *)(param_4 + 0x4c),0xc,2,param_9,8,2,param_11,param_10);
}
param_1[0x25] = piVar1;
(**(code **)(param_1[0x12] + 8))(param_1 + 0x12,param_7,param_8,param_7 + 0x40,param_8 + 0xd);
param_1[0x26] = 0;
param_1[0x28] = param_10;
param_1[0x29] = param_11;
return param_1;
}
/* @00472020 file=? name=FUN_00472020 */
void __cdecl FUN_00472020(int *param_1,byte param_2)
{
uint uVar1;
int *piVar2;
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004fb8f8;
if (param_1[0x26] != 0) {
uVar1 = FUN_004dcd94();
FUN_004dbb24(&DAT_00524e20,s__RankAndScore__I_think_my_score_i_004fb2ad,(char *)0x0);
piVar2 = FUN_004db78c(&DAT_00524e20,uVar1);
FUN_004dbb24(piVar2,&DAT_004fb2d1,(char *)0x0);
}
if ((int *)param_1[0x24] != (int *)0x0) {
FUN_0047018c((int *)param_1[0x24],3);
param_1[0x24] = 0;
}
if ((int *)param_1[0x25] != (int *)0x0) {
FUN_0047018c((int *)param_1[0x25],3);
param_1[0x25] = 0;
}
FUN_00444870(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @004720e0 file=? name=FUN_004720e0 */
void FUN_004720e0(void)
{
FUN_004448ac();
return;
}
/* @004720f0 file=? name=FUN_004720f0 */
void FUN_004720f0(void)
{
return;
}
/* @004720f8 file=? name=FUN_004720f8 */
void __cdecl FUN_004720f8(int param_1)
{
*(undefined4 *)(param_1 + 0x9c) = 0;
FUN_004703f4(*(int *)(param_1 + 0x90));
FUN_004703f4(*(int *)(param_1 + 0x94));
return;
}
/* @00472124 file=? name=FUN_00472124 */
void __cdecl FUN_00472124(int param_1)
{
FUN_00470758(*(int *)(param_1 + 0x90),(int *)(param_1 + 0x48));
FUN_00470758(*(int *)(param_1 + 0x94),(int *)(param_1 + 0x48));
FUN_004dbb24(&DAT_00524e20,s_Erasing_rank_and_score_004fb2d3,(char *)0x0);
FUN_004d9c38(&DAT_00524e20);
FUN_00444004();
return;
}
/* @0047217c file=? name=FUN_0047217c */
void __cdecl FUN_0047217c(int param_1,undefined4 param_2)
{
*(undefined4 *)(param_1 + 0x98) = param_2;
return;
}
/* @00472190 file=? name=FUN_00472190 */
void __cdecl FUN_00472190(int param_1)
{
int iVar1;
int iVar2;
uint uVar3;
uVar3 = (uint)(*(int *)(DAT_004efc94 + 0x88) == 5);
if ((uVar3 != *(uint *)(param_1 + 0x9c)) && (*(uint *)(param_1 + 0x9c) = uVar3, uVar3 == 1)) {
iVar1 = param_1 + 0x48;
(**(code **)(*(int *)(param_1 + 0x48) + 0x18))(iVar1,*(undefined4 *)(param_1 + 0xa4));
(**(code **)(*(int *)(param_1 + 0x48) + 0x24))(iVar1,1,1);
(**(code **)(*(int *)(param_1 + 0x48) + 0x48))(iVar1,0x3e,0xb);
(**(code **)(*(int *)(param_1 + 0x48) + 0x18))(iVar1,*(undefined4 *)(param_1 + 0xa0));
(**(code **)(*(int *)(param_1 + 0x48) + 0x24))(iVar1,0,0);
(**(code **)(*(int *)(param_1 + 0x48) + 0x40))(iVar1,0x3f,0xc);
(**(code **)(*(int *)(param_1 + 0x48) + 0x24))(iVar1,10,0);
(**(code **)(*(int *)(param_1 + 0x48) + 0x30))(iVar1,10,0xc);
}
if ((uVar3 == 1) && (*(int *)(param_1 + 0x98) != 0)) {
iVar1 = *(int *)(*(int *)(param_1 + 0x98) + 400);
iVar2 = FUN_004dcd94();
FUN_00470430(*(int **)(param_1 + 0x90),(int *)(param_1 + 0x48),
(float)(*(int *)(iVar1 + 0x1cc) + 1));
FUN_00470430(*(int **)(param_1 + 0x94),(int *)(param_1 + 0x48),(float)iVar2);
}
return;
}
/* @004722b0 file=? name=FUN_004722b0 */
undefined4 * __cdecl
FUN_004722b0(undefined4 *param_1,undefined4 param_2,undefined4 param_3,int param_4,
undefined4 param_5,int param_6,int param_7,int param_8,int param_9,int param_10,
undefined4 param_11,float param_12,float param_13,undefined4 param_14)
{
FUN_00444818(param_1,param_2,param_3,param_4,param_5,param_6,param_14);
*param_1 = &PTR_FUN_004fb8ac;
FUN_00407b9c(param_1 + 0x28);
param_1[0x25] = (param_9 - param_7) + -1;
param_1[0x26] = (param_10 - param_8) + -1;
param_1[0x27] = 0xfffffb2e;
param_1[0x28] = 1;
param_1[0x2a] = 0;
param_1[0x24] = param_11;
param_1[0x2c] = param_12;
param_1[0x2e] = param_13 - param_12;
(**(code **)(param_1[0x12] + 8))(param_1 + 0x12,param_7,param_8,param_9,param_10);
return param_1;
}
/* @00472364 file=? name=FUN_00472364 */
void __cdecl FUN_00472364(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004fb8ac;
FUN_00444870(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00472390 file=? name=FUN_00472390 */
void FUN_00472390(void)
{
FUN_004448ac();
return;
}
/* @004723a0 file=? name=FUN_004723a0 */
void __cdecl FUN_004723a0(int param_1,char *param_2)
{
char cVar1;
int *piVar2;
uint uVar3;
uint uVar4;
char *pcVar5;
char *pcVar6;
uint *puVar7;
char local_54 [80];
FUN_004dbb24(&DAT_00524e20,param_2,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_WipeGaugeScalar__004fb2eb,(char *)0x0);
uVar3 = 0xffffffff;
do {
pcVar5 = param_2;
if (uVar3 == 0) break;
uVar3 = uVar3 - 1;
pcVar5 = param_2 + 1;
cVar1 = *param_2;
param_2 = pcVar5;
} while (cVar1 != '\0');
uVar3 = ~uVar3;
pcVar5 = pcVar5 + -uVar3;
pcVar6 = local_54;
for (uVar4 = uVar3 >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {
*(undefined4 *)pcVar6 = *(undefined4 *)pcVar5;
pcVar5 = pcVar5 + 4;
pcVar6 = pcVar6 + 4;
}
for (uVar3 = uVar3 & 3; uVar3 != 0; uVar3 = uVar3 - 1) {
*pcVar6 = *pcVar5;
pcVar5 = pcVar5 + 1;
pcVar6 = pcVar6 + 1;
}
FUN_004d49b8(local_54,&DAT_004fb2fd);
puVar7 = (uint *)(param_1 + 0xa0);
FUN_004dbb24(&DAT_00524e20,local_54,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_previousSize___004fb301,(char *)0x0);
piVar2 = (int *)FUN_00407d78(&DAT_00524e20,puVar7);
FUN_004dbb24(piVar2,&DAT_004fb315,(char *)0x0);
FUN_004448bc(param_1,local_54);
return;
}
/* @0047246c file=? name=FUN_0047246c */
void __cdecl FUN_0047246c(int param_1)
{
*(undefined4 *)(param_1 + 0xbc) = 1;
return;
}
/* @00472480 file=? name=FUN_00472480 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
void __cdecl FUN_00472480(int *param_1)
{
bool bVar1;
int iVar2;
int iVar3;
int local_18;
int local_14;
int local_10;
int local_c;
float local_8;
FUN_00407b9c(&local_18);
if ((float)param_1[0x2d] < (float)param_1[0x2c]) {
param_1[0x2d] = param_1[0x2c];
}
param_1[0x2d] = (int)((float)param_1[0x2d] - (float)param_1[0x2c]);
if ((float)param_1[0x2e] < (float)param_1[0x2d]) {
param_1[0x2d] = param_1[0x2e];
}
local_8 = (float)param_1[0x2d] / (float)param_1[0x2e];
if (local_8 <= _DAT_00472a9c) {
if (local_8 < _DAT_00472aa0) {
local_8 = -1.0;
}
}
else {
local_8 = 1.0;
}
iVar3 = param_1[0x24];
if (iVar3 == 0) {
iVar3 = param_1[0x25];
iVar2 = FUN_004dcd94();
iVar3 = iVar3 - iVar2;
if (param_1[0x2f] == 0) {
local_18 = param_1[0x27];
if (local_18 < iVar3) {
local_10 = iVar3 + -1;
local_c = param_1[0x26];
local_14 = 0;
bVar1 = true;
if ((local_18 <= local_10) && (-1 < local_c)) {
bVar1 = false;
}
if (!bVar1) {
(**(code **)(*param_1 + 0x48))(param_1,&local_18);
}
param_1[0x27] = iVar3;
}
else if (iVar3 < param_1[0x27]) {
local_10 = param_1[0x27] + -1;
bVar1 = true;
local_c = param_1[0x26];
local_14 = 0;
if ((iVar3 <= local_10) && (-1 < local_c)) {
bVar1 = false;
}
if (!bVar1) {
local_18 = iVar3;
(**(code **)(*param_1 + 0x44))(param_1,&local_18);
}
param_1[0x27] = iVar3;
}
}
else {
param_1[0x2f] = 0;
local_10 = param_1[0x25];
bVar1 = true;
local_c = param_1[0x26];
local_14 = 0;
if ((iVar3 <= local_10) && (-1 < local_c)) {
bVar1 = false;
}
if (!bVar1) {
local_18 = iVar3;
(**(code **)(*param_1 + 0x44))(param_1,&local_18);
}
local_10 = iVar3 + -1;
local_18 = 0;
bVar1 = true;
if ((-1 < local_10) && (local_14 <= local_c)) {
bVar1 = false;
}
if (!bVar1) {
(**(code **)(*param_1 + 0x48))(param_1,&local_18);
}
param_1[0x27] = iVar3;
}
}
else if (iVar3 == 1) {
iVar3 = param_1[0x26];
iVar2 = FUN_004dcd94();
iVar3 = iVar3 - iVar2;
if (param_1[0x2f] == 0) {
local_14 = param_1[0x27];
if (local_14 < iVar3) {
local_10 = param_1[0x25];
local_c = iVar3 + 1;
local_18 = 0;
bVar1 = true;
if ((-1 < local_10) && (local_14 <= local_c)) {
bVar1 = false;
}
if (!bVar1) {
(**(code **)(*param_1 + 0x48))(param_1,&local_18);
}
param_1[0x27] = iVar3;
}
else if (iVar3 < param_1[0x27]) {
local_10 = param_1[0x25];
local_c = param_1[0x27] + 1;
bVar1 = true;
local_18 = 0;
if ((-1 < local_10) && (iVar3 <= local_c)) {
bVar1 = false;
}
if (!bVar1) {
local_14 = iVar3;
(**(code **)(*param_1 + 0x44))(param_1,&local_18);
}
param_1[0x27] = iVar3;
}
}
else {
param_1[0x2f] = 0;
local_10 = param_1[0x25];
bVar1 = true;
local_c = param_1[0x26];
local_18 = 0;
if ((-1 < local_10) && (iVar3 <= local_c)) {
bVar1 = false;
}
if (!bVar1) {
local_14 = iVar3;
(**(code **)(*param_1 + 0x44))(param_1,&local_18);
}
local_c = iVar3 + -1;
local_14 = 0;
bVar1 = true;
if ((local_18 <= local_10) && (-1 < local_c)) {
bVar1 = false;
}
if (!bVar1) {
(**(code **)(*param_1 + 0x48))(param_1,&local_18);
}
param_1[0x27] = iVar3;
}
}
else if (iVar3 == 2) {
iVar3 = FUN_004dcd94();
local_10 = iVar3;
if (param_1[0x2f] == 0) {
if (param_1[0x27] < iVar3) {
local_18 = param_1[0x27] + 1;
local_c = param_1[0x26];
local_14 = 0;
bVar1 = true;
if ((local_18 <= iVar3) && (-1 < local_c)) {
bVar1 = false;
}
if (!bVar1) {
(**(code **)(*param_1 + 0x44))(param_1,&local_18);
}
param_1[0x27] = iVar3;
}
else {
local_10 = param_1[0x27];
if (iVar3 < local_10) {
local_18 = iVar3 + 1;
local_c = param_1[0x26];
local_14 = 0;
bVar1 = true;
if ((local_18 <= local_10) && (-1 < local_c)) {
bVar1 = false;
}
if (!bVar1) {
(**(code **)(*param_1 + 0x48))(param_1,&local_18);
}
param_1[0x27] = iVar3;
}
}
}
else {
param_1[0x2f] = 0;
local_c = param_1[0x26];
local_18 = 0;
local_14 = 0;
bVar1 = true;
if ((-1 < iVar3) && (-1 < local_c)) {
bVar1 = false;
}
if (!bVar1) {
(**(code **)(*param_1 + 0x44))(param_1,&local_18);
}
local_10 = param_1[0x25];
local_18 = iVar3 + 1;
bVar1 = true;
if ((local_18 <= local_10) && (local_14 <= local_c)) {
bVar1 = false;
}
if (!bVar1) {
(**(code **)(*param_1 + 0x48))(param_1,&local_18);
}
param_1[0x27] = iVar3;
}
}
else if (iVar3 == 3) {
iVar3 = FUN_004dcd94();
local_c = iVar3;
if (param_1[0x2f] == 0) {
local_14 = param_1[0x27];
if (local_14 < iVar3) {
local_10 = param_1[0x25];
local_18 = 0;
bVar1 = true;
if ((-1 < local_10) && (local_14 <= iVar3)) {
bVar1 = false;
}
if (!bVar1) {
(**(code **)(*param_1 + 0x44))(param_1,&local_18);
}
param_1[0x27] = iVar3;
}
else {
local_c = param_1[0x27];
if (iVar3 < local_c) {
local_10 = param_1[0x25];
local_18 = 0;
bVar1 = true;
if ((-1 < local_10) && (iVar3 <= local_c)) {
bVar1 = false;
}
if (!bVar1) {
local_14 = iVar3;
(**(code **)(*param_1 + 0x48))(param_1,&local_18);
}
param_1[0x27] = iVar3;
}
}
}
else {
param_1[0x2f] = 0;
local_10 = param_1[0x25];
local_18 = 0;
local_14 = 0;
bVar1 = true;
if ((-1 < local_10) && (-1 < iVar3)) {
bVar1 = false;
}
if (!bVar1) {
(**(code **)(*param_1 + 0x44))(param_1,&local_18);
}
local_c = param_1[0x26];
local_14 = iVar3 + 1;
bVar1 = true;
if ((local_18 <= local_10) && (local_14 <= local_c)) {
bVar1 = false;
}
if (!bVar1) {
(**(code **)(*param_1 + 0x48))(param_1,&local_18);
}
param_1[0x27] = iVar3;
}
}
return;
}
/* @00472aa8 file=munga_l4/l4gauge.cpp name=FUN_00472aa8 */
void FUN_00472aa8(void)
{
FUN_0040385c(s_WipeGaugeScalar__DrawActive_is_n_004fb317,
s_d__tesla_bt_munga_l4_L4GAUGE_CPP_004fb345,0xcae);
return;
}
/* @00472ac4 file=munga_l4/l4gauge.cpp name=FUN_00472ac4 */
void FUN_00472ac4(void)
{
FUN_0040385c(s_WipeGaugeScalar__DrawInactive_is_004fb366,
s_d__tesla_bt_munga_l4_L4GAUGE_CPP_004fb396,0xcb6);
return;
}
/* @00472ae0 file=? name=FUN_00472ae0 */
undefined4 __cdecl FUN_00472ae0(int param_1,int param_2,int param_3,undefined4 param_4,int param_5)
{
int iVar1;
undefined4 uVar2;
int *piVar3;
iVar1 = FUN_00445034(&PTR_DAT_004f57b4,&DAT_004f90e4);
if (iVar1 < 0) {
uVar2 = 0;
}
else {
piVar3 = (int *)FUN_00402298(200);
if (piVar3 != (int *)0x0) {
FUN_00472b88(piVar3,DAT_004f8f90,DAT_004f8fd4,param_5,0,param_1,param_2,param_3,
param_2 + DAT_004f9018,param_3 + DAT_004f901c,DAT_004f905c,DAT_004f90a0,iVar1,
DAT_004f9128,DAT_004f916c,DAT_004f91b0,s_BarGraphSolidScalar_004fae7c);
}
uVar2 = 1;
}
return uVar2;
}
/* @00472b88 file=? name=FUN_00472b88 */
int * __cdecl
FUN_00472b88(int *param_1,undefined4 param_2,undefined4 param_3,int param_4,undefined4 param_5,
int param_6,int param_7,int param_8,int param_9,int param_10,int param_11,int param_12,
undefined4 param_13,float param_14,float param_15,int param_16,undefined4 param_17)
{
undefined4 *puVar1;
FUN_004722b0(param_1,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,param_10,
param_13,param_14,param_15,param_17);
*param_1 = (int)&PTR_FUN_004fb860;
param_1[0x30] = param_12;
param_1[0x31] = param_11;
if (param_16 != 0) {
puVar1 = (undefined4 *)FUN_00402298(0x18);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_00474855(puVar1,0,param_1 + 0x2d,param_16);
}
(**(code **)(*param_1 + 0x34))(param_1,puVar1);
}
return param_1;
}
/* @00472c24 file=? name=FUN_00472c24 */
void __cdecl FUN_00472c24(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004fb860;
FUN_00472364(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00472c50 file=? name=FUN_00472c50 */
void FUN_00472c50(void)
{
FUN_00472390();
return;
}
/* @00472c60 file=? name=FUN_00472c60 */
void __cdecl FUN_00472c60(int param_1,char *param_2)
{
char cVar1;
int *piVar2;
uint uVar3;
uint uVar4;
char *pcVar5;
char *pcVar6;
char local_54 [80];
FUN_004dbb24(&DAT_00524e20,param_2,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_BarGraphSolidScalar__004fb3c0,(char *)0x0);
uVar3 = 0xffffffff;
do {
pcVar5 = param_2;
if (uVar3 == 0) break;
uVar3 = uVar3 - 1;
pcVar5 = param_2 + 1;
cVar1 = *param_2;
param_2 = pcVar5;
} while (cVar1 != '\0');
uVar3 = ~uVar3;
pcVar5 = pcVar5 + -uVar3;
pcVar6 = local_54;
for (uVar4 = uVar3 >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {
*(undefined4 *)pcVar6 = *(undefined4 *)pcVar5;
pcVar5 = pcVar5 + 4;
pcVar6 = pcVar6 + 4;
}
for (uVar3 = uVar3 & 3; uVar3 != 0; uVar3 = uVar3 - 1) {
*pcVar6 = *pcVar5;
pcVar5 = pcVar5 + 1;
pcVar6 = pcVar6 + 1;
}
FUN_004d49b8(local_54,&DAT_004fb3d6);
uVar3 = *(uint *)(param_1 + 0xc4);
FUN_004dbb24(&DAT_00524e20,local_54,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_foregroundColor__004fb3da,(char *)0x0);
piVar2 = FUN_004db78c(&DAT_00524e20,uVar3);
FUN_004dbb24(piVar2,&DAT_004fb3eb,(char *)0x0);
uVar3 = *(uint *)(param_1 + 0xc0);
FUN_004dbb24(&DAT_00524e20,local_54,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_backgroundColor__004fb3ed,(char *)0x0);
piVar2 = FUN_004db78c(&DAT_00524e20,uVar3);
FUN_004dbb24(piVar2,&DAT_004fb3fe,(char *)0x0);
FUN_004723a0(param_1,local_54);
return;
}
/* @00472d78 file=? name=FUN_00472d78 */
void __cdecl FUN_00472d78(int param_1,undefined4 *param_2)
{
int iVar1;
iVar1 = param_1 + 0x48;
(**(code **)(*(int *)(param_1 + 0x48) + 0x18))(iVar1,*(undefined4 *)(param_1 + 0xc4));
(**(code **)(*(int *)(param_1 + 0x48) + 0x24))(iVar1,*param_2,param_2[1]);
(**(code **)(*(int *)(param_1 + 0x48) + 0x48))(iVar1,param_2[2],param_2[3]);
return;
}
/* @00472dc0 file=? name=FUN_00472dc0 */
void __cdecl FUN_00472dc0(int param_1,undefined4 *param_2)
{
int iVar1;
iVar1 = param_1 + 0x48;
(**(code **)(*(int *)(param_1 + 0x48) + 0x18))(iVar1,*(undefined4 *)(param_1 + 0xc0));
(**(code **)(*(int *)(param_1 + 0x48) + 0x24))(iVar1,*param_2,param_2[1]);
(**(code **)(*(int *)(param_1 + 0x48) + 0x48))(iVar1,param_2[2],param_2[3]);
return;
}
/* @00472e08 file=? name=FUN_00472e08 */
undefined4 __cdecl FUN_00472e08(int param_1,int param_2,int param_3,undefined4 param_4,int param_5)
{
int iVar1;
undefined4 uVar2;
int *piVar3;
undefined4 *puVar4;
iVar1 = FUN_00445034(&PTR_DAT_004f57b4,&DAT_004f9570);
if (iVar1 < 0) {
uVar2 = 0;
}
else {
piVar3 = (int *)FUN_00402298(0xcc);
if (piVar3 != (int *)0x0) {
FUN_00472ef0(piVar3,DAT_004f93d8,DAT_004f941c,param_5,0,param_1,param_2,param_3,
param_2 + DAT_004f9460,param_3 + DAT_004f9464,&DAT_004f94a4,DAT_004f94e8,
DAT_004f952c,iVar1,DAT_004f95b4,DAT_004f95f8,DAT_004f963c,
s_BarGraphBitMapScalar_004fae90);
}
iVar1 = *(int *)(param_5 + 0x4c) + 4;
puVar4 = FUN_00442aec(iVar1,&DAT_004f94a4,0);
if (puVar4 == (undefined4 *)0x0) {
uVar2 = 0;
}
else {
FUN_00442c12(iVar1,&DAT_004f94a4);
uVar2 = 1;
}
}
return uVar2;
}
/* @00472ef0 file=? name=FUN_00472ef0 */
int * __cdecl
FUN_00472ef0(int *param_1,undefined4 param_2,undefined4 param_3,int param_4,undefined4 param_5,
int param_6,int param_7,int param_8,int param_9,int param_10,char *param_11,int param_12
,int param_13,undefined4 param_14,float param_15,float param_16,int param_17,
undefined4 param_18)
{
int iVar1;
undefined4 *puVar2;
FUN_004722b0(param_1,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,param_10,
param_14,param_15,param_16,param_18);
*param_1 = (int)&PTR_FUN_004fb814;
iVar1 = FUN_004700ac(param_11);
param_1[0x30] = iVar1;
param_1[0x32] = param_13;
param_1[0x31] = param_12;
FUN_00442aec(*(int *)(param_4 + 0x4c) + 4,(char *)param_1[0x30],0);
if (param_17 != 0) {
puVar2 = (undefined4 *)FUN_00402298(0x18);
if (puVar2 == (undefined4 *)0x0) {
puVar2 = (undefined4 *)0x0;
}
else {
puVar2 = FUN_00474855(puVar2,0,param_1 + 0x2d,param_17);
}
(**(code **)(*param_1 + 0x34))(param_1,puVar2);
}
return param_1;
}
/* @00472fb4 file=? name=FUN_00472fb4 */
void __cdecl FUN_00472fb4(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004fb814;
FUN_00442c12(*(int *)(param_1[7] + 0x4c) + 4,(char *)param_1[0x30]);
FUN_004022e8((int *)param_1[0x30]);
param_1[0x30] = 0;
FUN_00472364(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00473010 file=? name=FUN_00473010 */
void FUN_00473010(void)
{
FUN_00472390();
return;
}
/* @00473020 file=? name=FUN_00473020 */
void __cdecl FUN_00473020(int param_1,char *param_2)
{
char cVar1;
int *piVar2;
uint uVar3;
uint uVar4;
char *pcVar5;
char *pcVar6;
char local_54 [80];
FUN_004dbb24(&DAT_00524e20,param_2,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_BarGraphBitMapScalar__004fb40a,(char *)0x0);
uVar3 = 0xffffffff;
do {
pcVar5 = param_2;
if (uVar3 == 0) break;
uVar3 = uVar3 - 1;
pcVar5 = param_2 + 1;
cVar1 = *param_2;
param_2 = pcVar5;
} while (cVar1 != '\0');
uVar3 = ~uVar3;
pcVar5 = pcVar5 + -uVar3;
pcVar6 = local_54;
for (uVar4 = uVar3 >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {
*(undefined4 *)pcVar6 = *(undefined4 *)pcVar5;
pcVar5 = pcVar5 + 4;
pcVar6 = pcVar6 + 4;
}
for (uVar3 = uVar3 & 3; uVar3 != 0; uVar3 = uVar3 - 1) {
*pcVar6 = *pcVar5;
pcVar5 = pcVar5 + 1;
pcVar6 = pcVar6 + 1;
}
FUN_004d49b8(local_54,&DAT_004fb421);
pcVar5 = *(char **)(param_1 + 0xc0);
FUN_004dbb24(&DAT_00524e20,local_54,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_bitMapName__004fb425,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,pcVar5,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,&DAT_004fb436,(char *)0x0);
uVar3 = *(uint *)(param_1 + 200);
FUN_004dbb24(&DAT_00524e20,local_54,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_backgroundColor__004fb438,(char *)0x0);
piVar2 = FUN_004db78c(&DAT_00524e20,uVar3);
FUN_004dbb24(piVar2,&DAT_004fb449,(char *)0x0);
FUN_004723a0(param_1,local_54);
return;
}
/* @0047313c file=? name=FUN_0047313c */
void __cdecl FUN_0047313c(int param_1,undefined4 *param_2)
{
int iVar1;
undefined4 *puVar2;
iVar1 = *(int *)(*(int *)(param_1 + 0x1c) + 0x4c);
puVar2 = FUN_00442aec(iVar1 + 4,*(char **)(param_1 + 0xc0),0);
if (puVar2 != (undefined4 *)0x0) {
(**(code **)(*(int *)(param_1 + 0x48) + 0x18))(param_1 + 0x48,*(undefined4 *)(param_1 + 0xc4));
(**(code **)(*(int *)(param_1 + 0x48) + 0x24))(param_1 + 0x48,*param_2,param_2[1]);
(**(code **)(*(int *)(param_1 + 0x48) + 0x58))
(param_1 + 0x48,*(undefined4 *)(param_1 + 200),0,puVar2,*param_2,param_2[1],param_2[2]
,param_2[3]);
}
FUN_00442c12(iVar1 + 4,*(char **)(param_1 + 0xc0));
return;
}
/* @004731d8 file=? name=FUN_004731d8 */
void __cdecl FUN_004731d8(int param_1,undefined4 *param_2)
{
int iVar1;
iVar1 = param_1 + 0x48;
(**(code **)(*(int *)(param_1 + 0x48) + 0x18))(iVar1,*(undefined4 *)(param_1 + 200));
(**(code **)(*(int *)(param_1 + 0x48) + 0x24))(iVar1,*param_2,param_2[1]);
(**(code **)(*(int *)(param_1 + 0x48) + 0x48))(iVar1,param_2[2],param_2[3]);
return;
}
/* @00473220 file=? name=FUN_00473220 */
undefined4 __cdecl FUN_00473220(int param_1,int param_2,int param_3,undefined4 param_4,int param_5)
{
int iVar1;
undefined4 uVar2;
int *piVar3;
undefined4 *puVar4;
iVar1 = FUN_00445034(&PTR_DAT_004f57b4,&DAT_004f9974);
if (iVar1 < 0) {
uVar2 = 0;
}
else {
piVar3 = (int *)FUN_00402298(200);
if (piVar3 != (int *)0x0) {
FUN_00473300(piVar3,DAT_004f9820,DAT_004f9864,param_5,0,param_1,param_2,param_3,
param_2 + DAT_004f98a8,param_3 + DAT_004f98ac,&DAT_004f98ec,DAT_004f9930,iVar1,
DAT_004f99b8,DAT_004f99fc,DAT_004f9a40,s_BarGraphPixelMapScalar_004faea5);
}
iVar1 = *(int *)(param_5 + 0x4c) + 4;
puVar4 = FUN_00442aec(iVar1,&DAT_004f98ec,0);
if (puVar4 == (undefined4 *)0x0) {
uVar2 = 0;
}
else {
FUN_00442c12(iVar1,&DAT_004f98ec);
uVar2 = 1;
}
}
return uVar2;
}
/* @00473300 file=? name=FUN_00473300 */
int * __cdecl
FUN_00473300(int *param_1,undefined4 param_2,undefined4 param_3,int param_4,undefined4 param_5,
int param_6,int param_7,int param_8,int param_9,int param_10,char *param_11,int param_12
,undefined4 param_13,float param_14,float param_15,int param_16,undefined4 param_17)
{
int iVar1;
undefined4 *puVar2;
FUN_004722b0(param_1,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,param_10,
param_13,param_14,param_15,param_17);
*param_1 = (int)&PTR_FUN_004fb7c8;
iVar1 = FUN_004700ac(param_11);
param_1[0x30] = iVar1;
param_1[0x31] = param_12;
FUN_00442d2b(*(int *)(param_4 + 0x4c) + 0x20,(char *)param_1[0x30],0);
if (param_16 != 0) {
puVar2 = (undefined4 *)FUN_00402298(0x18);
if (puVar2 == (undefined4 *)0x0) {
puVar2 = (undefined4 *)0x0;
}
else {
puVar2 = FUN_00474855(puVar2,0,param_1 + 0x2d,param_16);
}
(**(code **)(*param_1 + 0x34))(param_1,puVar2);
}
return param_1;
}
/* @004733b8 file=? name=FUN_004733b8 */
void __cdecl FUN_004733b8(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004fb7c8;
FUN_00442d2b(*(int *)(param_1[7] + 0x4c) + 0x20,(char *)param_1[0x30],0);
FUN_004022e8((int *)param_1[0x30]);
param_1[0x30] = 0;
FUN_00472364(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00473414 file=? name=FUN_00473414 */
void FUN_00473414(void)
{
FUN_00472390();
return;
}
/* @00473424 file=? name=FUN_00473424 */
void __cdecl FUN_00473424(int param_1,char *param_2)
{
char cVar1;
int *piVar2;
uint uVar3;
uint uVar4;
char *pcVar5;
char *pcVar6;
char local_54 [80];
FUN_004dbb24(&DAT_00524e20,param_2,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_BarGraphPixelMapScalar__004fb454,(char *)0x0);
uVar3 = 0xffffffff;
do {
pcVar5 = param_2;
if (uVar3 == 0) break;
uVar3 = uVar3 - 1;
pcVar5 = param_2 + 1;
cVar1 = *param_2;
param_2 = pcVar5;
} while (cVar1 != '\0');
uVar3 = ~uVar3;
pcVar5 = pcVar5 + -uVar3;
pcVar6 = local_54;
for (uVar4 = uVar3 >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {
*(undefined4 *)pcVar6 = *(undefined4 *)pcVar5;
pcVar5 = pcVar5 + 4;
pcVar6 = pcVar6 + 4;
}
for (uVar3 = uVar3 & 3; uVar3 != 0; uVar3 = uVar3 - 1) {
*pcVar6 = *pcVar5;
pcVar5 = pcVar5 + 1;
pcVar6 = pcVar6 + 1;
}
FUN_004d49b8(local_54,&DAT_004fb46d);
pcVar5 = *(char **)(param_1 + 0xc0);
FUN_004dbb24(&DAT_00524e20,local_54,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_pixelMapName__004fb471,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,pcVar5,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,&DAT_004fb482,(char *)0x0);
uVar3 = *(uint *)(param_1 + 0xc4);
FUN_004dbb24(&DAT_00524e20,local_54,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_backgroundColor__004fb484,(char *)0x0);
piVar2 = FUN_004db78c(&DAT_00524e20,uVar3);
FUN_004dbb24(piVar2,&DAT_004fb495,(char *)0x0);
FUN_004723a0(param_1,local_54);
return;
}
/* @00473540 file=? name=FUN_00473540 */
void __cdecl FUN_00473540(int param_1,undefined4 *param_2)
{
int iVar1;
int *piVar2;
iVar1 = *(int *)(*(int *)(param_1 + 0x1c) + 0x4c);
piVar2 = FUN_00442d2b(iVar1 + 0x20,*(char **)(param_1 + 0xc0),0);
if (piVar2 != (int *)0x0) {
(**(code **)(*(int *)(param_1 + 0x48) + 0x24))(param_1 + 0x48,*param_2,param_2[1]);
(**(code **)(*(int *)(param_1 + 0x48) + 0x5c))
(param_1 + 0x48,0,0,piVar2,*param_2,param_2[1],param_2[2],param_2[3]);
}
FUN_00442e51(iVar1 + 0x20,*(char **)(param_1 + 0xc0));
return;
}
/* @004735c4 file=? name=FUN_004735c4 */
void __cdecl FUN_004735c4(int param_1,undefined4 *param_2)
{
int iVar1;
int *piVar2;
iVar1 = *(int *)(*(int *)(param_1 + 0x1c) + 0x4c);
piVar2 = FUN_00442d2b(iVar1 + 0x20,*(char **)(param_1 + 0xc0),0);
if (piVar2 != (int *)0x0) {
(**(code **)(*(int *)(param_1 + 0x48) + 0x18))(param_1 + 0x48,*(undefined4 *)(param_1 + 0xc4));
(**(code **)(*(int *)(param_1 + 0x48) + 0x24))(param_1 + 0x48,*param_2,param_2[1]);
(**(code **)(*(int *)(param_1 + 0x48) + 0x60))
(param_1 + 0x48,0,piVar2,*param_2,param_2[1],param_2[2],param_2[3]);
}
FUN_00442e51(iVar1 + 0x20,*(char **)(param_1 + 0xc0));
return;
}
/* @00473658 file=? name=FUN_00473658 */
bool __cdecl
FUN_00473658(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int param_5)
{
int iVar1;
undefined4 *puVar2;
puVar2 = (undefined4 *)FUN_00402298(0xc0);
if (puVar2 != (undefined4 *)0x0) {
FUN_00473728(puVar2,DAT_004f9c68,DAT_004f9cac,param_5,0,param_1,param_2,param_3,&DAT_004f9cf0,
DAT_004f9d34,DAT_004f9d78,DAT_004f9dbc,DAT_004f9e00,DAT_004f9e44,DAT_004f9e88,
DAT_004f9ecc,DAT_004f9f10,DAT_004f9f54,DAT_004f9f98,DAT_004f9fdc,
s_ColorState_004faebc);
}
iVar1 = *(int *)(param_5 + 0x4c) + 4;
puVar2 = FUN_00442aec(iVar1,&DAT_004f9cf0,0);
if (puVar2 != (undefined4 *)0x0) {
FUN_00442c12(iVar1,&DAT_004f9cf0);
}
return puVar2 != (undefined4 *)0x0;
}
/* @00473728 file=? name=FUN_00473728 */
undefined4 * __cdecl
FUN_00473728(undefined4 *param_1,undefined4 param_2,undefined4 param_3,int param_4,
undefined4 param_5,int param_6,undefined4 param_7,undefined4 param_8,char *param_9,
undefined4 param_10,undefined4 param_11,undefined4 param_12,undefined4 param_13,
undefined4 param_14,undefined4 param_15,undefined4 param_16,undefined4 param_17,
undefined4 param_18,int param_19,int *param_20,undefined4 param_21)
{
char *pcVar1;
FUN_00444818(param_1,param_2,param_3,param_4,param_5,param_6,param_21);
*param_1 = &PTR_FUN_004fb784;
pcVar1 = (char *)FUN_004700ac(param_9);
param_1[0x2a] = pcVar1;
FUN_00442aec(*(int *)(param_4 + 0x4c) + 4,pcVar1,0);
(**(code **)(param_1[0x12] + 0x10))(param_1 + 0x12,param_7,param_8);
param_1[0x25] = param_10;
param_1[0x26] = param_12;
param_1[0x27] = param_14;
param_1[0x28] = param_16;
param_1[0x29] = param_18;
param_1[0x2c] = param_11;
param_1[0x2d] = param_13;
param_1[0x2e] = param_15;
param_1[0x2f] = param_17;
param_1[0x2b] = *(undefined4 *)(*param_20 + param_19 * 4);
return param_1;
}
/* @004737fc file=? name=FUN_004737fc */
void __cdecl FUN_004737fc(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004fb784;
FUN_00442c12(*(int *)(param_1[7] + 0x4c) + 4,(char *)param_1[0x2a]);
FUN_004022e8((int *)param_1[0x2a]);
param_1[0x2a] = 0;
FUN_00444870(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00473858 file=? name=FUN_00473858 */
undefined4 FUN_00473858(void)
{
return 1;
}
/* @00473864 file=? name=FUN_00473864 */
void FUN_00473864(void)
{
return;
}
/* @0047386c file=? name=FUN_0047386c */
void __cdecl FUN_0047386c(int param_1)
{
*(undefined4 *)(param_1 + 0x90) = 0xffffffff;
return;
}
/* @00473880 file=? name=FUN_00473880 */
void __cdecl FUN_00473880(int param_1)
{
int iVar1;
undefined4 *puVar2;
float *pfVar3;
int iVar4;
iVar1 = *(int *)(*(int *)(param_1 + 0x1c) + 0x4c);
puVar2 = FUN_00442aec(iVar1 + 4,*(char **)(param_1 + 0xa8),0);
if (puVar2 != (undefined4 *)0x0) {
pfVar3 = (float *)(param_1 + 0xb0);
iVar4 = 0;
do {
if (*(float *)(*(int *)(param_1 + 0xac) + 0x158) < *pfVar3) break;
iVar4 = iVar4 + 1;
pfVar3 = pfVar3 + 1;
} while (iVar4 < 4);
if (iVar4 != *(int *)(param_1 + 0x90)) {
*(int *)(param_1 + 0x90) = iVar4;
(**(code **)(*(int *)(param_1 + 0x48) + 0x18))
(param_1 + 0x48,*(undefined4 *)(param_1 + 0x94 + iVar4 * 4));
(**(code **)(*(int *)(param_1 + 0x48) + 0x54))
(param_1 + 0x48,0,puVar2,0,0,puVar2[3] + -1,puVar2[4] + -1);
}
}
FUN_00442c12(iVar1 + 4,*(char **)(param_1 + 0xa8));
return;
}
/* @0047393c file=? name=FUN_0047393c */
bool __cdecl
FUN_0047393c(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int param_5)
{
int iVar1;
int *piVar2;
undefined4 *puVar3;
piVar2 = (int *)FUN_00402298(0xa4);
if (piVar2 != (int *)0x0) {
FUN_004739d8(piVar2,DAT_004fa0b0,DAT_004fa0f4,param_5,0,param_1,param_2,param_3,&DAT_004fa138,
DAT_004fa17c,DAT_004fa1c0,DAT_004fa204,s_TwoState_004faec7);
}
iVar1 = *(int *)(param_5 + 0x4c) + 4;
puVar3 = FUN_00442aec(iVar1,&DAT_004fa138,0);
if (puVar3 != (undefined4 *)0x0) {
FUN_00442c12(iVar1,&DAT_004fa138);
}
return puVar3 != (undefined4 *)0x0;
}
/* @004739d8 file=? name=FUN_004739d8 */
int * __cdecl
FUN_004739d8(int *param_1,undefined4 param_2,undefined4 param_3,int param_4,undefined4 param_5,
int param_6,undefined4 param_7,undefined4 param_8,char *param_9,int param_10,
int param_11,undefined4 param_12,undefined4 param_13)
{
char *pcVar1;
undefined4 *puVar2;
FUN_00444818(param_1,param_2,param_3,param_4,param_5,param_6,param_13);
*param_1 = (int)&PTR_FUN_004fb740;
pcVar1 = (char *)FUN_004700ac(param_9);
param_1[0x28] = (int)pcVar1;
FUN_00442aec(*(int *)(param_4 + 0x4c) + 4,pcVar1,0);
(**(code **)(param_1[0x12] + 0x10))(param_1 + 0x12,param_7,param_8);
param_1[0x25] = param_10;
param_1[0x26] = param_11;
puVar2 = (undefined4 *)FUN_00402298(0x18);
if (puVar2 == (undefined4 *)0x0) {
puVar2 = (undefined4 *)0x0;
}
else {
puVar2 = FUN_004749de(puVar2,0,param_1 + 0x27,param_12);
}
(**(code **)(*param_1 + 0x34))(param_1,puVar2);
return param_1;
}
/* @00473a8c file=? name=FUN_00473a8c */
void __cdecl FUN_00473a8c(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004fb740;
FUN_00442c12(*(int *)(param_1[7] + 0x4c) + 4,(char *)param_1[0x28]);
FUN_004022e8((int *)param_1[0x28]);
param_1[0x28] = 0;
FUN_00444870(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00473ae8 file=? name=FUN_00473ae8 */
undefined4 FUN_00473ae8(void)
{
return 1;
}
/* @00473af4 file=? name=FUN_00473af4 */
void FUN_00473af4(void)
{
return;
}
/* @00473afc file=? name=FUN_00473afc */
void __cdecl FUN_00473afc(int param_1)
{
*(undefined4 *)(param_1 + 0x90) = 0xffffffff;
return;
}
/* @00473b10 file=? name=FUN_00473b10 */
void __cdecl FUN_00473b10(int param_1)
{
int iVar1;
undefined4 *puVar2;
uint uVar3;
iVar1 = *(int *)(*(int *)(param_1 + 0x1c) + 0x4c);
puVar2 = FUN_00442aec(iVar1 + 4,*(char **)(param_1 + 0xa0),0);
if ((puVar2 != (undefined4 *)0x0) &&
(uVar3 = (uint)(0 < *(int *)(param_1 + 0x9c)), uVar3 != *(uint *)(param_1 + 0x90))) {
*(uint *)(param_1 + 0x90) = uVar3;
(**(code **)(*(int *)(param_1 + 0x48) + 0x18))
(param_1 + 0x48,*(undefined4 *)(param_1 + 0x94 + uVar3 * 4));
(**(code **)(*(int *)(param_1 + 0x48) + 0x54))
(param_1 + 0x48,0,puVar2,0,0,puVar2[3] + -1,puVar2[4] + -1);
}
FUN_00442c12(iVar1 + 4,*(char **)(param_1 + 0xa0));
return;
}
/* @00473bac file=? name=FUN_00473bac */
undefined4 __cdecl FUN_00473bac(int param_1,int param_2,int param_3,undefined4 param_4,int param_5)
{
int iVar1;
undefined4 uVar2;
int *piVar3;
undefined4 *puVar4;
iVar1 = FUN_00445034(&PTR_s_unsigned_004f5784,&DAT_004fa64c);
if (iVar1 < 0) {
uVar2 = 0;
}
else {
piVar3 = (int *)FUN_00402298(0xac);
if (piVar3 != (int *)0x0) {
FUN_00473c94(piVar3,DAT_004fa4f8,DAT_004fa53c,param_5,0,param_1,param_2,param_3,
param_2 + DAT_004fa580,param_3 + DAT_004fa584,&DAT_004fa5c4,DAT_004fa608,iVar1,
DAT_004fa690,DAT_004fa6d4,DAT_004fa718,DAT_004fa75c,
s_NumericDisplayScalarTwoState_004faed0);
}
iVar1 = *(int *)(param_5 + 0x4c) + 4;
puVar4 = FUN_00442aec(iVar1,&DAT_004fa5c4,0);
if (puVar4 == (undefined4 *)0x0) {
uVar2 = 0;
}
else {
FUN_00442c12(iVar1,&DAT_004fa5c4);
uVar2 = 1;
}
}
return uVar2;
}
/* @00473c94 file=? name=FUN_00473c94 */
int * __cdecl
FUN_00473c94(int *param_1,undefined4 param_2,undefined4 param_3,int param_4,undefined4 param_5,
int param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9,undefined4 param_10
,char *param_11,uint param_12,int param_13,int param_14,int param_15,undefined4 param_16
,undefined4 param_17,undefined4 param_18)
{
int *piVar1;
undefined4 *puVar2;
int iVar3;
FUN_00444818(param_1,param_2,param_3,param_4,param_5,param_6,param_18);
*param_1 = (int)&PTR_FUN_004fb6fc;
piVar1 = (int *)FUN_00402298(0x44);
if (piVar1 == (int *)0x0) {
piVar1 = (int *)0x0;
}
else {
piVar1 = FUN_004700bc(piVar1,*(int *)(param_4 + 0x4c),0,0,param_11,param_12,param_13,param_14,
param_15);
}
param_1[0x24] = (int)piVar1;
(**(code **)(param_1[0x12] + 8))(param_1 + 0x12,param_7,param_8,param_9,param_10);
param_1[0x27] = param_14;
param_1[0x28] = param_15;
puVar2 = (undefined4 *)FUN_00402298(0x18);
if (puVar2 == (undefined4 *)0x0) {
puVar2 = (undefined4 *)0x0;
}
else {
puVar2 = FUN_00474855(puVar2,0,param_1 + 0x29,param_16);
}
(**(code **)(*param_1 + 0x34))(param_1,puVar2);
puVar2 = (undefined4 *)FUN_00402298(0x18);
if (puVar2 == (undefined4 *)0x0) {
puVar2 = (undefined4 *)0x0;
}
else {
puVar2 = FUN_004749de(puVar2,0,param_1 + 0x2a,param_17);
}
(**(code **)(*param_1 + 0x34))(param_1,puVar2);
iVar3 = FUN_004dcd94();
param_1[0x26] = iVar3;
return param_1;
}
/* @00473dac file=? name=FUN_00473dac */
void __cdecl FUN_00473dac(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004fb6fc;
if ((int *)param_1[0x24] != (int *)0x0) {
FUN_0047018c((int *)param_1[0x24],3);
param_1[0x24] = 0;
}
FUN_00444870(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00473df8 file=? name=FUN_00473df8 */
void FUN_00473df8(void)
{
FUN_004448ac();
return;
}
/* @00473e08 file=? name=FUN_00473e08 */
void __cdecl FUN_00473e08(int param_1,char *param_2)
{
char cVar1;
uint uVar2;
uint uVar3;
char *pcVar4;
char *pcVar5;
char local_54 [80];
FUN_004dbb24(&DAT_00524e20,param_2,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_NumericDisplayScalarTwoState__004fb4c2,(char *)0x0);
uVar2 = 0xffffffff;
do {
pcVar4 = param_2;
if (uVar2 == 0) break;
uVar2 = uVar2 - 1;
pcVar4 = param_2 + 1;
cVar1 = *param_2;
param_2 = pcVar4;
} while (cVar1 != '\0');
uVar2 = ~uVar2;
pcVar4 = pcVar4 + -uVar2;
pcVar5 = local_54;
for (uVar3 = uVar2 >> 2; uVar3 != 0; uVar3 = uVar3 - 1) {
*(undefined4 *)pcVar5 = *(undefined4 *)pcVar4;
pcVar4 = pcVar4 + 4;
pcVar5 = pcVar5 + 4;
}
for (uVar2 = uVar2 & 3; uVar2 != 0; uVar2 = uVar2 - 1) {
*pcVar5 = *pcVar4;
pcVar4 = pcVar4 + 1;
pcVar5 = pcVar5 + 1;
}
FUN_004d49b8(local_54,&DAT_004fb4e1);
FUN_004448bc(param_1,local_54);
FUN_004701d4(*(int *)(param_1 + 0x90),local_54);
return;
}
/* @00473e9c file=? name=FUN_00473e9c */
void __cdecl FUN_00473e9c(int param_1)
{
*(undefined4 *)(param_1 + 0x94) = 0xffffffff;
FUN_004703f4(*(int *)(param_1 + 0x90));
return;
}
/* @00473ebc file=? name=FUN_00473ebc */
void __cdecl FUN_00473ebc(int param_1)
{
undefined4 uVar1;
uint uVar2;
uVar2 = (uint)(0 < *(int *)(param_1 + 0xa8));
if ((uVar2 != *(uint *)(param_1 + 0x94)) ||
((float)*(int *)(param_1 + 0x98) != *(float *)(param_1 + 0xa4))) {
*(uint *)(param_1 + 0x94) = uVar2;
uVar1 = FUN_004dcd94();
*(undefined4 *)(param_1 + 0x98) = uVar1;
if (0 < *(int *)(param_1 + 0xa8)) {
FUN_00470430(*(int **)(param_1 + 0x90),(int *)(param_1 + 0x48),*(float *)(param_1 + 0xa4));
return;
}
FUN_00470758(*(int *)(param_1 + 0x90),(int *)(param_1 + 0x48));
}
return;
}
/* @00473f44 file=? name=FUN_00473f44 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
undefined4 * __cdecl
FUN_00473f44(undefined4 *param_1,undefined4 param_2,undefined4 param_3,int param_4,
undefined4 param_5,int param_6,undefined4 param_7,undefined4 param_8,float param_9,
float param_10,float param_11,float param_12,float param_13,float param_14,int param_15,
undefined4 param_16,undefined4 param_17,undefined4 param_18,undefined4 param_19)
{
float local_8;
FUN_00444818(param_1,param_2,param_3,param_4,param_5,param_6,param_19);
*param_1 = &PTR_FUN_004fb6b8;
param_1[0x24] = param_16;
param_1[0x25] = param_17;
param_1[0x26] = param_15;
param_1[0x2a] = (float)(_DAT_00474084 * (float10)param_13 * (float10)_DAT_0047407c);
param_1[0x2c] = param_9;
param_1[0x2d] = param_10;
param_1[0x28] = param_18;
if ((int)param_1[0x26] < 0) {
param_1[0x26] = -param_1[0x26];
}
local_8 = (float)(_DAT_00474084 * (float10)param_14 * (float10)_DAT_0047407c -
(float10)(float)param_1[0x2a]);
if (param_15 < 1) {
if (_DAT_00474090 < local_8) {
local_8 = local_8 - (float)_DAT_0047407c;
}
}
else if (local_8 < _DAT_00474090) {
local_8 = local_8 + (float)_DAT_0047407c;
}
param_1[0x2b] = local_8 / (float)(int)param_1[0x26];
param_1[0x2e] = (param_11 - param_9) / (float)(int)param_1[0x26];
param_1[0x2f] = (param_12 - param_10) / (float)(int)param_1[0x26];
(**(code **)(param_1[0x12] + 0x10))(param_1 + 0x12,param_7,param_8);
return param_1;
}
/* @00474094 file=? name=FUN_00474094 */
void __cdecl FUN_00474094(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004fb6b8;
FUN_00444870(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @004740c0 file=? name=FUN_004740c0 */
undefined4 FUN_004740c0(void)
{
return 1;
}
/* @004740cc file=? name=FUN_004740cc */
void __cdecl FUN_004740cc(int param_1)
{
uint uVar1;
float fVar2;
int *piVar3;
FUN_004dbb24(&DAT_00524e20,s_SegmentArc_004fb4e5,(char *)0x0);
uVar1 = *(uint *)(param_1 + 0x90);
FUN_004dbb24(&DAT_00524e20,s_backgroundColor___004fb4f1,(char *)0x0);
piVar3 = FUN_004db78c(&DAT_00524e20,uVar1);
FUN_004dbb24(piVar3,&DAT_004fb508,(char *)0x0);
uVar1 = *(uint *)(param_1 + 0x94);
FUN_004dbb24(&DAT_00524e20,s_foregroundColor___004fb50a,(char *)0x0);
piVar3 = FUN_004db78c(&DAT_00524e20,uVar1);
FUN_004dbb24(piVar3,&DAT_004fb521,(char *)0x0);
uVar1 = *(uint *)(param_1 + 0x98);
FUN_004dbb24(&DAT_00524e20,s_numberOfSegments___004fb523,(char *)0x0);
piVar3 = FUN_004db78c(&DAT_00524e20,uVar1);
FUN_004dbb24(piVar3,&DAT_004fb53a,(char *)0x0);
fVar2 = *(float *)(param_1 + 0xa8);
FUN_004dbb24(&DAT_00524e20,s_startAngle___004fb53c,(char *)0x0);
piVar3 = FUN_004db634(&DAT_00524e20,(float10)fVar2);
FUN_004dbb24(piVar3,&DAT_004fb553,(char *)0x0);
fVar2 = *(float *)(param_1 + 0xac);
FUN_004dbb24(&DAT_00524e20,s_deltaAngle___004fb555,(char *)0x0);
piVar3 = FUN_004db634(&DAT_00524e20,(float10)fVar2);
FUN_004dbb24(piVar3,&DAT_004fb56c,(char *)0x0);
fVar2 = *(float *)(param_1 + 0xb8);
FUN_004dbb24(&DAT_00524e20,s_deltaInnerRadius___004fb56e,(char *)0x0);
piVar3 = FUN_004db634(&DAT_00524e20,(float10)fVar2);
FUN_004dbb24(piVar3,&DAT_004fb585,(char *)0x0);
fVar2 = *(float *)(param_1 + 0xbc);
FUN_004dbb24(&DAT_00524e20,s_deltaOuterRadius___004fb587,(char *)0x0);
piVar3 = FUN_004db634(&DAT_00524e20,(float10)fVar2);
FUN_004dbb24(piVar3,&DAT_004fb59e,(char *)0x0);
uVar1 = *(uint *)(param_1 + 0x9c);
FUN_004dbb24(&DAT_00524e20,s_previousSegment___004fb5a0,(char *)0x0);
piVar3 = FUN_004db78c(&DAT_00524e20,uVar1);
FUN_004dbb24(piVar3,&DAT_004fb5b7,(char *)0x0);
return;
}
/* @004742f0 file=? name=FUN_004742f0 */
void __cdecl FUN_004742f0(int param_1)
{
*(undefined4 *)(param_1 + 0x9c) = 0;
return;
}
/* @00474300 file=? name=FUN_00474300 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
void __cdecl FUN_00474300(int param_1)
{
float fVar1;
int iVar2;
undefined4 uVar3;
int iVar4;
undefined4 local_18;
if (_DAT_00474544 <= *(float *)(param_1 + 0xa4)) {
if (_DAT_00474548 < *(float *)(param_1 + 0xa4)) {
*(undefined4 *)(param_1 + 0xa4) = 0x3f800000;
}
}
else {
*(undefined4 *)(param_1 + 0xa4) = 0;
}
iVar2 = FUN_004dcd94();
if (iVar2 != *(int *)(param_1 + 0x9c)) {
if (*(int *)(param_1 + 0x9c) < iVar2) {
(**(code **)(*(int *)(param_1 + 0x48) + 0x18))(param_1 + 0x48,*(undefined4 *)(param_1 + 0x94))
;
iVar4 = iVar2 - *(int *)(param_1 + 0x9c);
local_18 = (float)*(int *)(param_1 + 0x9c) * *(float *)(param_1 + 0xac) +
*(float *)(param_1 + 0xa8);
}
else {
(**(code **)(*(int *)(param_1 + 0x48) + 0x18))(param_1 + 0x48,*(undefined4 *)(param_1 + 0x90))
;
iVar4 = *(int *)(param_1 + 0x9c) - iVar2;
local_18 = (float)iVar2 * *(float *)(param_1 + 0xac) + *(float *)(param_1 + 0xa8);
}
fVar1 = *(float *)(param_1 + 0xac);
for (; -1 < iVar4; iVar4 = iVar4 + -1) {
FUN_004dd0f4(SUB84((double)local_18,0),(int)((ulonglong)(double)local_18 >> 0x20));
FUN_004dc9b4(SUB84((double)local_18,0),(int)((ulonglong)(double)local_18 >> 0x20));
FUN_004dcd94();
uVar3 = FUN_004dcd94();
(**(code **)(*(int *)(param_1 + 0x48) + 0x24))(param_1 + 0x48,uVar3);
if (*(int *)(param_1 + 0xa0) == 0) {
FUN_004dcd94();
uVar3 = FUN_004dcd94();
(**(code **)(*(int *)(param_1 + 0x48) + 0x30))(param_1 + 0x48,uVar3);
}
else {
FUN_004dcd94();
uVar3 = FUN_004dcd94();
(**(code **)(*(int *)(param_1 + 0x48) + 0x38))(param_1 + 0x48,uVar3);
}
local_18 = fVar1 + local_18;
}
*(int *)(param_1 + 0x9c) = iVar2;
}
return;
}
/* @00474550 file=? name=FUN_00474550 */
undefined4 __cdecl
FUN_00474550(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int param_5)
{
int *piVar1;
piVar1 = (int *)FUN_00402298(0xc0);
if (piVar1 != (int *)0x0) {
FUN_004745e0(piVar1,DAT_004fa940,DAT_004fa984,param_5,0,param_1,param_2,param_3,DAT_004fa9c8,
DAT_004faa0c,DAT_004faa50,DAT_004faa94,DAT_004faad8,DAT_004fab1c,DAT_004fab60,
DAT_004faba4,DAT_004fabe8,DAT_004fac2c,1,s_SegmentArcNormalized_004faef8);
}
return 1;
}
/* @004745e0 file=? name=FUN_004745e0 */
int * __cdecl
FUN_004745e0(int *param_1,undefined4 param_2,undefined4 param_3,int param_4,undefined4 param_5,
int param_6,undefined4 param_7,undefined4 param_8,float param_9,float param_10,
float param_11,float param_12,float param_13,float param_14,int param_15,
undefined4 param_16,undefined4 param_17,undefined4 param_18,undefined4 param_19,
undefined4 param_20)
{
undefined4 *puVar1;
FUN_00473f44(param_1,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,param_10,
param_11,param_12,param_13,param_14,param_15,param_16,param_17,param_19,param_20);
*param_1 = (int)&PTR_FUN_004fb674;
puVar1 = (undefined4 *)FUN_00402298(0x18);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_00474855(puVar1,0,param_1 + 0x29,param_18);
}
(**(code **)(*param_1 + 0x34))(param_1,puVar1);
return param_1;
}
/* @00474855 file=? name=FUN_00474855 */
undefined4 * __cdecl
FUN_00474855(undefined4 *param_1,undefined4 param_2,undefined4 *param_3,undefined4 param_4)
{
FUN_00444124(param_1,param_2);
*param_1 = &PTR_FUN_004fb668;
param_1[4] = param_4;
param_1[5] = param_3;
*param_3 = *(undefined4 *)param_1[4];
return param_1;
}
/* @00474887 file=? name=FUN_00474887 */
void __cdecl FUN_00474887(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004fb668;
FUN_00444148(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @004748b3 file=? name=FUN_004748b3 */
void __cdecl FUN_004748b3(int param_1)
{
**(undefined4 **)(param_1 + 0x14) = **(undefined4 **)(param_1 + 0x10);
return;
}
/* @004748c5 file=? name=FUN_004748c5 */
void __cdecl FUN_004748c5(int param_1,char *param_2)
{
float fVar1;
int *piVar2;
undefined8 uVar3;
undefined2 uVar4;
undefined2 uVar5;
FUN_004dbb24(&DAT_00524e20,param_2,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_GaugeConnectionDirectOf__004fb5c4,(char *)0x0);
fVar1 = **(float **)(param_1 + 0x10);
uVar4 = (undefined2)*(undefined4 *)(param_1 + 0x10);
uVar5 = (undefined2)((uint)*(undefined4 *)(param_1 + 0x10) >> 0x10);
FUN_004dbb24(&DAT_00524e20,param_2,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s____dataSource_at_004fb5de,(char *)0x0);
uVar3 = FUN_004dbd4c(&DAT_00524e20,CONCAT22(uVar5,uVar4));
FUN_004dbb24((int *)uVar3,&DAT_004fb5f4,(char *)0x0);
piVar2 = FUN_004db634((int *)uVar3,(float10)fVar1);
FUN_004dbb24(piVar2,&DAT_004fb5f6,(char *)0x0);
uVar4 = (undefined2)*(undefined4 *)(param_1 + 0x10);
uVar5 = (undefined2)((uint)*(undefined4 *)(param_1 + 0x10) >> 0x10);
FUN_004dbb24(&DAT_00524e20,param_2,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s____dataDestination_at_004fb5f8,(char *)0x0);
uVar3 = FUN_004dbd4c(&DAT_00524e20,CONCAT22(uVar5,uVar4));
FUN_004dbb24((int *)uVar3,&DAT_004fb60e,(char *)0x0);
FUN_004d9c70((int *)uVar3);
FUN_0044419c(param_1,param_2);
return;
}
/* @004749cf file=? name=FUN_004749cf */
void FUN_004749cf(void)
{
FUN_00415f1c();
return;
}
/* @004749de file=? name=FUN_004749de */
undefined4 * __cdecl
FUN_004749de(undefined4 *param_1,undefined4 param_2,undefined4 *param_3,undefined4 param_4)
{
FUN_00444124(param_1,param_2);
*param_1 = &PTR_FUN_004fb65c;
param_1[4] = param_4;
param_1[5] = param_3;
*param_3 = *(undefined4 *)param_1[4];
return param_1;
}
/* @00474a10 file=? name=FUN_00474a10 */
void __cdecl FUN_00474a10(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004fb65c;
FUN_00444148(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00474a3c file=? name=FUN_00474a3c */
void __cdecl FUN_00474a3c(int param_1)
{
**(undefined4 **)(param_1 + 0x14) = **(undefined4 **)(param_1 + 0x10);
return;
}
/* @00474a4e file=? name=FUN_00474a4e */
void __cdecl FUN_00474a4e(int param_1,char *param_2)
{
int *piVar1;
undefined8 uVar2;
uint uVar3;
uint uVar4;
FUN_004dbb24(&DAT_00524e20,param_2,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_GaugeConnectionDirectOf__004fb610,(char *)0x0);
uVar4 = **(uint **)(param_1 + 0x10);
uVar3 = *(uint *)(param_1 + 0x10);
FUN_004dbb24(&DAT_00524e20,param_2,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s____dataSource_at_004fb62a,(char *)0x0);
uVar2 = FUN_004dbd4c(&DAT_00524e20,uVar3);
FUN_004dbb24((int *)uVar2,&DAT_004fb640,(char *)0x0);
piVar1 = FUN_004db78c((int *)uVar2,uVar4);
FUN_004dbb24(piVar1,&DAT_004fb642,(char *)0x0);
uVar4 = *(uint *)(param_1 + 0x10);
FUN_004dbb24(&DAT_00524e20,param_2,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s____dataDestination_at_004fb644,(char *)0x0);
uVar2 = FUN_004dbd4c(&DAT_00524e20,uVar4);
FUN_004dbb24((int *)uVar2,&DAT_004fb65a,(char *)0x0);
FUN_004d9c70((int *)uVar2);
FUN_0044419c(param_1,param_2);
return;
}
/* @00474b53 file=? name=FUN_00474b53 */
void FUN_00474b53(void)
{
FUN_00415f1c();
return;
}
/* @00474b62 file=? name=FUN_00474b62 */
void __cdecl FUN_00474b62(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
FUN_00474094(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00474b88 file=? name=FUN_00474b88 */
void __cdecl FUN_00474b88(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
FUN_0044ae0c(param_1 + 9,2);
FUN_00443f7c(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00474bbc file=? name=FUN_00474bbc */
void __cdecl FUN_00474bbc(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
FUN_0044ae0c(param_1 + 9,2);
FUN_00443f7c(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00474bf0 file=? name=FUN_00474bf0 */
void __cdecl FUN_00474bf0(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
FUN_0044ae0c(param_1 + 9,2);
FUN_00443f7c(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00474c24 file=? name=FUN_00474c24 */
void __cdecl FUN_00474c24(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
FUN_0047094c(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00474c4c file=? name=FUN_00474c4c */
undefined4 * __cdecl FUN_00474c4c(undefined4 *param_1,undefined4 param_2)
{
undefined4 uVar1;
int iVar2;
FUN_00444a7c(param_1);
*param_1 = &PTR_FUN_004fbbf8;
param_1[0xe] = param_2;
uVar1 = FUN_004022b0(0x100);
param_1[0xf] = uVar1;
uVar1 = FUN_004022b0(0x100);
param_1[0x10] = uVar1;
iVar2 = 0;
do {
*(undefined4 *)(param_1[0xf] + iVar2 * 4) = 0;
iVar2 = iVar2 + 1;
} while (iVar2 < 0x40);
return param_1;
}
/* @00474c98 file=? name=FUN_00474c98 */
void __cdecl FUN_00474c98(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004fbbf8;
FUN_004022e8((int *)param_1[0xf]);
param_1[0xf] = 0;
FUN_004022e8((int *)param_1[0x10]);
param_1[0x10] = 0;
FUN_00444ac0(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00474ce4 file=? name=FUN_00474ce4 */
void FUN_00474ce4(void)
{
FUN_00444b14();
return;
}
/* @00474cf4 file=? name=FUN_00474cf4 */
int __cdecl FUN_00474cf4(int param_1,uint param_2)
{
int iVar1;
int iVar2;
bool bVar3;
undefined8 uVar4;
bVar3 = param_2 != *(uint *)(param_1 + 4);
if (bVar3) {
iVar1 = 0;
do {
*(undefined4 *)(*(int *)(param_1 + 0x40) + iVar1 * 4) = 0;
iVar1 = iVar1 + 1;
} while (iVar1 < 0x40);
}
iVar1 = FUN_00444b20(param_1,param_2);
if (bVar3) {
iVar2 = 0;
do {
iVar1 = *(int *)(param_1 + 0x40);
if (*(int *)(iVar1 + iVar2 * 4) == 0) {
uVar4 = FUN_00474d54(param_1,iVar2,0);
iVar1 = (int)uVar4;
}
iVar2 = iVar2 + 1;
} while (iVar2 < 0x40);
}
return iVar1;
}
/* @00474d54 file=? name=FUN_00474d54 */
undefined8 __cdecl FUN_00474d54(int param_1,int param_2,int param_3)
{
undefined8 uVar1;
uVar1 = CONCAT44(param_2,param_1);
if (param_3 != *(int *)(*(int *)(param_1 + 0x3c) + param_2 * 4)) {
*(int *)(*(int *)(param_1 + 0x3c) + param_2 * 4) = param_3;
uVar1 = FUN_00476568(*(int *)(param_1 + 0x38),param_2,(char)param_3);
}
return uVar1;
}
/* @00474d80 file=? name=FUN_00474d80 */
int * __cdecl FUN_00474d80(int *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)
{
FUN_00444dbc(param_1,param_2,param_3,param_4);
*param_1 = (int)&PTR_FUN_004fbbe0;
param_1[10] = 1;
param_1[8] = 0;
param_1[9] = 0;
(**(code **)(*param_1 + 0xc))(param_1,2);
return param_1;
}
/* @00474dc4 file=? name=FUN_00474dc4 */
void __cdecl FUN_00474dc4(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004fbbe0;
(**(code **)(*param_1 + 0xc))(param_1,0);
FUN_00444e04(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00474dfc file=? name=FUN_00474dfc */
void FUN_00474dfc(void)
{
FUN_00444e30();
return;
}
/* @00474e0c file=? name=FUN_00474e0c */
void __cdecl FUN_00474e0c(int param_1,undefined4 param_2)
{
*(undefined4 *)(param_1 + 0x28) = param_2;
return;
}
/* @00474e1c file=? name=FUN_00474e1c */
void __cdecl FUN_00474e1c(int *param_1,int param_2)
{
int iVar1;
iVar1 = param_1[3];
if ((-1 < iVar1) && (iVar1 < 0x40)) {
*(undefined4 *)(*(int *)(param_1[6] + 0x40) + iVar1 * 4) = 1;
}
if (param_1[10] == 0) {
if (param_2 != 0) {
(**(code **)(*param_1 + 0x14))(param_1);
}
}
else {
iVar1 = param_1[8];
if (iVar1 != param_1[9]) {
param_1[9] = iVar1;
if (0 < iVar1) {
(**(code **)(*param_1 + 0xc))(param_1,1);
return;
}
(**(code **)(*param_1 + 0xc))(param_1,2);
return;
}
if (param_2 != 0) {
(**(code **)(*param_1 + 0x14))(param_1);
return;
}
}
return;
}
/* @00474e94 file=? name=FUN_00474e94 */
undefined8 __cdecl FUN_00474e94(int param_1)
{
int iVar1;
undefined8 uVar2;
if (*(int *)(param_1 + 0x1c) == 0) {
if (*(int *)(param_1 + 0x14) == 1) {
iVar1 = 0x3c;
}
else if (*(int *)(param_1 + 0x14) == 2) {
iVar1 = 0x14;
}
else {
iVar1 = 0;
}
}
else if (*(int *)(param_1 + 0x14) - 1U < 2) {
iVar1 = 0x37;
}
else {
iVar1 = 0x13;
}
uVar2 = FUN_00474d54(*(int *)(param_1 + 0x18),*(int *)(param_1 + 0xc),iVar1);
return uVar2;
}
/* @00474ee4 file=? name=FUN_00474ee4 */
undefined4 * __cdecl
FUN_00474ee4(undefined4 *param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5,
undefined4 param_6,undefined4 param_7,char *param_8,undefined4 param_9,
undefined4 param_10,undefined4 param_11)
{
char cVar1;
int iVar2;
char *pcVar3;
uint uVar4;
uint uVar5;
char *pcVar6;
FUN_00444ec0(param_1,param_2,param_3,*(undefined4 *)(param_4 + 0x1c0c8),param_4,param_5);
*param_1 = &PTR_FUN_004fbbc8;
iVar2 = FUN_004d4a78(param_8);
pcVar3 = (char *)FUN_004022b0(iVar2 + 1);
param_1[0x1c] = pcVar3;
uVar4 = 0xffffffff;
do {
pcVar6 = param_8;
if (uVar4 == 0) break;
uVar4 = uVar4 - 1;
pcVar6 = param_8 + 1;
cVar1 = *param_8;
param_8 = pcVar6;
} while (cVar1 != '\0');
uVar4 = ~uVar4;
pcVar6 = pcVar6 + -uVar4;
for (uVar5 = uVar4 >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {
*(undefined4 *)pcVar3 = *(undefined4 *)pcVar6;
pcVar6 = pcVar6 + 4;
pcVar3 = pcVar3 + 4;
}
for (uVar4 = uVar4 & 3; uVar4 != 0; uVar4 = uVar4 - 1) {
*pcVar3 = *pcVar6;
pcVar6 = pcVar6 + 1;
pcVar3 = pcVar3 + 1;
}
FUN_00442aec(*(int *)(param_1[8] + 0x4c) + 4,(char *)param_1[0x1c],0);
param_1[0x1b] = param_11;
param_1[0x1d] = param_9;
param_1[0x1e] = param_10;
(**(code **)(param_1[9] + 0x10))(param_1 + 9,param_6,param_7);
return param_1;
}
/* @00474f98 file=? name=FUN_00474f98 */
void __cdecl FUN_00474f98(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004fbbc8;
FUN_00442c12(*(int *)(param_1[8] + 0x4c) + 4,(char *)param_1[0x1c]);
FUN_004022e8((int *)param_1[0x1c]);
param_1[0x1c] = 0;
FUN_00444f14(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00474fec file=? name=FUN_00474fec */
void FUN_00474fec(void)
{
FUN_00444f50();
return;
}
/* @00474ffc file=? name=FUN_00474ffc */
void __cdecl FUN_00474ffc(int param_1)
{
int iVar1;
undefined4 *puVar2;
iVar1 = *(int *)(*(int *)(param_1 + 0x20) + 0x4c);
puVar2 = FUN_00442aec(iVar1 + 4,*(char **)(param_1 + 0x70),0);
if (puVar2 != (undefined4 *)0x0) {
if (*(int *)(param_1 + 0x14) < 1) {
(**(code **)(*(int *)(param_1 + 0x24) + 0x18))(param_1 + 0x24,*(undefined4 *)(param_1 + 0x74))
;
}
else {
(**(code **)(*(int *)(param_1 + 0x24) + 0x18))(param_1 + 0x24,*(undefined4 *)(param_1 + 0x78))
;
}
if (*(int *)(param_1 + 0x6c) == 0) {
(**(code **)(*(int *)(param_1 + 0x24) + 0x54))
(param_1 + 0x24,0,puVar2,0,0,puVar2[3] + -1,puVar2[4] + -1);
}
else {
(**(code **)(*(int *)(param_1 + 0x24) + 0x58))
(param_1 + 0x24,*(undefined4 *)(param_1 + 0x74),0,puVar2,0,0,puVar2[3] + -1,
puVar2[4] + -1);
}
FUN_00442c12(iVar1 + 4,*(char **)(param_1 + 0x70));
}
return;
}
/* @004750b4 file=? name=FUN_004750b4 */
undefined4 * __cdecl FUN_004750b4(undefined4 *param_1,short param_2,short param_3)
{
short *psVar1;
undefined4 *puVar2;
undefined4 extraout_ECX;
undefined4 extraout_ECX_00;
undefined4 extraout_ECX_01;
int iVar3;
undefined8 uVar4;
undefined4 uVar5;
FUN_00468ae4(param_1,0x80,0x20);
*param_1 = &PTR_FUN_004fbc3c;
uVar5 = 0x81c;
uVar4 = FUN_00402298(0x81c);
psVar1 = (short *)uVar4;
if (psVar1 != (short *)0x0) {
uVar4 = FUN_0047d184(psVar1,0xc,3,param_2,param_3);
uVar5 = extraout_ECX;
}
param_1[0xf] = psVar1;
if (psVar1 != (short *)0x0) {
uVar4 = FUN_0047d3fd(uVar5,(int)((ulonglong)uVar4 >> 0x20),(int)psVar1,0);
FUN_0047d428(extraout_ECX_00,(int)((ulonglong)uVar4 >> 0x20),(short *)param_1[0xf],&DAT_004fbc00
,2);
FUN_0047d428(extraout_ECX_01,param_1[0xf],(short *)param_1[0xf],&DAT_004fbc02,3);
}
param_1[0x10] = 0;
param_1[0xe] = 0;
iVar3 = 0;
puVar2 = param_1 + 0x11;
do {
*(undefined1 *)puVar2 = 0;
iVar3 = iVar3 + 1;
puVar2 = (undefined4 *)((int)puVar2 + 1);
} while (iVar3 < 0x20);
return param_1;
}
/* @0047516c file=? name=FUN_0047516c */
void __cdecl FUN_0047516c(int *param_1,byte param_2)
{
int iVar1;
undefined2 uVar2;
int *piVar3;
int iVar4;
short extraout_var;
int extraout_ECX;
int iVar5;
undefined4 extraout_EDX;
int iVar6;
undefined8 uVar7;
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004fbc3c;
if (param_1[0xf] != 0) {
(**(code **)(*param_1 + 0xc))(param_1);
piVar3 = (int *)FUN_00414b60();
iVar1 = *piVar3;
iVar4 = FUN_004dcd94();
do {
do {
piVar3 = (int *)FUN_00414b60();
iVar5 = extraout_ECX;
iVar6 = iVar1 + iVar4;
if (iVar1 + iVar4 <= *piVar3) goto LAB_004751e7;
uVar2 = FUN_0047d517(param_1[0xf]);
} while (CONCAT22(extraout_var,uVar2) != 0 && -1 < extraout_var);
iVar5 = param_1[0xf];
uVar7 = FUN_0047d4a3(iVar5,extraout_EDX,(short *)iVar5);
iVar6 = (int)((ulonglong)uVar7 >> 0x20);
} while ((int)uVar7 != 0);
LAB_004751e7:
piVar3 = (int *)param_1[0xf];
if (piVar3 != (int *)0x0) {
if (piVar3 == (int *)0x0) {
FUN_004dbb24(&DAT_00524e20,s__PCSerial_has_been_passed_a_NULL_004fbc05,(char *)0x0);
}
else {
FUN_0047d324(iVar5,iVar6,(short *)piVar3);
}
FUN_004022d0(piVar3);
}
}
FUN_00468c04(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0047524c file=? name=FUN_0047524c */
void __cdecl FUN_0047524c(int param_1,char *param_2)
{
char cVar1;
uint uVar2;
uint uVar3;
char *pcVar4;
char *pcVar5;
char local_54 [80];
FUN_004dbb24(&DAT_00524e20,param_2,(char *)0x0);
FUN_004dbb24(&DAT_00524e20,s_Plasma__004fbc2f,(char *)0x0);
uVar2 = 0xffffffff;
do {
pcVar4 = param_2;
if (uVar2 == 0) break;
uVar2 = uVar2 - 1;
pcVar4 = param_2 + 1;
cVar1 = *param_2;
param_2 = pcVar4;
} while (cVar1 != '\0');
uVar2 = ~uVar2;
pcVar4 = pcVar4 + -uVar2;
pcVar5 = local_54;
for (uVar3 = uVar2 >> 2; uVar3 != 0; uVar3 = uVar3 - 1) {
*(undefined4 *)pcVar5 = *(undefined4 *)pcVar4;
pcVar4 = pcVar4 + 4;
pcVar5 = pcVar5 + 4;
}
for (uVar2 = uVar2 & 3; uVar2 != 0; uVar2 = uVar2 - 1) {
*pcVar5 = *pcVar4;
pcVar4 = pcVar4 + 1;
pcVar5 = pcVar5 + 1;
}
FUN_004d49b8(local_54,&DAT_004fbc38);
FUN_00468c74(param_1,local_54);
return;
}
/* @004752cc file=? name=FUN_004752cc */
undefined8 __cdecl FUN_004752cc(short *param_1,undefined1 param_2,char *param_3,int param_4)
{
byte bVar1;
byte bVar2;
byte bVar3;
int iVar4;
byte *pbVar5;
undefined8 uVar6;
byte local_28 [4];
undefined1 local_24;
undefined1 local_23;
undefined1 local_22;
int local_8;
local_28[0] = 0x1b;
local_28[1] = 0x50;
local_28[2] = 0;
local_28[3] = param_2;
local_24 = 0;
iVar4 = param_4 + 7 >> 3;
local_23 = (undefined1)iVar4;
local_22 = 1;
FUN_0047d428(local_28,iVar4,param_1,local_28,7);
bVar3 = 0;
bVar2 = 0x80;
local_8 = 0;
iVar4 = 0;
pbVar5 = local_28;
bVar1 = bVar2;
if (0 < param_4) {
do {
if (*param_3 != '\0') {
bVar3 = bVar3 | bVar1;
}
bVar2 = bVar1 >> 1;
if (bVar1 >> 1 == 0) {
*pbVar5 = bVar3;
pbVar5 = pbVar5 + 1;
local_8 = local_8 + 1;
bVar3 = 0;
bVar2 = 0x80;
}
iVar4 = iVar4 + 1;
bVar1 = bVar2;
param_3 = param_3 + 1;
} while (iVar4 < param_4);
}
if (bVar2 != 0x80) {
local_28[local_8] = bVar3;
local_8 = local_8 + 1;
}
uVar6 = FUN_0047d428(param_1,local_28,param_1,local_28,local_8);
return uVar6;
}
/* @00475370 file=? name=FUN_00475370 */
void __cdecl FUN_00475370(int param_1,short param_2)
{
short *psVar1;
int iVar2;
undefined1 *puVar3;
iVar2 = 0;
psVar1 = *(short **)(param_1 + 0x30);
puVar3 = (undefined1 *)(param_1 + 0x44);
do {
param_2 = param_2 + *psVar1;
*psVar1 = 0;
psVar1 = psVar1 + 1;
if (param_2 != 0) {
*puVar3 = 1;
*(undefined4 *)(param_1 + 0x38) = 1;
}
iVar2 = iVar2 + 1;
puVar3 = puVar3 + 1;
} while (iVar2 < 0x20);
return;
}
/* @004753ac file=? name=FUN_004753ac */
undefined4 __cdecl FUN_004753ac(int param_1,uint param_2)
{
undefined2 uVar1;
undefined2 extraout_var;
int iVar2;
int iVar3;
if (*(int *)(param_1 + 0x3c) != 0) {
*(uint *)(param_1 + 0x34) = *(uint *)(param_1 + 0x34) | param_2;
if (*(int *)(param_1 + 0x40) == 0) {
FUN_00475370(param_1,(short)*(undefined4 *)(param_1 + 0x34));
*(undefined4 *)(param_1 + 0x34) = 0;
}
uVar1 = FUN_0047d517(*(int *)(param_1 + 0x3c));
if (CONCAT22(extraout_var,uVar1) == 0) {
iVar3 = 0x20;
iVar2 = 4;
do {
if (*(char *)(param_1 + 0x44 + *(int *)(param_1 + 0x40)) != '\0') {
*(undefined1 *)(param_1 + 0x44 + *(int *)(param_1 + 0x40)) = 0;
iVar2 = iVar2 + -1;
FUN_004752cc(*(short **)(param_1 + 0x3c),(char)*(undefined4 *)(param_1 + 0x40),
(char *)((*(int **)(param_1 + 0x2c))[2] +
**(int **)(param_1 + 0x2c) * *(int *)(param_1 + 0x40)),
**(int **)(param_1 + 0x2c));
}
*(int *)(param_1 + 0x40) = *(int *)(param_1 + 0x40) + 1;
if (0x1f < *(int *)(param_1 + 0x40)) {
*(undefined4 *)(param_1 + 0x40) = 0;
}
iVar3 = iVar3 + -1;
if (iVar3 < 0) {
*(undefined4 *)(param_1 + 0x40) = 0;
*(undefined4 *)(param_1 + 0x38) = 0;
return 0;
}
} while (0 < iVar2);
}
}
return 1;
}
/* @00475468 file=? name=FUN_00475468 */
void __cdecl FUN_00475468(int *param_1)
{
int iVar1;
int *piVar2;
int iVar3;
piVar2 = (int *)FUN_00414b60();
iVar1 = *piVar2;
iVar3 = FUN_004dcd94();
do {
if (param_1[0xe] == 0) {
return;
}
(**(code **)(*param_1 + 8))(param_1,0);
piVar2 = (int *)FUN_00414b60();
} while (*piVar2 < iVar1 + iVar3);
return;
}
/* @004754c8 file=? name=FUN_004754c8 */
undefined4 * __cdecl FUN_004754c8(undefined4 *param_1)
{
undefined4 *puVar1;
int local_24 [8];
*param_1 = &PTR_FUN_004fcf0c;
FUN_00403e84(local_24,PTR_s_JOYSTICK_INI_004fbc70,1);
puVar1 = (undefined4 *)FUN_00402298(0x44);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_00479228(puVar1,(int)local_24,PTR_s_JoystickX_004fcf58,10,0x14,0x1e);
}
param_1[7] = puVar1;
puVar1 = (undefined4 *)FUN_00402298(0x44);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_00479228(puVar1,(int)local_24,PTR_s_JoystickY_004fcf5c,10,0x14,0x1e);
}
param_1[8] = puVar1;
param_1[5] = 0;
param_1[6] = 0;
FUN_00403ecc(local_24,2);
return param_1;
}
/* @0047556c file=? name=FUN_0047556c */
void __cdecl FUN_0047556c(int *param_1,byte param_2)
{
char *pcVar1;
int *piVar2;
int iVar3;
int local_28 [8];
int local_8;
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004fcf0c;
FUN_00403e84(local_28,PTR_s_JOYSTICK_INI_004fbc70,1);
FUN_004dfda8(&local_8);
pcVar1 = (char *)FUN_004df7b4(&local_8);
FUN_00404204((int)local_28,s_operator_004fc16a,&DAT_004fc173,pcVar1);
iVar3 = 0;
piVar2 = param_1 + 7;
do {
FUN_0047932c((int *)*piVar2,3);
*piVar2 = 0;
iVar3 = iVar3 + 1;
piVar2 = piVar2 + 1;
} while (iVar3 < 2);
FUN_00403ecc(local_28,2);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00475604 file=? name=FUN_00475604 */
void __cdecl FUN_00475604(int param_1)
{
undefined4 *puVar1;
int iVar2;
iVar2 = 0;
puVar1 = (undefined4 *)(param_1 + 0x1c);
do {
(*(code *)**(undefined4 **)*puVar1)((undefined4 *)*puVar1);
iVar2 = iVar2 + 1;
puVar1 = puVar1 + 1;
} while (iVar2 < 2);
return;
}
/* @00475628 file=? name=FUN_00475628 */
void __cdecl FUN_00475628(int *param_1)
{
int local_24 [8];
FUN_00403e84(local_24,PTR_s_JOYSTICK_INI_004fbc70,1);
(**(code **)(*param_1 + 0x10))(param_1,local_24);
FUN_00403ecc(local_24,2);
return;
}
/* @00475668 file=? name=FUN_00475668 */
void __cdecl FUN_00475668(int param_1,undefined4 param_2)
{
undefined4 *puVar1;
int iVar2;
iVar2 = 0;
puVar1 = (undefined4 *)(param_1 + 0x1c);
do {
(**(code **)(*(int *)*puVar1 + 4))((int *)*puVar1,param_2);
iVar2 = iVar2 + 1;
puVar1 = puVar1 + 1;
} while (iVar2 < 2);
return;
}
/* @00475694 file=munga_l4/l4ctrl.cpp name=FUN_00475694 */
void FUN_00475694(void)
{
FUN_0040385c(s_Joystick__Update_should_not_be_c_004fc178,
s_d__tesla_bt_munga_l4_L4CTRL_CPP_004fc1a0,0xe1);
return;
}
/* @004756b0 file=? name=FUN_004756b0 */
void __cdecl FUN_004756b0(int param_1,float param_2)
{
int *piVar1;
int iVar2;
iVar2 = 0;
piVar1 = (int *)(param_1 + 0x1c);
do {
FUN_0047936c(*piVar1,param_2);
iVar2 = iVar2 + 1;
piVar1 = piVar1 + 1;
} while (iVar2 < 2);
return;
}
/* @004756d8 file=? name=FUN_004756d8 */
undefined4 * __cdecl FUN_004756d8(undefined4 *param_1)
{
FUN_004754c8(param_1);
*param_1 = &PTR_FUN_004fcef8;
DAT_004fe108 = 3;
param_1[3] = 0;
param_1[4] = 0;
return param_1;
}
/* @00475704 file=? name=FUN_00475704 */
void __cdecl FUN_00475704(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004fcef8;
FUN_0047556c(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00475730 file=? name=FUN_00475730 */
void __thiscall FUN_00475730(void *this,int param_1)
{
byte bVar1;
uint uVar2;
uint uVar3;
float10 fVar4;
FUN_0047d97c(this);
fVar4 = (float10)(**(code **)(**(int **)(param_1 + 0x1c) + 8))
(*(int **)(param_1 + 0x1c),DAT_004fe100);
*(float *)(param_1 + 4) = (float)fVar4;
fVar4 = (float10)(**(code **)(**(int **)(param_1 + 0x20) + 8))
(*(int **)(param_1 + 0x20),DAT_004fe102);
*(float *)(param_1 + 8) = (float)fVar4;
bVar1 = DAT_004fe109;
uVar2 = (uint)DAT_004fe109;
*(undefined4 *)(param_1 + 0x18) = 0;
uVar3 = *(uint *)(param_1 + 0x24) ^ uVar2;
*(undefined4 *)(param_1 + 0x14) = 0;
if (uVar3 != 0) {
if ((uVar3 & 0x10) != 0) {
if ((bVar1 & 0x10) == 0) {
*(uint *)(param_1 + 0x14) = *(uint *)(param_1 + 0x14) | 1;
}
else {
*(uint *)(param_1 + 0x18) = *(uint *)(param_1 + 0x18) | 1;
}
}
if ((uVar3 & 0x20) != 0) {
if ((bVar1 & 0x20) == 0) {
*(uint *)(param_1 + 0x14) = *(uint *)(param_1 + 0x14) | 8;
}
else {
*(uint *)(param_1 + 0x18) = *(uint *)(param_1 + 0x18) | 8;
}
}
}
*(uint *)(param_1 + 0x24) = uVar2;
return;
}
/* @004757b0 file=? name=FUN_004757b0 */
undefined4 FUN_004757b0(void)
{
return 1;
}
/* @004757bc file=? name=FUN_004757bc */
undefined4 * __cdecl FUN_004757bc(undefined4 *param_1)
{
undefined4 *puVar1;
int local_24 [8];
FUN_004754c8(param_1);
*param_1 = &PTR_FUN_004fcee4;
FUN_00403e84(local_24,PTR_s_JOYSTICK_INI_004fbc70,1);
puVar1 = (undefined4 *)FUN_00402298(0x44);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_00479158(puVar1,(int)local_24,PTR_s_Throttle_004fcf60,10,0x1e);
}
param_1[10] = puVar1;
DAT_004fe108 = 0xb;
param_1[3] = 0;
FUN_00403ecc(local_24,2);
return param_1;
}
/* @00475838 file=? name=FUN_00475838 */
void __cdecl FUN_00475838(int *param_1,byte param_2)
{
char *pcVar1;
int local_28 [8];
int local_8;
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004fcee4;
FUN_00403e84(local_28,PTR_s_JOYSTICK_INI_004fbc70,1);
FUN_004dfda8(&local_8);
pcVar1 = (char *)FUN_004df7b4(&local_8);
FUN_00404204((int)local_28,s_operator_004fc1c0,&DAT_004fc1c9,pcVar1);
FUN_0047932c((int *)param_1[10],3);
param_1[10] = 0;
FUN_00403ecc(local_28,2);
FUN_0047556c(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @004758cc file=? name=FUN_004758cc */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
void __thiscall FUN_004758cc(void *this,int param_1)
{
uint uVar1;
byte bVar2;
uint uVar3;
float10 fVar4;
FUN_0047d97c(this);
fVar4 = (float10)(**(code **)(**(int **)(param_1 + 0x1c) + 8))
(*(int **)(param_1 + 0x1c),DAT_004fe100);
*(float *)(param_1 + 4) = (float)fVar4;
fVar4 = (float10)(**(code **)(**(int **)(param_1 + 0x20) + 8))
(*(int **)(param_1 + 0x20),DAT_004fe102);
*(float *)(param_1 + 8) = (float)fVar4;
fVar4 = (float10)(**(code **)(**(int **)(param_1 + 0x28) + 8))
(*(int **)(param_1 + 0x28),DAT_004fe106);
*(float *)(param_1 + 0x10) = (float)((float10)_DAT_00475a34 - fVar4);
bVar2 = DAT_004fe109;
uVar3 = (uint)DAT_004fe109;
*(undefined4 *)(param_1 + 0x18) = 0;
*(undefined4 *)(param_1 + 0x14) = 0;
uVar1 = *(uint *)(param_1 + 0x24);
if (uVar3 != uVar1) {
if ((int)uVar1 < 0x71) {
if (uVar1 == 0x70) {
*(undefined4 *)(param_1 + 0x14) = 0x20;
}
else if (uVar1 == 0x10) {
*(undefined4 *)(param_1 + 0x14) = 1;
}
else if (uVar1 == 0x20) {
*(undefined4 *)(param_1 + 0x14) = 8;
}
else if (uVar1 == 0x30) {
*(undefined4 *)(param_1 + 0x14) = 0x40;
}
else if (uVar1 == 0x40) {
*(undefined4 *)(param_1 + 0x14) = 2;
}
}
else if (uVar1 == 0x80) {
*(undefined4 *)(param_1 + 0x14) = 4;
}
else if (uVar1 == 0xb0) {
*(undefined4 *)(param_1 + 0x14) = 0x80;
}
else if (uVar1 == 0xf0) {
*(undefined4 *)(param_1 + 0x14) = 0x10;
}
if (uVar3 == 0x70 || bVar2 < 0x70) {
if (uVar3 == 0x70) {
*(undefined4 *)(param_1 + 0x18) = 0x20;
}
else if (uVar3 == 0x10) {
*(undefined4 *)(param_1 + 0x18) = 1;
}
else if (uVar3 == 0x20) {
*(undefined4 *)(param_1 + 0x18) = 8;
}
else if (uVar3 == 0x30) {
*(undefined4 *)(param_1 + 0x18) = 0x40;
}
else if (uVar3 == 0x40) {
*(undefined4 *)(param_1 + 0x18) = 2;
}
}
else if (uVar3 == 0x80) {
*(undefined4 *)(param_1 + 0x18) = 4;
}
else if (uVar3 == 0xb0) {
*(undefined4 *)(param_1 + 0x18) = 0x80;
}
else if (uVar3 == 0xf0) {
*(undefined4 *)(param_1 + 0x18) = 0x10;
}
*(uint *)(param_1 + 0x24) = uVar3;
}
return;
}
/* @00475a38 file=? name=FUN_00475a38 */
void __cdecl FUN_00475a38(int param_1)
{
(**(code **)**(undefined4 **)(param_1 + 0x28))(*(undefined4 **)(param_1 + 0x28));
FUN_00475604(param_1);
return;
}
/* @00475a54 file=? name=FUN_00475a54 */
void __cdecl FUN_00475a54(int param_1)
{
int local_24 [8];
FUN_00403e84(local_24,PTR_s_JOYSTICK_INI_004fbc70,1);
(**(code **)(**(int **)(param_1 + 0x28) + 4))(*(int **)(param_1 + 0x28),local_24);
FUN_00475668(param_1,local_24);
FUN_00403ecc(local_24,2);
return;
}
/* @00475aa4 file=? name=FUN_00475aa4 */
undefined4 * __cdecl FUN_00475aa4(undefined4 *param_1)
{
FUN_004754c8(param_1);
*param_1 = &PTR_FUN_004fced0;
DAT_004fe108 = 0xb;
param_1[3] = 0;
param_1[4] = 0;
param_1[10] = 0;
param_1[0xb] = 0;
return param_1;
}
/* @00475ad8 file=? name=FUN_00475ad8 */
void __cdecl FUN_00475ad8(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004fced0;
FUN_0047556c(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00475b04 file=? name=FUN_00475b04 */
void __thiscall FUN_00475b04(void *this,int param_1)
{
int iVar1;
byte bVar2;
uint uVar3;
uint uVar4;
float10 fVar5;
FUN_0047d97c(this);
fVar5 = (float10)(**(code **)(**(int **)(param_1 + 0x1c) + 8))
(*(int **)(param_1 + 0x1c),DAT_004fe100);
*(float *)(param_1 + 4) = (float)fVar5;
fVar5 = (float10)(**(code **)(**(int **)(param_1 + 0x20) + 8))
(*(int **)(param_1 + 0x20),DAT_004fe102);
*(float *)(param_1 + 8) = (float)fVar5;
*(undefined4 *)(param_1 + 0x18) = 0;
*(undefined4 *)(param_1 + 0x14) = 0;
bVar2 = DAT_004fe109;
uVar3 = (uint)DAT_004fe109;
uVar4 = *(uint *)(param_1 + 0x24) ^ uVar3;
if (uVar4 != 0) {
if ((uVar4 & 0x10) != 0) {
if ((DAT_004fe109 & 0x10) == 0) {
*(uint *)(param_1 + 0x14) = *(uint *)(param_1 + 0x14) | 1;
}
else {
*(uint *)(param_1 + 0x18) = *(uint *)(param_1 + 0x18) | 1;
}
}
if ((uVar4 & 0x20) != 0) {
if ((bVar2 & 0x20) == 0) {
*(uint *)(param_1 + 0x14) = *(uint *)(param_1 + 0x14) | 8;
}
else {
*(uint *)(param_1 + 0x18) = *(uint *)(param_1 + 0x18) | 8;
}
}
if ((uVar4 & 0x40) != 0) {
if ((bVar2 & 0x40) == 0) {
*(uint *)(param_1 + 0x14) = *(uint *)(param_1 + 0x14) | 4;
}
else {
*(uint *)(param_1 + 0x18) = *(uint *)(param_1 + 0x18) | 4;
}
}
if ((uVar4 & 0x80) != 0) {
if ((bVar2 & 0x80) == 0) {
*(uint *)(param_1 + 0x14) = *(uint *)(param_1 + 0x14) | 2;
}
else {
*(uint *)(param_1 + 0x18) = *(uint *)(param_1 + 0x18) | 2;
}
}
*(uint *)(param_1 + 0x24) = uVar3;
}
uVar3 = (uint)DAT_004fe106;
if (*(int *)(param_1 + 0x28) < (int)uVar3) {
*(uint *)(param_1 + 0x28) = uVar3;
}
iVar1 = *(int *)(param_1 + 0x28);
if (iVar1 * 7 >> 3 < (int)uVar3) {
uVar3 = 0;
}
else if (iVar1 * 5 >> 3 < (int)uVar3) {
uVar3 = 0x40;
}
else if (iVar1 * 3 >> 3 < (int)uVar3) {
uVar3 = 0x20;
}
else if (iVar1 >> 3 < (int)uVar3) {
uVar3 = 0x80;
}
else {
uVar3 = 0x10;
}
if (uVar3 != *(uint *)(param_1 + 0x2c)) {
*(uint *)(param_1 + 0x14) = *(uint *)(param_1 + 0x14) | *(uint *)(param_1 + 0x2c);
*(uint *)(param_1 + 0x18) = *(uint *)(param_1 + 0x18) | uVar3;
*(uint *)(param_1 + 0x2c) = uVar3;
}
return;
}
/* @00475c18 file=? name=FUN_00475c18 */
undefined4 * __cdecl FUN_00475c18(undefined4 *param_1)
{
int *piVar1;
uint uVar2;
bool bVar3;
char cVar4;
char *pcVar5;
int iVar6;
short *psVar7;
uint *puVar8;
undefined4 *puVar9;
undefined4 extraout_EAX;
undefined4 uVar10;
undefined4 extraout_EDX;
undefined4 extraout_EDX_00;
undefined4 extraout_EDX_01;
undefined4 extraout_EDX_02;
undefined4 extraout_EDX_03;
undefined4 extraout_EDX_04;
undefined4 extraout_EDX_05;
undefined4 extraout_EDX_06;
undefined4 extraout_EDX_07;
undefined4 extraout_EDX_08;
undefined8 uVar11;
char local_c8 [128];
undefined4 local_48;
int *local_44;
int *local_40;
undefined4 local_3c;
int local_38;
undefined4 local_34;
undefined4 local_30;
undefined4 local_2c;
undefined4 local_28;
undefined4 *local_24;
undefined4 *local_20;
undefined4 *local_1c;
int *local_18;
int local_14;
short *local_10;
short *local_c;
char *local_8;
FUN_0044c594(param_1,0x3f0,&DAT_004fbcf0);
*param_1 = &PTR_FUN_004fcea4;
FUN_004de998(param_1 + 9,0x20,7,1,FUN_00477aa0);
FUN_004de998(param_1 + 0x41,0x24,2,1,FUN_00477e0c);
FUN_004de998(param_1 + 0x58,0x20,3,1,FUN_00478192);
FUN_004de998(param_1 + 0x70,0x20,0x4b,1,FUN_00478192);
FUN_004de998(param_1 + 0x313,0x24,1,1,FUN_004784fb);
FUN_0044c8a0(param_1 + 0x31d);
*(byte *)(param_1 + 0x327) = *(byte *)(param_1 + 0x327) & 0xfe;
*(byte *)(param_1 + 0x327) = *(byte *)(param_1 + 0x327) & 0xfd;
*(byte *)(param_1 + 0x327) = *(byte *)(param_1 + 0x327) & 0xfb;
*(byte *)(param_1 + 0x327) = *(byte *)(param_1 + 0x327) & 0xf7;
param_1[0x55] = 0;
param_1[0x56] = 0;
param_1[0x57] = 0;
param_1[0x53] = 0;
param_1[0x31c] = 0;
param_1[0x54] = 0;
param_1[0x324] = 0;
param_1[0x325] = 0;
param_1[0x326] = 0;
pcVar5 = (char *)FUN_004dee74(s_L4CONTROLS_004fc1e0);
uVar10 = extraout_EDX;
if (pcVar5 != (char *)0x0) {
bVar3 = false;
do {
local_8 = local_c8;
if (bVar3) {
local_c8[0] = '\0';
}
else {
do {
cVar4 = *pcVar5;
pcVar5 = pcVar5 + 1;
if ((cVar4 == '\0') || (cVar4 == '\n')) {
bVar3 = true;
LAB_00475d7e:
cVar4 = '\0';
}
else if ((cVar4 == ',') || (cVar4 == ';')) goto LAB_00475d7e;
*local_8 = cVar4;
local_8 = local_8 + 1;
} while (cVar4 != '\0');
}
iVar6 = FUN_004d4b58(local_c8,&DAT_004fc1eb);
if ((iVar6 == 0) || (iVar6 = FUN_004d4b58(local_c8,s_RIO_COM1_004fc1ef), iVar6 == 0)) {
uVar11 = FUN_00402298(0x498);
local_c = (short *)uVar11;
if (local_c == (short *)0x0) {
psVar7 = (short *)0x0;
}
else {
psVar7 = FUN_00479b78(local_c,0x3f8,0xc,1);
uVar11 = CONCAT44(extraout_EDX_00,local_c);
}
param_1[0x324] = psVar7;
*(byte *)(param_1 + 0x327) = *(byte *)(param_1 + 0x327) | 8;
param_1[0x326] = 4;
}
else {
iVar6 = FUN_004d4b58(local_c8,s_RIO_COM2_004fc1f8);
if (iVar6 == 0) {
uVar11 = FUN_00402298(0x498);
local_10 = (short *)uVar11;
if (local_10 == (short *)0x0) {
psVar7 = (short *)0x0;
}
else {
psVar7 = FUN_00479b78(local_10,0x2f8,0xb,1);
uVar11 = CONCAT44(extraout_EDX_01,local_10);
}
local_10 = (short *)uVar11;
uVar11 = CONCAT44((int)((ulonglong)uVar11 >> 0x20),local_c);
param_1[0x324] = psVar7;
*(byte *)(param_1 + 0x327) = *(byte *)(param_1 + 0x327) | 8;
param_1[0x326] = 4;
}
else {
iVar6 = FUN_004d4b58(local_c8,s_KEYBOARD_004fc201);
uVar11 = CONCAT44(extraout_EDX_02,local_c);
if (iVar6 == 0) {
*(byte *)(param_1 + 0x327) = *(byte *)(param_1 + 0x327) | 2;
}
else {
iVar6 = FUN_004d4b58(local_c8,s_MOUSE_004fc20a);
uVar11 = CONCAT44(extraout_EDX_03,local_c);
if (iVar6 == 0) {
if ((*(byte *)(param_1 + 0x327) & 1) == 0) {
*(byte *)(param_1 + 0x327) = *(byte *)(param_1 + 0x327) | 1;
local_14 = FUN_00402298(8);
if (local_14 == 0) {
puVar8 = (uint *)0x0;
}
else {
puVar8 = FUN_00478fd8();
}
param_1[0x31c] = puVar8;
uVar11 = CONCAT44(param_1[0x31c],local_c);
if (*(int *)(param_1[0x31c] + 4) != 0) {
local_18 = (int *)param_1[0x31c];
uVar10 = 0;
if (local_18 != (int *)0x0) {
FUN_004022d0(local_18);
uVar10 = extraout_EDX_04;
}
uVar11 = CONCAT44(uVar10,local_c);
param_1[0x31c] = 0;
*(byte *)(param_1 + 0x327) = *(byte *)(param_1 + 0x327) & 0xfe;
}
}
}
else {
iVar6 = FUN_004d4b58(local_c8,s_JOYSTICK_004fc210);
if (iVar6 == 0) {
*(byte *)(param_1 + 0x327) = *(byte *)(param_1 + 0x327) | 4;
param_1[0x53] = 1;
uVar11 = FUN_00402298(0x28);
local_1c = (undefined4 *)uVar11;
if (local_1c == (undefined4 *)0x0) {
puVar9 = (undefined4 *)0x0;
}
else {
puVar9 = FUN_004756d8(local_1c);
uVar11 = CONCAT44(extraout_EDX_05,local_1c);
}
local_1c = (undefined4 *)uVar11;
uVar11 = CONCAT44((int)((ulonglong)uVar11 >> 0x20),local_c);
param_1[0x54] = puVar9;
param_1[0x326] = 1;
}
else {
iVar6 = FUN_004d4b58(local_c8,s_FLIGHTSTICKPRO_004fc219);
if (iVar6 == 0) {
*(byte *)(param_1 + 0x327) = *(byte *)(param_1 + 0x327) | 4;
param_1[0x53] = 2;
uVar11 = FUN_00402298(0x2c);
local_20 = (undefined4 *)uVar11;
if (local_20 == (undefined4 *)0x0) {
puVar9 = (undefined4 *)0x0;
}
else {
puVar9 = FUN_004757bc(local_20);
uVar11 = CONCAT44(extraout_EDX_06,local_20);
}
local_20 = (undefined4 *)uVar11;
uVar11 = CONCAT44((int)((ulonglong)uVar11 >> 0x20),local_c);
param_1[0x54] = puVar9;
param_1[0x326] = 3;
}
else {
iVar6 = FUN_004d4b58(local_c8,s_THRUSTMASTER_004fc228);
uVar11 = CONCAT44(extraout_EDX_07,local_c);
if (iVar6 == 0) {
*(byte *)(param_1 + 0x327) = *(byte *)(param_1 + 0x327) | 4;
param_1[0x53] = 3;
uVar11 = FUN_00402298(0x30);
local_24 = (undefined4 *)uVar11;
if (local_24 == (undefined4 *)0x0) {
puVar9 = (undefined4 *)0x0;
}
else {
puVar9 = FUN_00475aa4(local_24);
uVar11 = CONCAT44(extraout_EDX_08,local_24);
}
local_24 = (undefined4 *)uVar11;
uVar11 = CONCAT44((int)((ulonglong)uVar11 >> 0x20),local_c);
param_1[0x54] = puVar9;
param_1[0x326] = 2;
}
}
}
}
}
}
}
local_c = (short *)uVar11;
uVar10 = CONCAT31((int3)((ulonglong)uVar11 >> 0x28),local_c8[0]);
} while (local_c8[0] != '\0');
}
if (param_1[0x324] != 0) {
FUN_0047a5e4(param_1[0x324],uVar10,(short *)param_1[0x324]);
}
uVar2 = *(uint *)(*(int *)(DAT_004efc94 + 0x50) + 4);
iVar6 = 0;
local_28 = 0;
do {
FUN_00477b08((int)(param_1 + iVar6 * 8 + 9),&local_28,uVar2);
iVar6 = iVar6 + 1;
} while (iVar6 < 7);
local_30 = 0;
local_2c = 0;
iVar6 = 0;
do {
FUN_00477e88((int)(param_1 + iVar6 * 9 + 0x41),&local_30,uVar2);
iVar6 = iVar6 + 1;
} while (iVar6 < 2);
iVar6 = 0;
local_34 = 0;
do {
FUN_004781f7((int)(param_1 + iVar6 * 8 + 0x58),&local_34,uVar2);
iVar6 = iVar6 + 1;
} while (iVar6 < 3);
local_3c = 0;
local_38 = 0;
puVar8 = param_1 + 0x2c8;
do {
FUN_004781f7((int)(param_1 + local_38 * 8 + 0x70),&local_3c,uVar2);
*puVar8 = uVar2;
local_38 = local_38 + 1;
puVar8 = puVar8 + 1;
} while (local_38 < 0x4b);
param_1[0x328] = 0;
iVar6 = 0;
puVar9 = param_1 + 0x32b;
do {
iVar6 = iVar6 + 1;
*puVar9 = 0;
puVar9 = puVar9 + 1;
} while (iVar6 < 0x10);
param_1[0x33b] = 0;
puVar9 = (undefined4 *)FUN_00414b60();
param_1[0x33c] = *puVar9;
param_1[0x33d] = 0;
param_1[0x33e] = 0;
param_1[0x33f] = 0;
param_1[0x340] = 0;
param_1[0x341] = 0;
param_1[0x342] = 0;
param_1[0x343] = 0;
piVar1 = DAT_00523314;
local_40 = DAT_00523314;
DAT_00523314[3] = DAT_00523314[3] + 1;
if (((char *)piVar1[2] != (char *)0x0) && (iVar6 = FUN_004d4a78((char *)piVar1[2]), iVar6 != 0)) {
if ((*(byte *)(param_1 + 0x327) & 8) == 0) {
FUN_004dbb24(&DAT_00524e20,s_RIO_must_be_enabled_by_setenv__004fc235,(char *)0x0);
FUN_004036a0(1);
}
FUN_00477990(param_1,(LPCSTR)local_40[2]);
param_1[0x33d] = 1;
}
piVar1 = DAT_00523318;
local_44 = DAT_00523318;
DAT_00523318[3] = DAT_00523318[3] + 1;
if (((char *)piVar1[2] != (char *)0x0) && (iVar6 = FUN_004d4a78((char *)piVar1[2]), iVar6 != 0)) {
if ((*(byte *)(param_1 + 0x327) & 8) == 0) {
FUN_004dbb24(&DAT_00524e20,s_RIO_must_be_enabled_by_setenv__004fc255,(char *)0x0);
FUN_004036a0(1);
}
FUN_004de998((int *)0x0,0x1c,12000,1,FUN_00477a8e);
local_48 = extraout_EAX;
puVar9 = (undefined4 *)FUN_00402298(0x10);
if (puVar9 == (undefined4 *)0x0) {
uVar10 = 0;
}
else {
uVar10 = FUN_004030dc(puVar9,local_48,0x52080,0);
}
param_1[0x33b] = uVar10;
}
piVar1 = local_44 + 3;
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_004024d8(local_44,3);
}
piVar1 = local_40 + 3;
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_004024d8(local_40,3);
}
return param_1;
}
/* @00476298 file=? name=FUN_00476298 */
void __cdecl FUN_00476298(int *param_1,byte param_2)
{
int *piVar1;
undefined4 *puVar2;
bool bVar3;
int *piVar4;
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004fcea4;
piVar4 = DAT_00523318;
if ((param_1[0x33b] == 0) || (param_1[0x33d] != 0)) {
bVar3 = false;
}
else {
bVar3 = true;
}
if (bVar3) {
DAT_00523318[3] = DAT_00523318[3] + 1;
FUN_0047790c((int)param_1,(LPCSTR)piVar4[2]);
piVar1 = piVar4 + 3;
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_004024d8(piVar4,3);
}
}
piVar4 = (int *)param_1[0x33b];
if (piVar4 != (int *)0x0) {
(**(code **)(*piVar4 + 0xc))(piVar4,0);
piVar4 = (int *)(*(code *)**(undefined4 **)param_1[0x33b])((undefined4 *)param_1[0x33b]);
FUN_004022d0((int *)param_1[0x33b]);
FUN_004022e8(piVar4);
param_1[0x33b] = 0;
param_1[0x33e] = 0;
}
piVar4 = (int *)param_1[0x31c];
if (piVar4 != (int *)0x0) {
if (piVar4 != (int *)0x0) {
FUN_004022d0(piVar4);
}
param_1[0x31c] = 0;
}
puVar2 = (undefined4 *)param_1[0x54];
if (puVar2 != (undefined4 *)0x0) {
if (puVar2 != (undefined4 *)0x0) {
(**(code **)*puVar2)(puVar2,3);
}
param_1[0x54] = 0;
}
FUN_004772e8((int)param_1);
if ((int *)param_1[0x324] != (int *)0x0) {
FUN_00479fd0((int *)param_1[0x324],3);
param_1[0x324] = 0;
}
FUN_0044c8cc(param_1 + 0x31d,2);
FUN_004de8d4(param_1 + 0x313,0x24,1,1,FUN_00478514);
FUN_004de8d4(param_1 + 0x70,0x20,0x4b,1,FUN_004781ab);
FUN_004de8d4(param_1 + 0x58,0x20,3,1,FUN_004781ab);
FUN_004de8d4(param_1 + 0x41,0x24,2,1,FUN_00477e25);
FUN_004de8d4(param_1 + 9,0x20,7,1,FUN_00477ab9);
FUN_0044c5e4(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00476454 file=? name=FUN_00476454 */
void __cdecl FUN_00476454(int param_1)
{
if (*(int **)(param_1 + 0xc90) != (int *)0x0) {
FUN_00479fd0(*(int **)(param_1 + 0xc90),3);
*(undefined4 *)(param_1 + 0xc90) = 0;
}
FUN_0044c73c();
return;
}
/* @00476484 file=? name=FUN_00476484 */
void __cdecl FUN_00476484(int param_1,undefined4 param_2)
{
int iVar1;
int *local_14;
int *local_10;
int *local_c;
int *local_8;
iVar1 = 0;
local_8 = (int *)(param_1 + 0x24);
do {
(**(code **)(*local_8 + 0xc))(iVar1 * 0x20 + param_1 + 0x24,param_2);
iVar1 = iVar1 + 1;
local_8 = local_8 + 8;
} while (iVar1 < 7);
iVar1 = 0;
local_c = (int *)(param_1 + 0x104);
do {
(**(code **)(*local_c + 0xc))(iVar1 * 0x24 + param_1 + 0x104,param_2);
iVar1 = iVar1 + 1;
local_c = local_c + 9;
} while (iVar1 < 2);
iVar1 = 0;
local_10 = (int *)(param_1 + 0x160);
do {
(**(code **)(*local_10 + 0xc))(iVar1 * 0x20 + param_1 + 0x160,param_2);
iVar1 = iVar1 + 1;
local_10 = local_10 + 8;
} while (iVar1 < 3);
iVar1 = 0;
local_14 = (int *)(param_1 + 0x1c0);
do {
(**(code **)(*local_14 + 0xc))(iVar1 * 0x20 + param_1 + 0x1c0,param_2);
iVar1 = iVar1 + 1;
local_14 = local_14 + 8;
} while (iVar1 < 0x4b);
(**(code **)(*(int *)(param_1 + 0xc4c) + 0xc))(param_1 + 0xc4c,param_2);
return;
}
/* @00476568 file=? name=FUN_00476568 */
undefined8 __cdecl FUN_00476568(int param_1,undefined4 param_2,undefined1 param_3)
{
int iVar1;
undefined8 uVar2;
iVar1 = *(int *)(param_1 + 0xc90);
uVar2 = CONCAT44(iVar1,param_1);
if (iVar1 != 0) {
uVar2 = FUN_0047a6d4(param_2,iVar1,(short *)iVar1,(char)param_2,param_3);
}
return uVar2;
}
/* @0047658c file=? name=FUN_0047658c */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
void __cdecl FUN_0047658c(int param_1)
{
uint uVar1;
uint uVar2;
undefined2 uVar3;
int iVar4;
int *piVar5;
undefined4 *puVar6;
undefined2 extraout_var;
undefined2 extraout_var_00;
void *this;
undefined4 extraout_ECX;
undefined4 extraout_ECX_00;
void *extraout_ECX_01;
void *extraout_ECX_02;
undefined4 extraout_EDX;
undefined4 uVar7;
undefined4 extraout_EDX_00;
ulonglong uVar8;
undefined1 uVar9;
uint local_60 [3];
int *local_54;
int local_50;
int local_4c;
int local_48;
undefined4 local_44;
undefined4 local_40;
undefined4 local_3c;
float local_38;
float local_34;
uint local_30;
uint local_2c;
undefined4 local_28;
int *local_24;
float local_20;
int local_1c;
uint local_18;
uint local_14;
uint local_10;
float local_c;
float local_8;
local_1c = 0;
this = *(void **)(DAT_004efc94 + 0x50);
uVar1 = *(uint *)((int)this + 4);
if ((*(byte *)(param_1 + 0xc9c) & 8) != 0) {
if (*(int *)(param_1 + 0xcf4) == 0) {
local_24 = (int *)FUN_00414b60();
this = *(void **)(param_1 + 0xc94);
local_20 = (float)(*local_24 - (int)this) / DAT_0052140c;
local_28 = 0x41700000;
if (DAT_004fbcf8 == 0) {
if (local_20 < 15.0) {
if (local_20 < _DAT_00476e24) {
local_34 = local_20;
FUN_004dbb24(&DAT_00524e20,s_LBE4ControlsManager__Execute__de_004fc2e3,(char *)0x0);
piVar5 = FUN_004db634(&DAT_00524e20,(float10)local_34);
FUN_004dbb24(piVar5,&DAT_004fc319,(char *)0x0);
FUN_0047a5bc(extraout_ECX_00,extraout_EDX_00,*(short **)(param_1 + 0xc90));
puVar6 = (undefined4 *)FUN_00414b60();
*(undefined4 *)(param_1 + 0xc94) = *puVar6;
this = extraout_ECX_01;
}
}
else {
uVar7 = 0;
if (*(int *)(param_1 + 0xc94) != 0) {
FUN_004dbb24(&DAT_00524e20,s_LBE4ControlsManager__Execute__lo_004fc275,(char *)0x0);
local_2c = DAT_004fe168;
uVar8 = FUN_0047df47(extraout_ECX,DAT_004fe168);
uVar2 = DAT_004fe164;
local_30 = (uint)uVar8;
FUN_004dbb24(&DAT_00524e20,s_iThinkIRQIsOn___004fc2ac,(char *)0x0);
piVar5 = FUN_004db78c(&DAT_00524e20,uVar2);
FUN_004dbb24(piVar5,s___actual_state___004fc2bc,(char *)0x0);
piVar5 = FUN_004db78c(piVar5,local_30);
FUN_004dbb24(piVar5,s___characters_sent___004fc2cd,(char *)0x0);
piVar5 = FUN_004db78c(piVar5,local_2c);
FUN_004dbb24(piVar5,&DAT_004fc2e1,(char *)0x0);
uVar7 = extraout_EDX;
}
FUN_0047a5bc(*(undefined4 *)(param_1 + 0xc90),uVar7,
(short *)*(undefined4 *)(param_1 + 0xc90));
puVar6 = (undefined4 *)FUN_00414b60();
this = (void *)*puVar6;
*(void **)(param_1 + 0xc94) = this;
}
}
else {
this = (void *)0x0;
DAT_004fbcf8 = 0;
}
}
while (iVar4 = FUN_00477484(this,param_1,local_60), iVar4 != 0) {
FUN_00477800(param_1,(int *)local_60,&local_1c);
this = extraout_ECX_02;
}
}
if ((*(byte *)(param_1 + 0xc9c) & 4) != 0) {
piVar5 = (int *)FUN_00414b60();
local_38 = (float)(*piVar5 - *(int *)(param_1 + 0x15c));
if ((float)_DAT_00476e28 < local_38) {
(**(code **)(**(int **)(param_1 + 0x150) + 0xc))((char)*(int **)(param_1 + 0x150));
*(float *)(*(int *)(param_1 + 0x150) + 4) = -*(float *)(*(int *)(param_1 + 0x150) + 4);
puVar6 = (undefined4 *)FUN_00414b60();
*(undefined4 *)(param_1 + 0x15c) = *puVar6;
}
}
if ((*(byte *)(param_1 + 0xc9c) & 1) != 0) {
FUN_00479014(*(int *)(param_1 + 0xc70),&local_18,&local_14);
*(int *)(param_1 + 0x154) = *(int *)(param_1 + 0x154) + local_18;
*(int *)(param_1 + 0x158) = *(int *)(param_1 + 0x158) + local_14;
if (0x800 < *(int *)(param_1 + 0x154)) {
*(undefined4 *)(param_1 + 0x154) = 0x800;
}
if (*(int *)(param_1 + 0x154) < -0x800) {
*(undefined4 *)(param_1 + 0x154) = 0xfffff800;
}
local_c = (float)*(int *)(param_1 + 0x154) * _DAT_00476e30;
if (0x800 < *(int *)(param_1 + 0x158)) {
*(undefined4 *)(param_1 + 0x158) = 0x800;
}
if (*(int *)(param_1 + 0x158) < -0x800) {
*(undefined4 *)(param_1 + 0x158) = 0xfffff800;
}
local_8 = (float)*(int *)(param_1 + 0x158) * _DAT_00476e30;
}
uVar9 = (undefined1)uVar1;
if (((*(byte *)(param_1 + 0xc9c) & 8) == 0) || (local_1c == 0)) {
if ((*(byte *)(param_1 + 0xc9c) & 4) != 0) {
(**(code **)(*(int *)(param_1 + 0x24) + 0x10))
(param_1 + 0x24,*(int *)(param_1 + 0x150) + 0x10,uVar9);
(**(code **)(*(int *)(param_1 + 0x84) + 0x10))
(param_1 + 0x84,*(int *)(param_1 + 0x150) + 4,uVar9);
(**(code **)(*(int *)(param_1 + 0xa4) + 0x10))
(param_1 + 0xa4,*(int *)(param_1 + 0x150) + 8,uVar9);
}
}
else {
(**(code **)(*(int *)(param_1 + 0x24) + 0x10))
(param_1 + 0x24,*(int *)(param_1 + 0xc90) + 0x440,uVar9);
(**(code **)(*(int *)(param_1 + 0x44) + 0x10))
(param_1 + 0x44,*(int *)(param_1 + 0xc90) + 0x444,uVar9);
(**(code **)(*(int *)(param_1 + 100) + 0x10))
(param_1 + 100,*(int *)(param_1 + 0xc90) + 0x448,uVar9);
(**(code **)(*(int *)(param_1 + 0x84) + 0x10))
(param_1 + 0x84,*(int *)(param_1 + 0xc90) + 0x44c,uVar9);
(**(code **)(*(int *)(param_1 + 0xa4) + 0x10))
(param_1 + 0xa4,*(int *)(param_1 + 0xc90) + 0x450,uVar9);
}
if ((*(byte *)(param_1 + 0xc9c) & 1) != 0) {
(**(code **)(*(int *)(param_1 + 0xc4) + 0x10))(param_1 + 0xc4,&local_c,uVar9);
(**(code **)(*(int *)(param_1 + 0xe4) + 0x10))(param_1 + 0xe4,&local_8,uVar9);
}
if (((*(byte *)(param_1 + 0xc9c) & 8) == 0) || (local_1c == 0)) {
if ((*(byte *)(param_1 + 0xc9c) & 4) != 0) {
(**(code **)(*(int *)(param_1 + 0x104) + 0x10))
(param_1 + 0x104,*(int *)(param_1 + 0x150) + 4,uVar9);
}
}
else {
local_40 = *(undefined4 *)(*(int *)(param_1 + 0xc90) + 0x44c);
local_3c = *(undefined4 *)(*(int *)(param_1 + 0xc90) + 0x450);
(**(code **)(*(int *)(param_1 + 0x104) + 0x10))(param_1 + 0x104,&local_40,uVar9);
}
if ((*(byte *)(param_1 + 0xc9c) & 1) != 0) {
(**(code **)(*(int *)(param_1 + 0x128) + 0x10))(param_1 + 0x128,&local_c,uVar9);
}
if (((*(byte *)(param_1 + 0xc9c) & 2) != 0) && (local_10 = FUN_00478fb8(), local_10 != 0)) {
FUN_004781f7(param_1 + 0x1a0,&local_10,uVar1);
FUN_0044c9d4(param_1 + 0xc74,2,(char)local_10);
}
if ((*(byte *)(param_1 + 0xc9c) & 4) != 0) {
uVar1 = *(uint *)(*(int *)(param_1 + 0x150) + 0x14);
if (uVar1 != 0) {
if ((uVar1 & 1) != 0) {
local_44 = 0xffffffbf;
(**(code **)(*(int *)(param_1 + 0x9c0) + 0x10))(param_1 + 0x9c0,&local_44,uVar9);
}
if ((uVar1 & 2) != 0) {
local_44 = 0xffffffba;
(**(code **)(*(int *)(param_1 + 0xa60) + 0x10))(param_1 + 0xa60,&local_44,uVar9);
}
if ((uVar1 & 4) != 0) {
local_44 = 0xffffffb9;
(**(code **)(*(int *)(param_1 + 0xa80) + 0x10))(param_1 + 0xa80,&local_44,uVar9);
}
if ((uVar1 & 8) != 0) {
local_44 = 0xffffffb8;
(**(code **)(*(int *)(param_1 + 0xaa0) + 0x10))(param_1 + 0xaa0,&local_44,uVar9);
}
if ((uVar1 & 0x10) != 0) {
local_44 = 0xffffffbd;
(**(code **)(*(int *)(param_1 + 0xa00) + 0x10))(param_1 + 0xa00,&local_44,uVar9);
}
if ((uVar1 & 0x20) != 0) {
local_44 = 0xffffffbe;
(**(code **)(*(int *)(param_1 + 0x9e0) + 0x10))(param_1 + 0x9e0,&local_44,uVar9);
}
if ((uVar1 & 0x40) != 0) {
local_44 = 0xffffffbb;
(**(code **)(*(int *)(param_1 + 0xa40) + 0x10))(param_1 + 0xa40,&local_44,uVar9);
}
if ((uVar1 & 0x80) != 0) {
local_44 = 0xffffffbc;
(**(code **)(*(int *)(param_1 + 0xa20) + 0x10))(param_1 + 0xa20,&local_44,uVar9);
}
}
uVar1 = *(uint *)(*(int *)(param_1 + 0x150) + 0x18);
if (uVar1 != 0) {
if ((uVar1 & 1) != 0) {
local_44 = 0x41;
(**(code **)(*(int *)(param_1 + 0x9c0) + 0x10))(param_1 + 0x9c0,&local_44,uVar9);
}
if ((uVar1 & 2) != 0) {
local_44 = 0x46;
(**(code **)(*(int *)(param_1 + 0xa60) + 0x10))(param_1 + 0xa60,&local_44,uVar9);
}
if ((uVar1 & 4) != 0) {
local_44 = 0x47;
(**(code **)(*(int *)(param_1 + 0xa80) + 0x10))(param_1 + 0xa80,&local_44,uVar9);
}
if ((uVar1 & 8) != 0) {
local_44 = 0x48;
(**(code **)(*(int *)(param_1 + 0xaa0) + 0x10))(param_1 + 0xaa0,&local_44,uVar9);
}
if ((uVar1 & 0x10) != 0) {
local_44 = 0x43;
(**(code **)(*(int *)(param_1 + 0xa00) + 0x10))(param_1 + 0xa00,&local_44,uVar9);
}
if ((uVar1 & 0x20) != 0) {
local_44 = 0x42;
(**(code **)(*(int *)(param_1 + 0x9e0) + 0x10))(param_1 + 0x9e0,&local_44,uVar9);
}
if ((uVar1 & 0x40) != 0) {
local_44 = 0x45;
(**(code **)(*(int *)(param_1 + 0xa40) + 0x10))(param_1 + 0xa40,&local_44,uVar9);
}
if ((uVar1 & 0x80) != 0) {
local_44 = 0x44;
(**(code **)(*(int *)(param_1 + 0xa20) + 0x10))(param_1 + 0xa20,&local_44,uVar9);
}
}
}
if ((*(byte *)(param_1 + 0xc9c) & 1) != 0) {
iVar4 = 0;
local_4c = **(int **)(param_1 + 0xc70);
local_54 = (int *)(param_1 + 0xac0);
local_48 = 0x48;
if (0 < local_4c) {
do {
uVar3 = FUN_0047905c(*(int *)(param_1 + 0xc70),(short)iVar4);
if (CONCAT22(extraout_var,uVar3) != 0) {
local_50 = local_48 + 1;
(**(code **)(*local_54 + 0x10))(local_48 * 0x20 + param_1 + 0x1c0,&local_50,uVar9);
}
uVar3 = FUN_00479080(*(int *)(param_1 + 0xc70),(short)iVar4);
if (CONCAT22(extraout_var_00,uVar3) != 0) {
local_50 = -1 - local_48;
(**(code **)(*local_54 + 0x10))(local_48 * 0x20 + param_1 + 0x1c0,&local_50,uVar9);
}
local_54 = local_54 + 8;
local_48 = local_48 + 1;
iVar4 = iVar4 + 1;
} while (iVar4 < local_4c);
}
(**(code **)(*(int *)(param_1 + 0xc4c) + 0x10))(param_1 + 0xc4c,&local_18,uVar9);
}
return;
}
/* @00476e34 file=? name=FUN_00476e34 */
void __cdecl FUN_00476e34(int param_1)
{
if ((*(byte *)(param_1 + 0xc9c) & 4) != 0) {
(**(code **)(**(int **)(param_1 + 0x150) + 4))(*(int **)(param_1 + 0x150));
}
return;
}
/* @00476e54 file=? name=FUN_00476e54 */
void __cdecl FUN_00476e54(int param_1)
{
if ((*(byte *)(param_1 + 0xc9c) & 8) != 0) {
FUN_0047a4cc(*(int *)(param_1 + 0xc90));
}
if ((*(byte *)(param_1 + 0xc9c) & 4) != 0) {
(**(code **)(**(int **)(param_1 + 0x150) + 8))(*(int **)(param_1 + 0x150));
}
return;
}
/* @00476e8c file=? name=FUN_00476e8c */
void __cdecl FUN_00476e8c(int param_1)
{
if ((*(byte *)(param_1 + 0xc9c) & 8) != 0) {
FUN_0047a4cc(*(int *)(param_1 + 0xc90));
}
return;
}
/* @00476eac file=? name=FUN_00476eac */
void __cdecl FUN_00476eac(int param_1,float param_2)
{
if ((*(byte *)(param_1 + 0xc9c) & 8) != 0) {
FUN_0047a4f0(*(int *)(param_1 + 0xc90),param_2);
}
if ((*(byte *)(param_1 + 0xc9c) & 4) != 0) {
FUN_004756b0(*(int *)(param_1 + 0x150),param_2);
}
return;
}
/* @00476eec file=? name=FUN_00476eec */
void __cdecl FUN_00476eec(int param_1,float param_2)
{
if ((*(byte *)(param_1 + 0xc9c) & 8) != 0) {
FUN_0047a520(*(int *)(param_1 + 0xc90),param_2);
}
return;
}
/* @00476f10 file=? name=FUN_00476f10 */
void __cdecl FUN_00476f10(int param_1,float param_2)
{
if ((*(byte *)(param_1 + 0xc9c) & 8) != 0) {
FUN_0047a53c(*(int *)(param_1 + 0xc90),param_2);
}
return;
}
/* @00476f34 file=? name=FUN_00476f34 */
char * __cdecl FUN_00476f34(int param_1)
{
char *pcVar1;
int iVar2;
undefined **ppuVar3;
undefined4 *puVar4;
undefined4 local_100 [63];
ppuVar3 = &PTR_s_AuxLowerRight8_004fbcfc;
puVar4 = local_100;
for (iVar2 = 0x3f; iVar2 != 0; iVar2 = iVar2 + -1) {
*puVar4 = *ppuVar3;
ppuVar3 = ppuVar3 + 1;
puVar4 = puVar4 + 1;
}
if (param_1 < 0x40) {
if (param_1 < 0) {
pcVar1 = s_underrange_004fc690;
}
else {
pcVar1 = (char *)local_100[param_1];
}
}
else {
pcVar1 = s_overrange_004fc686;
}
return pcVar1;
}
/* @00476f78 file=? name=FUN_00476f78 */
bool __cdecl FUN_00476f78(char *param_1,undefined4 *param_2)
{
int iVar1;
undefined **ppuVar2;
int iVar3;
iVar3 = 0;
ppuVar2 = &PTR_s_ScalarThrottle_004fbdf8;
do {
iVar1 = FUN_004d4b58(param_1,*ppuVar2);
if (iVar1 == 0) {
*param_2 = ppuVar2[1];
param_2[1] = ppuVar2[2];
break;
}
iVar3 = iVar3 + 1;
ppuVar2 = ppuVar2 + 3;
} while (iVar3 < 0x43);
return iVar3 < 0x43;
}
/* @00476fc0 file=? name=FUN_00476fc0 */
int * __cdecl FUN_00476fc0(int param_1,int param_2,undefined4 param_3)
{
undefined4 uVar1;
int *piVar2;
if (*(int *)(DAT_004efc94 + 0x4c) == 0) {
piVar2 = (int *)0x0;
}
else {
uVar1 = *(undefined4 *)(*(int *)(DAT_004efc94 + 0x4c) + 0x1c0c8);
piVar2 = (int *)FUN_00402298(0x30);
if (piVar2 == (int *)0x0) {
piVar2 = (int *)0x0;
}
else {
piVar2 = FUN_00474d80(piVar2,param_2,param_3,uVar1);
}
(**(code **)(*(int *)(param_1 + 0x1c0 + param_2 * 0x20) + 0x18))
(param_2 * 0x20 + param_1 + 0x1c0,param_3,piVar2 + 8,piVar2);
}
return piVar2;
}
/* @0047703c file=munga_l4/l4ctrl.cpp name=FUN_0047703c */
void __cdecl FUN_0047703c(int param_1,int param_2,int *param_3)
{
int iVar1;
int iVar2;
int iVar3;
int iVar4;
int iVar5;
int iVar6;
int *piVar7;
int local_c;
iVar1 = *param_3;
piVar7 = param_3 + 1;
local_c = 0;
if (0 < iVar1) {
do {
iVar5 = FUN_0041f964(param_2,piVar7[3]);
iVar2 = piVar7[1];
iVar3 = piVar7[4];
if (piVar7[2] == 0) {
iVar6 = FUN_0041bf44(iVar5,piVar7[5]);
iVar4 = *piVar7;
if (iVar4 == 0) {
(**(code **)(*(int *)(param_1 + 0x24 + iVar2 * 0x20) + 0x18))
(iVar2 * 0x20 + param_1 + 0x24,iVar3,iVar6,iVar5);
}
else if (iVar4 == 1) {
(**(code **)(*(int *)(param_1 + 0x104 + iVar2 * 0x24) + 0x18))
(iVar2 * 0x24 + param_1 + 0x104,iVar3,iVar6,iVar5);
}
else if (iVar4 == 3) {
(**(code **)(*(int *)(param_1 + 0x1c0 + iVar2 * 0x20) + 0x18))
(iVar2 * 0x20 + param_1 + 0x1c0,iVar3,iVar6,iVar5);
if ((&DAT_004fbc74)[iVar2] == '\x01') {
FUN_00476fc0(param_1,iVar2,iVar3);
}
}
else {
FUN_0040385c(s_Unknown_mapping_group__004fcbc2,s_d__tesla_bt_munga_l4_L4CTRL_CPP_004fcbda,
0x7bf);
}
}
else if (piVar7[2] == 1) {
iVar4 = piVar7[5];
iVar6 = *piVar7;
if (iVar6 == 0) {
(**(code **)(*(int *)(param_1 + 0x24 + iVar2 * 0x20) + 0x14))
(iVar2 * 0x20 + param_1 + 0x24,iVar3,iVar5,iVar4,iVar5);
}
else if (iVar6 == 1) {
(**(code **)(*(int *)(param_1 + 0x104 + iVar2 * 0x24) + 0x14))
(iVar2 * 0x24 + param_1 + 0x104,iVar3,iVar5,iVar4,iVar5);
}
else if (iVar6 == 3) {
(**(code **)(*(int *)(param_1 + 0x1c0 + iVar2 * 0x20) + 0x14))
(iVar2 * 0x20 + param_1 + 0x1c0,iVar3,iVar5,iVar4,iVar5);
if ((&DAT_004fbc74)[iVar2] == '\x01') {
FUN_00476fc0(param_1,iVar2,iVar3);
}
}
else {
FUN_0040385c(s_Unknown_mapping_group__004fcbfa,s_d__tesla_bt_munga_l4_L4CTRL_CPP_004fcc12,
0x7f4);
}
}
else {
FUN_0040385c(s_Unknown_mapping_type__004fcc32,s_d__tesla_bt_munga_l4_L4CTRL_CPP_004fcc49,
0x7fa);
}
piVar7 = piVar7 + 6;
local_c = local_c + 1;
} while (local_c < iVar1);
}
return;
}
/* @00477284 file=? name=FUN_00477284 */
undefined8 __cdecl
FUN_00477284(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)
{
undefined4 uVar1;
undefined8 uVar2;
*(undefined4 *)(param_1 + 0xca0) = param_2;
FUN_00414b60();
uVar1 = FUN_004dcd94();
*(undefined4 *)(param_1 + 0xca4) = uVar1;
*(undefined4 *)(param_1 + 0xca8) = param_4;
uVar2 = FUN_00476568(param_1,0x3d,0x33);
return uVar2;
}
/* @004772e8 file=? name=FUN_004772e8 */
undefined8 __cdecl FUN_004772e8(int param_1)
{
int *piVar1;
int iVar2;
undefined8 uVar3;
iVar2 = 0;
*(undefined4 *)(param_1 + 0xca0) = 0;
piVar1 = (int *)(param_1 + 0xcac);
do {
if (*piVar1 != 0) {
FUN_0044c970(param_1 + 0xc74,*piVar1);
}
iVar2 = iVar2 + 1;
piVar1 = piVar1 + 1;
} while (iVar2 < 0x10);
uVar3 = FUN_00476568(param_1,0x3d,0);
return uVar3;
}
/* @00477334 file=? name=FUN_00477334 */
void __cdecl FUN_00477334(int *param_1)
{
int *piVar1;
undefined4 local_10;
int local_c;
undefined4 local_8;
if (param_1[0x328] != 0) {
piVar1 = (int *)FUN_00414b60();
if (param_1[0x329] <= *piVar1) {
local_c = param_1[0x32a];
local_10 = 0xc;
local_8 = 1;
(**(code **)(*param_1 + 0xc))(param_1,&local_10);
}
}
return;
}
/* @00477388 file=? name=FUN_00477388 */
void __cdecl FUN_00477388(int param_1)
{
FUN_0044c704(param_1);
return;
}
/* @00477398 file=? name=FUN_00477398 */
bool __cdecl FUN_00477398(int param_1)
{
int iVar1;
bool bVar2;
bool bVar3;
bool bVar4;
bool bVar5;
bool bVar6;
bool bVar7;
bVar7 = false;
iVar1 = *(int *)(param_1 + 0xc90);
if ((iVar1 != 0) &&
(bVar2 = *(float *)(iVar1 + 0x440) != *(float *)(param_1 + 0xd04),
bVar3 = *(float *)(iVar1 + 0x444) != *(float *)(param_1 + 0xd08),
bVar4 = *(float *)(iVar1 + 0x448) != *(float *)(param_1 + 0xd0c),
bVar5 = *(float *)(iVar1 + 0x44c) != *(float *)(param_1 + 0xcfc),
bVar6 = *(float *)(iVar1 + 0x450) != *(float *)(param_1 + 0xd00),
bVar7 = (((bVar2 || bVar3) || bVar4) || bVar5) || bVar6,
(((bVar2 || bVar3) || bVar4) || bVar5) || bVar6)) {
*(undefined4 *)(param_1 + 0xd04) = *(undefined4 *)(*(int *)(param_1 + 0xc90) + 0x440);
*(undefined4 *)(param_1 + 0xd08) = *(undefined4 *)(*(int *)(param_1 + 0xc90) + 0x444);
*(undefined4 *)(param_1 + 0xd0c) = *(undefined4 *)(*(int *)(param_1 + 0xc90) + 0x448);
*(undefined4 *)(param_1 + 0xcfc) = *(undefined4 *)(*(int *)(param_1 + 0xc90) + 0x44c);
*(undefined4 *)(param_1 + 0xd00) = *(undefined4 *)(*(int *)(param_1 + 0xc90) + 0x450);
}
return bVar7;
}
/* @00477484 file=? name=FUN_00477484 */
int __thiscall FUN_00477484(void *this,int param_1,uint *param_2)
{
bool bVar1;
int iVar2;
uint uVar3;
uint *puVar4;
int *piVar5;
undefined3 extraout_var;
undefined8 uVar6;
undefined *puVar7;
uint *puVar8;
undefined *puVar9;
if (*(int *)(param_1 + 0xcf4) == 0) {
iVar2 = FUN_0047a0e8(this,*(undefined4 *)(param_1 + 0xc90),*(undefined4 *)(param_1 + 0xc90),
param_2);
if (((iVar2 != 0) && (*(int *)(param_1 + 0xcf8) != 0)) &&
(uVar3 = (**(code **)(**(int **)(param_1 + 0xcec) + 4))(*(int **)(param_1 + 0xcec)),
0x1b < uVar3)) {
puVar4 = (uint *)(**(code **)**(undefined4 **)(param_1 + 0xcec))
(*(undefined4 **)(param_1 + 0xcec));
piVar5 = (int *)FUN_00414b60();
*puVar4 = *piVar5 - *(int *)(param_1 + 0xcf0);
if (*param_2 == 3) {
bVar1 = FUN_00477398(param_1);
if (CONCAT31(extraout_var,bVar1) != 0) {
uVar3 = *puVar4;
FUN_004dbb24(&DAT_00524e20,s_AnalogEvent_at_004fcc69,(char *)0x0);
piVar5 = FUN_004db78c(&DAT_00524e20,uVar3);
FUN_004dbb24(piVar5,&DAT_004fcc78,(char *)0x0);
puVar9 = &LAB_004d9c84;
puVar7 = &LAB_004d9ca4;
puVar8 = puVar4;
FUN_004dbb24(&DAT_00524e20,s_Pointer__004fcc7a,(char *)0x0);
piVar5 = FUN_004dbaa8(&DAT_00524e20,puVar7);
uVar6 = FUN_004dbd4c(piVar5,(uint)puVar8);
piVar5 = FUN_004dbaa8((undefined4 *)uVar6,puVar9);
FUN_004dbb24(piVar5,&DAT_004fcc83,(char *)0x0);
puVar4[1] = 0;
puVar4[4] = *(uint *)(*(int *)(param_1 + 0xc90) + 0x440);
puVar4[5] = *(uint *)(*(int *)(param_1 + 0xc90) + 0x444);
puVar4[6] = *(uint *)(*(int *)(param_1 + 0xc90) + 0x448);
puVar4[2] = *(uint *)(*(int *)(param_1 + 0xc90) + 0x44c);
puVar4[3] = *(uint *)(*(int *)(param_1 + 0xc90) + 0x450);
(**(code **)(**(int **)(param_1 + 0xcec) + 0x14))(*(int **)(param_1 + 0xcec),0x1c);
}
}
else {
uVar3 = *puVar4;
FUN_004dbb24(&DAT_00524e20,s_DigitalEvent_at_004fcc85,(char *)0x0);
piVar5 = FUN_004db78c(&DAT_00524e20,uVar3);
FUN_004dbb24(piVar5,&DAT_004fcc95,(char *)0x0);
puVar9 = &LAB_004d9c84;
puVar7 = &LAB_004d9ca4;
puVar8 = puVar4;
FUN_004dbb24(&DAT_00524e20,s_Pointer__004fcc97,(char *)0x0);
piVar5 = FUN_004dbaa8(&DAT_00524e20,puVar7);
uVar6 = FUN_004dbd4c(piVar5,(uint)puVar8);
piVar5 = FUN_004dbaa8((undefined4 *)uVar6,puVar9);
FUN_004dbb24(piVar5,&DAT_004fcca0,(char *)0x0);
puVar4[1] = 1;
puVar4[2] = *param_2;
puVar4[3] = param_2[1];
puVar4[4] = param_2[2];
(**(code **)(**(int **)(param_1 + 0xcec) + 0x14))(*(int **)(param_1 + 0xcec),0x1c);
}
}
}
else {
if ((*(int *)(param_1 + 0xcf8) != 0) &&
(uVar3 = (**(code **)(**(int **)(param_1 + 0xcec) + 4))(*(int **)(param_1 + 0xcec)),
0x1b < uVar3)) {
puVar4 = (uint *)(**(code **)**(undefined4 **)(param_1 + 0xcec))
(*(undefined4 **)(param_1 + 0xcec));
piVar5 = (int *)FUN_00414b60();
if ((int)*puVar4 <= *piVar5 - *(int *)(param_1 + 0xcf0)) {
uVar3 = *puVar4;
FUN_004dbb24(&DAT_00524e20,s_Event_timestamp__004fcca2,(char *)0x0);
piVar5 = FUN_004db78c(&DAT_00524e20,uVar3);
FUN_004dbb24(piVar5,&DAT_004fccb3,(char *)0x0);
if (puVar4[1] == 0) {
FUN_004dbb24(&DAT_00524e20,s_AnalogEvent_004fccb5,(char *)0x0);
*param_2 = 3;
iVar2 = *(int *)(param_1 + 0xc90);
*(uint *)(iVar2 + 0x440) = puVar4[4];
*(uint *)(iVar2 + 0x444) = puVar4[5];
*(uint *)(iVar2 + 0x448) = puVar4[6];
*(uint *)(iVar2 + 0x44c) = puVar4[2];
*(uint *)(iVar2 + 0x450) = puVar4[3];
}
else if (puVar4[1] == 1) {
FUN_004dbb24(&DAT_00524e20,s_DigitalEvent_004fccc2,(char *)0x0);
*param_2 = puVar4[2];
param_2[1] = puVar4[3];
param_2[2] = puVar4[4];
}
(**(code **)(**(int **)(param_1 + 0xcec) + 0x14))(*(int **)(param_1 + 0xcec),0x1c);
return 1;
}
}
iVar2 = 0;
}
return iVar2;
}
/* @00477800 file=? name=FUN_00477800 */
void __cdecl FUN_00477800(int param_1,int *param_2,undefined4 *param_3)
{
int iVar1;
uint uVar2;
int local_c;
int local_8;
iVar1 = *param_2;
uVar2 = *(uint *)(*(int *)(DAT_004efc94 + 0x50) + 4);
if (iVar1 == 0) {
local_8 = param_2[1] + 1;
(**(code **)(*(int *)(param_1 + 0x1c0 + param_2[1] * 0x20) + 0x10))
(param_2[1] * 0x20 + param_1 + 0x1c0,&local_8,uVar2);
*(uint *)(param_1 + 0xb20 + param_2[1] * 4) = uVar2;
}
else if (iVar1 == 1) {
local_8 = -1 - param_2[1];
(**(code **)(*(int *)(param_1 + 0x1c0 + param_2[1] * 0x20) + 0x10))
(param_2[1] * 0x20 + param_1 + 0x1c0,&local_8,
*(undefined4 *)(param_1 + 0xb20 + param_2[1] * 4));
}
else if (iVar1 == 2) {
local_c = param_2[2];
if (local_c < 10) {
local_c = local_c + 0x30;
}
else {
local_c = local_c + 0x37;
}
FUN_004781f7(param_2[1] * 0x20 + param_1 + 0x160,&local_c,uVar2);
FUN_0044c9d4(param_1 + 0xc74,param_2[1],(char)local_c);
}
else if (iVar1 == 3) {
*(undefined4 *)(param_1 + 0xc94) = 0;
*param_3 = 1;
}
return;
}
/* @0047790c file=? name=FUN_0047790c */
void __cdecl FUN_0047790c(int param_1,LPCSTR param_2)
{
undefined **local_20 [6];
int local_8;
FUN_004034b0(local_20,param_2,1);
local_8 = *(int *)(*(int *)(param_1 + 0xcec) + 8) - *(int *)(*(int *)(param_1 + 0xcec) + 4);
if (local_8 != 0) {
(**(code **)(**(int **)(param_1 + 0xcec) + 0xc))(*(int **)(param_1 + 0xcec),0);
(*(code *)local_20[0][8])(local_20,&local_8,4);
FUN_00403248((int *)local_20,*(int **)(param_1 + 0xcec));
}
local_20[0] = &PTR_FUN_004e09e0;
FUN_00403564((int)local_20);
return;
}
/* @00477990 file=? name=FUN_00477990 */
void __cdecl FUN_00477990(undefined4 param_1,LPCSTR param_2)
{
char *extraout_EAX;
undefined4 *puVar1;
int iVar2;
int *piVar3;
undefined **local_20 [6];
char *local_8;
FUN_004034b0(local_20,param_2,0);
local_8 = (char *)0x0;
(*(code *)local_20[0][7])(local_20,&local_8,4);
piVar3 = FUN_004de998((int *)0x0,0x1c,12000,1,FUN_00477a8e);
puVar1 = (undefined4 *)FUN_00402298(0x10);
if (puVar1 == (undefined4 *)0x0) {
iVar2 = 0;
}
else {
iVar2 = FUN_004030dc(puVar1,extraout_EAX,local_8,0);
}
piVar3[0x33b] = iVar2;
FUN_004035f0((int)local_20,extraout_EAX,local_8);
local_20[0] = &PTR_FUN_004e09e0;
FUN_00403564((int)local_20);
return;
}
/* @00477a8e file=? name=FUN_00477a8e */
undefined4 __cdecl FUN_00477a8e(undefined4 param_1)
{
return param_1;
}
/* @00477a96 file=? name=FUN_00477a96 */
undefined4 FUN_00477a96(void)
{
return 1;
}
/* @00477aa0 file=? name=FUN_00477aa0 */
undefined4 * __cdecl FUN_00477aa0(undefined4 *param_1)
{
FUN_0044c3f8(param_1);
*param_1 = &PTR_FUN_004fce7c;
return param_1;
}
/* @00477ab9 file=? name=FUN_00477ab9 */
void __cdecl FUN_00477ab9(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004fce7c;
FUN_0044c424(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00477ae5 file=? name=FUN_00477ae5 */
void __cdecl FUN_00477ae5(int param_1,float *param_2,uint param_3)
{
if (*(float *)(param_1 + 0x1c) != *param_2) {
FUN_00477b08(param_1,param_2,param_3);
}
return;
}
/* @00477b08 file=? name=FUN_00477b08 */
void __cdecl FUN_00477b08(int param_1,undefined4 *param_2,uint param_3)
{
*(undefined4 *)(param_1 + 0x1c) = *param_2;
FUN_0044c4d0(param_1,param_2,param_3);
return;
}
/* @00477b26 file=? name=FUN_00477b26 */
undefined4 * __cdecl
FUN_00477b26(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5
)
{
undefined4 *puVar1;
puVar1 = (undefined4 *)FUN_00402298(0x24);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_00478877(puVar1,param_2,param_3,param_4,param_5);
}
(**(code **)(*(int *)(param_1 + 0xc) + 4))(param_1 + 0xc,puVar1);
return puVar1;
}
/* @00477b71 file=? name=FUN_00477b71 */
undefined4 * __cdecl
FUN_00477b71(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)
{
undefined4 *puVar1;
puVar1 = (undefined4 *)FUN_00402298(0x20);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_00478970(puVar1,param_2,param_3,param_4);
}
(**(code **)(*(int *)(param_1 + 0xc) + 4))(param_1 + 0xc,puVar1);
return puVar1;
}
/* @00477bb8 file=? name=FUN_00477bb8 */
undefined4 * __cdecl
FUN_00477bb8(int param_1,uint param_2,int param_3,int param_4,undefined4 param_5)
{
undefined4 *puVar1;
int local_10 [3];
FUN_0044cb72(local_10,param_1 + 0xc);
do {
puVar1 = (undefined4 *)(**(code **)(local_10[0] + 0x28))(local_10);
if (puVar1 == (undefined4 *)0x0) goto LAB_00477c2b;
} while ((((puVar1[1] != 0x39) || (puVar1[7] != param_3)) || (puVar1[8] != param_4)) ||
((puVar1[3] & param_2) == 0));
puVar1[3] = puVar1[3] & ~param_2;
if ((puVar1[3] == 0) && (puVar1 != (undefined4 *)0x0)) {
(**(code **)*puVar1)(puVar1,3);
}
LAB_00477c2b:
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)FUN_00402298(0x24);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_00478877(puVar1,param_2,param_3,param_4,param_5);
}
(**(code **)(*(int *)(param_1 + 0xc) + 4))(param_1 + 0xc,puVar1);
FUN_0044cbb0(local_10,2);
}
else {
puVar1 = (undefined4 *)0x0;
FUN_0044cbb0(local_10,2);
}
return puVar1;
}
/* @00477c9c file=? name=FUN_00477c9c */
undefined4 * __cdecl FUN_00477c9c(int param_1,uint param_2,int param_3,undefined4 param_4)
{
undefined4 *puVar1;
int local_10 [3];
FUN_0044cb72(local_10,param_1 + 0xc);
do {
puVar1 = (undefined4 *)(**(code **)(local_10[0] + 0x28))(local_10);
if (puVar1 == (undefined4 *)0x0) goto LAB_00477d05;
} while (((puVar1[1] != 0x38) || (puVar1[7] != param_3)) || ((puVar1[3] & param_2) == 0));
puVar1[3] = puVar1[3] & ~param_2;
if ((puVar1[3] == 0) && (puVar1 != (undefined4 *)0x0)) {
(**(code **)*puVar1)(puVar1,3);
}
LAB_00477d05:
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)FUN_00402298(0x20);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_00478970(puVar1,param_2,param_3,param_4);
}
(**(code **)(*(int *)(param_1 + 0xc) + 4))(param_1 + 0xc,puVar1);
FUN_0044cbb0(local_10,2);
}
else {
puVar1 = (undefined4 *)0x0;
FUN_0044cbb0(local_10,2);
}
return puVar1;
}
/* @00477d72 file=? name=FUN_00477d72 */
uint __cdecl FUN_00477d72(int param_1,int param_2,int param_3,int param_4,uint param_5)
{
int iVar1;
uint uVar2;
int local_10 [3];
FUN_0044cb72(local_10,param_1 + 0xc);
uVar2 = 0;
while( true ) {
iVar1 = (**(code **)(local_10[0] + 0x28))(local_10);
if (iVar1 == 0) break;
if ((*(uint *)(iVar1 + 0xc) & param_5) != 0) {
if (*(int *)(iVar1 + 4) == 0x38) {
if (param_2 == *(int *)(iVar1 + 0x1c)) {
uVar2 = uVar2 | 2;
}
else {
uVar2 = uVar2 | 1;
}
}
else if ((*(int *)(iVar1 + 0x1c) == param_3) && (*(int *)(iVar1 + 0x20) == param_4)) {
uVar2 = uVar2 | 2;
}
else {
uVar2 = uVar2 | 1;
}
}
}
FUN_0044cbb0(local_10,2);
return uVar2;
}
/* @00477e02 file=? name=FUN_00477e02 */
undefined4 FUN_00477e02(void)
{
return 1;
}
/* @00477e0c file=? name=FUN_00477e0c */
undefined4 * __cdecl FUN_00477e0c(undefined4 *param_1)
{
FUN_0044c3f8(param_1);
*param_1 = &PTR_FUN_004fce54;
return param_1;
}
/* @00477e25 file=? name=FUN_00477e25 */
void __cdecl FUN_00477e25(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004fce54;
FUN_0044c424(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00477e51 file=? name=FUN_00477e51 */
void __cdecl FUN_00477e51(int param_1,float *param_2,uint param_3)
{
int iVar1;
iVar1 = FUN_0045961f((float *)(param_1 + 0x1c),param_2,0.0001);
if (iVar1 == 0) {
FUN_00477e88(param_1,param_2,param_3);
}
return;
}
/* @00477e88 file=? name=FUN_00477e88 */
void __cdecl FUN_00477e88(int param_1,undefined4 *param_2,uint param_3)
{
*(undefined4 *)(param_1 + 0x1c) = *param_2;
*(undefined4 *)(param_1 + 0x20) = param_2[1];
FUN_0044c4d0(param_1,param_2,param_3);
return;
}
/* @00477eac file=? name=FUN_00477eac */
undefined4 * __cdecl
FUN_00477eac(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5
)
{
undefined4 *puVar1;
puVar1 = (undefined4 *)FUN_00402298(0x24);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_00478a1f(puVar1,param_2,param_3,param_4,param_5);
}
(**(code **)(*(int *)(param_1 + 0xc) + 4))(param_1 + 0xc,puVar1);
return puVar1;
}
/* @00477ef7 file=? name=FUN_00477ef7 */
undefined4 * __cdecl
FUN_00477ef7(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)
{
undefined4 *puVar1;
puVar1 = (undefined4 *)FUN_00402298(0x20);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_00478b1e(puVar1,param_2,param_3,param_4);
}
(**(code **)(*(int *)(param_1 + 0xc) + 4))(param_1 + 0xc,puVar1);
return puVar1;
}
/* @00477f3e file=? name=FUN_00477f3e */
undefined4 * __cdecl
FUN_00477f3e(int param_1,uint param_2,int param_3,int param_4,undefined4 param_5)
{
undefined4 *puVar1;
int local_10 [3];
FUN_0044cb72(local_10,param_1 + 0xc);
do {
puVar1 = (undefined4 *)(**(code **)(local_10[0] + 0x28))(local_10);
if (puVar1 == (undefined4 *)0x0) goto LAB_00477fb1;
} while ((((puVar1[1] != 0x39) || (puVar1[7] != param_3)) || (puVar1[8] != param_4)) ||
((puVar1[3] & param_2) == 0));
puVar1[3] = puVar1[3] & ~param_2;
if ((puVar1[3] == 0) && (puVar1 != (undefined4 *)0x0)) {
(**(code **)*puVar1)(puVar1,3);
}
LAB_00477fb1:
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)FUN_00402298(0x24);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_00478a1f(puVar1,param_2,param_3,param_4,param_5);
}
(**(code **)(*(int *)(param_1 + 0xc) + 4))(param_1 + 0xc,puVar1);
FUN_0044cbb0(local_10,2);
}
else {
puVar1 = (undefined4 *)0x0;
FUN_0044cbb0(local_10,2);
}
return puVar1;
}
/* @00478022 file=? name=FUN_00478022 */
undefined4 * __cdecl FUN_00478022(int param_1,uint param_2,int param_3,undefined4 param_4)
{
undefined4 *puVar1;
int local_10 [3];
FUN_0044cb72(local_10,param_1 + 0xc);
do {
puVar1 = (undefined4 *)(**(code **)(local_10[0] + 0x28))(local_10);
if (puVar1 == (undefined4 *)0x0) goto LAB_0047808b;
} while (((puVar1[1] != 0x38) || (puVar1[7] != param_3)) || ((puVar1[3] & param_2) == 0));
puVar1[3] = puVar1[3] & ~param_2;
if ((puVar1[3] == 0) && (puVar1 != (undefined4 *)0x0)) {
(**(code **)*puVar1)(puVar1,3);
}
LAB_0047808b:
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)FUN_00402298(0x20);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_00478b1e(puVar1,param_2,param_3,param_4);
}
(**(code **)(*(int *)(param_1 + 0xc) + 4))(param_1 + 0xc,puVar1);
FUN_0044cbb0(local_10,2);
}
else {
puVar1 = (undefined4 *)0x0;
FUN_0044cbb0(local_10,2);
}
return puVar1;
}
/* @004780f8 file=? name=FUN_004780f8 */
uint __cdecl FUN_004780f8(int param_1,int param_2,int param_3,int param_4,uint param_5)
{
int iVar1;
uint uVar2;
int local_10 [3];
FUN_0044cb72(local_10,param_1 + 0xc);
uVar2 = 0;
while( true ) {
iVar1 = (**(code **)(local_10[0] + 0x28))(local_10);
if (iVar1 == 0) break;
if ((*(uint *)(iVar1 + 0xc) & param_5) != 0) {
if (*(int *)(iVar1 + 4) == 0x38) {
if (param_2 == *(int *)(iVar1 + 0x1c)) {
uVar2 = uVar2 | 2;
}
else {
uVar2 = uVar2 | 1;
}
}
else if ((*(int *)(iVar1 + 0x1c) == param_3) && (*(int *)(iVar1 + 0x20) == param_4)) {
uVar2 = uVar2 | 2;
}
else {
uVar2 = uVar2 | 1;
}
}
}
FUN_0044cbb0(local_10,2);
return uVar2;
}
/* @00478188 file=? name=FUN_00478188 */
undefined4 FUN_00478188(void)
{
return 1;
}
/* @00478192 file=? name=FUN_00478192 */
undefined4 * __cdecl FUN_00478192(undefined4 *param_1)
{
FUN_0044c3f8(param_1);
*param_1 = &PTR_FUN_004fce2c;
return param_1;
}
/* @004781ab file=? name=FUN_004781ab */
void __cdecl FUN_004781ab(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004fce2c;
FUN_0044c424(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @004781d7 file=? name=FUN_004781d7 */
void __cdecl FUN_004781d7(int param_1,int *param_2,uint param_3)
{
if (*(int *)(param_1 + 0x1c) != *param_2) {
FUN_004781f7(param_1,param_2,param_3);
}
return;
}
/* @004781f7 file=? name=FUN_004781f7 */
void __cdecl FUN_004781f7(int param_1,undefined4 *param_2,uint param_3)
{
*(undefined4 *)(param_1 + 0x1c) = *param_2;
FUN_0044c4d0(param_1,param_2,param_3);
return;
}
/* @00478215 file=? name=FUN_00478215 */
undefined4 * __cdecl
FUN_00478215(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5
)
{
undefined4 *puVar1;
puVar1 = (undefined4 *)FUN_00402298(0x24);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_00478bd3(puVar1,param_2,param_3,param_4,param_5);
}
(**(code **)(*(int *)(param_1 + 0xc) + 4))(param_1 + 0xc,puVar1);
return puVar1;
}
/* @00478260 file=? name=FUN_00478260 */
undefined4 * __cdecl
FUN_00478260(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)
{
undefined4 *puVar1;
puVar1 = (undefined4 *)FUN_00402298(0x20);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_00478ccc(puVar1,param_2,param_3,param_4);
}
(**(code **)(*(int *)(param_1 + 0xc) + 4))(param_1 + 0xc,puVar1);
return puVar1;
}
/* @004782a7 file=? name=FUN_004782a7 */
undefined4 * __cdecl
FUN_004782a7(int param_1,uint param_2,int param_3,int param_4,undefined4 param_5)
{
undefined4 *puVar1;
int local_10 [3];
FUN_0044cb72(local_10,param_1 + 0xc);
do {
puVar1 = (undefined4 *)(**(code **)(local_10[0] + 0x28))(local_10);
if (puVar1 == (undefined4 *)0x0) goto LAB_0047831a;
} while ((((puVar1[1] != 0x39) || (puVar1[7] != param_3)) || (puVar1[8] != param_4)) ||
((puVar1[3] & param_2) == 0));
puVar1[3] = puVar1[3] & ~param_2;
if ((puVar1[3] == 0) && (puVar1 != (undefined4 *)0x0)) {
(**(code **)*puVar1)(puVar1,3);
}
LAB_0047831a:
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)FUN_00402298(0x24);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_00478bd3(puVar1,param_2,param_3,param_4,param_5);
}
(**(code **)(*(int *)(param_1 + 0xc) + 4))(param_1 + 0xc,puVar1);
FUN_0044cbb0(local_10,2);
}
else {
puVar1 = (undefined4 *)0x0;
FUN_0044cbb0(local_10,2);
}
return puVar1;
}
/* @0047838b file=? name=FUN_0047838b */
undefined4 * __cdecl FUN_0047838b(int param_1,uint param_2,int param_3,undefined4 param_4)
{
undefined4 *puVar1;
int local_10 [3];
FUN_0044cb72(local_10,param_1 + 0xc);
do {
puVar1 = (undefined4 *)(**(code **)(local_10[0] + 0x28))(local_10);
if (puVar1 == (undefined4 *)0x0) goto LAB_004783f4;
} while (((puVar1[1] != 0x38) || (puVar1[7] != param_3)) || ((puVar1[3] & param_2) == 0));
puVar1[3] = puVar1[3] & ~param_2;
if ((puVar1[3] == 0) && (puVar1 != (undefined4 *)0x0)) {
(**(code **)*puVar1)(puVar1,3);
}
LAB_004783f4:
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)FUN_00402298(0x20);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_00478ccc(puVar1,param_2,param_3,param_4);
}
(**(code **)(*(int *)(param_1 + 0xc) + 4))(param_1 + 0xc,puVar1);
FUN_0044cbb0(local_10,2);
}
else {
puVar1 = (undefined4 *)0x0;
FUN_0044cbb0(local_10,2);
}
return puVar1;
}
/* @00478461 file=? name=FUN_00478461 */
uint __cdecl FUN_00478461(int param_1,int param_2,int param_3,int param_4,uint param_5)
{
int iVar1;
uint uVar2;
int local_10 [3];
FUN_0044cb72(local_10,param_1 + 0xc);
uVar2 = 0;
while( true ) {
iVar1 = (**(code **)(local_10[0] + 0x28))(local_10);
if (iVar1 == 0) break;
if ((*(uint *)(iVar1 + 0xc) & param_5) != 0) {
if (*(int *)(iVar1 + 4) == 0x38) {
if (param_2 == *(int *)(iVar1 + 0x1c)) {
uVar2 = uVar2 | 2;
}
else {
uVar2 = uVar2 | 1;
}
}
else if ((*(int *)(iVar1 + 0x1c) == param_3) && (*(int *)(iVar1 + 0x20) == param_4)) {
uVar2 = uVar2 | 2;
}
else {
uVar2 = uVar2 | 1;
}
}
}
FUN_0044cbb0(local_10,2);
return uVar2;
}
/* @004784f1 file=? name=FUN_004784f1 */
undefined4 FUN_004784f1(void)
{
return 1;
}
/* @004784fb file=? name=FUN_004784fb */
undefined4 * __cdecl FUN_004784fb(undefined4 *param_1)
{
FUN_0044c3f8(param_1);
*param_1 = &PTR_FUN_004fce04;
return param_1;
}
/* @00478514 file=? name=FUN_00478514 */
void __cdecl FUN_00478514(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004fce04;
FUN_0044c424(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00478540 file=? name=FUN_00478540 */
void __cdecl FUN_00478540(int param_1,int *param_2,uint param_3)
{
int iVar1;
iVar1 = FUN_00478f2f((int *)(param_1 + 0x1c),param_2,0.0001);
if (iVar1 == 0) {
FUN_00478577(param_1,param_2,param_3);
}
return;
}
/* @00478577 file=? name=FUN_00478577 */
void __cdecl FUN_00478577(int param_1,undefined4 *param_2,uint param_3)
{
*(undefined4 *)(param_1 + 0x1c) = *param_2;
*(undefined4 *)(param_1 + 0x20) = param_2[1];
FUN_0044c4d0(param_1,param_2,param_3);
return;
}
/* @0047859b file=? name=FUN_0047859b */
undefined4 * __cdecl
FUN_0047859b(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5
)
{
undefined4 *puVar1;
puVar1 = (undefined4 *)FUN_00402298(0x24);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_00478d7b(puVar1,param_2,param_3,param_4,param_5);
}
(**(code **)(*(int *)(param_1 + 0xc) + 4))(param_1 + 0xc,puVar1);
return puVar1;
}
/* @004785e6 file=? name=FUN_004785e6 */
undefined4 * __cdecl
FUN_004785e6(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)
{
undefined4 *puVar1;
puVar1 = (undefined4 *)FUN_00402298(0x20);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_00478e7a(puVar1,param_2,param_3,param_4);
}
(**(code **)(*(int *)(param_1 + 0xc) + 4))(param_1 + 0xc,puVar1);
return puVar1;
}
/* @0047862d file=? name=FUN_0047862d */
undefined4 * __cdecl
FUN_0047862d(int param_1,uint param_2,int param_3,int param_4,undefined4 param_5)
{
undefined4 *puVar1;
int local_10 [3];
FUN_0044cb72(local_10,param_1 + 0xc);
do {
puVar1 = (undefined4 *)(**(code **)(local_10[0] + 0x28))(local_10);
if (puVar1 == (undefined4 *)0x0) goto LAB_004786a0;
} while ((((puVar1[1] != 0x39) || (puVar1[7] != param_3)) || (puVar1[8] != param_4)) ||
((puVar1[3] & param_2) == 0));
puVar1[3] = puVar1[3] & ~param_2;
if ((puVar1[3] == 0) && (puVar1 != (undefined4 *)0x0)) {
(**(code **)*puVar1)(puVar1,3);
}
LAB_004786a0:
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)FUN_00402298(0x24);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_00478d7b(puVar1,param_2,param_3,param_4,param_5);
}
(**(code **)(*(int *)(param_1 + 0xc) + 4))(param_1 + 0xc,puVar1);
FUN_0044cbb0(local_10,2);
}
else {
puVar1 = (undefined4 *)0x0;
FUN_0044cbb0(local_10,2);
}
return puVar1;
}
/* @00478711 file=? name=FUN_00478711 */
undefined4 * __cdecl FUN_00478711(int param_1,uint param_2,int param_3,undefined4 param_4)
{
undefined4 *puVar1;
int local_10 [3];
FUN_0044cb72(local_10,param_1 + 0xc);
do {
puVar1 = (undefined4 *)(**(code **)(local_10[0] + 0x28))(local_10);
if (puVar1 == (undefined4 *)0x0) goto LAB_0047877a;
} while (((puVar1[1] != 0x38) || (puVar1[7] != param_3)) || ((puVar1[3] & param_2) == 0));
puVar1[3] = puVar1[3] & ~param_2;
if ((puVar1[3] == 0) && (puVar1 != (undefined4 *)0x0)) {
(**(code **)*puVar1)(puVar1,3);
}
LAB_0047877a:
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)FUN_00402298(0x20);
if (puVar1 == (undefined4 *)0x0) {
puVar1 = (undefined4 *)0x0;
}
else {
puVar1 = FUN_00478e7a(puVar1,param_2,param_3,param_4);
}
(**(code **)(*(int *)(param_1 + 0xc) + 4))(param_1 + 0xc,puVar1);
FUN_0044cbb0(local_10,2);
}
else {
puVar1 = (undefined4 *)0x0;
FUN_0044cbb0(local_10,2);
}
return puVar1;
}
/* @004787e7 file=? name=FUN_004787e7 */
uint __cdecl FUN_004787e7(int param_1,int param_2,int param_3,int param_4,uint param_5)
{
int iVar1;
uint uVar2;
int local_10 [3];
FUN_0044cb72(local_10,param_1 + 0xc);
uVar2 = 0;
while( true ) {
iVar1 = (**(code **)(local_10[0] + 0x28))(local_10);
if (iVar1 == 0) break;
if ((*(uint *)(iVar1 + 0xc) & param_5) != 0) {
if (*(int *)(iVar1 + 4) == 0x38) {
if (param_2 == *(int *)(iVar1 + 0x1c)) {
uVar2 = uVar2 | 2;
}
else {
uVar2 = uVar2 | 1;
}
}
else if ((*(int *)(iVar1 + 0x1c) == param_3) && (*(int *)(iVar1 + 0x20) == param_4)) {
uVar2 = uVar2 | 2;
}
else {
uVar2 = uVar2 | 1;
}
}
}
FUN_0044cbb0(local_10,2);
return uVar2;
}
/* @00478877 file=? name=FUN_00478877 */
undefined4 * __cdecl
FUN_00478877(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,
undefined4 param_5)
{
FUN_0044c344(param_1,0x39,param_2,param_5);
*param_1 = &PTR_FUN_004fcdf4;
param_1[7] = param_3;
param_1[8] = param_4;
return param_1;
}
/* @004788a8 file=? name=FUN_004788a8 */
undefined4 * __cdecl FUN_004788a8(undefined4 *param_1,int param_2)
{
undefined4 uVar1;
uVar1 = FUN_00417ab4(param_2 + 0x10);
FUN_0044c344(param_1,0x39,*(undefined4 *)(param_2 + 0xc),uVar1);
*param_1 = &PTR_FUN_004fcdf4;
param_1[7] = *(undefined4 *)(param_2 + 0x1c);
param_1[8] = *(undefined4 *)(param_2 + 0x20);
return param_1;
}
/* @004788e5 file=? name=FUN_004788e5 */
void __cdecl FUN_004788e5(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004fcdf4;
FUN_0044c388(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00478911 file=? name=FUN_00478911 */
void __cdecl FUN_00478911(int param_1,undefined4 *param_2)
{
uint local_14;
undefined4 local_10;
undefined4 local_c;
undefined4 local_8;
local_10 = *(undefined4 *)(param_1 + 0x20);
local_14 = 0x10;
local_c = 1;
local_8 = *param_2;
FUN_0041acbc(*(int *)(DAT_004efc94 + 0x60),3,*(undefined4 *)(param_1 + 0x1c),&local_14,
DAT_004e17f4);
return;
}
/* @00478961 file=? name=FUN_00478961 */
void FUN_00478961(void)
{
FUN_00415f1c();
return;
}
/* @00478970 file=? name=FUN_00478970 */
undefined4 * __cdecl
FUN_00478970(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)
{
FUN_0044c344(param_1,0x38,param_2,param_4);
*param_1 = &PTR_FUN_004fcde4;
param_1[7] = param_3;
return param_1;
}
/* @0047899b file=? name=FUN_0047899b */
undefined4 * __cdecl FUN_0047899b(undefined4 *param_1,int param_2)
{
undefined4 uVar1;
uVar1 = FUN_00417ab4(param_2 + 0x10);
FUN_0044c344(param_1,0x38,*(undefined4 *)(param_2 + 0xc),uVar1);
*param_1 = &PTR_FUN_004fcde4;
param_1[7] = *(undefined4 *)(param_2 + 0x1c);
return param_1;
}
/* @004789d2 file=? name=FUN_004789d2 */
void __cdecl FUN_004789d2(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004fcde4;
FUN_0044c388(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @004789fe file=? name=FUN_004789fe */
void __cdecl FUN_004789fe(int param_1,undefined4 *param_2)
{
**(undefined4 **)(param_1 + 0x1c) = *param_2;
return;
}
/* @00478a10 file=? name=FUN_00478a10 */
void FUN_00478a10(void)
{
FUN_00415f1c();
return;
}
/* @00478a1f file=? name=FUN_00478a1f */
undefined4 * __cdecl
FUN_00478a1f(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,
undefined4 param_5)
{
FUN_0044c344(param_1,0x39,param_2,param_5);
*param_1 = &PTR_FUN_004fcdd4;
param_1[7] = param_3;
param_1[8] = param_4;
return param_1;
}
/* @00478a50 file=? name=FUN_00478a50 */
undefined4 * __cdecl FUN_00478a50(undefined4 *param_1,int param_2)
{
undefined4 uVar1;
uVar1 = FUN_00417ab4(param_2 + 0x10);
FUN_0044c344(param_1,0x39,*(undefined4 *)(param_2 + 0xc),uVar1);
*param_1 = &PTR_FUN_004fcdd4;
param_1[7] = *(undefined4 *)(param_2 + 0x1c);
param_1[8] = *(undefined4 *)(param_2 + 0x20);
return param_1;
}
/* @00478a8d file=? name=FUN_00478a8d */
void __cdecl FUN_00478a8d(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004fcdd4;
FUN_0044c388(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00478ab9 file=? name=FUN_00478ab9 */
void __cdecl FUN_00478ab9(int param_1,undefined4 *param_2)
{
uint local_18;
undefined4 local_14;
undefined4 local_10;
undefined4 local_c;
undefined4 local_8;
local_14 = *(undefined4 *)(param_1 + 0x20);
local_18 = 0x14;
local_10 = 1;
local_c = *param_2;
local_8 = param_2[1];
FUN_0041acbc(*(int *)(DAT_004efc94 + 0x60),3,*(undefined4 *)(param_1 + 0x1c),&local_18,
DAT_004e17f4);
return;
}
/* @00478b0f file=? name=FUN_00478b0f */
void FUN_00478b0f(void)
{
FUN_00415f1c();
return;
}
/* @00478b1e file=? name=FUN_00478b1e */
undefined4 * __cdecl
FUN_00478b1e(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)
{
FUN_0044c344(param_1,0x38,param_2,param_4);
*param_1 = &PTR_FUN_004fcdc4;
param_1[7] = param_3;
return param_1;
}
/* @00478b49 file=? name=FUN_00478b49 */
undefined4 * __cdecl FUN_00478b49(undefined4 *param_1,int param_2)
{
undefined4 uVar1;
uVar1 = FUN_00417ab4(param_2 + 0x10);
FUN_0044c344(param_1,0x38,*(undefined4 *)(param_2 + 0xc),uVar1);
*param_1 = &PTR_FUN_004fcdc4;
param_1[7] = *(undefined4 *)(param_2 + 0x1c);
return param_1;
}
/* @00478b80 file=? name=FUN_00478b80 */
void __cdecl FUN_00478b80(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004fcdc4;
FUN_0044c388(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00478bac file=? name=FUN_00478bac */
void __cdecl FUN_00478bac(int param_1,undefined4 *param_2)
{
undefined4 *puVar1;
puVar1 = *(undefined4 **)(param_1 + 0x1c);
*puVar1 = *param_2;
puVar1[1] = param_2[1];
return;
}
/* @00478bc4 file=? name=FUN_00478bc4 */
void FUN_00478bc4(void)
{
FUN_00415f1c();
return;
}
/* @00478bd3 file=? name=FUN_00478bd3 */
undefined4 * __cdecl
FUN_00478bd3(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,
undefined4 param_5)
{
FUN_0044c344(param_1,0x39,param_2,param_5);
*param_1 = &PTR_FUN_004fcdb4;
param_1[7] = param_3;
param_1[8] = param_4;
return param_1;
}
/* @00478c04 file=? name=FUN_00478c04 */
undefined4 * __cdecl FUN_00478c04(undefined4 *param_1,int param_2)
{
undefined4 uVar1;
uVar1 = FUN_00417ab4(param_2 + 0x10);
FUN_0044c344(param_1,0x39,*(undefined4 *)(param_2 + 0xc),uVar1);
*param_1 = &PTR_FUN_004fcdb4;
param_1[7] = *(undefined4 *)(param_2 + 0x1c);
param_1[8] = *(undefined4 *)(param_2 + 0x20);
return param_1;
}
/* @00478c41 file=? name=FUN_00478c41 */
void __cdecl FUN_00478c41(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004fcdb4;
FUN_0044c388(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00478c6d file=? name=FUN_00478c6d */
void __cdecl FUN_00478c6d(int param_1,undefined4 *param_2)
{
uint local_14;
undefined4 local_10;
undefined4 local_c;
undefined4 local_8;
local_10 = *(undefined4 *)(param_1 + 0x20);
local_14 = 0x10;
local_c = 1;
local_8 = *param_2;
FUN_0041acbc(*(int *)(DAT_004efc94 + 0x60),3,*(undefined4 *)(param_1 + 0x1c),&local_14,
DAT_004e17f4);
return;
}
/* @00478cbd file=? name=FUN_00478cbd */
void FUN_00478cbd(void)
{
FUN_00415f1c();
return;
}
/* @00478ccc file=? name=FUN_00478ccc */
undefined4 * __cdecl
FUN_00478ccc(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)
{
FUN_0044c344(param_1,0x38,param_2,param_4);
*param_1 = &PTR_FUN_004fcda4;
param_1[7] = param_3;
return param_1;
}
/* @00478cf7 file=? name=FUN_00478cf7 */
undefined4 * __cdecl FUN_00478cf7(undefined4 *param_1,int param_2)
{
undefined4 uVar1;
uVar1 = FUN_00417ab4(param_2 + 0x10);
FUN_0044c344(param_1,0x38,*(undefined4 *)(param_2 + 0xc),uVar1);
*param_1 = &PTR_FUN_004fcda4;
param_1[7] = *(undefined4 *)(param_2 + 0x1c);
return param_1;
}
/* @00478d2e file=? name=FUN_00478d2e */
void __cdecl FUN_00478d2e(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004fcda4;
FUN_0044c388(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00478d5a file=? name=FUN_00478d5a */
void __cdecl FUN_00478d5a(int param_1,undefined4 *param_2)
{
**(undefined4 **)(param_1 + 0x1c) = *param_2;
return;
}
/* @00478d6c file=? name=FUN_00478d6c */
void FUN_00478d6c(void)
{
FUN_00415f1c();
return;
}
/* @00478d7b file=? name=FUN_00478d7b */
undefined4 * __cdecl
FUN_00478d7b(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,
undefined4 param_5)
{
FUN_0044c344(param_1,0x39,param_2,param_5);
*param_1 = &PTR_FUN_004fcd94;
param_1[7] = param_3;
param_1[8] = param_4;
return param_1;
}
/* @00478dac file=? name=FUN_00478dac */
undefined4 * __cdecl FUN_00478dac(undefined4 *param_1,int param_2)
{
undefined4 uVar1;
uVar1 = FUN_00417ab4(param_2 + 0x10);
FUN_0044c344(param_1,0x39,*(undefined4 *)(param_2 + 0xc),uVar1);
*param_1 = &PTR_FUN_004fcd94;
param_1[7] = *(undefined4 *)(param_2 + 0x1c);
param_1[8] = *(undefined4 *)(param_2 + 0x20);
return param_1;
}
/* @00478de9 file=? name=FUN_00478de9 */
void __cdecl FUN_00478de9(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004fcd94;
FUN_0044c388(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00478e15 file=? name=FUN_00478e15 */
void __cdecl FUN_00478e15(int param_1,undefined4 *param_2)
{
uint local_18;
undefined4 local_14;
undefined4 local_10;
undefined4 local_c;
undefined4 local_8;
local_14 = *(undefined4 *)(param_1 + 0x20);
local_18 = 0x14;
local_10 = 1;
local_c = *param_2;
local_8 = param_2[1];
FUN_0041acbc(*(int *)(DAT_004efc94 + 0x60),3,*(undefined4 *)(param_1 + 0x1c),&local_18,
DAT_004e17f4);
return;
}
/* @00478e6b file=? name=FUN_00478e6b */
void FUN_00478e6b(void)
{
FUN_00415f1c();
return;
}
/* @00478e7a file=? name=FUN_00478e7a */
undefined4 * __cdecl
FUN_00478e7a(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)
{
FUN_0044c344(param_1,0x38,param_2,param_4);
*param_1 = &PTR_FUN_004fcd84;
param_1[7] = param_3;
return param_1;
}
/* @00478ea5 file=? name=FUN_00478ea5 */
undefined4 * __cdecl FUN_00478ea5(undefined4 *param_1,int param_2)
{
undefined4 uVar1;
uVar1 = FUN_00417ab4(param_2 + 0x10);
FUN_0044c344(param_1,0x38,*(undefined4 *)(param_2 + 0xc),uVar1);
*param_1 = &PTR_FUN_004fcd84;
param_1[7] = *(undefined4 *)(param_2 + 0x1c);
return param_1;
}
/* @00478edc file=? name=FUN_00478edc */
void __cdecl FUN_00478edc(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004fcd84;
FUN_0044c388(param_1,0);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @00478f08 file=? name=FUN_00478f08 */
void __cdecl FUN_00478f08(int param_1,undefined4 *param_2)
{
undefined4 *puVar1;
puVar1 = *(undefined4 **)(param_1 + 0x1c);
*puVar1 = *param_2;
puVar1[1] = param_2[1];
return;
}
/* @00478f20 file=? name=FUN_00478f20 */
void FUN_00478f20(void)
{
FUN_00415f1c();
return;
}
/* @00478f2f file=? name=FUN_00478f2f */
undefined4 __cdecl FUN_00478f2f(int *param_1,int *param_2,float param_3)
{
float10 fVar1;
fVar1 = FUN_004dcd00((double)((float)*param_1 - (float)*param_2));
if ((fVar1 <= (float10)param_3) &&
(fVar1 = FUN_004dcd00((double)((float)param_1[1] - (float)param_2[1])),
fVar1 <= (float10)param_3)) {
return 1;
}
return 0;
}
/* @00478fb8 file=? name=FUN_00478fb8 */
uint FUN_00478fb8(void)
{
int iVar1;
uint uVar2;
iVar1 = FUN_004d4888();
if (iVar1 == 0) {
return 0;
}
uVar2 = FUN_004d4718();
if (uVar2 == 0) {
uVar2 = FUN_004d4718();
uVar2 = uVar2 | 0x100;
}
return uVar2;
}
/* @00478fd8 file=? name=FUN_00478fd8 */
uint * FUN_00478fd8(void)
{
code *pcVar1;
short sVar2;
uint *extraout_EDX;
uint unaff_EBX;
pcVar1 = (code *)swi(0x33);
sVar2 = (*pcVar1)();
if (sVar2 == -1) {
*extraout_EDX = unaff_EBX & 0xffff;
extraout_EDX[1] = 0;
}
else {
extraout_EDX[1] = 1;
*extraout_EDX = 0;
}
return extraout_EDX;
}
/* @00479008 file=? name=FUN_00479008 */
undefined4 FUN_00479008(void)
{
return 1;
}
/* @00479014 file=? name=FUN_00479014 */
void __cdecl FUN_00479014(int param_1,uint *param_2,uint *param_3)
{
code *pcVar1;
uint uVar2;
uint extraout_ECX;
uint extraout_EDX;
uint uVar3;
if (*(int *)(param_1 + 4) == 0) {
pcVar1 = (code *)swi(0x33);
(*pcVar1)();
uVar2 = extraout_ECX & 0xffff;
uVar3 = extraout_EDX & 0xffff;
if ((extraout_ECX & 0x8000) != 0) {
uVar2 = uVar2 | 0xffff0000;
}
if ((extraout_EDX & 0x8000) != 0) {
uVar3 = uVar3 | 0xffff0000;
}
*param_2 = uVar2;
*param_3 = uVar3;
}
else {
*param_2 = 0;
*param_3 = 0;
}
return;
}
/* @0047905c file=? name=FUN_0047905c */
undefined2 __cdecl FUN_0047905c(int param_1,undefined2 param_2)
{
code *pcVar1;
if (*(int *)(param_1 + 4) != 0) {
return 0;
}
pcVar1 = (code *)swi(0x33);
(*pcVar1)();
return param_2;
}
/* @00479080 file=? name=FUN_00479080 */
undefined2 __cdecl FUN_00479080(int param_1,undefined2 param_2)
{
code *pcVar1;
if (*(int *)(param_1 + 4) != 0) {
return 0;
}
pcVar1 = (code *)swi(0x33);
(*pcVar1)();
return param_2;
}
/* @004790a4 file=? name=FUN_004790a4 */
uint __cdecl FUN_004790a4(byte param_1,byte param_2)
{
uint uVar1;
uVar1 = param_1 & 0x7f | (uint)param_2 << 7;
if ((param_2 & 0x40) != 0) {
uVar1 = uVar1 | 0xffffc000;
}
return uVar1;
}
/* @004790c8 file=? name=FUN_004790c8 */
void __cdecl FUN_004790c8(int param_1)
{
char local_2c [40];
FUN_004d7f10(local_2c,s__s_Slot__d_Address__d_004fcfbf);
FUN_00404490(param_1,s_RIOBoardErrors_004fcfd5,s_error_004fcfe4,local_2c);
return;
}
/* @00479110 file=? name=FUN_00479110 */
undefined4 * __cdecl FUN_00479110(undefined4 *param_1)
{
*param_1 = &PTR_FUN_004fd2a4;
FUN_0047a78d(param_1 + 0xe,5,0);
param_1[0xd] = 0;
param_1[4] = 0;
param_1[2] = 0;
param_1[3] = 0;
param_1[0xc] = 0x3cf5c28f;
param_1[9] = 0;
param_1[0xb] = 0;
return param_1;
}
/* @00479158 file=? name=FUN_00479158 */
undefined4 * __cdecl
FUN_00479158(undefined4 *param_1,int param_2,undefined4 param_3,uint param_4,uint param_5)
{
bool bVar1;
undefined3 extraout_var;
undefined3 extraout_var_00;
int iVar2;
*param_1 = &PTR_FUN_004fd2a4;
FUN_0047a78d(param_1 + 0xe,5,0);
param_1[0xd] = 1;
param_1[4] = 0;
param_1[2] = 0;
param_1[3] = 1;
param_1[0xc] = 0x3cf5c28f;
param_1[1] = param_3;
param_1[5] = param_4;
param_1[6] = param_5;
bVar1 = FUN_004040d8(param_2,(char *)param_1[1],PTR_DAT_004fcf4c,param_1 + 6);
if (CONCAT31(extraout_var,bVar1) == 0) {
FUN_00404298(param_2,(char *)param_1[1],PTR_DAT_004fcf4c,param_5);
}
bVar1 = FUN_004040d8(param_2,(char *)param_1[1],PTR_DAT_004fcf54,param_1 + 5);
if (CONCAT31(extraout_var_00,bVar1) == 0) {
FUN_00404298(param_2,(char *)param_1[1],PTR_DAT_004fcf54,param_4);
}
iVar2 = (int)(param_1[6] - param_1[5]) >> 1;
if (iVar2 < 0) {
iVar2 = iVar2 + (uint)((param_1[6] - param_1[5] & 1) != 0);
}
param_1[7] = iVar2;
return param_1;
}
/* @00479228 file=? name=FUN_00479228 */
undefined4 * __cdecl
FUN_00479228(undefined4 *param_1,int param_2,undefined4 param_3,uint param_4,uint param_5,
uint param_6)
{
bool bVar1;
undefined3 extraout_var;
undefined3 extraout_var_00;
undefined3 extraout_var_01;
*param_1 = &PTR_FUN_004fd2a4;
FUN_0047a78d(param_1 + 0xe,5,0);
param_1[0xd] = 1;
param_1[4] = 0;
param_1[2] = 1;
param_1[3] = 1;
param_1[0xc] = 0x3cf5c28f;
param_1[1] = param_3;
param_1[5] = param_4;
param_1[7] = param_5;
param_1[6] = param_6;
bVar1 = FUN_004040d8(param_2,(char *)param_1[1],PTR_DAT_004fcf4c,param_1 + 6);
if (CONCAT31(extraout_var,bVar1) == 0) {
FUN_00404298(param_2,(char *)param_1[1],PTR_DAT_004fcf4c,param_6);
}
bVar1 = FUN_004040d8(param_2,(char *)param_1[1],PTR_s_center_004fcf50,param_1 + 7);
if (CONCAT31(extraout_var_00,bVar1) == 0) {
FUN_00404298(param_2,(char *)param_1[1],PTR_s_center_004fcf50,param_5);
}
bVar1 = FUN_004040d8(param_2,(char *)param_1[1],PTR_DAT_004fcf54,param_1 + 5);
if (CONCAT31(extraout_var_01,bVar1) == 0) {
FUN_00404298(param_2,(char *)param_1[1],PTR_DAT_004fcf54,param_4);
}
FUN_004795bc((int)param_1);
return param_1;
}
/* @0047932c file=? name=FUN_0047932c */
void __cdecl FUN_0047932c(int *param_1,byte param_2)
{
if (param_1 != (int *)0x0) {
*param_1 = (int)&PTR_FUN_004fd2a4;
FUN_0047a7f6(param_1 + 0xe,2);
if ((param_2 & 1) != 0) {
FUN_004022d0(param_1);
}
}
return;
}
/* @0047935c file=? name=FUN_0047935c */
void __cdecl FUN_0047935c(int param_1,undefined4 param_2)
{
*(undefined4 *)(param_1 + 8) = param_2;
return;
}
/* @0047936c file=? name=FUN_0047936c */
void __cdecl FUN_0047936c(int param_1,float param_2)
{
float10 fVar1;
fVar1 = FUN_004dcd00((double)param_2);
*(float *)(param_1 + 0x30) = (float)fVar1;
if (*(int *)(param_1 + 0xc) == 1) {
FUN_004795bc(param_1);
}
return;
}