Jump to content

Hexen 1.1 has two different versions?


PKr

Recommended Posts

First of all I hope Hexen is somewhat related to "Doom General" forum...

 

So, I have just discovered that Hexen has two 1.1 versions (both are called 1.1). According to doomwiki https://doomwiki.org/wiki/HEXEN.EXE I have the more common 1.1 version of the game (MD5 713319e8adbc34bca8e06dbaff96f86c). What's different in v1.1 (DFE619E8C6E3339359D62CDA11E5375B)?

Edited by PKr

Share this post


Link to post

Possibly it added support for Deathkings? I'm not sure.

 

Only way to really have an idea would probably be to disassemble the EXE.

Share this post


Link to post

The two versions are mentioned in this thread:

On 4/28/2020 at 9:20 PM, NY00123 said:

- As usual with public repositories, there might be changes later, like using output directory names differing from "10" or "11". Just for one example of an explanation, I've recently learnt that there might actually be two original Hexen DOS EXEs identified as 1.1, with one of them possibly including the following A_SoAExplode bugfix for DK, which I've disabled for now

Share this post


Link to post

Thanks! Since the Doomwiki article calls this v1.1"b" an improved version of the game I wonder if there are any other known bug fixes this version has over v1.1"a"?

Share this post


Link to post

I don't see anywhere on the wiki that gives it the name 1.1b; not even the more common community name of 1.1r2 (which isn't official, so doesn't really belong on the wiki either).

 

Anyhow, if you'd like to play around with it, the iwad-patches repository has both versions in the vanilla-engine directory; you can use the "Code" button on the main page to download a Zip file of everything: https://github.com/Doom-Utils/iwad-patches

Share this post


Link to post

Yes, there are two variants of Hexen 1.1. I was very surprised about this too. I only discovered this two years ago when I was reading the topic that was posted earlier by Hitboi. In fact, I was the one who added the information of the second Hexen 1.1 variant on Doomwiki just two months ago. I am not sure if the CRC-32 is correct, as I recall getting different hashes from two different softwares I used and in the end I settled with what Checksum Calculator showed me. MD5 and SHA-1 hashes should be correct, at least.

 

Anyway, here is a proof screenshot of my HEXEN folder that contains this rare version, after I used the infamous QCRACK (on an emulated Windows 98SE) to access this rare version, which was only available in locked form on the Quake 1.01 CDs. Notice how it is dated 22/03/1996, much like Heretic: Shadow of the Serpent Riders (aka Heretic 1.3) and Hexen: Deathkings of the Dark Citadel (aka HexenDK 1.0, the original CD release). At least that's what you get when you install from the original CD. The installation also works out of the box on Windows 7 32-bit (yes I still use outdated OS on my PC), though I recommend using DOSBox X to install the DOS games because it appears to preserve the original install date of DOS games, unlike vanilla DOSBox. :)

HEXEN11_22031996.png.cc35fd2cd25c4feaae65314c8596cd2b.png

 

I'm curious, has anyone attempted to make a semi-official patch that updates either the original Hexen 1.0 (dated 15/10/1995) or the common 1.1 (14/03/1996) to the rare 1.1 version? I don't mean what chungy has posted above, I mean an actual patch like the old official ones that patched all the files in the entire directory. That way, it would make the rare variant accessible to many other people. It was the same situation with the updated id anthology versions of Final Doom until their existence was discovered back in 2010.

 

Hope this is helpful!

Share this post


Link to post
20 hours ago, FistMarine said:

I am not sure if the CRC-32 is correct, as I recall getting different hashes from two different softwares I used and in the end I settled with what Checksum Calculator showed me.

It's correct, but in decimal format rather than the usual hexadecimal. I'll fix it :)

 

20 hours ago, FistMarine said:

I'm curious, has anyone attempted to make a semi-official patch that updates either the original Hexen 1.0 (dated 15/10/1995) or the common 1.1 (14/03/1996) to the rare 1.1 version? I don't mean what chungy has posted above, I mean an actual patch like the old official ones that patched all the files in the entire directory. That way, it would make the rare variant accessible to many other people.

The IWAD isn't different, you can just take that directory and drop the 1.1 IWAD into it. Same effect.

Edited by chungy

Share this post


Link to post
On 7/30/2022 at 5:43 PM, chungy said:

It's correct, but in decimal format rather than the usual hexadecimal. I'll fix it :)

Ah ok, thanks for letting me know. :)

On 7/30/2022 at 5:43 PM, chungy said:

The IWAD isn't different, you can just take that directory and drop the 1.1 IWAD into it. Same effect.

You're right. It's only the executable that was changed between the common 1.1 version and the rare 1.1 one. I just got confused for a second because all files in directory had the date changed as well, although I had remembered that the IWAD hasn't been changed between the two 1.1 versions. I find it interesting that only the executable was changed in Hexen 1.1's case, while in Hexen Deathkings, only the IWAD was changed between 1.0 and 1.1.

 

EDIT: Looking at the wiki page, it looks like the 1.0 versions are now called 1.0r1 and 1.0r2. I went ahead and changed the page to also mention 1.1r1 and 1.1r2, so there wouldn't be much confusion anymore between the two 1.1 versions available. Hope it's all fine now!

 

EDIT 2: I wonder if I should go ahead and modify the HEXEN.WAD page as well?

https://doomwiki.org/wiki/HEXEN.WAD

 

EDIT 3: Done.

Edited by FistMarine

Share this post


Link to post

@FistMarine I think what still appears to be somewhat confusing is this phrase on hexen.wad page: "A slightly different, and rarer, version is found in encrypted form (HEXEN11.MJ3) on some CDs (such as the Quake 1.01 CD) that contain id STUFF folders on them. There are various undocumented changes. The IWAD appears to be identical to the common 1.1 one, except it is now dated 1996-03-22."

 

