Function at 0x414401
Capabilities:
Create directory
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x208
mov eax, dword [0x485008]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, ecx
push edi
mov edi, edx
cmp byte [esi], 0
je 0x4149d0
push 0x200
lea edx, [ebp - 0x208]
mov ecx, 0x472044
call fcn.00402de6
pop ecx
lea eax, [ebp - 0x208]
push eax
call fcn.00454f60
pop ecx
lea ecx, [ebp - 0x208]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x41444f
sub ecx, edx
lea eax, [ebp - 0x208]
push esi
add eax, ecx
push 0x47204c
push eax
call fcn.00401468
add esp, 0xc
lea eax, [ebp - 0x208]
push eax
call fcn.00454f60
pop ecx
lea ecx, [ebp - 0x208]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414485
sub ecx, edx
lea eax, [ebp - 0x208]
push esi
add eax, ecx
push str._s.cfg_v2
push eax
call fcn.00401468
add esp, 0xc
lea eax, [ebp - 0x208]
push 0x47205c
push eax
call fcn.0044a0f7
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x4149c2
push str.Version_1_n
push esi
call fcn.004013bc
movzx ecx, byte [edi + 0xb]
movzx eax, byte [edi + 0xa]
push ecx
push eax
push str.EnabledInThisCar__d__d_n
push esi
call fcn.004013bc
movzx eax, byte [edi + 0x15]
push eax
movzx eax, byte [edi + 0x14]
push eax
movzx eax, byte [edi + 0x13]
push eax
push dword [edi + 0x18]
push str.Background__x__d__d__d_n
push esi
call fcn.004013bc
movss xmm0, dword [edi + 0x30]
add esp, 0x28
movsx eax, word [edi + 0x22]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
movss xmm0, dword [edi + 0x28]
push eax
movsx eax, word [edi + 0x20]
sub esp, 0x10
cvtps2pd xmm0, xmm0
movsd qword [esp + 8], xmm0
movss xmm0, dword [edi + 0x24]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push eax
movsx eax, word [edi + 0x1e]
push eax
movzx eax, byte [edi + 0x1c]
push eax
push str.Gauge.RPM__d__d__d__f__f__d__f_n
push esi
call fcn.004013bc
movss xmm0, dword [edi + 0x48]
add esp, 0x28
movsx eax, word [edi + 0x3a]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
movss xmm0, dword [edi + 0x40]
push eax
movsx eax, word [edi + 0x38]
sub esp, 0x10
cvtps2pd xmm0, xmm0
movsd qword [esp + 8], xmm0
movss xmm0, dword [edi + 0x3c]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push eax
movsx eax, word [edi + 0x36]
push eax
movzx eax, byte [edi + 0x34]
push eax
push str.Gauge.Speedo__d__d__d__f__f__d__f_n
push esi
call fcn.004013bc
movsx eax, word [edi + 0x52]
add esp, 0x30
movss xmm0, dword [edi + 0x58]
cvtps2pd xmm0, xmm0
push eax
movsx eax, word [edi + 0x50]
sub esp, 0x10
movsd qword [esp + 8], xmm0
movss xmm0, dword [edi + 0x54]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push eax
movsx eax, word [edi + 0x4e]
push eax
movzx eax, byte [edi + 0x4c]
push eax
push str.Gauge.Fuel__d__d__d__f__f__d_n
push esi
call fcn.004013bc
movss xmm0, dword [edi + 0x78]
add esp, 0x20
movsx eax, word [edi + 0x6a]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
movss xmm0, dword [edi + 0x70]
push eax
movsx eax, word [edi + 0x68]
sub esp, 0x10
cvtps2pd xmm0, xmm0
movsd qword [esp + 8], xmm0
movss xmm0, dword [edi + 0x6c]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push eax
movsx eax, word [edi + 0x66]
push eax
movzx eax, byte [edi + 0x64]
push eax
push str.Gauge.Turbo__d__d__d__f__f__d__f_n
push esi
call fcn.004013bc
movsx eax, word [edi + 0x82]
add esp, 0x30
movss xmm0, dword [edi + 0x88]
cvtps2pd xmm0, xmm0
push eax
movsx eax, word [edi + 0x80]
sub esp, 0x10
movsd qword [esp + 8], xmm0
movss xmm0, dword [edi + 0x84]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push eax
movsx eax, word [edi + 0x7e]
push eax
movzx eax, byte [edi + 0x7c]
push eax
push str.Gauge.Temperature__d__d__d__f__f__d_n
push esi
call fcn.004013bc
movsx eax, word [edi + 0x9a]
add esp, 0x28
movss xmm0, dword [edi + 0xa0]
cvtps2pd xmm0, xmm0
push eax
movsx eax, word [edi + 0x98]
sub esp, 0x10
movsd qword [esp + 8], xmm0
movss xmm0, dword [edi + 0x9c]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push eax
movsx eax, word [edi + 0x96]
push eax
movzx eax, byte [edi + 0x94]
push eax
push str.Gauge.OilTemp__d__d__d__f__f__d_n
push esi
call fcn.004013bc
movsx eax, word [edi + 0x120]
push eax
movsx eax, word [edi + 0x11e]
push eax
movzx eax, byte [edi + 0x11c]
push eax
push str.Gauge.Clock__d__d__d_n
push esi
call fcn.004013bc
add esp, 0x3c
lea eax, [edi + 0xac]
mov edx, str.GaugeLin.RPM
mov ecx, esi
push eax
call fcn.00412e76
pop ecx
lea eax, [edi + 0xc8]
mov edx, str.GaugeLin.Speedo
push eax
mov ecx, esi
call fcn.00412e76
pop ecx
lea eax, [edi + 0xe4]
mov edx, str.GaugeLin.Fuel
push eax
mov ecx, esi
call fcn.00412e76
pop ecx
lea eax, [edi + 0x100]
mov edx, str.GaugeLin.Turbo
push eax
mov ecx, esi
call fcn.00412e76
pop ecx
lea eax, [edi + 0x130]
mov edx, str.Text.DSpeedo
push eax
mov ecx, esi
call fcn.0041309c
pop ecx
lea eax, [edi + 0x22c]
mov edx, str.Text.DSpeedoUnit
push eax
mov ecx, esi
call fcn.0041309c
pop ecx
lea eax, [edi + 0x328]
mov edx, str.Text.Gear
push eax
mov ecx, esi
call fcn.0041309c
pop ecx
lea eax, [edi + 0x11ec]
mov edx, str.Text.GearAuto
push eax
mov ecx, esi
call fcn.0041309c
pop ecx
lea eax, [edi + 0x424]
mov edx, str.Text.DFuel
push eax
mov ecx, esi
call fcn.0041309c
pop ecx
lea eax, [edi + 0x520]
mov edx, str.Text.Distance
push eax
mov ecx, esi
call fcn.0041309c
pop ecx
lea eax, [edi + 0x61c]
mov edx, str.Text.DistanceUnit
push eax
mov ecx, esi
call fcn.0041309c
pop ecx
lea eax, [edi + 0x718]
mov edx, str.Text.DistanceTotal
push eax
mov ecx, esi
call fcn.0041309c
pop ecx
lea eax, [edi + 0x814]
mov edx, str.Text.DistanceTotalUnit
push eax
mov ecx, esi
call fcn.0041309c
pop ecx
lea eax, [edi + 0x910]
mov edx, str.Text.Time
push eax
mov ecx, esi
call fcn.0041309c
pop ecx
lea eax, [edi + 0xa0c]
mov edx, str.Text.Date
push eax
mov ecx, esi
call fcn.0041309c
pop ecx
lea eax, [edi + 0xb08]
mov edx, str.Text.Consumption
push eax
mov ecx, esi
call fcn.0041309c
pop ecx
lea eax, [edi + 0xc04]
mov edx, str.Text.DRPM
push eax
mov ecx, esi
call fcn.0041309c
pop ecx
lea eax, [edi + 0xd00]
mov edx, str.Text.DTurbo
push eax
mov ecx, esi
call fcn.0041309c
pop ecx
lea eax, [edi + 0xdfc]
mov edx, str.Text.SplitTime
push eax
mov ecx, esi
call fcn.0041309c
pop ecx
lea eax, [edi + 0xef8]
mov edx, str.Text.TripDistance
push eax
mov ecx, esi
call fcn.0041309c
pop ecx
lea eax, [edi + 0xff4]
mov edx, str.Text.TripDistanceUnit
push eax
mov ecx, esi
call fcn.0041309c
pop ecx
lea eax, [edi + 0x10f0]
mov edx, str.Text.SplitPredict
push eax
mov ecx, esi
call fcn.0041309c
pop ecx
lea eax, [edi + 0x12e8]
mov edx, str.Text.ChatMessage
push eax
mov ecx, esi
call fcn.0041309c
pop ecx
lea eax, [edi + 0x13e4]
mov edx, str.Texture.Lights
push eax
mov ecx, esi
call fcn.0041326a
pop ecx
lea eax, [edi + 0x1454]
mov edx, str.Texture.Handbrake
push eax
mov ecx, esi
call fcn.0041326a
pop ecx
lea eax, [edi + 0x148c]
mov edx, str.Texture.LowFuel
push eax
mov ecx, esi
call fcn.0041326a
pop ecx
lea eax, [edi + 0x1470]
mov edx, str.Texture.EngineDmg
push eax
mov ecx, esi
call fcn.0041326a
pop ecx
lea eax, [edi + 0x14a8]
mov edx, str.Texture.Battery
push eax
mov ecx, esi
call fcn.0041326a
pop ecx
lea eax, [edi + 0x1400]
mov edx, str.Texture.IndicatorL
push eax
mov ecx, esi
call fcn.0041326a
pop ecx
lea eax, [edi + 0x141c]
mov edx, str.Texture.IndicatorR
push eax
mov ecx, esi
call fcn.0041326a
pop ecx
lea eax, [edi + 0x1438]
mov edx, str.Texture.IndicatorLR
push eax
mov ecx, esi
call fcn.0041326a
pop ecx
lea eax, [edi + 0x14c4]
mov edx, str.Texture.ShiftUp
push eax
mov ecx, esi
call fcn.0041326a
pop ecx
lea eax, [edi + 0x14e0]
mov edx, str.Texture.PitLimit
push eax
mov ecx, esi
call fcn.0041326a
pop ecx
lea eax, [edi + 0x14fc]
mov edx, str.Texture.ClutchDmg
push eax
mov ecx, esi
call fcn.0041326a
pop ecx
lea eax, [edi + 0x1534]
mov edx, str.Texture.ABS
push eax
mov ecx, esi
call fcn.0041326a
pop ecx
lea eax, [edi + 0x1518]
mov edx, str.Texture.TC
push eax
mov ecx, esi
call fcn.0041326a
pop ecx
push esi
call fcn.0044a2d1
jmp 0x4149cf
push str.Cannot_save_dashboard_config
push 0
call fcn.00407cc3
pop ecx
pop ecx
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.00445b7e
leave
ret