Function at 0x4589ad
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
push ecx
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 4]
xor ecx, ecx
mov cl, byte [eax + 0x46]
test ecx, ecx
je 0x4589ca
mov eax, 1
jmp 0x458b58
push str.KLVideo.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edx, dword [ebp - 4]
mov dword [edx + 0x4c], eax
mov eax, dword [ebp - 4]
cmp dword [eax + 0x4c], 0
jne 0x4589eb
xor eax, eax
jmp 0x458b58
push str.KLVideoSetSoundSystem
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x4c]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x50], eax
push str.KLVideoSetSoundTrack
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x4c]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x54], eax
push str.KLVideoOpen
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x4c]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x58], eax
push str.KLVideoClose
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x4c]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x5c], eax
push str.KLVideoWait
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x4c]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x60], eax
push str.KLVideoCopyToBuffer
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x4c]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x64], eax
push str.KLVideoDoFrame
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x4c]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x68], eax
push str.KLVideoNextFrame
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x4c]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x6c], eax
push str.KLVideoGetCurrentFrame
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x4c]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x70], eax
push str.KLVideoSetSoundVolume
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x4c]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x74], eax
mov edx, dword [ebp - 4]
cmp dword [edx + 0x50], 0
je 0x458b23
mov eax, dword [ebp - 4]
cmp dword [eax + 0x58], 0
je 0x458b23
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0x5c], 0
je 0x458b23
mov edx, dword [ebp - 4]
cmp dword [edx + 0x60], 0
je 0x458b23
mov eax, dword [ebp - 4]
cmp dword [eax + 0x64], 0
je 0x458b23
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0x68], 0
je 0x458b23
mov edx, dword [ebp - 4]
cmp dword [edx + 0x6c], 0
je 0x458b23
mov eax, dword [ebp - 4]
cmp dword [eax + 0x54], 0
jne 0x458b3e
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x4c]
push edx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, dword [ebp - 4]
mov dword [eax + 0x4c], 0
xor eax, eax
jmp 0x458b58
push 2
mov ecx, dword [ebp - 4]
push ecx
call fcn.00412f09
add esp, 8
mov edx, dword [ebp - 4]
mov byte [edx + 0x46], 1
mov eax, 1
mov esp, ebp
pop ebp
ret