"The undocumented changes" apply to 1.1 executables, but not an iwad. I guess the "undocumented changes" part should only be mentioned on hexen.exe page. At least that's what confused me at first.

Edited by PKr

Share this post


Link to post
On 7/25/2022 at 10:06 PM, Dark Pulse said:

Possibly it added support for Deathkings? I'm not sure.

 

Only way to really have an idea would probably be to disassemble the EXE.

 

 

And here I go!

 

Share this post


Link to post
3 minutes ago, Alex S. said:

 

 

And here I go!

 

Are you for real? Because that would be awesome...

Share this post


Link to post
2 minutes ago, PKr said:

Are you for real? Because that would be awesome...

First, I want to MD5 the "rare" executable against a stock 1.1 copy to make sure they have dissimilar hashes. If they in fact checksum differently, then yea I could disassemble or at least debug them in hopes of seeing what changed.

Share this post


Link to post

Alright, I grabbed my Quake Shareware 1.01 CD, cracked the MJ3 and snagged the resulting executable for Hexen 1.1. I then compared the checksums on my Mac.

 

MD5 (HEXEN.EXE) = 713319e8adbc34bca8e06dbaff96f86c

MD5 (ID Stuff HEXEN.EXE) = dfe619e8c6e3339359d62cda11e5375b

 

 

I installed the real TestDrive and used a tool I made to unlock the game. Not sharing that tool, but here's proof in Windows 3.1 that the copy is fresh!

Screen Shot 2022-08-02 at 16.01.08.png

Edited by Alex S.

Share this post


Link to post

Alright, I've been up to no good. Take a look below and have at it!

 

Here is the disassembly of the Id Stuff EXE:

 

Disassembly:

