Function at 0x10030e3
Capabilities:
Create process on windows
Get common file path

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov eax, 0x2230
call fcn.01003f80
mov eax, dword [0x1005108]
push ebx
push esi
mov esi, dword [ebp + 0x10]
push edi
mov edi, dword [ebp + 8]
xor ebx, ebx
push ebx
mov dword [ebp - 4], eax
mov dword [ebp - 0x21c4], ebx
mov dword [ebp - 0x21c0], ebx
call dword [sym.imp.ole32.dll_CoInitialize]
push ebx
push edi
push ebx
mov ecx, 0x1005118
call fcn.01002ffa
cmp esi, ebx
je 0x1003215
mov al, byte [esi]
cmp al, bl
je 0x100313a
cmp al, 0x2d
je 0x100313a
inc esi
jne 0x100312d
cmp esi, ebx
je 0x1003215
cmp byte [esi], 0x2d
jne 0x1003215
mov edi, dword [sym.imp.msvcrt.dll__stricmp]
inc esi
push 0x10018b8
push esi
call edi
test eax, eax
pop ecx
pop ecx
jne 0x1003163
push ebx
jmp 0x1003173
push 0x10018ac
push esi
call edi
test eax, eax
pop ecx
pop ecx
jne 0x100317d
push 1
call fcn.01002e6d
jmp 0x1003420
push 0x10018a0
push esi
call edi
test eax, eax
pop ecx
pop ecx
jne 0x1003420
push 0x68
pop ecx
push 0x800
lea eax, [ebp - 0x121c]
mov esi, 0x1001700
lea edi, [ebp - 0x21c]
push eax
rep movsd dword es:[edi], dword [esi]
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
mov esi, eax
cmp esi, ebx
je 0x1003420
push 0x11
xor eax, eax
pop ecx
lea edi, [ebp - 0x2230]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x21c]
push eax
mov dword [ebp - 0x2230], 0x44
call dword [sym.imp.msvcrt.dll_wcslen]
add eax, esi
cmp eax, 0x7cf
pop ecx
jae 0x1003420
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x121c]
push eax
lea eax, [ebp - 0x21bc]
push 0x10016f0
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
jmp 0x10033f3
lea eax, [ebp - 0x21c0]
push eax
push 0x1001158
push 1
push ebx
push 0x10011d8
call dword [sym.imp.ole32.dll_CoCreateInstance]
cmp eax, ebx
jge 0x1003248
push eax
call fcn.01003456
push eax
push 0x10016b4
call fcn.01003bb3
pop ecx
pop ecx
jmp 0x100324a
xor eax, eax
cmp eax, ebx
jne 0x1003420
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov dword [ebp - 0x21c8], eax
mov eax, dword [ebp - 0x21c0]
push dword [ebp - 0x21c8]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x38]
cmp eax, ebx
jge 0x1003289
push eax
call fcn.01003456
push eax
push 0x1001674
call fcn.01003bb3
pop ecx
pop ecx
jmp 0x100328b
xor eax, eax
cmp eax, ebx
jne 0x1003420
mov eax, dword [ebp - 0x21c0]
mov ecx, dword [eax]
lea edx, [ebp - 0x21c4]
push edx
push eax
call dword [ecx + 0x48]
cmp eax, ebx
jge 0x10032bf
push eax
call fcn.01003456
push eax
push 0x1001638
call fcn.01003bb3
pop ecx
pop ecx
jmp 0x10032c1
xor eax, eax
cmp eax, ebx
jne 0x1003420
cmp dword [ebp - 0x21c4], ebx
je 0x100333e
push ebx
push edi
call fcn.01003044
push dword [0x100519c]
mov eax, dword [ebp - 0x21c0]
mov ecx, dword [eax]
push ebx
push eax
call dword [ecx + 0x3c]
test eax, eax
jl 0x1003420
push ebx
push 0x493e0
push 2
push dword [0x100519c]
call dword [sym.imp.USER32.dll_SetTimer]
mov esi, dword [sym.imp.USER32.dll_GetMessageW]
jmp 0x1003329
lea eax, [ebp - 0x21ec]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp - 0x21ec]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push ebx
push ebx
lea eax, [ebp - 0x21ec]
push ebx
push eax
call esi
test eax, eax
jne 0x100330f
jmp 0x1003420
mov eax, dword [ebp - 0x21c0]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push 0x1d
pop ecx
mov esi, 0x10015c0
lea edi, [ebp - 0x7c]
rep movsd dword es:[edi], dword [esi]
push 0x800
lea eax, [ebp - 0x121c]
push eax
mov dword [ebp - 0x21c0], ebx
movsw word es:[edi], word [esi]
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
cmp eax, ebx
mov dword [ebp - 0x21cc], eax
je 0x1003420
mov esi, dword [sym.imp.msvcrt.dll_wcslen]
push 0x11
pop ecx
xor eax, eax
lea edi, [ebp - 0x2230]
rep stosd dword es:[edi], eax
mov edi, 0x1001498
push edi
mov dword [ebp - 0x2230], 0x44
call esi
lea ecx, [ebp - 0x121c]
push ecx
mov dword [ebp - 0x21d0], eax
call esi
pop ecx
pop ecx
mov ecx, dword [ebp - 0x21d0]
add ecx, dword [ebp - 0x21cc]
lea eax, [eax + ecx + 0xa]
cmp eax, 0x7ce
jae 0x1003420
push dword [ebp - 0x21c8]
lea eax, [ebp - 0x7c]
push eax
push edi
lea eax, [ebp - 0x121c]
push eax
lea eax, [ebp - 0x21bc]
push 0x100147c
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x18
lea eax, [ebp - 0x21e0]
push eax
lea eax, [ebp - 0x2230]
push eax
lea eax, [ebp - 0x121c]
push eax
push ebx
push 0x200
push 1
push ebx
push ebx
lea eax, [ebp - 0x21bc]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
mov eax, dword [ebp - 0x21c0]
pop edi
pop esi
cmp eax, ebx
pop ebx
je 0x1003433
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push 0x1005118
call fcn.01002db8
call dword [sym.imp.ole32.dll_CoUninitialize]
mov ecx, dword [ebp - 4]
xor eax, eax
call fcn.01003c8a
leave
ret 0x10