Function at 0x40119f
Capabilities:
Accept command line arguments
Create directory
Get file size
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x487c
call fcn.0040c580
mov eax, dword [0x414014]
xor eax, esp
mov dword [esp + 0x4878], eax
push ebx
push esi
push edi
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov esi, eax
xor ebx, ebx
cmp word [esi], 0x22
jne 0x4011e6
add esi, 2
push 0x22
push esi
call fcn.004057e1
pop ecx
pop ecx
cmp eax, ebx
je 0x4011e6
xor ecx, ecx
mov word [eax], cx
push ebx
push ebx
push 3
push ebx
push 1
push 0x80000000
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
jne 0x40120d
push 1
call fcn.00401000
pop ecx
jmp 0x401564
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
mov eax, pe_overlay
cmp esi, eax
ja 0x401224
push 2
jmp 0x401202
push ebx
push ebx
push eax
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
jne 0x401237
push 3
jmp 0x401202
lea eax, [esi - 0x1c600]
push eax
mov dword [esp + 0x14], eax
call fcn.00405842
pop ecx
push ebx
mov esi, eax
lea eax, [esp + 0x14]
push eax
push dword [esp + 0x18]
push esi
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [esp + 0x480]
push eax
call fcn.00401047
pop ecx
test al, al
jne 0x401286
push 0x10
push str.VirtualDJ_Addons_Installer
push str.VirtualDJ_not_found
jmp 0x40155b
mov dword [esp + 0x14], esi
jmp 0x401297
cmp dword [esp + 0x10], ebx
je 0x4012a1
inc esi
dec dword [esp + 0x10]
cmp byte [esi], bl
jne 0x40128c
cmp dword [esp + 0x10], ebx
jne 0x4012a8
push 4
jmp 0x401202
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jae 0x4012ba
push 5
jmp 0x401202
mov edi, dword [esi + 1]
sub dword [esp + 0x10], 4
add esi, 5
mov dword [esp + 0x18], edi
cmp edi, dword [esp + 0x10]
jbe 0x4012d6
push 6
jmp 0x401202
push 0x800
lea eax, [esp + 0x884]
push eax
push 0xffffffffffffffff
push dword [esp + 0x20]
push ebx
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
cmp word [esp + 0x880], bx
jne 0x401306
push 7
jmp 0x401202
lea eax, [esp + 0x880]
push eax
lea eax, [esp + 0x484]
push eax
lea eax, [esp + 0x2888]
push str._s_s
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
push dword [esp + 0x24]
call fcn.004058e0
mov ecx, dword [esp + 0x28]
add esp, 0x14
cmp byte [eax + ecx - 1], 0x5c
jne 0x4014d4
cmp edi, 2
jbe 0x4014d4
cmp byte [esi], 0x50
jne 0x4014d4
cmp byte [esi + 1], 0x4b
jne 0x4014d4
push ebx
lea eax, [esp + 0x2884]
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
push 0x414ec4
lea eax, [esp + 0x28]
push eax
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], edi
mov dword [esp + 0x2c], esi
call fcn.00402320
mov edi, eax
cmp edi, ebx
jne 0x401398
push 9
jmp 0x401202
push edi
call fcn.00401cf0
test eax, eax
je 0x401482
push 0xa
jmp 0x401202
push esi
call fcn.00405842
pop ecx
push esi
push eax
push edi
mov dword [esp + 0x28], eax
call fcn.00401fd0
push edi
mov dword [esp + 0x1c], eax
call fcn.00402280
cmp eax, 0xffffff97
je 0x4014cd
push 0x800
lea eax, [esp + 0x1884]
push eax
push 0xffffffffffffffff
lea eax, [esp + 0x8c]
push eax
push ebx
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
cmp word [esp + 0x1880], bx
je 0x4014b7
lea eax, [esp + 0x1880]
push eax
lea eax, [esp + 0x884]
push eax
lea eax, [esp + 0x488]
push eax
lea eax, [esp + 0x288c]
push str._s_s_s
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x14
push ebx
push ebx
push 2
push ebx
push ebx
push 0x40000000
lea eax, [esp + 0x2898]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x4014be
push ebx
lea eax, [esp + 0x24]
push eax
push dword [esp + 0x20]
push dword [esp + 0x28]
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [esp + 0x1c]
call fcn.00405808
pop ecx
push edi
call fcn.00401d40
test eax, eax
jne 0x4014c5
push ebx
push ebx
push ebx
push ebx
push 0x400
lea eax, [esp + 0x94]
push eax
lea eax, [esp + 0x48]
push eax
push edi
call fcn.00401cb0
mov esi, dword [esp + 0x4c]
push edi
call fcn.00402800
test eax, eax
je 0x4013ad
push 0xb
jmp 0x401202
push 0xd
jmp 0x401202
push 0xe
jmp 0x401202
push edi
call fcn.00402530
jmp 0x401546
push 0xc
jmp 0x401202
lea eax, [esp + 0x2880]
push 0x5c
push eax
call fcn.0040596b
mov edi, eax
pop ecx
pop ecx
cmp edi, ebx
je 0x401506
xor eax, eax
mov word [edi], ax
push ebx
lea eax, [esp + 0x2884]
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
push 0x5c
pop eax
mov word [edi], ax
push ebx
push ebx
push 2
push ebx
push ebx
push 0x40000000
lea eax, [esp + 0x2898]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
jne 0x40152d
push 8
jmp 0x401202
push ebx
lea eax, [esp + 0x24]
push eax
push dword [esp + 0x20]
push esi
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [esp + 0x14]
call fcn.00405808
pop ecx
push ebx
push str.VirtualDJ_Addons_Installer
push str.Installation_successfull
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
xor eax, eax
mov ecx, dword [esp + 0x4884]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00405463
mov esp, ebp
pop ebp
ret 0x10