0:  da a0 00 00 00 04       fisub  DWORD PTR [eax+0x4000000]
6:  d5 a7                   aad    0xa7
8:  40                      inc    eax
9:  07                      pop    es
a:  b0 04                   mov    al,0x4
c:  e0 02                   loopne 0x10
e:  00 00                   add    BYTE PTR [eax],al
10: 10 0f                   adc    BYTE PTR [edi],cl
12: ff f2                   push   edx
14: 10 1d aa 00 00 00       adc    BYTE PTR ds:0xaa,bl
1a: 10 40 03                adc    BYTE PTR [eax+0x3],al
1d: cd f7                   int    0xf7
1f: 82 23 bd                and    BYTE PTR [ebx],0xbd
22: 01 1e                   add    DWORD PTR [esi],ebx
24: 00 00                   add    BYTE PTR [eax],al
26: 00 01                   add    BYTE PTR [ecx],al
28: 00 20                   add    BYTE PTR [eax],ah
2a: 00 da                   add    dl,bl
2c: a0 00 00 02 00          mov    al,ds:0x20000
31: 00 02                   add    BYTE PTR [edx],al
33: 80 00 00                add    BYTE PTR [eax],0x0
36: 08 c0                   or     al,al
38: 90                      nop
39: 00 09                   add    BYTE PTR [ecx],cl
3b: 40                      inc    eax
3c: 90                      nop
3d: 00 0a                   add    BYTE PTR [edx],cl
3f: 00 9d aa 00 00 00       add    BYTE PTR [ebp+0xaa],bl
45: 30 00                   xor    BYTE PTR [eax],al
47: 00 a6 09 00 00 aa       add    BYTE PTR [esi-0x55fffff7],ah
4d: 09 00                   or     DWORD PTR [eax],eax
4f: 00 ae 09 00 00 b4       add    BYTE PTR [esi-0x4bfffff7],ch
55: 09 da                   or     edx,ebx
57: a0 00 00 04 00          mov    al,ds:0x40000
5c: 00 0b                   add    BYTE PTR [ebx],cl
5e: 60                      pusha
5f: 90                      nop
60: 00 0f                   add    BYTE PTR [edi],cl
62: 10 90 00 00 00 0b       adc    BYTE PTR [eax+0xb000000],dl
68: d0 14 80                rcl    BYTE PTR [eax+eax*4],1
6b: 3d aa 00 00 00          cmp    eax,0xaa
70: 50                      push   eax
71: bd 01 65 03 bd          mov    ebp,0xbd036501
76: 01 11                   add    DWORD PTR [ecx],edx
78: 04 bd                   add    al,0xbd
7a: 01 4c 04 bd             add    DWORD PTR [esp+eax*1-0x43],ecx
7e: 01 94 04 ed aa 00 00    add    DWORD PTR [esp+eax*1+0xaaed],edx
85: 00 60 bd                add    BYTE PTR [eax-0x43],ah
88: 01 e1                   add    ecx,esp
8a: 04 bd                   add    al,0xbd
8c: 01 ad 05 bd 01 b2       add    DWORD PTR [ebp-0x4dfe42fb],ebp
92: 05 bd 01 6a 06          add    eax,0x66a01bd
97: da a0 00 00 07 0b       fisub  DWORD PTR [eax+0xb070000]
9d: d0 19                   rcr    BYTE PTR [ecx],1
9f: a0 6b d0 17 20          mov    al,ds:0x2017d06b
a4: 7b d0                   jnp    0x76
a6: 1b a0 7b d0 1e a0       sbb    esp,DWORD PTR [eax-0x5fe12f85]
ac: 7d aa                   jge    0x58
ae: 00 00                   add    BYTE PTR [eax],al
b0: 00 80 bd 01 3b 09       add    BYTE PTR [eax+0x93b01bd],al
b6: bd 01 4d 09 bd          mov    ebp,0xbd094d01
bb: 01 9e 09 bd 01 da       add    DWORD PTR [esi-0x25fe42f7],ebx
c1: 09 da                   or     edx,ebx
c3: a0 00 00 09 0b          mov    al,ds:0xb090000
c8: d0 1f                   rcr    BYTE PTR [edi],1
ca: 30 9b d0 13 a0 ab       xor    BYTE PTR [ebx-0x545fec30],bl
d0: d0 16                   rcl    BYTE PTR [esi],1
d2: 10 ab d0 18 70 aa       adc    BYTE PTR [ebx-0x558fe730],ch
d8: da a0 00 00 0a 0b       fisub  DWORD PTR [eax+0xb0a0000]
de: d0 1a                   rcr    BYTE PTR [edx],1
e0: 20 ab d0 1e 50 ab       and    BYTE PTR [ebx-0x54afe130],ch
e6: d0 11                   rcl    BYTE PTR [ecx],1
e8: 50                      push   eax
e9: bb d0 16 f0 bd          mov    ebx,0xbdf016d0
ee: aa                      stos   BYTE PTR es:[edi],al
ef: 00 00                   add    BYTE PTR [eax],al
f1: 00 b0 bd 01 95 0b       add    BYTE PTR [eax+0xb9501bd],dh
f7: bd 01 bd 0d bd          mov    ebp,0xbd0dbd01
fc: 01 b8 02 e2 07 16       add    DWORD PTR [eax+0x1607e202],edi
102:    0f da a0 00 00 0c 0b    pminub mm4,QWORD PTR [eax+0xb0c0000]
109:    d0 13                   rcl    BYTE PTR [ebx],1
10b:    c0 fb d0                sar    bl,0xd0
10e:    17                      pop    ss
10f:    b0 fb                   mov    al,0xfb
111:    d0 1b                   rcr    BYTE PTR [ebx],1
113:    90                      nop
114:    fb                      sti
115:    d0 11                   rcl    BYTE PTR [ecx],1
117:    00 ad aa 00 00 00       add    BYTE PTR [ebp+0xaa],ch
11d:    d0 00                   rol    BYTE PTR [eax],1
11f:    00 1a                   add    BYTE PTR [edx],bl
121:    11 bd 01 24 0a 00       adc    DWORD PTR [ebp+0xa2401],edi
127:    00 53 15                add    BYTE PTR [ebx+0x15],dl
12a:    bd 01 58 17 da          mov    ebp,0xda175801
12f:    a0 00 00 0e 0b          mov    al,ds:0xb0e0000
134:    d0 19                   rcr    BYTE PTR [ecx],1
136:    41                      inc    ecx
137:    7b d0                   jnp    0x109
139:    12 51 fb                adc    dl,BYTE PTR [ecx-0x5]
13c:    d0 12                   rcl    BYTE PTR [edx],1
13e:    81 fb d0 11 00 bd       cmp    ebx,0xbd0011d0
144:    aa                      stos   BYTE PTR es:[edi],al
145:    00 00                   add    BYTE PTR [eax],al
147:    00 f0                   add    al,dh
149:    00 00                   add    BYTE PTR [eax],al
14b:    35 4c 91 09 c5          xor    eax,0xc509914c
150:    1f                      pop    ds
151:    bd 01 fa 1f bd          mov    ebp,0xbd1ffa01
156:    01 55 20                add    DWORD PTR [ebp+0x20],edx
159:    5d                      pop    ebp
15a:    aa                      stos   BYTE PTR es:[edi],al
15b:    00 00                   add    BYTE PTR [eax],al
15d:    01 00                   add    DWORD PTR [eax],eax
15f:    bd 01 38 0c e2          mov    ebp,0xe20c3801
164:    07                      pop    es
165:    61                      popa
166:    0f e2 07                psrad  mm0,QWORD PTR [edi]
169:    65 0f e2 07             psrad  mm0,QWORD PTR gs:[edi]
16d:    59                      pop    ecx
16e:    10 8a ed aa 00 00       adc    BYTE PTR [edx+0xaaed],cl
174:    01 10                   add    DWORD PTR [eax],edx
176:    e2 07                   loop   0x17f
178:    7f 11                   jg     0x18b
17a:    e2 07                   loop   0x183
17c:    1a 00                   sbb    al,BYTE PTR [eax]
17e:    f3 00 e0                repz add al,ah
181:    0c 00                   or     al,0x0
183:    00 83 23 da a0 00       add    BYTE PTR [ebx+0xa0da23],al
189:    00 12                   add    BYTE PTR [edx],dl
18b:    0b d0                   or     edx,eax
18d:    18 c2                   sbb    dl,al
18f:    3b d0                   cmp    edx,eax
191:    1a 12                   sbb    dl,BYTE PTR [edx]
193:    3b d0                   cmp    edx,eax
195:    10 12                   adc    BYTE PTR [edx],dl
197:    4b                      dec    ebx
198:    d0 1b                   rcr    BYTE PTR [ebx],1
19a:    92                      xchg   edx,eax
19b:    8d aa 00 00 01 30       lea    ebp,[edx+0x30010000]
1a1:    bd 01 f3 2c bd          mov    ebp,0xbd2cf301
1a6:    01 fe                   add    esi,edi
1a8:    2c bd                   sub    al,0xbd
1aa:    01 4b 16                add    DWORD PTR [ebx+0x16],ecx
1ad:    e2 07                   loop   0x1b6
1af:    67 38 8d aa 00          cmp    BYTE PTR [di+0xaa],cl
1b4:    00 01                   add    BYTE PTR [ecx],al
1b6:    40                      inc    eax
1b7:    bd 01 eb 39 bd          mov    ebp,0xbd39eb01
1bc:    01 48 44                add    DWORD PTR [eax+0x44],ecx
1bf:    bd 01 43 4b bd          mov    ebp,0xbd4b4301
1c4:    01 58 5d                add    DWORD PTR [eax+0x5d],ebx
1c7:    9d                      popf
1c8:    cd aa                   int    0xaa
1ca:    00 00                   add    BYTE PTR [eax],al
1cc:    01 50 bd                add    DWORD PTR [eax-0x43],edx
1cf:    01 71 5f                add    DWORD PTR [ecx+0x5f],esi
1d2:    bd 01 00 00 00          mov    ebp,0x1
1d7:    00 00                   add    BYTE PTR [eax],al
1d9:    00 00                   add    BYTE PTR [eax],al
1db:    00 00                   add    BYTE PTR [eax],al
1dd:    00 da                   add    dl,bl
1df:    a0 00 00 16 00          mov    al,ds:0x160000
...
1f0:    00 00                   add    BYTE PTR [eax],al
1f2:    00 0d aa 00 00 01       add    BYTE PTR ds:0x10000aa,cl
1f8:    70 00                   jo     0x1fa
...
206:    00 00                   add    BYTE PTR [eax],al
208:    00 da                   add    dl,bl
20a:    a0 00 00 18 00          mov    al,ds:0x180000
...
21b:    00 00                   add    BYTE PTR [eax],al
21d:    00 0d aa 00 00 01       add    BYTE PTR ds:0x10000aa,cl
223:    90                      nop
...
234:    da a0 00 00 1a 00       fisub  DWORD PTR [eax+0x1a0000]
...
246:    00 00                   add    BYTE PTR [eax],al
248:    00 0d aa 00 00 01       add    BYTE PTR ds:0x10000aa,cl
24e:    b0 00                   mov    al,0x0
...
25c:    00 00                   add    BYTE PTR [eax],al
25e:    00 da                   add    dl,bl
260:    a0 00 00 1c 00          mov    al,ds:0x1c0000
...
271:    00 00                   add    BYTE PTR [eax],al
273:    00 0d aa 00 00 01       add    BYTE PTR ds:0x10000aa,cl
279:    d0 00                   rol    BYTE PTR [eax],1
...
287:    00 00                   add    BYTE PTR [eax],al
289:    00 da                   add    dl,bl
28b:    a0 00 00 1e 00          mov    al,ds:0x1e0000
...
29c:    00 00                   add    BYTE PTR [eax],al
29e:    00 0d aa 00 00 01       add    BYTE PTR ds:0x10000aa,cl
2a4:    f0 00 00                lock add BYTE PTR [eax],al
...

 

 

 

 

