Function at 0x403bc0
Capabilities:
Get common file path

Disassembly:
sub esp, 0x42c
push ebx
push ebp
mov ebp, dword [esp + 0x440]
push esi
mov esi, dword [esp + 0x43c]
xor ebx, ebx
push edi
push ebx
push ebp
push ebx
push esi
mov dword [0x4251d8], esi
call fcn.0041b6de
lea eax, [esp + 0x2bc]
push 0x7d
push eax
push ebx
call dword [sym.imp.KeRNeL32.dll_GetModuleFileNameA]
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x23c]
push ecx
push edx
push ebx
lea eax, [esp + 0x2c8]
push ebx
push eax
call fcn.0040b090
lea ecx, [esp + 0x30]
lea edx, [esp + 0x250]
push ecx
push edx
lea eax, [esp + 0xd8]
push 0x423484
push eax
call fcn.0040ab1e
push ebx
lea ecx, [esp + 0xe4]
push 2
push ecx
call fcn.00407b80
add esp, 0x30
test eax, eax
je 0x403c5b
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x42c
ret 0x10
mov dword [0x4253f4], esi
call fcn.0041b28a
mov dword [eax + 0xc], esi
mov esi, dword [sym.imp.KeRNeL32.dll_GetCurrentDirectoryA]
push 0x42526c
push 0xfe
mov byte [0x42526c], 0
call esi
mov edi, 0x42526c
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, ebx
jle 0x403ca5
cmp byte [ecx + 0x42526b], 0x5c
jne 0x403ca5
mov byte [ecx + 0x42526b], 0
push 9
mov ecx, 0x425394
call fcn.00415dea
push 0x3a
mov ecx, 0x4253dc
call fcn.00415dea
push 0x3b
mov ecx, 0x425268
call fcn.00415dea
push 0x3c
mov ecx, 0x425248
call fcn.00415dea
push 0x3e
mov ecx, 0x425370
call fcn.00415dea
push 0x3d
mov ecx, 0x42536c
call fcn.00415dea
push 0x3f
mov ecx, 0x425244
call fcn.00415dea
push 0x39
mov ecx, 0x4253f0
call fcn.00415dea
push 0x54
mov ecx, 0x425260
call fcn.00415dea
mov dl, byte [0x425168]
mov ecx, 0x1f
xor eax, eax
lea edi, [esp + 0x3d]
mov byte [esp + 0x3c], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [esp + 0x3c]
push eax
push 0x7d
call esi
lea edi, [esp + 0x3c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 3
jbe 0x403d73
mov edi, 0x423480
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x3c]
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [esp + 0x3c]
lea ecx, [esp + 0xbc]
push eax
push str._sLITHTECH.EXE
push ecx
call fcn.0040ab1e
push ebx
lea edx, [esp + 0xcc]
push 1
push edx
call fcn.00407b80
add esp, 0x18
test eax, eax
je 0x403dc3
mov eax, dword [0x425394]
push 0x40
push eax
push 0x40
push ebx
call fcn.00404f40
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x42c
ret 0x10
push 0x21c
call fcn.00415bc9
add esp, 4
cmp eax, ebx
je 0x403dd8
mov dword [eax], ebx
jmp 0x403dda
xor eax, eax
mov ecx, dword [0x4253dc]
push ebx
push 0x80000002
push ebx
push 0x42346c
push ecx
push str.Monolith_Productions
mov ecx, eax
mov dword [0x425404], eax
call fcn.00408480
test eax, eax
jne 0x403e0f
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x42c
ret 0x10
lea edx, [esp + 0x18]
push edx
call fcn.00401220
movsx eax, al
push eax
push str._c:_
push 0x42539c
call fcn.0040ab1e
mov ecx, dword [0x425404]
add esp, 0x10
push ebx
push str.Display_Warned
call fcn.00408760
mov ecx, dword [0x425404]
push ebx
push str.Num_Launcher_Runs
mov dword [0x425428], eax
call fcn.00408760
mov ecx, dword [0x423308]
mov dword [0x42542c], eax
push ecx
mov ecx, dword [0x425404]
push str.Last_Random
call fcn.00408760
mov ecx, dword [0x425404]
push ebx
push str.Disable_Sound
mov dword [0x423308], eax
call fcn.00408760
mov ecx, dword [0x425404]
push ebx
push str.Disable_Music
mov dword [0x425438], eax
call fcn.00408760
mov ecx, dword [0x425404]
push ebx
push str.Disable_Movies
mov dword [0x42543c], eax
call fcn.00408760
mov ecx, dword [0x425404]
push ebx
push str.Disable_Fog
mov dword [0x425440], eax
call fcn.00408760
mov ecx, dword [0x425404]
push ebx
push str.Disable_Joystick
mov dword [0x425444], eax
call fcn.00408760
mov ecx, dword [0x425404]
push ebx
push str.Disable_TripBuf
mov dword [0x425448], eax
call fcn.00408760
mov ecx, dword [0x425404]
push ebx
push str.Disable_Cursor
mov dword [0x42544c], eax
call fcn.00408760
mov ecx, dword [0x425404]
push ebx
push str.Disable_Loadscreen
mov dword [0x425450], eax
call fcn.00408760
mov ecx, dword [0x425404]
mov dword [0x425454], eax
lea edx, [esp + 0x14]
push ebx
lea eax, [esp + 0x340]
push edx
mov esi, 0x100
push eax
push str.Update_Command_Line
mov dword [esp + 0x24], esi
call fcn.004086c0
push eax
mov ecx, 0x425398
call fcn.0041592a
mov dword [esp + 0x14], esi
push ebx
lea ecx, [esp + 0x18]
lea edx, [esp + 0x340]
push ecx
mov ecx, dword [0x425404]
push edx
push str.Content_Command_Line
call fcn.004086c0
push eax
mov ecx, 0x425240
call fcn.0041592a
mov eax, dword [0x425404]
push eax
call fcn.00407380
mov ecx, dword [0x4253f4]
mov esi, dword [sym.imp.USER32.dll_LoadCursorA]
add esp, 4
push str.WEBHAND
push ecx
call esi
mov edx, dword [0x4253f4]
push str.WEBCLICK
push edx
mov dword [0x425414], eax
call esi
push 0x7f00
push ebx
mov dword [0x425418], eax
call esi
mov dword [0x42541c], eax
call fcn.00405fb0
call fcn.00401c10
push str.autoexec.cfg
call fcn.00405db0
lea eax, [esp + 0x1c]
push eax
call fcn.00401220
push eax
call fcn.00406e50
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x148]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x148]
push ecx
call fcn.00414434
lea edx, [esp + 0x14c]
push str._GOMULTI
push edx
mov dword [esp + 0x28], ebx
call fcn.0040b010
add esp, 0x18
test eax, eax
je 0x404046
mov ebx, 1
lea eax, [esp + 0x13c]
push str._GOGAME
push eax
call fcn.0040b010
add esp, 8
test eax, eax
je 0x404067
mov dword [esp + 0x10], 1
lea ecx, [esp + 0x13c]
push str.CONNECT
push ecx
call fcn.0040b010
add esp, 8
test eax, eax
je 0x404085
mov ebx, 1
mov edx, dword [0x425244]
push edx
call fcn.0040af30
mov ebp, eax
add esp, 4
test ebp, ebp
jg 0x40409f
mov ebp, 1
mov edi, str.GAME
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, 0x425374
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.WINMM.dll_timeGetTime]
push eax
call fcn.0040afe1
add esp, 4
cmp ebp, 1
jle 0x40411a
call fcn.0040afee
cdq
idiv ebp
mov edi, 0x14
mov esi, edx
cmp esi, dword [0x423308]
jne 0x4040f9
call fcn.0040afee
cdq
idiv ebp
mov esi, edx
dec edi
jne 0x4040e7
lea ecx, [esi + 1]
push ecx
push str.GAME_i
push 0x425374
call fcn.0040ab1e
add esp, 0xc
mov dword [0x423308], esi
jmp 0x40412e
push 1
push str.GAME_i
push 0x425374
call fcn.0040ab1e
add esp, 0xc
mov esi, dword [sym.imp.USER32.dll_DialogBoxParamA]
xor edi, edi
cmp ebx, edi
je 0x404141
mov eax, 5
jmp 0x404164
cmp dword [esp + 0x10], edi
je 0x40414e
mov eax, 1
jmp 0x404164
mov edx, dword [esp + 0x440]
push edi
push 0x4044e0
push edi
push str.GAME
push edx
call esi
xor ebx, ebx
dec eax
mov dword [esp + 0x10], edi
je 0x4041ac
dec eax
je 0x40418d
sub eax, 3
jne 0x4041d6
mov eax, dword [esp + 0x448]
push 1
push eax
call fcn.00404fe0
add esp, 8
test eax, eax
jne 0x4041d6
jmp 0x404134
call fcn.00404b20
test eax, eax
jne 0x4041d6
mov ecx, dword [0x425394]
push 0x10
push ecx
push 4
push edi
call fcn.00404f40
add esp, 0x10
jmp 0x404134
push edi
call section..text
add esp, 4
test eax, eax
je 0x404134
mov edx, dword [esp + 0x448]
push edi
push edx
call fcn.00404fe0
add esp, 8
test eax, eax
je 0x404134
mov edx, dword [0x42542c]
mov eax, dword [0x425428]
mov ecx, dword [0x425404]
inc edx
push eax
push str.Display_Warned
mov dword [0x42542c], edx
call fcn.00408680
mov ecx, dword [0x42542c]
push ecx
mov ecx, dword [0x425404]
push str.Num_Launcher_Runs
call fcn.00408680
mov edx, dword [0x423308]
mov ecx, dword [0x425404]
push edx
push str.Last_Random
call fcn.00408680
mov eax, dword [0x425438]
mov ecx, dword [0x425404]
push eax
push str.Disable_Sound
call fcn.00408680
mov ecx, dword [0x42543c]
push ecx
mov ecx, dword [0x425404]
push str.Disable_Music
call fcn.00408680
mov edx, dword [0x425440]
mov ecx, dword [0x425404]
push edx
push str.Disable_Movies
call fcn.00408680
mov eax, dword [0x425444]
mov ecx, dword [0x425404]
push eax
push str.Disable_Fog
call fcn.00408680
mov ecx, dword [0x425448]
push ecx
mov ecx, dword [0x425404]
push str.Disable_Joystick
call fcn.00408680
mov edx, dword [0x42544c]
mov ecx, dword [0x425404]
push edx
push str.Disable_TripBuf
call fcn.00408680
mov eax, dword [0x425450]
mov ecx, dword [0x425404]
push eax
push str.Disable_Cursor
call fcn.00408680
mov ecx, dword [0x425454]
push ecx
mov ecx, dword [0x425404]
push str.Disable_Loadscreen
call fcn.00408680
mov edx, dword [0x425260]
mov ecx, dword [0x425404]
push edx
push str.Language
call fcn.00408620
mov eax, dword [0x4253f8]
cmp eax, edi
je 0x404328
mov esi, eax
cmp esi, edi
je 0x404322
mov ecx, esi
call fcn.00408810
lea ecx, [esi + 0x2c]
call fcn.00414d2c
lea ecx, [esi + 0x10]
call fcn.00414d2c
push esi
call fcn.00415bf2
add esp, 4
mov dword [0x4253f8], edi
mov esi, dword [0x425404]
cmp esi, edi
je 0x404348
mov ecx, esi
call fcn.004085a0
push esi
call fcn.00415bf2
add esp, 4
mov dword [0x425404], edi
mov esi, dword [0x425408]
cmp esi, edi
je 0x40437f
mov ecx, esi
call fcn.00406b50
lea ecx, [esi + 8]
call fcn.00414d2c
lea ecx, [esi + 4]
call fcn.00415831
mov ecx, esi
call fcn.00415831
push esi
call fcn.00415bf2
add esp, 4
mov dword [0x425408], edi
mov esi, dword [0x42540c]
cmp esi, edi
je 0x4043b6
mov ecx, esi
call fcn.00406b50
lea ecx, [esi + 8]
call fcn.00414d2c
lea ecx, [esi + 4]
call fcn.00415831
mov ecx, esi
call fcn.00415831
push esi
call fcn.00415bf2
add esp, 4
mov dword [0x42540c], edi
mov esi, dword [0x425410]
cmp esi, edi
je 0x4043e5
mov ecx, esi
call fcn.004028f0
lea ecx, [esi + 4]
call fcn.00414d2c
mov ecx, esi
call fcn.00415831
push esi
call fcn.00415bf2
add esp, 4
mov dword [0x425410], edi
mov dword [0x425400], edi
mov dword [0x4253fc], edi
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x42c
ret 0x10