/* @00458e5c file=? name=FUN_00458e5c */ /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ void __cdecl FUN_00458e5c(int param_1) { int iVar1; undefined4 *puVar2; float local_9c [5]; float local_88; float local_74; float local_6c [5]; float local_58; float local_44; float local_3c [5]; float local_28; float local_14; float local_c; float local_8; local_8 = *(float *)(*(int *)(param_1 + 0x10) + 0x80); iVar1 = *(int *)(param_1 + 0x1c); if (iVar1 == 0) { if (*(int *)(*(int *)(param_1 + 0x2c) + 0x14) == *(int *)(param_1 + 0x20)) { *(undefined4 *)(param_1 + 0x1c) = 1; *(float *)(param_1 + 0x28) = local_8; local_c = local_8 - *(float *)(param_1 + 0x28); if (local_c < _DAT_004590cc) { local_c = 0.05; } puVar2 = (undefined4 *)FUN_0048a630(*(int *)(param_1 + 0x34)); FUN_0040aadc(local_3c); local_3c[0] = local_c; local_28 = local_c; local_14 = local_c; FUN_0040b0ac((int)local_3c,3,*(undefined4 **)(param_1 + 0x3c)); FUN_0040beb0(puVar2,local_3c); FUN_0048ac30(*(int *)(param_1 + 0x30),1); FUN_0048d5d4(*(undefined4 **)(param_1 + 0x30)); FUN_0045fbf4(*(int *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x34)); FUN_0045a744(*(int *)(param_1 + 0x10),param_1); } } else if (iVar1 == 1) { local_c = local_8 - *(float *)(param_1 + 0x28); if (local_c < _DAT_004590cc) { local_c = 0.05; } if (_DAT_004590d0 <= local_c) { local_c = 1.0; *(undefined4 *)(param_1 + 0x1c) = 2; } puVar2 = (undefined4 *)FUN_0048a630(*(int *)(param_1 + 0x34)); FUN_0040aadc(local_6c); local_6c[0] = local_c; local_58 = local_c; local_44 = local_c; FUN_0040b0ac((int)local_6c,3,*(undefined4 **)(param_1 + 0x3c)); FUN_0040beb0(puVar2,local_6c); FUN_0045fbf4(*(int *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x34)); } else if (iVar1 == 2) { if (_DAT_004590d4 <= local_8 - *(float *)(param_1 + 0x28)) { *(undefined4 *)(param_1 + 0x1c) = 3; *(float *)(param_1 + 0x28) = local_8 + _DAT_004590d0; } } else if (iVar1 == 3) { local_c = *(float *)(param_1 + 0x28) - local_8; if (local_c < _DAT_004590cc) { local_c = 0.05; FUN_0048ac30(*(int *)(param_1 + 0x30),0); FUN_0048d5d4(*(undefined4 **)(param_1 + 0x30)); *(undefined4 *)(param_1 + 0x1c) = 0; FUN_0045a764(*(int *)(param_1 + 0x10),param_1); } puVar2 = (undefined4 *)FUN_0048a630(*(int *)(param_1 + 0x34)); FUN_0040aadc(local_9c); local_9c[0] = local_c; local_88 = local_c; local_74 = local_c; FUN_0040b0ac((int)local_9c,3,*(undefined4 **)(param_1 + 0x3c)); FUN_0040beb0(puVar2,local_9c); FUN_0045fbf4(*(int *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x34)); } return; } /* @004590d8 file=? name=FUN_004590d8 */ undefined4 * __cdecl FUN_004590d8(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4, undefined4 param_5,undefined4 param_6,undefined4 param_7,undefined4 param_8, undefined4 *param_9,undefined4 param_10,undefined4 param_11,undefined4 param_12, undefined4 param_13,undefined4 param_14) { float *pfVar1; undefined4 *puVar2; int iVar3; float *pfVar4; float *pfVar5; float local_94 [12]; float local_64 [12]; float local_34 [12]; FUN_004536b4(param_1,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9); *param_1 = &PTR_FUN_004f1628; param_1[0x1b] = param_10; param_1[0x1c] = param_11; param_1[0x1f] = 0; param_1[0x1d] = param_12; param_1[0x1e] = param_13; param_1[0x20] = param_14; param_1[0x21] = 0; puVar2 = (undefined4 *)FUN_0048a630(param_1[0xb]); FUN_0040aadc(local_34); pfVar1 = (float *)param_1[0x1e]; pfVar4 = local_34; pfVar5 = local_64; for (iVar3 = 0xc; iVar3 != 0; iVar3 = iVar3 + -1) { *pfVar5 = *pfVar4; pfVar4 = pfVar4 + 1; pfVar5 = pfVar5 + 1; } FUN_0040b374(local_34,local_64,pfVar1); pfVar1 = (float *)param_1[0x1d]; pfVar4 = local_34; pfVar5 = local_94; for (iVar3 = 0xc; iVar3 != 0; iVar3 = iVar3 + -1) { *pfVar5 = *pfVar4; pfVar4 = pfVar4 + 1; pfVar5 = pfVar5 + 1; } FUN_0040b3e8(local_34,local_94,pfVar1); FUN_0040beb0(puVar2,local_34); FUN_0048d3e8((undefined4 *)param_1[0xb]); FUN_0048ac30(param_1[0xc],param_1[0x1f]); FUN_0048d5d4((undefined4 *)param_1[0xc]); (**(code **)(*(int *)(param_1[0x1b] + 0x2c) + 4))(param_1[0x1b] + 0x2c,param_1); return param_1; } /* @004591f8 file=? name=FUN_004591f8 */ void __cdecl FUN_004591f8(int *param_1,byte param_2) { if (param_1 != (int *)0x0) { *param_1 = (int)&PTR_FUN_004f1628; FUN_00453768(param_1,0); if ((param_2 & 1) != 0) { FUN_004022d0(param_1); } } return; } /* @00459224 file=? name=FUN_00459224 */ undefined4 __cdecl FUN_00459224(int param_1) { FUN_004537c4(param_1); return 1; } /* @00459238 file=? name=FUN_00459238 */ /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ void __cdecl FUN_00459238(int param_1) { float *pfVar1; undefined4 *puVar2; int iVar3; float *pfVar4; float *pfVar5; float local_b4 [12]; float local_84 [12]; float local_54 [4]; float local_44 [12]; undefined4 local_14; undefined4 local_10; int local_c; undefined4 local_8; if (*(int *)(*(int *)(param_1 + 0x6c) + 0x14) == *(int *)(param_1 + 0x70)) { if (*(int *)(param_1 + 0x7c) == 0) { *(undefined4 *)(param_1 + 0x7c) = 1; FUN_0048ac30(*(int *)(param_1 + 0x30),1); FUN_0048d5d4(*(undefined4 **)(param_1 + 0x30)); FUN_0045a744(*(int *)(param_1 + 0x10),param_1); } *(float *)(param_1 + 0x84) = *(float *)(param_1 + 0x80) + *(float *)(param_1 + 0x84); if (_DAT_004593bc < *(float *)(param_1 + 0x84)) { *(float *)(param_1 + 0x84) = *(float *)(param_1 + 0x84) - _DAT_004593bc; } local_14 = *(undefined4 *)(param_1 + 0x84); local_c = 2; local_10 = local_14; local_8 = local_14; puVar2 = (undefined4 *)FUN_0048a630(*(int *)(param_1 + 0x2c)); FUN_0040aadc(local_44); FUN_0040998c(local_54,&local_c); FUN_0040adec(local_44,local_54); pfVar1 = *(float **)(param_1 + 0x78); pfVar4 = local_44; pfVar5 = local_84; for (iVar3 = 0xc; iVar3 != 0; iVar3 = iVar3 + -1) { *pfVar5 = *pfVar4; pfVar4 = pfVar4 + 1; pfVar5 = pfVar5 + 1; } FUN_0040b374(local_44,local_84,pfVar1); pfVar1 = *(float **)(param_1 + 0x74); pfVar4 = local_44; pfVar5 = local_b4; for (iVar3 = 0xc; iVar3 != 0; iVar3 = iVar3 + -1) { *pfVar5 = *pfVar4; pfVar4 = pfVar4 + 1; pfVar5 = pfVar5 + 1; } FUN_0040b3e8(local_44,local_b4,pfVar1); FUN_0040beb0(puVar2,local_44); FUN_0045fbf4(*(int *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x2c)); } else if (*(int *)(param_1 + 0x7c) != 0) { *(undefined4 *)(param_1 + 0x7c) = 0; FUN_0048ac30(*(int *)(param_1 + 0x30),0); FUN_0048d5d4(*(undefined4 **)(param_1 + 0x30)); FUN_0045a764(*(int *)(param_1 + 0x10),param_1); } FUN_004537d8(); return; } /* @004593c0 file=? name=FUN_004593c0 */ undefined4 * __cdecl FUN_004593c0(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4, undefined4 param_5,undefined4 param_6,undefined4 param_7,undefined4 param_8, undefined4 *param_9,undefined4 param_10,undefined4 param_11,undefined4 param_12, undefined4 param_13) { float *pfVar1; undefined4 *puVar2; int iVar3; float *pfVar4; float *pfVar5; float local_94 [12]; float local_64 [12]; float local_34 [12]; FUN_004536b4(param_1,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9); *param_1 = &PTR_FUN_004f1610; param_1[0x1b] = param_10; param_1[0x1c] = param_11; param_1[0x1f] = 0; param_1[0x1d] = param_12; param_1[0x1e] = param_13; puVar2 = (undefined4 *)FUN_0048a630(param_1[0xb]); FUN_0040aadc(local_34); pfVar1 = (float *)param_1[0x1e]; pfVar4 = local_34; pfVar5 = local_64; for (iVar3 = 0xc; iVar3 != 0; iVar3 = iVar3 + -1) { *pfVar5 = *pfVar4; pfVar4 = pfVar4 + 1; pfVar5 = pfVar5 + 1; } FUN_0040b374(local_34,local_64,pfVar1); pfVar1 = (float *)param_1[0x1d]; pfVar4 = local_34; pfVar5 = local_94; for (iVar3 = 0xc; iVar3 != 0; iVar3 = iVar3 + -1) { *pfVar5 = *pfVar4; pfVar4 = pfVar4 + 1; pfVar5 = pfVar5 + 1; } FUN_0040b3e8(local_34,local_94,pfVar1); FUN_0040beb0(puVar2,local_34); FUN_0048d3e8((undefined4 *)param_1[0xb]); FUN_0048ac30(param_1[0xc],param_1[0x1f]); FUN_0048d5d4((undefined4 *)param_1[0xc]); (**(code **)(*(int *)(param_1[0x1b] + 0x2c) + 4))(param_1[0x1b] + 0x2c,param_1); return param_1; } /* @004594cc file=? name=FUN_004594cc */ void __cdecl FUN_004594cc(int *param_1,byte param_2) { if (param_1 != (int *)0x0) { *param_1 = (int)&PTR_FUN_004f1610; FUN_00453768(param_1,0); if ((param_2 & 1) != 0) { FUN_004022d0(param_1); } } return; } /* @004594f8 file=? name=FUN_004594f8 */ undefined4 __cdecl FUN_004594f8(int param_1) { FUN_004537c4(param_1); return 1; } /* @0045950c file=? name=FUN_0045950c */ void __cdecl FUN_0045950c(int param_1) { float *pfVar1; undefined4 *puVar2; int iVar3; float *pfVar4; float *pfVar5; float local_94 [12]; float local_64 [12]; float local_34 [12]; if (*(int *)(*(int *)(param_1 + 0x6c) + 0x14) == *(int *)(param_1 + 0x70)) { if (*(int *)(param_1 + 0x7c) == 0) { *(undefined4 *)(param_1 + 0x7c) = 1; FUN_0048ac30(*(int *)(param_1 + 0x30),1); FUN_0048d5d4(*(undefined4 **)(param_1 + 0x30)); FUN_0045a744(*(int *)(param_1 + 0x10),param_1); } puVar2 = (undefined4 *)FUN_0048a630(*(int *)(param_1 + 0x2c)); FUN_0040aadc(local_34); pfVar1 = *(float **)(param_1 + 0x78); pfVar4 = local_34; pfVar5 = local_64; for (iVar3 = 0xc; iVar3 != 0; iVar3 = iVar3 + -1) { *pfVar5 = *pfVar4; pfVar4 = pfVar4 + 1; pfVar5 = pfVar5 + 1; } FUN_0040b374(local_34,local_64,pfVar1); pfVar1 = *(float **)(param_1 + 0x74); pfVar4 = local_34; pfVar5 = local_94; for (iVar3 = 0xc; iVar3 != 0; iVar3 = iVar3 + -1) { *pfVar5 = *pfVar4; pfVar4 = pfVar4 + 1; pfVar5 = pfVar5 + 1; } FUN_0040b3e8(local_34,local_94,pfVar1); FUN_0040beb0(puVar2,local_34); FUN_0045fbf4(*(int *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x2c)); } else if (*(int *)(param_1 + 0x7c) != 0) { *(undefined4 *)(param_1 + 0x7c) = 0; FUN_0048ac30(*(int *)(param_1 + 0x30),0); FUN_0048d5d4(*(undefined4 **)(param_1 + 0x30)); FUN_0045a764(*(int *)(param_1 + 0x10),param_1); } FUN_004537d8(); return; } /* @0045961f file=? name=FUN_0045961f */ undefined4 __cdecl FUN_0045961f(float *param_1,float *param_2,float param_3) { float10 fVar1; fVar1 = FUN_004dcd00((double)(*param_1 - *param_2)); if ((fVar1 <= (float10)param_3) && (fVar1 = FUN_004dcd00((double)(param_1[1] - param_2[1])), fVar1 <= (float10)param_3)) { return 1; } return 0; } /* @004596a6 file=? name=FUN_004596a6 */ void FUN_004596a6(void) { return; } /* @00459eb8 file=? name=FUN_00459eb8 */ char * __cdecl FUN_00459eb8(char *param_1) { char cVar1; undefined4 *puVar2; char *pcVar3; uint uVar4; int iVar5; uint uVar6; char *pcVar7; char *pcVar8; puVar2 = *(undefined4 **)(DAT_004f1aac + 4); while( true ) { if (puVar2 == (undefined4 *)0x0) { return param_1; } pcVar7 = (char *)(puVar2 + 2); if (((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) && (pcVar3 = FUN_004d4c78(param_1,pcVar7), pcVar3 != (char *)0x0)) break; puVar2 = (undefined4 *)*puVar2; } pcVar8 = (char *)puVar2[1]; DAT_00522b9c = 0; uVar4 = (int)pcVar3 - (int)param_1; for (; *pcVar8 == '<'; pcVar8 = pcVar8 + 1) { uVar4 = uVar4 - 1; } if (0 < (int)uVar4) { FUN_004d4a94(&DAT_00522b9c,param_1,uVar4); } iVar5 = FUN_004d4a78(pcVar7); pcVar3 = pcVar3 + iVar5; uVar4 = FUN_004d4a78(pcVar8); pcVar7 = pcVar8 + (uVar4 - 1); while ((uVar4 != 0 && (*pcVar7 == '>'))) { uVar4 = uVar4 - 1; pcVar7 = pcVar7 + -1; if (*pcVar3 != '\0') { pcVar3 = pcVar3 + 1; } } if (0 < (int)uVar4) { FUN_004d4a94(&DAT_00522b9c,pcVar8,uVar4); } FUN_004d49b8(&DAT_00522b9c,pcVar3); uVar4 = 0xffffffff; pcVar7 = &DAT_00522b9c; do { pcVar3 = pcVar7; if (uVar4 == 0) break; uVar4 = uVar4 - 1; pcVar3 = pcVar7 + 1; cVar1 = *pcVar7; pcVar7 = pcVar3; } while (cVar1 != '\0'); uVar4 = ~uVar4; pcVar7 = pcVar3 + -uVar4; pcVar3 = param_1; for (uVar6 = uVar4 >> 2; uVar6 != 0; uVar6 = uVar6 - 1) { *(undefined4 *)pcVar3 = *(undefined4 *)pcVar7; pcVar7 = pcVar7 + 4; pcVar3 = pcVar3 + 4; } for (uVar4 = uVar4 & 3; uVar4 != 0; uVar4 = uVar4 - 1) { *pcVar3 = *pcVar7; pcVar7 = pcVar7 + 1; pcVar3 = pcVar3 + 1; } return param_1; } /* @00459fb4 file=? name=FUN_00459fb4 */ char * __cdecl FUN_00459fb4(char *param_1,char *param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5, undefined4 param_6) { char cVar1; int iVar2; char *pcVar3; uint uVar4; uint uVar5; char *pcVar6; uVar4 = 0xffffffff; pcVar3 = param_2; do { pcVar6 = pcVar3; if (uVar4 == 0) break; uVar4 = uVar4 - 1; pcVar6 = pcVar3 + 1; cVar1 = *pcVar3; pcVar3 = pcVar6; } while (cVar1 != '\0'); uVar4 = ~uVar4; pcVar3 = pcVar6 + -uVar4; pcVar6 = param_1; for (uVar5 = uVar4 >> 2; uVar5 != 0; uVar5 = uVar5 - 1) { *(undefined4 *)pcVar6 = *(undefined4 *)pcVar3; pcVar3 = pcVar3 + 4; pcVar6 = pcVar6 + 4; } for (uVar4 = uVar4 & 3; uVar4 != 0; uVar4 = uVar4 - 1) { *pcVar6 = *pcVar3; pcVar3 = pcVar3 + 1; pcVar6 = pcVar6 + 1; } iVar2 = FUN_004d4a78(param_2); pcVar3 = param_1 + iVar2; while (pcVar3 = pcVar3 + 1, pcVar3 < param_1 + 0xf) { *pcVar3 = '\0'; } *(undefined4 *)(param_1 + 0x10) = param_3; *(undefined4 *)(param_1 + 0x14) = param_4; *(undefined4 *)(param_1 + 0x18) = param_5; *(undefined4 *)(param_1 + 0x1c) = param_6; return param_1; } /* @0045a01c file=? name=FUN_0045a01c */ void __cdecl FUN_0045a01c(int *param_1,byte param_2) { if ((param_1 != (int *)0x0) && ((param_2 & 1) != 0)) { FUN_004022d0(param_1); } return; } /* @0045a038 file=? name=FUN_0045a038 */ undefined4 FUN_0045a038(void) { return 1; } /* @0045a044 file=? name=FUN_0045a044 */ undefined4 * __cdecl FUN_0045a044(undefined4 *param_1,undefined4 param_2,undefined4 param_3) { FUN_00415e90(param_1,1); *param_1 = &PTR_FUN_004f3358; param_1[3] = param_2; param_1[4] = param_3; return param_1; } /* @0045a070 file=? name=FUN_0045a070 */ void __cdecl FUN_0045a070(int *param_1,byte param_2) { if (param_1 != (int *)0x0) { *param_1 = (int)&PTR_FUN_004f3358; if (param_1[4] != 0) { FUN_0045a01c((int *)param_1[3],3); } FUN_00415ed8(param_1,0); if ((param_2 & 1) != 0) { FUN_004022d0(param_1); } } return; } /* @0045a0b0 file=? name=FUN_0045a0b0 */ undefined4 FUN_0045a0b0(void) { return 1; } /* @0045a0c4 file=? name=FUN_0045a0c4 */ int __cdecl FUN_0045a0c4(int *param_1,int param_2) { int iVar1; undefined4 *puVar2; int *piVar3; int iVar4; iVar1 = **(int **)(param_2 + 0x3c); iVar4 = 0; piVar3 = *(int **)(param_2 + 0x3c) + 1; if (0 < iVar1) { do { puVar2 = (undefined4 *)FUN_00402298(0x14); if (puVar2 == (undefined4 *)0x0) { puVar2 = (undefined4 *)0x0; } else { puVar2 = FUN_0045a044(puVar2,piVar3,0); } (**(code **)(*param_1 + 4))(param_1,puVar2); iVar4 = iVar4 + 1; piVar3 = piVar3 + 8; } while (iVar4 < iVar1); } return iVar1; } /* @0045a134 file=? name=FUN_0045a134 */ void __cdecl FUN_0045a134(int param_1) { undefined4 *puVar1; int local_10 [3]; FUN_004614b8(local_10,param_1); while( true ) { puVar1 = (undefined4 *)(**(code **)(local_10[0] + 0x28))(local_10); if (puVar1 == (undefined4 *)0x0) break; if (puVar1 != (undefined4 *)0x0) { (**(code **)*puVar1)(puVar1,3); } } FUN_00461515(local_10,2); return; } /* @0045a180 file=? name=FUN_0045a180 */ /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ undefined4 * __cdecl FUN_0045a180(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4, undefined4 param_5,undefined4 param_6) { int *piVar1; char *pcVar2; undefined4 *puVar3; undefined4 uVar4; int iVar5; float10 fVar6; undefined4 local_d0 [32]; char local_50; float local_1c; float local_18; float local_14; undefined4 local_10; undefined4 local_c; undefined4 local_8; FUN_004368b8(param_1,param_2,param_3,param_4,param_5,param_6); *param_1 = &PTR_FUN_004f330c; FUN_0040aadc(param_1 + 0x14); FUN_004612dd(param_1 + 0xdf,0); FUN_00461328(param_1 + 0xe4,0,0); FUN_0046140e(param_1 + 0xe9,0,0); FUN_0041c42c(param_1 + 0xef,0); param_1[0x2c] = 0; param_1[0x2d] = 0; param_1[0x2f] = 0; param_1[0x2b] = 1; param_1[0x32] = 0; param_1[0x33] = 0; param_1[0x34] = 0; param_1[0x35] = 0; param_1[0x36] = 0; param_1[0x37] = 0; param_1[0x39] = 0; param_1[0x38] = 0; param_1[0x3a] = 0; param_1[0x3b] = 0; param_1[0x3c] = 0; param_1[0x3e] = 0; param_1[0x3d] = 0; param_1[0x3f] = 0; param_1[0x40] = 0; param_1[0x41] = 0; param_1[0x42] = 0; param_1[0x43] = 0; param_1[0x44] = 0; param_1[0x45] = 0; param_1[0x46] = 0x41f00000; param_1[0x49] = 0; param_1[0x4a] = 0; param_1[0x4b] = 0; param_1[0x4c] = 0; param_1[0xdb] = 0; param_1[0xdc] = 0; param_1[0xdd] = 0; param_1[0xde] = 0; param_1[0xb2] = 0; param_1[0x2e] = 0; param_1[0xf4] = 0; param_1[0xf6] = 0; param_1[0xf5] = 0; param_1[0xf7] = 0; FUN_0040ab28(param_1 + 0x14,&DAT_004e107c); piVar1 = (int *)FUN_00414b60(); param_1[0x20] = (float)*piVar1 / DAT_0052140c; piVar1 = (int *)FUN_00402298(0x24); if (piVar1 == (int *)0x0) { DAT_004f1ab0 = (int *)0x0; } else { DAT_004f1ab0 = FUN_00401c18(piVar1,0x4f1e7a,2000000); } iVar5 = 0; puVar3 = param_1 + 0xb3; do { iVar5 = iVar5 + 1; *puVar3 = 0; puVar3 = puVar3 + 1; } while (iVar5 < 0x28); local_8 = 0; local_c = 0x41200000; local_10 = 0; local_14 = 0.0; local_18 = 0.0; local_1c = 0.0; local_50 = '\0'; pcVar2 = (char *)FUN_004dee74(s_DPLARG_004f1e83); iVar5 = FUN_004dee74(s_L4EYES_004f1e8a); if (iVar5 != 0) { FUN_004d7f84(iVar5,(byte *)s__f__f__f__f__f__f__s_004f1e91); FUN_004d771c(s__f___f___f__f___f___f_004f1ea6); param_1[0x13] = 1; if (local_50 == 'r') { FUN_004dbb24(&DAT_00524e20,s_DPLRenderer__DPLRenderer_Eye_wil_004f1ebe,(char *)0x0); param_1[0x2c] = 1; } } if (pcVar2 == (char *)0x0) { FUN_004dbb24(&DAT_00524e20,s_DPLARG_must_be_set_for_the_Divis_004f1eff,(char *)0x0); } iVar5 = FUN_0046181c(pcVar2); if (iVar5 == 0) { FUN_004dbb24(&DAT_00524e20,s_DPLARG_is_bad__I_couldn_t_unders_004f1f34,(char *)0x0); } iVar5 = FUN_00461d14((int)local_d0,pcVar2,'~'); FUN_0048d108(iVar5,local_d0); FUN_00497b9c(&DAT_004f1f67,FUN_00495048); FUN_00498d38(&DAT_004f1f6c,FUN_0049a1dc); FUN_00498d38(&DAT_004f1f71,FUN_00499ab0); FUN_00496634(&LAB_004596ac); FUN_00496604(&LAB_00459e64); puVar3 = FUN_004896cc(); param_1[0x4b] = puVar3; puVar3 = FUN_004896cc(); param_1[0x4a] = puVar3; uVar4 = FUN_004896f0(); param_1[0x49] = uVar4; iVar5 = FUN_00489708(); param_1[0x48] = iVar5; FUN_00491c90(iVar5,local_1c,2); FUN_00491c90(param_1[0x48],local_14,0); FUN_00491c90(param_1[0x48],local_18,1); FUN_00491c58(param_1[0x48],local_8,local_c,local_10); FUN_0048a714(param_1[0x48],param_1[0x4b]); FUN_0048b4ac(param_1[0x49],param_1[0x48]); FUN_0048a890(param_1[0x4b]); FUN_0048a890(param_1[0x4a]); FUN_0048b56c(param_1[0x49],0x3f800000,0x40000000); FUN_0048b608(param_1[0x49],0,0,0); FUN_0048b83c(0,0,0,DAT_004f3368,DAT_004f336c); fVar6 = (float10)FUN_004dd188(0x40000000,0x3fe0c152); FUN_0048b9d0(param_1[0x49],0xbf800000,0xbf800000,0x3f800000,0x3f800000, (float)((float10)_DAT_0045a720 / fVar6)); FUN_0048b788(param_1[0x49],0); FUN_00489bd4(param_1[0x49]); FUN_0048b6b4(param_1[0x49],5,0,0,0,0x3c23d70a,0x3d4ccccd); FUN_0048d3e8((undefined4 *)param_1[0x48]); FUN_0048d42c((undefined4 *)param_1[0x49]); FUN_0048d4b0((undefined4 *)param_1[0x4b]); FUN_0048d4b0((undefined4 *)param_1[0x4a]); FUN_0048a1bc(); puVar3 = (undefined4 *)FUN_00414b60(); param_1[0x2a] = *puVar3; param_1[0x31] = 0; FUN_0045f784((int)param_1); param_1[0x28] = 0; return param_1; } /* @0045a724 file=? name=FUN_0045a724 */ undefined4 * FUN_0045a724(void) { undefined4 *puVar1; puVar1 = FUN_004896cc(); FUN_0048a890((int)puVar1); FUN_0048d4b0(puVar1); return puVar1; } /* @0045a744 file=? name=FUN_0045a744 */ void __cdecl FUN_0045a744(int param_1,undefined4 param_2) { (**(code **)(*(int *)(param_1 + 0x3bc) + 4))(param_1 + 0x3bc,param_2); return; } /* @0045a764 file=? name=FUN_0045a764 */ void __cdecl FUN_0045a764(int param_1,int param_2) { int local_14 [4]; FUN_00415f30(local_14,param_2,0xffffffff); FUN_004161fc((int)local_14,param_1 + 0x3bc); FUN_00415f90(local_14,2); return; } /* @0045a7a8 file=? name=FUN_0045a7a8 */ void __cdecl FUN_0045a7a8(int param_1,undefined4 param_2) { switch(param_2) { case 0: *(undefined4 *)(param_1 + 0xac) = 1; return; case 1: *(undefined4 *)(param_1 + 0xac) = 0; return; case 2: *(undefined4 *)(param_1 + 200) = *(undefined4 *)(param_1 + 0xdc); *(undefined4 *)(param_1 + 0xd0) = *(undefined4 *)(param_1 + 0xe4); *(undefined4 *)(param_1 + 0xcc) = *(undefined4 *)(param_1 + 0xe0); *(undefined4 *)(param_1 + 0xd4) = *(undefined4 *)(param_1 + 0xe8); *(undefined4 *)(param_1 + 0xd8) = *(undefined4 *)(param_1 + 0xec); if (*(int *)(param_1 + 0xac) != 0) { FUN_0048b6b4(*(int *)(param_1 + 0x124),5,*(undefined4 *)(param_1 + 200), *(undefined4 *)(param_1 + 0xd0),*(undefined4 *)(param_1 + 0xcc), *(undefined4 *)(param_1 + 0xd4),*(undefined4 *)(param_1 + 0xd8)); FUN_0048d42c(*(undefined4 **)(param_1 + 0x124)); return; } break; case 3: *(undefined4 *)(param_1 + 200) = *(undefined4 *)(param_1 + 0xf0); *(undefined4 *)(param_1 + 0xd0) = *(undefined4 *)(param_1 + 0xf8); *(undefined4 *)(param_1 + 0xcc) = *(undefined4 *)(param_1 + 0xf4); *(undefined4 *)(param_1 + 0xd4) = *(undefined4 *)(param_1 + 0xfc); *(undefined4 *)(param_1 + 0xd8) = *(undefined4 *)(param_1 + 0x100); if (*(int *)(param_1 + 0xac) != 0) { FUN_0048b6b4(*(int *)(param_1 + 0x124),5,*(undefined4 *)(param_1 + 200), *(undefined4 *)(param_1 + 0xd0),*(undefined4 *)(param_1 + 0xcc), *(undefined4 *)(param_1 + 0xd4),*(undefined4 *)(param_1 + 0xd8)); FUN_0048d42c(*(undefined4 **)(param_1 + 0x124)); return; } break; case 4: FUN_0048b56c(*(int *)(param_1 + 0x124),0x3e800000,0x44898000); FUN_0048b6b4(*(int *)(param_1 + 0x124),5,0x3ea3d70a,0x3e99999a,0x3f266666,0x42c80000,0x44834000) ; FUN_0048d42c(*(undefined4 **)(param_1 + 0x124)); } return; } /* @0045a954 file=? name=FUN_0045a954 */ void __cdecl FUN_0045a954(int param_1,undefined4 *param_2,undefined4 *param_3,undefined4 *param_4, undefined4 *param_5,undefined4 *param_6) { *param_2 = *(undefined4 *)(param_1 + 200); *param_3 = *(undefined4 *)(param_1 + 0xd0); *param_4 = *(undefined4 *)(param_1 + 0xcc); *param_5 = *(undefined4 *)(param_1 + 0xd4); *param_6 = *(undefined4 *)(param_1 + 0xd8); return; } /* @0045a994 file=munga_l4/l4video.cpp name=FUN_0045a994 */ void __cdecl FUN_0045a994(undefined4 param_1,int param_2,undefined4 param_3) { int iVar1; int iVar2; iVar1 = FUN_004904a0(param_2); if (iVar1 != 0) { FUN_0040385c(s_DPLRenderer__MarkDCSHiearchy_tri_004f1f76, s_d__tesla_bt_munga_l4_L4VIDEO_CPP_004f1fc1,0x5c8); } FUN_00490490(param_2,param_3); iVar1 = 0; while( true ) { iVar2 = FUN_0048a2ec(param_2,iVar1); if (iVar2 == 0) break; FUN_0045a994(param_1,iVar2,param_3); iVar1 = iVar1 + 1; } return; } /* @0045a9f8 file=munga_l4/l4video.cpp name=FUN_0045a9f8 */ int __cdecl FUN_0045a9f8(undefined4 param_1,char *param_2) { int *piVar1; int iVar2; char *pcVar3; char *pcVar4; undefined4 uVar5; undefined4 *puVar6; int iVar7; undefined4 local_108; undefined2 uStack_104; undefined1 uStack_102; int local_8; local_108 = DAT_004f1fe2; uStack_104 = DAT_004f1fe6; uStack_102 = DAT_004f1fe8; FUN_004d49b8((char *)&local_108,param_2); piVar1 = FUN_004d6f54((LPCSTR)&local_108,&DAT_004f1fe9); if (piVar1 == (int *)0x0) { FUN_004dbb24(&DAT_00524e20,s_Could_not_open_pfx_file_004f1fec,(char *)0x0); FUN_004dbb24(&DAT_00524e20,(char *)&local_108,(char *)0x0); FUN_004dbb24(&DAT_00524e20,s_effects_using_it_will_fail_004f2005,(char *)0x0); iVar2 = 0; } else { iVar2 = FUN_00402298(0x104); if (iVar2 == 0) { FUN_0040385c(s_ran_out_of_RAM_trying_to_read_a_p_004f2022, s_d__tesla_bt_munga_l4_L4VIDEO_CPP_004f204c,0x5f8); } pcVar3 = (char *)FUN_004d6c20(&local_108,0xff,piVar1); iVar7 = 0; pcVar4 = pcVar3; do { if (*pcVar4 == '\n') { *pcVar4 = '\0'; } iVar7 = iVar7 + 1; pcVar4 = pcVar4 + 1; } while (iVar7 < 0xff); uVar5 = FUN_00497730(pcVar3,0,&local_8); *(undefined4 *)(iVar2 + 0x100) = uVar5; puVar6 = FUN_004d6c20(&local_108,0xff,piVar1); local_8 = FUN_004d7f84(puVar6,(byte *)s__x__d__f__f_004f206d); if (local_8 < 4) { FUN_004dbb24(&DAT_00524e20,s_pfx_file_004f207a,(char *)0x0); FUN_004dbb24(&DAT_00524e20,param_2,(char *)0x0); FUN_004dbb24(&DAT_00524e20,s_did_not_read_correctly_004f2084,(char *)0x0); iVar2 = 0; } else { puVar6 = FUN_004d6c20(&local_108,0xff,piVar1); local_8 = FUN_004d7f84(puVar6,(byte *)s__f__f__f__f_004f209d); if (local_8 < 4) { FUN_004dbb24(&DAT_00524e20,s_pfx_file_004f20aa,(char *)0x0); FUN_004dbb24(&DAT_00524e20,param_2,(char *)0x0); FUN_004dbb24(&DAT_00524e20,s_did_not_read_correctly_004f20b4,(char *)0x0); iVar2 = 0; } else { puVar6 = FUN_004d6c20(&local_108,0xff,piVar1); local_8 = FUN_004d7f84(puVar6,(byte *)s__f__f__f__f__f__f_004f20cd); if (local_8 < 6) { FUN_004dbb24(&DAT_00524e20,s_pfx_file_004f20e0,(char *)0x0); FUN_004dbb24(&DAT_00524e20,param_2,(char *)0x0); FUN_004dbb24(&DAT_00524e20,s_did_not_read_correctly_004f20ea,(char *)0x0); iVar2 = 0; } else { puVar6 = FUN_004d6c20(&local_108,0xff,piVar1); local_8 = FUN_004d7f84(puVar6,(byte *)s__f__f__f__f__f__f_004f2103); if (local_8 < 6) { FUN_004dbb24(&DAT_00524e20,s_pfx_file_004f2116,(char *)0x0); FUN_004dbb24(&DAT_00524e20,param_2,(char *)0x0); FUN_004dbb24(&DAT_00524e20,s_did_not_read_correctly_004f2120,(char *)0x0); iVar2 = 0; } else { puVar6 = FUN_004d6c20(&local_108,0xff,piVar1); local_8 = FUN_004d7f84(puVar6,(byte *)s__f__f__f__f__f__f_004f2139); if (local_8 < 6) { FUN_004dbb24(&DAT_00524e20,s_pfx_file_004f214c,(char *)0x0); FUN_004dbb24(&DAT_00524e20,param_2,(char *)0x0); FUN_004dbb24(&DAT_00524e20,s_did_not_read_correctly_004f2156,(char *)0x0); iVar2 = 0; } else { puVar6 = FUN_004d6c20(&local_108,0xff,piVar1); local_8 = FUN_004d7f84(puVar6,(byte *)s__f__f_004f216f); if (local_8 < 2) { FUN_004dbb24(&DAT_00524e20,s_pfx_file_004f2176,(char *)0x0); FUN_004dbb24(&DAT_00524e20,param_2,(char *)0x0); FUN_004dbb24(&DAT_00524e20,s_did_not_read_correctly_004f2180,(char *)0x0); iVar2 = 0; } else { puVar6 = FUN_004d6c20(&local_108,0xff,piVar1); local_8 = FUN_004d7f84(puVar6,(byte *)s__f__f__f__f__f__f__f__f_004f2199); if (local_8 < 8) { FUN_004dbb24(&DAT_00524e20,s_pfx_file_004f21b2,(char *)0x0); FUN_004dbb24(&DAT_00524e20,param_2,(char *)0x0); FUN_004dbb24(&DAT_00524e20,s_did_not_read_correctly_004f21bc,(char *)0x0); iVar2 = 0; } else { puVar6 = FUN_004d6c20(&local_108,0xff,piVar1); local_8 = FUN_004d7f84(puVar6,(byte *)s__f__f__f__f__f__f__f__f_004f21d5); if (local_8 < 8) { FUN_004dbb24(&DAT_00524e20,s_pfx_file_004f21ee,(char *)0x0); FUN_004dbb24(&DAT_00524e20,param_2,(char *)0x0); FUN_004dbb24(&DAT_00524e20,s_did_not_read_correctly_004f21f8,(char *)0x0); iVar2 = 0; } else { puVar6 = FUN_004d6c20(&local_108,0xff,piVar1); local_8 = FUN_004d7f84(puVar6,(byte *)s__f__f__f__f__f__f__f__f_004f2211); if (local_8 < 8) { FUN_004dbb24(&DAT_00524e20,s_pfx_file_004f222a,(char *)0x0); FUN_004dbb24(&DAT_00524e20,param_2,(char *)0x0); FUN_004dbb24(&DAT_00524e20,s_did_not_read_correctly_004f2234,(char *)0x0); iVar2 = 0; } else { puVar6 = FUN_004d6c20(&local_108,0xff,piVar1); local_8 = FUN_004d7f84(puVar6,(byte *)s__f__f__f__f__f__f__f__f_004f224d); if (local_8 < 8) { FUN_004dbb24(&DAT_00524e20,s_pfx_file_004f2266,(char *)0x0); FUN_004dbb24(&DAT_00524e20,param_2,(char *)0x0); FUN_004dbb24(&DAT_00524e20,s_did_not_read_correctly_004f2270,(char *)0x0); iVar2 = 0; } else { puVar6 = FUN_004d6c20(&local_108,0xff,piVar1); local_8 = FUN_004d7f84(puVar6,(byte *)s__f__f_004f2289); if (local_8 < 2) { FUN_004dbb24(&DAT_00524e20,s_pfx_file_004f2290,(char *)0x0); FUN_004dbb24(&DAT_00524e20,param_2,(char *)0x0); FUN_004dbb24(&DAT_00524e20,s_did_not_read_correctly_004f229a,(char *)0x0); iVar2 = 0; } else { puVar6 = FUN_004d6c20(&local_108,0xff,piVar1); local_8 = FUN_004d7f84(puVar6,(byte *)s__f__f_004f22b3); if (local_8 < 2) { FUN_004dbb24(&DAT_00524e20,s_pfx_file_004f22ba,(char *)0x0); FUN_004dbb24(&DAT_00524e20,param_2,(char *)0x0); FUN_004dbb24(&DAT_00524e20,s_did_not_read_correctly_004f22c4,(char *)0x0 ); iVar2 = 0; } else { FUN_004d6b08(piVar1); } } } } } } } } } } } } } return iVar2; } /* @0045b1b8 file=munga_l4/l4video.cpp name=FUN_0045b1b8 */ void FUN_0045b1b8(int param_1,undefined4 *param_2,char *param_3,int param_4,int param_5) { char *pcVar1; int iVar2; undefined4 *puVar3; undefined4 uVar4; undefined4 *puVar5; uint uVar6; char *pcVar7; int *piVar8; uint *puVar9; char *pcVar10; int *piVar11; bool bVar12; char *local_248; uint local_240 [2]; char *local_238; uint local_230 [2]; char *local_228; int local_220 [10]; uint *local_1f8; int *local_1f4; int *local_1f0; uint *local_1ec; char *local_1e8; uint *local_1e4; int *local_1e0; char *local_1dc; uint *local_1d8; int *local_1d4; uint *local_1d0; uint *local_1cc; char *local_1c8; uint local_1c4; int *local_1c0; int *local_1bc; uint *local_1b8; uint *local_1b4; char *local_1b0; uint local_1ac; int *local_1a8; char *local_1a4; uint *local_1a0; int *local_19c; int *local_198; uint *local_194; char *local_190; int local_18c; int *local_188; int local_184; char *local_180; int *local_17c; uint local_178; int *local_174; int *local_170; int *local_16c; int *local_168; int *local_164; int *local_160; int *local_15c; int *local_158; uint *local_154; uint *local_150; char *local_14c; uint local_148; int *local_144; char *local_140; uint *local_13c; int local_138; uint local_134; uint *local_130; char *local_12c; uint *local_128; undefined4 *local_124; int *local_120; undefined4 *local_11c; int *local_118; uint *local_114; uint *local_110; int *local_10c; int local_108; char *local_104; char *local_100; int *local_fc; uint local_f8; char *local_f4; char *local_f0; int local_ec; undefined4 local_e8; undefined4 local_e4; float local_e0; float local_dc; undefined4 local_d8; undefined4 local_d4; undefined4 local_d0; float local_cc; float local_c8; float local_c4; float local_c0; int local_bc; int local_b8; int local_b4; uint local_b0; int local_ac; char *local_a8; int *local_a4; uint local_a0; int *local_9c; uint local_98; char *local_94; char *local_90; char *local_8c; char *local_88; char *local_84; char *local_80; char *local_7c; char *local_78; float local_74; char *local_70; char *local_6c; char *local_68; char *local_64; int local_60; char *local_5c; char *local_58; char *local_54; char *local_50; char *local_4c; char *local_48; char *local_44; char *local_40; char *local_3c; char *local_38; int *local_34; int *local_30; int *local_2c; int *local_28; int *local_24; int *local_20; float local_1c; float local_18; float local_14; undefined4 local_10; undefined4 local_c; undefined4 local_8; if (param_5 != 0) { local_44 = param_3; FUN_004dbb24(&DAT_00524e20,s_DPLReadINIPage_processing_004f22dd,(char *)0x0); FUN_004dbb24(&DAT_00524e20,local_44,(char *)0x0); FUN_004dbb24(&DAT_00524e20,&DAT_004f22f8,(char *)0x0); } local_34 = FUN_00404720((int)param_2,param_3,s_objectpath_004f22fa); if (local_34 != (int *)0x0) { for (puVar3 = (undefined4 *)local_34[1]; puVar3 != (undefined4 *)0x0; puVar3 = (undefined4 *)*puVar3) { FUN_00497b18((char *)puVar3[1],1); if (param_5 != 0) { local_48 = (char *)FUN_00497b88(); FUN_004dbb24(&DAT_00524e20,s_objectpath___004f2305,(char *)0x0); FUN_004dbb24(&DAT_00524e20,local_48,(char *)0x0); FUN_004dbb24(&DAT_00524e20,&DAT_004f2312,(char *)0x0); FUN_004d9c38(&DAT_00524e20); } } if (local_34 != (int *)0x0) { (**(code **)*local_34)(local_34,3); } } local_34 = FUN_00404720((int)param_2,param_3,s_texmappath_004f2314); if (local_34 != (int *)0x0) { for (puVar3 = (undefined4 *)local_34[1]; puVar3 != (undefined4 *)0x0; puVar3 = (undefined4 *)*puVar3) { FUN_00498cb4((char *)puVar3[1],1); if (param_5 != 0) { local_4c = (char *)FUN_00498d24(); FUN_004dbb24(&DAT_00524e20,s_texmappath___004f231f,(char *)0x0); FUN_004dbb24(&DAT_00524e20,local_4c,(char *)0x0); FUN_004dbb24(&DAT_00524e20,&DAT_004f232c,(char *)0x0); FUN_004d9c38(&DAT_00524e20); } } if (local_34 != (int *)0x0) { (**(code **)*local_34)(local_34,3); } } local_34 = FUN_00404720((int)param_2,param_3,s_materialpath_004f232e); if (local_34 != (int *)0x0) { for (puVar3 = (undefined4 *)local_34[1]; puVar3 != (undefined4 *)0x0; puVar3 = (undefined4 *)*puVar3) { FUN_004978a0((char *)puVar3[1],1); if (param_5 != 0) { local_50 = (char *)FUN_00497910(); FUN_004dbb24(&DAT_00524e20,s_materialpath___004f233b,(char *)0x0); FUN_004dbb24(&DAT_00524e20,local_50,(char *)0x0); FUN_004dbb24(&DAT_00524e20,&DAT_004f234a,(char *)0x0); FUN_004d9c38(&DAT_00524e20); } } if (local_34 != (int *)0x0) { (**(code **)*local_34)(local_34,3); } } iVar2 = FUN_00404088((int)param_2,param_3,s_priorityobjectpath_004f234c,&local_3c); if ((iVar2 != 0) && (FUN_00497b18(local_3c,0), param_5 != 0)) { local_54 = local_3c; FUN_004dbb24(&DAT_00524e20,s_priorityobjectpath___004f235f,(char *)0x0); FUN_004dbb24(&DAT_00524e20,local_54,(char *)0x0); FUN_004dbb24(&DAT_00524e20,&DAT_004f2374,(char *)0x0); FUN_004d9c38(&DAT_00524e20); } iVar2 = FUN_00404088((int)param_2,param_3,s_prioritytexmappath_004f2376,&local_3c); if ((iVar2 != 0) && (FUN_00498cb4(local_3c,0), param_5 != 0)) { local_58 = local_3c; FUN_004dbb24(&DAT_00524e20,s_prioritytexmappath___004f2389,(char *)0x0); FUN_004dbb24(&DAT_00524e20,local_58,(char *)0x0); FUN_004dbb24(&DAT_00524e20,&DAT_004f239e,(char *)0x0); FUN_004d9c38(&DAT_00524e20); } iVar2 = FUN_00404088((int)param_2,param_3,s_prioritymaterialpath_004f23a0,&local_3c); if ((iVar2 != 0) && (FUN_004978a0(local_3c,0), param_5 != 0)) { local_5c = local_3c; FUN_004dbb24(&DAT_00524e20,s_prioritymaterialpath___004f23b5,(char *)0x0); FUN_004dbb24(&DAT_00524e20,local_5c,(char *)0x0); FUN_004dbb24(&DAT_00524e20,&DAT_004f23cc,(char *)0x0); FUN_004d9c38(&DAT_00524e20); } local_20 = FUN_00404720((int)param_2,param_3,s_cache_004f23ce); if (local_20 != (int *)0x0) { for (puVar3 = (undefined4 *)local_20[1]; puVar3 != (undefined4 *)0x0; puVar3 = (undefined4 *)*puVar3) { local_60 = FUN_00498448((char *)puVar3[1],0); if (local_60 == 0) { local_64 = (char *)puVar3[1]; FUN_004dbb24(&DAT_00524e20,s_Unable_to_cache_004f23d4,(char *)0x0); FUN_004dbb24(&DAT_00524e20,local_64,(char *)0x0); FUN_004dbb24(&DAT_00524e20,&DAT_004f23e5,(char *)0x0); } else if (param_5 != 0) { local_68 = (char *)puVar3[1]; FUN_004dbb24(&DAT_00524e20,s_Caching_004f23e7,(char *)0x0); FUN_004dbb24(&DAT_00524e20,local_68,(char *)0x0); FUN_004dbb24(&DAT_00524e20,&DAT_004f23f0,(char *)0x0); } } if (local_20 != (int *)0x0) { (**(code **)*local_20)(local_20,3); } } iVar2 = FUN_00404088((int)param_2,param_3,&DAT_004f23f2,&local_3c); if (iVar2 != 0) { FUN_004d7f84(local_3c,(byte *)s__f__f_004f23f7); FUN_0048b56c(*(int *)(param_1 + 0x124),*(undefined4 *)(param_1 + 0x104), *(undefined4 *)(param_1 + 0x108)); if (param_5 != 0) { local_6c = local_3c; FUN_004dbb24(&DAT_00524e20,s_Clip_Range_004f23fd,(char *)0x0); FUN_004dbb24(&DAT_00524e20,local_6c,(char *)0x0); FUN_004dbb24(&DAT_00524e20,&DAT_004f2409,(char *)0x0); } } iVar2 = FUN_00404088((int)param_2,param_3,s_backgnd_004f240b,&local_3c); if (iVar2 != 0) { FUN_004d7f84(local_3c,(byte *)s__f__f__f_004f2413); FUN_0048b608(*(int *)(param_1 + 0x124),*(undefined4 *)(param_1 + 0x10c), *(undefined4 *)(param_1 + 0x110),*(undefined4 *)(param_1 + 0x114)); if (param_5 != 0) { local_70 = local_3c; FUN_004dbb24(&DAT_00524e20,s_Background_Color_004f241c,(char *)0x0); FUN_004dbb24(&DAT_00524e20,local_70,(char *)0x0); FUN_004dbb24(&DAT_00524e20,&DAT_004f242e,(char *)0x0); } } iVar2 = FUN_00404088((int)param_2,param_3,s_viewangle_004f2430,&local_3c); if (iVar2 != 0) { FUN_004d7f84(local_3c,&DAT_004f243a); FUN_0048b83c(0,0,0,DAT_004f3368,DAT_004f336c); local_74 = *(float *)(param_1 + 0x118); FUN_00460770(param_1,local_74); FUN_0048b788(*(int *)(param_1 + 0x124),0); if (param_5 != 0) { local_78 = local_3c; FUN_004dbb24(&DAT_00524e20,s_View_Angle_004f243d,(char *)0x0); FUN_004dbb24(&DAT_00524e20,local_78,(char *)0x0); FUN_004dbb24(&DAT_00524e20,&DAT_004f2449,(char *)0x0); } } iVar2 = FUN_00404088((int)param_2,param_3,&DAT_004f244b,&local_3c); if (iVar2 != 0) { FUN_004d7f84(local_3c,(byte *)s__f__f__f__f__f_004f244f); *(undefined4 *)(param_1 + 0xdc) = *(undefined4 *)(param_1 + 200); *(undefined4 *)(param_1 + 0xe4) = *(undefined4 *)(param_1 + 0xd0); *(undefined4 *)(param_1 + 0xe0) = *(undefined4 *)(param_1 + 0xcc); *(undefined4 *)(param_1 + 0xe8) = *(undefined4 *)(param_1 + 0xd4); *(undefined4 *)(param_1 + 0xec) = *(undefined4 *)(param_1 + 0xd8); *(undefined4 *)(param_1 + 0xf0) = *(undefined4 *)(param_1 + 200); *(undefined4 *)(param_1 + 0xf8) = *(undefined4 *)(param_1 + 0xd0); *(undefined4 *)(param_1 + 0xf4) = *(undefined4 *)(param_1 + 0xcc); *(undefined4 *)(param_1 + 0xfc) = *(undefined4 *)(param_1 + 0xd4); *(undefined4 *)(param_1 + 0x100) = *(undefined4 *)(param_1 + 0xd8); FUN_0048b6b4(*(int *)(param_1 + 0x124),5,0,0,0,0x3c23d70a,0x3d4ccccd); if (param_5 != 0) { local_7c = local_3c; FUN_004dbb24(&DAT_00524e20,&DAT_004f245e,(char *)0x0); FUN_004dbb24(&DAT_00524e20,local_7c,(char *)0x0); FUN_004dbb24(&DAT_00524e20,&DAT_004f2463,(char *)0x0); } } iVar2 = FUN_00404088((int)param_2,param_3,s_nosearchlightfog_004f2465,&local_3c); if ((iVar2 != 0) && (FUN_004d7f84(local_3c,(byte *)s__f__f__f__f__f_004f2476), param_5 != 0)) { local_80 = local_3c; FUN_004dbb24(&DAT_00524e20,s_nosearchlightfog_004f2485,(char *)0x0); FUN_004dbb24(&DAT_00524e20,local_80,(char *)0x0); FUN_004dbb24(&DAT_00524e20,&DAT_004f2497,(char *)0x0); } iVar2 = FUN_00404088((int)param_2,param_3,s_ambient_004f2499,&local_3c); if (iVar2 != 0) { FUN_004d7f84(local_3c,(byte *)s__f__f__f_004f24a1); puVar3 = FUN_0048973c(); *(undefined4 **)(param_1 + 0x3d0) = puVar3; FUN_0048b1e0(*(int *)(param_1 + 0x3d0),2); FUN_0048b26c(*(int *)(param_1 + 0x3d0),local_8,local_c,local_10); FUN_0048d478(*(undefined4 **)(param_1 + 0x3d0)); if (param_5 != 0) { local_84 = local_3c; FUN_004dbb24(&DAT_00524e20,s_Ambient_Light_004f24ab,(char *)0x0); FUN_004dbb24(&DAT_00524e20,local_84,(char *)0x0); FUN_004dbb24(&DAT_00524e20,&DAT_004f24ba,(char *)0x0); } } local_24 = FUN_00404720((int)param_2,param_3,s_light_004f24bc); if (local_24 != (int *)0x0) { iVar2 = FUN_00403b60((int)local_24); if (iVar2 != 0) { if (*(int *)(param_1 + 0x3dc) != 0) { FUN_0040385c(s_All_lights_must_be_defined_on_a_s_004f24c2, s_d__tesla_bt_munga_l4_L4VIDEO_CPP_004f24f9,0x81c); } iVar2 = FUN_00403b60((int)local_24); *(int *)(param_1 + 0x3dc) = iVar2; if (*(int *)(param_1 + 0x3dc) != 0) { uVar4 = FUN_004022b0(*(int *)(param_1 + 0x3dc) << 2); *(undefined4 *)(param_1 + 0x3d8) = uVar4; uVar4 = FUN_004022b0(*(int *)(param_1 + 0x3dc) << 2); *(undefined4 *)(param_1 + 0x3d4) = uVar4; } iVar2 = 0; for (puVar3 = (undefined4 *)local_24[1]; puVar3 != (undefined4 *)0x0; puVar3 = (undefined4 *)*puVar3) { FUN_004d7f84(puVar3[1],(byte *)s__f__f__f__f__f__f_004f251a); if (param_5 != 0) { local_88 = (char *)puVar3[1]; FUN_004dbb24(&DAT_00524e20,s_Light_004f252c,(char *)0x0); FUN_004dbb24(&DAT_00524e20,local_88,(char *)0x0); FUN_004dbb24(&DAT_00524e20,&DAT_004f2533,(char *)0x0); } puVar5 = FUN_0048973c(); *(undefined4 **)(*(int *)(param_1 + 0x3d4) + iVar2 * 4) = puVar5; uVar4 = FUN_00489708(); *(undefined4 *)(*(int *)(param_1 + 0x3d8) + iVar2 * 4) = uVar4; FUN_00489ba8(*(int *)(*(int *)(param_1 + 0x3d8) + iVar2 * 4)); FUN_0048b1e0(*(int *)(*(int *)(param_1 + 0x3d4) + iVar2 * 4),3); FUN_0048b26c(*(int *)(*(int *)(param_1 + 0x3d4) + iVar2 * 4),local_8,local_c,local_10); FUN_0048b134(*(int *)(*(int *)(param_1 + 0x3d4) + iVar2 * 4), *(int *)(*(int *)(param_1 + 0x3d8) + iVar2 * 4)); FUN_00491c90(*(int *)(*(int *)(param_1 + 0x3d8) + iVar2 * 4),local_1c,2); FUN_00491c90(*(int *)(*(int *)(param_1 + 0x3d8) + iVar2 * 4),local_14,0); FUN_00491c90(*(int *)(*(int *)(param_1 + 0x3d8) + iVar2 * 4),local_18,1); FUN_0048d478(*(undefined4 **)(*(int *)(param_1 + 0x3d4) + iVar2 * 4)); FUN_0048d3e8(*(undefined4 **)(*(int *)(param_1 + 0x3d8) + iVar2 * 4)); iVar2 = iVar2 + 1; } } if (local_24 != (int *)0x0) { (**(code **)*local_24)(local_24,3); } } local_28 = FUN_00404720((int)param_2,param_3,&DAT_004f2535); if (local_28 != (int *)0x0) { for (puVar3 = (undefined4 *)local_28[1]; puVar3 != (undefined4 *)0x0; puVar3 = (undefined4 *)*puVar3) { local_90 = (char *)(puVar3 + 3); uVar6 = FUN_004dd1e0(local_90); local_8c = (char *)puVar3[1]; if (param_5 != 0) { local_98 = uVar6; local_94 = local_8c; FUN_004dbb24(&DAT_00524e20,&DAT_004f253a,(char *)0x0); local_9c = FUN_004db78c(&DAT_00524e20,local_98); FUN_004dbb24(local_9c,&DAT_004f253f,(char *)0x0); FUN_004dbb24(local_9c,local_94,(char *)0x0); FUN_004dbb24(local_9c,&DAT_004f2541,(char *)0x0); } if (((int)uVar6 < 0) || (0x27 < (int)uVar6)) { FUN_0040385c(s_PSFX_id_number_was_not_in_the_al_004f2543, s_d__tesla_bt_munga_l4_L4VIDEO_CPP_004f256f,0x86d); } if (*(int *)(param_1 + 0x2cc + uVar6 * 4) != 0) { local_a0 = uVar6; FUN_004dbb24(&DAT_00524e20,s_psfx__004f2590,(char *)0x0); local_a4 = FUN_004db78c(&DAT_00524e20,local_a0); FUN_004dbb24(local_a4,s_already_existed_from_an_earlier_p_004f2596,(char *)0x0); FUN_004022d0(*(int **)(param_1 + 0x2cc + uVar6 * 4)); } iVar2 = FUN_0045a9f8(param_1,local_8c); *(int *)(param_1 + 0x2cc + uVar6 * 4) = iVar2; } if (local_28 != (int *)0x0) { (**(code **)*local_28)(local_28,3); } } local_2c = FUN_00404720((int)param_2,param_3,s_specialfx_004f25cc); if (local_2c != (int *)0x0) { for (puVar3 = (undefined4 *)local_2c[1]; puVar3 != (undefined4 *)0x0; puVar3 = (undefined4 *)*puVar3) { local_f0 = (char *)((int)puVar3 + 0x11); local_b0 = FUN_004dd1e0(local_f0); pcVar7 = (char *)puVar3[1]; if (param_5 != 0) { local_f8 = local_b0; local_f4 = pcVar7; FUN_004dbb24(&DAT_00524e20,s_specialfx_004f25d6,(char *)0x0); local_fc = FUN_004db78c(&DAT_00524e20,local_f8); FUN_004dbb24(local_fc,&DAT_004f25e0,(char *)0x0); FUN_004dbb24(local_fc,local_f4,(char *)0x0); FUN_004dbb24(local_fc,&DAT_004f25e2,(char *)0x0); } FUN_004040d8((int)param_2,pcVar7,&DAT_004f25e4,&local_b4); FUN_00404118((int)param_2,pcVar7,&DAT_004f25e9,&local_c0); FUN_00404118((int)param_2,pcVar7,s_velocity_004f25ee,&local_c4); FUN_00404118((int)param_2,pcVar7,s_v_bias_004f25f7,&local_c8); FUN_00404118((int)param_2,pcVar7,s_y_off_004f25fe,&local_cc); FUN_00404118((int)param_2,pcVar7,s_variance_004f2604,&local_dc); FUN_00404118((int)param_2,pcVar7,s_gravity_004f260d,&local_e0); FUN_004040d8((int)param_2,pcVar7,s_count_004f2615,&local_b8); FUN_004040d8((int)param_2,pcVar7,s_repeats_004f261b,&local_bc); FUN_00404088((int)param_2,pcVar7,&DAT_004f2623,&local_3c); FUN_004d7f84(local_3c,(byte *)s__f__f__f_004f2628); FUN_00404088((int)param_2,pcVar7,&DAT_004f2631,&local_3c); FUN_004d7f84(local_3c,(byte *)s__f__f_004f2636); FUN_00404088((int)param_2,pcVar7,s_texture_004f263c,&local_3c); local_a8 = local_3c; local_ec = FUN_00497730(local_3c,0,&local_ac); if (local_ec == 0) { local_100 = local_a8; FUN_004dbb24(&DAT_00524e20,s_couldn_t_find_texture_004f2644,(char *)0x0); FUN_004dbb24(&DAT_00524e20,local_100,(char *)0x0); FUN_004dbb24(&DAT_00524e20,s_for_an_effect_004f265b,(char *)0x0); } FUN_00490210(local_b0,local_ec,local_b4,local_c0,local_c4,local_c8,local_cc,local_d0,local_d4, local_d8,local_dc,local_e0,local_e4,local_e8,local_b8,local_bc,3); } if (local_2c != (int *)0x0) { (**(code **)*local_2c)(local_2c,3); } } local_30 = FUN_00404720((int)param_2,param_3,s_include_004f266b); if (local_30 != (int *)0x0) { for (puVar3 = (undefined4 *)local_30[1]; puVar3 != (undefined4 *)0x0; puVar3 = (undefined4 *)*puVar3) { local_38 = (char *)puVar3[1]; FUN_0045b1b8(param_1,param_2,local_38,param_4,param_5); if (param_5 != 0) { local_104 = param_3; FUN_004dbb24(&DAT_00524e20,s_DPLReadINIPage_returned_to_004f2673,(char *)0x0); FUN_004dbb24(&DAT_00524e20,local_104,(char *)0x0); FUN_004dbb24(&DAT_00524e20,&DAT_004f268f,(char *)0x0); } } if (local_30 != (int *)0x0) { (**(code **)*local_30)(local_30,3); } } iVar2 = FUN_00404088((int)param_2,param_3,s_compare_004f2691,&local_40); if (iVar2 != 0) { piVar11 = FUN_004de998(local_220,4,10,1,FUN_00461280); local_114 = (uint *)FUN_00402298(0x10); if (local_114 == (uint *)0x0) { local_110 = (uint *)0x0; } else { local_110 = FUN_00402460(local_114,&DAT_004f2699); } local_110[3] = local_110[3] + 1; local_11c = (undefined4 *)FUN_00402298(0x10); if (local_11c == (undefined4 *)0x0) { local_118 = (int *)0x0; } else { local_118 = (int *)FUN_004023f4(local_11c); } local_118[3] = local_118[3] + 1; local_124 = (undefined4 *)FUN_00402298(0x10); if (local_124 == (undefined4 *)0x0) { local_120 = (int *)0x0; } else { local_120 = (int *)FUN_004023f4(local_124); } local_120[3] = local_120[3] + 1; local_12c = local_40; local_130 = (uint *)FUN_00402298(0x10); if (local_130 == (uint *)0x0) { local_128 = (uint *)0x0; } else { local_128 = FUN_00402460(local_130,local_12c); } local_128[3] = local_128[3] + 1; local_138 = *(int *)(DAT_004efc94 + 0x68); if (param_5 != 0) { FUN_004dbb24(&DAT_00524e20,s_compare___004f269b,(char *)0x0); local_13c = local_128; local_140 = (char *)local_128[2]; FUN_004dbb24(&DAT_00524e20,local_140,(char *)0x0); FUN_004dbb24(&DAT_00524e20,&DAT_004f26a6,(char *)0x0); } local_134 = 0; while( true ) { local_148 = local_134; FUN_00402838(local_230,local_128,local_134,&DAT_004f26a8); local_14c = local_228; puVar9 = (uint *)FUN_00402298(0x10); if (puVar9 == (uint *)0x0) { local_150 = (uint *)0x0; } else { local_150 = FUN_00402460(puVar9,local_14c); } local_150[3] = local_150[3] + 1; FUN_004024d8((int *)local_230,2); FUN_00402a4c((int *)&local_144,(int *)&local_120,(int *)&local_150); uVar6 = (uint)(local_144[2] != 0); piVar8 = local_144 + 3; *piVar8 = *piVar8 + -1; if (*piVar8 == 0) { FUN_004024d8(local_144,3); } local_154 = local_150; puVar9 = local_150 + 3; *puVar9 = *puVar9 - 1; if (*puVar9 == 0) { FUN_004024d8((int *)local_150,3); } if (uVar6 == 0) break; pcVar7 = (char *)local_120[2]; pcVar10 = s_location_004f26aa; do { if (*pcVar7 != *pcVar10) goto LAB_0045c510; bVar12 = true; if (*pcVar7 == '\0') break; pcVar1 = pcVar7 + 1; if (*pcVar1 != pcVar10[1]) goto LAB_0045c510; pcVar7 = pcVar7 + 2; pcVar10 = pcVar10 + 2; bVar12 = *pcVar1 == '\0'; } while (!bVar12); if (bVar12) { iVar2 = FUN_00406fd4(local_138,*(int *)(param_4 + 4)); FUN_00402a98((int *)&local_158,local_220 + local_134,(char *)(iVar2 + 0xc)); local_15c = local_158; piVar8 = local_158 + 3; *piVar8 = *piVar8 + -1; if (*piVar8 == 0) { FUN_004024d8(local_158,3); } } else { LAB_0045c510: pcVar10 = &DAT_004f26b3; pcVar7 = (char *)local_120[2]; do { if (*pcVar7 != *pcVar10) goto LAB_0045c595; bVar12 = true; if (*pcVar7 == '\0') break; pcVar1 = pcVar7 + 1; if (*pcVar1 != pcVar10[1]) goto LAB_0045c595; pcVar7 = pcVar7 + 2; pcVar10 = pcVar10 + 2; bVar12 = *pcVar1 == '\0'; } while (!bVar12); if (bVar12) { FUN_00402a98((int *)&local_160,local_220 + local_134,*(char **)(param_4 + 0x30)); local_164 = local_160; piVar8 = local_160 + 3; *piVar8 = *piVar8 + -1; if (*piVar8 == 0) { FUN_004024d8(local_160,3); } } else { LAB_0045c595: pcVar10 = s_weather_004f26b8; pcVar7 = (char *)local_120[2]; do { if (*pcVar7 != *pcVar10) goto LAB_0045c61a; bVar12 = true; if (*pcVar7 == '\0') break; pcVar1 = pcVar7 + 1; if (*pcVar1 != pcVar10[1]) goto LAB_0045c61a; pcVar7 = pcVar7 + 2; pcVar10 = pcVar10 + 2; bVar12 = *pcVar1 == '\0'; } while (!bVar12); if (bVar12) { FUN_00402a98((int *)&local_168,local_220 + local_134,*(char **)(param_4 + 0x34)); local_16c = local_168; piVar8 = local_168 + 3; *piVar8 = *piVar8 + -1; if (*piVar8 == 0) { FUN_004024d8(local_168,3); } } else { LAB_0045c61a: pcVar10 = s_scenario_004f26c0; pcVar7 = (char *)local_120[2]; do { if (*pcVar7 != *pcVar10) goto LAB_0045c69f; bVar12 = true; if (*pcVar7 == '\0') break; pcVar1 = pcVar7 + 1; if (*pcVar1 != pcVar10[1]) goto LAB_0045c69f; pcVar7 = pcVar7 + 2; pcVar10 = pcVar10 + 2; bVar12 = *pcVar1 == '\0'; } while (!bVar12); if (bVar12) { FUN_00402a98((int *)&local_170,local_220 + local_134,*(char **)(param_4 + 0x38)); local_174 = local_170; piVar8 = local_170 + 3; *piVar8 = *piVar8 + -1; if (*piVar8 == 0) { FUN_004024d8(local_170,3); } } else { LAB_0045c69f: local_178 = local_134; FUN_004dbb24(&DAT_00524e20,s_Mission_variable_004f26c9,(char *)0x0); piVar8 = FUN_004db78c(&DAT_00524e20,local_178); FUN_004dbb24(piVar8,&DAT_004f26db,(char *)0x0); local_17c = local_120; local_180 = (char *)local_120[2]; FUN_004dbb24(piVar8,local_180,(char *)0x0); FUN_004dbb24(piVar8,s_IS_AN_UNKNOWN_MISSION_VARIABLE_004f26de,(char *)0x0); } } } } local_134 = local_134 + 1; } if (param_5 != 0) { FUN_004dbb24(&DAT_00524e20,s_comparing_to__004f26ff,(char *)0x0); local_184 = 0; if (0 < (int)local_134) { do { local_188 = local_220 + local_184; local_18c = *local_188; local_190 = *(char **)(local_18c + 8); FUN_004dbb24(&DAT_00524e20,local_190,(char *)0x0); FUN_004dbb24(&DAT_00524e20,&DAT_004f270e,(char *)0x0); local_184 = local_184 + 1; } while (local_184 < (int)local_134); } FUN_004dbb24(&DAT_00524e20,&DAT_004f2711,(char *)0x0); } local_10c = FUN_00404720((int)param_2,param_3,s_branch_004f2713); for (puVar3 = (undefined4 *)local_10c[1]; puVar3 != (undefined4 *)0x0; puVar3 = (undefined4 *)*puVar3) { puVar5 = (undefined4 *)FUN_00402298(0x10); if (puVar5 == (undefined4 *)0x0) { local_194 = (uint *)0x0; } else { local_194 = (uint *)FUN_004023f4(puVar5); } local_194[3] = local_194[3] + 1; puVar5 = (undefined4 *)FUN_00402298(0x10); if (puVar5 == (undefined4 *)0x0) { local_198 = (int *)0x0; } else { local_198 = (int *)FUN_004023f4(puVar5); } local_198[3] = local_198[3] + 1; FUN_00402a98((int *)&local_19c,(int *)&local_194,(char *)puVar3[1]); piVar8 = local_19c + 3; *piVar8 = *piVar8 + -1; if (*piVar8 == 0) { FUN_004024d8(local_19c,3); } if (param_5 != 0) { FUN_004dbb24(&DAT_00524e20,s_branch___004f271a,(char *)0x0); local_1a0 = local_194; local_1a4 = (char *)local_194[2]; FUN_004dbb24(&DAT_00524e20,local_1a4,(char *)0x0); FUN_004dbb24(&DAT_00524e20,&DAT_004f2724,(char *)0x0); } local_108 = 1; uVar6 = 0; if (0 < (int)local_134) { do { local_1ac = uVar6; FUN_00402838(local_240,local_194,uVar6,&DAT_004f2726); local_1b0 = local_238; local_1b8 = (uint *)FUN_00402298(0x10); if (local_1b8 == (uint *)0x0) { local_1b4 = (uint *)0x0; } else { local_1b4 = FUN_00402460(local_1b8,local_1b0); } local_1b4[3] = local_1b4[3] + 1; FUN_004024d8((int *)local_240,2); FUN_00402a4c((int *)&local_1a8,(int *)&local_198,(int *)&local_1b4); piVar8 = local_1a8 + 3; *piVar8 = *piVar8 + -1; if (*piVar8 == 0) { FUN_004024d8(local_1a8,3); } puVar9 = local_1b4 + 3; *puVar9 = *puVar9 - 1; if (*puVar9 == 0) { FUN_004024d8((int *)local_1b4,3); } local_1bc = local_220 + uVar6; iVar2 = FUN_004027d8((int)local_198,*local_1bc); if ((iVar2 != 0) && (iVar2 = FUN_004027d8((int)local_198,(int)local_110), iVar2 != 0)) { local_108 = 0; break; } uVar6 = uVar6 + 1; } while ((int)uVar6 < (int)local_134); } if (local_108 != 0) { local_1c4 = uVar6; FUN_00402838((uint *)&stack0xfffffdb0,local_194,uVar6,&DAT_004f2728); local_1c8 = local_248; local_1d0 = (uint *)FUN_00402298(0x10); if (local_1d0 == (uint *)0x0) { local_1cc = (uint *)0x0; } else { local_1cc = FUN_00402460(local_1d0,local_1c8); } local_1cc[3] = local_1cc[3] + 1; FUN_004024d8((int *)&stack0xfffffdb0,2); FUN_00402a4c((int *)&local_1c0,(int *)&local_198,(int *)&local_1cc); local_1d4 = local_1c0; piVar8 = local_1c0 + 3; *piVar8 = *piVar8 + -1; if (*piVar8 == 0) { FUN_004024d8(local_1c0,3); } local_1d8 = local_1cc; puVar9 = local_1cc + 3; *puVar9 = *puVar9 - 1; if (*puVar9 == 0) { FUN_004024d8((int *)local_1cc,3); } FUN_0045b1b8((int)piVar11,param_2,(char *)local_198[2],param_4,param_5); if (param_5 != 0) { local_1dc = param_3; FUN_004dbb24(&DAT_00524e20,s_DPLReadINIPage_returned_to_004f272a,(char *)0x0); FUN_004dbb24(&DAT_00524e20,local_1dc,(char *)0x0); FUN_004dbb24(&DAT_00524e20,&DAT_004f2746,(char *)0x0); } local_1e0 = local_198; piVar11 = local_198 + 3; *piVar11 = *piVar11 + -1; if (*piVar11 == 0) { FUN_004024d8(local_198,3); } local_1e4 = local_194; puVar9 = local_194 + 3; *puVar9 = *puVar9 - 1; if (*puVar9 == 0) { FUN_004024d8((int *)local_194,3); } break; } piVar8 = local_198 + 3; *piVar8 = *piVar8 + -1; if (*piVar8 == 0) { FUN_004024d8(local_198,3); } puVar9 = local_194 + 3; *puVar9 = *puVar9 - 1; if (*puVar9 == 0) { FUN_004024d8((int *)local_194,3); } } if (local_10c != (int *)0x0) { (**(code **)*local_10c)(local_10c,3); } if (local_108 == 0) { local_1e8 = (char *)*param_2; FUN_004dbb24(&DAT_00524e20,s_BRANCH_ERROR_IN___004f2748,(char *)0x0); FUN_004dbb24(&DAT_00524e20,local_1e8,(char *)0x0); FUN_004dbb24(&DAT_00524e20,s___NO_MATCH_FOUND___004f275a,(char *)0x0); FUN_004d9c38(&DAT_00524e20); } local_1ec = local_128; puVar9 = local_128 + 3; *puVar9 = *puVar9 - 1; if (*puVar9 == 0) { FUN_004024d8((int *)local_128,3); } local_1f0 = local_120; piVar11 = local_120 + 3; *piVar11 = *piVar11 + -1; if (*piVar11 == 0) { FUN_004024d8(local_120,3); } local_1f4 = local_118; piVar11 = local_118 + 3; *piVar11 = *piVar11 + -1; if (*piVar11 == 0) { FUN_004024d8(local_118,3); } local_1f8 = local_110; puVar9 = local_110 + 3; *puVar9 = *puVar9 - 1; if (*puVar9 == 0) { FUN_004024d8((int *)local_110,3); } FUN_004de8d4(local_220,4,10,1,FUN_004612b0); } return; } /* @0045ce5c file=? name=FUN_0045ce5c */ void __cdecl FUN_0045ce5c(int param_1,int param_2) { char *pcVar1; int *piVar2; int iVar3; int extraout_var; int iVar4; pcVar1 = (char *)FUN_004dee74(s_L4DPLCFG_004f276d); iVar4 = extraout_var; if (pcVar1 == (char *)0x0) { FUN_004dbb24(&DAT_00524e20,s_L4DPLCFG_not_defined__using_dpld_004f2776,(char *)0x0); pcVar1 = s_dpldflt_ini_004f27a0; } piVar2 = (int *)FUN_00402298(0x20); if (piVar2 == (int *)0x0) { piVar2 = (int *)0x0; } else { piVar2 = FUN_00403e84(piVar2,pcVar1,1); } if ((*(byte *)(piVar2 + 7) & 2) == 0) { iVar3 = piVar2[3]; } else { iVar3 = piVar2[4]; } if (iVar3 == 0) { FUN_004dbb24(&DAT_00524e20,s_Renderer_config_notation_file_004f27ac,(char *)0x0); FUN_004dbb24(&DAT_00524e20,pcVar1,(char *)0x0); FUN_004dbb24(&DAT_00524e20,s_was_empty__can_t_continue_004f27cb,(char *)0x0); } iVar3 = FUN_00403f84((int)piVar2,&DAT_004f27e6); if (iVar3 == 0) { iVar3 = FUN_00404190((int)piVar2,s_dpl_config_004f27fb,s_debug_004f2806, (undefined4 *)&stack0xfffffff8); if (iVar3 == 0) { iVar4 = 0; } pcVar1 = (char *)*piVar2; FUN_004dbb24(&DAT_00524e20,s_READING_OLD_FORMAT_INI_FILE___004f280c,(char *)0x0); FUN_004dbb24(&DAT_00524e20,pcVar1,(char *)0x0); FUN_004dbb24(&DAT_00524e20,s_____hope_this_works_004f282a,(char *)0x0); FUN_00497b4c(s___video_004f283f,(char *)0x0,(char *)0x0); FUN_00498ce8(s___video_004f2847,(char *)0x0,(char *)0x0); FUN_004978d4(s___video_004f284f,(char *)0x0,(char *)0x0); FUN_0045b1b8(param_1,piVar2,s_dpl_config_004f2857,param_2,iVar4); } else { iVar3 = FUN_00404190((int)piVar2,&DAT_004f27eb,s_debug_004f27f0,(undefined4 *)&stack0xfffffff8); if (iVar3 == 0) { iVar4 = 0; } FUN_0045b1b8(param_1,piVar2,&DAT_004f27f6,param_2,iVar4); } if (iVar4 != 0) { pcVar1 = (char *)FUN_00497b88(); FUN_004dbb24(&DAT_00524e20,s_ObjectFilePath___004f2862,(char *)0x0); FUN_004dbb24(&DAT_00524e20,pcVar1,(char *)0x0); FUN_004dbb24(&DAT_00524e20,&DAT_004f2875,(char *)0x0); FUN_004d9c38(&DAT_00524e20); pcVar1 = (char *)FUN_00498d24(); FUN_004dbb24(&DAT_00524e20,s_TexmapFilePath___004f2877,(char *)0x0); FUN_004dbb24(&DAT_00524e20,pcVar1,(char *)0x0); FUN_004dbb24(&DAT_00524e20,&DAT_004f288a,(char *)0x0); FUN_004d9c38(&DAT_00524e20); pcVar1 = (char *)FUN_00497910(); FUN_004dbb24(&DAT_00524e20,s_MaterialFilePath___004f288c,(char *)0x0); FUN_004dbb24(&DAT_00524e20,pcVar1,(char *)0x0); FUN_004dbb24(&DAT_00524e20,&DAT_004f289f,(char *)0x0); FUN_004d9c38(&DAT_00524e20); } FUN_00403ecc(piVar2,3); FUN_0048d42c(*(undefined4 **)(param_1 + 0x124)); return; } /* @0045d0f4 file=? name=FUN_0045d0f4 */ void __cdecl FUN_0045d0f4(int *param_1,byte param_2) { int *piVar1; int iVar2; if (param_1 != (int *)0x0) { *param_1 = (int)&PTR_FUN_004f330c; FUN_0045ff4c((undefined4 *)0x0,0,0,0); iVar2 = 0; piVar1 = param_1 + 0xb3; do { if ((int *)*piVar1 != (int *)0x0) { FUN_004022d0((int *)*piVar1); *piVar1 = 0; } iVar2 = iVar2 + 1; piVar1 = piVar1 + 1; } while (iVar2 < 0x28); if ((int *)param_1[0xf4] != (int *)0x0) { FUN_00489938((int *)param_1[0xf4]); } if ((param_1[0xf6] != 0) && (param_1[0xf5] != 0)) { for (iVar2 = 0; iVar2 < param_1[0xf7]; iVar2 = iVar2 + 1) { FUN_00489e58(*(int *)(param_1[0xf6] + iVar2 * 4)); FUN_004898b8(*(int **)(param_1[0xf6] + iVar2 * 4)); } FUN_004022e8((int *)param_1[0xf5]); FUN_004022e8((int *)param_1[0xf6]); } FUN_00401c70(DAT_004f1ab0,3); DAT_004f1ab0 = (int *)0x0; FUN_0041c44b(param_1 + 0xef,2); FUN_00461431(param_1 + 0xe9,2); FUN_0046134b(param_1 + 0xe4,2); FUN_004612fc(param_1 + 0xdf,2); FUN_004368f4(param_1,0); if ((param_2 & 1) != 0) { FUN_004022d0(param_1); } } return; } /* @0045d228 file=? name=FUN_0045d228 */ undefined4 __cdecl FUN_0045d228(int param_1) { FUN_00436b00(param_1); return 1; } /* @0045d23c file=? name=FUN_0045d23c */ void __cdecl FUN_0045d23c(undefined4 param_1,byte *param_2) { int iVar1; undefined4 *puVar2; int local_8; iVar1 = FUN_00497730(s_bmap_bmap1_tex_004f28a1,0,&local_8); if (iVar1 == 0) { FUN_004dbb24(&DAT_00524e20,s_WARNING__textures_for_player_nam_004f28b0,(char *)0x0); } else { puVar2 = (undefined4 *)FUN_0048c2f0(iVar1); if (puVar2 == (undefined4 *)0x0) { FUN_004dbb24(&DAT_00524e20,s_WARNING__texmap_for_player_names_004f28e0,(char *)0x0); } else { FUN_0048c460((int)puVar2,param_2,0x80,0x40); FUN_0048d5b0(puVar2); } } return; } /* @0045d2b4 file=? name=FUN_0045d2b4 */ void __cdecl FUN_0045d2b4(undefined4 param_1,int param_2,uint param_3,uint *param_4) { int iVar1; int iVar2; ushort *puVar3; uint local_10; uint local_c; int local_8; puVar3 = *(ushort **)(param_2 + 0x18); if ((param_3 & 1) != 0) { param_4 = param_4 + 0x1000; } switch(param_3) { case 1: case 2: local_c = 0xf000; local_10 = 0xffff0fff; break; case 3: case 4: local_c = 0xf00; local_10 = 0xfffff0ff; break; case 5: case 6: local_c = 0xf00000; local_10 = 0xff0fffff; break; case 7: case 8: local_c = 0xf0000; local_10 = 0xfff0ffff; break; case 9: case 10: local_c = 0xf0000000; local_10 = 0xfffffff; break; case 0xb: case 0xc: local_c = 0xf000000; local_10 = 0xf0ffffff; } iVar1 = 0xf; local_8 = 0; do { iVar2 = 0; do { if ((1 << ((byte)iVar1 & 0x1f) & (uint)*puVar3) == 0) { *param_4 = *param_4 & local_10; } else { *param_4 = *param_4 | local_c; } param_4 = param_4 + 1; iVar1 = iVar1 + -1; if (iVar1 < 0) { iVar1 = 0xf; puVar3 = puVar3 + 1; } iVar2 = iVar2 + 1; } while (iVar2 < 0x80); local_8 = local_8 + 1; } while (local_8 < 0x20); return; } /* @0045d3cc file=? name=FUN_0045d3cc */ void __cdecl FUN_0045d3cc(undefined4 param_1,int param_2) { if ((param_2 != 0x68) && (param_2 != 0x6a)) { return; } FUN_00498448(s_flamebig_bgf_004f290e,0); FUN_00498448(s_thrdbr_bgf_004f291b,0); FUN_00498448(s_ldbr_bgf_004f2926,0); FUN_00498448(s_flamesml_bgf_004f292f,0); return; } /* @0045d41c file=munga_l4/l4video.cpp name=FUN_0045d41c */ void __cdecl FUN_0045d41c(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5 ) { undefined4 *puVar1; int iVar2; undefined4 *puVar3; undefined4 local_39c; undefined4 local_398; undefined4 local_394; undefined4 local_390; undefined4 local_38c; undefined4 local_388; undefined4 local_384 [12]; undefined4 local_354; undefined4 local_350; undefined4 local_34c; undefined4 local_348 [12]; undefined4 local_318; undefined4 local_314; undefined4 local_310; undefined4 local_30c [12]; undefined4 local_2dc; undefined4 local_2d8; undefined4 local_2d4; undefined4 local_2d0; undefined4 local_2cc; undefined4 local_2c8; float local_2c4 [18]; undefined4 local_27c [12]; undefined4 local_24c; undefined4 local_248; undefined4 local_244; undefined4 local_240; undefined4 local_23c; undefined4 local_238; undefined4 local_234; undefined4 local_230; undefined4 local_22c; undefined4 local_228; undefined4 local_224; undefined4 local_220; float local_21c [18]; undefined4 local_1d4 [12]; undefined4 local_1a4; undefined4 local_1a0; undefined4 local_19c; undefined4 local_198; undefined4 local_194; undefined4 local_190; undefined4 local_18c; undefined4 local_188; undefined4 local_184; undefined4 local_180; undefined4 local_17c; undefined4 local_178; undefined4 local_174 [12]; undefined4 local_144; undefined4 local_140; undefined4 local_13c; undefined4 local_138; undefined4 local_134; undefined4 local_130; undefined4 *local_12c; undefined4 *local_128; undefined4 *local_124; undefined4 *local_120; int local_11c; undefined4 *local_118; int local_114; undefined4 *local_110; int local_10c; undefined4 *local_108; undefined4 *local_104; undefined4 *local_100; undefined4 *local_fc; undefined4 *local_f8; undefined4 *local_f4; undefined4 *local_f0; int local_ec; undefined4 *local_e8; undefined4 *local_e4; undefined4 *local_e0; int local_dc; undefined4 *local_d8; undefined4 *local_d4; undefined4 *local_d0; undefined4 *local_cc; undefined4 *local_c8; undefined4 *local_c4; undefined4 *local_c0; undefined4 *local_bc; int local_b8; int local_b4; int local_b0; undefined4 *local_ac; undefined4 *local_a8; undefined4 *local_a4; undefined4 *local_a0; int local_9c; int local_98; undefined4 *local_94; undefined4 *local_90; undefined4 *local_8c; undefined4 *local_88; undefined4 *local_84; undefined4 *local_80; undefined4 *local_7c; undefined4 *local_78; int local_74; undefined4 *local_70; undefined4 *local_6c; undefined4 *local_68; undefined4 *local_64; undefined4 *local_60; undefined4 *local_5c; undefined4 local_58; undefined4 local_54; undefined4 local_50; undefined4 *local_4c; undefined4 *local_48; int local_44; undefined4 *local_40; undefined4 *local_3c; undefined4 *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; undefined4 *local_14; undefined4 *local_10; undefined4 *local_c; int local_8; puVar1 = (undefined4 *)FUN_00402298(100); if (puVar1 == (undefined4 *)0x0) { puVar1 = (undefined4 *)0x0; } else { puVar1 = FUN_00453578(puVar1,param_2,1,0,*(undefined4 *)(param_1 + 300),1,0); } switch(param_5) { case 0: local_8 = FUN_00498448(s_shock_bgf_004f293c,0); local_138 = 0x40600000; local_134 = 0x40600000; local_130 = 0x40600000; local_144 = 0; local_140 = 0; local_13c = 0; FUN_0040aadc(local_174); local_10 = (undefined4 *)FUN_00402298(0xa8); if (local_10 == (undefined4 *)0x0) { local_c = (undefined4 *)0x0; } else { local_c = FUN_00455930(local_10,param_2,1,local_8,*(undefined4 *)(param_1 + 300),1,0, puVar1[0xb],local_174,&local_138,&local_144,0,0); } puVar1 = (undefined4 *)FUN_00402298(0x48); if (puVar1 == (undefined4 *)0x0) { local_14 = (undefined4 *)0x0; } else { local_14 = FUN_00456610(puVar1,param_2,1,0x3f000000,1,(undefined4 *)0x0,0,0x3f800000,0); } iVar2 = FUN_00497730(s_btfx_firesmoke1_scr_tex_004f2946,0,&local_18); if (iVar2 == 0) { FUN_004dbb24(&DAT_00524e20,s_couldn_t_find_texture_btfx_fires_004f295e,(char *)0x0); } puVar1 = (undefined4 *)FUN_00402298(0xfc); if (puVar1 == (undefined4 *)0x0) { local_1c = (undefined4 *)0x0; } else { local_1c = FUN_00456cf0(puVar1,param_2,1,0x3f800000,0x3f800000,0x3f800000,0x3f800000, 0x3f800000,0x3f800000,0x3f800000,0x3f800000,0x3f800000,0,0,0,0, 0x40800000,0x3e4ccccd,0xbd4ccccd,iVar2,0.0,0,0x3f000000,0x3f000000, 0x3f000000,0x3f000000,0x3f000000,0x3f000000,0x3f000000,0x3f000000, 0x3f000000,0,0,0,0,0x3dcccccd,0x3dcccccd,0xbd4ccccd,0,local_14 + 0x11) ; } puVar1 = (undefined4 *)FUN_0048a38c(local_c[0xb],1); if (puVar1 == (undefined4 *)0x0) { FUN_0040385c(s_explosion_1_instance_came_back_n_004f299b, s_d__tesla_bt_munga_l4_L4VIDEO_CPP_004f29c0,0xb58); } FUN_0048ae48((int)puVar1,local_1c[7]); FUN_0048d5d4(puVar1); break; case 1: local_8 = FUN_00498448(s_exp_bgf_004f29e1,0); local_180 = 0x3e19999a; local_17c = 0x3e19999a; local_178 = 0x3e19999a; local_18c = 0x3e3851ec; local_188 = 0x3e6147ae; local_184 = 0x3e3851ec; local_198 = 0; local_194 = 0; local_190 = 0; local_1a4 = 0; local_1a0 = 0; local_19c = 0; FUN_0040aadc(local_1d4); FUN_0040aadc(local_21c + 6); local_21c[3] = 0.0; local_21c[4] = 0.0; local_21c[5] = 0.0; local_20 = 0; local_24 = 0x3f800000; local_28 = 0; local_21c[0] = 0.0; local_21c[1] = 1.0; local_21c[2] = 0.0; FUN_0040ac6c(local_21c + 6,local_21c); FUN_0040b0ac((int)(local_21c + 6),3,local_21c + 3); local_30 = (undefined4 *)FUN_00402298(0xa8); if (local_30 == (undefined4 *)0x0) { local_2c = (undefined4 *)0x0; } else { local_2c = FUN_00455930(local_30,param_2,1,local_8,*(undefined4 *)(param_1 + 300),1,0, puVar1[0xb],local_1d4,&local_180,&local_198,0,0); } local_38 = (undefined4 *)FUN_00402298(0xa8); if (local_38 == (undefined4 *)0x0) { local_34 = (undefined4 *)0x0; } else { local_34 = FUN_00455930(local_38,param_2,1,local_8,*(undefined4 *)(param_1 + 300),1,0, puVar1[0xb],local_21c + 6,&local_18c,&local_1a4,0,0); } puVar1 = (undefined4 *)FUN_00402298(0x48); if (puVar1 == (undefined4 *)0x0) { local_3c = (undefined4 *)0x0; } else { local_3c = FUN_00456610(puVar1,param_2,1,0x40400000,1,(undefined4 *)0x0,0,0x3f800000,0); } puVar1 = (undefined4 *)FUN_00402298(0x48); if (puVar1 == (undefined4 *)0x0) { local_40 = (undefined4 *)0x0; } else { local_40 = FUN_00456610(puVar1,param_2,1,0x40000000,1,(undefined4 *)0x0,0,0x3f800000,0); } iVar2 = FUN_00497730(s_btfx_firesmoke1_scr_tex_004f29e9,0,&local_44); if (iVar2 == 0) { FUN_004dbb24(&DAT_00524e20,s_couldn_t_find_texture_btfx_fires_004f2a01,(char *)0x0); } puVar1 = (undefined4 *)FUN_00402298(0xfc); if (puVar1 == (undefined4 *)0x0) { local_48 = (undefined4 *)0x0; } else { local_48 = FUN_00456cf0(puVar1,param_2,1,0x3f666666,0,0,0x3f800000,0x3e4ccccd,0,0x3f800000, 0x3e4ccccd,0,0,0,0,0,0x41200000,0x3f19999a,0xbd4ccccd,iVar2,0.0,0, 0x3e99999a,0,0,0x3f000000,0,0,0x3e4ccccd,0,0,0,0,0,0,0x3e800000, 0x3e800000,0xbd4ccccd,0x41700000,local_3c + 0x11); } puVar1 = (undefined4 *)FUN_00402298(0xfc); if (puVar1 == (undefined4 *)0x0) { local_4c = (undefined4 *)0x0; } else { local_4c = FUN_00456cf0(puVar1,param_2,1,0x3f666666,0,0,0x3f800000,0x3f19999a,0x3e99999a, 0x3f800000,0x3ecccccd,0x3e4ccccd,0,0,0,0,0x41000000,0x3e4ccccd, 0xbd4ccccd,iVar2,0.0,0,0x3dcccccd,0,0,0,0,0,0x3dcccccd,0,0,0,0,0,0, 0x3e800000,0x3e800000,0xbd4ccccd,0x41700000,local_40 + 0x11); } puVar1 = (undefined4 *)FUN_0048a38c(local_2c[0xb],1); puVar3 = (undefined4 *)FUN_0048a38c(local_34[0xb],1); if (puVar1 == (undefined4 *)0x0) { FUN_0040385c(s_explosion_1_instance_came_back_n_004f2a3e, s_d__tesla_bt_munga_l4_L4VIDEO_CPP_004f2a63,0xbe6); } if (puVar3 == (undefined4 *)0x0) { FUN_0040385c(s_explosion_2_instance_came_back_n_004f2a84, s_d__tesla_bt_munga_l4_L4VIDEO_CPP_004f2aa9,0xbe8); } FUN_0048ae48((int)puVar1,local_48[7]); FUN_0048ae48((int)puVar3,local_4c[7]); FUN_0048d5d4(puVar1); FUN_0048d5d4(puVar3); break; case 2: local_8 = FUN_00498448(s_exp_bgf_004f2aca,0); local_228 = 0x3f800000; local_224 = 0x3e4ccccd; local_220 = 0x3f800000; local_234 = 0x3f400000; local_230 = 0x3f400000; local_22c = 0x3f400000; local_240 = 0xbbed9168; local_23c = 0xbb83126f; local_238 = 0xbbed9168; local_24c = 0xbc6368f1; local_248 = 0xbc6368f1; local_244 = 0xbc6368f1; FUN_0040aadc(local_27c); FUN_0040aadc(local_2c4 + 6); local_2c4[3] = 0.0; local_2c4[4] = 0.0; local_2c4[5] = 0.0; local_50 = 0; local_54 = 0x3f800000; local_58 = 0; local_2c4[0] = 0.0; local_2c4[1] = 1.0; local_2c4[2] = 0.0; FUN_0040ac6c(local_2c4 + 6,local_2c4); FUN_0040b0ac((int)(local_2c4 + 6),3,local_2c4 + 3); local_60 = (undefined4 *)FUN_00402298(0xa8); if (local_60 == (undefined4 *)0x0) { local_5c = (undefined4 *)0x0; } else { local_5c = FUN_00455930(local_60,param_2,1,local_8,*(undefined4 *)(param_1 + 300),1,0, puVar1[0xb],local_27c,&local_228,&local_240,0,0); } local_68 = (undefined4 *)FUN_00402298(0xa8); if (local_68 == (undefined4 *)0x0) { local_64 = (undefined4 *)0x0; } else { local_64 = FUN_00455930(local_68,param_2,1,local_8,*(undefined4 *)(param_1 + 300),1,0, puVar1[0xb],local_2c4 + 6,&local_234,&local_24c,0,0); } puVar1 = (undefined4 *)FUN_00402298(0x48); if (puVar1 == (undefined4 *)0x0) { local_6c = (undefined4 *)0x0; } else { local_6c = FUN_00456610(puVar1,param_2,1,0x40400000,1,(undefined4 *)0x0,0,0x3f800000,0); } puVar1 = (undefined4 *)FUN_00402298(0x48); if (puVar1 == (undefined4 *)0x0) { local_70 = (undefined4 *)0x0; } else { local_70 = FUN_00456610(puVar1,param_2,1,0x40000000,1,(undefined4 *)0x0,0,0x3f800000,0); } iVar2 = FUN_00497730(s_btfx_firesmoke1_scr_tex_004f2ad2,0,&local_74); if (iVar2 == 0) { FUN_004dbb24(&DAT_00524e20,s_couldn_t_find_texture_btfx_fires_004f2aea,(char *)0x0); } local_7c = (undefined4 *)FUN_00402298(0xfc); if (local_7c == (undefined4 *)0x0) { local_78 = (undefined4 *)0x0; } else { local_78 = FUN_00456cf0(local_7c,param_2,1,0x3f666666,0,0,0x3f800000,0x3e4ccccd,0,0x3f800000, 0x3e4ccccd,0,0,0,0,0,0x41000000,0x3e4ccccd,0xbd4ccccd,iVar2,0.0,0, 0x3e99999a,0,0,0x3f000000,0,0,0x3e4ccccd,0,0,0,0,0,0,0x3e800000, 0x3e800000,0xbd4ccccd,0x41700000,local_6c + 0x11); } local_84 = (undefined4 *)FUN_00402298(0xfc); if (local_84 == (undefined4 *)0x0) { local_80 = (undefined4 *)0x0; } else { local_80 = FUN_00456cf0(local_84,param_2,1,0x3f666666,0,0,0x3f800000,0x3f19999a,0x3ecccccd, 0x3f800000,0x3e99999a,0x3e4ccccd,0,0,0,0,0x41000000,0x3e4ccccd, 0xbd4ccccd,iVar2,0.0,0,0x3dcccccd,0,0,0,0,0,0,0,0,0,0,0,0,0x3e800000, 0x3e800000,0xbd4ccccd,0x41700000,local_70 + 0x11); } puVar1 = (undefined4 *)FUN_0048a38c(local_5c[0xb],1); puVar3 = (undefined4 *)FUN_0048a38c(local_64[0xb],1); if (puVar1 == (undefined4 *)0x0) { FUN_0040385c(s_explosion_1_instance_came_back_n_004f2b27, s_d__tesla_bt_munga_l4_L4VIDEO_CPP_004f2b4c,0xc7b); } if (puVar3 == (undefined4 *)0x0) { FUN_0040385c(s_explosion_2_instance_came_back_n_004f2b6d, s_d__tesla_bt_munga_l4_L4VIDEO_CPP_004f2b92,0xc7d); } FUN_0048ae48((int)puVar1,local_78[7]); FUN_0048ae48((int)puVar3,local_80[7]); FUN_0048d5d4(puVar1); FUN_0048d5d4(puVar3); break; case 3: local_8 = FUN_00498448(s_spk1_bgf_004f2bb3,0); local_2d0 = 0x3dcccccd; local_2cc = 0x3dcccccd; local_2c8 = 0x3dcccccd; local_2dc = 0; local_2d8 = 0; local_2d4 = 0; FUN_0040aadc(local_30c); local_8c = (undefined4 *)FUN_00402298(0xa8); if (local_8c == (undefined4 *)0x0) { local_88 = (undefined4 *)0x0; } else { local_88 = FUN_00455930(local_8c,param_2,1,local_8,*(undefined4 *)(param_1 + 300),1,0, puVar1[0xb],local_30c,&local_2d0,&local_2dc,0xbe19999a,0); } local_94 = (undefined4 *)FUN_00402298(0x48); if (local_94 == (undefined4 *)0x0) { local_90 = (undefined4 *)0x0; } else { local_90 = FUN_00456610(local_94,param_2,1,0x3f000000,1,(undefined4 *)0x0,0,0x3f800000,0); } local_9c = FUN_00497730(s_btfx_firesmoke1_scr_tex_004f2bbc,0,&local_98); if (local_9c == 0) { FUN_004dbb24(&DAT_00524e20,s_couldn_t_find_texture_btfx_fires_004f2bd4,(char *)0x0); } local_a4 = (undefined4 *)FUN_00402298(0xfc); if (local_a4 == (undefined4 *)0x0) { local_a0 = (undefined4 *)0x0; } else { local_a0 = FUN_00456cf0(local_a4,param_2,1,0x3f800000,0x3f800000,0,0x3f800000,0x3f800000,0, 0x3f800000,0x3f800000,0,0,0,0,0,0x3f800000,0x3f800000,0x3f800000, local_9c,0.0,2,0x3f666666,0,0,0x3f666666,0,0,0x3f666666,0,0,0,0,0,0, 0x3f800000,0x3f800000,0x3f800000,0,local_90 + 0x11); } puVar1 = (undefined4 *)FUN_0048a38c(local_88[0xb],1); if (puVar1 == (undefined4 *)0x0) { FUN_0040385c(s_explosion_1_instance_came_back_n_004f2c11, s_d__tesla_bt_munga_l4_L4VIDEO_CPP_004f2c36,0xcd1); } FUN_0048ae48((int)puVar1,local_a0[7]); FUN_0048d5d4(puVar1); break; case 4: local_318 = 0; local_314 = 0; local_310 = 0; FUN_0040aadc(local_348); local_354 = 0; local_350 = 0x40c66666; local_34c = 0; FUN_0040aadc(local_384); FUN_0040b0ac((int)local_384,3,&local_354); local_ac = (undefined4 *)FUN_00402298(0x50); if (local_ac == (undefined4 *)0x0) { local_a8 = (undefined4 *)0x0; } else { local_a8 = FUN_0045848c(local_ac,param_2,*(int *)(param_1 + 300),0,1,0,local_384,puVar1[0xb]); } local_b0 = FUN_00498448(s_thrdbr_bgf_004f2c57,0); local_b4 = FUN_00498448(s_ldbr_bgf_004f2c62,0); local_b8 = FUN_00498448(s_flamesml_bgf_004f2c6b,0); local_c0 = (undefined4 *)FUN_00402298(0x30); if (local_c0 == (undefined4 *)0x0) { local_bc = (undefined4 *)0x0; } else { local_bc = FUN_004564a8(local_c0,param_2,1,0.55,0.0); } local_390 = 0xbf800000; local_38c = 0x40a00000; local_388 = 0xbf800000; local_c4 = (undefined4 *)FUN_00402298(0x38); if (local_c4 != (undefined4 *)0x0) { FUN_00456868(local_c4,param_2,1,local_bc + 0xb,0xf,local_a8[4],&local_390); } local_cc = (undefined4 *)FUN_00402298(0x30); if (local_cc == (undefined4 *)0x0) { local_c8 = (undefined4 *)0x0; } else { local_c8 = FUN_004564a8(local_cc,param_2,1,0.25,0.0); } local_d4 = (undefined4 *)FUN_00402298(0x50); if (local_d4 == (undefined4 *)0x0) { local_d0 = (undefined4 *)0x0; } else { local_d0 = FUN_0045848c(local_d4,param_2,*(int *)(param_1 + 300),local_b0,1,0,local_348, puVar1[0xb]); } local_d8 = (undefined4 *)FUN_00402298(0x40); if (local_d8 != (undefined4 *)0x0) { FUN_0045635c(local_d8,param_2,1,local_d0[4],-0.025,local_c8 + 0xb); } local_dc = FUN_0048a38c(local_d0[4],1); local_e0 = (undefined4 *)FUN_00402298(0x2c); if (local_e0 != (undefined4 *)0x0) { FUN_0045612c(local_e0,param_2,1,local_dc,1,local_c8 + 0xb); } local_e8 = (undefined4 *)FUN_00402298(0x50); if (local_e8 == (undefined4 *)0x0) { local_e4 = (undefined4 *)0x0; } else { local_e4 = FUN_0045848c(local_e8,param_2,*(int *)(param_1 + 300),local_b4,1,0,local_348, local_d0[4]); } local_ec = FUN_0048a38c(local_e4[4],1); local_f0 = (undefined4 *)FUN_00402298(0x2c); if (local_f0 != (undefined4 *)0x0) { FUN_0045612c(local_f0,param_2,1,local_ec,1,local_c8 + 0xb); } local_f8 = (undefined4 *)FUN_00402298(0x30); if (local_f8 == (undefined4 *)0x0) { local_f4 = (undefined4 *)0x0; } else { local_f4 = FUN_004564a8(local_f8,param_2,1,0.25,0.0); } local_fc = (undefined4 *)FUN_00402298(0x50); if (local_fc == (undefined4 *)0x0) { puVar1 = (undefined4 *)0x0; } else { puVar1 = FUN_0045848c(local_fc,param_2,*(int *)(param_1 + 300),0,1,0,local_348,puVar1[0xb]); } local_100 = (undefined4 *)FUN_00402298(0x40); if (local_100 != (undefined4 *)0x0) { FUN_0045635c(local_100,param_2,1,puVar1[4],-0.01,local_f4 + 0xb); } local_108 = (undefined4 *)FUN_00402298(0x50); if (local_108 == (undefined4 *)0x0) { local_104 = (undefined4 *)0x0; } else { local_104 = FUN_0045848c(local_108,param_2,*(int *)(param_1 + 300),local_b8,1,0,local_348, puVar1[4]); } local_10c = FUN_0048a38c(local_104[4],1); local_110 = (undefined4 *)FUN_00402298(0x2c); if (local_110 != (undefined4 *)0x0) { FUN_0045612c(local_110,param_2,1,local_10c,1,local_f4 + 0xb); } local_114 = FUN_00498448(s_flamebig_bgf_004f2c78,0); local_118 = (undefined4 *)FUN_00402298(0x50); if (local_118 == (undefined4 *)0x0) { puVar1 = (undefined4 *)0x0; } else { puVar1 = FUN_0045848c(local_118,param_2,*(int *)(param_1 + 300),local_114,1,0,local_348, puVar1[4]); } FUN_0048a674(puVar1[4],2); FUN_0048d3e8((undefined4 *)puVar1[4]); local_11c = FUN_0048a38c(puVar1[4],1); local_120 = (undefined4 *)FUN_00402298(0x2c); if (local_120 != (undefined4 *)0x0) { FUN_0045612c(local_120,param_2,1,local_11c,1,local_f4 + 0xb); } break; case 5: local_39c = 0; local_398 = 0; local_394 = 0; local_128 = (undefined4 *)FUN_00402298(0x30); if (local_128 == (undefined4 *)0x0) { local_124 = (undefined4 *)0x0; } else { local_124 = FUN_004564a8(local_128,param_2,1,0.15,0.0); } local_12c = (undefined4 *)FUN_00402298(0x38); if (local_12c != (undefined4 *)0x0) { FUN_00456868(local_12c,param_2,1,local_124 + 0xb,0xc,puVar1[0xb],&local_39c); } break; case 6: FUN_004dbb24(&DAT_00524e20,s_Explosion_effect_104_called__thi_004f2c85,(char *)0x0); } return; } /* @0045e744 file=? name=FUN_0045e744 */ void __cdecl FUN_0045e744(int param_1,int param_2,int param_3,int param_4) { uint uVar1; undefined4 *puVar2; int iVar3; undefined4 *puVar4; undefined4 local_1e0 [12]; undefined4 local_1b0 [12]; undefined4 local_180 [12]; int local_150 [3]; int local_144 [4]; uint local_134; undefined4 *local_130; undefined4 *local_12c; undefined4 *local_128; undefined4 *local_124; undefined4 *local_120; undefined4 *local_11c; undefined4 *local_118; undefined4 *local_114; undefined4 *local_110; char *local_10c; char *local_108; int local_104; undefined4 *local_100; undefined4 *local_fc; undefined4 local_f8; undefined4 local_f4; int local_f0; undefined4 *local_ec; undefined4 *local_e8; undefined4 *local_e4; undefined4 *local_e0; undefined4 *local_dc; undefined4 *local_d8; undefined4 *local_d4; undefined4 *local_d0; undefined4 *local_cc; undefined4 *local_c8; int local_c4; undefined4 *local_c0; int local_bc; int local_b8; int local_b4; int local_b0; int local_ac; int local_a8; int local_a4; int local_a0; undefined4 *local_9c; undefined4 *local_98; undefined4 *local_94; undefined4 *local_90; int local_8c; int local_88; int local_84; undefined4 *local_80; char *local_7c; undefined4 *local_78; char *local_74; int local_70; undefined4 *local_6c; undefined4 *local_68; int local_64; undefined4 *local_60; int local_5c; uint local_58; undefined4 *local_54; undefined4 *local_50; int local_4c; undefined4 *local_48; undefined4 *local_44; undefined4 *local_40; undefined4 *local_3c; undefined4 *local_38; char *local_34; char *local_30; int local_2c; undefined4 *local_28; undefined4 *local_24; undefined4 local_20; undefined4 local_1c; int local_18; undefined4 local_14; undefined4 *local_10; int local_c; char *local_8; FUN_00452cad(local_144,0); local_10 = (undefined4 *)0x0; DAT_004f1aa8 = param_2; if (param_3 != 0) { FUN_0045a0c4(local_144,param_3); } FUN_004614d7(local_150,(int)local_144); iVar3 = *(int *)(param_2 + 4); if (iVar3 < 0x47) { if (iVar3 == 0x46) { if ((*(uint *)(param_2 + 0x28) & 0xc) == 0) { local_84 = param_2; local_88 = param_2 + 0x220; local_8c = param_2 + 0x224; local_90 = (undefined4 *)FUN_00402298(0xbc); if (local_90 != (undefined4 *)0x0) { FUN_00454a70(local_90,param_2,1,local_88,local_8c); } } } else if (iVar3 < 0x33) { if ((iVar3 != 0x32) && (iVar3 != 0x30)) { if (iVar3 != 0x31) { LAB_0045f121: puVar2 = &DAT_004e107c; puVar4 = local_1e0; for (iVar3 = 0xc; iVar3 != 0; iVar3 = iVar3 + -1) { *puVar4 = *puVar2; puVar2 = puVar2 + 1; puVar4 = puVar4 + 1; } if (param_3 == 0) { FUN_00436a48(param_1,param_2); DAT_004f1aa8 = 0; FUN_00461515(local_150,2); FUN_00452ccc(local_144,2); return; } if (param_4 == 1) { local_f4 = 1; local_f8 = 0; } else { local_f4 = 3; local_f8 = 0xffffffff; } local_104 = 1; (**(code **)(local_150[0] + 4))(local_150); LAB_0045f52e: while (iVar3 = (**(code **)(local_150[0] + 0x28))(local_150), iVar3 != 0) { local_8 = *(char **)(iVar3 + 0xc); local_c = *(int *)(local_8 + 0x10); uVar1 = *(uint *)(local_8 + 0x14); if ((local_c == 2) || (local_c == 3)) { local_f0 = FUN_00498448(local_8,0); if (local_f0 == 0) goto code_r0x0045f253; goto LAB_0045f2a8; } local_108 = local_8; FUN_004dbb24(&DAT_00524e20,s_L4VIDEO_cpp_wrong_video_resource_004f2d43,(char *)0x0); FUN_004dbb24(&DAT_00524e20,local_108,(char *)0x0); FUN_004dbb24(&DAT_00524e20,&DAT_004f2d75,(char *)0x0); } goto LAB_0045f549; } (**(code **)(local_150[0] + 4))(local_150); while (iVar3 = (**(code **)(local_150[0] + 0x28))(local_150), iVar3 != 0) { local_7c = *(char **)(iVar3 + 0xc); iVar3 = FUN_004dd1e0(local_7c); if ((iVar3 < 100) || (999 < iVar3)) { local_80 = (undefined4 *)(param_2 + 0x100); FUN_004606d4(param_1,*local_80,*(undefined4 *)(param_2 + 0x104), *(undefined4 *)(param_2 + 0x108),iVar3,0,0); } else { FUN_0045d41c(param_1,param_2,param_3,param_4,iVar3 + -100); } } } } else if (iVar3 == 0x3f) { local_6c = (undefined4 *)FUN_00402298(100); if (local_6c == (undefined4 *)0x0) { local_68 = (undefined4 *)0x0; } else { local_68 = FUN_00453578(local_6c,param_2,1,0,*(undefined4 *)(param_1 + 300),1,0); } local_70 = FUN_0041bfc0(param_2,s_SimulationState_004f2d33); (**(code **)(local_150[0] + 4))(local_150); while (iVar3 = (**(code **)(local_150[0] + 0x28))(local_150), iVar3 != 0) { local_74 = *(char **)(iVar3 + 0xc); local_64 = FUN_004dd1e0(local_74); local_78 = (undefined4 *)FUN_00402298(0x3c); if (local_78 != (undefined4 *)0x0) { FUN_004585f8(local_78,param_2,*(undefined4 *)(param_1 + 300),&DAT_004e0f80,local_68[0xb], local_70,2,local_64,0.01); } } } else { if (iVar3 != 0x45) goto LAB_0045f121; if (param_4 == 1) { local_98 = (undefined4 *)FUN_00402298(100); if (local_98 == (undefined4 *)0x0) { local_94 = (undefined4 *)0x0; } else { local_94 = FUN_00453578(local_98,param_2,1,0,*(undefined4 *)(param_1 + 300),1,0); } local_9c = (undefined4 *)FUN_00402298(0x5c); if (local_9c != (undefined4 *)0x0) { FUN_004579a8(local_9c,param_2,*(int *)(param_1 + 300),&DAT_004e107c,local_94[0xb], *(undefined4 **)(param_1 + 0x124),(undefined4 *)0x0); } } } } else { if (iVar3 < 0x5f) { if (iVar3 != 0x5e) { if (iVar3 == 0x54) goto LAB_0045f549; if (iVar3 != 0x56) goto LAB_0045f121; } puVar2 = &DAT_004e107c; puVar4 = local_180; for (iVar3 = 0xc; iVar3 != 0; iVar3 = iVar3 + -1) { *puVar4 = *puVar2; puVar2 = puVar2 + 1; puVar4 = puVar4 + 1; } if (param_3 == 0) { FUN_00436a48(param_1,param_2); DAT_004f1aa8 = 0; FUN_00461515(local_150,2); FUN_00452ccc(local_144,2); return; } local_1c = 3; local_20 = 0xffffffff; local_2c = 1; (**(code **)(local_150[0] + 4))(local_150); LAB_0045eb35: while (iVar3 = (**(code **)(local_150[0] + 0x28))(local_150), iVar3 != 0) { local_8 = *(char **)(iVar3 + 0xc); local_c = *(int *)(local_8 + 0x10); uVar1 = *(uint *)(local_8 + 0x14); if ((local_c == 2) || (local_c == 3)) { local_18 = FUN_00498448(local_8,0); if (local_18 == 0) goto code_r0x0045e91e; goto LAB_0045e96a; } local_30 = local_8; FUN_004dbb24(&DAT_00524e20,s_L4VIDEO_cpp_wrong_video_resource_004f2ccb,(char *)0x0); FUN_004dbb24(&DAT_00524e20,local_30,(char *)0x0); FUN_004dbb24(&DAT_00524e20,&DAT_004f2cfd,(char *)0x0); } goto LAB_0045f549; } if (iVar3 == 0x5f) { local_b8 = 0; (**(code **)(local_150[0] + 4))(local_150); while (iVar3 = (**(code **)(local_150[0] + 0x28))(local_150), iVar3 != 0) { local_8 = *(char **)(iVar3 + 0xc); switch(local_b8) { case 0: local_a0 = FUN_00498448(local_8,0); break; case 1: local_a4 = FUN_00498448(local_8,0); break; case 2: local_a8 = FUN_00498448(local_8,0); break; case 3: local_ac = FUN_00498448(local_8,0); break; case 4: local_b0 = FUN_00498448(local_8,0); break; case 5: local_b4 = FUN_00498448(local_8,0); } local_b8 = local_b8 + 1; } local_bc = **(int **)(param_2 + 0x128); local_c0 = (undefined4 *)(local_bc + 0xec); local_c4 = *(int *)(*(int *)(param_2 + 0x128) + 4); local_c8 = (undefined4 *)(local_c4 + 0xec); local_d0 = (undefined4 *)FUN_00402298(100); if (local_d0 == (undefined4 *)0x0) { local_cc = (undefined4 *)0x0; } else { local_cc = FUN_00453578(local_d0,param_2,0,local_a0,*(undefined4 *)(param_1 + 300),1,0); } local_10 = (undefined4 *)local_cc[0xb]; FUN_0040aadc(local_1b0); local_d8 = (undefined4 *)FUN_00402298(100); if (local_d8 == (undefined4 *)0x0) { local_d4 = (undefined4 *)0x0; } else { local_d4 = FUN_00457bf4(local_d8,param_2,*(int *)(param_1 + 300),local_a4,1,0,local_1b0, local_cc[0xb],local_c0); } local_e0 = (undefined4 *)FUN_00402298(100); if (local_e0 == (undefined4 *)0x0) { local_dc = (undefined4 *)0x0; } else { local_dc = FUN_00457bf4(local_e0,param_2,*(int *)(param_1 + 300),local_a8,1,0,local_1b0, local_cc[0xb],local_c8); } local_e4 = (undefined4 *)FUN_00402298(0x30); if (local_e4 != (undefined4 *)0x0) { FUN_00453474(local_e4,param_2,0,local_ac,local_cc[0xb],1,0,1); } local_e8 = (undefined4 *)FUN_00402298(0x30); if (local_e8 != (undefined4 *)0x0) { FUN_00453474(local_e8,param_2,0,local_b0,local_d4[5],1,0,1); } local_ec = (undefined4 *)FUN_00402298(0x30); if (local_ec != (undefined4 *)0x0) { FUN_00453474(local_ec,param_2,0,local_b4,local_dc[5],1,0,1); } } else { if (iVar3 != 0x7d2) goto LAB_0045f121; (**(code **)(local_150[0] + 4))(local_150); iVar3 = (**(code **)(local_150[0] + 0x28))(local_150); local_8 = *(char **)(iVar3 + 0xc); local_5c = FUN_00498448(local_8,0); local_60 = (undefined4 *)FUN_00402298(0x50); if (local_60 != (undefined4 *)0x0) { FUN_00452e18(local_60,param_2,1,local_5c,*(int *)(param_1 + 300)); } } } LAB_0045f549: FUN_0045a134((int)local_144); DAT_004f1aa8 = 0; if (local_10 != (undefined4 *)0x0) { FUN_0045a994(param_1,(int)local_10,param_2); } FUN_00461515(local_150,2); FUN_00452ccc(local_144,2); return; code_r0x0045e91e: local_34 = local_8; FUN_004dbb24(&DAT_00524e20,s_L4VIDEO_cpp_couldn_t_load_object_004f2cff,(char *)0x0); FUN_004dbb24(&DAT_00524e20,local_34,(char *)0x0); FUN_004dbb24(&DAT_00524e20,&DAT_004f2d21,(char *)0x0); if (local_2c != 0) { LAB_0045e96a: if (local_2c == 0) { if ((uVar1 | 7) == 0) { local_48 = (undefined4 *)FUN_00402298(0x30); if (local_48 == (undefined4 *)0x0) { puVar2 = (undefined4 *)0x0; } else { puVar2 = FUN_00453474(local_48,param_2,0,local_18,local_24,local_1c,local_20,1); } local_28 = (undefined4 *)0x0; local_14 = puVar2[0xb]; } else { local_44 = (undefined4 *)FUN_00402298(0x50); if (local_44 == (undefined4 *)0x0) { local_40 = (undefined4 *)0x0; } else { local_40 = FUN_0045848c(local_44,param_2,*(int *)(param_1 + 300),local_18,local_1c, local_20,local_180,local_24); } local_28 = (undefined4 *)local_40[4]; local_14 = local_40[6]; } } else { local_2c = 0; local_3c = (undefined4 *)FUN_00402298(100); if (local_3c == (undefined4 *)0x0) { local_38 = (undefined4 *)0x0; } else { local_38 = FUN_00453578(local_3c,param_2,0,local_18,*(undefined4 *)(param_1 + 300),local_1c, local_20); } local_28 = (undefined4 *)local_38[0xb]; local_14 = local_38[0xc]; local_24 = local_28; local_10 = local_28; } local_4c = FUN_0041bfc0(param_2,s_SimulationState_004f2d23); if (local_c == 2) { local_50 = (undefined4 *)FUN_00402298(0x30); if (local_50 != (undefined4 *)0x0) { FUN_00456224(local_50,param_2,2,local_14,0,local_4c,1); } } else if ((local_c == 3) && (local_54 = (undefined4 *)FUN_00402298(0x30), local_54 != (undefined4 *)0x0)) { FUN_00456224(local_54,param_2,2,local_14,1,local_4c,1); } if ((local_28 != (undefined4 *)0x0) && ((uVar1 & 7) != 0)) { local_58 = (uint)((uVar1 & 1) != 0); if ((uVar1 & 2) != 0) { local_58 = local_58 | 2; } if ((uVar1 & 4) != 0) { local_58 = local_58 | 4; } FUN_0048a674((int)local_28,local_58); FUN_0048d3e8(local_28); } } goto LAB_0045eb35; code_r0x0045f253: local_10c = local_8; FUN_004dbb24(&DAT_00524e20,s_L4VIDEO_cpp_couldn_t_load_object_004f2d77,(char *)0x0); FUN_004dbb24(&DAT_00524e20,local_10c,(char *)0x0); FUN_004dbb24(&DAT_00524e20,&DAT_004f2d99,(char *)0x0); if (local_104 != 0) { LAB_0045f2a8: if (local_104 == 0) { if ((uVar1 | 7) == 0) { local_130 = (undefined4 *)FUN_00402298(0x30); if (local_130 != (undefined4 *)0x0) { FUN_00453474(local_130,param_2,0,local_f0,local_fc,local_f4,local_f8,1); } local_100 = (undefined4 *)0x0; } else { local_12c = (undefined4 *)FUN_00402298(0x50); if (local_12c == (undefined4 *)0x0) { local_128 = (undefined4 *)0x0; } else { local_128 = FUN_0045848c(local_12c,param_2,*(int *)(param_1 + 300),local_f0,local_f4, local_f8,local_1e0,local_fc); } local_100 = (undefined4 *)local_128[4]; } } else { local_104 = 0; iVar3 = FUN_0041a1a4(**(int **)(param_2 + 0xc),0x4e4518); if (iVar3 == 0) { local_11c = (undefined4 *)FUN_00402298(100); if (local_11c == (undefined4 *)0x0) { local_118 = (undefined4 *)0x0; } else { local_118 = FUN_00453578(local_11c,param_2,0,local_f0,*(undefined4 *)(param_1 + 300), local_f4,local_f8); } local_fc = (undefined4 *)local_118[0xb]; } else { local_114 = (undefined4 *)FUN_00402298(100); if (local_114 == (undefined4 *)0x0) { local_110 = (undefined4 *)0x0; } else { local_110 = FUN_00453578(local_114,param_2,1,local_f0,*(undefined4 *)(param_1 + 300), local_f4,local_f8); } local_fc = (undefined4 *)local_110[0xb]; } local_10 = local_fc; if (param_4 == 1) { local_120 = (undefined4 *)FUN_0041bfc0(param_2,s_EyepointRotation_004f2d9b); local_124 = (undefined4 *)FUN_00402298(0x5c); if (local_124 != (undefined4 *)0x0) { FUN_004579a8(local_124,param_2,*(int *)(param_1 + 300),&DAT_004e107c,local_fc, *(undefined4 **)(param_1 + 0x124),local_120); } } local_100 = local_fc; } if ((local_100 != (undefined4 *)0x0) && ((uVar1 & 7) != 0)) { local_134 = (uint)((uVar1 & 1) != 0); if ((uVar1 & 2) != 0) { local_134 = local_134 | 2; } if ((uVar1 & 4) != 0) { local_134 = local_134 | 4; } FUN_0048a674((int)local_100,local_134); FUN_0048d3e8(local_100); } } goto LAB_0045f52e; } /* @0045f59c file=munga_l4/l4video.cpp name=FUN_0045f59c */ void __cdecl FUN_0045f59c(int param_1) { int iVar1; float *pfVar2; int iVar3; uint *puVar4; float local_cc [12]; float local_9c [12]; float local_6c [12]; float local_3c [12]; uint *local_c; int local_8; FUN_0040aadc(local_3c); FUN_0040aadc(local_6c); FUN_0040aadc(local_9c); FUN_0040aadc(local_cc); iVar1 = FUN_00417ab4(param_1 + 0x40); pfVar2 = (float *)FUN_0041bfc0(iVar1,s_EyepointRotation_004f2dac); iVar3 = FUN_0041a1a4(**(int **)(iVar1 + 0xc),0x4e4afc); if (iVar3 == 0) { FUN_0040ab44(local_3c,(undefined4 *)(iVar1 + 0x100)); if (pfVar2 == (float *)0x0) { FUN_0040bc54((float *)(param_1 + 0x50),local_3c); } else { FUN_0040bc54(local_6c,local_3c); FUN_0040ac6c(local_9c,pfVar2); FUN_0040bc54(local_cc,local_9c); FUN_0040b104((float *)(param_1 + 0x50),local_6c,local_cc); } } else { local_8 = iVar1; local_c = (uint *)FUN_00402298(0x10); if (local_c == (uint *)0x0) { puVar4 = (uint *)0x0; } else { puVar4 = FUN_00402460(local_c,s_siteeyepoint_004f2dbd); } puVar4[3] = puVar4[3] + 1; iVar1 = FUN_00424b60(local_8,(int *)puVar4); if (iVar1 == 0) { FUN_0040385c(s_DPLRenderer__SetupCull_jointed_m_004f2dca, s_d__tesla_bt_munga_l4_L4VIDEO_CPP_004f2e04,5000); } if (pfVar2 == (float *)0x0) { FUN_0040385c(s_DPLRenderer__SetupCull_jointed_m_004f2e25, s_d__tesla_bt_munga_l4_L4VIDEO_CPP_004f2e6d,0x138c); } FUN_00424da8(local_8,iVar1,local_3c); if (pfVar2 == (float *)0x0) { FUN_0040bc54((float *)(param_1 + 0x50),local_3c); } else { FUN_0040bc54(local_6c,local_3c); FUN_0040ac6c(local_9c,pfVar2); FUN_0040bc54(local_cc,local_9c); FUN_0040b104((float *)(param_1 + 0x50),local_6c,local_cc); } } return; } /* @0045f784 file=? name=FUN_0045f784 */ /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ void __cdecl FUN_0045f784(int param_1) { *(undefined4 *)(param_1 + 0x84) = 0; *(undefined4 *)(param_1 + 0x88) = 0; *(undefined4 *)(param_1 + 0x8c) = 0; *(undefined4 *)(param_1 + 0x90) = 0; *(undefined4 *)(param_1 + 0x98) = 0; *(undefined4 *)(param_1 + 0x94) = 56000; *(undefined4 *)(param_1 + 0x9c) = 0; *(float *)(param_1 + 0xa4) = *(float *)(param_1 + 0x80) + _DAT_0045f7d8; return; } /* @0045f7dc file=? name=FUN_0045f7dc */ /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ void __cdecl FUN_0045f7dc(int param_1) { int *piVar1; undefined4 uVar2; undefined2 uVar3; undefined2 uVar4; if (*(int *)(param_1 + 0x98) != 0) { uVar3 = (undefined2)*(undefined4 *)(param_1 + 0x98); uVar4 = (undefined2)((uint)*(undefined4 *)(param_1 + 0x98) >> 0x10); FUN_004dbb24(&DAT_00524e20,s_Frames_004f2e8e,(char *)0x0); piVar1 = FUN_004db880(&DAT_00524e20,CONCAT22(uVar4,uVar3)); FUN_004dbb24(piVar1,&DAT_004f2e96,(char *)0x0); piVar1 = FUN_004db634(&DAT_00524e20, (float10)(float)(((float10)*(uint *)(param_1 + 0x9c) / (float10)*(uint *)(param_1 + 0x98)) * (float10)_DAT_0045fa04)); FUN_004dbb24(piVar1,s___of_the_frames_were_under_the_t_004f2e98,(char *)0x0); uVar2 = FUN_004dcd94(); uVar3 = (undefined2)uVar2; uVar4 = (undefined2)((uint)uVar2 >> 0x10); FUN_004dbb24(&DAT_00524e20,s_Average_Cull_004f2eca,(char *)0x0); piVar1 = FUN_004db880(&DAT_00524e20,CONCAT22(uVar4,uVar3)); FUN_004dbb24(piVar1,&DAT_004f2ed8,(char *)0x0); uVar2 = FUN_004dcd94(); uVar3 = (undefined2)uVar2; uVar4 = (undefined2)((uint)uVar2 >> 0x10); FUN_004dbb24(&DAT_00524e20,s_Average_Draw_004f2eda,(char *)0x0); piVar1 = FUN_004db880(&DAT_00524e20,CONCAT22(uVar4,uVar3)); FUN_004dbb24(piVar1,&DAT_004f2ee8,(char *)0x0); uVar2 = FUN_004dcd94(); uVar3 = (undefined2)uVar2; uVar4 = (undefined2)((uint)uVar2 >> 0x10); FUN_004dbb24(&DAT_00524e20,s_Average_Pixel_Planes_004f2eea,(char *)0x0); piVar1 = FUN_004db880(&DAT_00524e20,CONCAT22(uVar4,uVar3)); FUN_004dbb24(piVar1,&DAT_004f2f00,(char *)0x0); uVar2 = FUN_004dcd94(); uVar3 = (undefined2)uVar2; uVar4 = (undefined2)((uint)uVar2 >> 0x10); FUN_004dbb24(&DAT_00524e20,s_Average_Frame_Time_004f2f02,(char *)0x0); piVar1 = FUN_004db880(&DAT_00524e20,CONCAT22(uVar4,uVar3)); FUN_004dbb24(piVar1,&DAT_004f2f16,(char *)0x0); } return; } /* @0045fbf4 file=? name=FUN_0045fbf4 */ void __cdecl FUN_0045fbf4(int param_1,undefined4 param_2) { int iVar1; if (*(int *)(param_1 + 0x2c8) == 100) { FUN_0045fc24(param_1); } iVar1 = *(int *)(param_1 + 0x2c8); *(int *)(param_1 + 0x2c8) = *(int *)(param_1 + 0x2c8) + 1; *(undefined4 *)(param_1 + 0x134 + iVar1 * 4) = param_2; return; } /* @0045fc24 file=? name=FUN_0045fc24 */ void __cdecl FUN_0045fc24(int param_1) { if (*(int *)(param_1 + 0x2c8) != 0) { *(undefined4 *)(param_1 + 0x134 + *(int *)(param_1 + 0x2c8) * 4) = 0; FUN_0048ffa4((int *)(param_1 + 0x134)); *(undefined4 *)(param_1 + 0x2c8) = 0; } return; } /* @0045fc58 file=? name=FUN_0045fc58 */ void __cdecl FUN_0045fc58(undefined4 param_1,int *param_2) { uint uVar1; int *piVar2; uVar1 = FUN_00490380(); FUN_004dbb24(param_2,s_Free_memory_in_card__004f2f18,(char *)0x0); piVar2 = FUN_004db78c(param_2,uVar1); FUN_004dbb24(piVar2,s_bytes__004f2f2f,(char *)0x0); FUN_004d9c38(piVar2); return; } /* @0045fca0 file=? name=FUN_0045fca0 */ void __cdecl FUN_0045fca0(int param_1,int *param_2) { uint uVar1; uint uVar2; uint uVar3; uint uVar4; uint uVar5; int *piVar6; uVar1 = DAT_00524690; FUN_004dbb24(param_2,s_sect_time_004f2f37,(char *)0x0); piVar6 = FUN_004db78c(param_2,uVar1); FUN_004dbb24(piVar6,s_dcs_and_inst_not_available_004f2f42,(char *)0x0); FUN_004d9c38(piVar6); uVar5 = DAT_00524ae8; uVar4 = DAT_00524ae4; uVar3 = DAT_00524ae0; uVar2 = DAT_00524adc; uVar1 = DAT_00524ad8; FUN_004dbb24(param_2,s_cull_004f2f5e,(char *)0x0); piVar6 = FUN_004db78c(param_2,uVar1); FUN_004dbb24(piVar6,s_draw_004f2f64,(char *)0x0); piVar6 = FUN_004db78c(piVar6,uVar2); FUN_004dbb24(piVar6,s_frame_004f2f6b,(char *)0x0); piVar6 = FUN_004db78c(piVar6,uVar3); FUN_004dbb24(piVar6,s_pxpl_004f2f73,(char *)0x0); piVar6 = FUN_004db78c(piVar6,uVar4); FUN_004dbb24(piVar6,s_prims_004f2f7a,(char *)0x0); piVar6 = FUN_004db78c(piVar6,uVar5); FUN_004d9c38(piVar6); if (*(int *)(param_1 + 0xa0) == 0) { FUN_0045f784(param_1); *(undefined4 *)(param_1 + 0xa0) = 1; } else { FUN_0045f7dc(param_1); } return; } /* @0045fdd8 file=? name=FUN_0045fdd8 */ /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ void FUN_0045fdd8(void) { _DAT_004f1ab4 = _DAT_004f1ab4 ^ 1; if (_DAT_004f1ab4 != 0) { FUN_004dbb24(&DAT_00524e20,s_wireframe_ON_004f2f82,(char *)0x0); FUN_004d9c38(&DAT_00524e20); FUN_0048a544(1,1,(undefined4 *)0x0); return; } FUN_004dbb24(&DAT_00524e20,s_wireframe_OFF_004f2f8f,(char *)0x0); FUN_004d9c38(&DAT_00524e20); FUN_0048a544(1,2,(undefined4 *)0x0); return; } /* @0045fe44 file=? name=FUN_0045fe44 */ /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ void FUN_0045fe44(void) { undefined4 local_18; undefined4 local_14; undefined4 local_10; undefined4 local_c; local_10 = _DAT_0045fec4; local_14 = _DAT_0045fec4; local_18 = _DAT_0045fec4; _DAT_004f1ab8 = _DAT_004f1ab8 ^ 1; if (_DAT_004f1ab8 == 0) { FUN_004dbb24(&DAT_00524e20,s_pvision_OFF_004f2fa8,(char *)0x0); FUN_004d9c38(&DAT_00524e20); local_c = 0xfffffffe; } else { FUN_004dbb24(&DAT_00524e20,s_pvision_ON_004f2f9d,(char *)0x0); FUN_004d9c38(&DAT_00524e20); local_c = 0xffffffff; } FUN_0048d060(0,0,&local_18); return; } /* @0045fec8 file=? name=FUN_0045fec8 */ void __cdecl FUN_0045fec8(undefined1 *param_1,int param_2,int param_3,int param_4,int param_5,int param_6) { undefined2 uVar1; undefined2 uVar2; undefined2 uVar3; undefined2 *puVar4; int iVar5; undefined2 *puVar6; undefined2 *puVar7; int local_8; iVar5 = param_5 * param_6; local_8 = 0; puVar7 = (undefined2 *)(param_4 + iVar5 * 2); puVar4 = (undefined2 *)(param_3 + iVar5 * 2); puVar6 = (undefined2 *)(param_2 + iVar5 * 2); if (0 < param_6) { do { uVar1 = *puVar6; uVar2 = *puVar4; puVar4 = puVar4 + 1; uVar3 = *puVar7; puVar7 = puVar7 + 1; puVar6 = puVar6 + 1; *param_1 = (char)((ushort)uVar1 >> 8); param_1[1] = (char)((ushort)uVar2 >> 8); param_1[2] = (char)((ushort)uVar3 >> 8); param_1 = param_1 + 3; local_8 = local_8 + 1; } while (local_8 < param_6); } return; } /* @0045ff4c file=? name=FUN_0045ff4c */ /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ void __cdecl FUN_0045ff4c(undefined4 *param_1,int param_2,int param_3,int param_4) { short *psVar1; undefined4 uVar2; short sVar3; int *piVar4; uint uVar5; int iVar6; uint uVar7; byte *pbVar8; char *pcVar9; int iVar10; byte local_84 [13]; undefined1 local_77; undefined1 local_76; undefined1 local_75; undefined1 local_74; undefined1 local_73; char local_70 [64]; undefined4 *local_30; float *local_2c; float *local_28; undefined4 local_24; float local_20; float local_1c; float local_18; float local_14; uint local_10; int local_c; uint local_8; if (param_1 == (undefined4 *)0x0) { if (DAT_004f1ac0 != (byte *)0x0) { FUN_004022d0((int *)DAT_004f1ac0); } if (DAT_004f1ac4 != (int *)0x0) { FUN_004022d0(DAT_004f1ac4); } if (DAT_004f1ac8 != (int *)0x0) { FUN_004022d0(DAT_004f1ac8); } if (DAT_004f1acc != (int *)0x0) { FUN_004022d0(DAT_004f1acc); } } else { if (DAT_004f1ad8 == '\0') { _DAT_004f1ad4 = _DAT_0046055c / (float)param_2; DAT_004f1ad8 = '\x01'; } if (DAT_004f1ae0 == '\0') { _DAT_004f1adc = _DAT_0046055c / (float)param_3; DAT_004f1ae0 = '\x01'; } if (DAT_004f1ae8 == '\0') { _DAT_004f1ae4 = _DAT_004f1ad4 * _DAT_00460560; DAT_004f1ae8 = '\x01'; } if (DAT_004f1af0 == '\0') { _DAT_004f1aec = _DAT_004f1adc * _DAT_00460560; DAT_004f1af0 = '\x01'; } if (DAT_004f1b0c == '\0') { DAT_004f1afc = -(_DAT_004f1ae4 + _DAT_004f1af4); DAT_004f1b0c = '\x01'; _DAT_004f1b00 = _DAT_004f1ae4 - _DAT_004f1af4; _DAT_004f1b04 = _DAT_004f1af4 - _DAT_004f1ae4; _DAT_004f1b08 = _DAT_004f1af4 + _DAT_004f1ae4; } if (DAT_004f1b20 == '\0') { DAT_004f1b10 = _DAT_004f1aec - _DAT_004f1af8; DAT_004f1b20 = '\x01'; _DAT_004f1b14 = _DAT_004f1aec + _DAT_004f1af8; _DAT_004f1b18 = -(_DAT_004f1af8 + _DAT_004f1aec); _DAT_004f1b1c = _DAT_004f1af8 - _DAT_004f1aec; } local_8 = 4; if (param_4 == 0) { local_8 = 1; } iVar6 = param_2 * param_3; if (param_4 == 0) { pcVar9 = s_False_004f2fd7; } else { pcVar9 = &DAT_004f2fd2; } FUN_004dbb24(&DAT_00524e20,s_Dump_frame_buffer__antialias__004f2fb4,(char *)0x0); FUN_004dbb24(&DAT_00524e20,pcVar9,(char *)0x0); FUN_004dbb24(&DAT_00524e20,s_____press_Esc_to_cancel__004f2fdd,(char *)0x0); FUN_004d9c38(&DAT_00524e20); if (DAT_004f1ac0 == (byte *)0x0) { DAT_004f1ac0 = (byte *)FUN_004022b0(0x1000); uVar5 = iVar6 * 2; DAT_004f1ac4 = (int *)FUN_004022b0(uVar5); DAT_004f1ac8 = (int *)FUN_004022b0(uVar5); DAT_004f1acc = (int *)FUN_004022b0(uVar5); } iVar10 = 0; local_c = 0; if (0 < iVar6) { do { *(undefined2 *)((int)DAT_004f1ac4 + iVar10 * 2) = 0; *(undefined2 *)((int)DAT_004f1ac8 + iVar10 * 2) = 0; *(undefined2 *)((int)DAT_004f1acc + iVar10 * 2) = 0; iVar10 = iVar10 + 1; local_c = local_c + 1; } while (iVar6 - local_c != 0 && local_c <= iVar6); } FUN_00490474(); FUN_00490474(); local_c = 0; local_30 = &DAT_004f1b24; local_2c = &DAT_004f1b10; local_28 = &DAT_004f1afc; if (0 < (int)local_8) { do { uVar5 = local_8; uVar7 = local_c + 1; FUN_004dbb24(&DAT_00524e20,s_pass_004f2ff6,(char *)0x0); piVar4 = FUN_004db78c(&DAT_00524e20,uVar7); FUN_004dbb24(piVar4,&DAT_004f2ffe,(char *)0x0); piVar4 = FUN_004db78c(piVar4,uVar5); FUN_004dbb24(piVar4,&DAT_004f3003,(char *)0x0); FUN_0048ba30((int)param_1,&local_14,&local_18,&local_1c,&local_20,&local_24); FUN_0048b9d0((int)param_1,local_14 + *local_28,local_18 + *local_2c,local_1c + *local_28, local_20 + *local_2c,local_24); FUN_0048d42c(param_1); FUN_00490474(); FUN_00490474(); iVar6 = 0; uVar2 = *local_30; local_10 = 0; if (0 < param_3) { do { pbVar8 = DAT_004f1ac0; iVar10 = FUN_004d4888(); if ((iVar10 != 0) && (uVar5 = FUN_004d4718(), uVar5 == 0x1b)) { piVar4 = FUN_004d9c38(&DAT_00524e20); FUN_004dbb24(piVar4,s_cancelled__004f3005,(char *)0x0); FUN_004d9c38(piVar4); return; } if ((local_10 & 0xf) == 0) { FUN_004dbb24(&DAT_00524e20,&DAT_004f3010,(char *)0x0); } FUN_0048cf38(param_1,(undefined4 *)pbVar8,0,local_10,param_2,1); iVar10 = 0; if (0 < param_2) { do { iVar10 = iVar10 + 1; sVar3 = (short)uVar2; psVar1 = (short *)((int)DAT_004f1ac4 + iVar6 * 2); *psVar1 = *psVar1 + (ushort)pbVar8[2] * sVar3; psVar1 = (short *)((int)DAT_004f1ac8 + iVar6 * 2); *psVar1 = *psVar1 + (ushort)pbVar8[1] * sVar3; psVar1 = (short *)((int)DAT_004f1acc + iVar6 * 2); *psVar1 = *psVar1 + (ushort)*pbVar8 * sVar3; iVar6 = iVar6 + 1; pbVar8 = pbVar8 + 4; } while (iVar10 < param_2); } local_10 = local_10 + 1; } while ((int)local_10 < param_3); } FUN_004d9c38(&DAT_00524e20); local_c = local_c + 1; local_30 = local_30 + 1; local_2c = local_2c + 1; local_28 = local_28 + 1; } while (local_c < (int)local_8); } FUN_004d7f10(local_70,s_dump_d_tga_004f3012); local_84[0] = 0; local_84[1] = 0; local_84[2] = 2; local_84[3] = 0; local_84[4] = 0; local_84[5] = 0; local_84[6] = 0; local_84[7] = 0; local_84[8] = 0; local_84[9] = 0; local_84[10] = 0; local_84[0xb] = 0; local_84[0xc] = (undefined1)param_2; local_77 = (undefined1)((uint)param_2 >> 8); local_76 = (undefined1)param_3; local_75 = (undefined1)((uint)param_3 >> 8); local_74 = 0x18; local_73 = 0; FUN_004dbb24(&DAT_00524e20,s_Writing_image_to_file___004f301d,(char *)0x0); FUN_004dbb24(&DAT_00524e20,local_70,(char *)0x0); FUN_004dbb24(&DAT_00524e20,s_________004f3035,(char *)0x0); piVar4 = FUN_004d6f54(local_70,&DAT_004f303e); FUN_004d7358(local_84,0x12,1,piVar4); local_10 = 0; if (0 < param_3) { do { FUN_0045fec8(DAT_004f1ac0,(int)DAT_004f1ac4,(int)DAT_004f1ac8,(int)DAT_004f1acc, (param_3 + -1) - local_10,param_2); FUN_004d7358(DAT_004f1ac0,param_2 * 3,1,piVar4); local_10 = local_10 + 1; } while ((int)local_10 < param_3); } FUN_004d6b08(piVar4); FUN_004dbb24(&DAT_00524e20,s_done__004f3041,(char *)0x0); FUN_004d9c38(&DAT_00524e20); DAT_004f1abc = DAT_004f1abc + 1; } return; } /* @00460590 file=? name=FUN_00460590 */ /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ undefined4 __cdecl FUN_00460590(int param_1) { int iVar1; if ((*(int *)(param_1 + 0xb4) != 0) && (iVar1 = FUN_0048a184(), iVar1 != 0)) { FUN_0045fc24(param_1); FUN_0048a1bc(); if (*(int *)(param_1 + 0xa0) != 0) { *(int *)(param_1 + 0x84) = *(int *)(param_1 + 0x84) + DAT_00524ad8; *(int *)(param_1 + 0x88) = *(int *)(param_1 + 0x88) + DAT_00524adc; *(int *)(param_1 + 0x8c) = *(int *)(param_1 + 0x8c) + DAT_00524ae4; *(int *)(param_1 + 0x90) = *(int *)(param_1 + 0x90) + DAT_00524ae0; *(int *)(param_1 + 0x98) = *(int *)(param_1 + 0x98) + 1; if (DAT_00524ae0 <= *(uint *)(param_1 + 0x94)) { *(int *)(param_1 + 0x9c) = *(int *)(param_1 + 0x9c) + 1; } if (*(float *)(param_1 + 0xa4) < *(float *)(param_1 + 0x80)) { FUN_0045f7dc(param_1); *(float *)(param_1 + 0xa4) = *(float *)(param_1 + 0x80) + _DAT_00460650; } } *(undefined4 *)(param_1 + 0xb4) = 0; return 1; } return 0; } /* @00460654 file=? name=FUN_00460654 */ void __cdecl FUN_00460654(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,uint *param_5, int param_6,uint param_7) { uint uVar1; int iVar2; uint *puVar3; uint *puVar4; uint local_108 [4]; undefined4 local_f8; undefined4 local_f4; undefined4 local_f0; puVar3 = param_5; puVar4 = local_108; for (iVar2 = 0x41; iVar2 != 0; iVar2 = iVar2 + -1) { *puVar4 = *puVar3; puVar3 = puVar3 + 1; puVar4 = puVar4 + 1; } uVar1 = FUN_00460ae4(param_1); local_108[0] = uVar1 | *param_5 & 0xffff0000 | (param_7 & 0xff) << 0x10; local_f8 = param_2; local_f4 = param_3; local_f0 = param_4; FUN_0048d060(1,param_6,local_108); return; } /* @004606d4 file=munga_l4/l4video.cpp name=FUN_004606d4 */ void __cdecl FUN_004606d4(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int param_5, int param_6,uint param_7) { int iVar1; undefined4 local_18; undefined4 local_14; undefined4 local_10; int local_c; if (param_5 < 1000) { local_c = param_5; local_18 = param_2; local_14 = param_3; local_10 = param_4; FUN_0048d060(0,param_6,&local_18); } else { iVar1 = param_5 + -1000; if ((iVar1 < 0) || (0x27 < iVar1)) { FUN_0040385c(s_PSFX_id_number_was_not_in_the_al_004f3047, s_d__tesla_bt_munga_l4_L4VIDEO_CPP_004f3073,0x174b); } FUN_00460654(param_1,param_2,param_3,param_4,*(uint **)(param_1 + 0x2cc + iVar1 * 4),param_6, param_7); } return; } /* @00460770 file=? name=FUN_00460770 */ /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ void __cdecl FUN_00460770(int param_1,float param_2) { double dVar1; float10 fVar2; *(float *)(param_1 + 0x118) = param_2 * _DAT_00460814; dVar1 = (double)(*(float *)(param_1 + 0x118) * _DAT_00460818); fVar2 = (float10)FUN_004dd188(SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20)); *(float *)(param_1 + 0x11c) = (float)fVar2; *(float *)(param_1 + 0xc0) = (float)DAT_004f336c / (float)DAT_004f3368; FUN_0048b9d0(*(int *)(param_1 + 0x124),0xbf800000,-*(float *)(param_1 + 0xc0),0x3f800000, *(undefined4 *)(param_1 + 0xc0),_DAT_0046081c / *(float *)(param_1 + 0x11c)); FUN_0048d42c(*(undefined4 **)(param_1 + 0x124)); return; } /* @00460840 file=? name=FUN_00460840 */ void __cdecl FUN_00460840(undefined4 param_1) { int iVar1; int iVar2; int local_18 [3]; undefined4 local_c; uint *local_8; local_8 = FUN_00460994(); iVar1 = FUN_00403ad0(*(int *)(DAT_004efc94 + 0x24) + 0x18,s_Players_004f3094); FUN_00421414(local_18,iVar1 + 0x10); while( true ) { iVar1 = (**(code **)(local_18[0] + 0x28))(local_18); if (iVar1 == 0) break; local_c = *(undefined4 *)(iVar1 + 0x1e0); iVar2 = (**(code **)(*(int *)(*(int *)(DAT_004efc94 + 200) + 0x68) + 0xc)) (*(int *)(DAT_004efc94 + 200) + 0x68,&local_c); if ((iVar2 != 0) && ((*(byte *)(iVar1 + 0x29) & 0x40) == 0)) { FUN_0045d2b4(param_1,iVar2,*(int *)(iVar1 + 0x1cc) + 1,local_8); } } FUN_00460914(param_1,local_8); FUN_0045d23c(param_1,(byte *)local_8); FUN_004de420((int *)local_8); FUN_00421452(local_18,2); return; } /* @00460914 file=? name=FUN_00460914 */ void __cdecl FUN_00460914(undefined4 param_1,uint *param_2) { int iVar1; int iVar2; uint uVar3; int local_8; if ((*(uint *)(*(int *)(DAT_004efc94 + 0x14) + 0x28) & 0xc) == 0) { iVar1 = FUN_0041a1a4(**(int **)(*(int *)(DAT_004efc94 + 0x14) + 0xc),0x4e6aa4); if (iVar1 != 0) { uVar3 = 9; iVar1 = 1; do { local_8 = iVar1; iVar2 = (**(code **)(*(int *)(*(int *)(DAT_004efc94 + 200) + 0x98) + 0xc)) (*(int *)(DAT_004efc94 + 200) + 0x98,&local_8); FUN_0045d2b4(param_1,iVar2,uVar3,param_2); uVar3 = uVar3 + 1; iVar1 = iVar1 + 1; } while (iVar1 < 5); } } return; } /* @00460994 file=munga_l4/l4video.cpp name=FUN_00460994 */ undefined4 * FUN_00460994(void) { undefined4 *puVar1; undefined4 *puVar2; int iVar3; puVar1 = (undefined4 *)FUN_004022b0(0x8000); if (puVar1 == (undefined4 *)0x0) { FUN_0040385c(s_Could_not_allocate_RAM_for_worst_004f309c, s_d__tesla_bt_munga_l4_L4VIDEO_CPP_004f30ca,0x17ec); } iVar3 = 0; puVar2 = puVar1; do { *puVar2 = 0; iVar3 = iVar3 + 1; puVar2 = puVar2 + 1; } while (iVar3 < 0x2000); return puVar1; } /* @004609dc file=? name=FUN_004609dc */ void __cdecl FUN_004609dc(undefined4 param_1) { int iVar1; int iVar2; int local_10; int local_c; uint *local_8; local_8 = FUN_00460994(); local_c = *(int *)(*(int *)(DAT_004efc94 + 200) + 0x48); iVar2 = 0; if (0 < local_c) { do { local_10 = iVar2 + 1; iVar1 = (**(code **)(*(int *)(*(int *)(DAT_004efc94 + 200) + 0x68) + 0xc)) (*(int *)(DAT_004efc94 + 200) + 0x68,&local_10); if (iVar1 != 0) { FUN_0045d2b4(param_1,iVar1,iVar2 + 1,local_8); } iVar2 = iVar2 + 1; } while (iVar2 < local_c); } FUN_00460914(param_1,local_8); FUN_0045d23c(param_1,(byte *)local_8); FUN_004022e8((int *)local_8); return; } /* @00460a7c file=? name=FUN_00460a7c */ void __cdecl FUN_00460a7c(int param_1) { int local_2c [5]; int local_18 [5]; FUN_0049060c(); FUN_00461541(local_18,param_1 + 0x37c); FUN_004615ca(local_2c,param_1 + 0x390); FUN_00461608(local_2c,2); FUN_0046159e(local_18,2); return; } /* @00460ad4 file=? name=FUN_00460ad4 */ void FUN_00460ad4(void) { return; } /* @00460adc file=? name=FUN_00460adc */ void FUN_00460adc(void) { return; } /* @00460ae4 file=? name=FUN_00460ae4 */ uint __cdecl FUN_00460ae4(int param_1) { uint uVar1; uVar1 = *(int *)(param_1 + 0xb8) + 1U & 0xffff; *(uint *)(param_1 + 0xb8) = uVar1; return uVar1; } /* @00460b04 file=? name=FUN_00460b04 */ undefined4 __cdecl FUN_00460b04(int param_1,undefined4 param_2) { undefined4 *puVar1; undefined4 uVar2; puVar1 = (undefined4 *)(**(code **)(*(int *)(param_1 + 0x390) + 0xc))(param_1 + 0x390,param_2); if (puVar1 == (undefined4 *)0x0) { uVar2 = 0; } else { uVar2 = puVar1[4]; if (puVar1 != (undefined4 *)0x0) { (**(code **)*puVar1)(puVar1,3); } } return uVar2; } /* @00460b48 file=? name=FUN_00460b48 */ void __cdecl FUN_00460b48(int param_1,int *param_2,undefined4 param_3) { int *piVar1; undefined4 *puVar2; int iVar3; int *local_14; undefined4 *local_10; int *local_c; undefined4 local_8; puVar2 = (undefined4 *)FUN_00402298(0x14); if (puVar2 != (undefined4 *)0x0) { local_8 = param_3; local_c = param_2; FUN_00415e90(puVar2,1); *puVar2 = &PTR_FUN_004f3308; local_10 = (undefined4 *)FUN_00402298(0x10); if (local_10 == (undefined4 *)0x0) { iVar3 = 0; } else { iVar3 = FUN_004023f4(local_10); } puVar2[3] = iVar3; piVar1 = (int *)(puVar2[3] + 0xc); *piVar1 = *piVar1 + 1; FUN_00402a4c((int *)&local_14,puVar2 + 3,local_c); puVar2[4] = local_8; piVar1 = local_14 + 3; *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_004024d8(local_14,3); } } (**(code **)(*(int *)(param_1 + 0x390) + 8))(param_1 + 0x390,puVar2,param_2); return; } /* @00460c04 file=? name=FUN_00460c04 */ undefined4 * __cdecl FUN_00460c04(int param_1,int param_2,int param_3) { undefined4 *puVar1; undefined4 *puVar2; int iVar3; int local_18 [5]; FUN_00461541(local_18,param_1 + 0x37c); puVar2 = (undefined4 *)(**(code **)(local_18[0] + 0x30))(local_18); if (puVar2 == (undefined4 *)0x0) { puVar2 = (undefined4 *)FUN_00402298(0x18); if (puVar2 == (undefined4 *)0x0) { puVar2 = (undefined4 *)0x0; } else { puVar2 = FUN_00452cf8(puVar2,param_2,param_3); } FUN_0046159e(local_18,2); } else { (**(code **)(local_18[0] + 0x48))(local_18); puVar1 = (undefined4 *)puVar2[5]; iVar3 = FUN_0048ab68((int)puVar1); if (param_2 != iVar3) { FUN_0048ab0c((int)puVar1,param_2); FUN_0048d5d4(puVar1); } FUN_0046159e(local_18,2); } return puVar2; } /* @00460cb0 file=? name=FUN_00460cb0 */ void __cdecl FUN_00460cb0(int param_1,undefined4 param_2) { (**(code **)(*(int *)(param_1 + 0x37c) + 4))(param_1 + 0x37c,param_2); return; } /* @00460cd0 file=munga_l4/l4video.cpp name=FUN_00460cd0 */ undefined4 * __cdecl FUN_00460cd0(undefined4 *param_1,int param_2,int param_3) { int iVar1; undefined4 uVar2; int unaff_EBX; int local_40 [7]; int local_24 [7]; int local_8; FUN_00415e90(param_1,1); *param_1 = &PTR_FUN_004f3304; iVar1 = FUN_0041a1a4(**(int **)(param_2 + 0xc),0x4e4afc); if (iVar1 == 0) { FUN_0040385c(s_DPLJointToDCSTranslator_was_call_004f30eb, s_d__tesla_bt_munga_l4_L4VIDEO_CPP_004f312f,0x18c5); param_2 = unaff_EBX; } local_8 = FUN_00417ab4(param_2 + 0x31c); FUN_0041d3b3(local_24,local_8 + 0xe4); iVar1 = (**(code **)(local_24[0] + 0x14))(local_24); FUN_0041d3d2(local_24,2); uVar2 = FUN_004022b0(iVar1 << 2); param_1[4] = uVar2; FUN_0041f216(local_40,param_2 + 0x300); while (iVar1 = (**(code **)(local_40[0] + 0x28))(local_40), iVar1 != 0) { if (*(int *)(iVar1 + 0xc0) != -1) { *(undefined4 *)(param_1[4] + *(int *)(iVar1 + 0xc0) * 4) = *(undefined4 *)(param_3 + *(int *)(iVar1 + 0xcc) * 4); } } FUN_0041f235(local_40,2); return param_1; } /* @00460dcc file=? name=FUN_00460dcc */ void __cdecl FUN_00460dcc(int *param_1,byte param_2) { if (param_1 != (int *)0x0) { *param_1 = (int)&PTR_FUN_004f3304; FUN_004022e8((int *)param_1[4]); param_1[4] = 0; FUN_00415ed8(param_1,0); if ((param_2 & 1) != 0) { FUN_004022d0(param_1); } } return; } /* @00460e08 file=? name=FUN_00460e08 */ undefined4 FUN_00460e08(void) { return 1; } /* @00460e14 file=? name=FUN_00460e14 */ undefined4 __cdecl FUN_00460e14(int param_1,char *param_2,int param_3) { char *pcVar1; char cVar2; undefined4 *puVar3; char *pcVar4; int iVar5; undefined4 uVar6; int iVar7; char *pcVar8; char *pcVar9; int *piVar10; int *piVar11; uint uVar12; int *piVar13; bool bVar14; int local_60 [3]; int local_54 [4]; char local_44 [40]; uint local_1c; int local_18; int *local_14; undefined4 local_10; undefined4 *local_c; int *local_8; puVar3 = (undefined4 *)FUN_00406ff8(param_1,param_2,10,-1); if (puVar3 == (undefined4 *)0x0) { local_8 = FUN_00404720(param_3,s_video_004f3150,(char *)0x0); if (local_8 != (int *)0x0) { FUN_00452cad(local_54,0); local_c = (undefined4 *)local_8[1]; LAB_00460e73: if (local_c != (undefined4 *)0x0) { do { puVar3 = (undefined4 *)*local_c; pcVar9 = (char *)(local_c + 2); if ((pcVar9 != (char *)0x0) && (*pcVar9 != '\0')) { pcVar8 = s_object_004f3156; pcVar4 = pcVar9; do { if (*pcVar4 != *pcVar8) goto LAB_00460ecc; bVar14 = true; if (*pcVar4 == '\0') break; pcVar1 = pcVar4 + 1; if (*pcVar1 != pcVar8[1]) goto LAB_00460ecc; pcVar4 = pcVar4 + 2; pcVar8 = pcVar8 + 2; bVar14 = *pcVar1 == '\0'; } while (!bVar14); if (bVar14) { local_10 = 2; } else { LAB_00460ecc: pcVar8 = s_rubble_004f315d; pcVar4 = pcVar9; do { if (*pcVar4 != *pcVar8) goto LAB_00460efd; bVar14 = true; if (*pcVar4 == '\0') break; pcVar1 = pcVar4 + 1; if (*pcVar1 != pcVar8[1]) goto LAB_00460efd; pcVar4 = pcVar4 + 2; pcVar8 = pcVar8 + 2; bVar14 = *pcVar1 == '\0'; } while (!bVar14); if (bVar14) { local_10 = 3; } else { LAB_00460efd: pcVar8 = s_skeleton_004f3164; pcVar4 = pcVar9; do { if (*pcVar4 != *pcVar8) goto LAB_00460f2e; bVar14 = true; if (*pcVar4 == '\0') break; pcVar1 = pcVar4 + 1; if (*pcVar1 != pcVar8[1]) goto LAB_00460f2e; pcVar4 = pcVar4 + 2; pcVar8 = pcVar8 + 2; bVar14 = *pcVar1 == '\0'; } while (!bVar14); if (!bVar14) goto LAB_00460f2e; local_10 = 1; } } pcVar9 = (char *)local_c[1]; local_c = puVar3; while ((puVar3 = local_c, pcVar9 != (char *)0x0 && (pcVar4 = pcVar9, *pcVar9 != '\0'))) { while ((*pcVar4 != '\0' && (((&DAT_005207dd)[*pcVar4] & 1) != 0))) { pcVar4 = pcVar4 + 1; } pcVar9 = pcVar4; if (*pcVar4 == '\0') break; while ((*pcVar9 != '\0' && (((&DAT_005207dd)[*pcVar9] & 1) == 0))) { pcVar9 = pcVar9 + 1; } FUN_004d4b9c((undefined4 *)local_44,pcVar4,(int)pcVar9 - (int)pcVar4); local_44[(int)pcVar9 - (int)pcVar4] = '\0'; uVar12 = 0; iVar5 = 0; for (pcVar4 = local_44; *pcVar4 != '\0'; pcVar4 = pcVar4 + 1) { if (iVar5 == 0) { if (*pcVar4 == '/') { *pcVar4 = '\0'; iVar5 = 2; } } else if (iVar5 == 1) { if (*pcVar4 == '/') { iVar5 = 2; } } else if (iVar5 == 2) { cVar2 = *pcVar4; if (cVar2 == 'B') { LAB_004610c8: iVar5 = 3; } else { if (cVar2 != 'I') { if (cVar2 == 'b') goto LAB_004610c8; if (cVar2 != 'i') { iVar5 = 1; goto LAB_00461121; } } uVar12 = uVar12 | 0x10; iVar5 = 1; } } else if (iVar5 == 3) { cVar2 = *pcVar4; if (cVar2 < '[') { if (cVar2 == 'Z') { LAB_00461110: uVar12 = uVar12 | 4; } else { if (cVar2 != '/') { if (cVar2 != 'X') { if (cVar2 != 'Y') goto LAB_0046111c; goto LAB_0046110b; } goto LAB_00461106; } iVar5 = 2; } } else if (cVar2 == 'x') { LAB_00461106: uVar12 = uVar12 | 1; } else if (cVar2 == 'y') { LAB_0046110b: uVar12 = uVar12 | 2; } else { if (cVar2 == 'z') goto LAB_00461110; LAB_0046111c: iVar5 = 1; } } LAB_00461121: } pcVar4 = (char *)FUN_00402298(0x20); if (pcVar4 == (char *)0x0) { pcVar4 = (char *)0x0; } else { pcVar4 = FUN_00459fb4(pcVar4,local_44,local_10,uVar12,0,0); } puVar3 = (undefined4 *)FUN_00402298(0x14); if (puVar3 == (undefined4 *)0x0) { puVar3 = (undefined4 *)0x0; } else { puVar3 = FUN_0045a044(puVar3,pcVar4,1); } (**(code **)(local_54[0] + 4))(local_54,puVar3); } } local_c = puVar3; if (local_c == (undefined4 *)0x0) break; } while( true ); } FUN_004614d7(local_60,(int)local_54); local_18 = (**(code **)(local_60[0] + 0x14))(local_60); local_1c = local_18 * 0x20 + 4; local_14 = (int *)FUN_004022b0(local_1c); *local_14 = local_18; piVar10 = local_14 + 1; while (iVar5 = (**(code **)(local_60[0] + 0x28))(local_60), iVar5 != 0) { piVar11 = *(int **)(iVar5 + 0xc); piVar13 = piVar10; for (iVar7 = 8; iVar7 != 0; iVar7 = iVar7 + -1) { *piVar13 = *piVar11; piVar11 = piVar11 + 1; piVar13 = piVar13 + 1; } piVar10 = piVar10 + 8; } puVar3 = (undefined4 *)FUN_00406db4(param_1,param_2,10,1,0,local_14,local_1c,-1); FUN_0045a134((int)local_54); FUN_004022d0(local_14); if (local_8 != (int *)0x0) { (**(code **)*local_8)(local_8,3); } FUN_00461515(local_60,2); FUN_00452ccc(local_54,2); goto LAB_00461277; } uVar6 = 0xffffffff; } else { LAB_00461277: uVar6 = *puVar3; } return uVar6; LAB_00460f2e: if (((*pcVar9 == ';') || (*pcVar9 == '#')) || ((*pcVar9 == '/' && (*(char *)((int)local_c + 9) == '/')))) { bVar14 = true; } else { bVar14 = false; } local_c = puVar3; if ((((!bVar14) && (iVar5 = FUN_004d4ae0(pcVar9,s_skeleton_004f316d,8), iVar5 != 0)) && (iVar5 = FUN_004d4ae0(pcVar9,s_destroyed_004f3176,9), iVar5 != 0)) && (iVar5 = FUN_004d4ae0(pcVar9,&DAT_004f3180,3), iVar5 != 0)) { FUN_004dbb24(&DAT_00524e20,s_Unknown_entry___004f3184,(char *)0x0); FUN_004dbb24(&DAT_00524e20,pcVar9,(char *)0x0); FUN_004dbb24(&DAT_00524e20,s___in_model___004f3194,(char *)0x0); FUN_004dbb24(&DAT_00524e20,param_2,(char *)0x0); FUN_004dbb24(&DAT_00524e20,s___ignored__004f31a1,(char *)0x0); FUN_004d9c38(&DAT_00524e20); } goto LAB_00460e73; } /* @00461280 file=? name=FUN_00461280 */ int * __cdecl FUN_00461280(int *param_1) { undefined4 *puVar1; int iVar2; puVar1 = (undefined4 *)FUN_00402298(0x10); if (puVar1 == (undefined4 *)0x0) { iVar2 = 0; } else { iVar2 = FUN_004023f4(puVar1); } *param_1 = iVar2; *(int *)(iVar2 + 0xc) = *(int *)(iVar2 + 0xc) + 1; return param_1; } /* @004612b0 file=? name=FUN_004612b0 */ void __cdecl FUN_004612b0(int *param_1,byte param_2) { int *piVar1; int *piVar2; if (param_1 != (int *)0x0) { piVar2 = (int *)*param_1; piVar1 = piVar2 + 3; *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_004024d8(piVar2,3); } if ((param_2 & 1) != 0) { FUN_004022d0(param_1); } } return; } /* @004612dd file=? name=FUN_004612dd */ undefined4 * __cdecl FUN_004612dd(undefined4 *param_1,undefined4 param_2) { FUN_0041827c(param_1,param_2); *param_1 = &PTR_FUN_004f32fc; return param_1; } /* @004612fc file=? name=FUN_004612fc */ void __cdecl FUN_004612fc(int *param_1,byte param_2) { if (param_1 != (int *)0x0) { *param_1 = (int)&PTR_FUN_004f32fc; FUN_004182a8(param_1,0); if ((param_2 & 1) != 0) { FUN_004022d0(param_1); } } return; } /* @00461328 file=? name=FUN_00461328 */ undefined4 * __cdecl FUN_00461328(undefined4 *param_1,undefined4 param_2,undefined4 param_3) { FUN_00418bb8(param_1,param_2,param_3); *param_1 = &PTR_FUN_004f32e0; return param_1; } /* @0046134b file=? name=FUN_0046134b */ void __cdecl FUN_0046134b(int *param_1,byte param_2) { if (param_1 != (int *)0x0) { *param_1 = (int)&PTR_FUN_004f32e0; FUN_00418be0(param_1,0); if ((param_2 & 1) != 0) { FUN_004022d0(param_1); } } return; } /* @00461377 file=? name=FUN_00461377 */ undefined4 __cdecl FUN_00461377(undefined4 param_1,int param_2,int param_3) { int iVar1; undefined4 uVar2; iVar1 = FUN_004027d8(*(int *)(param_2 + 0x20),*(int *)(param_3 + 0x20)); if (iVar1 == 0) { uVar2 = 0; } else { iVar1 = FUN_004027d8(*(int *)(param_2 + 0x20),*(int *)(param_3 + 0x20)); if (iVar1 < 1) { uVar2 = 0xffffffff; } else { uVar2 = 1; } } return uVar2; } /* @004613c4 file=? name=FUN_004613c4 */ undefined4 __cdecl FUN_004613c4(undefined4 param_1,int *param_2,int param_3) { int iVar1; undefined4 uVar2; iVar1 = FUN_004027d8(*param_2,*(int *)(param_3 + 0x20)); if (iVar1 == 0) { uVar2 = 0; } else { iVar1 = FUN_004027d8(*param_2,*(int *)(param_3 + 0x20)); if (iVar1 < 1) { uVar2 = 0xffffffff; } else { uVar2 = 1; } } return uVar2; } /* @0046140e file=? name=FUN_0046140e */ undefined4 * __cdecl FUN_0046140e(undefined4 *param_1,undefined4 param_2,undefined4 param_3) { FUN_00419184(param_1,param_2,param_3); *param_1 = &PTR_FUN_004f32c4; return param_1; } /* @00461431 file=? name=FUN_00461431 */ void __cdecl FUN_00461431(int *param_1,byte param_2) { if (param_1 != (int *)0x0) { *param_1 = (int)&PTR_FUN_004f32c4; FUN_004191b4(param_1,0); if ((param_2 & 1) != 0) { FUN_004022d0(param_1); } } return; } /* @0046145d file=? name=FUN_0046145d */ undefined4 __cdecl FUN_0046145d(undefined4 param_1,int param_2,int param_3) { undefined4 uVar1; if (*(uint *)(param_3 + 0x14) == *(uint *)(param_2 + 0x14)) { uVar1 = 0; } else { uVar1 = 1; if (*(uint *)(param_2 + 0x14) <= *(uint *)(param_3 + 0x14)) { uVar1 = 0xffffffff; } } return uVar1; } /* @0046148c file=? name=FUN_0046148c */ undefined4 __cdecl FUN_0046148c(undefined4 param_1,uint *param_2,int param_3) { undefined4 uVar1; if (*(uint *)(param_3 + 0x14) == *param_2) { uVar1 = 0; } else { uVar1 = 1; if (*param_2 <= *(uint *)(param_3 + 0x14)) { uVar1 = 0xffffffff; } } return uVar1; } /* @004614b8 file=? name=FUN_004614b8 */ undefined4 * __cdecl FUN_004614b8(undefined4 *param_1,int param_2) { FUN_00417d00(param_1,param_2); *param_1 = &PTR_FUN_004f3274; return param_1; } /* @004614d7 file=? name=FUN_004614d7 */ undefined4 * __cdecl FUN_004614d7(undefined4 *param_1,int param_2) { FUN_00417d00(param_1,param_2); *param_1 = &PTR_FUN_004f3274; return param_1; } /* @004614f6 file=? name=FUN_004614f6 */ undefined4 * __cdecl FUN_004614f6(undefined4 *param_1,int param_2) { FUN_00417d28(param_1,param_2); *param_1 = &PTR_FUN_004f3274; return param_1; } /* @00461515 file=? name=FUN_00461515 */ void __cdecl FUN_00461515(int *param_1,byte param_2) { if (param_1 != (int *)0x0) { *param_1 = (int)&PTR_FUN_004f3274; FUN_00417d54(param_1,0); if ((param_2 & 1) != 0) { FUN_004022d0(param_1); } } return; } /* @00461541 file=? name=FUN_00461541 */ undefined4 * __cdecl FUN_00461541(undefined4 *param_1,int param_2) { FUN_00418398(param_1,param_2); *param_1 = &PTR_FUN_004f3220; return param_1; } /* @00461560 file=? name=FUN_00461560 */ undefined4 * __cdecl FUN_00461560(undefined4 *param_1,int param_2) { FUN_00418398(param_1,param_2); *param_1 = &PTR_FUN_004f3220; return param_1; } /* @0046157f file=? name=FUN_0046157f */ undefined4 * __cdecl FUN_0046157f(undefined4 *param_1,int param_2) { FUN_004183c0(param_1,param_2); *param_1 = &PTR_FUN_004f3220; return param_1; } /* @0046159e file=? name=FUN_0046159e */ void __cdecl FUN_0046159e(int *param_1,byte param_2) { if (param_1 != (int *)0x0) { *param_1 = (int)&PTR_FUN_004f3220; FUN_004183ec(param_1,0); if ((param_2 & 1) != 0) { FUN_004022d0(param_1); } } return; } /* @004615ca file=? name=FUN_004615ca */ int * __cdecl FUN_004615ca(int *param_1,int param_2) { FUN_00418f34(param_1,param_2); *param_1 = (int)&PTR_FUN_004f31c4; return param_1; } /* @004615e9 file=? name=FUN_004615e9 */ int * __cdecl FUN_004615e9(int *param_1,int param_2) { FUN_00418f34(param_1,param_2); *param_1 = (int)&PTR_FUN_004f31c4; return param_1; } /* @00461608 file=? name=FUN_00461608 */ void __cdecl FUN_00461608(int *param_1,byte param_2) { if (param_1 != (int *)0x0) { *param_1 = (int)&PTR_FUN_004f31c4; FUN_00418f5c(param_1,0); if ((param_2 & 1) != 0) { FUN_004022d0(param_1); } } return; } /* @00461634 file=? name=FUN_00461634 */ undefined4 * __cdecl FUN_00461634(undefined4 param_1,int param_2,undefined4 *param_3) { undefined4 *puVar1; puVar1 = (undefined4 *)FUN_0046172c(); if (puVar1 == (undefined4 *)0x0) { puVar1 = (undefined4 *)0x0; } else { puVar1 = FUN_004616d5(puVar1,param_1,param_2,param_3); } return puVar1; } /* @00461664 file=? name=FUN_00461664 */ undefined4 * __cdecl FUN_00461664(undefined4 param_1,int param_2,int *param_3) { undefined4 *puVar1; puVar1 = (undefined4 *)FUN_00415a83(); if (puVar1 == (undefined4 *)0x0) { puVar1 = (undefined4 *)0x0; } else { puVar1 = FUN_004159cf(puVar1,param_1,param_2,param_3); } return puVar1; } /* @00461694 file=? name=FUN_00461694 */ void __cdecl FUN_00461694(int *param_1,byte param_2) { int *piVar1; int *piVar2; if (param_1 != (int *)0x0) { *param_1 = (int)&PTR_FUN_004f3308; piVar2 = (int *)param_1[3]; piVar1 = piVar2 + 3; *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_004024d8(piVar2,3); } FUN_00415ed8(param_1,0); if ((param_2 & 1) != 0) { FUN_004022d0(param_1); } } return; } /* @004616d5 file=? name=FUN_004616d5 */ undefined4 * __cdecl FUN_004616d5(undefined4 *param_1,undefined4 param_2,int param_3,undefined4 *param_4) { FUN_004190e8(param_1,param_2,param_3); *param_1 = &PTR_FUN_004f3364; param_1[5] = *param_4; return param_1; } /* @00461700 file=? name=FUN_00461700 */ void __cdecl FUN_00461700(int *param_1,byte param_2) { if (param_1 != (int *)0x0) { *param_1 = (int)&PTR_FUN_004f3364; FUN_0041910c(param_1,0); if ((param_2 & 1) != 0) { FUN_0046177c(param_1); } } return; } /* @0046172c file=? name=FUN_0046172c */ void FUN_0046172c(void) { int iVar1; undefined4 *puVar2; iVar1 = DAT_004f3360; DAT_004f3360 = DAT_004f3360 + 1; puVar2 = DAT_004f335c; if ((iVar1 == 0) && (puVar2 = (undefined4 *)FUN_00402298(0x28), puVar2 != (undefined4 *)0x0)) { FUN_00402b98(puVar2,0x18,100,100,s_TableEntryOf_004f31ac); } DAT_004f335c = puVar2; FUN_00402f74((int)DAT_004f335c); return; } /* @0046177c file=? name=FUN_0046177c */ void __cdecl FUN_0046177c(undefined4 *param_1) { FUN_00402f98((int)DAT_004f335c,param_1); DAT_004f3360 = DAT_004f3360 + -1; if (DAT_004f3360 == 0) { if (DAT_004f335c != (int *)0x0) { FUN_00402c28(DAT_004f335c,0); FUN_004022d0(DAT_004f335c); } DAT_004f335c = (int *)0x0; } return; } /* @004617c8 file=? name=FUN_004617c8 */ char * __cdecl FUN_004617c8(char *param_1,char *param_2) { int iVar1; int iVar2; iVar1 = FUN_004d4a78(param_2); while( true ) { if (*param_1 == '\0') { return (char *)0x0; } iVar2 = FUN_004d4ae0(param_1,param_2,iVar1); if (iVar2 == 0) break; param_1 = param_1 + 1; } while( true ) { if (*param_1 == '~') { if (param_1[1] != '\0') { return param_1 + 1; } return (char *)0x0; } if (*param_1 == '\0') break; param_1 = param_1 + 1; } return (char *)0x0; } /* @0046181c file=? name=FUN_0046181c */ undefined4 __cdecl FUN_0046181c(char *param_1) { char *pcVar1; int iVar2; pcVar1 = FUN_004617c8(param_1,s_video_004f3378); if (pcVar1 == (char *)0x0) { return 0; } iVar2 = FUN_004d4ae0(pcVar1,&DAT_004f337e,4); if (iVar2 == 0) { DAT_004f3368 = 0x2c0; DAT_004f336c = 0x1e0; return 1; } iVar2 = FUN_004d4ae0(pcVar1,s_ntsc_rgb_004f3383,4); if (iVar2 == 0) { DAT_004f3368 = 0x2c0; DAT_004f336c = 0x1e0; return 1; } iVar2 = FUN_004d4ae0(pcVar1,&DAT_004f338c,3); if (iVar2 == 0) { DAT_004f3368 = 0x280; DAT_004f336c = 0x1e0; return 1; } iVar2 = FUN_004d4ae0(pcVar1,&DAT_004f3390,3); if (iVar2 == 0) { DAT_004f3368 = 0x340; DAT_004f336c = 0x200; return 1; } iVar2 = FUN_004d4ae0(pcVar1,s_pal_rgb_004f3394,7); if (iVar2 == 0) { DAT_004f3368 = 0x340; DAT_004f336c = 0x200; return 1; } iVar2 = FUN_004d4ae0(pcVar1,s_hires_004f339c,5); if (iVar2 == 0) { DAT_004f3368 = 0x400; DAT_004f336c = 0x300; return 1; } iVar2 = FUN_004d4ae0(pcVar1,&DAT_004f33a2,4); if (iVar2 == 0) { DAT_004f3368 = 0x340; DAT_004f336c = 0x200; return 1; } iVar2 = FUN_004d4ae0(pcVar1,s_nucolor_004f33a7,7); if (iVar2 == 0) { DAT_004f3368 = 0x280; DAT_004f336c = 0x1e0; return 1; } iVar2 = FUN_004d4ae0(pcVar1,s_kaiser_004f33af,6); if (iVar2 == 0) { DAT_004f3368 = 0x340; DAT_004f336c = 0x100; return 1; } FUN_004d771c(s_Unknown_video_format__s_004f33b6); DAT_004f3368 = 0x280; DAT_004f336c = 0x1e0; return 0; } /* @00461a14 file=? name=FUN_00461a14 */ /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ undefined4 * __cdecl FUN_00461a14(int param_1,int *param_2,int *param_3,float param_4) { undefined4 *puVar1; undefined4 *puVar2; int iVar3; undefined4 *puVar4; float local_8; if (param_4 <= DAT_004f3374) { local_8 = DAT_004f3374; } else { local_8 = param_4 + _DAT_00461c70; } FUN_004d771c(s_initialize_eyes_004f33cf); puVar2 = FUN_004896cc(); FUN_004d771c(s_create_1st_view_004f33e0); iVar3 = FUN_004896f0(); *param_2 = iVar3; if (iVar3 == 0) { FUN_004d771c(s_NULL_eye_004f33f1); puVar2 = (undefined4 *)0x0; } else { puVar1 = (undefined4 *)*param_2; puVar4 = (undefined4 *)FUN_00489708(); FUN_0048b4ac((int)puVar1,(int)puVar4); FUN_0048a890((int)puVar2); FUN_0048b56c((int)puVar1,DAT_004f3370,DAT_004f3374); FUN_0048b608((int)puVar1,0x3ecccccd,0x3f19999a,0x3f666666); FUN_0048b6b4((int)puVar1,0,0x3f000000,0x3f000000,0x3f19999a,param_4,local_8); FUN_0048b8fc((int)puVar1); FUN_0048b9d0((int)puVar1,0xbf800000,0xbf800000,0x3f800000,0x3f800000,0x3fa66666); FUN_00489bd4((int)puVar1); FUN_0048d3e8(puVar4); FUN_0048d42c(puVar1); FUN_0048d4b0(puVar2); if (param_1 == 0) { *param_3 = 0; } else { FUN_004d771c(s_create_2nd_view_004f33fb); iVar3 = FUN_004896f0(); *param_3 = iVar3; if (iVar3 == 0) { FUN_004d771c(s_NULL_rye_004f340c); puVar2 = (undefined4 *)0x0; } else { puVar1 = (undefined4 *)*param_3; puVar4 = (undefined4 *)FUN_00489708(); FUN_0048b4ac((int)puVar1,(int)puVar4); FUN_0048b56c((int)puVar1,DAT_004f3370,DAT_004f3374); FUN_0048b608((int)puVar1,0x3ecccccd,0x3f19999a,0x3f666666); FUN_0048b6b4((int)puVar1,0,0x3f000000,0x3f000000,0x3f19999a,param_4,local_8); FUN_0048b8fc((int)puVar1); FUN_0048b9d0((int)puVar1,0xbf800000,0xbf800000,0x3f800000,0x3f800000,0x3fa66666); FUN_00489bd4((int)puVar1); FUN_0048d3e8(puVar4); FUN_0048d42c(puVar1); } } } return puVar2; } /* @00461c74 file=? name=FUN_00461c74 */ char * __cdecl FUN_00461c74(char *param_1,int *param_2,char param_3) { bool bVar1; int *piVar2; uint uVar3; char *pcVar4; bVar1 = true; uVar3 = 0; pcVar4 = param_1; do { if (*pcVar4 == param_3) { if (uVar3 == 0) { piVar2 = FUN_004de55c(1); *param_2 = (int)piVar2; *(undefined1 *)*param_2 = 0; } else { piVar2 = FUN_004de55c(uVar3 + 1); *param_2 = (int)piVar2; FUN_004d4918((undefined4 *)*param_2,(undefined4 *)param_1,uVar3); *(undefined1 *)(*param_2 + uVar3) = 0; } pcVar4 = pcVar4 + 1; bVar1 = false; } else if (*pcVar4 == '\0') { if (uVar3 == 0) { return (char *)0x0; } piVar2 = FUN_004de55c(uVar3 + 1); *param_2 = (int)piVar2; FUN_004d4918((undefined4 *)*param_2,(undefined4 *)param_1,uVar3); *(undefined1 *)(*param_2 + uVar3) = 0; bVar1 = false; } else { uVar3 = uVar3 + 1; pcVar4 = pcVar4 + 1; } } while (bVar1); return pcVar4; } /* @00461d14 file=? name=FUN_00461d14 */ int __cdecl FUN_00461d14(int param_1,char *param_2,char param_3) { int iVar1; iVar1 = 0; while ((*param_2 != '\0' && (param_2 = FUN_00461c74(param_2,(int *)(param_1 + iVar1 * 4),param_3), param_2 != (char *)0x0))) { iVar1 = iVar1 + 1; } return iVar1; } /* @00461d50 file=? name=FUN_00461d50 */ void __cdecl FUN_00461d50(char *param_1,int param_2,int *param_3,int *param_4,float param_5) { int iVar1; undefined4 local_84 [32]; iVar1 = FUN_00461d14((int)local_84,param_1,'~'); FUN_0048d108(iVar1,local_84); FUN_00461a14(param_2,param_3,param_4,param_5); return; } /* @00461d90 file=? name=FUN_00461d90 */ undefined4 __cdecl FUN_00461d90(int param_1,LPCSTR param_2) { undefined4 uVar1; uint uVar2; int *piVar3; char *pcVar4; char *pcVar5; DWORD DVar6; int iVar7; uint unaff_EDI; undefined4 local_14; undefined4 local_10; int local_8; if (*(int *)(&DAT_004f3558 + param_1 * 4) == 0xf) { uVar1 = 0xffffffff; } else { uVar2 = thunk_FUN_004d93ac(param_2,0x8000,unaff_EDI); if (uVar2 == 0xffffffff) { uVar1 = 0xfffffffe; } else { piVar3 = FUN_004de55c(0x2000); if (piVar3 == (int *)0x0) { thunk_FUN_004d92c4(uVar2); uVar1 = 0xfffffffd; } else { pcVar4 = (char *)FUN_0048790c(*(undefined4 *)(&DAT_00501368 + param_1 * 0x68), *(undefined4 *)(&DAT_0050136c + param_1 * 0x68),local_14, local_10,*(undefined4 *)(&DAT_004f3558 + param_1 * 4),0); if (pcVar4 == (char *)0xffffffff) { FUN_004de420(piVar3); thunk_FUN_004d92c4(uVar2); uVar1 = 0xfffffffc; } else { pcVar5 = thunk_FUN_004d892c(uVar2,(char *)piVar3,pcVar4); if (pcVar5 == (char *)0xffffffff) { uVar1 = 0xfffffffb; } else { uVar1 = FUN_0047ef40(); local_8 = FUN_0048790c(*(undefined4 *)(&DAT_00501380 + param_1 * 0x68), *(undefined4 *)(&DAT_00501384 + param_1 * 0x68),piVar3,uVar1, *(undefined4 *)(&DAT_004f3558 + param_1 * 4),0); if (local_8 == -1) { FUN_004de420(piVar3); thunk_FUN_004d92c4(uVar2); uVar1 = 0xfffffffa; } else { DVar6 = thunk_FUN_004d9334(uVar2,local_8,0); if (DVar6 == 0xffffffff) { thunk_FUN_004d92c4(uVar2); FUN_004de420(*(int **)(&DAT_004f3418 + *(int *)(&DAT_004f3558 + param_1 * 4) * 4 + param_1 * 0x40)); uVar1 = 0xfffffff9; } else { do { pcVar4 = thunk_FUN_004d892c(uVar2,(char *)piVar3,pcVar4); if (pcVar4 == (char *)0xffffffff) { return 0xfffffff8; } uVar1 = FUN_0047ef40(); pcVar4 = (char *)FUN_0048790c(*(undefined4 *)(&DAT_00501370 + param_1 * 0x68), *(undefined4 *)(&DAT_00501374 + param_1 * 0x68), piVar3,uVar1, *(undefined4 *)(&DAT_004f3558 + param_1 * 4),0); if (pcVar4 == (char *)0xffffffff) { thunk_FUN_004d92c4(uVar2); FUN_004de420(piVar3); return 0xfffffff7; } } while (pcVar4 != (char *)0x0); FUN_004de420(piVar3); pcVar4 = (char *)FUN_0048790c(*(undefined4 *)(&DAT_00501378 + param_1 * 0x68), *(undefined4 *)(&DAT_0050137c + param_1 * 0x68),piVar3 ,uVar1,0,0); uVar1 = FUN_0047ef40(); FUN_0048790c(*(undefined4 *)(&DAT_00501388 + param_1 * 0x68), *(undefined4 *)(&DAT_0050138c + param_1 * 0x68),&local_8,uVar1,0,0); piVar3 = FUN_004de55c((uint)pcVar4); *(int **)(&DAT_004f3418 + *(int *)(&DAT_004f3558 + param_1 * 4) * 4 + param_1 * 0x40 ) = piVar3; if (piVar3 == (int *)0x0) { thunk_FUN_004d92c4(uVar2); uVar1 = 0xfffffff6; } else { DVar6 = thunk_FUN_004d9334(uVar2,local_8,0); if (DVar6 == 0xffffffff) { thunk_FUN_004d92c4(uVar2); FUN_004de420(*(int **)(&DAT_004f3418 + *(int *)(&DAT_004f3558 + param_1 * 4) * 4 + param_1 * 0x40 )); uVar1 = 0xfffffff5; } else { pcVar4 = thunk_FUN_004d892c(uVar2,*(char **)(&DAT_004f3418 + *(int *)(&DAT_004f3558 + param_1 * 4 ) * 4 + param_1 * 0x40), pcVar4); if (pcVar4 == (char *)0xffffffff) { thunk_FUN_004d92c4(uVar2); FUN_004de420(*(int **)(&DAT_004f3418 + *(int *)(&DAT_004f3558 + param_1 * 4) * 4 + param_1 * 0x40)); uVar1 = 0xfffffff4; } else { uVar1 = FUN_0047ef40(); iVar7 = FUN_0048790c(*(undefined4 *)(&DAT_00501390 + param_1 * 0x68), *(undefined4 *)(&DAT_00501394 + param_1 * 0x68), *(undefined4 *) (&DAT_004f3418 + *(int *)(&DAT_004f3558 + param_1 * 4) * 4 + param_1 * 0x40),uVar1,0,0); if (iVar7 == -1) { FUN_004de420(*(int **)(&DAT_004f3418 + *(int *)(&DAT_004f3558 + param_1 * 4) * 4 + param_1 * 0x40)); thunk_FUN_004d92c4(uVar2); uVar1 = 0xfffffff3; } else { thunk_FUN_004d92c4(uVar2); *(int *)(&DAT_004f3558 + param_1 * 4) = *(int *)(&DAT_004f3558 + param_1 * 4) + 1; uVar1 = *(undefined4 *)(&DAT_004f3558 + param_1 * 4); } } } } } } } } } } } return uVar1; } /* @00462124 file=? name=FUN_00462124 */ undefined4 __cdecl FUN_00462124(int param_1) { int iVar1; undefined4 uVar2; undefined *puVar3; uint uVar4; undefined4 local_c; undefined4 local_8; iVar1 = FUN_0048790c(*(undefined4 *)(&DAT_00501388 + param_1 * 0x68), *(undefined4 *)(&DAT_0050138c + param_1 * 0x68),local_c,local_8,1,0); if (iVar1 == -1) { uVar2 = 0xffffffff; } else { puVar3 = &DAT_004f341c; for (uVar4 = 1; uVar4 < *(uint *)(&DAT_004f3558 + param_1 * 4); uVar4 = uVar4 + 1) { FUN_004de420(*(int **)(puVar3 + param_1 * 0x40)); puVar3 = puVar3 + 4; } *(undefined4 *)(&DAT_004f3558 + param_1 * 4) = 1; uVar2 = 0; } return uVar2; } /* @004621ac file=? name=FUN_004621ac */ undefined4 __cdecl FUN_004621ac(int param_1,undefined1 param_2,byte param_3,undefined1 param_4,undefined1 param_5, undefined1 param_6) { byte local_14; undefined1 local_13; undefined1 local_12; local_14 = param_3 | 0xb0; local_13 = 0; local_12 = param_2; FUN_00486402(param_1,&local_14,3); local_14 = param_3 | 0xc0; local_13 = param_4; FUN_00486402(param_1,&local_14,2); local_14 = param_3 | 0x90; local_13 = param_5; local_12 = param_6; FUN_00486402(param_1,&local_14,2); return 0; } /* @00462224 file=? name=FUN_00462224 */ undefined4 __cdecl FUN_00462224(int param_1,byte param_2,undefined1 param_3) { byte local_14; undefined1 local_13; undefined1 local_12; local_14 = param_2 | 0x90; local_13 = param_3; local_12 = 0; FUN_00486402(param_1,&local_14,3); return 0; } /* @00462254 file=? name=FUN_00462254 */ undefined4 FUN_00462254(void) { return 1; } /* @00462260 file=? name=FUN_00462260 */ int * __cdecl FUN_00462260(int *param_1,byte *param_2) { int *piVar1; FUN_004dbb24(param_1,&DAT_004f3582,(char *)0x0); piVar1 = FUN_004db78c(param_1,*param_2 & 0xf); FUN_004dbb24(piVar1,&DAT_004f3584,(char *)0x0); piVar1 = FUN_004db78c(param_1,(int)(uint)*param_2 >> 4); FUN_004dbb24(piVar1,&DAT_004f3586,(char *)0x0); piVar1 = FUN_004db78c(param_1,(uint)param_2[1]); FUN_004dbb24(piVar1,&DAT_004f3588,(char *)0x0); piVar1 = FUN_004db78c(param_1,(uint)param_2[2]); FUN_004dbb24(piVar1,&DAT_004f358a,(char *)0x0); return param_1; } /* @0046230c file=? name=FUN_0046230c */ undefined4 * __cdecl FUN_0046230c(undefined4 *param_1,undefined4 param_2,undefined1 param_3,undefined4 param_4) { FUN_00415e90(param_1,1); *param_1 = &PTR_FUN_004f36b4; param_1[3] = param_2; *(undefined1 *)(param_1 + 4) = param_3; param_1[5] = 0; param_1[6] = param_4; return param_1; } /* @00462340 file=? name=FUN_00462340 */ void __cdecl FUN_00462340(int *param_1,byte param_2) { if (param_1 != (int *)0x0) { *param_1 = (int)&PTR_FUN_004f36b4; FUN_00415ed8(param_1,0); if ((param_2 & 1) != 0) { FUN_004022d0(param_1); } } return; } /* @0046236c file=? name=FUN_0046236c */ undefined4 FUN_0046236c(void) { FUN_00415f1c(); return 1; } /* @00462380 file=? name=FUN_00462380 */ undefined4 * __cdecl FUN_00462380(undefined4 *param_1) { undefined4 *puVar1; byte bVar2; FUN_004178cc(param_1,2); *param_1 = &PTR_FUN_004f36a8; FUN_00462c4e(param_1 + 0x15,0); FUN_00462c4e(param_1 + 0x19,0); bVar2 = 0; param_1[0x14] = 0x20; do { if (bVar2 == 9) { puVar1 = (undefined4 *)FUN_00402298(0x1c); if (puVar1 == (undefined4 *)0x0) { puVar1 = (undefined4 *)0x0; } else { puVar1 = FUN_0046230c(puVar1,1,9,param_1); } (**(code **)(param_1[0x19] + 4))(param_1 + 0x19,puVar1); } else { puVar1 = (undefined4 *)FUN_00402298(0x1c); if (puVar1 == (undefined4 *)0x0) { puVar1 = (undefined4 *)0x0; } else { puVar1 = FUN_0046230c(puVar1,0,bVar2,param_1); } (**(code **)(param_1[0x15] + 4))(param_1 + 0x15,puVar1); } bVar2 = bVar2 + 1; } while (bVar2 < 0x10); return param_1; } /* @00462430 file=? name=FUN_00462430 */ void __cdecl FUN_00462430(int *param_1,byte param_2) { void *this; void *this_00; int local_1c [3]; int local_10 [3]; if (param_1 != (int *)0x0) { *param_1 = (int)&PTR_FUN_004f36a8; FUN_00462c99(local_10,(int)(param_1 + 0x15)); FUN_00417858(this,local_10,1); FUN_00462cf6(local_10,2); FUN_00462c99(local_1c,(int)(param_1 + 0x19)); FUN_00417858(this_00,local_1c,1); FUN_00462cf6(local_1c,2); FUN_00462c6d(param_1 + 0x19,2); FUN_00462c6d(param_1 + 0x15,2); FUN_0041790c(param_1,0); if ((param_2 & 1) != 0) { FUN_004022d0(param_1); } } return; } /* @004624d8 file=? name=FUN_004624d8 */ undefined4 FUN_004624d8(void) { FUN_00415f1c(); return 1; } /* @004624ec file=munga_l4/l4audhdw.cpp name=FUN_004624ec */ void __cdecl FUN_004624ec(int param_1) { int iVar1; char *pcVar2; *(undefined4 *)(param_1 + 0x28) = 0; *(undefined4 *)(param_1 + 0x40) = *(undefined4 *)(param_1 + 0x1c); iVar1 = FUN_004832c2(0xa008,(undefined4 *)(param_1 + 0x40),param_1 + 0x20,(uint *)(param_1 + 0x4c) ); if (iVar1 != 0) { pcVar2 = FUN_004814e9(iVar1); FUN_004dbb24(&DAT_00524e20,pcVar2,(char *)0x0); FUN_0040385c(s_AudioCard__Initialize___sosMIDII_004f358c, s_d__tesla_bt_munga_l4_L4AUDHDW_CP_004f35be,0xfa); } return; } /* @0046254c file=? name=FUN_0046254c */ void __cdecl FUN_0046254c(int param_1) { FUN_00462124(*(int *)(param_1 + 0x4c)); FUN_00483799(*(int *)(param_1 + 0x4c)); FUN_004836b0(*(uint *)(param_1 + 0x4c),1); return; } /* @00462578 file=? name=FUN_00462578 */ void __cdecl FUN_00462578(int param_1,char *param_2) { char *pcVar1; int iVar2; int iVar3; char *local_14; int local_10; int local_c; int local_8; iVar3 = 0xffff; local_8 = 0xffff; local_c = 0xffff; local_10 = 0xffff; iVar2 = 0xffff; local_14 = (char *)FUN_004dee74(param_2); while (*local_14 != '\0') { if ((*local_14 == 'a') || (pcVar1 = local_14, *local_14 == 'A')) { pcVar1 = local_14 + 1; if (*pcVar1 != '\0') { if (*pcVar1 == ':') { pcVar1 = local_14 + 2; } local_14 = pcVar1; iVar3 = FUN_00462abc(param_1,(int *)&local_14); pcVar1 = local_14; } } local_14 = pcVar1; if ((*local_14 == 'i') || (pcVar1 = local_14, *local_14 == 'I')) { pcVar1 = local_14 + 1; if (*pcVar1 != '\0') { if (*pcVar1 == ':') { pcVar1 = local_14 + 2; } local_14 = pcVar1; local_8 = FUN_00462abc(param_1,(int *)&local_14); pcVar1 = local_14; } } local_14 = pcVar1; if ((*local_14 == 'd') || (pcVar1 = local_14, *local_14 == 'D')) { pcVar1 = local_14 + 1; if (*pcVar1 != '\0') { if (*pcVar1 == ':') { pcVar1 = local_14 + 2; } local_14 = pcVar1; local_c = FUN_00462abc(param_1,(int *)&local_14); pcVar1 = local_14; } } local_14 = pcVar1; if ((*local_14 == 'e') || (pcVar1 = local_14, *local_14 == 'E')) { pcVar1 = local_14 + 1; if (*pcVar1 != '\0') { if (*pcVar1 == ':') { pcVar1 = local_14 + 2; } local_14 = pcVar1; iVar2 = FUN_00462abc(param_1,(int *)&local_14); pcVar1 = local_14; } } local_14 = pcVar1; if ((*local_14 == 'p') || (pcVar1 = local_14, *local_14 == 'P')) { pcVar1 = local_14 + 1; if (*pcVar1 != '\0') { if (*pcVar1 == ':') { pcVar1 = local_14 + 2; } local_14 = pcVar1; local_10 = FUN_00462abc(param_1,(int *)&local_14); pcVar1 = local_14; } } while ((local_14 = pcVar1, *local_14 != '\0' && (*local_14 != ' '))) { pcVar1 = local_14 + 1; } for (; *local_14 == ' '; local_14 = local_14 + 1) { } } if (iVar2 == 0xffff) { iVar2 = iVar3 + 0x400; } *(int *)(param_1 + 0xc) = iVar3; *(int *)(param_1 + 0x10) = local_8; *(int *)(param_1 + 0x14) = local_c; *(int *)(param_1 + 0x18) = local_10; *(int *)(param_1 + 0x1c) = iVar2; return; } /* @00462728 file=? name=FUN_00462728 */ undefined4 FUN_00462728(void) { return 0; } /* @00462730 file=? name=FUN_00462730 */ void FUN_00462730(void) { return; } /* @00462738 file=? name=FUN_00462738 */ undefined4 FUN_00462738(void) { return 0; } /* @00462740 file=? name=FUN_00462740 */ undefined4 FUN_00462740(void) { return 0; } /* @00462748 file=? name=FUN_00462748 */ void __cdecl FUN_00462748(int param_1) { int iVar1; int local_1c [3]; int local_10 [3]; FUN_00462c99(local_10,param_1 + 0x54); while( true ) { iVar1 = (**(code **)(local_10[0] + 0x28))(local_10); if (iVar1 == 0) break; FUN_0046285c(*(int *)(iVar1 + 0x18),*(byte *)(iVar1 + 0x10),0x18); } FUN_00462cf6(local_10,2); FUN_00462c99(local_1c,param_1 + 100); iVar1 = (**(code **)(local_1c[0] + 0x30))(local_1c); FUN_0046285c(*(int *)(iVar1 + 0x18),*(byte *)(iVar1 + 0x10),0x18); FUN_00462cf6(local_1c,2); return; } /* @004627d8 file=? name=FUN_004627d8 */ void __cdecl FUN_004627d8(int param_1,LPCSTR param_2) { FUN_00461d90(*(int *)(param_1 + 0x4c),param_2); return; } /* @004627f4 file=? name=FUN_004627f4 */ void __cdecl FUN_004627f4(int param_1) { FUN_00462124(*(int *)(param_1 + 0x4c)); return; } /* @00462808 file=? name=FUN_00462808 */ void __cdecl FUN_00462808(int param_1,byte param_2,int param_3) { uint uVar1; uint uVar2; byte local_27; undefined1 local_26; undefined1 local_25; uVar1 = param_3 + 0x2000; uVar2 = uVar1; if ((int)uVar1 < 0) { uVar2 = param_3 + 0x207f; } uVar1 = uVar1 & 0x8000007f; if ((int)uVar1 < 0) { uVar1 = (uVar1 - 1 | 0xffffff80) + 1; } local_27 = param_2 | 0xe0; local_26 = (undefined1)uVar1; local_25 = (undefined1)((int)uVar2 >> 7); FUN_00486402(*(int *)(param_1 + 0x4c),&local_27,3); return; } /* @0046285c file=? name=FUN_0046285c */ void __cdecl FUN_0046285c(int param_1,byte param_2,undefined1 param_3) { byte local_2f [3]; byte local_2c [5]; byte local_27 [35]; local_27[0] = param_2 | 0xb0; local_27[1] = 0x65; local_27[2] = 0; FUN_00486402(*(int *)(param_1 + 0x4c),local_27,3); local_2c[0] = param_2 | 0xb0; local_2c[1] = 100; local_2c[2] = 0; FUN_00486402(*(int *)(param_1 + 0x4c),local_2c,3); local_2f[0] = param_2 | 0xb0; local_2f[1] = 6; local_2f[2] = param_3; FUN_00486402(*(int *)(param_1 + 0x4c),local_2f,3); return; } /* @004628d8 file=? name=FUN_004628d8 */ void __cdecl FUN_004628d8(int param_1,byte param_2,undefined1 param_3,int param_4) { int iVar1; uint uVar2; byte local_34 [5]; byte local_2f [3]; byte local_2c [5]; byte local_27 [35]; local_27[0] = param_2 | 0xb0; local_27[1] = 99; local_27[2] = 0x7f; FUN_00486402(*(int *)(param_1 + 0x4c),local_27,3); local_2c[0] = param_2 | 0xb0; local_2c[1] = 0x62; local_2c[2] = param_3; FUN_00486402(*(int *)(param_1 + 0x4c),local_2c,3); iVar1 = param_4 + 0x2000; if (iVar1 < 0) { iVar1 = param_4 + 0x207f; } local_2f[0] = param_2 | 0xb0; local_2f[1] = 6; local_2f[2] = (byte)(iVar1 >> 7); FUN_00486402(*(int *)(param_1 + 0x4c),local_2f,3); uVar2 = param_4 + 0x2000U & 0x8000007f; if ((int)uVar2 < 0) { uVar2 = (uVar2 - 1 | 0xffffff80) + 1; } local_34[0] = param_2 | 0xb0; local_34[1] = 0x26; local_34[2] = (byte)uVar2; FUN_00486402(*(int *)(param_1 + 0x4c),local_34,3); return; } /* @0046299c file=? name=FUN_0046299c */ void __cdecl FUN_0046299c(int param_1,int param_2,undefined1 param_3) { if (param_2 == 0) { DAT_004f3574 = param_3; FUN_004629e4(param_1,&DAT_004f356c,0xb); return; } if (param_2 != 1) { return; } DAT_004f357f = param_3; FUN_004629e4(param_1,&DAT_004f3577,0xb); return; } /* @004629e4 file=munga_l4/l4audhdw.cpp name=FUN_004629e4 */ void __cdecl FUN_004629e4(int param_1,undefined4 param_2,undefined4 param_3) { int iVar1; iVar1 = FUN_00486402(*(int *)(param_1 + 0x4c),param_2,param_3); if (iVar1 != 0) { FUN_0040385c(s_AudioCard__SendSysex___wError____004f35e0, s_d__tesla_bt_munga_l4_L4AUDHDW_CP_004f360f,0x2b9); } return; } /* @00462a1c file=? name=FUN_00462a1c */ int __cdecl FUN_00462a1c(int param_1,int param_2) { int iVar1; int local_10 [3]; if (*(int *)(param_1 + 0x50) < param_2) { iVar1 = 0; } else { FUN_00462c99(local_10,param_1 + 0x54); iVar1 = (**(code **)(local_10[0] + 0x30))(local_10); if (iVar1 == 0) { iVar1 = 0; FUN_00462cf6(local_10,2); } else { (**(code **)(local_10[0] + 0x48))(local_10); *(int *)(param_1 + 0x50) = *(int *)(param_1 + 0x50) - param_2; *(int *)(iVar1 + 0x14) = param_2; FUN_00462cf6(local_10,2); } } return iVar1; } /* @00462a98 file=? name=FUN_00462a98 */ void __cdecl FUN_00462a98(int param_1,int param_2) { *(int *)(param_1 + 0x50) = *(int *)(param_1 + 0x50) + *(int *)(param_2 + 0x14); *(undefined4 *)(param_2 + 0x14) = 0; (**(code **)(*(int *)(param_1 + 0x54) + 4))(param_1 + 0x54,param_2); return; } /* @00462abc file=? name=FUN_00462abc */ int __cdecl FUN_00462abc(undefined4 param_1,int *param_2) { char *pcVar1; int iVar2; iVar2 = 0; while( true ) { while( true ) { while( true ) { if (*(char *)*param_2 == '\0') { return iVar2; } if ((*(char *)*param_2 < '0') || ('9' < *(char *)*param_2)) break; pcVar1 = (char *)*param_2; *param_2 = *param_2 + 1; iVar2 = iVar2 * 0x10 + *pcVar1 + -0x30; } if ((*(char *)*param_2 < 'a') || ('f' < *(char *)*param_2)) break; pcVar1 = (char *)*param_2; *param_2 = *param_2 + 1; iVar2 = iVar2 * 0x10 + (int)*pcVar1 + -0x57; } if (*(char *)*param_2 < 'A') break; if ('F' < *(char *)*param_2) { return iVar2; } pcVar1 = (char *)*param_2; *param_2 = *param_2 + 1; iVar2 = iVar2 * 0x10 + (int)*pcVar1 + -0x37; } return iVar2; } /* @00462b38 file=? name=FUN_00462b38 */ undefined4 * __cdecl FUN_00462b38(undefined4 *param_1) { FUN_004178cc(param_1,2); *param_1 = &PTR_FUN_004f369c; FUN_00462380(param_1 + 3); FUN_00462380(param_1 + 0x20); return param_1; } /* @00462b6c file=? name=FUN_00462b6c */ void __cdecl FUN_00462b6c(int *param_1,byte param_2) { if (param_1 != (int *)0x0) { *param_1 = (int)&PTR_FUN_004f369c; FUN_00462430(param_1 + 0x20,2); FUN_00462430(param_1 + 3,2); FUN_0041790c(param_1,0); if ((param_2 & 1) != 0) { FUN_004022d0(param_1); } } return; } /* @00462bb8 file=? name=FUN_00462bb8 */ undefined4 FUN_00462bb8(void) { FUN_00415f1c(); return 1; } /* @00462bcc file=? name=FUN_00462bcc */ void __cdecl FUN_00462bcc(int param_1) { int iVar1; int iVar2; FUN_00483193((char *)0x0); iVar1 = param_1 + 0xc; FUN_00462578(iVar1,s_AWE_FRONT_004f3631); iVar2 = param_1 + 0x80; FUN_00462578(iVar2,s_AWE_REAR_004f363b); FUN_004624ec(iVar1); FUN_004624ec(iVar2); FUN_00462748(iVar1); FUN_00462748(iVar2); return; } /* @00462c28 file=? name=FUN_00462c28 */ void __cdecl FUN_00462c28(int param_1) { FUN_0046254c(param_1 + 0xc); FUN_0046254c(param_1 + 0x80); FUN_004832a1(); return; } /* @00462c4e file=? name=FUN_00462c4e */ undefined4 * __cdecl FUN_00462c4e(undefined4 *param_1,undefined4 param_2) { FUN_00417be0(param_1,param_2); *param_1 = &PTR_FUN_004f3694; return param_1; } /* @00462c6d file=? name=FUN_00462c6d */ void __cdecl FUN_00462c6d(int *param_1,byte param_2) { if (param_1 != (int *)0x0) { *param_1 = (int)&PTR_FUN_004f3694; FUN_00417c0c(param_1,0); if ((param_2 & 1) != 0) { FUN_004022d0(param_1); } } return; } /* @00462c99 file=? name=FUN_00462c99 */ undefined4 * __cdecl FUN_00462c99(undefined4 *param_1,int param_2) { FUN_00417d00(param_1,param_2); *param_1 = &PTR_FUN_004f3644; return param_1; } /* @00462cb8 file=? name=FUN_00462cb8 */ undefined4 * __cdecl FUN_00462cb8(undefined4 *param_1,int param_2) { FUN_00417d00(param_1,param_2); *param_1 = &PTR_FUN_004f3644; return param_1; } /* @00462cd7 file=? name=FUN_00462cd7 */ undefined4 * __cdecl FUN_00462cd7(undefined4 *param_1,int param_2) { FUN_00417d28(param_1,param_2); *param_1 = &PTR_FUN_004f3644; return param_1; } /* @00462cf6 file=? name=FUN_00462cf6 */ void __cdecl FUN_00462cf6(int *param_1,byte param_2) { if (param_1 != (int *)0x0) { *param_1 = (int)&PTR_FUN_004f3644; FUN_00417d54(param_1,0); if ((param_2 & 1) != 0) { FUN_004022d0(param_1); } } return; } /* @00462d24 file=? name=FUN_00462d24 */ void __cdecl FUN_00462d24(undefined4 *param_1) { *param_1 = 0; param_1[1] = 0; param_1[2] = 0; param_1[3] = 0; param_1[4] = 0; param_1[5] = 0; param_1[6] = 0; param_1[7] = 0; param_1[8] = 0; param_1[9] = 0; return; } /* @00462d60 file=? name=FUN_00462d60 */ void __cdecl FUN_00462d60(int *param_1,byte param_2) { if ((param_1 != (int *)0x0) && ((param_2 & 1) != 0)) { FUN_004022d0(param_1); } return; } /* @00462d7c file=? name=FUN_00462d7c */ undefined4 FUN_00462d7c(void) { return 1; } /* @00462d88 file=? name=FUN_00462d88 */ /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ void __cdecl FUN_00462d88(float *param_1,float param_2) { float fVar1; int iVar2; float fVar3; float10 fVar4; float10 fVar5; *param_1 = param_2; *param_1 = _DAT_0046312c + *param_1; if (_DAT_0046312c < *param_1) { *param_1 = *param_1 - _DAT_00463130; } iVar2 = *(int *)(*(int *)(DAT_004efc94 + 0x44) + 0x4c); param_1[1] = 0.0; param_1[2] = 0.0; param_1[3] = 0.0; param_1[4] = 0.0; fVar3 = *(float *)(iVar2 + 0x48); param_1[5] = 0.0; param_1[6] = 0.0; param_1[7] = 0.0; param_1[8] = 0.0; if ((*param_1 <= -0.7853982) || (0.7853982 <= *param_1)) { if ((*param_1 <= 0.7853982) || (_DAT_0046312c - 0.7853982 <= *param_1)) { if ((_DAT_0046312c - 0.7853982 < *param_1) || (*param_1 < _DAT_00463144 + 0.7853982)) { param_1[9] = 2.8026e-45; *param_1 = *param_1 - _DAT_0046312c; fVar4 = (float10)FUN_004dd188(SUB84((double)*param_1,0), (int)((ulonglong)(double)*param_1 >> 0x20)); fVar5 = (float10)FUN_004dd188(0x60000000,0x3fe921fb); fVar1 = (float)(((float10)(double)fVar4 / fVar5) * (float10)_DAT_00463134); fVar4 = FUN_004dd138((double)(_DAT_00463134 + fVar1)); param_1[4] = (float)fVar4; fVar4 = FUN_004dd138((double)(_DAT_00463134 - fVar1)); param_1[3] = (float)fVar4; if (*param_1 <= -0.7853982) { param_1[8] = -(-fVar1 * fVar3 * _DAT_0046313c); } else { param_1[7] = -(fVar3 * fVar1 * _DAT_0046313c); } } else { param_1[9] = 4.2039e-45; *param_1 = *param_1 + _DAT_00463140; fVar4 = (float10)FUN_004dd188(SUB84((double)*param_1,0), (int)((ulonglong)(double)*param_1 >> 0x20)); fVar5 = (float10)FUN_004dd188(SUB84((double)(_DAT_00463140 - 0.7853982),0), (int)((ulonglong)(double)(_DAT_00463140 - 0.7853982) >> 0x20)) ; fVar1 = (float)(((float10)(double)fVar4 / fVar5) * (float10)_DAT_00463134); fVar4 = FUN_004dd138((double)(_DAT_00463134 + fVar1)); param_1[2] = (float)fVar4; fVar4 = FUN_004dd138((double)(_DAT_00463134 - fVar1)); param_1[4] = (float)fVar4; if (*param_1 <= _DAT_00463138) { param_1[8] = -fVar1 * fVar3 * _DAT_0046313c; } else { param_1[6] = fVar3 * fVar1 * _DAT_0046313c; } } } else { param_1[9] = 1.4013e-45; *param_1 = *param_1 - _DAT_00463140; fVar4 = (float10)FUN_004dd188(SUB84((double)*param_1,0), (int)((ulonglong)(double)*param_1 >> 0x20)); fVar5 = (float10)FUN_004dd188(SUB84((double)(_DAT_00463140 - 0.7853982),0), (int)((ulonglong)(double)(_DAT_00463140 - 0.7853982) >> 0x20)); fVar1 = (float)(((float10)(double)fVar4 / fVar5) * (float10)_DAT_00463134); fVar4 = FUN_004dd138((double)(_DAT_00463134 + fVar1)); param_1[3] = (float)fVar4; fVar4 = FUN_004dd138((double)(_DAT_00463134 - fVar1)); param_1[1] = (float)fVar4; if (*param_1 <= _DAT_00463138) { param_1[5] = -fVar1 * fVar3 * _DAT_0046313c; } else { param_1[7] = fVar3 * fVar1 * _DAT_0046313c; } } } else { param_1[9] = 0.0; fVar4 = (float10)FUN_004dd188(SUB84((double)*param_1,0), (int)((ulonglong)(double)*param_1 >> 0x20)); fVar5 = (float10)FUN_004dd188(0x60000000,0x3fe921fb); fVar1 = (float)(((float10)(double)fVar4 / fVar5) * (float10)_DAT_00463134); fVar4 = FUN_004dd138((double)(_DAT_00463134 + fVar1)); param_1[1] = (float)fVar4; fVar4 = FUN_004dd138((double)(_DAT_00463134 - fVar1)); param_1[2] = (float)fVar4; if (*param_1 <= _DAT_00463138) { param_1[6] = -fVar1 * fVar3 * _DAT_0046313c; } else { param_1[5] = fVar3 * fVar1 * _DAT_0046313c; } } return; } /* @00463148 file=? name=FUN_00463148 */ undefined4 * __cdecl FUN_00463148(undefined4 *param_1,int *param_2,int param_3) { FUN_00438060(param_1,param_2,param_3); *param_1 = &PTR_FUN_004f3ac0; FUN_00462d24(param_1 + 0x19); FUN_0046317c((int)param_1); return param_1; } /* @0046317c file=? name=FUN_0046317c */ void __cdecl FUN_0046317c(int param_1) { int *piVar1; int iVar2; int *piVar3; iVar2 = *(int *)(*(int *)(DAT_004efc94 + 0x44) + 0x18); piVar3 = (int *)FUN_00414b60(); piVar1 = (int *)(param_1 + 0x8c); *piVar1 = *piVar3; *piVar1 = *piVar1 - iVar2; *(undefined4 *)(param_1 + 0x90) = 0; *(undefined4 *)(param_1 + 0x94) = 0; *(undefined4 *)(param_1 + 0x98) = 0; *(undefined4 *)(param_1 + 0x9c) = 0; *(undefined4 *)(param_1 + 0xa0) = 0; *(undefined4 *)(param_1 + 0xa4) = 0; *(undefined4 *)(param_1 + 0xa8) = 0; *(undefined4 *)(param_1 + 0xac) = 0; return; } /* @004631f4 file=? name=FUN_004631f4 */ void __cdecl FUN_004631f4(int *param_1,byte param_2) { if (param_1 != (int *)0x0) { *param_1 = (int)&PTR_FUN_004f3ac0; FUN_00462d60(param_1 + 0x19,2); FUN_004380f8(param_1,0); if ((param_2 & 1) != 0) { FUN_004022d0(param_1); } } return; } /* @00463230 file=? name=FUN_00463230 */ undefined4 __cdecl FUN_00463230(int param_1) { FUN_00438178(param_1); return 1; } /* @00463244 file=? name=FUN_00463244 */ /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ void FUN_00463244(int param_1,int param_2) { int iVar1; float fVar2; float fVar3; int *piVar4; float10 fVar5; FUN_004383b4(param_1,(int *)param_2); if (*(int *)(param_1 + 0x38) == 0) { FUN_00462d88((float *)(param_1 + 100),*(float *)(param_1 + 0x4c)); piVar4 = (int *)FUN_00414b60(); iVar1 = *piVar4 - *(int *)(param_1 + 0x8c); piVar4 = (int *)FUN_00414b60(); *(int *)(param_1 + 0x8c) = *piVar4; *(undefined4 *)(param_1 + 0xa0) = 0; *(undefined4 *)(param_1 + 0xa4) = 0; *(undefined4 *)(param_1 + 0xa8) = 0; *(undefined4 *)(param_1 + 0xac) = 0; fVar5 = FUN_004dcd00((double)((float)iVar1 / DAT_0052140c)); if ((float10)_DAT_00463574 < fVar5) { if (*(float *)(param_1 + 0x90) != *(float *)(param_1 + 0x78)) { *(float *)(param_1 + 0xa0) = ((*(float *)(param_1 + 0x78) - *(float *)(param_1 + 0x90)) * 1915.5) / ((float)iVar1 / DAT_0052140c); *(undefined4 *)(param_1 + 0x90) = *(undefined4 *)(param_1 + 0x78); } if (*(float *)(param_1 + 0x94) != *(float *)(param_1 + 0x7c)) { *(float *)(param_1 + 0xa4) = ((*(float *)(param_1 + 0x7c) - *(float *)(param_1 + 0x94)) * 1915.5) / ((float)iVar1 / DAT_0052140c); *(undefined4 *)(param_1 + 0x94) = *(undefined4 *)(param_1 + 0x7c); } if (*(float *)(param_1 + 0x98) != *(float *)(param_1 + 0x80)) { *(float *)(param_1 + 0xa8) = ((*(float *)(param_1 + 0x80) - *(float *)(param_1 + 0x98)) * 1915.5) / ((float)iVar1 / DAT_0052140c); *(undefined4 *)(param_1 + 0x98) = *(undefined4 *)(param_1 + 0x80); } if (*(float *)(param_1 + 0x9c) != *(float *)(param_1 + 0x84)) { *(float *)(param_1 + 0xac) = ((*(float *)(param_1 + 0x84) - *(float *)(param_1 + 0x9c)) * 1915.5) / ((float)iVar1 / DAT_0052140c); *(undefined4 *)(param_1 + 0x9c) = *(undefined4 *)(param_1 + 0x84); } } fVar3 = *(float *)(param_2 + 0x18) * _DAT_00463578; fVar5 = FUN_004dd138((double)(*(float *)(param_1 + 0x44) * *(float *)(param_1 + 0x44) + *(float *)(param_1 + 0x3c) * *(float *)(param_1 + 0x3c) + 0.0)); if ((float)fVar5 < fVar3) { fVar3 = ((fVar3 - (float)fVar5) * _DAT_00463578) / fVar3; fVar5 = FUN_004dd138((double)(_DAT_0046357c - fVar3)); fVar2 = (float)fVar5; fVar5 = FUN_004dd138((double)fVar3); fVar3 = (float)fVar5; iVar1 = *(int *)(param_1 + 0x88); if (iVar1 == 0) { *(float *)(param_1 + 0x70) = *(float *)(param_1 + 0x68) * fVar3; *(float *)(param_1 + 0x74) = *(float *)(param_1 + 0x6c) * fVar3; *(float *)(param_1 + 0x68) = fVar2 * *(float *)(param_1 + 0x68); *(float *)(param_1 + 0x6c) = fVar2 * *(float *)(param_1 + 0x6c); } else if (iVar1 == 1) { *(float *)(param_1 + 0x74) = *(float *)(param_1 + 0x70) * fVar3; *(float *)(param_1 + 0x6c) = *(float *)(param_1 + 0x68) * fVar3; *(float *)(param_1 + 0x70) = fVar2 * *(float *)(param_1 + 0x70); *(float *)(param_1 + 0x68) = fVar2 * *(float *)(param_1 + 0x68); } else if (iVar1 == 2) { *(float *)(param_1 + 0x6c) = *(float *)(param_1 + 0x74) * fVar3; *(float *)(param_1 + 0x68) = *(float *)(param_1 + 0x70) * fVar3; *(float *)(param_1 + 0x74) = fVar2 * *(float *)(param_1 + 0x74); *(float *)(param_1 + 0x70) = fVar2 * *(float *)(param_1 + 0x70); } else if (iVar1 == 3) { *(float *)(param_1 + 0x68) = *(float *)(param_1 + 0x6c) * fVar3; *(float *)(param_1 + 0x70) = *(float *)(param_1 + 0x74) * fVar3; *(float *)(param_1 + 0x6c) = fVar2 * *(float *)(param_1 + 0x6c); *(float *)(param_1 + 0x74) = fVar2 * *(float *)(param_1 + 0x74); } } } else { *(undefined4 *)(param_1 + 0x68) = 0x3f800000; *(undefined4 *)(param_1 + 0x6c) = 0x3f800000; *(undefined4 *)(param_1 + 0x70) = 0x3f800000; *(undefined4 *)(param_1 + 0x74) = 0x3f800000; *(undefined4 *)(param_1 + 0xa0) = 0; *(undefined4 *)(param_1 + 0xa4) = 0; *(undefined4 *)(param_1 + 0xa8) = 0; *(undefined4 *)(param_1 + 0xac) = 0; } return; } /* @0046324a file=? name=FUN_0046324a */ /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ void FUN_0046324a(void) { int *piVar1; int iVar2; int iVar3; undefined4 *puVar4; int *piVar5; int unaff_EBP; float10 fVar6; piVar1 = *(int **)(unaff_EBP + 0xc); iVar2 = *(int *)(unaff_EBP + 8); FUN_004383b4(iVar2,piVar1); if (*(int *)(iVar2 + 0x38) == 0) { FUN_00462d88((float *)(iVar2 + 100),*(float *)(iVar2 + 0x4c)); *(undefined4 *)(unaff_EBP + -4) = 0x44ef7000; puVar4 = (undefined4 *)FUN_00414b60(); *(undefined4 *)(unaff_EBP + -8) = *puVar4; *(int *)(unaff_EBP + -8) = *(int *)(unaff_EBP + -8) - *(int *)(iVar2 + 0x8c); piVar5 = (int *)FUN_00414b60(); *(int *)(iVar2 + 0x8c) = *piVar5; *(undefined4 *)(iVar2 + 0xa0) = 0; *(undefined4 *)(iVar2 + 0xa4) = 0; *(undefined4 *)(iVar2 + 0xa8) = 0; *(undefined4 *)(iVar2 + 0xac) = 0; *(float *)(unaff_EBP + -0xc) = (float)*(int *)(unaff_EBP + -8) / DAT_0052140c; fVar6 = FUN_004dcd00((double)*(float *)(unaff_EBP + -0xc)); if ((float10)_DAT_00463574 < fVar6) { if (*(float *)(iVar2 + 0x90) != *(float *)(iVar2 + 0x78)) { *(float *)(iVar2 + 0xa0) = ((*(float *)(iVar2 + 0x78) - *(float *)(iVar2 + 0x90)) * *(float *)(unaff_EBP + -4)) / ((float)*(int *)(unaff_EBP + -8) / DAT_0052140c); *(undefined4 *)(iVar2 + 0x90) = *(undefined4 *)(iVar2 + 0x78); } if (*(float *)(iVar2 + 0x94) != *(float *)(iVar2 + 0x7c)) { *(float *)(iVar2 + 0xa4) = ((*(float *)(iVar2 + 0x7c) - *(float *)(iVar2 + 0x94)) * *(float *)(unaff_EBP + -4)) / ((float)*(int *)(unaff_EBP + -8) / DAT_0052140c); *(undefined4 *)(iVar2 + 0x94) = *(undefined4 *)(iVar2 + 0x7c); } if (*(float *)(iVar2 + 0x98) != *(float *)(iVar2 + 0x80)) { *(float *)(iVar2 + 0xa8) = ((*(float *)(iVar2 + 0x80) - *(float *)(iVar2 + 0x98)) * *(float *)(unaff_EBP + -4)) / ((float)*(int *)(unaff_EBP + -8) / DAT_0052140c); *(undefined4 *)(iVar2 + 0x98) = *(undefined4 *)(iVar2 + 0x80); } if (*(float *)(iVar2 + 0x9c) != *(float *)(iVar2 + 0x84)) { *(float *)(iVar2 + 0xac) = ((*(float *)(iVar2 + 0x84) - *(float *)(iVar2 + 0x9c)) * *(float *)(unaff_EBP + -4)) / ((float)*(int *)(unaff_EBP + -8) / DAT_0052140c); *(undefined4 *)(iVar2 + 0x9c) = *(undefined4 *)(iVar2 + 0x84); } } *(float *)(unaff_EBP + -0x10) = (float)piVar1[6] * _DAT_00463578; *(undefined4 *)(unaff_EBP + -0x18) = *(undefined4 *)(iVar2 + 0x44); *(undefined4 *)(unaff_EBP + -0x1c) = *(undefined4 *)(iVar2 + 0x3c); *(undefined4 *)(unaff_EBP + -0x34) = *(undefined4 *)(unaff_EBP + -0x1c); *(undefined4 *)(unaff_EBP + -0x30) = 0; *(undefined4 *)(unaff_EBP + -0x2c) = *(undefined4 *)(unaff_EBP + -0x18); fVar6 = FUN_004dd138((double)(*(float *)(unaff_EBP + -0x2c) * *(float *)(unaff_EBP + -0x2c) + *(float *)(unaff_EBP + -0x30) * *(float *)(unaff_EBP + -0x30) + *(float *)(unaff_EBP + -0x34) * *(float *)(unaff_EBP + -0x34))); *(float *)(unaff_EBP + -0x14) = (float)fVar6; if (*(float *)(unaff_EBP + -0x14) < *(float *)(unaff_EBP + -0x10)) { *(float *)(unaff_EBP + -0x20) = ((*(float *)(unaff_EBP + -0x10) - *(float *)(unaff_EBP + -0x14)) * _DAT_00463578) / *(float *)(unaff_EBP + -0x10); fVar6 = FUN_004dd138((double)(_DAT_0046357c - *(float *)(unaff_EBP + -0x20))); *(float *)(unaff_EBP + -0x24) = (float)fVar6; fVar6 = FUN_004dd138((double)*(float *)(unaff_EBP + -0x20)); *(float *)(unaff_EBP + -0x28) = (float)fVar6; iVar3 = *(int *)(iVar2 + 0x88); if (iVar3 == 0) { *(float *)(iVar2 + 0x70) = *(float *)(iVar2 + 0x68) * *(float *)(unaff_EBP + -0x28); *(float *)(iVar2 + 0x74) = *(float *)(iVar2 + 0x6c) * *(float *)(unaff_EBP + -0x28); *(float *)(iVar2 + 0x68) = *(float *)(unaff_EBP + -0x24) * *(float *)(iVar2 + 0x68); *(float *)(iVar2 + 0x6c) = *(float *)(unaff_EBP + -0x24) * *(float *)(iVar2 + 0x6c); } else if (iVar3 == 1) { *(float *)(iVar2 + 0x74) = *(float *)(iVar2 + 0x70) * *(float *)(unaff_EBP + -0x28); *(float *)(iVar2 + 0x6c) = *(float *)(iVar2 + 0x68) * *(float *)(unaff_EBP + -0x28); *(float *)(iVar2 + 0x70) = *(float *)(unaff_EBP + -0x24) * *(float *)(iVar2 + 0x70); *(float *)(iVar2 + 0x68) = *(float *)(unaff_EBP + -0x24) * *(float *)(iVar2 + 0x68); } else if (iVar3 == 2) { *(float *)(iVar2 + 0x6c) = *(float *)(iVar2 + 0x74) * *(float *)(unaff_EBP + -0x28); *(float *)(iVar2 + 0x68) = *(float *)(iVar2 + 0x70) * *(float *)(unaff_EBP + -0x28); *(float *)(iVar2 + 0x74) = *(float *)(unaff_EBP + -0x24) * *(float *)(iVar2 + 0x74); *(float *)(iVar2 + 0x70) = *(float *)(unaff_EBP + -0x24) * *(float *)(iVar2 + 0x70); } else if (iVar3 == 3) { *(float *)(iVar2 + 0x68) = *(float *)(iVar2 + 0x6c) * *(float *)(unaff_EBP + -0x28); *(float *)(iVar2 + 0x70) = *(float *)(iVar2 + 0x74) * *(float *)(unaff_EBP + -0x28); *(float *)(iVar2 + 0x6c) = *(float *)(unaff_EBP + -0x24) * *(float *)(iVar2 + 0x6c); *(float *)(iVar2 + 0x74) = *(float *)(unaff_EBP + -0x24) * *(float *)(iVar2 + 0x74); } } } else { *(undefined4 *)(iVar2 + 0x68) = 0x3f800000; *(undefined4 *)(iVar2 + 0x6c) = 0x3f800000; *(undefined4 *)(iVar2 + 0x70) = 0x3f800000; *(undefined4 *)(iVar2 + 0x74) = 0x3f800000; *(undefined4 *)(iVar2 + 0xa0) = 0; *(undefined4 *)(iVar2 + 0xa4) = 0; *(undefined4 *)(iVar2 + 0xa8) = 0; *(undefined4 *)(iVar2 + 0xac) = 0; } return; } /* @00463580 file=? name=FUN_00463580 */ undefined4 * __cdecl FUN_00463580(undefined4 *param_1) { undefined4 *puVar1; int iVar2; iVar2 = 0; puVar1 = param_1; do { *puVar1 = 0; puVar1[4] = 0; iVar2 = iVar2 + 1; puVar1 = puVar1 + 1; } while (iVar2 < 4); return param_1; } /* @004635a4 file=? name=FUN_004635a4 */ undefined4 FUN_004635a4(void) { int iVar1; iVar1 = 0; do { iVar1 = iVar1 + 1; } while (iVar1 < 4); return 1; } /* @004635c0 file=? name=FUN_004635c0 */ void __cdecl FUN_004635c0(undefined4 *param_1) { int iVar1; iVar1 = 0; do { *param_1 = 0; param_1[4] = 1; iVar1 = iVar1 + 1; param_1 = param_1 + 1; } while (iVar1 < 4); return; } /* @004635e0 file=? name=FUN_004635e0 */ void __cdecl FUN_004635e0(int *param_1) { int iVar1; int iVar2; iVar2 = 0; do { iVar1 = *param_1; if (iVar1 != 0) { FUN_00462a98(*(int *)(iVar1 + 0x18),iVar1); *param_1 = 0; } iVar2 = iVar2 + 1; param_1 = param_1 + 1; } while (iVar2 < 4); return; } /* @00463610 file=? name=FUN_00463610 */ undefined4 * __cdecl FUN_00463610(undefined4 *param_1,int *param_2,int param_3) { FUN_0043b22c(param_1,param_2,param_3); *param_1 = &PTR_FUN_004f3a60; FUN_00463580(param_1 + 0x29); FUN_00463668(); return param_1; } /* @00463648 file=? name=FUN_00463648 */ void __cdecl FUN_00463648(int *param_1,int param_2) { FUN_0043b37c(param_1,param_2); return; } /* @00463668 file=? name=FUN_00463668 */ void FUN_00463668(void) { return; } /* @00463670 file=? name=FUN_00463670 */ void __cdecl FUN_00463670(int *param_1,byte param_2) { if (param_1 != (int *)0x0) { *param_1 = (int)&PTR_FUN_004f3a60; FUN_0043b998(param_1,0); if ((param_2 & 1) != 0) { FUN_004022d0(param_1); } } return; } /* @0046369c file=? name=FUN_0046369c */ undefined4 __cdecl FUN_0046369c(int param_1) { FUN_0043b9e0(param_1); return 1; } /* @004636b0 file=? name=FUN_004636b0 */ void __cdecl FUN_004636b0(int *param_1) { FUN_00467a9c(*(int *)(DAT_004efc94 + 0x44),param_1); return; } /* @004636cc file=? name=FUN_004636cc */ void __cdecl FUN_004636cc(int param_1,undefined4 *param_2) { int iVar1; undefined4 *puVar2; puVar2 = (undefined4 *)(param_1 + 0xa4); for (iVar1 = 8; iVar1 != 0; iVar1 = iVar1 + -1) { *puVar2 = *param_2; param_2 = param_2 + 1; puVar2 = puVar2 + 1; } return; } /* @004636ec file=? name=FUN_004636ec */ int __cdecl FUN_004636ec(int param_1) { return param_1 + 0xa4; } /* @004636fc file=? name=FUN_004636fc */ void __cdecl FUN_004636fc(int param_1) { FUN_004635e0((int *)(param_1 + 0xa4)); return; } /* @00463710 file=? name=FUN_00463710 */ undefined4 * __cdecl FUN_00463710(undefined4 *param_1,int *param_2,int param_3) { FUN_00463610(param_1,param_2,param_3); *param_1 = &PTR_FUN_004f3a00; (**(code **)(*param_2 + 0x1c))(param_2,param_1 + 0x31,4); param_1[0x32] = 0; return param_1; } /* @00463754 file=munga_l4/l4audio.cpp name=FUN_00463754 */ void __cdecl FUN_00463754(int *param_1,int param_2) { char *pcVar1; int local_8; FUN_00463648(param_1,param_2); pcVar1 = (char *)FUN_00403ad0(param_2,s_position_004f36b8); if (pcVar1 == (char *)0x0) { FUN_004dbb24(&DAT_00524e20,s_DYN_MEM_STRM_WRITE_ENTRY____name_004f36c1,(char *)0x0); FUN_004dbb24(&DAT_00524e20,s_position_004f36e6,(char *)0x0); FUN_004dbb24(&DAT_00524e20,&DAT_004f36ef,(char *)0x0); FUN_0040385c(s_DYN_MEM_STRM_WRITE_ENTRY____name_004f36f1, s_d__tesla_bt_munga_l4_L4AUDIO_CPP_004f3731,0x330); } FUN_00407ae0(pcVar1,&local_8); (**(code **)(*param_1 + 0x20))(param_1,&local_8,4); return; } /* @004637fc file=? name=FUN_004637fc */ void __cdecl FUN_004637fc(int *param_1,byte param_2) { if (param_1 != (int *)0x0) { *param_1 = (int)&PTR_FUN_004f3a00; FUN_00463670(param_1,0); if ((param_2 & 1) != 0) { FUN_004022d0(param_1); } } return; } /* @00463828 file=? name=FUN_00463828 */ undefined4 __cdecl FUN_00463828(int param_1) { FUN_0046369c(param_1); return 1; } /* @00463848 file=? name=FUN_00463848 */ void __cdecl FUN_00463848(int *param_1) { int iVar1; int *piVar2; int *piVar3; piVar2 = &DAT_00522c9c; piVar3 = param_1 + 0x29; for (iVar1 = 8; iVar1 != 0; iVar1 = iVar1 + -1) { *piVar3 = *piVar2; piVar2 = piVar2 + 1; piVar3 = piVar3 + 1; } iVar1 = param_1[0x31]; if (iVar1 == 0) { LAB_0046387c: param_1[0x2d] = 1; } else { if (iVar1 != 1) { if (iVar1 - 2U < 2) goto LAB_0046387c; if (1 < iVar1 - 4U) goto LAB_00463892; } param_1[0x2f] = 1; } LAB_00463892: FUN_0046797c(*(int *)(DAT_004efc94 + 0x44),param_1); return; } /* @004638a8 file=? name=FUN_004638a8 */ void __cdecl FUN_004638a8(int *param_1) { undefined4 uVar1; int iVar2; undefined4 uVar3; byte local_601; undefined1 local_600; undefined1 local_5ff; byte local_502 [255]; byte local_403 [255]; byte local_304 [4]; undefined1 local_300; undefined1 local_2ff; byte local_202 [255]; byte local_103 [255]; FUN_0043bfa4((int)param_1); iVar2 = param_1[0x31]; if (iVar2 == 0) { LAB_004638d8: param_1[0x32] = param_1[0x29]; } else { if (iVar2 != 1) { if (iVar2 - 2U < 2) goto LAB_004638d8; if (1 < iVar2 - 4U) goto LAB_004638f2; } param_1[0x32] = param_1[0x2b]; } LAB_004638f2: FUN_00436db0((int)param_1); local_103[0] = *(byte *)(param_1[0x32] + 0x10) | 0xb0; local_103[1] = 7; local_103[2] = 0; FUN_00486402(*(int *)(*(int *)(param_1[0x32] + 0x18) + 0x4c),local_103,3); iVar2 = param_1[10]; FUN_004379b8(iVar2,*(float *)(param_1[9] + 0x48)); FUN_00465cb4(iVar2,param_1[0x32]); local_202[0] = *(byte *)(param_1[0x32] + 0x10) | 0xb0; local_202[1] = 0x5b; local_202[2] = 0; FUN_00486402(*(int *)(*(int *)(param_1[0x32] + 0x18) + 0x4c),local_202,3); local_304[3] = *(byte *)(param_1[0x32] + 0x10) | 0xb0; local_300 = 0x5d; local_2ff = 0; FUN_00486402(*(int *)(*(int *)(param_1[0x32] + 0x18) + 0x4c),local_304 + 3,3); switch(param_1[0x31]) { case 0: case 1: local_304[0] = *(byte *)(param_1[0x32] + 0x10) | 0xb0; local_304[1] = 10; local_304[2] = 0x3f; FUN_00486402(*(int *)(*(int *)(param_1[0x32] + 0x18) + 0x4c),local_304,3); break; case 2: case 4: local_403[0] = *(byte *)(param_1[0x32] + 0x10) | 0xb0; local_403[1] = 10; local_403[2] = 0; FUN_00486402(*(int *)(*(int *)(param_1[0x32] + 0x18) + 0x4c),local_403,3); break; case 3: case 5: local_502[0] = *(byte *)(param_1[0x32] + 0x10) | 0xb0; local_502[1] = 10; local_502[2] = 0x7f; FUN_00486402(*(int *)(*(int *)(param_1[0x32] + 0x18) + 0x4c),local_502,3); } *(undefined1 *)(param_1 + 0x33) = 0; param_1[0x34] = 0; param_1[0x35] = 0x7f; uVar1 = FUN_004dcd94(); if (param_1[0x19] != 0) { iVar2 = FUN_004dcd94(); FUN_004628d8(*(int *)(param_1[0x32] + 0x18),*(byte *)(param_1[0x32] + 0x10),0xb,iVar2); } (**(code **)(*param_1 + 0x5c))(param_1,1); uVar3 = FUN_004dcd94(); local_601 = *(byte *)(param_1[0x32] + 0x10) | 0x90; local_600 = (undefined1)uVar3; local_5ff = (undefined1)uVar1; FUN_00486402(*(int *)(*(int *)(param_1[0x32] + 0x18) + 0x4c),&local_601,3); return; } /* @00463bbc file=? name=FUN_00463bbc */ void __cdecl FUN_00463bbc(int *param_1,int param_2) { int iVar1; uint uVar2; int iVar3; float10 fVar4; byte local_103 [243]; float local_10; float local_c; float local_8; fVar4 = (float10)(**(code **)(*param_1 + 0x20))(param_1); local_8 = (float)fVar4; iVar1 = FUN_004dcd94(); if (iVar1 < -0x1fff) { iVar1 = -0x1fff; } else if (0x1fff < iVar1) { iVar1 = 0x1fff; } iVar3 = param_1[0x34] - iVar1; if (iVar3 < 1) { iVar3 = -iVar3; } if ((0xb < iVar3) || (param_2 != 0)) { param_1[0x34] = iVar1; FUN_00462808(*(int *)(param_1[0x32] + 0x18),*(byte *)(param_1[0x32] + 0x10),iVar1); } if (param_1[0x22] != 0) { fVar4 = (float10)(**(code **)(*param_1 + 0x24))(param_1); local_c = (float)fVar4; FUN_00465ccc(param_1[10]); iVar1 = FUN_004dcd94(); iVar3 = param_1[0x35] - iVar1; if (iVar3 < 1) { iVar3 = -iVar3; } if (1 < iVar3) { param_1[0x35] = iVar1; FUN_004628d8(*(int *)(param_1[0x32] + 0x18),*(byte *)(param_1[0x32] + 0x10),0x15,iVar1); } } fVar4 = (float10)(**(code **)(*param_1 + 0x1c))(param_1); local_10 = (float)fVar4; uVar2 = FUN_004dcd94(); local_103[2] = (byte)uVar2; iVar1 = (uint)*(byte *)(param_1 + 0x33) - (uVar2 & 0xff); if (iVar1 < 1) { iVar1 = -iVar1; } if (1 < iVar1) { *(byte *)(param_1 + 0x33) = local_103[2]; local_103[0] = *(byte *)(param_1[0x32] + 0x10) | 0xb0; local_103[1] = 7; FUN_00486402(*(int *)(*(int *)(param_1[0x32] + 0x18) + 0x4c),local_103,3); } return; } /* @00463d4c file=? name=FUN_00463d4c */ undefined4 * __cdecl FUN_00463d4c(undefined4 *param_1,int *param_2,int param_3) { FUN_00463610(param_1,param_2,param_3); *param_1 = &PTR_FUN_004f39a0; return param_1; } /* @00463d70 file=? name=FUN_00463d70 */ void __cdecl FUN_00463d70(int *param_1,byte param_2) { if (param_1 != (int *)0x0) { *param_1 = (int)&PTR_FUN_004f39a0; FUN_00463670(param_1,0); if ((param_2 & 1) != 0) { FUN_004022d0(param_1); } } return; } /* @00463d9c file=? name=FUN_00463d9c */ undefined4 __cdecl FUN_00463d9c(int param_1) { FUN_0046369c(param_1); return 1; } /* @00463db0 file=? name=FUN_00463db0 */ void __cdecl FUN_00463db0(int *param_1) { FUN_004635c0(param_1 + 0x29); FUN_0046797c(*(int *)(DAT_004efc94 + 0x44),param_1); return; } /* @00463ddc file=? name=FUN_00463ddc */ void __cdecl FUN_00463ddc(int *param_1) { int iVar1; undefined4 uVar2; int iVar3; int *piVar4; byte local_704; undefined1 local_703; undefined1 local_702; undefined1 local_609; int local_608; undefined1 local_604; byte local_603 [255]; byte local_504 [4]; undefined1 local_500; undefined1 local_4ff; byte local_402 [255]; byte local_303 [255]; byte local_204 [251]; undefined1 local_109; int local_108; byte local_103 [251]; undefined4 local_8; FUN_0043bfa4((int)param_1); local_8 = *(undefined4 *)(*(int *)(DAT_004efc94 + 0x44) + 0x4c); FUN_00436db0((int)param_1); iVar3 = 0; piVar4 = param_1 + 0x29; do { local_103[0] = *(byte *)(*piVar4 + 0x10) | 0xb0; local_103[1] = 7; local_103[2] = 0; FUN_00486402(*(int *)(*(int *)(*piVar4 + 0x18) + 0x4c),local_103,3); iVar3 = iVar3 + 1; piVar4 = piVar4 + 1; } while (iVar3 < 4); local_108 = param_1[10]; FUN_004379b8(local_108,*(float *)(param_1[9] + 0x48)); iVar3 = 0; piVar4 = param_1 + 0x29; do { FUN_00465cb4(local_108,*piVar4); iVar3 = iVar3 + 1; piVar4 = piVar4 + 1; } while (iVar3 < 4); uVar2 = FUN_004dcd94(); local_109 = (undefined1)uVar2; iVar3 = 0; piVar4 = param_1 + 0x29; do { iVar1 = *piVar4; local_204[0] = *(byte *)(iVar1 + 0x10) | 0xb0; local_204[1] = 0x5b; local_204[2] = local_109; FUN_00486402(*(int *)(*(int *)(iVar1 + 0x18) + 0x4c),local_204,3); local_303[0] = *(byte *)(iVar1 + 0x10) | 0xb0; local_303[1] = 0x5d; local_303[2] = 0; FUN_00486402(*(int *)(*(int *)(iVar1 + 0x18) + 0x4c),local_303,3); iVar3 = iVar3 + 1; piVar4 = piVar4 + 1; } while (iVar3 < 4); local_402[0] = *(byte *)(param_1[0x29] + 0x10) | 0xb0; local_402[1] = 10; local_402[2] = 0; FUN_00486402(*(int *)(*(int *)(param_1[0x29] + 0x18) + 0x4c),local_402,3); local_504[3] = *(byte *)(param_1[0x2a] + 0x10) | 0xb0; local_500 = 10; local_4ff = 0x7f; FUN_00486402(*(int *)(*(int *)(param_1[0x2a] + 0x18) + 0x4c),local_504 + 3,3); local_504[0] = *(byte *)(param_1[0x2b] + 0x10) | 0xb0; local_504[1] = 10; local_504[2] = 0; FUN_00486402(*(int *)(*(int *)(param_1[0x2b] + 0x18) + 0x4c),local_504,3); local_603[0] = *(byte *)(param_1[0x2c] + 0x10) | 0xb0; local_603[1] = 10; local_603[2] = 0x7f; FUN_00486402(*(int *)(*(int *)(param_1[0x2c] + 0x18) + 0x4c),local_603,3); *(undefined1 *)(param_1 + 0x31) = 0; *(undefined1 *)((int)param_1 + 0xc5) = 0; *(undefined1 *)((int)param_1 + 0xc6) = 0; *(undefined1 *)((int)param_1 + 199) = 0; param_1[0x32] = 0; param_1[0x33] = 0; param_1[0x34] = 0; param_1[0x35] = 0; param_1[0x36] = 0x7f; uVar2 = FUN_004dcd94(); local_604 = (undefined1)uVar2; if (param_1[0x19] != 0) { local_608 = FUN_004dcd94(); iVar3 = 0; piVar4 = param_1 + 0x29; do { FUN_004628d8(*(int *)(*piVar4 + 0x18),*(byte *)(*piVar4 + 0x10),0xb,local_608); iVar3 = iVar3 + 1; piVar4 = piVar4 + 1; } while (iVar3 < 4); } (**(code **)(*param_1 + 0x5c))(param_1,1); iVar3 = 0; piVar4 = param_1 + 0x29; do { iVar1 = *piVar4; local_609 = local_604; uVar2 = FUN_004dcd94(); local_704 = *(byte *)(iVar1 + 0x10) | 0x90; local_703 = (undefined1)uVar2; local_702 = local_609; FUN_00486402(*(int *)(*(int *)(iVar1 + 0x18) + 0x4c),&local_704,3); iVar3 = iVar3 + 1; piVar4 = piVar4 + 1; } while (iVar3 < 4); return; } /* @004641e0 file=? name=FUN_004641e0 */ /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ void __cdecl FUN_004641e0(int *param_1,int param_2) { bool bVar1; undefined4 uVar2; int iVar3; int iVar4; int iVar5; float10 fVar6; byte local_404 [255]; byte local_305; char local_304; byte local_303 [255]; byte local_204; char local_203; byte local_202 [255]; byte local_103; char local_102; byte local_101 [171]; byte local_56; char local_55; int local_54; int local_50; int local_4c; uint local_48; int local_44; int local_40; undefined4 local_3c; float local_38; int local_34; int local_30; int local_2c; float local_28; char local_24; char local_23; char local_22; char local_21; float local_20; float local_1c; int local_18; int local_14; int local_10; int local_c; int local_8; FUN_0043c030(param_1); local_8 = param_1[10]; iVar4 = param_1[9]; local_c = param_1[0x29]; local_10 = param_1[0x2a]; local_14 = param_1[0x2b]; local_18 = param_1[0x2c]; fVar6 = (float10)(**(code **)(*param_1 + 0x1c))(param_1); local_1c = (float)fVar6; local_20 = local_1c * _DAT_00464818; uVar2 = FUN_004dcd94(); local_21 = (char)uVar2; uVar2 = FUN_004dcd94(); local_22 = (char)uVar2; uVar2 = FUN_004dcd94(); local_23 = (char)uVar2; uVar2 = FUN_004dcd94(); local_24 = (char)uVar2; fVar6 = (float10)(**(code **)(*param_1 + 0x20))(param_1); local_28 = *(float *)(iVar4 + 0x58) + (float)fVar6; iVar3 = FUN_004dcd94(); local_2c = FUN_004dcd94(); local_30 = FUN_004dcd94(); local_34 = FUN_004dcd94(); if (iVar3 < -0x1fff) { iVar3 = -0x1fff; } else if (0x1fff < iVar3) { iVar3 = 0x1fff; } if (local_2c < -0x1fff) { local_2c = -0x1fff; } else if (0x1fff < local_2c) { local_2c = 0x1fff; } if (local_30 < -0x1fff) { local_30 = -0x1fff; } else if (0x1fff < local_30) { local_30 = 0x1fff; } if (local_34 < -0x1fff) { local_34 = -0x1fff; } else if (0x1fff < local_34) { local_34 = 0x1fff; } fVar6 = (float10)(**(code **)(*param_1 + 0x24))(param_1); local_38 = *(float *)(iVar4 + 0x54) * (float)fVar6; FUN_00465ccc(local_8); iVar4 = FUN_004dcd94(); local_3c = 2; iVar5 = iVar3 - param_1[0x32]; if (iVar5 < 1) { iVar5 = -iVar5; } if ((1 < iVar5) || (param_2 != 0)) { param_1[0x32] = iVar3; FUN_00462808(*(int *)(local_c + 0x18),*(byte *)(local_c + 0x10),iVar3); } iVar3 = local_2c - param_1[0x33]; if (iVar3 < 1) { iVar3 = -iVar3; } if ((1 < iVar3) || (param_2 != 0)) { param_1[0x33] = local_2c; FUN_00462808(*(int *)(local_10 + 0x18),*(byte *)(local_10 + 0x10),local_2c); } iVar3 = local_30 - param_1[0x34]; if (iVar3 < 1) { iVar3 = -iVar3; } if ((1 < iVar3) || (param_2 != 0)) { param_1[0x34] = local_30; local_40 = local_30; FUN_00462808(*(int *)(local_14 + 0x18),*(byte *)(local_14 + 0x10),local_30); } iVar3 = local_34 - param_1[0x35]; if (iVar3 < 1) { iVar3 = -iVar3; } if ((1 < iVar3) || (param_2 != 0)) { param_1[0x35] = local_34; local_44 = local_34; FUN_00462808(*(int *)(local_18 + 0x18),*(byte *)(local_18 + 0x10),local_34); } local_48 = 0; local_4c = 0; local_50 = 0; local_54 = 0; if ((char)param_1[0x31] != local_21) { local_48 = (uint)((char)param_1[0x31] == '\0'); *(char *)(param_1 + 0x31) = local_21; local_55 = local_21; local_56 = *(byte *)(local_c + 0x10); local_101[0] = local_56 | 0xb0; local_101[1] = 7; local_101[2] = local_21; FUN_00486402(*(int *)(*(int *)(local_c + 0x18) + 0x4c),local_101,3); } if (*(char *)((int)param_1 + 0xc5) != local_22) { if (*(char *)((int)param_1 + 0xc5) == '\0') { local_4c = 1; } *(char *)((int)param_1 + 0xc5) = local_22; local_102 = local_22; local_103 = *(byte *)(local_10 + 0x10); local_202[0] = local_103 | 0xb0; local_202[1] = 7; local_202[2] = local_22; FUN_00486402(*(int *)(*(int *)(local_10 + 0x18) + 0x4c),local_202,3); } if (*(char *)((int)param_1 + 0xc6) != local_23) { if (*(char *)((int)param_1 + 0xc6) == '\0') { local_50 = 1; } *(char *)((int)param_1 + 0xc6) = local_23; local_203 = local_23; local_204 = *(byte *)(local_14 + 0x10); local_303[0] = local_204 | 0xb0; local_303[1] = 7; local_303[2] = local_23; FUN_00486402(*(int *)(*(int *)(local_14 + 0x18) + 0x4c),local_303,3); } if (*(char *)((int)param_1 + 199) != local_24) { if (*(char *)((int)param_1 + 199) == '\0') { local_54 = 1; } *(char *)((int)param_1 + 199) = local_24; local_304 = local_24; local_305 = *(byte *)(local_18 + 0x10); local_404[0] = local_305 | 0xb0; local_404[1] = 7; local_404[2] = local_24; FUN_00486402(*(int *)(*(int *)(local_18 + 0x18) + 0x4c),local_404,3); } iVar3 = iVar4 - param_1[0x36]; if (iVar3 < 1) { iVar3 = -iVar3; } bVar1 = 3 < iVar3; if ((local_48 != 0) || ((bVar1 && (local_21 != '\0')))) { param_1[0x36] = iVar4; FUN_004628d8(*(int *)(local_c + 0x18),*(byte *)(local_c + 0x10),0x15,iVar4); } if ((local_4c != 0) || ((bVar1 && (local_22 != '\0')))) { param_1[0x36] = iVar4; FUN_004628d8(*(int *)(local_10 + 0x18),*(byte *)(local_10 + 0x10),0x15,iVar4); } if ((local_50 != 0) || ((bVar1 && (local_23 != '\0')))) { param_1[0x36] = iVar4; FUN_004628d8(*(int *)(local_14 + 0x18),*(byte *)(local_14 + 0x10),0x15,iVar4); } if ((local_54 != 0) || ((bVar1 && (local_24 != '\0')))) { param_1[0x36] = iVar4; FUN_004628d8(*(int *)(local_18 + 0x18),*(byte *)(local_18 + 0x10),0x15,iVar4); } return; } /* @0046487c file=? name=FUN_0046487c */ undefined4 * __cdecl FUN_0046487c(undefined4 *param_1,int *param_2,int param_3) { FUN_00463610(param_1,param_2,param_3); *param_1 = &PTR_FUN_004f3940; param_1[0x31] = 0; param_1[0x32] = 0; param_1[0x33] = 0; FUN_00462d24(param_1 + 0x35); (**(code **)(*param_2 + 0x1c))(param_2,param_1 + 0x34,4); return param_1; } /* @004648d8 file=? name=FUN_004648d8 */ void __cdecl FUN_004648d8(int *param_1,byte param_2) { if (param_1 != (int *)0x0) { *param_1 = (int)&PTR_FUN_004f3940; FUN_00462d60(param_1 + 0x35,2); FUN_00463670(param_1,0); if ((param_2 & 1) != 0) { FUN_004022d0(param_1); } } return; } /* @00464918 file=munga_l4/l4audio.cpp name=FUN_00464918 */ void __cdecl FUN_00464918(int *param_1,int param_2) { int iVar1; char *pcVar2; undefined4 local_c; int local_8; FUN_00463648(param_1,param_2); iVar1 = FUN_00403ad0(param_2,s_use_internal_004f3752); if (iVar1 == 0) { local_c = 1; (**(code **)(*param_1 + 0x20))(param_1,&local_c,4); } else { pcVar2 = (char *)FUN_00403ad0(param_2,s_use_internal_004f375f); if (pcVar2 == (char *)0x0) { FUN_004dbb24(&DAT_00524e20,s_DYN_MEM_STRM_WRITE_ENTRY____name_004f376c,(char *)0x0); FUN_004dbb24(&DAT_00524e20,s_use_internal_004f3791,(char *)0x0); FUN_004dbb24(&DAT_00524e20,&DAT_004f379e,(char *)0x0); FUN_0040385c(s_DYN_MEM_STRM_WRITE_ENTRY____name_004f37a0, s_d__tesla_bt_munga_l4_L4AUDIO_CPP_004f37e0,0x6a2); } FUN_00407ae0(pcVar2,&local_8); (**(code **)(*param_1 + 0x20))(param_1,&local_8,4); } return; } /* @004649f4 file=? name=FUN_004649f4 */ undefined4 __cdecl FUN_004649f4(int param_1) { FUN_0046369c(param_1); return 1; } /* @00464a14 file=? name=FUN_00464a14 */ void __cdecl FUN_00464a14(int param_1,undefined4 *param_2) { FUN_00408440((undefined4 *)(param_1 + 0xc4),param_2); return; } /* @00464a34 file=? name=FUN_00464a34 */ /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ void __cdecl FUN_00464a34(int *param_1) { int iVar1; int *piVar2; int iVar3; float10 fVar4; float local_c; iVar1 = *(int *)(DAT_004efc94 + 0x44); if (param_1[0x34] == 0) { iVar3 = *(int *)(iVar1 + 0x4c); piVar2 = (int *)param_1[9]; if (piVar2[0x18] <= *(int *)(iVar3 + 4)) { piVar2[0x18] = *(int *)(iVar3 + 4) + piVar2[0x17]; (**(code **)(*piVar2 + 0x1c))(piVar2); } iVar3 = param_1[9]; param_1[0x36] = *(int *)(iVar3 + 0x68); param_1[0x37] = *(int *)(iVar3 + 0x6c); param_1[0x38] = *(int *)(iVar3 + 0x70); param_1[0x39] = *(int *)(iVar3 + 0x74); param_1[0x3a] = *(int *)(iVar3 + 0x78); param_1[0x3b] = *(int *)(iVar3 + 0x7c); param_1[0x3c] = *(int *)(iVar3 + 0x80); param_1[0x3d] = *(int *)(iVar3 + 0x84); param_1[0x3e] = *(int *)(iVar3 + 0x88); param_1[0x35] = *(int *)(iVar3 + 100); } else { fVar4 = FUN_004dcd00((double)(float)param_1[0x31]); if (((float10)_DAT_00464bf8 < fVar4) || (fVar4 = FUN_004dcd00((double)(float)param_1[0x33]), (float10)_DAT_00464bf8 < fVar4)) { fVar4 = FUN_004dc8ec((double)(float)param_1[0x31],SUB84((double)(float)param_1[0x33],0), (uint)((ulonglong)(double)(float)param_1[0x33] >> 0x20)); local_c = (float)fVar4; } else { local_c = 0.0; } FUN_00462d88((float *)(param_1 + 0x35),local_c); } param_1[0x2d] = 0; param_1[0x2e] = 0; param_1[0x2f] = 0; param_1[0x30] = 0; iVar3 = param_1[0x3e]; if (iVar3 == 0) { param_1[0x2d] = 1; } else if (iVar3 == 1) { param_1[0x2d] = 1; param_1[0x2f] = 1; } else if (iVar3 == 2) { param_1[0x2f] = 1; } else if (iVar3 == 3) { param_1[0x2e] = 1; param_1[0x30] = 1; } FUN_0046797c(iVar1,param_1); return; } /* @004651ac file=? name=FUN_004651ac */ void __cdecl FUN_004651ac(int *param_1,int param_2) { int iVar1; int iVar2; int iVar3; undefined4 uVar4; float10 fVar5; byte local_602 [255]; byte local_503; char local_502; byte local_501 [251]; byte local_406; char local_405; char local_404; char local_403; byte local_402 [255]; byte local_303; char local_302; byte local_301 [251]; byte local_206; char local_205; byte local_204 [255]; byte local_105; char local_104; char local_103; char local_102; byte local_101 [207]; byte local_32; char local_31; int local_30; int local_2c; int local_28; int local_24; float local_20; float local_1c; float local_18; int local_14; int local_10; int local_c; int local_8; iVar2 = param_1[10]; local_8 = param_1[0x29]; local_c = param_1[0x2a]; local_10 = param_1[0x2b]; local_14 = param_1[0x2c]; fVar5 = (float10)(**(code **)(*param_1 + 0x1c))(param_1); local_18 = (float)fVar5; fVar5 = (float10)(**(code **)(*param_1 + 0x20))(param_1); local_1c = (float)fVar5; iVar1 = FUN_004dcd94(); if (iVar1 < -0x1fff) { iVar1 = -0x1fff; } else if (0x1fff < iVar1) { iVar1 = 0x1fff; } fVar5 = (float10)(**(code **)(*param_1 + 0x24))(param_1); local_20 = (float)fVar5; FUN_00465ccc(iVar2); iVar2 = FUN_004dcd94(); iVar3 = iVar1 - param_1[0x40]; if (iVar3 < 1) { iVar3 = -iVar3; } if ((1 < iVar3) || (param_2 != 0)) { param_1[0x40] = iVar1; iVar3 = param_1[0x3e]; if (iVar3 == 0) { FUN_00462808(*(int *)(local_8 + 0x18),*(byte *)(local_8 + 0x10),iVar1); } else if (iVar3 == 1) { FUN_00462808(*(int *)(local_8 + 0x18),*(byte *)(local_8 + 0x10),iVar1); FUN_00462808(*(int *)(local_10 + 0x18),*(byte *)(local_10 + 0x10),iVar1); } else if (iVar3 == 2) { FUN_00462808(*(int *)(local_10 + 0x18),*(byte *)(local_10 + 0x10),iVar1); } else if (iVar3 == 3) { FUN_00462808(*(int *)(local_c + 0x18),*(byte *)(local_c + 0x10),iVar1); FUN_00462808(*(int *)(local_14 + 0x18),*(byte *)(local_14 + 0x10),iVar1); } } if (param_1[0x22] != 0) { iVar1 = iVar2 - param_1[0x41]; if (iVar1 < 1) { iVar1 = -iVar1; } if (1 < iVar1) { param_1[0x41] = iVar2; iVar1 = param_1[0x3e]; if (iVar1 == 0) { FUN_004628d8(*(int *)(local_8 + 0x18),*(byte *)(local_8 + 0x10),0x15,iVar2); } else if (iVar1 == 1) { FUN_004628d8(*(int *)(local_8 + 0x18),*(byte *)(local_8 + 0x10),0x15,iVar2); local_24 = iVar2; FUN_004628d8(*(int *)(local_10 + 0x18),*(byte *)(local_10 + 0x10),0x15,iVar2); } else if (iVar1 == 2) { local_28 = iVar2; FUN_004628d8(*(int *)(local_10 + 0x18),*(byte *)(local_10 + 0x10),0x15,iVar2); } else if (iVar1 == 3) { local_2c = iVar2; FUN_004628d8(*(int *)(local_c + 0x18),*(byte *)(local_c + 0x10),0x15,iVar2); local_30 = iVar2; FUN_004628d8(*(int *)(local_14 + 0x18),*(byte *)(local_14 + 0x10),0x15,iVar2); } } } iVar2 = param_1[0x3e]; if (iVar2 == 0) { uVar4 = FUN_004dcd94(); local_101[2] = (byte)uVar4; if (local_101[2] != (char)param_1[0x3f]) { *(byte *)(param_1 + 0x3f) = local_101[2]; local_32 = *(byte *)(local_8 + 0x10); local_101[0] = local_32 | 0xb0; local_101[1] = 7; local_31 = local_101[2]; FUN_00486402(*(int *)(*(int *)(local_8 + 0x18) + 0x4c),local_101,3); } } else if (iVar2 == 1) { uVar4 = FUN_004dcd94(); local_102 = (char)uVar4; uVar4 = FUN_004dcd94(); local_103 = (char)uVar4; if (local_102 != (char)param_1[0x3f]) { *(char *)(param_1 + 0x3f) = local_102; local_104 = local_102; local_105 = *(byte *)(local_8 + 0x10); local_204[0] = local_105 | 0xb0; local_204[1] = 7; local_204[2] = local_102; FUN_00486402(*(int *)(*(int *)(local_8 + 0x18) + 0x4c),local_204,3); } if (local_103 != *(char *)((int)param_1 + 0xfe)) { *(char *)((int)param_1 + 0xfe) = local_103; local_205 = local_103; local_206 = *(byte *)(local_10 + 0x10); local_301[0] = local_206 | 0xb0; local_301[1] = 7; local_301[2] = local_103; FUN_00486402(*(int *)(*(int *)(local_10 + 0x18) + 0x4c),local_301,3); } } else if (iVar2 == 2) { uVar4 = FUN_004dcd94(); local_402[2] = (byte)uVar4; if (local_402[2] != *(char *)((int)param_1 + 0xfe)) { *(byte *)((int)param_1 + 0xfe) = local_402[2]; local_303 = *(byte *)(local_10 + 0x10); local_402[0] = local_303 | 0xb0; local_402[1] = 7; local_302 = local_402[2]; FUN_00486402(*(int *)(*(int *)(local_10 + 0x18) + 0x4c),local_402,3); } } else if (iVar2 == 3) { uVar4 = FUN_004dcd94(); local_403 = (char)uVar4; uVar4 = FUN_004dcd94(); local_404 = (char)uVar4; if (local_403 != *(char *)((int)param_1 + 0xfd)) { *(char *)((int)param_1 + 0xfd) = local_403; local_405 = local_403; local_406 = *(byte *)(local_c + 0x10); local_501[0] = local_406 | 0xb0; local_501[1] = 7; local_501[2] = local_403; FUN_00486402(*(int *)(*(int *)(local_c + 0x18) + 0x4c),local_501,3); } if (local_404 != *(char *)((int)param_1 + 0xff)) { *(char *)((int)param_1 + 0xff) = local_404; local_502 = local_404; local_503 = *(byte *)(local_14 + 0x10); local_602[0] = local_503 | 0xb0; local_602[1] = 7; local_602[2] = local_404; FUN_00486402(*(int *)(*(int *)(local_14 + 0x18) + 0x4c),local_602,3); } } return; } /* @004657c9 file=? name=FUN_004657c9 */ undefined4 * __cdecl FUN_004657c9(undefined4 *param_1,int param_2) { FUN_004188dc(param_1,param_2); *param_1 = &PTR_FUN_004f38e4; return param_1; } /* @004657e8 file=? name=FUN_004657e8 */ undefined4 * __cdecl FUN_004657e8(undefined4 *param_1,int param_2) { FUN_004188dc(param_1,param_2); *param_1 = &PTR_FUN_004f38e4; return param_1; } /* @00465807 file=? name=FUN_00465807 */ undefined4 * __cdecl FUN_00465807(undefined4 *param_1,int param_2) { FUN_00418904(param_1,param_2); *param_1 = &PTR_FUN_004f38e4; return param_1; } /* @00465826 file=? name=FUN_00465826 */ void __cdecl FUN_00465826(int *param_1,byte param_2) { if (param_1 != (int *)0x0) { *param_1 = (int)&PTR_FUN_004f38e4; FUN_00418930(param_1,0); if ((param_2 & 1) != 0) { FUN_004022d0(param_1); } } return; } /* @00465852 file=? name=FUN_00465852 */ undefined4 * __cdecl FUN_00465852(undefined4 *param_1,int param_2) { FUN_00417d00(param_1,param_2); *param_1 = &PTR_FUN_004f3894; return param_1; } /* @00465871 file=? name=FUN_00465871 */ undefined4 * __cdecl FUN_00465871(undefined4 *param_1,int param_2) { FUN_00417d00(param_1,param_2); *param_1 = &PTR_FUN_004f3894; return param_1; } /* @00465890 file=? name=FUN_00465890 */ undefined4 * __cdecl FUN_00465890(undefined4 *param_1,int param_2) { FUN_00417d28(param_1,param_2); *param_1 = &PTR_FUN_004f3894; return param_1; } /* @004658af file=? name=FUN_004658af */ void __cdecl FUN_004658af(int *param_1,byte param_2) { if (param_1 != (int *)0x0) { *param_1 = (int)&PTR_FUN_004f3894; FUN_00417d54(param_1,0); if ((param_2 & 1) != 0) { FUN_004022d0(param_1); } } return; } /* @004658db file=? name=FUN_004658db */ undefined4 * __cdecl FUN_004658db(undefined4 *param_1,int param_2) { FUN_004188dc(param_1,param_2); *param_1 = &PTR_FUN_004f3838; return param_1; } /* @004658fa file=? name=FUN_004658fa */ undefined4 * __cdecl FUN_004658fa(undefined4 *param_1,int param_2) { FUN_004188dc(param_1,param_2); *param_1 = &PTR_FUN_004f3838; return param_1; } /* @00465919 file=? name=FUN_00465919 */ undefined4 * __cdecl FUN_00465919(undefined4 *param_1,int param_2) { FUN_00418904(param_1,param_2); *param_1 = &PTR_FUN_004f3838; return param_1; } /* @00465938 file=? name=FUN_00465938 */ void __cdecl FUN_00465938(int *param_1,byte param_2) { if (param_1 != (int *)0x0) { *param_1 = (int)&PTR_FUN_004f3838; FUN_00418930(param_1,0); if ((param_2 & 1) != 0) { FUN_004022d0(param_1); } } return; } /* @00465964 file=? name=FUN_00465964 */ undefined4 * __cdecl FUN_00465964(undefined4 *param_1,int *param_2) { FUN_0043744c(param_1,param_2); *param_1 = &PTR_FUN_004f3d04; (**(code **)(*param_2 + 0x1c))(param_2,param_1 + 6,1); (**(code **)(*param_2 + 0x1c))(param_2,(int)param_1 + 0x19,1); (**(code **)(*param_2 + 0x1c))(param_2,param_1 + 7,4); return param_1; } /* @004659b8 file=munga_l4/l4audlvl.cpp name=FUN_004659b8 */ void __cdecl FUN_004659b8(int *param_1,int param_2) { char *pcVar1; int local_c; undefined1 local_6; undefined1 local_5; FUN_004374c4(param_1,param_2); pcVar1 = (char *)FUN_00403ad0(param_2,s_bank_ID_004f3ae0); if (pcVar1 == (char *)0x0) { FUN_004dbb24(&DAT_00524e20,s_DYN_MEM_STRM_WRITE_ENTRY____name_004f3ae8,(char *)0x0); FUN_004dbb24(&DAT_00524e20,s_bank_ID_004f3b0d,(char *)0x0); FUN_004dbb24(&DAT_00524e20,&DAT_004f3b15,(char *)0x0); FUN_0040385c(s_DYN_MEM_STRM_WRITE_ENTRY____name_004f3b17, s_d__tesla_bt_munga_l4_L4AUDLVL_CP_004f3b57,0x57); } FUN_00407ab8(pcVar1,&local_5); (**(code **)(*param_1 + 0x20))(param_1,&local_5,1); pcVar1 = (char *)FUN_00403ad0(param_2,s_patch_ID_004f3b79); if (pcVar1 == (char *)0x0) { FUN_004dbb24(&DAT_00524e20,s_DYN_MEM_STRM_WRITE_ENTRY____name_004f3b82,(char *)0x0); FUN_004dbb24(&DAT_00524e20,s_patch_ID_004f3ba7,(char *)0x0); FUN_004dbb24(&DAT_00524e20,&DAT_004f3bb0,(char *)0x0); FUN_0040385c(s_DYN_MEM_STRM_WRITE_ENTRY____name_004f3bb2, s_d__tesla_bt_munga_l4_L4AUDLVL_CP_004f3bf2,0x58); } FUN_00407ab8(pcVar1,&local_6); (**(code **)(*param_1 + 0x20))(param_1,&local_6,1); pcVar1 = (char *)FUN_00403ad0(param_2,s_max_filter_cutoff_004f3c14); if (pcVar1 == (char *)0x0) { FUN_004dbb24(&DAT_00524e20,s_DYN_MEM_STRM_WRITE_ENTRY____name_004f3c26,(char *)0x0); FUN_004dbb24(&DAT_00524e20,s_max_filter_cutoff_004f3c4b,(char *)0x0); FUN_004dbb24(&DAT_00524e20,&DAT_004f3c5d,(char *)0x0); FUN_0040385c(s_DYN_MEM_STRM_WRITE_ENTRY____name_004f3c5f, s_d__tesla_bt_munga_l4_L4AUDLVL_CP_004f3c9f,0x59); } FUN_00407ae0(pcVar1,&local_c); (**(code **)(*param_1 + 0x20))(param_1,&local_c,4); return; } /* @00465b68 file=? name=FUN_00465b68 */ void __cdecl FUN_00465b68(int *param_1,byte param_2) { if (param_1 != (int *)0x0) { *param_1 = (int)&PTR_FUN_004f3d04; FUN_00437678(param_1,0); if ((param_2 & 1) != 0) { FUN_004022d0(param_1); } } return; } /* @00465b94 file=? name=FUN_00465b94 */ undefined4 FUN_00465b94(void) { FUN_004376a4(); return 1; } /* @00465ba8 file=? name=FUN_00465ba8 */ void __cdecl FUN_00465ba8(int param_1,int param_2) { byte local_d [4]; undefined1 local_9; undefined1 local_8; byte local_7 [3]; local_7[2] = *(undefined1 *)(param_1 + 0x18); local_7[0] = *(byte *)(param_2 + 0x10) | 0xb0; local_7[1] = 0; FUN_00486402(*(int *)(*(int *)(param_2 + 0x18) + 0x4c),local_7,3); local_9 = *(undefined1 *)(param_1 + 0x19); local_d[3] = *(byte *)(param_2 + 0x10) | 0xc0; local_8 = 0; FUN_00486402(*(int *)(*(int *)(param_2 + 0x18) + 0x4c),local_d + 3,2); local_d[0] = *(byte *)(param_2 + 0x10) | 0xb0; local_d[1] = 0x79; local_d[2] = 0x7f; FUN_00486402(*(int *)(*(int *)(param_2 + 0x18) + 0x4c),local_d,3); return; } /* @00465c34 file=? name=FUN_00465c34 */ undefined4 * __cdecl FUN_00465c34(undefined4 *param_1,int *param_2) { FUN_004376b8(param_1,param_2); *param_1 = &PTR_FUN_004f3cf8; return param_1; } /* @00465c54 file=? name=FUN_00465c54 */ void __cdecl FUN_00465c54(int *param_1,int param_2) { FUN_00437774(param_1,param_2); return; } /* @00465c74 file=? name=FUN_00465c74 */ void __cdecl FUN_00465c74(int *param_1,byte param_2) { if (param_1 != (int *)0x0) { *param_1 = (int)&PTR_FUN_004f3cf8; FUN_00437968(param_1,0); if ((param_2 & 1) != 0) { FUN_004022d0(param_1); } } return; } /* @00465ca0 file=? name=FUN_00465ca0 */ undefined4 FUN_00465ca0(void) { FUN_004379a4(); return 1; } /* @00465cb4 file=? name=FUN_00465cb4 */ void __cdecl FUN_00465cb4(int param_1,int param_2) { FUN_00465ba8(*(int *)(param_1 + 0xc),param_2); return; } /* @00465ccc file=? name=FUN_00465ccc */ undefined4 __cdecl FUN_00465ccc(int param_1) { return *(undefined4 *)(*(int *)(param_1 + 0xc) + 0x1c); } /* @00465d08 file=? name=FUN_00465d08 */ int * __cdecl FUN_00465d08(int *param_1,int *param_2,int param_3) { int *piVar1; undefined4 *puVar2; int iVar3; int *local_8; FUN_0043e738(param_1,param_2,param_3); *param_1 = (int)&PTR_LAB_004f3fd4; puVar2 = (undefined4 *)FUN_00402298(0x10); if (puVar2 == (undefined4 *)0x0) { local_8 = (int *)0x0; } else { local_8 = (int *)FUN_004023f4(puVar2); } local_8[3] = local_8[3] + 1; FUN_00402aec(param_2,(int *)&local_8); iVar3 = FUN_0041bfc0(param_3,(char *)local_8[2]); param_1[0x20] = iVar3; (**(code **)(*param_2 + 0x1c))(param_2,param_1 + 0x21,4); (**(code **)(*param_2 + 0x1c))(param_2,param_1 + 0x22,4); (**(code **)(*param_2 + 0x1c))(param_2,param_1 + 0x23,4); FUN_00441ef5(param_1); piVar1 = local_8 + 3; *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_004024d8(local_8,3); } return param_1; } /* @00465dd0 file=munga_l4/l4audwtr.cpp name=FUN_00465dd0 */ void __cdecl FUN_00465dd0(int *param_1,int param_2) { int *piVar1; undefined4 *puVar2; char *pcVar3; float local_14; int local_10; int local_c; int *local_8; FUN_00441d17(param_1,param_2); puVar2 = (undefined4 *)FUN_00402298(0x10); if (puVar2 == (undefined4 *)0x0) { local_8 = (int *)0x0; } else { local_8 = (int *)FUN_004023f4(puVar2); } local_8[3] = local_8[3] + 1; pcVar3 = (char *)FUN_00403ad0(param_2,s_normal_attribute_004f3d08); if (pcVar3 == (char *)0x0) { FUN_004dbb24(&DAT_00524e20,s_DYN_MEM_STRM_WRITE_ENTRY____name_004f3d19,(char *)0x0); FUN_004dbb24(&DAT_00524e20,s_normal_attribute_004f3d3e,(char *)0x0); FUN_004dbb24(&DAT_00524e20,&DAT_004f3d4f,(char *)0x0); FUN_0040385c(s_DYN_MEM_STRM_WRITE_ENTRY____name_004f3d51, s_d__tesla_bt_munga_l4_L4AUDWTR_CP_004f3d91,0x75); } FUN_00402b3c(pcVar3,(int *)&local_8); FUN_004029b0(param_1,(int)local_8); piVar1 = local_8 + 3; *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_004024d8(local_8,3); } pcVar3 = (char *)FUN_00403ad0(param_2,s_trigger_state_004f3db3); if (pcVar3 == (char *)0x0) { FUN_004dbb24(&DAT_00524e20,s_DYN_MEM_STRM_WRITE_ENTRY____name_004f3dc1,(char *)0x0); FUN_004dbb24(&DAT_00524e20,s_trigger_state_004f3de6,(char *)0x0); FUN_004dbb24(&DAT_00524e20,&DAT_004f3df4,(char *)0x0); FUN_0040385c(s_DYN_MEM_STRM_WRITE_ENTRY____name_004f3df6, s_d__tesla_bt_munga_l4_L4AUDWTR_CP_004f3e36,0x7a); } FUN_00407ae0(pcVar3,&local_c); (**(code **)(*param_1 + 0x20))(param_1,&local_c,4); pcVar3 = (char *)FUN_00403ad0(param_2,s_control_ID_004f3e58); if (pcVar3 == (char *)0x0) { FUN_004dbb24(&DAT_00524e20,s_DYN_MEM_STRM_WRITE_ENTRY____name_004f3e63,(char *)0x0); FUN_004dbb24(&DAT_00524e20,s_control_ID_004f3e88,(char *)0x0); FUN_004dbb24(&DAT_00524e20,&DAT_004f3e93,(char *)0x0); FUN_0040385c(s_DYN_MEM_STRM_WRITE_ENTRY____name_004f3e95, s_d__tesla_bt_munga_l4_L4AUDWTR_CP_004f3ed5,0x7b); } FUN_00407ae0(pcVar3,&local_10); (**(code **)(*param_1 + 0x20))(param_1,&local_10,4); pcVar3 = (char *)FUN_00403ad0(param_2,s_control_value_004f3ef7); if (pcVar3 == (char *)0x0) { FUN_004dbb24(&DAT_00524e20,s_DYN_MEM_STRM_WRITE_ENTRY____name_004f3f05,(char *)0x0); FUN_004dbb24(&DAT_00524e20,s_control_value_004f3f2a,(char *)0x0); FUN_004dbb24(&DAT_00524e20,&DAT_004f3f38,(char *)0x0); FUN_0040385c(s_DYN_MEM_STRM_WRITE_ENTRY____name_004f3f3a, s_d__tesla_bt_munga_l4_L4AUDWTR_CP_004f3f7a,0x7c); } FUN_00407b78(pcVar3,&local_14); (**(code **)(*param_1 + 0x20))(param_1,&local_14,4); return; } /* @00466034 file=? name=FUN_00466034 */ undefined4 __cdecl FUN_00466034(int param_1) { FUN_00441d86(param_1); return 1; } /* @00466048 file=? name=FUN_00466048 */ void __cdecl FUN_00466048(int param_1,undefined4 param_2,int param_3) { int *piVar1; float local_10 [3]; if (param_3 == *(int *)(param_1 + 0x84)) { piVar1 = (int *)FUN_00417ab4(param_1 + 0x74); local_10[0] = 0.0; local_10[1] = 0.0; local_10[2] = 0.0; FUN_00408644(local_10,local_10,*(float **)(param_1 + 0x80)); FUN_00464a14((int)piVar1,local_10); (**(code **)(*piVar1 + 0x18)) (piVar1,*(undefined4 *)(param_1 + 0x88),*(undefined4 *)(param_1 + 0x8c)); } return; } /* @004660c0 file=? name=FUN_004660c0 */ void __cdecl FUN_004660c0(int param_1) { float local_10 [3]; local_10[0] = 0.0; local_10[1] = 0.0; local_10[2] = 0.0; FUN_00408644(local_10,local_10,*(float **)(param_1 + 0x80)); return; } /* @004660f4 file=? name=FUN_004660f4 */ undefined4 * __cdecl FUN_004660f4(undefined4 *param_1,int param_2,undefined4 param_3) { FUN_00416fdc(param_1,param_2); *param_1 = &PTR_FUN_004f4150; param_1[10] = param_3; return param_1; } /* @0046611c file=? name=FUN_0046611c */ undefined4 * __cdecl FUN_0046611c(undefined4 *param_1) { FUN_00416f88(param_1); *param_1 = &PTR_FUN_004f4150; param_1[10] = 0; return param_1; } /* @0046613c file=? name=FUN_0046613c */ void __cdecl FUN_0046613c(int *param_1,byte param_2) { if (param_1 != (int *)0x0) { *param_1 = (int)&PTR_FUN_004f4150; FUN_00417008(param_1,0); if ((param_2 & 1) != 0) { FUN_004022d0(param_1); } } return; } /* @00466168 file=? name=FUN_00466168 */ undefined8 __cdecl FUN_00466168(int param_1) { undefined8 uVar1; uVar1 = FUN_00417034(param_1); return CONCAT44((int)((ulonglong)uVar1 >> 0x20),1); } /* @00466184 file=? name=FUN_00466184 */ int * __cdecl FUN_00466184(int *param_1,int param_2) { undefined4 *puVar1; int *piVar2; if (param_2 < 0x43) { if (param_2 == 0x42) { piVar2 = (int *)FUN_00402298(0x4c); if (piVar2 != (int *)0x0) { piVar2 = FUN_0043e6b4(piVar2,param_1,param_1[10]); return piVar2; } return (int *)0x0; } switch(param_2) { case 0x1c: piVar2 = (int *)FUN_00402298(0x98); if (piVar2 != (int *)0x0) { piVar2 = FUN_0043e7d4(piVar2,param_1,param_1[10]); return piVar2; } return (int *)0x0; case 0x1d: piVar2 = (int *)FUN_00402298(100); if (piVar2 != (int *)0x0) { piVar2 = FUN_0043e004(piVar2,param_1,param_1[10]); return piVar2; } return (int *)0x0; case 0x27: piVar2 = (int *)FUN_00402298(0x68); if (piVar2 != (int *)0x0) { piVar2 = FUN_0043dd24(piVar2,param_1,param_1[10]); return piVar2; } return (int *)0x0; case 0x2b: puVar1 = (undefined4 *)FUN_00402298(0x4c); if (puVar1 != (undefined4 *)0x0) { piVar2 = FUN_004392d8(puVar1,param_1,param_1[10]); return piVar2; } return (int *)0x0; case 0x2c: piVar2 = (int *)FUN_00402298(0x4c); if (piVar2 != (int *)0x0) { piVar2 = FUN_0043e2e4(piVar2,param_1,param_1[10]); return piVar2; } return (int *)0x0; case 0x2d: puVar1 = (undefined4 *)FUN_00402298(0x40); if (puVar1 != (undefined4 *)0x0) { piVar2 = FUN_00439a54(puVar1,param_1,param_1[10]); return piVar2; } return (int *)0x0; case 0x2e: puVar1 = (undefined4 *)FUN_00402298(0x4c); if (puVar1 != (undefined4 *)0x0) { piVar2 = FUN_0043968c(puVar1,param_1,param_1[10]); return piVar2; } return (int *)0x0; case 0x2f: puVar1 = (undefined4 *)FUN_00402298(0x44); if (puVar1 != (undefined4 *)0x0) { piVar2 = FUN_00439da4(puVar1,param_1,param_1[10]); return piVar2; } return (int *)0x0; case 0x34: puVar1 = (undefined4 *)FUN_00402298(0x24); if (puVar1 != (undefined4 *)0x0) { piVar2 = FUN_00437a20(puVar1,param_1); return piVar2; } return (int *)0x0; case 0x35: piVar2 = (int *)FUN_00402298(0x48); if (piVar2 != (int *)0x0) { piVar2 = FUN_0043e44c(piVar2,param_1,param_1[10]); return piVar2; } return (int *)0x0; case 0x36: puVar1 = (undefined4 *)FUN_00402298(0x24); if (puVar1 != (undefined4 *)0x0) { piVar2 = FUN_00438df4(puVar1,param_1,param_1[10]); return piVar2; } return (int *)0x0; case 0x3a: puVar1 = (undefined4 *)FUN_00402298(0x48); if (puVar1 != (undefined4 *)0x0) { piVar2 = FUN_0043a248(puVar1,param_1,param_1[10]); return piVar2; } return (int *)0x0; case 0x3b: piVar2 = (int *)FUN_00402298(0x4c); if (piVar2 != (int *)0x0) { piVar2 = FUN_0043e350(piVar2,param_1,param_1[10]); return piVar2; } return (int *)0x0; case 0x3c: piVar2 = (int *)FUN_00402298(0x3c); if (piVar2 != (int *)0x0) { piVar2 = FUN_0043e534(piVar2,param_1,param_1[10]); return piVar2; } return (int *)0x0; case 0x3d: piVar2 = (int *)FUN_00402298(0x4c); if (piVar2 != (int *)0x0) { piVar2 = FUN_0043e630(piVar2,param_1,param_1[10]); return piVar2; } return (int *)0x0; case 0x3e: piVar2 = (int *)FUN_00402298(0x3c); if (piVar2 != (int *)0x0) { piVar2 = FUN_0043e4b0(piVar2,param_1,param_1[10]); return piVar2; } return (int *)0x0; } } else if (param_2 < 0x5b) { if (param_2 == 0x5a) { puVar1 = (undefined4 *)FUN_00402298(0x3c); if (puVar1 != (undefined4 *)0x0) { piVar2 = FUN_00438d60(puVar1,param_1,param_1[10]); return piVar2; } return (int *)0x0; } switch(param_2) { case 0x49: puVar1 = (undefined4 *)FUN_00402298(0x1c); if (puVar1 != (undefined4 *)0x0) { piVar2 = FUN_0043db88(puVar1,param_1,param_1[10]); return piVar2; } return (int *)0x0; case 0x4b: puVar1 = (undefined4 *)FUN_00402298(0x5c); if (puVar1 != (undefined4 *)0x0) { piVar2 = FUN_0043ccec(puVar1,param_1,param_1[10]); return piVar2; } return (int *)0x0; case 0x4c: puVar1 = (undefined4 *)FUN_00402298(0x38); if (puVar1 != (undefined4 *)0x0) { piVar2 = FUN_00438ff4(puVar1,param_1,param_1[10]); return piVar2; } return (int *)0x0; case 0x4f: puVar1 = (undefined4 *)FUN_00402298(0x4c); if (puVar1 != (undefined4 *)0x0) { piVar2 = FUN_0043a68c(puVar1,param_1,param_1[10]); return piVar2; } return (int *)0x0; case 0x50: piVar2 = (int *)FUN_00402298(0x40); if (piVar2 != (int *)0x0) { piVar2 = FUN_0043e5b8(piVar2,param_1,param_1[10]); return piVar2; } return (int *)0x0; case 0x51: piVar2 = (int *)FUN_00402298(0x40); if (piVar2 != (int *)0x0) { piVar2 = FUN_0043e3d4(piVar2,param_1,param_1[10]); return piVar2; } return (int *)0x0; case 0x59: puVar1 = (undefined4 *)FUN_00402298(0x3c); if (puVar1 != (undefined4 *)0x0) { piVar2 = FUN_00438808(puVar1,param_1,param_1[10]); return piVar2; } return (int *)0x0; } } else { switch(param_2) { case 1000: puVar1 = (undefined4 *)FUN_00402298(0xb0); if (puVar1 == (undefined4 *)0x0) { return (int *)0x0; } piVar2 = FUN_00463148(puVar1,param_1,param_1[10]); return piVar2; case 0x3e9: puVar1 = (undefined4 *)FUN_00402298(0xd8); if (puVar1 == (undefined4 *)0x0) { return (int *)0x0; } piVar2 = FUN_00463710(puVar1,param_1,param_1[10]); return piVar2; case 0x3ea: puVar1 = (undefined4 *)FUN_00402298(0xdc); if (puVar1 == (undefined4 *)0x0) { return (int *)0x0; } piVar2 = FUN_00463d4c(puVar1,param_1,param_1[10]); return piVar2; case 0x3ec: puVar1 = (undefined4 *)FUN_00402298(0x28); if (puVar1 == (undefined4 *)0x0) { return (int *)0x0; } piVar2 = FUN_00465c34(puVar1,param_1); return piVar2; case 0x3ed: puVar1 = (undefined4 *)FUN_00402298(0x108); if (puVar1 == (undefined4 *)0x0) { return (int *)0x0; } piVar2 = FUN_0046487c(puVar1,param_1,param_1[10]); return piVar2; case 0x3ee: piVar2 = (int *)FUN_00402298(0x90); if (piVar2 == (int *)0x0) { return (int *)0x0; } piVar2 = FUN_00465d08(piVar2,param_1,param_1[10]); return piVar2; case 0x3f3: puVar1 = (undefined4 *)FUN_00402298(0x20); if (puVar1 == (undefined4 *)0x0) { return (int *)0x0; } piVar2 = FUN_00465964(puVar1,param_1); return piVar2; } } piVar2 = (int *)FUN_0041639c(); return piVar2; } /* @00466804 file=? name=FUN_00466804 */ void __cdecl FUN_00466804(int param_1,int param_2) { int iVar1; iVar1 = *(int *)(param_2 + 4); if (((iVar1 != 0x34) && (iVar1 != 0x3ec)) && (iVar1 != 0x3f3)) { FUN_004170b0(param_1,param_2); return; } FUN_004170cc(param_1,param_2); return; } /* @00466844 file=? name=FUN_00466844 */ void __cdecl FUN_00466844(int *param_1,int param_2,int param_3) { if (param_3 < 0x43) { if (param_3 == 0x42) { FUN_0043e70c(param_1,param_2); return; } switch(param_3) { case 0x1c: FUN_0043e8a4(param_1,param_2); return; case 0x1d: FUN_0043e080(param_1,param_2); return; case 0x27: FUN_0043dda0(param_1,param_2); return; case 0x2b: FUN_00439370(param_1,param_2); return; case 0x2c: FUN_0043f97c(param_1,param_2); return; case 0x2d: FUN_00439b00(param_1,param_2); return; case 0x2e: FUN_00439724(param_1,param_2); return; case 0x2f: FUN_00439e60(param_1,param_2); return; case 0x34: FUN_00437a98(param_1,param_2); return; case 0x35: FUN_00440b8d(param_1,param_2); return; case 0x36: FUN_00438e70(param_1,param_2); return; case 0x3a: FUN_0043a324(param_1,param_2); return; case 0x3b: FUN_0043e3a8(param_1,param_2); return; case 0x3c: FUN_0043e58c(param_1,param_2); return; case 0x3d: FUN_0043e688(param_1,param_2); return; case 0x3e: FUN_0043e508(param_1,param_2); return; } } else if (param_3 < 0x5b) { if (param_3 == 0x5a) { FUN_00438a48(param_1,param_2); return; } switch(param_3) { case 0x49: FUN_0043dc50(param_1,param_2); return; case 0x4b: FUN_0043cef8(param_1,param_2); return; case 0x4c: FUN_004390d0(param_1,param_2); return; case 0x4f: FUN_0043a770(param_1,param_2); return; case 0x50: FUN_0043e610(param_1,param_2); return; case 0x51: FUN_0043e42c(param_1,param_2); return; case 0x59: FUN_00438a48(param_1,param_2); return; } } else { switch(param_3) { case 1000: FUN_0043818c(param_1,param_2); return; case 0x3e9: FUN_00463754(param_1,param_2); return; case 0x3ea: FUN_00463648(param_1,param_2); return; case 0x3ec: FUN_00465c54(param_1,param_2); return; case 0x3ed: FUN_00464918(param_1,param_2); return; case 0x3ee: FUN_00465dd0(param_1,param_2); return; case 0x3f3: FUN_004659b8(param_1,param_2); return; } } FUN_00416db0(); return; } /* @00466bc4 file=? name=FUN_00466bc4 */ void __cdecl FUN_00466bc4(int param_1,int param_2,undefined4 param_3,int *param_4) { if (*(int *)(*param_4 + 4) != 0) { if (((param_2 == 0x34) || (param_2 == 0x3ec)) || (param_2 == 0x3f3)) { FUN_004171f0(param_1,param_3,param_4); return; } FUN_004171b4(param_1,param_3,param_4); } return; } /* @00466c10 file=? name=FUN_00466c10 */ undefined4 * __cdecl FUN_00466c10(undefined4 *param_1) { FUN_004178cc(param_1,2); *param_1 = &PTR_FUN_004f4144; return param_1; } /* @00466c30 file=? name=FUN_00466c30 */ void __cdecl FUN_00466c30(int *param_1,byte param_2) { if (param_1 != (int *)0x0) { *param_1 = (int)&PTR_FUN_004f4144; FUN_0041790c(param_1,0); if ((param_2 & 1) != 0) { FUN_004022d0(param_1); } } return; } /* @00466c5c file=? name=FUN_00466c5c */ undefined4 FUN_00466c5c(void) { FUN_00415f1c(); return 1; } /* @00466c70 file=? name=FUN_00466c70 */ void __cdecl FUN_00466c70(undefined4 param_1,int param_2,int param_3) { undefined4 *puVar1; int iVar2; bool bVar3; int *piVar4; undefined3 extraout_var; int iVar5; int local_30 [11]; piVar4 = FUN_00404720(param_2,s_AudioResources_004f3ff8,(char *)0x0); for (puVar1 = (undefined4 *)piVar4[1]; puVar1 != (undefined4 *)0x0; puVar1 = (undefined4 *)*puVar1 ) { bVar3 = FUN_00403c20((int)puVar1,s_front_audio_resource_004f4007); if (CONCAT31(extraout_var,bVar3) == 0) { FUN_004627d8(param_3 + 0x80,(LPCSTR)puVar1[1]); } else { FUN_004627d8(param_3 + 0xc,(LPCSTR)puVar1[1]); } } if (piVar4 != (int *)0x0) { (**(code **)*piVar4)(piVar4,3); } iVar5 = FUN_00406ff8(*(int *)(DAT_004efc94 + 0x68),s_StaticAudioStream_004f401c,0xb,-1); iVar2 = *(int *)(iVar5 + 4); *(int *)(iVar5 + 4) = *(int *)(iVar5 + 4) + 1; if (iVar2 == 0) { FUN_00406cd0(iVar5); } FUN_004660f4(local_30,iVar5,0); (**(code **)(local_30[0] + 0x24))(local_30); *(int *)(iVar5 + 4) = *(int *)(iVar5 + 4) + -1; FUN_0046613c(local_30,2); return; } /* @00466d44 file=? name=FUN_00466d44 */ void __cdecl FUN_00466d44(undefined4 param_1,int param_2) { FUN_004627f4(param_2 + 0xc); FUN_004627f4(param_2 + 0x80); return; } /* @00466d68 file=? name=FUN_00466d68 */ undefined4 __cdecl FUN_00466d68(int param_1) { undefined4 *puVar1; undefined4 uVar2; int local_50 [11]; int local_24 [8]; FUN_00403e84(local_24,s_audio_static_scp_004f402e,1); FUN_0046611c(local_50); (**(code **)(local_50[0] + 0x28))(local_50,local_24,param_1); puVar1 = (undefined4 *)FUN_00406f3c(param_1,s_StaticAudioStream_004f403f,0xb,1,0,local_50,-1); uVar2 = *puVar1; FUN_0046613c(local_50,2); FUN_00403ecc(local_24,2); return uVar2; } /* @00466de4 file=? name=FUN_00466de4 */ void __cdecl FUN_00466de4(undefined4 param_1,int param_2,int param_3) { int iVar1; int *piVar2; int iVar3; int local_30 [11]; piVar2 = (int *)FUN_00407064(*(int *)(DAT_004efc94 + 0x68),*(int *)(param_2 + 0x1bc),3); if (piVar2 != (int *)0x0) { iVar3 = 0xc; if (param_3 != 0) { iVar3 = 0xd; } iVar3 = FUN_00407064(*(int *)(DAT_004efc94 + 0x68),*piVar2,iVar3); if (iVar3 != 0) { iVar1 = *(int *)(iVar3 + 4); *(int *)(iVar3 + 4) = *(int *)(iVar3 + 4) + 1; if (iVar1 == 0) { FUN_00406cd0(iVar3); } iVar1 = piVar2[1]; piVar2[1] = piVar2[1] + 1; if (iVar1 == 0) { FUN_00406cd0((int)piVar2); } FUN_004660f4(local_30,iVar3,param_2); (**(code **)(local_30[0] + 0x24))(local_30); *(int *)(iVar3 + 4) = *(int *)(iVar3 + 4) + -1; piVar2[1] = piVar2[1] + -1; FUN_0046613c(local_30,2); } } return; } /* @00466e90 file=? name=FUN_00466e90 */ void __cdecl FUN_00466e90(undefined4 param_1,int param_2) { int *piVar1; int *this; int local_18 [5]; FUN_00421560(local_18,param_2); while( true ) { this = local_18; piVar1 = (int *)(**(code **)(local_18[0] + 0x28))(); if (piVar1 == (int *)0x0) break; (**(code **)(*piVar1 + 0x18))(piVar1,2,0); (**(code **)(*piVar1 + 0x18))(piVar1,0xb,0); } FUN_00417858(this,local_18,1); FUN_00421584(local_18,2); return; } /* @00466ef8 file=munga_l4/l4audres.cpp name=FUN_00466ef8 */ undefined4 __cdecl FUN_00466ef8(int param_1,char *param_2,int param_3) { uint *puVar1; int iVar2; int *piVar3; undefined4 *puVar4; undefined4 uVar5; int iVar6; int local_124 [11]; int local_f8 [8]; uint local_d8 [2]; char *local_d0; int local_c8 [11]; int local_9c [8]; uint local_7c [2]; char *local_74; int local_6c [3]; char *local_60; char *local_5c; uint *local_58; uint *local_54; char *local_50; int *local_4c; uint *local_48; uint *local_44; uint *local_40; char *local_3c; uint *local_38; int *local_34; uint *local_30; uint *local_2c; char *local_28; int *local_24; uint *local_20; uint *local_1c; uint *local_18; char *local_14; uint *local_10; int *local_c; char *local_8; iVar6 = 0; local_8 = (char *)0x0; local_6c[0] = -1; local_6c[1] = 0xffffffff; local_6c[2] = 0xffffffff; iVar2 = FUN_00404088(param_3,s_audio_004f4051,s_external_004f4057,&local_8); if (iVar2 != 0) { local_c = (int *)FUN_00406ff8(param_1,local_8,0xd,-1); if (local_c == (int *)0x0) { local_14 = local_8; local_18 = (uint *)FUN_00402298(0x10); if (local_18 == (uint *)0x0) { local_10 = (uint *)0x0; } else { local_10 = FUN_00402460(local_18,local_14); } local_10[3] = local_10[3] + 1; local_20 = (uint *)FUN_00402298(0x10); if (local_20 == (uint *)0x0) { local_1c = (uint *)0x0; } else { local_1c = FUN_00402460(local_20,s_audio__004f4060); } local_1c[3] = local_1c[3] + 1; FUN_00402624(local_7c,(int)local_1c,(int)local_10); local_28 = local_74; local_30 = (uint *)FUN_00402298(0x10); if (local_30 == (uint *)0x0) { local_2c = (uint *)0x0; } else { local_2c = FUN_00402460(local_30,local_28); } local_2c[3] = local_2c[3] + 1; FUN_004024d8((int *)local_7c,2); FUN_00402a4c((int *)&local_24,(int *)&local_10,(int *)&local_2c); piVar3 = local_24 + 3; *piVar3 = *piVar3 + -1; if (*piVar3 == 0) { FUN_004024d8(local_24,3); } puVar1 = local_2c + 3; *puVar1 = *puVar1 - 1; if (*puVar1 == 0) { FUN_004024d8((int *)local_2c,3); } FUN_00403e84(local_9c,(char *)local_10[2],1); FUN_0046611c(local_c8); (**(code **)(local_c8[0] + 0x28))(local_c8,local_9c,param_1); local_c = (int *)FUN_00406f3c(param_1,local_8,0xd,1,0,local_c8,-1); FUN_0046613c(local_c8,2); FUN_00403ecc(local_9c,2); puVar1 = local_1c + 3; *puVar1 = *puVar1 - 1; if (*puVar1 == 0) { FUN_004024d8((int *)local_1c,3); } puVar1 = local_10 + 3; *puVar1 = *puVar1 - 1; if (*puVar1 == 0) { FUN_004024d8((int *)local_10,3); } } local_6c[0] = *local_c; iVar6 = 1; } iVar2 = FUN_00404088(param_3,s_audio_004f4067,s_internal_004f406d,&local_8); if (iVar2 != 0) { local_34 = (int *)FUN_00406ff8(param_1,local_8,0xc,-1); if (local_34 == (int *)0x0) { local_3c = local_8; local_40 = (uint *)FUN_00402298(0x10); if (local_40 == (uint *)0x0) { local_38 = (uint *)0x0; } else { local_38 = FUN_00402460(local_40,local_3c); } local_38[3] = local_38[3] + 1; local_48 = (uint *)FUN_00402298(0x10); if (local_48 == (uint *)0x0) { local_44 = (uint *)0x0; } else { local_44 = FUN_00402460(local_48,s_audio__004f4076); } local_44[3] = local_44[3] + 1; FUN_00402624(local_d8,(int)local_44,(int)local_38); local_50 = local_d0; local_58 = (uint *)FUN_00402298(0x10); if (local_58 == (uint *)0x0) { local_54 = (uint *)0x0; } else { local_54 = FUN_00402460(local_58,local_50); } local_54[3] = local_54[3] + 1; FUN_004024d8((int *)local_d8,2); FUN_00402a4c((int *)&local_4c,(int *)&local_38,(int *)&local_54); piVar3 = local_4c + 3; *piVar3 = *piVar3 + -1; if (*piVar3 == 0) { FUN_004024d8(local_4c,3); } puVar1 = local_54 + 3; *puVar1 = *puVar1 - 1; if (*puVar1 == 0) { FUN_004024d8((int *)local_54,3); } FUN_00403e84(local_f8,(char *)local_38[2],1); FUN_0046611c(local_124); (**(code **)(local_124[0] + 0x28))(local_124,local_f8,param_1); local_34 = (int *)FUN_00406f3c(param_1,local_8,0xc,1,0,local_124,-1); FUN_0046613c(local_124,2); FUN_00403ecc(local_f8,2); puVar1 = local_44 + 3; *puVar1 = *puVar1 - 1; if (*puVar1 == 0) { FUN_004024d8((int *)local_44,3); } puVar1 = local_38 + 3; *puVar1 = *puVar1 - 1; if (*puVar1 == 0) { FUN_004024d8((int *)local_38,3); } } local_6c[iVar6] = *local_34; iVar6 = iVar6 + 1; } local_5c = (char *)0x0; iVar2 = FUN_00404088(param_3,s_audio_004f407d,s_model_004f4083,&local_5c); if (iVar2 != 0) { piVar3 = (int *)FUN_00406ff8(param_1,local_5c,1,-1); if (piVar3 == (int *)0x0) { local_60 = local_5c; FUN_004dbb24(&DAT_00524e20,s_audio_entity_model____004f4089,(char *)0x0); FUN_004dbb24(&DAT_00524e20,local_60,(char *)0x0); FUN_0040385c(s_L4AudioResourceManager__CreateMo_004f40a0, s_d__tesla_bt_munga_l4_L4AUDRES_CP_004f40e9,0x3e0); } local_6c[iVar6] = *piVar3; iVar6 = iVar6 + 1; } if (iVar6 == 0) { uVar5 = 0xffffffff; } else { puVar4 = (undefined4 *)FUN_00406ec4(param_1,param_2,3,1,0,local_6c,iVar6,-1); uVar5 = *puVar4; } return uVar5; } /* @0046739c file=? name=FUN_0046739c */ undefined4 * __cdecl FUN_0046739c(undefined4 *param_1,undefined4 param_2,undefined4 param_3) { FUN_00441f6c(param_1,param_2); *param_1 = &PTR_FUN_004f49b0; FUN_00462b38(param_1 + 0x1b); FUN_00466c10(param_1 + 0x58); FUN_004683b9(param_1 + 0x5c,0,0); FUN_00468587(param_1 + 0x62,0); FUN_004685d2(param_1 + 0x66,0,0); param_1[0x1a] = param_3; param_1[0x5b] = 0xffffffff; return param_1; } /* @00467418 file=? name=FUN_00467418 */ void __cdecl FUN_00467418(int *param_1,byte param_2) { int *piVar1; if (param_1 != (int *)0x0) { *param_1 = (int)&PTR_FUN_004f49b0; piVar1 = param_1 + 0x1b; FUN_00466d44(param_1 + 0x58,(int)piVar1); FUN_00462c28((int)piVar1); FUN_004685f5(param_1 + 0x66,2); FUN_004685a6(param_1 + 0x62,2); FUN_004683dc(param_1 + 0x5c,2); FUN_00466c30(param_1 + 0x58,2); FUN_00462b6c(piVar1,2); FUN_00441fb4(param_1,0); if ((param_2 & 1) != 0) { FUN_004022d0(param_1); } } return; } /* @004674b0 file=? name=FUN_004674b0 */ undefined4 __cdecl FUN_004674b0(int param_1) { FUN_00442010(param_1); return 1; } /* @004674c4 file=? name=FUN_004674c4 */ void FUN_004674c4(int param_1) { int *piVar1; int iVar2; undefined4 *puVar3; int iVar4; int aiStack_74 [8]; float fStack_54; float fStack_50; float fStack_4c; float fStack_48; float fStack_44; float fStack_40; float fStack_3c; float fStack_38; float fStack_34; float fStack_30; float fStack_2c; float fStack_28; float fStack_24; float fStack_20; float fStack_1c; float fStack_18; float fStack_14; int *piStack_10; int *piStack_c; int *piStack_8; FUN_00441ffc((int *)param_1); iVar2 = *(int *)(param_1 + 0x4c); puVar3 = (undefined4 *)FUN_00402298(0x10); if (puVar3 == (undefined4 *)0x0) { piStack_8 = (int *)0x0; } else { piStack_8 = (int *)FUN_004023f4(puVar3); } piStack_8[3] = piStack_8[3] + 1; if (*(int *)(param_1 + 0x68) == 0) { FUN_00402a98((int *)&piStack_10,(int *)&piStack_8,s_audio_audio_ini_004f419e); piVar1 = piStack_10 + 3; *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_004024d8(piStack_10,3); } } else { FUN_00402a98((int *)&piStack_c,(int *)&piStack_8,s_audio_audiomr_ini_004f418c); piVar1 = piStack_c + 3; *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_004024d8(piStack_c,3); } } FUN_00403e84(aiStack_74,(char *)piStack_8[2],1); iVar4 = FUN_00404118((int)aiStack_74,s_AudioRenderer_004f41ae,s_clipping_radius_004f41bc, &fStack_14); if (iVar4 == 0) { FUN_0040385c(s_L4AudioRenderer__Initialize___cl_004f41cc, s_d__tesla_bt_munga_l4_L4AUDRND_CP_004f4206,0xa1); } FUN_00436c44(iVar2,fStack_14); iVar4 = FUN_00404118((int)aiStack_74,s_AudioRenderer_004f4228,s_distance_between_ears_004f4236, &fStack_18); if (iVar4 == 0) { FUN_0040385c(s_L4AudioRenderer__Initialize___di_004f424c, s_d__tesla_bt_munga_l4_L4AUDRND_CP_004f428c,0xb3); } fStack_1c = fStack_18; *(float *)(iVar2 + 0x18) = fStack_18; iVar4 = FUN_00404118((int)aiStack_74,s_AudioRenderer_004f42ae,s_amplitude_rolloff_004f42bc, &fStack_20); if (iVar4 == 0) { FUN_0040385c(s_L4AudioRenderer__Initialize___am_004f42ce, s_d__tesla_bt_munga_l4_L4AUDRND_CP_004f430a,200); } iVar4 = FUN_00404118((int)aiStack_74,s_AudioRenderer_004f432c, s_amplitude_rolloff_distance_scale_004f433a,&fStack_28); if (iVar4 == 0) { FUN_0040385c(s_L4AudioRenderer__Initialize___am_004f435b, s_d__tesla_bt_munga_l4_L4AUDRND_CP_004f43a6,0xd1); } iVar4 = FUN_00404118((int)aiStack_74,s_AudioRenderer_004f43c8,s_amplitude_rolloff_knee_004f43d6, &fStack_24); if (iVar4 == 0) { FUN_0040385c(s_L4AudioRenderer__Initialize___am_004f43ed, s_d__tesla_bt_munga_l4_L4AUDRND_CP_004f442e,0xda); } FUN_00436cc0(iVar2,fStack_20,fStack_24,fStack_28); iVar4 = FUN_00404118((int)aiStack_74,s_AudioRenderer_004f4450,s_high_frequency_rolloff_004f445e, &fStack_2c); if (iVar4 == 0) { FUN_0040385c(s_L4AudioRenderer__Initialize___hi_004f4475, s_d__tesla_bt_munga_l4_L4AUDRND_CP_004f44b6,0xf4); } iVar4 = FUN_00404118((int)aiStack_74,s_AudioRenderer_004f44d8, s_high_frequency_rolloff_knee_004f44e6,&fStack_30); if (iVar4 == 0) { FUN_0040385c(s_L4AudioRenderer__Initialize___hi_004f4502, s_d__tesla_bt_munga_l4_L4AUDRND_CP_004f4548,0xfd); } iVar4 = FUN_00404118((int)aiStack_74,s_AudioRenderer_004f456a, s_high_frequency_rolloff_distance__004f4578,&fStack_34); if (iVar4 == 0) { FUN_0040385c(s_L4AudioRenderer__Initialize___hi_004f459e, s_d__tesla_bt_munga_l4_L4AUDRND_CP_004f45ee,0x106); } FUN_00436cdc(iVar2,fStack_2c,fStack_30,fStack_34); iVar4 = FUN_00404118((int)aiStack_74,s_AudioRenderer_004f4610,s_doppler_range_004f461e,&fStack_38) ; if (iVar4 == 0) { FUN_0040385c(s_L4AudioRenderer__Initialize___do_004f462c, s_d__tesla_bt_munga_l4_L4AUDRND_CP_004f4664,0x11f); } iVar4 = FUN_00404118((int)aiStack_74,s_AudioRenderer_004f4686,s_speed_of_sound_004f4694,&fStack_3c ); if (iVar4 == 0) { FUN_0040385c(s_L4AudioRenderer__Initialize___sp_004f46a3, s_d__tesla_bt_munga_l4_L4AUDRND_CP_004f46dc,0x128); } FUN_00436cac(iVar2,fStack_38,fStack_3c); iVar4 = FUN_00404118((int)aiStack_74,s_AudioRenderer_004f46fe,s_compression_exponent_004f470c, &fStack_40); if (iVar4 == 0) { FUN_0040385c(s_L4AudioRenderer__Initialize___co_004f4721, s_d__tesla_bt_munga_l4_L4AUDRND_CP_004f4760,0x140); } iVar4 = FUN_00404118((int)aiStack_74,s_AudioRenderer_004f4782,s_compression_scale_004f4790, &fStack_44); if (iVar4 == 0) { FUN_0040385c(s_L4AudioRenderer__Initialize___co_004f47a2, s_d__tesla_bt_munga_l4_L4AUDRND_CP_004f47de,0x149); } FUN_00436cf8(iVar2,fStack_40,fStack_44); iVar4 = FUN_00404118((int)aiStack_74,s_AudioRenderer_004f4800,s_itd_difference_004f480e,&fStack_48 ); if (iVar4 == 0) { FUN_0040385c(s_L4AudioRenderer__Initialize___it_004f481d, s_d__tesla_bt_munga_l4_L4AUDRND_CP_004f4856,0x160); } fStack_4c = fStack_48; *(float *)(iVar2 + 0x48) = fStack_48; iVar4 = FUN_00404118((int)aiStack_74,s_AudioRenderer_004f4878,s_global_reverb_scale_004f4886, &fStack_50); if (iVar4 == 0) { FUN_0040385c(s_L4AudioRenderer__Initialize___gl_004f489a, s_d__tesla_bt_munga_l4_L4AUDRND_CP_004f48d8,0x174); } fStack_54 = fStack_50; *(float *)(iVar2 + 0x4c) = fStack_50; FUN_00462bcc(param_1 + 0x6c); FUN_00466c70(param_1 + 0x160,(int)aiStack_74,param_1 + 0x6c); FUN_00403ecc(aiStack_74,2); piVar1 = piStack_8 + 3; *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_004024d8(piStack_8,3); } return; } /* @004674ca file=munga_l4/l4audrnd.cpp name=FUN_004674ca */ void FUN_004674ca(void) { int *piVar1; int *piVar2; int iVar3; int *piVar4; undefined4 *puVar5; undefined4 uVar6; int iVar7; int unaff_EBP; piVar2 = *(int **)(unaff_EBP + 8); FUN_00441ffc(piVar2); iVar3 = piVar2[0x13]; puVar5 = (undefined4 *)FUN_00402298(0x10); if (puVar5 == (undefined4 *)0x0) { uVar6 = 0; } else { uVar6 = FUN_004023f4(puVar5); } *(undefined4 *)(unaff_EBP + -4) = uVar6; piVar1 = (int *)(*(int *)(unaff_EBP + -4) + 0xc); *piVar1 = *piVar1 + 1; if (piVar2[0x1a] == 0) { FUN_00402a98((int *)(unaff_EBP + -0xc),(int *)(unaff_EBP + -4),s_audio_audio_ini_004f419e); piVar4 = *(int **)(unaff_EBP + -0xc); piVar1 = piVar4 + 3; *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_004024d8(piVar4,3); } } else { FUN_00402a98((int *)(unaff_EBP + -8),(int *)(unaff_EBP + -4),s_audio_audiomr_ini_004f418c); piVar4 = *(int **)(unaff_EBP + -8); piVar1 = piVar4 + 3; *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_004024d8(piVar4,3); } } FUN_00403e84((int *)(unaff_EBP + -0x70),*(char **)(*(int *)(unaff_EBP + -4) + 8),1); iVar7 = FUN_00404118(unaff_EBP + -0x70,s_AudioRenderer_004f41ae,s_clipping_radius_004f41bc, (float *)(unaff_EBP + -0x10)); if (iVar7 == 0) { FUN_0040385c(s_L4AudioRenderer__Initialize___cl_004f41cc, s_d__tesla_bt_munga_l4_L4AUDRND_CP_004f4206,0xa1); } FUN_00436c44(iVar3,*(undefined4 *)(unaff_EBP + -0x10)); iVar7 = FUN_00404118(unaff_EBP + -0x70,s_AudioRenderer_004f4228,s_distance_between_ears_004f4236, (float *)(unaff_EBP + -0x14)); if (iVar7 == 0) { FUN_0040385c(s_L4AudioRenderer__Initialize___di_004f424c, s_d__tesla_bt_munga_l4_L4AUDRND_CP_004f428c,0xb3); } *(undefined4 *)(unaff_EBP + -0x18) = *(undefined4 *)(unaff_EBP + -0x14); *(undefined4 *)(iVar3 + 0x18) = *(undefined4 *)(unaff_EBP + -0x18); iVar7 = FUN_00404118(unaff_EBP + -0x70,s_AudioRenderer_004f42ae,s_amplitude_rolloff_004f42bc, (float *)(unaff_EBP + -0x1c)); if (iVar7 == 0) { FUN_0040385c(s_L4AudioRenderer__Initialize___am_004f42ce, s_d__tesla_bt_munga_l4_L4AUDRND_CP_004f430a,200); } iVar7 = FUN_00404118(unaff_EBP + -0x70,s_AudioRenderer_004f432c, s_amplitude_rolloff_distance_scale_004f433a,(float *)(unaff_EBP + -0x24)); if (iVar7 == 0) { FUN_0040385c(s_L4AudioRenderer__Initialize___am_004f435b, s_d__tesla_bt_munga_l4_L4AUDRND_CP_004f43a6,0xd1); } iVar7 = FUN_00404118(unaff_EBP + -0x70,s_AudioRenderer_004f43c8,s_amplitude_rolloff_knee_004f43d6, (float *)(unaff_EBP + -0x20)); if (iVar7 == 0) { FUN_0040385c(s_L4AudioRenderer__Initialize___am_004f43ed, s_d__tesla_bt_munga_l4_L4AUDRND_CP_004f442e,0xda); } FUN_00436cc0(iVar3,*(undefined4 *)(unaff_EBP + -0x1c),*(undefined4 *)(unaff_EBP + -0x20), *(undefined4 *)(unaff_EBP + -0x24)); iVar7 = FUN_00404118(unaff_EBP + -0x70,s_AudioRenderer_004f4450,s_high_frequency_rolloff_004f445e, (float *)(unaff_EBP + -0x28)); if (iVar7 == 0) { FUN_0040385c(s_L4AudioRenderer__Initialize___hi_004f4475, s_d__tesla_bt_munga_l4_L4AUDRND_CP_004f44b6,0xf4); } iVar7 = FUN_00404118(unaff_EBP + -0x70,s_AudioRenderer_004f44d8, s_high_frequency_rolloff_knee_004f44e6,(float *)(unaff_EBP + -0x2c)); if (iVar7 == 0) { FUN_0040385c(s_L4AudioRenderer__Initialize___hi_004f4502, s_d__tesla_bt_munga_l4_L4AUDRND_CP_004f4548,0xfd); } iVar7 = FUN_00404118(unaff_EBP + -0x70,s_AudioRenderer_004f456a, s_high_frequency_rolloff_distance__004f4578,(float *)(unaff_EBP + -0x30)); if (iVar7 == 0) { FUN_0040385c(s_L4AudioRenderer__Initialize___hi_004f459e, s_d__tesla_bt_munga_l4_L4AUDRND_CP_004f45ee,0x106); } FUN_00436cdc(iVar3,*(undefined4 *)(unaff_EBP + -0x28),*(undefined4 *)(unaff_EBP + -0x2c), *(undefined4 *)(unaff_EBP + -0x30)); iVar7 = FUN_00404118(unaff_EBP + -0x70,s_AudioRenderer_004f4610,s_doppler_range_004f461e, (float *)(unaff_EBP + -0x34)); if (iVar7 == 0) { FUN_0040385c(s_L4AudioRenderer__Initialize___do_004f462c, s_d__tesla_bt_munga_l4_L4AUDRND_CP_004f4664,0x11f); } iVar7 = FUN_00404118(unaff_EBP + -0x70,s_AudioRenderer_004f4686,s_speed_of_sound_004f4694, (float *)(unaff_EBP + -0x38)); if (iVar7 == 0) { FUN_0040385c(s_L4AudioRenderer__Initialize___sp_004f46a3, s_d__tesla_bt_munga_l4_L4AUDRND_CP_004f46dc,0x128); } FUN_00436cac(iVar3,*(undefined4 *)(unaff_EBP + -0x34),*(undefined4 *)(unaff_EBP + -0x38)); iVar7 = FUN_00404118(unaff_EBP + -0x70,s_AudioRenderer_004f46fe,s_compression_exponent_004f470c, (float *)(unaff_EBP + -0x3c)); if (iVar7 == 0) { FUN_0040385c(s_L4AudioRenderer__Initialize___co_004f4721, s_d__tesla_bt_munga_l4_L4AUDRND_CP_004f4760,0x140); } iVar7 = FUN_00404118(unaff_EBP + -0x70,s_AudioRenderer_004f4782,s_compression_scale_004f4790, (float *)(unaff_EBP + -0x40)); if (iVar7 == 0) { FUN_0040385c(s_L4AudioRenderer__Initialize___co_004f47a2, s_d__tesla_bt_munga_l4_L4AUDRND_CP_004f47de,0x149); } FUN_00436cf8(iVar3,*(undefined4 *)(unaff_EBP + -0x3c),*(undefined4 *)(unaff_EBP + -0x40)); iVar7 = FUN_00404118(unaff_EBP + -0x70,s_AudioRenderer_004f4800,s_itd_difference_004f480e, (float *)(unaff_EBP + -0x44)); if (iVar7 == 0) { FUN_0040385c(s_L4AudioRenderer__Initialize___it_004f481d, s_d__tesla_bt_munga_l4_L4AUDRND_CP_004f4856,0x160); } *(undefined4 *)(unaff_EBP + -0x48) = *(undefined4 *)(unaff_EBP + -0x44); *(undefined4 *)(iVar3 + 0x48) = *(undefined4 *)(unaff_EBP + -0x48); iVar7 = FUN_00404118(unaff_EBP + -0x70,s_AudioRenderer_004f4878,s_global_reverb_scale_004f4886, (float *)(unaff_EBP + -0x4c)); if (iVar7 == 0) { FUN_0040385c(s_L4AudioRenderer__Initialize___gl_004f489a, s_d__tesla_bt_munga_l4_L4AUDRND_CP_004f48d8,0x174); } *(undefined4 *)(unaff_EBP + -0x50) = *(undefined4 *)(unaff_EBP + -0x4c); *(undefined4 *)(iVar3 + 0x4c) = *(undefined4 *)(unaff_EBP + -0x50); FUN_00462bcc((int)(piVar2 + 0x1b)); FUN_00466c70(piVar2 + 0x58,unaff_EBP + -0x70,(int)(piVar2 + 0x1b)); FUN_00403ecc((int *)(unaff_EBP + -0x70),2); piVar1 = *(int **)(unaff_EBP + -4); piVar2 = piVar1 + 3; *piVar2 = *piVar2 + -1; if (*piVar2 == 0) { FUN_004024d8(piVar1,3); } return; } /* @00467908 file=? name=FUN_00467908 */ void __cdecl FUN_00467908(int param_1,int *param_2) { undefined4 uVar1; int iVar2; uVar1 = FUN_00417ab4(param_1 + 0x40); iVar2 = (**(code **)(*param_2 + 0x28))(param_2,uVar1); FUN_00466de4(param_1 + 0x160,(int)param_2,iVar2); return; } /* @00467940 file=? name=FUN_00467940 */ void __cdecl FUN_00467940(int param_1,int param_2) { FUN_00466e90(param_1 + 0x160,param_2); return; } /* @0046795c file=? name=FUN_0046795c */ void FUN_0046795c(void) { return; } /* @00467964 file=? name=FUN_00467964 */ void FUN_00467964(void) { return; } /* @0046796c file=? name=FUN_0046796c */ void FUN_0046796c(void) { return; } /* @00467974 file=? name=FUN_00467974 */ void FUN_00467974(void) { return; } /* @0046797c file=? name=FUN_0046797c */ /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ void __cdecl FUN_0046797c(int param_1,int *param_2) { int *piVar1; int iVar2; float10 fVar3; int local_38 [8]; int local_18; float local_14; float local_10; float local_c; int local_8; FUN_00463580(local_38); iVar2 = FUN_00468190(param_1,param_2,local_38); if (iVar2 == 0) { if (*(int *)(*(int *)(param_2[10] + 0xc) + 0x10) == 1) { FUN_0043ba04((int)param_2,1); (**(code **)(*(int *)(param_1 + 0x188) + 4))(param_1 + 0x188,param_2); } } else { local_8 = *(int *)(param_1 + 0x4c); piVar1 = (int *)param_2[9]; if (piVar1[0x18] <= *(int *)(local_8 + 4)) { piVar1[0x18] = *(int *)(local_8 + 4) + piVar1[0x17]; (**(code **)(*piVar1 + 0x1c))(piVar1,local_8); } FUN_004636cc((int)param_2,local_38); (**(code **)(*param_2 + 0x44))(param_2); FUN_0043ba04((int)param_2,2); fVar3 = (float10)(**(code **)(*param_2 + 0x1c))(param_2); local_c = (float)fVar3; local_14 = (_DAT_00467a98 - (float)param_2[0x1b]) - local_c; local_10 = local_14; (**(code **)(*(int *)(param_1 + 0x170) + 8))(param_1 + 0x170,param_2,&local_14); local_18 = param_2[0x1c]; if (local_18 != 0) { (**(code **)(*(int *)(param_1 + 0x198) + 8))(param_1 + 0x198,param_2,&local_18); } } return; } /* @00467a9c file=? name=FUN_00467a9c */ void __cdecl FUN_00467a9c(int param_1,int *param_2) { int local_14 [4]; if ((param_2[0xb] == 1) || (param_2[0xb] == 3)) { FUN_0043ba04((int)param_2,0); FUN_00415f30(local_14,(int)param_2,0xffffffff); FUN_004161fc((int)local_14,param_1 + 0x188); FUN_00415f90(local_14,2); } else { FUN_00468098(param_1,param_2); } return; } /* @00467b04 file=? name=FUN_00467b04 */ void __cdecl FUN_00467b04(int param_1) { FUN_00442054(param_1); FUN_00467b34(param_1); FUN_00467c0c(param_1); FUN_00467e9c(param_1); return; } /* @00467b34 file=? name=FUN_00467b34 */ /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ void __cdecl FUN_00467b34(int param_1) { float fVar1; int iVar2; int *piVar3; int iVar4; float10 fVar5; int local_30 [5]; float local_1c; float local_18; float local_14; float local_10; float local_c; float local_8; local_8 = 1.0; local_c = 0.0; iVar4 = 3; FUN_004658db(local_30,param_1 + 0x198); local_10 = *(float *)(*(int *)(param_1 + 0x4c) + 0x44); local_14 = *(float *)(*(int *)(param_1 + 0x4c) + 0x40); iVar2 = (**(code **)(local_30[0] + 0x30))(); fVar1 = local_c; if (iVar2 != 0) { iVar4 = *(int *)(iVar2 + 0x70); } while (local_c = fVar1, piVar3 = (int *)(**(code **)(local_30[0] + 0x28))(), piVar3 != (int *)0x0) { iVar2 = piVar3[0x1c]; if (iVar4 != iVar2) { fVar5 = FUN_004dce94((double)(local_10 * local_c),SUB84((double)local_14,0), (uint)((ulonglong)(double)local_14 >> 0x20)); local_8 = (float)((float10)_DAT_00467c08 - fVar5); iVar4 = iVar2; } local_18 = local_8; piVar3[0x1d] = (int)local_8; fVar5 = FUN_0043ba64(piVar3); local_1c = (float)fVar5; fVar1 = local_1c; if (local_1c < local_c) { fVar1 = local_c; } } FUN_00465938(local_30,2); return; } /* @00467c0c file=? name=FUN_00467c0c */ /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ void FUN_00467c0c(int param_1) { bool bVar1; undefined3 extraout_var; int *piVar2; float10 fVar3; int aiStack_70 [3]; int aiStack_64 [4]; int iStack_54; int aiStack_50 [4]; float fStack_40; float fStack_3c; float fStack_38; float fStack_34; float fStack_30; float fStack_2c; float fStack_28; int iStack_24; float fStack_20; float fStack_1c; int iStack_18; int iStack_14; int iStack_10; int iStack_c; int iStack_8; FUN_00468587(aiStack_50,0); FUN_004657c9(aiStack_64,param_1 + 0x170); LAB_00467deb: do { while( true ) { while( true ) { while( true ) { piVar2 = (int *)(**(code **)(aiStack_64[0] + 0x30))(); if (piVar2 == (int *)0x0) { FUN_00465852(aiStack_70,(int)aiStack_50); while( true ) { piVar2 = (int *)(**(code **)(aiStack_70[0] + 0x28))(); if (piVar2 == (int *)0x0) break; fVar3 = (float10)(**(code **)(*piVar2 + 0x1c))(); fStack_38 = (float)fVar3; fStack_40 = (_DAT_00467e94 - (float)piVar2[0x1b]) - fStack_38; fStack_3c = fStack_40; (**(code **)(*(int *)(param_1 + 0x170) + 8))(param_1 + 0x170,piVar2); } FUN_004658af(aiStack_70,2); FUN_00465826(aiStack_64,2); FUN_004685a6(aiStack_50,2); return; } if (piVar2[0x27] <= *(int *)(*(int *)(param_1 + 0x4c) + 4)) break; (**(code **)(aiStack_64[0] + 0xc))(); } bVar1 = FUN_00438348(piVar2[9],*(int *)(param_1 + 0x4c)); if (CONCAT31(extraout_var,bVar1) == 0) break; if (*(int *)(*(int *)(piVar2[10] + 0xc) + 0x10) == 0) { FUN_00468098(param_1,piVar2); } else { FUN_00468108(param_1,piVar2); } } if (piVar2[0x14] == 0) { bVar1 = false; } else { FUN_004373e8(&iStack_8); bVar1 = piVar2[0x17] < iStack_8; } if (!bVar1) break; FUN_00468098(param_1,piVar2); } if (*(int *)(*(int *)(piVar2[10] + 0xc) + 0x10) == 1) { iStack_c = FUN_00437404(); FUN_004373e8(&iStack_10); iStack_18 = iStack_10 - piVar2[0x16]; iStack_14 = iStack_18; if (iStack_c < iStack_18) { (**(code **)(*piVar2 + 0x4c))(); FUN_0043ba04((int)piVar2,3); (**(code **)(*piVar2 + 0x50))(); FUN_0043ba04((int)piVar2,2); (**(code **)(aiStack_64[0] + 0xc))(); goto LAB_00467deb; } } (**(code **)(*piVar2 + 0x14))(); fStack_1c = *(float *)(iStack_54 + 0x1c); fVar3 = (float10)(**(code **)(*piVar2 + 0x1c))(); fStack_20 = (float)fVar3; iStack_24 = piVar2[0x1b]; fStack_34 = (_DAT_00467e94 - (float)iStack_24) - fStack_20; fStack_30 = fStack_1c; fStack_2c = fStack_34; fStack_28 = fStack_34; fVar3 = FUN_004dcd00((double)(fStack_34 - fStack_1c)); if (fVar3 <= (float10)_DAT_00467e98) { (**(code **)(aiStack_64[0] + 0xc))(); } else { (**(code **)(aiStack_64[0] + 0x48))(); (**(code **)(aiStack_50[0] + 4))(aiStack_50); } } while( true ); } /* @00467c12 file=? name=FUN_00467c12 */ /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ void FUN_00467c12(void) { int iVar1; bool bVar2; undefined3 extraout_var; undefined4 uVar3; int *piVar4; int unaff_EBP; float10 fVar5; iVar1 = *(int *)(unaff_EBP + 8); FUN_00468587((undefined4 *)(unaff_EBP + -0x4c),0); FUN_004657c9((undefined4 *)(unaff_EBP + -0x60),iVar1 + 0x170); LAB_00467deb: do { while( true ) { while( true ) { while( true ) { piVar4 = (int *)(**(code **)(*(int *)(unaff_EBP + -0x60) + 0x30))(); if (piVar4 == (int *)0x0) { FUN_00465852((undefined4 *)(unaff_EBP + -0x6c),unaff_EBP + -0x4c); while( true ) { piVar4 = (int *)(**(code **)(*(int *)(unaff_EBP + -0x6c) + 0x28))(); if (piVar4 == (int *)0x0) break; fVar5 = (float10)(**(code **)(*piVar4 + 0x1c))(); *(float *)(unaff_EBP + -0x34) = (float)fVar5; *(int *)(unaff_EBP + -0x70) = piVar4[0x1b]; *(float *)(unaff_EBP + -0x38) = (_DAT_00467e94 - (float)*(int *)(unaff_EBP + -0x70)) - *(float *)(unaff_EBP + -0x34); *(undefined4 *)(unaff_EBP + -0x3c) = *(undefined4 *)(unaff_EBP + -0x38); (**(code **)(*(int *)(iVar1 + 0x170) + 8))(iVar1 + 0x170,piVar4); } FUN_004658af((int *)(unaff_EBP + -0x6c),2); FUN_00465826((int *)(unaff_EBP + -0x60),2); FUN_004685a6((int *)(unaff_EBP + -0x4c),2); return; } if (piVar4[0x27] <= *(int *)(*(int *)(iVar1 + 0x4c) + 4)) break; (**(code **)(*(int *)(unaff_EBP + -0x60) + 0xc))(); } bVar2 = FUN_00438348(piVar4[9],*(int *)(iVar1 + 0x4c)); if (CONCAT31(extraout_var,bVar2) == 0) break; if (*(int *)(*(int *)(piVar4[10] + 0xc) + 0x10) == 0) { FUN_00468098(iVar1,piVar4); } else { FUN_00468108(iVar1,piVar4); } } if (piVar4[0x14] == 0) { bVar2 = false; } else { FUN_004373e8((undefined4 *)(unaff_EBP + -4)); bVar2 = piVar4[0x17] < *(int *)(unaff_EBP + -4); } if (!bVar2) break; FUN_00468098(iVar1,piVar4); } if (*(int *)(*(int *)(piVar4[10] + 0xc) + 0x10) == 1) { uVar3 = FUN_00437404(); *(undefined4 *)(unaff_EBP + -8) = uVar3; FUN_004373e8((undefined4 *)(unaff_EBP + -0xc)); *(int *)(unaff_EBP + -0x10) = *(int *)(unaff_EBP + -0xc) - piVar4[0x16]; *(undefined4 *)(unaff_EBP + -0x14) = *(undefined4 *)(unaff_EBP + -0x10); if (*(int *)(unaff_EBP + -8) < *(int *)(unaff_EBP + -0x14)) { (**(code **)(*piVar4 + 0x4c))(); FUN_0043ba04((int)piVar4,3); (**(code **)(*piVar4 + 0x50))(); FUN_0043ba04((int)piVar4,2); (**(code **)(*(int *)(unaff_EBP + -0x60) + 0xc))(); goto LAB_00467deb; } } (**(code **)(*piVar4 + 0x14))(); *(undefined4 *)(unaff_EBP + -0x18) = *(undefined4 *)(*(int *)(unaff_EBP + -0x50) + 0x1c); fVar5 = (float10)(**(code **)(*piVar4 + 0x1c))(); *(float *)(unaff_EBP + -0x1c) = (float)fVar5; *(int *)(unaff_EBP + -0x20) = piVar4[0x1b]; *(float *)(unaff_EBP + -0x24) = (_DAT_00467e94 - (float)*(int *)(unaff_EBP + -0x20)) - *(float *)(unaff_EBP + -0x1c); *(undefined4 *)(unaff_EBP + -0x28) = *(undefined4 *)(unaff_EBP + -0x24); *(undefined4 *)(unaff_EBP + -0x2c) = *(undefined4 *)(unaff_EBP + -0x18); *(undefined4 *)(unaff_EBP + -0x30) = *(undefined4 *)(unaff_EBP + -0x28); fVar5 = FUN_004dcd00((double)(*(float *)(unaff_EBP + -0x30) - *(float *)(unaff_EBP + -0x2c))); if (fVar5 <= (float10)_DAT_00467e98) { (**(code **)(*(int *)(unaff_EBP + -0x60) + 0xc))(); } else { (**(code **)(*(int *)(unaff_EBP + -0x60) + 0x48))(); (**(code **)(*(int *)(unaff_EBP + -0x4c) + 4))(unaff_EBP + -0x4c); } } while( true ); } /* @00467e9c file=? name=FUN_00467e9c */ /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ void __cdecl FUN_00467e9c(int param_1) { int *piVar1; bool bVar2; undefined3 extraout_var; int *piVar3; int iVar4; float10 fVar5; int local_84 [4]; int local_74 [8]; int local_54 [4]; int local_44; int local_40 [3]; int local_34 [6]; int local_1c; int local_18; undefined4 local_14; float local_10; float local_c; float local_8; FUN_004683b9(local_34,0,0); FUN_00465852(local_40,param_1 + 0x188); while( true ) { piVar3 = (int *)(**(code **)(local_40[0] + 0x28))(local_40); if (piVar3 == (int *)0x0) break; if (piVar3[0x28] <= *(int *)(*(int *)(param_1 + 0x4c) + 4)) { bVar2 = FUN_00438348(piVar3[9],*(int *)(param_1 + 0x4c)); if (CONCAT31(extraout_var,bVar2) == 0) { fVar5 = (float10)(**(code **)(*piVar3 + 0x1c))(piVar3); local_8 = (float)fVar5; local_10 = (_DAT_00468094 - (float)piVar3[0x1b]) - local_8; local_c = local_10; (**(code **)(local_34[0] + 8))(local_34,piVar3,&local_10); } } } FUN_004657c9(local_54,(int)local_34); while( true ) { piVar3 = (int *)(**(code **)(local_54[0] + 0x30))(local_54); if (piVar3 == (int *)0x0) break; FUN_00463580(local_74); iVar4 = FUN_00468190(param_1,piVar3,local_74); if (iVar4 == 0) break; FUN_00415f30(local_84,(int)piVar3,0xffffffff); FUN_004161fc((int)local_84,param_1 + 0x188); local_14 = *(undefined4 *)(local_44 + 0x1c); (**(code **)(local_54[0] + 0x48))(local_54); local_18 = *(int *)(param_1 + 0x4c); piVar1 = (int *)piVar3[9]; if (piVar1[0x18] <= *(int *)(local_18 + 4)) { piVar1[0x18] = *(int *)(local_18 + 4) + piVar1[0x17]; (**(code **)(*piVar1 + 0x1c))(piVar1,local_18); } FUN_004636cc((int)piVar3,local_74); (**(code **)(*piVar3 + 0x50))(piVar3); FUN_0043ba04((int)piVar3,2); (**(code **)(*(int *)(param_1 + 0x170) + 8))(param_1 + 0x170,piVar3,&local_14); if (piVar3[0x1c] != 0) { local_1c = piVar3[0x1c]; (**(code **)(*(int *)(param_1 + 0x198) + 8))(param_1 + 0x198,piVar3,&local_1c); } FUN_00415f90(local_84,2); } FUN_00465826(local_54,2); FUN_004658af(local_40,2); FUN_004683dc(local_34,2); return; } /* @00468098 file=? name=FUN_00468098 */ void __cdecl FUN_00468098(int param_1,int *param_2) { int local_14 [4]; (**(code **)(*param_2 + 0x48))(param_2); FUN_0043ba04((int)param_2,0); FUN_004636fc((int)param_2); FUN_00415f30(local_14,(int)param_2,0xffffffff); FUN_004161fc((int)local_14,param_1 + 0x170); FUN_004161fc((int)local_14,param_1 + 0x198); FUN_00415f90(local_14,2); return; } /* @00468108 file=? name=FUN_00468108 */ void __cdecl FUN_00468108(int param_1,int *param_2) { int local_14 [4]; (**(code **)(*param_2 + 0x4c))(param_2); FUN_0043ba04((int)param_2,3); FUN_004636fc((int)param_2); FUN_00415f30(local_14,(int)param_2,0xffffffff); FUN_004161fc((int)local_14,param_1 + 0x170); FUN_004161fc((int)local_14,param_1 + 0x198); (**(code **)(*(int *)(param_1 + 0x188) + 4))(param_1 + 0x188,param_2); FUN_00415f90(local_14,2); return; } /* @00468190 file=? name=FUN_00468190 */ /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ int __cdecl FUN_00468190(int param_1,int *param_2,int *param_3) { bool bVar1; undefined3 extraout_var; int iVar2; int *piVar3; undefined3 extraout_var_00; undefined3 extraout_var_01; int *piVar4; float10 fVar5; int local_2c [4]; int local_1c; float local_18; float local_14; float local_10; float local_c; float local_8; bVar1 = FUN_00438348(param_2[9],*(int *)(param_1 + 0x4c)); if (CONCAT31(extraout_var,bVar1) == 0) { piVar3 = (int *)FUN_004636ec((int)param_2); piVar4 = param_3; for (iVar2 = 8; iVar2 != 0; iVar2 = iVar2 + -1) { *piVar4 = *piVar3; piVar3 = piVar3 + 1; piVar4 = piVar4 + 1; } bVar1 = FUN_004682f4(param_1,*(int *)(*(int *)(param_2[10] + 0xc) + 0xc),param_3); iVar2 = CONCAT31(extraout_var_00,bVar1); if (iVar2 == 0) { FUN_004657c9(local_2c,param_1 + 0x170); local_8 = 0.0; (**(code **)(local_2c[0] + 8))(local_2c); piVar3 = (int *)(**(code **)(local_2c[0] + 0x30))(local_2c); fVar5 = (float10)(**(code **)(*param_2 + 0x1c))(param_2); local_c = (float)fVar5; local_14 = (_DAT_004682f0 - (float)param_2[0x1b]) - local_c; local_10 = local_14; local_8 = local_14; while (((iVar2 == 0 && (piVar3 != (int *)0x0)) && (local_18 = *(float *)(local_1c + 0x1c), local_8 < local_18))) { if (*(int *)(*(int *)(piVar3[10] + 0xc) + 0x10) == 0) { FUN_00468098(param_1,piVar3); } else { FUN_00468108(param_1,piVar3); } bVar1 = FUN_004682f4(param_1,*(int *)(*(int *)(param_2[10] + 0xc) + 0xc),param_3); iVar2 = CONCAT31(extraout_var_01,bVar1); (**(code **)(local_2c[0] + 8))(local_2c); piVar3 = (int *)(**(code **)(local_2c[0] + 0x30))(local_2c); } FUN_00465826(local_2c,2); } } else { iVar2 = 0; } return iVar2; } /* @004682f4 file=? name=FUN_004682f4 */ bool __cdecl FUN_004682f4(int param_1,int param_2,int *param_3) { bool bVar1; int iVar2; bVar1 = false; if (param_3[4] != 0) { iVar2 = FUN_00462a1c(param_1 + 0x78,param_2); if (iVar2 == 0) goto LAB_0046839b; *param_3 = iVar2; } if (param_3[5] != 0) { iVar2 = FUN_00462a1c(param_1 + 0x78,param_2); if (iVar2 == 0) goto LAB_0046839b; param_3[1] = iVar2; } if (param_3[6] != 0) { iVar2 = FUN_00462a1c(param_1 + 0xec,param_2); if (iVar2 == 0) goto LAB_0046839b; param_3[2] = iVar2; } if (param_3[7] != 0) { iVar2 = FUN_00462a1c(param_1 + 0xec,param_2); if (iVar2 == 0) goto LAB_0046839b; param_3[3] = iVar2; } bVar1 = true; LAB_0046839b: if (!bVar1) { FUN_004635e0(param_3); } return bVar1; } /* @004683b9 file=? name=FUN_004683b9 */ undefined4 * __cdecl FUN_004683b9(undefined4 *param_1,undefined4 param_2,undefined4 param_3) { FUN_004186ac(param_1,param_2,param_3); *param_1 = &PTR_FUN_004f4994; return param_1; } /* @004683dc file=? name=FUN_004683dc */ void __cdecl FUN_004683dc(int *param_1,byte param_2) { if (param_1 != (int *)0x0) { *param_1 = (int)&PTR_FUN_004f4994; FUN_004186dc(param_1,0); if ((param_2 & 1) != 0) { FUN_0046853c(param_1); } } return; } /* @00468408 file=? name=FUN_00468408 */ /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ undefined4 __cdecl FUN_00468408(undefined4 param_1,int param_2,int param_3) { undefined4 uVar1; float10 fVar2; fVar2 = FUN_004dcd00((double)(*(float *)(param_2 + 0x1c) - *(float *)(param_3 + 0x1c))); if ((float10)_DAT_00468478 < fVar2) { if (*(float *)(param_2 + 0x1c) <= *(float *)(param_3 + 0x1c)) { uVar1 = 0xffffffff; } else { uVar1 = 1; } } else { uVar1 = 0; } return uVar1; } /* @0046853c file=? name=FUN_0046853c */ /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ void __cdecl FUN_0046853c(undefined4 *param_1) { FUN_00402f98((int)DAT_004f4960,param_1); _DAT_004f4964 = _DAT_004f4964 + -1; if (_DAT_004f4964 == 0) { if (DAT_004f4960 != (int *)0x0) { FUN_00402c28(DAT_004f4960,0); FUN_004022d0(DAT_004f4960); } DAT_004f4960 = (int *)0x0; } return; } /* @00468587 file=? name=FUN_00468587 */ undefined4 * __cdecl FUN_00468587(undefined4 *param_1,undefined4 param_2) { FUN_00417be0(param_1,param_2); *param_1 = &PTR_FUN_004f498c; return param_1; } /* @004685a6 file=? name=FUN_004685a6 */ void __cdecl FUN_004685a6(int *param_1,byte param_2) { if (param_1 != (int *)0x0) { *param_1 = (int)&PTR_FUN_004f498c; FUN_00417c0c(param_1,0); if ((param_2 & 1) != 0) { FUN_004022d0(param_1); } } return; } /* @004685d2 file=? name=FUN_004685d2 */ undefined4 * __cdecl FUN_004685d2(undefined4 *param_1,undefined4 param_2,undefined4 param_3) { FUN_004186ac(param_1,param_2,param_3); *param_1 = &PTR_FUN_004f4970; return param_1; } /* @004685f5 file=? name=FUN_004685f5 */ void __cdecl FUN_004685f5(int *param_1,byte param_2) { if (param_1 != (int *)0x0) { *param_1 = (int)&PTR_FUN_004f4970; FUN_004186dc(param_1,0); if ((param_2 & 1) != 0) { FUN_004686cc(param_1); } } return; } /* @00468621 file=? name=FUN_00468621 */ undefined4 __cdecl FUN_00468621(undefined4 param_1,int param_2,int param_3) { undefined4 uVar1; if (*(int *)(param_3 + 0x1c) == *(int *)(param_2 + 0x1c)) { uVar1 = 0; } else { uVar1 = 1; if (*(int *)(param_2 + 0x1c) <= *(int *)(param_3 + 0x1c)) { uVar1 = 0xffffffff; } } return uVar1; } /* @00468650 file=? name=FUN_00468650 */ undefined4 __cdecl FUN_00468650(undefined4 param_1,int *param_2,int param_3) { undefined4 uVar1; if (*(int *)(param_3 + 0x1c) == *param_2) { uVar1 = 0; } else { uVar1 = 1; if (*param_2 <= *(int *)(param_3 + 0x1c)) { uVar1 = 0xffffffff; } } return uVar1; } /* @0046867c file=? name=FUN_0046867c */ void FUN_0046867c(void) { int iVar1; undefined4 *puVar2; iVar1 = DAT_004f496c; DAT_004f496c = DAT_004f496c + 1; puVar2 = DAT_004f4968; if ((iVar1 == 0) && (puVar2 = (undefined4 *)FUN_00402298(0x28), puVar2 != (undefined4 *)0x0)) { FUN_00402b98(puVar2,0x18,100,100,s_VChainOf_004f4915); } DAT_004f4968 = puVar2; FUN_00402f74((int)DAT_004f4968); return; } /* @004686cc file=? name=FUN_004686cc */ void __cdecl FUN_004686cc(undefined4 *param_1) { FUN_00402f98((int)DAT_004f4968,param_1); DAT_004f496c = DAT_004f496c + -1; if (DAT_004f496c == 0) { if (DAT_004f4968 != (int *)0x0) { FUN_00402c28(DAT_004f4968,0); FUN_004022d0(DAT_004f4968); } DAT_004f4968 = (int *)0x0; } return; } /* @00468717 file=? name=FUN_00468717 */ undefined4 * __cdecl FUN_00468717(undefined4 param_1,int param_2,undefined4 *param_3) { undefined4 *puVar1; puVar1 = (undefined4 *)FUN_00424ac5(); if (puVar1 == (undefined4 *)0x0) { puVar1 = (undefined4 *)0x0; } else { puVar1 = FUN_00424a6e(puVar1,param_1,param_2,param_3); } return puVar1; } /* @00468747 file=? name=FUN_00468747 */ undefined4 * __cdecl FUN_00468747(undefined4 param_1,int param_2,undefined4 *param_3) { undefined4 *puVar1; puVar1 = (undefined4 *)FUN_004426e5(); if (puVar1 == (undefined4 *)0x0) { puVar1 = (undefined4 *)0x0; } else { puVar1 = FUN_00442684(puVar1,param_1,param_2,param_3); } return puVar1; } /* @00468778 file=? name=FUN_00468778 */ undefined4 * __cdecl FUN_00468778(undefined4 *param_1) { FUN_00442990(param_1); *param_1 = &PTR_FUN_004f4a10; FUN_00468812(param_1 + 0x16); return param_1; } /* @0046879c file=? name=FUN_0046879c */ void __cdecl FUN_0046879c(int *param_1,byte param_2) { if (param_1 != (int *)0x0) { *param_1 = (int)&PTR_FUN_004f4a10; FUN_0046882b(param_1 + 0x16,2); FUN_004429c0(param_1,0); if ((param_2 & 1) != 0) { FUN_004022d0(param_1); } } return; } /* @004687d8 file=? name=FUN_004687d8 */ void __cdecl FUN_004687d8(int param_1) { FUN_004689f4(param_1 + 0x58); FUN_00442a14(param_1); return; } /* @004687f4 file=? name=FUN_004687f4 */ void FUN_004687f4(void) { FUN_00442a3c(); return; } /* @00468803 file=? name=FUN_00468803 */ void FUN_00468803(void) { FUN_004428b0(); return; } /* @00468812 file=? name=FUN_00468812 */ undefined4 * __cdecl FUN_00468812(undefined4 *param_1) { FUN_00442848(param_1); *param_1 = &PTR_FUN_004f4a04; return param_1; } /* @0046882b file=? name=FUN_0046882b */ void __cdecl FUN_0046882b(int *param_1,byte param_2) { if (param_1 != (int *)0x0) { *param_1 = (int)&PTR_FUN_004f4a04; FUN_004689f4((int)param_1); FUN_00442874(param_1,0); if ((param_2 & 1) != 0) { FUN_004022d0(param_1); } } return; } /* @0046885e file=? name=FUN_0046885e */ int __cdecl FUN_0046885e(int param_1,char *param_2,undefined4 param_3) { int iVar1; undefined4 *puVar2; iVar1 = FUN_004428bc(param_1,param_2); if (iVar1 == 0) { iVar1 = FUN_0046eb64(); if (iVar1 == 0) { iVar1 = 0; } else { puVar2 = (undefined4 *)FUN_00402298(0x3c); if (puVar2 == (undefined4 *)0x0) { puVar2 = (undefined4 *)0x0; } else { puVar2 = FUN_00468a42(puVar2,param_2,iVar1,param_3); } (**(code **)(*(int *)(param_1 + 0xc) + 4))(param_1 + 0xc,puVar2); } } else { *(int *)(iVar1 + 0x30) = *(int *)(iVar1 + 0x30) + 1; iVar1 = *(int *)(iVar1 + 0x38); } return iVar1; } /* @004688ce file=? name=FUN_004688ce */ int * __cdecl FUN_004688ce(int param_1,int param_2,undefined4 param_3) { int iVar1; int *piVar2; undefined4 *puVar3; iVar1 = FUN_0044292c(param_1,param_2); if (iVar1 == 0) { piVar2 = FUN_0046eb6c(param_2); if (piVar2 == (int *)0x0) { piVar2 = (int *)0x0; } else { puVar3 = (undefined4 *)FUN_00402298(0x3c); if (puVar3 == (undefined4 *)0x0) { puVar3 = (undefined4 *)0x0; } else { puVar3 = FUN_00468a6b(puVar3,param_2,piVar2,param_3); } (**(code **)(*(int *)(param_1 + 0xc) + 4))(param_1 + 0xc,puVar3); } } else { *(int *)(iVar1 + 0x30) = *(int *)(iVar1 + 0x30) + 1; piVar2 = *(int **)(iVar1 + 0x38); } return piVar2; } /* @0046893e file=? name=FUN_0046893e */ undefined4 __cdecl FUN_0046893e(int param_1,char *param_2) { int iVar1; iVar1 = FUN_004428bc(param_1,param_2); if (iVar1 != 0) { *(int *)(iVar1 + 0x30) = *(int *)(iVar1 + 0x30) + 1; return *(undefined4 *)(iVar1 + 0x38); } return 0; } /* @00468961 file=? name=FUN_00468961 */ undefined4 __cdecl FUN_00468961(int param_1,int param_2) { int iVar1; iVar1 = FUN_0044292c(param_1,param_2); if (iVar1 != 0) { *(int *)(iVar1 + 0x30) = *(int *)(iVar1 + 0x30) + 1; return *(undefined4 *)(iVar1 + 0x38); } return 0; } /* @00468984 file=? name=FUN_00468984 */ void __cdecl FUN_00468984(int param_1,char *param_2) { undefined4 *puVar1; puVar1 = (undefined4 *)FUN_004428bc(param_1,param_2); if ((((puVar1 != (undefined4 *)0x0) && (puVar1[0xc] = puVar1[0xc] + -1, (int)puVar1[0xc] < 1)) && (puVar1[0xd] == 0)) && (puVar1 != (undefined4 *)0x0)) { (**(code **)*puVar1)(puVar1,3); } return; } /* @004689bc file=? name=FUN_004689bc */ void __cdecl FUN_004689bc(int param_1,int param_2) { undefined4 *puVar1; puVar1 = (undefined4 *)FUN_0044292c(param_1,param_2); if ((((puVar1 != (undefined4 *)0x0) && (puVar1[0xc] = puVar1[0xc] + -1, (int)puVar1[0xc] < 1)) && (puVar1[0xd] == 0)) && (puVar1 != (undefined4 *)0x0)) { (**(code **)*puVar1)(puVar1,3); } return; } /* @004689f4 file=? name=FUN_004689f4 */ void __cdecl FUN_004689f4(int param_1) { undefined4 *puVar1; int local_10 [3]; FUN_0044316d(local_10,param_1 + 0xc); while( true ) { puVar1 = (undefined4 *)(**(code **)(local_10[0] + 0x28))(local_10); if (puVar1 == (undefined4 *)0x0) break; if (puVar1 != (undefined4 *)0x0) { (**(code **)*puVar1)(puVar1,3); } } FUN_004431ab(local_10,2); return; } /* @00468a42 file=? name=FUN_00468a42 */ undefined4 * __cdecl FUN_00468a42(undefined4 *param_1,char *param_2,undefined4 param_3,undefined4 param_4) { FUN_00442780(param_1,param_2,param_4); *param_1 = &PTR_FUN_004f4a00; param_1[0xe] = param_3; return param_1; } /* @00468a6b file=? name=FUN_00468a6b */ undefined4 * __cdecl FUN_00468a6b(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4) { FUN_004427dc(param_1,param_2,param_4); *param_1 = &PTR_FUN_004f4a00; param_1[0xe] = param_3; return param_1; } /* @00468a94 file=? name=FUN_00468a94 */ void __cdecl FUN_00468a94(int *param_1,byte param_2) { if (param_1 != (int *)0x0) { *param_1 = (int)&PTR_FUN_004f4a00; FUN_0046ecdc((int *)param_1[0xe],3); param_1[0xe] = 0; FUN_00442810(param_1,0); if ((param_2 & 1) != 0) { FUN_004022d0(param_1); } } return; } /* @00468ad3 file=? name=FUN_00468ad3 */ void FUN_00468ad3(void) { FUN_0044283c(); return; } /* @00468ae4 file=? name=FUN_00468ae4 */ undefined4 * __cdecl FUN_00468ae4(undefined4 *param_1,int param_2,int param_3) { int *piVar1; undefined4 uVar2; undefined2 *puVar3; int iVar4; FUN_0044a078(param_1,param_2,param_3); *param_1 = &PTR_FUN_004f4b00; piVar1 = (int *)FUN_00402298(0xc); if (piVar1 == (int *)0x0) { piVar1 = (int *)0x0; } else { piVar1 = FUN_00449c88(piVar1,param_2,param_3); } param_1[0xb] = piVar1; param_1[6] = 1; param_1[8] = param_3; param_1[7] = param_2; param_1[10] = param_1[8] + -1; param_1[9] = param_1[7] + -1; uVar2 = FUN_004022b0(param_1[8] * 2); param_1[0xc] = uVar2; param_1[5] = 1; puVar3 = (undefined2 *)param_1[0xc]; for (iVar4 = param_1[8]; 0 < iVar4; iVar4 = iVar4 + -1) { *puVar3 = 0; puVar3 = puVar3 + 1; } return param_1; } /* @00468b7c file=? name=FUN_00468b7c */ undefined4 * __cdecl FUN_00468b7c(undefined4 *param_1,int *param_2) { int iVar1; undefined2 *puVar2; FUN_0044a078(param_1,*param_2,param_2[1]); *param_1 = &PTR_FUN_004f4b00; param_1[0xb] = param_2; param_1[6] = 0; param_1[8] = *(undefined4 *)(param_1[0xb] + 4); param_1[7] = *(undefined4 *)param_1[0xb]; param_1[10] = param_1[8] + -1; param_1[9] = param_1[7] + -1; iVar1 = FUN_004022b0(param_1[8] * 2); param_1[0xc] = iVar1; if (iVar1 == 0) { param_1[5] = 0; } else { param_1[5] = 1; puVar2 = (undefined2 *)param_1[0xc]; for (iVar1 = param_1[8]; 0 < iVar1; iVar1 = iVar1 + -1) { *puVar2 = 0; puVar2 = puVar2 + 1; } } return param_1; } /* @00468c04 file=? name=FUN_00468c04 */ void __cdecl FUN_00468c04(int *param_1,byte param_2) { if (param_1 != (int *)0x0) { *param_1 = (int)&PTR_FUN_004f4b00; if ((int *)param_1[0xc] != (int *)0x0) { FUN_004022d0((int *)param_1[0xc]); param_1[0xc] = 0; } if (param_1[6] != 0) { if ((int *)param_1[0xb] != (int *)0x0) { FUN_00449d0c((int *)param_1[0xb],3); param_1[0xb] = 0; } param_1[6] = 0; } FUN_0044a0ac(param_1,0); if ((param_2 & 1) != 0) { FUN_004022d0(param_1); } } return; } /* @00468c68 file=? name=FUN_00468c68 */ undefined4 FUN_00468c68(void) { return 1; } /* @00468c74 file=? name=FUN_00468c74 */ void __cdecl FUN_00468c74(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_Video8BitBuffered__004f4a18,(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_004f4a2c); uVar3 = *(uint *)(param_1 + 0x1c); FUN_004dbb24(&DAT_00524e20,local_54,(char *)0x0); FUN_004dbb24(&DAT_00524e20,s_width___004f4a30,(char *)0x0); piVar2 = FUN_004db78c(&DAT_00524e20,uVar3); FUN_004dbb24(piVar2,&DAT_004f4a3d,(char *)0x0); uVar3 = *(uint *)(param_1 + 0x20); FUN_004dbb24(&DAT_00524e20,local_54,(char *)0x0); FUN_004dbb24(&DAT_00524e20,s_height___004f4a3f,(char *)0x0); piVar2 = FUN_004db78c(&DAT_00524e20,uVar3); FUN_004dbb24(piVar2,&DAT_004f4a4c,(char *)0x0); uVar3 = *(uint *)(param_1 + 0x24); FUN_004dbb24(&DAT_00524e20,local_54,(char *)0x0); FUN_004dbb24(&DAT_00524e20,s_maximumX___004f4a4e,(char *)0x0); piVar2 = FUN_004db78c(&DAT_00524e20,uVar3); FUN_004dbb24(piVar2,&DAT_004f4a5b,(char *)0x0); uVar3 = *(uint *)(param_1 + 0x28); FUN_004dbb24(&DAT_00524e20,local_54,(char *)0x0); FUN_004dbb24(&DAT_00524e20,s_maximumY___004f4a5d,(char *)0x0); piVar2 = FUN_004db78c(&DAT_00524e20,uVar3); FUN_004dbb24(piVar2,&DAT_004f4a6a,(char *)0x0); uVar3 = *(uint *)(param_1 + 0x30); FUN_004dbb24(&DAT_00524e20,local_54,(char *)0x0); FUN_004dbb24(&DAT_00524e20,s_changedLine__004f4a6c,(char *)0x0); uVar7 = FUN_004dbd4c(&DAT_00524e20,uVar3); FUN_004dbb24((int *)uVar7,&DAT_004f4a79,(char *)0x0); FUN_00449d50(*(uint **)(param_1 + 0x2c),local_54); FUN_0044a0cc(param_1,local_54); return; } /* @00468e78 file=? name=FUN_00468e78 */ void __cdecl FUN_00468e78(int param_1,int param_2,int param_3,int *param_4) { *param_4 = *(int *)(*(int *)(param_1 + 0x2c) + 8) + param_2 + param_3 * *(int *)(param_1 + 0x1c); return; } /* @00468e9c file=? name=FUN_00468e9c */ void __cdecl FUN_00468e9c(int param_1,int param_2,int param_3) { short *psVar1; int iVar2; iVar2 = param_3; if (param_3 < param_2) { iVar2 = param_2; param_2 = param_3; } psVar1 = (short *)(*(int *)(param_1 + 0x30) + param_2 * 2); *psVar1 = *psVar1 + 1; if (iVar2 < *(int *)(param_1 + 0x28)) { psVar1 = (short *)(*(int *)(param_1 + 0x30) + 2 + iVar2 * 2); *psVar1 = *psVar1 + -1; } return; } /* @00468ecc file=? name=FUN_00468ecc */ void __cdecl FUN_00468ecc(int param_1,byte param_2,undefined4 param_3,int param_4,int param_5,int param_6) { int iVar1; byte *local_8; if (*(int *)(param_1 + 0x14) != 0) { iVar1 = *(int *)(param_1 + 0x28) - param_6; FUN_00468e9c(param_1,iVar1,iVar1); FUN_00468e78(param_1,param_5,iVar1,(int *)&local_8); if (param_4 == 0) { *local_8 = 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; } } return; } /* @00468f40 file=? name=FUN_00468f40 */ void __cdecl FUN_00468f40(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; byte *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,0,param_4,param_5,param_6); } } else { iVar2 = param_1[10] - param_6; iVar1 = param_1[10] - param_8; FUN_00468e9c((int)param_1,iVar2,iVar1); 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_00468e78((int)param_1,param_5,iVar2,(int *)&local_10); 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 = (byte)param_2; } else if (param_4 == 1) { *local_10 = *local_10 & (byte)param_2; } else if (param_4 == 2) { *local_10 = *local_10 | (byte)param_2; } else if (param_4 == 3) { *local_10 = *local_10 ^ (byte)param_2; } local_10 = local_10 + param_1[7]; iVar1 = iVar1 + (iVar3 << 0xb) / local_c; if (0x800 < iVar1) { iVar1 = iVar1 + -0x800; local_10 = local_10 + 1; } } 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 = (byte)param_2; } else if (param_4 == 1) { *local_10 = *local_10 & (byte)param_2; } else if (param_4 == 2) { *local_10 = *local_10 | (byte)param_2; } else if (param_4 == 3) { *local_10 = *local_10 ^ (byte)param_2; } local_10 = local_10 + param_1[7]; iVar1 = iVar1 + (iVar3 << 0xb) / local_c; if (0x800 < iVar1) { iVar1 = iVar1 + -0x800; local_10 = local_10 + -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 = (byte)param_2; } else if (param_4 == 1) { *local_10 = *local_10 & (byte)param_2; } else if (param_4 == 2) { *local_10 = *local_10 | (byte)param_2; } else if (param_4 == 3) { *local_10 = *local_10 ^ (byte)param_2; } local_10 = local_10 + -param_1[7]; iVar1 = iVar1 + (iVar3 << 0xb) / local_c; if (0x800 < iVar1) { iVar1 = iVar1 + -0x800; local_10 = local_10 + 1; } } 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 = (byte)param_2; } else if (param_4 == 1) { *local_10 = *local_10 & (byte)param_2; } else if (param_4 == 2) { *local_10 = *local_10 | (byte)param_2; } else if (param_4 == 3) { *local_10 = *local_10 ^ (byte)param_2; } local_10 = local_10 + -param_1[7]; iVar1 = iVar1 + (iVar3 << 0xb) / local_c; if (0x800 < iVar1) { iVar1 = iVar1 + -0x800; local_10 = local_10 + -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 = (byte)param_2; } else if (param_4 == 1) { *local_10 = *local_10 & (byte)param_2; } else if (param_4 == 2) { *local_10 = *local_10 | (byte)param_2; } else if (param_4 == 3) { *local_10 = *local_10 ^ (byte)param_2; } local_10 = local_10 + 1; iVar1 = iVar1 + (local_c << 0xb) / iVar3; if (0x800 < iVar1) { iVar1 = iVar1 + -0x800; local_10 = local_10 + 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 = (byte)param_2; } else if (param_4 == 1) { *local_10 = *local_10 & (byte)param_2; } else if (param_4 == 2) { *local_10 = *local_10 | (byte)param_2; } else if (param_4 == 3) { *local_10 = *local_10 ^ (byte)param_2; } local_10 = local_10 + -1; iVar1 = iVar1 + (local_c << 0xb) / iVar3; if (0x800 < iVar1) { iVar1 = iVar1 + -0x800; local_10 = local_10 + 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 = (byte)param_2; } else if (param_4 == 1) { *local_10 = *local_10 & (byte)param_2; } else if (param_4 == 2) { *local_10 = *local_10 | (byte)param_2; } else if (param_4 == 3) { *local_10 = *local_10 ^ (byte)param_2; } local_10 = local_10 + 1; iVar1 = iVar1 + (local_c << 0xb) / iVar3; if (0x800 < iVar1) { iVar1 = iVar1 + -0x800; local_10 = local_10 + -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 = (byte)param_2; } else if (param_4 == 1) { *local_10 = *local_10 & (byte)param_2; } else if (param_4 == 2) { *local_10 = *local_10 | (byte)param_2; } else if (param_4 == 3) { *local_10 = *local_10 ^ (byte)param_2; } local_10 = local_10 + -1; iVar1 = iVar1 + (local_c << 0xb) / iVar3; if (0x800 < iVar1) { iVar1 = iVar1 + -0x800; local_10 = local_10 + -param_1[7]; } } } } } return; } /* @004693e0 file=? name=FUN_004693e0 */ void __cdecl FUN_004693e0(int param_1,byte param_2,undefined4 param_3,int param_4,int param_5,int param_6, int param_7,int param_8) { int iVar1; int iVar2; int iVar3; int iVar4; byte *local_8; iVar3 = param_5; if (*(int *)(param_1 + 0x14) != 0) { param_8 = *(int *)(param_1 + 0x28) - param_8; iVar2 = *(int *)(param_1 + 0x28) - param_6; if (param_7 < param_5) { param_5 = param_7; param_7 = iVar3; } iVar3 = iVar2; if (param_8 < iVar2) { iVar3 = param_8; param_8 = iVar2; } FUN_00468e9c(param_1,iVar3,param_8); FUN_00468e78(param_1,param_5,iVar3,(int *)&local_8); iVar4 = (param_7 - param_5) + 1; iVar3 = (param_8 - iVar3) + 1; iVar2 = *(int *)(param_1 + 0x1c) - iVar4; if (param_4 == 0) { for (; iVar1 = iVar4, 0 < iVar3; iVar3 = iVar3 + -1) { for (; 0 < iVar1; iVar1 = iVar1 + -1) { *local_8 = param_2; local_8 = local_8 + 1; } local_8 = local_8 + iVar2; } } else if (param_4 == 1) { for (; iVar1 = iVar4, 0 < iVar3; iVar3 = iVar3 + -1) { for (; 0 < iVar1; iVar1 = iVar1 + -1) { *local_8 = *local_8 & param_2; local_8 = local_8 + 1; } local_8 = local_8 + iVar2; } } else if (param_4 == 2) { for (; iVar1 = iVar4, 0 < iVar3; iVar3 = iVar3 + -1) { for (; 0 < iVar1; iVar1 = iVar1 + -1) { *local_8 = *local_8 | param_2; local_8 = local_8 + 1; } local_8 = local_8 + iVar2; } } else if (param_4 == 3) { for (; iVar1 = iVar4, 0 < iVar3; iVar3 = iVar3 + -1) { for (; 0 < iVar1; iVar1 = iVar1 + -1) { *local_8 = *local_8 ^ param_2; local_8 = local_8 + 1; } local_8 = local_8 + iVar2; } } } return; } /* @00469518 file=? name=FUN_00469518 */ undefined4 __cdecl FUN_00469518(int param_1) { return *(undefined4 *)(param_1 + 0x14); } /* @00469528 file=? name=FUN_00469528 */ void __cdecl FUN_00469528(int param_1,byte param_2,undefined4 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) { byte *pbVar1; uint uVar2; int iVar3; int iVar4; int iVar5; ushort *puVar6; byte *local_18; ushort *local_14; uint local_10; uint local_c; int local_8; if (*(int *)(param_1 + 0x14) != 0) { iVar3 = *(int *)(param_1 + 0x28) - param_7; iVar4 = *(int *)(param_8 + 0x10) + -1; iVar5 = iVar4 - param_10; local_8 = (param_11 - param_9) + 1; iVar4 = (iVar5 - (iVar4 - param_12)) + 1; local_14 = (ushort *) (*(int *)(param_8 + 0x18) + (param_9 >> 4) * 2 + *(int *)(param_8 + 0x14) * iVar5 * 2 ); local_10 = 1 << (0xf - ((byte)param_9 & 0xf) & 0x1f); FUN_00468e78(param_1,param_6,iVar3,(int *)&local_18); if (param_5 == 0x5a) { FUN_00468e9c(param_1,iVar3,iVar3 + local_8); for (; 0 < iVar4; iVar4 = iVar4 + -1) { iVar3 = *(int *)(param_8 + 0x14); pbVar1 = local_18 + 1; local_c = (uint)*local_14; puVar6 = local_14 + 1; uVar2 = local_10; for (iVar5 = local_8; 0 < iVar5; iVar5 = iVar5 + -1) { if (uVar2 == 0) { local_c = (uint)*puVar6; puVar6 = puVar6 + 1; uVar2 = 0x8000; } if ((local_c & uVar2) != 0) { if (param_4 == 0) { *local_18 = param_2; } else if (param_4 == 1) { *local_18 = *local_18 & param_2; } else if (param_4 == 2) { *local_18 = *local_18 | param_2; } else if (param_4 == 3) { *local_18 = *local_18 ^ param_2; } } uVar2 = (int)uVar2 >> 1; local_18 = local_18 + *(int *)(param_1 + 0x1c); } local_18 = pbVar1; local_14 = local_14 + -iVar3; } } else if (param_5 == 0xb4) { FUN_00468e9c(param_1,iVar3,iVar3 + iVar4); for (; 0 < iVar4; iVar4 = iVar4 + -1) { iVar3 = *(int *)(param_8 + 0x14); pbVar1 = local_18 + *(int *)(param_1 + 0x1c); local_c = (uint)*local_14; puVar6 = local_14 + 1; uVar2 = local_10; for (iVar5 = local_8; 0 < iVar5; iVar5 = iVar5 + -1) { if (uVar2 == 0) { local_c = (uint)*puVar6; puVar6 = puVar6 + 1; uVar2 = 0x8000; } if ((local_c & uVar2) != 0) { if (param_4 == 0) { *local_18 = param_2; } else if (param_4 == 1) { *local_18 = *local_18 & param_2; } else if (param_4 == 2) { *local_18 = *local_18 | param_2; } else if (param_4 == 3) { *local_18 = *local_18 ^ param_2; } } local_18 = local_18 + -1; uVar2 = (int)uVar2 >> 1; } local_18 = pbVar1; local_14 = local_14 + -iVar3; } } else if (param_5 == 0x10e) { FUN_00468e9c(param_1,iVar3 - (local_8 + -1),iVar3); for (; 0 < iVar4; iVar4 = iVar4 + -1) { iVar3 = *(int *)(param_8 + 0x14); pbVar1 = local_18 + -1; local_c = (uint)*local_14; puVar6 = local_14 + 1; uVar2 = local_10; for (iVar5 = local_8; 0 < iVar5; iVar5 = iVar5 + -1) { if (uVar2 == 0) { local_c = (uint)*puVar6; puVar6 = puVar6 + 1; uVar2 = 0x8000; } if ((local_c & uVar2) != 0) { if (param_4 == 0) { *local_18 = param_2; } else if (param_4 == 1) { *local_18 = *local_18 & param_2; } else if (param_4 == 2) { *local_18 = *local_18 | param_2; } else if (param_4 == 3) { *local_18 = *local_18 ^ param_2; } } uVar2 = (int)uVar2 >> 1; local_18 = local_18 + -*(int *)(param_1 + 0x1c); } local_18 = pbVar1; local_14 = local_14 + -iVar3; } } else { FUN_00468e9c(param_1,(iVar3 - iVar4) + 1,iVar3); for (; 0 < iVar4; iVar4 = iVar4 + -1) { iVar3 = *(int *)(param_8 + 0x14); pbVar1 = local_18 + -*(int *)(param_1 + 0x1c); local_c = (uint)*local_14; puVar6 = local_14 + 1; uVar2 = local_10; for (iVar5 = local_8; 0 < iVar5; iVar5 = iVar5 + -1) { if (uVar2 == 0) { local_c = (uint)*puVar6; puVar6 = puVar6 + 1; uVar2 = 0x8000; } if ((local_c & uVar2) != 0) { if (param_4 == 0) { *local_18 = param_2; } else if (param_4 == 1) { *local_18 = *local_18 & param_2; } else if (param_4 == 2) { *local_18 = *local_18 | param_2; } else if (param_4 == 3) { *local_18 = *local_18 ^ param_2; } } local_18 = local_18 + 1; uVar2 = (int)uVar2 >> 1; } local_18 = pbVar1; local_14 = local_14 + -iVar3; } } } return; } /* @004698a4 file=? name=FUN_004698a4 */ void __cdecl FUN_004698a4(int param_1,byte param_2,byte param_3,undefined4 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; uint uVar2; byte bVar3; int iVar4; int iVar5; int iVar6; byte *local_1c; ushort *local_18; ushort *local_14; uint local_10; uint local_c; int local_8; if (*(int *)(param_1 + 0x14) != 0) { iVar4 = *(int *)(param_1 + 0x28) - param_8; iVar5 = *(int *)(param_9 + 0x10) + -1; iVar6 = iVar5 - param_11; local_8 = (param_12 - param_10) + 1; iVar5 = (iVar6 - (iVar5 - param_13)) + 1; local_14 = (ushort *) (*(int *)(param_9 + 0x18) + (param_10 >> 4) * 2 + *(int *)(param_9 + 0x14) * iVar6 * 2); local_10 = 1 << (0xf - ((byte)param_10 & 0xf) & 0x1f); FUN_00468e78(param_1,param_7,iVar4,(int *)&local_1c); if (param_6 == 0x5a) { FUN_00468e9c(param_1,iVar4,iVar4 + local_8); for (; 0 < iVar5; iVar5 = iVar5 + -1) { iVar4 = *(int *)(param_9 + 0x14); pbVar1 = local_1c + 1; local_c = (uint)*local_14; local_18 = local_14 + 1; uVar2 = local_10; for (iVar6 = local_8; 0 < iVar6; iVar6 = iVar6 + -1) { if (uVar2 == 0) { uVar2 = 0x8000; local_c = (uint)*local_18; local_18 = local_18 + 1; } bVar3 = param_3; if ((local_c & uVar2) != 0) { bVar3 = param_2; } if (param_5 == 0) { *local_1c = bVar3; } else if (param_5 == 1) { *local_1c = *local_1c & bVar3; } else if (param_5 == 2) { *local_1c = *local_1c | bVar3; } else if (param_5 == 3) { *local_1c = *local_1c ^ bVar3; } uVar2 = (int)uVar2 >> 1; local_1c = local_1c + *(int *)(param_1 + 0x1c); } local_1c = pbVar1; local_14 = local_14 + -iVar4; } } else if (param_6 == 0xb4) { FUN_00468e9c(param_1,iVar4,iVar4 + iVar5); for (; 0 < iVar5; iVar5 = iVar5 + -1) { iVar4 = *(int *)(param_9 + 0x14); pbVar1 = local_1c + *(int *)(param_1 + 0x1c); local_c = (uint)*local_14; local_18 = local_14 + 1; uVar2 = local_10; for (iVar6 = local_8; 0 < iVar6; iVar6 = iVar6 + -1) { if (uVar2 == 0) { uVar2 = 0x8000; local_c = (uint)*local_18; local_18 = local_18 + 1; } bVar3 = param_3; if ((local_c & uVar2) != 0) { bVar3 = param_2; } if (param_5 == 0) { *local_1c = bVar3; } else if (param_5 == 1) { *local_1c = *local_1c & bVar3; } else if (param_5 == 2) { *local_1c = *local_1c | bVar3; } else if (param_5 == 3) { *local_1c = *local_1c ^ bVar3; } local_1c = local_1c + -1; uVar2 = (int)uVar2 >> 1; } local_1c = pbVar1; local_14 = local_14 + -iVar4; } } else if (param_6 == 0x10e) { FUN_00468e9c(param_1,iVar4 - (local_8 + -1),iVar4); for (; 0 < iVar5; iVar5 = iVar5 + -1) { iVar4 = *(int *)(param_9 + 0x14); pbVar1 = local_1c + -1; local_c = (uint)*local_14; local_18 = local_14 + 1; uVar2 = local_10; for (iVar6 = local_8; 0 < iVar6; iVar6 = iVar6 + -1) { if (uVar2 == 0) { uVar2 = 0x8000; local_c = (uint)*local_18; local_18 = local_18 + 1; } bVar3 = param_3; if ((local_c & uVar2) != 0) { bVar3 = param_2; } if (param_5 == 0) { *local_1c = bVar3; } else if (param_5 == 1) { *local_1c = *local_1c & bVar3; } else if (param_5 == 2) { *local_1c = *local_1c | bVar3; } else if (param_5 == 3) { *local_1c = *local_1c ^ bVar3; } uVar2 = (int)uVar2 >> 1; local_1c = local_1c + -*(int *)(param_1 + 0x1c); } local_1c = pbVar1; local_14 = local_14 + -iVar4; } } else { FUN_00468e9c(param_1,(iVar4 - iVar5) + 1,iVar4); for (; 0 < iVar5; iVar5 = iVar5 + -1) { iVar4 = *(int *)(param_9 + 0x14); pbVar1 = local_1c + -*(int *)(param_1 + 0x1c); local_c = (uint)*local_14; local_18 = local_14 + 1; uVar2 = local_10; for (iVar6 = local_8; 0 < iVar6; iVar6 = iVar6 + -1) { if (uVar2 == 0) { uVar2 = 0x8000; local_c = (uint)*local_18; local_18 = local_18 + 1; } bVar3 = param_3; if ((local_c & uVar2) != 0) { bVar3 = param_2; } if (param_5 == 0) { *local_1c = bVar3; } else if (param_5 == 1) { *local_1c = *local_1c & bVar3; } else if (param_5 == 2) { *local_1c = *local_1c | bVar3; } else if (param_5 == 3) { *local_1c = *local_1c ^ bVar3; } local_1c = local_1c + 1; uVar2 = (int)uVar2 >> 1; } local_1c = pbVar1; local_14 = local_14 + -iVar4; } } } return; } /* @00469c3c file=? name=FUN_00469c3c */ void __cdecl FUN_00469c3c(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 param_10,int param_11,int param_12,int param_13 ) { byte *pbVar1; byte *pbVar2; byte bVar3; int iVar4; int iVar5; int iVar6; byte *local_10; byte *local_c; int local_8; if (*(int *)(param_1 + 0x14) != 0) { iVar4 = *(int *)(param_1 + 0x28) - param_8; iVar5 = (param_9[1] + -1) - param_11; local_8 = (param_12 - param_10) + 1; iVar6 = (iVar5 - ((param_9[1] + -1) - param_13)) + 1; local_c = (byte *)(param_10 + param_9[2] + *param_9 * iVar5); FUN_00468e78(param_1,param_7,iVar4,(int *)&local_10); if (param_5 == 0) { if (param_6 == 0x5a) { FUN_00468e9c(param_1,iVar4,iVar4 + local_8); for (; 0 < iVar6; iVar6 = iVar6 + -1) { pbVar1 = local_c + -*param_9; pbVar2 = local_10 + 1; for (iVar4 = local_8; 0 < iVar4; iVar4 = iVar4 + -1) { bVar3 = *local_c; local_c = local_c + 1; if (bVar3 != 0) { if (param_4 == 0) { *local_10 = bVar3; } else if (param_4 == 1) { *local_10 = *local_10 & bVar3; } else if (param_4 == 2) { *local_10 = *local_10 | bVar3; } else if (param_4 == 3) { *local_10 = *local_10 ^ bVar3; } } local_10 = local_10 + *(int *)(param_1 + 0x1c); } local_10 = pbVar2; local_c = pbVar1; } } else if (param_6 == 0xb4) { FUN_00468e9c(param_1,iVar4,iVar4 + iVar6); for (; 0 < iVar6; iVar6 = iVar6 + -1) { pbVar1 = local_c + -*param_9; pbVar2 = local_10 + *(int *)(param_1 + 0x1c); for (iVar4 = local_8; 0 < iVar4; iVar4 = iVar4 + -1) { bVar3 = *local_c; local_c = local_c + 1; if (bVar3 != 0) { if (param_4 == 0) { *local_10 = bVar3; } else if (param_4 == 1) { *local_10 = *local_10 & bVar3; } else if (param_4 == 2) { *local_10 = *local_10 | bVar3; } else if (param_4 == 3) { *local_10 = *local_10 ^ bVar3; } } local_10 = local_10 + -1; } local_10 = pbVar2; local_c = pbVar1; } } else if (param_6 == 0x10e) { FUN_00468e9c(param_1,iVar4 - (local_8 + -1),iVar4); for (; 0 < iVar6; iVar6 = iVar6 + -1) { pbVar1 = local_c + -*param_9; pbVar2 = local_10 + -1; for (iVar4 = local_8; 0 < iVar4; iVar4 = iVar4 + -1) { bVar3 = *local_c; local_c = local_c + 1; if (bVar3 != 0) { if (param_4 == 0) { *local_10 = bVar3; } else if (param_4 == 1) { *local_10 = *local_10 & bVar3; } else if (param_4 == 2) { *local_10 = *local_10 | bVar3; } else if (param_4 == 3) { *local_10 = *local_10 ^ bVar3; } } local_10 = local_10 + -*(int *)(param_1 + 0x1c); } local_10 = pbVar2; local_c = pbVar1; } } else { FUN_00468e9c(param_1,(iVar4 - iVar6) + 1,iVar4); for (; 0 < iVar6; iVar6 = iVar6 + -1) { pbVar1 = local_c + -*param_9; pbVar2 = local_10 + -*(int *)(param_1 + 0x1c); for (iVar4 = local_8; 0 < iVar4; iVar4 = iVar4 + -1) { bVar3 = *local_c; local_c = local_c + 1; if (bVar3 != 0) { if (param_4 == 0) { *local_10 = bVar3; } else if (param_4 == 1) { *local_10 = *local_10 & bVar3; } else if (param_4 == 2) { *local_10 = *local_10 | bVar3; } else if (param_4 == 3) { *local_10 = *local_10 ^ bVar3; } } local_10 = local_10 + 1; } local_10 = pbVar2; local_c = pbVar1; } } } else if (param_6 == 0x5a) { FUN_00468e9c(param_1,iVar4,iVar4 + local_8); for (; 0 < iVar6; iVar6 = iVar6 + -1) { pbVar1 = local_c + -*param_9; pbVar2 = local_10 + 1; for (iVar4 = local_8; 0 < iVar4; iVar4 = iVar4 + -1) { bVar3 = *local_c; local_c = local_c + 1; if (param_4 == 0) { *local_10 = bVar3; } else if (param_4 == 1) { *local_10 = *local_10 & bVar3; } else if (param_4 == 2) { *local_10 = *local_10 | bVar3; } else if (param_4 == 3) { *local_10 = *local_10 ^ bVar3; } local_10 = local_10 + *(int *)(param_1 + 0x1c); } local_10 = pbVar2; local_c = pbVar1; } } else if (param_6 == 0xb4) { FUN_00468e9c(param_1,iVar4,iVar4 + iVar6); for (; 0 < iVar6; iVar6 = iVar6 + -1) { pbVar1 = local_c + -*param_9; pbVar2 = local_10 + *(int *)(param_1 + 0x1c); for (iVar4 = local_8; 0 < iVar4; iVar4 = iVar4 + -1) { bVar3 = *local_c; local_c = local_c + 1; if (param_4 == 0) { *local_10 = bVar3; } else if (param_4 == 1) { *local_10 = *local_10 & bVar3; } else if (param_4 == 2) { *local_10 = *local_10 | bVar3; } else if (param_4 == 3) { *local_10 = *local_10 ^ bVar3; } local_10 = local_10 + -1; } local_10 = pbVar2; local_c = pbVar1; } } else if (param_6 == 0x10e) { FUN_00468e9c(param_1,iVar4 - (local_8 + -1),iVar4); for (; 0 < iVar6; iVar6 = iVar6 + -1) { pbVar1 = local_c + -*param_9; pbVar2 = local_10 + -1; for (iVar4 = local_8; 0 < iVar4; iVar4 = iVar4 + -1) { bVar3 = *local_c; local_c = local_c + 1; if (param_4 == 0) { *local_10 = bVar3; } else if (param_4 == 1) { *local_10 = *local_10 & bVar3; } else if (param_4 == 2) { *local_10 = *local_10 | bVar3; } else if (param_4 == 3) { *local_10 = *local_10 ^ bVar3; } local_10 = local_10 + -*(int *)(param_1 + 0x1c); } local_10 = pbVar2; local_c = pbVar1; } } else { FUN_00468e9c(param_1,(iVar4 - iVar6) + 1,iVar4); for (; 0 < iVar6; iVar6 = iVar6 + -1) { pbVar1 = local_c + -*param_9; pbVar2 = local_10 + -*(int *)(param_1 + 0x1c); for (iVar4 = local_8; 0 < iVar4; iVar4 = iVar4 + -1) { bVar3 = *local_c; local_c = local_c + 1; if (param_4 == 0) { *local_10 = bVar3; } else if (param_4 == 1) { *local_10 = *local_10 & bVar3; } else if (param_4 == 2) { *local_10 = *local_10 | bVar3; } else if (param_4 == 3) { *local_10 = *local_10 ^ bVar3; } local_10 = local_10 + 1; } local_10 = pbVar2; local_c = pbVar1; } } } return; } /* @0046a0e4 file=? name=FUN_0046a0e4 */ void __cdecl FUN_0046a0e4(int param_1,byte param_2,undefined4 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; byte *pbVar2; char cVar3; int iVar4; int iVar5; int iVar6; byte *local_10; char *local_c; int local_8; if (*(int *)(param_1 + 0x14) != 0) { iVar4 = *(int *)(param_1 + 0x28) - param_7; iVar5 = (param_8[1] + -1) - param_10; local_8 = (param_11 - param_9) + 1; iVar6 = (iVar5 - ((param_8[1] + -1) - param_12)) + 1; local_c = (char *)(param_8[2] + param_9 + *param_8 * iVar5); FUN_00468e78(param_1,param_6,iVar4,(int *)&local_10); if (param_5 == 0x5a) { FUN_00468e9c(param_1,iVar4,iVar4 + local_8); for (; 0 < iVar6; iVar6 = iVar6 + -1) { pcVar1 = local_c + -*param_8; pbVar2 = local_10 + 1; for (iVar4 = local_8; 0 < iVar4; iVar4 = iVar4 + -1) { cVar3 = *local_c; local_c = local_c + 1; if (cVar3 != '\0') { if (param_4 == 0) { *local_10 = param_2; } else if (param_4 == 1) { *local_10 = *local_10 & param_2; } else if (param_4 == 2) { *local_10 = *local_10 | param_2; } else if (param_4 == 3) { *local_10 = *local_10 ^ param_2; } } local_10 = local_10 + *(int *)(param_1 + 0x1c); } local_10 = pbVar2; local_c = pcVar1; } } else if (param_5 == 0xb4) { FUN_00468e9c(param_1,iVar4,iVar4 + iVar6); for (; 0 < iVar6; iVar6 = iVar6 + -1) { pcVar1 = local_c + -*param_8; pbVar2 = local_10 + *(int *)(param_1 + 0x1c); for (iVar4 = local_8; 0 < iVar4; iVar4 = iVar4 + -1) { cVar3 = *local_c; local_c = local_c + 1; if (cVar3 != '\0') { if (param_4 == 0) { *local_10 = param_2; } else if (param_4 == 1) { *local_10 = *local_10 & param_2; } else if (param_4 == 2) { *local_10 = *local_10 | param_2; } else if (param_4 == 3) { *local_10 = *local_10 ^ param_2; } } local_10 = local_10 + -1; } local_10 = pbVar2; local_c = pcVar1; } } else if (param_5 == 0x10e) { FUN_00468e9c(param_1,iVar4 - local_8,iVar4); for (; 0 < iVar6; iVar6 = iVar6 + -1) { pcVar1 = local_c + -*param_8; pbVar2 = local_10 + -1; for (iVar4 = local_8; 0 < iVar4; iVar4 = iVar4 + -1) { cVar3 = *local_c; local_c = local_c + 1; if (cVar3 != '\0') { if (param_4 == 0) { *local_10 = param_2; } else if (param_4 == 1) { *local_10 = *local_10 & param_2; } else if (param_4 == 2) { *local_10 = *local_10 | param_2; } else if (param_4 == 3) { *local_10 = *local_10 ^ param_2; } } local_10 = local_10 + -*(int *)(param_1 + 0x1c); } local_10 = pbVar2; local_c = pcVar1; } } else { FUN_00468e9c(param_1,(iVar4 - iVar6) + 1,iVar4); for (; 0 < iVar6; iVar6 = iVar6 + -1) { pcVar1 = local_c + -*param_8; pbVar2 = local_10 + -*(int *)(param_1 + 0x1c); for (iVar4 = local_8; 0 < iVar4; iVar4 = iVar4 + -1) { cVar3 = *local_c; local_c = local_c + 1; if (cVar3 != '\0') { if (param_4 == 0) { *local_10 = param_2; } else if (param_4 == 1) { *local_10 = *local_10 & param_2; } else if (param_4 == 2) { *local_10 = *local_10 | param_2; } else if (param_4 == 3) { *local_10 = *local_10 ^ param_2; } } local_10 = local_10 + 1; } local_10 = pbVar2; local_c = pcVar1; } } } return; } /* @0046a3a8 file=? name=FUN_0046a3a8 */ undefined4 * __cdecl FUN_0046a3a8(undefined4 *param_1,undefined4 *param_2,char *param_3,undefined4 param_4) { FUN_0044a2d0(param_1,param_2,param_3); *param_1 = &PTR_FUN_004f4ad0; param_1[10] = param_4; param_1[0xb] = param_1[3] - param_1[1]; param_1[0xc] = param_1[4] - param_1[2]; if (((param_1[10] == 0x5a) || (param_1[10] == 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]; } return param_1; } /* @0046a418 file=? name=FUN_0046a418 */ void __cdecl FUN_0046a418(int *param_1,byte param_2) { if (param_1 != (int *)0x0) { *param_1 = (int)&PTR_FUN_004f4ad0; FUN_0044a348(param_1,0); if ((param_2 & 1) != 0) { FUN_004022d0(param_1); } } return; } /* @0046a444 file=? name=FUN_0046a444 */ undefined4 FUN_0046a444(void) { return 1; } /* @0046a450 file=? name=FUN_0046a450 */ void __cdecl FUN_0046a450(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_L4BytePort__004f4a7b,(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_004f4a88); uVar3 = *(uint *)(param_1 + 0x28); FUN_004dbb24(&DAT_00524e20,local_54,(char *)0x0); FUN_004dbb24(&DAT_00524e20,s_baseRotation___004f4a8c,(char *)0x0); piVar2 = FUN_004db78c(&DAT_00524e20,uVar3); FUN_004dbb24(piVar2,&DAT_004f4a9b,(char *)0x0); uVar3 = *(uint *)(param_1 + 0x2c); FUN_004dbb24(&DAT_00524e20,local_54,(char *)0x0); FUN_004dbb24(&DAT_00524e20,s_maximumX___004f4a9d,(char *)0x0); piVar2 = FUN_004db78c(&DAT_00524e20,uVar3); FUN_004dbb24(piVar2,&DAT_004f4aac,(char *)0x0); uVar3 = *(uint *)(param_1 + 0x30); FUN_004dbb24(&DAT_00524e20,local_54,(char *)0x0); FUN_004dbb24(&DAT_00524e20,s_maximumY___004f4aae,(char *)0x0); piVar2 = FUN_004db78c(&DAT_00524e20,uVar3); FUN_004dbb24(piVar2,&DAT_004f4abd,(char *)0x0); puVar7 = (uint *)(param_1 + 4); FUN_004dbb24(&DAT_00524e20,local_54,(char *)0x0); FUN_004dbb24(&DAT_00524e20,s_bounds___004f4abf,(char *)0x0); piVar2 = (int *)FUN_00407d78(&DAT_00524e20,puVar7); FUN_004dbb24(piVar2,&DAT_004f4ace,(char *)0x0); FUN_004d9c70(&DAT_00524e20); FUN_0044a374(param_1,local_54); return; } /* @0046a604 file=? name=FUN_0046a604 */ void __cdecl FUN_0046a604(int param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5) { int local_c; int local_8; if (*(int *)(param_1 + 0x14) != 0) { FUN_0046aa18(param_1,&local_8,&local_c,param_4,param_5); (**(code **)(**(int **)(param_1 + 0x14) + 0x14)) (*(int **)(param_1 + 0x14),param_2,0,param_3,local_8 + *(int *)(param_1 + 4), local_c + *(int *)(param_1 + 8)); } return; } /* @0046a65c file=? name=FUN_0046a65c */ void __cdecl FUN_0046a65c(int param_1,undefined4 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_0046aa18(param_1,&local_8,&local_c,param_4,param_5); FUN_0046aa18(param_1,&local_10,&local_14,param_6,param_7); (**(code **)(**(int **)(param_1 + 0x14) + 0x18)) (*(int **)(param_1 + 0x14),param_2,0,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; } /* @0046a6dc file=? name=FUN_0046a6dc */ void __cdecl FUN_0046a6dc(int param_1,undefined4 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_0046aa18(param_1,&local_8,&local_c,param_4,param_5); FUN_0046aa18(param_1,&local_10,&local_14,param_6,param_7); (**(code **)(**(int **)(param_1 + 0x14) + 0x1c)) (*(int **)(param_1 + 0x14),param_2,0,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; } /* @0046a758 file=? name=FUN_0046a758 */ void FUN_0046a758(void) { return; } /* @0046a760 file=? name=FUN_0046a760 */ void __cdecl FUN_0046a760(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 + 0x18) != 0)) { FUN_0046aa18(param_1,&local_8,&local_c,param_5,param_6); for (iVar1 = param_4 + *(int *)(param_1 + 0x28); iVar1 < 0; iVar1 = iVar1 + 0x168) { } for (; 0x167 < iVar1; iVar1 = iVar1 + -0x168) { } (**(code **)(**(int **)(param_1 + 0x14) + 0x24)) (*(int **)(param_1 + 0x14),param_2,0,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; } /* @0046a80c file=? name=FUN_0046a80c */ void __cdecl FUN_0046a80c(int param_1,undefined4 param_2,undefined4 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_0046aa18(param_1,&local_8,&local_c,param_6,param_7); for (iVar1 = param_5 + *(int *)(param_1 + 0x28); iVar1 < 0; iVar1 = iVar1 + 0x168) { } for (; 0x167 < iVar1; iVar1 = iVar1 + -0x168) { } (**(code **)(**(int **)(param_1 + 0x14) + 0x28)) (*(int **)(param_1 + 0x14),param_2,param_3,0,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; } /* @0046a8bc file=? name=FUN_0046a8bc */ void __cdecl FUN_0046a8bc(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_0046aa18(param_1,&local_8,&local_c,param_5,param_6); for (iVar1 = param_4 + *(int *)(param_1 + 0x28); iVar1 < 0; iVar1 = iVar1 + 0x168) { } for (; 0x167 < iVar1; iVar1 = iVar1 + -0x168) { } (**(code **)(**(int **)(param_1 + 0x14) + 0x2c)) (*(int **)(param_1 + 0x14),0,0,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; } /* @0046a96c file=? name=FUN_0046a96c */ void __cdecl FUN_0046a96c(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_0046aa18(param_1,&local_8,&local_c,param_5,param_6); for (iVar1 = param_4 + *(int *)(param_1 + 0x28); iVar1 < 0; iVar1 = iVar1 + 0x168) { } for (; 0x167 < iVar1; iVar1 = iVar1 + -0x168) { } (**(code **)(**(int **)(param_1 + 0x14) + 0x30)) (*(int **)(param_1 + 0x14),param_2,0,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; } /* @0046aa18 file=? name=FUN_0046aa18 */ void __cdecl FUN_0046aa18(int param_1,int *param_2,int *param_3,int param_4,int param_5) { int iVar1; iVar1 = *(int *)(param_1 + 0x28); if (iVar1 == 0x5a) { *param_2 = param_5; *param_3 = *(int *)(param_1 + 0x30) - param_4; } else if (iVar1 == 0xb4) { *param_2 = *(int *)(param_1 + 0x2c) - param_4; *param_3 = *(int *)(param_1 + 0x30) - param_5; } else if (iVar1 == 0x10e) { *param_2 = *(int *)(param_1 + 0x2c) - param_5; *param_3 = param_4; } else { *param_2 = param_4; *param_3 = param_5; } return; } /* @0046aa78 file=? name=FUN_0046aa78 */ void __cdecl FUN_0046aa78(undefined4 *param_1,undefined4 param_2,undefined4 param_3) { param_1[2] = param_2; param_1[1] = param_3; *param_1 = 0; return; } /* @0046aa90 file=? name=FUN_0046aa90 */ void __cdecl FUN_0046aa90(uint *param_1) { *param_1 = *param_1 & ~param_1[2]; return; } /* @0046aaa0 file=? name=FUN_0046aaa0 */ void __cdecl FUN_0046aaa0(uint *param_1) { *param_1 = *param_1 & param_1[2]; return; } /* @0046aab0 file=? name=FUN_0046aab0 */ undefined4 __cdecl FUN_0046aab0(uint *param_1) { uint uVar1; uint uVar2; uVar2 = param_1[1]; uVar1 = 1; while( true ) { if ((int)uVar2 < 1) { return 0; } if (((param_1[2] & uVar1) != 0) && (*param_1 = *param_1 ^ uVar1, (*param_1 & uVar1) != 0)) break; uVar2 = uVar2 - 1; uVar1 = uVar1 * 2; } return 1; } /* @0046aae0 file=? name=FUN_0046aae0 */ undefined4 __cdecl FUN_0046aae0(uint *param_1) { uint uVar1; uint uVar2; uVar1 = 1; uVar2 = param_1[1]; while( true ) { if ((int)uVar2 < 1) { return 0; } if (((uVar1 & ~param_1[2]) != 0) && (*param_1 = *param_1 ^ uVar1, (*param_1 & uVar1) != 0)) break; uVar2 = uVar2 - 1; uVar1 = uVar1 * 2; } return 1; } /* @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; }