Function at 0x4107d0
Capabilities:
Get common file path

Disassembly:
sub esp, 0x254
mov eax, dword [0x441ff4]
push ebx
xor ebx, ebx
push ebp
push esi
cmp eax, ebx
push edi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x4c], ebx
je 0x410871
mov eax, dword [0x441fd4]
mov eax, dword [eax]
cmp eax, 3
je 0x41080c
mov ecx, dword [0x441fdc]
cmp dword [ecx], ebx
jne 0x410871
cmp eax, 3
jle 0x410871
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov eax, dword [0x436030]
cmp eax, ebx
jge 0x410831
mov edx, dword [0x441fa0]
mov dword [0x436030], edx
call fcn.0041c4b1
test eax, eax
je 0x410863
mov eax, dword [0x436030]
push 3
push eax
push 0xf12
push str.C:_build_rel_sp_8_4_6_2_srcwindows_atpclient_arr_srvsAdaptCof.cpp
call fcn.0041c4e1
push str.EnableNetworkConnectionByName:_start_..._n
call fcn.0041c506
add esp, 0x14
call fcn.0041c4cc
push esi
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
push ebx
call dword [sym.imp.ole32.dll_CoInitialize]
lea ecx, [esp + 0x48]
mov dword [esp + 0x48], ebx
push ecx
push ebx
push ebx
push 3
push ebx
call dword [sym.imp.SHELL32.dll_SHGetFolderLocation]
mov ebp, eax
cmp ebp, ebx
jge 0x410938
cmp dword [0x441ff4], ebx
je 0x410c80
mov edx, dword [0x441fd4]
mov eax, dword [edx]
cmp eax, 2
je 0x4108c6
mov ecx, dword [0x441fdc]
cmp dword [ecx], ebx
jne 0x410c80
cmp eax, 2
jle 0x410c80
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov eax, dword [0x436030]
cmp eax, ebx
jge 0x4108eb
mov edx, dword [0x441fa0]
mov dword [0x436030], edx
call fcn.0041c4b1
test eax, eax
je 0x41091d
mov eax, dword [0x436030]
push 2
push eax
push 0xf1a
push str.C:_build_rel_sp_8_4_6_2_srcwindows_atpclient_arr_srvsAdaptCof.cpp
call fcn.0041c4e1
push str.EnableNetworkConnectionByName:_failed._n
call fcn.0041c506
add esp, 0x14
call fcn.0041c4cc
push esi
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
add esp, 0x254
ret
lea ecx, [esp + 0x10]
mov al, 0x80
push ecx
mov byte [esp + 0x24], 0x1e
mov byte [esp + 0x25], bl
mov byte [esp + 0x26], 0x71
mov byte [esp + 0x27], al
mov byte [esp + 0x28], bl
mov byte [esp + 0x29], bl
mov byte [esp + 0x2a], bl
mov byte [esp + 0x2b], bl
mov byte [esp + 0x2c], bl
mov byte [esp + 0x2d], bl
mov byte [esp + 0x2e], bl
mov byte [esp + 0x2f], bl
mov byte [esp + 0x30], bl
mov byte [esp + 0x31], bl
mov byte [esp + 0x32], 0xc7
mov byte [esp + 0x33], 0xac
mov byte [esp + 0x34], 7
mov byte [esp + 0x35], 0x70
mov byte [esp + 0x36], 2
mov byte [esp + 0x37], 0x32
mov byte [esp + 0x38], 0xd1
mov byte [esp + 0x39], 0x11
mov byte [esp + 0x3a], 0xaa
mov byte [esp + 0x3b], 0xd2
mov byte [esp + 0x3c], bl
mov byte [esp + 0x3d], al
mov byte [esp + 0x3e], 0x5f
mov byte [esp + 0x3f], 0xc1
mov byte [esp + 0x40], 0x27
mov byte [esp + 0x41], 0xe
mov byte [esp + 0x42], bl
mov byte [esp + 0x43], bl
call dword [sym.imp.SHELL32.dll_SHGetMalloc]
mov eax, dword [esp + 0x10]
push 0x20
push eax
mov edx, dword [eax]
call dword [edx + 0xc]
mov ebp, eax
mov ecx, 8
lea esi, [esp + 0x20]
mov edi, ebp
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x48]
push ebp
push eax
call dword [sym.imp.SHELL32.dll_ILCombine]
mov esi, eax
mov eax, dword [esp + 0x10]
push ebp
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x48]
push ecx
push eax
mov edx, dword [eax]
call dword [edx + 0x14]
lea edx, [esp + 0x44]
mov dword [esp + 0x44], ebx
push edx
call dword [sym.imp.SHELL32.dll_SHGetDesktopFolder]
mov edi, eax
cmp edi, ebx
jge 0x410adf
mov eax, dword [esp + 0x10]
push esi
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov eax, dword [esp + 0x10]
push eax
mov edx, dword [eax]
call dword [edx + 8]
cmp dword [0x441ff4], ebx
je 0x410ad2
mov eax, dword [0x441fd4]
mov eax, dword [eax]
cmp eax, 2
je 0x410a6d
mov ecx, dword [0x441fdc]
cmp dword [ecx], ebx
jne 0x410ad2
cmp eax, 2
jle 0x410ad2
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
mov eax, dword [0x436030]
cmp eax, ebx
jge 0x410a92
mov edx, dword [0x441fa0]
mov dword [0x436030], edx
call fcn.0041c4b1
test eax, eax
je 0x410ac4
mov eax, dword [0x436030]
push 2
push eax
push 0xf33
push str.C:_build_rel_sp_8_4_6_2_srcwindows_atpclient_arr_srvsAdaptCof.cpp
call fcn.0041c4e1
push str.EnableNetworkConnectionByName:_failed._n
call fcn.0041c506
add esp, 0x14
call fcn.0041c4cc
push esi
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push ebp
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x254
ret
mov eax, dword [esp + 0x44]
lea edx, [esp + 0x14]
push edx
push 0x433560
mov dword [esp + 0x1c], ebx
mov ecx, dword [eax]
push ebx
push esi
push eax
call dword [ecx + 0x14]
mov ebp, eax
mov eax, dword [esp + 0x44]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [esp + 0x10]
push esi
push eax
mov edx, dword [eax]
call dword [edx + 0x14]
cmp ebp, ebx
jge 0x410bc4
mov eax, dword [esp + 0x10]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
cmp dword [0x441ff4], ebx
je 0x410c80
mov edx, dword [0x441fd4]
mov eax, dword [edx]
cmp eax, 2
je 0x410b52
mov ecx, dword [0x441fdc]
cmp dword [ecx], ebx
jne 0x410c80
cmp eax, 2
jle 0x410c80
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov eax, dword [0x436030]
cmp eax, ebx
jge 0x410b77
mov edx, dword [0x441fa0]
mov dword [0x436030], edx
call fcn.0041c4b1
test eax, eax
je 0x410ba9
mov eax, dword [0x436030]
push 2
push eax
push 0xf40
push str.C:_build_rel_sp_8_4_6_2_srcwindows_atpclient_arr_srvsAdaptCof.cpp
call fcn.0041c4e1
push str.EnableNetworkConnectionByName:_failed._n
call fcn.0041c506
add esp, 0x14
call fcn.0041c4cc
push esi
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
add esp, 0x254
ret
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x4c]
push edx
push 0x60
mov ecx, dword [eax]
push ebx
push eax
call dword [ecx + 0x10]
mov ebp, eax
cmp ebp, ebx
jge 0x410c8d
mov eax, dword [esp + 0x14]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [esp + 0x10]
push eax
mov edx, dword [eax]
call dword [edx + 8]
cmp dword [0x441ff4], ebx
je 0x410c80
mov eax, dword [0x441fd4]
mov eax, dword [eax]
cmp eax, 2
je 0x410c1b
mov ecx, dword [0x441fdc]
cmp dword [ecx], ebx
jne 0x410c80
cmp eax, 2
jle 0x410c80
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov eax, dword [0x436030]
cmp eax, ebx
jge 0x410c40
mov edx, dword [0x441fa0]
mov dword [0x436030], edx
call fcn.0041c4b1
test eax, eax
je 0x410c72
mov eax, dword [0x436030]
push 2
push eax
push 0xf4a
push str.C:_build_rel_sp_8_4_6_2_srcwindows_atpclient_arr_srvsAdaptCof.cpp
call fcn.0041c4e1
push str.EnableNetworkConnectionByName:_failed._n
call fcn.0041c506
add esp, 0x14
call fcn.0041c4cc
push esi
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
add esp, 0x254
ret
mov eax, dword [0x441ff4]
xor ebp, ebp
cmp eax, ebx
je 0x410d1c
mov ecx, dword [0x441fd4]
mov eax, dword [ecx]
cmp eax, 3
je 0x410cb8
mov edx, dword [0x441fdc]
cmp dword [edx], ebx
jne 0x410d1c
cmp eax, 3
jle 0x410d1c
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov eax, dword [0x436030]
cmp eax, ebx
jge 0x410cdb
mov eax, dword [0x441fa0]
mov dword [0x436030], eax
call fcn.0041c4b1
test eax, eax
je 0x410d0e
mov ecx, dword [0x436030]
push 3
push ecx
push 0xf51
push str.C:_build_rel_sp_8_4_6_2_srcwindows_atpclient_arr_srvsAdaptCof.cpp
call fcn.0041c4e1
push str.EnableNetworkConnectionByName:_begin_to_the_loop._n
call fcn.0041c506
add esp, 0x14
call fcn.0041c4cc
push esi
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, dword [esp + 0x4c]
lea ecx, [esp + 0x54]
push ecx
lea ecx, [esp + 0x20]
mov edx, dword [eax]
push ecx
push 1
push eax
call dword [edx + 0xc]
test eax, eax
jne 0x410f00
cmp dword [esp + 0x54], 1
jne 0x410f00
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x15c]
push ecx
mov ecx, dword [esp + 0x20]
mov edx, dword [eax]
push 1
push ecx
push eax
call dword [edx + 0x2c]
test eax, eax
jne 0x410eec
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x58]
push 0x104
push edx
lea ecx, [esp + 0x164]
push eax
push ecx
call dword [sym.imp.SHLWAPI.dll_StrRetToBufA]
cmp ebp, ebx
je 0x410e2a
push 0xbb8
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [0x441ff4], ebx
je 0x410e28
mov edx, dword [0x441fd4]
mov eax, dword [edx]
cmp eax, 3
je 0x410dbe
mov ecx, dword [0x441fdc]
cmp dword [ecx], ebx
jne 0x410e28
cmp eax, 3
jle 0x410e28
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov eax, dword [0x436030]
cmp eax, ebx
jge 0x410de3
mov edx, dword [0x441fa0]
mov dword [0x436030], edx
call fcn.0041c4b1
test eax, eax
je 0x410e1a
mov eax, dword [0x436030]
push 3
push eax
push 0xf5b
push str.C:_build_rel_sp_8_4_6_2_srcwindows_atpclient_arr_srvsAdaptCof.cpp
call fcn.0041c4e1
lea ecx, [esp + 0x68]
push ecx
push str.EnableNetworkConnectionByName:_sleep_3_seconds__the_name_is__s._n
call fcn.0041c506
add esp, 0x18
call fcn.0041c4cc
push esi
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor ebp, ebp
mov edx, dword [esp + 0x268]
lea eax, [esp + 0x58]
push edx
push eax
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x410eec
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x18]
push edx
push ebx
lea edx, [esp + 0x24]
mov ebp, 1
push 0x433570
push edx
mov dword [esp + 0x28], ebx
mov ecx, dword [eax]
push ebp
push ebx
push eax
call dword [ecx + 0x28]
test eax, eax
jne 0x410eec
cmp dword [esp + 0x18], ebx
je 0x410eec
call dword [sym.imp.USER32.dll_CreateMenu]
mov esi, eax
mov eax, dword [esp + 0x18]
push ebx
push 0x7d0
mov ecx, dword [eax]
push ebx
push ebx
push esi
push eax
call dword [ecx + 0xc]
sar eax, 0x1f
test al, 1
jne 0x410edb
lea edx, [esp + 0x50]
push edx
push ebx
push esi
call fcn.00410f40
add esp, 0xc
test eax, eax
jne 0x410edb
mov ecx, 9
lea edi, [esp + 0x20]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x50]
lea edx, [esp + 0x20]
and eax, 0xffff
mov dword [esp + 0x20], 0x24
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x18]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10]
push esi
call dword [sym.imp.USER32.dll_DestroyMenu]
mov eax, dword [esp + 0x18]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
push ecx
push eax
mov edx, dword [eax]
call dword [edx + 0x14]
jmp 0x410d1c
mov eax, dword [esp + 0x4c]
push eax
mov edx, dword [eax]
call dword [edx + 8]
mov eax, dword [esp + 0x14]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [esp + 0x10]
push eax
mov edx, dword [eax]
call dword [edx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x254
ret