Function at 0x458e40
Capabilities:
Get common file path
Link many functions at runtime
Set current directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x46cda5
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
mov eax, dword [0x4a0b70]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov byte [ebp - 0xd], 0
cmp dword [0x4a4adc], 0
jne 0x459096
cmp dword [ebp + 8], 0
je 0x459096
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
add eax, 0x13
mov dword [ebp - 0x20], eax
xor ecx, ecx
mov eax, dword [ebp - 0x20]
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0040ffbe
add esp, 4
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
push ecx
mov edx, dword [ebp - 0x20]
push edx
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
mov ecx, dword [ebp + 8]
call fcn.00405020
push eax
lea ecx, [ebp - 0x14]
call fcn.00401fa0
mov dword [ebp - 4], 0
mov ecx, dword [ebp + 8]
call fcn.00402e60
test eax, eax
je 0x458ef6
push str.Reader_
lea ecx, [ebp - 0x14]
call fcn.004018f0
jmp 0x458f03
push str.Acrobat_
lea ecx, [ebp - 0x14]
call fcn.004018f0
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x1c]
call fcn.00401fa0
mov byte [ebp - 4], 1
push str.logsession.dll
lea ecx, [ebp - 0x1c]
call fcn.004018f0
lea ecx, [ebp - 0x1c]
push ecx
call fcn.00401020
add esp, 4
test eax, eax
je 0x458f7f
push 1
lea ecx, [ebp - 0x14]
call fcn.00401fc0
push eax
push str.Agent
push str.SoftwareAdobeCommonFilesUsage_
push SysReAllocStringLen
call fcn.00448b80
add esp, 0x14
lea ecx, [ebp - 0x14]
call fcn.00401fc0
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
lea ecx, [ebp - 0x1c]
call fcn.00401fc0
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [0x4a4adc], eax
mov edx, dword [ebp - 0x18]
push edx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
cmp dword [0x4a4adc], 0
jne 0x458faf
mov byte [ebp - 0x25], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x1c]
call fcn.00405260
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.00405260
mov al, byte [ebp - 0x25]
jmp 0x459113
push str.UTOptInGet
mov eax, dword [0x4a4adc]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4a4ae0], eax
push str.UTSetOptIn
mov ecx, dword [0x4a4adc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4a4ae4], eax
push str.UTGetDemographic
mov edx, dword [0x4a4adc]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4a4ae8], eax
push str.UTSetDemographic
mov eax, dword [0x4a4adc]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4a4aec], eax
push str.UTStartSession
mov ecx, dword [0x4a4adc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4a4af0], eax
push str.UTLogEvent
mov edx, dword [0x4a4adc]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4a4af4], eax
push str.UTNewDataGroup
mov eax, dword [0x4a4adc]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4a4af8], eax
push str.UTAddToGroup
mov ecx, dword [0x4a4adc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4a4afc], eax
push str.UTCloseSession
mov edx, dword [0x4a4adc]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4a4b00], eax
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x1c]
call fcn.00405260
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.00405260
cmp dword [0x4a4ae0], 0
je 0x4590e7
cmp dword [0x4a4ae4], 0
je 0x4590e7
cmp dword [0x4a4ae8], 0
je 0x4590e7
cmp dword [0x4a4aec], 0
je 0x4590e7
cmp dword [0x4a4af0], 0
je 0x4590e7
cmp dword [0x4a4af4], 0
je 0x4590e7
cmp dword [0x4a4af8], 0
je 0x4590e7
cmp dword [0x4a4afc], 0
je 0x4590e7
cmp dword [0x4a4b00], 0
jne 0x45910c
cmp dword [0x4a4adc], 0
je 0x4590fc
mov eax, dword [0x4a4adc]
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [0x4a4adc], 0
mov byte [ebp - 0xd], 0
jmp 0x459110
mov byte [ebp - 0xd], 1
mov al, byte [ebp - 0xd]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret