// ref: 0x1000855D
int Modem_1000855D ( ) { return 0 ; }
/* {
return dword_1002A124 ;
} */
// 1002A124: using guessed type int dword_1002A124;
// ref: 0x10008563
HWND __fastcall Modem_10008563 ( HWND hDlg , const char * a2 , int a3 ) { return 0 ; }
/* {
HWND v3 ; // esi
const char * v4 ; // ebp
HWND result ; // eax
v3 = hDlg ;
v4 = a2 ;
result = GetDlgItem ( hDlg , 1108 ) ;
if ( result )
{
result = ( HWND ) GetWindowLongA ( result , - 21 ) ;
if ( result )
{
local_10007FA4 ( ( int ) result , ( const char * ) a3 ) ;
Doom_10006A13 ( v3 , ( int * ) & unk_10022C5C , 1 ) ;
result = GetDlgItem ( v3 , 1080 ) ;
if ( result )
{
result = ( HWND ) GetWindowLongA ( result , - 21 ) ;
if ( result )
{
local_10007FA4 ( ( int ) result , v4 ) ;
result = ( HWND ) Doom_10006A13 ( v3 , ( int * ) & unk_10022C54 , 3 ) ;
}
}
}
}
return result ;
} */
// ref: 0x100085D8
int __stdcall Modem_100085D8 ( int a1 , char * a2 , char * a3 ) { return 0 ; }
/* {
dword_1002A150 = a1 ;
strcpy ( & byte_1002A154 , a2 ) ;
strcpy ( & byte_1002A1D4 , a3 ) ;
return 1 ;
} */
// 1002A150: using guessed type int dword_1002A150;
// ref: 0x10008606
BOOL Modem_10008606 ( ) { return 0 ; }
/* {
BOOL result ; // eax
dword_1002A150 = 0 ;
byte_1002A154 = 0 ;
byte_1002A1D4 = 0 ;
if ( SNetEnumGames ( 0 , 0 , Modem_100085D8 , 0 ) )
result = dword_1002A150 ! = 0 ;
else
result = 0 ;
return result ;
} */
// 10010436: using guessed type int __stdcall SNetEnumGames(_DWORD, _DWORD, _DWORD, _DWORD);
// 1002A150: using guessed type int dword_1002A150;
// ref: 0x1000863D
char * Modem_1000863D ( ) { return 0 ; }
/* {
return & byte_1002A154 ;
} */
// ref: 0x10008648
signed int Modem_10008648 ( ) { return 0 ; }
/* {
signed int result ; // eax
result = 2139095040 ;
dword_1002A128 = 2139095040 ;
return result ;
} */
// 1002A128: using guessed type int dword_1002A128;
// ref: 0x10008653
int Modem_10008653 ( ) { return 0 ; }
/* {
return dword_1002A148 ;
} */
// 1002A148: using guessed type int dword_1002A148;
// ref: 0x10008659
int Modem_10008659 ( ) { return 0 ; }
/* {
return dword_1002A134 ;
} */
// 1002A134: using guessed type int dword_1002A134;
// ref: 0x1000865F
int UNKCALL Modem_1000865F ( char * arg ) { return 0 ; }
/* {
char v1 ; // al
int result ; // eax
while ( 1 )
{
v1 = * arg ;
if ( ! * arg | | ( unsigned char ) v1 > = 0x30u & & ( unsigned char ) v1 < = 0x39u )
break ;
+ + arg ;
}
if ( * arg )
result = atoi ( arg ) ;
else
result = 0 ;
return result ;
} */
// ref: 0x10008680
BOOL __fastcall Modem_10008680 ( int a1 , int a2 , int a3 , _DWORD * a4 , int a5 , int playerid ) { return 0 ; }
/* {
int v6 ; // esi
dword_1002A13C = a3 ;
dword_1002A138 = a2 ;
dword_1002A144 = a5 ;
dword_1002A14C = a4 ;
gnModemPlayerid = playerid ;
artfont_10001159 ( ) ;
v6 = SDlgDialogBoxParam ( hInstance , " MODEM_DIALOG " , a4 [ 2 ] , Modem_100086DE , 0 ) ;
artfont_100010C8 ( ) ;
return v6 = = 1 ;
} */
// 10010370: using guessed type int __stdcall SDlgDialogBoxParam(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD);
// 1002A138: using guessed type int dword_1002A138;
// 1002A13C: using guessed type int dword_1002A13C;
// 1002A140: using guessed type int gnModemPlayerid;
// 1002A144: using guessed type int dword_1002A144;
// ref: 0x100086DE
int __stdcall Modem_100086DE ( HWND hWnd , UINT Msg , WPARAM wParam , LPARAM lParam ) { return 0 ; }
/* {
HWND v4 ; // eax
int v6 ; // [esp+0h] [ebp-8h]
if ( Msg > 0x7E8 )
{
switch ( Msg )
{
case 0xBD0u :
Modem_100088DB ( hWnd ) ;
return 0 ;
case 0xBD1u :
Modem_10008BB7 ( hWnd ) ;
return 0 ;
case 0xBD2u :
Modem_10008BFE ( hWnd ) ;
return 0 ;
}
return SDlgDefDialogProc ( hWnd , Msg , wParam , lParam ) ;
}
if ( Msg = = 2024 )
{
if ( ! Fade_1000739F ( ) )
Fade_100073FD ( hWnd , v6 ) ;
return 0 ;
}
if ( Msg = = 2 )
{
Modem_1000879E ( hWnd ) ;
return SDlgDefDialogProc ( hWnd , Msg , wParam , lParam ) ;
}
if ( Msg < = 0x103 )
return SDlgDefDialogProc ( hWnd , Msg , wParam , lParam ) ;
if ( Msg < = 0x105 )
{
v4 = ( HWND ) SDrawGetFrameWindow ( NULL ) ;
SendMessageA ( v4 , Msg , wParam , lParam ) ;
return SDlgDefDialogProc ( hWnd , Msg , wParam , lParam ) ;
}
if ( Msg ! = 272 )
return SDlgDefDialogProc ( hWnd , Msg , wParam , lParam ) ;
Modem_100087DB ( hWnd ) ;
PostMessageA ( hWnd , 0x7E8u , 0 , 0 ) ;
return 0 ;
} */
// 1001037C: using guessed type int __stdcall SDlgDefDialogProc(_DWORD, _DWORD, _DWORD, _DWORD);
// 10010382: using guessed type _DWORD __stdcall SDrawGetFrameWindow();
// ref: 0x1000879E
void * * UNKCALL Modem_1000879E ( HWND hDlg ) { return 0 ; }
/* {
HWND v1 ; // esi
_DWORD * v2 ; // eax
v1 = hDlg ;
Doom_10006C53 ( hDlg , ( int * ) & unk_10022C5C ) ;
Doom_10006C53 ( v1 , ( int * ) & unk_10022C54 ) ;
Doom_10006C53 ( v1 , ( int * ) & unk_10022C4C ) ;
v2 = ( _DWORD * ) GetWindowLongA ( v1 , - 21 ) ;
local_10007F72 ( v2 ) ;
return Title_100100E7 ( v1 ) ;
} */
// ref: 0x100087DB
BOOL UNKCALL Modem_100087DB ( HWND hWnd ) { return 0 ; }
/* {
HWND v1 ; // esi
int v2 ; // eax
int * v3 ; // edi
HWND v5 ; // [esp+0h] [ebp-10h]
v1 = hWnd ;
Title_1001009E ( hWnd , ( int ) " ui_art \\ smlogo.pcx " , v5 ) ;
v2 = local_10007F46 ( ) ;
v3 = ( int * ) v2 ;
if ( v2 )
{
SetWindowLongA ( v1 , - 21 , v2 ) ;
local_10007944 ( ( int ) v1 , 0 , & byte_10029448 , - 1 , 1 , ( int ) " ui_art \\ selgame.pcx " , v3 , v3 + 1 , 0 ) ;
Fade_100073C5 ( v1 , 1 ) ;
}
Doom_100068AB ( v1 , ( int * ) & unk_10022C4C , 5 ) ;
Doom_100068AB ( v1 , ( int * ) & unk_10022C54 , 3 ) ;
Doom_100068AB ( v1 , ( int * ) & unk_10022C5C , 1 ) ;
Modem_10008888 ( ) ;
if ( dword_1002A124 )
return PostMessageA ( v1 , 0xBD2u , 0 , 0 ) ;
dword_1002A134 = 1 ;
dword_1002A130 = 1 ;
return PostMessageA ( v1 , 0xBD0u , 0 , 0 ) ;
} */
// 1002A124: using guessed type int dword_1002A124;
// 1002A130: using guessed type int dword_1002A130;
// 1002A134: using guessed type int dword_1002A134;
// ref: 0x10008888
int Modem_10008888 ( ) { return 0 ; }
/* {
int result ; // eax
dword_1002A150 = 0 ;
byte_1002A154 = 0 ;
byte_1002A1D4 = 0 ;
result = SNetEnumGames ( 0 , 0 , Modem_100085D8 , 0 ) ;
if ( result )
{
dword_1002A124 = 1 ;
}
else
{
result = SErrGetLastError ( ) ;
if ( result = = 1222 )
{
dword_1002A124 = 0 ;
result = 1 ;
dword_1002A134 = 1 ;
dword_1002A130 = 1 ;
}
}
return result ;
} */
// 10010406: using guessed type _DWORD __stdcall SErrGetLastError();
// 10010436: using guessed type int __stdcall SNetEnumGames(_DWORD, _DWORD, _DWORD, _DWORD);
// 1002A124: using guessed type int dword_1002A124;
// 1002A130: using guessed type int dword_1002A130;
// 1002A134: using guessed type int dword_1002A134;
// 1002A150: using guessed type int dword_1002A150;
// ref: 0x100088DB
int UNKCALL Modem_100088DB ( HWND hWnd ) { return 0 ; }
/* {
HWND v1 ; // esi
int v2 ; // eax
int v3 ; // eax
int v5 ; // [esp+4h] [ebp-20h]
v1 = hWnd ;
v2 = SDlgDialogBoxParam ( hInstance , " SELDIAL_DIALOG " , hWnd , SelDial_1000B0CF , & v5 ) - 3 ;
if ( ! v2 )
return Modem_1000893D ( v1 ) ;
v3 = v2 - 1 ;
if ( ! v3 )
return Modem_10008A38 ( v1 , ( int ) & v5 ) ;
if ( v3 = = 1 )
return PostMessageA ( v1 , 0xBD1u , 0 , 0 ) ;
return SelHero_1000C3E2 ( ( int ) v1 , 2 ) ;
} */
// 10010370: using guessed type int __stdcall SDlgDialogBoxParam(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD);
// ref: 0x1000893D
int UNKCALL Modem_1000893D ( HWND hWnd ) { return 0 ; }
/* {
HWND v1 ; // esi
int v2 ; // eax
int result ; // eax
CHAR v4 ; // [esp+8h] [ebp-C0h]
int v5 ; // [esp+48h] [ebp-80h]
HWND v6 ; // [esp+50h] [ebp-78h]
CHAR Buffer ; // [esp+98h] [ebp-30h]
int v8 ; // [esp+B8h] [ebp-10h]
int v9 ; // [esp+BCh] [ebp-Ch]
int v10 ; // [esp+C0h] [ebp-8h]
int v11 ; // [esp+C4h] [ebp-4h]
v1 = hWnd ;
memcpy ( & v5 , dword_1002A14C , 0x50u ) ;
v5 = 80 ;
v6 = v1 ;
memset ( & v8 , 0 , 0x10u ) ;
v8 = 16 ;
v9 = 1297040461 ;
v2 = * ( _DWORD * ) ( dword_1002A138 + 24 ) ;
v11 = 0 ;
v10 = v2 ;
LoadStringA ( hInstance , 0x47u , & Buffer , 31 ) ; //"Game %d"
wsprintfA ( & v4 , & Buffer , dword_1002A130 ) ;
if ( CreaDung_100051D8 (
( int ) & v8 ,
dword_1002A138 ,
dword_1002A13C ,
( int ) & v5 ,
dword_1002A144 ,
gnModemPlayerid ,
1 ,
( int ) & v4 ) )
{
+ + dword_1002A130 ;
result = SelHero_1000C3E2 ( ( int ) v1 , 1 ) ;
}
else if ( dword_1002A124 )
{
if ( SErrGetLastError ( ) = = 183 )
+ + dword_1002A130 ;
result = PostMessageA ( v1 , 0xBD2u , 0 , 0 ) ;
}
else
{
result = PostMessageA ( v1 , 0xBD0u , 0 , 0 ) ;
}
return result ;
} */
// 10010406: using guessed type _DWORD __stdcall SErrGetLastError();
// 1002A124: using guessed type int dword_1002A124;
// 1002A130: using guessed type int dword_1002A130;
// 1002A138: using guessed type int dword_1002A138;
// 1002A13C: using guessed type int dword_1002A13C;
// 1002A140: using guessed type int gnModemPlayerid;
// 1002A144: using guessed type int dword_1002A144;
// ref: 0x10008A38
int __fastcall Modem_10008A38 ( HWND hWnd , int a2 ) { return 0 ; }
/* {
char * v2 ; // ebx
HWND v3 ; // edi
int v4 ; // eax
int result ; // eax
CHAR Buffer ; // [esp+Ch] [ebp-80h]
v2 = ( char * ) a2 ;
v3 = hWnd ;
dword_1002A148 = 0 ;
_beginthread ( ( int ) Modem_10008B42 , 0 , a2 ) ;
ModmStat_10008C87 ( v3 ) ;
if ( ! dword_1002A120 )
{
switch ( dword_1002A12C )
{
case - 2062548871 :
LoadStringA ( hInstance , 0x32u , & Buffer , 127 ) ; //"\nUnable to join the detected game. Your version of Diablo is incompatible with the game creator's version."
break ;
case 54 :
LoadStringA ( hInstance , 0x42u , & Buffer , 127 ) ; //"\n\nUnable to connect. The number dialed was busy."
break ;
case 1204 :
LoadStringA ( hInstance , 0x4Cu , & Buffer , 127 ) ; //"Modem not detected. Please ensure that your modem is turned on and connected correctly."
break ;
case 1222 :
LoadStringA ( hInstance , 0x41u , & Buffer , 127 ) ; //"\n\nUnable to dial. No dial tone was detected."
break ;
case 1223 :
goto LABEL_18 ;
case 2250 :
LoadStringA ( hInstance , 0x40u , & Buffer , 127 ) ; //"\n\nUnable to connect. There was no answer at the number dialed."
break ;
default :
LoadStringA ( hInstance , 0x33u , & Buffer , 127 ) ; //"\nUnable to establish a connection. A game of Diablo was not detected at the specified phone number."
break ;
}
SelYesNo_1000FD39 ( ( int ) v3 , & Buffer , 0 , 1 ) ;
LABEL_18 :
if ( dword_1002A124 )
result = PostMessageA ( v3 , 0xBD2u , 0 , 0 ) ;
else
result = PostMessageA ( v3 , 0xBD0u , 0 , 0 ) ;
return result ;
}
if ( ! dword_1002A124 )
{
SelDial_1000B011 ( v2 ) ;
Modem_10008606 ( ) ;
}
v4 = Modem_1000865F ( & byte_1002A154 ) ;
dword_1002A134 = v4 ;
dword_1002A130 = v4 + 1 ;
return SelHero_1000C3E2 ( ( int ) v3 , 1 ) ;
} */
// 1002A120: using guessed type int dword_1002A120;
// 1002A124: using guessed type int dword_1002A124;
// 1002A12C: using guessed type int dword_1002A12C;
// 1002A130: using guessed type int dword_1002A130;
// 1002A134: using guessed type int dword_1002A134;
// 1002A148: using guessed type int dword_1002A148;
// ref: 0x10008B42
void __cdecl Modem_10008B42 ( char * a1 ) { return ; }
/* {
char * v1 ; // eax
char v2 ; // [esp+0h] [ebp-100h]
char v3 ; // [esp+80h] [ebp-80h]
Connect_10004028 ( ( int ) & v2 , 128 , ( int ) & v3 , 128 ) ;
dword_1002A148 = 0 ;
v1 = & byte_1002A154 ;
if ( ! dword_1002A124 )
v1 = a1 ;
dword_1002A120 = SNetJoinGame ( 0 , v1 , 0 , & v2 , & v3 , gnModemPlayerid ) ;
if ( ! dword_1002A120 )
dword_1002A12C = SErrGetLastError ( ) ;
dword_1002A148 = 1 ;
_endthread ( ) ;
} */
// 10010406: using guessed type _DWORD __stdcall SErrGetLastError();
// 10010430: using guessed type int __stdcall SNetJoinGame(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD);
// 10011E20: using guessed type int _endthread(void);
// 1002A120: using guessed type int dword_1002A120;
// 1002A124: using guessed type int dword_1002A124;
// 1002A12C: using guessed type int dword_1002A12C;
// 1002A140: using guessed type int gnModemPlayerid;
// 1002A148: using guessed type int dword_1002A148;
// ref: 0x10008BB7
int UNKCALL Modem_10008BB7 ( HWND hWnd ) { return 0 ; }
/* {
HWND v1 ; // esi
int result ; // eax
int v3 ; // [esp+4h] [ebp-20h]
v1 = hWnd ;
if ( SDlgDialogBoxParam ( hInstance , " ENTERDIAL_DIALOG " , hWnd , EntDial_10006C96 , & v3 ) = = 1 )
result = Modem_10008A38 ( v1 , ( int ) & v3 ) ;
else
result = PostMessageA ( v1 , 0xBD0u , 0 , 0 ) ;
return result ;
} */
// 10010370: using guessed type int __stdcall SDlgDialogBoxParam(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD);
// ref: 0x10008BFE
int UNKCALL Modem_10008BFE ( HWND hWnd ) { return 0 ; }
/* {
HWND v1 ; // esi
int v2 ; // eax
int v3 ; // eax
v1 = hWnd ;
v2 = SDlgDialogBoxParam ( hInstance , " SELCRE8JOIN_DIALOG " , hWnd , SelDial_1000B0CF , 0 ) - 3 ;
if ( ! v2 )
return Modem_1000893D ( v1 ) ;
v3 = v2 - 2 ;
if ( ! v3 )
return Modem_10008A38 ( v1 , ( int ) & byte_1002A154 ) ;
if ( v3 ! = 1217 )
return SelHero_1000C3E2 ( ( int ) v1 , 2 ) ;
dword_1002A124 = 0 ;
return PostMessageA ( v1 , 0xBD0u , 0 , 0 ) ;
} */
// 10010370: using guessed type int __stdcall SDlgDialogBoxParam(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD);
// 1002A124: using guessed type int dword_1002A124;