2064 lines
62 KiB
C
2064 lines
62 KiB
C
#include "pinball.h"
|
|
|
|
|
|
undefined4 * __thiscall FUN_01019749(void *this,int param_1,int param_2,int param_3)
|
|
|
|
{
|
|
FUN_010190b3(this,param_1,param_2,param_3);
|
|
*(undefined4 *)this = 0x1002614;
|
|
return (undefined4 *)this;
|
|
}
|
|
|
|
|
|
|
|
undefined4 * __thiscall FUN_01019771(void *this,int param_1,int param_2)
|
|
|
|
{
|
|
FUN_010190b3(this,param_1,param_2,0);
|
|
*(undefined4 *)this = 0x1002614;
|
|
*(undefined *)((int)this + 0x4e) = 0;
|
|
if (*(int *)((int)this + 0x22) != 0) {
|
|
FUN_010139b6(*(int *)((int)this + 0x1a),*(int *)(*(int *)(*(int *)((int)this + 0x22) + 4) + 8));
|
|
}
|
|
FUN_010182e4(this,param_2);
|
|
return (undefined4 *)this;
|
|
}
|
|
|
|
|
|
|
|
undefined4 * __thiscall FUN_010197bb(void *this,int param_1,int param_2)
|
|
|
|
{
|
|
float *pfVar1;
|
|
|
|
FUN_01019749(this,param_1,param_2,0);
|
|
*(undefined4 *)this = 0x1002630;
|
|
*(undefined *)((int)this + 0x4e) = 0;
|
|
*(undefined4 *)((int)this + 0x5b) = 0;
|
|
if (*(int *)((int)this + 0x22) != 0) {
|
|
FUN_010139b6(*(int *)((int)this + 0x1a),0);
|
|
}
|
|
FUN_010182e4(this,param_2);
|
|
pfVar1 = FUN_0100978e(param_2,0,0x197);
|
|
*(float *)((int)this + 0x57) = *pfVar1;
|
|
return (undefined4 *)this;
|
|
}
|
|
|
|
|
|
|
|
// Library Function - Multiple Matches With Same Base Name
|
|
// Name: moneypunct<>
|
|
// Libraries: Visual Studio 2012 Release, Visual Studio 2015 Release
|
|
|
|
undefined4 * __thiscall moneypunct__(void *this,int param_1,int param_2)
|
|
|
|
{
|
|
FUN_01019749(this,param_1,param_2,1);
|
|
*(undefined4 *)this = 0x100264c;
|
|
return (undefined4 *)this;
|
|
}
|
|
|
|
|
|
|
|
undefined4 * __thiscall FUN_0101983d(void *this,int param_1,int param_2)
|
|
|
|
{
|
|
FUN_010190b3(this,param_1,param_2,1);
|
|
*(undefined4 *)((int)this + 6) = 0;
|
|
*(undefined4 *)((int)this + 0x56) = 0;
|
|
*(undefined4 *)((int)this + 0x5a) = 0;
|
|
*(undefined4 *)this = 0x1002668;
|
|
*(undefined4 *)((int)this + 0x4e) = 0x3f333333;
|
|
*(undefined4 *)((int)this + 0x52) = 0x3dcccccd;
|
|
*(undefined4 *)((int)this + 0x42) = 0x4e6e6b28;
|
|
return (undefined4 *)this;
|
|
}
|
|
|
|
|
|
|
|
undefined4 * __thiscall FUN_01019884(undefined4 *puParm1,int *param_1,int param_2,int param_3)
|
|
|
|
{
|
|
float fVar1;
|
|
float *pfVar2;
|
|
void *this;
|
|
bool in_PF;
|
|
undefined local_5c [12];
|
|
undefined4 *local_50;
|
|
undefined4 local_4c;
|
|
undefined4 local_44;
|
|
float local_40;
|
|
undefined4 local_3c;
|
|
undefined4 uStack56;
|
|
undefined4 uStack52;
|
|
undefined4 local_30;
|
|
undefined4 local_2c;
|
|
undefined4 local_28;
|
|
undefined4 local_14;
|
|
undefined4 uStack16;
|
|
undefined4 uStack12;
|
|
undefined4 local_8;
|
|
|
|
FUN_010190b3(puParm1,(int)param_1,param_2,0);
|
|
*puParm1 = 0x1002690;
|
|
*(uint *)((int)puParm1 + 0x52) = (uint)(param_3 == 0);
|
|
if (param_3 == 0) {
|
|
*(undefined *)((int)puParm1 + 5) = 0;
|
|
}
|
|
*(undefined4 *)((int)puParm1 + 0x5a) = 0x3fc00000;
|
|
*(undefined4 *)((int)puParm1 + 0x5e) = 0x3d4ccccd;
|
|
*(undefined4 *)((int)puParm1 + 6) = 0;
|
|
*(undefined4 *)((int)puParm1 + 0x56) = 0;
|
|
*(undefined4 *)((int)puParm1 + 0x4e) = 0;
|
|
pfVar2 = FUN_0100978e(param_2,0,0x132);
|
|
fVar1 = *pfVar2;
|
|
pfVar2 = FUN_0100978e(param_2,0,0x131);
|
|
*(float *)((int)puParm1 + 0x6a) = *pfVar2;
|
|
FUN_0100950a(param_2,0,local_5c);
|
|
*(undefined4 *)((int)puParm1 + 0x46) = local_4c;
|
|
*(undefined4 *)((int)puParm1 + 0x4a) = local_2c;
|
|
*(undefined4 *)((int)puParm1 + 0x6e) = *local_50;
|
|
*(undefined4 *)((int)puParm1 + 0x72) = local_50[1];
|
|
*(float *)((int)puParm1 + 0x7a) = fVar1 * (float)local_50[2];
|
|
if (!in_PF) {
|
|
*(undefined4 *)((int)puParm1 + 0x7a) = 0x3a83126f;
|
|
}
|
|
this = operator_new(0x25);
|
|
if (this == (void *)0x0) {
|
|
param_1 = (int *)0x0;
|
|
}
|
|
else {
|
|
param_1 = FUN_01015898(this,puParm1,(int)puParm1 + 5,local_28,local_50,
|
|
*(float *)((int)puParm1 + 0x7a));
|
|
}
|
|
if (param_1 != (int *)0x0) {
|
|
(**(code **)(*param_1 + 8))();
|
|
FUN_0100acf3((void *)((int)puParm1 + 0x2a),(int)param_1);
|
|
}
|
|
fVar1 = (float)local_50[2];
|
|
*(float *)((int)puParm1 + 0x7a) = fVar1 * fVar1;
|
|
pfVar2 = FUN_0100978e(param_2,0,0x198);
|
|
*(float *)((int)puParm1 + 0x62) = pfVar2[2];
|
|
*(float *)((int)puParm1 + 0x96) = local_40 * 0.01000000;
|
|
*(undefined4 *)((int)puParm1 + 0x82) = local_3c;
|
|
*(undefined4 *)((int)puParm1 + 0x86) = uStack56;
|
|
*(undefined4 *)((int)puParm1 + 0x8e) = local_30;
|
|
*(undefined4 *)((int)puParm1 + 0x8a) = uStack52;
|
|
*(undefined4 *)((int)puParm1 + 0x92) = local_44;
|
|
local_8 = *(undefined4 *)((int)puParm1 + 0x7a);
|
|
local_14 = *(undefined4 *)((int)puParm1 + 0x6e);
|
|
uStack16 = *(undefined4 *)((int)puParm1 + 0x72);
|
|
*(int *)((int)puParm1 + 0x9a) = (int)puParm1 + 5;
|
|
uStack12 = *(undefined4 *)((int)puParm1 + 0x76);
|
|
*(undefined4 **)((int)puParm1 + 0xa2) = puParm1;
|
|
*(undefined4 *)((int)puParm1 + 0x9e) = local_28;
|
|
FUN_0100b9c7(&local_14,0,(int *)((int)puParm1 + 0x9a));
|
|
return puParm1;
|
|
}
|
|
|
|
|
|
|
|
undefined4 * __thiscall FUN_01019a1c(undefined4 *puParm1,int *param_1,int param_2)
|
|
|
|
{
|
|
float fVar1;
|
|
float *pfVar2;
|
|
void *this;
|
|
undefined4 uVar3;
|
|
bool in_PF;
|
|
undefined local_60 [12];
|
|
undefined4 *local_54;
|
|
undefined4 local_2c;
|
|
undefined4 local_18;
|
|
undefined4 uStack20;
|
|
undefined4 uStack16;
|
|
undefined4 local_c;
|
|
undefined4 *local_8;
|
|
|
|
FUN_010190b3(puParm1,(int)param_1,param_2,0);
|
|
*puParm1 = 0x10026ac;
|
|
*(undefined4 *)((int)puParm1 + 0x5e) = 0x3d4ccccd;
|
|
*(undefined4 *)((int)puParm1 + 6) = 0;
|
|
*(undefined4 *)((int)puParm1 + 0x56) = 0;
|
|
*(undefined4 *)((int)puParm1 + 0x4e) = 0;
|
|
pfVar2 = FUN_0100978e(param_2,0,0x197);
|
|
if (pfVar2 == (float *)0x0) {
|
|
*(undefined4 *)((int)puParm1 + 0x5a) = 0x3e800000;
|
|
}
|
|
else {
|
|
*(float *)((int)puParm1 + 0x5a) = *pfVar2;
|
|
}
|
|
pfVar2 = FUN_0100978e(param_2,0,0x2bd);
|
|
if (pfVar2 == (float *)0x0) {
|
|
*(undefined4 *)((int)puParm1 + 0x62) = 0x3f000000;
|
|
}
|
|
else {
|
|
*(float *)((int)puParm1 + 0x62) = *pfVar2;
|
|
}
|
|
pfVar2 = FUN_0100978e(param_2,0,0x132);
|
|
fVar1 = *pfVar2;
|
|
pfVar2 = FUN_0100978e(param_2,0,0x131);
|
|
*(float *)((int)puParm1 + 0x6e) = *pfVar2;
|
|
FUN_0100950a(param_2,0,local_60);
|
|
*(undefined4 *)((int)puParm1 + 0x72) = *local_54;
|
|
*(undefined4 *)((int)puParm1 + 0x76) = local_54[1];
|
|
local_8 = local_54;
|
|
*(float *)((int)puParm1 + 0x7e) = fVar1 * (float)local_54[2];
|
|
if (!in_PF) {
|
|
*(undefined4 *)((int)puParm1 + 0x7e) = 0x3a83126f;
|
|
}
|
|
this = operator_new(0x25);
|
|
if (this == (void *)0x0) {
|
|
param_1 = (int *)0x0;
|
|
}
|
|
else {
|
|
param_1 = FUN_01015898(this,puParm1,(int)puParm1 + 5,local_2c,local_8,
|
|
*(float *)((int)puParm1 + 0x7e));
|
|
}
|
|
if (param_1 != (int *)0x0) {
|
|
(**(code **)(*param_1 + 8))();
|
|
FUN_0100acf3((void *)((int)puParm1 + 0x2a),(int)param_1);
|
|
}
|
|
fVar1 = (float)local_54[2];
|
|
*(float *)((int)puParm1 + 0x7e) = fVar1 * fVar1;
|
|
pfVar2 = FUN_0100978e(param_2,0,0x198);
|
|
*(float *)((int)puParm1 + 0x66) = pfVar2[2];
|
|
pfVar2 = FUN_0100978e(param_2,0,0x518);
|
|
floor((double)*pfVar2);
|
|
uVar3 = _ftol();
|
|
*(undefined4 *)((int)puParm1 + 0x6a) = uVar3;
|
|
local_c = *(undefined4 *)((int)puParm1 + 0x7e);
|
|
local_18 = *(undefined4 *)((int)puParm1 + 0x72);
|
|
uStack20 = *(undefined4 *)((int)puParm1 + 0x76);
|
|
*(int *)((int)puParm1 + 0x82) = (int)puParm1 + 5;
|
|
uStack16 = *(undefined4 *)((int)puParm1 + 0x7a);
|
|
*(undefined4 **)((int)puParm1 + 0x8a) = puParm1;
|
|
*(undefined4 *)((int)puParm1 + 0x86) = local_2c;
|
|
FUN_0100b9c7(&local_18,0,(int *)((int)puParm1 + 0x82));
|
|
return puParm1;
|
|
}
|
|
|
|
|
|
|
|
undefined4 * __thiscall FUN_01019bb8(undefined4 *puParm1,float *param_1,int *param_2)
|
|
|
|
{
|
|
float *pfVar1;
|
|
float fVar2;
|
|
byte bVar3;
|
|
float *pfVar4;
|
|
undefined4 uVar5;
|
|
void *this;
|
|
int *piVar6;
|
|
int iVar7;
|
|
bool in_PF;
|
|
float10 fVar8;
|
|
float10 fVar9;
|
|
undefined local_88 [52];
|
|
int local_54;
|
|
float local_40;
|
|
float local_3c;
|
|
int local_34;
|
|
int local_30;
|
|
float *local_2c;
|
|
float *local_28;
|
|
float *local_24;
|
|
int local_20;
|
|
int local_1c;
|
|
float *local_18;
|
|
float local_14;
|
|
float local_10;
|
|
float local_c;
|
|
float local_8;
|
|
|
|
iVar7 = (int)param_2;
|
|
FUN_010190b3(puParm1,(int)param_1,(int)param_2,0);
|
|
*puParm1 = 0x10026cc;
|
|
*(undefined4 *)((int)puParm1 + 6) = 0;
|
|
*(undefined *)(puParm1 + 1) = 1;
|
|
FUN_0100950a(iVar7,0,local_88);
|
|
*(int *)((int)puParm1 + 0x6a) = local_54;
|
|
pfVar4 = FUN_0100978e(iVar7,0,0x2bd);
|
|
if (pfVar4 == (float *)0x0) {
|
|
*(undefined4 *)((int)puParm1 + 0x76) = 0x3e4ccccd;
|
|
}
|
|
else {
|
|
*(float *)((int)puParm1 + 0x76) = *pfVar4;
|
|
}
|
|
pfVar4 = FUN_0100978e(iVar7,0,0x519);
|
|
if (pfVar4 == (float *)0x0) {
|
|
*(undefined4 *)((int)puParm1 + 0x6e) = 0;
|
|
}
|
|
else {
|
|
floor((double)*pfVar4);
|
|
uVar5 = _ftol();
|
|
*(undefined4 *)((int)puParm1 + 0x6e) = uVar5;
|
|
}
|
|
pfVar4 = FUN_0100978e((int)param_2,0,0x514);
|
|
floor((double)*pfVar4);
|
|
uVar5 = _ftol();
|
|
*(undefined4 *)((int)puParm1 + 0x72) = uVar5;
|
|
*(float **)((int)puParm1 + 0x7a) = pfVar4 + 1;
|
|
pfVar4 = FUN_0100978e((int)param_2,0,0x517);
|
|
floor((double)*pfVar4);
|
|
bVar3 = _ftol();
|
|
local_40 = pfVar4[2];
|
|
local_3c = pfVar4[3];
|
|
local_10 = pfVar4[4];
|
|
local_c = pfVar4[5];
|
|
this = operator_new(0x55);
|
|
if (this == (void *)0x0) {
|
|
piVar6 = (int *)0x0;
|
|
}
|
|
else {
|
|
piVar6 = FUN_0101c77e(this,puParm1,(int)puParm1 + 5,1 << (bVar3 & 0x1f),&local_10,&local_40);
|
|
}
|
|
*(int **)((int)puParm1 + 0x86) = piVar6;
|
|
FUN_0100acf3((void *)((int)puParm1 + 0x2a),(int)piVar6);
|
|
if (piVar6 != (int *)0x0) {
|
|
*(undefined4 *)((int)piVar6 + 0xd) = 0;
|
|
(**(code **)(*piVar6 + 8))();
|
|
}
|
|
pfVar4 = FUN_0100978e((int)param_2,0,0x515);
|
|
floor((double)*pfVar4);
|
|
uVar5 = _ftol();
|
|
*(undefined4 *)((int)puParm1 + 0x8a) = uVar5;
|
|
floor((double)pfVar4[1]);
|
|
local_30 = _ftol();
|
|
*(int *)((int)puParm1 + 0x8a) = 1 << ((byte)*(undefined4 *)((int)puParm1 + 0x8a) & 0x1f);
|
|
*(float *)((int)puParm1 + 0x92) = pfVar4[7];
|
|
FUN_01016b27(*(undefined4 *)((int)puParm1 + 0x7a),*(undefined4 *)((int)puParm1 + 0x72),pfVar4 + 3,
|
|
¶m_1,&local_28);
|
|
this = operator_new(0x55);
|
|
if (this == (void *)0x0) {
|
|
piVar6 = (int *)0x0;
|
|
}
|
|
else {
|
|
piVar6 = FUN_0101c77e(this,puParm1,(int)puParm1 + 5,*(undefined4 *)((int)puParm1 + 0x6a),
|
|
local_28,param_1);
|
|
}
|
|
*(int **)((int)puParm1 + 0x7e) = piVar6;
|
|
FUN_0100acf3((void *)((int)puParm1 + 0x2a),(int)piVar6);
|
|
if (piVar6 != (int *)0x0) {
|
|
*(undefined4 *)((int)piVar6 + 0xd) = 0;
|
|
(**(code **)(*piVar6 + 8))();
|
|
}
|
|
pfVar4 = FUN_0100978e((int)param_2,0,0x516);
|
|
floor((double)*pfVar4);
|
|
uVar5 = _ftol();
|
|
*(undefined4 *)((int)puParm1 + 0x8e) = uVar5;
|
|
floor((double)pfVar4[1]);
|
|
local_34 = _ftol();
|
|
*(int *)((int)puParm1 + 0x8e) = 1 << ((byte)*(undefined4 *)((int)puParm1 + 0x8e) & 0x1f);
|
|
*(float *)((int)puParm1 + 0x96) = pfVar4[7];
|
|
FUN_01016b27(*(undefined4 *)((int)puParm1 + 0x7a),*(undefined4 *)((int)puParm1 + 0x72),pfVar4 + 3,
|
|
&local_24,&local_18);
|
|
this = operator_new(0x55);
|
|
if (this == (void *)0x0) {
|
|
piVar6 = (int *)0x0;
|
|
}
|
|
else {
|
|
piVar6 = FUN_0101c77e(this,puParm1,(int)puParm1 + 5,*(undefined4 *)((int)puParm1 + 0x6a),
|
|
local_18,local_24);
|
|
}
|
|
*(int **)((int)puParm1 + 0x82) = piVar6;
|
|
FUN_0100acf3((void *)((int)puParm1 + 0x2a),(int)piVar6);
|
|
if (piVar6 != (int *)0x0) {
|
|
*(undefined4 *)((int)piVar6 + 0xd) = 0;
|
|
(**(code **)(*piVar6 + 8))();
|
|
}
|
|
local_10 = 1000000000.00000000;
|
|
local_20 = 0;
|
|
local_14 = 1000000000.00000000;
|
|
local_8 = -1000000000.00000000;
|
|
local_c = -1000000000.00000000;
|
|
if (0 < *(int *)((int)puParm1 + 0x72)) {
|
|
do {
|
|
local_1c = local_20 * 0x34;
|
|
iVar7 = local_1c + *(int *)((int)puParm1 + 0x7a);
|
|
pfVar4 = (float *)(iVar7 + 0x1c);
|
|
pfVar1 = (float *)(iVar7 + 0xc);
|
|
local_2c = (float *)(iVar7 + 0x14);
|
|
if (in_PF) {
|
|
if (in_PF) {
|
|
fVar2 = *pfVar1;
|
|
}
|
|
else {
|
|
fVar2 = *pfVar4;
|
|
}
|
|
if ((ushort)((ushort)(fVar2 < *local_2c) << 8 | (ushort)(fVar2 == *local_2c) << 0xe) == 0) {
|
|
local_14 = *local_2c;
|
|
}
|
|
else {
|
|
if (in_PF) {
|
|
local_14 = *pfVar1;
|
|
}
|
|
else {
|
|
local_14 = *pfVar4;
|
|
}
|
|
}
|
|
}
|
|
local_10 = local_14;
|
|
if (in_PF) {
|
|
if (in_PF) {
|
|
fVar2 = *(float *)(iVar7 + 0x10);
|
|
}
|
|
else {
|
|
fVar2 = *(float *)(iVar7 + 0x20);
|
|
}
|
|
if ((ushort)((ushort)(fVar2 < *(float *)(iVar7 + 0x18)) << 8 |
|
|
(ushort)(fVar2 == *(float *)(iVar7 + 0x18)) << 0xe) == 0) {
|
|
local_10 = *(float *)(iVar7 + 0x18);
|
|
}
|
|
else {
|
|
if (in_PF) {
|
|
local_10 = *(float *)(iVar7 + 0x10);
|
|
}
|
|
else {
|
|
local_10 = *(float *)(iVar7 + 0x20);
|
|
}
|
|
}
|
|
}
|
|
if (in_PF) {
|
|
if ((ushort)((ushort)(*pfVar4 < *pfVar1) << 8 | (ushort)(*pfVar4 == *pfVar1) << 0xe) == 0) {
|
|
fVar2 = *pfVar4;
|
|
}
|
|
else {
|
|
fVar2 = *pfVar1;
|
|
}
|
|
}
|
|
else {
|
|
fVar2 = *local_2c;
|
|
}
|
|
local_c = local_14;
|
|
if ((ushort)((ushort)(local_14 < fVar2) << 8 | (ushort)(local_14 == fVar2) << 0xe) != 0) {
|
|
if (in_PF) {
|
|
if ((ushort)((ushort)(*pfVar4 < *pfVar1) << 8 | (ushort)(*pfVar4 == *pfVar1) << 0xe) == 0)
|
|
{
|
|
local_c = *pfVar4;
|
|
}
|
|
else {
|
|
local_c = *pfVar1;
|
|
}
|
|
}
|
|
else {
|
|
local_c = *local_2c;
|
|
}
|
|
}
|
|
if (in_PF) {
|
|
if ((ushort)((ushort)(*(float *)(iVar7 + 0x20) < *(float *)(iVar7 + 0x10)) << 8 |
|
|
(ushort)(*(float *)(iVar7 + 0x20) == *(float *)(iVar7 + 0x10)) << 0xe) == 0) {
|
|
fVar2 = *(float *)(iVar7 + 0x20);
|
|
}
|
|
else {
|
|
fVar2 = *(float *)(iVar7 + 0x10);
|
|
}
|
|
}
|
|
else {
|
|
fVar2 = *(float *)(iVar7 + 0x18);
|
|
}
|
|
local_8 = local_14;
|
|
if ((ushort)((ushort)(local_14 < fVar2) << 8 | (ushort)(local_14 == fVar2) << 0xe) != 0) {
|
|
if (in_PF) {
|
|
if ((ushort)((ushort)(*(float *)(iVar7 + 0x20) < *(float *)(iVar7 + 0x10)) << 8 |
|
|
(ushort)(*(float *)(iVar7 + 0x20) == *(float *)(iVar7 + 0x10)) << 0xe) == 0) {
|
|
local_8 = *(float *)(iVar7 + 0x20);
|
|
}
|
|
else {
|
|
local_8 = *(float *)(iVar7 + 0x10);
|
|
}
|
|
}
|
|
else {
|
|
local_8 = *(float *)(iVar7 + 0x18);
|
|
}
|
|
}
|
|
if ((pfVar1 == param_1) && (local_2c == local_28)) {
|
|
if (local_30 == 0) {
|
|
LAB_0101a09f:
|
|
param_2 = (int *)0x0;
|
|
}
|
|
else {
|
|
param_2 = *(int **)((int)puParm1 + 0x8a);
|
|
}
|
|
}
|
|
else {
|
|
param_2 = (int *)local_54;
|
|
if ((pfVar1 == local_24) && (param_2 = (int *)local_54, local_2c == local_18)) {
|
|
if (local_34 == 0) goto LAB_0101a09f;
|
|
param_2 = *(int **)((int)puParm1 + 0x8e);
|
|
}
|
|
}
|
|
if (param_2 != (int *)0x0) {
|
|
this = operator_new(0x55);
|
|
if (this == (void *)0x0) {
|
|
param_2 = (int *)0x0;
|
|
}
|
|
else {
|
|
param_2 = FUN_0101c77e(this,puParm1,(int)puParm1 + 5,param_2,pfVar1,local_2c);
|
|
}
|
|
FUN_0100acf3((void *)((int)puParm1 + 0x2a),(int)param_2);
|
|
if (param_2 != (int *)0x0) {
|
|
*(int *)((int)param_2 + 0xd) = *(int *)((int)puParm1 + 0x7a) + local_1c;
|
|
(**(code **)(*param_2 + 8))();
|
|
}
|
|
}
|
|
if ((local_2c == param_1) && (pfVar4 == local_28)) {
|
|
if (local_30 == 0) {
|
|
LAB_0101a12e:
|
|
param_2 = (int *)0x0;
|
|
}
|
|
else {
|
|
param_2 = *(int **)((int)puParm1 + 0x8a);
|
|
}
|
|
}
|
|
else {
|
|
param_2 = (int *)local_54;
|
|
if ((local_2c == local_24) && (param_2 = (int *)local_54, pfVar4 == local_18)) {
|
|
if (local_34 == 0) goto LAB_0101a12e;
|
|
param_2 = *(int **)((int)puParm1 + 0x8e);
|
|
}
|
|
}
|
|
if (param_2 != (int *)0x0) {
|
|
this = operator_new(0x55);
|
|
if (this == (void *)0x0) {
|
|
param_2 = (int *)0x0;
|
|
}
|
|
else {
|
|
param_2 = FUN_0101c77e(this,puParm1,(int)puParm1 + 5,param_2,local_2c,pfVar4);
|
|
}
|
|
FUN_0100acf3((void *)((int)puParm1 + 0x2a),(int)param_2);
|
|
if (param_2 != (int *)0x0) {
|
|
*(int *)((int)param_2 + 0xd) = *(int *)((int)puParm1 + 0x7a) + local_1c;
|
|
(**(code **)(*param_2 + 8))();
|
|
}
|
|
}
|
|
if ((pfVar4 == param_1) && (pfVar1 == local_28)) {
|
|
if (local_30 == 0) {
|
|
LAB_0101a1ba:
|
|
param_2 = (int *)0x0;
|
|
}
|
|
else {
|
|
param_2 = *(int **)((int)puParm1 + 0x8a);
|
|
}
|
|
}
|
|
else {
|
|
param_2 = (int *)local_54;
|
|
if ((pfVar4 == local_24) && (param_2 = (int *)local_54, pfVar1 == local_18)) {
|
|
if (local_34 == 0) goto LAB_0101a1ba;
|
|
param_2 = *(int **)((int)puParm1 + 0x8e);
|
|
}
|
|
}
|
|
if (param_2 != (int *)0x0) {
|
|
this = operator_new(0x55);
|
|
if (this == (void *)0x0) {
|
|
piVar6 = (int *)0x0;
|
|
}
|
|
else {
|
|
piVar6 = FUN_0101c77e(this,puParm1,(int)puParm1 + 5,param_2,pfVar4,pfVar1);
|
|
}
|
|
FUN_0100acf3((void *)((int)puParm1 + 0x2a),(int)piVar6);
|
|
if (piVar6 != (int *)0x0) {
|
|
*(int *)((int)piVar6 + 0xd) = *(int *)((int)puParm1 + 0x7a) + local_1c;
|
|
(**(code **)(*piVar6 + 8))();
|
|
}
|
|
}
|
|
iVar7 = *(int *)((int)puParm1 + 0x7a) + local_1c;
|
|
fVar8 = (float10)fcos((float10)*(float *)(iVar7 + 0x28));
|
|
fVar9 = (float10)fsin((float10)*(float *)(iVar7 + 0x24));
|
|
*(float *)(iVar7 + 0x2c) =
|
|
(float)(fVar9 * fVar8 * (float10)*(float *)(*(int *)((int)puParm1 + 0x1e) + 0x10e));
|
|
iVar7 = *(int *)((int)puParm1 + 0x7a) + local_1c;
|
|
fVar8 = (float10)fsin((float10)*(float *)(iVar7 + 0x28));
|
|
local_20 = local_20 + 1;
|
|
fVar9 = (float10)fsin((float10)*(float *)(iVar7 + 0x24));
|
|
*(float *)(iVar7 + 0x30) =
|
|
(float)(fVar9 * fVar8 * (float10)*(float *)(*(int *)((int)puParm1 + 0x1e) + 0x10e));
|
|
} while (local_20 < *(int *)((int)puParm1 + 0x72));
|
|
}
|
|
*(int *)((int)puParm1 + 0x5e) = (int)puParm1 + 5;
|
|
*(undefined4 **)((int)puParm1 + 0x66) = puParm1;
|
|
*(int *)((int)puParm1 + 0x62) = local_54;
|
|
FUN_0100be21(local_10,local_14,local_8,local_c,0,(int *)((int)puParm1 + 0x5e));
|
|
return puParm1;
|
|
}
|
|
|
|
|
|
|
|
undefined4 * __thiscall FUN_0101a2b5(void *this,int param_1,int param_2)
|
|
|
|
{
|
|
float *pfVar1;
|
|
undefined4 uVar2;
|
|
undefined local_4c [52];
|
|
undefined4 local_18;
|
|
|
|
FUN_010190b3(this,param_1,param_2,0);
|
|
*(undefined4 *)this = 0x10026e8;
|
|
*(undefined4 *)((int)this + 0x72) = 0;
|
|
*(undefined4 *)((int)this + 0x6e) = 0;
|
|
*(undefined4 *)((int)this + 0x66) = 0;
|
|
*(undefined4 *)((int)this + 0x6a) = 0;
|
|
*(undefined4 *)((int)this + 6) = 0;
|
|
*(undefined *)((int)this + 4) = 0;
|
|
*(undefined *)((int)this + 5) = 0;
|
|
*(undefined4 *)((int)this + 0x62) = 0;
|
|
*(undefined4 *)((int)this + 0x5e) = 0;
|
|
*(void **)(param_1 + 0xe6) = this;
|
|
pfVar1 = FUN_0100978e(param_2,0,0x197);
|
|
if (pfVar1 == (float *)0x0) {
|
|
*(undefined4 *)((int)this + 0x4e) = 0x3e4ccccd;
|
|
*(undefined4 *)((int)this + 0x52) = 0x3dcccccd;
|
|
*(undefined4 *)((int)this + 0x56) = 0x3e4ccccd;
|
|
*(undefined4 *)((int)this + 0x5a) = 0x3dcccccd;
|
|
}
|
|
else {
|
|
*(float *)((int)this + 0x4e) = *pfVar1;
|
|
*(float *)((int)this + 0x52) = pfVar1[1];
|
|
*(float *)((int)this + 0x56) = pfVar1[2];
|
|
*(float *)((int)this + 0x5a) = pfVar1[3];
|
|
}
|
|
FUN_0100950a(param_2,0,local_4c);
|
|
pfVar1 = FUN_0100978e(param_2,0,0x578);
|
|
uVar2 = FUN_010179a9(pfVar1,this,(int)this + 5,local_18,0,0x578);
|
|
*(undefined4 *)((int)this + 0x76) = uVar2;
|
|
pfVar1 = FUN_0100978e(param_2,0,0x579);
|
|
FUN_010179a9(pfVar1,this,(int)this + 5,local_18,0,0x579);
|
|
pfVar1 = FUN_0100978e(param_2,0,0x57a);
|
|
uVar2 = FUN_010179a9(pfVar1,this,(int)this + 5,local_18,0,0x57a);
|
|
*(undefined4 *)((int)this + 0x7a) = uVar2;
|
|
pfVar1 = FUN_0100978e(param_2,0,0x57b);
|
|
FUN_010179a9(pfVar1,this,(int)this + 5,local_18,0,0x57b);
|
|
pfVar1 = FUN_0100978e(param_2,0,0x57c);
|
|
uVar2 = FUN_010179a9(pfVar1,this,(int)this + 5,local_18,*(undefined4 *)(param_1 + 0x11a),0x57c);
|
|
*(undefined4 *)((int)this + 0x7e) = uVar2;
|
|
return (undefined4 *)this;
|
|
}
|
|
|
|
|
|
|
|
undefined4 * __thiscall FUN_0101a416(void *this,int param_1,int param_2)
|
|
|
|
{
|
|
float *pfVar1;
|
|
undefined local_4c [24];
|
|
undefined4 local_34;
|
|
float local_30;
|
|
undefined4 local_2c;
|
|
undefined4 uStack40;
|
|
undefined4 uStack36;
|
|
undefined4 local_20;
|
|
undefined4 local_14;
|
|
undefined4 local_10;
|
|
|
|
FUN_010190b3(this,param_1,param_2,1);
|
|
*(undefined4 *)this = 0x1002704;
|
|
*(undefined4 *)((int)this + 6) = 0;
|
|
*(undefined4 *)((int)this + 0x4e) = 0;
|
|
FUN_0100950a(param_2,0,local_4c);
|
|
*(float *)((int)this + 0x76) = local_30 * 0.01000000;
|
|
*(undefined4 *)((int)this + 0x62) = local_2c;
|
|
*(undefined4 *)((int)this + 0x6e) = local_20;
|
|
*(undefined4 *)((int)this + 0x72) = local_34;
|
|
*(undefined4 *)((int)this + 0x66) = uStack40;
|
|
*(undefined4 *)((int)this + 0x7a) = local_14;
|
|
*(undefined4 *)((int)this + 0x6a) = uStack36;
|
|
*(undefined4 *)((int)this + 0x7e) = local_10;
|
|
pfVar1 = FUN_0100978e(param_2,0,0x259);
|
|
*(float *)((int)this + 0x56) = *pfVar1;
|
|
*(float *)((int)this + 0x5a) = pfVar1[1];
|
|
pfVar1 = FUN_0100978e(param_2,0,0x197);
|
|
*(float *)((int)this + 0x52) = *pfVar1;
|
|
return (undefined4 *)this;
|
|
}
|
|
|
|
|
|
|
|
undefined4 * __thiscall FUN_0101a4b4(void *this,int param_1,int param_2)
|
|
|
|
{
|
|
float *pfVar1;
|
|
|
|
FUN_010190b3(this,param_1,param_2,1);
|
|
*(undefined4 *)((int)this + 0x56) = 0;
|
|
*(undefined4 *)this = 0x1002720;
|
|
pfVar1 = FUN_0100978e(param_2,0,0x197);
|
|
*(float *)((int)this + 0x4e) = *pfVar1;
|
|
return (undefined4 *)this;
|
|
}
|
|
|
|
|
|
|
|
undefined4 * __thiscall FUN_0101a4f3(void *this,int param_1,int param_2)
|
|
|
|
{
|
|
undefined4 uVar1;
|
|
float *pfVar2;
|
|
undefined local_4c [48];
|
|
undefined4 local_1c;
|
|
undefined4 local_14;
|
|
undefined4 local_10;
|
|
|
|
FUN_010190b3(this,param_1,param_2,1);
|
|
*(undefined4 *)this = 0x1002750;
|
|
FUN_0100950a(param_2,0,local_4c);
|
|
*(undefined4 *)((int)this + 0x3e) = 0;
|
|
*(undefined4 *)((int)this + 0x52) = 0;
|
|
*(undefined4 *)((int)this + 0x4e) = 0;
|
|
*(undefined4 *)((int)this + 0x62) = local_14;
|
|
*(undefined4 *)((int)this + 0x66) = local_10;
|
|
*(undefined4 *)((int)this + 0x4a) = local_1c;
|
|
*(undefined4 *)((int)this + 0x42) = 0x4e6e6b28;
|
|
*(undefined4 *)((int)this + 0x56) = 100;
|
|
uVar1 = _ftol();
|
|
*(undefined4 *)((int)this + 0x36) = 0x3f000000;
|
|
*(undefined4 *)((int)this + 0x3a) = 0x3f000000;
|
|
*(undefined4 *)((int)this + 0x5a) = uVar1;
|
|
*(undefined4 *)((int)this + 0x5e) = 0x3ccccccd;
|
|
pfVar2 = FUN_0100978e(param_2,0,0x259);
|
|
*(float *)(param_1 + 0x11e) = *pfVar2;
|
|
*(float *)(param_1 + 0x122) = pfVar2[1];
|
|
return (undefined4 *)this;
|
|
}
|
|
|
|
|
|
|
|
undefined4 * __thiscall FUN_0101a5ab(undefined4 *puParm1,float *param_1)
|
|
|
|
{
|
|
float fVar1;
|
|
int iVar2;
|
|
int iVar3;
|
|
float *pfVar4;
|
|
void *this;
|
|
int *piVar5;
|
|
bool in_PF;
|
|
float10 fVar6;
|
|
float10 fVar7;
|
|
undefined local_60 [8];
|
|
int local_58;
|
|
float *local_54;
|
|
undefined4 local_4c;
|
|
undefined4 local_30;
|
|
undefined4 local_2c;
|
|
undefined4 local_28;
|
|
undefined4 local_24;
|
|
int local_20;
|
|
int local_1c;
|
|
int local_18;
|
|
undefined4 local_14;
|
|
undefined4 local_10;
|
|
undefined4 local_c;
|
|
int local_8;
|
|
|
|
FUN_010190b3(puParm1,(int)param_1,-1,0);
|
|
*puParm1 = 0x100276c;
|
|
iVar3 = FUN_010091eb("table");
|
|
FUN_0100950a(iVar3,0,local_60);
|
|
pfVar4 = FUN_0100978e(iVar3,0,700);
|
|
FUN_01008eba(*pfVar4,pfVar4[1]);
|
|
FUN_0101394e(local_1c,0,0);
|
|
*(int *)((int)puParm1 + 0x4e) = local_20;
|
|
local_18 = 0;
|
|
local_14 = 0;
|
|
local_10 = *(undefined4 *)(local_20 + 0xc);
|
|
local_c = *(undefined4 *)(local_20 + 0x10);
|
|
FUN_0101385c(0,local_20,local_1c,0,0,&local_18);
|
|
*(undefined4 *)(*(int *)((int)puParm1 + 0x1e) + 0x42) = local_28;
|
|
*(undefined4 *)(*(int *)((int)puParm1 + 0x1e) + 0x46) = local_24;
|
|
*(undefined4 *)(*(int *)((int)puParm1 + 0x1e) + 0x4a) = local_30;
|
|
pfVar4 = FUN_0100978e(iVar3,0,0x131);
|
|
if (pfVar4 == (float *)0x0) {
|
|
*(undefined4 *)(*(int *)((int)puParm1 + 0x1e) + 0x10e) = 0x41c80000;
|
|
*(undefined4 *)(*(int *)((int)puParm1 + 0x1e) + 0x112) = 0x3f000000;
|
|
*(undefined4 *)(*(int *)((int)puParm1 + 0x1e) + 0x116) = 0x3fc90fd8;
|
|
}
|
|
else {
|
|
*(float *)(*(int *)((int)puParm1 + 0x1e) + 0x10e) = *pfVar4;
|
|
*(float *)(*(int *)((int)puParm1 + 0x1e) + 0x112) = pfVar4[1];
|
|
*(float *)(*(int *)((int)puParm1 + 0x1e) + 0x116) = pfVar4[2];
|
|
}
|
|
iVar2 = *(int *)((int)puParm1 + 0x1e);
|
|
fVar6 = (float10)fcos((float10)*(float *)(iVar2 + 0x116));
|
|
fVar7 = (float10)fsin((float10)*(float *)(iVar2 + 0x112));
|
|
*(float *)((int)puParm1 + 0x62) = (float)(fVar7 * fVar6 * (float10)*(float *)(iVar2 + 0x10e));
|
|
fVar6 = (float10)fsin((float10)*(float *)(iVar2 + 0x116));
|
|
fVar7 = (float10)fsin((float10)*(float *)(iVar2 + 0x112));
|
|
*(float *)((int)puParm1 + 0x66) = (float)(fVar7 * fVar6 * (float10)*(float *)(iVar2 + 0x10e));
|
|
pfVar4 = FUN_0100978e(iVar3,0,0x2bd);
|
|
if (pfVar4 == (float *)0x0) {
|
|
*(undefined4 *)((int)puParm1 + 0x6e) = 0x3e4ccccd;
|
|
}
|
|
else {
|
|
*(float *)((int)puParm1 + 0x6e) = *pfVar4;
|
|
}
|
|
*(undefined4 *)((int)param_1 + 0xea) = *(undefined4 *)(local_20 + 0x1d);
|
|
*(undefined4 *)((int)param_1 + 0xee) = *(undefined4 *)(local_20 + 0x21);
|
|
*(undefined4 *)((int)param_1 + 0xf2) = *(undefined4 *)(local_20 + 0xc);
|
|
*(undefined4 *)((int)param_1 + 0xf6) = *(undefined4 *)(local_20 + 0x10);
|
|
local_8 = local_58;
|
|
*(undefined4 *)((int)puParm1 + 0x42) = local_4c;
|
|
*(undefined4 *)((int)puParm1 + 0x3e) = 0x41700000;
|
|
param_1 = local_54;
|
|
if (in_PF) {
|
|
fVar1 = *local_54;
|
|
}
|
|
else {
|
|
if (in_PF) {
|
|
fVar1 = local_54[4];
|
|
}
|
|
else {
|
|
fVar1 = local_54[2];
|
|
}
|
|
}
|
|
*(float *)((int)puParm1 + 0x52) = fVar1;
|
|
if ((ushort)((ushort)(local_54[2] < local_54[4]) << 8 |
|
|
(ushort)(local_54[2] == local_54[4]) << 0xe) == 0) {
|
|
fVar1 = local_54[2];
|
|
}
|
|
else {
|
|
fVar1 = local_54[4];
|
|
}
|
|
if ((ushort)((ushort)(fVar1 < *local_54) << 8 | (ushort)(fVar1 == *local_54) << 0xe) == 0) {
|
|
if ((ushort)((ushort)(local_54[2] < local_54[4]) << 8 |
|
|
(ushort)(local_54[2] == local_54[4]) << 0xe) == 0) {
|
|
fVar1 = local_54[2];
|
|
}
|
|
else {
|
|
fVar1 = local_54[4];
|
|
}
|
|
}
|
|
else {
|
|
fVar1 = *local_54;
|
|
}
|
|
*(float *)((int)puParm1 + 0x5a) = fVar1;
|
|
if (in_PF) {
|
|
fVar1 = local_54[1];
|
|
}
|
|
else {
|
|
if (in_PF) {
|
|
fVar1 = local_54[5];
|
|
}
|
|
else {
|
|
fVar1 = local_54[3];
|
|
}
|
|
}
|
|
*(float *)((int)puParm1 + 0x56) = fVar1;
|
|
if ((ushort)((ushort)(local_54[3] < local_54[5]) << 8 |
|
|
(ushort)(local_54[3] == local_54[5]) << 0xe) == 0) {
|
|
fVar1 = local_54[3];
|
|
}
|
|
else {
|
|
fVar1 = local_54[5];
|
|
}
|
|
if ((ushort)((ushort)(fVar1 < local_54[1]) << 8 | (ushort)(fVar1 == local_54[1]) << 0xe) == 0) {
|
|
if ((ushort)((ushort)(local_54[3] < local_54[5]) << 8 |
|
|
(ushort)(local_54[3] == local_54[5]) << 0xe) == 0) {
|
|
fVar1 = local_54[3];
|
|
}
|
|
else {
|
|
fVar1 = local_54[5];
|
|
}
|
|
}
|
|
else {
|
|
fVar1 = local_54[1];
|
|
}
|
|
*(float *)((int)puParm1 + 0x5e) = fVar1;
|
|
this = operator_new(0xfc4);
|
|
if (this == (void *)0x0) {
|
|
DAT_0102503c = (float *)0x0;
|
|
}
|
|
else {
|
|
DAT_0102503c = FUN_0100b883(this,*(float *)((int)puParm1 + 0x52),*(float *)((int)puParm1 + 0x56)
|
|
,*(float *)((int)puParm1 + 0x5a) - *(float *)((int)puParm1 + 0x52),
|
|
*(float *)((int)puParm1 + 0x5e) - *(float *)((int)puParm1 + 0x56));
|
|
}
|
|
if (0 < local_8) {
|
|
do {
|
|
this = operator_new(0x55);
|
|
if (this == (void *)0x0) {
|
|
piVar5 = (int *)0x0;
|
|
}
|
|
else {
|
|
piVar5 = FUN_0101c6fd(this,puParm1,(int)puParm1 + 5,local_2c,param_1[2],param_1[3],*param_1,
|
|
param_1[1]);
|
|
}
|
|
if (piVar5 != (int *)0x0) {
|
|
(**(code **)(*piVar5 + 8))();
|
|
FUN_0100acf3((void *)((int)puParm1 + 0x2a),(int)piVar5);
|
|
}
|
|
param_1 = param_1 + 2;
|
|
local_8 = local_8 + -1;
|
|
} while (local_8 != 0);
|
|
}
|
|
*(undefined4 *)((int)puParm1 + 0x76) = 0xffffffff;
|
|
*(int *)((int)puParm1 + 0x72) = (int)puParm1 + 5;
|
|
*(undefined4 **)((int)puParm1 + 0x7a) = puParm1;
|
|
FUN_0100be21(*(undefined4 *)((int)puParm1 + 0x56),*(undefined4 *)((int)puParm1 + 0x52),
|
|
*(undefined4 *)((int)puParm1 + 0x5e),*(undefined4 *)((int)puParm1 + 0x5a),0,
|
|
(int *)((int)puParm1 + 0x72));
|
|
return puParm1;
|
|
}
|
|
|
|
|
|
|
|
void __fastcall FUN_0101a928(undefined4 *param_1)
|
|
|
|
{
|
|
*param_1 = 0x100276c;
|
|
if (DAT_0102503c != (void *)0x0) {
|
|
FUN_01017441(DAT_0102503c,1);
|
|
}
|
|
FUN_01019172(param_1);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
void __fastcall FUN_0101a951(undefined4 *param_1)
|
|
|
|
{
|
|
int *piVar1;
|
|
int local_8;
|
|
|
|
*param_1 = 0x1002790;
|
|
piVar1 = (int *)((int)param_1 + 0x66);
|
|
local_8 = 4;
|
|
do {
|
|
if (*piVar1 != 0) {
|
|
FUN_01013c6f(*piVar1);
|
|
*piVar1 = 0;
|
|
}
|
|
piVar1 = piVar1 + 7;
|
|
local_8 = local_8 + -1;
|
|
} while (local_8 != 0);
|
|
if (*(int *)((int)param_1 + 0x3a) != 0) {
|
|
FUN_01013c6f(*(int *)((int)param_1 + 0x3a));
|
|
*(undefined4 *)((int)param_1 + 0x3a) = 0;
|
|
}
|
|
if (*(int *)((int)param_1 + 0x36) != 0) {
|
|
FUN_01013c6f(*(int *)((int)param_1 + 0x36));
|
|
*(undefined4 *)((int)param_1 + 0x36) = 0;
|
|
}
|
|
piVar1 = *(int **)((int)param_1 + 0x10a);
|
|
while( true ) {
|
|
if (piVar1 != (int *)0x0) {
|
|
(**(code **)(*piVar1 + 0x10))(1);
|
|
}
|
|
if (*(int *)(*(int *)((int)param_1 + 0xfe) + 4) == 0) break;
|
|
piVar1 = *(int **)(*(int *)((int)param_1 + 0xfe) + 8);
|
|
}
|
|
FUN_01013c6f(*(int *)((int)param_1 + 0x106));
|
|
FUN_01013c6f(*(int *)((int)param_1 + 0xfe));
|
|
FUN_01018fbc(param_1);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
undefined4 * __thiscall FUN_0101a9f2(void *this,byte param_1)
|
|
|
|
{
|
|
FUN_0101a951((undefined4 *)this);
|
|
if ((param_1 & 1) != 0) {
|
|
operator_delete(this);
|
|
}
|
|
return (undefined4 *)this;
|
|
}
|
|
|
|
|
|
|
|
undefined4 * __thiscall FUN_0101aa18(void *this,int param_1,int param_2)
|
|
|
|
{
|
|
undefined local_4c [56];
|
|
undefined4 local_14;
|
|
|
|
FUN_01017c6d(this,param_1,param_2,1);
|
|
*(undefined4 *)this = 0x10027a4;
|
|
FUN_0100950a(param_2,0,local_4c);
|
|
*(undefined4 *)((int)this + 0x2a) = local_14;
|
|
return (undefined4 *)this;
|
|
}
|
|
|
|
|
|
|
|
undefined4 * __thiscall FUN_0101aa56(void *this,int param_1,int param_2)
|
|
|
|
{
|
|
FUN_01017c6d(this,param_1,param_2,1);
|
|
*(undefined4 *)((int)this + 0x2a) = 0;
|
|
*(undefined4 *)this = 0x10027bc;
|
|
return (undefined4 *)this;
|
|
}
|
|
|
|
|
|
|
|
undefined4 * __thiscall FUN_0101aa81(void *this,byte param_1)
|
|
|
|
{
|
|
FUN_01019082((undefined4 *)this);
|
|
if ((param_1 & 1) != 0) {
|
|
operator_delete(this);
|
|
}
|
|
return (undefined4 *)this;
|
|
}
|
|
|
|
|
|
|
|
undefined4 * __thiscall FUN_0101aaa7(void *this,byte param_1)
|
|
|
|
{
|
|
FUN_01019172((undefined4 *)this);
|
|
if ((param_1 & 1) != 0) {
|
|
operator_delete(this);
|
|
}
|
|
return (undefined4 *)this;
|
|
}
|
|
|
|
|
|
|
|
undefined4 * __thiscall FUN_0101aacd(void *this,byte param_1)
|
|
|
|
{
|
|
FUN_0101a928((undefined4 *)this);
|
|
if ((param_1 & 1) != 0) {
|
|
operator_delete(this);
|
|
}
|
|
return (undefined4 *)this;
|
|
}
|
|
|
|
|
|
|
|
undefined4 * __fastcall FUN_0101aaf3(undefined4 *param_1)
|
|
|
|
{
|
|
short sVar1;
|
|
void *this;
|
|
int iVar2;
|
|
int *piVar3;
|
|
undefined4 uVar4;
|
|
short *psVar5;
|
|
undefined4 *puVar6;
|
|
int iVar7;
|
|
undefined4 **ppuVar8;
|
|
undefined4 *local_c;
|
|
undefined4 *local_8;
|
|
|
|
puVar6 = (undefined4 *)0x0;
|
|
local_c = param_1;
|
|
local_8 = param_1;
|
|
FUN_01017c6d(param_1,0,-1,0);
|
|
*param_1 = 0x1002790;
|
|
FUN_010098d3((void *)((int)param_1 + 0xfa),0x20,0x10);
|
|
FUN_010098d3((void *)((int)param_1 + 0x102),3,1);
|
|
*(undefined4 *)((int)param_1 + 0x32) = 0;
|
|
*(undefined4 *)((int)param_1 + 0x36) = 0;
|
|
*(undefined4 *)((int)param_1 + 0x3a) = 0;
|
|
*(undefined4 *)((int)param_1 + 0x4e) = 0;
|
|
*(undefined *)((int)param_1 + 5) = 1;
|
|
*(undefined4 *)((int)param_1 + 0x172) = 0;
|
|
*(undefined4 *)((int)param_1 + 0x5e) = 0;
|
|
*(undefined4 *)((int)param_1 + 0x5a) = 0;
|
|
*(undefined4 *)((int)param_1 + 0x166) = 0;
|
|
*(undefined4 *)((int)param_1 + 0x62) = 0;
|
|
*(undefined4 *)((int)param_1 + 0x15a) = 0;
|
|
this = (void *)FUN_010145f5(0x16a);
|
|
if (this != (void *)0x0) {
|
|
puVar6 = FUN_01019309(this,(int)param_1);
|
|
}
|
|
FUN_0100acf3((void *)((int)param_1 + 0x102),(int)puVar6);
|
|
if (puVar6 != (undefined4 *)0x0) {
|
|
*(undefined *)((int)puVar6 + 5) = 0;
|
|
}
|
|
iVar2 = FUN_010145f5(0x7e);
|
|
if (iVar2 != 0) {
|
|
FUN_0101a5ab(param_1);
|
|
}
|
|
this = (void *)FUN_010145f5(0x8a);
|
|
if (this == (void *)0x0) {
|
|
puVar6 = (undefined4 *)0x0;
|
|
}
|
|
else {
|
|
puVar6 = FUN_0100adb1(this,param_1,0);
|
|
}
|
|
*(undefined4 **)((int)param_1 + 0x10a) = puVar6;
|
|
piVar3 = FUN_01013bb3("score1",DAT_010253b4);
|
|
*(int **)((int)param_1 + 0x32) = piVar3;
|
|
*(int **)((int)param_1 + 0x66) = piVar3;
|
|
iVar2 = 1;
|
|
puVar6 = (undefined4 *)((int)param_1 + 0x82);
|
|
do {
|
|
uVar4 = FUN_01013c48(*(int **)((int)param_1 + 0x32));
|
|
*puVar6 = uVar4;
|
|
iVar2 = iVar2 + 1;
|
|
puVar6 = puVar6 + 7;
|
|
} while (iVar2 < 4);
|
|
*(undefined4 *)((int)param_1 + 0xda) = 0;
|
|
*(undefined4 *)((int)param_1 + 0x14a) = 3;
|
|
piVar3 = FUN_01013bb3("ballcount1",DAT_010253b4);
|
|
*(int **)((int)param_1 + 0x36) = piVar3;
|
|
piVar3 = FUN_01013bb3("player_number1",DAT_010253b4);
|
|
*(int **)((int)param_1 + 0x3a) = piVar3;
|
|
ppuVar8 = &local_c;
|
|
iVar7 = 0x401;
|
|
iVar2 = FUN_010091eb("table_objects");
|
|
psVar5 = FUN_0100981a(iVar2,iVar7,(int *)ppuVar8);
|
|
if ((0 < (int)local_c) && (local_8 = (undefined4 *)0x0, 0 < (int)local_c / 2)) {
|
|
do {
|
|
sVar1 = *psVar5;
|
|
iVar2 = (int)psVar5[1];
|
|
psVar5 = psVar5 + 2;
|
|
switch(sVar1) {
|
|
case 1000:
|
|
case 0x3f2:
|
|
this = (void *)FUN_010145f5(0x5a);
|
|
if (this != (void *)0x0) {
|
|
FUN_010191ba(this,(int)param_1,iVar2);
|
|
}
|
|
break;
|
|
case 0x3e9:
|
|
this = (void *)FUN_010145f5(0x6a);
|
|
if (this == (void *)0x0) {
|
|
puVar6 = (undefined4 *)0x0;
|
|
}
|
|
else {
|
|
puVar6 = FUN_0101a4f3(this,(int)param_1,iVar2);
|
|
}
|
|
*(undefined4 **)((int)param_1 + 0xde) = puVar6;
|
|
break;
|
|
case 0x3ea:
|
|
this = (void *)FUN_010145f5(0xde);
|
|
if (this == (void *)0x0) {
|
|
puVar6 = (undefined4 *)0x0;
|
|
}
|
|
else {
|
|
puVar6 = FUN_0100ad21(this,(int)param_1,iVar2);
|
|
}
|
|
FUN_0100acf3((void *)(*(int *)((int)param_1 + 0x10a) + 0x2a),(int)puVar6);
|
|
break;
|
|
case 0x3eb:
|
|
this = (void *)FUN_010145f5(0x6a);
|
|
if (this == (void *)0x0) {
|
|
puVar6 = (undefined4 *)0x0;
|
|
}
|
|
else {
|
|
puVar6 = FUN_0101c59d(this,(int)param_1,iVar2);
|
|
}
|
|
*(undefined4 **)((int)param_1 + 0x2a) = puVar6;
|
|
break;
|
|
case 0x3ec:
|
|
this = (void *)FUN_010145f5(0x6a);
|
|
if (this == (void *)0x0) {
|
|
puVar6 = (undefined4 *)0x0;
|
|
}
|
|
else {
|
|
puVar6 = FUN_0101c59d(this,(int)param_1,iVar2);
|
|
}
|
|
*(undefined4 **)((int)param_1 + 0x2e) = puVar6;
|
|
break;
|
|
case 0x3ed:
|
|
this = (void *)FUN_010145f5(0x96);
|
|
if (this != (void *)0x0) {
|
|
FUN_0101944a(this,(int)param_1,iVar2);
|
|
}
|
|
break;
|
|
case 0x3ee:
|
|
this = (void *)FUN_010145f5(0x72);
|
|
if (this != (void *)0x0) {
|
|
FUN_010195e0(this,(int)param_1,iVar2);
|
|
}
|
|
break;
|
|
case 0x3ef:
|
|
this = (void *)FUN_010145f5(0x5a);
|
|
if (this == (void *)0x0) {
|
|
puVar6 = (undefined4 *)0x0;
|
|
}
|
|
else {
|
|
puVar6 = FUN_0101a4b4(this,(int)param_1,iVar2);
|
|
}
|
|
*(undefined4 **)((int)param_1 + 0xe2) = puVar6;
|
|
break;
|
|
case 0x3f3:
|
|
this = (void *)FUN_010145f5(0x72);
|
|
if (this != (void *)0x0) {
|
|
FUN_01019677(this,(int)param_1,iVar2);
|
|
}
|
|
break;
|
|
case 0x3f4:
|
|
iVar7 = FUN_010145f5(0xea);
|
|
if (iVar7 != 0) {
|
|
uVar4 = 1;
|
|
LAB_0101af16:
|
|
FUN_01019884(param_1,iVar2,uVar4);
|
|
}
|
|
break;
|
|
case 0x3f5:
|
|
this = (void *)FUN_010145f5(0x66);
|
|
if (this != (void *)0x0) {
|
|
FUN_010196e5(this,(int)param_1,iVar2);
|
|
}
|
|
break;
|
|
case 0x3f6:
|
|
this = (void *)FUN_010145f5(0x5e);
|
|
if (this != (void *)0x0) {
|
|
FUN_0101983d(this,(int)param_1,iVar2);
|
|
}
|
|
break;
|
|
case 0x3f7:
|
|
this = (void *)FUN_010145f5(0x57);
|
|
if (this != (void *)0x0) {
|
|
FUN_01019771(this,(int)param_1,iVar2);
|
|
}
|
|
break;
|
|
case 0x3f8:
|
|
this = (void *)FUN_010145f5(0x6e);
|
|
if (this != (void *)0x0) {
|
|
FUN_01019204(this,(int)param_1,iVar2);
|
|
}
|
|
break;
|
|
case 0x3f9:
|
|
this = (void *)FUN_010145f5(0x9e);
|
|
if (this != (void *)0x0) {
|
|
FUN_0101a416(this,(int)param_1,iVar2);
|
|
}
|
|
break;
|
|
case 0x3fa:
|
|
this = (void *)FUN_010145f5(0x76);
|
|
if (this != (void *)0x0) {
|
|
FUN_010194b0(this,(int)param_1,iVar2);
|
|
}
|
|
break;
|
|
case 0x3fb:
|
|
this = (void *)FUN_010145f5(0x62);
|
|
if (this != (void *)0x0) {
|
|
FUN_0101961f(this,(int)param_1,iVar2);
|
|
}
|
|
break;
|
|
case 0x3fc:
|
|
this = (void *)FUN_010145f5(0x5f);
|
|
if (this != (void *)0x0) {
|
|
FUN_010197bb(this,(int)param_1,iVar2);
|
|
}
|
|
break;
|
|
case 0x3fd:
|
|
iVar7 = FUN_010145f5(0x9a);
|
|
if (iVar7 != 0) {
|
|
FUN_01019bb8(param_1,iVar2);
|
|
}
|
|
break;
|
|
case 0x3fe:
|
|
iVar7 = FUN_010145f5(0x8e);
|
|
if (iVar7 != 0) {
|
|
FUN_01019a1c(param_1,iVar2);
|
|
}
|
|
break;
|
|
case 0x3ff:
|
|
this = (void *)FUN_010145f5(0x82);
|
|
if (this != (void *)0x0) {
|
|
FUN_0101a2b5(this,(int)param_1,iVar2);
|
|
}
|
|
break;
|
|
case 0x400:
|
|
this = (void *)FUN_010145f5(0x57);
|
|
if (this != (void *)0x0) {
|
|
moneypunct__(this,(int)param_1,iVar2);
|
|
}
|
|
break;
|
|
case 0x402:
|
|
this = (void *)FUN_010145f5(0x8a);
|
|
if (this != (void *)0x0) {
|
|
FUN_0100adb1(this,param_1,iVar2);
|
|
}
|
|
break;
|
|
case 0x404:
|
|
this = (void *)FUN_010145f5(0x36);
|
|
if (this != (void *)0x0) {
|
|
FUN_01018ffd(this,param_1,iVar2);
|
|
}
|
|
break;
|
|
case 0x405:
|
|
iVar7 = FUN_010145f5(0xea);
|
|
if (iVar7 != 0) {
|
|
uVar4 = 0;
|
|
goto LAB_0101af16;
|
|
}
|
|
break;
|
|
case 0x406:
|
|
this = (void *)FUN_010145f5(0xa6);
|
|
if (this != (void *)0x0) {
|
|
FUN_0100ae72(this,param_1,iVar2);
|
|
}
|
|
break;
|
|
case 0x407:
|
|
this = (void *)FUN_010145f5(0x2e);
|
|
if (this != (void *)0x0) {
|
|
FUN_0101aa18(this,(int)param_1,iVar2);
|
|
}
|
|
break;
|
|
case 0x408:
|
|
this = (void *)FUN_010145f5(0x2e);
|
|
if (this != (void *)0x0) {
|
|
FUN_0101aa56(this,(int)param_1,iVar2);
|
|
}
|
|
break;
|
|
case 0x409:
|
|
this = (void *)FUN_010145f5(0x4e);
|
|
if (this != (void *)0x0) {
|
|
FUN_01014092(this,(int)param_1,iVar2);
|
|
}
|
|
}
|
|
local_8 = (undefined4 *)((int)local_8 + 1);
|
|
} while ((int)local_8 < (int)local_c / 2);
|
|
}
|
|
FUN_01012f2a();
|
|
DAT_01025650 = FUN_01017648(param_1,"info_text_box");
|
|
DAT_01025654 = FUN_01017648(param_1,"mission_text_box");
|
|
FUN_0100c01d((int)param_1);
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
void FUN_0101b0a4(undefined4 *param_1,undefined4 *param_2)
|
|
|
|
{
|
|
undefined4 uVar1;
|
|
undefined4 uVar2;
|
|
undefined4 uVar3;
|
|
|
|
uVar1 = *param_1;
|
|
uVar2 = param_1[1];
|
|
uVar3 = param_1[2];
|
|
*param_1 = *param_2;
|
|
param_1[1] = param_2[1];
|
|
param_1[2] = param_2[2];
|
|
*param_2 = uVar1;
|
|
param_2[1] = uVar2;
|
|
param_2[2] = uVar3;
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
void __fastcall FUN_0101b0d4(int iParm1)
|
|
|
|
{
|
|
float fVar1;
|
|
float fVar2;
|
|
bool in_PF;
|
|
float local_10;
|
|
float local_c;
|
|
float local_8;
|
|
|
|
local_c = *(float *)(iParm1 + 0x21) - *(float *)(iParm1 + 0x2d);
|
|
local_10 = *(float *)(iParm1 + 0x25) - *(float *)(iParm1 + 0x2d);
|
|
local_8 = *(float *)(iParm1 + 0x2d) + *(float *)(iParm1 + 0x21);
|
|
fVar1 = *(float *)(iParm1 + 0x25) + *(float *)(iParm1 + 0x2d);
|
|
if (!in_PF) {
|
|
local_c = *(float *)(iParm1 + 0x99) - *(float *)(iParm1 + 0x31);
|
|
}
|
|
if (!in_PF) {
|
|
local_10 = *(float *)(iParm1 + 0x9d) - *(float *)(iParm1 + 0x31);
|
|
}
|
|
fVar2 = *(float *)(iParm1 + 0x31) + *(float *)(iParm1 + 0x99);
|
|
if ((ushort)((ushort)(fVar2 < local_8) << 8 | (ushort)(fVar2 == local_8) << 0xe) == 0) {
|
|
local_8 = fVar2;
|
|
}
|
|
fVar2 = *(float *)(iParm1 + 0x9d) + *(float *)(iParm1 + 0x31);
|
|
if ((ushort)((ushort)(fVar2 < fVar1) << 8 | (ushort)(fVar2 == fVar1) << 0xe) == 0) {
|
|
fVar1 = fVar2;
|
|
}
|
|
if (!in_PF) {
|
|
local_c = *(float *)(iParm1 + 0xa5) - *(float *)(iParm1 + 0x31);
|
|
}
|
|
if (!in_PF) {
|
|
local_10 = *(float *)(iParm1 + 0xa9) - *(float *)(iParm1 + 0x31);
|
|
}
|
|
fVar2 = *(float *)(iParm1 + 0xa5) + *(float *)(iParm1 + 0x31);
|
|
if ((ushort)((ushort)(fVar2 < local_8) << 8 | (ushort)(fVar2 == local_8) << 0xe) == 0) {
|
|
local_8 = fVar2;
|
|
}
|
|
fVar2 = *(float *)(iParm1 + 0x31) + *(float *)(iParm1 + 0xa9);
|
|
if ((ushort)((ushort)(fVar2 < fVar1) << 8 | (ushort)(fVar2 == fVar1) << 0xe) == 0) {
|
|
fVar1 = fVar2;
|
|
}
|
|
FUN_0100be21(local_10,local_c,fVar1,local_8,iParm1,0);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
float10 __thiscall FUN_0101b1f7(int iParm1,float param_1)
|
|
|
|
{
|
|
bool in_PF;
|
|
float10 fVar1;
|
|
|
|
if (*(int *)(iParm1 + 0x15) == 0) {
|
|
fVar1 = (float10)*(float *)(iParm1 + 0x4d);
|
|
}
|
|
else {
|
|
if (in_PF) {
|
|
fVar1 = ((float10)param_1 - (float10)*(float *)(iParm1 + 0xc9)) /
|
|
((((float10)*(float *)(iParm1 + 0x4d) - (float10)*(float *)(iParm1 + 0x49)) /
|
|
(float10)*(float *)(iParm1 + 0x45)) * (float10)*(float *)(iParm1 + 0xd1));
|
|
}
|
|
else {
|
|
fVar1 = (float10)0;
|
|
}
|
|
if ((ushort)((ushort)(fVar1 < (float10)1.00000000) << 8 |
|
|
(ushort)(fVar1 == (float10)1.00000000) << 0xe) == 0) {
|
|
fVar1 = (float10)1;
|
|
}
|
|
if (*(int *)(iParm1 + 0x15) == 2) {
|
|
fVar1 = (float10)1.00000000 - fVar1;
|
|
}
|
|
fVar1 = fVar1 * (float10)*(float *)(iParm1 + 0x45);
|
|
}
|
|
return fVar1;
|
|
}
|
|
|
|
|
|
|
|
// WARNING: Globals starting with '_' overlap smaller symbols at the same address
|
|
|
|
void __fastcall FUN_0101b281(int param_1)
|
|
|
|
{
|
|
FUN_01008beb(&DAT_01025680,DAT_01025714,DAT_01025718,DAT_010256b4,DAT_010256b8);
|
|
FUN_01008beb(&DAT_010256c0,DAT_010256f0,DAT_010256f4,DAT_010256fc,DAT_01025700);
|
|
_DAT_01025660 = *(undefined4 *)(param_1 + 0x21);
|
|
_DAT_01025664 = *(undefined4 *)(param_1 + 0x25);
|
|
_DAT_0102566c = *(undefined4 *)(param_1 + 0x35);
|
|
_DAT_01025670 = DAT_01025708;
|
|
_DAT_01025674 = DAT_0102570c;
|
|
_DAT_0102567c = *(undefined4 *)(param_1 + 0x39);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
// WARNING: Globals starting with '_' overlap smaller symbols at the same address
|
|
|
|
void __thiscall FUN_0101b327(void *this,undefined4 param_1)
|
|
|
|
{
|
|
float10 fVar1;
|
|
float *local_18;
|
|
float *pfVar2;
|
|
|
|
pfVar2 = (float *)&DAT_010256b0;
|
|
local_18 = (float *)&DAT_0102565c;
|
|
fVar1 = (float10)FUN_0101b1f7(param_1);
|
|
FUN_0101cc6b((float)fVar1,local_18,pfVar2);
|
|
DAT_01025714 = *(undefined4 *)((int)this + 0x65);
|
|
DAT_01025718 = *(undefined4 *)((int)this + 0x69);
|
|
DAT_0102571c = *(undefined4 *)((int)this + 0x6d);
|
|
DAT_010256b4 = *(undefined4 *)((int)this + 0x71);
|
|
DAT_010256b8 = *(undefined4 *)((int)this + 0x75);
|
|
DAT_010256bc = *(undefined4 *)((int)this + 0x79);
|
|
DAT_010256f0 = *(undefined4 *)((int)this + 0x7d);
|
|
DAT_010256f4 = *(undefined4 *)((int)this + 0x81);
|
|
DAT_010256f8 = *(undefined4 *)((int)this + 0x85);
|
|
DAT_010256fc = *(undefined4 *)((int)this + 0x89);
|
|
DAT_01025700 = *(undefined4 *)((int)this + 0x8d);
|
|
DAT_01025704 = *(undefined4 *)((int)this + 0x91);
|
|
DAT_01025708 = *(undefined4 *)((int)this + 0x99);
|
|
DAT_0102570c = *(undefined4 *)((int)this + 0x9d);
|
|
DAT_01025710 = *(undefined4 *)((int)this + 0xa1);
|
|
local_18 = (float *)((int)this + 0x21);
|
|
FUN_0101cbb1((float *)&DAT_01025714,_DAT_0102565c,_DAT_010256b0,local_18);
|
|
FUN_0101cbb1((float *)&DAT_010256b4,_DAT_0102565c,_DAT_010256b0,local_18);
|
|
FUN_0101cbb1((float *)&DAT_01025708,_DAT_0102565c,_DAT_010256b0,local_18);
|
|
FUN_0101cbb1((float *)&DAT_010256f0,_DAT_0102565c,_DAT_010256b0,local_18);
|
|
FUN_0101cbb1((float *)&DAT_010256fc,_DAT_0102565c,_DAT_010256b0,local_18);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
// WARNING: Globals starting with '_' overlap smaller symbols at the same address
|
|
|
|
undefined4 FUN_0101b43a(float *param_1,float *param_2)
|
|
|
|
{
|
|
float fVar1;
|
|
undefined2 extraout_var;
|
|
undefined4 uVar2;
|
|
float *pfVar3;
|
|
int iVar4;
|
|
bool in_PF;
|
|
float10 fVar5;
|
|
float local_8;
|
|
|
|
local_8 = 1000000000.00000000;
|
|
iVar4 = -1;
|
|
fVar5 = (float10)FUN_01008c8f(param_1,&DAT_01025680);
|
|
if (!in_PF) {
|
|
local_8 = (float)fVar5;
|
|
iVar4 = 0;
|
|
}
|
|
fVar5 = (float10)FUN_01008b34(param_1,&DAT_01025660);
|
|
if (!in_PF) {
|
|
local_8 = (float)fVar5;
|
|
iVar4 = 2;
|
|
}
|
|
fVar5 = (float10)FUN_01008b34(param_1,&DAT_01025670);
|
|
if (!in_PF) {
|
|
local_8 = (float)fVar5;
|
|
iVar4 = 3;
|
|
}
|
|
fVar5 = (float10)FUN_01008c8f(param_1,&DAT_010256c0);
|
|
uVar2 = CONCAT22(extraout_var,
|
|
(ushort)(fVar5 < (float10)local_8) << 8 |
|
|
(ushort)(fVar5 == (float10)local_8) << 0xe);
|
|
if (!in_PF) {
|
|
local_8 = (float)fVar5;
|
|
iVar4 = 1;
|
|
}
|
|
if (((param_2 != (float *)0x0) &&
|
|
(uVar2 = CONCAT22(extraout_var,
|
|
(ushort)(local_8 < 1000000000.00000000) << 8 |
|
|
(ushort)(local_8 == 1000000000.00000000) << 0xe), !in_PF)) && (iVar4 != -1))
|
|
{
|
|
if (iVar4 == 0) {
|
|
param_2[3] = DAT_01025680;
|
|
param_2[4] = DAT_01025684;
|
|
param_2[5] = DAT_01025688;
|
|
pfVar3 = (float *)&DAT_010256a4;
|
|
}
|
|
else {
|
|
if (iVar4 != 1) {
|
|
if (iVar4 == 2) {
|
|
*param_2 = local_8 * param_1[3] + *param_1;
|
|
param_2[1] = local_8 * param_1[4] + param_1[1];
|
|
param_2[3] = *param_2 - _DAT_01025660;
|
|
fVar1 = param_2[1] - _DAT_01025664;
|
|
}
|
|
else {
|
|
if (iVar4 != 3) {
|
|
return uVar2;
|
|
}
|
|
*param_2 = local_8 * param_1[3] + *param_1;
|
|
param_2[1] = local_8 * param_1[4] + param_1[1];
|
|
param_2[3] = *param_2 - _DAT_01025670;
|
|
fVar1 = param_2[1] - _DAT_01025674;
|
|
}
|
|
param_2[4] = fVar1;
|
|
uVar2 = FUN_01008ae9(param_2 + 3);
|
|
return uVar2;
|
|
}
|
|
param_2[3] = DAT_010256c0;
|
|
param_2[4] = DAT_010256c4;
|
|
param_2[5] = DAT_010256c8;
|
|
pfVar3 = (float *)&DAT_010256e4;
|
|
}
|
|
*param_2 = *pfVar3;
|
|
param_2[1] = pfVar3[1];
|
|
param_2[2] = pfVar3[2];
|
|
}
|
|
return uVar2;
|
|
}
|
|
|
|
|
|
|
|
undefined4 __thiscall FUN_0101b5a8(int iParm1,float param_1,float param_2)
|
|
|
|
{
|
|
float fVar1;
|
|
int iVar2;
|
|
float fVar3;
|
|
bool in_PF;
|
|
undefined4 uStack16;
|
|
|
|
if ((((((DAT_010256b4 - DAT_01025714) * (param_2 - DAT_01025718) -
|
|
(DAT_010256b8 - DAT_01025718) * (param_1 - DAT_01025714) < 0.00000000) ||
|
|
((param_2 - DAT_010256b8) * (DAT_010256f0 - DAT_010256b4) -
|
|
(param_1 - DAT_010256b4) * (DAT_010256f4 - DAT_010256b8) < 0.00000000)) ||
|
|
((param_2 - DAT_010256f4) * (DAT_010256fc - DAT_010256f0) -
|
|
(param_1 - DAT_010256f0) * (DAT_01025700 - DAT_010256f4) < 0.00000000)) ||
|
|
((param_2 - DAT_01025700) * (DAT_01025714 - DAT_010256fc) -
|
|
(param_1 - DAT_010256fc) * (DAT_01025718 - DAT_01025700) < 0.00000000)) &&
|
|
((in_PF && (in_PF)))) {
|
|
return 0;
|
|
}
|
|
iVar2 = *(int *)(iParm1 + 0x15);
|
|
if (*(float *)(iParm1 + 0x45) < 0.00000000) {
|
|
if (iVar2 == 1) {
|
|
fVar1 = (param_2 - DAT_010256f4) * (*(float *)(iParm1 + 0x21) - DAT_010256f0) -
|
|
(param_1 - DAT_010256f0) * (*(float *)(iParm1 + 0x25) - DAT_010256f4);
|
|
}
|
|
else {
|
|
if (iVar2 == 2) {
|
|
fVar1 = (param_2 - DAT_010256b8) * (*(float *)(iParm1 + 0x21) - DAT_010256b4);
|
|
fVar3 = *(float *)(iParm1 + 0x25) - DAT_010256b8;
|
|
param_1 = param_1 - DAT_010256b4;
|
|
}
|
|
else {
|
|
fVar1 = (param_2 - DAT_0102570c) * (*(float *)(iParm1 + 0x21) - DAT_01025708);
|
|
fVar3 = *(float *)(iParm1 + 0x25) - DAT_0102570c;
|
|
param_1 = param_1 - DAT_01025708;
|
|
}
|
|
fVar1 = fVar1 - param_1 * fVar3;
|
|
}
|
|
goto joined_r0x0101b7be;
|
|
}
|
|
fVar1 = *(float *)(iParm1 + 0x21);
|
|
if (iVar2 == 1) {
|
|
fVar1 = (param_2 - DAT_01025700) * (fVar1 - DAT_010256fc);
|
|
fVar3 = *(float *)(iParm1 + 0x25) - DAT_01025700;
|
|
param_1 = param_1 - DAT_010256fc;
|
|
LAB_0101b72e:
|
|
param_1 = param_1 * fVar3;
|
|
}
|
|
else {
|
|
if (iVar2 != 2) {
|
|
fVar1 = (param_2 - DAT_0102570c) * (fVar1 - DAT_01025708);
|
|
fVar3 = *(float *)(iParm1 + 0x25) - DAT_0102570c;
|
|
param_1 = param_1 - DAT_01025708;
|
|
goto LAB_0101b72e;
|
|
}
|
|
fVar1 = (fVar1 - DAT_01025714) * (param_2 - DAT_01025718);
|
|
param_1 = (*(float *)(iParm1 + 0x25) - DAT_01025718) * (param_1 - DAT_01025714);
|
|
}
|
|
fVar1 = fVar1 - param_1;
|
|
joined_r0x0101b7be:
|
|
if (0.00000000 <= fVar1) {
|
|
uStack16 = 4;
|
|
}
|
|
else {
|
|
uStack16 = 5;
|
|
}
|
|
return uStack16;
|
|
}
|
|
|
|
|
|
|
|
float * __thiscall FUN_0101b825(void *pvParm1,float *param_1)
|
|
|
|
{
|
|
bool bVar1;
|
|
undefined2 extraout_var;
|
|
undefined2 extraout_var_00;
|
|
float *pfVar2;
|
|
int iVar3;
|
|
undefined2 extraout_var_01;
|
|
float *pfVar4;
|
|
undefined4 *puVar5;
|
|
float *pfVar6;
|
|
bool in_PF;
|
|
float10 fVar7;
|
|
float10 fVar8;
|
|
ushort uVar9;
|
|
float local_74;
|
|
undefined4 uStack112;
|
|
undefined4 uStack108;
|
|
float local_68;
|
|
undefined4 uStack100;
|
|
undefined4 uStack96;
|
|
float local_48;
|
|
float local_44;
|
|
float fStack64;
|
|
float local_3c;
|
|
float local_38;
|
|
float fStack52;
|
|
float local_30;
|
|
float local_2c;
|
|
float local_1c;
|
|
float local_18;
|
|
float local_14;
|
|
float local_10;
|
|
float local_c;
|
|
float local_8;
|
|
|
|
if ((ushort)((ushort)(param_1[8] < *(float *)((int)pvParm1 + 0xcd)) << 8 |
|
|
(ushort)(param_1[8] == *(float *)((int)pvParm1 + 0xcd)) << 0xe) == 0) {
|
|
*(undefined4 *)((int)pvParm1 + 0x15) = 0;
|
|
}
|
|
pfVar2 = (float *)((int)pvParm1 + 0xc5);
|
|
if (*pfVar2 == 0.00000000) {
|
|
if (*(int *)((int)pvParm1 + 0x15) == 0) {
|
|
*pfVar2 = 0.00000000;
|
|
*(undefined4 *)((int)pvParm1 + 0x51) = 0;
|
|
*(undefined4 *)((int)pvParm1 + 0x55) = 0;
|
|
FUN_0101b327(pvParm1,param_1[8]);
|
|
FUN_0101b281((int)pvParm1);
|
|
local_10 = (float)FUN_0101b5a8(*param_1,param_1[1]);
|
|
local_2c = param_1[7];
|
|
if (local_10 == 0.00000000) {
|
|
local_3c = param_1[3];
|
|
local_38 = param_1[4];
|
|
fStack52 = param_1[5];
|
|
local_30 = param_1[6];
|
|
local_48 = *param_1;
|
|
local_44 = param_1[1];
|
|
fStack64 = param_1[2];
|
|
fVar8 = (float10)FUN_0101b43a(&local_48,&local_74);
|
|
pfVar4 = &local_74;
|
|
pfVar2 = (float *)CONCAT22(extraout_var_00,
|
|
(ushort)(fVar8 < (float10)0.00000000) << 8 |
|
|
(ushort)(fVar8 == (float10)0.00000000) << 0xe);
|
|
if (in_PF) {
|
|
pfVar6 = (float *)((int)pvParm1 + 0xdd);
|
|
LAB_0101bab7:
|
|
*pfVar6 = *pfVar4;
|
|
pfVar6[1] = pfVar4[1];
|
|
pfVar6[2] = pfVar4[2];
|
|
}
|
|
else {
|
|
pfVar2 = (float *)((int)pvParm1 + 0xdd);
|
|
*pfVar2 = local_74;
|
|
*(undefined4 *)((int)pvParm1 + 0xe1) = uStack112;
|
|
*(undefined4 *)((int)pvParm1 + 0xe5) = uStack108;
|
|
*pfVar2 = *pfVar2 - local_3c * 0.00001000;
|
|
pfVar2 = (float *)((int)pvParm1 + 0xe1);
|
|
*pfVar2 = *pfVar2 - local_38 * 0.00001000;
|
|
}
|
|
*(float *)((int)pvParm1 + 0xb9) = local_68;
|
|
*(undefined4 *)((int)pvParm1 + 0xbd) = uStack100;
|
|
*(undefined4 *)((int)pvParm1 + 0xc1) = uStack96;
|
|
}
|
|
else {
|
|
FUN_0101cc23(*param_1,param_1[1],param_1[2],*(float *)((int)pvParm1 + 0x21),
|
|
*(float *)((int)pvParm1 + 0x25));
|
|
if (in_PF) {
|
|
FUN_0101cc23(*param_1,param_1[1],param_1[2],DAT_01025708,DAT_0102570c);
|
|
if (in_PF) {
|
|
local_38 = DAT_010256c4;
|
|
local_3c = DAT_010256c0;
|
|
if (local_10 == 0.00000000) {
|
|
local_38 = DAT_01025684;
|
|
local_3c = DAT_01025680;
|
|
}
|
|
local_3c = -local_3c;
|
|
local_38 = -local_38;
|
|
}
|
|
else {
|
|
local_3c = DAT_01025708 - *param_1;
|
|
local_38 = DAT_0102570c - param_1[1];
|
|
FUN_01008ae9(&local_3c);
|
|
}
|
|
}
|
|
else {
|
|
local_3c = *(float *)((int)pvParm1 + 0x21) - *param_1;
|
|
local_38 = *(float *)((int)pvParm1 + 0x25) - param_1[1];
|
|
FUN_01008ae9(&local_3c);
|
|
}
|
|
local_48 = *param_1 - local_3c * 5.00000000;
|
|
local_44 = param_1[1] - local_38 * 5.00000000;
|
|
local_30 = param_1[6] + 10.00000000;
|
|
fVar8 = (float10)FUN_0101b43a(&local_48,&local_74);
|
|
if ((float10)1000000000.00000000 <= fVar8) {
|
|
local_3c = *(float *)((int)pvParm1 + 0x21) - *param_1;
|
|
local_38 = *(float *)((int)pvParm1 + 0x25) - param_1[1];
|
|
FUN_01008ae9(&local_3c);
|
|
local_48 = *param_1 - local_3c * 5.00000000;
|
|
local_44 = param_1[1] - local_38 * 5.00000000;
|
|
fVar7 = (float10)FUN_0101b43a(&local_48,&local_74);
|
|
fVar8 = (float10)1000000000.00000000;
|
|
if (fVar7 >= fVar8) {
|
|
return (float *)CONCAT22(extraout_var,
|
|
(ushort)(fVar7 < fVar8) << 8 | (ushort)(fVar7 == fVar8) << 0xe)
|
|
;
|
|
}
|
|
}
|
|
LAB_0101ba1a:
|
|
*(float *)((int)pvParm1 + 0xdd) = local_74;
|
|
*(undefined4 *)((int)pvParm1 + 0xe1) = uStack112;
|
|
*(undefined4 *)((int)pvParm1 + 0xe5) = uStack108;
|
|
pfVar6 = (float *)((int)pvParm1 + 0xb9);
|
|
pfVar2 = &local_68;
|
|
LAB_0101bc82:
|
|
*pfVar6 = *pfVar2;
|
|
pfVar6[1] = pfVar2[1];
|
|
pfVar6[2] = pfVar2[2];
|
|
*(float *)((int)pvParm1 + 0xdd) = *(float *)((int)pvParm1 + 0xdd) - local_3c * 0.00001000;
|
|
pfVar2 = (float *)((int)pvParm1 + 0xe1);
|
|
*pfVar2 = *pfVar2 - local_38 * 0.00001000;
|
|
}
|
|
}
|
|
else {
|
|
local_8 = *param_1;
|
|
local_14 = *(float *)((int)pvParm1 + 0xb5) * param_1[6];
|
|
local_c = param_1[1];
|
|
local_10 = param_1[8];
|
|
local_18 = *(float *)((int)pvParm1 + 0xb5) * param_1[3];
|
|
local_1c = param_1[4] * *(float *)((int)pvParm1 + 0xb5);
|
|
uVar9 = (ushort)(param_1[9] + param_1[8] < local_10) << 8 |
|
|
(ushort)(param_1[9] + param_1[8] == local_10) << 0xe;
|
|
pfVar2 = (float *)((uint)local_10 & 0xffff0000 | (uint)uVar9);
|
|
while (uVar9 == 0) {
|
|
FUN_0101b327(pvParm1,local_10);
|
|
FUN_0101b281((int)pvParm1);
|
|
iVar3 = FUN_0101b5a8(local_8,local_c);
|
|
if (iVar3 != 0) {
|
|
if ((*(int *)((int)pvParm1 + 0x15) == 1) && (iVar3 != 5)) {
|
|
puVar5 = &DAT_01025680;
|
|
local_38 = DAT_01025684;
|
|
local_3c = DAT_01025680;
|
|
}
|
|
else {
|
|
if ((*(int *)((int)pvParm1 + 0x15) != 2) || (iVar3 == 4)) {
|
|
local_3c = *(float *)((int)pvParm1 + 0x21) - local_8;
|
|
*(undefined4 *)((int)pvParm1 + 0x51) = 0;
|
|
*(undefined4 *)((int)pvParm1 + 0x55) = 1;
|
|
local_38 = *(float *)((int)pvParm1 + 0x25) - local_c;
|
|
FUN_01008ae9(&local_3c);
|
|
local_48 = local_8 - local_3c * 5.00000000;
|
|
local_44 = local_c - local_38 * 5.00000000;
|
|
local_30 = param_1[6] + 10.00000000;
|
|
fVar8 = (float10)FUN_0101b43a(&local_48,&local_74);
|
|
if ((float10)1000000000.00000000 <= fVar8) {
|
|
*(float *)((int)pvParm1 + 0xdd) = local_8;
|
|
*(float *)((int)pvParm1 + 0xb9) = -local_3c;
|
|
*(float *)((int)pvParm1 + 0xe1) = local_c;
|
|
*(float *)((int)pvParm1 + 0xbd) = -local_38;
|
|
return (float *)local_c;
|
|
}
|
|
goto LAB_0101ba1a;
|
|
}
|
|
puVar5 = &DAT_010256c0;
|
|
local_38 = DAT_010256c4;
|
|
local_3c = DAT_010256c0;
|
|
}
|
|
local_3c = -local_3c;
|
|
local_38 = -local_38;
|
|
*(undefined4 *)((int)pvParm1 + 0x59) = *puVar5;
|
|
*(undefined4 *)((int)pvParm1 + 0x5d) = puVar5[1];
|
|
*(undefined4 *)((int)pvParm1 + 0x61) = puVar5[2];
|
|
*(undefined4 *)((int)pvParm1 + 0x55) = 0;
|
|
*(undefined4 *)((int)pvParm1 + 0x51) = 1;
|
|
local_2c = 0.00200000;
|
|
local_48 = *param_1 - local_3c * 5.00000000;
|
|
local_44 = param_1[1] - local_38 * 5.00000000;
|
|
local_30 = param_1[6] + 10.00000000;
|
|
fVar7 = (float10)FUN_0101b43a(&local_48,&local_74);
|
|
fVar8 = (float10)1000000000.00000000;
|
|
*(float *)((int)pvParm1 + 0xb9) = local_68;
|
|
*(undefined4 *)((int)pvParm1 + 0xbd) = uStack100;
|
|
*(undefined4 *)((int)pvParm1 + 0xc1) = uStack96;
|
|
if (fVar7 >= fVar8) {
|
|
return (float *)CONCAT22(extraout_var_01,
|
|
(ushort)(fVar7 < fVar8) << 8 | (ushort)(fVar7 == fVar8) << 0xe)
|
|
;
|
|
}
|
|
pfVar6 = (float *)((int)pvParm1 + 0xdd);
|
|
pfVar2 = &local_74;
|
|
goto LAB_0101bc82;
|
|
}
|
|
local_3c = param_1[3];
|
|
local_38 = param_1[4];
|
|
fStack52 = param_1[5];
|
|
local_2c = param_1[7];
|
|
local_48 = *param_1;
|
|
local_44 = param_1[1];
|
|
fStack64 = param_1[2];
|
|
local_30 = local_14;
|
|
FUN_0101b43a(&local_48,&local_74);
|
|
if (!in_PF) {
|
|
pfVar2 = (float *)((int)pvParm1 + 0xdd);
|
|
*pfVar2 = local_74;
|
|
*(undefined4 *)((int)pvParm1 + 0xe1) = uStack112;
|
|
*(undefined4 *)((int)pvParm1 + 0xe5) = uStack108;
|
|
*pfVar2 = *pfVar2 - local_3c * 0.00001000;
|
|
*(float *)((int)pvParm1 + 0xe1) = *(float *)((int)pvParm1 + 0xe1) - local_38 * 0.00001000;
|
|
bVar1 = (ushort)((ushort)(*(float *)((int)pvParm1 + 0x45) < 0.00000000) << 8 |
|
|
(ushort)(*(float *)((int)pvParm1 + 0x45) == 0.00000000) << 0xe) == 0;
|
|
pfVar2 = (float *)(uint)bVar1;
|
|
pfVar6 = (float *)((int)pvParm1 + 0x59);
|
|
if (*(int *)((int)pvParm1 + 0x15) == 2) {
|
|
pfVar4 = (float *)&DAT_010256c0;
|
|
*(uint *)((int)pvParm1 + 0x51) = (uint)!bVar1;
|
|
}
|
|
else {
|
|
*(float **)((int)pvParm1 + 0x51) = pfVar2;
|
|
pfVar4 = (float *)&DAT_01025680;
|
|
}
|
|
goto LAB_0101bab7;
|
|
}
|
|
local_10 = local_10 + *(float *)((int)pvParm1 + 0xb5);
|
|
local_8 = local_8 + local_18;
|
|
local_c = local_c + local_1c;
|
|
uVar9 = (ushort)(param_1[9] + param_1[8] < local_10) << 8 |
|
|
(ushort)(param_1[9] + param_1[8] == local_10) << 0xe;
|
|
pfVar2 = (float *)((uint)param_1 & 0xffff0000 | (uint)uVar9);
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
*pfVar2 = 0.00000000;
|
|
}
|
|
return pfVar2;
|
|
}
|
|
|
|
|
|
|
|
// WARNING: Globals starting with '_' overlap smaller symbols at the same address
|
|
|
|
void __thiscall FUN_0101be06(int iParm1,int param_1)
|
|
|
|
{
|
|
bool in_PF;
|
|
float10 fVar1;
|
|
float local_1c;
|
|
float local_18;
|
|
float local_14;
|
|
float local_10;
|
|
|
|
*(undefined4 *)(iParm1 + 0xc5) = 1;
|
|
if (*(int *)(iParm1 + 0x15) == 0) {
|
|
LAB_0101be63:
|
|
fVar1 = (float10)0;
|
|
}
|
|
else {
|
|
if (*(int *)(iParm1 + 0x51) == 0) {
|
|
if ((*(int *)(iParm1 + 0x15) != 0) && (*(int *)(iParm1 + 0x55) != 0)) {
|
|
local_1c = *(float *)(iParm1 + 0xdd) - *(float *)(iParm1 + 0x21);
|
|
local_10 = *(float *)(iParm1 + 0xe1) - *(float *)(iParm1 + 0x25);
|
|
local_1c = local_1c * local_1c + local_10 * local_10;
|
|
if (_DAT_0102566c * 1.00999999 < local_1c) {
|
|
local_1c = (1.00000000 - SQRT(local_1c / *(float *)(iParm1 + 0xb1))) *
|
|
*(float *)(iParm1 + 0x19);
|
|
}
|
|
else {
|
|
local_1c = *(float *)(iParm1 + 0x19);
|
|
}
|
|
local_10 = 0.00000000;
|
|
local_14 = 1000000000.00000000;
|
|
local_18 = *(float *)(iParm1 + 0x1d);
|
|
goto LAB_0101bf84;
|
|
}
|
|
goto LAB_0101be63;
|
|
}
|
|
local_1c = *(float *)(iParm1 + 0xdd) - *(float *)(iParm1 + 0x21);
|
|
local_10 = *(float *)(iParm1 + 0xe1) - *(float *)(iParm1 + 0x25);
|
|
local_1c = local_1c * local_1c + local_10 * local_10;
|
|
if (local_1c <= _DAT_0102566c * 1.00999999) goto LAB_0101be63;
|
|
local_10 = *(float *)(iParm1 + 0xb1);
|
|
local_14 = *(float *)(iParm1 + 0x45);
|
|
local_18 = *(float *)(iParm1 + 0xd1);
|
|
fVar1 = FUN_0101cc4b((float *)(iParm1 + 0x59),(float *)(iParm1 + 0xb9));
|
|
if (in_PF) {
|
|
fVar1 = fVar1 * (float10)((ABS(local_14) / local_18) * SQRT(local_1c / local_10));
|
|
}
|
|
else {
|
|
fVar1 = (float10)0;
|
|
}
|
|
fVar1 = fVar1 * (float10)*(float *)(iParm1 + 0x95);
|
|
}
|
|
local_10 = (float)fVar1;
|
|
local_14 = (float)fVar1;
|
|
local_18 = *(float *)(iParm1 + 0x1d);
|
|
local_1c = *(float *)(iParm1 + 0x19);
|
|
LAB_0101bf84:
|
|
FUN_01017883(param_1,(undefined4 *)(iParm1 + 0xdd),(float *)(iParm1 + 0xb9),local_1c,local_18,
|
|
local_14,local_10);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
void __thiscall FUN_0101bf98(void *this,int param_1,undefined4 param_2)
|
|
|
|
{
|
|
undefined4 uVar1;
|
|
void *extraout_ECX;
|
|
void *extraout_ECX_00;
|
|
float10 fVar2;
|
|
|
|
if (param_1 == 1) {
|
|
fVar2 = (float10)FUN_0101b1f7(param_2);
|
|
*(float *)((int)extraout_ECX_00 + 0x49) = (float)fVar2;
|
|
*(undefined4 *)((int)extraout_ECX_00 + 0x4d) = *(undefined4 *)((int)extraout_ECX_00 + 0x45);
|
|
uVar1 = *(undefined4 *)((int)extraout_ECX_00 + 0xd5);
|
|
this = extraout_ECX_00;
|
|
}
|
|
else {
|
|
if (param_1 != 2) {
|
|
if (param_1 == 0x400) {
|
|
*(undefined4 *)((int)this + 0x15) = 0;
|
|
*(undefined4 *)((int)this + 0x4d) = 0;
|
|
return;
|
|
}
|
|
goto LAB_0101bff8;
|
|
}
|
|
fVar2 = (float10)FUN_0101b1f7(param_2);
|
|
uVar1 = *(undefined4 *)((int)extraout_ECX + 0xd9);
|
|
*(float *)((int)extraout_ECX + 0x49) = (float)fVar2;
|
|
*(undefined4 *)((int)extraout_ECX + 0x4d) = 0;
|
|
this = extraout_ECX;
|
|
}
|
|
*(undefined4 *)((int)this + 0xd1) = uVar1;
|
|
LAB_0101bff8:
|
|
if (*(int *)((int)this + 0x15) == 0) {
|
|
*(undefined4 *)((int)this + 0xc9) = param_2;
|
|
}
|
|
*(int *)((int)this + 0x15) = param_1;
|
|
*(float *)((int)this + 0xcd) = *(float *)((int)this + 0xd1) + *(float *)((int)this + 0xc9);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
void __fastcall FUN_0101c047(undefined4 *param_1)
|
|
|
|
{
|
|
*param_1 = 0x1002838;
|
|
operator_delete(*(void **)((int)param_1 + 0x52));
|
|
FUN_01019172(param_1);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
// WARNING: Globals starting with '_' overlap smaller symbols at the same address
|
|
|
|
void FUN_0101c070(undefined4 param_1,int param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
int iVar2;
|
|
int iVar3;
|
|
int local_8;
|
|
|
|
local_8 = 0;
|
|
floor((double)((_DAT_01025630 - *(float *)(param_2 + 0x66)) / *(float *)(param_2 + 0x62) +
|
|
0.50000000));
|
|
iVar3 = *(int *)(param_2 + 0x22);
|
|
iVar2 = _ftol();
|
|
if (iVar2 == 0) {
|
|
iVar2 = 1;
|
|
}
|
|
iVar1 = *(int *)(param_2 + 6);
|
|
if (iVar1 == 1) {
|
|
*(int *)(param_2 + 0x4e) = *(int *)(param_2 + 0x4e) + iVar2;
|
|
iVar3 = *(int *)(*(int *)(iVar3 + 4) + 4) + -1;
|
|
if (iVar3 <= *(int *)(param_2 + 0x4e)) {
|
|
*(int *)(param_2 + 0x4e) = iVar3;
|
|
local_8 = iVar1;
|
|
}
|
|
}
|
|
if ((iVar1 == 2) &&
|
|
(*(int *)(param_2 + 0x4e) = *(int *)(param_2 + 0x4e) - iVar2, *(int *)(param_2 + 0x4e) < 1)) {
|
|
*(undefined4 *)(param_2 + 0x4e) = 0;
|
|
local_8 = 1;
|
|
}
|
|
iVar3 = 0;
|
|
if (local_8 == 0) {
|
|
iVar3 = FUN_010074b7(*(undefined4 *)(param_2 + 0x62),param_2,(int)FUN_0101c070);
|
|
}
|
|
else {
|
|
*(undefined4 *)(param_2 + 6) = 0;
|
|
}
|
|
*(int *)(param_2 + 0x56) = iVar3;
|
|
iVar3 = *(int *)(param_2 + 0x4e) * 4 + 8;
|
|
iVar2 = *(int *)(iVar3 + *(int *)(*(int *)(param_2 + 0x22) + 4));
|
|
FUN_01013974(*(undefined4 **)(param_2 + 0x1a),iVar2,
|
|
*(undefined4 *)(*(int *)(*(int *)(param_2 + 0x26) + 4) + iVar3),
|
|
*(int *)(iVar2 + 0x1d) - *(int *)(*(int *)(param_2 + 0x1e) + 0xea),
|
|
*(int *)(iVar2 + 0x21) - *(int *)(*(int *)(param_2 + 0x1e) + 0xee));
|
|
return;
|
|
}
|
|
|
|
|