Function at 0x40f54d
Capabilities:
Create process on windows

Disassembly:
push 0x45c
mov eax, 0x5f05f9
call fcn.005c5e27
mov eax, dword [ebp + 8]
mov dword [ebp - 0x468], eax
mov edi, pe_nt_image_headers32
push edi
lea eax, [ebp - 0x110]
push eax
xor esi, esi
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x40f5a8
push str.GetModuleFileName_Failed
push 0x3d4
push 4
push dword [0x6686d0]
mov ebx, str.CUpdateThread::OnDownloadLauncherCompleted
mov edi, str.UpdateThread.cpp
call fcn.004169e0
add esp, 0x10
jmp 0x40f81a
push 0xf
pop eax
mov dword [ebp - 0x418], eax
mov dword [ebp - 0x41c], esi
mov byte [ebp - 0x42c], 0
mov dword [ebp - 4], esi
mov dword [ebp - 0x434], eax
mov dword [ebp - 0x438], esi
mov byte [ebp - 0x448], 0
mov byte [ebp - 4], 1
mov dword [ebp - 0x450], eax
lea eax, [ebp - 0x110]
mov dword [ebp - 0x454], esi
mov byte [ebp - 0x464], 0
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40f5f4
sub eax, ecx
push eax
lea eax, [ebp - 0x110]
push eax
lea ecx, [ebp - 0x464]
call fcn.004022cd
lea eax, [ebp - 0x448]
push eax
lea edx, [ebp - 0x42c]
lea ecx, [ebp - 0x464]
mov byte [ebp - 4], 2
call fcn.0047a050
pop ecx
mov bl, al
push esi
neg bl
push 1
lea ecx, [ebp - 0x464]
sbb bl, bl
mov byte [ebp - 4], 1
call fcn.00402696
inc bl
je 0x40f6b6
cmp dword [ebp - 0x434], 0x10
mov ecx, dword [ebp - 0x448]
jae 0x40f65e
lea ecx, [ebp - 0x448]
cmp dword [ebp - 0x418], 0x10
mov eax, dword [ebp - 0x42c]
jae 0x40f673
lea eax, [ebp - 0x42c]
push ecx
push eax
lea eax, [ebp - 0x110]
push eax
push str.SplitExeDirFile_Failed_szPath_s_strDir_s_strName_s
push 0x3dc
push 4
push dword [0x6686d0]
mov ebx, str.CUpdateThread::OnDownloadLauncherCompleted
mov edi, str.UpdateThread.cpp
call fcn.004169e0
add esp, 0x1c
push 0
push 1
lea ecx, [ebp - 0x448]
call fcn.00402696
push 0
jmp 0x40f80d
cmp dword [ebp - 0x434], 0x10
mov eax, dword [ebp - 0x448]
jae 0x40f6cb
lea eax, [ebp - 0x448]
push eax
call fcn.0040ae81
push eax
push str._slauncher___s
lea eax, [ebp - 0x210]
push edi
push eax
call fcn.005be145
lea eax, [ebp - 0x210]
push eax
lea eax, [ebp - 0x110]
push eax
push 5
pop eax
call fcn.0047a960
add esp, 0x1c
test al, al
jne 0x40f72a
push str.CopyFileSafe_Failed
push 0x3e3
push 4
push dword [0x6686d0]
mov ebx, str.CUpdateThread::OnDownloadLauncherCompleted
mov edi, str.UpdateThread.cpp
call fcn.004169e0
add esp, 0x10
jmp 0x40f6a0
mov ebx, dword [ebp - 0x468]
add ebx, 0xec
cmp dword [ebx + 0x14], 0x10
jb 0x40f740
mov ecx, dword [ebx]
jmp 0x40f742
mov ecx, ebx
cmp dword [ebp - 0x418], 0x10
mov eax, dword [ebp - 0x42c]
jae 0x40f757
lea eax, [ebp - 0x42c]
push ecx
push eax
push str._s_s.exe
lea eax, [ebp - 0x410]
push edi
push eax
call fcn.005be145
add esp, 0x14
cmp dword [ebx + 0x14], 0x10
jb 0x40f776
mov ebx, dword [ebx]
lea eax, [ebp - 0x110]
push eax
push ebx
lea eax, [ebp - 0x410]
push eax
push str.1___s____s____s_
lea eax, [ebp - 0x310]
push edi
push eax
call fcn.005be145
add esp, 0x18
push 5
push esi
lea eax, [ebp - 0x310]
push eax
lea eax, [ebp - 0x210]
push eax
push str.open
push esi
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
lea eax, [ebp - 0x310]
push eax
lea eax, [ebp - 0x210]
push eax
push str.ShellExcute_open__s__s
push 0x3ed
push 2
push dword [0x6686d0]
mov ebx, str.CUpdateThread::OnDownloadLauncherCompleted
mov edi, str.UpdateThread.cpp
call fcn.004169e0
mov eax, dword [ebp - 0x468]
add esp, 0x18
xor edi, edi
push edi
push edi
push 0x10
push dword [eax + 0x58]
call dword [sym.imp.USER32.dll_PostMessageA]
push edi
push 1
lea ecx, [ebp - 0x448]
call fcn.00402696
push edi
push 1
lea ecx, [ebp - 0x42c]
call fcn.00402696
call fcn.005c5eaa
ret 4