3.76 3.92 |
.text:100409B0 sub_100409B0 proc near ; CODE XREF: sub_1003FE80+72Dp
.text:100409B0
.text:100409B0 var_10 = dword ptr -10h
.text:100409B0 var_C = dword ptr -0Ch
.text:100409B0 var_4 = dword ptr -4
.text:100409B0 arg_0 = byte ptr 4
.text:100409B0
.text:100409B0 push 0FFFFFFFFh
.text:100409B2 push offset SEH_100409B0
.text:100409B7 mov eax, large fs:0
.text:100409BD push eax
.text:100409BE mov large fs:0, esp
.text:100409C5 push ecx
.text:100409C6 mov eax, dword_100CE4FC
.text:100409CB mov [esp+10h+var_4], 0
.text:100409D3 test eax, eax
.text:100409D5 jnz loc_10040C83
.text:100409DB mov ecx, offset unk_100CE4C0
.text:100409E0 call ?RemoveAll@CStringList@@QAEXXZ ; CStringList::RemoveAll(void)
.text:100409E5 push offset aPhatnoiseDms_1 ; "PHATNOISE DMS"
.text:100409EA mov ecx, offset unk_100CE4C0
.text:100409EF call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:100409F4 push offset aPhatnoiseDms ; "PhatNoise DMS"
.text:100409F9 mov ecx, offset unk_100CE4C0
.text:100409FE call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040A03 push offset aPhatnoisEDms ; "PHATNOIS E DMS"
.text:10040A08 mov ecx, offset unk_100CE4C0
.text:10040A0D call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040A12 push offset aPhatnoisEDms_0 ; "PhatNois e DMS"
.text:10040A17 mov ecx, offset unk_100CE4C0
.text:10040A1C call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040A21 push offset aFujitsuMhs2020 ; "FUJITSU MHS2020AT"
.text:10040A26 mov ecx, offset unk_100CE4C0
.text:10040A2B call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040A30 push offset aFujitsuMhs20_0 ; "Fujitsu MHS2020AT"
.text:10040A35 mov ecx, offset unk_100CE4C0
.text:10040A3A call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040A3F push offset aFujitsuMht2020 ; "FUJITSU MHT2020AT"
.text:10040A44 mov ecx, offset unk_100CE4C0
.text:10040A49 call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040A4E push offset aFujitsuMht20_0 ; "Fujitsu MHT2020AT"
.text:10040A53 mov ecx, offset unk_100CE4C0
.text:10040A58 call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040A5D push offset aFujitsuMht2020 ; "FUJITSU MHT2020AT"
.text:10040A62 mov ecx, offset unk_100CE4C0
.text:10040A67 call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040A6C push offset aFujitsuMht20_0 ; "Fujitsu MHT2020AT"
.text:10040A71 mov ecx, offset unk_100CE4C0
.text:10040A76 call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040A7B push offset aFujitsuMht2040 ; "FUJITSU MHT2040AT"
.text:10040A80 mov ecx, offset unk_100CE4C0
.text:10040A85 call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040A8A push offset aFujitsuMht20_1 ; "Fujitsu MHT2040AT"
.text:10040A8F mov ecx, offset unk_100CE4C0
.text:10040A94 call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040A99 push offset aFujitsuMhs2040 ; "FUJITSU MHS2040AT"
.text:10040A9E mov ecx, offset unk_100CE4C0
.text:10040AA3 call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040AA8 push offset aFujitsuMhs20_1 ; "Fujitsu MHS2040AT"
.text:10040AAD mov ecx, offset unk_100CE4C0
.text:10040AB2 call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040AB7 push offset aFujitsuMhv2040 ; "FUJITSU MHV2040AT"
.text:10040ABC mov ecx, offset unk_100CE4C0
.text:10040AC1 call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040AC6 push offset aFujitsuMhv20_0 ; "Fujitsu MHV2040AT"
.text:10040ACB mov ecx, offset unk_100CE4C0
.text:10040AD0 call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040AD5 push offset aFujitsuMht2060 ; "FUJITSU MHT2060AT"
.text:10040ADA mov ecx, offset unk_100CE4C0
.text:10040ADF call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040AE4 push offset aFujitsuMht20_2 ; "Fujitsu MHT2060AT"
.text:10040AE9 mov ecx, offset unk_100CE4C0
.text:10040AEE call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040AF3 push offset aFujitsuMht2080 ; "FUJITSU MHT2080AT"
.text:10040AF8 mov ecx, offset unk_100CE4C0
.text:10040AFD call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040B02 push offset aFujitsuMht20_3 ; "Fujitsu MHT2080AT"
.text:10040B07 mov ecx, offset unk_100CE4C0
.text:10040B0C call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040B11 push offset aFujitsuMhv2120 ; "FUJITSU MHV2120AT"
.text:10040B16 mov ecx, offset unk_100CE4C0
.text:10040B1B call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040B20 push offset aFujitsuMhv21_0 ; "Fujitsu MHV2120AT"
.text:10040B25 mov ecx, offset unk_100CE4C0
.text:10040B2A call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040B2F push offset aToshibaMk1017g ; "TOSHIBA MK1017GAP"
.text:10040B34 mov ecx, offset unk_100CE4C0
.text:10040B39 call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040B3E push offset aToshibaMk101_0 ; "Toshiba MK1017GAP"
.text:10040B43 mov ecx, offset unk_100CE4C0
.text:10040B48 call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040B4D push offset aToshibaMk2018g ; "TOSHIBA MK2018GAP"
.text:10040B52 mov ecx, offset unk_100CE4C0
.text:10040B57 call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040B5C push offset aToshibaMk201_0 ; "Toshiba MK2018GAP"
.text:10040B61 mov ecx, offset unk_100CE4C0
.text:10040B66 call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040B6B push offset aToshibaMk201_1 ; "TOSHIBA MK2018GAS"
.text:10040B70 mov ecx, offset unk_100CE4C0
.text:10040B75 call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040B7A push offset aToshibaMk201_2 ; "Toshiba MK2018GAS"
.text:10040B7F mov ecx, offset unk_100CE4C0
.text:10040B84 call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040B89 push offset aToshibaMk2018g ; "TOSHIBA MK2018GAP"
.text:10040B8E mov ecx, offset unk_100CE4C0
.text:10040B93 call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040B98 push offset aToshibaMk201_0 ; "Toshiba MK2018GAP"
.text:10040B9D mov ecx, offset unk_100CE4C0
.text:10040BA2 call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040BA7 push offset aToshibaMk2023g ; "TOSHIBA MK2023GAS"
.text:10040BAC mov ecx, offset unk_100CE4C0
.text:10040BB1 call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040BB6 push offset aToshibaMk202_0 ; "Toshiba MK2023GAS"
.text:10040BBB mov ecx, offset unk_100CE4C0
.text:10040BC0 call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040BC5 push offset aToshibaMk3017g ; "TOSHIBA MK3017GAP"
.text:10040BCA mov ecx, offset unk_100CE4C0
.text:10040BCF call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040BD4 push offset aToshibaMk301_0 ; "Toshiba MK3017GAP"
.text:10040BD9 mov ecx, offset unk_100CE4C0
.text:10040BDE call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040BE3 push offset aToshibaMk4018g ; "TOSHIBA MK4018GAP"
.text:10040BE8 mov ecx, offset unk_100CE4C0
.text:10040BED call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040BF2 push offset aToshibaMk401_0 ; "Toshiba MK4018GAP"
.text:10040BF7 mov ecx, offset unk_100CE4C0
.text:10040BFC call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040C01 push offset aToshibaMk401_1 ; "TOSHIBA MK4018GAS"
.text:10040C06 mov ecx, offset unk_100CE4C0
.text:10040C0B call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040C10 push offset aToshibaMk401_2 ; "Toshiba MK4018GAS"
.text:10040C15 mov ecx, offset unk_100CE4C0
.text:10040C1A call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040C1F push offset aToshibaMk4025g ; "TOSHIBA MK4025GAS"
.text:10040C24 mov ecx, offset unk_100CE4C0
.text:10040C29 call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040C2E push offset aToshibaMk402_0 ; "Toshiba MK4025GAS"
.text:10040C33 mov ecx, offset unk_100CE4C0
.text:10040C38 call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040C3D push offset aToshibaMk6015m ; "TOSHIBA MK6015MAP"
.text:10040C42 mov ecx, offset unk_100CE4C0
.text:10040C47 call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040C4C push offset aToshibaMk601_0 ; "Toshiba MK6015MAP"
.text:10040C51 mov ecx, offset unk_100CE4C0
.text:10040C56 call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040C5B push offset aToshibaMk6021g ; "TOSHIBA MK6021GAS"
.text:10040C60 mov ecx, offset unk_100CE4C0
.text:10040C65 call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040C6A push offset aToshibaMk602_0 ; "Toshiba MK6021GAS"
.text:10040C6F mov ecx, offset unk_100CE4C0
.text:10040C74 call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040C79 mov dword_100CE4FC, 1
.text:10040C83
.text:10040C83 loc_10040C83: ; CODE XREF: sub_100409B0+25j
.text:10040C83 push esi
.text:10040C84 push edi
.text:10040C85 push offset Caption ; "PhatNoise"
.text:10040C8A lea ecx, [esp+1Ch+arg_0]
.text:10040C8E xor edi, edi
.text:10040C90 call ?Find@CString@@QBEHPBD@Z ; CString::Find(char const *)
.text:10040C95 cmp eax, 0FFFFFFFFh
.text:10040C98 jz short loc_10040CB2
.text:10040C9A push offset aDms_0 ; "DMS"
.text:10040C9F lea ecx, [esp+1Ch+arg_0]
.text:10040CA3 call ?Find@CString@@QBEHPBD@Z ; CString::Find(char const *)
.text:10040CA8 cmp eax, 0FFFFFFFFh
.text:10040CAB jz short loc_10040CB2
.text:10040CAD mov edi, 1
.text:10040CB2
.text:10040CB2 loc_10040CB2: ; CODE XREF: sub_100409B0+2E8j
.text:10040CB2 ; sub_100409B0+2FBj
.text:10040CB2 mov esi, dword_100CE4C4
.text:10040CB8 test esi, esi
.text:10040CBA jz short loc_10040D10
.text:10040CBC
.text:10040CBC loc_10040CBC: ; CODE XREF: sub_100409B0+349j
.text:10040CBC test edi, edi
.text:10040CBE jnz short loc_10040D10
.text:10040CC0 mov eax, esi
.text:10040CC2 mov esi, [esi]
.text:10040CC4 add eax, 8
.text:10040CC7 lea ecx, [esp+18h+var_10]
.text:10040CCB push eax
.text:10040CCC call ??0CString@@QAE@ABV0@@Z ; CString::CString(CString const &)
.text:10040CD1 mov eax, [esp+18h+var_10]
.text:10040CD5 lea ecx, [esp+18h+arg_0]
.text:10040CD9 push eax
.text:10040CDA mov byte ptr [esp+1Ch+var_4], 1
.text:10040CDF call ?Find@CString@@QBEHPBD@Z ; CString::Find(char const *)
.text:10040CE4 cmp eax, 0FFFFFFFFh
.text:10040CE7 jnz short loc_10040CFD
.text:10040CE9 lea ecx, [esp+18h+var_10]
.text:10040CED mov byte ptr [esp+18h+var_4], 0
.text:10040CF2 call ??1CString@@QAE@XZ ; CString::~CString(void)
.text:10040CF7 test esi, esi
.text:10040CF9 jnz short loc_10040CBC
.text:10040CFB jmp short loc_10040D10
.text:10040CFD ; ---------------------------------------------------------------------------
.text:10040CFD
.text:10040CFD loc_10040CFD: ; CODE XREF: sub_100409B0+337j
.text:10040CFD lea ecx, [esp+18h+var_10]
.text:10040D01 mov edi, 1
.text:10040D06 mov byte ptr [esp+18h+var_4], 0
.text:10040D0B call ??1CString@@QAE@XZ ; CString::~CString(void)
.text:10040D10
.text:10040D10 loc_10040D10: ; CODE XREF: sub_100409B0+30Aj
.text:10040D10 ; sub_100409B0+30Ej ...
.text:10040D10 lea ecx, [esp+18h+arg_0]
.text:10040D14 mov [esp+18h+var_4], 0FFFFFFFFh
.text:10040D1C call ??1CString@@QAE@XZ ; CString::~CString(void)
.text:10040D21 mov ecx, [esp+18h+var_C]
.text:10040D25 mov eax, edi
.text:10040D27 pop edi
.text:10040D28 pop esi
.text:10040D29 mov large fs:0, ecx
.text:10040D30 add esp, 10h
.text:10040D33 retn
.text:10040D33 sub_100409B0 endp
.text:10040D33
.text:10040D33 ; ---------------------------------------------------------------------------
.text:10040D34 align 10h
.text:10040D80 sub_10040D80 proc near ; CODE XREF: sub_1003FE80+75Bp
.text:10040D80
.text:10040D80 var_10 = dword ptr -10h
.text:10040D80 var_C = dword ptr -0Ch
.text:10040D80 var_4 = dword ptr -4
.text:10040D80 arg_0 = byte ptr 4
.text:10040D80
.text:10040D80 push 0FFFFFFFFh
.text:10040D82 push offset SEH_10040D80
.text:10040D87 mov eax, large fs:0
.text:10040D8D push eax
.text:10040D8E mov large fs:0, esp
.text:10040D95 push ecx
.text:10040D96 push esi
.text:10040D97 push edi
.text:10040D98 mov eax, dword_100CE500
.text:10040D9D xor edi, edi
.text:10040D9F cmp eax, edi
.text:10040DA1 mov [esp+18h+var_4], edi
.text:10040DA5 jnz loc_10040EFA
.text:10040DAB mov ecx, offset unk_100CE4A0
.text:10040DB0 call ?RemoveAll@CStringList@@QAEXXZ ; CStringList::RemoveAll(void)
.text:10040DB5 push offset aSamsung ; "Samsung"
.text:10040DBA mov ecx, offset unk_100CE4A0
.text:10040DBF call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040DC4 push offset aSamsung_0 ; "SAMSUNG"
.text:10040DC9 mov ecx, offset unk_100CE4A0
.text:10040DCE call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040DD3 push offset aSandisk ; "SanDisk"
.text:10040DD8 mov ecx, offset unk_100CE4A0
.text:10040DDD call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040DE2 push offset aSony ; "Sony"
.text:10040DE7 mov ecx, offset unk_100CE4A0
.text:10040DEC call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040DF1 push offset aSony_0 ; "SONY"
.text:10040DF6 mov ecx, offset unk_100CE4A0
.text:10040DFB call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040E00 push offset aGeneric ; "Generic"
.text:10040E05 mov ecx, offset unk_100CE4A0
.text:10040E0A call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040E0F push offset aCf ; "CF"
.text:10040E14 mov ecx, offset unk_100CE4A0
.text:10040E19 call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040E1E push offset aSd ; "SD"
.text:10040E23 mov ecx, offset unk_100CE4A0
.text:10040E28 call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040E2D push offset aHitachi ; "HITACHI"
.text:10040E32 mov ecx, offset unk_100CE4A0
.text:10040E37 call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040E3C push offset aHp ; "HP"
.text:10040E41 mov ecx, offset unk_100CE4A0
.text:10040E46 call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040E4B push offset aIbm ; "IBM"
.text:10040E50 mov ecx, offset unk_100CE4A0
.text:10040E55 call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040E5A push offset aStorage ; "Storage"
.text:10040E5F mov ecx, offset unk_100CE4A0
.text:10040E64 call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040E69 push offset aLexar ; "LEXAR"
.text:10040E6E mov ecx, offset unk_100CE4A0
.text:10040E73 call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040E78 push offset aMaxtor ; "Maxtor"
.text:10040E7D mov ecx, offset unk_100CE4A0
.text:10040E82 call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040E87 push offset aCardReader ; "Card Reader"
.text:10040E8C mov ecx, offset unk_100CE4A0
.text:10040E91 call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040E96 push offset aUsbDrive ; "USB DRIVE"
.text:10040E9B mov ecx, offset unk_100CE4A0
.text:10040EA0 call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040EA5 push offset aUsbDrive_0 ; "USB Drive"
.text:10040EAA mov ecx, offset unk_100CE4A0
.text:10040EAF call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040EB4 push offset aCanon ; "Canon"
.text:10040EB9 mov ecx, offset unk_100CE4A0
.text:10040EBE call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040EC3 push offset aEpson ; "EPSON"
.text:10040EC8 mov ecx, offset unk_100CE4A0
.text:10040ECD call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040ED2 push offset aCompact ; "Compact"
.text:10040ED7 mov ecx, offset unk_100CE4A0
.text:10040EDC call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040EE1 push offset aEusb ; "eUSB"
.text:10040EE6 mov ecx, offset unk_100CE4A0
.text:10040EEB call ?AddTail@CStringList@@QAEPAU__POSITION@@PBD@Z ; CStringList::AddTail(char const *)
.text:10040EF0 mov dword_100CE500, 1
.text:10040EFA
.text:10040EFA loc_10040EFA: ; CODE XREF: sub_10040D80+25j
.text:10040EFA mov esi, dword_100CE4A4
.text:10040F00 cmp esi, edi
.text:10040F02 jz short loc_10040F54
.text:10040F04
.text:10040F04 loc_10040F04: ; CODE XREF: sub_10040D80+1BDj
.text:10040F04 mov eax, esi
.text:10040F06 mov esi, [esi]
.text:10040F08 add eax, 8
.text:10040F0B lea ecx, [esp+18h+var_10]
.text:10040F0F push eax
.text:10040F10 call ??0CString@@QAE@ABV0@@Z ; CString::CString(CString const &)
.text:10040F15 mov eax, [esp+18h+var_10]
.text:10040F19 lea ecx, [esp+18h+arg_0]
.text:10040F1D push eax
.text:10040F1E mov byte ptr [esp+1Ch+var_4], 1
.text:10040F23 call ?Find@CString@@QBEHPBD@Z ; CString::Find(char const *)
.text:10040F28 cmp eax, 0FFFFFFFFh
.text:10040F2B jnz short loc_10040F41
.text:10040F2D lea ecx, [esp+18h+var_10]
.text:10040F31 mov byte ptr [esp+18h+var_4], 0
.text:10040F36 call ??1CString@@QAE@XZ ; CString::~CString(void)
.text:10040F3B cmp esi, edi
.text:10040F3D jnz short loc_10040F04
.text:10040F3F jmp short loc_10040F54
.text:10040F41 ; ---------------------------------------------------------------------------
.text:10040F41
.text:10040F41 loc_10040F41: ; CODE XREF: sub_10040D80+1ABj
.text:10040F41 lea ecx, [esp+18h+var_10]
.text:10040F45 mov edi, 1
.text:10040F4A mov byte ptr [esp+18h+var_4], 0
.text:10040F4F call ??1CString@@QAE@XZ ; CString::~CString(void)
.text:10040F54
.text:10040F54 loc_10040F54: ; CODE XREF: sub_10040D80+182j
.text:10040F54 ; sub_10040D80+1BFj
.text:10040F54 lea ecx, [esp+18h+arg_0]
.text:10040F58 mov [esp+18h+var_4], 0FFFFFFFFh
.text:10040F60 call ??1CString@@QAE@XZ ; CString::~CString(void)
.text:10040F65 mov ecx, [esp+18h+var_C]
.text:10040F69 mov eax, edi
.text:10040F6B pop edi
.text:10040F6C pop esi
.text:10040F6D mov large fs:0, ecx
.text:10040F74 add esp, 10h
.text:10040F77 retn
.text:10040F77 sub_10040D80 endp
(BTW I tried to add Western Digital or WDC to see if it had any effect, but all it did was corrupt the dll. Again, I don't know what I am doing anyway.)If you want that to work, make sure leave a valid set of NUL terminators. These strings are packed in the DLL's data segment, and they are padded to 8 bytes. That's why 'SONY' has four NULs (0x00 or ^@) after it, while 'Generic' has only 1 NUL. If you really want to try your test, try changing 'Storage' to Western' or 'IBM' to 'WDC'. That makes it so you don't have to add/remove NULs.
Yes, trying to make it work. I know it should be one of the top strings, but don't know how to do it without screwing up other values. Whatever, I don't think this dll is the root of the problem with the WD 250, other WD drives work fine. Just wishful thinkin'...If you mean this problem:
Update for anyone else who might be interested in using a 250GB DMS:I would guess that the first problem could be overcome by the right change in this dll, but the later problem you still need to resolve. (did the update to the tools help?)
...
3.92 gives the "error retrieving DMS ID" that also happens with some other drives, and just won't work.
...
3.76 seems to work at first, but then I get write delay errors and the phtsys partition disappears.
Toshiba MK6021GAS...TOSHIBA MK6021GAS...Toshiba MK6015MAP...
Toshiba MK6021GAS...WDC WD2500BEVE-00WZT0.shiba MK6015MAP...
Where the .'s represent NUL characters. Notice that this eats into the next string (to the code, the actual next string would become '0', which shouldn't matter). The key thing is to keep the exact same overall length -thus, 3 NULs become just one, and you overwrite the next string.Toshiba MK6021GAS^@^@^@TOSHIBA MK6021GAS^@^@^@Toshiba MK6015MAP^@^@^@
Toshiba MK6021GAS^@^@^@WDC WD2500BEVE-00WZT0^@shiba MK6015MAP^@^@^@
Well, this hack didn't work for me. :(
Hi, I have a Fujitsu 80 GB original PhatNoise drive that no longer gets detected by PMM 3.92 (but does by Phatnoise Music Manager).
I run XP (in Parallels on a Mac system), using PMM 3.92, USB 2 cradle with no specific drivers installed.
2. Phatnoise Media Manager 3.92 doesn't work with it -- it complains "An unknown error occurred while accessing G:\CurrentSetup.xml." (but the file is there and appears to be good).
CurrentSetup.xml might have been generated by the DMS tools, which is an XML node fragment from the file host on the PhatHack.com servers for the firmware download. Unfortunately we had to generate this file from what little knowledge we had of it, and therefore it's not likely to be exactly what PhatNoise MM expects of it.Actually, my CurrentSetup.xml is not the one that DMS Tools generated. I overwrote that file and the *.ini files with copies from my old 80GB DMS. I also copied the entire contents of the my DMS' PHTDTA partition to the new 320GB drive.
So, I'm still looking for a solution to make the new drive work with PMM 3.92. Is there something else I should patch in DeviceDMS.dll?
Is there something I'm doing wrong? Any ideas why this is not enough to make PMM 3.92 work?