Function at 0x12e0ccd0
Capabilities:
Check if file exists
Get common file path

Disassembly:
sub esp, 0x618
push ebx
push ebp
push esi
mov esi, dword [esp + 0x628]
xor ebp, ebp
push edi
cmp esi, ebp
je 0x12e0cda6
cmp dword [esp + 0x630], ebp
je 0x12e0cda6
cmp dword [esp + 0x634], ebp
je 0x12e0cda6
cmp word [esi], bp
je 0x12e0cda6
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x12]
mov word [esp + 0x10], bp
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x21a]
mov word [esp + 0x218], bp
rep stosd dword es:[edi], eax
push esi
stosw word es:[edi], ax
call fcn.12f5c44d
add esp, 4
cmp eax, 3
jbe 0x12e0cf48
mov ebx, 0x5c
mov edi, 0x3a
cmp word [esi], bx
jne 0x12e0ce12
cmp word [esi + 2], bx
jne 0x12e0ce12
mov cx, word [esi + 4]
lea eax, [esi + 4]
cmp cx, 0x2e
jne 0x12e0cd7e
cmp word [esi + 6], bx
je 0x12e0cd8a
cmp cx, 0x3f
jne 0x12e0cdb3
cmp word [esi + 6], bx
jne 0x12e0cdb3
add esi, 8
cmp word [esi], bp
je 0x12e0cda6
cmp word [esi + 2], di
jne 0x12e0cda6
mov ax, word [esi + 4]
cmp ax, bx
je 0x12e0ce12
cmp ax, bp
je 0x12e0ce12
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x618
ret
push ebx
push eax
call fcn.12f5cfc9
add esp, 8
cmp eax, ebp
je 0x12e0cda6
push 6
push str.pipe_
push eax
call fcn.12f5e2b3
add esp, 0xc
test eax, eax
je 0x12e0cda6
mov edi, dword [esp + 0x634]
lea eax, [edi - 1]
push eax
push esi
mov esi, dword [esp + 0x638]
push esi
call fcn.12f5c4ab
push esi
mov word [esi + edi*2 - 2], bp
call fcn.12f5c44d
add esp, 0x10
mov ecx, 3
cmp ecx, eax
pop edi
pop esi
sbb eax, eax
pop ebp
neg eax
pop ebx
add esp, 0x618
ret
push esi
call fcn.12f5c44d
add esp, 4
cmp eax, 2
jbe 0x12e0ce67
cmp word [esi], 0x22
jne 0x12e0ce67
cmp word [esi + eax*2 - 2], 0x22
jne 0x12e0ce67
add eax, 0xfffffffe
cmp eax, 0x103
jbe 0x12e0ce4b
add esi, 2
push 0x103
lea edx, [esp + 0x21c]
push esi
push edx
jmp 0x12e0ce58
push eax
add esi, 2
lea eax, [esp + 0x21c]
push esi
push eax
call fcn.12f5c4ab
add esp, 0xc
lea esi, [esp + 0x218]
cmp word [esi + 2], di
je 0x12e0cfc5
push esi
call fcn.12f5c44d
add esp, 4
cmp eax, 9
jb 0x12e0ce97
push 9
push 0x130e368c
push esi
call fcn.12f5e2b3
add esp, 0xc
test eax, eax
je 0x12e0cfc5
mov eax, 0x7c
cmp word [esi + 2], ax
jne 0x12e0ceac
cmp word [esi + 6], ax
je 0x12e0cfc5
lea ecx, [esp + 0x10]
push 0x104
push ecx
push esi
call fcn.12e0dcc0
add esp, 0xc
test eax, eax
jne 0x12e0cfc1
lea edx, [esp + 0x10]
push edx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
cmp eax, ebp
je 0x12e0cda6
cmp eax, 0x104
jae 0x12e0cda6
lea eax, [esp + 0x10]
push eax
call fcn.12f5c44d
mov edi, eax
mov ax, word [esi]
add esp, 4
cmp ax, 0x2e
jne 0x12e0cf22
cmp word [esi + 2], bx
jne 0x12e0cf0d
add esi, 4
jmp 0x12e0cf22
cmp ax, 0x2e
jne 0x12e0cf22
cmp word [esi + 2], ax
jne 0x12e0cf22
cmp word [esi + 4], bx
jne 0x12e0cf22
add esi, 6
push esi
call fcn.12f5c44d
lea ecx, [eax + edi + 1]
add esp, 4
cmp ecx, 0x104
jae 0x12e0cda6
lea edx, [esp + 0x10]
push esi
mov word [esp + edi*2 + 0x14], bx
push edx
jmp 0x12e0cfb9
cmp word [esi + 2], 0x3a
je 0x12e0cfc5
lea eax, [esp + 0x10]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
cmp eax, ebp
je 0x12e0cda6
cmp eax, 0x104
jae 0x12e0cda6
lea ecx, [esp + 0x10]
push ecx
call fcn.12f5c44d
add esp, 4
cmp word [esi], 0x2e
mov edi, eax
mov ebx, 0x5c
jne 0x12e0cf95
cmp word [esi + 2], bx
jne 0x12e0cf95
add esi, 4
push esi
call fcn.12f5c44d
lea edx, [eax + edi + 1]
add esp, 4
cmp edx, 0x104
jae 0x12e0cda6
lea eax, [esp + 0x10]
push esi
mov word [esp + edi*2 + 0x14], bx
push eax
call fcn.12f5c865
add esp, 8
lea esi, [esp + 0x10]
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x422]
mov word [esp + 0x420], bp
rep stosd dword es:[edi], eax
push 0x7e
push esi
stosw word es:[edi], ax
call fcn.12f5cfc9
add esp, 8
test eax, eax
je 0x12e0d027
lea ecx, [esp + 0x420]
push 0x104
push ecx
push esi
call fcn.12e37140
add esp, 0xc
test eax, eax
jne 0x12e0d020
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x12e0d027
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x618
ret
lea esi, [esp + 0x420]
mov edi, dword [esp + 0x634]
lea edx, [edi - 1]
push edx
push esi
mov esi, dword [esp + 0x638]
push esi
call fcn.12f5c4ab
add esp, 0xc
mov word [esi + edi*2 - 2], bp
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x618
ret