64 lines
1.3 KiB
C
64 lines
1.3 KiB
C
// 001acb70 std::__num_base::_S_format_float
|
|
|
|
/* std::__num_base::_S_format_float(std::ios_base const&, char*, char) */
|
|
|
|
void std::__num_base::_S_format_float(ios_base *param_1,char *param_2,char param_3)
|
|
|
|
{
|
|
char *pcVar1;
|
|
uint uVar2;
|
|
char *pcVar3;
|
|
char *pcVar4;
|
|
uint uVar5;
|
|
|
|
uVar2 = *(uint *)(param_1 + 0x18);
|
|
pcVar3 = param_2 + 1;
|
|
*param_2 = '%';
|
|
if ((uVar2 & 0x800) != 0) {
|
|
param_2[1] = '+';
|
|
pcVar3 = param_2 + 2;
|
|
}
|
|
if ((uVar2 & 0x400) != 0) {
|
|
*pcVar3 = '#';
|
|
pcVar3 = pcVar3 + 1;
|
|
}
|
|
uVar5 = uVar2 & 0x104;
|
|
if (uVar5 == 0x104) {
|
|
pcVar4 = pcVar3;
|
|
if (param_3 == '\0') goto LAB_001acc24;
|
|
LAB_001acbf7:
|
|
*pcVar4 = param_3;
|
|
pcVar1 = pcVar4 + 2;
|
|
pcVar3 = pcVar4 + 1;
|
|
}
|
|
else {
|
|
pcVar3[0] = '.';
|
|
pcVar3[1] = '*';
|
|
pcVar4 = pcVar3 + 2;
|
|
if (param_3 != '\0') goto LAB_001acbf7;
|
|
pcVar1 = pcVar3 + 3;
|
|
pcVar3 = pcVar3 + 2;
|
|
}
|
|
if (uVar5 == 4) {
|
|
*pcVar3 = 'f';
|
|
*pcVar1 = '\0';
|
|
return;
|
|
}
|
|
if (uVar5 == 0x100) {
|
|
*pcVar3 = (-((uVar2 & 0x4000) == 0) & 0x20U) + 0x45;
|
|
*pcVar1 = '\0';
|
|
return;
|
|
}
|
|
if (uVar5 != 0x104) {
|
|
*pcVar3 = (-((uVar2 & 0x4000) == 0) & 0x20U) + 0x47;
|
|
*pcVar1 = '\0';
|
|
return;
|
|
}
|
|
LAB_001acc24:
|
|
*pcVar3 = (-((uVar2 & 0x4000) == 0) & 0x20U) + 0x41;
|
|
pcVar3[1] = '\0';
|
|
return;
|
|
}
|
|
|
|
|