Function at 0x442810
Capabilities:
Get common file path

Disassembly:
sub esp, 0x15c
mov eax, dword [0x49f8b8]
xor eax, esp
mov dword [esp + 0x158], eax
push ebx
push esi
push edi
mov edi, dword [esp + 0x16c]
lea eax, [esp + 0x64]
push eax
push 0x100
mov dword [esp + 0x24], edi
mov dword [0x4aeadc], edi
call dword [sym.imp.kernel32.dll_GetCurrentDirectoryA]
call fcn.00447330
call fcn.00446830
call fcn.0043a770
push str.name
push str.main
push str.game.ini
call fcn.00446380
xor ebx, ebx
add esp, 0xc
cmp eax, ebx
mov edx, str.WinName
je 0x442890
mov cl, byte [eax]
cmp cl, bl
je 0x44288e
nop
add eax, 1
mov byte [edx], cl
mov cl, byte [eax]
add edx, 1
cmp cl, bl
jne 0x442880
mov byte [edx], bl
cmp byte [str.WinName], bl
je 0x442ac5
push 0x495878
push str.main
push str.game.ini
call fcn.004463f0
push 0x49587c
push str.main
push str.game.ini
mov dword [0x49f210], eax
call fcn.004463f0
push 0x496eb0
push str.main
push str.game.ini
mov dword [0x49f214], eax
call fcn.004463f0
push 0x496eb4
push str.main
push str.game.ini
mov dword [0x49f218], eax
call fcn.004463f0
push str.AlwaysActive
push str.main
push str.game.ini
mov dword [0x49f21c], eax
call fcn.004463f0
push str.Minimize
push str.main
push str.game.ini
mov dword [0x4aeacc], eax
call fcn.004463f0
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
add esp, 0x48
cmp dword [0x49f210], ebx
mov dword [0x4aead0], eax
jl 0x44294e
push ebx
call esi
cmp dword [0x49f210], eax
jl 0x442961
push ebx
call esi
sub eax, dword [0x49f218]
cdq
sub eax, edx
sar eax, 1
mov dword [0x49f210], eax
cmp dword [0x49f214], ebx
jl 0x442975
push 1
call esi
cmp dword [0x49f214], eax
jl 0x442989
push 1
call esi
sub eax, dword [0x49f21c]
cdq
sub eax, edx
sar eax, 1
mov dword [0x49f214], eax
push str.WinName
push str.WinName
call dword [sym.imp.USER32.dll_FindWindowA]
mov esi, eax
cmp esi, ebx
je 0x4429b4
mov edi, dword [sym.imp.USER32.dll_ShowWindow]
push 6
push esi
call edi
push 9
push esi
call edi
jmp 0x442c80
mov ecx, dword [0x4aeae4]
push ebx
mov dword [esp + 0x40], 0xb
mov dword [esp + 0x44], 0x4422d0
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], ebx
call dword [sym.imp.GDI32.dll_GetStockObject]
lea edx, [esp + 0x3c]
push edx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], str.WinName
call dword [sym.imp.USER32.dll_RegisterClassA]
mov eax, dword [0x49f218]
mov ecx, dword [0x49f21c]
push ebx
push 0x80c80000
lea edx, [esp + 0x14]
push edx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
call dword [sym.imp.USER32.dll_AdjustWindowRect]
mov eax, dword [esp + 0x18]
sub eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
sub ecx, dword [esp + 0xc]
mov edx, dword [0x49f214]
push ebx
push ebx
push ebx
push ebx
push eax
mov eax, dword [0x49f210]
push ecx
push edx
push eax
push 0x90c80000
push str.WinName
push str.WinName
push ebx
call dword [sym.imp.USER32.dll_CreateWindowExA]
push 1
push eax
mov dword [0x4aead8], eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov ecx, dword [0x4aead8]
push ecx
call dword [sym.imp.USER32.dll_UpdateWindow]
push 0x7f00
push ebx
call dword [sym.imp.USER32.dll_LoadCursorA]
push eax
mov dword [0x4aeae0], eax
call dword [sym.imp.USER32.dll_SetCursor]
mov edx, dword [0x4aead8]
push edx
mov ecx, 0x49f228
call fcn.004426f0
push str.FullScreen
push str.main
push str.game.ini
call fcn.004463f0
add esp, 0xc
mov dword [0x4aeac8], eax
call fcn.004392a0
xor eax, eax
cmp byte [str.WinName], bl
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
je 0x442b7f
cmp eax, 0x12
je 0x442b7f
mov esi, dword [sym.imp.USER32.dll_PeekMessageA]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
push ebp
mov ebp, dword [sym.imp.USER32.dll_TranslateMessage]
push 1
push ebx
push ebx
push ebx
lea eax, [esp + 0x34]
push eax
call esi
test eax, eax
je 0x442b34
lea ecx, [esp + 0x24]
push ecx
call ebp
lea edx, [esp + 0x24]
push edx
call dword [sym.imp.USER32.dll_DispatchMessageA]
jmp 0x442b73
cmp dword [0x49f220], ebx
jne 0x442b54
cmp dword [0x4aeacc], ebx
jne 0x442b4c
call dword [sym.imp.USER32.dll_WaitMessage]
jmp 0x442b73
push 0x64
call dword [sym.imp.kernel32.dll_Sleep]
mov ecx, 0x49f228
call fcn.00442750
call fcn.00439610
test eax, eax
je 0x442b73
mov eax, dword [0x4aead8]
push ebx
push ebx
push 0x10
push eax
call edi
cmp dword [esp + 0x28], 0x12
jne 0x442b10
mov edi, dword [esp + 0x20]
pop ebp
call fcn.004393c0
cmp byte [str.WinName], bl
je 0x442c71
mov ecx, dword [0x4aeac8]
push ecx
push str.FullScreen
push str.main
push str.game.ini
mov byte [0x49f228], 0xff
call fcn.004465c0
mov edx, dword [0x49f210]
push edx
push 0x495878
push str.main
push str.game.ini
call fcn.004465c0
mov eax, dword [0x49f214]
push eax
push 0x49587c
push str.main
push str.game.ini
call fcn.004465c0
mov ecx, dword [0x49f218]
push ecx
push 0x496eb0
push str.main
push str.game.ini
call fcn.004465c0
mov edx, dword [0x49f21c]
add esp, 0x40
push edx
push 0x496eb4
push str.main
push str.game.ini
call fcn.004465c0
mov eax, dword [0x4aead8]
add esp, 0x10
cmp eax, ebx
je 0x442c33
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
push edi
push str.WinName
mov dword [0x4aead8], ebx
call dword [sym.imp.USER32.dll_UnregisterClassA]
mov eax, dword [0x4aeae0]
cmp eax, ebx
je 0x442c55
push eax
call dword [sym.imp.USER32.dll_DestroyCursor]
mov eax, dword [0x4aeae4]
cmp eax, ebx
mov dword [0x4aeae0], ebx
je 0x442c6b
push eax
call dword [sym.imp.USER32.dll_DestroyCursor_1]
mov dword [0x4aeae4], ebx
call fcn.00447330
call fcn.00447330
call fcn.004466d0
mov ecx, dword [esp + 0x164]
pop edi
pop esi
pop ebx
xor ecx, esp
xor eax, eax
call fcn.00449815
add esp, 0x15c
ret 0x10