114 lines
2.9 KiB
Plaintext
114 lines
2.9 KiB
Plaintext
void log_wrapper(FILE *param_1,char *param_2,char *param_3)
|
|
{
|
|
char cVar1;
|
|
size_t sVar2;
|
|
ulong uVar3;
|
|
ulong uVar4;
|
|
char *pcVar5;
|
|
long in_FS_OFFSET;
|
|
byte bVar6;
|
|
undefined8 local_120;
|
|
char local_118 [264];
|
|
long local_10;
|
|
|
|
bVar6 = 0;
|
|
local_10 = *(long *)(in_FS_OFFSET + 0x28);
|
|
local_120 = param_1;
|
|
strcpy(local_118,param_2);
|
|
uVar3 = 0xffffffffffffffff;
|
|
pcVar5 = local_118;
|
|
do {
|
|
if (uVar3 == 0) break;
|
|
uVar3 = uVar3 - 1;
|
|
cVar1 = *pcVar5;
|
|
pcVar5 = pcVar5 + (ulong)bVar6 * -2 + 1;
|
|
} while (cVar1 != '\0');
|
|
uVar4 = 0xffffffffffffffff;
|
|
pcVar5 = local_118;
|
|
do {
|
|
if (uVar4 == 0) break;
|
|
uVar4 = uVar4 - 1;
|
|
cVar1 = *pcVar5;
|
|
pcVar5 = pcVar5 + (ulong)bVar6 * -2 + 1;
|
|
} while (cVar1 != '\0');
|
|
snprintf(local_118 + (~uVar4 - 1),0xfe - (~uVar3 - 1),param_3);
|
|
sVar2 = strcspn(local_118,"\n");
|
|
local_118[sVar2] = '\0';
|
|
fprintf(local_120,"LOG: %s\n",local_118);
|
|
if (local_10 != *(long *)(in_FS_OFFSET + 0x28)) {
|
|
/* WARNING: Subroutine does not return */
|
|
__stack_chk_fail();
|
|
}
|
|
return;
|
|
}
|
|
|
|
undefined8 main(int param_1,undefined8 *param_2)
|
|
{
|
|
char cVar1;
|
|
int __fd;
|
|
int iVar2;
|
|
FILE *pFVar3;
|
|
FILE *__stream;
|
|
ulong uVar4;
|
|
undefined8 *puVar5;
|
|
long in_FS_OFFSET;
|
|
byte bVar6;
|
|
char local_79;
|
|
undefined8 local_78;
|
|
undefined2 local_70;
|
|
char local_6e;
|
|
long local_10;
|
|
|
|
bVar6 = 0;
|
|
local_10 = *(long *)(in_FS_OFFSET + 0x28);
|
|
local_79 = -1;
|
|
if (param_1 != 2) {
|
|
printf("Usage: %s filename\n",*param_2);
|
|
}
|
|
pFVar3 = fopen("./backups/.log","w");
|
|
if (pFVar3 == (FILE *)0x0) {
|
|
printf("ERROR: Failed to open %s\n","./backups/.log");
|
|
/* WARNING: Subroutine does not return */
|
|
exit(1);
|
|
}
|
|
log_wrapper(pFVar3,"Starting back up: ",param_2[1]);
|
|
__stream = fopen((char *)param_2[1],"r");
|
|
if (__stream == (FILE *)0x0) {
|
|
printf("ERROR: Failed to open %s\n",param_2[1]);
|
|
/* WARNING: Subroutine does not return */
|
|
exit(1);
|
|
}
|
|
local_78 = 0x70756b6361622f2e;
|
|
local_70 = 0x2f73;
|
|
local_6e = '\0';
|
|
uVar4 = 0xffffffffffffffff;
|
|
puVar5 = &local_78;
|
|
do {
|
|
if (uVar4 == 0) break;
|
|
uVar4 = uVar4 - 1;
|
|
cVar1 = *(char *)puVar5;
|
|
puVar5 = (undefined8 *)((long)puVar5 + (ulong)bVar6 * -2 + 1);
|
|
} while (cVar1 != '\0');
|
|
strncat((char *)&local_78,(char *)param_2[1],99 - (~uVar4 - 1));
|
|
__fd = open((char *)&local_78,0xc1,0x1b0);
|
|
if (__fd < 0) {
|
|
printf("ERROR: Failed to open %s%s\n","./backups/",param_2[1]);
|
|
/* WARNING: Subroutine does not return */
|
|
exit(1);
|
|
}
|
|
while( true ) {
|
|
iVar2 = fgetc(__stream);
|
|
local_79 = (char)iVar2;
|
|
if (local_79 == -1) break;
|
|
write(__fd,&local_79,1);
|
|
}
|
|
log_wrapper(pFVar3,"Finished back up ",param_2[1]);
|
|
fclose(__stream);
|
|
close(__fd);
|
|
if (local_10 != *(long *)(in_FS_OFFSET + 0x28)) {
|
|
/* WARNING: Subroutine does not return */
|
|
__stack_chk_fail();
|
|
}
|
|
return 0;
|
|
}
|