Function at 0x41c32b
Capabilities:
Accept command line arguments
Check if file exists
Create directory
Create process on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0xa01f5d
mov eax, dword fs:[0]
push eax
mov eax, 0x1150
call fcn.0098a050
mov eax, dword [0xa370c0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov dword [0xa38f50], eax
lea eax, [ebp - 0x8a4]
push eax
mov dword [ebp - 0x8a4], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
xor ebx, ebx
inc ebx
test eax, eax
je 0x41c390
cmp dword [ebp - 0x894], 2
jne 0x41c390
mov al, bl
jmp 0x41c392
xor al, al
mov byte [0xa38f54], al
call fcn.00401c57
lea ecx, [ebp - 0x10d4]
call fcn.00406b2f
lea ecx, [ebp - 0x1068]
call fcn.00406b2f
lea ecx, [ebp - 0x115c]
call fcn.00406b2f
lea ecx, [ebp - 0x1094]
call fcn.00406b2f
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
lea ecx, [ebp - 0x101c]
call fcn.00406af9
lea eax, [ebp - 0x1068]
push eax
lea eax, [ebp - 0x10d4]
push eax
lea eax, [ebp - 0x101c]
push eax
call fcn.00406807
push dword [ebp - 0x101c]
call fcn.00989a74
pop ecx
lea ecx, [ebp - 0x10bc]
call fcn.00406b2f
lea eax, [ebp - 0x10bc]
push eax
call fcn.00407d1b
lea ecx, [ebp - 0x1068]
call fcn.00407682
lea ecx, [ebp - 0x1068]
call fcn.00407651
push 0xa05600
lea ecx, [ebp - 0x1068]
mov byte [ebp - 0x1059], 0
call fcn.0040708b
test al, al
je 0x41c479
mov eax, dword [ebp - 0x1068]
lea ecx, [ebp - 0x1068]
add eax, 4
mov byte [ebp - 0x1059], bl
push eax
call fcn.00406c74
lea ecx, [ebp - 0x1068]
call fcn.00407682
lea ecx, [ebp - 0x1068]
call fcn.00407651
push 0xa05604
lea ecx, [ebp - 0x1150]
call fcn.00406aaf
lea ecx, [ebp - 0x1144]
call fcn.00406b2f
lea ecx, [ebp - 0x10a0]
mov byte [ebp - 0x10a4], 0
call fcn.00406b2f
push 0xa055f8
lea ecx, [ebp - 0x10a4]
call fcn.00407f2a
test al, al
jne 0x41c4d7
cmp byte [ebp - 0x1059], al
jne 0x41c930
push str.Cannot_create_temp_folder_archive
push 0
call fcn.0041805d
jmp 0x41c930
push 0x18
call fcn.00989a2d
mov esi, eax
pop ecx
test esi, esi
je 0x41c4ff
xor eax, eax
mov dword [esi], vtable.CCodecs.0
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
mov word [esi + 0x14], ax
jmp 0x41c501
xor esi, esi
mov dword [ebp - 4], ebx
test esi, esi
je 0x41c50e
mov eax, dword [esi]
push esi
call dword [eax + 4]
or dword [ebp - 4], 0xffffffff
mov ecx, esi
call fcn.00415f99
test eax, eax
je 0x41c52e
push str.Cannot_load_codecs
push 0
call fcn.0041805d
jmp 0x41c91f
lea eax, [ebp - 0x10a0]
push eax
lea ecx, [ebp - 0x1138]
call fcn.00406a7e
push 0x800
lea eax, [ebp - 0x810]
push 0
push eax
call fcn.009de090
add esp, 0xc
mov byte [ebp - 0x105a], 0
lea ecx, [ebp - 0x1078]
call fcn.00406b2f
push 0x100
call fcn.00989a2d
pop ecx
test eax, eax
je 0x41c582
mov ecx, eax
call fcn.00418f5b
mov edi, eax
jmp 0x41c584
xor edi, edi
and dword [ebp - 0x1084], 0
lea eax, [ebp - 0x1088]
push edi
push eax
mov dword [ebp - 0x1088], edi
mov byte [ebp - 0x1080], 0
call fcn.0041cc43
push 0x800
mov dword [ebp - 0x106c], eax
lea eax, [ebp - 0x1010]
push 0
push eax
call fcn.009de090
add esp, 0xc
lea eax, [ebp - 0x1010]
push 0x400
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov byte [ebp - 0x107c], 0
lea eax, [ebp - 0x1010]
push dword [ebp - 0x107c]
push eax
lea eax, [ebp - 0x1028]
push eax
call fcn.004199f8
lea eax, [ebp - 0x1028]
push eax
lea eax, [ebp - 0x1058]
push eax
call fcn.0041c0a7
lea ecx, [ebp - 0x1040]
push ecx
mov ecx, eax
call fcn.0041bec7
lea ecx, [ebp - 0x1058]
call fcn.0041b5cc
lea ecx, [ebp - 0x1028]
call fcn.0041b5cc
lea eax, [ebp - 0x1040]
push eax
lea ecx, [ebp - 0x1028]
call fcn.0041a43e
cmp dword [ebp - 0x1014], 7
lea eax, [ebp - 0x1028]
cmova eax, dword [ebp - 0x1028]
push eax
lea eax, [ebp - 0x810]
push 0x400
push eax
call fcn.009e23fb
add esp, 0xc
lea ecx, [ebp - 0x1028]
call fcn.0041b5cc
lea eax, [ebp - 0x810]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x41c691
push eax
lea eax, [ebp - 0x810]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0x101c]
call fcn.00406af9
lea eax, [ebp - 0x1080]
push eax
push dword [ebp - 0x106c]
lea eax, [ebp - 0x1078]
push edi
push eax
lea eax, [ebp - 0x105a]
push eax
push ebx
lea eax, [ebp - 0x101c]
push eax
lea eax, [ebp - 0x10bc]
push eax
push esi
call fcn.004192de
push dword [ebp - 0x101c]
mov edi, eax
call fcn.00989a74
pop ecx
push 0xffffffffffffffff
push dword [ebp - 0x106c]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp byte [ebp - 0x1080], 0
jne 0x41c700
xor ebx, ebx
jmp 0x41c79f
test edi, edi
je 0x41c7bb
cmp byte [ebp - 0x1059], 0
jne 0x41c79f
cmp edi, ebx
je 0x41c72c
cmp byte [ebp - 0x105a], 0
jne 0x41c72c
cmp edi, 0x80004004
je 0x41c79f
jmp 0x41c73f
lea eax, [ebp - 0x1078]
push eax
push 8
call fcn.0040a139
mov edi, 0x80004005
cmp dword [ebp - 0x1074], 0
jne 0x41c773
push edi
lea eax, [ebp - 0x101c]
push eax
call fcn.00407dd5
lea eax, [ebp - 0x101c]
push eax
lea ecx, [ebp - 0x1078]
call fcn.00406ba1
push dword [ebp - 0x101c]
call fcn.00989a74
pop ecx
push 7
lea eax, [ebp - 0x112c]
push eax
call fcn.0040a06a
push 0x10
push dword [eax]
push dword [ebp - 0x1078]
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
push dword [ebp - 0x112c]
call fcn.00989a74
pop ecx
lea ecx, [ebp - 0x1040]
call fcn.0041b5cc
push dword [ebp - 0x1078]
call fcn.00989a74
pop ecx
jmp 0x41c913
lea ecx, [ebp - 0x1040]
call fcn.0041b5cc
push dword [ebp - 0x1078]
call fcn.00989a74
pop ecx
lea ecx, [ebp - 0x10e4]
call fcn.00406b2f
lea eax, [ebp - 0x10e4]
mov byte [ebp - 0x10d8], bl
push eax
call fcn.004083d7
lea eax, [ebp - 0x810]
push eax
call fcn.00408858
test al, al
je 0x41c908
push str.Setup.exe
lea eax, [ebp - 0x810]
push 0x400
push eax
call fcn.009e2386
add esp, 0xc
lea eax, [ebp - 0x810]
push eax
lea eax, [ebp - 0x10c8]
push eax
call fcn.00407bf1
and dword [ebp - 0x1118], 0
and dword [ebp - 0x1114], 0
cmp dword [ebp - 0x1064], 0
mov eax, dword [ebp - 0x10c8]
mov dword [ebp - 0x1120], 0x3c
mov dword [ebp - 0x111c], 0x140
mov dword [ebp - 0x1110], eax
je 0x41c883
lea ecx, [ebp - 0x1094]
call fcn.00406e61
lea eax, [ebp - 0x1068]
push eax
lea ecx, [ebp - 0x1094]
call fcn.00406d84
push 0
lea eax, [ebp - 0x1094]
push eax
lea eax, [ebp - 0x10b0]
push eax
call fcn.00407912
mov eax, dword [ebp - 0x10b0]
xor ecx, ecx
cmp dword [ebp - 0x10ac], ecx
mov dword [ebp - 0x1104], ebx
cmove eax, ecx
and dword [ebp - 0x1108], ecx
and dword [ebp - 0x10e8], ecx
mov dword [ebp - 0x110c], eax
lea eax, [ebp - 0x1120]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteExA]
cmp dword [ebp - 0x1100], 0x20
ja 0x41c8ee
cmp byte [ebp - 0x1059], 0
jne 0x41c8f0
push str.Cannot_open_file
push 0
call fcn.0041805d
jmp 0x41c8f0
xor ebx, ebx
push dword [ebp - 0x10b0]
call fcn.00989a74
push dword [ebp - 0x10c8]
call fcn.00989a74
pop ecx
pop ecx
lea ecx, [ebp - 0x10e4]
call fcn.0041a7e9
push dword [ebp - 0x1138]
call fcn.00989a74
pop ecx
mov dword [ebp - 4], 0xc
test esi, esi
je 0x41c930
mov eax, dword [esi]
push esi
call dword [eax + 8]
lea ecx, [ebp - 0x10a4]
mov dword [ebp - 4], 0xd
call fcn.00408628
push dword [ebp - 0x10a0]
call fcn.00989a74
push dword [ebp - 0x1144]
call fcn.00989a74
push dword [ebp - 0x1150]
call fcn.00989a74
push dword [ebp - 0x10bc]
call fcn.00989a74
push dword [ebp - 0x1094]
call fcn.00989a74
push dword [ebp - 0x115c]
call fcn.00989a74
push dword [ebp - 0x1068]
call fcn.00989a74
push dword [ebp - 0x10d4]
call fcn.00989a74
add esp, 0x20
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.009897fe
leave
ret 0x10