Function at 0x415603
Capabilities:
Accept command line arguments
Set environment variable

Disassembly:
sub esp, 0xe0
mov eax, dword [0x43565c]
xor eax, esp
mov dword [esp + 0xdc], eax
push ebx
push ebp
push esi
push edi
push 1
call fcn.0040702b
push 0x800
push 0x457d90
call fcn.00411acd
lea ecx, [esp + 0x10]
call fcn.004121c9
mov ebp, 0x7402
xor ebx, ebx
push ebp
push ebx
push 0x450978
call fcn.00417460
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov esi, eax
test esi, esi
je 0x4156f1
push esi
call fcn.00413ba2
cmp byte [0x459d99], bl
je 0x4156eb
push 0x42bdac
push ebx
mov esi, 0xf001f
push esi
call dword [sym.imp.KERNEL32.dll_OpenFileMappingW]
mov edi, eax
test edi, edi
je 0x4156e2
push ebp
push ebx
push ebx
push esi
push edi
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov esi, eax
test esi, esi
je 0x4156db
push ebp
push esi
push 0x450978
call fcn.00417a90
add esp, 0xc
mov byte [esi], 1
push 0x45097a
call fcn.004152a0
push 1
push ebx
mov ebp, 0x400
mov ebx, 0x45797a
push ebp
push ebx
call fcn.00405d51
push ebx
mov ecx, 0x45bd9c
call fcn.00405e07
push ebp
push ebx
call fcn.00405ea5
xor ebx, ebx
push esi
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x4156f1
push esi
call fcn.004152a0
push 0x800
mov edi, 0x467220
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push edi
push str.sfxname
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
lea eax, [esp + 0x78]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
movzx eax, word [esp + 0x86]
push eax
movzx eax, word [esp + 0x88]
push eax
movzx eax, word [esp + 0x8a]
push eax
movzx eax, word [esp + 0x8c]
push eax
movzx eax, word [esp + 0x8e]
push eax
movzx eax, word [esp + 0x8e]
push eax
movzx eax, word [esp + 0x90]
push eax
push str._4d__02d__02d__02d__02d__02d__03d
lea eax, [esp + 0xa8]
push 0x32
push eax
call fcn.00402c4f
add esp, 0x28
lea eax, [esp + 0x88]
push eax
push str.sfxstime
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov esi, eax
push 0x64
push esi
mov dword [0x457d88], esi
mov dword [0x457d84], esi
call dword [sym.imp.USER32.dll_LoadIconW]
mov dword [0x468220], eax
call fcn.00412d0d
push edi
mov ecx, 0x45bdc0
mov dword [0x468224], eax
call fcn.004042fe
lea ecx, [esp + 0x48]
call fcn.004104e1
lea ecx, [esp + 0x18]
call fcn.004104e1
push ebx
push 0x412e10
push ebx
lea eax, [esp + 0x54]
mov dword [0x450974], eax
lea eax, [esp + 0x24]
push str.STARTDLG
push esi
mov dword [0x457d7c], eax
call dword [sym.imp.USER32.dll_DialogBoxParamW]
lea ecx, [esp + 0x18]
mov dword [0x457d7c], ebx
mov dword [0x450974], ebx
call fcn.004105b0
lea ecx, [esp + 0x48]
call fcn.004105b0
mov eax, dword [0x468244]
test eax, eax
je 0x415820
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp byte [0x458d90], 0
je 0x41582e
call fcn.00412404
mov ecx, 0x467208
call fcn.00405c8a
cmp dword [0x468238], 0
jbe 0x41584d
push dword [0x468228]
call fcn.004166b8
pop ecx
push dword [0x468220]
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [0x468224]
test eax, eax
je 0x415869
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
cmp dword [0x45bdac], 0
jne 0x41588a
cmp byte [0x450964], 0
je 0x41588a
push 0xff
mov ecx, 0x45bdac
call fcn.00401a4a
mov eax, dword [0x468248]
mov byte [0x450964], 1
test eax, eax
je 0x4158ac
push eax
call fcn.00415310
push dword [0x468248]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp byte [0x46823c], 0
mov esi, dword [0x45bdac]
je 0x4158dd
cmp byte [0x46823d], 0
mov eax, dword [0x435608]
je 0x4158d7
mov esi, dword [0x468240]
test eax, eax
jle 0x4158dd
add esi, eax
jmp 0x4158dd
test eax, eax
jns 0x4158dd
sub esi, eax
lea ecx, [esp + 0x10]
call fcn.0041222f
mov ecx, dword [esp + 0xec]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00416329
add esp, 0xe0
ret 0x10