Function at 0x4117d0
Capabilities:
Check if file exists
Copy file
Create directory
Get file attributes

Disassembly:
push 0xffffffffffffffff
push 0x44965e
mov eax, dword fs:[0]
push eax
mov eax, 0x20dc
mov dword fs:[0], esp
call fcn.004213b0
mov eax, dword [0x4668f4]
xor eax, esp
push ebx
push ebp
push esi
push edi
push str.Enter_...
push 0x1bd
push str..SetupHandler.cpp
xor ebx, ebx
push ebx
mov dword [esp + 0x20f8], eax
mov eax, dword [0x467980]
push str.SetupHandler::ProcessDownloadedClient
push eax
mov ebp, ecx
call fcn.0040ebc0
add esp, 0x18
mov ecx, ebp
call fcn.004106b0
cmp byte [ebp + 0x222d], bl
je 0x412097
push str.tm_starter_dir
lea eax, [ebp + 0xe1c]
push eax
lea esi, [ebp + 0x1828]
push 0x44c45c
push esi
call fcn.004217f1
push 0x200
lea ecx, [esp + 0x2fc]
push ecx
push esi
call fcn.00405790
push 0x44c409
push esi
call fcn.00405820
mov edi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
add esp, 0x24
lea edx, [esp + 0x2e8]
push edx
call edi
cmp eax, 0xffffffff
jne 0x4118c3
push ebx
lea eax, [esp + 0x2ec]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x4118c3
mov ecx, dword [0x467980]
push esi
push str.Filed_to_create:__s
push 0x1d2
push str..SetupHandler.cpp
push ebx
push str.SetupHandler::ProcessDownloadedClient
push ecx
jmp 0x4122ca
push esi
lea edx, [esp + 0xec]
push str._sAccessory
push edx
call fcn.004217f1
push 0x200
lea eax, [esp + 0x10f8]
push eax
lea ecx, [esp + 0xfc]
push ecx
call fcn.00405790
lea edx, [esp + 0x100]
push 0x44c409
push edx
call fcn.00405820
add esp, 0x20
lea eax, [esp + 0x10e8]
push eax
call edi
cmp eax, 0xffffffff
jne 0x41193e
push ebx
lea ecx, [esp + 0x10ec]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x41193e
lea edx, [esp + 0xe8]
push edx
push str.Filed_to_create:__s
push 0x1e4
jmp 0x4122b9
lea ecx, [esp + 0x84]
call fcn.004385d0
lea ecx, [esp + 0xa0]
mov dword [esp + 0x20f4], ebx
call fcn.004385d0
push esi
push 0x44c409
push str..zip
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x38], esp
push 0xc
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], ebx
push str.PCClient.zip
mov byte [esp + 0x2124], 1
mov byte [ecx + 4], bl
call fcn.004014a5
lea ecx, [esp + 0x3c]
push ecx
call fcn.0040a840
add esp, 0x28
mov ecx, dword [eax + 0x18]
mov edi, 0x10
cmp ecx, edi
mov byte [esp + 0x20f8], 2
jb 0x4119b8
mov eax, dword [eax + 4]
jmp 0x4119bb
add eax, 4
push eax
lea ecx, [esp + 0x8c]
call fcn.004386c0
cmp dword [esp + 0x2c], edi
mov byte [esp + 0x20f4], 1
jb 0x4119e3
mov edx, dword [esp + 0x18]
push edx
call fcn.0043beef
add esp, 4
lea eax, [esp + 0xe8]
push eax
push 0x44c409
push str..zip
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x38], esp
push 0x15
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], ebx
push str.PCClientAccessory.zip
mov byte [ecx + 4], bl
call fcn.004014a5
lea ecx, [esp + 0x3c]
push ecx
call fcn.0040a840
add esp, 0x28
cmp dword [eax + 0x18], edi
mov byte [esp + 0x20f8], 3
jb 0x411a36
mov eax, dword [eax + 4]
jmp 0x411a39
add eax, 4
push eax
lea ecx, [esp + 0xa8]
call fcn.004386c0
cmp dword [esp + 0x2c], edi
mov byte [esp + 0x20f4], 1
jb 0x411a61
mov edx, dword [esp + 0x18]
push edx
call fcn.0043beef
add esp, 4
mov edx, dword [0x467980]
lea eax, [esp + 0xe8]
push eax
push esi
lea ecx, [ebp + 0x141c]
push ecx
push str.Uncompress__s_into__s_and__s
push 0x1f0
push str..SetupHandler.cpp
push ebx
push str.SetupHandler::ProcessDownloadedClient
push edx
call fcn.0040ebc0
push esi
lea eax, [esp + 0xb10]
push str._sWorkingDirectory.txt
push eax
call fcn.004217f1
push 0x200
lea ecx, [esp + 0x151c]
push ecx
lea edx, [esp + 0xb20]
push edx
call fcn.00405790
lea eax, [esp + 0x1524]
push 0x44d180
push eax
call fcn.00421e84
add esp, 0x44
cmp eax, ebx
mov dword [esp + 0x10], eax
je 0x411b08
mov edx, dword [esp + 0x10]
lea ecx, [ebp + 0x21c]
push ecx
lea eax, [ebp + 0xe1c]
push eax
push str.___WorkingDirectory____s_s____WorkingDirectory____n
push edx
call fcn.00423396
mov eax, dword [esp + 0x20]
push eax
call fcn.00421dd7
add esp, 0x14
jmp 0x411b34
mov edx, dword [0x467980]
lea ecx, [esp + 0xae8]
push ecx
push str.Filed_to_open_file_to_write:__s
push 0x201
push str..SetupHandler.cpp
push ebx
push str.SetupHandler::ProcessDownloadedClient
push edx
call fcn.0040ebc0
add esp, 0x1c
push ebx
push 0x44c409
lea ecx, [esp + 0xd4]
mov dword [esp + 0xec], 0xf
mov dword [esp + 0xe8], ebx
mov byte [esp + 0xd8], bl
call fcn.004014a5
push str.___SetupDirectory___
lea eax, [esp + 0xd0]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov byte [esp + 0x2100], 4
call fcn.00403900
push esi
push eax
lea edx, [esp + 0x7c]
push edx
mov byte [esp + 0x210c], 5
call fcn.00403900
push str.____SetupDirectory____n
push eax
lea eax, [esp + 0xd0]
push eax
mov byte [esp + 0x2118], 6
call fcn.00403900
add esp, 0x24
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0xd8]
mov byte [esp + 0x2100], 7
call fcn.00401416
cmp dword [esp + 0xc8], edi
jb 0x411be1
mov ecx, dword [esp + 0xb4]
push ecx
call fcn.0043beef
add esp, 4
cmp dword [esp + 0x80], edi
mov esi, 0xf
mov dword [esp + 0xc8], esi
mov dword [esp + 0xc4], ebx
mov byte [esp + 0xb4], bl
jb 0x411c11
mov edx, dword [esp + 0x6c]
push edx
call fcn.0043beef
add esp, 4
cmp dword [esp + 0x2c], edi
mov dword [esp + 0x80], esi
mov dword [esp + 0x7c], ebx
mov byte [esp + 0x6c], bl
mov byte [esp + 0x20f4], 4
jb 0x411c3b
mov eax, dword [esp + 0x18]
push eax
call fcn.0043beef
add esp, 4
push str.___SetupFile___
lea ecx, [esp + 0xd0]
push ecx
lea edx, [esp + 0x54]
push edx
call fcn.00403900
lea ecx, [ebp + 0xe1c]
push ecx
push eax
lea eax, [esp + 0x28]
push eax
mov byte [esp + 0x210c], 8
call fcn.00403900
push 0x44c470
push eax
lea ecx, [esp + 0x50]
push ecx
mov byte [esp + 0x2118], 9
call fcn.00403900
lea esi, [ebp + 0x101c]
push esi
push eax
lea edx, [esp + 0x94]
push edx
mov byte [esp + 0x2124], 0xa
call fcn.00403900
push str.____SetupFile____n
push eax
lea eax, [esp + 0xe8]
push eax
mov byte [esp + 0x2130], 0xb
call fcn.00403900
add esp, 0x3c
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0xd8]
mov byte [esp + 0x2100], 0xc
call fcn.00401416
cmp dword [esp + 0xc8], edi
jb 0x411cf0
mov ecx, dword [esp + 0xb4]
push ecx
call fcn.0043beef
add esp, 4
cmp dword [esp + 0x80], edi
mov dword [esp + 0xc8], 0xf
mov dword [esp + 0xc4], ebx
mov byte [esp + 0xb4], bl
jb 0x411d1f
mov edx, dword [esp + 0x6c]
push edx
call fcn.0043beef
add esp, 4
cmp dword [esp + 0x48], edi
mov dword [esp + 0x80], 0xf
mov dword [esp + 0x7c], ebx
mov byte [esp + 0x6c], bl
jb 0x411d45
mov eax, dword [esp + 0x34]
push eax
call fcn.0043beef
add esp, 4
cmp dword [esp + 0x2c], edi
mov dword [esp + 0x48], 0xf
mov dword [esp + 0x44], ebx
mov byte [esp + 0x34], bl
jb 0x411d68
mov ecx, dword [esp + 0x18]
push ecx
call fcn.0043beef
add esp, 4
cmp dword [esp + 0x64], edi
mov dword [esp + 0x2c], 0xf
mov dword [esp + 0x28], ebx
mov byte [esp + 0x18], bl
mov byte [esp + 0x20f4], 4
jb 0x411d93
mov edx, dword [esp + 0x50]
push edx
call fcn.0043beef
add esp, 4
push str.___SetupFileName___
lea eax, [esp + 0xd0]
push eax
lea ecx, [esp + 0x54]
push ecx
call fcn.00403900
push esi
push eax
lea edx, [esp + 0x44]
push edx
mov byte [esp + 0x210c], 0xd
call fcn.00403900
push str.____SetupFileName____n
push eax
lea eax, [esp + 0x34]
push eax
mov byte [esp + 0x2118], 0xe
call fcn.00403900
add esp, 0x24
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0xd8]
mov byte [esp + 0x2100], 0xf
call fcn.00401416
cmp dword [esp + 0x2c], edi
jb 0x411e04
mov ecx, dword [esp + 0x18]
push ecx
call fcn.0043beef
add esp, 4
cmp dword [esp + 0x48], edi
mov esi, 0xf
mov dword [esp + 0x2c], esi
mov dword [esp + 0x28], ebx
mov byte [esp + 0x18], bl
jb 0x411e28
mov edx, dword [esp + 0x34]
push edx
call fcn.0043beef
add esp, 4
cmp dword [esp + 0x64], edi
mov dword [esp + 0x48], esi
mov dword [esp + 0x44], ebx
mov byte [esp + 0x34], bl
mov byte [esp + 0x20f4], 4
jb 0x411e4f
mov eax, dword [esp + 0x50]
push eax
call fcn.0043beef
add esp, 4
push str.___SetupConfigureFile___
lea ecx, [esp + 0xd0]
push ecx
lea edx, [esp + 0x54]
push edx
call fcn.00403900
lea ecx, [ebp + 0xe1c]
push ecx
push eax
lea eax, [esp + 0x7c]
push eax
mov byte [esp + 0x210c], 0x10
call fcn.00403900
push 0x44c470
push eax
lea ecx, [esp + 0xd0]
push ecx
mov byte [esp + 0x2118], 0x11
call fcn.00403900
push str.starter.cfg
push eax
lea edx, [esp + 0x5c]
push edx
mov byte [esp + 0x2124], 0x12
call fcn.00403900
push str.____SetupConfigureFile____n
push eax
lea eax, [esp + 0x4c]
push eax
mov byte [esp + 0x2130], 0x13
call fcn.00403900
add esp, 0x3c
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0xd8]
mov byte [esp + 0x2100], 0x14
call fcn.00401416
cmp dword [esp + 0x2c], edi
jb 0x411ef9
mov ecx, dword [esp + 0x18]
push ecx
call fcn.0043beef
add esp, 4
cmp dword [esp + 0x48], edi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x28], ebx
mov byte [esp + 0x18], bl
jb 0x411f18
mov edx, dword [esp + 0x34]
push edx
call fcn.0043beef
add esp, 4
cmp dword [esp + 0xc8], edi
mov dword [esp + 0x48], esi
mov dword [esp + 0x44], ebx
mov byte [esp + 0x34], bl
jb 0x411f3d
mov eax, dword [esp + 0xb4]
push eax
call fcn.0043beef
add esp, 4
cmp dword [esp + 0x80], edi
mov dword [esp + 0xc8], esi
mov dword [esp + 0xc4], ebx
mov byte [esp + 0xb4], bl
jb 0x411f68
mov ecx, dword [esp + 0x6c]
push ecx
call fcn.0043beef
add esp, 4
cmp dword [esp + 0x64], edi
mov dword [esp + 0x80], esi
mov dword [esp + 0x7c], ebx
mov byte [esp + 0x6c], bl
mov byte [esp + 0x20f4], 4
jb 0x411f92
mov edx, dword [esp + 0x50]
push edx
call fcn.0043beef
add esp, 4
push str.___NeedToRemoveSetup___Y____NeedToRemoveSetup____n
lea eax, [esp + 0xd0]
push eax
lea ecx, [esp + 0x54]
push ecx
call fcn.00403900
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0xd8]
mov byte [esp + 0x2100], 0x15
call fcn.00401416
cmp dword [esp + 0x64], edi
mov byte [esp + 0x20f4], 4
jb 0x411fdf
mov edx, dword [esp + 0x50]
push edx
call fcn.0043beef
add esp, 4
add ebp, 0x61c
push ebp
lea eax, [esp + 0xd0]
push eax
lea ecx, [esp + 0x54]
push ecx
call fcn.00403900
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0xd8]
mov byte [esp + 0x2100], 0x16
call fcn.00401416
cmp dword [esp + 0x64], edi
jb 0x412026
mov edx, dword [esp + 0x50]
push edx
call fcn.0043beef
add esp, 4
mov esi, dword [esp + 0xe4]
cmp esi, edi
mov ecx, dword [esp + 0xd0]
jae 0x41203f
lea ecx, [esp + 0xd0]
mov edx, ebp
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
cmp al, bl
jne 0x412041
cmp esi, edi
jb 0x41205f
mov eax, dword [esp + 0xd0]
push eax
call fcn.0043beef
add esp, 4
lea ecx, [esp + 0xa0]
mov dword [esp + 0xe4], 0xf
mov dword [esp + 0xe0], ebx
mov byte [esp + 0xd0], bl
mov byte [esp + 0x20f4], bl
call fcn.004385e0
lea ecx, [esp + 0x84]
jmp 0x4128de
cmp byte [ebp + 0x2028], bl
lea edi, [ebp + 0x141c]
lea eax, [ebp + 0x1628]
je 0x4120b8
push str.TMDownload
push eax
push str._s_s.exe
jmp 0x4120c3
push str.PCClient.zip
push eax
push 0x44c45c
push edi
call fcn.004217f1
add esp, 0x10
push str.tm_starter_dir
lea eax, [ebp + 0x1628]
push eax
lea esi, [ebp + 0x1828]
push 0x44c45c
push esi
call fcn.004217f1
push 0x200
lea ecx, [esp + 0xcfc]
push ecx
push edi
call fcn.00405790
push 0x200
lea edx, [esp + 0x308]
push edx
push esi
call fcn.00405790
lea eax, [esp + 0xd10]
push 0x44e524
push eax
call fcn.00421e84
add esp, 0x30
cmp eax, ebx
mov dword [esp + 0x10], eax
jne 0x41223a
mov ecx, dword [0x467980]
push edi
push str.Filed_to_open_file_to_write:__s
push 0x221
push str..SetupHandler.cpp
push ebx
push str.SetupHandler::ProcessDownloadedClient
push ecx
call fcn.0040ebc0
mov al, byte [ebp + 0x2028]
add esp, 0x1c
cmp al, bl
lea eax, [ebp + 0xe1c]
je 0x412172
push str.TMDownload
push eax
push str._s_s.exe
jmp 0x41217d
push str.PCClient.zip
push eax
push 0x44c45c
push edi
call fcn.004217f1
mov al, byte [ebp + 0x2229]
add esp, 0x10
cmp al, bl
push str.tm_starter_dir
lea eax, [ebp + 0xe1c]
push eax
je 0x4121a3
push str._s.._s
jmp 0x4121a8
push 0x44c45c
push esi
call fcn.004217f1
add esp, 0x10
push 0x200
lea edx, [esp + 0xcec]
push edx
push edi
call fcn.00405790
push 0x200
lea eax, [esp + 0x2f8]
push eax
push esi
call fcn.00405790
lea ecx, [esp + 0xd00]
push 0x44e524
push ecx
call fcn.00421e84
add esp, 0x20
cmp eax, ebx
mov dword [esp + 0x10], eax
jne 0x41223a
mov edx, dword [0x467980]
push edi
push str.Filed_to_open_file_to_write:__s
push 0x233
push str..SetupHandler.cpp
push ebx
push str.SetupHandler::ProcessDownloadedClient
push edx
call fcn.0040ebc0
add esp, 0x1c
push 0x1000
push 0x44e514
push str.Unable_to_save_the_download_file
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x4128ee
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp + 0x1620]
push eax
push 1
call fcn.004136c0
mov ecx, dword [ebp + 0x1620]
mov edx, dword [ecx + 0x224]
push eax
push edx
call fcn.00423901
mov eax, dword [esp + 0x20]
push eax
call fcn.00421dd7
mov al, byte [ebp + 0x2028]
add esp, 0x14
cmp al, bl
jne 0x4128ee
push 0x44c409
push esi
call fcn.00405820
add esp, 8
lea ecx, [esp + 0x2e8]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x4122f3
push ebx
lea edx, [esp + 0x2ec]
push edx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x4122f3
push esi
push str.Filed_to_create:__s
push 0x245
mov eax, dword [0x467980]
push str..SetupHandler.cpp
push ebx
push str.SetupHandler::ProcessDownloadedClient
push eax
call fcn.0040ebc0
add esp, 0x1c
push 0x1000
push 0x44e514
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]
jmp 0x4128ee
lea ecx, [esp + 0x68]
call fcn.004385d0
push esi
push edi
lea ecx, [esp + 0x70]
mov dword [esp + 0x20fc], 0x17
call fcn.004386c0
mov ecx, dword [0x467980]
push esi
push edi
push str.Uncompress__s_into__s
push 0x24e
push str..SetupHandler.cpp
push ebx
push str.SetupHandler::ProcessDownloadedClient
push ecx
call fcn.0040ebc0
push str.TMInstaller
push esi
lea edx, [esp + 0x910]
push str._s_s.exe
push edx
call fcn.004217f1
push str.TMLauncher.exe
push esi
lea eax, [esp + 0x720]
push 0x44c45c
push eax
call fcn.004217f1
add esp, 0x40
push 0x200
lea ecx, [esp + 0x1cec]
push ecx
lea edx, [esp + 0x8f0]
push edx
call fcn.00405790
push 0x200
lea eax, [esp + 0x18f8]
push eax
lea ecx, [esp + 0x6fc]
push ecx
call fcn.00405790
add esp, 0x18
push ebx
lea edx, [esp + 0x18ec]
push edx
lea eax, [esp + 0x1cf0]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov eax, dword [0x467980]
lea ecx, [esp + 0x6e8]
push ecx
lea edx, [esp + 0x8ec]
push edx
push str.copy_sSourceFile___s__sTargetFile___s
push 0x25b
push str..SetupHandler.cpp
push ebx
push str.SetupHandler::ProcessDownloadedClient
push eax
call fcn.0040ebc0
add esp, 0x20
push 0x44c409
lea ecx, [esp + 0xb4]
call fcn.00401531
push str.___SetupDirectory___
lea ecx, [esp + 0xb4]
push ecx
lea edx, [esp + 0x54]
push edx
mov byte [esp + 0x2100], 0x18
call fcn.00403900
push esi
push eax
lea eax, [esp + 0x44]
push eax
mov byte [esp + 0x210c], 0x19
call fcn.00403900
push str.____SetupDirectory____n
push eax
lea ecx, [esp + 0x34]
push ecx
mov byte [esp + 0x2118], 0x1a
call fcn.00403900
add esp, 0x24
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0xbc]
mov byte [esp + 0x2100], 0x1b
call fcn.00401416
mov eax, dword [esp + 0x2c]
mov esi, 0x10
cmp eax, esi
jb 0x41247a
mov edx, dword [esp + 0x18]
push edx
call fcn.0043beef
add esp, 4
cmp dword [esp + 0x48], esi
mov edi, 0xf
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], ebx
mov byte [esp + 0x18], bl
jb 0x41249e
mov eax, dword [esp + 0x34]
push eax
call fcn.0043beef
add esp, 4
cmp dword [esp + 0x64], esi
mov dword [esp + 0x48], edi
mov dword [esp + 0x44], ebx
mov byte [esp + 0x34], bl
mov byte [esp + 0x20f4], 0x18
jb 0x4124c5
mov ecx, dword [esp + 0x50]
push ecx
call fcn.0043beef
add esp, 4
push str.___SetupFile___
lea edx, [esp + 0xb4]
push edx
lea eax, [esp + 0x54]
push eax
call fcn.00403900
lea ecx, [ebp + 0xe1c]
push ecx
push eax
lea ecx, [esp + 0x98]
push ecx
mov byte [esp + 0x210c], 0x1c
call fcn.00403900
push 0x44c470
push eax
lea edx, [esp + 0xec]
push edx
mov byte [esp + 0x2118], 0x1d
call fcn.00403900
lea edi, [ebp + 0x101c]
push edi
push eax
lea eax, [esp + 0x5c]
push eax
mov byte [esp + 0x2124], 0x1e
call fcn.00403900
push str.____SetupFile____n
push eax
lea ecx, [esp + 0x4c]
push ecx
mov byte [esp + 0x2130], 0x1f
call fcn.00403900
add esp, 0x3c
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0xbc]
mov byte [esp + 0x2100], 0x20
call fcn.00401416
cmp dword [esp + 0x2c], esi
jb 0x412574
mov edx, dword [esp + 0x18]
push edx
call fcn.0043beef
add esp, 4
cmp dword [esp + 0x48], esi
mov dword [esp + 0x2c], 0xf
mov dword [esp + 0x28], ebx
mov byte [esp + 0x18], bl
jb 0x412597
mov eax, dword [esp + 0x34]
push eax
call fcn.0043beef
add esp, 4
cmp dword [esp + 0xe4], esi
mov dword [esp + 0x48], 0xf
mov dword [esp + 0x44], ebx
mov byte [esp + 0x34], bl
jb 0x4125c0
mov ecx, dword [esp + 0xd0]
push ecx
call fcn.0043beef
add esp, 4
cmp dword [esp + 0x9c], esi
mov dword [esp + 0xe4], 0xf
mov dword [esp + 0xe0], ebx
mov byte [esp + 0xd0], bl
jb 0x4125f2
mov edx, dword [esp + 0x88]
push edx
call fcn.0043beef
add esp, 4
cmp dword [esp + 0x64], esi
mov dword [esp + 0x9c], 0xf
mov dword [esp + 0x98], ebx
mov byte [esp + 0x88], bl
mov byte [esp + 0x20f4], 0x18
jb 0x412626
mov eax, dword [esp + 0x50]
push eax
call fcn.0043beef
add esp, 4
push str.___SetupFileName___
lea ecx, [esp + 0xb4]
push ecx
lea edx, [esp + 0x54]
push edx
call fcn.00403900
push edi
push eax
lea eax, [esp + 0x44]
push eax
mov byte [esp + 0x210c], 0x21
call fcn.00403900
push str.____SetupFileName____n
push eax
lea ecx, [esp + 0x34]
push ecx
mov byte [esp + 0x2118], 0x22
call fcn.00403900
add esp, 0x24
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0xbc]
mov byte [esp + 0x2100], 0x23
call fcn.00401416
cmp dword [esp + 0x2c], esi
jb 0x412697
mov edx, dword [esp + 0x18]
push edx
call fcn.0043beef
add esp, 4
cmp dword [esp + 0x48], esi
mov edi, 0xf
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], ebx
mov byte [esp + 0x18], bl
jb 0x4126bb
mov eax, dword [esp + 0x34]
push eax
call fcn.0043beef
add esp, 4
cmp dword [esp + 0x64], esi
mov dword [esp + 0x48], edi
mov dword [esp + 0x44], ebx
mov byte [esp + 0x34], bl
mov byte [esp + 0x20f4], 0x18
jb 0x4126e2
mov ecx, dword [esp + 0x50]
push ecx
call fcn.0043beef
add esp, 4
push str.___SetupConfigureFile___
lea edx, [esp + 0xb4]
push edx
lea eax, [esp + 0x54]
push eax
call fcn.00403900
lea ecx, [ebp + 0xe1c]
push ecx
push eax
lea ecx, [esp + 0x98]
push ecx
mov byte [esp + 0x210c], 0x24
call fcn.00403900
push 0x44c470
push eax
lea edx, [esp + 0xec]
push edx
mov byte [esp + 0x2118], 0x25
call fcn.00403900
push str.starter.cfg
push eax
lea eax, [esp + 0x5c]
push eax
mov byte [esp + 0x2124], 0x26
call fcn.00403900
push str.____SetupConfigureFile____n
push eax
lea ecx, [esp + 0x4c]
push ecx
mov byte [esp + 0x2130], 0x27
call fcn.00403900
add esp, 0x3c
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0xbc]
mov byte [esp + 0x2100], 0x28
call fcn.00401416
cmp dword [esp + 0x2c], esi
jb 0x41278f
mov edx, dword [esp + 0x18]
push edx
call fcn.0043beef
add esp, 4
cmp dword [esp + 0x48], esi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], ebx
mov byte [esp + 0x18], bl
jb 0x4127ae
mov eax, dword [esp + 0x34]
push eax
call fcn.0043beef
add esp, 4
cmp dword [esp + 0xe4], esi
mov dword [esp + 0x48], edi
mov dword [esp + 0x44], ebx
mov byte [esp + 0x34], bl
jb 0x4127d3
mov ecx, dword [esp + 0xd0]
push ecx
call fcn.0043beef
add esp, 4
cmp dword [esp + 0x9c], esi
mov dword [esp + 0xe4], edi
mov dword [esp + 0xe0], ebx
mov byte [esp + 0xd0], bl
jb 0x412801
mov edx, dword [esp + 0x88]
push edx
call fcn.0043beef
add esp, 4
cmp dword [esp + 0x64], esi
mov dword [esp + 0x9c], edi
mov dword [esp + 0x98], ebx
mov byte [esp + 0x88], bl
mov byte [esp + 0x20f4], 0x18
jb 0x412831
mov eax, dword [esp + 0x50]
push eax
call fcn.0043beef
add esp, 4
add ebp, 0x61c
push ebp
lea ecx, [esp + 0xb4]
push ecx
lea edx, [esp + 0x1c]
push edx
call fcn.00403900
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0xbc]
mov byte [esp + 0x2100], 0x29
call fcn.00401416
cmp dword [esp + 0x2c], esi
jb 0x412878
mov eax, dword [esp + 0x18]
push eax
call fcn.0043beef
add esp, 4
mov edi, dword [esp + 0xc8]
cmp edi, esi
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x2c], 0xf
mov dword [esp + 0x28], ebx
mov byte [esp + 0x18], bl
jae 0x4128a1
lea ecx, [esp + 0xb4]
mov edx, ebp
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
cmp al, bl
jne 0x4128a3
cmp edi, esi
jb 0x4128c1
mov ecx, dword [esp + 0xb4]
push ecx
call fcn.0043beef
add esp, 4
mov dword [esp + 0xc8], 0xf
mov dword [esp + 0xc4], ebx
mov byte [esp + 0xb4], bl
lea ecx, [esp + 0x68]
mov dword [esp + 0x20f4], 0xffffffff
call fcn.004385e0
mov ecx, dword [esp + 0x20ec]
pop edi
pop esi
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x20e0]
pop ebp
pop ebx
xor ecx, esp
call fcn.004205fd
add esp, 0x20e8
ret