....and here is the disassembly of the stock 1.1 EXE:

 

Disassembly

Raw Hex (zero bytes in bold):

DAA004000004D5A74007B004E0020000100FFFF2101DAA004000104003CDF78223BD011E00000001002000DAA004000200000280000008C09000094090000A009DAA004000300000A6090000AA090000AE090000B409DAA004000400000B6090000F10900000000BD014803DAA00400050BD016503BD011104BD014C04BD019404EDAA00400060BD01E104BD01AD05BD01B205BD016A06DAA00400070BD019A06BD017207BD01BA07BD01EA07DAA00400080BD013B09BD014D09BD019E09BD01DA09DAA00400090BD01F309BD013A0ABD01610ABD01870AADAA004000A0BD01A20ABD01E50ABD01150BBD016F0BDAA004000B0BD01950BBD01BD0DBD01B802E207160FDAA004000C0BD013C0FBD017B0FBD01B90FBD01100ADAA004000D000001A11BD01240A00005315BD015817DAA004000E0BD019417BD01251FBD01281FBD01100BDAA004000F00000354C9109C51FBD01FA1FBD0155205DAA00400100BD01380CE207610FE207650FE20759108AEDAA00400110E2077F11E2071A00F300E00C00008323DAA00400120BD018C23BD01A123BD010124BD01B928DAA00400130BD01F32CBD01FE2CBD014B16E20767388DAA00400140BD01EB39BD014844BD01434BBD01585D9DCDAA00400150BD01715FBD010000DAA0040016000000000DAA0040017000000000DAA0040018000000000DAA00400190DAA004001A000000000DAA004001B000000000DAA004001C000000000DAA004001D000000000DAA004001E000000000DAA004001F00000   

String Literal:

