Function at 0x466d22
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x51cae2
mov eax, dword fs:[0]
push eax
mov eax, 0x2158
call fcn.004d9200
mov eax, dword [0x577014]
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
mov dword [ebp - 0x2098], ecx
mov ebx, dword [ebp + 8]
xor edx, edx
push ecx
mov esi, esp
mov dword [ebp - 0x209c], ebx
push 0
mov edi, dword [ebx + 8]
inc edx
sub edi, dword [ebx + 0xc]
mov ecx, ebx
sar edi, 4
call fcn.0041b0c5
pop ecx
push eax
mov ecx, esi
call fcn.0040dbb2
lea ecx, [ebp - 0x20b0]
call fcn.00429ecd
pop ecx
and dword [ebp - 4], 0
lea ecx, [ebp - 0x20fc]
call fcn.0045d071
lea eax, [ebp - 0x20b0]
mov byte [ebp - 4], 1
push eax
lea ecx, [ebp - 0x20f0]
call fcn.00405d6e
mov edx, dword [ebp - 0x2098]
cmp byte [edx + 0x29], 0
mov al, byte [edx + 0x28]
mov ecx, dword [edx + 0xc]
mov byte [ebp - 0x20ec], al
mov dword [ebp - 0x20a4], ecx
je 0x466e33
mov al, byte [ecx + 0xb8]
mov byte [ebp - 0x20eb], al
mov al, byte [ecx + 0xb9]
mov byte [ebp - 0x20ea], al
mov al, byte [ecx + 0xba]
mov byte [ebp - 0x20e9], al
mov al, byte [ecx + 0xbb]
mov byte [ebp - 0x20e8], al
mov al, byte [ecx + 0xbc]
mov byte [ebp - 0x20e7], al
mov al, byte [ecx + 0xbd]
mov byte [ebp - 0x20e6], al
mov eax, dword [ecx + 0xc0]
mov dword [ebp - 0x20cc], eax
mov al, byte [ecx + 0xc4]
mov byte [ebp - 0x20e5], al
lea eax, [edx + 0x64]
push eax
lea ecx, [ebp - 0x20d0]
call fcn.00405d6e
and dword [ebp - 0x20b8], 0
and dword [ebp - 0x20b4], 0
push 0x30
call fcn.004d8429
pop ecx
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [ebp - 0x20b8], eax
mov byte [ebp - 4], 2
cmp edi, 1
jle 0x466f50
push 5
push 2
pop edx
mov ecx, ebx
call fcn.0041b076
mov eax, dword [ebx + 8]
pop ecx
and dword [eax + 8], 0
add dword [ebx + 8], 0x10
push 2
pop edx
mov ecx, ebx
call fcn.00410931
test eax, eax
je 0x466f4a
push ecx
mov esi, esp
mov ecx, ebx
push 0
push 0xfffffffffffffffe
pop edx
call fcn.0041014b
pop ecx
push eax
mov ecx, esi
call fcn.0040dbb2
lea ecx, [ebp - 0x20c8]
call fcn.00429ecd
mov edx, ebx
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x2144]
call fcn.004ab07a
pop ecx
lea eax, [ebp - 0x20c8]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0x2164]
push eax
lea ecx, [ebp - 0x20b8]
call fcn.004b5514
mov esi, dword [eax]
mov eax, dword [ebp - 0x2144]
mov dword [esi + 0x18], eax
lea ecx, [esi + 0x1c]
lea eax, [ebp - 0x2140]
push eax
call fcn.00405d6e
fld qword [ebp - 0x213c]
fstp qword [esi + 0x20]
mov al, byte [ebp - 0x2134]
mov byte [esi + 0x28], al
mov ecx, dword [ebp - 0x2140]
add dword [ebx + 8], 0xfffffff0
lea ecx, [ecx - 0x10]
call fcn.00407189
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x20c8]
lea ecx, [ecx - 0x10]
call fcn.00407189
jmp 0x466e91
mov eax, dword [ebp - 0x20b8]
lea ecx, [ebp - 0x20eb]
mov byte [ebp - 0x2082], 0
mov dword [ebp - 0x2080], ecx
lea ecx, [ebp - 0x20ea]
mov dword [ebp - 0x2078], ecx
lea ecx, [ebp - 0x20e9]
mov dword [ebp - 0x2070], ecx
lea ecx, [ebp - 0x20e8]
mov dword [ebp - 0x2068], ecx
lea ecx, [ebp - 0x20e7]
mov dword [ebp - 0x2060], ecx
lea ecx, [ebp - 0x20e6]
mov esi, dword [eax]
mov dword [ebp - 0x2058], ecx
lea ecx, [ebp - 0x20e5]
mov dword [ebp - 0x2050], ecx
lea ecx, [ebp - 0x20e4]
mov dword [ebp - 0x2048], ecx
lea ecx, [ebp - 0x20d8]
mov dword [ebp - 0x2040], ecx
lea ecx, [ebp - 0x2082]
mov dword [ebp - 0x2038], ecx
lea ecx, [ebp - 0x20cc]
mov dword [ebp - 0x2030], ecx
lea ecx, [ebp - 0x20dc]
mov dword [ebp - 0x2028], ecx
lea ecx, [ebp - 0x20e0]
mov dword [ebp - 0x2020], ecx
lea ecx, [ebp - 0x20d4]
mov dword [ebp - 0x207c], str.extend_inactivity_timeout
mov dword [ebp - 0x2074], str.extend_timeout
mov dword [ebp - 0x206c], str.wait_for_process_only
mov dword [ebp - 0x2064], str.terminate_job_after_process_exits
mov dword [ebp - 0x205c], str.allow_break_away_from_job
mov dword [ebp - 0x2054], str.allow_silent_break_away_from_job
mov dword [ebp - 0x204c], str.run_on_default_desktop
mov dword [ebp - 0x2044], str.no_wait
mov dword [ebp - 0x203c], str.as_system
mov dword [ebp - 0x2034], str.trace_execution
mov dword [ebp - 0x202c], str.job_object_active_process_limit
mov dword [ebp - 0x2024], str.as_process
mov dword [ebp - 0x201c], str.as_session
mov dword [ebp - 0x2018], ecx
mov dword [ebp - 0x2014], str.change_session
mov dword [ebp - 0x2094], esi
cmp esi, eax
je 0x467291
mov ecx, dword [esi + 0x10]
sub ecx, 0x10
call fcn.004070e7
lea edi, [eax + 0x10]
mov dword [ebp - 0x2090], edi
mov byte [ebp - 4], 5
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
sub ecx, 0x10
mov dword [ebp - 0x20a0], eax
mov dword [ebp - 0x215c], eax
call fcn.004070e7
fld qword [esi + 0x20]
add eax, 0x10
mov dword [ebp - 0x2158], eax
mov al, byte [esi + 0x28]
fst qword [ebp - 0x20ac]
fstp qword [ebp - 0x2154]
mov byte [ebp - 0x2089], al
mov byte [ebp - 0x214c], al
mov byte [ebp - 4], 6
xor edi, edi
mov esi, dword [ebp - 0x20a0]
mov byte [ebp - 0x2081], 0
lea eax, [ebp - 0x207c]
mov edx, dword [eax + edi*8]
lea ecx, [ebp - 0x2090]
call fcn.004044d6
test al, al
je 0x46715b
push ecx
lea eax, [ebp - 0x2090]
mov ecx, esp
push eax
mov edx, str.Boolean_expected:
call fcn.004093b4
cmp esi, 1
pop ecx
sete dl
mov ecx, ebx
call fcn.0043f639
mov eax, dword [ebp + edi*8 - 0x2080]
pop ecx
mov cl, byte [ebp - 0x2089]
mov byte [eax], cl
mov al, 1
mov byte [ebp - 0x2081], al
jmp 0x467161
mov al, byte [ebp - 0x2081]
inc edi
cmp edi, 0xa
jb 0x467107
mov esi, dword [ebp - 0x2094]
mov edi, dword [ebp - 0x2090]
test al, al
jne 0x467233
mov esi, dword [ebp - 0x20a0]
xor edi, edi
mov edx, dword [ebp + edi*8 - 0x202c]
lea ecx, [ebp - 0x2090]
call fcn.004044d6
test al, al
je 0x4671da
push ecx
lea eax, [ebp - 0x2090]
mov ecx, esp
push eax
mov edx, str.Number_expected:
call fcn.004093b4
pop ecx
cmp esi, 3
mov ecx, ebx
sete dl
call fcn.0043f639
fld qword [ebp - 0x20ac]
pop ecx
call fcn.0050fe40
mov ecx, dword [ebp + edi*8 - 0x2030]
mov dword [ecx], eax
mov al, 1
mov byte [ebp - 0x2081], al
jmp 0x4671e0
mov al, byte [ebp - 0x2081]
inc edi
cmp edi, 4
jb 0x467183
mov esi, dword [ebp - 0x2094]
mov edi, dword [ebp - 0x2090]
test al, al
jne 0x467233
sub esp, 0xc
lea eax, [ebp - 0x2090]
mov ebx, esp
mov edx, str.Invalid_parameter:
push 0x1569
push 0x80004005
push ecx
mov ecx, esp
push eax
call fcn.004093b4
pop ecx
mov ecx, ebx
call fcn.00406620
mov ebx, dword [ebp - 0x209c]
mov dl, 1
mov ecx, ebx
call fcn.0043f529
add esp, 0xc
mov ecx, dword [ebp - 0x2158]
add ecx, 0xfffffff0
call fcn.00407189
lea ecx, [edi - 0x10]
mov byte [ebp - 4], 2
call fcn.00407189
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
je 0x467275
mov eax, dword [esi + 4]
jmp 0x467265
cmp esi, dword [eax + 8]
jne 0x46726b
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x46725b
mov esi, eax
mov dword [ebp - 0x2094], esi
jmp 0x467285
mov esi, eax
mov dword [ebp - 0x2094], esi
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
je 0x467275
cmp esi, dword [ebp - 0x20b8]
jne 0x46709b
cmp byte [ebp - 0x20d8], 0
je 0x4672b3
call fcn.00428aa8
movzx ecx, byte [ebp - 0x20d8]
xor edx, edx
test al, al
cmovne ecx, edx
mov byte [ebp - 0x20d8], cl
xor edi, edi
and dword [ebp - 0x2100], edi
mov dword [ebp - 0x2104], edi
mov byte [ebp - 4], 7
cmp byte [ebp - 0x2082], 0
je 0x467415
push 0x24
call fcn.004d8429
mov esi, eax
pop ecx
mov dword [ebp - 0x2088], esi
mov dword [ebp - 0x209c], esi
and dword [esi], edi
lea ecx, [esi + 4]
call fcn.0040687a
and dword [esi + 8], edi
lea ecx, [esi + 0xc]
call fcn.0040687a
lea ecx, [esi + 0x10]
call fcn.0040687a
mov byte [ebp - 4], 0xb
and dword [esi + 0x14], edi
and dword [esi + 0x18], edi
push 0x10
call fcn.004d8429
pop ecx
lea ecx, [esi + 0x1c]
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [esi + 0x14], eax
call fcn.0040687a
mov byte [esi + 0x20], 0
mov dword [ebp - 0x212c], esi
push 0x10
mov byte [ebp - 4], 0xc
call fcn.004d8429
pop ecx
mov ecx, eax
xor edx, edx
mov dword [ebp - 0x20a0], ecx
xor eax, eax
mov edi, ecx
mov byte [ebp - 4], 7
inc edx
mov dword [ebp - 0x2104], esi
mov dword [ebp - 0x2100], ecx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ecx + 4]
mov edi, dword [ebp - 0x2098]
add edi, 0x1c
mov dword [eax], edx
mov dword [ecx + 8], edx
mov dword [ecx], vtable.std::_Ref_count_struct_CExecutionState::CTraceElement_.0
mov dword [ecx + 0xc], esi
cmp dword [edi + 4], 0xfffffff
mov dword [ebp - 0x209c], eax
mov eax, dword [edi]
mov dword [ebp - 0x2094], eax
je 0x467748
mov dword [ebp - 0x20ac], edi
mov byte [ebp - 4], 0xd
and dword [ebp - 0x20a8], 0
push 0x10
call fcn.004d8429
mov edx, eax
mov eax, dword [ebp - 0x209c]
pop ecx
and dword [edx + 8], 0
and dword [edx + 0xc], 0
lock inc dword [eax]
mov ecx, dword [ebp - 0x2094]
mov eax, dword [ebp - 0x20a0]
mov byte [ebp - 4], 7
and dword [ebp - 0x20a8], 0
mov dword [edx + 8], esi
mov dword [edx + 0xc], eax
inc dword [edi + 4]
mov eax, dword [ecx + 4]
mov dword [edx], ecx
mov dword [edx + 4], eax
mov dword [ecx + 4], edx
lea ecx, [ebp - 0x20ac]
mov dword [eax], edx
call fcn.004b78ac
xor edx, edx
mov ecx, ebx
inc edx
call fcn.0043f4e3
mov dword [esi], eax
lea ecx, [esi + 4]
lea eax, [ebp - 0x20b0]
push eax
call fcn.00405d6e
mov edi, esi
push 0x2000
lea eax, [ebp - 0x2010]
push 0
push eax
call fcn.004d9f30
add esp, 0xc
lea eax, [ebp - 0x2010]
push eax
push 0x1000
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
test eax, eax
jne 0x46746c
call fcn.00406710
sub esp, 0xc
mov esi, esp
push 0x1582
push eax
push ecx
mov ecx, esp
call fcn.0040687a
mov ecx, esi
call fcn.00406620
mov dl, 1
mov ecx, ebx
call fcn.0043f529
add esp, 0xc
lea eax, [ebp - 0x2010]
push eax
call fcn.004ddaa2
pop ecx
push eax
lea eax, [ebp - 0x2010]
push eax
lea ecx, [ebp - 0x20f8]
call fcn.00406efb
mov eax, dword [ebp - 0x2098]
lea ecx, [ebp - 0x20fc]
add eax, 0x2c
push eax
call fcn.00405d6e
lea ecx, [ebp - 0x211c]
call fcn.0045d0d2
and dword [ebp - 0x20c0], 0
lea ecx, [ebp - 0x20bc]
mov dword [ebp - 0x20c4], 0x80004005
call fcn.0040687a
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0x211c]
cmp byte [ebp - 0x2082], 0
je 0x467515
push edi
push eax
lea eax, [ebp - 0x20fc]
push eax
mov eax, dword [ebp - 0x2098]
push ecx
mov esi, esp
mov dword [ebp - 0x2088], esi
mov ecx, dword [eax + 0x34]
sub ecx, 0x10
call fcn.004070e7
add eax, 0x10
mov dword [esi], eax
lea eax, [ebp - 0x2128]
push eax
call fcn.00466751
mov byte [ebp - 4], 0x10
jmp 0x46754c
push eax
mov eax, dword [ebp - 0x2098]
push ecx
mov esi, esp
mov dword [ebp - 0x2088], esi
mov ecx, dword [eax + 0x34]
sub ecx, 0x10
call fcn.004070e7
add eax, 0x10
lea edx, [ebp - 0x20fc]
lea ecx, [ebp - 0x2128]
mov dword [esi], eax
call fcn.00465395
pop ecx
pop ecx
mov byte [ebp - 4], 0x11
push eax
lea ecx, [ebp - 0x20c4]
call fcn.004032ed
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x2120]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x20a4]
lea eax, [ebp - 0x211c]
push eax
mov ecx, dword [ecx + 0x110]
add ecx, 0x14
call fcn.00405d6e
cmp byte [ebp - 0x2082], 0
je 0x46762f
lea eax, [ebp - 0x211c]
push eax
lea ecx, [edi + 0x1c]
call fcn.00405d6e
mov eax, dword [ebp - 0x2118]
mov dword [edi + 8], eax
test eax, eax
je 0x4675e4
mov edx, dword [ebp - 0x2118]
lea ecx, [ebp - 0x20a4]
push 0
push 0
call fcn.004d5f06
pop ecx
pop ecx
push eax
lea ecx, [edi + 0xc]
mov byte [ebp - 4], 0x12
call fcn.00405d6e
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x20a4]
lea ecx, [ecx - 0x10]
call fcn.00407189
cmp dword [ebp - 0x20c4], 0
jge 0x46762b
sub esp, 0xc
lea eax, [ebp - 0x20c4]
mov ecx, esp
push eax
call fcn.0040121b
lea ecx, [ebp - 0x2088]
call fcn.0043aca5
add esp, 0xc
push eax
lea ecx, [edi + 0x10]
mov byte [ebp - 4], 0x13
call fcn.00405d6e
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x2088]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov byte [edi + 0x20], 1
mov esi, dword [ebp - 0x2098]
mov eax, dword [esi + 0x60]
cmp dword [eax - 0xc], 0
je 0x467654
mov edi, 0x5531d8
push edi
call fcn.004ddaa2
pop ecx
push eax
push edi
lea ecx, [esi + 0x60]
call fcn.004d5d16
mov eax, dword [ebp - 0x2114]
lea ecx, [esi + 0x60]
push dword [eax - 0xc]
push eax
call fcn.004d5d16
cmp dword [ebp - 0x20c4], 0
jge 0x46768c
sub esp, 0xc
lea eax, [ebp - 0x20c4]
mov ecx, esp
push eax
call fcn.0040121b
mov dl, 1
mov ecx, ebx
call fcn.0043f529
add esp, 0xc
fild dword [ebp - 0x2118]
mov eax, dword [ebx + 8]
mov edx, 0xffffd8ee
push 3
pop esi
push str.last_exit_code
fstp qword [ebp - 0x20ac]
fld qword [ebp - 0x20ac]
mov ecx, ebx
fstp qword [eax]
mov dword [eax + 8], esi
add dword [ebx + 8], 0x10
call fcn.00410549
fild dword [ebp - 0x2118]
mov eax, dword [ebx + 8]
pop ecx
fstp qword [ebp - 0x20ac]
fld qword [ebp - 0x20ac]
mov ecx, dword [ebp - 0x20bc]
fstp qword [eax]
mov dword [eax + 8], esi
add dword [ebx + 8], 0x10
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp - 0x211c]
call fcn.0046360f
mov ecx, dword [ebp - 0x2100]
test ecx, ecx
je 0x467705
call fcn.00405adf
lea ecx, [ebp - 0x20b8]
call fcn.004aa2e5
lea ecx, [ebp - 0x20fc]
call fcn.004635d5
mov ecx, dword [ebp - 0x20b0]
add ecx, 0xfffffff0
call fcn.00407189
xor eax, eax
inc 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.004d818b
leave
ret 4
push str.list_too_long
call fcn.004d6f3b
int3