Function at 0x40ed80
Capabilities:
Get common file path

Disassembly:
push esi
mov esi, ecx
call fcn.0040ee8f
mov dl, byte [esi + 0x10]
mov ecx, dword [esi + 0x14]
pop esi
jmp 0x41428c
mov eax, 0x4671be
call fcn.00464890
mov eax, 0x3050
call fcn.00464120
push ebx
push esi
push edi
mov edi, ecx
mov byte [ebp - 0x19], dl
push 2
mov dword [ebp - 0x24], edi
call fcn.00449b3d
pop ecx
push eax
call fcn.00449ed1
pop ecx
push 1
call fcn.00449b3d
pop ecx
push eax
call fcn.00449ed1
or dword [ebp - 0x14], 0xffffffff
xor ebx, ebx
mov esi, ebx
pop ecx
cmp dword [edi], ebx
je 0x4142db
inc esi
cmp dword [edi + esi*4], ebx
jne 0x4142d5
xor ecx, ecx
lea eax, [esi + 1]
push 4
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0043016b
mov edi, eax
lea eax, [esi + 1]
pop ecx
shl eax, 2
push eax
push dword [ebp - 0x24]
mov dword [ebp - 0x20], edi
push edi
call fcn.00439ff0
mov ecx, dword [edi]
lea edx, [ebp - 0x205c]
add esp, 0xc
call fcn.004146d4
test al, al
je 0x414324
lea eax, [ebp - 0x205c]
mov dword [edi], eax
push dword [edi]
lea eax, [ebp - 0x105c]
push eax
call fcn.0044b510
pop ecx
lea eax, [ebp - 0x105c]
pop ecx
mov dword [edi], eax
mov cl, byte [ebp - 0x105c]
test cl, cl
je 0x414355
cmp cl, 0x2f
jne 0x41434e
mov byte [eax], 0x5c
inc eax
mov cl, byte [eax]
test cl, cl
jne 0x414346
push dword [edi]
lea eax, [ebp - 0x185c]
mov dword [ebp - 0x28], 0x4137a4
push eax
call fcn.0044b510
pop ecx
pop ecx
push ebx
lea eax, [ebp - 0x185c]
mov esi, 0x800
push eax
push esi
push 0x472af4
push dword [edi]
push ebx
call dword [sym.imp.KERNEL32.DLL_SearchPathA]
lea edx, [ebp - 0x185c]
lea ecx, [ebp - 0x3c]
call fcn.0041403e
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x38], 0
mov dword [ebp - 0x18], ebx
jbe 0x4143d5
mov esi, ebx
mov ecx, dword [ebp - 0x34]
push str.cygwin1.dll
lea ecx, [esi + ecx]
call fcn.00415da3
test al, al
jne 0x4143c9
mov eax, dword [ebp - 0x18]
add esi, 0x10
inc eax
mov dword [ebp - 0x18], eax
cmp eax, dword [ebp - 0x38]
jb 0x4143a4
jmp 0x4143d0
mov dword [ebp - 0x28], 0x4136f2
mov esi, 0x800
lea eax, [ebp - 0x5c]
push edi
push eax
call dword [ebp - 0x28]
pop ecx
pop ecx
mov byte [ebp - 4], 1
cmp dword [ebp - 0x58], 0x7000
jb 0x41468c
cmp byte [ebp - 0x19], 0
je 0x41468c
lea eax, [ebp - 0x305c]
push eax
push esi
call dword [sym.imp.KERNEL32.DLL_GetTempPathW]
push esi
lea eax, [ebp - 0x305c]
push eax
lea eax, [ebp - 0x85c]
push eax
call fcn.0043fac4
mov esi, dword [0x73bf20]
add esp, 0xc
mov edi, eax
lea eax, [esi + 1]
mov dword [0x73bf20], eax
call sub.KERNEL32.DLL_GetCurrentProcessId
push esi
push eax
mov eax, 0x800
sub eax, edi
push str.System.spawn._u._u
push eax
lea eax, [ebp - 0x85c]
add eax, edi
push eax
call fcn.004148a9
add esp, 0x14
lea ecx, [ebp - 0x85c]
mov edx, 0x1301
push 0x1b6
call fcn.004183f5
mov dword [ebp - 0x24], eax
pop ecx
test eax, eax
js 0x4146a8
lea eax, [ebp - 0x85c]
mov ecx, 0x737c6c
push eax
call fcn.00414950
mov edi, dword [ebp - 0x20]
lea eax, [ebp - 0x285c]
push ebx
push eax
push ebx
push ebx
push dword [edi]
call fcn.0044cd7e
add esp, 0x14
mov dword [ebp - 0x14], 2
mov eax, ebx
mov dword [ebp - 0x18], ebx
mov bl, byte [eax + str.covc]
mov dh, byte [ebp + eax - 0x285c]
movzx eax, bl
mov dl, byte [eax + 0x475e48]
mov al, bl
add al, 0x20
test dl, 0x40
movzx ecx, al
movzx eax, bl
cmove ecx, eax
movzx eax, dh
movsx esi, cl
mov dl, byte [eax + 0x475e48]
mov al, dh
add al, 0x20
and dl, 0x40
movzx ecx, al
movzx eax, dh
cmove ecx, eax
movsx eax, cl
sub eax, esi
jne 0x414521
test dh, dh
je 0x4144ff
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
jmp 0x4144a9
mov ecx, dword [edi + 4]
xor eax, eax
inc eax
jmp 0x414510
cmp byte [ecx], 0x2d
jne 0x414514
inc eax
mov ecx, dword [edi + eax*4]
test ecx, ecx
jne 0x414507
xor ebx, ebx
cmp dword [edi + eax*4], ebx
je 0x414523
inc eax
mov dword [ebp - 0x14], eax
jmp 0x414526
xor ebx, ebx
mov eax, dword [ebp - 0x14]
lea eax, [edi + eax*4]
push eax
lea eax, [ebp - 0x4c]
push eax
call dword [ebp - 0x28]
pop ecx
pop ecx
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 2
call fcn.00415cf7
push eax
lea ecx, [ebp - 0x2c]
call fcn.004199db
mov byte [ebp - 4], 3
imul esi, dword [ebp - 0x28], 5
inc esi
push esi
call fcn.0043016b
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x18], eax
call fcn.00413429
push esi
push dword [ebp - 0x2c]
mov esi, dword [ebp - 0x18]
push esi
call fcn.0043fac4
mov ecx, eax
add esp, 0xc
or eax, 0xffffffff
cmp ecx, eax
je 0x414583
mov edx, esi
mov esi, dword [ebp - 0x24]
push ecx
jmp 0x41459b
mov esi, dword [ebp - 0x24]
mov edx, 0x7272a0
push 3
mov ecx, esi
call fcn.0041958a
mov edx, dword [ebp - 0x40]
pop ecx
push dword [ebp - 0x48]
mov ecx, esi
call fcn.0041958a
pop ecx
push dword [ebp - 0x18]
call fcn.00430166
pop ecx
lea ecx, [ebp - 0x20]
call fcn.00413473
push dword [ebp - 0x2c]
call fcn.00430166
pop ecx
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 1
call fcn.00415c2c
push esi
call fcn.00450118
cmp dword [ebp - 0x14], 0
mov esi, ebx
pop ecx
mov dword [ebp - 0x28], ebx
jbe 0x4145f9
mov ebx, dword [ebp - 0x14]
push dword [edi + esi*4]
call fcn.004446f0
pop ecx
mov ecx, dword [ebp - 0x28]
add ecx, 3
add ecx, eax
inc esi
mov dword [ebp - 0x28], ecx
cmp esi, ebx
jb 0x4145de
xor ebx, ebx
lea eax, [ebp - 0x85c]
push eax
call fcn.004446f0
pop ecx
mov ecx, dword [ebp - 0x28]
add ecx, 4
add eax, ecx
lea ecx, [ebp - 0x30]
push eax
call fcn.00401c8d
cmp dword [ebp - 0x14], 0
mov byte [ebp - 4], 4
mov esi, dword [ebp - 0x28]
mov byte [esi], bl
jbe 0x41464e
push 0x472b18
push esi
call fcn.0044b520
push dword [edi + ebx*4]
push esi
call fcn.0044b520
push 0x7272a4
push esi
call fcn.0044b520
add esp, 0x18
inc ebx
cmp ebx, dword [ebp - 0x14]
jb 0x414626
push 0x7272a8
push esi
call fcn.0044b520
lea eax, [ebp - 0x85c]
push eax
push esi
call fcn.0044b520
push 0x472b18
push esi
call fcn.0044b520
mov dl, byte [0x739224]
mov ecx, esi
call fcn.00417826
push esi
mov dword [ebp - 0x14], eax
call fcn.00430166
add esp, 0x1c
jmp 0x4146ab
mov bl, byte [0x739224]
lea ecx, [ebp - 0x5c]
call fcn.00415cf7
mov dl, bl
mov ecx, eax
call fcn.00417826
mov dword [ebp - 0x14], eax
jmp 0x4146ab
mov edi, dword [ebp - 0x20]
push edi
call fcn.00430166
pop ecx
lea ecx, [ebp - 0x5c]
call fcn.00415c2c
lea ecx, [ebp - 0x3c]
call fcn.0040d53d
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x14]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret