Function at 0x40c700
Capabilities:
Check if file exists
Copy file
Create directory
Get file attributes
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x476285
mov eax, dword fs:[0]
push eax
mov eax, 0x22e8
call fcn.00444200
mov eax, dword [0x4a6c44]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
push str.Enter_...
push 0x293
push str.c:_rhub2code_setuphandler_setuphandler.cpp
push 0
push str.SetupHandler::ProcessDownloadedClient
push dword [0x4a9068]
call fcn.0040ee70
add esp, 0x18
mov ecx, esi
call fcn.0040dd00
cmp byte [esi + 0x482d], 0
je 0x40d13e
push str.tm_starter_dir
lea eax, [esi + 0x261c]
push eax
lea edi, [esi + 0x3028]
push 0x47cb80
push edi
call fcn.00407cd0
push 0x200
lea eax, [ebp - 0xa10]
push eax
push edi
call fcn.00416610
push 0x47b918
push edi
call fcn.004140c0
add esp, 0x24
lea eax, [ebp - 0xa10]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x40c815
push 0
lea eax, [ebp - 0xa10]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x40c815
push edi
push str.Filed_to_create:__s
push 0x2aa
push str.c:_rhub2code_setuphandler_setuphandler.cpp
push 0
push str.SetupHandler::ProcessDownloadedClient
push dword [0x4a9068]
call fcn.0040ee70
add esp, 0x1c
push 0x1000
push 0x47a198
push str.Unable_to_create_a_directory_to_install_the_downloaded_software
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
call dword [sym.imp.USER32.dll_MessageBoxW]
xor al, al
jmp 0x40da15
push edi
lea eax, [ebp - 0x410]
push str._sAccessory
push eax
call fcn.00407cd0
push 0x200
lea eax, [ebp - 0x1a10]
push eax
lea eax, [ebp - 0x410]
push eax
call fcn.00416610
lea eax, [ebp - 0x410]
push 0x47b918
push eax
call fcn.004140c0
add esp, 0x20
lea eax, [ebp - 0x1a10]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x40c88e
push 0
lea eax, [ebp - 0x1a10]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x40c88e
lea eax, [ebp - 0x410]
push eax
push str.Filed_to_create:__s
push 0x2bc
jmp 0x40c7d8
lea ecx, [ebp - 0x22d4]
call fcn.0041b140
lea ecx, [ebp - 0x22f4]
mov dword [ebp - 4], 0
call fcn.0041b140
push edi
push 0x47b918
push str..zip
sub esp, 0x18
mov byte [ebp - 4], 1
mov ecx, esp
push 0xc
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
push str.PCClient.zip
mov byte [ecx], 0
call fcn.00401d51
lea eax, [ebp - 0x2228]
push eax
call fcn.004143a0
add esp, 0x24
cmp dword [eax + 0x14], 0x10
mov byte [ebp - 4], 2
jb 0x40c8f7
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x22d4]
call fcn.0041b1a0
lea ecx, [ebp - 0x2228]
mov byte [ebp - 4], 1
call fcn.004014f2
lea eax, [ebp - 0x410]
push eax
push 0x47b918
push str..zip
sub esp, 0x18
mov ecx, esp
push 0x15
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
push str.PCClientAccessory.zip
mov byte [ecx], 0
call fcn.00401d51
lea eax, [ebp - 0x2228]
push eax
call fcn.004143a0
add esp, 0x24
cmp dword [eax + 0x14], 0x10
mov byte [ebp - 4], 3
jb 0x40c960
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x22f4]
call fcn.0041b1a0
lea ecx, [ebp - 0x2228]
mov byte [ebp - 4], 1
call fcn.004014f2
lea eax, [ebp - 0x410]
push eax
push edi
lea eax, [esi + 0x2c1c]
push eax
push str.Uncompress__s_into__s_and__s
push 0x2c8
push str.c:_rhub2code_setuphandler_setuphandler.cpp
push 0
push str.SetupHandler::ProcessDownloadedClient
push dword [0x4a9068]
call fcn.0040ee70
push edi
lea eax, [ebp - 0x610]
push str._sWorkingDirectory.txt
push eax
call fcn.00407cd0
push 0x200
lea eax, [ebp - 0x1210]
push eax
lea eax, [ebp - 0x610]
push eax
call fcn.00416610
lea eax, [ebp - 0x610]
push eax
push str.sWorkingDirectoryFile:__s
push 0x2d0
push str.c:_rhub2code_setuphandler_setuphandler.cpp
push 0
push str.SetupHandler::ProcessDownloadedClient
push dword [0x4a9068]
call fcn.0040ee70
add esp, 0x58
lea eax, [ebp - 0x1210]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x40cb3d
push 0x200
lea eax, [ebp - 0x210]
push 0
push eax
call fcn.00447100
lea eax, [esi + 0x261c]
push eax
lea eax, [ebp - 0x210]
push str._sWorkingDirectory.txt
push eax
call fcn.00407cd0
push 0x200
lea eax, [ebp - 0xe10]
push eax
lea eax, [ebp - 0x210]
push eax
call fcn.00416610
add esp, 0x24
lea eax, [ebp - 0xe10]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x40cae7
lea eax, [ebp - 0x1210]
push 0x47dd40
push eax
call fcn.0044f9fe
mov edx, eax
add esp, 8
mov dword [ebp - 0x22c4], edx
test edx, edx
je 0x40caba
lea ecx, [esi + 0x21c]
push ecx
lea eax, [esi + 0x261c]
push eax
push str.___WorkingDirectory____s_s____WorkingDirectory____n
push edx
call fcn.0040e260
push dword [ebp - 0x22c4]
call fcn.0044f82c
add esp, 0x14
jmp 0x40cb3d
lea eax, [ebp - 0x610]
push eax
push str.Failed_to_open_file_to_write:__s
push 0x2e5
push str.c:_rhub2code_setuphandler_setuphandler.cpp
push 0
push str.SetupHandler::ProcessDownloadedClient
push dword [0x4a9068]
call fcn.0040ee70
add esp, 0x1c
jmp 0x40cb3d
lea eax, [ebp - 0x210]
push eax
push str.sUserDefinedWorkingDirectory__s_exists
push 0x2ea
push str.c:_rhub2code_setuphandler_setuphandler.cpp
push 0
push str.SetupHandler::ProcessDownloadedClient
push dword [0x4a9068]
call fcn.0040ee70
lea eax, [ebp - 0x610]
push eax
lea eax, [ebp - 0x210]
push eax
call fcn.00411990
push 0x200
lea eax, [ebp - 0x1210]
push eax
lea eax, [ebp - 0x610]
push eax
call fcn.00416610
add esp, 0x30
push 0
push 0x47b918
lea ecx, [ebp - 0x2240]
mov dword [ebp - 0x2230], 0
mov dword [ebp - 0x222c], 0xf
mov byte [ebp - 0x2240], 0
call fcn.00401d51
push str.___SetupDirectory___
lea eax, [ebp - 0x2240]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0x2258]
push eax
call fcn.00407ec0
push edi
push eax
lea eax, [ebp - 0x2228]
mov byte [ebp - 4], 5
push eax
call fcn.00407e60
add esp, 0x18
push 0x16
push str.____SetupDirectory____n
mov ecx, eax
mov byte [ebp - 4], 6
call fcn.004068a0
lea ecx, [ebp - 0x2240]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x22e4], xmm0
movups xmmword [ebp - 0x2288], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
movq qword [ebp - 0x22c0], xmm0
movq qword [ebp - 0x2278], xmm0
mov byte [eax], 0
call fcn.00401d16
movups xmm0, xmmword [ebp - 0x22e4]
lea ecx, [ebp - 0x2288]
mov dword [ebp - 0x2278], 0
mov dword [ebp - 0x2274], 0xf
movups xmmword [ebp - 0x2240], xmm0
mov byte [ebp - 0x2288], 0
movq xmm0, qword [ebp - 0x22c0]
movq qword [ebp - 0x2230], xmm0
call fcn.004014f2
lea ecx, [ebp - 0x2228]
call fcn.004014f2
lea ecx, [ebp - 0x2258]
mov byte [ebp - 4], 4
call fcn.004014f2
push str.___SetupFile___
lea eax, [ebp - 0x2240]
push eax
lea eax, [ebp - 0x22a0]
push eax
call fcn.00407ec0
lea ecx, [esi + 0x261c]
mov byte [ebp - 4], 7
push ecx
push eax
lea eax, [ebp - 0x22b8]
push eax
call fcn.00407e60
add esp, 0x18
push 1
push 0x47cb7c
mov ecx, eax
mov byte [ebp - 4], 8
call fcn.004068a0
mov dword [ebp - 0x2248], 0
mov dword [ebp - 0x2244], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x2258], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x2248], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea edi, [esi + 0x281c]
mov byte [ebp - 4], 9
push edi
lea eax, [ebp - 0x2258]
push eax
lea eax, [ebp - 0x2228]
push eax
call fcn.00407e60
add esp, 0xc
push 0x11
push str.____SetupFile____n
mov ecx, eax
mov byte [ebp - 4], 0xa
call fcn.004068a0
lea ecx, [ebp - 0x2240]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x22e4], xmm0
movups xmmword [ebp - 0x2288], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
movq qword [ebp - 0x22c0], xmm0
movq qword [ebp - 0x2278], xmm0
mov byte [eax], 0
call fcn.00401d16
movups xmm0, xmmword [ebp - 0x22e4]
lea ecx, [ebp - 0x2288]
mov dword [ebp - 0x2278], 0
mov dword [ebp - 0x2274], 0xf
movups xmmword [ebp - 0x2240], xmm0
mov byte [ebp - 0x2288], 0
movq xmm0, qword [ebp - 0x22c0]
movq qword [ebp - 0x2230], xmm0
call fcn.004014f2
lea ecx, [ebp - 0x2228]
call fcn.004014f2
lea ecx, [ebp - 0x2258]
call fcn.004014f2
lea ecx, [ebp - 0x22b8]
call fcn.004014f2
lea ecx, [ebp - 0x22a0]
mov byte [ebp - 4], 4
call fcn.004014f2
push str.___SetupFileName___
lea eax, [ebp - 0x2240]
push eax
lea eax, [ebp - 0x22b8]
push eax
call fcn.00407ec0
push edi
push eax
lea eax, [ebp - 0x22a0]
mov byte [ebp - 4], 0xb
push eax
call fcn.00407e60
add esp, 0x18
push 0x15
push str.____SetupFileName____n
mov ecx, eax
mov byte [ebp - 4], 0xc
call fcn.004068a0
lea ecx, [ebp - 0x2240]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x22e4], xmm0
movups xmmword [ebp - 0x2258], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
movq qword [ebp - 0x22c0], xmm0
movq qword [ebp - 0x2248], xmm0
mov byte [eax], 0
call fcn.00401d16
movups xmm0, xmmword [ebp - 0x22e4]
movups xmmword [ebp - 0x2240], xmm0
movq xmm0, qword [ebp - 0x22c0]
lea ecx, [ebp - 0x2258]
movq qword [ebp - 0x2230], xmm0
mov dword [ebp - 0x2248], 0
mov dword [ebp - 0x2244], 0xf
mov byte [ebp - 0x2258], 0
call fcn.004014f2
lea ecx, [ebp - 0x22a0]
call fcn.004014f2
lea ecx, [ebp - 0x22b8]
mov byte [ebp - 4], 4
call fcn.004014f2
push str.___SetupConfigureFile___
lea eax, [ebp - 0x2240]
push eax
lea eax, [ebp - 0x22b8]
push eax
call fcn.00407ec0
lea ecx, [esi + 0x261c]
mov byte [ebp - 4], 0xd
push ecx
push eax
lea eax, [ebp - 0x22a0]
push eax
call fcn.00407e60
add esp, 0x18
push 1
push 0x47cb7c
mov ecx, eax
mov byte [ebp - 4], 0xe
call fcn.004068a0
mov dword [ebp - 0x2218], 0
mov dword [ebp - 0x2214], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x2228], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x2218], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
push 0xb
push str.starter.cfg
lea ecx, [ebp - 0x2228]
mov byte [ebp - 4], 0xf
call fcn.004068a0
mov dword [ebp - 0x2278], 0
mov dword [ebp - 0x2274], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x2288], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x2278], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
push 0x1a
push str.____SetupConfigureFile____n
lea ecx, [ebp - 0x2288]
mov byte [ebp - 4], 0x10
call fcn.004068a0
lea ecx, [ebp - 0x2240]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x22e4], xmm0
movups xmmword [ebp - 0x2258], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
movq qword [ebp - 0x22c0], xmm0
movq qword [ebp - 0x2248], xmm0
mov byte [eax], 0
call fcn.00401d16
movups xmm0, xmmword [ebp - 0x22e4]
mov dword [ebp - 0x2248], 0
mov dword [ebp - 0x2244], 0xf
movups xmmword [ebp - 0x2240], xmm0
mov byte [ebp - 0x2258], 0
movq xmm0, qword [ebp - 0x22c0]
movq qword [ebp - 0x2230], xmm0
lea ecx, [ebp - 0x2258]
call fcn.004014f2
lea ecx, [ebp - 0x2288]
call fcn.004014f2
lea ecx, [ebp - 0x2228]
call fcn.004014f2
lea ecx, [ebp - 0x22a0]
call fcn.004014f2
lea ecx, [ebp - 0x22b8]
mov byte [ebp - 4], 4
call fcn.004014f2
push str.___NeedToRemoveSetup___Y____NeedToRemoveSetup____n
lea eax, [ebp - 0x2240]
push eax
lea eax, [ebp - 0x22a0]
push eax
call fcn.00407ec0
mov edi, eax
add esp, 0xc
lea eax, [ebp - 0x2240]
cmp eax, edi
je 0x40d08b
mov ecx, eax
call fcn.00401d16
movups xmm0, xmmword [edi]
movups xmmword [ebp - 0x2240], xmm0
movq xmm0, qword [edi + 0x10]
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
movq qword [ebp - 0x2230], xmm0
mov byte [edi], 0
lea ecx, [ebp - 0x22a0]
call fcn.004014f2
add esi, 0x61c
lea eax, [ebp - 0x2240]
push esi
push eax
lea eax, [ebp - 0x22a0]
push eax
call fcn.00407ec0
mov edi, eax
add esp, 0xc
lea eax, [ebp - 0x2240]
cmp eax, edi
je 0x40d0ee
mov ecx, eax
call fcn.00401d16
movups xmm0, xmmword [edi]
movups xmmword [ebp - 0x2240], xmm0
movq xmm0, qword [edi + 0x10]
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
movq qword [ebp - 0x2230], xmm0
mov byte [edi], 0
lea ecx, [ebp - 0x22a0]
call fcn.004014f2
cmp dword [ebp - 0x222c], 0x10
lea ecx, [ebp - 0x2240]
cmovae ecx, dword [ebp - 0x2240]
sub esi, ecx
nop
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [esi + ecx - 1], al
test al, al
jne 0x40d110
lea ecx, [ebp - 0x2240]
call fcn.004014f2
lea ecx, [ebp - 0x22f4]
call fcn.0041b160
lea ecx, [ebp - 0x22d4]
jmp 0x40da0e
cmp byte [esi + 0x3828], 0
lea eax, [esi + 0x2e28]
lea edi, [esi + 0x2c1c]
je 0x40d160
push str.TMDownload
push eax
push str._s_s.exe
jmp 0x40d16b
push str.PCClient.zip
push eax
push 0x47cb80
push edi
call fcn.00407cd0
add esp, 0x10
lea ecx, [esi + 0x2e28]
lea eax, [esi + 0x3028]
mov dword [ebp - 0x22bc], eax
push str.tm_starter_dir
push ecx
push 0x47cb80
push eax
call fcn.00407cd0
push 0x200
lea eax, [ebp - 0x1610]
push eax
push edi
call fcn.00416610
push 0x200
lea eax, [ebp - 0xa10]
push eax
lea eax, [esi + 0x3028]
push eax
call fcn.00416610
lea eax, [ebp - 0x1610]
push 0x47dfac
push eax
call fcn.0044f9fe
add esp, 0x30
mov dword [ebp - 0x22c4], eax
test eax, eax
jne 0x40d2f6
push edi
push str.Failed_to_open_file_to_write:__s
push 0x30e
push str.c:_rhub2code_setuphandler_setuphandler.cpp
push eax
push str.SetupHandler::ProcessDownloadedClient
push dword [0x4a9068]
call fcn.0040ee70
add esp, 0x1c
lea eax, [esi + 0x261c]
cmp byte [esi + 0x3828], 0
je 0x40d223
push str.TMDownload
push eax
push str._s_s.exe
jmp 0x40d22e
push str.PCClient.zip
push eax
push 0x47cb80
push edi
call fcn.00407cd0
add esp, 0x10
lea eax, [esi + 0x261c]
cmp byte [esi + 0x4829], 0
push str.tm_starter_dir
push eax
lea eax, [esi + 0x3028]
je 0x40d259
push str._s.._s
jmp 0x40d25e
push 0x47cb80
push eax
call fcn.00407cd0
add esp, 0x10
lea eax, [ebp - 0x1610]
push 0x200
push eax
push edi
call fcn.00416610
push 0x200
lea eax, [ebp - 0xa10]
push eax
lea eax, [esi + 0x3028]
push eax
call fcn.00416610
lea eax, [ebp - 0x1610]
push 0x47dfac
push eax
call fcn.0044f9fe
add esp, 0x20
mov dword [ebp - 0x22c4], eax
test eax, eax
jne 0x40d2f6
push edi
push str.Failed_to_open_file_to_write:__s
push 0x320
push str.c:_rhub2code_setuphandler_setuphandler.cpp
push eax
push str.SetupHandler::ProcessDownloadedClient
push dword [0x4a9068]
call fcn.0040ee70
add esp, 0x1c
push 0x1000
push 0x47a198
push str.Unable_to_save_the_download_file
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
call dword [sym.imp.USER32.dll_MessageBoxW]
xor al, al
jmp 0x40da15
mov ecx, dword [esi + 0x2e20]
push eax
push 1
call fcn.0040e340
push eax
mov eax, dword [esi + 0x2e20]
push dword [eax + 0x224]
call fcn.004500eb
push dword [ebp - 0x22c4]
call fcn.0044f82c
add esp, 0x14
cmp byte [esi + 0x3828], 0
jne 0x40da13
lea eax, [esi + 0x3028]
push 0x47b918
push eax
call fcn.004140c0
add esp, 8
lea eax, [ebp - 0xa10]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x40d37f
push 0
lea eax, [ebp - 0xa10]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x40d37f
push dword [ebp - 0x22bc]
push str.Filed_to_create:__s
push 0x332
jmp 0x40c7d8
lea ecx, [ebp - 0x22e4]
call fcn.0041b140
lea eax, [esi + 0x3028]
mov dword [ebp - 4], 0x11
push eax
push edi
lea ecx, [ebp - 0x22e4]
call fcn.0041b1a0
lea eax, [esi + 0x3028]
push eax
push edi
push str.Uncompress__s_into__s
push 0x33b
push str.c:_rhub2code_setuphandler_setuphandler.cpp
push 0
push str.SetupHandler::ProcessDownloadedClient
push dword [0x4a9068]
call fcn.0040ee70
push str.TMInstaller
lea edi, [esi + 0x3028]
push edi
lea eax, [ebp - 0xc10]
push str._s_s.exe
push eax
call fcn.00407cd0
push str.TMLauncher.exe
push edi
lea eax, [ebp - 0x210]
push 0x47cb80
push eax
call fcn.00407cd0
add esp, 0x40
lea eax, [ebp - 0x2210]
push 0x200
push eax
lea eax, [ebp - 0xc10]
push eax
call fcn.00416610
push 0x200
lea eax, [ebp - 0x1e10]
push eax
lea eax, [ebp - 0x210]
push eax
call fcn.00416610
add esp, 0x18
lea eax, [ebp - 0x1e10]
push 0
push eax
lea eax, [ebp - 0x2210]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
lea eax, [ebp - 0x210]
push eax
lea eax, [ebp - 0xc10]
push eax
push str.copy_sSourceFile___s__sTargetFile___s
push 0x348
push str.c:_rhub2code_setuphandler_setuphandler.cpp
push 0
push str.SetupHandler::ProcessDownloadedClient
push dword [0x4a9068]
call fcn.0040ee70
add esp, 0x20
mov dword [ebp - 0x2260], 0
lea ecx, [ebp - 0x2270]
mov dword [ebp - 0x225c], 0xf
mov byte [ebp - 0x2270], 0
push 0
push 0x47b918
call fcn.00401d51
push str.___SetupDirectory___
lea eax, [ebp - 0x2270]
mov byte [ebp - 4], 0x12
push eax
lea eax, [ebp - 0x22b8]
push eax
call fcn.00407ec0
mov byte [ebp - 4], 0x13
push edi
push eax
lea eax, [ebp - 0x22a0]
push eax
call fcn.00407e60
add esp, 0x18
push 0x16
push str.____SetupDirectory____n
mov ecx, eax
mov byte [ebp - 4], 0x14
call fcn.004068a0
lea ecx, [ebp - 0x2270]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x22d4], xmm0
movups xmmword [ebp - 0x2228], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
movq qword [ebp - 0x22c0], xmm0
movq qword [ebp - 0x2218], xmm0
mov byte [eax], 0
call fcn.00401d16
movups xmm0, xmmword [ebp - 0x22d4]
lea ecx, [ebp - 0x2228]
mov dword [ebp - 0x2218], 0
mov dword [ebp - 0x2214], 0xf
movups xmmword [ebp - 0x2270], xmm0
mov byte [ebp - 0x2228], 0
movq xmm0, qword [ebp - 0x22c0]
movq qword [ebp - 0x2260], xmm0
call fcn.004014f2
lea ecx, [ebp - 0x22a0]
call fcn.004014f2
lea ecx, [ebp - 0x22b8]
mov byte [ebp - 4], 0x12
call fcn.004014f2
push str.___SetupFile___
lea eax, [ebp - 0x2270]
push eax
lea eax, [ebp - 0x2288]
push eax
call fcn.00407ec0
lea ecx, [esi + 0x261c]
mov byte [ebp - 4], 0x15
push ecx
push eax
lea eax, [ebp - 0x22b8]
push eax
call fcn.00407e60
add esp, 0x18
push 1
push 0x47cb7c
mov ecx, eax
mov byte [ebp - 4], 0x16
call fcn.004068a0
mov dword [ebp - 0x2248], 0
mov dword [ebp - 0x2244], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x2258], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x2248], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea edi, [esi + 0x281c]
mov byte [ebp - 4], 0x17
push edi
lea eax, [ebp - 0x2258]
push eax
lea eax, [ebp - 0x22a0]
push eax
call fcn.00407e60
add esp, 0xc
push 0x11
mov byte [ebp - 4], 0x18
push str.____SetupFile____n
mov ecx, eax
call fcn.004068a0
lea ecx, [ebp - 0x2270]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x22d4], xmm0
movups xmmword [ebp - 0x2228], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
movq qword [ebp - 0x22c0], xmm0
movq qword [ebp - 0x2218], xmm0
mov byte [eax], 0
call fcn.00401d16
movups xmm0, xmmword [ebp - 0x22d4]
lea ecx, [ebp - 0x2228]
mov dword [ebp - 0x2218], 0
mov dword [ebp - 0x2214], 0xf
movups xmmword [ebp - 0x2270], xmm0
mov byte [ebp - 0x2228], 0
movq xmm0, qword [ebp - 0x22c0]
movq qword [ebp - 0x2260], xmm0
call fcn.004014f2
lea ecx, [ebp - 0x22a0]
call fcn.004014f2
lea ecx, [ebp - 0x2258]
call fcn.004014f2
lea ecx, [ebp - 0x22b8]
call fcn.004014f2
lea ecx, [ebp - 0x2288]
mov byte [ebp - 4], 0x12
call fcn.004014f2
push str.___SetupFileName___
lea eax, [ebp - 0x2270]
push eax
lea eax, [ebp - 0x22b8]
push eax
call fcn.00407ec0
push edi
push eax
lea eax, [ebp - 0x22a0]
mov byte [ebp - 4], 0x19
push eax
call fcn.00407e60
add esp, 0x18
push 0x15
push str.____SetupFileName____n
mov ecx, eax
mov byte [ebp - 4], 0x1a
call fcn.004068a0
lea ecx, [ebp - 0x2270]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x22d4], xmm0
movups xmmword [ebp - 0x2228], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
movq qword [ebp - 0x22c0], xmm0
movq qword [ebp - 0x2218], xmm0
mov byte [eax], 0
call fcn.00401d16
movups xmm0, xmmword [ebp - 0x22d4]
lea ecx, [ebp - 0x2228]
mov dword [ebp - 0x2218], 0
mov dword [ebp - 0x2214], 0xf
movups xmmword [ebp - 0x2270], xmm0
mov byte [ebp - 0x2228], 0
movq xmm0, qword [ebp - 0x22c0]
movq qword [ebp - 0x2260], xmm0
call fcn.004014f2
lea ecx, [ebp - 0x22a0]
call fcn.004014f2
lea ecx, [ebp - 0x22b8]
mov byte [ebp - 4], 0x12
call fcn.004014f2
push str.___SetupConfigureFile___
lea eax, [ebp - 0x2270]
push eax
lea eax, [ebp - 0x22b8]
push eax
call fcn.00407ec0
lea ecx, [esi + 0x261c]
mov byte [ebp - 4], 0x1b
push ecx
push eax
lea eax, [ebp - 0x22a0]
push eax
call fcn.00407e60
add esp, 0x18
push 1
push 0x47cb7c
mov ecx, eax
mov byte [ebp - 4], 0x1c
call fcn.004068a0
mov dword [ebp - 0x2278], 0
mov dword [ebp - 0x2274], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x2288], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x2278], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
push 0xb
push str.starter.cfg
lea ecx, [ebp - 0x2288]
mov byte [ebp - 4], 0x1d
call fcn.004068a0
mov dword [ebp - 0x2248], 0
mov dword [ebp - 0x2244], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x2258], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x2248], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
push 0x1a
push str.____SetupConfigureFile____n
lea ecx, [ebp - 0x2258]
mov byte [ebp - 4], 0x1e
call fcn.004068a0
lea ecx, [ebp - 0x2270]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x22d4], xmm0
movups xmmword [ebp - 0x2228], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
movq qword [ebp - 0x22c0], xmm0
movq qword [ebp - 0x2218], xmm0
mov byte [eax], 0
call fcn.00401d16
movups xmm0, xmmword [ebp - 0x22d4]
lea ecx, [ebp - 0x2228]
mov dword [ebp - 0x2218], 0
mov dword [ebp - 0x2214], 0xf
movups xmmword [ebp - 0x2270], xmm0
mov byte [ebp - 0x2228], 0
movq xmm0, qword [ebp - 0x22c0]
movq qword [ebp - 0x2260], xmm0
call fcn.004014f2
lea ecx, [ebp - 0x2258]
call fcn.004014f2
lea ecx, [ebp - 0x2288]
call fcn.004014f2
lea ecx, [ebp - 0x22a0]
call fcn.004014f2
lea ecx, [ebp - 0x22b8]
mov byte [ebp - 4], 0x12
call fcn.004014f2
add esi, 0x61c
lea eax, [ebp - 0x2270]
push esi
push eax
lea eax, [ebp - 0x22a0]
push eax
call fcn.00407ec0
mov edi, eax
add esp, 0xc
lea eax, [ebp - 0x2270]
cmp eax, edi
je 0x40d9cf
mov ecx, eax
call fcn.00401d16
movups xmm0, xmmword [edi]
movups xmmword [ebp - 0x2270], xmm0
movq xmm0, qword [edi + 0x10]
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
movq qword [ebp - 0x2260], xmm0
mov byte [edi], 0
lea ecx, [ebp - 0x22a0]
call fcn.004014f2
cmp dword [ebp - 0x225c], 0x10
lea ecx, [ebp - 0x2270]
cmovae ecx, dword [ebp - 0x2270]
sub esi, ecx
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + esi - 1], al
test al, al
jne 0x40d9f0
lea ecx, [ebp - 0x2270]
call fcn.004014f2
lea ecx, [ebp - 0x22e4]
call fcn.0041b160
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004440d2
mov esp, ebp
pop ebp
ret