Function at 0x10040980
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100c6832
mov eax, dword fs:[0]
push eax
mov eax, 0x158c
call fcn.100567b0
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xor eax, eax
push 0x1046
push eax
mov word [ebp - 0x1468], ax
lea eax, [ebp - 0x1466]
push eax
call fcn.100567e0
add esp, 0xc
lea eax, [ebp - 0x1468]
push dword [0x1017b868]
push str._s_task.json
push eax
call fcn.1003f3d0
add esp, 0xc
xor eax, eax
mov word [ebp - 0x218], ax
push 0x206
push eax
lea eax, [ebp - 0x216]
push eax
call fcn.100567e0
add esp, 0xc
xor eax, eax
mov word [ebp - 0x420], ax
push 0x206
push eax
lea eax, [ebp - 0x41e]
push eax
call fcn.100567e0
add esp, 0xc
lea eax, [ebp - 0x420]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea eax, [ebp - 0x218]
push eax
push 0
push 0x100e892c
lea eax, [ebp - 0x420]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x1468]
push eax
call fcn.10042160
test eax, eax
je 0x1004151b
push 0xb8
lea eax, [ebp - 0x1580]
push 0
push eax
call fcn.100567e0
add esp, 8
lea ecx, [ebp - 0x1580]
call fcn.1003e340
sub esp, 8
mov dword [ebp - 4], 0
lea eax, [ebp - 0x218]
lea ecx, [ebp - 0x1570]
push eax
call fcn.1003ee00
test eax, eax
lea ecx, [ebp - 0x1580]
mov eax, dword [ebp - 0x1580]
mov eax, dword [eax + 4]
jne 0x10040ad1
add ecx, eax
mov eax, dword [ecx + 0xc]
or eax, 2
cmp dword [ecx + 0x38], 0
jne 0x10040ae0
or eax, 4
jmp 0x10040ae0
add ecx, eax
mov edx, 4
xor eax, eax
cmp dword [ecx + 0x38], eax
cmove eax, edx
push 0
push eax
call fcn.100405a0
mov dword [ebp - 0x1494], 6
mov dword [ebp - 0x1490], 0
xorps xmm0, xmm0
mov dword [ebp - 0x146c], 0
movq qword [ebp - 0x1474], xmm0
mov dword [ebp - 0x1474], 0
mov dword [ebp - 0x1470], 0
mov dword [ebp - 0x146c], 0
lea eax, [ebp - 0x1580]
mov byte [ebp - 4], 2
push eax
lea ecx, [ebp - 0x1494]
call fcn.10049150
push str.appInstall
lea ecx, [ebp - 0x1494]
call fcn.10048de0
cmp dword [eax], 4
jne 0x10040b5f
mov eax, dword [eax + 4]
jmp 0x10040b64
mov eax, 0x1017c064
push eax
lea ecx, [ebp - 0x1474]
call fcn.100504b0
mov esi, dword [ebp - 0x1470]
mov ebx, dword [ebp - 0x1474]
sub esi, ebx
mov edi, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
sar esi, 3
mov dword [ebp - 0x158c], ebx
mov dword [ebp - 0x1588], esi
test esi, esi
je 0x1004101a
jmp 0x10040ba6
mov edi, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push 0x100e8984
mov ecx, ebx
call fcn.10048de0
cmp dword [eax], 0
jne 0x10040bbc
mov eax, dword [eax + 4]
jmp 0x10040bc1
mov eax, 0x1017531c
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x148c]
mov dword [ebp - 0x1478], 0xf
mov dword [ebp - 0x147c], 0
mov byte [ebp - 0x148c], 0
call fcn.10006160
push 0x100e8b54
mov ecx, ebx
mov byte [ebp - 4], 3
call fcn.10048de0
cmp dword [eax], 0
jne 0x10040c06
mov eax, dword [eax + 4]
jmp 0x10040c0b
mov eax, 0x1017531c
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x14ac]
mov dword [ebp - 0x1498], 0xf
mov dword [ebp - 0x149c], 0
mov byte [ebp - 0x14ac], 0
call fcn.10006160
push str.start
mov ecx, ebx
mov byte [ebp - 4], 4
call fcn.10048de0
cmp dword [eax], 0
jne 0x10040c50
mov eax, dword [eax + 4]
jmp 0x10040c55
mov eax, 0x1017531c
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x14c4]
mov dword [ebp - 0x14b0], 0xf
mov dword [ebp - 0x14b4], 0
mov byte [ebp - 0x14c4], 0
call fcn.10006160
push str.compel
mov ecx, ebx
mov byte [ebp - 4], 5
call fcn.10048de0
cmp dword [eax], 1
jne 0x10040ca2
mov eax, dword [eax + 4]
mov esi, dword [eax]
mov dword [ebp - 0x1594], esi
jmp 0x10040cac
mov dword [ebp - 0x1594], 0
push 0x100e8b84
mov ecx, ebx
call fcn.10048de0
cmp dword [eax], 1
jne 0x10040cca
mov eax, dword [eax + 4]
mov eax, dword [eax]
mov dword [ebp - 0x1598], eax
jmp 0x10040cd4
mov dword [ebp - 0x1598], 0
cmp dword [ebp - 0x1478], 0x10
jb 0x10040ce9
mov esi, dword [ebp - 0x148c]
test esi, esi
jne 0x10040cef
jmp 0x10040d56
lea esi, [ebp - 0x148c]
push 0
push 0
push 0xffffffffffffffff
push esi
push 0
push 0
call edi
mov edi, eax
test edi, edi
jle 0x10040d50
xor ecx, ecx
lea eax, [edi + 1]
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10055db0
mov ebx, eax
add esp, 4
mov dword [ebp - 0x1584], ebx
test ebx, ebx
je 0x10040d50
lea eax, [edi*2 + 2]
push eax
push 0
push ebx
call fcn.100567e0
add esp, 0xc
push edi
mov edi, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push ebx
push 0xffffffffffffffff
push esi
push 0
push 0
call edi
jmp 0x10040d60
mov edi, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov dword [ebp - 0x1584], 0
cmp dword [ebp - 0x14b0], 0x10
jb 0x10040e4b
mov esi, dword [ebp - 0x14c4]
test esi, esi
jne 0x10040e51
mov edi, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
xor ebx, ebx
cmp dword [ebp - 0x1498], 0x10
jb 0x10040eb7
mov esi, dword [ebp - 0x14ac]
test esi, esi
jne 0x10040ebd
xor edi, edi
push 0x1324
call fcn.10055db0
mov esi, eax
add esp, 4
test esi, esi
je 0x10040f53
mov ecx, dword [ebp - 0x1584]
test ecx, ecx
je 0x10040f4a
test ebx, ebx
je 0x10040f4a
test edi, edi
je 0x10040f4a
xor eax, eax
cmp dword [ebp - 0x1594], 1
push ecx
sete al
mov dword [esi + 0x1318], eax
mov eax, dword [ebp - 0x1598]
push 0x824
push esi
mov dword [esi + 0x131c], eax
call fcn.10055fa4
add esp, 0xc
lea eax, [esi + 0x1048]
push ebx
push 0x104
push eax
call fcn.10055fa4
add esp, 0xc
lea eax, [esi + 0x1250]
push edi
push 0x64
push eax
call fcn.10055fa4
mov dword [esi + 0x1320], 0
add esp, 0xc
mov eax, dword [0x1017b874]
test eax, eax
jne 0x10040f30
mov dword [0x1017b874], esi
jmp 0x10040f53
lea esi, [ebp - 0x14c4]
push 0
push 0
push 0xffffffffffffffff
push esi
push 0
push 0
call edi
mov edi, eax
test edi, edi
jle 0x10040d7b
xor ecx, ecx
lea eax, [edi + 1]
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10055db0
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x10040d7b
lea eax, [edi*2 + 2]
push eax
push 0
push ebx
call fcn.100567e0
add esp, 0xc
push edi
mov edi, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push ebx
push 0xffffffffffffffff
push esi
push 0
push 0
call edi
jmp 0x10040d83
lea esi, [ebp - 0x14ac]
push 0
push 0
push 0xffffffffffffffff
push esi
push 0
push 0
call edi
mov dword [ebp - 0x1590], eax
test eax, eax
jle 0x10040d9e
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10055db0
mov edi, eax
add esp, 4
test edi, edi
je 0x10040d9e
mov eax, dword [ebp - 0x1590]
lea eax, [eax*2 + 2]
push eax
push 0
push edi
call fcn.100567e0
add esp, 0xc
push dword [ebp - 0x1590]
push edi
push 0xffffffffffffffff
push esi
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
jmp 0x10040da0
mov ecx, dword [eax + 0x1320]
test ecx, ecx
je 0x10040f42
mov eax, ecx
test eax, eax
jne 0x10040f30
jmp 0x10040f53
mov dword [eax + 0x1320], esi
jmp 0x10040f53
push esi
call fcn.10055d78
add esp, 4
mov eax, dword [ebp - 0x1584]
test eax, eax
je 0x10040f66
push eax
call fcn.10055d78
add esp, 4
test ebx, ebx
je 0x10040f73
push ebx
call fcn.10055d78
add esp, 4
test edi, edi
je 0x10040f80
push edi
call fcn.10055d78
add esp, 4
cmp dword [ebp - 0x14b0], 0x10
jb 0x10040f97
push dword [ebp - 0x14c4]
call fcn.100559ce
add esp, 4
cmp dword [ebp - 0x1498], 0x10
mov dword [ebp - 0x14b0], 0xf
mov dword [ebp - 0x14b4], 0
mov byte [ebp - 0x14c4], 0
jb 0x10040fc9
push dword [ebp - 0x14ac]
call fcn.100559ce
add esp, 4
mov byte [ebp - 4], 2
cmp dword [ebp - 0x1478], 0x10
mov dword [ebp - 0x1498], 0xf
mov dword [ebp - 0x149c], 0
mov byte [ebp - 0x14ac], 0
jb 0x10040fff
push dword [ebp - 0x148c]
call fcn.100559ce
add esp, 4
mov ebx, dword [ebp - 0x158c]
add ebx, 8
dec dword [ebp - 0x1588]
mov dword [ebp - 0x158c], ebx
jne 0x10040ba0
push str.appUninstall
lea ecx, [ebp - 0x1494]
call fcn.10048de0
cmp dword [eax], 4
jne 0x10041034
mov eax, dword [eax + 4]
jmp 0x10041039
mov eax, 0x1017c064
push eax
lea ecx, [ebp - 0x1474]
call fcn.100504b0
mov edi, dword [ebp - 0x1470]
mov ebx, dword [ebp - 0x1474]
sub edi, ebx
sar edi, 3
mov dword [ebp - 0x1584], edi
test edi, edi
je 0x10041124
mov eax, ebx
mov dword [ebp - 0x158c], ebx
lea esp, [esp]
push str.pkname
mov ecx, eax
call fcn.10048de0
cmp dword [eax], 0
jne 0x10041086
mov eax, dword [eax + 4]
jmp 0x1004108b
mov eax, 0x1017531c
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x148c]
mov dword [ebp - 0x1478], 0xf
mov dword [ebp - 0x147c], 0
mov byte [ebp - 0x148c], 0
call fcn.10006160
push 0x20c
call fcn.10055db0
mov esi, eax
add esp, 4
test esi, esi
je 0x100410eb
cmp dword [ebp - 0x1478], 0x10
jb 0x1004113e
mov edi, dword [ebp - 0x148c]
test edi, edi
jne 0x10041144
push esi
call fcn.10055d78
add esp, 4
mov edi, dword [ebp - 0x1584]
cmp dword [ebp - 0x1478], 0x10
jb 0x10041102
push dword [ebp - 0x148c]
call fcn.100559ce
add esp, 4
mov eax, dword [ebp - 0x158c]
add eax, 8
dec edi
mov dword [ebp - 0x158c], eax
mov dword [ebp - 0x1584], edi
jne 0x10041070
mov ebx, dword [ebp - 0x1474]
cmp dword [ebp - 0x1520], 0
lea esi, [ebp - 0x1570]
jne 0x10041210
xor esi, esi
jmp 0x10041237
lea edi, [ebp - 0x148c]
push 0
push 0
push 0xffffffffffffffff
push edi
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov dword [ebp - 0x1588], eax
test eax, eax
jle 0x100410dc
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10055db0
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x100410dc
mov eax, dword [ebp - 0x1588]
lea eax, [eax*2 + 2]
push eax
push 0
push ebx
call fcn.100567e0
add esp, 0xc
push dword [ebp - 0x1588]
push ebx
push 0xffffffffffffffff
push edi
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push ebx
push 0x104
push esi
call fcn.10055fa4
add esp, 0xc
push ebx
call fcn.10055d78
mov dword [esi + 0x208], 0
add esp, 4
mov eax, dword [0x1017b878]
test eax, eax
jne 0x100411f0
mov dword [0x1017b878], esi
jmp 0x100410e5
mov ecx, dword [eax + 0x208]
test ecx, ecx
je 0x10041205
mov eax, ecx
test eax, eax
jne 0x100411f0
jmp 0x100410e5
mov dword [eax + 0x208], esi
jmp 0x100410e5
lea ecx, [ebp - 0x1570]
call fcn.1003f010
push dword [ebp - 0x1520]
xor ecx, ecx
test al, al
cmove esi, ecx
call fcn.1005a55f
xor ecx, ecx
add esp, 4
test eax, eax
cmovne esi, ecx
mov byte [ebp - 0x1524], 0
lea eax, [ebp - 0x156c]
mov dword [ebp - 0x1564], eax
lea eax, [ebp - 0x1568]
mov dword [ebp - 0x1560], eax
lea eax, [ebp - 0x155c]
mov dword [ebp - 0x1554], eax
lea eax, [ebp - 0x1558]
mov dword [ebp - 0x1550], eax
lea eax, [ebp - 0x154c]
mov dword [ebp - 0x1544], eax
lea eax, [ebp - 0x1548]
mov dword [ebp - 0x1540], eax
mov eax, dword [0x1017c8b8]
mov byte [ebp - 0x152b], 0
mov dword [ebp - 0x1568], 0
mov dword [ebp - 0x1558], 0
mov dword [ebp - 0x1548], 0
mov dword [ebp - 0x156c], 0
mov dword [ebp - 0x155c], 0
mov dword [ebp - 0x154c], 0
mov dword [ebp - 0x1520], 0
mov dword [ebp - 0x1528], eax
mov dword [ebp - 0x1530], 0
test esi, esi
jne 0x10041313
mov eax, dword [ebp - 0x1580]
lea ecx, [ebp - 0x1580]
mov eax, dword [eax + 4]
add ecx, eax
mov eax, dword [ecx + 0xc]
or eax, 2
cmp dword [ecx + 0x38], esi
jne 0x1004130b
or eax, 4
push 0
push eax
call fcn.100405a0
mov byte [ebp - 4], 1
test ebx, ebx
je 0x1004133e
mov edi, dword [ebp - 0x1470]
mov esi, ebx
cmp ebx, edi
je 0x10041335
mov ecx, esi
call fcn.1004a390
add esi, 8
cmp esi, edi
jne 0x10041327
push ebx
call fcn.100559ce
add esp, 4
lea ecx, [ebp - 0x1494]
mov byte [ebp - 4], 0
call fcn.1004a390
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x1580]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ifstream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x1580]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [ebp + ecx - 0x1584], eax
mov eax, dword [ebp - 0x1520]
mov dword [ebp - method.std::basic_filebuf_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_filebuf_char__struct_std::char_traits_char__.0
test eax, eax
je 0x100413c5
mov esi, dword [ebp - 0x1564]
lea ecx, [ebp - 0x152c]
cmp dword [esi], ecx
jne 0x100413c5
mov edx, dword [ebp - 0x1534]
mov ecx, dword [ebp - 0x1538]
sub edx, ecx
mov dword [esi], ecx
mov eax, dword [ebp - 0x1554]
mov dword [eax], ecx
mov eax, dword [ebp - 0x1544]
mov dword [eax], edx
mov eax, dword [ebp - 0x1520]
cmp byte [ebp - 0x1524], 0
je 0x100414a0
test eax, eax
je 0x100413ef
lea ecx, [ebp - 0x1570]
call fcn.1003f010
push dword [ebp - 0x1520]
call fcn.1005a55f
add esp, 4
lea eax, [ebp - 0x156c]
mov byte [ebp - 0x1524], 0
mov dword [ebp - 0x1564], eax
lea eax, [ebp - 0x1568]
mov dword [ebp - 0x1560], eax
lea eax, [ebp - 0x155c]
mov dword [ebp - 0x1554], eax
lea eax, [ebp - 0x1558]
mov dword [ebp - 0x1550], eax
lea eax, [ebp - 0x154c]
mov dword [ebp - 0x1544], eax
lea eax, [ebp - 0x1548]
mov dword [ebp - 0x1540], eax
mov eax, dword [0x1017c8b8]
mov byte [ebp - 0x152b], 0
mov dword [ebp - 0x1568], 0
mov dword [ebp - 0x1558], 0
mov dword [ebp - 0x1548], 0
mov dword [ebp - 0x156c], 0
mov dword [ebp - 0x155c], 0
mov dword [ebp - 0x154c], 0
mov dword [ebp - 0x1520], 0
mov dword [ebp - 0x1528], eax
mov dword [ebp - 0x1530], 0
mov esi, dword [ebp - 0x153c]
mov dword [ebp - method.std::basic_streambuf_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_streambuf_char__struct_std::char_traits_char__.0
test esi, esi
je 0x100414d4
mov ecx, dword [esi]
test ecx, ecx
je 0x100414cb
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, eax
test ecx, ecx
je 0x100414cb
mov eax, dword [ecx]
push 1
call dword [eax]
push esi
call fcn.100559ce
add esp, 4
mov eax, dword [ebp - 0x1580]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_istream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x1580]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x18]
mov dword [ebp + ecx - 0x1584], eax
lea ecx, [ebp - 0x1510]
push ecx
mov dword [ebp - method.std::ios_base.virtual_0], vtable.std::ios_base.0
call fcn.100757d2
add esp, 4
mov eax, 1
jmp 0x1004151d
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10056351
mov esp, ebp
pop ebp
ret