"\xDA\xA0\x04\x00\x00\x04\xD5\xA7\x40\x07\xB0\x04\xE0\x02\x00\x00\x10\x0F\xFF\xF2\x10\x1D\xAA\x00\x40\x00\x10\x40\x03\xCD\xF7\x82\x23\xBD\x01\x1E\x00\x00\x00\x01\x00\x20\x00\xDA\xA0\x04\x00\x02\x00\x00\x02\x80\x00\x00\x08\xC0\x90\x00\x09\x40\x90\x00\x0A\x00\x9D\xAA\x00\x40\x00\x30\x00\x00\xA6\x09\x00\x00\xAA\x09\x00\x00\xAE\x09\x00\x00\xB4\x09\xDA\xA0\x04\x00\x04\x00\x00\x0B\x60\x90\x00\x0F\x10\x90\x00\x00\x00\x0B\xD0\x14\x80\x3D\xAA\x00\x40\x00\x50\xBD\x01\x65\x03\xBD\x01\x11\x04\xBD\x01\x4C\x04\xBD\x01\x94\x04\xED\xAA\x00\x40\x00\x60\xBD\x01\xE1\x04\xBD\x01\xAD\x05\xBD\x01\xB2\x05\xBD\x01\x6A\x06\xDA\xA0\x04\x00\x07\x0B\xD0\x19\xA0\x6B\xD0\x17\x20\x7B\xD0\x1B\xA0\x7B\xD0\x1E\xA0\x7D\xAA\x00\x40\x00\x80\xBD\x01\x3B\x09\xBD\x01\x4D\x09\xBD\x01\x9E\x09\xBD\x01\xDA\x09\xDA\xA0\x04\x00\x09\x0B\xD0\x1F\x30\x9B\xD0\x13\xA0\xAB\xD0\x16\x10\xAB\xD0\x18\x70\xAA\xDA\xA0\x04\x00\x0A\x0B\xD0\x1A\x20\xAB\xD0\x1E\x50\xAB\xD0\x11\x50\xBB\xD0\x16\xF0\xBD\xAA\x00\x40\x00\xB0\xBD\x01\x95\x0B\xBD\x01\xBD\x0D\xBD\x01\xB8\x02\xE2\x07\x16\x0F\xDA\xA0\x04\x00\x0C\x0B\xD0\x13\xC0\xFB\xD0\x17\xB0\xFB\xD0\x1B\x90\xFB\xD0\x11\x00\xAD\xAA\x00\x40\x00\xD0\x00\x00\x1A\x11\xBD\x01\x24\x0A\x00\x00\x53\x15\xBD\x01\x58\x17\xDA\xA0\x04\x00\x0E\x0B\xD0\x19\x41\x7B\xD0\x12\x51\xFB\xD0\x12\x81\xFB\xD0\x11\x00\xBD\xAA\x00\x40\x00\xF0\x00\x00\x35\x4C\x91\x09\xC5\x1F\xBD\x01\xFA\x1F\xBD\x01\x55\x20\x5D\xAA\x00\x40\x01\x00\xBD\x01\x38\x0C\xE2\x07\x61\x0F\xE2\x07\x65\x0F\xE2\x07\x59\x10\x8A\xED\xAA\x00\x40\x01\x10\xE2\x07\x7F\x11\xE2\x07\x1A\x00\xF3\x00\xE0\x0C\x00\x00\x83\x23\xDA\xA0\x04\x00\x12\x0B\xD0\x18\xC2\x3B\xD0\x1A\x12\x3B\xD0\x10\x12\x4B\xD0\x1B\x92\x8D\xAA\x00\x40\x01\x30\xBD\x01\xF3\x2C\xBD\x01\xFE\x2C\xBD\x01\x4B\x16\xE2\x07\x67\x38\x8D\xAA\x00\x40\x01\x40\xBD\x01\xEB\x39\xBD\x01\x48\x44\xBD\x01\x43\x4B\xBD\x01\x58\x5D\x9D\xCD\xAA\x00\x40\x01\x50\xBD\x01\x71\x5F\xBD\x01\x00\x00\xDA\xA0\x04\x00\x16\x00\x00\x00\x00\x0D\xAA\x00\x40\x01\x70\x00\x00\x00\x00\xDA\xA0\x04\x00\x18\x00\x00\x00\x00\x0D\xAA\x00\x40\x01\x90\xDA\xA0\x04\x00\x1A\x00\x00\x00\x00\x0D\xAA\x00\x40\x01\xB0\x00\x00\x00\x00\xDA\xA0\x04\x00\x1C\x00\x00\x00\x00\x0D\xAA\x00\x40\x01\xD0\x00\x00\x00\x00\xDA\xA0\x04\x00\x1E\x00\x00\x00\x00\x0D\xAA\x00\x40\x01\xF0\x00\x00"

Array Literal:

