Function at 0x44c8e0
Capabilities:
Hide graphical window
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xd1c
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
test eax, eax
je 0x44d090
mov dword [0x4c4730], esi
mov ecx, 0x44bfa0
mov edx, 0x44bfa0
mov dword [0x4c6380], ecx
mov ebx, 0x44bf60
mov dword [0x4c6384], ebx
mov dword [0x4c637c], edx
call fcn.0044c5f0
movzx eax, byte [0x4b1320]
xor ecx, ecx
jmp 0x44c943
movzx eax, al
inc ecx
mov byte [eax + 0x4c4fa0], 1
movzx eax, byte [ecx + 0x4b1320]
test al, al
jne 0x44c931
mov dword [esp], 0
call sub.USER32.dll_GetDC
sub esp, 4
mov ebx, eax
mov eax, 0xc
mov dword [esp + 4], eax
mov dword [esp], ebx
call sub.GDI32.dll_GetDeviceCaps
sub esp, 8
cmp eax, 4
mov eax, 0x26
sete byte [0x4c4078]
mov dword [esp + 4], eax
mov dword [esp], ebx
call sub.GDI32.dll_GetDeviceCaps
shr eax, 8
sub esp, 8
and al, 1
mov byte [0x4c4079], al
mov dword [esp + 4], ebx
mov dword [esp], 0
call sub.USER32.dll_ReleaseDC
sub esp, 8
xor ecx, ecx
movzx eax, byte [ecx*4 + 0x4a4a02]
movzx edx, byte [ecx*4 + 0x4a4a01]
shl eax, 8
or edx, eax
movzx eax, byte [ecx*4 + 0x4a4a03]
shl eax, 0x10
or edx, eax
movzx eax, byte [ecx + 0x4a3580]
or edx, 0x2000000
mov dword [ecx*4 + 0x4c4b90], edx
mov byte [ecx*4 + 0x4a4a00], al
inc ecx
cmp ecx, 0xff
jle 0x44c9a9
mov dword [esp], 0x4c40c0
mov eax, 0xcc
mov esi, 2
mov dword [esp + 8], eax
xor eax, eax
mov edi, 2
mov dword [esp + 4], eax
call sub.msvcrt.dll_memset
mov dword [0x4c4154], esi
mov eax, 0x4a4e00
mov ebx, 2
mov dword [0x4c4124], eax
mov eax, 0x400
mov ecx, 2
mov dword [0x4c4134], eax
mov edx, 0x1e
mov eax, 0x14
mov byte [0x4c4138], 0x18
mov esi, 1
mov byte [0x4c4139], 0x50
mov byte [0x4c415e], 1
mov dword [0x4c414c], edi
mov dword [0x4c4150], ebx
mov dword [0x4c4158], ecx
mov dword [0x4c413c], edx
mov dword [0x4c4140], eax
imul eax, esi, 0xcc
mov edi, 1
lea ebx, [eax + 0x4c40c0]
mov dword [esp], ebx
mov eax, 0xcc
mov dword [esp + 8], eax
xor eax, eax
mov dword [esp + 4], eax
call sub.msvcrt.dll_memset
mov dword [ebx + 0x74], 0x10
mov eax, esi
shl eax, 4
mov byte [ebx + 0x78], 0x18
add eax, 0x4a4e00
mov dword [ebx + 0x64], eax
mov eax, 1
mov dword [ebx + 0x8c], eax
mov eax, 1
mov dword [ebx + 0x94], eax
mov eax, 1
mov dword [ebx + 0x90], eax
mov eax, 7
sub eax, esi
mov byte [ebx + 0x79], 0x50
mov edx, eax
inc esi
mov byte [ebx + 0x9e], 0
shl edx, 4
sub edx, eax
mov dword [ebx + 0x98], edi
lea eax, [eax + eax*4]
add edx, edx
mov dword [ebx + 0x7c], edx
shl eax, 2
cmp esi, 7
mov dword [ebx + 0x80], eax
jle 0x44ca79
mov dword [esp], str.Angband
mov eax, dword [0x4c4080]
xor esi, esi
mov dword [esp + 8], esi
mov ebx, str.Graphics
mov esi, str.force_roguelike
mov dword [esp + 4], ebx
mov dword [esp + 0xc], eax
call sub.KERNEL32.dll_GetPrivateProfileIntA
mov byte [0x873400], al
mov eax, dword [0x4c4080]
xor ecx, ecx
mov edx, str.Bigtile
sub esp, 0x10
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov dword [esp], str.Angband
call sub.KERNEL32.dll_GetPrivateProfileIntA
mov byte [0x4c5a92], al
mov eax, dword [0x4c4080]
sub esp, 0x10
mov dword [esp], str.Angband
mov dword [esp + 0xc], eax
xor eax, eax
mov dword [esp + 8], eax
mov eax, 0x4b1442
mov dword [esp + 4], eax
call sub.KERNEL32.dll_GetPrivateProfileIntA
sub esp, 0x10
test eax, eax
mov eax, dword [0x4c4080]
setne byte [0x8734b0]
mov dword [esp], str.Angband
mov dword [esp + 0xc], eax
xor eax, eax
mov dword [esp + 8], eax
mov eax, str.Fiddle
mov dword [esp + 4], eax
call sub.KERNEL32.dll_GetPrivateProfileIntA
sub esp, 0x10
test eax, eax
mov eax, dword [0x4c4080]
setne byte [0x873140]
mov dword [esp], str.Angband
mov dword [esp + 0xc], eax
xor eax, eax
mov dword [esp + 8], eax
mov eax, str.Wizard
mov dword [esp + 4], eax
call sub.KERNEL32.dll_GetPrivateProfileIntA
sub esp, 0x10
test eax, eax
mov eax, dword [0x4c4080]
setne byte [0x4f2700]
xor edi, edi
mov dword [esp + 8], edi
mov dword [esp + 4], esi
lea esi, [ebp - 0x848]
mov dword [esp + 0xc], eax
mov dword [esp], str.Angband
call sub.KERNEL32.dll_GetPrivateProfileIntA
sub esp, 0x10
test eax, eax
mov eax, dword [0x4c4080]
setne byte [0x873410]
mov ecx, str.force_original
xor ebx, ebx
mov dword [esp + 4], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 8], ebx
mov dword [esp], str.Angband
call sub.KERNEL32.dll_GetPrivateProfileIntA
sub esp, 0x10
test eax, eax
mov eax, dword [0x4c4080]
setne byte [0x4f3c10]
xor edx, edx
mov dword [esp], str.Angband
xor edi, edi
mov dword [esp + 0xc], eax
mov eax, str.Gamma
mov dword [esp + 8], edx
mov dword [esp + 4], eax
call sub.KERNEL32.dll_GetPrivateProfileIntA
mov dword [0x4c4f90], eax
sub esp, 0x10
mov dword [esp + 8], edi
imul ebx, edi, 0xcc
mov eax, str.Term__d
mov dword [esp + 4], eax
mov dword [esp], esi
call sub.msvcrt.dll_sprintf
mov eax, dword [0x4c4080]
add ebx, 0x4c40c0
mov dword [esp + 0xc], eax
movsx eax, byte [ebx + 0x9e]
mov dword [esp], esi
mov dword [esp + 8], eax
mov eax, str.Visible
mov dword [esp + 4], eax
call sub.KERNEL32.dll_GetPrivateProfileIntA
sub esp, 0x10
test eax, eax
setne byte [ebx + 0x9e]
mov eax, dword [0x4c4080]
mov dword [esp + 0xc], eax
movsx eax, byte [ebx + 0x9f]
mov dword [esp], esi
mov dword [esp + 8], eax
mov eax, str.Maximized
mov dword [esp + 4], eax
call sub.KERNEL32.dll_GetPrivateProfileIntA
sub esp, 0x10
test eax, eax
mov ecx, 0x4b1a9e
setne byte [ebx + 0x9f]
mov eax, dword [0x4c4080]
mov dword [esp + 4], ecx
mov dword [esp], esi
mov dword [esp + 0x14], eax
mov eax, 0x7f
mov dword [esp + 0x10], eax
lea eax, [ebp - 0xc48]
mov dword [esp + 0xc], eax
mov eax, str.8X13.FON
mov dword [esp + 8], eax
call sub.KERNEL32.dll_GetPrivateProfileStringA
mov eax, dword [0x4c4080]
sub esp, 0x18
mov edx, 1
mov dword [esp + 8], edx
mov dword [esp], esi
mov dword [esp + 0xc], eax
mov eax, str.Bizarre
mov dword [esp + 4], eax
call sub.KERNEL32.dll_GetPrivateProfileIntA
sub esp, 0x10
test eax, eax
lea eax, [ebp - 0xcec]
setne byte [ebx + 0xa0]
lea edx, [ebp - 0xcf0]
inc edi
mov dword [esp], eax
lea eax, [ebp - 0xc48]
call fcn.00448790
mov dword [esp], eax
call fcn.00498390
mov dword [ebx + 0xa4], eax
mov eax, dword [0x4c4080]
mov dword [esp], esi
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0xcf0]
mov dword [esp + 8], eax
mov eax, str.TileWid
mov dword [esp + 4], eax
call sub.KERNEL32.dll_GetPrivateProfileIntA
mov dword [ebx + 0xb8], eax
mov eax, dword [0x4c4080]
sub esp, 0x10
mov dword [esp], esi
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0xcec]
mov dword [esp + 8], eax
mov eax, str.TileHgt
mov dword [esp + 4], eax
call sub.KERNEL32.dll_GetPrivateProfileIntA
mov dword [ebx + 0xbc], eax
mov eax, dword [0x4c4080]
sub esp, 0x10
mov dword [esp + 0xc], eax
movzx eax, byte [ebx + 0x79]
mov dword [esp], esi
mov dword [esp + 8], eax
mov eax, str.NumCols
mov dword [esp + 4], eax
call sub.KERNEL32.dll_GetPrivateProfileIntA
mov byte [ebx + 0x79], al
sub esp, 0x10
mov eax, dword [0x4c4080]
mov dword [esp + 0xc], eax
movzx eax, byte [ebx + 0x78]
mov dword [esp], esi
mov dword [esp + 8], eax
mov eax, str.NumRows
mov dword [esp + 4], eax
call sub.KERNEL32.dll_GetPrivateProfileIntA
mov byte [ebx + 0x78], al
sub esp, 0x10
mov eax, dword [0x4c4080]
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 0x7c]
mov dword [esp], esi
mov dword [esp + 8], eax
mov eax, str.PositionX
mov dword [esp + 4], eax
call sub.KERNEL32.dll_GetPrivateProfileIntA
mov dword [ebx + 0x7c], eax
mov eax, dword [0x4c4080]
sub esp, 0x10
mov ecx, str.PositionY
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 0x80]
mov dword [esp + 4], ecx
mov dword [esp], esi
mov dword [esp + 8], eax
call sub.KERNEL32.dll_GetPrivateProfileIntA
mov dword [ebx + 0x80], eax
sub esp, 0x10
cmp edi, 7
jle 0x44cc90
cmp byte [0x4c4139], 0x4f
ja 0x44cebb
mov byte [0x4c4139], 0x50
cmp byte [0x4c4138], 0x17
ja 0x44cecb
mov byte [0x4c4138], 0x18
cmp byte [0x4c415f], 1
mov byte [0x4c415e], 1
mov esi, 1
sbb eax, eax
and eax, 0xff000000
xor edx, edx
add eax, 0x11cf0000
mov dword [0x4c412c], eax
mov dword [0x4c4130], edx
imul eax, esi, 0xcc
inc esi
cmp esi, 7
lea ebx, [eax + 0x4c40c0]
mov dword [ebx + 0x6c], 0xcc0000
mov dword [ebx + 0x70], pe_nt_image_headers32
jle 0x44cef7
xor esi, esi
lea edi, [ebp - 0x448]
imul eax, esi, 0xcc
lea ebx, [eax + 0x4c40c0]
mov eax, dword [ebx + 0xa4]
mov dword [esp], edi
mov dword [esp + 0xc], eax
mov eax, dword [0x4c4b50]
mov dword [esp + 8], eax
mov eax, 0x400
mov dword [esp + 4], eax
call fcn.0047eb50
mov edx, edi
mov eax, ebx
call fcn.00448da0
test eax, eax
je 0x44cfa5
mov dword [esp], edi
mov eax, str.8X13.FON
mov dword [esp + 0xc], eax
mov eax, dword [0x4c4b50]
mov dword [esp + 8], eax
mov eax, 0x400
mov dword [esp + 4], eax
call fcn.0047eb50
mov edx, edi
mov eax, ebx
call fcn.00448da0
mov byte [ebx + 0xa0], 1
mov eax, 8
mov dword [ebx + 0xb8], eax
mov eax, 0xd
mov dword [ebx + 0xbc], eax
mov eax, ebx
inc esi
call fcn.004489b0
mov eax, ebx
call fcn.00448d20
cmp esi, 7
jle 0x44cf1f
mov esi, 7
jmp 0x44cff5
cmp byte [ebx + 0x9e], 0
jne 0x44d518
mov eax, ebx
call fcn.0044a3e0
mov dword [esi*4 + 0x4f2e80], ebx
cmp byte [ebx + 0x9e], 0
jne 0x44d4d0
dec esi
test esi, esi
jle 0x44d159
imul eax, esi, 0xcc
xor ecx, ecx
xor edi, edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x20], ecx
lea ebx, [eax + 0x4c40c0]
xor eax, eax
mov dword [esp + 0x2c], eax
mov eax, dword [0x4c4730]
mov dword [0x4c4720], ebx
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 0x88]
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 0x84]
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 0x80]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x7c]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x6c]
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 0x64]
mov dword [esp + 8], eax
mov eax, dword [str.AngList]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x70]
mov dword [esp], eax
call sub.USER32.dll_CreateWindowExA
mov dword [ebx + 0x68], eax
xor edx, edx
sub esp, 0x30
mov dword [0x4c4720], edx
test eax, eax
jne 0x44cfc4
mov dword [esp], str.Failed_to_create_sub_window
call fcn.00498230
jmp 0x44cfc4
mov dword [ebp - 0x48], 0x40
mov eax, str.ANGBAND
mov edi, 0x7f00
mov dword [ebp - 0x44], 0x44a600
lea ebx, [ebp - 0x48]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 4
mov dword [ebp - 0x38], esi
mov dword [esp + 4], eax
mov dword [esp], esi
call sub.USER32.dll_LoadIconA
mov dword [0x4c4750], eax
sub esp, 8
mov dword [ebp - 0x34], eax
mov dword [esp + 4], edi
mov dword [esp], 0
call sub.USER32.dll_LoadCursorA
mov dword [ebp - 0x30], eax
sub esp, 8
mov dword [esp], 4
call sub.GDI32.dll_GetStockObject
mov dword [ebp - 0x2c], eax
mov eax, dword [0x4a3684]
sub esp, 4
mov dword [ebp - 0x28], str.ANGBAND
mov dword [ebp - 0x24], eax
mov dword [esp], ebx
call sub.USER32.dll_RegisterClassA
sub esp, 4
test ax, ax
je 0x44d14d
mov dword [ebp - 0x44], 0x44bb70
mov eax, dword [str.AngList]
mov dword [ebp - 0x28], 0
mov dword [esp], ebx
mov dword [ebp - 0x24], eax
call sub.USER32.dll_RegisterClassA
sub esp, 4
test ax, ax
jne 0x44c8fa
mov dword [esp], 2
jmp 0x44d154
mov dword [esp], 1
call sub.msvcrt.dll_exit
mov eax, 0x4c40c0
xor edi, edi
xor esi, esi
mov dword [0x4c4720], eax
xor eax, eax
mov dword [esp + 0x2c], eax
mov eax, dword [0x4c4730]
mov dword [esp + 0x20], edi
mov dword [esp + 0x28], eax
xor eax, eax
mov dword [esp + 0x24], eax
mov eax, dword [0x4c4148]
mov dword [esp + 0x1c], eax
mov eax, dword [0x4c4144]
mov dword [esp + 0x18], eax
mov eax, dword [0x4c4140]
mov dword [esp + 0x14], eax
mov eax, dword [0x4c413c]
mov dword [esp + 0x10], eax
mov eax, dword [0x4c412c]
mov dword [esp + 0xc], eax
mov eax, dword [0x4c4124]
mov dword [esp + 8], eax
mov eax, dword [0x4a3684]
mov dword [esp + 4], eax
mov eax, dword [0x4c4130]
mov dword [esp], eax
call sub.USER32.dll_CreateWindowExA
mov dword [0x4c4128], eax
sub esp, 0x30
test eax, eax
mov dword [0x4c4720], esi
jne 0x44d1f3
mov dword [esp], str.Failed_to_create__s_window
mov ebx, 0x4b1352
mov dword [esp + 4], ebx
call fcn.004954a0
mov eax, 0x4c40c0
call fcn.0044a3e0
mov eax, dword [0x4c4128]
mov ecx, 0x4c40c0
mov dword [0x4f2e80], ecx
mov dword [esp], eax
call sub.USER32.dll_SetActiveWindow
sub esp, 4
xor eax, eax
mov edx, 3
mov dword [esp + 0x14], eax
xor eax, eax
mov dword [esp + 0x10], eax
xor eax, eax
mov dword [esp + 0xc], eax
xor eax, eax
mov dword [esp + 8], eax
xor eax, eax
mov dword [esp + 4], eax
mov eax, dword [0x4c4128]
mov dword [esp + 0x18], edx
mov dword [esp], eax
call sub.USER32.dll_SetWindowPos
mov eax, dword [0x4c4f90]
sub esp, 0x1c
test eax, eax
jle 0x44d260
mov dword [esp], eax
call fcn.00482ba0
call fcn.00448aa0
mov eax, dword [0x4c4ba8]
mov edi, 0x44c050
mov esi, 0x44c050
mov ebx, 0x4b1b7d
mov dword [esp], eax
call sub.GDI32.dll_CreateSolidBrush
mov dword [0x4c4740], eax
sub esp, 4
call fcn.00449620
mov dword [0x4c6380], edi
mov eax, 0x44c010
mov dword [0x4c6384], eax
mov dword [0x4c637c], esi
mov dword [0x4a49e4], ebx
call fcn.004450a0
mov byte [0x4c407a], 1
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x44d32e
mov eax, dword [ebp + 0x10]
cmp byte [eax], 0
je 0x44d32e
mov dword [esp], eax
mov edx, 0x20
mov dword [esp + 4], edx
call sub.msvcrt.dll_strchr
test eax, eax
je 0x44d2dd
mov byte [eax], 0
mov byte [0x872cb0], 0
mov eax, 0x3ff
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x10]
mov dword [esp], 0x872cb0
mov dword [esp + 4], eax
call sub.msvcrt.dll_strncat
mov eax, 0x872cb0
call fcn.004488d0
mov byte [0x4c407b], 1
call fcn.00495e80
mov dword [esp], 0
call fcn.0042f9b0
mov dword [esp], 0
call fcn.00498230
mov byte [0x4c5a89], 1
lea esi, [ebp - 0xcf4]
lea edi, [ebp - 0xce8]
jmp 0x44d350
xor ebx, ebx
cmp byte [0x4c407b], 0
jne 0x44d3d0
mov eax, 1
mov dword [ebp - 0xcf4], eax
mov eax, dword [0x4a49e8]
cmp byte [eax + 0x3a6], 0
je 0x44d399
mov eax, 4
mov dword [ebp - 0xcf4], eax
jmp 0x44d399
dec eax
je 0x44d49b
nop
lea esi, [esi]
cmp byte [0x4c407b], 0
jne 0x44d3d0
mov dword [esp], esi
call fcn.00445e90
cmp eax, 2
je 0x44d3f6
jle 0x44d381
cmp eax, 3
je 0x44d401
cmp eax, 4
jne 0x44d390
mov dword [esp], 0
call fcn.00498230
cmp byte [0x4c407b], 0
je 0x44d399
mov esi, esi
lea edi, [edi]
call fcn.004974e0
movsx eax, bl
mov dword [esp], eax
call fcn.0042f9b0
call fcn.0044c5f0
call fcn.00444be0
mov byte [0x4c407b], 0
jmp 0x44d350
mov byte [0x4c407b], 1
mov bl, 1
jmp 0x44d390
mov dword [esp], edi
xor edx, edx
mov ecx, 0x4c
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
call sub.msvcrt.dll_memset
mov dword [esp], edi
mov eax, 0x4c
mov dword [ebp - 0xce8], eax
mov eax, dword [0x4c4128]
mov dword [ebp - 0xce4], eax
mov eax, str.Save_Files__._
mov dword [ebp - 0xcdc], eax
mov eax, 1
mov dword [ebp - 0xcd0], eax
mov eax, 0x872cb0
mov dword [ebp - 0xccc], eax
mov eax, 0x400
mov dword [ebp - 0xcc8], eax
mov eax, dword [0x8732c0]
mov dword [ebp - 0xcbc], eax
mov eax, 0x1008
mov dword [ebp - 0xcb4], eax
call sub.COMDLG32.DLL_GetOpenFileNameA
sub esp, 4
test eax, eax
je 0x44d390
mov eax, 0x872cb0
xor ebx, ebx
call fcn.004488d0
mov byte [0x4c407b], 1
jmp 0x44d390
mov dword [esp], 0x872cb0
mov eax, str.tutorial
mov ebx, 0x50
mov dword [esp + 0xc], eax
mov eax, dword [0x4f59e0]
mov dword [esp + 4], ebx
xor ebx, ebx
mov dword [esp + 8], eax
call fcn.0047eb50
mov byte [0x4c407b], 1
jmp 0x44d390
mov eax, dword [ebx + 0x68]
mov edi, 3
mov dword [esp], eax
call sub.USER32.dll_SetActiveWindow
sub esp, 4
xor eax, eax
xor ecx, ecx
mov dword [esp + 0xc], eax
xor eax, eax
xor edx, edx
mov dword [esp + 8], eax
xor eax, eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x68]
mov dword [esp], eax
call sub.USER32.dll_SetWindowPos
sub esp, 0x1c
jmp 0x44cfec
mov byte [ebx + 0x9c], 1
mov eax, 5
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x68]
mov dword [esp], eax
call sub.USER32.dll_ShowWindow
mov byte [ebx + 0x9c], 0
sub esp, 8
jmp 0x44cfd1