Function at 0x412f59
Capabilities:
Link many functions at runtime

Disassembly:
push esi
mov esi, ecx
lea eax, [esi + 0x108]
cmp byte [eax], 0
jne 0x4132c8
push ebx
mov ebx, dword [esp + 0xc]
test ebx, ebx
push edi
mov byte [eax], 1
jne 0x412f7f
call fcn.00412e00
mov ebx, eax
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.cdaEngineInit
push ebx
mov dword [esi + 0x10c], ebx
call edi
push str.cdaEngineFree
push ebx
mov dword [esi], eax
call edi
push str.cdaRunScript
push ebx
mov dword [esi + 4], eax
call edi
push str.cdaRunMemoryScript
push ebx
mov dword [esi + 8], eax
call edi
push str.cdaStopScripts
push ebx
mov dword [esi + 0xc], eax
call edi
push str.cdaStop
push ebx
mov dword [esi + 0x10], eax
call edi
push str.cdaProcess
push ebx
mov dword [esi + 0x14], eax
call edi
push str.cdaProcessEx
push ebx
mov dword [esi + 0x18], eax
call edi
push str.cdaAddCallback
push ebx
mov dword [esi + 0x1c], eax
call edi
push str.cdaRemoveCallback
push ebx
mov dword [esi + 0x20], eax
call edi
push str.cdaCallCallback
push ebx
mov dword [esi + 0x24], eax
call edi
push str.cdaLoadComponent
push ebx
mov dword [esi + 0x28], eax
call edi
push str.cdaUnloadComponent
push ebx
mov dword [esi + 0x2c], eax
call edi
push str.cdaGetSymbolicDir
push ebx
mov dword [esi + 0x30], eax
call edi
push str.cdaDownloadFile
push ebx
mov dword [esi + 0x34], eax
call edi
push str.cdaDownloadFileEx
push ebx
mov dword [esi + 0x38], eax
call edi
push str.cdaInitDownload
push ebx
mov dword [esi + 0x3c], eax
call edi
push str.cdaInitDownloadToFile
push ebx
mov dword [esi + 0x40], eax
call edi
push str.cdaReleaseDownloadRequest
push ebx
mov dword [esi + 0x44], eax
call edi
push str.cdaPauseDownload
push ebx
mov dword [esi + 0x48], eax
call edi
push str.cdaResumeDownload
push ebx
mov dword [esi + 0x4c], eax
call edi
push str.cdaCancelDownload
push ebx
mov dword [esi + 0x50], eax
call edi
push str.cdaGetBytesDownloaded
push ebx
mov dword [esi + 0x54], eax
call edi
push str.cdaGetDownloadSize
push ebx
mov dword [esi + 0x58], eax
call edi
push str.cdaGetDownloadBuffer
push ebx
mov dword [esi + 0x5c], eax
call edi
push str.cdaGetDownloadCallerOwnsBuffer
push ebx
mov dword [esi + 0x60], eax
call edi
push str.cdaGetDownloadStatus
push ebx
mov dword [esi + 0x64], eax
call edi
push str.cdaIsDownloadCompleted
push ebx
mov dword [esi + 0x68], eax
call edi
push str.cdaGetDownloadResultCode
push ebx
mov dword [esi + 0x6c], eax
call edi
push str.cdaGetDownloadResultString
push ebx
mov dword [esi + 0x70], eax
call edi
push str.cdaSetDownloadPriority
push ebx
mov dword [esi + 0x74], eax
call edi
push str.cdaGetDownloadPriority
push ebx
mov dword [esi + 0x78], eax
call edi
push str.cdaSetDownloadImportance
push ebx
mov dword [esi + 0x7c], eax
call edi
push str.cdaGetDownloadImportance
push ebx
mov dword [esi + 0x80], eax
call edi
push str.cdaSetDefaultRetryAttempts
push ebx
mov dword [esi + 0x84], eax
call edi
push str.cdaGetDefaultRetryAttempts
push ebx
mov dword [esi + 0x88], eax
call edi
push str.cdaGetCachedFilename
push ebx
mov dword [esi + 0x8c], eax
call edi
push str.cdaClearCache
push ebx
mov dword [esi + 0x90], eax
call edi
push str.cdaSetMaxCacheSize
push ebx
mov dword [esi + 0x94], eax
call edi
push str.cdaSetResumeCache
push ebx
mov dword [esi + 0x98], eax
call edi
mov dword [esi + 0x9c], eax
push str.cdaIsCabFile
push ebx
call edi
push str.cdaExtractCab
push ebx
mov dword [esi + 0xa0], eax
call edi
push str.cdaExtractCabAsync
push ebx
mov dword [esi + 0xa4], eax
call edi
push str.cdaCancelCabExtract
push ebx
mov dword [esi + 0xa8], eax
call edi
push str.cdaIsCabExtractDone
push ebx
mov dword [esi + 0xac], eax
call edi
push str.cdaReleaseCabHandle
push ebx
mov dword [esi + 0xb0], eax
call edi
push str.cdaTriggerEvent
push ebx
mov dword [esi + 0xb4], eax
call edi
push str.cdaIsEventTriggered
push ebx
mov dword [esi + 0xb8], eax
call edi
push str.cdaBackgroundUpdaterStart
push ebx
mov dword [esi + 0xbc], eax
call edi
push str.cdaBackgroundUpdaterIsRunning
push ebx
mov dword [esi + 0xc0], eax
call edi
push str.cdaBackgroundUpdaterIsReady
push ebx
mov dword [esi + 0xc4], eax
call edi
push str.cdaIsOnline
push ebx
mov dword [esi + 0xc8], eax
call edi
push str.cdaGetConfigAsString
push ebx
mov dword [esi + 0xcc], eax
call edi
push str.cdaGetArchiveType
push ebx
mov dword [esi + 0xd0], eax
call edi
push str.cdaOpenArchive
push ebx
mov dword [esi + 0xd4], eax
call edi
push str.cdaReleaseArchiveHandle
push ebx
mov dword [esi + 0xd8], eax
call edi
push str.cdaExtractArchive
push ebx
mov dword [esi + 0xdc], eax
call edi
push str.cdaExtractArchiveAsync
push ebx
mov dword [esi + 0xe0], eax
call edi
push str.cdaCancelArchiveExtract
push ebx
mov dword [esi + 0xe4], eax
call edi
push str.cdaIsArchiveExtractDone
push ebx
mov dword [esi + 0xe8], eax
call edi
mov dword [esi + 0xec], eax
push str.cdaGetArchivePropertyLong
push ebx
call edi
push str.cdaGetArchivePropertyString
push ebx
mov dword [esi + 0xf0], eax
call edi
push str.cdaGetArchiveResult
push ebx
mov dword [esi + 0xf4], eax
call edi
push str.cdaGetArchiveResultString
push ebx
mov dword [esi + 0xf8], eax
call edi
push str.cdaGameTrackLog
push ebx
mov dword [esi + 0xfc], eax
call edi
push str.cdaGameTrackUpload
push ebx
mov dword [esi + 0x100], eax
call edi
pop edi
mov dword [esi + 0x104], eax
pop ebx
pop esi
ret 4