Function at 0x44081f
Capabilities:
Link many functions at runtime
Query environment variable
Set environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x21c
mov eax, dword [0x4c3518]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
push esi
push edi
xor eax, eax
push eax
push eax
mov edi, str.PATH
push edi
mov dword [0x4c73cc], eax
call ebx
mov esi, eax
inc esi
lea eax, [esi + esi]
push eax
mov dword [ebp - 0x214], eax
call fcn.004860e8
push dword [ebp - 0x214]
mov dword [ebp - 0x218], eax
push 0
push eax
call fcn.0048ab30
add esp, 0x10
push esi
push dword [ebp - 0x218]
push edi
call ebx
call fcn.00440727
mov dword [ebp - 0x214], eax
test eax, eax
je 0x440976
mov eax, dword [ebp - 0x218]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
test cx, cx
jne 0x44089b
sub eax, edx
sar eax, 1
mov ecx, eax
mov eax, dword [ebp - 0x214]
lea edx, [eax + 2]
mov si, word [eax]
inc eax
inc eax
test si, si
jne 0x4408b4
sub eax, edx
sar eax, 1
lea esi, [eax + ecx + 3]
lea eax, [esi + esi]
push eax
call fcn.004860e8
push dword [ebp - 0x214]
dec esi
mov ebx, eax
push esi
push ebx
call fcn.0048988d
push 0x4b301c
push esi
push ebx
call fcn.00489701
push dword [ebp - 0x218]
push esi
push ebx
call fcn.00489701
add esp, 0x28
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
mov edi, dword [ebp - 0x214]
push edi
mov esi, 0x103
lea eax, [ebp - 0x210]
push esi
push eax
call fcn.0048988d
push 0x4b2e6c
call fcn.004407d7
add esp, 0x10
test al, al
jne 0x440943
push 0x4b3904
call fcn.004407d7
pop ecx
test al, al
jne 0x440943
push str.CoreFoundation
jmp 0x440948
push str.CoreFoundation.dll
lea eax, [ebp - 0x210]
push esi
push eax
call fcn.00489701
add esp, 0xc
lea esi, [ebp - 0x210]
call fcn.0047ecdc
push edi
mov dword [0x4c73cc], eax
call fcn.0048556b
push ebx
call fcn.0048556b
pop ecx
pop ecx
push dword [ebp - 0x218]
call fcn.0048556b
mov eax, dword [0x4c73cc]
pop ecx
test eax, eax
je 0x440e4e
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.CFPropertyListCreateFromStream
push eax
call esi
push str.CFReadStreamCreateWithBytesNoCopy
push dword [0x4c73cc]
mov dword [0x4c7420], eax
call esi
push str.CFReadStreamOpen
push dword [0x4c73cc]
mov dword [0x4c741c], eax
call esi
push str.CFWriteStreamOpen
push dword [0x4c73cc]
mov dword [0x4c7414], eax
call esi
push str.CFReadStreamClose
push dword [0x4c73cc]
mov dword [0x4c7400], eax
call esi
push str.CFPropertyListWriteToStream
push dword [0x4c73cc]
mov dword [0x4c7418], eax
call esi
push str.CFWriteStreamClose
push dword [0x4c73cc]
mov dword [0x4c7408], eax
call esi
push str.CFDictionaryCreate
push dword [0x4c73cc]
mov dword [0x4c7404], eax
call esi
push str.CFArrayCreate
push dword [0x4c73cc]
mov dword [0x4c74a8], eax
call esi
push str.CFRelease
push dword [0x4c73cc]
mov dword [0x4c7488], eax
call esi
push str.CFWriteStreamCopyProperty
push dword [0x4c73cc]
mov dword [0x4c746c], eax
call esi
push str.CFWriteStreamCreateWithAllocatedBuffers
push dword [0x4c73cc]
mov dword [0x4c740c], eax
call esi
push str.CFURLCreateDataAndPropertiesFromResource
push dword [0x4c73cc]
mov dword [0x4c7410], eax
call esi
push str.CFPropertyListCreateFromXMLData
push dword [0x4c73cc]
mov dword [0x4c73d4], eax
call esi
push str.CFPropertyListCreateXMLData
push dword [0x4c73cc]
mov dword [0x4c73d8], eax
call esi
push str.CFURLWriteDataAndPropertiesToResource
push dword [0x4c73cc]
mov dword [0x4c73dc], eax
call esi
push str.CFDateGetAbsoluteTime
push dword [0x4c73cc]
mov dword [0x4c73e0], eax
call esi
push str.CFDateCreate
push dword [0x4c73cc]
mov dword [0x4c73fc], eax
call esi
push str.CFDateGetTypeID
push dword [0x4c73cc]
mov dword [0x4c73f8], eax
call esi
push str.CFSetGetTypeID
push dword [0x4c73cc]
mov dword [0x4c73e4], eax
call esi
mov dword [0x4c73f0], eax
push str.CFTimeZoneGetTypeID
push dword [0x4c73cc]
call esi
push str.CFUUIDGetTypeID
push dword [0x4c73cc]
mov dword [0x4c73ec], eax
call esi
push str.CFPropertyListCreateData
push dword [0x4c73cc]
mov dword [0x4c73e8], eax
call esi
push str.CFNumberGetType
push dword [0x4c73cc]
mov dword [0x4c73f4], eax
call esi
push str.CFNumberGetTypeID
push dword [0x4c73cc]
mov dword [0x4c7424], eax
call esi
push str.CFNumberGetValue
push dword [0x4c73cc]
mov dword [0x4c7428], eax
call esi
push str.CFNumberCreate
push dword [0x4c73cc]
mov dword [0x4c742c], eax
call esi
push str.CFBooleanGetTypeID
push dword [0x4c73cc]
mov dword [0x4c7430], eax
call esi
push str.CFBooleanGetValue
push dword [0x4c73cc]
mov dword [0x4c74a4], eax
call esi
push str.CFDataCreate
push dword [0x4c73cc]
mov dword [0x4c7434], eax
call esi
push str.CFDataGetLength
push dword [0x4c73cc]
mov dword [0x4c7438], eax
call esi
push str.CFGetTypeID
push dword [0x4c73cc]
mov dword [0x4c743c], eax
call esi
push str.CFArrayGetTypeID
push dword [0x4c73cc]
mov dword [0x4c7440], eax
call esi
push str.CFDictionaryGetTypeID
push dword [0x4c73cc]
mov dword [0x4c7444], eax
call esi
push str.CFDictionaryCreateMutableCopy
push dword [0x4c73cc]
mov dword [0x4c744c], eax
call esi
push str.CFDataGetTypeID
push dword [0x4c73cc]
mov dword [0x4c7450], eax
call esi
push str.CFArrayCreateMutableCopy
push dword [0x4c73cc]
mov dword [0x4c7448], eax
call esi
push str.CFDataCreateMutableCopy
push dword [0x4c73cc]
mov dword [0x4c7454], eax
call esi
push str.CFArrayCreateMutable
push dword [0x4c73cc]
mov dword [0x4c7458], eax
call esi
push str.CFDictionaryCreateMutable
push dword [0x4c73cc]
mov dword [0x4c745c], eax
call esi
mov dword [0x4c7460], eax
push str.CFStringCreateWithCharacters
push dword [0x4c73cc]
call esi
push str.CFStringCreateWithCString
push dword [0x4c73cc]
mov dword [0x4c74b4], eax
call esi
push str.CFStringCreateMutableCopy
push dword [0x4c73cc]
mov dword [0x4c7464], eax
call esi
push str.CFStringGetTypeID
push dword [0x4c73cc]
mov dword [0x4c7468], eax
call esi
push str.CFStringGetLength
push dword [0x4c73cc]
mov dword [0x4c74ac], eax
call esi
push str.CFStringGetCString
push dword [0x4c73cc]
mov dword [0x4c74b0], eax
call esi
push str.CFStringCreateCopy
push dword [0x4c73cc]
mov dword [0x4c74b8], eax
call esi
push str.CFArrayGetValueAtIndex
push dword [0x4c73cc]
mov dword [0x4c74bc], eax
call esi
push str.CFArraySetValueAtIndex
push dword [0x4c73cc]
mov dword [0x4c7470], eax
call esi
push str.CFArrayAppendValue
push dword [0x4c73cc]
mov dword [0x4c7474], eax
call esi
push str.CFArrayInsertValueAtIndex
push dword [0x4c73cc]
mov dword [0x4c7478], eax
call esi
push str.CFArrayRemoveValueAtIndex
push dword [0x4c73cc]
mov dword [0x4c747c], eax
call esi
push str.CFArrayGetCount
push dword [0x4c73cc]
mov dword [0x4c7480], eax
call esi
push str.CFDictionaryGetCount
push dword [0x4c73cc]
mov dword [0x4c7484], eax
call esi
push str.CFDictionaryGetKeysAndValues
push dword [0x4c73cc]
mov dword [0x4c748c], eax
call esi
push str.CFDictionaryGetValue
push dword [0x4c73cc]
mov dword [0x4c7490], eax
call esi
push str.CFDictionaryAddValue
push dword [0x4c73cc]
mov dword [0x4c7494], eax
call esi
push str.CFDictionarySetValue
push dword [0x4c73cc]
mov dword [0x4c7498], eax
call esi
push str.CFDictionaryRemoveValue
push dword [0x4c73cc]
mov dword [0x4c749c], eax
call esi
push str.CFDataGetMutableBytePtr
push dword [0x4c73cc]
mov dword [0x4c74a0], eax
call esi
push str.CFDataGetBytePtr
push dword [0x4c73cc]
mov dword [0x4c74c0], eax
call esi
push str.__CFStringMakeConstantString
push dword [0x4c73cc]
mov dword [0x4c74c4], eax
call esi
push str.CFURLCreateWithFileSystemPath
push dword [0x4c73cc]
mov dword [0x4c73d0], eax
call esi
push str.kCFTypeArrayCallBacks
push dword [0x4c73cc]
mov dword [0x4c74c8], eax
call esi
push str.kCFTypeDictionaryKeyCallBacks
push dword [0x4c73cc]
mov dword [0x4c74d0], eax
call esi
push str.kCFTypeDictionaryValueCallBacks
push dword [0x4c73cc]
mov dword [0x4c74d4], eax
call esi
push str.CFDictionaryContainsKey
push dword [0x4c73cc]
mov dword [0x4c74d8], eax
call esi
mov dword [0x4c74cc], eax
xor eax, eax
inc eax
mov byte [0x4c73c5], al
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0048532c
leave
ret