-
-
Save mloc/2815458 to your computer and use it in GitHub Desktop.
DM Compiler
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
__size32 puts = 0x375e;// 4 bytes | |
__size32 ?IsFile@@YADPBD@Z = 0x33c4;// 4 bytes | |
void proc1(); | |
void proc2(); | |
void proc3(); | |
void proc4(); | |
void proc5(); | |
// address: 0x401040 | |
int main(int argc, char *argv[], char *envp[]) { | |
unsigned char al; // r8 | |
unsigned int cl; // r9 | |
__size8 cl_1; // r9 | |
unsigned int dl; // r10 | |
__size8 dl_1; // r10 | |
int eax; // r24 | |
union { unsigned int * x73; __size8 * x74; unsigned int x81; } eax_1; // r24 | |
union { unsigned int * x103; __size8 * x104; unsigned int x108; } eax_10; // r24 | |
union { unsigned int * x103; __size8 * x104; } eax_11; // r24 | |
union { unsigned int * x109; __size8 * x110; unsigned int x115; } eax_12; // r24 | |
union { unsigned int * x109; __size8 * x110; } eax_13; // r24 | |
__size32 eax_14; // r24{400} | |
unsigned char *eax_15; // r24{408} | |
__size32 eax_16; // r24{639} | |
char *eax_17; // r24{631} | |
__size8 *eax_18; // r24{238} | |
int eax_19; // r24{560} | |
union { unsigned int * x73; __size8 * x74; } eax_2; // r24 | |
__size32 eax_20; // r24{5} | |
int eax_3; // r24 | |
union { unsigned int * x82; __size8 * x83; unsigned int x90; } eax_4; // r24 | |
union { unsigned int * x82; __size8 * x83; } eax_5; // r24 | |
union { unsigned int * x91; __size8 * x92; unsigned int x96; } eax_6; // r24 | |
union { unsigned int * x91; __size8 * x92; } eax_7; // r24 | |
union { unsigned int * x97; __size8 * x98; unsigned int x102; } eax_8; // r24 | |
union { unsigned int * x97; __size8 * x98; } eax_9; // r24 | |
int ebp; // r29 | |
int ebp_1; // r29{408} | |
__size32 *ebx; // r27 | |
__size32 *ebx_1; // r27{408} | |
__size32 ecx; // r25 | |
void *ecx_1; // r25 | |
int edi; // r31 | |
int edi_1; // r31{233} | |
int edi_10; // r31{1011} | |
int edi_11; // r31{731} | |
int edi_2; // r31{285} | |
int edi_3; // r31{23} | |
int edi_4; // r31{78} | |
int edi_5; // r31{129} | |
int edi_6; // r31{181} | |
int edi_7; // r31{874} | |
int edi_8; // r31{825} | |
int edi_9; // r31{776} | |
__size32 edx; // r26 | |
void *edx_1; // r26 | |
unsigned int *esi; // r30 | |
unsigned int esi_1; // r30 | |
unsigned int *esi_10; // r30{159} | |
unsigned int *esi_11; // r30{136} | |
unsigned int *esi_12; // r30{211} | |
unsigned int *esi_13; // r30{188} | |
unsigned int *esi_14; // r30{787} | |
unsigned int *esi_15; // r30{738} | |
unsigned int *esi_16; // r30{693} | |
unsigned int *esi_17; // r30{942} | |
unsigned int *esi_18; // r30{885} | |
unsigned int *esi_19; // r30{836} | |
unsigned int *esi_2; // r30{240} | |
unsigned int *esi_3; // r30{263} | |
unsigned int *esi_4; // r30{320} | |
unsigned int *esi_5; // r30{297} | |
unsigned int *esi_6; // r30{57} | |
unsigned int *esi_7; // r30{34} | |
unsigned int *esi_8; // r30{107} | |
unsigned int *esi_9; // r30{84} | |
int esp; // r28 | |
unsigned int *esp_1; // r28{408} | |
void *esp_10; // r28{544} | |
void *esp_11; // r28{386} | |
void *esp_12; // r28{410} | |
void *esp_13; // r28{495} | |
__size32 esp_14; // r28{536} | |
unsigned int *esp_15; // r28{432} | |
__size32 esp_16; // r28{493} | |
void *esp_17; // r28{455} | |
void *esp_18; // r28{434} | |
void *esp_19; // r28{538} | |
void *esp_2; // r28{658} | |
void *esp_20; // r28{1024} | |
void *esp_21; // r28{1037} | |
void *esp_22; // r28{1008} | |
void *esp_3; // r28{652} | |
void *esp_4; // r28{646} | |
void *esp_5; // r28{448} | |
void *esp_6; // r28{573} | |
void *esp_7; // r28{598} | |
__size32 esp_8; // r28{571} | |
void *esp_9; // r28{555} | |
unsigned int local0; // m[esp - 108] | |
__size32 local1; // m[esp - 104] | |
__size8 local10; // m[esp - 65] | |
int local100; // %ZF{658} | |
int local101; // %ZF{1064} | |
int local102; // %ZF{658} | |
int local103; // %ZF{658} | |
int local104; // %ZF{652} | |
int local105; // %ZF{646} | |
int local106; // %ZF{290} | |
int local107; // %ZF{338} | |
int local108; // %CF{658} | |
int local109; // %CF{658} | |
__size8 local11; // m[esp - 64] | |
int local110; // %CF{1065} | |
int local111; // %CF{658} | |
union { bool x151; unsigned int x152; } local112; // %CF{967} | |
int local113; // %CF{658} | |
int local114; // %CF{658} | |
int local115; // %CF{658} | |
union { unsigned int x21; unsigned int * x22; } local116; // %CF{910} | |
int local117; // %CF{658} | |
int local118; // %CF{658} | |
union { unsigned int x15; unsigned int * x16; } local119; // %CF{861} | |
__size8 local12; // m[esp - 63] | |
int local120; // %CF{658} | |
int local121; // %CF{658} | |
union { unsigned int x9; unsigned int * x10; } local122; // %CF{812} | |
int local123; // %CF{658} | |
int local124; // %CF{658} | |
union { bool x122; unsigned int x123; } local125; // %CF{763} | |
int local126; // %CF{658} | |
int local127; // %CF{658} | |
unsigned int local128; // %CF{718} | |
int local129; // %CF{658} | |
__size8 local13; // m[esp - 62] | |
int local130; // %CF{658} | |
int local131; // %CF{652} | |
int local132; // %CF{646} | |
unsigned int local133; // %CF{256} | |
unsigned int local134; // %CF{246} | |
unsigned int local135; // %CF{313} | |
unsigned int local136; // %CF{303} | |
int local137; // %CF{290} | |
unsigned int local138; // %CF{50} | |
union { bool x122; unsigned int x123; } local139; // %CF{763} | |
__size8 local14; // m[esp - 61] | |
union { unsigned int x9; unsigned int * x10; } local140; // %CF{812} | |
union { unsigned int x15; unsigned int * x16; } local141; // %CF{861} | |
union { unsigned int x21; unsigned int * x22; } local142; // %CF{910} | |
union { bool x151; unsigned int x152; } local143; // %CF{967} | |
unsigned int local144; // %CF{40} | |
unsigned int local145; // %CF{100} | |
unsigned int local146; // %CF{90} | |
unsigned int local147; // %CF{152} | |
unsigned int local148; // %CF{142} | |
int local149; // %CF{338} | |
__size32 local15; // m[esp - 12] | |
unsigned int local150; // %CF{204} | |
unsigned int local151; // %CF{194} | |
union { unsigned int * x73; __size8 * x74; unsigned int x81; } local152; // eax_1{690} | |
unsigned int *local153; // esi_16{693} | |
unsigned int local154; // local128{718} | |
int local155; // edi_11{731} | |
union { unsigned int * x82; __size8 * x83; unsigned int x90; } local156; // eax_4{735} | |
unsigned int *local157; // esi_15{738} | |
union { bool x122; unsigned int x123; } local158; // local125{763} | |
int local159; // edi_9{776} | |
int local16; // m[esp - 8] | |
union { unsigned int * x91; __size8 * x92; unsigned int x96; } local160; // eax_6{784} | |
unsigned int *local161; // esi_14{787} | |
union { unsigned int x9; unsigned int * x10; } local162; // local122{812} | |
int local163; // edi_8{825} | |
union { unsigned int * x97; __size8 * x98; unsigned int x102; } local164; // eax_8{833} | |
unsigned int *local165; // esi_19{836} | |
union { unsigned int x15; unsigned int * x16; } local166; // local119{861} | |
int local167; // edi_7{874} | |
union { unsigned int * x103; __size8 * x104; unsigned int x108; } local168; // eax_10{882} | |
unsigned int *local169; // esi_18{885} | |
int local17; // m[esp - 4] | |
union { unsigned int x21; unsigned int * x22; } local170; // local116{910} | |
int local171; // edi_10{930} | |
union { unsigned int * x109; __size8 * x110; unsigned int x115; } local172; // eax_12{939} | |
unsigned int *local173; // esi_17{942} | |
union { bool x151; unsigned int x152; } local174; // local112{967} | |
void *local175; // esp_22{1008} | |
int local176; // edi_10{1011} | |
void *local177; // esp_20{1024} | |
void *local178; // esp_21{1045} | |
int local179; // local92{1063} | |
int local18; // m[esp + 4] | |
int local180; // local101{1064} | |
int local181; // local110{1065} | |
__size32 *local19; // m[esp + 8] | |
unsigned int local2; // m[esp - 100] | |
int local20; // m[esp + 12] | |
int local21; // m[esp + 4]{408} | |
int local22; // m[esp + 4]{658} | |
int local23; // m[esp + 8]{408} | |
int local24; // m[esp + 8]{658} | |
int local25; // m[esp + 12]{408} | |
int local26; // m[esp + 12]{658} | |
void *local27; // m[esp_17 - 12]{566} | |
unsigned int local28; // m[esp_17 - 12]{475} | |
unsigned int local29; // m[esp_17 - 16]{569} | |
int local3; // m[esp - 96] | |
void *local30; // m[esp_17 - 16]{488} | |
unsigned int local31; // m[esp_17 - 20]{491} | |
void *local32; // m[esp_17 - 20]{531} | |
__size32 local33; // m[esp - 4]{1094} | |
int local34; // m[esp - 4]{658} | |
int local35; // m[esp - 8]{408} | |
int local36; // m[esp - 8]{658} | |
__size32 local37; // m[esp - 8]{1095} | |
int local38; // m[esp - 12]{408} | |
int local39; // m[esp - 12]{658} | |
int local4; // m[esp - 92] | |
__size32 local40; // m[esp - 12]{1096} | |
int local41; // m[esp - 61]{408} | |
int local42; // m[esp - 61]{658} | |
__size8 local43; // m[esp - 61]{1097} | |
int local44; // m[esp - 62]{408} | |
int local45; // m[esp - 62]{658} | |
__size8 local46; // m[esp - 62]{1098} | |
int local47; // m[esp - 63]{408} | |
int local48; // m[esp - 63]{658} | |
__size8 local49; // m[esp - 63]{1099} | |
int local5; // m[esp - 88] | |
int local50; // m[esp - 64]{408} | |
int local51; // m[esp - 64]{658} | |
__size8 local52; // m[esp - 64]{1100} | |
int local53; // m[esp - 65]{408} | |
int local54; // m[esp - 65]{658} | |
__size8 local55; // m[esp - 65]{1101} | |
int local56; // m[esp - 72]{408} | |
int local57; // m[esp - 72]{658} | |
__size32 local58; // m[esp - 72]{1102} | |
int local59; // m[esp - 76]{408} | |
__size32 local6; // m[esp - 84] | |
int local60; // m[esp - 76]{658} | |
__size32 local61; // m[esp - 76]{1103} | |
int local62; // m[esp - 80]{408} | |
int local63; // m[esp - 80]{658} | |
__size32 local64; // m[esp - 80]{1104} | |
int local65; // m[esp - 84]{408} | |
int local66; // m[esp - 84]{658} | |
__size32 local67; // m[esp - 84]{1105} | |
int local68; // m[esp - 88]{408} | |
int local69; // m[esp - 88]{658} | |
__size32 local7; // m[esp - 80] | |
__size32 local70; // m[esp - 88]{1106} | |
int local71; // m[esp - 92]{408} | |
int local72; // m[esp - 92]{658} | |
unsigned int local73; // m[esp - 92]{1107} | |
int local74; // m[esp - 96]{408} | |
int local75; // m[esp - 96]{658} | |
unsigned int local76; // m[esp - 96]{1108} | |
int local77; // m[esp - 100]{408} | |
int local78; // m[esp - 100]{658} | |
unsigned int local79; // m[esp - 100]{1109} | |
__size32 local8; // m[esp - 76] | |
int local80; // m[esp - 104]{408} | |
int local81; // m[esp - 104]{658} | |
int local82; // m[esp - 104]{1110} | |
int local83; // m[esp - 108]{408} | |
int local84; // m[esp - 108]{658} | |
int local85; // m[esp - 108]{1111} | |
__size32 local86; // m[0]{619} | |
union { void * x285; int x286; } local87; // m[0]{9} | |
union { void * x285; int x286; } local88; // m[0]{9} | |
__size32 local89; // m[0]{672} | |
__size32 local9; // m[esp - 72] | |
int local90; // %flags{658} | |
int local91; // %flags{658} | |
int local92; // %flags{1063} | |
int local93; // %flags{658} | |
int local94; // %flags{658} | |
int local95; // %flags{652} | |
int local96; // %flags{646} | |
int local97; // %flags{290} | |
int local98; // %flags{338} | |
int local99; // %ZF{658} | |
local87 = esp - 12; | |
ebx_1 = argv; | |
ebp_1 = argc; | |
edi_3 = 1; | |
local155 = edi_3; | |
local171 = edi_3; | |
if (argc > 1) { | |
eax = *(argv + 4); | |
esi_7 = 0x4040fc; | |
local152 = eax; | |
local153 = esi_7; | |
do { | |
eax_1 = local152; | |
esi_16 = local153; | |
dl = *eax_1; | |
edx = edx >> 8 & 0xffffff | (dl); | |
cl = dl; | |
ecx = ecx >> 8 & 0xffffff | (dl); | |
tmpb = dl - *esi_16; | |
flags = SUBFLAGS8(dl, *esi_16, tmpb); | |
local154 = local144; | |
if (dl != *esi_16) { | |
L104: | |
local128 = local154; | |
eax_3 = 1 - local128 + (eax_1 < 0 - local128); | |
goto L103; | |
} | |
if (dl == 0) { | |
break; | |
} | |
dl = *(eax_1 + 1); | |
edx = edx >> 8 & 0xffffff | (dl); | |
cl = dl; | |
ecx = ecx >> 8 & 0xffffff | (dl); | |
tmpb = dl - *(esi_16 + 1); | |
flags = SUBFLAGS8(dl, *(esi_16 + 1), tmpb); | |
local154 = local138; | |
if (dl != *(esi_16 + 1)) { | |
goto L104; | |
} | |
eax_2 = eax_1 + 2; | |
esi_6 = esi_16 + 2; | |
local152 = eax_2; | |
local153 = esi_6; | |
} while (dl != 0); | |
eax_3 = 0; | |
L103: | |
if (eax_3 == 0) { | |
edi_4 = 2; | |
local155 = edi_4; | |
} | |
edi_11 = local155; | |
local159 = edi_11; | |
local171 = edi_11; | |
if (edi_11 < argc) { | |
eax = *(argv + edi_11 * 4); | |
esi_9 = 0x4040f8; | |
local156 = eax; | |
local157 = esi_9; | |
do { | |
eax_4 = local156; | |
esi_15 = local157; | |
dl = *eax_4; | |
edx = edx >> 8 & 0xffffff | (dl); | |
cl = dl; | |
ecx = ecx >> 8 & 0xffffff | (dl); | |
tmpb = dl - *esi_15; | |
flags = SUBFLAGS8(dl, *esi_15, tmpb); | |
local158 = local146; | |
if (dl != *esi_15) { | |
L94: | |
local125 = local158; | |
eax_3 = 1 - local125 + (eax_4 < 0 - local125); | |
goto L93; | |
} | |
if (dl == 0) { | |
break; | |
} | |
dl = *(eax_4 + 1); | |
edx = edx >> 8 & 0xffffff | (dl); | |
cl = dl; | |
ecx = ecx >> 8 & 0xffffff | (dl); | |
tmpb = dl - *(esi_15 + 1); | |
flags = SUBFLAGS8(dl, *(esi_15 + 1), tmpb); | |
local158 = local145; | |
if (dl != *(esi_15 + 1)) { | |
goto L94; | |
} | |
eax_5 = eax_4 + 2; | |
esi_8 = esi_15 + 2; | |
local156 = eax_5; | |
local157 = esi_8; | |
} while (dl != 0); | |
eax_3 = 0; | |
L93: | |
if (eax_3 == 0) { | |
edi_5 = edi_11 + 1; | |
local159 = edi_5; | |
} | |
edi_9 = local159; | |
local163 = edi_9; | |
local171 = edi_9; | |
if (edi_9 < argc) { | |
eax = *(argv + edi_9 * 4); | |
esi_11 = 0x4040ec; | |
local160 = eax; | |
local161 = esi_11; | |
do { | |
eax_6 = local160; | |
esi_14 = local161; | |
dl = *eax_6; | |
edx = edx >> 8 & 0xffffff | (dl); | |
cl = dl; | |
ecx = ecx >> 8 & 0xffffff | (dl); | |
tmpb = dl - *esi_14; | |
flags = SUBFLAGS8(dl, *esi_14, tmpb); | |
local162 = local148; | |
if (dl != *esi_14) { | |
L84: | |
local122 = local162; | |
eax_3 = 1 - local122 + (eax_6 < 0 - local122); | |
goto L83; | |
} | |
if (dl == 0) { | |
break; | |
} | |
dl = *(eax_6 + 1); | |
edx = edx >> 8 & 0xffffff | (dl); | |
cl = dl; | |
ecx = ecx >> 8 & 0xffffff | (dl); | |
tmpb = dl - *(esi_14 + 1); | |
flags = SUBFLAGS8(dl, *(esi_14 + 1), tmpb); | |
local162 = local147; | |
if (dl != *(esi_14 + 1)) { | |
goto L84; | |
} | |
eax_7 = eax_6 + 2; | |
esi_10 = esi_14 + 2; | |
local160 = eax_7; | |
local161 = esi_10; | |
} while (dl != 0); | |
eax_3 = 0; | |
L83: | |
if (eax_3 == 0) { | |
edi_6 = edi_9 + 1; | |
local163 = edi_6; | |
} | |
edi_8 = local163; | |
local167 = edi_8; | |
local171 = edi_8; | |
if (edi_8 < argc) { | |
eax = *(argv + edi_8 * 4); | |
esi_13 = 0x4040e0; | |
local164 = eax; | |
local165 = esi_13; | |
do { | |
eax_8 = local164; | |
esi_19 = local165; | |
dl = *eax_8; | |
edx = edx >> 8 & 0xffffff | (dl); | |
cl = dl; | |
ecx = ecx >> 8 & 0xffffff | (dl); | |
tmpb = dl - *esi_19; | |
flags = SUBFLAGS8(dl, *esi_19, tmpb); | |
local166 = local151; | |
if (dl != *esi_19) { | |
L74: | |
local119 = local166; | |
eax_3 = 1 - local119 + (eax_8 < 0 - local119); | |
goto L73; | |
} | |
if (dl == 0) { | |
break; | |
} | |
dl = *(eax_8 + 1); | |
edx = edx >> 8 & 0xffffff | (dl); | |
cl = dl; | |
ecx = ecx >> 8 & 0xffffff | (dl); | |
tmpb = dl - *(esi_19 + 1); | |
flags = SUBFLAGS8(dl, *(esi_19 + 1), tmpb); | |
local166 = local150; | |
if (dl != *(esi_19 + 1)) { | |
goto L74; | |
} | |
eax_9 = eax_8 + 2; | |
esi_12 = esi_19 + 2; | |
local164 = eax_9; | |
local165 = esi_12; | |
} while (dl != 0); | |
eax_3 = 0; | |
L73: | |
if (eax_3 == 0) { | |
edi_1 = edi_8 + 1; | |
local167 = edi_1; | |
} | |
edi_7 = local167; | |
local171 = edi_7; | |
local171 = edi_7; | |
if (edi_7 < argc) { | |
eax_18 = *(argv + edi_7 * 4); | |
esi_2 = 0x4040dc; | |
local168 = eax_18; | |
local169 = esi_2; | |
do { | |
eax_10 = local168; | |
esi_18 = local169; | |
dl = *eax_10; | |
edx = edx >> 8 & 0xffffff | (dl); | |
cl = dl; | |
ecx = ecx >> 8 & 0xffffff | (dl); | |
tmpb = dl - *esi_18; | |
flags = SUBFLAGS8(dl, *esi_18, tmpb); | |
local170 = local134; | |
if (dl != *esi_18) { | |
L64: | |
local116 = local170; | |
eax_3 = 1 - local116 + (eax_10 < 0 - local116); | |
goto L63; | |
} | |
if (dl == 0) { | |
break; | |
} | |
dl = *(eax_10 + 1); | |
edx = edx >> 8 & 0xffffff | (dl); | |
cl = dl; | |
ecx = ecx >> 8 & 0xffffff | (dl); | |
tmpb = dl - *(esi_18 + 1); | |
flags = SUBFLAGS8(dl, *(esi_18 + 1), tmpb); | |
local170 = local133; | |
if (dl != *(esi_18 + 1)) { | |
goto L64; | |
} | |
eax_11 = eax_10 + 2; | |
esi_3 = esi_18 + 2; | |
local168 = eax_11; | |
local169 = esi_3; | |
} while (dl != 0); | |
eax_3 = 0; | |
L63: | |
if (eax_3 == 0) { | |
edi_2 = edi_7 + 1; | |
local171 = edi_2; | |
} | |
} | |
} | |
} | |
} | |
} | |
edi_10 = local171; | |
al = (unsigned char) edi_10 + 1; | |
local97 = SUBFLAGS32(argc, edi_10 + 1, argc - edi_10 - 1); | |
local176 = edi_10; | |
local179 = local97; | |
local180 = local106; | |
local181 = local137; | |
if (argc != edi_10 + 1) { | |
L7: | |
local92 = local179; | |
local101 = local180; | |
local110 = local181; | |
eax = *argv; | |
?GetFileName@@YAPBDPBD@Z(); | |
printf("%s [options] sourcefile[.dme]\n", eax_17); | |
(*puts)(local0, pc, 0x40408c, 0x40409c, eax_17, eax, edi, esi, ebp, ebx, local10, local11, local12, local13, local14, eax_20, 0x4026c8, -1, argc, argv, envp, (unsigned char) eax, cl, dl, eax_16, ecx, edx, argv, argc, puts, edi_10, local92, local101, local110); | |
*(__size32*)(esp_4 - 4) = 0x404070; | |
(*esi)(local0, local1, local2, local3, local4, local5, local6, local7, local8, local9, local10, local11, local12, local13, local14, local15, local16, local17, local18, local19, local20, al, cl_1, dl_1, eax, ecx, edx, ebx, ebp, esi, edi, <all>, local96, local105, local132); | |
*(__size32*)(esp_3 - 4) = 0x404044; | |
(*esi)(local0, local1, local2, local3, local4, local5, local6, local7, local8, local9, local10, local11, local12, local13, local14, local15, local16, local17, local18, local19, local20, al, cl_1, dl_1, eax, ecx, edx, ebx, ebp, esi, edi, <all>, local95, local104, local131); | |
*(__size32*)(esp_2 - 4) = 0x404020; | |
(*esi)(local84, local81, local78, local75, local72, local69, local66, local63, local60, local57, local54, local51, local48, local45, local42, local39, local36, local34, local22, local24, local26, al, cl_1, dl_1, eax, ecx, edx, ebx, ebp, esi, edi, <all>, local90, local99, local108); | |
ecx = *(esp + 100); | |
eax = 1; | |
local89 = ecx; | |
} else { | |
if (edi_10 >= argc) { | |
L51: | |
?Init@ByondLib@@QAEHW4ByondServerType@@@Z(); | |
esi_1 = *(argv + edi_10 * 4); | |
?GetPathPart@@YAPADPBD@Z(); | |
if (eax != 0) { | |
_chdir(); | |
?GetFileName@@YAPBDPBD@Z(); | |
esi_1 = eax; | |
} | |
?GetFileExt@@YAPBDPBD@Z(); | |
cl = *eax_15; | |
esp_11 = esp - 88; | |
flags = LOGICALFLAGS8(cl); | |
local175 = esp_11; | |
if (cl == 0) { | |
?ExtCat@@YAPADPBD00@Z(); | |
(*?IsFile@@YADPBD@Z)(pc, eax_14, esi_1, 0x4041c8, 0x4040d0, 0, edi, esi, ebp, ebx, local10, local11, local12, local13, local14, eax_20, 0x4026c8, -1, argc, argv, envp, al, cl, dl, eax_14, ecx, edx, argv, ?IsFile@@YADPBD@Z, esi_1, eax_14, LOGICALFLAGS8(cl), LOGICALFLAGS8(cl), LOGICALFLAGS8(cl)); | |
local176 = edi; | |
esp_12 = esp_1 + 16; | |
flags = LOGICALFLAGS8(al); | |
local175 = esp_12; | |
if (al == 0) { | |
*(__size32*)(esp_1 + 12) = esi; | |
*(__size32*)(esp_1 + 8) = 0x4040c8; | |
*(int*)(esp_1 + 4) = edi; | |
sprintf(*(esp_1 + 4), *(esp_1 + 8)); | |
*(unsigned int*)esp_1 = edi; | |
(*ebp_1)(local83, local80, local77, local74, local71, local68, local65, local62, local59, local56, local53, local50, local47, local44, local41, local38, local35, local17, local21, local23, local25, al, cl, dl, eax, ecx, edx, ebx_1, ebp_1, esi, edi, <all>, LOGICALFLAGS8(al), LOGICALFLAGS8(al), LOGICALFLAGS8(al)); | |
local176 = edi; | |
local176 = edi; | |
esp_18 = esp_15 + 16; | |
flags = LOGICALFLAGS8(al); | |
local175 = esp_18; | |
if (al == 0) { | |
*(int*)(esp_15 + 12) = edi; | |
free(*(esp_15 + 12)); | |
esp_5 = esp_15 + 16; | |
flags = ADDFLAGS32(esp_15 + 12, 4, esp_15 + 16); | |
local175 = esp_5; | |
} else { | |
esi_1 = edi; | |
} | |
} else { | |
esi_1 = edi; | |
} | |
} | |
esp_22 = local175; | |
edi_10 = local176; | |
dl_1 = proc1(local85, local82, local79, local76, local73, local70, local67, local64, local61, local58, local55, local52, local49, local46, local43, local40, local37, local33, argc, argv, envp, al, (unsigned char) esp_22 + 24, dl, eax_15, esp_22 + 24, edx, ebx_1, ebp_1, esi_1, edi_10, flags, ZF, CF); /* Warning: also results in ebx, esp_17, ebp, esi, edi */ | |
al = *(esp_17 + 19); | |
*(__size32*)(esp_17 + 80) = 0; | |
if (al == 0) { | |
al = *(esp_17 + 20); | |
*(__size32*)(esp_17 - 4) = esi; | |
if (al == 0) { | |
?LoadDB@DungBuilder@@QAEDPBD@Z(); | |
local178 = esp_10; | |
flags = LOGICALFLAGS8(al); | |
if (al != 0) { | |
*(__size32*)(esp_17 - 8) = esi; | |
?SaveDB@DungBuilder@@QAEDPBD@Z(); | |
local177 = esp_9; | |
local178 = esp_9; | |
flags = LOGICALFLAGS8(al); | |
if (al != 0) { | |
al = *(esp_17 + 13); | |
eax_19 = eax >> 8 & 0xffffff | (al); | |
if (al != 0) { | |
local27 = esp_17 + 16; | |
dl_1 = proc5(local0, local1, local2, local3, local4, local5, local6, local7, local8, local9, local10, local11, local12, local13, local14, local15, local16, local17, local18, local19, local20, al, (unsigned char) esp_17 + 20, (unsigned char) esp_17 + 16, eax >> 8 & 0xffffff | (al), ecx, esp_17 + 16, ebx, ebp, esi, edi, <all>, LOGICALFLAGS8(al), LOGICALFLAGS8(al), LOGICALFLAGS8(al)); /* Warning: also results in eax_19, edx, ebx, esp_8, ebp, esi, edi */ | |
esp_6 = esp_8 + 4; | |
local177 = esp_6; | |
} | |
esp_20 = local177; | |
al = *(esp_20 + 22); | |
eax = eax_19 >> 8 & 0xffffff | (al); | |
if (al != 0) { | |
?MakeIncludeFile@DungBuilder@@QAEHXZ(); | |
} | |
esp_21 = esp_20; | |
al = *(esp_20 + 23); | |
eax = eax >> 8 & 0xffffff | (al); | |
flags = LOGICALFLAGS8(al); | |
local178 = esp_21; | |
if (al != 0) { | |
*(__size32*)(esp_20 - 4) = 0x4040bc; | |
?SaveDMP@DungBuilder@@QAEDPBD@Z(); | |
local178 = esp_7; | |
} | |
} | |
} | |
} else { | |
?LoadDB@DungBuilder@@QAEDPBD@Z(); | |
*(__size32*)(esp_17 - 8) = esi; | |
?GenDB@DungBuilder@@QAEDPBD@Z(); | |
?ProbeCdRoot@DungBuilder@@QAEDXZ(); | |
*(__size32*)(esp_17 - 12) = 0; | |
*(__size32*)(esp_17 - 16) = 0; | |
local32 = esp_17 + 16; | |
al = proc3(local0, local1, local2, local3, local4, local5, local6, local7, local8, local9, local10, local11, local12, local13, local14, local15, local16, local17, local18, local19, local20, al, (unsigned char) esp_17 + 16, dl_1, eax, esp_17 + 16, edx, ebx, ebp, esi, edi, <all>, LOGICALFLAGS8(al), LOGICALFLAGS8(al), LOGICALFLAGS8(al)); /* Warning: also results in dl_1, eax, edx, ebx, esp_14, ebp, esi, edi */ | |
esp_19 = esp_14 + 12; | |
flags = ADDFLAGS32(esp_14, 12, esp_14 + 12); | |
local178 = esp_19; | |
} | |
} else { | |
*(__size32*)(esp_17 - 4) = esi; | |
?LoadDB@DungBuilder@@QAEDPBD@Z(); | |
*(__size32*)(esp_17 - 8) = esi; | |
?GenDB@DungBuilder@@QAEDPBD@Z(); | |
?ProbeCdRoot@DungBuilder@@QAEDXZ(); | |
*(__size32*)(esp_17 - 12) = 0; | |
local30 = esp_17 + 16; | |
al = proc2(local0, local1, local2, local3, local4, local5, local6, local7, local8, local9, local10, local11, local12, local13, local14, local15, local16, local17, local18, local19, local20, (unsigned char) esp_17 + 16, (unsigned char) esp_17 + 16, dl_1, esp_17 + 16, ecx, edx, ebx, ebp, esi, edi, <all>, LOGICALFLAGS8(al), LOGICALFLAGS8(al), LOGICALFLAGS8(al)); /* Warning: also results in dl_1, eax, edx, ebx, esp_16, ebp, esi, edi */ | |
esp_13 = esp_16 + 8; | |
flags = ADDFLAGS32(esp_16, 8, esp_16 + 8); | |
local178 = esp_13; | |
} | |
esp_21 = local178; | |
*(__size32*)(esp_21 + 80) = -1; | |
esp = proc4(local0, local1, local2, local3, local4, local5, local6, local7, local8, local9, local10, local11, local12, local13, local14, local15, local16, local17, local18, local19, local20, al, (unsigned char) esp_21 + 24, dl_1, eax, esp_21 + 24, edx, ebx, ebp, esi, edi, <all>, flags, ZF, CF); | |
eax = 0; | |
ecx = *(esp + 72); | |
local86 = ecx; | |
} else { | |
eax = *(argv + edi_10 * 4); | |
esi_5 = 0x4040d8; | |
local172 = eax; | |
local173 = esi_5; | |
do { | |
eax_12 = local172; | |
esi_17 = local173; | |
dl = *eax_12; | |
edx = edx >> 8 & 0xffffff | (dl); | |
cl = dl; | |
ecx = ecx >> 8 & 0xffffff | (dl); | |
tmpb = dl - *esi_17; | |
flags = SUBFLAGS8(dl, *esi_17, tmpb); | |
local174 = local136; | |
if (dl != *esi_17) { | |
L53: | |
local112 = local174; | |
eax_3 = 1 - local112 + (eax_12 < 0 - local112); | |
al = (unsigned char) eax_3; | |
goto L52; | |
} | |
if (dl == 0) { | |
break; | |
} | |
dl = *(eax_12 + 1); | |
edx = edx >> 8 & 0xffffff | (dl); | |
cl = dl; | |
ecx = ecx >> 8 & 0xffffff | (dl); | |
tmpb = dl - *(esi_17 + 1); | |
flags = SUBFLAGS8(dl, *(esi_17 + 1), tmpb); | |
local174 = local135; | |
if (dl != *(esi_17 + 1)) { | |
goto L53; | |
} | |
eax_13 = eax_12 + 2; | |
esi_4 = esi_17 + 2; | |
local172 = eax_13; | |
local173 = esi_4; | |
} while (dl != 0); | |
eax_3 = 0; | |
al = 0; | |
L52: | |
local98 = LOGICALFLAGS32(eax_3); | |
local179 = local98; | |
local180 = local107; | |
local181 = local149; | |
if (eax_3 == 0) { | |
goto L7; | |
} else { | |
goto L51; | |
} | |
} | |
} | |
return eax; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment