Function at 0x409a5d
Capabilities:
Link many functions at runtime

Disassembly:
push ecx
push ebx
push ebp
push esi
mov ebp, str.cnasys.dll
push edi
push ebp
call fcn.0040b04b
test eax, eax
pop ecx
mov dword [0x441ff0], eax
je 0x409d76
mov ebx, str.cnadata.dll
push ebx
call fcn.0040b04b
test eax, eax
pop ecx
mov dword [0x441ff4], eax
je 0x409d76
and dword [esp + 0x10], 0
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, dword [0x441ff0]
test eax, eax
je 0x409d76
push str.MProc
push eax
call esi
test eax, eax
mov dword [0x4421dc], eax
je 0x409b1b
push str.CProc
push dword [0x441ff0]
call esi
test eax, eax
mov dword [0x4421e0], eax
je 0x409b1b
push str.Enable
push dword [0x441ff0]
call esi
test eax, eax
mov dword [0x4421d8], eax
je 0x409b1b
push str.SysInit
push dword [0x441ff0]
call esi
test eax, eax
mov dword [0x4421d4], eax
je 0x409b1b
push str._hCHandle
push dword [0x441ff0]
call esi
test eax, eax
mov dword [0x439d00], eax
jne 0x409b49
cmp dword [esp + 0x10], 0
jg 0x409d76
push dword [0x441ff0]
call edi
push ebp
call fcn.0040b08d
inc dword [esp + 0x14]
pop ecx
cmp dword [esp + 0x10], 2
mov dword [0x441ff0], eax
jl 0x409aa5
push dword [0x441ff0]
call dword [sym.imp.KERNEL32.dll_DisableThreadLibraryCalls]
xor ebp, ebp
mov eax, dword [0x441ff4]
test eax, eax
je 0x409d76
push str.CacheInit
push eax
call esi
test eax, eax
mov dword [0x4421e4], eax
je 0x409c99
push str.CacheRelease
push dword [0x441ff4]
call esi
test eax, eax
mov dword [0x4421e8], eax
je 0x409c99
push str.CacheSearch
push dword [0x441ff4]
call esi
test eax, eax
mov dword [0x4421ec], eax
je 0x409c99
push str.CacheAdd
push dword [0x441ff4]
call esi
test eax, eax
mov dword [0x4421f0], eax
je 0x409c99
push str.CacheAddEx
push dword [0x441ff4]
call esi
test eax, eax
mov dword [0x4421f4], eax
je 0x409c99
push str.CacheDel
push dword [0x441ff4]
call esi
test eax, eax
mov dword [0x4421f8], eax
je 0x409c99
push str.CacheIsItIn
push dword [0x441ff4]
call esi
test eax, eax
mov dword [0x4421fc], eax
je 0x409c99
push str.CacheUpdateFlags
push dword [0x441ff4]
call esi
test eax, eax
mov dword [0x442208], eax
je 0x409c99
push str.CacheValidata
push dword [0x441ff4]
call esi
test eax, eax
mov dword [0x44220c], eax
je 0x409c99
push str.CacheEnum
push dword [0x441ff4]
call esi
test eax, eax
mov dword [0x442200], eax
je 0x409c99
push str.CacheEnumEx
push dword [0x441ff4]
call esi
test eax, eax
mov dword [0x442204], eax
je 0x409c99
push str.CacheBatchAdd
push dword [0x441ff4]
call esi
test eax, eax
mov dword [0x442210], eax
je 0x409c99
push str.CacheCanUnloadNow
push dword [0x441ff4]
call esi
test eax, eax
mov dword [0x442214], eax
jne 0x409cbf
test ebp, ebp
jg 0x409d76
push dword [0x441ff4]
call edi
push ebx
call fcn.0040b08d
inc ebp
pop ecx
cmp ebp, 2
mov dword [0x441ff4], eax
jl 0x409b57
mov ebx, str.cnaio.dll
push ebx
call fcn.0040b04b
test eax, eax
pop ecx
mov dword [0x441ff8], eax
je 0x409d6d
xor ebp, ebp
test eax, eax
je 0x409d76
push str.AddEditWnd
push eax
call esi
test eax, eax
mov dword [0x442218], eax
je 0x409d4b
push str.AddChinAddr
push dword [0x441ff8]
call esi
test eax, eax
mov dword [0x44221c], eax
je 0x409d4b
push str.InitEnv
push dword [0x441ff8]
call esi
test eax, eax
mov dword [0x442220], eax
je 0x409d4b
push str.SetSwitch
push dword [0x441ff8]
call esi
test eax, eax
mov dword [0x442224], eax
je 0x409d4b
push str.Reset
push dword [0x441ff8]
call esi
test eax, eax
mov dword [0x442228], eax
jne 0x409d6d
test ebp, ebp
jg 0x409d76
push dword [0x441ff8]
call edi
push ebx
call fcn.0040b08d
inc ebp
pop ecx
cmp ebp, 2
mov dword [0x441ff8], eax
jl 0x409cda
push 1
pop eax
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret
xor eax, eax
jmp 0x409d70