Function at 0x40c770
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 0x4762f5
mov eax, dword fs:[0]
push eax
mov eax, 0x22e8
call fcn.00444260
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 0x294
push str.c:_rhub2code_setuphandler_setuphandler.cpp
push 0
push str.SetupHandler::ProcessDownloadedClient
push dword [0x4a9068]
call fcn.0040eee0
add esp, 0x18
mov ecx, esi
call fcn.0040dd70
cmp byte [esi + 0x482d], 0
je 0x40d1ae
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.00416680
push 0x47b918
push edi
call fcn.00414130
add esp, 0x24
lea eax, [ebp - 0xa10]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x40c885
push 0
lea eax, [ebp - 0xa10]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x40c885
push edi
push str.Filed_to_create:__s
push 0x2ab
push str.c:_rhub2code_setuphandler_setuphandler.cpp
push 0
push str.SetupHandler::ProcessDownloadedClient
push dword [0x4a9068]
call fcn.0040eee0
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 0x40da85
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.00416680
lea eax, [ebp - 0x410]
push 0x47b918
push eax
call fcn.00414130
add esp, 0x20
lea eax, [ebp - 0x1a10]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x40c8fe
push 0
lea eax, [ebp - 0x1a10]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x40c8fe
lea eax, [ebp - 0x410]
push eax
push str.Filed_to_create:__s
push 0x2bd
jmp 0x40c848
lea ecx, [ebp - 0x22d4]
call fcn.0041b1a0
lea ecx, [ebp - 0x22f4]
mov dword [ebp - 4], 0
call fcn.0041b1a0
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.00414410
add esp, 0x24
cmp dword [eax + 0x14], 0x10
mov byte [ebp - 4], 2
jb 0x40c967
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x22d4]
call fcn.0041b200
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.00414410
add esp, 0x24
cmp dword [eax + 0x14], 0x10
mov byte [ebp - 4], 3
jb 0x40c9d0
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x22f4]
call fcn.0041b200
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 0x2c9
push str.c:_rhub2code_setuphandler_setuphandler.cpp
push 0
push str.SetupHandler::ProcessDownloadedClient
push dword [0x4a9068]
call fcn.0040eee0
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.00416680
lea eax, [ebp - 0x610]
push eax
push str.sWorkingDirectoryFile:__s
push 0x2d1
push str.c:_rhub2code_setuphandler_setuphandler.cpp
push 0
push str.SetupHandler::ProcessDownloadedClient
push dword [0x4a9068]
call fcn.0040eee0
add esp, 0x58
lea eax, [ebp - 0x1210]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x40cbad
push 0x200
lea eax, [ebp - 0x210]
push 0
push eax
call fcn.00447160
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.00416680
add esp, 0x24
lea eax, [ebp - 0xe10]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x40cb57
lea eax, [ebp - 0x1210]
push 0x47dd78
push eax
call fcn.0044fa5e
mov edx, eax
add esp, 8
mov dword [ebp - 0x22c4], edx
test edx, edx
je 0x40cb2a
lea ecx, [esi + 0x21c]
push ecx
lea eax, [esi + 0x261c]
push eax
push str.___WorkingDirectory____s_s____WorkingDirectory____n
push edx
call fcn.0040e2d0
push dword [ebp - 0x22c4]
call fcn.0044f88c
add esp, 0x14
jmp 0x40cbad
lea eax, [ebp - 0x610]
push eax
push str.Failed_to_open_file_to_write:__s
push 0x2e6
push str.c:_rhub2code_setuphandler_setuphandler.cpp
push 0
push str.SetupHandler::ProcessDownloadedClient
push dword [0x4a9068]
call fcn.0040eee0
add esp, 0x1c
jmp 0x40cbad
lea eax, [ebp - 0x210]
push eax
push str.sUserDefinedWorkingDirectory__s_exists
push 0x2eb
push str.c:_rhub2code_setuphandler_setuphandler.cpp
push 0
push str.SetupHandler::ProcessDownloadedClient
push dword [0x4a9068]
call fcn.0040eee0
lea eax, [ebp - 0x610]
push eax
lea eax, [ebp - 0x210]
push eax
call fcn.00411a00
push 0x200
lea eax, [ebp - 0x1210]
push eax
lea eax, [ebp - 0x610]
push eax
call fcn.00416680
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 0x40d0fb
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 0x40d15e
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 0x40d180
lea ecx, [ebp - 0x2240]
call fcn.004014f2
lea ecx, [ebp - 0x22f4]
call fcn.0041b1c0
lea ecx, [ebp - 0x22d4]
jmp 0x40da7e
cmp byte [esi + 0x3828], 0
lea eax, [esi + 0x2e28]
lea edi, [esi + 0x2c1c]
je 0x40d1d0
push str.TMDownload
push eax
push str._s_s.exe
jmp 0x40d1db
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.00416680
push 0x200
lea eax, [ebp - 0xa10]
push eax
lea eax, [esi + 0x3028]
push eax
call fcn.00416680
lea eax, [ebp - 0x1610]
push 0x47dfe4
push eax
call fcn.0044fa5e
add esp, 0x30
mov dword [ebp - 0x22c4], eax
test eax, eax
jne 0x40d366
push edi
push str.Failed_to_open_file_to_write:__s
push 0x30f
push str.c:_rhub2code_setuphandler_setuphandler.cpp
push eax
push str.SetupHandler::ProcessDownloadedClient
push dword [0x4a9068]
call fcn.0040eee0
add esp, 0x1c
lea eax, [esi + 0x261c]
cmp byte [esi + 0x3828], 0
je 0x40d293
push str.TMDownload
push eax
push str._s_s.exe
jmp 0x40d29e
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 0x40d2c9
push str._s.._s
jmp 0x40d2ce
push 0x47cb80
push eax
call fcn.00407cd0
add esp, 0x10
lea eax, [ebp - 0x1610]
push 0x200
push eax
push edi
call fcn.00416680
push 0x200
lea eax, [ebp - 0xa10]
push eax
lea eax, [esi + 0x3028]
push eax
call fcn.00416680
lea eax, [ebp - 0x1610]
push 0x47dfe4
push eax
call fcn.0044fa5e
add esp, 0x20
mov dword [ebp - 0x22c4], eax
test eax, eax
jne 0x40d366
push edi
push str.Failed_to_open_file_to_write:__s
push 0x321
push str.c:_rhub2code_setuphandler_setuphandler.cpp
push eax
push str.SetupHandler::ProcessDownloadedClient
push dword [0x4a9068]
call fcn.0040eee0
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 0x40da85
mov ecx, dword [esi + 0x2e20]
push eax
push 1
call fcn.0040e3b0
push eax
mov eax, dword [esi + 0x2e20]
push dword [eax + 0x224]
call fcn.0045014b
push dword [ebp - 0x22c4]
call fcn.0044f88c
add esp, 0x14
cmp byte [esi + 0x3828], 0
jne 0x40da83
lea eax, [esi + 0x3028]
push 0x47b918
push eax
call fcn.00414130
add esp, 8
lea eax, [ebp - 0xa10]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x40d3ef
push 0
lea eax, [ebp - 0xa10]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x40d3ef
push dword [ebp - 0x22bc]
push str.Filed_to_create:__s
push 0x333
jmp 0x40c848
lea ecx, [ebp - 0x22e4]
call fcn.0041b1a0
lea eax, [esi + 0x3028]
mov dword [ebp - 4], 0x11
push eax
push edi
lea ecx, [ebp - 0x22e4]
call fcn.0041b200
lea eax, [esi + 0x3028]
push eax
push edi
push str.Uncompress__s_into__s
push 0x33c
push str.c:_rhub2code_setuphandler_setuphandler.cpp
push 0
push str.SetupHandler::ProcessDownloadedClient
push dword [0x4a9068]
call fcn.0040eee0
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.00416680
push 0x200
lea eax, [ebp - 0x1e10]
push eax
lea eax, [ebp - 0x210]
push eax
call fcn.00416680
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 0x349
push str.c:_rhub2code_setuphandler_setuphandler.cpp
push 0
push str.SetupHandler::ProcessDownloadedClient
push dword [0x4a9068]
call fcn.0040eee0
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 0x40da3f
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 0x40da60
lea ecx, [ebp - 0x2270]
call fcn.004014f2
lea ecx, [ebp - 0x22e4]
call fcn.0041b1c0
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.00444138
mov esp, ebp
pop ebp
ret