Function at 0x4022d0
Capabilities:
Get common file path
Set current directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x74c
mov eax, dword [0x4a0270]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov eax, dword [ebp + 0xc]
push eax
push 0x4a1dd8
call fcn.0045eb30
add esp, 8
mov eax, dword [ebp + 0x10]
push eax
push 0x4a1d70
call fcn.0045eb30
add esp, 8
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [section..data]
push ecx
push 0x4a1bd8
call fcn.0045ee9d
add esp, 0xc
lea eax, [ebp - 0x400]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
movzx eax, word [ebp - 0x3fa]
push eax
movzx ecx, word [ebp - 0x3fe]
push ecx
movzx edx, word [ebp - 0x400]
push edx
push str._d_02d_02d
lea eax, [ebp - 0x500]
push eax
call fcn.0045ee9d
add esp, 0x14
push 0x65
push 0
push 0x4a1780
call fcn.0045f1b0
add esp, 0xc
cmp dword [ebp + 0x14], 0
je 0x402381
mov eax, dword [ebp + 0x14]
push eax
push 0x4a1780
call fcn.0045eb30
add esp, 8
cmp dword [ebp + 0x14], 0
je 0x4023d0
push 0x48d708
push 0x4a1bd8
call fcn.0045eb40
add esp, 8
lea eax, [ebp - 0x500]
push eax
push 0x4a1bd8
call fcn.0045eb40
add esp, 8
push 0x48d708
push 0x4a1bd8
call fcn.0045eb40
add esp, 8
mov eax, dword [ebp + 0x14]
push eax
push 0x4a1bd8
call fcn.0045eb40
add esp, 8
cmp dword [ebp + 0x18], 0
je 0x4023e1
mov eax, dword [ebp + 0x18]
mov cl, byte [eax]
mov byte [0x4a1bd8], cl
mov eax, dword [str._04d_02d_02d__02d_02d_02d_03d.dmp]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 0x10]
push edx
push 0x4a1bd8
mov eax, dword [str._sdmp__s__s__s]
push eax
push 0x4a17e8
call fcn.0045ee9d
add esp, 0x18
lea eax, [ebp - 0x3f0]
push eax
push 0x3e8
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov byte [ebp - 0x604], 0
push 0x103
push 0
lea eax, [ebp - 0x603]
push eax
call fcn.0045f1b0
add esp, 0xc
push 0x48d7b8
lea eax, [ebp - 0x604]
push eax
call fcn.0045ee9d
add esp, 8
mov al, byte [0x4a1bd8]
mov byte [ebp - 0x604], al
lea eax, [ebp - 0x604]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
push 0x48d7b4
call fcn.0045ee71
add esp, 4
push str.log_
lea eax, [ebp - 0x604]
push eax
call fcn.0045eb40
add esp, 8
lea eax, [ebp - 0x604]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
push str.crossfire
call fcn.0045ee71
add esp, 4
push str.crossfire
lea eax, [ebp - 0x604]
push eax
call fcn.0045eb40
add esp, 8
lea eax, [ebp - 0x604]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov eax, dword [ebp + 0x10]
push eax
call fcn.0045ee71
add esp, 4
cmp dword [ebp + 0x14], 0
je 0x40253e
mov eax, dword [ebp + 0x10]
push eax
push str.C:logcrossfire_s_
lea ecx, [ebp - 0x704]
push ecx
call fcn.0045ee9d
add esp, 0xc
mov al, byte [0x4a1bd8]
mov byte [ebp - 0x704], al
lea eax, [ebp - 0x704]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
lea eax, [ebp - 0x500]
push eax
call fcn.0045ee71
add esp, 4
lea eax, [ebp - 0x500]
push eax
lea ecx, [ebp - 0x704]
push ecx
call fcn.0045eb40
add esp, 8
lea eax, [ebp - 0x704]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov eax, dword [ebp + 0x14]
push eax
call fcn.0045ee71
add esp, 4
lea eax, [ebp - 0x3f0]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
push fcn.00402190
call dword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
mov dword [ebp - 0x70c], 0x4022c0
mov eax, dword [ebp - 0x70c]
push eax
call fcn.0045f137
add esp, 4
mov dword [ebp - 0x708], eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0045ee62
mov esp, ebp
pop ebp
ret