{ 0xDA, 0xA0, 0x04, 0x00, 0x00, 0x04, 0xD5, 0xA7, 0x40, 0x07, 0xB0, 0x04, 0xE0, 0x02, 0x00, 0x00, 0x10, 0x0F, 0xFF, 0xF2, 0x10, 0x1D, 0xAA, 0x00, 0x40, 0x00, 0x10, 0x40, 0x03, 0xCD, 0xF7, 0x82, 0x23, 0xBD, 0x01, 0x1E, 0x00, 0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0xDA, 0xA0, 0x04, 0x00, 0x02, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x08, 0xC0, 0x90, 0x00, 0x09, 0x40, 0x90, 0x00, 0x0A, 0x00, 0x9D, 0xAA, 0x00, 0x40, 0x00, 0x30, 0x00, 0x00, 0xA6, 0x09, 0x00, 0x00, 0xAA, 0x09, 0x00, 0x00, 0xAE, 0x09, 0x00, 0x00, 0xB4, 0x09, 0xDA, 0xA0, 0x04, 0x00, 0x04, 0x00, 0x00, 0x0B, 0x60, 0x90, 0x00, 0x0F, 0x10, 0x90, 0x00, 0x00, 0x00, 0x0B, 0xD0, 0x14, 0x80, 0x3D, 0xAA, 0x00, 0x40, 0x00, 0x50, 0xBD, 0x01, 0x65, 0x03, 0xBD, 0x01, 0x11, 0x04, 0xBD, 0x01, 0x4C, 0x04, 0xBD, 0x01, 0x94, 0x04, 0xED, 0xAA, 0x00, 0x40, 0x00, 0x60, 0xBD, 0x01, 0xE1, 0x04, 0xBD, 0x01, 0xAD, 0x05, 0xBD, 0x01, 0xB2, 0x05, 0xBD, 0x01, 0x6A, 0x06, 0xDA, 0xA0, 0x04, 0x00, 0x07, 0x0B, 0xD0, 0x19, 0xA0, 0x6B, 0xD0, 0x17, 0x20, 0x7B, 0xD0, 0x1B, 0xA0, 0x7B, 0xD0, 0x1E, 0xA0, 0x7D, 0xAA, 0x00, 0x40, 0x00, 0x80, 0xBD, 0x01, 0x3B, 0x09, 0xBD, 0x01, 0x4D, 0x09, 0xBD, 0x01, 0x9E, 0x09, 0xBD, 0x01, 0xDA, 0x09, 0xDA, 0xA0, 0x04, 0x00, 0x09, 0x0B, 0xD0, 0x1F, 0x30, 0x9B, 0xD0, 0x13, 0xA0, 0xAB, 0xD0, 0x16, 0x10, 0xAB, 0xD0, 0x18, 0x70, 0xAA, 0xDA, 0xA0, 0x04, 0x00, 0x0A, 0x0B, 0xD0, 0x1A, 0x20, 0xAB, 0xD0, 0x1E, 0x50, 0xAB, 0xD0, 0x11, 0x50, 0xBB, 0xD0, 0x16, 0xF0, 0xBD, 0xAA, 0x00, 0x40, 0x00, 0xB0, 0xBD, 0x01, 0x95, 0x0B, 0xBD, 0x01, 0xBD, 0x0D, 0xBD, 0x01, 0xB8, 0x02, 0xE2, 0x07, 0x16, 0x0F, 0xDA, 0xA0, 0x04, 0x00, 0x0C, 0x0B, 0xD0, 0x13, 0xC0, 0xFB, 0xD0, 0x17, 0xB0, 0xFB, 0xD0, 0x1B, 0x90, 0xFB, 0xD0, 0x11, 0x00, 0xAD, 0xAA, 0x00, 0x40, 0x00, 0xD0, 0x00, 0x00, 0x1A, 0x11, 0xBD, 0x01, 0x24, 0x0A, 0x00, 0x00, 0x53, 0x15, 0xBD, 0x01, 0x58, 0x17, 0xDA, 0xA0, 0x04, 0x00, 0x0E, 0x0B, 0xD0, 0x19, 0x41, 0x7B, 0xD0, 0x12, 0x51, 0xFB, 0xD0, 0x12, 0x81, 0xFB, 0xD0, 0x11, 0x00, 0xBD, 0xAA, 0x00, 0x40, 0x00, 0xF0, 0x00, 0x00, 0x35, 0x4C, 0x91, 0x09, 0xC5, 0x1F, 0xBD, 0x01, 0xFA, 0x1F, 0xBD, 0x01, 0x55, 0x20, 0x5D, 0xAA, 0x00, 0x40, 0x01, 0x00, 0xBD, 0x01, 0x38, 0x0C, 0xE2, 0x07, 0x61, 0x0F, 0xE2, 0x07, 0x65, 0x0F, 0xE2, 0x07, 0x59, 0x10, 0x8A, 0xED, 0xAA, 0x00, 0x40, 0x01, 0x10, 0xE2, 0x07, 0x7F, 0x11, 0xE2, 0x07, 0x1A, 0x00, 0xF3, 0x00, 0xE0, 0x0C, 0x00, 0x00, 0x83, 0x23, 0xDA, 0xA0, 0x04, 0x00, 0x12, 0x0B, 0xD0, 0x18, 0xC2, 0x3B, 0xD0, 0x1A, 0x12, 0x3B, 0xD0, 0x10, 0x12, 0x4B, 0xD0, 0x1B, 0x92, 0x8D, 0xAA, 0x00, 0x40, 0x01, 0x30, 0xBD, 0x01, 0xF3, 0x2C, 0xBD, 0x01, 0xFE, 0x2C, 0xBD, 0x01, 0x4B, 0x16, 0xE2, 0x07, 0x67, 0x38, 0x8D, 0xAA, 0x00, 0x40, 0x01, 0x40, 0xBD, 0x01, 0xEB, 0x39, 0xBD, 0x01, 0x48, 0x44, 0xBD, 0x01, 0x43, 0x4B, 0xBD, 0x01, 0x58, 0x5D, 0x9D, 0xCD, 0xAA, 0x00, 0x40, 0x01, 0x50, 0xBD, 0x01, 0x71, 0x5F, 0xBD, 0x01, 0x00, 0x00, 0xDA, 0xA0, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x0D, 0xAA, 0x00, 0x40, 0x01, 0x70, 0x00, 0x00, 0x00, 0x00, 0xDA, 0xA0, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x0D, 0xAA, 0x00, 0x40, 0x01, 0x90, 0xDA, 0xA0, 0x04, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x0D, 0xAA, 0x00, 0x40, 0x01, 0xB0, 0x00, 0x00, 0x00, 0x00, 0xDA, 0xA0, 0x04, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x0D, 0xAA, 0x00, 0x40, 0x01, 0xD0, 0x00, 0x00, 0x00, 0x00, 0xDA, 0xA0, 0x04, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x0D, 0xAA, 0x00, 0x40, 0x01, 0xF0, 0x00, 0x00 }

Disassembly:

