Function at 0x4039ba
Capabilities:
Accept command line arguments
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x254
push ebx
push esi
lea eax, [ebp - 0x254]
push edi
push eax
mov dword [ebp - 0x254], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x405230
cmp dword [ebp - 0x244], 2
jne 0x405230
cmp dword [ebp - 0x250], 5
jb 0x405230
call fcn.004031be
push 0xf
xor ebx, ebx
pop esi
lea ecx, [ebp - 0xa8]
push esi
mov byte [str.___InstallEnd__], 0x3b
mov byte [str.___Install__UTF_8_], 0x3b
mov dword [ebp - 0xa8], ebx
mov dword [ebp - 0xa4], ebx
mov dword [ebp - 0xa0], ebx
call fcn.004016a5
push esi
lea ecx, [ebp - 0x9c]
mov dword [ebp - 0x9c], ebx
mov dword [ebp - 0x98], ebx
mov dword [ebp - 0x94], ebx
call fcn.004016a5
or dword [ebp - 0xd4], 0xffffffff
push esi
lea ecx, [ebp - 0x80]
mov dword [ebp - 8], 0x41c274
mov byte [ebp - 2], bl
mov byte [ebp - 1], bl
mov byte [ebp - 9], bl
mov byte [ebp - 4], bl
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x7c], ebx
mov dword [ebp - 0x78], ebx
call fcn.004016a5
push esi
lea ecx, [ebp - 0xc0]
mov dword [ebp - 0xc0], ebx
mov dword [ebp - 0xbc], ebx
mov dword [ebp - 0xb8], ebx
call fcn.004016a5
push esi
lea ecx, [ebp - 0xe0]
mov dword [ebp - 0xe0], ebx
mov dword [ebp - 0xdc], ebx
mov dword [ebp - 0xd8], ebx
call fcn.004016a5
lea eax, [ebp - 0xc0]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call fcn.00403678
push str.sfxversion
push eax
mov dword [ebp - 0x38], eax
call fcn.0040388a
add esp, 0x10
test eax, eax
je 0x403b2f
lea ecx, [ebp - 0x11c]
mov dword [0x41b924], 8
call fcn.00405347
push ebx
push 1
mov dword [ebp - 0x11c], 0x417330
call fcn.00402fe8
pop ecx
push eax
lea ecx, [ebp - 0x11c]
push dword [0x41c264]
push 0x11
call fcn.00405f4c
lea ecx, [ebp - 0x11c]
call fcn.00405a7b
jmp 0x4045cf
mov esi, 0x208
cmp dword [ebp - 0x78], esi
jg 0x403b46
push 0x209
lea ecx, [ebp - 0x80]
call fcn.004016a5
push esi
push dword [ebp - 0x80]
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jne 0x403b67
push 6
push 1
pop ebx
push ebx
call fcn.0040723f
pop ecx
pop ecx
jmp 0x4051f5
push dword [ebp - 0x80]
call fcn.00405a11
mov ecx, dword [ebp - 0x80]
mov dword [esp], str.sfxtest
push dword [ebp - 0x38]
mov word [ecx + eax*2], bx
mov dword [ebp - 0x7c], eax
call fcn.0040388a
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
mov edi, str.sfxconfig
je fcn.00403cea
cmp word [esi], 0x3a
je 0x403ba7
push 0x64
pop ebx
jmp 0x4051f5
mov cx, word [esi + 2]
movzx eax, cx
or al, 0x20
sub eax, 0x61
je 0x403c65
dec eax
dec eax
je 0x403c59
dec eax
je 0x403be1
dec eax
dec eax
je 0x403bd7
sub eax, 0x10
jne 0x403b9f
mov ebx, 0x42cb
jmp 0x4051f5
mov ebx, 0x203f
jmp 0x4051f5
cmp cx, 0x44
jne 0x403c19
cmp word [esi + 4], 0x3a
jne 0x403b9f
add esi, 6
mov ax, word [esi]
cmp ax, 0x20
jbe 0x403c0f
cmp ax, 0x3a
je 0x403c0f
inc esi
push eax
mov ecx, 0x41c288
inc esi
call fcn.004015ea
jmp 0x403bf1
cmp dword [0x41c28c], ebx
jne 0x403c1c
jmp 0x403b9f
add esi, 4
mov dword [0x41c294], ebx
cmp word [esi], 0x3a
jne 0x403c43
lea eax, [esi + 2]
push eax
call dword [sym.imp.MSVCRT.dll__wtol]
cmp eax, 0xe10
pop ecx
mov dword [0x41c294], eax
ja 0x403c43
cmp eax, ebx
jne 0x403c4d
invalid
add eax, 0x41c294
or al, byte [eax]