Function at 0x45c7a0
Capabilities:
Check if file exists
Get file attributes
Hide graphical window
Initialize winsock library
Log keystrokes via polling
Read .ini file
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, 0x63
push edi
mov edi, 0xd786e0
push esi
mov esi, 0x502920
push ebx
sub esp, 0xa4c
mov ebx, dword [esp + 0xa60]
mov dword [0x1162fd0], ebx
call fcn.00404ea0
call fcn.00404f10
mov eax, dword [esp + 0xa64]
mov ecx, 0x20
mov dword [0xd67660], 0x6e756f73
rep movsd dword es:[edi], dword [esi]
mov edi, 0x64
mov dword [0xd67260], 0x6973756d
mov word [0xd67664], di
mov word [0xd67264], bp
mov dword [0x54b7c8], 0x459a40
test eax, eax
je 0x45de52
mov dword [0x54b040], 0x458490
mov dword [0x54b03c], 0x458450
mov dword [0x54b044], 0x458740
call fcn.0045c0f0
lea eax, [esp + 0xb0]
mov dword [esp], 0x101
mov dword [esp + 4], eax
call dword [sym.imp.WSOCK32.DLL_WSAStartup]
sub esp, 8
lea eax, [esp + 0x78]
mov dword [esp + 4], 8
mov dword [esp], eax
call dword [sym.imp.WINMM.DLL_timeGetDevCaps]
sub esp, 8
test eax, eax
je 0x45dc1a
mov eax, dword [sym.imp.USER32.dll_GetDC]
mov dword [esp], 0
mov dword [esp + 0x64], eax
call eax
mov esi, dword [sym.imp.GDI32.dll_GetDeviceCaps]
sub esp, 4
mov ebx, eax
mov dword [esp + 0x68], esi
mov dword [esp + 4], 0xc
mov dword [esp], eax
call esi
sub esp, 8
cmp eax, 4
sete byte [0x1162e48]
mov dword [esp], ebx
mov dword [esp + 4], 0x26
call esi
mov esi, str.Msg_Chat
shr eax, 8
sub esp, 8
and eax, 1
mov dword [esp + 4], ebx
mov ebx, 0x11630c0
mov byte [0x1162e49], al
mov eax, dword [sym.imp.USER32.dll_ReleaseDC]
mov dword [esp], 0
mov dword [esp + 0x6c], eax
call eax
mov edx, 0x1162fe0
xor eax, eax
mov ecx, 0x38
mov edi, edx
sub esp, 8
rep stosd dword es:[edi], eax
mov dword [esp + 0x14], 0x51b03e
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], 9
mov dword [esp + 8], 4
mov dword [esp + 4], str.TomeNET__d._d._d_s
mov dword [esp], 0x1162e68
call fcn.00458540
mov byte [0x11630a8], 1
mov edx, ebx
xor eax, eax
mov dword [0x1163054], 0x1162e68
mov dword [0x1163074], 0x400
mov dword [0x1163078], 0x18
mov dword [0x116307c], 0x50
mov dword [0x1163098], 2
mov dword [0x11630a0], 2
mov dword [0x116309c], 2
mov dword [0x11630a4], 2
mov dword [0x1163080], 0
mov dword [0x1163084], 0
mov dword [esp + 0x5c], 0x1162fe0
lea esi, [esi]
mov edi, edx
mov ecx, 0x38
add edx, 0xe0
rep stosd dword es:[edi], eax
mov dword [edx - 0x6c], esi
add esi, 0x28
mov dword [edx - 0x4c], 0x10
mov dword [edx - 0x48], 0x18
mov dword [edx - 0x44], 0x50
mov byte [edx - 0x18], 1
mov dword [edx - 0x28], 1
mov dword [edx - 0x20], 1
mov dword [edx - 0x24], 1
mov dword [edx - 0x1c], 1
cmp edx, 0x11638a0
jne 0x45c9b0
mov eax, dword [0x1162e44]
mov dword [esp + 8], 1
mov dword [esp + 4], str.DisableNumlock
mov dword [esp + 0xc], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [esp], str.Base
mov dword [esp + 0x58], eax
call eax
sub esp, 0x10
test eax, eax
mov dword [esp + 0x60], ebx
lea ebp, [esp + 0x640]
lea esi, [esp + 0x80]
setne byte [0xde84a1]
xor edi, edi
lea esi, [esi]
mov dword [esp + 0xc], edi
mov ebx, dword [edi*4 + 0x502920]
mov dword [esp + 8], str.Colormap__d
mov dword [esp + 4], 0xc
mov dword [esp], ebp
mov dword [esp + 0x640], 0
mov dword [esp + 0x644], 0
mov dword [esp + 0x648], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x240], 0
mov dword [esp + 0x244], 0
call fcn.00458910
mov dword [esp + 0xc], ebx
mov dword [esp + 8], str._06lx
mov dword [esp + 4], 8
mov dword [esp], esi
call fcn.004588e0
mov eax, dword [0x1162e44]
mov dword [esp + 8], esi
mov dword [esp + 0x10], 8
mov dword [esp + 0x14], eax
lea eax, [esp + 0x240]
mov dword [esp + 0xc], eax
mov dword [esp + 4], ebp
mov dword [esp], str.Base
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
sub esp, 0x18
lea eax, [esp + 0x240]
mov dword [esp], eax
call fcn.00423970
mov dword [edi*4 + 0x502920], eax
mov dword [edi*4 + 0x502960], eax
add edi, 1
cmp edi, 0x10
jne 0x45ca50
mov eax, dword [0x1162e44]
mov dword [esp + 8], 1
mov dword [esp + 4], str.LighterDarkBlue
mov ebx, dword [esp + 0x60]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x58]
mov dword [esp], str.Base
call eax
sub esp, 0x10
test eax, eax
setne byte [0xd786cd]
jne 0x45da7a
mov eax, dword [0x502920]
mov edx, eax
mov edi, eax
and eax, 0xff00
shr edx, 0x10
shl edi, 0x10
movzx edx, dl
and edi, 0xff0000
or edi, edx
xor edx, edx
or edi, eax
or edi, 0x2000000
nop
mov ecx, dword [edx*4 + 0x502920]
mov dword [edx*4 + 0x1162e80], edi
mov eax, ecx
mov esi, ecx
and ecx, 0xff00
shr eax, 0x10
shl esi, 0x10
movzx eax, al
and esi, 0xff0000
or eax, esi
or eax, ecx
or eax, 0x2000000
mov dword [edx*4 + 0x5035a0], eax
mov dword [edx*4 + 0x1162f20], eax
add edx, 1
cmp edx, 0x20
jne 0x45cba0
mov edx, dword [0x5028e0]
mov ecx, edx
mov eax, edx
and edx, 0xff00
shl ecx, 0x10
shr eax, 0x10
and ecx, 0xff0000
movzx eax, al
or eax, ecx
mov ecx, dword [0x5028e4]
or eax, edx
mov esi, ecx
mov edx, ecx
and ecx, 0xff00
or eax, 0x2000000
shl esi, 0x10
shr edx, 0x10
mov dword [0x503620], eax
and esi, 0xff0000
movzx edx, dl
mov dword [0x1162fa0], eax
or edx, esi
or edx, ecx
or edx, 0x2000000
mov dword [0x1162f00], edx
mov edx, dword [0x5028e8]
mov ecx, edx
mov eax, edx
and edx, 0xff00
shl ecx, 0x10
shr eax, 0x10
and ecx, 0xff0000
movzx eax, al
or eax, ecx
mov ecx, dword [0x5028ec]
or eax, edx
mov esi, ecx
mov edx, ecx
and ecx, 0xff00
or eax, 0x2000000
shl esi, 0x10
shr edx, 0x10
mov dword [0x503624], eax
and esi, 0xff0000
movzx edx, dl
mov dword [0x1162fa4], eax
or edx, esi
or edx, ecx
or edx, 0x2000000
mov dword [0x1162f04], edx
mov edx, dword [0x5028f0]
mov ecx, edx
mov eax, edx
shl ecx, 0x10
shr eax, 0x10
and ecx, 0xff0000
movzx eax, al
or eax, ecx
mov ecx, dword [0x5028f4]
and edx, 0xff00
or eax, edx
mov esi, ecx
mov edx, ecx
and ecx, 0xff00
or eax, 0x2000000
shl esi, 0x10
shr edx, 0x10
mov dword [0x503628], eax
and esi, 0xff0000
movzx edx, dl
mov dword [0x1162fa8], eax
or edx, esi
or edx, ecx
or edx, 0x2000000
mov dword [0x1162f08], edx
mov edx, dword [0x5028f8]
mov ecx, edx
mov eax, edx
and edx, 0xff00
shl ecx, 0x10
shr eax, 0x10
and ecx, 0xff0000
movzx eax, al
or eax, ecx
mov ecx, dword [0x5028fc]
or eax, edx
mov esi, ecx
mov edx, ecx
and ecx, 0xff00
or eax, 0x2000000
shl esi, 0x10
shr edx, 0x10
mov dword [0x50362c], eax
and esi, 0xff0000
movzx edx, dl
mov dword [0x1162fac], eax
or edx, esi
or edx, ecx
or edx, 0x2000000
mov dword [0x1162f0c], edx
mov edx, dword [0x502900]
mov ecx, edx
mov eax, edx
and edx, 0xff00
shl ecx, 0x10
shr eax, 0x10
and ecx, 0xff0000
movzx eax, al
or eax, ecx
mov ecx, dword [0x502904]
or eax, edx
mov esi, ecx
mov edx, ecx
or eax, 0x2000000
shl esi, 0x10
mov dword [0x503630], eax
and esi, 0xff0000
shr edx, 0x10
and ecx, 0xff00
mov dword [0x1162fb0], eax
movzx edx, dl
or edx, esi
or edx, ecx
or edx, 0x2000000
mov dword [0x1162f10], edx
mov edx, dword [0x502908]
mov ecx, edx
mov eax, edx
and edx, 0xff00
shl ecx, 0x10
shr eax, 0x10
and ecx, 0xff0000
movzx eax, al
or eax, ecx
mov ecx, dword [0x50290c]
or eax, edx
mov esi, ecx
mov edx, ecx
and ecx, 0xff00
or eax, 0x2000000
shl esi, 0x10
shr edx, 0x10
mov dword [0x503634], eax
and esi, 0xff0000
movzx edx, dl
mov dword [0x1162fb4], eax
or edx, esi
or edx, ecx
or edx, 0x2000000
mov dword [0x1162f14], edx
mov edx, dword [0x502910]
mov ecx, edx
mov eax, edx
and edx, 0xff00
shr ecx, 0x10
shl eax, 0x10
movzx ecx, cl
and eax, 0xff0000
or eax, ecx
or eax, edx
or eax, 0x2000000
mov dword [0x503638], eax
mov ecx, dword [0x502914]
mov dword [0x1162fb8], eax
mov eax, dword [0x1162e44]
mov edx, ecx
mov dword [esp + 8], 0
shr edx, 0x10
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x58]
movzx esi, dl
mov edx, ecx
and ecx, 0xff00
mov dword [esp + 4], str.Graphics
shl edx, 0x10
mov dword [esp], str.Base
and edx, 0xff0000
or edx, esi
or edx, ecx
or edx, 0x2000000
mov dword [0x1162f18], edx
call eax
sub esp, 0x10
test eax, eax
mov eax, dword [0x1162e44]
setne byte [0xde84a0]
xor edi, edi
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0xff
mov dword [esp + 0xc], 0xde83a0
mov dword [esp + 8], str.9X15.BMP
mov dword [esp + 4], str.GraphicTiles
mov dword [esp], str.Base
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov esi, dword [sym.imp.msvcrt.dll_tolower]
sub esp, 0x18
nop
movsx eax, byte [edi + 0xde83a0]
add edi, 1
mov dword [esp], eax
call esi
mov byte [edi + 0xde839f], al
cmp edi, 0x100
jne 0x45cf00
mov eax, dword [0x1162e44]
mov dword [esp + 8], 1
mov dword [esp + 4], str.Sound
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x58]
mov dword [esp], str.Base
call eax
sub esp, 0x10
test eax, eax
setne al
mov byte [0x503541], al
mov byte [0x503540], al
je 0x45da6e
mov eax, dword [0x1162e44]
mov dword [esp + 8], 1
mov dword [esp + 4], str.HintSound
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x58]
mov dword [esp], str.Base
call eax
mov esi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
sub esp, 0x10
test eax, eax
setne byte [0x503488]
jne 0x45dbf0
mov eax, dword [0x1162e44]
mov edi, dword [esp + 0x58]
mov dword [esp + 8], 1
mov dword [esp + 4], str.CacheAudio
mov dword [esp + 0xc], eax
mov dword [esp], str.Base
call edi
sub esp, 0x10
test eax, eax
mov eax, dword [0x1162e44]
sete byte [0xdc83ca]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0xac44
mov dword [esp + 4], str.SampleRate
mov dword [esp], str.Base
call edi
mov dword [0x503514], eax
mov eax, dword [0x1162e44]
sub esp, 0x10
mov dword [esp + 8], 0x20
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.MaxChannels
mov dword [esp], str.Base
call edi
mov dword [0x503510], eax
mov eax, dword [0x1162e44]
sub esp, 0x10
mov dword [esp + 8], 0x400
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.AudioBuffer
mov dword [esp], str.Base
call edi
mov dword [0x50350c], eax
mov eax, dword [0x1162e44]
sub esp, 0x10
mov dword [esp + 8], 1
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.AudioMaster
mov dword [esp], str.Base
call edi
sub esp, 0x10
test eax, eax
mov eax, dword [0x1162e44]
setne byte [0x5034db]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0x7f
mov dword [esp + 0xc], 0xd67660
mov dword [esp + 8], str.sound
mov dword [esp + 4], str.SoundpackFolder
mov dword [esp], str.Base
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [0x1162e44]
sub esp, 0x18
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0x7f
mov dword [esp + 0xc], 0xd67260
mov dword [esp + 8], str.music
mov dword [esp + 4], str.MusicpackFolder
mov dword [esp], str.Base
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [0x1162e44]
sub esp, 0x18
mov dword [esp + 0xc], eax
mov dword [esp + 8], 1
mov dword [esp + 4], str.AudioMusic
mov dword [esp], str.Base
call edi
sub esp, 0x10
test eax, eax
mov eax, dword [0x1162e44]
setne byte [0x5034da]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 1
mov dword [esp + 4], str.AudioSound
mov dword [esp], str.Base
call edi
sub esp, 0x10
test eax, eax
mov eax, dword [0x1162e44]
setne byte [0x5034d9]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 1
mov dword [esp + 4], str.AudioWeather
mov dword [esp], str.Base
call edi
sub esp, 0x10
test eax, eax
mov eax, dword [0x1162e44]
setne byte [0x5034d8]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x46
mov dword [esp + 4], str.AudioVolumeMaster
mov dword [esp], str.Base
call edi
mov dword [0x5034d4], eax
mov eax, dword [0x1162e44]
sub esp, 0x10
mov dword [esp + 8], 0x46
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.AudioVolumeMusic
mov dword [esp], str.Base
call edi
mov dword [0x5034d0], eax
mov eax, dword [0x1162e44]
sub esp, 0x10
mov dword [esp + 8], 0x46
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.AudioVolumeSound
mov dword [esp], str.Base
call edi
mov dword [0x5034cc], eax
mov eax, dword [0x1162e44]
sub esp, 0x10
mov dword [esp + 8], 0x46
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.AudioVolumeWeather
mov dword [esp], str.Base
call edi
mov edx, str.Main_window
sub esp, 0x10
mov dword [0x5034c8], eax
mov eax, 0x1162fe0
call fcn.004589a0
mov edx, str.Mirror_window
mov eax, 0x11630c0
call fcn.004589a0
mov edx, str.Recall_window
mov eax, 0x11631a0
call fcn.004589a0
mov edx, str.Choice_window
mov eax, 0x1163280
call fcn.004589a0
mov edx, str.Term_4_window
mov eax, 0x1163360
call fcn.004589a0
mov edx, str.Term_5_window
mov eax, 0x1163440
call fcn.004589a0
mov edx, str.Term_6_window
mov eax, 0x1163520
call fcn.004589a0
mov edx, str.Term_7_window
mov eax, 0x1163600
call fcn.004589a0
mov edx, str.Term_8_window
mov eax, 0x11636e0
call fcn.004589a0
mov edx, str.Term_9_window
mov eax, 0x11637c0
call fcn.004589a0
mov eax, dword [0x1162e44]
mov dword [esp + 8], 1
mov dword [esp + 4], str.HintBigmap
mov dword [esp + 0xc], eax
mov dword [esp], str.Base
call edi
sub esp, 0x10
test eax, eax
setne byte [0x5029a9]
je 0x45da62
mov eax, dword [0x1162e44]
mov dword [esp + 8], 0x51b08a
mov dword [esp + 4], str.HintBigmap
mov dword [esp + 0xc], eax
mov dword [esp], str.Base
call esi
mov eax, dword [0x1162e44]
sub esp, 0x10
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0x4f
mov dword [esp + 0xc], 0x1162de0
mov dword [esp + 8], 0x51b0d1
mov dword [esp + 4], str.meta
mov dword [esp], str.Online
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [0x1162e44]
sub esp, 0x18
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0x46
mov dword [esp + 0xc], 0x114f440
mov dword [esp + 8], 0x51b0d1
mov dword [esp + 4], str.nick
mov dword [esp], str.Online
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [0x1162e44]
sub esp, 0x18
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0x13
mov dword [esp + 0xc], 0x114f3e0
mov dword [esp + 8], 0x51b0d1
mov dword [esp + 4], str.pass
mov dword [esp], str.Online
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [0x1162e44]
sub esp, 0x18
mov esi, dword [esp + 0x58]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x47ac
mov dword [esp + 4], str.port
mov dword [esp], str.Online
call esi
mov dword [0x50353c], eax
mov eax, dword [0x1162e44]
sub esp, 0x10
mov dword [esp + 8], 0x64
mov dword [esp + 0xc], eax
mov dword [esp + 4], 0x51b0ed
mov dword [esp], str.Online
call esi
mov dword [0x114ef20], 0x59414c50
sub esp, 0x10
mov dword [0x503534], eax
mov dword [0x114ef23], 0x524559
mov esi, dword [esp + 0x5c]
mov dword [0x116306c], 0x10cf0000
mov dword [0x1163070], 0
mov dword [0x116314c], 0xcc0000
mov dword [0x1163150], 0x80
mov dword [0x116322c], 0xcc0000
mov dword [0x1163230], 0x80
mov dword [0x116330c], 0xcc0000
mov dword [0x1163310], 0x80
mov dword [0x11633ec], 0xcc0000
mov dword [0x11633f0], 0x80
mov dword [0x11634cc], 0xcc0000
mov dword [0x11634d0], 0x80
mov dword [0x11635ac], 0xcc0000
mov dword [0x11635b0], 0x80
mov dword [0x116368c], 0xcc0000
mov dword [0x1163690], 0x80
mov dword [0x116376c], 0xcc0000
mov dword [0x1163770], 0x80
mov dword [0x116384c], 0xcc0000
mov dword [0x1163850], 0x80
jmp 0x45d4fe
add esi, 0xe0
cmp esi, 0x11638a0
je 0x45d529
mov edx, dword [esi + 0xcc]
mov eax, esi
call fcn.00459260
test eax, eax
je 0x45d4f0
mov eax, esi
mov edx, str.9X15.FON
add esi, 0xe0
call fcn.00459260
cmp esi, 0x11638a0
jne 0x45d4fe
cmp byte [0xde84a0], 0
jne 0x45dc42
mov eax, dword [0x1162fd0]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x24], 0
mov edi, dword [sym.imp.USER32.dll_CreateWindowExA]
mov dword [esp + 0x28], eax
mov eax, dword [0x116308c]
mov dword [0x1162fd4], 0x1162fe0
mov dword [esp + 0x1c], eax
mov eax, dword [0x1163088]
mov dword [esp + 0x20], 0
mov dword [esp + 0x18], eax
mov eax, dword [0x1163084]
mov dword [esp + 4], str.TOMENET
mov dword [esp + 0x14], eax
mov eax, dword [0x1163080]
mov dword [esp + 0x10], eax
mov eax, dword [0x116306c]
mov dword [esp + 0xc], eax
mov eax, dword [0x1163054]
mov dword [esp + 8], eax
mov eax, dword [0x1163070]
mov dword [esp], eax
call edi
mov dword [0x1163058], eax
mov eax, dword [0x1162fd4]
sub esp, 0x30
mov esi, dword [eax + 0x78]
test esi, esi
je 0x45e2ae
mov eax, dword [0x1163074]
mov dword [esp], 0x1162fe0
mov dword [0x1162fd4], 0
mov dword [esp + 0xc], eax
mov eax, dword [0x1163078]
mov dword [esp + 8], eax
mov eax, dword [0x116307c]
mov dword [esp + 4], eax
call fcn.0040a870
mov ecx, 0x101
cmp byte [0xde84a0], 0
mov byte [0x1162fec], 1
mov word [0x1162ff2], cx
mov dword [0x1162ff4], 0x20
mov dword [0x116303c], 0x457ab0
mov dword [0x1163040], 0x459e10
mov dword [0x1163048], 0x459930
mov dword [0x1163044], 0x459850
mov dword [0x1163050], 0x459c10
mov dword [0x1162fe4], 0x1162fe0
jne 0x45dbd0
mov dword [0xdfde80], 0x1162fe0
mov esi, 1
jmp 0x45d707
mov eax, dword [ebx + 0x94]
mov dword [0x1162fd4], 0
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 0x98]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x9c]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.0040a870
cmp byte [0xde84a0], 0
mov byte [ebx + 0xc], 1
mov byte [ebx + 0x12], 1
mov byte [ebx + 0x13], 1
mov dword [ebx + 0x14], 0x20
mov dword [ebx + 0x5c], 0x457ab0
mov dword [ebx + 0x60], 0x459e10
mov dword [ebx + 0x68], 0x459930
mov dword [ebx + 0x64], 0x459850
mov dword [ebx + 0x70], 0x459c10
mov dword [ebx + 4], ebx
jne 0x45d7d0
mov dword [esi*4 + 0xdfde80], ebx
add esi, 1
add ebx, 0xe0
cmp esi, 0xa
je 0x45d803
mov eax, dword [0x1162fd0]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], 0
mov eax, dword [ebx + 0xac]
mov dword [0x1162fd4], ebx
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 0xa8]
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 0xa4]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0xa0]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x8c]
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 0x74]
mov dword [esp + 4], str.AngList
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x90]
mov dword [esp], eax
call edi
mov dword [ebx + 0x78], eax
mov eax, dword [0x1162fd4]
sub esp, 0x30
mov edx, dword [eax + 0x78]
test edx, edx
je 0x45d7f0
cmp byte [eax + 0xc8], 0
je 0x45d678
mov byte [eax + 0xc9], 1
mov dword [esp + 4], 5
mov eax, dword [eax + 0x78]
mov dword [esp], eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [0x1162fd4]
sub esp, 8
mov byte [eax + 0xc9], 0
jmp 0x45d678
mov eax, ebx
call fcn.00458c10
mov dword [ebx + 0x6c], 0x45a1d0
mov byte [ebx + 0xe], 1
jmp 0x45d6ee
mov dword [esp], str.Failed_to_create_sub_window
call fcn.00401670
mov eax, dword [0x1162fd4]
jmp 0x45d78c
mov eax, dword [0x1163058]
mov dword [esp], eax
call dword [sym.imp.USER32.dll_SetActiveWindow]
mov eax, dword [0x1163058]
sub esp, 4
mov dword [esp + 0x18], 3
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.USER32.dll_SetWindowPos]
sub esp, 0x1c
cmp byte [0x1162e49], 0
je 0x45d863
call fcn.00458780
mov eax, dword [0x5035cc]
mov dword [esp], eax
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov ebx, dword [sym.imp.USER32.dll_PeekMessageA]
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
mov dword [0x1162fcc], eax
mov esi, dword [sym.imp.USER32.dll_DispatchMessageA]
sub esp, 4
jmp 0x45d8a0
mov dword [esp], ebp
call edi
sub esp, 4
mov dword [esp], ebp
call esi
sub esp, 4
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], ebp
call ebx
sub esp, 0x14
test eax, eax
jne 0x45d890
mov eax, dword [esp + 0xa68]
mov dword [0x54b044], 0x458700
mov dword [0x54b040], 0x45b890
mov dword [esp], eax
mov dword [0x54b03c], 0x45b890
mov dword [0xdfda20], 0x51b208
mov byte [0x1162e4a], 1
mov byte [0xd616b1], 0
call sub.msvcrt.dll_strlen
mov ebx, eax
test eax, eax
je 0x45d999
mov byte [esp + 0x5c], 0
mov esi, dword [esp + 0xa68]
xor ebx, ebx
xor edx, edx
mov dword [esp + 0x58], eax
jmp 0x45d94c
cmp al, 0x20
je 0x45d943
cmp al, 0x22
jne 0x45d970
xor edx, 1
add ebx, 1
cmp dword [esp + 0x58], ebx
jle 0x45d994
lea edi, [esi + ebx]
mov ecx, ebx
movzx eax, byte [edi]
cmp al, 0x2d
jne 0x45d938
add ebx, 1
movzx eax, byte [esi + ebx]
sub eax, 0x43
cmp al, 0x35
ja case.0x45d969.1
movzx eax, al
jmp dword [eax*4 + 0x51b544]
movzx edx, dl
mov ecx, 0x50
mov eax, edi
mov dword [esp], edx
mov edx, 0x114f380
call fcn.004585a0
add ebx, eax
xor edx, edx
add ebx, 1
cmp dword [esp + 0x58], ebx
jg 0x45d94c
movzx ebx, byte [esp + 0x5c]
cmp byte [0xde84a1], 0
jne 0x45dacc
cmp byte [0xde8384], 0
je 0x45d9b6
mov byte [0x503541], 0
mov dword [esp], 0
call dword [sym.imp.msvcrt.dll_time]
mov byte [0x500010], 0
mov dword [esp], eax
call fcn.00402600
cmp byte [0x114f380], 0
mov dword [esp + 4], ebx
jne 0x45da54
mov dword [esp], 0
call fcn.00454320
mov ebx, dword [sym.imp.USER32.dll_GetMessageA]
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
mov esi, dword [sym.imp.USER32.dll_DispatchMessageA]
jmp 0x45da10
mov dword [esp], ebp
call edi
sub esp, 4
mov dword [esp], ebp
call esi
sub esp, 4
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], ebp
call ebx
sub esp, 0x10
test eax, eax
jne 0x45da00
call fcn.0046e4f0
mov dword [esp], 0
call fcn.00401670
add esp, 0xa4c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
mov dword [esp], 0x114f380
call fcn.00454320
jmp 0x45d9eb
mov byte [0x5029a8], 0
jmp 0x45d2e5
mov byte [0xde8384], 1
jmp 0x45cf5b
cmp dword [0x502938], 0xff
jne 0x45cb75
mov dword [0x502938], 0x33ff
mov dword [0x502978], 0x33ff
jmp 0x45cb75
mov byte [0xd787d0], 1
movzx edx, dl
lea eax, [esi + ecx + 2]
mov ecx, 0x50
mov dword [esp], edx
mov edx, 0x114ee60
call fcn.004585a0
xor edx, edx
add ebx, eax
jmp 0x45d943
mov dword [esp], 0x90
call dword [sym.imp.USER32.dll_GetKeyState]
sub esp, 4
test ax, ax
je 0x45d9a6
mov dword [esp + 0x640], 1
mov esi, dword [sym.imp.USER32.dll_SendInput]
mov dword [esp + 0x644], 0x90
mov dword [esp + 0x648], 0
mov dword [esp + 0x64c], 0
mov dword [esp + 0x650], 0
mov dword [esp + 8], 0x1c
mov dword [esp + 4], ebp
mov dword [esp], 1
call esi
sub esp, 0xc
test eax, eax
je 0x45dfcb
mov dword [esp + 0x640], 1
mov dword [esp + 0x644], 0x90
mov dword [esp + 0x648], 2
mov dword [esp + 0x64c], 0
mov dword [esp + 0x650], 0
mov dword [esp + 8], 0x1c
mov dword [esp + 4], ebp
mov dword [esp], 1
call esi
sub esp, 0xc
test eax, eax
jne 0x45d9a6
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp], 0x32
mov edi, eax
call sub.msvcrt.dll_malloc
mov dword [esp + 8], edi
mov dword [esp + 4], str.SendInput_error__up_:__lu
mov esi, eax
mov dword [esp], eax
call fcn.00458540
mov dword [esp], esi
call fcn.00401610
jmp 0x45d9a6
mov eax, 0x1162fe0
call fcn.00458c10
mov byte [0x1162fee], 1
mov dword [0x116304c], 0x45a1d0
jmp 0x45d65e
mov eax, dword [0x1162e44]
mov dword [esp + 8], 0x51b08a
mov dword [esp + 4], str.HintSound
mov dword [esp + 0xc], eax
mov dword [esp], str.Base
call esi
sub esp, 0x10
jmp 0x45cf99
mov eax, dword [esp + 0x78]
mov edx, 1
test eax, eax
cmove eax, edx
mov edx, dword [esp + 0x7c]
cmp eax, edx
cmova eax, edx
mov dword [esp], eax
call dword [sym.imp.WINMM.DLL_timeBeginPeriod]
sub esp, 4
jmp 0x45c875
mov dword [esp], 0
mov eax, dword [esp + 0x64]
call eax
sub esp, 4
mov esi, eax
mov dword [esp], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 4], 0xc
call eax
sub esp, 8
cmp eax, 0x17
jle 0x45e2bf
mov dword [esp + 4], esi
mov eax, dword [esp + 0x6c]
mov dword [esp], 0
call eax
sub esp, 8
mov dword [esp + 0xc], 0x1162e50
mov dword [esp + 8], 0x1162e54
mov dword [esp + 4], str._dx_d
mov dword [esp], 0xde83a0
call fcn.00458970
cmp eax, 2
jne 0x45df50
mov eax, dword [0x1162e54]
mov edx, dword [0x1162e50]
test eax, eax
jle 0x45df75
test edx, edx
jle 0x45df75
mov esi, dword [0x1162fbc]
mov dword [esp], ebp
mov dword [esp + 4], esi
call sub.msvcrt.dll_strcpy
mov dword [esp], ebp
call sub.msvcrt.dll_strlen
test eax, eax
je 0x45dcfd
cmp byte [esp + eax + 0x63f], 0x5c
jne 0x45dcfd
mov byte [esp + eax + 0x63f], 0
mov eax, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov dword [esp], ebp
mov dword [esp + 0x58], eax
call eax
sub esp, 4
cmp eax, 0xffffffff
je 0x45df9a
test al, 0x10
je 0x45df9a
mov eax, dword [0x1162fbc]
lea esi, [esp + 0x240]
mov edi, ebp
mov dword [esp + 0xc], 0xde83a0
mov dword [esp + 4], 0x400
mov dword [esp + 8], eax
lea eax, [esp + 0x240]
mov dword [esp], eax
call fcn.00404e10
lea eax, [esp + 0x240]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
lea ecx, [esp + 0x240]
lea edx, [ecx + eax]
mov dword [edx], 0x706d622e
mov byte [edx + 4], 0
mov ecx, dword [esp + eax + 0x241]
mov dword [esp + eax + 0x641], ecx
lea ecx, [eax + 4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov dword [esp], ebp
mov eax, dword [esp + 0x58]
call eax
sub esp, 4
cmp eax, 0xffffffff
je 0x45dfaf
test al, 0x10
jne 0x45dfaf
lea eax, [esp + 0x240]
mov dword [esp + 0x14], 0x10
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], 0
call dword [sym.imp.USER32.dll_LoadImageA]
sub esp, 0x18
mov dword [0x1162e60], eax
mov dword [esp + 8], ebp
mov dword [esp + 4], 0x18
mov dword [esp], eax
call dword [sym.imp.GDI32.dll_GetObjectA]
sub esp, 0xc
mov eax, dword [esp + 0x644]
cdq
idiv dword [0x1162e54]
mov dword [0x1162e4c], eax
test eax, eax
jle 0x45e2d0
mov eax, dword [0x1162e60]
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.0045a560
mov dword [esp + 4], 0xff00ff
mov dword [0x1162e5c], eax
mov eax, dword [0x1162e60]
mov dword [esp], eax
call fcn.0045a560
mov dword [0x1162e58], eax
jmp 0x45d536
mov dword [esp + 0x98], ebx
mov dword [esp], ebx
mov dword [esp + 0x88], 0x40
mov dword [esp + 0x8c], 0x45ab00
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 4
mov dword [esp + 4], str.TOMENET
call dword [sym.imp.USER32.dll_LoadIconA]
sub esp, 8
mov dword [0x1162fc8], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 4], 0x7f00
mov dword [esp], 0
call dword [sym.imp.USER32.dll_LoadCursorA]
sub esp, 8
mov dword [esp + 0xa0], eax
mov dword [esp], 4
call dword [sym.imp.GDI32.dll_GetStockObject]
mov ebx, dword [sym.imp.USER32.dll_RegisterClassA]
sub esp, 4
lea esi, [esp + 0x88]
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], str.TOMENET
mov dword [esp + 0xac], str.TOMENET
mov dword [esp], esi
call ebx
sub esp, 4
test ax, ax
je 0x45e307
mov dword [esp + 0x8c], 0x457db0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], str.AngList
mov dword [esp], esi
call ebx
sub esp, 4
test ax, ax
jne 0x45c817
mov dword [esp], 2
call sub.msvcrt.dll_exit
lea esi, [esi]
mov dword [esp + 4], 0xde83a0
mov dword [esp], str.Couldnt_extract_tile_dimensions_from:__s_n
call fcn.00458570
mov dword [esp], str.Graphics_load_error
call fcn.00401670
jmp 0x45dcb2
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], str.Invalid_tiles_dimensions:__dx_d_n
call fcn.00458570
mov dword [esp], str.Graphics_load_error
call fcn.00401670
jmp 0x45dccd
mov dword [esp + 4], esi
mov dword [esp], str.Cannot_find_required_directory:_n_s
call fcn.004025a0
jmp 0x45dd1f
lea eax, [esp + 0x240]
mov dword [esp], str.Cannot_find_required_file:_n_s
mov dword [esp + 4], eax
call fcn.004025a0
jmp 0x45dda6
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp], 0x32
mov dword [esp + 0x58], eax
call sub.msvcrt.dll_malloc
mov edx, dword [esp + 0x58]
mov dword [esp + 4], str.SendInput_error__down_:__lu
mov dword [esp], eax
mov edi, eax
mov dword [esp + 8], edx
call fcn.00458540
mov dword [esp], edi
call fcn.00401610
jmp 0x45db42
mov byte [0xde84a1], 0
xor edx, edx
jmp 0x45d98b
movzx edx, dl
lea eax, [esi + ecx + 2]
mov ecx, 0x50
mov dword [esp], edx
mov edx, 0x114f440
call fcn.004585a0
mov edx, 0x114f3e0
mov ecx, 0x50
mov dword [esp], 0
add ebx, eax
lea eax, [esi + ebx + 1]
call fcn.004585a0
mov byte [esp + 0x5c], 1
xor edx, edx
add ebx, eax
jmp 0x45d943
mov byte [0xde8381], 1
xor edx, edx
jmp 0x45d98b
lea edi, [esi + ecx + 2]
movsx edx, byte [edi]
cmp dl, 0x20
jne 0x45e2f1
xor eax, eax
lea esi, [esi]
add eax, 1
movsx edx, byte [edi + eax]
cmp dl, 0x20
je 0x45e080
lea ecx, [edi + eax]
mov dword [esp + 0x60], ecx
xor ecx, ecx
test dl, 0xdf
je 0x45e0c6
mov dword [esp + 0x60], ebx
jmp 0x45e0b3
lea ecx, [ecx + ecx*4]
add eax, 1
lea ecx, [edx + ecx*2 - 0x30]
movsx edx, byte [edi + eax]
test dl, 0xdf
je 0x45e0bb
lea ebx, [edx - 0x30]
cmp bl, 9
jbe 0x45e0a0
lea edx, [edi + eax]
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x60], edx
mov dword [0x50353c], ecx
mov ecx, dword [esp + 0x60]
test byte [ecx], 0xdf
je 0x45d987
lea esi, [esi]
add eax, 1
test byte [edi + eax], 0xdf
jne 0x45e0e0
add ebx, eax
jmp case.0x45d969.1
mov byte [0xde8384], 1
xor edx, edx
jmp 0x45d98b
mov byte [0xde8382], 1
xor edx, edx
jmp 0x45d98b
mov byte [0xde8380], 1
xor edx, edx
jmp 0x45d98b
mov byte [0xde8383], 1
xor edx, edx
jmp 0x45d98b
movzx edx, dl
lea eax, [esi + ecx + 2]
mov ecx, 0x400
mov dword [esp], edx
mov edx, 0x114ef80
call fcn.004585a0
xor edx, edx
add ebx, eax
jmp 0x45d943
mov byte [0xde8380], 2
xor edx, edx
jmp 0x45d98b
mov eax, dword [0x54b3a4]
mov dword [esp + 0x2c], str.___k______________dont_disable_numlock_on_startup
mov dword [esp + 0x28], str.___P_path_________set_the_lib_directory_Path
mov dword [esp + 8], eax
mov eax, dword [0x54b3a8]
mov dword [esp + 0x24], str.___p_num__________change_game_Port_number
mov dword [esp + 0x20], str.___R_name________char_name__auto_reincarnate
mov dword [esp + 0x1c], str.___N_name________character_name
mov dword [esp + 0x18], str.___l_name___pwd________Login_crecedentials
mov dword [esp + 0x14], str._______________________________p18348_europe.tomenet.eu
mov dword [esp + 0x10], str.Example:_tomenet__lMorgoth_MorgyPass
mov dword [esp + 0xc], str.Usage:____tomenet__options___server_
mov dword [esp + 4], eax
mov dword [esp], str._s_nRunning_on__s._n_n_s_n_s_n_s_n_n_s_n_s_n_s_n_s_n_s_n_s_n_s_n_s_n_s_n_s_n_s_n_s
mov dword [esp + 0x44], str.___x______________dont_save_chat_message_log_on_exit
mov dword [esp + 0x40], str.___V______________save_chatmessage_log_on_exit
mov dword [esp + 0x3c], str.___v______________save_chat_log_on_exit
mov dword [esp + 0x38], str.___w_____________disable_client_side_weather_effects
mov dword [esp + 0x34], str.___q______________disable_all_audio__quiet_mode_
mov dword [esp + 0x30], str.___m_____________skip_message_of_the_day_window
call fcn.00402550
mov dword [esp], eax
call fcn.00401610
mov dword [esp], 0
call fcn.00401670
xor edx, edx
jmp 0x45d98b
mov dword [0x503538], 1
xor edx, edx
jmp 0x45d98b
lea edi, [esi + ecx + 2]
movsx edx, byte [edi]
cmp dl, 0x20
jne 0x45e2fc
xor eax, eax
lea esi, [esi]
add eax, 1
movsx edx, byte [edi + eax]
cmp dl, 0x20
je 0x45e230
lea ecx, [edi + eax]
mov dword [esp + 0x60], ecx
xor ecx, ecx
test dl, 0xdf
je 0x45e276
mov dword [esp + 0x60], ebx
jmp 0x45e263
lea ecx, [ecx + ecx*4]
add eax, 1
lea ecx, [edx + ecx*2 - 0x30]
movsx edx, byte [edi + eax]
test dl, 0xdf
je 0x45e26b
lea ebx, [edx - 0x30]
cmp bl, 9
jbe 0x45e250
lea edx, [edi + eax]
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x60], edx
mov dword [0x503534], ecx
mov ecx, dword [esp + 0x60]
test byte [ecx], 0xdf
je 0x45d987
lea esi, [esi]
add eax, 1
test byte [edi + eax], 0xdf
jne 0x45e290
add ebx, eax
jmp case.0x45d969.1
mov byte [0xde8380], 3
xor edx, edx
jmp 0x45d98b
mov dword [esp], str.Failed_to_create_TomeNET_window
call fcn.00401670
jmp 0x45d5c7
mov dword [esp], str.Using_graphic_tiles_needs_a_device_content_with_at_least_24_bits_per_pixel.
call fcn.00401670
jmp 0x45dc71
mov dword [esp + 4], eax
mov dword [esp], str.Invalid_image_tiles_per_row_count:__d_n
call fcn.00458570
mov dword [esp], str.Graphics_load_error
call fcn.00401670
jmp 0x45de19
mov dword [esp + 0x60], edi
xor eax, eax
jmp 0x45e093
mov dword [esp + 0x60], edi
xor eax, eax
jmp 0x45e243
mov dword [esp], 1
call sub.msvcrt.dll_exit
lea esi, [esi]
lea esi, [esi]