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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x634
mov eax, dword [0x4a0270]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov dword [ebp - 8], ecx
mov eax, dword [ebp + 8]
mov dword [0x7bab20], eax
mov eax, dword [ebp + 0xc]
push eax
push 0x7baab8
call fcn.0045eb30
add esp, 8
mov eax, dword [ebp + 0x10]
push eax
push 0x7baa50
call fcn.0045eb30
add esp, 8
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [str.C:logcrossfire_s]
push ecx
push 0x7ba8b8
call fcn.0045ee9d
add esp, 0xc
cmp dword [ebp + 0x18], 0
je 0x402bec
mov eax, dword [ebp + 0x18]
movsx ecx, byte [eax]
test ecx, ecx
jne 0x402be1
mov eax, dword [ebp + 0x18]
mov byte [eax], 0x43
mov eax, dword [ebp + 0x18]
mov cl, byte [eax]
mov byte [0x7ba8b8], cl
cmp dword [ebp + 0x14], 0
je 0x402c15
push 0x48d708
push 0x7ba8b8
call fcn.0045eb40
add esp, 8
mov eax, dword [ebp + 0x14]
push eax
push 0x7ba8b8
call fcn.0045eb40
add esp, 8
push str._04d_02d_02d__02d.log
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
push str._d_02d_02d
push 0x7ba8b8
mov edx, dword [str._s_serror__s__s__s]
push edx
push 0x7ba4c8
call fcn.0045ee9d
add esp, 0x1c
push str._04d_02d_02d__02d.log
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
push str._d_02d_02d
push 0x7ba8b8
mov edx, dword [str._s_scash__s__s__s]
push edx
push 0x7ba0d8
call fcn.0045ee9d
add esp, 0x1c
push str._04d_02d_02d__02d.log
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
push str._d_02d_02d
push 0x7ba8b8
mov edx, dword [str._s_sUnknownData__s__s__s]
push edx
push 0x7b9ce8
call fcn.0045ee9d
add esp, 0x1c
push str._04d_02d_02d__02d.log
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
push str._d_02d_02d
push 0x7ba8b8
mov edx, dword [str._s_sMegaphone__s__s__s]
push edx
push 0x7b98f8
call fcn.0045ee9d
add esp, 0x1c
push str._04d_02d_02d__02d.log
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
push str._d_02d_02d
push 0x7ba8b8
mov edx, dword [str._s_sGachaData__s__s__s]
push edx
push 0x7b9508
call fcn.0045ee9d
add esp, 0x1c
push str._04d_02d_02d__02d.log
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
push str._d_02d_02d
push 0x7ba8b8
mov edx, dword [str._s_sConnectCheck__s__s__s]
push edx
push 0x7b9118
call fcn.0045ee9d
add esp, 0x1c
push str._04d_02d_02d__02d.log
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
push str._d_02d_02d
push 0x7ba8b8
mov edx, dword [str._s_sMonitoring__s__s__s]
push edx
push 0x7b8d28
call fcn.0045ee9d
add esp, 0x1c
push str._04d_02d_02d__02d.log
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
push str._d_02d_02d
push 0x7ba8b8
mov edx, dword [str._s_sEmergencyState__s__s__s]
push edx
push 0x7b8938
call fcn.0045ee9d
add esp, 0x1c
push str._04d_02d_02d__02d.log
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
push str._d_02d_02d
push 0x7ba8b8
mov edx, dword [str._s_setcinfo__s__s__s]
push edx
push 0x7b8548
call fcn.0045ee9d
add esp, 0x1c
push str._04d_02d_02d__02d.log
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
push str._d_02d_02d
push 0x7ba8b8
mov edx, dword [str._s_s_timeinfo__s__s__s]
push edx
push 0x7b8158
call fcn.0045ee9d
add esp, 0x1c
push str._04d_02d_02d.log
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
push 0x7ba8b8
mov edx, dword [str._s_timeout__s__s__s]
push edx
push 0x7b7d68
call fcn.0045ee9d
add esp, 0x18
push str._04d_02d_02d.log
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
push 0x7ba8b8
mov edx, dword [str._shackinfo__s__s__s]
push edx
push 0x7b7978
call fcn.0045ee9d
add esp, 0x18
push str._04d_02d_02d.log
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
push 0x7ba8b8
mov edx, dword [str._scount__s__s__s]
push edx
push 0x7b7588
call fcn.0045ee9d
add esp, 0x18
push str._04d_02d_02d__02d.log
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
push str._d_02d_02d
push 0x7ba8b8
mov edx, dword [str._s_sHacking__s__s__s]
push edx
push 0x7b7198
call fcn.0045ee9d
add esp, 0x1c
push str._04d_02d_02d__02d.log
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
push str._d_02d_02d
push 0x7ba8b8
push str._s_sCriticalError__s__s__s
push 0x7b6da8
call fcn.0045ee9d
add esp, 0x1c
push str._04d_02d_02d__02d.log
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
push str._d_02d_02d
push 0x7ba8b8
mov edx, dword [str._s_sSettingCheck__s__s__s]
push edx
push 0x7b69b8
call fcn.0045ee9d
add esp, 0x1c
push str._04d_02d_02d__02d.log
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
push str._d_02d_02d
push 0x7ba8b8
mov edx, dword [str._s_sKickUser__s__s__s]
push edx
push 0x7b65c8
call fcn.0045ee9d
add esp, 0x1c
push str._04d_02d_02d.log
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
push str._d_02d_02d
push 0x7ba8b8
mov edx, dword [str._s_sMgrData__s__s__s]
push edx
push 0x7b61d8
call fcn.0045ee9d
add esp, 0x1c
push str._04d_02d_02d.log
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
push str._d_02d_02d
push 0x7ba8b8
mov edx, dword [str._s_smailer__s__s__s]
push edx
push 0x7b5de8
call fcn.0045ee9d
add esp, 0x1c
lea eax, [ebp - 0x3f4]
push eax
push 0x3e8
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov byte [ebp - 0x4f4], 0
push 0xff
push 0
lea eax, [ebp - 0x4f3]
push eax
call fcn.0045f1b0
add esp, 0xc
push 0x48d7b8
lea eax, [ebp - 0x4f4]
push eax
call fcn.0045ee9d
add esp, 8
mov al, byte [0x7ba8b8]
mov byte [ebp - 0x4f4], al
lea eax, [ebp - 0x4f4]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
push 0x48d7b4
call fcn.0045ee71
add esp, 4
push str.log_
lea eax, [ebp - 0x4f4]
push eax
call fcn.0045eb40
add esp, 8
lea eax, [ebp - 0x4f4]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
push str.crossfire
call fcn.0045ee71
add esp, 4
push str.crossfire
lea eax, [ebp - 0x4f4]
push eax
call fcn.0045eb40
add esp, 8
lea eax, [ebp - 0x4f4]
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 0x40303a
mov eax, dword [ebp + 0x10]
push eax
push str.C:logcrossfire_s
lea ecx, [ebp - 0x5f4]
push ecx
call fcn.0045ee9d
add esp, 0xc
mov al, byte [0x7ba8b8]
mov byte [ebp - 0x5f4], al
lea eax, [ebp - 0x5f4]
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 - 0x3f4]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0045ee62
mov esp, ebp
pop ebp
ret 0x14