Function at 0x40ae30
Capabilities:
Enumerate files on windows
Get common file path

Disassembly:
push ebp
lea ebp, [esp - 0x804]
sub esp, 0x804
push 0xffffffffffffffff
push 0x637740
mov eax, dword fs:[0]
push eax
sub esp, 0x74
mov eax, dword [0x6eed24]
xor eax, ebp
mov dword [ebp + 0x800], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x24], ebx
mov esi, dword [ebp + 0x80c]
lea eax, [ebp - 0x10]
push eax
mov dword [ebp - 0x5c], esi
mov ecx, dword [esi]
call fcn.00439ce0
cmp dword [ebp - 0x10], 0
mov dword [ebp - 4], 0
jne 0x40aec1
mov eax, dword [esi]
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x40ae9d
mov eax, 0x649aa0
push eax
push str._Package__s__r_havent_selected_update___
push 1
push 0xd5
push str.e:workprgpdf5_builds_rc.328_trackerupdateinstallmanager.cpp
call fcn.00431810
add esp, 0x14
mov esi, 0x8200000e
jmp 0x40b5b8
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0
lea eax, [ebp - 0x34]
mov byte [ebp - 4], 5
push eax
mov ecx, 0x6f50d0
call fcn.0043d420
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x44]
mov eax, dword [eax + 0x40]
test eax, eax
jne 0x40af39
mov eax, 0x649aa0
push ecx
push eax
lea ecx, [ebp - 0x34]
call fcn.004031a0
mov edx, dword [ebp - 0x30]
xor ecx, ecx
test edx, edx
je 0x40af66
lea edi, [ecx + 0x5c]
nop
mov eax, dword [ebp - 0x34]
cmp word [eax + ecx*2], 0x2f
jne 0x40af61
mov word [eax + ecx*2], di
mov edx, dword [ebp - 0x30]
inc ecx
cmp ecx, edx
jb 0x40af50
mov eax, dword [esi]
mov eax, dword [eax + 0xa4]
shr eax, 8
test al, 1
mov eax, dword [ebp - 0x10]
je 0x40af7d
add eax, 0x58
jmp 0x40af80
add eax, 0x4c
mov ecx, dword [eax + 4]
mov eax, dword [eax]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0
test eax, eax
jne 0x40afa3
mov eax, 0x649aa0
push ecx
push eax
lea ecx, [ebp - 0x40]
call fcn.00403940
mov eax, dword [ebp - 0x10]
mov edi, dword [ebp - 0x40]
mov byte [ebp - 4], 6
mov eax, dword [eax + 0xc]
cmp eax, 2
jne 0x40aff3
mov eax, dword [ebp - 0x34]
test eax, eax
jne 0x40afcb
mov eax, 0x649aa0
push dword [ebp - 0x30]
lea ecx, [ebp - 0x1c]
push eax
call fcn.00403940
mov eax, 0x649aa0
test edi, edi
je 0x40afe2
mov eax, edi
push dword [ebp - 0x3c]
lea ecx, [ebp - 0x4c]
push eax
call fcn.00403940
jmp 0x40b326
cmp eax, 3
jne 0x40b13a
push 0x400
lea eax, [ebp]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
push 0xffffffffffffffff
lea eax, [ebp]
push eax
lea ecx, [ebp - 0x1c]
call fcn.004031a0
mov ebx, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push 0
push 0
push 0xc
push str.msiexec.exe
push 0
push 0
call ebx
mov esi, eax
test esi, esi
js 0x40b0a8
je 0x40b0a8
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
sub eax, ecx
cmp esi, eax
jbe 0x40b07e
lea edi, [ecx + 0x20]
add edi, esi
and edi, 0xffffffe0
lea eax, [edi + edi]
push eax
push dword [ebp - 0x1c]
call fcn.00446560
mov edx, eax
add esp, 8
test edx, edx
je 0x40b0a8
cmp dword [ebp - 0x1c], 0
jne 0x40b070
mov eax, dword [ebp - 0x18]
xor ecx, ecx
mov word [edx + eax*2], cx
mov ecx, dword [ebp - 0x18]
lea eax, [edi - 1]
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x14], eax
jmp 0x40b081
mov edx, dword [ebp - 0x1c]
lea eax, [edx + ecx*2]
test eax, eax
je 0x40b09d
push esi
push eax
push 0xc
push str.msiexec.exe
push 0
push 0
call ebx
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
add ecx, esi
xor eax, eax
mov dword [ebp - 0x18], ecx
mov word [edx + ecx*2], ax
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0x80]
push 4
push eax
lea ecx, [ecx + 0x40]
call fcn.0040adf0
mov edi, dword [ebp - 0x34]
mov byte [ebp - 4], 7
test edi, edi
jne 0x40b0c9
mov edi, 0x649aa0
mov esi, dword [ebp - 0x80]
mov eax, 0x649aa0
test esi, esi
je 0x40b0d7
mov eax, esi
push str..msp
push eax
call fcn.004c26c5
add esp, 8
mov ecx, str._update
test eax, eax
je 0x40b0f3
mov ecx, 0x64d3f4
cmp dword [ebp - 0x3c], 0
je 0x40b107
mov eax, dword [ebp - 0x40]
test eax, eax
jne 0x40b10c
mov eax, 0x649aa0
jmp 0x40b10c
mov eax, 0x649c60
push edi
push ecx
push eax
lea eax, [ebp - 0x4c]
push str._s__s___s_
push eax
call fcn.004034c0
add esp, 0x14
mov byte [ebp - 4], 8
test esi, esi
je 0x40b131
push esi
call fcn.00446420
add esp, 4
mov byte [ebp - 4], 6
jmp 0x40b323
cmp eax, 5
jne 0x40b4eb
lea eax, [ebp - 0x74]
mov ecx, ebx
push eax
push esi
call fcn.0040c7f0
test eax, eax
jns 0x40b173
mov eax, dword [esi]
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x40b161
mov eax, 0x649aa0
push eax
push str.__r_Can_t_extract____update_for_package__s
push 1
push 0xf9
jmp 0x40b506
push 0x250
lea eax, [ebp + 0x5b0]
push 0
push eax
call fcn.004b40a0
add esp, 0xc
lea eax, [ebp - 0x74]
lea ecx, [ebp - 0x80]
push eax
call fcn.0040a250
push 0xffffffffffffffff
push 0x64d474
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 0xa
call fcn.004031a0
mov eax, dword [ebp - 0x80]
test eax, eax
jne 0x40b1b4
mov eax, 0x649aa0
lea ecx, [ebp + 0x5b0]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x40b4b9
lea ecx, [ecx]
test byte [ebp + 0x5b0], 0x10
jne 0x40b2b0
push 0xffffffffffffffff
lea eax, [ebp + 0x5dc]
mov dword [ebp - 0x58], 0
push eax
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0
call fcn.00403940
mov eax, dword [ebp - 0x54]
mov ecx, 3
mov byte [ebp - 4], 0xb
cmp eax, ecx
jae 0x40b215
mov ecx, eax
mov edi, dword [ebp - 0x58]
sub eax, ecx
push ecx
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0
lea eax, [edi + eax*2]
mov dword [ebp - 0x60], 0
push eax
call fcn.00403940
mov esi, dword [ebp - 0x68]
mov eax, 0x649aa0
mov byte [ebp - 4], 0xc
test esi, esi
je 0x40b24e
mov eax, esi
push 0x649b4c
push eax
call fcn.004c26c5
add esp, 8
test eax, eax
je 0x40b2c8
mov byte [ebp - 4], 0xd
test esi, esi
je 0x40b271
push esi
call fcn.00446420
add esp, 4
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x64], 0
mov byte [ebp - 4], 0xe
test edi, edi
je 0x40b297
push edi
call fcn.00446420
add esp, 4
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x54], 0
mov byte [ebp - 4], 0xa
lea eax, [ebp + 0x5b0]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x40b1d0
jmp 0x40b310
lea eax, [ebp - 0x74]
push eax
lea ecx, [ebp - 0x1c]
call fcn.0040a510
push 0xffffffffffffffff
push 0x64d1fc
lea ecx, [ebp - 0x1c]
call fcn.004031a0
push 0xffffffffffffffff
lea eax, [ebp + 0x5dc]
push eax
lea ecx, [ebp - 0x1c]
call fcn.004031a0
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x4c]
call fcn.0040a510
lea ecx, [ebp - 0x68]
call fcn.00403130
lea ecx, [ebp - 0x58]
call fcn.00403130
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 6
call fcn.00403130
mov edi, dword [ebp - 0x40]
mov eax, dword [ebp - 0x4c]
test eax, eax
jne 0x40b332
mov eax, 0x649aa0
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
jne 0x40b33e
mov ecx, 0x649aa0
push eax
push ecx
push str._Run_Install:__s_with_args__s
push 4
push 0x124
push str.e:workprgpdf5_builds_rc.328_trackerupdateinstallmanager.cpp
call fcn.00431810
add esp, 0x18
mov ecx, 0x6f50d0
call fcn.0043dbd0
neg eax
mov dword [ebp - 0x28], 0
sbb eax, eax
inc eax
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.00441a70
add esp, 0x10
test eax, eax
je 0x40b513
mov ebx, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov esi, 1
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x20], 1
push dword [eax + 0x30]
push dword [ebp - 0x28]
call ebx
test eax, eax
je 0x40b429
cmp eax, 0x80
je 0x40b436
cmp eax, 0xffffffff
je 0x40b3da
mov ecx, dword [ebp - 0x24]
push 1
mov ecx, dword [ecx + 0x18]
mov eax, dword [ecx]
call dword [eax + 0x20]
mov esi, eax
mov eax, dword [ebp - 0x24]
mov dword [eax + 0x38], esi
jmp 0x40b423
call edi
mov ecx, eax
test ecx, ecx
jle 0x40b3ed
movzx ecx, cx
or ecx, 0x80070000
test ecx, ecx
js 0x40b3f4
mov ecx, 0x80004005
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax]
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x40b405
mov eax, 0x649aa0
push eax
push str._Error_while__r_waiting_for_the_installation_process____for_package__s
push ecx
push 1
push 0x13e
push str.e:workprgpdf5_builds_rc.328_trackerupdateinstallmanager.cpp
call fcn.00431620
mov eax, dword [ebp - 0x24]
add esp, 0x18
test esi, esi
jne 0x40b3a7
jmp 0x40b436
lea eax, [ebp - 0x20]
push eax
push dword [ebp - 0x28]
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax]
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x40b447
mov eax, 0x649aa0
push dword [ebp - 0x20]
push eax
push str._Installation_process_for_package__s_was_finished_with_return_code:__d
push 2
push 0x144
push str.e:workprgpdf5_builds_rc.328_trackerupdateinstallmanager.cpp
call fcn.00431810
add esp, 0x18
push dword [ebp - 0x28]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x70], 0
je 0x40b481
mov ecx, dword [ebp - 0x24]
lea eax, [ebp - 0x74]
push 1
push eax
call fcn.0040a670
mov eax, dword [ebp - 0x10]
mov esi, dword [ebp - 0x20]
cmp dword [eax + 0xc], 2
jne 0x40b4b4
cmp esi, 8
jne 0x40b4a2
mov edi, dword [ebp - 0x40]
mov esi, 0xbc2
mov dword [ebp - 0x20], esi
jmp 0x40b518
cmp esi, 2
je 0x40b4ac
cmp esi, 5
jne 0x40b4b4
mov esi, 0x642
mov dword [ebp - 0x20], esi
mov edi, dword [ebp - 0x40]
jmp 0x40b518
mov eax, dword [esi]
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x40b4c7
mov eax, 0x649aa0
push eax
push str.__r_Error_while_extracting____update_for_package__s
push 1
push 0x11b
push str.e:workprgpdf5_builds_rc.328_trackerupdateinstallmanager.cpp
call fcn.00431810
add esp, 0x14
lea ecx, [ebp - 0x80]
call fcn.00403130
jmp 0x40b513
mov eax, dword [esi]
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x40b4f9
mov eax, 0x649aa0
push eax
push str.__r_Unrecognized_type____of_update_for_package__s
push 1
push 0x121
push str.e:workprgpdf5_builds_rc.328_trackerupdateinstallmanager.cpp
call fcn.00431810
add esp, 0x14
mov esi, 0x8200000e
mov byte [ebp - 4], 0x12
test edi, edi
je 0x40b529
push edi
call fcn.00446420
add esp, 4
mov eax, dword [ebp - 0x74]
mov byte [ebp - 4], 0x13
test eax, eax
je 0x40b53d
push eax
call fcn.00446420
add esp, 4
mov eax, dword [ebp - 0x34]
mov byte [ebp - 4], 0x14
test eax, eax
je 0x40b551
push eax
call fcn.00446420
add esp, 4
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x30], 0
mov eax, dword [ebp - 0x4c]
mov byte [ebp - 4], 0x15
test eax, eax
je 0x40b57a
push eax
call fcn.00446420
add esp, 4
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x48], 0
mov eax, dword [ebp - 0x1c]
mov byte [ebp - 4], 0x16
test eax, eax
je 0x40b5a3
push eax
call fcn.00446420
add esp, 4
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 4], 0x17
test ecx, ecx
je 0x40b5cc
mov edx, dword [ecx]
push ecx
call dword [edx + 8]
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x800]
xor ecx, ebp
call fcn.004b2558
lea esp, [ebp + 0x804]
pop ebp
ret 4