OverRide/level08/source

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;
}