/* WARNING: Removing unreachable block (ram,0x004016e8) */
/* WARNING: Removing unreachable block (ram,0x00401724) */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
undefined4 main(int param_1,char **param_2)
{
undefined *puVar1;
char *pcVar2;
DIR *__dirp;
dirent *pdVar3;
long lVar4;
long lVar5;
long lVar6;
long lVar7;
undefined4 *puVar8;
uint uVar9;
int iVar10;
int iVar11;
uint uVar12;
int iVar13;
uint uVar14;
int iVar15;
uint uVar16;
uint uVar17;
uint local_f8;
undefined2 local_f4;
undefined1 local_f2;
uint local_f0;
undefined4 local_ec;
void *local_e8;
timeval local_e4;
undefined4 local_dc;
undefined4 local_d8;
char acStack_d4 [132];
int local_50;
undefined4 *local_4c;
uint local_48;
size_t local_44;
uint local_40;
uint *local_3c;
char *local_38;
undefined4 *local_34;
uint *local_30;
pcVar2 = strrchr(*param_2,0x2f);
if (pcVar2 == (char *)0x0) {
DAT_00415430 = *param_2;
}
else {
DAT_00415430 = pcVar2 + 1;
}
if (param_1 < 2) {
printf("RNDIMGAE v0.0.1\nUsage: %s [OPTION] message\n -h\tshow this help message.\n -f\tset ouput file name (default is \"/var/rndimg.jpeg\").\n -p\tset ouput file name (default is \"fonts\").\n -c\tset ouput file comment (default is \"Alphanetworks\").\n -w\tset ouput file width (default is %d).\n -t\tset ouput file height (default is %d).\n -D\tUse default message and save file.\n"
,DAT_00415430,500,200);
iVar10 = -1;
LAB_0040141c:
/* WARNING: Subroutine does not return */
exit(iVar10);
}
g_default_auth = 0;
LAB_00401430:
while( true ) {
iVar10 = getopt(param_1,param_2,"hc:f:p:w:t:D") //possible issue identified - semgrep
if (iVar10 == -1) {
DAT_00415434 = param_2[param_1 + -1];
gettimeofday(&local_e4,(__timezone_ptr_t)0x0);
srandom(local_e4.tv_usec + local_e4.tv_sec);
if (g_default_auth != 0) {
FUN_00400e78();
}
local_ec = 0;
local_e8 = (void *)0x0;
iVar10 = alloc_image(&local_ec,DAT_00415030 & 0xffff,DAT_00415034 & 0xffff);
if (iVar10 != 0) {
error_exit("failed to alloc background image");
}
local_44 = strlen(DAT_00415434);
local_f4 = 0;
local_f2 = 0;
random();
__dirp = opendir(PTR_s_fonts_00415044);
if (__dirp == (DIR *)0x0) {
error_exit("could not open font files at %s.\n",PTR_s_fonts_00415044);
}
puVar8 = &g_font_file;
iVar10 = 0;
local_4c = puVar8;
while ((pdVar3 = readdir(__dirp), pdVar3 != (dirent *)0x0 && (iVar10 < DAT_00415038))) {
pcVar2 = strrchr(pdVar3->d_name,0x2e);
if ((pcVar2 != (char *)0x0) && (iVar13 = strcmp(pcVar2,".dat"), iVar13 == 0)) {
pcVar2 = strdup(pdVar3->d_name) //possible issue identified - semgrep
*puVar8 = pcVar2;
iVar10 = iVar10 + 1;
puVar8 = puVar8 + 1;
}
}
local_30 = &local_f0;
local_f0 = CONCAT13(local_f0._3_1_,0xf0a000);
local_f0 = CONCAT31(local_f0._1_3_,0xf0);
local_dc = 0;
local_d8 = 0;
iVar13 = 0;
memset(local_e8,0xff,(local_ec >> 0x10) * (local_ec & 0xffff) * 3);
do {
FUN_00400d30(local_30,0x70,0xff);
lVar4 = random();
uVar14 = local_ec & 0xffff;
lVar5 = random();
uVar9 = local_ec >> 0x10;
lVar6 = random();
uVar16 = (local_ec & 0xffff) / 5;
uVar17 = lVar6 % (int)uVar16;
if (uVar16 == 0) {
trap(0x1c00);
}
lVar6 = random();
uVar16 = lVar6 % (int)(local_ec / 0x50000);
if (local_ec / 0x50000 == 0) {
trap(0x1c00);
}
uVar12 = uVar16;
if ((int)uVar17 < (int)uVar16) {
uVar12 = uVar17;
uVar17 = uVar16;
}
if (uVar14 == 0) {
trap(0x1c00);
}
iVar13 = iVar13 + 1;
if (uVar9 == 0) {
trap(0x1c00);
}
box(&local_ec,lVar4 % (int)uVar14 & 0xffff,lVar5 % (int)uVar9 & 0xffff,uVar17 & 0xffff,
uVar12 & 0xffff,local_f0 & 0xffffff);
iVar15 = 0;
} while (iVar13 != 10);
do {
FUN_00400d30(&local_f0,0x70,0xff);
iVar15 = iVar15 + 1;
lVar4 = random();
uVar9 = local_ec & 0xffff;
if (uVar9 == 0) {
trap(0x1c00);
}
lVar5 = random();
uVar17 = local_ec & 0xffff;
if (uVar17 == 0) {
trap(0x1c00);
}
lVar6 = random();
uVar14 = local_ec >> 0x10;
if (uVar14 == 0) {
trap(0x1c00);
}
lVar7 = random();
if (local_ec >> 0x10 == 0) {
trap(0x1c00);
}
line(&local_ec,lVar4 % (int)uVar9 & 0xffff,lVar6 % (int)uVar14 & 0xffff,
lVar5 % (int)uVar17 & 0xffff,lVar7 % (int)(local_ec >> 0x10) & 0xffff,
local_f0 & 0xffffff);
} while (iVar15 != 5);
iVar13 = 0;
do {
FUN_00400d30(&local_f0,0,0xff);
iVar13 = iVar13 + 1;
lVar4 = random();
uVar9 = local_ec & 0xffff;
if (uVar9 == 0) {
trap(0x1c00);
}
lVar5 = random();
if (local_ec >> 0x10 == 0) {
trap(0x1c00);
}
dot(&local_ec,lVar4 % (int)uVar9 & 0xffff,lVar5 % (int)(local_ec >> 0x10) & 0xffff,
local_f0 & 0xffffff);
} while (iVar13 != 0x32);
local_40 = (int)DAT_00415030 / (int)local_44;
if (local_44 == 0) {
trap(0x1c00);
}
local_f8 = CONCAT13(local_f8._3_1_,0xf0a000);
local_f8 = CONCAT31(local_f8._1_3_,0xf0);
local_3c = &local_f8;
local_38 = acStack_d4;
iVar13 = 0;
iVar15 = 0;
local_48 = local_40 >> 1;
local_34 = &local_ec;
while (iVar13 < (int)local_44) {
FUN_00400d30(local_3c,0,0x80);
local_50 = iVar13 + 1;
uVar9 = random();
if (local_48 == 0) {
trap(0x1c00);
}
uVar14 = uVar9 % local_48 + iVar15;
iVar15 = iVar15 + local_40;
uVar9 = random();
uVar17 = iVar15 - uVar14;
uVar9 = uVar9 % uVar17;
if (uVar17 == 0) {
trap(0x1c00);
}
if (uVar9 < 0x1e) {
uVar9 = uVar9 + 0x14;
}
lVar4 = random();
uVar17 = lVar4 % ((int)DAT_00415034 / 2);
if ((int)DAT_00415034 / 2 == 0) {
trap(0x1c00);
}
iVar11 = DAT_00415034 - 1;
uVar16 = random();
puVar1 = PTR_s_fonts_00415044;
uVar12 = iVar11 - uVar17;
uVar16 = uVar16 % uVar12;
if (uVar12 == 0) {
trap(0x1c00);
}
if (uVar16 < 0x32) {
uVar16 = uVar16 + 0x1e;
}
lVar4 = random();
if (iVar10 == 0) {
trap(0x1c00);
}
sprintf(local_38,"%s/%s",puVar1,(&g_font_file)[lVar4 % iVar10]) //possible issue identified - semgrep
iVar11 = get_chr_from_file(local_38,(int)DAT_00415434[iVar13],&local_dc,local_f8 & 0xffffff)
;
if (iVar11 != 0) {
if (iVar10 == 0) {
trap(0x1c00);
}
error_exit("failed to get word image: %d(%s)\n",iVar13 % iVar10,local_38);
}
bitblt(local_34,&local_dc,uVar14 & 0xffff,uVar17 & 0xffff,uVar9 & 0xffff,uVar16 & 0xffff,
local_f4);
iVar13 = local_50;
free_image(&local_dc);
}
iVar10 = 0;
do {
FUN_00400d30(&local_f8,0,0xff);
iVar10 = iVar10 + 1;
lVar4 = random();
uVar9 = local_ec & 0xffff;
if (uVar9 == 0) {
trap(0x1c00);
}
lVar5 = random();
if (local_ec >> 0x10 == 0) {
trap(0x1c00);
}
dot(&local_ec,lVar4 % (int)uVar9 & 0xffff,lVar5 % (int)(local_ec >> 0x10) & 0xffff,
local_f8 & 0xffffff);
} while (iVar10 != 0x32);
iVar10 = 0;
for (; (iVar10 < DAT_00415038 && ((void *)*local_4c != (void *)0x0)); local_4c = local_4c + 1)
{
iVar10 = iVar10 + 1;
free((void *)*local_4c);
*local_4c = 0;
}
iVar10 = write_jpeg(PTR_s__var_rndimg_jpeg_00415040,local_e8,local_ec & 0xffff,local_ec._2_2_,
PTR_s_Alphanetworks_00415048);
if (iVar10 != 0) {
error_exit("failed to encode image");
}
fprintf(_stderr,"output %s(%dX%d)\n",PTR_s__var_rndimg_jpeg_00415040,local_ec & 0xffff,
local_ec >> 0x10);
free_image(&local_ec);
return 0;
}
if (iVar10 == 0x68) break;
if (iVar10 < 0x69) {
if (iVar10 == 99) {
PTR_s_Alphanetworks_00415048 = _optarg;
}
else if (iVar10 == 0x66) {
PTR_s__var_rndimg_jpeg_00415040 = _optarg;
}
else {
if (iVar10 != 0x44) {
LAB_004013e8:
iVar10 = -1;
goto LAB_004013ec;
}
g_default_auth = 1;
}
}
else {
if (iVar10 == 0x74) goto LAB_004013ac;
if (iVar10 == 0x77) {
DAT_00415030 = atoi(_optarg);
if (DAT_00415030 == 0) {
pcVar2 = "invalid picture width.\n";
goto LAB_004013d4;
}
}
else {
if (iVar10 != 0x70) goto LAB_004013e8;
PTR_s_fonts_00415044 = _optarg;
}
}
}
iVar10 = 0;
LAB_004013ec:
printf("RNDIMGAE v0.0.1\nUsage: %s [OPTION] message\n -h\tshow this help message.\n -f\tset ouput file name (default is \"/var/rndimg.jpeg\").\n -p\tset ouput file name (default is \"fonts\").\n -c\tset ouput file comment (default is \"Alphanetworks\").\n -w\tset ouput file width (default is %d).\n -t\tset ouput file height (default is %d).\n -D\tUse default message and save file.\n"
,DAT_00415430,500,200);
goto LAB_0040141c;
LAB_004013ac:
DAT_00415034 = atoi(_optarg);
if (DAT_00415034 == 0) {
pcVar2 = "invalid picture height.\n";
LAB_004013d4:
error_exit(pcVar2);
}
goto LAB_00401430;
}