0:  da a0 04 00 00 04       fisub  DWORD PTR [eax+0x4000004]
6:  d5 a7                   aad    0xa7
8:  40                      inc    eax
9:  07                      pop    es
a:  b0 04                   mov    al,0x4
c:  e0 02                   loopne 0x10
e:  00 00                   add    BYTE PTR [eax],al
10: 10 0f                   adc    BYTE PTR [edi],cl
12: ff f2                   push   edx
14: 10 1d aa 00 40 00       adc    BYTE PTR ds:0x4000aa,bl
1a: 10 40 03                adc    BYTE PTR [eax+0x3],al
1d: cd f7                   int    0xf7
1f: 82 23 bd                and    BYTE PTR [ebx],0xbd
22: 01 1e                   add    DWORD PTR [esi],ebx
24: 00 00                   add    BYTE PTR [eax],al
26: 00 01                   add    BYTE PTR [ecx],al
28: 00 20                   add    BYTE PTR [eax],ah
2a: 00 da                   add    dl,bl
2c: a0 04 00 02 00          mov    al,ds:0x20004
31: 00 02                   add    BYTE PTR [edx],al
33: 80 00 00                add    BYTE PTR [eax],0x0
36: 08 c0                   or     al,al
38: 90                      nop
39: 00 09                   add    BYTE PTR [ecx],cl
3b: 40                      inc    eax
3c: 90                      nop
3d: 00 0a                   add    BYTE PTR [edx],cl
3f: 00 9d aa 00 40 00       add    BYTE PTR [ebp+0x4000aa],bl
45: 30 00                   xor    BYTE PTR [eax],al
47: 00 a6 09 00 00 aa       add    BYTE PTR [esi-0x55fffff7],ah
4d: 09 00                   or     DWORD PTR [eax],eax
4f: 00 ae 09 00 00 b4       add    BYTE PTR [esi-0x4bfffff7],ch
55: 09 da                   or     edx,ebx
57: a0 04 00 04 00          mov    al,ds:0x40004
5c: 00 0b                   add    BYTE PTR [ebx],cl
5e: 60                      pusha
5f: 90                      nop
60: 00 0f                   add    BYTE PTR [edi],cl
62: 10 90 00 00 00 0b       adc    BYTE PTR [eax+0xb000000],dl
68: d0 14 80                rcl    BYTE PTR [eax+eax*4],1
6b: 3d aa 00 40 00          cmp    eax,0x4000aa
70: 50                      push   eax
71: bd 01 65 03 bd          mov    ebp,0xbd036501
76: 01 11                   add    DWORD PTR [ecx],edx
78: 04 bd                   add    al,0xbd
7a: 01 4c 04 bd             add    DWORD PTR [esp+eax*1-0x43],ecx
7e: 01 94 04 ed aa 00 40    add    DWORD PTR [esp+eax*1+0x4000aaed],edx
85: 00 60 bd                add    BYTE PTR [eax-0x43],ah
88: 01 e1                   add    ecx,esp
8a: 04 bd                   add    al,0xbd
8c: 01 ad 05 bd 01 b2       add    DWORD PTR [ebp-0x4dfe42fb],ebp
92: 05 bd 01 6a 06          add    eax,0x66a01bd
97: da a0 04 00 07 0b       fisub  DWORD PTR [eax+0xb070004]
9d: d0 19                   rcr    BYTE PTR [ecx],1
9f: a0 6b d0 17 20          mov    al,ds:0x2017d06b
a4: 7b d0                   jnp    0x76
a6: 1b a0 7b d0 1e a0       sbb    esp,DWORD PTR [eax-0x5fe12f85]
ac: 7d aa                   jge    0x58
ae: 00 40 00                add    BYTE PTR [eax+0x0],al
b1: 80 bd 01 3b 09 bd 01    cmp    BYTE PTR [ebp-0x42f6c4ff],0x1
b8: 4d                      dec    ebp
b9: 09 bd 01 9e 09 bd       or     DWORD PTR [ebp-0x42f661ff],edi
bf: 01 da                   add    edx,ebx
c1: 09 da                   or     edx,ebx
c3: a0 04 00 09 0b          mov    al,ds:0xb090004
c8: d0 1f                   rcr    BYTE PTR [edi],1
ca: 30 9b d0 13 a0 ab       xor    BYTE PTR [ebx-0x545fec30],bl
d0: d0 16                   rcl    BYTE PTR [esi],1
d2: 10 ab d0 18 70 aa       adc    BYTE PTR [ebx-0x558fe730],ch
d8: da a0 04 00 0a 0b       fisub  DWORD PTR [eax+0xb0a0004]
de: d0 1a                   rcr    BYTE PTR [edx],1
e0: 20 ab d0 1e 50 ab       and    BYTE PTR [ebx-0x54afe130],ch
e6: d0 11                   rcl    BYTE PTR [ecx],1
e8: 50                      push   eax
e9: bb d0 16 f0 bd          mov    ebx,0xbdf016d0
ee: aa                      stos   BYTE PTR es:[edi],al
ef: 00 40 00                add    BYTE PTR [eax+0x0],al
f2: b0 bd                   mov    al,0xbd
f4: 01 95 0b bd 01 bd       add    DWORD PTR [ebp-0x42fe42f5],edx
fa: 0d bd 01 b8 02          or     eax,0x2b801bd
ff: e2 07                   loop   0x108
101:    16                      push   ss
102:    0f da a0 04 00 0c 0b    pminub mm4,QWORD PTR [eax+0xb0c0004]
109:    d0 13                   rcl    BYTE PTR [ebx],1
10b:    c0 fb d0                sar    bl,0xd0
10e:    17                      pop    ss
10f:    b0 fb                   mov    al,0xfb
111:    d0 1b                   rcr    BYTE PTR [ebx],1
113:    90                      nop
114:    fb                      sti
115:    d0 11                   rcl    BYTE PTR [ecx],1
117:    00 ad aa 00 40 00       add    BYTE PTR [ebp+0x4000aa],ch
11d:    d0 00                   rol    BYTE PTR [eax],1
11f:    00 1a                   add    BYTE PTR [edx],bl
121:    11 bd 01 24 0a 00       adc    DWORD PTR [ebp+0xa2401],edi
127:    00 53 15                add    BYTE PTR [ebx+0x15],dl
12a:    bd 01 58 17 da          mov    ebp,0xda175801
12f:    a0 04 00 0e 0b          mov    al,ds:0xb0e0004
134:    d0 19                   rcr    BYTE PTR [ecx],1
136:    41                      inc    ecx
137:    7b d0                   jnp    0x109
139:    12 51 fb                adc    dl,BYTE PTR [ecx-0x5]
13c:    d0 12                   rcl    BYTE PTR [edx],1
13e:    81 fb d0 11 00 bd       cmp    ebx,0xbd0011d0
144:    aa                      stos   BYTE PTR es:[edi],al
145:    00 40 00                add    BYTE PTR [eax+0x0],al
148:    f0 00 00                lock add BYTE PTR [eax],al
14b:    35 4c 91 09 c5          xor    eax,0xc509914c
150:    1f                      pop    ds
151:    bd 01 fa 1f bd          mov    ebp,0xbd1ffa01
156:    01 55 20                add    DWORD PTR [ebp+0x20],edx
159:    5d                      pop    ebp
15a:    aa                      stos   BYTE PTR es:[edi],al
15b:    00 40 01                add    BYTE PTR [eax+0x1],al
15e:    00 bd 01 38 0c e2       add    BYTE PTR [ebp-0x1df3c7ff],bh
164:    07                      pop    es
165:    61                      popa
166:    0f e2 07                psrad  mm0,QWORD PTR [edi]
169:    65 0f e2 07             psrad  mm0,QWORD PTR gs:[edi]
16d:    59                      pop    ecx
16e:    10 8a ed aa 00 40       adc    BYTE PTR [edx+0x4000aaed],cl
174:    01 10                   add    DWORD PTR [eax],edx
176:    e2 07                   loop   0x17f
178:    7f 11                   jg     0x18b
17a:    e2 07                   loop   0x183
17c:    1a 00                   sbb    al,BYTE PTR [eax]
17e:    f3 00 e0                repz add al,ah
181:    0c 00                   or     al,0x0
183:    00 83 23 da a0 04       add    BYTE PTR [ebx+0x4a0da23],al
189:    00 12                   add    BYTE PTR [edx],dl
18b:    0b d0                   or     edx,eax
18d:    18 c2                   sbb    dl,al
18f:    3b d0                   cmp    edx,eax
191:    1a 12                   sbb    dl,BYTE PTR [edx]
193:    3b d0                   cmp    edx,eax
195:    10 12                   adc    BYTE PTR [edx],dl
197:    4b                      dec    ebx
198:    d0 1b                   rcr    BYTE PTR [ebx],1
19a:    92                      xchg   edx,eax
19b:    8d aa 00 40 01 30       lea    ebp,[edx+0x30014000]
1a1:    bd 01 f3 2c bd          mov    ebp,0xbd2cf301
1a6:    01 fe                   add    esi,edi
1a8:    2c bd                   sub    al,0xbd
1aa:    01 4b 16                add    DWORD PTR [ebx+0x16],ecx
1ad:    e2 07                   loop   0x1b6
1af:    67 38 8d aa 00          cmp    BYTE PTR [di+0xaa],cl
1b4:    40                      inc    eax
1b5:    01 40 bd                add    DWORD PTR [eax-0x43],eax
1b8:    01 eb                   add    ebx,ebp
1ba:    39 bd 01 48 44 bd       cmp    DWORD PTR [ebp-0x42bbb7ff],edi
1c0:    01 43 4b                add    DWORD PTR [ebx+0x4b],eax
1c3:    bd 01 58 5d 9d          mov    ebp,0x9d5d5801
1c8:    cd aa                   int    0xaa
1ca:    00 40 01                add    BYTE PTR [eax+0x1],al
1cd:    50                      push   eax
1ce:    bd 01 71 5f bd          mov    ebp,0xbd5f7101
1d3:    01 00                   add    DWORD PTR [eax],eax
...
1dd:    00 da                   add    dl,bl
1df:    a0 04 00 16 00          mov    al,ds:0x160004
...
1f0:    00 00                   add    BYTE PTR [eax],al
1f2:    00 0d aa 00 40 01       add    BYTE PTR ds:0x14000aa,cl
1f8:    70 00                   jo     0x1fa
...
206:    00 00                   add    BYTE PTR [eax],al
208:    00 da                   add    dl,bl
20a:    a0 04 00 18 00          mov    al,ds:0x180004
...
21b:    00 00                   add    BYTE PTR [eax],al
21d:    00 0d aa 00 40 01       add    BYTE PTR ds:0x14000aa,cl
223:    90                      nop
...
234:    da a0 04 00 1a 00       fisub  DWORD PTR [eax+0x1a0004]
...
246:    00 00                   add    BYTE PTR [eax],al
248:    00 0d aa 00 40 01       add    BYTE PTR ds:0x14000aa,cl
24e:    b0 00                   mov    al,0x0
...
25c:    00 00                   add    BYTE PTR [eax],al
25e:    00 da                   add    dl,bl
260:    a0 04 00 1c 00          mov    al,ds:0x1c0004
...
271:    00 00                   add    BYTE PTR [eax],al
273:    00 0d aa 00 40 01       add    BYTE PTR ds:0x14000aa,cl
279:    d0 00                   rol    BYTE PTR [eax],1
...
287:    00 00                   add    BYTE PTR [eax],al
289:    00 da                   add    dl,bl
28b:    a0 04 00 1e 00          mov    al,ds:0x1e0004
...
29c:    00 00                   add    BYTE PTR [eax],al
29e:    00 0d aa 00 40 01       add    BYTE PTR ds:0x14000aa,cl
2a4:    f0 00 00                lock add BYTE PTR [eax],al
...

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...