Function at 0x100307a
Capabilities:
Accept command line arguments
Check os version
Copy file
Set environment variable

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x68
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push edi
mov edi, 0x104
push edi
xor eax, eax
push 0x40
pop ebx
push ebx
mov dword [0x100c294], 1
mov dword [0x100c29c], eax
mov dword [0x100c298], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x58], eax
call esi
push edi
push ebx
mov dword [ebp - 8], eax
call esi
push 0x94
push ebx
mov dword [ebp - 0x48], eax
call esi
push edi
push ebx
mov dword [ebp - 0x54], eax
call esi
push edi
push ebx
mov dword [ebp - 0xc], eax
call esi
push edi
push ebx
mov dword [ebp - 0x30], eax
call esi
push edi
push ebx
mov dword [ebp - 4], eax
call esi
push edi
push ebx
mov dword [ebp - 0x28], eax
call esi
push edi
push ebx
mov dword [ebp - 0x34], eax
call esi
push edi
push ebx
mov dword [ebp - 0x38], eax
call esi
push edi
push ebx
mov dword [ebp - 0x3c], eax
call esi
push edi
push ebx
mov dword [ebp - 0x24], eax
call esi
push edi
push ebx
mov dword [ebp - 0x40], eax
call esi
push edi
push ebx
mov dword [ebp - 0x18], eax
call esi
push edi
push ebx
mov dword [ebp - 0x2c], eax
call esi
push 4
push ebx
mov dword [ebp - 0x50], eax
call esi
mov ecx, eax
mov dword [0x100c298], eax
call fcn.010087cd
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
push eax
call main
add eax, 0x10b
push eax
push ebx
mov dword [ebp - 0x10], eax
call esi
push dword [ebp - 0x10]
mov dword [ebp - 0x44], eax
push ebx
call esi
push dword [ebp - 0x10]
mov dword [ebp - 0x4c], eax
push ebx
call esi
cmp dword [ebp - 0x30], 0
mov dword [ebp - 0x1c], eax
je 0x1003672
xor esi, esi
cmp dword [ebp - 0x34], esi
je 0x1003672
cmp dword [ebp - 0x38], esi
je 0x1003672
cmp dword [ebp - 0x3c], esi
je 0x1003672
cmp dword [ebp - 0xc], esi
je 0x1003672
cmp dword [ebp - 0x24], esi
je 0x1003672
cmp dword [ebp - 0x40], esi
je 0x1003672
cmp dword [ebp - 4], esi
je 0x1003672
mov ebx, dword [ebp - 0x28]
cmp ebx, esi
je 0x1003672
cmp dword [ebp - 0x44], esi
je 0x1003672
cmp dword [ebp - 0x4c], esi
je 0x1003672
cmp eax, esi
je 0x1003672
cmp dword [ebp - 0x18], esi
je 0x1003672
cmp dword [ebp - 0x2c], esi
je 0x1003672
cmp dword [ebp - 0x50], esi
je 0x1003672
mov eax, dword [ebp - 0x54]
cmp eax, esi
je 0x1003672
cmp dword [ebp - 8], esi
je 0x1003672
cmp dword [ebp - 0x48], esi
je 0x1003672
push eax
mov dword [eax], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov eax, dword [ebp - 0xc]
push dword [ebp - 0x18]
mov byte [ebx], 0
mov byte [eax], 0
mov eax, dword [ebp - 0x24]
mov byte [eax], 0
mov eax, dword [ebp - 0x40]
mov byte [eax], 0
mov eax, dword [ebp - 0x30]
mov byte [eax], 0
mov eax, dword [ebp - 0x34]
push 0x100114c
mov byte [eax], 0
mov eax, dword [ebp - 0x38]
push 0x81
push esi
mov byte [eax], 0
call fcn.01001bd5
push edi
push dword [ebp - 4]
call fcn.010019bf
push dword [ebp - 0x10]
mov ebx, dword [sym.imp.KERNEL32.dll_GetCommandLineA]
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 0x4c]
push dword [ebp - 0x44]
call ebx
push eax
call fcn.01001f6d
mov dword [ebp - 0x20], eax
call fcn.01002412
cmp dword [0x100c2a4], esi
je 0x1003293
push esi
push 0x1001558
call ebx
push eax
push esi
call dword [sym.imp.USER32.dll_MessageBoxA]
push edi
push dword [ebp - 4]
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0x5c
push dword [ebp - 4]
call fcn.0100170c
push 8
inc eax
push 0x100154c
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNIA]
xor ebx, ebx
inc ebx
test eax, eax
jne 0x10032c1
mov dword [ebp - 0x14], ebx
push edi
push dword [ebp - 4]
call fcn.010019bf
cmp dword [0x100c294], esi
jne 0x10032df
push dword [ebp - 0x20]
call fcn.01002f00
jmp 0x1003676
call fcn.010023be
cmp eax, esi
push ebx
push dword [ebp - 0xc]
mov dword [ebp - 0x68], eax
push edi
push dword [ebp - 8]
push dword [ebp - 4]
push dword [ebp - 0x18]
je 0x1003306
cmp dword [ebp - 0x20], esi
je 0x1003302
push 8
jmp 0x1003307
push 7
jmp 0x1003307
push esi
call fcn.01002383
push ebx
push dword [ebp - 0x3c]
push edi
push dword [ebp - 8]
push dword [ebp - 4]
push dword [ebp - 0x18]
push 6
call fcn.01002383
push dword [ebp - 0x3c]
push 0x1001538
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
mov esi, dword [sym.imp.KERNEL32.dll_LoadLibraryExA]
push 2
push 0
push dword [ebp - 8]
call esi
test eax, eax
mov dword [ebp - 0x60], eax
je 0x1003424
push dword [ebp - 0x2c]
push 0x100115c
push 0xca
push eax
call fcn.01001bd5
test eax, eax
je 0x100341b
cmp dword [ebp - 0x68], 0
je 0x1003378
push dword [ebp - 0x2c]
push 0x1001524
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
push ebx
push dword [ebp - 0x40]
push edi
push dword [ebp - 8]
push dword [ebp - 4]
push dword [ebp - 0x2c]
push ebx
call fcn.01002383
push 2
push 0
push dword [ebp - 8]
call esi
push 0
push dword [ebp - 0x24]
mov esi, eax
push edi
push dword [ebp - 8]
push dword [ebp - 4]
push dword [ebp - 0x2c]
push 5
call fcn.01002383
test esi, esi
je 0x100341b
mov ebx, dword [ebp - 0x50]
push ebx
push 0x1001168
push 0x81
push esi
call fcn.01001bd5
test eax, eax
je 0x1003414
push 0
push dword [ebp - 0x30]
push edi
push dword [ebp - 8]
push dword [ebp - 4]
push ebx
push 2
call fcn.01002383
cmp dword [ebp - 0x14], 0
je 0x1003414
mov eax, dword [ebp - 0x54]
cmp dword [eax + 0x10], 2
je 0x1003414
push 0
push dword [ebp - 0x34]
push edi
push dword [ebp - 8]
push dword [ebp - 4]
push ebx
push 3
call fcn.01002383
push 0
push dword [ebp - 0x38]
push edi
push dword [ebp - 8]
push dword [ebp - 4]
push ebx
push 4
call fcn.01002383
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push dword [ebp - 0x60]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push edi
push dword [ebp - 0x48]
xor esi, esi
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
cmp dword [ebp - 0x20], esi
mov eax, 0x10012bc
jne 0x1003440
mov eax, 0x100151c
push eax
push 0x100150c
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
cmp dword [ebp - 0x14], esi
jne 0x10034b9
push edi
push dword [ebp - 4]
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0x2e
push dword [ebp - 4]
call fcn.0100170c
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov ebx, 0x1001508
inc eax
push ebx
push eax
call esi
push dword [ebp - 0xc]
push edi
push dword [ebp - 0x28]
call fcn.01001655
push 0x2e
push dword [ebp - 0x28]
call fcn.0100170c
inc eax
push ebx
push eax
call esi
push 0x5c
push dword [ebp - 0x28]
call fcn.0100170c
inc eax
push eax
push 0x10014f4
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
push 0
push dword [ebp - 0x28]
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_CopyFileA]
xor esi, esi
cmp dword [ebp - 0x20], esi
je 0x10034fa
cmp dword [0x100c294], esi
je 0x10034fa
mov ebx, dword [ebp - 0x4c]
cmp byte [ebx], 0
je 0x10034fa
xor esi, esi
jmp 0x10034e4
push dword [ebp - 0x10]
push dword [ebp - 0xc]
push dword [ebp - 0x48]
push dword [ebp - 0x1c]
call fcn.010020b4
inc esi
push dword [ebp - 0x10]
push dword [ebp - 0x1c]
push dword [ebp - 0x44]
push ebx
push esi
call fcn.010022ca
test eax, eax
jne 0x10034d2
jmp 0x1003555
cmp dword [ebp - 0x14], esi
je 0x1003504
cmp dword [ebp - 0x20], esi
jne 0x1003555
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
push eax
push dword [ebp - 0x10]
push dword [ebp - 0x1c]
call fcn.01001655
cmp dword [ebp - 0x14], esi
je 0x1003540
mov esi, dword [ebp - 0x24]
push edi
push esi
call fcn.010019bf
push dword [0x100a014]
push esi
call main
mov ecx, edi
sub ecx, eax
push ecx
push esi
call fcn.0100168e
mov eax, esi
jmp 0x1003543
mov eax, dword [ebp - 0xc]
push dword [ebp - 0x10]
push eax
push dword [ebp - 0x48]
push dword [ebp - 0x1c]
call fcn.010020b4
mov dword [ebp - 0x5c], eax
mov esi, dword [ebp - 0xc]
cmp byte [esi], 0
je 0x1003585
jmp 0x100357b
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
jne 0x1003585
cmp dword [ebp - 0x58], 0x1e
jae 0x1003585
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
inc dword [ebp - 0x58]
push esi
call fcn.01001d84
test eax, eax
je 0x100355f
mov eax, dword [ebp - 0x40]
cmp byte [eax], 0
je 0x1003593
push eax
call fcn.01001d84
mov eax, dword [ebp - 0x3c]
cmp byte [eax], 0
je 0x10035a1
push eax
call fcn.01001d84
xor ebx, ebx
cmp dword [ebp - 0x14], ebx
je 0x10035ad
cmp dword [ebp - 0x20], ebx
je 0x10035be
mov eax, dword [ebp - 0x30]
cmp byte [eax], 0
je 0x10035be
push eax
call fcn.01001d84
mov dword [ebp - 0x64], eax
cmp dword [ebp - 0x14], ebx
jne 0x10035c8
mov eax, dword [ebp - 0x28]
jmp 0x10035f1
cmp dword [ebp - 0x20], ebx
je 0x10035fc
cmp dword [ebp - 0x64], ebx
je 0x10035fc
mov eax, dword [ebp - 0x34]
cmp byte [eax], 0
je 0x10035e0
push eax
call fcn.01001d84
mov eax, dword [ebp - 0x38]
cmp byte [eax], 0
je 0x10035ee
push eax
call fcn.01001d84
mov eax, dword [ebp - 0x24]
cmp byte [eax], 0
je 0x10035fc
push eax
call fcn.01001d84
mov esi, dword [ebp - 8]
push edi
push esi
call fcn.010019bf
push esi
push edi
push dword [ebp - 4]
call fcn.01001655
push dword [ebp - 0x18]
push esi
call main
mov ecx, edi
sub ecx, eax
push ecx
push esi
call fcn.0100168e
push esi
call fcn.01001d84
push dword [ebp - 4]
push edi
push esi
call fcn.01001655
push dword [ebp - 0x2c]
push esi
call main
mov ecx, edi
sub ecx, eax
push ecx
push esi
call fcn.0100168e
push esi
call fcn.01001d84
push dword [ebp - 4]
push edi
push esi
call fcn.01001655
push dword [ebp - 0x50]
push esi
call main
sub edi, eax
push edi
push esi
call fcn.0100168e
push esi
call fcn.01001d84
jmp 0x1003678
or dword [ebp - 0x5c], 0xffffffff
xor ebx, ebx
cmp dword [ebp - 0x30], ebx
mov esi, dword [sym.imp.KERNEL32.dll_GlobalFree]
je 0x1003688
push dword [ebp - 0x30]
call esi
cmp dword [ebp - 0x34], ebx
je 0x1003692
push dword [ebp - 0x34]
call esi
cmp dword [ebp - 0x38], ebx
je 0x100369c
push dword [ebp - 0x38]
call esi
cmp dword [ebp - 0x3c], ebx
je 0x10036a6
push dword [ebp - 0x3c]
call esi
cmp dword [ebp - 0xc], ebx
je 0x10036b0
push dword [ebp - 0xc]
call esi
cmp dword [ebp - 0x24], ebx
je 0x10036ba
push dword [ebp - 0x24]
call esi
cmp dword [ebp - 0x40], ebx
je 0x10036c4
push dword [ebp - 0x40]
call esi
cmp dword [ebp - 4], ebx
je 0x10036ce
push dword [ebp - 4]
call esi
mov edi, dword [ebp - 0x28]
cmp edi, ebx
je 0x10036d8
push edi
call esi
cmp dword [ebp - 0x18], ebx
je 0x10036e0
push edi
call esi
cmp dword [ebp - 0x2c], ebx
je 0x10036e8
push edi
call esi
cmp dword [ebp - 0x50], ebx
je 0x10036f0
push edi
call esi
cmp dword [ebp - 0x44], ebx
je 0x10036fa
push dword [ebp - 0x44]
call esi
cmp dword [ebp - 0x4c], ebx
je 0x1003704
push dword [ebp - 0x4c]
call esi
cmp dword [ebp - 0x1c], ebx
je 0x100370e
push dword [ebp - 0x1c]
call esi
cmp dword [ebp - 0x54], ebx
je 0x1003718
push dword [ebp - 0x54]
call esi
cmp dword [ebp - 8], ebx
je 0x1003722
push dword [ebp - 8]
call esi
cmp dword [ebp - 0x48], ebx
je 0x100372c
push dword [ebp - 0x48]
call esi
mov ecx, dword [0x100c298]
cmp ecx, ebx
je 0x1003743
call fcn.010087f9
push dword [0x100c298]
call esi
mov eax, dword [ebp - 0x5c]
pop edi
pop esi
pop ebx
leave
ret 0x10