Function at 0x4078c0
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4194e0
push 0x4110b8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x544
push ebx
push esi
push edi
mov dword [ebp - 0x18], esp
xor edi, edi
push str.Plugins_
lea eax, [ebp - 0x550]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov ecx, dword [ebp + 8]
push ecx
lea edx, [ebp - 0x550]
push edx
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatW]
call esi
push str.Dreye_Plugin
lea eax, [ebp - 0x550]
push eax
call esi
lea ecx, [ebp - 0x554]
push ecx
lea edx, [ebp - 0x550]
push edx
push edi
call fcn.0040e7a0
test eax, eax
je 0x407d0c
mov dword [ebp - 0x134], 0x208
mov dword [ebp - 0x20], 1
lea eax, [ebp - 0x134]
push eax
lea ecx, [ebp - 0x550]
push ecx
lea edx, [ebp - 0x20]
push edx
push str.DrPluginDllLocation
mov eax, dword [ebp - 0x554]
push eax
call fcn.0040e850
test eax, eax
je 0x40799a
push edi
push edi
lea ecx, [ebp - 0x550]
push ecx
lea edx, [ebp - 0x33c]
push edx
call fcn.0040e960
test eax, eax
je 0x40799a
lea eax, [ebp - 0x33c]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov edi, eax
mov ecx, dword [ebp - 0x554]
push ecx
call fcn.0040e7e0
test edi, edi
je 0x407d0c
call fcn.00402140
mov esi, eax
mov dword [ebp - 0x348], esi
test esi, esi
jne 0x4079d9
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
xor eax, eax
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x34], edi
push str.DrPluginGetVersion
push edi
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call ebx
mov dword [esi + 0x40], eax
push str.DrPluginGetCount
push edi
call ebx
mov dword [esi + 0x44], eax
push str.DrPluginEnterModel
push edi
call ebx
mov dword [esi + 0x48], eax
push str.DrPluginLeaveModel
push edi
call ebx
mov dword [esi + 0x4c], eax
push str.DrPluginStartModel
push edi
call ebx
mov dword [esi + 0x50], eax
push str.DrPluginStopModel
push edi
call ebx
mov dword [esi + 0x54], eax
push str.DrPluginGetTip
push edi
call ebx
mov dword [esi + 0x58], eax
push str.DrPluginGetWordText
push edi
call ebx
mov dword [esi + 0x5c], eax
push str.DrPluginGetBitmapFileName
push edi
call ebx
mov dword [esi + 0x60], eax
push str.DrPluginGetStatus
push edi
call ebx
mov dword [esi + 0x64], eax
push str.DrPluginGetResource
push edi
call ebx
mov dword [esi + 0x68], eax
push str.DrPluginGetConfigName
push edi
call ebx
mov dword [esi + 0x6c], eax
push str.DrPluginGetConfigCallback
push edi
call ebx
mov dword [esi + 0x70], eax
push str.DrPluginGetConfigInstance
push edi
call ebx
mov dword [esi + 0x74], eax
push str.DrPluginGetConfigID
push edi
call ebx
mov dword [esi + 0x78], eax
push str.DrPluginGetModelMenu
push edi
call ebx
mov dword [esi + 0x7c], eax
push str.DrPluginGetButtonMenu
push edi
call ebx
mov dword [esi + 0x80], eax
push str.DrPluginGetSetupMenu
push edi
call ebx
mov dword [esi + 0x84], eax
push str.DrPluginGetMenuText
push edi
call ebx
mov dword [esi + 0x88], eax
push str.DrPluginCommand
push edi
call ebx
mov dword [esi + 0x8c], eax
push str.DrPluginDoModel
push edi
call ebx
mov dword [esi + 0x90], eax
push str.DrPluginHotkeyChange
push edi
call ebx
mov dword [esi + 0x94], eax
push str.DrPluginHotkeyNotify
push edi
call ebx
mov dword [esi + 0x98], eax
push str.DrPluginHotkeyCurrent
push edi
call ebx
mov dword [esi + 0x9c], eax
push str.DrPluginHotkeyDefault
push edi
call ebx
mov dword [esi + 0xa0], eax
push str.DrPluginHotkeyGetName
push edi
call ebx
mov dword [esi + 0xa4], eax
push str.DrPluginGetObject
push edi
call ebx
mov dword [esi + 0xa8], eax
push str.DrPluginExtensionMessage
push edi
call ebx
mov dword [esi + 0xac], eax
push str.DrPluginGetSysMenuText
push edi
call ebx
mov dword [esi + 0xb0], eax
push str.DrPluginSystemMenu
push edi
call ebx
mov dword [esi + 0xb4], eax
push str.DrPluginGetSysMenuState
push edi
call ebx
mov dword [esi + 0xb8], eax
push str.DrPluginSetUILanId
push edi
call ebx
mov dword [esi + 0xbc], eax
xor ebx, ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x12c], ebx
mov dword [ebp - 0x1c], ebx
mov eax, dword [esi + 0x40]
cmp eax, ebx
je 0x407b9d
lea edx, [ebp - 0x1c]
push edx
lea ecx, [ebp - 0x12c]
push ecx
call eax
add esp, 8
mov dword [ebp - 0x344], eax
cmp dword [ebp - 0x344], ebx
je 0x407bc0
cmp dword [ebp - 0x12c], 9
jb 0x407bc0
cmp dword [esi + 0x44], ebx
je 0x407bc0
mov eax, dword [esi + 0x48]
cmp eax, ebx
je 0x407bc6
call eax
test eax, eax
jne 0x407bc6
push esi
jmp 0x407cfd
mov eax, dword [esi + 0xbc]
cmp eax, ebx
je 0x407bdc
mov edx, dword [0x41fda0]
push edx
call eax
add esp, 4
mov dword [esi + 0x38], 1
push 3
call dword [esi + 0x44]
add esp, 4
push eax
push 1
call dword [esi + 0x44]
add esp, 4
push eax
mov edi, dword [ebp + 8]
push edi
push esi
call fcn.004022c0
add esp, 0x10
test eax, eax
push esi
je 0x407cfd
call fcn.004021c0
add esp, 4
mov dword [ebp - 4], 0xffffffff
push ebx
push ebx
push 0x104
lea eax, [ebp - 0x128]
push eax
push 0xffffffffffffffff
push edi
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov eax, dword [0x420038]
cmp eax, ebx
je 0x407cd4
lea ecx, [ebp - 0x128]
push ecx
inc eax
push eax
call fcn.00411310
add esp, 8
mov edx, eax
cmp edx, ebx
je 0x407cd4
mov al, byte [edx - 1]
cmp al, 0x3a
je 0x407c62
cmp al, 0x7c
jne 0x407c8e
lea edi, [ebp - 0x128]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp byte [ecx + edx], 0
je 0x407ccf
lea edi, [ebp - 0x128]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp byte [ecx + edx], 0x7c
je 0x407ccf
lea eax, [ebp - 0x128]
push eax
lea edi, [ebp - 0x128]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, edx
push ecx
call fcn.00411310
add esp, 8
mov edx, eax
test edx, edx
jne 0x407c57
mov dword [esi + 0xc], ebx
mov eax, 1
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, 1
mov dword [esi + 0xc], ebx
mov eax, 1
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.00407d20
add esp, 4
mov dword [ebp - 4], 0xffffffff
xor eax, eax
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret