Function at 0x402500
Capabilities:
Accept command line arguments
Get common file path

Disassembly:
sub esp, 0x108
push ebx
mov ebx, ecx
push ebp
push esi
lea ebp, [ebx + 0xb30]
mov ecx, ebp
call fcn.0059dc30
lea ecx, [ebx + 0xc64]
call fcn.0059dc30
lea ecx, [ebx + 0xd98]
call fcn.0059dc30
lea ecx, [ebx + 0xecc]
call fcn.0059dc30
lea ecx, [ebx + 0x1000]
call fcn.0059dc30
lea ecx, [ebx + 0x1134]
call fcn.0059dc30
lea ecx, [ebx + 0x1268]
call fcn.0059dc30
lea ecx, [ebx + 0x139c]
call fcn.0059dc30
lea ecx, [ebx + 0x14d0]
call fcn.0059dc30
lea ecx, [ebx + 0x1604]
call fcn.0059dc30
lea eax, [esp + 0x10]
mov dword [ebx], 0
push str.D:DEVDK2_
push eax
call fcn.006764c8
add esp, 8
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov esi, eax
cmp byte [esi], 0x22
lea eax, [esi + 1]
jne 0x4025b2
push 0x22
push eax
mov esi, eax
call fcn.00408700
add esp, 8
jmp 0x4025d2
push 0x20
push eax
call fcn.00408700
add esp, 8
test eax, eax
jne 0x4025d6
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4025c6
sub ecx, edx
lea eax, [ecx + esi]
test eax, eax
je 0x4025fe
cmp eax, esi
jbe 0x4025f0
nop word [eax + eax]
cmp byte [eax], 0x5c
je 0x4025ec
dec eax
cmp eax, esi
ja 0x4025e0
jmp 0x4025f0
mov byte [eax + 1], 0
lea eax, [esp + 0x10]
push esi
push eax
call fcn.006764c8
add esp, 8
cmp byte [0x796e8d], 0
je 0x402647
push edi
lea eax, [esp + 0x14]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea edi, [esp + 0x14]
dec edi
nop dword [eax]
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x402620
mov ax, word [0x7868b0]
mov word [edi], ax
lea eax, [esp + 0x14]
push eax
push esi
push str.replace_exe_dir_path2:__s_____s_n
call fcn.004016a0
add esp, 0xc
pop edi
lea eax, [esp + 0x10]
push eax
push str.HD_Path:__s_n
push 0x7354c8
call fcn.005a03fc
lea eax, [esp + 0x1c]
push eax
lea esi, [ebx + 0x108]
push esi
call fcn.006764c8
add esp, 0x14
mov ecx, ebx
call fcn.005a2ceb
push esi
lea eax, [ebx + 0x928]
push str._sdataeditor_
push eax
call fcn.00402890
push esi
lea eax, [ebx + 0x414]
push str._sdataSave_
push eax
call fcn.00402890
push esi
lea eax, [ebx + 0x20c]
push str._sdataSettings_
push eax
call fcn.00402890
lea eax, [ebx + 0x518]
push str.GLOBAL_
push eax
call fcn.00402890
push esi
lea eax, [ebx + 0x61c]
push str._sdataText_
push eax
call fcn.00402890
push esi
lea eax, [ebx + 0x310]
push str._sDk2TextureCache
push eax
call fcn.00402890
add esp, 0x44
lea eax, [ebx + 0x720]
push esi
push str._sdata_soundSFX_
push eax
call fcn.00402890
push esi
lea eax, [ebx + 0x824]
push str._sdata_soundMusic_
push eax
call fcn.00402890
push esi
push str._sdataMeshes.Wad
lea eax, [esp + 0x2c]
push ebp
push eax
call fcn.005a2b67
push esi
push str.K:DK2DevDataMeshes.Wad
lea eax, [ebx + 0xc64]
push eax
lea eax, [esp + 0x40]
push eax
call fcn.005a2b67
push esi
push str._sdataEngineTextures.wad
lea eax, [ebx + 0xd98]
push eax
lea eax, [esp + 0x50]
push eax
call fcn.005a2b67
add esp, 0x48
lea eax, [ebx + 0x1268]
push esi
push str._sdataSprite.Wad
push eax
lea eax, [esp + 0x18]
push eax
call fcn.005a2b67
push esi
push str._sdataFrontEnd.wad
lea eax, [ebx + 0x1604]
push eax
lea eax, [esp + 0x28]
push eax
call fcn.005a2b67
push esi
push str._sdataPaths.wad
lea eax, [ebx + 0x14d0]
push eax
lea eax, [esp + 0x38]
push eax
call fcn.005a2b67
push esi
push str._sdataeditor
lea eax, [ebx + 0x1000]
push eax
lea eax, [esp + 0x48]
push eax
call fcn.005a2c1e
add esp, 0x40
lea eax, [ebx + 0x139c]
push esi
push str._sdata_text_
push eax
lea eax, [esp + 0x18]
push eax
call fcn.005a2c1e
push esi
push str._sdataTexture
lea eax, [ebx + 0xecc]
push eax
lea eax, [esp + 0x28]
push eax
call fcn.005a2c1e
push esi
push str._sdatapalette
lea eax, [ebx + 0x1134]
push eax
lea eax, [esp + 0x38]
push eax
call fcn.005a2c1e
add esp, 0x30
mov eax, ebx
pop esi
pop ebp
pop ebx
add esp, 0x108
ret