Function at 0x1007f9b0
Capabilities:
Check if file exists
Create directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1015ec35
mov eax, dword fs:[0]
push eax
sub esp, 0x294
mov eax, dword [0x101c0618]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x26c], ecx
mov edi, dword [ebp + 8]
mov dword [ebp - 0x268], edi
call fcn.1000c0e0
mov ecx, eax
test ecx, ecx
je 0x1007ffa8
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x27c], eax
mov dword [ebp - 4], 0
call fcn.1000c0e0
mov ecx, eax
test ecx, ecx
je 0x1007ffb2
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x274], eax
mov byte [ebp - 4], 1
call fcn.1000c0e0
mov ecx, eax
test ecx, ecx
je 0x1007ffbc
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x288], eax
lea eax, [ebp - 0x28c]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0x288]
mov dword [ebp - 0x28c], 0
push eax
lea eax, [ebp - 0x274]
mov ecx, edi
push eax
lea eax, [ebp - 0x27c]
push eax
call fcn.1014cc70
or esi, 0xffffffff
test eax, eax
jne 0x1007fa9b
push str.CInstaller::_LaunchIconBubble__icon_not_found
call fcn.1004a170
jmp 0x1007ff22
mov eax, dword [ebp - 0x26c]
mov eax, dword [eax + 0xd0]
push dword [eax - 0xc]
push eax
push dword [ebp - 0x274]
call fcn.10121557
add esp, 0xc
test eax, eax
je 0x1007fadb
push dword [ebp - 0x274]
push dword [ebp - 0x27c]
push str.CInstaller::_LaunchIconBubble__icon_not_mine___s_s
call fcn.1004a170
add esp, 0xc
jmp 0x1007ff25
mov ecx, edi
call fcn.1014d310
mov edi, eax
mov dword [ebp - 0x26c], edi
test edi, edi
je 0x1007ff25
push dword [ebp - 0x27c]
push str.icon_real_name
push edi
call fcn.1003b470
push dword [ebp - 0x274]
push str.exec_path_or_url
push edi
call fcn.1003b470
push dword [ebp - 0x288]
push str.exec_args
push edi
call fcn.1003b470
push dword [ebp - 0x28c]
push str.is_url_link
push edi
call fcn.1003b3b0
call fcn.10039020
mov edi, eax
mov dword [ebp - 0x2a0], edi
push str.iconbubble
mov byte [ebp - 4], 3
call fcn.10039050
push eax
push 0x10173ec4
push edi
call fcn.10038c50
mov eax, dword [ebp - 0x268]
add esp, 0x40
add eax, 0x18
mov dword [ebp - 0x294], eax
push dword [eax]
push 0x10173eb4
push edi
call fcn.1003b470
push dword [ebp - 0x26c]
push str.args
push edi
call fcn.10038c50
push edi
call fcn.100395b0
add esp, 0x1c
mov dword [ebp - 0x268], eax
test eax, eax
je 0x1007ff18
xor eax, eax
mov dword [ebp - 0x224], 0
mov dword [ebp - 0x220], 7
mov word [ebp - 0x234], ax
push dword [0x101c03f8]
lea ecx, [ebp - 0x24c]
mov byte [ebp - 4], 4
call fcn.100137c0
lea eax, [ebp - 0x234]
mov byte [ebp - 4], 5
push eax
lea eax, [ebp - 0x24c]
push eax
call fcn.10043890
add esp, 8
lea ecx, [ebp - 0x24c]
call fcn.1000dfa0
cmp dword [ebp - 0x220], 8
lea eax, [ebp - 0x234]
push 0
cmovae eax, dword [ebp - 0x234]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
lea ecx, [ebp - 0x26c]
call fcn.1000c820
push dword [0x101c03fc]
movups xmm0, xmmword [ebp - 0x234]
sub esp, 0x18
mov byte [ebp - 4], 6
mov eax, esp
push str._s_s_iconbubble_cmd.json
movups xmmword [eax], xmm0
movq xmm0, qword [ebp - 0x224]
movq qword [eax + 0x10], xmm0
lea eax, [ebp - 0x26c]
push eax
call fcn.10012500
add esp, 0x24
lea ecx, [ebp - 0x264]
push dword [ebp - 0x268]
call fcn.1000b300
mov esi, dword [ebp - 0x26c]
lea ecx, [ebp - 0x24c]
push esi
mov byte [ebp - 4], 7
call fcn.100137c0
lea eax, [ebp - 0x264]
mov byte [ebp - 4], 8
push eax
lea eax, [ebp - 0x24c]
push eax
call fcn.10046790
add esp, 8
mov dword [ebp - 0x270], eax
lea ecx, [ebp - 0x24c]
call fcn.1000dfa0
lea ecx, [ebp - 0x264]
mov byte [ebp - 4], 6
call fcn.1000b580
push dword [ebp - 0x268]
call fcn.100f6855
mov eax, dword [ebp - 0x270]
add esp, 4
test eax, eax
jg 0x1007fcee
neg eax
push eax
push esi
push str.CInstaller::_LaunchBubble__write_file_failed___s__error___d
call fcn.1004a170
add esp, 0xc
jmp 0x1007feef
push 0x20a
lea eax, [ebp - 0x21c]
push 0
push eax
call fcn.100ec480
add esp, 0xc
lea eax, [ebp - 0x21c]
push 0x104
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetShortPathNameW]
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x1007fd41
lea eax, [ebp - 0x21c]
push eax
push str.CInstaller::_LaunchBubble__GetShortPathName__s__failed
call fcn.1004a170
add esp, 8
jmp 0x1007feef
lea eax, [ebp - 0x290]
push 1
push eax
call fcn.10067520
push str.GmSvcDll.dat
push eax
lea eax, [ebp - 0x284]
mov byte [ebp - 4], 9
push eax
call fcn.10019d90
add esp, 0x14
lea ecx, [ebp - 0x290]
mov byte [ebp - 4], 0xb
call fcn.1000b560
push dword [ebp - 0x284]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x1007fd99
push str.CInstaller::_LaunchBubble__not_found_GmSvc.dat
call fcn.1004a170
add esp, 4
jmp 0x1007fee4
lea ecx, [ebp - 0x278]
call fcn.1000c820
lea ecx, [ebp - 0x280]
call fcn.1000c820
push 1
lea eax, [ebp - 0x280]
mov byte [ebp - 4], 0xd
push eax
lea eax, [ebp - 0x278]
push eax
push dword [ebp - 0x284]
call fcn.100691f0
add esp, 0x10
test eax, eax
jne 0x1007fde7
push str.CInstaller::_LaunchBubble__GetRunDllPath_failed.
call fcn.1004a170
add esp, 4
jmp 0x1007fece
push dword [ebp - 0x294]
lea ecx, [ebp - 0x270]
call fcn.10020cf0
mov esi, dword [ebp - 0x270]
mov byte [ebp - 4], 0xe
cmp dword [esi - 0xc], 0
jne 0x1007fe28
push dword [0x101c03fc]
lea eax, [ebp - 0x270]
push str._s_inst
push eax
call fcn.10012500
mov esi, dword [ebp - 0x270]
add esp, 0xc
lea ecx, [ebp - 0x268]
call fcn.1000c820
lea eax, [ebp - 0x21c]
mov byte [ebp - 4], 0xf
push eax
push esi
push dword [0x101c03e0]
lea eax, [ebp - 0x268]
push dword [ebp - 0x280]
push dword [0x101c03dc]
push str._s__s___s_YXHExecCommand____from__s____cmd__s_
push eax
call fcn.10012500
mov esi, dword [ebp - 0x268]
push esi
push dword [ebp - 0x278]
push str.CInstaller::_LaunchBubble__lanuch__s__s
call fcn.1004a150
lea eax, [ebp - 0x298]
mov dword [ebp - 0x29c], 0
push eax
push 0
lea eax, [ebp - 0x29c]
mov dword [ebp - 0x298], 0
push eax
push 0
push 1
push 5
push esi
push dword [ebp - 0x278]
call fcn.1004eaf0
add esp, 0x48
lea ecx, [ebp - 0x268]
call fcn.1000b560
lea ecx, [ebp - 0x270]
call fcn.1000b560
mov esi, dword [ebp - 0x26c]
lea ecx, [ebp - 0x280]
call fcn.1000b560
lea ecx, [ebp - 0x278]
call fcn.1000b560
lea ecx, [ebp - 0x284]
call fcn.1000b560
lea edx, [esi - 0x10]
mov byte [ebp - 4], 4
or esi, 0xffffffff
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1007ff0d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x234]
call fcn.1000dfa0
test edi, edi
je 0x1007ff25
push edi
call fcn.100391e0
add esp, 4
mov edx, dword [ebp - 0x288]
mov eax, esi
mov byte [ebp - 4], 1
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1007ff46
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x274]
mov eax, esi
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1007ff67
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x27c]
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], esi
dec esi
test esi, esi
jg 0x1007ff89
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100b4568
mov esp, ebp
pop ebp
ret 4
push 0x80004005
call fcn.10007270
push 0x80004005
call fcn.10007270
push 0x80004005
call fcn.10007270
int3